Golly bugs

Has something gone haywire? Let us know about it!
confocaloid
Posts: 3129
Joined: February 8th, 2022, 3:15 pm

Re: Golly bugs

confocaloid wrote:
October 1st, 2023, 5:34 pm
I got the following steps, when trying to reproduce this:
...
b3s23love wrote:
October 1st, 2023, 5:49 pm
Would you like to repeat this with 10^30?
No, I was just trying to get a specific way of reproducing the bug (i.e. specific generation, specific coordinates to add a cell, where exactly to look, etc.) Hopefully the above suffices for that purpose.
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.

pzq_alex
Posts: 793
Joined: May 1st, 2021, 9:00 pm
Location: tell me if you know

Re: Golly bugs

confocaloid wrote:
October 1st, 2023, 5:34 pm
* Turn "View -> Show Exact Numbers" on.
* Open the pattern via "Open Clipboard". The top-left cell should get coordinates (0,0).
* Use goto.lua to go to the generation 1000000000000000 (10^15).
* The displayed population is 1,042,324,103,587,982.
* Add a single state-1 cell at X = 56, Y = 43 (inside the tub).
* Now the displayed population is 1,042,324,158,506,313. (Addition of one cell changed the population by more than 1.)
* Press F to zoom out. Instead of the expected single diagonal line, there are two intersecting diagonal lines.
[/quote]

Using these steps I found that this is a bug with the Super algorithm, not with HashLife (Edit: I mean the HashLife algorithm, as in Control -> Set Algorithm -> HashLife). Exact steps to reproduce:

* Turn "View -> Show Exact Numbers" on (Ctrl-E).
* Open the pattern via "Open Clipboard".
* Press Alt-J to convert the pattern to two-state Life.
* Use goto.lua to go to generation 10^15.
* Observe that adding a cell or deleting one only changes the population by one. Also, pressing F shows that there is no extraneous diagonal line.
Last edited by pzq_alex on October 2nd, 2023, 4:01 am, edited 1 time in total.
\sum_{n=1}^\infty H_n/n^2 = \zeta(3)

How much of current CA technology can I redevelop "on a desert island"?

rowett
Moderator
Posts: 3837
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Golly bugs

pzq_alex wrote:
October 2nd, 2023, 12:52 am
Using these steps I found that this is a bug with the Super algorithm, not with HashLife.
It's to do with HashLife. The RuleLoader version of LifeHistory also shows the same issue. Both RuleLoader and Super algos use HashLife.

rokicki
Posts: 80
Joined: August 6th, 2009, 12:26 pm

Re: Golly bugs

b3s23love wrote:
October 1st, 2023, 4:21 pm
(is it a bug or it has to do with HashLife?) ...
This is my bug, and it's fixed in the repository. Thanks for the report, and I'm sorry for the error.

-tom

Andrew
Moderator
Posts: 946
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly bugs

confocaloid wrote:
September 29th, 2023, 9:36 am
It seems like underscores in filenames can trigger bugs.
Fixed for the next release. I've also fixed some problems (on all platforms) with filenames containing ampersands, so thanks for the report.

We've probably got enough changes and bug fixes to justify releasing Golly 4.3b1 some time in the next few weeks.
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

muzik
Posts: 5659
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Golly bugs

oscar.lua incorrectly concluded that "This pattern is stable." after 563939073 generations and several hours of running it:

Code: Select all

x = 54, y = 2, rule = MarBlocks-5-rep
o49bobo$bo48bo2bo! rowett Moderator Posts: 3837 Joined: January 31st, 2013, 2:34 am Location: UK Contact: Re: Golly bugs muzik wrote: October 6th, 2023, 2:33 pm oscar.lua incorrectly concluded that "This pattern is stable." after 563939073 generations and several hours of running it: Code: Select all x = 54, y = 2, rule = MarBlocks-5-rep o49bobo$bo48bo2bo!
It's because the pattern in the previous generation hashes to the same value. The check for hash collisions fails since it only tests if the pattern is the same size, hasn't moved, and has the same population. All three of which are true in this rare case.

confocaloid
Posts: 3129
Joined: February 8th, 2022, 3:15 pm

Re: Golly bugs

Added 2024-03-17: I tested this in Golly 4.3b1, and this seems to be fixed now. (Others are welcome to test as well)

When trying to paste a RLE like

Code: Select all

boooooobobbob$bbooooooobobo$bobobboooobbb$bobobooobbobo$boobbboobbooo!
into Golly, the leftmost empty columns are ignored. (It is a 13x5 pattern that is incorrectly pasted as if it was a 12x5 pattern.)

In comparison, the same pattern formatted as

Code: Select all

x = 13, y = 5, rule = B3/S23
boooooobobbob$bbooooooobobo$
bobobboooobbb$bobobooobbobo$
boobbboobbooo!
is pasted correctly, with leftmost column empty.

(I noticed this when my program printed the single-line headerless RLE above, I tried to paste it into Golly to double-check and got evolution that did not match what my program claimed, because the pattern was pasted one cell left from the correct position.)

(Added later:) this also applies to empty rows, e.g.

Code: Select all

bbbbbbbbb$bbbbbobbb$bbobbbbbb$bbbobbbbb$bbbbobbob$bbbobbboo! is 9x6 but it is pasted as if it was 7x5. Last edited by confocaloid on March 17th, 2024, 12:19 pm, edited 1 time in total. 127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete) Unlikely events happen. My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that. iNoMed Moderator Posts: 615 Joined: August 29th, 2020, 3:05 pm Location: Scotland Re: Golly bugs Golly 1.3 for iOS freezes when trying to overwrite an already-saved file (Even those created before the data transfer) with a newer copy. This issue started happening after I had transferred data from an iPad Pro 12.9" (2018) to an iPad Pro 12.9" (2022) and is possibly the main cause of this problem. This isn't an issue with saving files as a whole - the RLE shown in the image was created after the aforementioned data transfer. Edit after deleting/reinstalling: It still doesn't work on file overwrites. If it helps, it also plays the beep sound effect with the toggle switched on. Attachments IMG_8109.png (1.01 MiB) Viewed 1331 times Code: Select all x = 35, y = 5, rule = B3/S23 4b2o3b2o3bo3b2ob2o3b2ob2o$2o2bobo3bo2bobobobobobobobobobo$obobo2bo2bob o2bobo2bo2bobo3bobo$2bobo3bobobobo2bo5bobo3bobob2o$b2ob2o3b2ob2o3b2o3b 2ob2o3b2ob2o! randomviewer896 Posts: 4 Joined: April 8th, 2010, 5:37 pm Re: Golly bugs When I start Golly with a dark theme active in Linux, the text in the left pane is invisible. I think this is due to Golly asking the OS what color to use for the text's foreground color, but at the same time hard-coding the text's background color. This screenshot was taken in Ubuntu with XFCE and the adwaita-dark theme, however the effect happens on a handful of other distros too. Attachments GOLLY BUG.png (18.59 KiB) Viewed 1272 times Disaster16439 Posts: 191 Joined: June 30th, 2023, 9:17 am Location: Suffocating(my coordinates are 3,-64,192929929) Re: Golly bugs Note:My version of golly is ipad golly v1.3 When I paste a B34q/S23-k pattern into an empty B34q/S23-kSuper universe(it converts to b34qs23-k), then I press undo, it first deletes the pattern I paste(which itself is a weird behavior), then after I press undo again, it converts to LifeSuper iNoMed wrote: November 29th, 2023, 4:25 am Golly 1.3 for iOS freezes when trying to overwrite an already-saved file (Even those created before the data transfer) with a newer copy. This issue started happening after I had transferred data from an iPad Pro 12.9" (2018) to an iPad Pro 12.9" (2022) and is possibly the main cause of this problem. This isn't an issue with saving files as a whole - the RLE shown in the image was created after the aforementioned data transfer. Edit after deleting/reinstalling: It still doesn't work on file overwrites. If it helps, it also plays the beep sound effect with the toggle switched on. I have the same problem too after a data transfer. It also happens for ruletables. Also, it just happened if I paste a non-rle(the quote above) into golly Hopefully these bugs will be fixed in golly 1.4 Also, once, when I changed a rule, an oscillator that isn't supposed to work still works Edit 1: If I name a rule (on golly-4.2-mac), and then I name another rule, the other rule's name eventually dissapears? My 146th post! 146=73x2 I QUIT CA Antonin Duda Posts: 90 Joined: October 19th, 2023, 10:23 am Location: 404 not found Re: Golly bugs On android version of golly, if you change the simulation speed, while the simulation is running, then chances are, that golly's generation counter will desync. To test this, open, for example 2c5-spaceship-gun-p416.rle, click "faster" (while it's running), them click "slower", then, when the generation counter reaches 416, stop, then, reset. If the gun was in a different phase before you reset, even if the generation counter showed 416, the period of the gun itself, you'll se that the generation counter desynced. confocaloid Posts: 3129 Joined: February 8th, 2022, 3:15 pm Re: Golly bugs The following ruletable is accepted and interpreted correctly by LifeViewer. However, it is silently misinterpreted by Golly 4.3b1. (There are no error messages, but the pattern evolves incorrectly.) I think the cause is that there are two lines exceeding 1000 characters (declarations of variables "x0" and "a1"). There's a 1000-byte line_buffer in ruletable_algo.cpp. Note that the ruletable was autogenerated. Other ruletables with > 200 cellstates may contain similar variable declarations, and also would be misinterpreted. Doubling or quadrupling maximum line length may be enough to avoid problems with long variable declarations. Code: Select all #C note: @RULE appended at the end x = 64, y = 64, rule = example 2.A.A2.2A5.2A.2A2.A.A.2A.A3.7A2.A.2A.3A5.4A.A$2A2.A2.A.3A2.A3.4A4.A3.
4A.3A6.3A.3A5.A2.A2.2A$5A2.A7.3A2.2A2.A3.2A.A3.A.A3.3A.3A.A.2A3.4A.A$
A.A.3A.A3.2A4.3A5.2A.A.A2.4A.A.A6.4A3.A.2A.2A$6A.2A.A.2A.6A5.4A4.A3. 3A2.2A.3A2.A2.2A$2.A.A.3A.A3.3A.3A.4A.2A2.3A2.3A3.A4.3A2.2A.A2.A.A$3. A4.A.A5.6A2.A.3A.A2.A.6A.A.3A.2A2.3A2.3A.2A$.A.2A2.A2.2A2.A.4A.5A.A.A
.A3.4A.2A.A.2A2.A.2A2.4A4.A$2.2A3.A4.2A.A.3A.A.4A4.3A.A2.2A2.A.3A.A.A .2A3.5A.A$2.A3.2A3.A.A.A2.A4.2A7.6A6.2A8.A.A4.A.A$3.A.A.2A2.A.3A2.4A 6.3A2.2A7.A3.A2.A4.2A3.3A$5A.A2.2A.5A2.2A.A.A2.A.3A.3A.A.3A2.A3.A.2A.
3A3.A3.A$8.3A2.6A.A.A4.2A.A.2A2.A2.3A.5A.A.A.3A2.A.4A$3A3.A6.A.3A.A.
3A2.A2.A.3A.A3.A4.A.A4.2A2.2A3.3A$A.A.A.2A.A3.2A2.5A.A.2A.A.A.A3.3A. 3A2.A.A.A.A.A.2A.A2.A.A$2.A.A4.A.2A.5A2.A2.A2.2A3.A.2A.A3.A4.7A2.2A2.
A2.2A$.A.A.A3.2A3.A.3A2.A5.4A.A.2A5.3A2.A.2A4.6A2.2A$A.2A6.2A2.A2.A.A
3.4A.A2.A.2A3.2A2.A2.2A2.2A5.4A$2.A.A.A.A.A4.A.4A.A4.3A3.2A.A2.A2.A6. 2A.A2.A2.3A.A$2A.2A2.2A.2A.3A.2A.A.A.2A.2A.3A.3A2.3A.2A3.2A.A.A3.A2.
2A.A$.A.2A.2A4.A.A.6A.A.A.3A.A.A.A.A3.A3.2A.A2.2A5.A.2A$A.3A2.A3.4A2.
A2.A4.4A4.3A.A.6A3.A4.A.A4.A2.A$2.2A2.2A.A.A3.A.2A.A5.2A2.8A.2A2.4A2. 4A.A3.4A.A$4.A.A.2A2.A2.A.4A2.A.2A2.A2.5A2.2A.3A.2A.A2.A4.A.A3.A$A3.A 2.2A2.A.A.A.A.3A.A3.A.5A4.A2.2A3.2A.2A2.A.7A.A$2A2.2A.2A.A.7A2.3A2.A
2.A.2A5.A2.4A2.A4.A3.4A2.2A$.A4.A4.A2.A.A.A.A2.3A2.2A3.2A3.2A3.2A.A.A .3A.3A4.3A$A3.3A.2A2.5A2.A3.A2.4A.2A2.2A.A3.2A2.3A3.A.3A.A4.A$.2A4.A 3.A4.3A3.A3.2A2.A.A.A2.A.2A.A.A2.A2.2A2.5A.A$3.A4.A.A.A.2A5.4A.A.A.2A
2.6A3.2A.A3.A.A.A.3A4.A$4A3.2A2.5A2.A2.2A.A.2A.4A2.2A.A2.2A2.A5.2A.2A 4.A.2A$2A.2A4.2A.A.A4.A.A.3A3.6A.A.A5.4A.2A.A.3A.A.3A$.A.A.A2.2A.2A.A .2A.2A.2A.A.2A.4A.A2.2A.A.7A2.A8.3A$2A2.5A5.2A3.A3.A2.2A.8A4.A2.A2.6A
2.5A2.2A$A.A2.A2.A.2A2.2A.2A.2A.4A2.A4.A.3A2.4A2.A2.A.A4.A2.2A$A3.2A
2.2A.2A3.2A2.2A.A.5A.3A.A5.A2.4A.2A2.3A.4A2.A$A3.3A.A2.2A.A4.A.2A.5A. A2.3A3.4A2.A.A.2A.A.3A3.2A.A$A.2A2.A2.A4.A.A.A3.A.A.A6.3A.A.A.3A.A.2A
.2A.A.A2.A.A2.A$.2A.A2.2A2.2A.A2.2A.2A.A3.A.5A2.A5.A.3A.A.A.2A.A2.A2. A$A.2A2.2A3.2A.2A.2A5.A2.4A.3A.2A.2A.A2.2A2.A.A.A.A2.A4.A$6.2A2.A.A5. 2A.5A2.A.3A3.A.4A3.2A2.3A3.A2.4A$A.A5.2A.5A.3A.A2.A.4A2.4A.3A.A.A2.A
4.2A.4A2.4A$.A2.2A5.3A.2A.7A5.A3.2A.7A5.2A.A.7A.2A$7.2A3.A2.A3.A.A.4A
2.2A4.A2.A.A3.3A.3A5.2A.A2.A$.2A.A3.6A4.2A2.A.3A.A.A6.2A6.2A3.A.5A2.A 2.A$6.A2.A3.A.4A4.A.3A4.A2.4A5.A.A3.A2.A.A3.2A.2A$A9.A.2A4.A.A4.A4.A 2.A2.3A2.A2.A.2A.2A2.A.2A.A.2A$2.A.3A.2A.A3.A2.5A3.A.2A.A3.A.2A.6A2.
4A.3A2.2A.A$2A.A2.A4.3A3.A.A.2A.2A3.3A5.4A.A.A4.6A.A.2A.A$A.A2.3A.A.
2A2.6A.A.2A2.A2.4A.A2.A.3A2.A7.A2.A.A.A$2A2.2A.A3.9A.A2.5A2.5A2.2A6.A 6.2A.A.5A$2A.2A2.A.2A.A.2A3.A4.A.2A.3A.2A.A2.A2.8A2.2A2.A3.A.2A$A2.A 2.A3.A8.A.2A4.4A3.3A4.A5.A.2A.A.A2.2A.2A$4A2.2A.A.4A2.A.A.A3.A3.A3.A
3.2A.A2.8A4.A.A.2A2.A$.8A.A.A.4A.3A.A.A2.A.A3.2A4.4A.A2.A.A3.A.A2.A. 3A$5A4.A.4A3.A.3A3.4A.A4.A.4A3.2A.3A.4A.A.A2.A$3A.A3.2A.A.2A.3A5.A.A. A2.2A.2A4.A.A3.3A.4A.A3.A$2.A2.4A.2A6.A5.3A4.A2.2A.A2.2A2.2A7.7A.3A$. A3.2A.A.3A.A.3A2.4A.A.3A2.A.2A.A.2A.3A3.A2.3A4.2A$4.A.3A2.A2.A.2A2.A.
3A2.2A.2A5.3A4.4A4.A2.2A.4A$.2A.2A2.A4.2A.A.A2.A8.2A.A3.2A3.4A2.A2.2A .A.2A2.A.2A$A.A4.5A.A2.4A.A.2A2.4A2.2A2.5A.2A2.A.2A.3A.A$3.A3.2A2.A3. 2A.A.2A2.6A4.3A.2A.2A.A4.A2.A.3A.A.2A$.6A2.A2.4A5.3A2.A.A2.A3.A3.A.A.
A.A2.2A.2A2.A3.A.A.A!

@RULE example

This is a multistate variation of HighLife (B36/S23).

When an alive cell reaches maximum age (state 255), the cell
"counts as 3 alive neighbours" instead of one.
https://conwaylife.com/forums/viewtopic.php?p=182794#p182794
https://conwaylife.com/forums/viewtopic.php?p=182756#p182756

Inspired by the description of a screensaver 'Cloud Life',
where maximum-age alive cells count as 3:
https://www.jwz.org/xscreensaver/screenshots/
https://conwaylife.com/forums/viewtopic.php?p=182748#p182748

@TABLE
n_states:256
neighborhood:Moore
symmetries:permute

var x0 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 }  # any cell
var x1 = x0
var x2 = x0
var x3 = x0
var x4 = x0
var x5 = x0
var x6 = x0
var x7 = x0
var x8 = x0
var a1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 }  # non-max-age alive cell
var a2 = a1
var a3 = a1
var a4 = a1
var a5 = a1
var a6 = a1

# birth rules
0,  a1, a2, a3,  0,  0,  0,  0,  0,  1  # n_max_age = 0, n_other = 3
0,  a1, a2, a3, a4, a5, a6,  0,  0,  1  # n_max_age = 0, n_other = 6
0,  255,  0,  0,  0,  0,  0,  0,  0,  1  # n_max_age = 1, n_other = 0
0,  a1, a2, a3, 255,  0,  0,  0,  0,  1  # n_max_age = 1, n_other = 3
0,  255, 255,  0,  0,  0,  0,  0,  0,  1  # n_max_age = 2, n_other = 0
# survival rules (n_max_age = 0, n_other = 2)
1,  a1, a2,  0,  0,  0,  0,  0,  0,  2
2,  a1, a2,  0,  0,  0,  0,  0,  0,  3
3,  a1, a2,  0,  0,  0,  0,  0,  0,  4
4,  a1, a2,  0,  0,  0,  0,  0,  0,  5
5,  a1, a2,  0,  0,  0,  0,  0,  0,  6
6,  a1, a2,  0,  0,  0,  0,  0,  0,  7
7,  a1, a2,  0,  0,  0,  0,  0,  0,  8
8,  a1, a2,  0,  0,  0,  0,  0,  0,  9
9,  a1, a2,  0,  0,  0,  0,  0,  0, 10
10, a1, a2,  0,  0,  0,  0,  0,  0, 11
11, a1, a2,  0,  0,  0,  0,  0,  0, 12
12, a1, a2,  0,  0,  0,  0,  0,  0, 13
13, a1, a2,  0,  0,  0,  0,  0,  0, 14
14, a1, a2,  0,  0,  0,  0,  0,  0, 15
15, a1, a2,  0,  0,  0,  0,  0,  0, 16
16, a1, a2,  0,  0,  0,  0,  0,  0, 17
17, a1, a2,  0,  0,  0,  0,  0,  0, 18
18, a1, a2,  0,  0,  0,  0,  0,  0, 19
19, a1, a2,  0,  0,  0,  0,  0,  0, 20
20, a1, a2,  0,  0,  0,  0,  0,  0, 21
21, a1, a2,  0,  0,  0,  0,  0,  0, 22
22, a1, a2,  0,  0,  0,  0,  0,  0, 23
23, a1, a2,  0,  0,  0,  0,  0,  0, 24
24, a1, a2,  0,  0,  0,  0,  0,  0, 25
25, a1, a2,  0,  0,  0,  0,  0,  0, 26
26, a1, a2,  0,  0,  0,  0,  0,  0, 27
27, a1, a2,  0,  0,  0,  0,  0,  0, 28
28, a1, a2,  0,  0,  0,  0,  0,  0, 29
29, a1, a2,  0,  0,  0,  0,  0,  0, 30
30, a1, a2,  0,  0,  0,  0,  0,  0, 31
31, a1, a2,  0,  0,  0,  0,  0,  0, 32
32, a1, a2,  0,  0,  0,  0,  0,  0, 33
33, a1, a2,  0,  0,  0,  0,  0,  0, 34
34, a1, a2,  0,  0,  0,  0,  0,  0, 35
35, a1, a2,  0,  0,  0,  0,  0,  0, 36
36, a1, a2,  0,  0,  0,  0,  0,  0, 37
37, a1, a2,  0,  0,  0,  0,  0,  0, 38
38, a1, a2,  0,  0,  0,  0,  0,  0, 39
39, a1, a2,  0,  0,  0,  0,  0,  0, 40
40, a1, a2,  0,  0,  0,  0,  0,  0, 41
41, a1, a2,  0,  0,  0,  0,  0,  0, 42
42, a1, a2,  0,  0,  0,  0,  0,  0, 43
43, a1, a2,  0,  0,  0,  0,  0,  0, 44
44, a1, a2,  0,  0,  0,  0,  0,  0, 45
45, a1, a2,  0,  0,  0,  0,  0,  0, 46
46, a1, a2,  0,  0,  0,  0,  0,  0, 47
47, a1, a2,  0,  0,  0,  0,  0,  0, 48
48, a1, a2,  0,  0,  0,  0,  0,  0, 49
49, a1, a2,  0,  0,  0,  0,  0,  0, 50
50, a1, a2,  0,  0,  0,  0,  0,  0, 51
51, a1, a2,  0,  0,  0,  0,  0,  0, 52
52, a1, a2,  0,  0,  0,  0,  0,  0, 53
53, a1, a2,  0,  0,  0,  0,  0,  0, 54
54, a1, a2,  0,  0,  0,  0,  0,  0, 55
55, a1, a2,  0,  0,  0,  0,  0,  0, 56
56, a1, a2,  0,  0,  0,  0,  0,  0, 57
57, a1, a2,  0,  0,  0,  0,  0,  0, 58
58, a1, a2,  0,  0,  0,  0,  0,  0, 59
59, a1, a2,  0,  0,  0,  0,  0,  0, 60
60, a1, a2,  0,  0,  0,  0,  0,  0, 61
61, a1, a2,  0,  0,  0,  0,  0,  0, 62
62, a1, a2,  0,  0,  0,  0,  0,  0, 63
63, a1, a2,  0,  0,  0,  0,  0,  0, 64
64, a1, a2,  0,  0,  0,  0,  0,  0, 65
65, a1, a2,  0,  0,  0,  0,  0,  0, 66
66, a1, a2,  0,  0,  0,  0,  0,  0, 67
67, a1, a2,  0,  0,  0,  0,  0,  0, 68
68, a1, a2,  0,  0,  0,  0,  0,  0, 69
69, a1, a2,  0,  0,  0,  0,  0,  0, 70
70, a1, a2,  0,  0,  0,  0,  0,  0, 71
71, a1, a2,  0,  0,  0,  0,  0,  0, 72
72, a1, a2,  0,  0,  0,  0,  0,  0, 73
73, a1, a2,  0,  0,  0,  0,  0,  0, 74
74, a1, a2,  0,  0,  0,  0,  0,  0, 75
75, a1, a2,  0,  0,  0,  0,  0,  0, 76
76, a1, a2,  0,  0,  0,  0,  0,  0, 77
77, a1, a2,  0,  0,  0,  0,  0,  0, 78
78, a1, a2,  0,  0,  0,  0,  0,  0, 79
79, a1, a2,  0,  0,  0,  0,  0,  0, 80
80, a1, a2,  0,  0,  0,  0,  0,  0, 81
81, a1, a2,  0,  0,  0,  0,  0,  0, 82
82, a1, a2,  0,  0,  0,  0,  0,  0, 83
83, a1, a2,  0,  0,  0,  0,  0,  0, 84
84, a1, a2,  0,  0,  0,  0,  0,  0, 85
85, a1, a2,  0,  0,  0,  0,  0,  0, 86
86, a1, a2,  0,  0,  0,  0,  0,  0, 87
87, a1, a2,  0,  0,  0,  0,  0,  0, 88
88, a1, a2,  0,  0,  0,  0,  0,  0, 89
89, a1, a2,  0,  0,  0,  0,  0,  0, 90
90, a1, a2,  0,  0,  0,  0,  0,  0, 91
91, a1, a2,  0,  0,  0,  0,  0,  0, 92
92, a1, a2,  0,  0,  0,  0,  0,  0, 93
93, a1, a2,  0,  0,  0,  0,  0,  0, 94
94, a1, a2,  0,  0,  0,  0,  0,  0, 95
95, a1, a2,  0,  0,  0,  0,  0,  0, 96
96, a1, a2,  0,  0,  0,  0,  0,  0, 97
97, a1, a2,  0,  0,  0,  0,  0,  0, 98
98, a1, a2,  0,  0,  0,  0,  0,  0, 99
99, a1, a2,  0,  0,  0,  0,  0,  0, 100
100, a1, a2,  0,  0,  0,  0,  0,  0, 101
101, a1, a2,  0,  0,  0,  0,  0,  0, 102
102, a1, a2,  0,  0,  0,  0,  0,  0, 103
103, a1, a2,  0,  0,  0,  0,  0,  0, 104
104, a1, a2,  0,  0,  0,  0,  0,  0, 105
105, a1, a2,  0,  0,  0,  0,  0,  0, 106
106, a1, a2,  0,  0,  0,  0,  0,  0, 107
107, a1, a2,  0,  0,  0,  0,  0,  0, 108
108, a1, a2,  0,  0,  0,  0,  0,  0, 109
109, a1, a2,  0,  0,  0,  0,  0,  0, 110
110, a1, a2,  0,  0,  0,  0,  0,  0, 111
111, a1, a2,  0,  0,  0,  0,  0,  0, 112
112, a1, a2,  0,  0,  0,  0,  0,  0, 113
113, a1, a2,  0,  0,  0,  0,  0,  0, 114
114, a1, a2,  0,  0,  0,  0,  0,  0, 115
115, a1, a2,  0,  0,  0,  0,  0,  0, 116
116, a1, a2,  0,  0,  0,  0,  0,  0, 117
117, a1, a2,  0,  0,  0,  0,  0,  0, 118
118, a1, a2,  0,  0,  0,  0,  0,  0, 119
119, a1, a2,  0,  0,  0,  0,  0,  0, 120
120, a1, a2,  0,  0,  0,  0,  0,  0, 121
121, a1, a2,  0,  0,  0,  0,  0,  0, 122
122, a1, a2,  0,  0,  0,  0,  0,  0, 123
123, a1, a2,  0,  0,  0,  0,  0,  0, 124
124, a1, a2,  0,  0,  0,  0,  0,  0, 125
125, a1, a2,  0,  0,  0,  0,  0,  0, 126
126, a1, a2,  0,  0,  0,  0,  0,  0, 127
127, a1, a2,  0,  0,  0,  0,  0,  0, 128
128, a1, a2,  0,  0,  0,  0,  0,  0, 129
129, a1, a2,  0,  0,  0,  0,  0,  0, 130
130, a1, a2,  0,  0,  0,  0,  0,  0, 131
131, a1, a2,  0,  0,  0,  0,  0,  0, 132
132, a1, a2,  0,  0,  0,  0,  0,  0, 133
133, a1, a2,  0,  0,  0,  0,  0,  0, 134
134, a1, a2,  0,  0,  0,  0,  0,  0, 135
135, a1, a2,  0,  0,  0,  0,  0,  0, 136
136, a1, a2,  0,  0,  0,  0,  0,  0, 137
137, a1, a2,  0,  0,  0,  0,  0,  0, 138
138, a1, a2,  0,  0,  0,  0,  0,  0, 139
139, a1, a2,  0,  0,  0,  0,  0,  0, 140
140, a1, a2,  0,  0,  0,  0,  0,  0, 141
141, a1, a2,  0,  0,  0,  0,  0,  0, 142
142, a1, a2,  0,  0,  0,  0,  0,  0, 143
143, a1, a2,  0,  0,  0,  0,  0,  0, 144
144, a1, a2,  0,  0,  0,  0,  0,  0, 145
145, a1, a2,  0,  0,  0,  0,  0,  0, 146
146, a1, a2,  0,  0,  0,  0,  0,  0, 147
147, a1, a2,  0,  0,  0,  0,  0,  0, 148
148, a1, a2,  0,  0,  0,  0,  0,  0, 149
149, a1, a2,  0,  0,  0,  0,  0,  0, 150
150, a1, a2,  0,  0,  0,  0,  0,  0, 151
151, a1, a2,  0,  0,  0,  0,  0,  0, 152
152, a1, a2,  0,  0,  0,  0,  0,  0, 153
153, a1, a2,  0,  0,  0,  0,  0,  0, 154
154, a1, a2,  0,  0,  0,  0,  0,  0, 155
155, a1, a2,  0,  0,  0,  0,  0,  0, 156
156, a1, a2,  0,  0,  0,  0,  0,  0, 157
157, a1, a2,  0,  0,  0,  0,  0,  0, 158
158, a1, a2,  0,  0,  0,  0,  0,  0, 159
159, a1, a2,  0,  0,  0,  0,  0,  0, 160
160, a1, a2,  0,  0,  0,  0,  0,  0, 161
161, a1, a2,  0,  0,  0,  0,  0,  0, 162
162, a1, a2,  0,  0,  0,  0,  0,  0, 163
163, a1, a2,  0,  0,  0,  0,  0,  0, 164
164, a1, a2,  0,  0,  0,  0,  0,  0, 165
165, a1, a2,  0,  0,  0,  0,  0,  0, 166
166, a1, a2,  0,  0,  0,  0,  0,  0, 167
167, a1, a2,  0,  0,  0,  0,  0,  0, 168
168, a1, a2,  0,  0,  0,  0,  0,  0, 169
169, a1, a2,  0,  0,  0,  0,  0,  0, 170
170, a1, a2,  0,  0,  0,  0,  0,  0, 171
171, a1, a2,  0,  0,  0,  0,  0,  0, 172
172, a1, a2,  0,  0,  0,  0,  0,  0, 173
173, a1, a2,  0,  0,  0,  0,  0,  0, 174
174, a1, a2,  0,  0,  0,  0,  0,  0, 175
175, a1, a2,  0,  0,  0,  0,  0,  0, 176
176, a1, a2,  0,  0,  0,  0,  0,  0, 177
177, a1, a2,  0,  0,  0,  0,  0,  0, 178
178, a1, a2,  0,  0,  0,  0,  0,  0, 179
179, a1, a2,  0,  0,  0,  0,  0,  0, 180
180, a1, a2,  0,  0,  0,  0,  0,  0, 181
181, a1, a2,  0,  0,  0,  0,  0,  0, 182
182, a1, a2,  0,  0,  0,  0,  0,  0, 183
183, a1, a2,  0,  0,  0,  0,  0,  0, 184
184, a1, a2,  0,  0,  0,  0,  0,  0, 185
185, a1, a2,  0,  0,  0,  0,  0,  0, 186
186, a1, a2,  0,  0,  0,  0,  0,  0, 187
187, a1, a2,  0,  0,  0,  0,  0,  0, 188
188, a1, a2,  0,  0,  0,  0,  0,  0, 189
189, a1, a2,  0,  0,  0,  0,  0,  0, 190
190, a1, a2,  0,  0,  0,  0,  0,  0, 191
191, a1, a2,  0,  0,  0,  0,  0,  0, 192
192, a1, a2,  0,  0,  0,  0,  0,  0, 193
193, a1, a2,  0,  0,  0,  0,  0,  0, 194
194, a1, a2,  0,  0,  0,  0,  0,  0, 195
195, a1, a2,  0,  0,  0,  0,  0,  0, 196
196, a1, a2,  0,  0,  0,  0,  0,  0, 197
197, a1, a2,  0,  0,  0,  0,  0,  0, 198
198, a1, a2,  0,  0,  0,  0,  0,  0, 199
199, a1, a2,  0,  0,  0,  0,  0,  0, 200
200, a1, a2,  0,  0,  0,  0,  0,  0, 201
201, a1, a2,  0,  0,  0,  0,  0,  0, 202
202, a1, a2,  0,  0,  0,  0,  0,  0, 203
203, a1, a2,  0,  0,  0,  0,  0,  0, 204
204, a1, a2,  0,  0,  0,  0,  0,  0, 205
205, a1, a2,  0,  0,  0,  0,  0,  0, 206
206, a1, a2,  0,  0,  0,  0,  0,  0, 207
207, a1, a2,  0,  0,  0,  0,  0,  0, 208
208, a1, a2,  0,  0,  0,  0,  0,  0, 209
209, a1, a2,  0,  0,  0,  0,  0,  0, 210
210, a1, a2,  0,  0,  0,  0,  0,  0, 211
211, a1, a2,  0,  0,  0,  0,  0,  0, 212
212, a1, a2,  0,  0,  0,  0,  0,  0, 213
213, a1, a2,  0,  0,  0,  0,  0,  0, 214
214, a1, a2,  0,  0,  0,  0,  0,  0, 215
215, a1, a2,  0,  0,  0,  0,  0,  0, 216
216, a1, a2,  0,  0,  0,  0,  0,  0, 217
217, a1, a2,  0,  0,  0,  0,  0,  0, 218
218, a1, a2,  0,  0,  0,  0,  0,  0, 219
219, a1, a2,  0,  0,  0,  0,  0,  0, 220
220, a1, a2,  0,  0,  0,  0,  0,  0, 221
221, a1, a2,  0,  0,  0,  0,  0,  0, 222
222, a1, a2,  0,  0,  0,  0,  0,  0, 223
223, a1, a2,  0,  0,  0,  0,  0,  0, 224
224, a1, a2,  0,  0,  0,  0,  0,  0, 225
225, a1, a2,  0,  0,  0,  0,  0,  0, 226
226, a1, a2,  0,  0,  0,  0,  0,  0, 227
227, a1, a2,  0,  0,  0,  0,  0,  0, 228
228, a1, a2,  0,  0,  0,  0,  0,  0, 229
229, a1, a2,  0,  0,  0,  0,  0,  0, 230
230, a1, a2,  0,  0,  0,  0,  0,  0, 231
231, a1, a2,  0,  0,  0,  0,  0,  0, 232
232, a1, a2,  0,  0,  0,  0,  0,  0, 233
233, a1, a2,  0,  0,  0,  0,  0,  0, 234
234, a1, a2,  0,  0,  0,  0,  0,  0, 235
235, a1, a2,  0,  0,  0,  0,  0,  0, 236
236, a1, a2,  0,  0,  0,  0,  0,  0, 237
237, a1, a2,  0,  0,  0,  0,  0,  0, 238
238, a1, a2,  0,  0,  0,  0,  0,  0, 239
239, a1, a2,  0,  0,  0,  0,  0,  0, 240
240, a1, a2,  0,  0,  0,  0,  0,  0, 241
241, a1, a2,  0,  0,  0,  0,  0,  0, 242
242, a1, a2,  0,  0,  0,  0,  0,  0, 243
243, a1, a2,  0,  0,  0,  0,  0,  0, 244
244, a1, a2,  0,  0,  0,  0,  0,  0, 245
245, a1, a2,  0,  0,  0,  0,  0,  0, 246
246, a1, a2,  0,  0,  0,  0,  0,  0, 247
247, a1, a2,  0,  0,  0,  0,  0,  0, 248
248, a1, a2,  0,  0,  0,  0,  0,  0, 249
249, a1, a2,  0,  0,  0,  0,  0,  0, 250
250, a1, a2,  0,  0,  0,  0,  0,  0, 251
251, a1, a2,  0,  0,  0,  0,  0,  0, 252
252, a1, a2,  0,  0,  0,  0,  0,  0, 253
253, a1, a2,  0,  0,  0,  0,  0,  0, 254
254, a1, a2,  0,  0,  0,  0,  0,  0, 255
255, a1, a2,  0,  0,  0,  0,  0,  0, 255
# survival rules (n_max_age = 0, n_other = 3)
1,  a1, a2, a3,  0,  0,  0,  0,  0,  2
2,  a1, a2, a3,  0,  0,  0,  0,  0,  3
3,  a1, a2, a3,  0,  0,  0,  0,  0,  4
4,  a1, a2, a3,  0,  0,  0,  0,  0,  5
5,  a1, a2, a3,  0,  0,  0,  0,  0,  6
6,  a1, a2, a3,  0,  0,  0,  0,  0,  7
7,  a1, a2, a3,  0,  0,  0,  0,  0,  8
8,  a1, a2, a3,  0,  0,  0,  0,  0,  9
9,  a1, a2, a3,  0,  0,  0,  0,  0, 10
10, a1, a2, a3,  0,  0,  0,  0,  0, 11
11, a1, a2, a3,  0,  0,  0,  0,  0, 12
12, a1, a2, a3,  0,  0,  0,  0,  0, 13
13, a1, a2, a3,  0,  0,  0,  0,  0, 14
14, a1, a2, a3,  0,  0,  0,  0,  0, 15
15, a1, a2, a3,  0,  0,  0,  0,  0, 16
16, a1, a2, a3,  0,  0,  0,  0,  0, 17
17, a1, a2, a3,  0,  0,  0,  0,  0, 18
18, a1, a2, a3,  0,  0,  0,  0,  0, 19
19, a1, a2, a3,  0,  0,  0,  0,  0, 20
20, a1, a2, a3,  0,  0,  0,  0,  0, 21
21, a1, a2, a3,  0,  0,  0,  0,  0, 22
22, a1, a2, a3,  0,  0,  0,  0,  0, 23
23, a1, a2, a3,  0,  0,  0,  0,  0, 24
24, a1, a2, a3,  0,  0,  0,  0,  0, 25
25, a1, a2, a3,  0,  0,  0,  0,  0, 26
26, a1, a2, a3,  0,  0,  0,  0,  0, 27
27, a1, a2, a3,  0,  0,  0,  0,  0, 28
28, a1, a2, a3,  0,  0,  0,  0,  0, 29
29, a1, a2, a3,  0,  0,  0,  0,  0, 30
30, a1, a2, a3,  0,  0,  0,  0,  0, 31
31, a1, a2, a3,  0,  0,  0,  0,  0, 32
32, a1, a2, a3,  0,  0,  0,  0,  0, 33
33, a1, a2, a3,  0,  0,  0,  0,  0, 34
34, a1, a2, a3,  0,  0,  0,  0,  0, 35
35, a1, a2, a3,  0,  0,  0,  0,  0, 36
36, a1, a2, a3,  0,  0,  0,  0,  0, 37
37, a1, a2, a3,  0,  0,  0,  0,  0, 38
38, a1, a2, a3,  0,  0,  0,  0,  0, 39
39, a1, a2, a3,  0,  0,  0,  0,  0, 40
40, a1, a2, a3,  0,  0,  0,  0,  0, 41
41, a1, a2, a3,  0,  0,  0,  0,  0, 42
42, a1, a2, a3,  0,  0,  0,  0,  0, 43
43, a1, a2, a3,  0,  0,  0,  0,  0, 44
44, a1, a2, a3,  0,  0,  0,  0,  0, 45
45, a1, a2, a3,  0,  0,  0,  0,  0, 46
46, a1, a2, a3,  0,  0,  0,  0,  0, 47
47, a1, a2, a3,  0,  0,  0,  0,  0, 48
48, a1, a2, a3,  0,  0,  0,  0,  0, 49
49, a1, a2, a3,  0,  0,  0,  0,  0, 50
50, a1, a2, a3,  0,  0,  0,  0,  0, 51
51, a1, a2, a3,  0,  0,  0,  0,  0, 52
52, a1, a2, a3,  0,  0,  0,  0,  0, 53
53, a1, a2, a3,  0,  0,  0,  0,  0, 54
54, a1, a2, a3,  0,  0,  0,  0,  0, 55
55, a1, a2, a3,  0,  0,  0,  0,  0, 56
56, a1, a2, a3,  0,  0,  0,  0,  0, 57
57, a1, a2, a3,  0,  0,  0,  0,  0, 58
58, a1, a2, a3,  0,  0,  0,  0,  0, 59
59, a1, a2, a3,  0,  0,  0,  0,  0, 60
60, a1, a2, a3,  0,  0,  0,  0,  0, 61
61, a1, a2, a3,  0,  0,  0,  0,  0, 62
62, a1, a2, a3,  0,  0,  0,  0,  0, 63
63, a1, a2, a3,  0,  0,  0,  0,  0, 64
64, a1, a2, a3,  0,  0,  0,  0,  0, 65
65, a1, a2, a3,  0,  0,  0,  0,  0, 66
66, a1, a2, a3,  0,  0,  0,  0,  0, 67
67, a1, a2, a3,  0,  0,  0,  0,  0, 68
68, a1, a2, a3,  0,  0,  0,  0,  0, 69
69, a1, a2, a3,  0,  0,  0,  0,  0, 70
70, a1, a2, a3,  0,  0,  0,  0,  0, 71
71, a1, a2, a3,  0,  0,  0,  0,  0, 72
72, a1, a2, a3,  0,  0,  0,  0,  0, 73
73, a1, a2, a3,  0,  0,  0,  0,  0, 74
74, a1, a2, a3,  0,  0,  0,  0,  0, 75
75, a1, a2, a3,  0,  0,  0,  0,  0, 76
76, a1, a2, a3,  0,  0,  0,  0,  0, 77
77, a1, a2, a3,  0,  0,  0,  0,  0, 78
78, a1, a2, a3,  0,  0,  0,  0,  0, 79
79, a1, a2, a3,  0,  0,  0,  0,  0, 80
80, a1, a2, a3,  0,  0,  0,  0,  0, 81
81, a1, a2, a3,  0,  0,  0,  0,  0, 82
82, a1, a2, a3,  0,  0,  0,  0,  0, 83
83, a1, a2, a3,  0,  0,  0,  0,  0, 84
84, a1, a2, a3,  0,  0,  0,  0,  0, 85
85, a1, a2, a3,  0,  0,  0,  0,  0, 86
86, a1, a2, a3,  0,  0,  0,  0,  0, 87
87, a1, a2, a3,  0,  0,  0,  0,  0, 88
88, a1, a2, a3,  0,  0,  0,  0,  0, 89
89, a1, a2, a3,  0,  0,  0,  0,  0, 90
90, a1, a2, a3,  0,  0,  0,  0,  0, 91
91, a1, a2, a3,  0,  0,  0,  0,  0, 92
92, a1, a2, a3,  0,  0,  0,  0,  0, 93
93, a1, a2, a3,  0,  0,  0,  0,  0, 94
94, a1, a2, a3,  0,  0,  0,  0,  0, 95
95, a1, a2, a3,  0,  0,  0,  0,  0, 96
96, a1, a2, a3,  0,  0,  0,  0,  0, 97
97, a1, a2, a3,  0,  0,  0,  0,  0, 98
98, a1, a2, a3,  0,  0,  0,  0,  0, 99
99, a1, a2, a3,  0,  0,  0,  0,  0, 100
100, a1, a2, a3,  0,  0,  0,  0,  0, 101
101, a1, a2, a3,  0,  0,  0,  0,  0, 102
102, a1, a2, a3,  0,  0,  0,  0,  0, 103
103, a1, a2, a3,  0,  0,  0,  0,  0, 104
104, a1, a2, a3,  0,  0,  0,  0,  0, 105
105, a1, a2, a3,  0,  0,  0,  0,  0, 106
106, a1, a2, a3,  0,  0,  0,  0,  0, 107
107, a1, a2, a3,  0,  0,  0,  0,  0, 108
108, a1, a2, a3,  0,  0,  0,  0,  0, 109
109, a1, a2, a3,  0,  0,  0,  0,  0, 110
110, a1, a2, a3,  0,  0,  0,  0,  0, 111
111, a1, a2, a3,  0,  0,  0,  0,  0, 112
112, a1, a2, a3,  0,  0,  0,  0,  0, 113
113, a1, a2, a3,  0,  0,  0,  0,  0, 114
114, a1, a2, a3,  0,  0,  0,  0,  0, 115
115, a1, a2, a3,  0,  0,  0,  0,  0, 116
116, a1, a2, a3,  0,  0,  0,  0,  0, 117
117, a1, a2, a3,  0,  0,  0,  0,  0, 118
118, a1, a2, a3,  0,  0,  0,  0,  0, 119
119, a1, a2, a3,  0,  0,  0,  0,  0, 120
120, a1, a2, a3,  0,  0,  0,  0,  0, 121
121, a1, a2, a3,  0,  0,  0,  0,  0, 122
122, a1, a2, a3,  0,  0,  0,  0,  0, 123
123, a1, a2, a3,  0,  0,  0,  0,  0, 124
124, a1, a2, a3,  0,  0,  0,  0,  0, 125
125, a1, a2, a3,  0,  0,  0,  0,  0, 126
126, a1, a2, a3,  0,  0,  0,  0,  0, 127
127, a1, a2, a3,  0,  0,  0,  0,  0, 128
128, a1, a2, a3,  0,  0,  0,  0,  0, 129
129, a1, a2, a3,  0,  0,  0,  0,  0, 130
130, a1, a2, a3,  0,  0,  0,  0,  0, 131
131, a1, a2, a3,  0,  0,  0,  0,  0, 132
132, a1, a2, a3,  0,  0,  0,  0,  0, 133
133, a1, a2, a3,  0,  0,  0,  0,  0, 134
134, a1, a2, a3,  0,  0,  0,  0,  0, 135
135, a1, a2, a3,  0,  0,  0,  0,  0, 136
136, a1, a2, a3,  0,  0,  0,  0,  0, 137
137, a1, a2, a3,  0,  0,  0,  0,  0, 138
138, a1, a2, a3,  0,  0,  0,  0,  0, 139
139, a1, a2, a3,  0,  0,  0,  0,  0, 140
140, a1, a2, a3,  0,  0,  0,  0,  0, 141
141, a1, a2, a3,  0,  0,  0,  0,  0, 142
142, a1, a2, a3,  0,  0,  0,  0,  0, 143
143, a1, a2, a3,  0,  0,  0,  0,  0, 144
144, a1, a2, a3,  0,  0,  0,  0,  0, 145
145, a1, a2, a3,  0,  0,  0,  0,  0, 146
146, a1, a2, a3,  0,  0,  0,  0,  0, 147
147, a1, a2, a3,  0,  0,  0,  0,  0, 148
148, a1, a2, a3,  0,  0,  0,  0,  0, 149
149, a1, a2, a3,  0,  0,  0,  0,  0, 150
150, a1, a2, a3,  0,  0,  0,  0,  0, 151
151, a1, a2, a3,  0,  0,  0,  0,  0, 152
152, a1, a2, a3,  0,  0,  0,  0,  0, 153
153, a1, a2, a3,  0,  0,  0,  0,  0, 154
154, a1, a2, a3,  0,  0,  0,  0,  0, 155
155, a1, a2, a3,  0,  0,  0,  0,  0, 156
156, a1, a2, a3,  0,  0,  0,  0,  0, 157
157, a1, a2, a3,  0,  0,  0,  0,  0, 158
158, a1, a2, a3,  0,  0,  0,  0,  0, 159
159, a1, a2, a3,  0,  0,  0,  0,  0, 160
160, a1, a2, a3,  0,  0,  0,  0,  0, 161
161, a1, a2, a3,  0,  0,  0,  0,  0, 162
162, a1, a2, a3,  0,  0,  0,  0,  0, 163
163, a1, a2, a3,  0,  0,  0,  0,  0, 164
164, a1, a2, a3,  0,  0,  0,  0,  0, 165
165, a1, a2, a3,  0,  0,  0,  0,  0, 166
166, a1, a2, a3,  0,  0,  0,  0,  0, 167
167, a1, a2, a3,  0,  0,  0,  0,  0, 168
168, a1, a2, a3,  0,  0,  0,  0,  0, 169
169, a1, a2, a3,  0,  0,  0,  0,  0, 170
170, a1, a2, a3,  0,  0,  0,  0,  0, 171
171, a1, a2, a3,  0,  0,  0,  0,  0, 172
172, a1, a2, a3,  0,  0,  0,  0,  0, 173
173, a1, a2, a3,  0,  0,  0,  0,  0, 174
174, a1, a2, a3,  0,  0,  0,  0,  0, 175
175, a1, a2, a3,  0,  0,  0,  0,  0, 176
176, a1, a2, a3,  0,  0,  0,  0,  0, 177
177, a1, a2, a3,  0,  0,  0,  0,  0, 178
178, a1, a2, a3,  0,  0,  0,  0,  0, 179
179, a1, a2, a3,  0,  0,  0,  0,  0, 180
180, a1, a2, a3,  0,  0,  0,  0,  0, 181
181, a1, a2, a3,  0,  0,  0,  0,  0, 182
182, a1, a2, a3,  0,  0,  0,  0,  0, 183
183, a1, a2, a3,  0,  0,  0,  0,  0, 184
184, a1, a2, a3,  0,  0,  0,  0,  0, 185
185, a1, a2, a3,  0,  0,  0,  0,  0, 186
186, a1, a2, a3,  0,  0,  0,  0,  0, 187
187, a1, a2, a3,  0,  0,  0,  0,  0, 188
188, a1, a2, a3,  0,  0,  0,  0,  0, 189
189, a1, a2, a3,  0,  0,  0,  0,  0, 190
190, a1, a2, a3,  0,  0,  0,  0,  0, 191
191, a1, a2, a3,  0,  0,  0,  0,  0, 192
192, a1, a2, a3,  0,  0,  0,  0,  0, 193
193, a1, a2, a3,  0,  0,  0,  0,  0, 194
194, a1, a2, a3,  0,  0,  0,  0,  0, 195
195, a1, a2, a3,  0,  0,  0,  0,  0, 196
196, a1, a2, a3,  0,  0,  0,  0,  0, 197
197, a1, a2, a3,  0,  0,  0,  0,  0, 198
198, a1, a2, a3,  0,  0,  0,  0,  0, 199
199, a1, a2, a3,  0,  0,  0,  0,  0, 200
200, a1, a2, a3,  0,  0,  0,  0,  0, 201
201, a1, a2, a3,  0,  0,  0,  0,  0, 202
202, a1, a2, a3,  0,  0,  0,  0,  0, 203
203, a1, a2, a3,  0,  0,  0,  0,  0, 204
204, a1, a2, a3,  0,  0,  0,  0,  0, 205
205, a1, a2, a3,  0,  0,  0,  0,  0, 206
206, a1, a2, a3,  0,  0,  0,  0,  0, 207
207, a1, a2, a3,  0,  0,  0,  0,  0, 208
208, a1, a2, a3,  0,  0,  0,  0,  0, 209
209, a1, a2, a3,  0,  0,  0,  0,  0, 210
210, a1, a2, a3,  0,  0,  0,  0,  0, 211
211, a1, a2, a3,  0,  0,  0,  0,  0, 212
212, a1, a2, a3,  0,  0,  0,  0,  0, 213
213, a1, a2, a3,  0,  0,  0,  0,  0, 214
214, a1, a2, a3,  0,  0,  0,  0,  0, 215
215, a1, a2, a3,  0,  0,  0,  0,  0, 216
216, a1, a2, a3,  0,  0,  0,  0,  0, 217
217, a1, a2, a3,  0,  0,  0,  0,  0, 218
218, a1, a2, a3,  0,  0,  0,  0,  0, 219
219, a1, a2, a3,  0,  0,  0,  0,  0, 220
220, a1, a2, a3,  0,  0,  0,  0,  0, 221
221, a1, a2, a3,  0,  0,  0,  0,  0, 222
222, a1, a2, a3,  0,  0,  0,  0,  0, 223
223, a1, a2, a3,  0,  0,  0,  0,  0, 224
224, a1, a2, a3,  0,  0,  0,  0,  0, 225
225, a1, a2, a3,  0,  0,  0,  0,  0, 226
226, a1, a2, a3,  0,  0,  0,  0,  0, 227
227, a1, a2, a3,  0,  0,  0,  0,  0, 228
228, a1, a2, a3,  0,  0,  0,  0,  0, 229
229, a1, a2, a3,  0,  0,  0,  0,  0, 230
230, a1, a2, a3,  0,  0,  0,  0,  0, 231
231, a1, a2, a3,  0,  0,  0,  0,  0, 232
232, a1, a2, a3,  0,  0,  0,  0,  0, 233
233, a1, a2, a3,  0,  0,  0,  0,  0, 234
234, a1, a2, a3,  0,  0,  0,  0,  0, 235
235, a1, a2, a3,  0,  0,  0,  0,  0, 236
236, a1, a2, a3,  0,  0,  0,  0,  0, 237
237, a1, a2, a3,  0,  0,  0,  0,  0, 238
238, a1, a2, a3,  0,  0,  0,  0,  0, 239
239, a1, a2, a3,  0,  0,  0,  0,  0, 240
240, a1, a2, a3,  0,  0,  0,  0,  0, 241
241, a1, a2, a3,  0,  0,  0,  0,  0, 242
242, a1, a2, a3,  0,  0,  0,  0,  0, 243
243, a1, a2, a3,  0,  0,  0,  0,  0, 244
244, a1, a2, a3,  0,  0,  0,  0,  0, 245
245, a1, a2, a3,  0,  0,  0,  0,  0, 246
246, a1, a2, a3,  0,  0,  0,  0,  0, 247
247, a1, a2, a3,  0,  0,  0,  0,  0, 248
248, a1, a2, a3,  0,  0,  0,  0,  0, 249
249, a1, a2, a3,  0,  0,  0,  0,  0, 250
250, a1, a2, a3,  0,  0,  0,  0,  0, 251
251, a1, a2, a3,  0,  0,  0,  0,  0, 252
252, a1, a2, a3,  0,  0,  0,  0,  0, 253
253, a1, a2, a3,  0,  0,  0,  0,  0, 254
254, a1, a2, a3,  0,  0,  0,  0,  0, 255
255, a1, a2, a3,  0,  0,  0,  0,  0, 255
# survival rules (n_max_age = 1, n_other = 0)
1,  255,  0,  0,  0,  0,  0,  0,  0,  2
2,  255,  0,  0,  0,  0,  0,  0,  0,  3
3,  255,  0,  0,  0,  0,  0,  0,  0,  4
4,  255,  0,  0,  0,  0,  0,  0,  0,  5
5,  255,  0,  0,  0,  0,  0,  0,  0,  6
6,  255,  0,  0,  0,  0,  0,  0,  0,  7
7,  255,  0,  0,  0,  0,  0,  0,  0,  8
8,  255,  0,  0,  0,  0,  0,  0,  0,  9
9,  255,  0,  0,  0,  0,  0,  0,  0, 10
10, 255,  0,  0,  0,  0,  0,  0,  0, 11
11, 255,  0,  0,  0,  0,  0,  0,  0, 12
12, 255,  0,  0,  0,  0,  0,  0,  0, 13
13, 255,  0,  0,  0,  0,  0,  0,  0, 14
14, 255,  0,  0,  0,  0,  0,  0,  0, 15
15, 255,  0,  0,  0,  0,  0,  0,  0, 16
16, 255,  0,  0,  0,  0,  0,  0,  0, 17
17, 255,  0,  0,  0,  0,  0,  0,  0, 18
18, 255,  0,  0,  0,  0,  0,  0,  0, 19
19, 255,  0,  0,  0,  0,  0,  0,  0, 20
20, 255,  0,  0,  0,  0,  0,  0,  0, 21
21, 255,  0,  0,  0,  0,  0,  0,  0, 22
22, 255,  0,  0,  0,  0,  0,  0,  0, 23
23, 255,  0,  0,  0,  0,  0,  0,  0, 24
24, 255,  0,  0,  0,  0,  0,  0,  0, 25
25, 255,  0,  0,  0,  0,  0,  0,  0, 26
26, 255,  0,  0,  0,  0,  0,  0,  0, 27
27, 255,  0,  0,  0,  0,  0,  0,  0, 28
28, 255,  0,  0,  0,  0,  0,  0,  0, 29
29, 255,  0,  0,  0,  0,  0,  0,  0, 30
30, 255,  0,  0,  0,  0,  0,  0,  0, 31
31, 255,  0,  0,  0,  0,  0,  0,  0, 32
32, 255,  0,  0,  0,  0,  0,  0,  0, 33
33, 255,  0,  0,  0,  0,  0,  0,  0, 34
34, 255,  0,  0,  0,  0,  0,  0,  0, 35
35, 255,  0,  0,  0,  0,  0,  0,  0, 36
36, 255,  0,  0,  0,  0,  0,  0,  0, 37
37, 255,  0,  0,  0,  0,  0,  0,  0, 38
38, 255,  0,  0,  0,  0,  0,  0,  0, 39
39, 255,  0,  0,  0,  0,  0,  0,  0, 40
40, 255,  0,  0,  0,  0,  0,  0,  0, 41
41, 255,  0,  0,  0,  0,  0,  0,  0, 42
42, 255,  0,  0,  0,  0,  0,  0,  0, 43
43, 255,  0,  0,  0,  0,  0,  0,  0, 44
44, 255,  0,  0,  0,  0,  0,  0,  0, 45
45, 255,  0,  0,  0,  0,  0,  0,  0, 46
46, 255,  0,  0,  0,  0,  0,  0,  0, 47
47, 255,  0,  0,  0,  0,  0,  0,  0, 48
48, 255,  0,  0,  0,  0,  0,  0,  0, 49
49, 255,  0,  0,  0,  0,  0,  0,  0, 50
50, 255,  0,  0,  0,  0,  0,  0,  0, 51
51, 255,  0,  0,  0,  0,  0,  0,  0, 52
52, 255,  0,  0,  0,  0,  0,  0,  0, 53
53, 255,  0,  0,  0,  0,  0,  0,  0, 54
54, 255,  0,  0,  0,  0,  0,  0,  0, 55
55, 255,  0,  0,  0,  0,  0,  0,  0, 56
56, 255,  0,  0,  0,  0,  0,  0,  0, 57
57, 255,  0,  0,  0,  0,  0,  0,  0, 58
58, 255,  0,  0,  0,  0,  0,  0,  0, 59
59, 255,  0,  0,  0,  0,  0,  0,  0, 60
60, 255,  0,  0,  0,  0,  0,  0,  0, 61
61, 255,  0,  0,  0,  0,  0,  0,  0, 62
62, 255,  0,  0,  0,  0,  0,  0,  0, 63
63, 255,  0,  0,  0,  0,  0,  0,  0, 64
64, 255,  0,  0,  0,  0,  0,  0,  0, 65
65, 255,  0,  0,  0,  0,  0,  0,  0, 66
66, 255,  0,  0,  0,  0,  0,  0,  0, 67
67, 255,  0,  0,  0,  0,  0,  0,  0, 68
68, 255,  0,  0,  0,  0,  0,  0,  0, 69
69, 255,  0,  0,  0,  0,  0,  0,  0, 70
70, 255,  0,  0,  0,  0,  0,  0,  0, 71
71, 255,  0,  0,  0,  0,  0,  0,  0, 72
72, 255,  0,  0,  0,  0,  0,  0,  0, 73
73, 255,  0,  0,  0,  0,  0,  0,  0, 74
74, 255,  0,  0,  0,  0,  0,  0,  0, 75
75, 255,  0,  0,  0,  0,  0,  0,  0, 76
76, 255,  0,  0,  0,  0,  0,  0,  0, 77
77, 255,  0,  0,  0,  0,  0,  0,  0, 78
78, 255,  0,  0,  0,  0,  0,  0,  0, 79
79, 255,  0,  0,  0,  0,  0,  0,  0, 80
80, 255,  0,  0,  0,  0,  0,  0,  0, 81
81, 255,  0,  0,  0,  0,  0,  0,  0, 82
82, 255,  0,  0,  0,  0,  0,  0,  0, 83
83, 255,  0,  0,  0,  0,  0,  0,  0, 84
84, 255,  0,  0,  0,  0,  0,  0,  0, 85
85, 255,  0,  0,  0,  0,  0,  0,  0, 86
86, 255,  0,  0,  0,  0,  0,  0,  0, 87
87, 255,  0,  0,  0,  0,  0,  0,  0, 88
88, 255,  0,  0,  0,  0,  0,  0,  0, 89
89, 255,  0,  0,  0,  0,  0,  0,  0, 90
90, 255,  0,  0,  0,  0,  0,  0,  0, 91
91, 255,  0,  0,  0,  0,  0,  0,  0, 92
92, 255,  0,  0,  0,  0,  0,  0,  0, 93
93, 255,  0,  0,  0,  0,  0,  0,  0, 94
94, 255,  0,  0,  0,  0,  0,  0,  0, 95
95, 255,  0,  0,  0,  0,  0,  0,  0, 96
96, 255,  0,  0,  0,  0,  0,  0,  0, 97
97, 255,  0,  0,  0,  0,  0,  0,  0, 98
98, 255,  0,  0,  0,  0,  0,  0,  0, 99
99, 255,  0,  0,  0,  0,  0,  0,  0, 100
100, 255,  0,  0,  0,  0,  0,  0,  0, 101
101, 255,  0,  0,  0,  0,  0,  0,  0, 102
102, 255,  0,  0,  0,  0,  0,  0,  0, 103
103, 255,  0,  0,  0,  0,  0,  0,  0, 104
104, 255,  0,  0,  0,  0,  0,  0,  0, 105
105, 255,  0,  0,  0,  0,  0,  0,  0, 106
106, 255,  0,  0,  0,  0,  0,  0,  0, 107
107, 255,  0,  0,  0,  0,  0,  0,  0, 108
108, 255,  0,  0,  0,  0,  0,  0,  0, 109
109, 255,  0,  0,  0,  0,  0,  0,  0, 110
110, 255,  0,  0,  0,  0,  0,  0,  0, 111
111, 255,  0,  0,  0,  0,  0,  0,  0, 112
112, 255,  0,  0,  0,  0,  0,  0,  0, 113
113, 255,  0,  0,  0,  0,  0,  0,  0, 114
114, 255,  0,  0,  0,  0,  0,  0,  0, 115
115, 255,  0,  0,  0,  0,  0,  0,  0, 116
116, 255,  0,  0,  0,  0,  0,  0,  0, 117
117, 255,  0,  0,  0,  0,  0,  0,  0, 118
118, 255,  0,  0,  0,  0,  0,  0,  0, 119
119, 255,  0,  0,  0,  0,  0,  0,  0, 120
120, 255,  0,  0,  0,  0,  0,  0,  0, 121
121, 255,  0,  0,  0,  0,  0,  0,  0, 122
122, 255,  0,  0,  0,  0,  0,  0,  0, 123
123, 255,  0,  0,  0,  0,  0,  0,  0, 124
124, 255,  0,  0,  0,  0,  0,  0,  0, 125
125, 255,  0,  0,  0,  0,  0,  0,  0, 126
126, 255,  0,  0,  0,  0,  0,  0,  0, 127
127, 255,  0,  0,  0,  0,  0,  0,  0, 128
128, 255,  0,  0,  0,  0,  0,  0,  0, 129
129, 255,  0,  0,  0,  0,  0,  0,  0, 130
130, 255,  0,  0,  0,  0,  0,  0,  0, 131
131, 255,  0,  0,  0,  0,  0,  0,  0, 132
132, 255,  0,  0,  0,  0,  0,  0,  0, 133
133, 255,  0,  0,  0,  0,  0,  0,  0, 134
134, 255,  0,  0,  0,  0,  0,  0,  0, 135
135, 255,  0,  0,  0,  0,  0,  0,  0, 136
136, 255,  0,  0,  0,  0,  0,  0,  0, 137
137, 255,  0,  0,  0,  0,  0,  0,  0, 138
138, 255,  0,  0,  0,  0,  0,  0,  0, 139
139, 255,  0,  0,  0,  0,  0,  0,  0, 140
140, 255,  0,  0,  0,  0,  0,  0,  0, 141
141, 255,  0,  0,  0,  0,  0,  0,  0, 142
142, 255,  0,  0,  0,  0,  0,  0,  0, 143
143, 255,  0,  0,  0,  0,  0,  0,  0, 144
144, 255,  0,  0,  0,  0,  0,  0,  0, 145
145, 255,  0,  0,  0,  0,  0,  0,  0, 146
146, 255,  0,  0,  0,  0,  0,  0,  0, 147
147, 255,  0,  0,  0,  0,  0,  0,  0, 148
148, 255,  0,  0,  0,  0,  0,  0,  0, 149
149, 255,  0,  0,  0,  0,  0,  0,  0, 150
150, 255,  0,  0,  0,  0,  0,  0,  0, 151
151, 255,  0,  0,  0,  0,  0,  0,  0, 152
152, 255,  0,  0,  0,  0,  0,  0,  0, 153
153, 255,  0,  0,  0,  0,  0,  0,  0, 154
154, 255,  0,  0,  0,  0,  0,  0,  0, 155
155, 255,  0,  0,  0,  0,  0,  0,  0, 156
156, 255,  0,  0,  0,  0,  0,  0,  0, 157
157, 255,  0,  0,  0,  0,  0,  0,  0, 158
158, 255,  0,  0,  0,  0,  0,  0,  0, 159
159, 255,  0,  0,  0,  0,  0,  0,  0, 160
160, 255,  0,  0,  0,  0,  0,  0,  0, 161
161, 255,  0,  0,  0,  0,  0,  0,  0, 162
162, 255,  0,  0,  0,  0,  0,  0,  0, 163
163, 255,  0,  0,  0,  0,  0,  0,  0, 164
164, 255,  0,  0,  0,  0,  0,  0,  0, 165
165, 255,  0,  0,  0,  0,  0,  0,  0, 166
166, 255,  0,  0,  0,  0,  0,  0,  0, 167
167, 255,  0,  0,  0,  0,  0,  0,  0, 168
168, 255,  0,  0,  0,  0,  0,  0,  0, 169
169, 255,  0,  0,  0,  0,  0,  0,  0, 170
170, 255,  0,  0,  0,  0,  0,  0,  0, 171
171, 255,  0,  0,  0,  0,  0,  0,  0, 172
172, 255,  0,  0,  0,  0,  0,  0,  0, 173
173, 255,  0,  0,  0,  0,  0,  0,  0, 174
174, 255,  0,  0,  0,  0,  0,  0,  0, 175
175, 255,  0,  0,  0,  0,  0,  0,  0, 176
176, 255,  0,  0,  0,  0,  0,  0,  0, 177
177, 255,  0,  0,  0,  0,  0,  0,  0, 178
178, 255,  0,  0,  0,  0,  0,  0,  0, 179
179, 255,  0,  0,  0,  0,  0,  0,  0, 180
180, 255,  0,  0,  0,  0,  0,  0,  0, 181
181, 255,  0,  0,  0,  0,  0,  0,  0, 182
182, 255,  0,  0,  0,  0,  0,  0,  0, 183
183, 255,  0,  0,  0,  0,  0,  0,  0, 184
184, 255,  0,  0,  0,  0,  0,  0,  0, 185
185, 255,  0,  0,  0,  0,  0,  0,  0, 186
186, 255,  0,  0,  0,  0,  0,  0,  0, 187
187, 255,  0,  0,  0,  0,  0,  0,  0, 188
188, 255,  0,  0,  0,  0,  0,  0,  0, 189
189, 255,  0,  0,  0,  0,  0,  0,  0, 190
190, 255,  0,  0,  0,  0,  0,  0,  0, 191
191, 255,  0,  0,  0,  0,  0,  0,  0, 192
192, 255,  0,  0,  0,  0,  0,  0,  0, 193
193, 255,  0,  0,  0,  0,  0,  0,  0, 194
194, 255,  0,  0,  0,  0,  0,  0,  0, 195
195, 255,  0,  0,  0,  0,  0,  0,  0, 196
196, 255,  0,  0,  0,  0,  0,  0,  0, 197
197, 255,  0,  0,  0,  0,  0,  0,  0, 198
198, 255,  0,  0,  0,  0,  0,  0,  0, 199
199, 255,  0,  0,  0,  0,  0,  0,  0, 200
200, 255,  0,  0,  0,  0,  0,  0,  0, 201
201, 255,  0,  0,  0,  0,  0,  0,  0, 202
202, 255,  0,  0,  0,  0,  0,  0,  0, 203
203, 255,  0,  0,  0,  0,  0,  0,  0, 204
204, 255,  0,  0,  0,  0,  0,  0,  0, 205
205, 255,  0,  0,  0,  0,  0,  0,  0, 206
206, 255,  0,  0,  0,  0,  0,  0,  0, 207
207, 255,  0,  0,  0,  0,  0,  0,  0, 208
208, 255,  0,  0,  0,  0,  0,  0,  0, 209
209, 255,  0,  0,  0,  0,  0,  0,  0, 210
210, 255,  0,  0,  0,  0,  0,  0,  0, 211
211, 255,  0,  0,  0,  0,  0,  0,  0, 212
212, 255,  0,  0,  0,  0,  0,  0,  0, 213
213, 255,  0,  0,  0,  0,  0,  0,  0, 214
214, 255,  0,  0,  0,  0,  0,  0,  0, 215
215, 255,  0,  0,  0,  0,  0,  0,  0, 216
216, 255,  0,  0,  0,  0,  0,  0,  0, 217
217, 255,  0,  0,  0,  0,  0,  0,  0, 218
218, 255,  0,  0,  0,  0,  0,  0,  0, 219
219, 255,  0,  0,  0,  0,  0,  0,  0, 220
220, 255,  0,  0,  0,  0,  0,  0,  0, 221
221, 255,  0,  0,  0,  0,  0,  0,  0, 222
222, 255,  0,  0,  0,  0,  0,  0,  0, 223
223, 255,  0,  0,  0,  0,  0,  0,  0, 224
224, 255,  0,  0,  0,  0,  0,  0,  0, 225
225, 255,  0,  0,  0,  0,  0,  0,  0, 226
226, 255,  0,  0,  0,  0,  0,  0,  0, 227
227, 255,  0,  0,  0,  0,  0,  0,  0, 228
228, 255,  0,  0,  0,  0,  0,  0,  0, 229
229, 255,  0,  0,  0,  0,  0,  0,  0, 230
230, 255,  0,  0,  0,  0,  0,  0,  0, 231
231, 255,  0,  0,  0,  0,  0,  0,  0, 232
232, 255,  0,  0,  0,  0,  0,  0,  0, 233
233, 255,  0,  0,  0,  0,  0,  0,  0, 234
234, 255,  0,  0,  0,  0,  0,  0,  0, 235
235, 255,  0,  0,  0,  0,  0,  0,  0, 236
236, 255,  0,  0,  0,  0,  0,  0,  0, 237
237, 255,  0,  0,  0,  0,  0,  0,  0, 238
238, 255,  0,  0,  0,  0,  0,  0,  0, 239
239, 255,  0,  0,  0,  0,  0,  0,  0, 240
240, 255,  0,  0,  0,  0,  0,  0,  0, 241
241, 255,  0,  0,  0,  0,  0,  0,  0, 242
242, 255,  0,  0,  0,  0,  0,  0,  0, 243
243, 255,  0,  0,  0,  0,  0,  0,  0, 244
244, 255,  0,  0,  0,  0,  0,  0,  0, 245
245, 255,  0,  0,  0,  0,  0,  0,  0, 246
246, 255,  0,  0,  0,  0,  0,  0,  0, 247
247, 255,  0,  0,  0,  0,  0,  0,  0, 248
248, 255,  0,  0,  0,  0,  0,  0,  0, 249
249, 255,  0,  0,  0,  0,  0,  0,  0, 250
250, 255,  0,  0,  0,  0,  0,  0,  0, 251
251, 255,  0,  0,  0,  0,  0,  0,  0, 252
252, 255,  0,  0,  0,  0,  0,  0,  0, 253
253, 255,  0,  0,  0,  0,  0,  0,  0, 254
254, 255,  0,  0,  0,  0,  0,  0,  0, 255
255, 255,  0,  0,  0,  0,  0,  0,  0, 255
# every other cell dies or stays dead
x0, x1, x2, x3, x4, x5, x6, x7, x8,  0

127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.

Andrew
Moderator
Posts: 946
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly bugs

confocaloid wrote:
April 17th, 2024, 1:28 pm
I think the cause is that there are two lines exceeding 1000 characters (declarations of variables "x0" and "a1"). There's a 1000-byte line_buffer in ruletable_algo.cpp.
Thanks for the report -- I've increased that buffer to 4000 bytes.

EDIT: I've also improved the code so an error message will be displayed if a line is too long for the buffer.
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

confocaloid
Posts: 3129
Joined: February 8th, 2022, 3:15 pm

Re: Golly bugs

Golly Help: File Formats includes a link:
(This form of CA rule table representation was inspired by that in Gianluca Tempesti's PhD thesis: http://lslwww.epfl.ch/pages/embryonics/thesis/AppendixA.html.)
(This form of CA rule table representation was inspired by that in Gianluca Tempesti's PhD thesis: http://lslwww.epfl.ch/pages/embryonics/thesis/AppendixA.html.)
In addition, I suggest that the terminology in Golly Help: File Formats should be corrected to be easier to understand intuitively for beginners, and to be more consistent with the terminology used in other sources, including the linked pages:
https://web.archive.org/web/20230928182 ... ary_03.htm
https://conwaylife.com/w/index.php?titl ... 314#Page_2
https://web.archive.org/web/20040323172 ... ndixA.html
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.

confocaloid
Posts: 3129
Joined: February 8th, 2022, 3:15 pm

Re: Golly bugs

Ubuntu 22.04, GNOME 42.9. When a Golly script opens a help window (for example "safeopenclip.lua" opens "Rule Help" window), the help window often ends up hidden behind the main Golly window. I don't know whether this is fixable. Help windows opened from the "Help" menu items show correctly.

added later: there may be a bug that I cannot reliably reproduce, unfortunately. When running safeopenclip.lua, if the rulefile is not installed yet, the script shows a help page with a suggestion to download the rulefile. Clicking on that link triggers download, with a download progress indicator. Sometimes there is a message "Assertion failed" during download.

confocaloid
Posts: 3129
Joined: February 8th, 2022, 3:15 pm

Re: Golly bugs

confocaloid wrote:
April 21st, 2024, 3:18 am
[...]
added later: there may be a bug that I cannot reliably reproduce, unfortunately. When running safeopenclip.lua, if the rulefile is not installed yet, the script shows a help page with a suggestion to download the rulefile. Clicking on that link triggers download, with a download progress indicator. Sometimes there is a message "Assertion failed" during download.
I managed to get the same bug in the same situation again:

Code: Select all

ASSERT INFO:
../src/generic/progdlgg.cpp(415): assert "value <= m_maximum" failed in Update(): invalid progress value

BACKTRACE:
[1] g_closure_invoke
[2] g_signal_emit_valist
[3] g_signal_emit
[4] gtk_propagate_event
[5] gtk_main_do_event
[6] g_main_context_dispatch
[7] g_main_loop_run
[8] gtk_main
[9] main
[10] __libc_start_main


Code: Select all

ASSERT INFO:
../src/gtk/gauge.cpp(84): assert ""pos <= m_rangeMax"" failed in SetValue(): invalid value in wxGauge::SetValue()

BACKTRACE:
[1] g_closure_invoke
[2] g_signal_emit_valist
[3] g_signal_emit
[4] gtk_propagate_event
[5] gtk_main_do_event
[6] g_main_context_dispatch
[7] g_main_loop_run
[8] gtk_main
[9] main
[10] __libc_start_main

bug.png (51.94 KiB) Viewed 227 times
I was trying to load the following pattern with safeopenclip.lua, and clicked on the "get" link in the opened "Rule Help" window. Sometimes, but not always, that causes error messages shown above.
confocaloid wrote:
June 24th, 2022, 11:47 am
Quoting part of an old post from Rule request thread:
AforAmpere wrote:
May 19th, 2019, 6:58 pm
And a Sir Robin gun, at the minimum period possible (in this direction of travel):

Code: Select all

x = 33, y = 239, rule = PrintLife2
.4B2A25B$.4BA2BA23B$.4BA3BA22B$.6B3A22B$.2B2A6B4A17B$.2BAB2A4B4A17B$.
BA4BA6B3A15B$.2B4A4B2A3BA15B$.A9B2A19B$.BA3BA25B$.6B3A2B2A2BA15B$.2B 2A7BA4BA14B$.13BAB2A14B$.10B2A6BA12B$.11B2AB3ABA12B$.10B2A3BA2BA12B$.
10BABA2B2A14B$.10BA2BABABA13B$.10B3A6BA11B$.11BABABA3BA11B$.14B2ABABA
11B$.11BA6B3A10B$.31B$.11BA9BA9B$.11BA3BA6BA8B$.12BA5B5A8B$.12B3A16B$.16B2A13B$.13B3A2BA12B$.11BAB3ABA13B$.10BA3BA2BA13B$.11BA4B2AB3A9B$.
13B4ABA4B2A6B$.13BAB4A4B2A6B$.19BA11B$.20BA2B2A6B$.20B2A9B$.21B5A5B$.
25B2A4B$.19B3A6BA2B$.20BABA3BABA2B$.19BA3BA3BA3B$.19BA3B2A6B$.18BA6BA B3AB$.19B2A3BA3B2AB$.20B4A2BA2BAB$.22B2A3BA3B$.21BA9B$.21B2ABA6B$.20B A10B$.19B5A7B$.19BA4BA6B$.18B3AB3A6B$.18BAB5A6B$.18BA12B$.20BA10B$.
16BA4B4A6B$.20B4AB2A4B$.17B3A4BA6B$.24BABA4B$.28BA2B$.24BA2B2A2B$.25B
3A3B$.22B2A7B$.21B3A5BAB$.24B2A2BABA$.21BA2B3ABABA$.22B2ABA2BA2B$.24B
ABA2B2A$.26B2A3B$.22B3A4BAB$.22B3A4BAB$.23B2A3B3A$.24B2AB2A2B$.25B2A
4B$.25BA5B$.31B$.24B2A5B$.26BA4B2$D31.D$.D29.D$2.D27.D$3.D25.D$4.D23. D$5.D21.D$6.D19.D$7.D17.D$8.D15.D$9.D13.D$10.D11.D$11.D9.D$12.D7.D$
13.D5.D$14.D3.D$15.D.D6$13.D$12.D4.D2$13.E$13.F132$12.D4.D$13.D2.D!

[...]
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.

rowett
Moderator
Posts: 3837
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Golly bugs

confocaloid wrote:
April 21st, 2024, 3:18 am
Fixed in the next Golly release. Thanks for the detailed report!

confocaloid
Posts: 3129
Joined: February 8th, 2022, 3:15 pm

Re: Golly bugs

confocaloid wrote:
April 21st, 2024, 3:18 am
Ubuntu 22.04, GNOME 42.9. When a Golly script opens a help window (for example "safeopenclip.lua" opens "Rule Help" window), the help window often ends up hidden behind the main Golly window. I don't know whether this is fixable. Help windows opened from the "Help" menu items show correctly.
I found two workarounds that seem to work for me, but neither of them is an explanation of the problem.

Adding two lines to the function "openrulehelp" makes the help window show on the front:

Code: Select all

        -- open temporary file containing rule help
g.open(filename)
end
end

Alternatively, before showing the help window, there is a message "The pattern in the clipboard contains an unupported rule. ..." If the script is edited to comment out showing that message, then the help window is shown on the front.

Andrew
Moderator
Posts: 946
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly bugs

confocaloid wrote:
April 21st, 2024, 3:18 am
Ubuntu 22.04, GNOME 42.9. When a Golly script opens a help window (for example "safeopenclip.lua" opens "Rule Help" window), the help window often ends up hidden behind the main Golly window.
I can't reproduce this problem on my Linux system (Mint 20 running as a VM on my Mac). Are you building Golly from source? If not, please do so by following the steps in docs/Build.html. Does the problem still occur in this build? If so, locate the ShowHelp routine in gui-wx/wxhelp.cpp and try moving the helpptr->Raise() call to the end of the routine. Remake and see if that fixes the problem.
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

confocaloid
Posts: 3129
Joined: February 8th, 2022, 3:15 pm

Re: Golly bugs

Andrew wrote:
April 21st, 2024, 7:42 pm
[...] Does the problem still occur in this build? If so, locate the ShowHelp routine in gui-wx/wxhelp.cpp and try moving the helpptr->Raise() call to the end of the routine. Remake and see if that fixes the problem.
This might be specific to the system I'm using. The problem still occurs in a rebuild from source. Moving helpptr->Raise() to the end of the function did not fix it. I tried some guesswork by moving the call around and inserting helpptr->SetFocus() before the call; that didn't solve the issue.

edit: even when shown on the front via the first workarounds above, the help window does not get the focus. (Pressing Enter runs the pattern in the main window instead.)
Last edited by confocaloid on April 22nd, 2024, 12:01 pm, edited 2 times in total.
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.

Andrew
Moderator
Posts: 946
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly bugs

confocaloid wrote:
April 21st, 2024, 8:18 pm
This might be specific to the system I'm using. ...
Ubuntu does seem to be the most fragile variant of Linux when it comes to wxWidgets based apps. See Help > Known Problems for example.
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

confocaloid
Posts: 3129
Joined: February 8th, 2022, 3:15 pm

Re: Golly bugs

Copying each of the following RLEs into clipboard and doing "File -> Run Clipboard" causes the error message appended after that RLE.

Code: Select all

x = 1, y = 1, rule = B3/S23
o!

x = 1, y = 1, rule = B3/S23
^^^^^
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?


Code: Select all

x = 2, y = 1, rule = B3/S23
2o!

2o!
^
SyntaxError: invalid decimal literal


Code: Select all

x = 1, y = 2, rule = B3/S23
o\$o!

Sorry, but Perl scripting is no longer supported.

An incomplete list of possible workarounds/solutions:
• Modify the detection code to allow possibility "not a script", in addition to the existing possibilities "Lua", "Perl", "Python". (Further questions in this case: which pattern formats should be detected, not counting two-state RLE?) Probably there will still be errors in detection.
• Do not immediately try to run whatever is in the clipboard. Instead, let the user preview text from the clipboard in a new window. Let the user decide whether they want to run that, and what is the language.
• Is the feature "File -> Run Clipboard" even considered useful? One possibility might be to deprecate/remove the feature, unless people actually rely on it in their workflows.
(I don't use this myself. I can see a few ways how executing arbitrary nameless code straight from clipboard could cause confusion/data loss/pain.)
hotdogPi wrote:
March 3rd, 2024, 2:40 pm
While we're at it, clicking "Run Clipboard" while there's an RLE in the clipboard tells the user that Perl scripting is no longer supported. It should be able to tell the difference between and RLE and Perl.
July 17th, 2022, 12:27 pm
hotdogPi wrote:
July 17th, 2022, 12:16 pm
I think I've mentioned this before, but if you have an RLE in the clipboard and try to click Run Clipboard, it tells you that Perl scripting is no longer supported. It should instead tell you that you have an RLE in the clipboard.
This sounds like a bug rather than a suggestion!
Last edited by confocaloid on April 24th, 2024, 6:48 pm, edited 1 time in total.
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.

rowett
Moderator
Posts: 3837
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Golly bugs

confocaloid wrote:
April 23rd, 2024, 10:35 pm
Copying each of the following RLEs into clipboard and doing "File -> Run Clipboard" causes the error message appended after that RLE.
hotdogPi wrote:
July 17th, 2022, 12:16 pm
I think I've mentioned this before, but if you have an RLE in the clipboard and try to click Run Clipboard, it tells you that Perl scripting is no longer supported. It should instead tell you that you have an RLE in the clipboard.
You want a nicer error message?

dvgrn
Moderator
Posts: 10736
Joined: May 17th, 2009, 11:00 pm
Contact:

Re: Golly bugs

confocaloid wrote:
April 23rd, 2024, 10:35 pm
Copying each of the following RLEs into clipboard and doing "File -> Run Clipboard" causes the error message appended after that RLE...
The first two messages seem to make some sense -- they're what happen if you try to interpret RLE as code.

Probably it does make sense to disallow running anything that looks like (optional comments followed by) a valid RLE reader, though, since "x = {i}, y = {j}" after optional comments is easy to recognize and is never going to match valid code.

It's probably time to go ahead and excise the third message from Golly's code. I kind of doubt that it has ever once correctly diagnosed an attempt to run Perl code from the clipboard (because very very few Golly users ever try to run Perl code from the clipboard) -- so why keep guessing that that's the problem?