Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/build: build and test failures on gotip-openbsd-amd64 #66474

Open
gopherbot opened this issue Mar 22, 2024 · 7 comments
Open

x/build: build and test failures on gotip-openbsd-amd64 #66474

gopherbot opened this issue Mar 22, 2024 · 7 comments
Labels
Builders x/build issues (builders, bots, dashboards) NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-OpenBSD
Milestone

Comments

@gopherbot
Copy link

gopherbot commented Mar 22, 2024

#!watchflakes
default <- builder == "gotip-openbsd-amd64" && repo == "go" && (mode == "build" || pkg ~ `cmd/`)

There have been various build and test failures on gotip-openbsd-amd64 builder, many are tests in cmd/ which involves in building some source code. Many failures (but not all) include "resource temporarily unavailable".
See also #66496, #66495, #66494, #66493, #66492, #66487, #66486, #66482.

Issue created automatically to collect these failures.

Example (log):

[I2024-03-21T02:31:29.087224-07:00 71644 0 sink.go:276] SinkServer: warm-up started
[I2024-03-21T02:31:29.087481-07:00 71644 0 sink.go:346] SinkServer: starting HTTP server...
[I2024-03-21T02:31:29.092237-07:00 71644 0 sink.go:281] SinkServer: warm-up ended
[I2024-03-21T02:31:29.094772-07:00 71644 0 cmd_stream.go:473] rdb-stream: starting the test command - ["/home/swarming/.swarming/w/ir/cache/tools/bin/result_adapter" "go" "-v=false" "--" "/home/swarming/.swarming/w/ir/x/w/goroot/bin/go" "tool" "dist" "test" "-json" "cmd/go/internal/modfetch/codehost" "cmd/go/internal/modload" "cmd/go/internal/vcs" "cmd/go/internal/vcweb/vcstest" "cmd/gofmt" "cmd/internal/bootstrap_test" "cmd/internal/goobj" "cmd/internal/moddeps" "cmd/internal/obj/ppc64" "cmd/internal/obj/riscv" "cmd/internal/obj/x86" "cmd/link" "cmd/link/internal/ld" "cmd/objdump" "cmd/pprof" "cmd/vet" "hash/maphash:purego" "crypto/...:purego" "runtime:cpu1" "runtime:cpu2" "runtime:cpu4" "iter:iter" "sync:cpu10" "runtime/race:race" "flag:race" "net:race" "os:race" "os/exec:race" "encoding/gob:race" "flag:race-external" "os/exec:race-external" "cmd/cgo/internal/test:internal" "cmd/cgo/internal/test:external-g0" "cmd/cgo/internal/test:static" "cmd/cgo/internal/test:auto-static" "archive/tar" "bufio" "compress/bzip2" "crypto/ed25519" "crypto/hmac" "crypto/internal/alias" "crypto/internal/boring" "crypto/x509" "debug/buildinfo" "debug/elf" "debug/gosym" "embed" "encoding/base32" "encoding/base64" "encoding/hex" "encoding/json" "fmt" "go/doc" "go/printer" "go/scanner" "hash/fnv" "html/template" "image" "image/png" "internal/buildcfg" "internal/coverage/cmerge" "internal/coverage/slicereader" "internal/diff" "internal/itoa" "internal/xcoff" "log/slog" "net/http/httputil" "net/http/internal/ascii" "net/internal/cgotest" "net/smtp" "net/textproto" "path" "path/filepath" "regexp/syntax" "runtime/debug" "runtime/internal/wasitest" "testing/slogtest" "text/tabwriter" "cmd/cgo/internal/swig" "cmd/cgo/internal/testgodefs" "cmd/compile/internal/noder" "cmd/go/internal/modindex" "cmd/go/internal/par" "cmd/go/internal/toolchain" "cmd/go/internal/vcweb" "cmd/internal/archive" "cmd/internal/buildid" "cmd/internal/edit" "cmd/internal/obj" "cmd/cgo/internal/testtls:static" "cmd/internal/testdir:2_10" "cmd/internal/testdir:4_10" "cmd/internal/testdir:8_10"]
debug/gosym: /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/compile: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/compile: resource temporarily unavailable
go tool dist: Failed: exit status 1
ok  	cmd/go/internal/modfetch/codehost	108.433s
ok  	cmd/go/internal/modload	0.128s
ok  	cmd/go/internal/vcs	0.147s
ok  	cmd/go/internal/vcweb/vcstest	113.199s
...
Warning: no '=' in invocation-link-artifacts pair: "", ignoring
[I2024-03-21T02:34:34.180039-07:00 71644 0 cmd_stream.go:469] rdb-stream: the test process terminated
[I2024-03-21T02:34:34.182768-07:00 71644 0 sink.go:371] SinkServer: shutdown started
[I2024-03-21T02:34:34.183067-07:00 71644 0 sink.go:349] SinkServer: HTTP server stopped with "http: Server closed"
[I2024-03-21T02:34:34.183112-07:00 71644 0 sink_server.go:95] SinkServer: draining TestResult channel started
[I2024-03-21T02:34:34.615469-07:00 71644 0 sink_server.go:97] SinkServer: draining TestResult channel ended
[I2024-03-21T02:34:34.615514-07:00 71644 0 sink_server.go:99] SinkServer: draining Artifact channel started
[I2024-03-21T02:34:34.789840-07:00 71644 0 sink_server.go:101] SinkServer: draining Artifact channel ended
[I2024-03-21T02:34:34.790157-07:00 71644 0 sink.go:374] SinkServer: shutdown completed successfully
[I2024-03-21T02:34:34.790339-07:00 71644 0 cmd_stream.go:401] rdb-stream: exiting with 1

watchflakes

@gopherbot gopherbot added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Mar 22, 2024
@gopherbot
Copy link
Author

Found new dashboard test flakes for:

#!watchflakes
default <- builder == "gotip-openbsd-amd64" && repo == "go" && mode == "build"
2024-03-21 09:16 gotip-openbsd-amd64 go@dc0527ee [build] (log)
[I2024-03-21T02:31:29.087224-07:00 71644 0 sink.go:276] SinkServer: warm-up started
[I2024-03-21T02:31:29.087481-07:00 71644 0 sink.go:346] SinkServer: starting HTTP server...
[I2024-03-21T02:31:29.092237-07:00 71644 0 sink.go:281] SinkServer: warm-up ended
[I2024-03-21T02:31:29.094772-07:00 71644 0 cmd_stream.go:473] rdb-stream: starting the test command - ["/home/swarming/.swarming/w/ir/cache/tools/bin/result_adapter" "go" "-v=false" "--" "/home/swarming/.swarming/w/ir/x/w/goroot/bin/go" "tool" "dist" "test" "-json" "cmd/go/internal/modfetch/codehost" "cmd/go/internal/modload" "cmd/go/internal/vcs" "cmd/go/internal/vcweb/vcstest" "cmd/gofmt" "cmd/internal/bootstrap_test" "cmd/internal/goobj" "cmd/internal/moddeps" "cmd/internal/obj/ppc64" "cmd/internal/obj/riscv" "cmd/internal/obj/x86" "cmd/link" "cmd/link/internal/ld" "cmd/objdump" "cmd/pprof" "cmd/vet" "hash/maphash:purego" "crypto/...:purego" "runtime:cpu1" "runtime:cpu2" "runtime:cpu4" "iter:iter" "sync:cpu10" "runtime/race:race" "flag:race" "net:race" "os:race" "os/exec:race" "encoding/gob:race" "flag:race-external" "os/exec:race-external" "cmd/cgo/internal/test:internal" "cmd/cgo/internal/test:external-g0" "cmd/cgo/internal/test:static" "cmd/cgo/internal/test:auto-static" "archive/tar" "bufio" "compress/bzip2" "crypto/ed25519" "crypto/hmac" "crypto/internal/alias" "crypto/internal/boring" "crypto/x509" "debug/buildinfo" "debug/elf" "debug/gosym" "embed" "encoding/base32" "encoding/base64" "encoding/hex" "encoding/json" "fmt" "go/doc" "go/printer" "go/scanner" "hash/fnv" "html/template" "image" "image/png" "internal/buildcfg" "internal/coverage/cmerge" "internal/coverage/slicereader" "internal/diff" "internal/itoa" "internal/xcoff" "log/slog" "net/http/httputil" "net/http/internal/ascii" "net/internal/cgotest" "net/smtp" "net/textproto" "path" "path/filepath" "regexp/syntax" "runtime/debug" "runtime/internal/wasitest" "testing/slogtest" "text/tabwriter" "cmd/cgo/internal/swig" "cmd/cgo/internal/testgodefs" "cmd/compile/internal/noder" "cmd/go/internal/modindex" "cmd/go/internal/par" "cmd/go/internal/toolchain" "cmd/go/internal/vcweb" "cmd/internal/archive" "cmd/internal/buildid" "cmd/internal/edit" "cmd/internal/obj" "cmd/cgo/internal/testtls:static" "cmd/internal/testdir:2_10" "cmd/internal/testdir:4_10" "cmd/internal/testdir:8_10"]
debug/gosym: /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/compile: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/compile: resource temporarily unavailable
go tool dist: Failed: exit status 1
ok  	cmd/go/internal/modfetch/codehost	108.433s
ok  	cmd/go/internal/modload	0.128s
ok  	cmd/go/internal/vcs	0.147s
ok  	cmd/go/internal/vcweb/vcstest	113.199s
...
Warning: no '=' in invocation-link-artifacts pair: "", ignoring
[I2024-03-21T02:34:34.180039-07:00 71644 0 cmd_stream.go:469] rdb-stream: the test process terminated
[I2024-03-21T02:34:34.182768-07:00 71644 0 sink.go:371] SinkServer: shutdown started
[I2024-03-21T02:34:34.183067-07:00 71644 0 sink.go:349] SinkServer: HTTP server stopped with "http: Server closed"
[I2024-03-21T02:34:34.183112-07:00 71644 0 sink_server.go:95] SinkServer: draining TestResult channel started
[I2024-03-21T02:34:34.615469-07:00 71644 0 sink_server.go:97] SinkServer: draining TestResult channel ended
[I2024-03-21T02:34:34.615514-07:00 71644 0 sink_server.go:99] SinkServer: draining Artifact channel started
[I2024-03-21T02:34:34.789840-07:00 71644 0 sink_server.go:101] SinkServer: draining Artifact channel ended
[I2024-03-21T02:34:34.790157-07:00 71644 0 sink.go:374] SinkServer: shutdown completed successfully
[I2024-03-21T02:34:34.790339-07:00 71644 0 cmd_stream.go:401] rdb-stream: exiting with 1

watchflakes

@gopherbot
Copy link
Author

Found new dashboard test flakes for:

#!watchflakes
post <- builder == "gotip-openbsd-amd64" && repo == "go" && (mode == "build" || pkg ~ `cmd/`)
2024-03-20 19:08 gotip-openbsd-amd64 go@a245aced cmd/go/internal/vcweb/vcstest.TestScripts (log)
=== RUN   TestScripts
    vcstest_test.go:120: GET http://127.0.0.1:33919:
        <html>
        <title>vcweb</title>
        <pre>
        <b>vcweb</b>
        
        This server serves various version control repos for testing the go command.
        
        For an overview of the script language, see <a href="/help">/help</a>.
...
        hg/custom-hg-hello.txt		2024-03-20T12:27:49-07:00	custom-hg-hello.txt:1: handle hg: server for `hg` VCS is not installed
        hg/hello.txt			2024-03-20T12:27:49-07:00	hello.txt:1: handle hg: server for `hg` VCS is not installed
        hg/hgrepo1.txt			2024-03-20T12:27:49-07:00	hgrepo1.txt:1: handle hg: server for `hg` VCS is not installed
        hg/vgotest1.txt			2024-03-20T12:27:49-07:00	vgotest1.txt:1: handle hg: server for `hg` VCS is not installed
        insecure.txt			2024-03-20T12:27:49-07:00	ok
        svn/hello.txt			2024-03-20T12:27:49-07:00	hello.txt:1: handle svn: server for `svn` VCS is not installed
        svn/nonexistent.txt		2024-03-20T12:27:49-07:00	nonexistent.txt:1: handle svn: server for `svn` VCS is not installed
        svn/test1-svn-git.txt		2024-03-20T12:27:49-07:00	test1-svn-git.txt:1: handle svn: server for `svn` VCS is not installed
        svn/test2-svn-git.txt		2024-03-20T12:27:49-07:00	test2-svn-git.txt:1: handle svn: server for `svn` VCS is not installed
--- FAIL: TestScripts (4.84s)
2024-03-20 19:08 gotip-openbsd-amd64 go@a245aced cmd/internal/moddeps.TestAllDependencies/std(quick) (log)
=== RUN   TestAllDependencies/std(quick)
    moddeps_test.go:53: module std in directory /home/swarming/.swarming/w/ir/x/w/goroot/src
    moddeps_test.go:65: /home/swarming/.swarming/w/ir/x/w/goroot/bin/go list -mod=vendor -deps ./...: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/bin/go: resource temporarily unavailable
    moddeps_test.go:66: (Run 'go mod vendor' in /home/swarming/.swarming/w/ir/x/w/goroot/src to ensure that dependencies have been vendored.)
--- FAIL: TestAllDependencies/std(quick) (0.00s)
2024-03-20 19:08 gotip-openbsd-amd64 go@a245aced cmd/internal/obj/riscv.TestPCAlign (log)
=== RUN   TestPCAlign
    asm_test.go:300: Failed to assemble: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/bin/go: resource temporarily unavailable
    asm_test.go:309: PCALIGN test failed - got 
        want 0f 00 f0 0f 13 00 00 00 0f 00 f0 0f 67 80 00 00
--- FAIL: TestPCAlign (0.04s)
2024-03-21 09:29 gotip-openbsd-amd64 go@f2685395 cmd/go/internal/vcweb/vcstest.TestScripts (log)
=== RUN   TestScripts
    vcstest_test.go:120: GET http://127.0.0.1:6111:
        <html>
        <title>vcweb</title>
        <pre>
        <b>vcweb</b>
        
        This server serves various version control repos for testing the go command.
        
        For an overview of the script language, see <a href="/help">/help</a>.
...
        hg/custom-hg-hello.txt		2024-03-21T02:48:36-07:00	custom-hg-hello.txt:1: handle hg: server for `hg` VCS is not installed
        hg/hello.txt			2024-03-21T02:49:05-07:00	hello.txt:1: handle hg: server for `hg` VCS is not installed
        hg/hgrepo1.txt			2024-03-21T02:48:53-07:00	hgrepo1.txt:1: handle hg: server for `hg` VCS is not installed
        hg/vgotest1.txt			2024-03-21T02:48:36-07:00	vgotest1.txt:1: handle hg: server for `hg` VCS is not installed
        insecure.txt			2024-03-21T02:49:07-07:00	ok
        svn/hello.txt			2024-03-21T02:49:06-07:00	hello.txt:1: handle svn: server for `svn` VCS is not installed
        svn/nonexistent.txt		2024-03-21T02:48:36-07:00	nonexistent.txt:1: handle svn: server for `svn` VCS is not installed
        svn/test1-svn-git.txt		2024-03-21T02:48:36-07:00	test1-svn-git.txt:1: handle svn: server for `svn` VCS is not installed
        svn/test2-svn-git.txt		2024-03-21T02:48:36-07:00	test2-svn-git.txt:1: handle svn: server for `svn` VCS is not installed
--- FAIL: TestScripts (10.43s)
2024-03-21 09:29 gotip-openbsd-amd64 go@f2685395 cmd/internal/obj/ppc64.TestPfxAlign (log)
=== RUN   TestPfxAlign
    asm_test.go:199: Failed to compile {[10 84 69 88 84 32 116 101 115 116 40 83 66 41 44 48 44 36 48 45 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 80 78 79 80 10] align=0x0 true}: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/bin/go: resource temporarily unavailable
    asm_test.go:202: Fatal, misaligned text with prefixed instructions:
    asm_test.go:206: Fatal, prefixed instruction is missing nop padding:
    asm_test.go:199: Failed to compile {[10 84 69 88 84 32 116 101 115 116 40 83 66 41 44 48 44 36 48 45 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 80 78 79 80 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 80 78 79 80 10] align=0x40 true}: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/bin/go: resource temporarily unavailable
    asm_test.go:202: Fatal, misaligned text with prefixed instructions:
    asm_test.go:206: Fatal, prefixed instruction is missing nop padding:
--- FAIL: TestPfxAlign (9.74s)
2024-03-21 09:29 gotip-openbsd-amd64 go@f2685395 cmd/link.TestStrictDup (log)
=== RUN   TestStrictDup
=== PAUSE TestStrictDup
=== CONT  TestStrictDup
    link_test.go:537: linking with -strictdups=1 failed: exit status 1
        teststrictdup: /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: resource temporarily unavailable
    link_test.go:540: unexpected output:
        teststrictdup: /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: resource temporarily unavailable
--- FAIL: TestStrictDup (34.79s)
2024-03-21 16:12 gotip-openbsd-amd64 go@d9f97467 cmd/go/internal/vcweb/vcstest.TestScripts (log)
=== RUN   TestScripts
    vcstest_test.go:120: GET http://127.0.0.1:48806:
        <html>
        <title>vcweb</title>
        <pre>
        <b>vcweb</b>
        
        This server serves various version control repos for testing the go command.
        
        For an overview of the script language, see <a href="/help">/help</a>.
...
        hg/custom-hg-hello.txt		2024-03-21T09:29:44-07:00	custom-hg-hello.txt:1: handle hg: server for `hg` VCS is not installed
        hg/hello.txt			2024-03-21T09:29:44-07:00	hello.txt:1: handle hg: server for `hg` VCS is not installed
        hg/hgrepo1.txt			2024-03-21T09:30:07-07:00	hgrepo1.txt:1: handle hg: server for `hg` VCS is not installed
        hg/vgotest1.txt			2024-03-21T09:30:07-07:00	vgotest1.txt:1: handle hg: server for `hg` VCS is not installed
        insecure.txt			2024-03-21T09:29:44-07:00	ok
        svn/hello.txt			2024-03-21T09:29:44-07:00	hello.txt:1: handle svn: server for `svn` VCS is not installed
        svn/nonexistent.txt		2024-03-21T09:29:44-07:00	nonexistent.txt:1: handle svn: server for `svn` VCS is not installed
        svn/test1-svn-git.txt		2024-03-21T09:29:44-07:00	test1-svn-git.txt:1: handle svn: server for `svn` VCS is not installed
        svn/test2-svn-git.txt		2024-03-21T09:30:07-07:00	test2-svn-git.txt:1: handle svn: server for `svn` VCS is not installed
--- FAIL: TestScripts (15.16s)
2024-03-21 16:12 gotip-openbsd-amd64 go@d9f97467 cmd/internal/obj/x86.TestVexEvexPCrelative (log)
=== RUN   TestVexEvexPCrelative
    pcrelative_test.go:72: error exit status 1 output internal/bytealg: /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: resource temporarily unavailable
--- FAIL: TestVexEvexPCrelative (20.54s)
2024-03-21 16:12 gotip-openbsd-amd64 go@d9f97467 cmd/link.TestResponseFile (log)
=== RUN   TestResponseFile
=== PAUSE TestResponseFile
=== CONT  TestResponseFile
    link_test.go:1291: # command-line-arguments
        /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/link: running clang failed: fork/exec /usr/bin/clang: resource temporarily unavailable
        /usr/bin/clang -m64 -pthread -Wl,-nopie -o $WORK/b001/exe/a.out -rdynamic /home/swarming/.swarming/w/ir/x/t/go-link-795555696/go.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000000.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000001.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000002.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000003.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000004.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000005.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000006.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000007.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000008.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000009.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000010.o /home/swarming/.swarming/w/ir/x/t/go-link-795555696/000011.o -O2 -g -O2 -g -lpthread -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g
(... long comment truncated ...)

watchflakes

@cherrymui
Copy link
Member

cc @golang/openbsd

@gopherbot
Copy link
Author

Found new dashboard test flakes for:

#!watchflakes
default <- builder == "gotip-openbsd-amd64" && repo == "go" && (mode == "build" || pkg ~ `cmd/`)
2024-03-21 19:45 gotip-openbsd-amd64 go@802473cf cmd/vet.TestVet/rangeloop (log)
=== RUN   TestVet/rangeloop
=== PAUSE TestVet/rangeloop
=== CONT  TestVet/rangeloop
    vet_test.go:148: error check failed: 
        rangeloop.go:13: missing error "loop variable i captured by func literal"
        rangeloop.go:14: missing error "loop variable v captured by func literal"
        Unmatched Errors:
        go: error obtaining buildID for go tool compile: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/compile: resource temporarily unavailable
        go: error obtaining buildID for go tool compile: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/compile: resource temporarily unavailable
        go: error obtaining buildID for go tool compile: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/compile: resource temporarily unavailable
        go: error obtaining buildID for go tool compile: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/compile: resource temporarily unavailable
        go: error obtaining buildID for go tool compile: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/compile: resource temporarily unavailable
        go: error obtaining buildID for go tool compile: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/compile: resource temporarily unavailable
--- FAIL: TestVet/rangeloop (10.98s)
2024-03-21 20:08 gotip-openbsd-amd64 go@0ae8468b cmd/internal/obj/x86.TestVexEvexPCrelative (log)
=== RUN   TestVexEvexPCrelative
    pcrelative_test.go:72: error exit status 1 output runtime: /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: resource temporarily unavailable
--- FAIL: TestVexEvexPCrelative (32.93s)
2024-03-21 20:08 gotip-openbsd-amd64 go@0ae8468b cmd/link.TestFlagS (log)
=== RUN   TestFlagS
=== PAUSE TestFlagS
=== CONT  TestFlagS
    link_test.go:1361: build (linkmode=external) failed: exit status 1
        go: error obtaining buildID for go tool compile: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/compile: resource temporarily unavailable
--- FAIL: TestFlagS (28.41s)
2024-03-21 21:00 gotip-openbsd-amd64 go@0c77b0d0 cmd/internal/obj/ppc64.TestPfxAlign (log)
=== RUN   TestPfxAlign
    asm_test.go:199: Failed to compile {[10 84 69 88 84 32 116 101 115 116 40 83 66 41 44 48 44 36 48 45 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 80 78 79 80 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 79 82 32 82 48 44 32 82 48 10 80 78 79 80 10] align=0x40 true}: exit status 1
    asm_test.go:202: Fatal, misaligned text with prefixed instructions:
        go tool asm: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: resource temporarily unavailable
    asm_test.go:206: Fatal, prefixed instruction is missing nop padding:
        go tool asm: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: resource temporarily unavailable
--- FAIL: TestPfxAlign (10.29s)
2024-03-21 22:14 gotip-openbsd-amd64 go@4f0408a3 cmd/link.TestUnresolved (log)
=== RUN   TestUnresolved
=== PAUSE TestUnresolved
=== CONT  TestUnresolved
    link_test.go:182: want:
        main.x: relocation target zero not defined
        main.x: relocation target zero not defined
        main.x: relocation target main.zero not defined
        got:
        runtime: /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: resource temporarily unavailable
--- FAIL: TestUnresolved (39.06s)
2024-03-21 22:14 gotip-openbsd-amd64 go@4f0408a3 cmd/link/internal/ld.TestRuntimeTypeAttrExternal (log)
=== RUN   TestRuntimeTypeAttrExternal
=== PAUSE TestRuntimeTypeAttrExternal
=== CONT  TestRuntimeTypeAttrExternal
    dwarf_test.go:110: ## build output:
        # command-line-arguments
        /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/link: running clang failed: fork/exec /usr/bin/clang: resource temporarily unavailable
        /usr/bin/clang -m64 -pthread -Wl,-nopie -o $WORK/b001/exe/a.out -Wl,--export-dynamic-symbol=__guard_local -Wl,--export-dynamic-symbol=_cgo_panic -Wl,--export-dynamic-symbol=_cgo_topofstack -Wl,--export-dynamic-symbol=crosscall2 -Qunused-arguments /home/swarming/.swarming/w/ir/x/t/go-link-552530261/go.o /home/swarming/.swarming/w/ir/x/t/go-link-552530261/000000.o /home/swarming/.swarming/w/ir/x/t/go-link-552530261/000001.o /home/swarming/.swarming/w/ir/x/t/go-link-552530261/000002.o /home/swarming/.swarming/w/ir/x/t/go-link-552530261/000003.o /home/swarming/.swarming/w/ir/x/t/go-link-552530261/000004.o /home/swarming/.swarming/w/ir/x/t/go-link-552530261/000005.o /home/swarming/.swarming/w/ir/x/t/go-link-552530261/000006.o /home/swarming/.swarming/w/ir/x/t/go-link-552530261/000007.o /home/swarming/.swarming/w/ir/x/t/go-link-552530261/000008.o /home/swarming/.swarming/w/ir/x/t/go-link-552530261/000009.o -O2 -g -lpthread
        
    dwarf_test.go:113: build error: exit status 1
--- FAIL: TestRuntimeTypeAttrExternal (30.04s)
2024-03-22 16:14 gotip-openbsd-amd64 go@c2b14631 cmd/internal/moddeps.TestDependencyVersionsConsistent (log)
=== RUN   TestDependencyVersionsConsistent
    moddeps_test.go:356: 'go list -json -m' in /home/swarming/.swarming/w/ir/x/w/goroot/src: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/bin/go: resource temporarily unavailable
        
--- FAIL: TestDependencyVersionsConsistent (0.00s)

watchflakes

@gopherbot
Copy link
Author

Found new dashboard test flakes for:

#!watchflakes
default <- builder == "gotip-openbsd-amd64" && repo == "go" && (mode == "build" || pkg ~ `cmd/`)
2024-03-25 19:36 gotip-openbsd-amd64 go@8ed0d35f cmd/vet.TestVet/shift (log)
=== RUN   TestVet/shift
=== PAUSE TestVet/shift
=== CONT  TestVet/shift
    vet_test.go:148: error check failed: 
        shift.go:12: missing error ".i8 . 1. .8 bits. too small for shift of 8"
        Unmatched Errors:
        go: error obtaining buildID for go tool asm: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: resource temporarily unavailable
--- FAIL: TestVet/shift (10.62s)

watchflakes

@gopherbot
Copy link
Author

Found new dashboard test flakes for:

#!watchflakes
default <- builder == "gotip-openbsd-amd64" && repo == "go" && (mode == "build" || pkg ~ `cmd/`)
2024-03-25 19:53 gotip-openbsd-amd64 go@4c2b1e0f cmd/internal/moddeps.TestDependencyVersionsConsistent (log)
=== RUN   TestDependencyVersionsConsistent
    moddeps_test.go:356: 'go list -json -m' in /home/swarming/.swarming/w/ir/x/w/goroot/src: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/bin/go: resource temporarily unavailable
        
--- FAIL: TestDependencyVersionsConsistent (0.00s)

watchflakes

@gopherbot
Copy link
Author

Found new dashboard test flakes for:

#!watchflakes
default <- builder == "gotip-openbsd-amd64" && repo == "go" && (mode == "build" || pkg ~ `cmd/`)
2024-03-26 00:18 gotip-openbsd-amd64 go@3fefec96 cmd/link.TestMinusRSymsWithSameName (log)
=== RUN   TestMinusRSymsWithSameName
=== PAUSE TestMinusRSymsWithSameName
=== CONT  TestMinusRSymsWithSameName
    elf_test.go:168: clang [-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/home/swarming/.swarming/w/ir/x/t/go-build1263431986=/tmp/go-build -gno-record-gcc-switches] -c -o /home/swarming/.swarming/w/ir/x/t/TestMinusRSymsWithSameName3806690375/001/x0.o /home/swarming/.swarming/w/ir/x/t/TestMinusRSymsWithSameName3806690375/001/x0.c
    elf_test.go:170: 
    elf_test.go:171: fork/exec /usr/bin/clang: resource temporarily unavailable
--- FAIL: TestMinusRSymsWithSameName (8.40s)
2024-03-26 00:18 gotip-openbsd-amd64 go@3fefec96 cmd/link/internal/ld.TestShStrTabAttributesIssue62600 (log)
=== RUN   TestShStrTabAttributesIssue62600
=== PAUSE TestShStrTabAttributesIssue62600
=== CONT  TestShStrTabAttributesIssue62600
    elf_test.go:149: [/home/swarming/.swarming/w/ir/x/w/goroot/bin/go build -o /home/swarming/.swarming/w/ir/x/t/TestShStrTabAttributesIssue626003337179766/001/issue62600 /home/swarming/.swarming/w/ir/x/t/TestShStrTabAttributesIssue626003337179766/001/issue62600.go]: exit status 1:
        go: error obtaining buildID for go tool asm: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: resource temporarily unavailable
        go: error obtaining buildID for go tool asm: fork/exec /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/openbsd_amd64/asm: resource temporarily unavailable
--- FAIL: TestShStrTabAttributesIssue62600 (3.40s)

watchflakes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Builders x/build issues (builders, bots, dashboards) NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-OpenBSD
Projects
Status: No status
Development

No branches or pull requests

2 participants