This has been on my mind for a little while: using neighborhood constraints to develop hexagonal black and white tilings. I was curious what kinds of textures would show up using different subsets of neighborhoods. I only just realized that this is amenable to using a SAT solver instead of trying to code up an ad hoc placement algorithm. (Note: my ultimate goal is to work on tilings that do not correspond directly to to Moore or hex CAs, so there may not be existing software in the CGOL community.)
Another way to think of them is as still lifes in hexagonal CAs with toroidal wrapping.
This special purpose python script hexsat.py can generate the SAT problem as a DIMACS file for lingeling:
Code: Select all
import re
import sys
m = int(sys.argv[1])
n = int(sys.argv[2])
birth = re.sub(r'([0-9])', ' \\1', sys.argv[3]).strip().split(" ")
survival = re.sub(r'([0-9])', ' \\1', sys.argv[4]).strip().split(" ")
HEXRULES = {
'0': ['000000'],
'1': ['100000', '010000', '001000', '000100', '000010', '000001'],
'2o': ['110000', '011000', '001100', '000110', '100001', '000011'],
'2m': ['101000', '010100', '100010', '001010', '010001', '000101'],
'3o': ['111000', '011100', '001110', '110001', '100011', '000111'],
'2p': ['100100', '010010', '001001'],
'3mr': ['101100', '110010', '010110', '011001', '100101', '001011'],
'3ml': ['110100', '011010', '100110', '101001', '001101', '010011'],
'4o': ['111100', '011110', '111001', '110011', '100111', '001111'],
'3p': ['101010', '010101'],
'4m': ['111010', '101110', '110101', '011101', '101011', '010111'],
'4p': ['110110', '101101', '011011'],
'5': ['111110', '111101', '111011', '110111', '101111', '011111'],
'6': ['111111']
}
def ix(i, j):
return n * i + j + 1
def neighborhood(i, j):
neighbors = [ix(i, j)]
for (di, dj) in [(-1, -1), (-1, 0), (0, 1), (1, 1), (1, 0), (0, -1)]:
neighbors.append(ix((i + di) % m, (j + dj) % n))
return neighbors
def clauses(i, j, live, dead):
cells = neighborhood(i, j)
res = []
for shape in sorted(HEXRULES):
if shape not in live and shape not in dead:
for ngh in HEXRULES[shape]:
res.append([-val if bit == '1' else val for (val, bit) in zip(cells[1:], ngh)])
elif shape not in live:
for ngh in HEXRULES[shape]:
res.append([-cells[0]] + [-val if bit == '1' else val for (val, bit) in zip(cells[1:], ngh)])
elif shape not in dead:
for ngh in HEXRULES[shape]:
res.append([cells[0]] + [-val if bit == '1' else val for (val, bit) in zip(cells[1:], ngh)])
return res
dead = [x for x in HEXRULES if x not in birth]
print "p cnf %d %d" % (m * n, len(clauses(0, 0, survival, dead)) * m * n)
for i in range(m):
for j in range(n):
for clause in clauses(i, j, survival, dead):
print " ".join([str(x) for x in clause]), 0
Code: Select all
python hexsat.py 64 64 012m2o2p3ml3mr6 2m2p3p > sat.txt
Code: Select all
python hexsat.py 32 32 02o 2m > sat.txt
The first was one I hand-designed to get a specific topology. The second is like a hex CA I have written about elsewhere, but without survival for 3 and 4 neighbors. Note that I have added "0" to birth rules just to force the solver not to settle on an empty solution. I also separate 3m into 3ml and 3mr, since this neighborhood is not rotationally symmetric.
To get the patterns, use lingeling and then decode the results using a second script "decode.py" that produces "rle" format except not actually compressed by run length. It can be copy-pasted into Golly.
Code: Select all
./solvers/lingeling sat.txt | python decode.py 64 64
I found that lingeling is quicker at finding a solution for the hand-designed rule. I was not able to generate a 64x64 pattern for the other hex rule so I settled at 32x32 (I have since solved sizes over 40x40).
In the second rule, the only way for a cell to survive is to have live two neighbors 120° apart. Hence you have to pack everything into loops leaving no empty cell neighborhoods. That's probably why it works out to be a harder optimization for the SAT solver. It still does a very good job considering it is not designed for that ad hoc task.
Here's decode.py
Code: Select all
import sys
m = int(sys.argv[1])
n = int(sys.argv[2])
def ix(i, j):
return n * i + j + 1
cells = [[0] * n for i in range(m)]
for line in sys.stdin:
toks = line.split()
if toks[0] == 'v':
for x in toks[1:]:
ix = int(x)
if ix > 0:
cells[(ix - 1) / n][(ix - 1) % n] = 1
print "x = %d, y = %d" % (n, m)
for row in cells:
print "".join(["o" if x else "b" for x in row]) + "$"
print "!"
Code: Select all
x = 64, y = 64, rule = B12m2o2p3m6/S2m2p3pH:T64,64
2bo5b2ob2ob2ob2obo3bobobob2obob2o2bobo2b3obo2bo2b2obo2bob2o$obob5o2bo
2bobo3bob3o2b2obo2bobob3obob2o2bob2ob3obobobobo$b2obo4b3ob2obob2ob2o2b
obobob3obobo2bob2ob2obo2b2o2bobob2obo$2ob2ob3o3b2o2bobobo2b2ob2obobo2b
2obob2obo2bobob3o2b2obobobobo$3bo2bo2b4ob2obobob3ob2obob2ob2obob2o2bob
2obobo2b3o2bobobobo$b2ob2ob3o4bobob2obo3bobob2o2bobob2ob3obo2bobo2bo2b
3obobobo$bobo2b2o2b4obob2ob2ob2obobo2b2obob2o2bo2bob2obob3ob2o2bobob2o
$2obob2ob2o4b2obo2bo2bobobob3ob2obo2b2o2bobob2obo2b2ob2obobo$o2bobobo
2b5obob3ob2obobobo2bo2bob3ob3obobobob2o2bo2b2obobo$b3obobob2o5bobo2b2o
bob2obob2ob2obo3bo3bobobobob3ob2o2bobo$o3bobob2ob6obob2obob2o2bobo2bob
ob3ob4obobobobo2b2ob2obo$ob3obobobo6b2obo2bobob2obob3obobo2bo4bobobobo
bobobo2bobo$2bo3bobobob5o2bob2ob2obobob2o3bobob2ob3obobobobob2obob2obo
$3ob3obobobo4b3obobo2b2obobob3ob2obo2bo2bobob2obobo2bobobo$o3bo2bob2ob
ob3o4bo2b2o2bob2obo2bo3bob2ob2obobo2bobob2obobo$ob3o2bobo2bobo2b4ob3ob
2obo2bobobob3obo2bob2obob2obobo2bobo$obo2b3obob2obo2bo3bo3bo2bob2obob
2obo2bob3obob2obob2obob2obo$obo2bo2b2obobob3ob2ob3ob2obo2bobo3bob2obo
3bobo2bobobob2ob2o$bob3ob2ob2o2bo3b2obo3bo2bob2obob4obobob4obob2obobob
o2bobo$2obo2b2obo2b3ob2o2bob3ob2ob2obobo4bobobo5bobobob2obob2o$ob2ob2o
2bob2o2b2ob2obo3bo2bo2bob2ob3obobob5ob2obobob2obob2o$2bo2bob3obob2o3bo
bob3ob2ob2obo2b2o2bob2obo4b2ob2obobob2obo$3ob2obo2b2obob3obob2o2b2ob2o
bob3obobobob2ob4o2bobob2obobobo$3b2o2bob2ob2obo2b2obo2b2o2bo2bobo2bob
2obobob2o4b2o2b2obobob2o$b2o2b3obo2bob2o2bo2bob2o2b2ob2obo2bobo2bobobo
2b4ob3obobobo$2ob3o2b2ob2obob3ob2obo2b2ob2obob3obob2obobob2o3bo4bobobo
bo$3bo3b2ob2ob2obo3bobob3obo3bobo3bobo2bobobo2b3ob3ob2obobo$b2ob4o2bob
o2bob3obob2o2bob3ob2ob2obob3obobob2o3bo2b2ob2obo$bob2o4b2obob2obo2bobo
2b3obo2b2ob2obob2o2bob2obo2b3o2bobo3bo$bobob5obob2ob2ob2obob2o3bob2o2b
obobo3b2obo2bob2o2b3obob3o$bobobo4bob2o2bo2bob2obob4obo2b2obobob3obob
3obobobo2bob2o$2obobob4obo2b2ob2obo2bobo3b2ob2o2bobobo2bobo3bobob2o2bo
bob2o$2b2obobo3b2ob2o2bobob3obob3ob2ob2obob2ob2obob2obob2ob3obobo$2o3b
obob2o2b2o2b2obobo2b2obo2bo2bo2b2obob2obob2obob2obo3bobobo$2b3ob2obob
2o2b3obobob2o2bob2ob3ob2ob2obobobo2bobo2bob3ob2obo$obo2b2ob2obob3o2bob
ob2ob2obo2bo3b2o2bobobobob2obob2ob2o2b2obo$b2o2bo2bo2bobo3b2obobobo2bo
b3ob2o2b3obobobobobob2ob2obobobobo$bob3ob2ob2obob3ob2obo2b2obo4bob2o3b
2obobobobobo2bobob2obobo$bobo3bob2ob2obo2bo2bob3obob5obob3o2bobobobob
2ob2o2bo3bobo$bobob3obobo2bob2ob2obo3bob2o4bobo3b2obobobob2ob2ob3ob3ob
o$bobobo2b2o2b2obo2bo2b2ob2ob2ob5obob2o2bobob2obobo3bo2b2o3bo$2obobo2b
ob3obob3ob2ob2obo2bo5bob2ob2obob2ob2obob2ob3o2b2o$2bobob3obo3bobo3bo2b
obob2ob6obo2bobobo3bo2bobob2o3b2obo$2obob2o2b2ob3obob3ob2obobob2o6bob
2o2b2ob3ob2obobob4obo$obob2ob2o3bo2b2obo3bobob2obo2b6obobobob2o3bobobo
bo5bo$obobo2bob4o2bo2bob3o2b2obob3o5bobob2obo2b3obobobob5o$b2obob2obo
3b3ob2obo2b3obob2o2b5obobo2b2ob2o2bob2obobo4bo$bob2obo2bob2o4bo2bob2o
2bob2o2b2o4bobob2o2b2obo2bo2b2obob4o$obo2bob3obob5ob2obobobobo2b2o2b3o
bobo2b3obob3ob2obob2o$bob2obo4bobo4b2obobob2obob2o2b2o2b2obob2o2bobo4b
obob2ob3o$obo2bob4obob4o2bobob2ob2obo2b2obobobob2ob2ob2ob4obobobo$bob
3obo3bob2o3b2obob2obo2bob3obob2obobobo2bo2b2o4bobobob2o$obo3b2ob2ob2ob
3o2b2obobob3obo2bobo3bobo2b2ob3o2b4obobobo$bob4o2bobo2bo3b2o3bo2bo3bob
2obob3obob3ob2o2b3o3bob2obo$2obo3b2obob2ob3o2b3ob3ob3obobobo3bob2o2bo
2b2o3b3ob2obobo$2b2ob3obobo2bo3b3o2b2o2b2o2bobob2ob2obo2b2ob3ob3o3bo3b
obo$2o2b2o2bobob2ob4o2bobob3ob2obobo3bobob3ob2o3bo2b3ob3obo$ob3ob2obob
o2b2o3b2ob2obo3bobobob4obobo3bo2b2ob2o3b2o2b2o$bo4bobob2ob2o2b3ob2ob2o
b2obob2obo3bobob3ob3ob2ob3o2bobobo$ob5obobob2o2b2o3bo2bob2ob2obo2bob3o
bobo2b2o2bo3bo2b2ob2o$obo4b2obobo2b2o2b3ob2obobo2bob2ob2o3bobob2o2b2ob
2obobob2ob2o$bob5obobob3ob3o2b2ob2obob2obob2o2b2ob2obo2b2ob2obob2obobo
$obo5bob2obo2bo3bobo2bobob2obobo3b2obo2b2ob2o2bo2bobo2bobobo$bob5obo2b
2ob2ob2ob2ob2o2bo2bob2ob3obob2o3bob2ob2obob3obobo!
Code: Select all
x = 32, y = 32, rule = B2o/S2mH:T32,32
b2ob2o2bob2o2b2ob2o4bob2o2bobo$bo2bo2b2obob2o2b2ob2ob2obobobobo$obo2bo
bo3bo2bo6b2o3b2o2bo$obob2o2bob2ob2ob2ob2o3b2o3b2o$bob2o2b2obo2bo2bob2o
b2obob2obo$bo4b2o3b2obo2bo5bobo2bob2o$obo2b2o2b2o2b2ob2ob2ob2obo2bo$ob
ob2o3bobo4bo2bob2o3b2ob2o$bob2o2b2ob2o2b2ob2obo3b2o2bo2bo$bo5bobo3b2ob
o2b2o2b2obobo2bo$obob2o2b2o2b2o2bo5b2o2bo2bo$obobob2o3b2o4bob2obo4bobo
$bobobo2b2obo4b2obobob2ob2o2bo$2obobo4bob2ob2o3b2o3b2o2b2o$o3bob2o2bo
3b2o2b2o3b2o4bo$bob2o3b2obo5b2ob2obob2o3bo$bobo2b2o2b2o2b2obo4bobo2b2o
bo$2bobobobo4b2obobo2b2obo4bobo$b2obo2b2ob2obo2bobob2o3b2ob2obo$2o3b2o
3bobobo2bob2o2b2o2b2o$3b2o2b2o2b2obo2bo5bob2o3b2o$ob2obo3b2o4bo2bo2b2o
bo2bob2o$obo2bo5b2ob2ob2ob2ob2ob2obo$bob2ob2ob2o2b2o2bo2bo5bo3bo$bo3bo
2b2ob2o5bo2bob2o2b2obo$ob2obo7bob2obo2bobob2o2bobo$bo2bob2ob2ob2obobob
o2bobo2bobo$2ob2o3b2ob2o3b2obob2obob2o2bo$o2bo2b2o6b2o4b2o3b2o2b2o$bo
2bobob2ob2obobob2o3b2o4bo$bo2bo2bo2b2obob2obobob2ob2o3bo$2bo2bobo5bo5b
2obo4b2obo!
Code: Select all
x = 128, y = 128, rule = B2o/S2mH:T128,128
b2ob2o2bob2o2b2ob2o4bob2o2bobob2ob2o2bob2o2b2ob2o4bob2o2bobob2ob2o2bob
2o2b2ob2o4bob2o2bobob2ob2o2bob2o2b2ob2o4bob2o2bobo$bo2bo2b2obob2o2b2ob
2ob2obobobobobo2bo2b2obob2o2b2ob2ob2obobobobobo2bo2b2obob2o2b2ob2ob2ob
obobobobo2bo2b2obob2o2b2ob2ob2obobobobo$obo2bobo3bo2bo6b2o3b2o2bobobo
2bobo3bo2bo6b2o3b2o2bobobo2bobo3bo2bo6b2o3b2o2bobobo2bobo3bo2bo6b2o3b
2o2bo$obob2o2bob2ob2ob2ob2o3b2o3b2obobob2o2bob2ob2ob2ob2o3b2o3b2obobob
2o2bob2ob2ob2ob2o3b2o3b2obobob2o2bob2ob2ob2ob2o3b2o3b2o$bob2o2b2obo2bo
2bob2ob2obob2obo3bob2o2b2obo2bo2bob2ob2obob2obo3bob2o2b2obo2bo2bob2ob
2obob2obo3bob2o2b2obo2bo2bob2ob2obob2obo$bo4b2o3b2obo2bo5bobo2bob2obo
4b2o3b2obo2bo5bobo2bob2obo4b2o3b2obo2bo5bobo2bob2obo4b2o3b2obo2bo5bobo
2bob2o$obo2b2o2b2o2b2ob2ob2ob2obo2bo3bobo2b2o2b2o2b2ob2ob2ob2obo2bo3bo
bo2b2o2b2o2b2ob2ob2ob2obo2bo3bobo2b2o2b2o2b2ob2ob2ob2obo2bo$obob2o3bob
o4bo2bob2o3b2ob2obobob2o3bobo4bo2bob2o3b2ob2obobob2o3bobo4bo2bob2o3b2o
b2obobob2o3bobo4bo2bob2o3b2ob2o$bob2o2b2ob2o2b2ob2obo3b2o2bo2bobob2o2b
2ob2o2b2ob2obo3b2o2bo2bobob2o2b2ob2o2b2ob2obo3b2o2bo2bobob2o2b2ob2o2b
2ob2obo3b2o2bo2bo$bo5bobo3b2obo2b2o2b2obobo2bobo5bobo3b2obo2b2o2b2obob
o2bobo5bobo3b2obo2b2o2b2obobo2bobo5bobo3b2obo2b2o2b2obobo2bo$obob2o2b
2o2b2o2bo5b2o2bo2bo2bobob2o2b2o2b2o2bo5b2o2bo2bo2bobob2o2b2o2b2o2bo5b
2o2bo2bo2bobob2o2b2o2b2o2bo5b2o2bo2bo$obobob2o3b2o4bob2obo4bobo2bobobo
b2o3b2o4bob2obo4bobo2bobobob2o3b2o4bob2obo4bobo2bobobob2o3b2o4bob2obo
4bobo$bobobo2b2obo4b2obobob2ob2o2bo2bobobo2b2obo4b2obobob2ob2o2bo2bobo
bo2b2obo4b2obobob2ob2o2bo2bobobo2b2obo4b2obobob2ob2o2bo$2obobo4bob2ob
2o3b2o3b2o2b2ob2obobo4bob2ob2o3b2o3b2o2b2ob2obobo4bob2ob2o3b2o3b2o2b2o
b2obobo4bob2ob2o3b2o3b2o2b2o$o3bob2o2bo3b2o2b2o3b2o4bo2bo3bob2o2bo3b2o
2b2o3b2o4bo2bo3bob2o2bo3b2o2b2o3b2o4bo2bo3bob2o2bo3b2o2b2o3b2o4bo$bob
2o3b2obo5b2ob2obob2o3bo2bob2o3b2obo5b2ob2obob2o3bo2bob2o3b2obo5b2ob2ob
ob2o3bo2bob2o3b2obo5b2ob2obob2o3bo$bobo2b2o2b2o2b2obo4bobo2b2obo2bobo
2b2o2b2o2b2obo4bobo2b2obo2bobo2b2o2b2o2b2obo4bobo2b2obo2bobo2b2o2b2o2b
2obo4bobo2b2obo$2bobobobo4b2obobo2b2obo4bobo2bobobobo4b2obobo2b2obo4bo
bo2bobobobo4b2obobo2b2obo4bobo2bobobobo4b2obobo2b2obo4bobo$b2obo2b2ob
2obo2bobob2o3b2ob2obob2obo2b2ob2obo2bobob2o3b2ob2obob2obo2b2ob2obo2bob
ob2o3b2ob2obob2obo2b2ob2obo2bobob2o3b2ob2obo$2o3b2o3bobobo2bob2o2b2o2b
2o3b2o3b2o3bobobo2bob2o2b2o2b2o3b2o3b2o3bobobo2bob2o2b2o2b2o3b2o3b2o3b
obobo2bob2o2b2o2b2o$3b2o2b2o2b2obo2bo5bob2o3b2o3b2o2b2o2b2obo2bo5bob2o
3b2o3b2o2b2o2b2obo2bo5bob2o3b2o3b2o2b2o2b2obo2bo5bob2o3b2o$ob2obo3b2o
4bo2bo2b2obo2bob2obob2obo3b2o4bo2bo2b2obo2bob2obob2obo3b2o4bo2bo2b2obo
2bob2obob2obo3b2o4bo2bo2b2obo2bob2o$obo2bo5b2ob2ob2ob2ob2ob2obo2bobo2b
o5b2ob2ob2ob2ob2ob2obo2bobo2bo5b2ob2ob2ob2ob2ob2obo2bobo2bo5b2ob2ob2ob
2ob2ob2obo$bob2ob2ob2o2b2o2bo2bo5bo3bo2bob2ob2ob2o2b2o2bo2bo5bo3bo2bob
2ob2ob2o2b2o2bo2bo5bo3bo2bob2ob2ob2o2b2o2bo2bo5bo3bo$bo3bo2b2ob2o5bo2b
ob2o2b2obo2bo3bo2b2ob2o5bo2bob2o2b2obo2bo3bo2b2ob2o5bo2bob2o2b2obo2bo
3bo2b2ob2o5bo2bob2o2b2obo$ob2obo7bob2obo2bobob2o2bob2ob2obo7bob2obo2bo
bob2o2bob2ob2obo7bob2obo2bobob2o2bob2ob2obo7bob2obo2bobob2o2bobo$bo2bo
b2ob2ob2obobobo2bobo2bobo3bo2bob2ob2ob2obobobo2bobo2bobo3bo2bob2ob2ob
2obobobo2bobo2bobo3bo2bob2ob2ob2obobobo2bobo2bobo$2ob2o3b2ob2o3b2obob
2obob2o2bob2ob2o3b2ob2o3b2obob2obob2o2bob2ob2o3b2ob2o3b2obob2obob2o2bo
b2ob2o3b2ob2o3b2obob2obob2o2bo$o2bo2b2o6b2o4b2o3b2o2b2obo2bo2b2o6b2o4b
2o3b2o2b2obo2bo2b2o6b2o4b2o3b2o2b2obo2bo2b2o6b2o4b2o3b2o2b2o$bo2bobob
2ob2obobob2o3b2o4bo3bo2bobob2ob2obobob2o3b2o4bo3bo2bobob2ob2obobob2o3b
2o4bo3bo2bobob2ob2obobob2o3b2o4bo$bo2bo2bo2b2obob2obobob2ob2o3bo2bo2bo
2bo2b2obob2obobob2ob2o3bo2bo2bo2bo2b2obob2obobob2ob2o3bo2bo2bo2bo2b2ob
ob2obobob2ob2o3bo$2bo2bobo5bo5b2obo4b2obo3bo2bobo5bo5b2obo4b2obo3bo2bo
bo5bo5b2obo4b2obo3bo2bobo5bo5b2obo4b2obo$b2ob2o2bob2o2b2ob2o4bob2o2bob
ob2ob2o2bob2o2b2ob2o4bob2o2bobob2ob2o2bob2o2b2ob2o4bob2o2bobob2ob2o2bo
b2o2b2ob2o4bob2o2bobo$bo2bo2b2obob2o2b2ob2ob2obobobobobo2bo2b2obob2o2b
2ob2ob2obobobobobo2bo2b2obob2o2b2ob2ob2obobobobobo2bo2b2obob2o2b2ob2ob
2obobobobo$obo2bobo3bo2bo6b2o3b2o2bobobo2bobo3bo2bo6b2o3b2o2bobobo2bob
o3bo2bo6b2o3b2o2bobobo2bobo3bo2bo6b2o3b2o2bo$obob2o2bob2ob2ob2ob2o3b2o
3b2obobob2o2bob2ob2ob2ob2o3b2o3b2obobob2o2bob2ob2ob2ob2o3b2o3b2obobob
2o2bob2ob2ob2ob2o3b2o3b2o$bob2o2b2obo2bo2bob2ob2obob2obo3bob2o2b2obo2b
o2bob2ob2obob2obo3bob2o2b2obo2bo2bob2ob2obob2obo3bob2o2b2obo2bo2bob2ob
2obob2obo$bo4b2o3b2obo2bo5bobo2bob2obo4b2o3b2obo2bo5bobo2bob2obo4b2o3b
2obo2bo5bobo2bob2obo4b2o3b2obo2bo5bobo2bob2o$obo2b2o2b2o2b2ob2ob2ob2ob
o2bo3bobo2b2o2b2o2b2ob2ob2ob2obo2bo3bobo2b2o2b2o2b2ob2ob2ob2obo2bo3bob
o2b2o2b2o2b2ob2ob2ob2obo2bo$obob2o3bobo4bo2bob2o3b2ob2obobob2o3bobo4bo
2bob2o3b2ob2obobob2o3bobo4bo2bob2o3b2ob2obobob2o3bobo4bo2bob2o3b2ob2o$
bob2o2b2ob2o2b2ob2obo3b2o2bo2bobob2o2b2ob2o2b2ob2obo3b2o2bo2bobob2o2b
2ob2o2b2ob2obo3b2o2bo2bobob2o2b2ob2o2b2ob2obo3b2o2bo2bo$bo5bobo3b2obo
2b2o2b2obobo2bobo5bobo3b2obo2b2o2b2obobo2bobo5bobo3b2obo2b2o2b2obobo2b
obo5bobo3b2obo2b2o2b2obobo2bo$obob2o2b2o2b2o2bo5b2o2bo2bo2bobob2o2b2o
2b2o2bo5b2o2bo2bo2bobob2o2b2o2b2o2bo5b2o2bo2bo2bobob2o2b2o2b2o2bo5b2o
2bo2bo$obobob2o3b2o4bob2obo4bobo2bobobob2o3b2o4bob2obo4bobo2bobobob2o
3b2o4bob2obo4bobo2bobobob2o3b2o4bob2obo4bobo$bobobo2b2obo4b2obobob2ob
2o2bo2bobobo2b2obo4b2obobob2ob2o2bo2bobobo2b2obo4b2obobob2ob2o2bo2bobo
bo2b2obo4b2obobob2ob2o2bo$2obobo4bob2ob2o3b2o3b2o2b2ob2obobo4bob2ob2o
3b2o3b2o2b2ob2obobo4bob2ob2o3b2o3b2o2b2ob2obobo4bob2ob2o3b2o3b2o2b2o$o
3bob2o2bo3b2o2b2o3b2o4bo2bo3bob2o2bo3b2o2b2o3b2o4bo2bo3bob2o2bo3b2o2b
2o3b2o4bo2bo3bob2o2bo3b2o2b2o3b2o4bo$bob2o3b2obo5b2ob2obob2o3bo2bob2o
3b2obo5b2ob2obob2o3bo2bob2o3b2obo5b2ob2obob2o3bo2bob2o3b2obo5b2ob2obob
2o3bo$bobo2b2o2b2o2b2obo4bobo2b2obo2bobo2b2o2b2o2b2obo4bobo2b2obo2bobo
2b2o2b2o2b2obo4bobo2b2obo2bobo2b2o2b2o2b2obo4bobo2b2obo$2bobobobo4b2ob
obo2b2obo4bobo2bobobobo4b2obobo2b2obo4bobo2bobobobo4b2obobo2b2obo4bobo
2bobobobo4b2obobo2b2obo4bobo$b2obo2b2ob2obo2bobob2o3b2ob2obob2obo2b2ob
2obo2bobob2o3b2ob2obob2obo2b2ob2obo2bobob2o3b2ob2obob2obo2b2ob2obo2bob
ob2o3b2ob2obo$2o3b2o3bobobo2bob2o2b2o2b2o3b2o3b2o3bobobo2bob2o2b2o2b2o
3b2o3b2o3bobobo2bob2o2b2o2b2o3b2o3b2o3bobobo2bob2o2b2o2b2o$3b2o2b2o2b
2obo2bo5bob2o3b2o3b2o2b2o2b2obo2bo5bob2o3b2o3b2o2b2o2b2obo2bo5bob2o3b
2o3b2o2b2o2b2obo2bo5bob2o3b2o$ob2obo3b2o4bo2bo2b2obo2bob2obob2obo3b2o
4bo2bo2b2obo2bob2obob2obo3b2o4bo2bo2b2obo2bob2obob2obo3b2o4bo2bo2b2obo
2bob2o$obo2bo5b2ob2ob2ob2ob2ob2obo2bobo2bo5b2ob2ob2ob2ob2ob2obo2bobo2b
o5b2ob2ob2ob2ob2ob2obo2bobo2bo5b2ob2ob2ob2ob2ob2obo$bob2ob2ob2o2b2o2bo
2bo5bo3bo2bob2ob2ob2o2b2o2bo2bo5bo3bo2bob2ob2ob2o2b2o2bo2bo5bo3bo2bob
2ob2ob2o2b2o2bo2bo5bo3bo$bo3bo2b2ob2o5bo2bob2o2b2obo2bo3bo2b2ob2o5bo2b
ob2o2b2obo2bo3bo2b2ob2o5bo2bob2o2b2obo2bo3bo2b2ob2o5bo2bob2o2b2obo$ob
2obo7bob2obo2bobob2o2bob2ob2obo7bob2obo2bobob2o2bob2ob2obo7bob2obo2bob
ob2o2bob2ob2obo7bob2obo2bobob2o2bobo$bo2bob2ob2ob2obobobo2bobo2bobo3bo
2bob2ob2ob2obobobo2bobo2bobo3bo2bob2ob2ob2obobobo2bobo2bobo3bo2bob2ob
2ob2obobobo2bobo2bobo$2ob2o3b2ob2o3b2obob2obob2o2bob2ob2o3b2ob2o3b2obo
b2obob2o2bob2ob2o3b2ob2o3b2obob2obob2o2bob2ob2o3b2ob2o3b2obob2obob2o2b
o$o2bo2b2o6b2o4b2o3b2o2b2obo2bo2b2o6b2o4b2o3b2o2b2obo2bo2b2o6b2o4b2o3b
2o2b2obo2bo2b2o6b2o4b2o3b2o2b2o$bo2bobob2ob2obobob2o3b2o4bo3bo2bobob2o
b2obobob2o3b2o4bo3bo2bobob2ob2obobob2o3b2o4bo3bo2bobob2ob2obobob2o3b2o
4bo$bo2bo2bo2b2obob2obobob2ob2o3bo2bo2bo2bo2b2obob2obobob2ob2o3bo2bo2b
o2bo2b2obob2obobob2ob2o3bo2bo2bo2bo2b2obob2obobob2ob2o3bo$2bo2bobo5bo
5b2obo4b2obo3bo2bobo5bo5b2obo4b2obo3bo2bobo5bo5b2obo4b2obo3bo2bobo5bo
5b2obo4b2obo$b2ob2o2bob2o2b2ob2o4bob2o2bobob2ob2o2bob2o2b2ob2o4bob2o2b
obob2ob2o2bob2o2b2ob2o4bob2o2bobob2ob2o2bob2o2b2ob2o4bob2o2bobo$bo2bo
2b2obob2o2b2ob2ob2obobobobobo2bo2b2obob2o2b2ob2ob2obobobobobo2bo2b2obo
b2o2b2ob2ob2obobobobobo2bo2b2obob2o2b2ob2ob2obobobobo$obo2bobo3bo2bo6b
2o3b2o2bobobo2bobo3bo2bo6b2o3b2o2bobobo2bobo3bo2bo6b2o3b2o2bobobo2bobo
3bo2bo6b2o3b2o2bo$obob2o2bob2ob2ob2ob2o3b2o3b2obobob2o2bob2ob2ob2ob2o
3b2o3b2obobob2o2bob2ob2ob2ob2o3b2o3b2obobob2o2bob2ob2ob2ob2o3b2o3b2o$b
ob2o2b2obo2bo2bob2ob2obob2obo3bob2o2b2obo2bo2bob2ob2obob2obo3bob2o2b2o
bo2bo2bob2ob2obob2obo3bob2o2b2obo2bo2bob2ob2obob2obo$bo4b2o3b2obo2bo5b
obo2bob2obo4b2o3b2obo2bo5bobo2bob2obo4b2o3b2obo2bo5bobo2bob2obo4b2o3b
2obo2bo5bobo2bob2o$obo2b2o2b2o2b2ob2ob2ob2obo2bo3bobo2b2o2b2o2b2ob2ob
2ob2obo2bo3bobo2b2o2b2o2b2ob2ob2ob2obo2bo3bobo2b2o2b2o2b2ob2ob2ob2obo
2bo$obob2o3bobo4bo2bob2o3b2ob2obobob2o3bobo4bo2bob2o3b2ob2obobob2o3bob
o4bo2bob2o3b2ob2obobob2o3bobo4bo2bob2o3b2ob2o$bob2o2b2ob2o2b2ob2obo3b
2o2bo2bobob2o2b2ob2o2b2ob2obo3b2o2bo2bobob2o2b2ob2o2b2ob2obo3b2o2bo2bo
bob2o2b2ob2o2b2ob2obo3b2o2bo2bo$bo5bobo3b2obo2b2o2b2obobo2bobo5bobo3b
2obo2b2o2b2obobo2bobo5bobo3b2obo2b2o2b2obobo2bobo5bobo3b2obo2b2o2b2obo
bo2bo$obob2o2b2o2b2o2bo5b2o2bo2bo2bobob2o2b2o2b2o2bo5b2o2bo2bo2bobob2o
2b2o2b2o2bo5b2o2bo2bo2bobob2o2b2o2b2o2bo5b2o2bo2bo$obobob2o3b2o4bob2ob
o4bobo2bobobob2o3b2o4bob2obo4bobo2bobobob2o3b2o4bob2obo4bobo2bobobob2o
3b2o4bob2obo4bobo$bobobo2b2obo4b2obobob2ob2o2bo2bobobo2b2obo4b2obobob
2ob2o2bo2bobobo2b2obo4b2obobob2ob2o2bo2bobobo2b2obo4b2obobob2ob2o2bo$
2obobo4bob2ob2o3b2o3b2o2b2ob2obobo4bob2ob2o3b2o3b2o2b2ob2obobo4bob2ob
2o3b2o3b2o2b2ob2obobo4bob2ob2o3b2o3b2o2b2o$o3bob2o2bo3b2o2b2o3b2o4bo2b
o3bob2o2bo3b2o2b2o3b2o4bo2bo3bob2o2bo3b2o2b2o3b2o4bo2bo3bob2o2bo3b2o2b
2o3b2o4bo$bob2o3b2obo5b2ob2obob2o3bo2bob2o3b2obo5b2ob2obob2o3bo2bob2o
3b2obo5b2ob2obob2o3bo2bob2o3b2obo5b2ob2obob2o3bo$bobo2b2o2b2o2b2obo4bo
bo2b2obo2bobo2b2o2b2o2b2obo4bobo2b2obo2bobo2b2o2b2o2b2obo4bobo2b2obo2b
obo2b2o2b2o2b2obo4bobo2b2obo$2bobobobo4b2obobo2b2obo4bobo2bobobobo4b2o
bobo2b2obo4bobo2bobobobo4b2obobo2b2obo4bobo2bobobobo4b2obobo2b2obo4bob
o$b2obo2b2ob2obo2bobob2o3b2ob2obob2obo2b2ob2obo2bobob2o3b2ob2obob2obo
2b2ob2obo2bobob2o3b2ob2obob2obo2b2ob2obo2bobob2o3b2ob2obo$2o3b2o3bobob
o2bob2o2b2o2b2o3b2o3b2o3bobobo2bob2o2b2o2b2o3b2o3b2o3bobobo2bob2o2b2o
2b2o3b2o3b2o3bobobo2bob2o2b2o2b2o$3b2o2b2o2b2obo2bo5bob2o3b2o3b2o2b2o
2b2obo2bo5bob2o3b2o3b2o2b2o2b2obo2bo5bob2o3b2o3b2o2b2o2b2obo2bo5bob2o
3b2o$ob2obo3b2o4bo2bo2b2obo2bob2obob2obo3b2o4bo2bo2b2obo2bob2obob2obo
3b2o4bo2bo2b2obo2bob2obob2obo3b2o4bo2bo2b2obo2bob2o$obo2bo5b2ob2ob2ob
2ob2ob2obo2bobo2bo5b2ob2ob2ob2ob2ob2obo2bobo2bo5b2ob2ob2ob2ob2ob2obo2b
obo2bo5b2ob2ob2ob2ob2ob2obo$bob2ob2ob2o2b2o2bo2bo5bo3bo2bob2ob2ob2o2b
2o2bo2bo5bo3bo2bob2ob2ob2o2b2o2bo2bo5bo3bo2bob2ob2ob2o2b2o2bo2bo5bo3bo
$bo3bo2b2ob2o5bo2bob2o2b2obo2bo3bo2b2ob2o5bo2bob2o2b2obo2bo3bo2b2ob2o
5bo2bob2o2b2obo2bo3bo2b2ob2o5bo2bob2o2b2obo$ob2obo7bob2obo2bobob2o2bob
2ob2obo7bob2obo2bobob2o2bob2ob2obo7bob2obo2bobob2o2bob2ob2obo7bob2obo
2bobob2o2bobo$bo2bob2ob2ob2obobobo2bobo2bobo3bo2bob2ob2ob2obobobo2bobo
2bobo3bo2bob2ob2ob2obobobo2bobo2bobo3bo2bob2ob2ob2obobobo2bobo2bobo$2o
b2o3b2ob2o3b2obob2obob2o2bob2ob2o3b2ob2o3b2obob2obob2o2bob2ob2o3b2ob2o
3b2obob2obob2o2bob2ob2o3b2ob2o3b2obob2obob2o2bo$o2bo2b2o6b2o4b2o3b2o2b
2obo2bo2b2o6b2o4b2o3b2o2b2obo2bo2b2o6b2o4b2o3b2o2b2obo2bo2b2o6b2o4b2o
3b2o2b2o$bo2bobob2ob2obobob2o3b2o4bo3bo2bobob2ob2obobob2o3b2o4bo3bo2bo
bob2ob2obobob2o3b2o4bo3bo2bobob2ob2obobob2o3b2o4bo$bo2bo2bo2b2obob2obo
bob2ob2o3bo2bo2bo2bo2b2obob2obobob2ob2o3bo2bo2bo2bo2b2obob2obobob2ob2o
3bo2bo2bo2bo2b2obob2obobob2ob2o3bo$2bo2bobo5bo5b2obo4b2obo3bo2bobo5bo
5b2obo4b2obo3bo2bobo5bo5b2obo4b2obo3bo2bobo5bo5b2obo4b2obo$b2ob2o2bob
2o2b2ob2o4bob2o2bobob2ob2o2bob2o2b2ob2o4bob2o2bobob2ob2o2bob2o2b2ob2o
4bob2o2bobob2ob2o2bob2o2b2ob2o4bob2o2bobo$bo2bo2b2obob2o2b2ob2ob2obobo
bobobo2bo2b2obob2o2b2ob2ob2obobobobobo2bo2b2obob2o2b2ob2ob2obobobobobo
2bo2b2obob2o2b2ob2ob2obobobobo$obo2bobo3bo2bo6b2o3b2o2bobobo2bobo3bo2b
o6b2o3b2o2bobobo2bobo3bo2bo6b2o3b2o2bobobo2bobo3bo2bo6b2o3b2o2bo$obob
2o2bob2ob2ob2ob2o3b2o3b2obobob2o2bob2ob2ob2ob2o3b2o3b2obobob2o2bob2ob
2ob2ob2o3b2o3b2obobob2o2bob2ob2ob2ob2o3b2o3b2o$bob2o2b2obo2bo2bob2ob2o
bob2obo3bob2o2b2obo2bo2bob2ob2obob2obo3bob2o2b2obo2bo2bob2ob2obob2obo
3bob2o2b2obo2bo2bob2ob2obob2obo$bo4b2o3b2obo2bo5bobo2bob2obo4b2o3b2obo
2bo5bobo2bob2obo4b2o3b2obo2bo5bobo2bob2obo4b2o3b2obo2bo5bobo2bob2o$obo
2b2o2b2o2b2ob2ob2ob2obo2bo3bobo2b2o2b2o2b2ob2ob2ob2obo2bo3bobo2b2o2b2o
2b2ob2ob2ob2obo2bo3bobo2b2o2b2o2b2ob2ob2ob2obo2bo$obob2o3bobo4bo2bob2o
3b2ob2obobob2o3bobo4bo2bob2o3b2ob2obobob2o3bobo4bo2bob2o3b2ob2obobob2o
3bobo4bo2bob2o3b2ob2o$bob2o2b2ob2o2b2ob2obo3b2o2bo2bobob2o2b2ob2o2b2ob
2obo3b2o2bo2bobob2o2b2ob2o2b2ob2obo3b2o2bo2bobob2o2b2ob2o2b2ob2obo3b2o
2bo2bo$bo5bobo3b2obo2b2o2b2obobo2bobo5bobo3b2obo2b2o2b2obobo2bobo5bobo
3b2obo2b2o2b2obobo2bobo5bobo3b2obo2b2o2b2obobo2bo$obob2o2b2o2b2o2bo5b
2o2bo2bo2bobob2o2b2o2b2o2bo5b2o2bo2bo2bobob2o2b2o2b2o2bo5b2o2bo2bo2bob
ob2o2b2o2b2o2bo5b2o2bo2bo$obobob2o3b2o4bob2obo4bobo2bobobob2o3b2o4bob
2obo4bobo2bobobob2o3b2o4bob2obo4bobo2bobobob2o3b2o4bob2obo4bobo$bobobo
2b2obo4b2obobob2ob2o2bo2bobobo2b2obo4b2obobob2ob2o2bo2bobobo2b2obo4b2o
bobob2ob2o2bo2bobobo2b2obo4b2obobob2ob2o2bo$2obobo4bob2ob2o3b2o3b2o2b
2ob2obobo4bob2ob2o3b2o3b2o2b2ob2obobo4bob2ob2o3b2o3b2o2b2ob2obobo4bob
2ob2o3b2o3b2o2b2o$o3bob2o2bo3b2o2b2o3b2o4bo2bo3bob2o2bo3b2o2b2o3b2o4bo
2bo3bob2o2bo3b2o2b2o3b2o4bo2bo3bob2o2bo3b2o2b2o3b2o4bo$bob2o3b2obo5b2o
b2obob2o3bo2bob2o3b2obo5b2ob2obob2o3bo2bob2o3b2obo5b2ob2obob2o3bo2bob
2o3b2obo5b2ob2obob2o3bo$bobo2b2o2b2o2b2obo4bobo2b2obo2bobo2b2o2b2o2b2o
bo4bobo2b2obo2bobo2b2o2b2o2b2obo4bobo2b2obo2bobo2b2o2b2o2b2obo4bobo2b
2obo$2bobobobo4b2obobo2b2obo4bobo2bobobobo4b2obobo2b2obo4bobo2bobobobo
4b2obobo2b2obo4bobo2bobobobo4b2obobo2b2obo4bobo$b2obo2b2ob2obo2bobob2o
3b2ob2obob2obo2b2ob2obo2bobob2o3b2ob2obob2obo2b2ob2obo2bobob2o3b2ob2ob
ob2obo2b2ob2obo2bobob2o3b2ob2obo$2o3b2o3bobobo2bob2o2b2o2b2o3b2o3b2o3b
obobo2bob2o2b2o2b2o3b2o3b2o3bobobo2bob2o2b2o2b2o3b2o3b2o3bobobo2bob2o
2b2o2b2o$3b2o2b2o2b2obo2bo5bob2o3b2o3b2o2b2o2b2obo2bo5bob2o3b2o3b2o2b
2o2b2obo2bo5bob2o3b2o3b2o2b2o2b2obo2bo5bob2o3b2o$ob2obo3b2o4bo2bo2b2ob
o2bob2obob2obo3b2o4bo2bo2b2obo2bob2obob2obo3b2o4bo2bo2b2obo2bob2obob2o
bo3b2o4bo2bo2b2obo2bob2o$obo2bo5b2ob2ob2ob2ob2ob2obo2bobo2bo5b2ob2ob2o
b2ob2ob2obo2bobo2bo5b2ob2ob2ob2ob2ob2obo2bobo2bo5b2ob2ob2ob2ob2ob2obo$
bob2ob2ob2o2b2o2bo2bo5bo3bo2bob2ob2ob2o2b2o2bo2bo5bo3bo2bob2ob2ob2o2b
2o2bo2bo5bo3bo2bob2ob2ob2o2b2o2bo2bo5bo3bo$bo3bo2b2ob2o5bo2bob2o2b2obo
2bo3bo2b2ob2o5bo2bob2o2b2obo2bo3bo2b2ob2o5bo2bob2o2b2obo2bo3bo2b2ob2o
5bo2bob2o2b2obo$ob2obo7bob2obo2bobob2o2bob2ob2obo7bob2obo2bobob2o2bob
2ob2obo7bob2obo2bobob2o2bob2ob2obo7bob2obo2bobob2o2bobo$bo2bob2ob2ob2o
bobobo2bobo2bobo3bo2bob2ob2ob2obobobo2bobo2bobo3bo2bob2ob2ob2obobobo2b
obo2bobo3bo2bob2ob2ob2obobobo2bobo2bobo$2ob2o3b2ob2o3b2obob2obob2o2bob
2ob2o3b2ob2o3b2obob2obob2o2bob2ob2o3b2ob2o3b2obob2obob2o2bob2ob2o3b2ob
2o3b2obob2obob2o2bo$o2bo2b2o6b2o4b2o3b2o2b2obo2bo2b2o6b2o4b2o3b2o2b2ob
o2bo2b2o6b2o4b2o3b2o2b2obo2bo2b2o6b2o4b2o3b2o2b2o$bo2bobob2ob2obobob2o
3b2o4bo3bo2bobob2ob2obobob2o3b2o4bo3bo2bobob2ob2obobob2o3b2o4bo3bo2bob
ob2ob2obobob2o3b2o4bo$bo2bo2bo2b2obob2obobob2ob2o3bo2bo2bo2bo2b2obob2o
bobob2ob2o3bo2bo2bo2bo2b2obob2obobob2ob2o3bo2bo2bo2bo2b2obob2obobob2ob
2o3bo$2bo2bobo5bo5b2obo4b2obo3bo2bobo5bo5b2obo4b2obo3bo2bobo5bo5b2obo
4b2obo3bo2bobo5bo5b2obo4b2obo!
Code: Select all
x = 96, y = 96, , rule = B2o/S2mH:T96,96
2bobo4bo3b2obo2bo2b2o3bobobo2b2o4b2o2b2obo2bobo4bo3b2obo2bo2b2o3bobobo
2b2o4b2o2b2obo$o2bob2o2bob2o2b2ob2ob2ob2o2b2obo4b2ob2o3bobobo2bob2o2bo
b2o2b2ob2ob2ob2o2b2obo4b2ob2o3bobo$ob2o3b2ob2ob2o3bo2bo4b2o4bob2o2b2o
2b2ob2obob2o3b2ob2ob2o3bo2bo4b2o4bob2o2b2o2b2ob2o$b2o2b2o2bo5b2o2b2obo
b2o2b2o2bobobo5bobo4b2o2b2o2bo5b2o2b2obob2o2b2o2bobobo5bobo$o3b2obobob
2o4b2o2b2obob2o2b2obob2o2b2o2b2o2b2o3b2obobob2o4b2o2b2obob2o2b2obob2o
2b2o2b2o2bo$b2obo2bo2b2ob2o4bo5bo2bo3b2o4b2ob2o3b2ob2obo2bo2b2ob2o4bo
5bo2bo3b2o4b2ob2o3b2o$3bob2ob2o5b2ob2o2b2obo2bob2o3b2obo4b2obo4bob2ob
2o5b2ob2o2b2obo2bob2o3b2obo4b2obo$o2bo3bo2b2ob2o2b2o2b2obob2ob2ob2obob
ob2o4bob2o2bo3bo2b2ob2o2b2o2b2obob2ob2ob2obobob2o4bobo$b2ob2obo4b2obo
5bo2bo3bo5bob2o3b2ob2o3b2ob2obo4b2obo5bo2bo3bo5bob2o3b2ob2o$o2bo2bob2o
5bo3b2ob2obob2ob2ob2o4b2o2b2o2b2o2bo2bob2o5bo3b2ob2obob2ob2ob2o4b2o2b
2o2bo$bobob2o3b2ob2obob2obo2b2obo2bob2o2b2obob2o3b2obobob2o3b2ob2obob
2obo2b2obo2bob2o2b2obob2o3b2o$bo2b2o2b2o2b2ob2obo2bo6bo2bo3b2obobo2b2o
bo2bo2b2o2b2o2b2ob2obo2bo6bo2bo3b2obobo2b2obo$ob2o3b2obo8b2ob2ob2obob
2o2b2o2bobo4bob2ob2o3b2obo8b2ob2ob2obob2o2b2o2bobo4bobo$bo2bob2o2bo3b
2ob2o2bo2b2obob2o2b2o4bob2o2bo3bo2bob2o2bo3b2ob2o2bo2b2obob2o2b2o4bob
2o2bo$bo2bobo4bob2ob2obobo5bo5bo4b2o3b2ob2obo2bobo4bob2ob2obobo5bo5bo
4b2o3b2ob2o$obo2bob2ob2obo5bo2b2ob2obob2o2b2ob2o2b2o2bo2bobo2bob2ob2ob
o5bo2b2ob2obob2o2b2ob2o2b2o2bo$obob2o3b2o3b2ob2ob2o2b2ob2obob2o2b2o2b
2obobo2bobob2o3b2o3b2ob2ob2o2b2ob2obob2o2b2o2b2obobo$bob2o2b2o3b2o2b2o
bo2bo8bo2bo5bo2bo2b2obob2o2b2o3b2o2b2obo2bo8bo2bo5bo2bo2b2o$2o4b2ob2ob
ob2o3bob2o2b2ob2obob2o2b2o2b2ob2o2b2o4b2ob2obob2o3bob2o2b2ob2obob2o2b
2o2b2ob2o$3b2obo4bobo2b2o2b2o2b2ob2obob2o2b2ob2o2bo2b2o3b2obo4bobo2b2o
2b2o2b2ob2obob2o2b2ob2o2bo2b2o$2obobob2o2bobo4b2o4bo5bo4b2o4bobo4b2obo
bob2o2bobo4b2o4bo5bo4b2o4bobo$2bob2o3b2obob2o4b2o3bo2b2obo2b2o2b2obo2b
2o4bob2o3b2obob2o4b2o3bo2b2obo2b2o2b2obo2b2o$2bo4b2o2b2o3b2o4b2obob2ob
2ob2o2b2obob2o2b2o2bo4b2o2b2o3b2o4b2obob2ob2ob2o2b2obob2o2b2o$2obo2b2o
bo4b2o2b2o4bob2o5bo3bo2bo3b2o2b2obo2b2obo4b2o2b2o4bob2o5bo3bo2bo3b2o$
2b2ob2o2bo3b2ob2o2b2o2bo6b2ob2o2b2obo4b2o2b2ob2o2bo3b2ob2o2b2o2bo6b2ob
2o2b2obo4b2o$2o3bo4bob2o4b2o2b2obob2ob2obo2b2o2b2o2b2o2b2o3bo4bob2o4b
2o2b2obob2ob2obo2b2o2b2o2b2o$2b2o2b2ob2obo3b2o2b2o2b2obob2o2bo4b2o3b2o
b2o2b2o2b2ob2obo3b2o2b2o2b2obob2o2bo4b2o3b2ob2o$2o2b2o2b2o3bob2ob2o2b
2o4bo5bob2o2bob2o4b2o2b2o2b2o3bob2ob2o2b2o4bo5bob2o2bob2o$2bo3b2o4b2ob
o4b2o2b2ob2o2b2obobobobobo2b2o3bo3b2o4b2obo4b2o2b2ob2o2b2obobobobobo2b
2o$obob2o2b2ob2o3b2o4bo3b2o2b2obobob2o2bobobob2obob2o2b2ob2o3b2o4bo3b
2o2b2obobob2o2bobobobo$bob2ob2o2b2o2b2o2b2ob2ob2o3b2o2bobo4b2obo2bo2bo
b2ob2o2b2o2b2o2b2ob2ob2o3b2o2bobo4b2obo2bo$bo6bo5bob2o2b2o2bob2obo4bob
2ob2o3bobo2bo6bo5bob2o2b2o2bob2obo4bob2ob2o3bobo$2bob2o2bob2o3bo2bo6bo
2bob2ob2o3b2o3b2o2bo2bob2o2bob2o3bo2bo6bo2bob2ob2o3b2o3b2o2bo$b2obob2o
b2ob2obo2bo3b2obob2o3b2o2b2o4b2o2b2ob2obob2ob2ob2obo2bo3b2obob2o3b2o2b
2o4b2o2b2o$bo3bo2bo5bobo2bob2obob2o2b2o3b2ob2ob2o3bo2bo3bo2bo5bobo2bob
2obob2o2b2o3b2ob2ob2o3bo$ob2obob2o2b2obobob2obo2bo4b2ob2obo4b2o2b2ob2o
b2obob2o2b2obobob2obo2bo4b2ob2obo4b2o2b2obo$bo2bob2o2b2obobob2o3bo2bo
2b2o4bobob2o3b2obo2bo2bob2o2b2obobob2o3bo2bo2b2o4bobob2o3b2obo$2ob2o5b
o2bobo6bob2ob2o2b2obobobob2obo2bob2ob2o5bo2bobo6bob2ob2o2b2obobobob2ob
o2bo$o2bo2b2o3bo2bob2ob2o2b2o2bo2b2obobobobo2bob2ob2o2bo2b2o3bo2bob2ob
2o2b2o2bo2b2obobobobo2bob2obo$4bobob2obob2o3b2ob2o5bobo2bobobobo2bo3bo
5bobob2obob2o3b2ob2o5bobo2bobobobo2bo3bo$b2obo2bo2bob2o2b2o5bob2obo2b
2obobobobo2bob2o2b2obo2bo2bob2o2b2o5bob2obo2b2obobobobo2bob2o$2obobobo
2bo5bobob2obobobob2o2b2obobobo2bobo2b2obobobo2bo5bobob2obobobob2o2b2ob
obobo2bobo$o2bobo2bo2bob2o2b2obobobob2o3b2o4bobob2obobobo2bobo2bo2bob
2o2b2obobobob2o3b2o4bobob2obobo$bo2bobobo2bobob2o4b2obo4b2o2b2ob2obo3b
2obo2bo2bobobo2bobob2o4b2obo4b2o2b2ob2obo3b2obo$bob2obo2b2obobo2bob2o
4b2ob2ob2o2b2o3bo6bobob2obo2b2obobo2bob2o4b2ob2ob2o2b2o3bo6bo$2b2o3b2o
2b2obo2bobobob2o2b2o4b2o4b2o2b2o2bo2b2o3b2o2b2obo2bobobob2o2b2o4b2o4b
2o2b2o2bo$2o3b2o2b2o4bo2bob2obobo4b2o3b2ob2o2b2ob2ob2o3b2o2b2o4bo2bob
2obobo4b2o3b2ob2o2b2ob2o$2bob2ob2o2b2o2bo2bo5b2ob2obob2o3b2o2b2o4bo2bo
b2ob2o2b2o2bo2bo5b2ob2obob2o3b2o2b2o4bo$2bobo4bo3b2obo2bo2b2o3bobobo2b
2o4b2o2b2obo2bobo4bo3b2obo2bo2b2o3bobobo2b2o4b2o2b2obo$o2bob2o2bob2o2b
2ob2ob2ob2o2b2obo4b2ob2o3bobobo2bob2o2bob2o2b2ob2ob2ob2o2b2obo4b2ob2o
3bobo$ob2o3b2ob2ob2o3bo2bo4b2o4bob2o2b2o2b2ob2obob2o3b2ob2ob2o3bo2bo4b
2o4bob2o2b2o2b2ob2o$b2o2b2o2bo5b2o2b2obob2o2b2o2bobobo5bobo4b2o2b2o2bo
5b2o2b2obob2o2b2o2bobobo5bobo$o3b2obobob2o4b2o2b2obob2o2b2obob2o2b2o2b
2o2b2o3b2obobob2o4b2o2b2obob2o2b2obob2o2b2o2b2o2bo$b2obo2bo2b2ob2o4bo
5bo2bo3b2o4b2ob2o3b2ob2obo2bo2b2ob2o4bo5bo2bo3b2o4b2ob2o3b2o$3bob2ob2o
5b2ob2o2b2obo2bob2o3b2obo4b2obo4bob2ob2o5b2ob2o2b2obo2bob2o3b2obo4b2ob
o$o2bo3bo2b2ob2o2b2o2b2obob2ob2ob2obobob2o4bob2o2bo3bo2b2ob2o2b2o2b2ob
ob2ob2ob2obobob2o4bobo$b2ob2obo4b2obo5bo2bo3bo5bob2o3b2ob2o3b2ob2obo4b
2obo5bo2bo3bo5bob2o3b2ob2o$o2bo2bob2o5bo3b2ob2obob2ob2ob2o4b2o2b2o2b2o
2bo2bob2o5bo3b2ob2obob2ob2ob2o4b2o2b2o2bo$bobob2o3b2ob2obob2obo2b2obo
2bob2o2b2obob2o3b2obobob2o3b2ob2obob2obo2b2obo2bob2o2b2obob2o3b2o$bo2b
2o2b2o2b2ob2obo2bo6bo2bo3b2obobo2b2obo2bo2b2o2b2o2b2ob2obo2bo6bo2bo3b
2obobo2b2obo$ob2o3b2obo8b2ob2ob2obob2o2b2o2bobo4bob2ob2o3b2obo8b2ob2ob
2obob2o2b2o2bobo4bobo$bo2bob2o2bo3b2ob2o2bo2b2obob2o2b2o4bob2o2bo3bo2b
ob2o2bo3b2ob2o2bo2b2obob2o2b2o4bob2o2bo$bo2bobo4bob2ob2obobo5bo5bo4b2o
3b2ob2obo2bobo4bob2ob2obobo5bo5bo4b2o3b2ob2o$obo2bob2ob2obo5bo2b2ob2ob
ob2o2b2ob2o2b2o2bo2bobo2bob2ob2obo5bo2b2ob2obob2o2b2ob2o2b2o2bo$obob2o
3b2o3b2ob2ob2o2b2ob2obob2o2b2o2b2obobo2bobob2o3b2o3b2ob2ob2o2b2ob2obob
2o2b2o2b2obobo$bob2o2b2o3b2o2b2obo2bo8bo2bo5bo2bo2b2obob2o2b2o3b2o2b2o
bo2bo8bo2bo5bo2bo2b2o$2o4b2ob2obob2o3bob2o2b2ob2obob2o2b2o2b2ob2o2b2o
4b2ob2obob2o3bob2o2b2ob2obob2o2b2o2b2ob2o$3b2obo4bobo2b2o2b2o2b2ob2obo
b2o2b2ob2o2bo2b2o3b2obo4bobo2b2o2b2o2b2ob2obob2o2b2ob2o2bo2b2o$2obobob
2o2bobo4b2o4bo5bo4b2o4bobo4b2obobob2o2bobo4b2o4bo5bo4b2o4bobo$2bob2o3b
2obob2o4b2o3bo2b2obo2b2o2b2obo2b2o4bob2o3b2obob2o4b2o3bo2b2obo2b2o2b2o
bo2b2o$2bo4b2o2b2o3b2o4b2obob2ob2ob2o2b2obob2o2b2o2bo4b2o2b2o3b2o4b2ob
ob2ob2ob2o2b2obob2o2b2o$2obo2b2obo4b2o2b2o4bob2o5bo3bo2bo3b2o2b2obo2b
2obo4b2o2b2o4bob2o5bo3bo2bo3b2o$2b2ob2o2bo3b2ob2o2b2o2bo6b2ob2o2b2obo
4b2o2b2ob2o2bo3b2ob2o2b2o2bo6b2ob2o2b2obo4b2o$2o3bo4bob2o4b2o2b2obob2o
b2obo2b2o2b2o2b2o2b2o3bo4bob2o4b2o2b2obob2ob2obo2b2o2b2o2b2o$2b2o2b2ob
2obo3b2o2b2o2b2obob2o2bo4b2o3b2ob2o2b2o2b2ob2obo3b2o2b2o2b2obob2o2bo4b
2o3b2ob2o$2o2b2o2b2o3bob2ob2o2b2o4bo5bob2o2bob2o4b2o2b2o2b2o3bob2ob2o
2b2o4bo5bob2o2bob2o$2bo3b2o4b2obo4b2o2b2ob2o2b2obobobobobo2b2o3bo3b2o
4b2obo4b2o2b2ob2o2b2obobobobobo2b2o$obob2o2b2ob2o3b2o4bo3b2o2b2obobob
2o2bobobob2obob2o2b2ob2o3b2o4bo3b2o2b2obobob2o2bobobobo$bob2ob2o2b2o2b
2o2b2ob2ob2o3b2o2bobo4b2obo2bo2bob2ob2o2b2o2b2o2b2ob2ob2o3b2o2bobo4b2o
bo2bo$bo6bo5bob2o2b2o2bob2obo4bob2ob2o3bobo2bo6bo5bob2o2b2o2bob2obo4bo
b2ob2o3bobo$2bob2o2bob2o3bo2bo6bo2bob2ob2o3b2o3b2o2bo2bob2o2bob2o3bo2b
o6bo2bob2ob2o3b2o3b2o2bo$b2obob2ob2ob2obo2bo3b2obob2o3b2o2b2o4b2o2b2ob
2obob2ob2ob2obo2bo3b2obob2o3b2o2b2o4b2o2b2o$bo3bo2bo5bobo2bob2obob2o2b
2o3b2ob2ob2o3bo2bo3bo2bo5bobo2bob2obob2o2b2o3b2ob2ob2o3bo$ob2obob2o2b
2obobob2obo2bo4b2ob2obo4b2o2b2ob2ob2obob2o2b2obobob2obo2bo4b2ob2obo4b
2o2b2obo$bo2bob2o2b2obobob2o3bo2bo2b2o4bobob2o3b2obo2bo2bob2o2b2obobob
2o3bo2bo2b2o4bobob2o3b2obo$2ob2o5bo2bobo6bob2ob2o2b2obobobob2obo2bob2o
b2o5bo2bobo6bob2ob2o2b2obobobob2obo2bo$o2bo2b2o3bo2bob2ob2o2b2o2bo2b2o
bobobobo2bob2ob2o2bo2b2o3bo2bob2ob2o2b2o2bo2b2obobobobo2bob2obo$4bobob
2obob2o3b2ob2o5bobo2bobobobo2bo3bo5bobob2obob2o3b2ob2o5bobo2bobobobo2b
o3bo$b2obo2bo2bob2o2b2o5bob2obo2b2obobobobo2bob2o2b2obo2bo2bob2o2b2o5b
ob2obo2b2obobobobo2bob2o$2obobobo2bo5bobob2obobobob2o2b2obobobo2bobo2b
2obobobo2bo5bobob2obobobob2o2b2obobobo2bobo$o2bobo2bo2bob2o2b2obobobob
2o3b2o4bobob2obobobo2bobo2bo2bob2o2b2obobobob2o3b2o4bobob2obobo$bo2bob
obo2bobob2o4b2obo4b2o2b2ob2obo3b2obo2bo2bobobo2bobob2o4b2obo4b2o2b2ob
2obo3b2obo$bob2obo2b2obobo2bob2o4b2ob2ob2o2b2o3bo6bobob2obo2b2obobo2bo
b2o4b2ob2ob2o2b2o3bo6bo$2b2o3b2o2b2obo2bobobob2o2b2o4b2o4b2o2b2o2bo2b
2o3b2o2b2obo2bobobob2o2b2o4b2o4b2o2b2o2bo$2o3b2o2b2o4bo2bob2obobo4b2o
3b2ob2o2b2ob2ob2o3b2o2b2o4bo2bob2obobo4b2o3b2ob2o2b2ob2o$2bob2ob2o2b2o
2bo2bo5b2ob2obob2o3b2o2b2o4bo2bob2ob2o2b2o2bo2bo5b2ob2obob2o3b2o2b2o4b
o!