pachi.git
7 years agoMerge pull request #50 from lemonsqueeze/can_countercapmaster
Petr Baudis [Thu, 14 Jul 2016 13:46:08 +0000 (14 15:46 +0200)]
Merge pull request #50 from lemonsqueeze/can_countercap

Can countercap

7 years agocan_countercapture(): foolproof api
lemonsqueeze [Fri, 10 Jun 2016 06:04:38 +0000 (10 08:04 +0200)]
can_countercapture(): foolproof api

7 years agocan_countercapture(): check snapback / can_countercapture_any(): no checks
lemonsqueeze [Thu, 9 Jun 2016 20:41:44 +0000 (9 22:41 +0200)]
can_countercapture(): check snapback / can_countercapture_any(): no checks

7 years agot-unit: can_countercap
lemonsqueeze [Thu, 9 Jun 2016 20:41:04 +0000 (9 22:41 +0200)]
t-unit: can_countercap

7 years agoselfatari_cousin(): fixed invalid can_countercapture() calls
lemonsqueeze [Thu, 9 Jun 2016 20:39:52 +0000 (9 22:39 +0200)]
selfatari_cousin(): fixed invalid can_countercapture() calls

7 years agoMerge pull request #49 from lemonsqueeze/dragon
Petr Baudis [Thu, 14 Jul 2016 00:20:33 +0000 (14 02:20 +0200)]
Merge pull request #49 from lemonsqueeze/dragon

Dragon

7 years agot-unit: two_eyes test suite
lemonsqueeze [Wed, 13 Jul 2016 10:30:34 +0000 (13 12:30 +0200)]
t-unit: two_eyes test suite

7 years agodragon.c: deal with virtually connected groups
lemonsqueeze [Tue, 3 May 2016 16:39:54 +0000 (3 18:39 +0200)]
dragon.c: deal with virtually connected groups

7 years agoMerge pull request #48 from lemonsqueeze/tactics_undo
Petr Baudis [Tue, 12 Jul 2016 17:48:52 +0000 (12 19:48 +0200)]
Merge pull request #48 from lemonsqueeze/tactics_undo

Tactics undo

7 years agoladder: use undo
lemonsqueeze [Mon, 16 May 2016 09:54:51 +0000 (16 11:54 +0200)]
ladder: use undo

7 years agoselfatari: use undo
lemonsqueeze [Tue, 17 May 2016 08:22:24 +0000 (17 10:22 +0200)]
selfatari: use undo

7 years ago1lib.c: don't use board clen in tactics
lemonsqueeze [Wed, 29 Jun 2016 12:46:11 +0000 (29 14:46 +0200)]
1lib.c: don't use board clen in tactics

7 years agoMerge pull request #47 from lemonsqueeze/board_undo
Petr Baudis [Tue, 12 Jul 2016 15:58:03 +0000 (12 17:58 +0200)]
Merge pull request #47 from lemonsqueeze/board_undo

Board undo

7 years agoboard.c: merged board_undo.c
lemonsqueeze [Tue, 12 Jul 2016 00:56:33 +0000 (12 02:56 +0200)]
board.c: merged board_undo.c

7 years agoboard_undo: define QUICK_BOARD_CODE to get compiler error with forbidden fields.
lemonsqueeze [Wed, 29 Jun 2016 14:02:36 +0000 (29 16:02 +0200)]
board_undo: define QUICK_BOARD_CODE to get compiler error with forbidden fields.

7 years agoboard_undo: define BOARD_UNDO_CHECKS to guard against invalid quick_play() / quick_un...
lemonsqueeze [Wed, 29 Jun 2016 13:54:47 +0000 (29 15:54 +0200)]
board_undo: define BOARD_UNDO_CHECKS to guard against invalid quick_play() / quick_undo() uses (disabled by default)

7 years agot-unit: board_undo stress test
lemonsqueeze [Wed, 29 Jun 2016 13:46:28 +0000 (29 15:46 +0200)]
t-unit: board_undo stress test

7 years agoboard_undo.c: fast play() + undo() pair to try out a move.
lemonsqueeze [Wed, 29 Jun 2016 13:26:46 +0000 (29 15:26 +0200)]
board_undo.c: fast play() + undo() pair to try out a move.

can use with_move() statement to call underlying board_quick_play() / board_quick_undo() transparently.
Only core board structures are maintained, see board.h

7 years agoMerge pull request #46 from lemonsqueeze/moggy_test
Petr Baudis [Mon, 11 Jul 2016 18:37:11 +0000 (11 20:37 +0200)]
Merge pull request #46 from lemonsqueeze/moggy_test

Moggy test

7 years agotools: scripts to convert board diagrams from board_print() to t-unit / gtp / sgf
lemonsqueeze [Thu, 30 Jun 2016 08:13:02 +0000 (30 10:13 +0200)]
tools: scripts to convert board diagrams from board_print() to t-unit / gtp / sgf

7 years agot-unit: moggy testing
lemonsqueeze [Wed, 29 Jun 2016 20:26:32 +0000 (29 22:26 +0200)]
t-unit: moggy testing

7 years agoreplay: replay_sample_moves(),
lemonsqueeze [Sat, 25 Jun 2016 11:07:51 +0000 (25 13:07 +0200)]
replay: replay_sample_moves(),
engine.h: engine_done()

7 years agouct: moved printhook_ownermap() logic to ownermap.c,
lemonsqueeze [Sat, 25 Jun 2016 09:36:48 +0000 (25 11:36 +0200)]
uct: moved printhook_ownermap() logic to ownermap.c,
engine.h: engine_printhook -> engine_board_print, renamed typedefs to avoid clashes

7 years agoMerge pull request #45 from lemonsqueeze/dead_stones_fix
Petr Baudis [Mon, 11 Jul 2016 15:09:22 +0000 (11 17:09 +0200)]
Merge pull request #45 from lemonsqueeze/dead_stones_fix

Dead stones fix

7 years agoMerge pull request #41 from avysk/msys-fixes
Petr Baudis [Mon, 11 Jul 2016 15:03:43 +0000 (11 17:03 +0200)]
Merge pull request #41 from avysk/msys-fixes

Msys fixes

7 years agodead stones: debug info
lemonsqueeze [Sat, 2 Jul 2016 09:52:13 +0000 (2 11:52 +0200)]
dead stones: debug info

7 years agodead stones: add own unclear dead groups if it doesn't change the outcome.
lemonsqueeze [Sat, 2 Jul 2016 05:23:54 +0000 (2 07:23 +0200)]
dead stones: add own unclear dead groups if it doesn't change the outcome.

7 years agodead stones: don't skip playout after 2 passes, breaks dead stones detection
lemonsqueeze [Fri, 1 Jul 2016 18:38:11 +0000 (1 20:38 +0200)]
dead stones: don't skip playout after 2 passes, breaks dead stones detection

7 years agodead stones: uct fix
lemonsqueeze [Thu, 30 Jun 2016 15:08:15 +0000 (30 17:08 +0200)]
dead stones: uct fix

7 years agorename DOUBLE_TIME to DOUBLE_FLOATING
Alexey Vyskubov [Sat, 18 Jun 2016 09:47:17 +0000 (18 12:47 +0300)]
rename DOUBLE_TIME to DOUBLE_FLOATING

7 years agoMerge pull request #38 from lemonsqueeze/predict
Petr Baudis [Tue, 14 Jun 2016 15:58:25 +0000 (14 17:58 +0200)]
Merge pull request #38 from lemonsqueeze/predict

Prediction rates

7 years agoMerge pull request #42 from jdanekrh/patch-1
Petr Baudis [Tue, 14 Jun 2016 15:22:39 +0000 (14 17:22 +0200)]
Merge pull request #42 from jdanekrh/patch-1

Travis CI is failing

7 years agoTravis CI is failing
Jiří Daněk [Fri, 10 Jun 2016 13:24:32 +0000 (10 15:24 +0200)]
Travis CI is failing

I noticed that the CI is failing for PR #41. It is because the installation of clang Ubuntu package is fetching a file from llvm.org and that file is no longer there, see http://stackoverflow.com/questions/37558151/travis-ci-build-failing for a discussion.

Immediate solution would be to temporarily remove clang installation from the build. Longer term solution depends what comes out of the debate referenced at that SO.com question.

7 years agoAdd MSYS2_64 switch in Makefile
Alexey Vyskubov [Mon, 6 Jun 2016 15:00:33 +0000 (6 18:00 +0300)]
Add MSYS2_64 switch in Makefile

To compile using msys2 / mingw64

7 years agoChange DOUBLE to DOUBLE_TIME
Alexey Vyskubov [Mon, 6 Jun 2016 14:40:14 +0000 (6 17:40 +0300)]
Change DOUBLE to DOUBLE_TIME

DOUBLE conflicts with some system headers on Windows, causing build
errors if defined.

7 years agot-predict: test components prediction rates
lemonsqueeze [Fri, 29 Apr 2016 22:16:57 +0000 (30 00:16 +0200)]
t-predict: test components prediction rates

7 years agogtp: added pachi-predict command
lemonsqueeze [Fri, 29 Apr 2016 22:11:01 +0000 (30 00:11 +0200)]
gtp: added pachi-predict command

7 years agoreplay engine: sample moves from moggy
lemonsqueeze [Fri, 29 Apr 2016 21:53:47 +0000 (29 23:53 +0200)]
replay engine: sample moves from moggy

new params:

  runs=n      set number of playout runs to sample.
              use runs=1 for raw playout policy

  no_suicide  make sure engine doesn't allow group suicides
              (off by default)

7 years agodcnn engine: plays dcnn best move
lemonsqueeze [Fri, 29 Apr 2016 21:50:29 +0000 (29 23:50 +0200)]
dcnn engine: plays dcnn best move

7 years agoreplay, montecarlo: engine_done
lemonsqueeze [Fri, 29 Apr 2016 21:43:41 +0000 (29 23:43 +0200)]
replay, montecarlo: engine_done

8 years agoMerge pull request #37 from lemonsqueeze/side_ladder_fix
Petr Baudis [Wed, 27 Apr 2016 09:35:29 +0000 (27 11:35 +0200)]
Merge pull request #37 from lemonsqueeze/side_ladder_fix

t-unit + side ladder fixes

8 years agofixed side ladder bug (check countercaptures)
lemonsqueeze [Mon, 25 Apr 2016 09:08:23 +0000 (25 11:08 +0200)]
fixed side ladder bug (check countercaptures)

. . O . . . .
. . O X X X X
. O X O . . .
. O X X O . .
. X X O . . .
. O O . . . .
. . . . . . .

A3 is no ladder

8 years agot-unit: ladder test suite
lemonsqueeze [Mon, 25 Apr 2016 09:05:32 +0000 (25 11:05 +0200)]
t-unit: ladder test suite

8 years agot-unit: display stats at the end
lemonsqueeze [Mon, 25 Apr 2016 08:51:14 +0000 (25 10:51 +0200)]
t-unit: display stats at the end

8 years agot-unit: added sanity checks
lemonsqueeze [Mon, 25 Apr 2016 08:19:05 +0000 (25 10:19 +0200)]
t-unit: added sanity checks

8 years agot-unit: new board format (spaces !)
lemonsqueeze [Mon, 25 Apr 2016 08:16:49 +0000 (25 10:16 +0200)]
t-unit: new board format (spaces !)

t-unit/to_new_format script can be used to convert old sar.t files

8 years agoMerge pull request #36 from lemonsqueeze/dcnn54
Petr Baudis [Wed, 20 Apr 2016 14:25:18 +0000 (20 16:25 +0200)]
Merge pull request #36 from lemonsqueeze/dcnn54

Detlef's 54% dcnn

8 years agouse Detlef's 54% dcnn
xlvector [Mon, 18 Apr 2016 17:10:30 +0000 (18 19:10 +0200)]
use Detlef's 54% dcnn

8 years agofixed README, this is Detlef's 44% dcnn actually
lemonsqueeze [Tue, 19 Apr 2016 18:58:50 +0000 (19 20:58 +0200)]
fixed README, this is Detlef's 44% dcnn actually

8 years agoMerge pull request #34 from sthalik/pr/add-noreturn-to-thread-exit
Petr Baudis [Thu, 7 Apr 2016 12:45:09 +0000 (7 14:45 +0200)]
Merge pull request #34 from sthalik/pr/add-noreturn-to-thread-exit

add attribute noreturn to thread callbacks

8 years agoMerge pull request #33 from sthalik/pr/fix-win32-no-regex
Petr Baudis [Thu, 7 Apr 2016 12:44:53 +0000 (7 14:44 +0200)]
Merge pull request #33 from sthalik/pr/fix-win32-no-regex

the C language doesn't allow for argument name omission

8 years agoadd attribute noreturn to thread callbacks
Stanislaw Halik [Tue, 5 Apr 2016 05:26:27 +0000 (5 07:26 +0200)]
add attribute noreturn to thread callbacks

GNU CC complains about the return value without an actual return.

8 years agothe C language doesn't allow for argument name omission
Stanislaw Halik [Tue, 5 Apr 2016 05:21:42 +0000 (5 07:21 +0200)]
the C language doesn't allow for argument name omission

This fixes the case of missing regex.h on mingw-w64.

8 years agoMerge pull request #31 from xerus/master
Petr Baudis [Thu, 31 Mar 2016 13:32:11 +0000 (31 15:32 +0200)]
Merge pull request #31 from xerus/master

pattern3: Group commands in block after if clause

8 years agopattern3: Group commands in block after if clause
Pavel Grunt [Thu, 31 Mar 2016 11:44:39 +0000 (31 13:44 +0200)]
pattern3: Group commands in block after if clause

Avoid an extra calling pattern_gen()

Silence -Wmisleading-indentation

8 years agoMerge pull request #28 from lemonsqueeze/dcnn
Petr Baudis [Tue, 29 Mar 2016 20:23:07 +0000 (29 22:23 +0200)]
Merge pull request #28 from lemonsqueeze/dcnn

Use dcnn for root priors

8 years agoMerge branch 'pull-req/win32' of https://github.com/sthalik/pachi
Petr Baudis [Tue, 29 Mar 2016 20:18:35 +0000 (29 22:18 +0200)]
Merge branch 'pull-req/win32' of https://github.com/sthalik/pachi

Conflicts:
tactics/nakade.c

8 years agoMerge pull request #25 from sthalik/pull-req/tree-node-size-padding
Petr Baudis [Tue, 29 Mar 2016 17:26:22 +0000 (29 19:26 +0200)]
Merge pull request #25 from sthalik/pull-req/tree-node-size-padding

reduce cache contention by removing struct tree_node padding

8 years agoMerge pull request #26 from lemonsqueeze/tree_suicide_fix
Petr Baudis [Tue, 29 Mar 2016 17:24:50 +0000 (29 19:24 +0200)]
Merge pull request #26 from lemonsqueeze/tree_suicide_fix

tree_expand_node(): check group suicides

8 years agoupdated README
lemonsqueeze [Tue, 29 Mar 2016 14:58:14 +0000 (29 16:58 +0200)]
updated README

8 years agouse dcnn for root priors
lemonsqueeze [Mon, 28 Mar 2016 17:24:39 +0000 (28 19:24 +0200)]
use dcnn for root priors

8 years agocaffe dcnn support
lemonsqueeze [Mon, 28 Mar 2016 17:23:51 +0000 (28 19:23 +0200)]
caffe dcnn support

8 years agoMakefile: c++ rules
lemonsqueeze [Mon, 28 Mar 2016 15:56:48 +0000 (28 17:56 +0200)]
Makefile: c++ rules

8 years agomake g++ happy
lemonsqueeze [Mon, 28 Mar 2016 15:53:27 +0000 (28 17:53 +0200)]
make g++ happy

8 years agoMerge pull request #23 from sometimesfood/fix-compiler-warnings
Petr Baudis [Sat, 26 Mar 2016 01:16:49 +0000 (26 02:16 +0100)]
Merge pull request #23 from sometimesfood/fix-compiler-warnings

Fix compiler warnings

8 years agosilence warning for infinite loop with a return value
Stanislaw Halik [Wed, 16 Mar 2016 15:47:40 +0000 (16 16:47 +0100)]
silence warning for infinite loop with a return value

8 years agowork around GCC reachability warning
Stanislaw Halik [Wed, 16 Mar 2016 15:46:53 +0000 (16 16:46 +0100)]
work around GCC reachability warning

GCC 5.3.0 doesn't seem to know that all call paths inside the switch
statement end in a return. Add the same assert(0) as in the default
case.

8 years agowork around setsockopt prototype differences
Stanislaw Halik [Wed, 16 Mar 2016 15:44:28 +0000 (16 16:44 +0100)]
work around setsockopt prototype differences

win32 defines optval as (const char*) but any other system
as (const void*). It can work for both if val is a char.

8 years agofix GCC cast-to-narrower-type complaints
Stanislaw Halik [Wed, 16 Mar 2016 15:42:44 +0000 (16 16:42 +0100)]
fix GCC cast-to-narrower-type complaints

This came up with win64 systems.

8 years agoutil.h: add missing stdio usage for printf(3) family
Stanislaw Halik [Tue, 15 Mar 2016 12:00:55 +0000 (15 13:00 +0100)]
util.h: add missing stdio usage for printf(3) family

8 years agochat.c: fix unsigned long/int mismatch
Stanislaw Halik [Tue, 15 Mar 2016 16:38:48 +0000 (15 17:38 +0100)]
chat.c: fix unsigned long/int mismatch

8 years agoallow for build without libregex
Stanislaw Halik [Tue, 15 Mar 2016 16:32:33 +0000 (15 17:32 +0100)]
allow for build without libregex

This isn't included by default on mingw-w64 installations, regarded as
user contrib.

cf.
https://sourceforge.net/projects/mingw/files/Other/UserContributed/regex

8 years agofix win32 warning about subtraction by InterlockedExchangeAdd
Stanislaw Halik [Wed, 16 Mar 2016 15:32:48 +0000 (16 16:32 +0100)]
fix win32 warning about subtraction by InterlockedExchangeAdd

It complains about overflow. It probably means that the result can be
unsigned.

8 years agoalways include winsock2.h before windows.h
Stanislaw Halik [Wed, 16 Mar 2016 15:31:39 +0000 (16 16:31 +0100)]
always include winsock2.h before windows.h

Some files like distributed/*.c include winsock. It would be annoying to
change each one of them to

before #include "util.h"

So include winsock header all the time.

8 years agochange mingw-w64 win32 unrecognized printf modifiers
Stanislaw Halik [Mon, 14 Mar 2016 11:20:26 +0000 (14 12:20 +0100)]
change mingw-w64 win32 unrecognized printf modifiers

GCC 5.3.0 win64 doesn't recognize them, despite them working in 4.9.3
win32 with no warnings.

8 years agotree_expand_node(): check group suicides
lemonsqueeze [Wed, 16 Mar 2016 09:41:00 +0000 (16 10:41 +0100)]
tree_expand_node(): check group suicides

board_is_valid_play() allows things like:
  X X X .
  X O * X
use board_is_valid_play_no_suicide() instead

8 years agotree: serialize from correct offset wrt packing
Stanislaw Halik [Tue, 15 Mar 2016 16:08:03 +0000 (15 17:08 +0100)]
tree: serialize from correct offset wrt packing

8 years agostats.h: move floating_t up front
Stanislaw Halik [Tue, 15 Mar 2016 12:06:45 +0000 (15 13:06 +0100)]
stats.h: move floating_t up front

It can be typedef'd to a double causing redundant padding.

8 years agouct/tree.h: reduce padding for cache efficiency for struct tree_node
Stanislaw Halik [Tue, 15 Mar 2016 12:06:10 +0000 (15 13:06 +0100)]
uct/tree.h: reduce padding for cache efficiency for struct tree_node

By moving larger members to the front, we reduce the struct size
from 96 to 88 bytes.

Before further improving cache efficiency, this itself nets a 11% gain
in the amount of evaluations.

% for p in pachi pachi-ok ; do
    for i in $(seq 1 10); do
      echo genmove b |
      nice -n -6 ./$p -t _500 threads=8 2>&1 |
      egrep -o '[0-9]+ games/s,'; echo $p $i done >&2;
    done |
    awk "{ sum += \$1 }; END { print \"$p \" sum }"
done

This is on an Intel i7 with 8 MB of L3 cache and HT enabled.

8 years agoUse fabs instead of abs for floating point values
Sebastian Boehm [Sun, 6 Mar 2016 19:39:35 +0000 (6 20:39 +0100)]
Use fabs instead of abs for floating point values

8 years agoFix GCC compiler warnings
Sebastian Boehm [Sun, 6 Mar 2016 19:15:06 +0000 (6 19:15 +0000)]
Fix GCC compiler warnings

8 years agoMerge pull request #17 from jirkadanek/travis
Petr Baudis [Mon, 8 Feb 2016 23:38:50 +0000 (9 00:38 +0100)]
Merge pull request #17 from jirkadanek/travis

Feature for skipping tests

8 years agojoseki_check(): Fix fatal bug, pointed out by y-ich in issue #18
Petr Baudis [Mon, 8 Feb 2016 23:09:23 +0000 (9 00:09 +0100)]
joseki_check(): Fix fatal bug, pointed out by y-ich in issue #18

8 years agoautotest: Fix gogui handicap patch link
Petr Baudis [Wed, 3 Feb 2016 22:14:01 +0000 (3 23:14 +0100)]
autotest: Fix gogui handicap patch link

8 years agot-unit/test.c: lines starting with exclamation marks are disabled tests
Jirka Daněk [Mon, 1 Feb 2016 19:37:04 +0000 (1 20:37 +0100)]
t-unit/test.c: lines starting with exclamation marks are disabled tests

8 years agoPrevious commit bc21229 already Fixed #3
Jirka Daněk [Mon, 1 Feb 2016 19:00:03 +0000 (1 20:00 +0100)]
Previous commit bc21229 already Fixed #3

8 years agoMerge pull request #16 from jirkadanek/travis
Petr Baudis [Mon, 1 Feb 2016 17:03:32 +0000 (1 18:03 +0100)]
Merge pull request #16 from jirkadanek/travis

Fix CI and tests

8 years agoMerge pull request #12 from lemonsqueeze/is_bad_selfatari
Petr Baudis [Mon, 1 Feb 2016 16:45:36 +0000 (1 17:45 +0100)]
Merge pull request #12 from lemonsqueeze/is_bad_selfatari

is_bad_selfatari() fixes !

8 years agoInstall newer clang in .travis.yml and do not allow failure
Jirka Daněk [Mon, 1 Feb 2016 10:08:37 +0000 (1 11:08 +0100)]
Install newer clang in .travis.yml and do not allow failure

8 years agoSkip a failing test in t-unit/sar.t
Jirka Daněk [Mon, 1 Feb 2016 10:05:50 +0000 (1 11:05 +0100)]
Skip a failing test in t-unit/sar.t

See Issue #3 for details

8 years agoMerge pull request #14 from lemonsqueeze/gogui_gfx
Petr Baudis [Mon, 1 Feb 2016 02:03:43 +0000 (1 03:03 +0100)]
Merge pull request #14 from lemonsqueeze/gogui_gfx

GoGui gfx analyze commands

8 years agoMerge pull request #15 from jirkadanek/travis
Petr Baudis [Mon, 1 Feb 2016 01:45:55 +0000 (1 02:45 +0100)]
Merge pull request #15 from jirkadanek/travis

Configure Continuous Integration (Travis)

8 years agoMerge pull request #13 from lemonsqueeze/autotest_show_diagram
Petr Baudis [Mon, 1 Feb 2016 01:42:30 +0000 (1 02:42 +0100)]
Merge pull request #13 from lemonsqueeze/autotest_show_diagram

autotest-show-diagram

8 years agounittest(): exit(EXIT_FAILURE) if some tests fail
Jirka Daněk [Sun, 31 Jan 2016 18:54:43 +0000 (31 19:54 +0100)]
unittest(): exit(EXIT_FAILURE) if some tests fail

8 years agoAdd .travis.yml configuration
Jirka Daněk [Sun, 31 Jan 2016 18:29:58 +0000 (31 19:29 +0100)]
Add .travis.yml configuration

8 years agogogui-analyze_commands (uct only)
lemonsqueeze [Fri, 29 Jan 2016 21:10:08 +0000 (29 22:10 +0100)]
gogui-analyze_commands (uct only)

8 years agogogui-live_gfx best_moves|best_seq|winrates
lemonsqueeze [Fri, 29 Jan 2016 20:59:21 +0000 (29 21:59 +0100)]
gogui-live_gfx best_moves|best_seq|winrates

8 years agogogui-winrates
lemonsqueeze [Fri, 29 Jan 2016 20:56:50 +0000 (29 21:56 +0100)]
gogui-winrates

8 years agogogui-best_moves
lemonsqueeze [Fri, 29 Jan 2016 20:52:08 +0000 (29 21:52 +0100)]
gogui-best_moves

8 years agogogui-owner_map
lemonsqueeze [Fri, 29 Jan 2016 20:38:09 +0000 (29 21:38 +0100)]
gogui-owner_map