Smaller Pi Calculator Challenge

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » November 20th, 2019, 4:49 pm

gameoflifemaniac wrote:
November 20th, 2019, 3:23 pm
Python error:
...
ImportError: No module named text
Good Golly, that error again. I still can't explain why that comes up very rarely, and then doesn't come up other times.

Try running pop-plot.py on some random scribble, and then try running the emulator script again.

The idea is that pop-plot.py is stored in a known location relative to the glife text module, so it seems like that script can always load the module successfully. Once it's loaded there won't be a problem for the rest of that Golly session, and the emulator script should be able to find the module, too.

The thing is, most of the time the emulator (or anything else using that glife.text make_text module) will run just fine, even when you've just opened Golly after a reboot and are running a new script from the clipboard. Very weird intermittent behavior.

If you have persistent trouble, try saving the emulator script file in the Scripts/Python directory.

Re: the request for more APGsembly programs, simsim314 has posted several more examples (just try the top two, don't worry about the "library" stuff lower down for now) -- plus an overview of the computational model which should probably get cleaned up and put on the LifeWiki eventually, as a tutorial and maybe an APGsembly article.

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Smaller Pi Calculator Challenge

Post by simsim314 » November 20th, 2019, 9:31 pm

gameoflifemaniac wrote:
November 20th, 2019, 3:23 pm
from glife.text import make_text
I've removed this dependency from vis-emulator. You can try to run it instead. Writing text is done by function that also generates the strings in the SQ unit.

@dvgrn We need to add SQ explanation in the overview. Also I've used SQ for the binary counter instead of T because it looks better to represent 0/1 as nothing/boat and not as boat/moved boat. As matter of lines of code it's the same amount.

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Smaller Pi Calculator Challenge

Post by gameoflifemaniac » November 22nd, 2019, 2:20 am

It works, but how can I paste in correctly different codes and how can I turn it into a GPC?
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » November 22nd, 2019, 9:16 am

gameoflifemaniac wrote:
November 22nd, 2019, 2:20 am
It works, but how can I paste in correctly different codes and how can I turn it into a GPC?
In either the visual emulator or the compiler, there's a section at the top of the code where it says

Code: Select all

APGsembly = """blah
blah
blah..."""
So first try to see what the code is doing, maybe by hitting "g" to run a program one step at a time in the emulator, and see how the execution moves from state to state, and at each move there's one instruction that sends either a Z or an NZ back to the next state, and what happens in the program next depends on that Z/NZ return value.

Then just replace the """blah blah blah""" with your own code, either in the emulator or the compiler, and re-run. If you have a GPC pattern open and you run the compiler, it will drop the program into the correct location so that the whole pattern can be run (and you should see it doing the same thing that the emulator does, but in real Life).

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Smaller Pi Calculator Challenge

Post by gameoflifemaniac » November 22nd, 2019, 11:50 am

Code: Select all

[Window Title]
Golly note:

[Content]
Pre-processing failed on lines:
INITIAL; Z; AD; READ T0
AD; Z; D; SET T0, DEC T0
Need a Z and NZ line for each state, or * / ZZ syntax.

[OK] [Anuluj]
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » November 22nd, 2019, 12:56 pm

gameoflifemaniac wrote:
November 22nd, 2019, 11:50 am
Pre-processing failed on lines:
INITIAL; Z; AD; READ T0
AD; Z; D; SET T0, DEC T0
Need a Z and NZ line for each state, or * / ZZ syntax.
I can see how that error message could be confusing if you're not familiar with this stuff yet. But it does correctly describe the problem.

By default, every state needs two lines of code. The first line explains what happens if a "Z" signal arrives back from the logic circuitry:

AD; Z; D; SET T0, DEC T0

The second line says what should happen if an NZ signal comes back from the logic circuitry instead. It could well be the exact same thing as a Z signal:

AD; NZ; D; SET T0, DEC T0

I assume there's a "D" state defined somewhere else in your code, for these lines to jump to?

You need the same kind of thing for your INITIAL state (and in fact that's what the error is complaining about -- maybe you already have an "AD; NZ" line following these two lines.)

Now, about the "or * / ZZ syntax" part of the error: I've added two options that were not present in calcyman's original APGsembly system.

1) If the Z and NZ lines of code are going to be exactly the same, you can use this syntax to avoid having to write the two identical lines:

INITIAL; *; AD; READ T0

And if you can absolutely guarantee that only a Z signal will ever come back to activate a given state, then you can do

INITIAL; ZZ; AD; READ T0

instead. In that case, the compiler will only build the Z line in the Life pattern, and will leave off the NZ line completely -- which means that if an NZ signal ever does show up for that state, the program will simply halt.

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Smaller Pi Calculator Challenge

Post by gameoflifemaniac » November 22nd, 2019, 2:13 pm

I don't understand how do I make it work
Could you make some more GPC's?
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » November 22nd, 2019, 2:50 pm

gameoflifemaniac wrote:
November 22nd, 2019, 2:13 pm
I don't understand how do I make it work
Could you make some more GPC's?
It's hard to tell what to build that would be helpful to you. I'd much rather you were able to use the scripts to build whatever you want. Obviously the current state of things is still confusing for some reason, but the above doesn't help me figure out what else to explain.

Can you copy the APGsembly for simsim314's binary adder into the visual emulator, and see it working there?

Can you follow through the six lines of code and see how the program uses the SQ unit to store bits and perform each carry operation? It's basically flipping 1's to 0's until it hits a 0, which it then changes to a 1 and DECs the SQY counter back down to 0 to start the next addition operation.

Can you copy that same APGsembly code into the compiler, then open GPC-2^22 (or 2^24 or 2^26, doesn't really matter), run the compiler script, and get basically the same pattern that simsim314 attached as sq-adder.mc?

Can you change the three SQYs in the code to SQXs, start with another empty GPC-2^24 pattern, run the compiler again, and get a version of sq-adder.mc that draws its line of bits to the northeast instead of the northwest? EDIT: When I try this myself, I get an unpleasant explosion, so there appears to be something subtly wrong with the GPC that hasn't showed up before. The code runs fine in the emulator. Thanks for helping to uncover this bug! ... and further bulletins as events warrant. EDIT See below: it's not generally good to trigger two actions in the same logic unit at the same time.

Can you then figure out how to change the APGsembly code by adding a few more lines, so that the line of bits extends straight upward instead of at an angle? This will mean that the line goes up diagonally to the right in the emulator -- try your code there first.

Try it in LifeHistory
One thing that might be very helpful would be to take the sq-adder.mc pattern, convert it to LifeHistory, and set the step size to exactly 2^22 (you may have to change your base step size in Golly's Preferences > Control, from 8 down to 2, but I always recommend doing that anyway.) Then each time you hit the Tab key, the computer will run through exactly one clock tick, and you'll see the lanes get colored in for the action that gets executed.

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Smaller Pi Calculator Challenge

Post by gameoflifemaniac » November 22nd, 2019, 3:29 pm

I mean I can't replace the O(sqrt(log(T))) code in the script with any other code without an error popping up. How do I connect it?
And how can the emulator be converted to an actual GPC in CGOL?
Also, I would love to see some more patterns drawing stuff.
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » November 22nd, 2019, 4:02 pm

gameoflifemaniac wrote:
November 22nd, 2019, 3:29 pm
I mean I can't replace the O(sqrt(log(T))) code in the script with any other code without an error popping up. How do I connect it?
And how can the emulator be converted to an actual GPC in CGOL?
Replacing one chunk of APGsembly code with another (working) chunk of code, such as the six lines that simsim314 posted, should not cause any errors.

Once you have APGsembly code working in the emulator, copy that same code into the compiler script and run that, after opening a GPC pattern. That will build the necessary calculator pattern and add it to the GPC. The GPC then should run the same in the GPC pattern as in the emulator. We've just found a case where it doesn't (!) but no doubt we'll get that fixed pretty soon.

If you see an error, please hit Ctrl+C, copy the error text, and post the message. It's hopeless to try to diagnose what's going wrong on your system, if you don't describe what's going wrong. "An error pops up" is just not specific enough. The only error you've specifically quoted so far is because the replacement code was incomplete (didn't have an NZ option for the INITIAL state).

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Smaller Pi Calculator Challenge

Post by gameoflifemaniac » November 22nd, 2019, 4:25 pm

Umm, this is what was generated by the compiler, but what is this

Code: Select all

x = 12188, y = 12322, rule = B3/S23
9751b2o$9750bobo$9744b2o4bo$9742bo2bo2b2ob4o$9742b2obobobobo2bo$9745bo
bobobo$9745bobob2o$9746bo2$9759b2o$9750b2o7bo$9750b2o5bobo$9757b2o7$
9747b2o$9693bo54bo$9691b3o51b3o$9690bo54bo$9690b2o7bo$9697b3o$9696bo
24bo$9696b2o23b3o$9724bo$9723b2o$9738b2o$9738bo$9735b2obo$9734bo2bo$
9735b2o$9705b2o13b2o$9705b2o13b2o7$9707b2o6bob2o$9684b2o21bobo3b3ob2o$
9683bobo23bo2bo$9683bo25b2o2b3ob2o$9682b2o31bobo$9696b2o17bobo10b2o$
9696bo19bo11b2o$9697b3o$9699bo9$9575bo$9573b3o$9572bo$9572b2o$9578bo$
9576b3o$9575bo$9575b2o12$9813b3o$9813bo$9565b2o247bo$9566bo$9563b3o$
9563bo5$9581b2o$9581bo$9582b3o$9584bo6$9573b2o$9564b2o7b2o$9565bo$
9565bobo$9566b2o$9582b2o$9582bo$9580bobo$9580b2o3$9561b2o$9562bo$9562b
obo18bo$9563b2o17bobo$9583bo311b2o$9590bo303bobo$9590b3o295b2o4bo$
9593bo292bo2bo2b2ob4o$9592b2o292b2obobobobo2bo$9607b2o280bobobobo$
9607bo281bobob2o$9604b2obo282bo$9560b2o41bo2bo$9559bobo42b2o297b2o$
9559bo5b2o22b2o303b2o7bo$9558b2o4bo2bo21b2o303b2o5bobo$9565b2o334b2o3$
9567b2o7b2o3bo$9567b2o7bo3bobo$9577bo3bobo$9578bo3bobob2o$9576bob4o2bo
b2o303b2o$9575bobo3bobo308bo$9575bobo2bo2b2ob2o301b3o$9576bo3b2o2bobo
302bo$9584bobo10b2o$9585bo11b2o12$9821bo$9819b3o$9818bo$9818b2o7bo$
9825b3o$9824bo24bo$9824b2o23b3o$9852bo$9851b2o$9866b2o$9866bo$9863b2ob
o$9862bo2bo$9863b2o$9833b2o13b2o$9833b2o13b2o7$9835b2o6bob2o$9812b2o
21bobo3b3ob2o$9811bobo23bo2bo$9811bo25b2o2b3ob2o$9810b2o31bobo$9843bob
o10b2o$9844bo11b2o11$9703bo127bo$9701b3o125b3o$9700bo127bo$9700b2o126b
2o$9706bo127bo$9704b3o125b3o$9703bo127bo$9703b2o126b2o14$9693b2o126b2o
$9694bo127bo$9691b3o125b3o$9691bo127bo$9877bo$9875b3o$9874bo$9874b2o$
9709b2o126b2o$9709bo127bo$9710b3o125b3o41b2o$9712bo127bo42bo$9883bob2o
$9875b2o4b3o2bo$9875b2o3bo3b2o$9880b4o$9866b2o15bo155b2o$9701b2o126b2o
34bobo12b3o155bobo$9692b2o7b2o117b2o7b2o34bo13bo152b2o4bo$9693bo127bo
42b2o14b5o145bo2bo2b2ob4o$9693bobo125bobo60bo145b2obobobobo2bo$9694b2o
126b2o58bo150bobobobo$9710b2o126b2o42b2o149bobob2o$9710bo127bo195bo$
9708bobo125bobo$9708b2o126b2o209b2o$10038b2o7bo$10038b2o5bobo$9689b2o
126b2o226b2o$9690bo127bo$9690bobo18bo106bobo18bo$9691b2o17bobo106b2o
17bobo$9711bo127bo$9718bo127bo$9718b3o125b3o$9721bo127bo185b2o$9720b2o
126b2o186bo$9735b2o126b2o168b3o$9735bo127bo169bo$9732b2obo124b2obo$
9688b2o41bo2bo81b2o41bo2bo$9687bobo42b2o81bobo42b2o$9687bo5b2o22b2o96b
o5b2o22b2o$9686b2o4bo2bo21b2o95b2o4bo2bo21b2o$9693b2o126b2o3$9695b2o7b
2o3bo113b2o7b2o3bo$9695b2o7bo3bobo112b2o7bo3bobo$9705bo3bobo121bo3bobo
$9706bo3bobob2o118bo3bobob2o$9704bob4o2bob2o116bob4o2bob2o$9703bobo3bo
bo119bobo3bobo$9703bobo2bo2b2ob2o115bobo2bo2b2ob2o$9704bo3b2o2bobo117b
o3b2o2bobo$9712bobo10b2o113bobo10b2o$9713bo11b2o114bo11b2o12$9949bo$
9947b3o$9946bo$9946b2o7bo$9953b3o$9952bo24bo$9952b2o23b3o$9980bo$9979b
2o$9994b2o$9994bo$9991b2obo$9990bo2bo$9991b2o$9961b2o13b2o$9961b2o13b
2o7$9963b2o6bob2o$9940b2o21bobo3b3ob2o$9939bobo23bo2bo$9939bo25b2o2b3o
b2o$9938b2o31bobo$9952b2o17bobo10b2o$9952bo19bo11b2o$9953b3o$9955bo9$
9552bo278bo$9552b3o274b3o$9555bo272bo$9554b2o272b2o$9834bo$9832b3o$
9546b2o283bo$9546bo284b2o$9543b2obo$9543bo2b3o4b2o$9544b2o3bo3b2o$
9546b4o$9546bo15b2o3b2o$9547b3o12bobobobo$9550bo13bobo$9545b5o14bo2bo$
9545bo19bobo$9547bo18bo$9546b2o3$9821b2o360b2o$9581b2o239bo359bobo$
9581b2o236b3o354b2o4bo$9819bo354bo2bo2b2ob4o$10174b2obobobobo2bo$
10177bobobobo$9561b2o614bobob2o$9560bobo615bo$9560bo18b2o256b2o$9559b
2o7b2o9bo257bo353b2o$9568b2o10bo257b3o341b2o7bo$9579b2o259bo341b2o5bob
o$9576b2o611b2o$9513bo62b2ob2o$9513b3o63bo$9516bo59b2o3bo$9515b2o10bo
47bo2b4o$9526bobo45bobobo250b2o$9526bobo27bo18bo2bob2o238b2o7b2o$9504b
o20b2ob3o25b3o19bobo240bo357b2o$9504b3o24bo27bo17b2o2bo239bobo356bo$
9507bo17b2ob3o6bo20b2o14bobo2bobo240b2o353b3o$9506b2o17b2obo6b3o15bo
20b2o2bobo257b2o337bo$9534bo18b3o23bo258bo$9534b2o20bo279bobo$9509b2o
44b2o279b2o$9508bo2bo$9509b2o$9817b2o$9818bo$9818bobo18bo$9552b2o265b
2o17bobo$9552b2o17b2o266bo$9571b2o273bo$9521b2o323b3o$9522bo326bo$
9519b3o50b2o274b2o$9519bo52bo290b2o$9559b2o12b3o287bo$9542b2o16bo14bo
284b2obo$9542bo14b3o256b2o41bo2bo$9543b3o11bo257bobo42b2o$9545bo269bo
5b2o22b2o$9616bo197b2o4bo2bo21b2o$9616b3o202b2o$9619bo$9618b2o$9823b2o
7b2o3bo$9823b2o7bo3bobo$9610b2o221bo3bobo$9610bo223bo3bobob2o$9607b2ob
o221bob4o2bob2o$9607bo2b3o4b2o212bobo3bobo$9608b2o3bo3b2o212bobo2bo2b
2ob2o$9610b4o218bo3b2o2bobo$9610bo15b2o3b2o207bobo10b2o$9611b3o12bobob
obo208bo11b2o$9614bo13bobo$9609b5o14bo2bo$9609bo19bobo$9611bo18bo$
9610b2o4$9645b2o$9645b2o2$10077bo$10075b3o$9625b2o447bo$9624bobo447b2o
7bo$9624bo18b2o436b3o$9623b2o7b2o9bo436bo24bo$9632b2o10bo435b2o23b3o$
9643b2o463bo$9640b2o465b2o$9577bo62b2ob2o477b2o$9577b3o63bo478bo$9580b
o59b2o3bo473b2obo$9579b2o10bo47bo2b4o472bo2bo$9590bobo45bobobo476b2o$
9590bobo27bo18bo2bob2o443b2o13b2o$9568bo20b2ob3o25b3o19bobo444b2o13b2o
$9568b3o24bo27bo17b2o2bo$9571bo17b2ob3o6bo20b2o14bobo2bobo$9570b2o17b
2obo6b3o15bo20b2o2bobo$9598bo18b3o23bo$9598b2o20bo$9573b2o44b2o$9572bo
2bo515b2o6bob2o$9573b2o493b2o21bobo3b3ob2o$10067bobo23bo2bo$10067bo25b
2o2b3ob2o$10066b2o31bobo$9616b2o481bobo10b2o$9616b2o17b2o463bo11b2o$
9635b2o$9585b2o$9586bo$9583b3o50b2o$9583bo52bo$9623b2o12b3o$9606b2o16b
o14bo$9606bo14b3o$9607b3o11bo$9609bo$9959bo127bo$9957b3o125b3o$9956bo
127bo$9956b2o126b2o$9962bo127bo$9960b3o125b3o236b2o$9959bo127bo238bobo
$9959b2o126b2o231b2o4bo$10318bo2bo2b2ob4o$10318b2obobobobo2bo$10321bob
obobo$10321bobob2o$10322bo2$10335b2o$10326b2o7bo$10326b2o5bobo$10333b
2o4$9949b2o126b2o$9950bo127bo$9947b3o125b3o$9947bo127bo247b2o$10133bo
190bo$10131b3o187b3o$10130bo190bo$10130b2o$9965b2o126b2o$9965bo127bo$
9966b3o125b3o41b2o$9968bo127bo42bo$10139bob2o$10131b2o4b3o2bo$10131b2o
3bo3b2o$10136b4o$10122b2o15bo$9957b2o126b2o34bobo12b3o$9948b2o7b2o117b
2o7b2o34bo13bo$9949bo127bo42b2o14b5o$9949bobo125bobo60bo$9950b2o126b2o
58bo$9966b2o126b2o42b2o$9966bo127bo$9964bobo125bobo$9964b2o126b2o3$
9945b2o126b2o$9946bo127bo$9946bobo18bo106bobo18bo$9947b2o17bobo106b2o
17bobo$9967bo127bo$9974bo127bo$9974b3o125b3o$9977bo127bo$9976b2o126b2o
$9991b2o126b2o$9991bo127bo$9988b2obo124b2obo$9944b2o41bo2bo81b2o41bo2b
o$9943bobo42b2o81bobo42b2o$9943bo5b2o22b2o96bo5b2o22b2o$9942b2o4bo2bo
21b2o95b2o4bo2bo21b2o$9949b2o126b2o3$9951b2o7b2o3bo113b2o7b2o3bo$9951b
2o7bo3bobo112b2o7bo3bobo$9961bo3bobo121bo3bobo$9962bo3bobob2o118bo3bob
ob2o$9960bob4o2bob2o116bob4o2bob2o$9959bobo3bobo119bobo3bobo$9959bobo
2bo2b2ob2o115bobo2bo2b2ob2o$9960bo3b2o2bobo117bo3b2o2bobo$9968bobo10b
2o113bobo10b2o$9969bo11b2o114bo11b2o12$10205bo$10203b3o$10202bo$10202b
2o7bo$10209b3o$10208bo24bo$10208b2o23b3o$10236bo$10235b2o$10250b2o$
10250bo$10247b2obo$10246bo2bo$10247b2o$10217b2o13b2o$10217b2o13b2o7$
10219b2o6bob2o$10196b2o21bobo3b3ob2o$10195bobo23bo2bo$10195bo25b2o2b3o
b2o$10194b2o31bobo$10227bobo10b2o$10228bo11b2o229b2o$10470bobo$10464b
2o4bo$10462bo2bo2b2ob4o$10462b2obobobobo2bo$10465bobobobo$10465bobob2o
$10466bo2$10479b2o$10470b2o7bo$10087bo127bo254b2o5bobo$10085b3o125b3o
261b2o$10084bo127bo$10084b2o126b2o$10090bo127bo$10088b3o125b3o$10087bo
127bo$10087b2o126b2o$10467b2o$10468bo$10465b3o$10465bo10$10077b2o126b
2o$10078bo127bo$10075b3o125b3o$10075bo127bo$10261bo$10259b3o$10258bo$
10258b2o$10093b2o126b2o$10093bo127bo$10094b3o125b3o41b2o$10096bo127bo
42bo$10267bob2o$10259b2o4b3o2bo$10259b2o3bo3b2o$10264b4o$10250b2o15bo$
10085b2o126b2o34bobo12b3o$10076b2o7b2o117b2o7b2o34bo13bo$10077bo127bo
42b2o14b5o$10077bobo125bobo60bo$10078b2o126b2o58bo$10094b2o126b2o42b2o
$10094bo127bo$10092bobo125bobo$10092b2o126b2o3$10073b2o126b2o$10074bo
127bo$10074bobo18bo106bobo18bo$10075b2o17bobo106b2o17bobo$10095bo127bo
$10102bo127bo$10102b3o125b3o$10105bo127bo$10104b2o126b2o$10119b2o126b
2o$10119bo127bo$10116b2obo124b2obo$10072b2o41bo2bo81b2o41bo2bo$10071bo
bo42b2o81bobo42b2o$10071bo5b2o22b2o96bo5b2o22b2o$10070b2o4bo2bo21b2o
95b2o4bo2bo21b2o$10077b2o126b2o3$10079b2o7b2o3bo113b2o7b2o3bo$10079b2o
7bo3bobo112b2o7bo3bobo$10089bo3bobo121bo3bobo$10090bo3bobob2o118bo3bob
ob2o$10088bob4o2bob2o116bob4o2bob2o$10087bobo3bobo119bobo3bobo$10087bo
bo2bo2b2ob2o115bobo2bo2b2ob2o$10088bo3b2o2bobo117bo3b2o2bobo$10096bobo
10b2o113bobo10b2o$10097bo11b2o114bo11b2o12$10333bo$10331b3o$10330bo$
10330b2o7bo$10337b3o$10336bo24bo$10336b2o23b3o$10364bo$10363b2o$10378b
2o$10378bo$10375b2obo$10374bo2bo237b2o$10375b2o237bobo$10345b2o13b2o
246b2o4bo$10345b2o13b2o244bo2bo2b2ob4o$10606b2obobobobo2bo$10609bobobo
bo$10609bobob2o$10610bo2$10623b2o$10347b2o6bob2o255b2o7bo$10324b2o21bo
bo3b3ob2o255b2o5bobo$10323bobo23bo2bo268b2o$10323bo25b2o2b3ob2o$10322b
2o31bobo$10355bobo10b2o$10356bo11b2o3$10611b2o$10612bo$10609b3o$10609b
o5$10215bo127bo$10213b3o125b3o$10212bo127bo$10212b2o126b2o$10218bo127b
o$10216b3o125b3o$10215bo127bo$10215b2o126b2o14$10205b2o126b2o$10206bo
127bo$10203b3o125b3o$10203bo127bo$10389bo$10387b3o$10386bo$10386b2o$
10221b2o126b2o$10221bo127bo$10222b3o125b3o41b2o$10224bo127bo42bo$
10395bob2o$10387b2o4b3o2bo$10387b2o3bo3b2o$10392b4o$10378b2o15bo$
10213b2o126b2o34bobo12b3o$10204b2o7b2o117b2o7b2o34bo13bo$10205bo127bo
42b2o14b5o$10205bobo125bobo60bo$10206b2o126b2o58bo$10222b2o126b2o42b2o
$10222bo127bo$10220bobo125bobo$10220b2o126b2o3$10201b2o126b2o$10202bo
127bo$10202bobo18bo106bobo18bo$10203b2o17bobo106b2o17bobo$10223bo127bo
$10230bo127bo$10230b3o125b3o$10233bo127bo$10232b2o126b2o$10247b2o126b
2o$10247bo127bo$10244b2obo124b2obo$10200b2o41bo2bo81b2o41bo2bo$10199bo
bo42b2o81bobo42b2o$10199bo5b2o22b2o96bo5b2o22b2o$10198b2o4bo2bo21b2o
95b2o4bo2bo21b2o$10205b2o126b2o3$10207b2o7b2o3bo113b2o7b2o3bo$10207b2o
7bo3bobo112b2o7bo3bobo$10217bo3bobo121bo3bobo$10218bo3bobob2o118bo3bob
ob2o$10216bob4o2bob2o116bob4o2bob2o$10215bobo3bobo119bobo3bobo$10215bo
bo2bo2b2ob2o115bobo2bo2b2ob2o$10216bo3b2o2bobo117bo3b2o2bobo$10224bobo
10b2o113bobo10b2o$10225bo11b2o114bo11b2o8$10759b2o$10758bobo$10752b2o
4bo$10750bo2bo2b2ob4o$10461bo288b2obobobobo2bo$10459b3o291bobobobo$
10458bo294bobob2o$10458b2o7bo286bo$10465b3o$10464bo24bo277b2o$10464b2o
23b3o266b2o7bo$10492bo265b2o5bobo$10491b2o272b2o$10506b2o$10506bo$
10503b2obo$10502bo2bo$10503b2o$10473b2o13b2o$10473b2o13b2o265b2o$
10756bo$10753b3o$10753bo4$10475b2o6bob2o$10452b2o21bobo3b3ob2o$10451bo
bo23bo2bo$10451bo25b2o2b3ob2o$10450b2o31bobo$10483bobo10b2o$10484bo11b
2o11$10343bo127bo$10341b3o125b3o$10340bo127bo$10340b2o126b2o$10346bo
127bo$10344b3o125b3o$10343bo127bo$10343b2o126b2o14$10333b2o126b2o$
10334bo127bo$10331b3o125b3o$10331bo127bo$10517bo$10515b3o$10514bo$
10514b2o$10349b2o126b2o$10349bo127bo$10350b3o125b3o41b2o$10352bo127bo
42bo$10523bob2o$10515b2o4b3o2bo$10515b2o3bo3b2o$10520b4o$10506b2o15bo$
10341b2o126b2o34bobo12b3o$10332b2o7b2o117b2o7b2o34bo13bo$10333bo127bo
42b2o14b5o$10333bobo125bobo60bo$10334b2o126b2o58bo$10350b2o126b2o42b2o
$10350bo127bo$10348bobo125bobo$10348b2o126b2o3$10329b2o126b2o$10330bo
127bo$10330bobo18bo106bobo18bo$10331b2o17bobo106b2o17bobo$10351bo127bo
$10358bo127bo$10358b3o125b3o$10361bo127bo$10360b2o126b2o$10375b2o126b
2o$10375bo127bo$10372b2obo124b2obo$10328b2o41bo2bo81b2o41bo2bo$10327bo
bo42b2o81bobo42b2o$10327bo5b2o22b2o96bo5b2o22b2o$10326b2o4bo2bo21b2o
95b2o4bo2bo21b2o$10333b2o126b2o3$10335b2o7b2o3bo113b2o7b2o3bo$10335b2o
7bo3bobo112b2o7bo3bobo424b2o$10345bo3bobo121bo3bobo422bobo$10346bo3bob
ob2o118bo3bobob2o412b2o4bo$10344bob4o2bob2o116bob4o2bob2o410bo2bo2b2ob
4o$10343bobo3bobo119bobo3bobo414b2obobobobo2bo$10343bobo2bo2b2ob2o115b
obo2bo2b2ob2o413bobobobo$10344bo3b2o2bobo117bo3b2o2bobo414bobob2o$
10352bobo10b2o113bobo10b2o403bo$10353bo11b2o114bo11b2o$10911b2o$10902b
2o7bo$10902b2o5bobo$10909b2o7$10899b2o$10589bo310bo$10587b3o307b3o$
10586bo310bo$10586b2o7bo$10593b3o$10592bo24bo$10592b2o23b3o$10620bo$
10619b2o$10634b2o$10634bo$10631b2obo$10630bo2bo$10631b2o$10601b2o13b2o
$10601b2o13b2o7$10603b2o6bob2o$10580b2o21bobo3b3ob2o$10579bobo23bo2bo$
10579bo25b2o2b3ob2o$10578b2o31bobo$10611bobo10b2o$10612bo11b2o11$
10471bo127bo$10469b3o125b3o$10468bo127bo$10468b2o126b2o$10474bo127bo$
10472b3o125b3o$10471bo127bo$10471b2o126b2o14$10461b2o126b2o$10462bo
127bo$10459b3o125b3o$10459bo127bo$10645bo$10643b3o$10642bo$10642b2o$
10477b2o126b2o$10477bo127bo$10478b3o125b3o41b2o$10480bo127bo42bo$
10651bob2o$10643b2o4b3o2bo$10643b2o3bo3b2o$10648b4o$10634b2o15bo$
10469b2o126b2o34bobo12b3o$10460b2o7b2o117b2o7b2o34bo13bo$10461bo127bo
42b2o14b5o$10461bobo125bobo60bo$10462b2o126b2o58bo$10478b2o126b2o42b2o
$10478bo127bo$10476bobo125bobo$10476b2o126b2o3$10457b2o126b2o$10458bo
127bo$10458bobo18bo106bobo18bo$10459b2o17bobo106b2o17bobo$10479bo127bo
439b2o$10486bo127bo431bobo$10486b3o125b3o423b2o4bo$10489bo127bo420bo2b
o2b2ob4o$10488b2o126b2o420b2obobobobo2bo$10503b2o126b2o408bobobobo$
10503bo127bo409bobob2o$10500b2obo124b2obo410bo$10456b2o41bo2bo81b2o41b
o2bo$10455bobo42b2o81bobo42b2o425b2o$10455bo5b2o22b2o96bo5b2o22b2o431b
2o7bo$10454b2o4bo2bo21b2o95b2o4bo2bo21b2o431b2o5bobo$10461b2o126b2o
462b2o3$10463b2o7b2o3bo113b2o7b2o3bo$10463b2o7bo3bobo112b2o7bo3bobo$
10473bo3bobo121bo3bobo$10474bo3bobob2o118bo3bobob2o$10472bob4o2bob2o
116bob4o2bob2o431b2o$10471bobo3bobo119bobo3bobo436bo$10471bobo2bo2b2ob
2o115bobo2bo2b2ob2o429b3o$10472bo3b2o2bobo117bo3b2o2bobo430bo$10480bob
o10b2o113bobo10b2o$10481bo11b2o114bo11b2o12$10717bo$10715b3o$10714bo$
10714b2o7bo$10721b3o$10720bo24bo$10720b2o23b3o$10748bo$10747b2o$10762b
2o$10762bo$10759b2obo$10758bo2bo$10759b2o$10729b2o13b2o$10729b2o13b2o
7$10731b2o6bob2o$10708b2o21bobo3b3ob2o$10707bobo23bo2bo$10707bo25b2o2b
3ob2o$10706b2o31bobo$10720b2o17bobo10b2o$10720bo19bo11b2o$10721b3o$
10723bo9$8528bo2070bo$8528b3o2066b3o$8531bo2064bo$8530b2o2064b2o$
10602bo$10600b3o$8522b2o2075bo$8522bo2076b2o$8519b2obo$8519bo2b3o4b2o$
8520b2o3bo3b2o$8522b4o$8522bo15b2o3b2o$8523b3o12bobobobo$8526bo13bobo$
8521b5o14bo2bo$8521bo19bobo$8523bo18bo$8522b2o3$10589b2o$8557b2o2031bo
$8557b2o2028b3o$10587bo3$8537b2o$8536bobo$8536bo18b2o2048b2o$8535b2o7b
2o9bo2049bo$8544b2o10bo2049b3o$8555b2o2051bo$8552b2o$8489bo62b2ob2o$
8489b3o63bo$8492bo59b2o3bo$8491b2o10bo47bo2b4o2633b2o$8502bobo45bobobo
2042b2o591bobo$8502bobo27bo18bo2bob2o2030b2o7b2o585b2o4bo$8480bo20b2ob
3o25b3o19bobo2032bo592bo2bo2b2ob4o$8480b3o24bo27bo17b2o2bo2031bobo590b
2obobobobo2bo$8483bo17b2ob3o6bo20b2o14bobo2bobo2032b2o593bobobobo$
8482b2o17b2obo6b3o15bo20b2o2bobo2049b2o577bobob2o$8510bo18b3o23bo2050b
o579bo$8510b2o20bo2071bobo$8485b2o44b2o2071b2o593b2o$8484bo2bo2702b2o
7bo$8485b2o2703b2o5bobo$10585b2o610b2o$10586bo$10586bobo18bo$8528b2o
2057b2o17bobo$8528b2o17b2o2058bo$8547b2o2065bo$8497b2o2115b3o$8498bo
2118bo569b2o$8495b3o50b2o2066b2o570bo$8495bo52bo2082b2o552b3o$8535b2o
12b3o2079bo553bo$8518b2o16bo14bo2076b2obo$8518bo14b3o2048b2o41bo2bo$
8519b3o11bo2049bobo42b2o$8521bo2061bo5b2o22b2o$10582b2o4bo2bo21b2o$
10589b2o3$10591b2o7b2o3bo$10591b2o7bo3bobo$10601bo3bobo$10602bo3bobob
2o$10600bob4o2bob2o$10599bobo3bobo$10599bobo2bo2b2ob2o$10600bo3b2o2bob
o$10608bobo10b2o$10609bo11b2o12$10845bo$10843b3o$10842bo$10842b2o7bo$
10849b3o$10848bo24bo$10848b2o23b3o$10876bo$10875b2o$10890b2o$10890bo$
10887b2obo$10886bo2bo$10887b2o$10857b2o13b2o$10857b2o13b2o7$10859b2o6b
ob2o$10836b2o21bobo3b3ob2o$10835bobo23bo2bo$10835bo25b2o2b3ob2o$10834b
2o31bobo$10867bobo10b2o$10868bo11b2o11$8912bo1814bo127bo$8912b3o1810b
3o125b3o$8915bo1808bo127bo$8914b2o1808b2o126b2o$10730bo127bo$10728b3o
125b3o$8906b2o1819bo127bo$8906bo1820b2o126b2o$8903b2obo$8903bo2b3o4b2o
$8904b2o3bo3b2o$8906b4o$8906bo15b2o3b2o$8907b3o12bobobobo$8910bo13bobo
$8905b5o14bo2bo$8905bo19bobo$8907bo18bo$8906b2o3$10717b2o126b2o488b2o$
8941b2o1775bo127bo487bobo$8941b2o1772b3o125b3o482b2o4bo$10715bo127bo
482bo2bo2b2ob4o$10901bo424b2obobobobo2bo$10899b3o427bobobobo$8921b2o
1975bo430bobob2o$8920bobo1975b2o430bo$8920bo18b2o1792b2o126b2o$8919b2o
7b2o9bo1793bo127bo481b2o$8928b2o10bo1793b3o125b3o41b2o426b2o7bo$8939b
2o1795bo127bo42bo426b2o5bobo$8936b2o1969bob2o430b2o$8873bo62b2ob2o
1958b2o4b3o2bo$8873b3o63bo1959b2o3bo3b2o$8876bo59b2o3bo1962b4o$8875b2o
10bo47bo2b4o1948b2o15bo$8886bobo45bobobo1786b2o126b2o34bobo12b3o$8886b
obo27bo18bo2bob2o1774b2o7b2o117b2o7b2o34bo13bo$8864bo20b2ob3o25b3o19bo
bo1776bo127bo42b2o14b5o422b2o$8864b3o24bo27bo17b2o2bo1775bobo125bobo
60bo423bo$8867bo17b2ob3o6bo20b2o14bobo2bobo1776b2o126b2o58bo422b3o$
8866b2o17b2obo6b3o15bo20b2o2bobo1793b2o126b2o42b2o421bo$8894bo18b3o23b
o1794bo127bo$8894b2o20bo1815bobo125bobo$8869b2o44b2o1815b2o126b2o$
8868bo2bo$8869b2o$10713b2o126b2o$10714bo127bo$10714bobo18bo106bobo18bo
$8912b2o1801b2o17bobo106b2o17bobo$8912b2o17b2o1802bo127bo$8931b2o1809b
o127bo$8881b2o1859b3o125b3o$8882bo1862bo127bo$8879b3o50b2o1810b2o126b
2o$8879bo52bo1826b2o126b2o$8919b2o12b3o1823bo127bo$8902b2o16bo14bo
1820b2obo124b2obo$8902bo14b3o1792b2o41bo2bo81b2o41bo2bo$8903b3o11bo
1793bobo42b2o81bobo42b2o$8905bo1805bo5b2o22b2o96bo5b2o22b2o$8592bo
2117b2o4bo2bo21b2o95b2o4bo2bo21b2o$8592b3o2122b2o126b2o$8595bo$8594b2o
$10719b2o7b2o3bo113b2o7b2o3bo$10719b2o7bo3bobo112b2o7bo3bobo$8586b2o
2141bo3bobo121bo3bobo$8586bo2143bo3bobob2o118bo3bobob2o$8583b2obo2141b
ob4o2bob2o116bob4o2bob2o$8583bo2b3o4b2o2132bobo3bobo119bobo3bobo$8584b
2o3bo3b2o2132bobo2bo2b2ob2o115bobo2bo2b2ob2o$8586b4o2138bo3b2o2bobo
117bo3b2o2bobo$8586bo15b2o3b2o2127bobo10b2o113bobo10b2o$8587b3o12bobob
obo2128bo11b2o114bo11b2o$8590bo13bobo$8585b5o14bo2bo$8585bo19bobo$
8587bo18bo$8586b2o4$8621b2o$8621b2o2$10973bo$10971b3o$8601b2o2367bo$
8600bobo2367b2o7bo$8600bo18b2o2356b3o$8599b2o7b2o9bo2356bo24bo$8608b2o
10bo2355b2o23b3o$8619b2o2383bo$8616b2o2385b2o$8553bo62b2ob2o2397b2o$
8553b3o63bo2398bo$8556bo59b2o3bo2393b2obo$8555b2o10bo47bo2b4o2392bo2bo
$8566bobo45bobobo2396b2o$8566bobo27bo18bo2bob2o2363b2o13b2o$8544bo20b
2ob3o25b3o19bobo2364b2o13b2o$8544b3o24bo27bo17b2o2bo$8547bo17b2ob3o6bo
20b2o14bobo2bobo$8546b2o17b2obo6b3o15bo20b2o2bobo$8574bo18b3o23bo$
8574b2o20bo$8549b2o44b2o$8548bo2bo2435b2o6bob2o$8549b2o2413b2o21bobo3b
3ob2o$10963bobo23bo2bo$10963bo25b2o2b3ob2o$10962b2o31bobo$8592b2o2382b
2o17bobo10b2o$8592b2o17b2o2363bo19bo11b2o$8611b2o2364b3o$8561b2o2416bo
$8562bo$8559b3o50b2o$8559bo52bo$8599b2o12b3o$8582b2o16bo14bo$8582bo14b
3o$8583b3o11bo$8585bo$10855bo$10853b3o$10852bo$10852b2o$10858bo$10856b
3o620b2o$10855bo622bobo$10855b2o615b2o4bo$11470bo2bo2b2ob4o$11470b2obo
bobobo2bo$11473bobobobo$11473bobob2o$11474bo2$11487b2o$11478b2o7bo$
11478b2o5bobo$11485b2o4$10845b2o$10846bo$10843b3o$10843bo631b2o$11476b
o$11473b3o$11473bo2$10861b2o$10861bo$10862b3o$10864bo6$10853b2o$10844b
2o7b2o$10845bo$10845bobo$10846b2o$10862b2o$10862bo$10860bobo$10860b2o
3$10841b2o$10842bo$10842bobo18bo$10843b2o17bobo$10863bo$10870bo$10870b
3o$10873bo$10872b2o$10887b2o$10887bo$10884b2obo$10840b2o41bo2bo$10839b
obo42b2o$10839bo5b2o22b2o$9104bo1535bo197b2o4bo2bo21b2o$9104b3o1533b3o
202b2o$9107bo1535bo$9106b2o1534b2o$10847b2o7b2o3bo$10847b2o7bo3bobo$
9098b2o1534b2o221bo3bobo$9098bo1535bo223bo3bobob2o$9095b2obo1532b2obo
221bob4o2bob2o$9095bo2b3o4b2o1524bo2b3o4b2o212bobo3bobo$9096b2o3bo3b2o
1525b2o3bo3b2o212bobo2bo2b2ob2o$9098b4o1532b4o218bo3b2o2bobo$9098bo15b
2o3b2o1513bo15b2o3b2o207bobo10b2o$9099b3o12bobobobo1514b3o12bobobobo
208bo11b2o$9102bo13bobo1519bo13bobo$9097b5o14bo2bo1513b5o14bo2bo$9097b
o19bobo1513bo19bobo$9099bo18bo1516bo18bo$9098b2o1534b2o4$9133b2o1534b
2o$9133b2o1534b2o2$11101bo$11099b3o$9113b2o1534b2o447bo$9112bobo1533bo
bo447b2o7bo$9112bo18b2o1515bo18b2o436b3o$9111b2o7b2o9bo1515b2o7b2o9bo
436bo24bo$9120b2o10bo1523b2o10bo435b2o23b3o$9131b2o1534b2o463bo$9128b
2o1534b2o465b2o$9065bo62b2ob2o1468bo62b2ob2o477b2o$9065b3o63bo1469b3o
63bo478bo$9068bo59b2o3bo1470bo59b2o3bo473b2obo$9067b2o10bo47bo2b4o
1469b2o10bo47bo2b4o472bo2bo$9078bobo45bobobo1483bobo45bobobo476b2o$
9078bobo27bo18bo2bob2o1480bobo27bo18bo2bob2o443b2o13b2o$9056bo20b2ob3o
25b3o19bobo1459bo20b2ob3o25b3o19bobo444b2o13b2o$9056b3o24bo27bo17b2o2b
o1458b3o24bo27bo17b2o2bo$9059bo17b2ob3o6bo20b2o14bobo2bobo1461bo17b2ob
3o6bo20b2o14bobo2bobo$9058b2o17b2obo6b3o15bo20b2o2bobo1461b2o17b2obo6b
3o15bo20b2o2bobo$9086bo18b3o23bo1490bo18b3o23bo$9086b2o20bo1513b2o20bo
$9061b2o44b2o1488b2o44b2o$9060bo2bo1532bo2bo515b2o6bob2o$9061b2o1534b
2o493b2o21bobo3b3ob2o$11091bobo23bo2bo$11091bo25b2o2b3ob2o$11090b2o31b
obo$9104b2o1534b2o481bobo10b2o$9104b2o17b2o1515b2o17b2o463bo11b2o485b
2o$9123b2o1534b2o961bobo$9073b2o1534b2o1005b2o4bo$9074bo1535bo1003bo2b
o2b2ob4o$9071b3o50b2o1481b3o50b2o952b2obobobobo2bo$9071bo52bo1482bo52b
o956bobobobo$9111b2o12b3o1519b2o12b3o953bobob2o$9094b2o16bo14bo1502b2o
16bo14bo954bo$9094bo14b3o1518bo14b3o$9095b3o11bo1521b3o11bo985b2o$
9097bo1535bo988b2o7bo$10983bo127bo510b2o5bobo$10981b3o125b3o517b2o$
10980bo127bo$10980b2o126b2o$10986bo127bo$10984b3o125b3o$10983bo127bo$
10983b2o126b2o$11619b2o$11620bo$11617b3o$11617bo10$10973b2o126b2o$
10974bo127bo$10971b3o125b3o$10971bo127bo$11157bo$11155b3o$11154bo$
11154b2o$10989b2o126b2o$10989bo127bo$10990b3o125b3o41b2o$10992bo127bo
42bo$11163bob2o$11155b2o4b3o2bo$11155b2o3bo3b2o$11160b4o$11146b2o15bo$
10981b2o126b2o34bobo12b3o$10972b2o7b2o117b2o7b2o34bo13bo$10973bo127bo
42b2o14b5o$10973bobo125bobo60bo$10974b2o126b2o58bo$10990b2o126b2o42b2o
$10990bo127bo$10988bobo125bobo$10988b2o126b2o3$10969b2o126b2o$10970bo
127bo$10970bobo18bo106bobo18bo$10971b2o17bobo106b2o17bobo$10991bo127bo
$10998bo127bo$10998b3o125b3o$11001bo127bo$11000b2o126b2o$11015b2o126b
2o$11015bo127bo$11012b2obo124b2obo$10968b2o41bo2bo81b2o41bo2bo$10967bo
bo42b2o81bobo42b2o$10967bo5b2o22b2o96bo5b2o22b2o$10966b2o4bo2bo21b2o
95b2o4bo2bo21b2o$10973b2o126b2o3$10975b2o7b2o3bo113b2o7b2o3bo$10975b2o
7bo3bobo112b2o7bo3bobo$10985bo3bobo121bo3bobo$10986bo3bobob2o118bo3bob
ob2o$10984bob4o2bob2o116bob4o2bob2o$10983bobo3bobo119bobo3bobo$10983bo
bo2bo2b2ob2o115bobo2bo2b2ob2o$10984bo3b2o2bobo117bo3b2o2bobo$10992bobo
10b2o113bobo10b2o$10993bo11b2o114bo11b2o12$11229bo$11227b3o$11226bo$
11226b2o7bo$11233b3o$11232bo24bo$11232b2o23b3o$11260bo$11259b2o$11274b
2o$11274bo$11271b2obo$11270bo2bo493b2o$11271b2o493bobo$11241b2o13b2o
502b2o4bo$11241b2o13b2o500bo2bo2b2ob4o$11758b2obobobobo2bo$11761bobobo
bo$11761bobob2o$11762bo2$11775b2o$11243b2o6bob2o511b2o7bo$11220b2o21bo
bo3b3ob2o511b2o5bobo$11219bobo23bo2bo524b2o$11219bo25b2o2b3ob2o$11218b
2o31bobo$11251bobo10b2o$11252bo11b2o3$11763b2o$11764bo$11761b3o$11761b
o5$8784bo2047bo278bo127bo$8784b3o2045b3o274b3o125b3o$8787bo2047bo272bo
127bo$8786b2o2046b2o272b2o126b2o$11114bo127bo$11112b3o125b3o$8778b2o
2046b2o283bo127bo$8778bo2047bo284b2o126b2o$8775b2obo2044b2obo$8775bo2b
3o4b2o2036bo2b3o4b2o$8776b2o3bo3b2o2037b2o3bo3b2o$8778b4o2044b4o$8778b
o15b2o3b2o2025bo15b2o3b2o$8779b3o12bobobobo2026b3o12bobobobo$8782bo13b
obo2031bo13bobo$8777b5o14bo2bo2025b5o14bo2bo$8777bo19bobo2025bo19bobo$
8779bo18bo2028bo18bo$8778b2o2046b2o3$11101b2o126b2o$8813b2o2046b2o239b
o127bo$8813b2o2046b2o236b3o125b3o$11099bo127bo$11285bo$11283b3o$8793b
2o2046b2o439bo$8792bobo2045bobo439b2o$8792bo18b2o2027bo18b2o256b2o126b
2o$8791b2o7b2o9bo2027b2o7b2o9bo257bo127bo$8800b2o10bo2035b2o10bo257b3o
125b3o41b2o$8811b2o2046b2o259bo127bo42bo$8808b2o2046b2o433bob2o$8745bo
62b2ob2o1980bo62b2ob2o422b2o4b3o2bo$8745b3o63bo1981b3o63bo423b2o3bo3b
2o$8748bo59b2o3bo1982bo59b2o3bo426b4o$8747b2o10bo47bo2b4o1981b2o10bo
47bo2b4o412b2o15bo$8758bobo45bobobo1995bobo45bobobo250b2o126b2o34bobo
12b3o$8758bobo27bo18bo2bob2o1992bobo27bo18bo2bob2o238b2o7b2o117b2o7b2o
34bo13bo$8736bo20b2ob3o25b3o19bobo1971bo20b2ob3o25b3o19bobo240bo127bo
42b2o14b5o$8736b3o24bo27bo17b2o2bo1970b3o24bo27bo17b2o2bo239bobo125bob
o60bo$8739bo17b2ob3o6bo20b2o14bobo2bobo1973bo17b2ob3o6bo20b2o14bobo2bo
bo240b2o126b2o58bo$8738b2o17b2obo6b3o15bo20b2o2bobo1973b2o17b2obo6b3o
15bo20b2o2bobo257b2o126b2o42b2o$8766bo18b3o23bo2002bo18b3o23bo258bo
127bo$8766b2o20bo2025b2o20bo279bobo125bobo$8741b2o44b2o2000b2o44b2o
279b2o126b2o$8740bo2bo2044bo2bo$8741b2o2046b2o$11097b2o126b2o$11098bo
127bo$11098bobo18bo106bobo18bo$8784b2o2046b2o265b2o17bobo106b2o17bobo$
8784b2o17b2o2027b2o17b2o266bo127bo$8803b2o2046b2o273bo127bo$8753b2o
2046b2o323b3o125b3o$8754bo2047bo326bo127bo$8751b3o50b2o1993b3o50b2o
274b2o126b2o$8751bo52bo1994bo52bo290b2o126b2o$8791b2o12b3o2031b2o12b3o
287bo127bo$8774b2o16bo14bo2014b2o16bo14bo284b2obo124b2obo$8774bo14b3o
2030bo14b3o256b2o41bo2bo81b2o41bo2bo$8775b3o11bo2033b3o11bo257bobo42b
2o81bobo42b2o$8777bo2047bo269bo5b2o22b2o96bo5b2o22b2o$11094b2o4bo2bo
21b2o95b2o4bo2bo21b2o$11101b2o126b2o3$11103b2o7b2o3bo113b2o7b2o3bo$
11103b2o7bo3bobo112b2o7bo3bobo$11113bo3bobo121bo3bobo$11114bo3bobob2o
118bo3bobob2o$11112bob4o2bob2o116bob4o2bob2o$11111bobo3bobo119bobo3bob
o$11111bobo2bo2b2ob2o115bobo2bo2b2ob2o$11112bo3b2o2bobo117bo3b2o2bobo$
11120bobo10b2o113bobo10b2o$11121bo11b2o114bo11b2o8$11911b2o$11910bobo$
11904b2o4bo$11902bo2bo2b2ob4o$11357bo544b2obobobobo2bo$11355b3o547bobo
bobo$11354bo550bobob2o$11354b2o7bo542bo$11361b3o$11360bo24bo533b2o$
11360b2o23b3o522b2o7bo$11388bo521b2o5bobo$11387b2o528b2o$11402b2o$
11402bo$11399b2obo$11398bo2bo$11399b2o$11369b2o13b2o$11369b2o13b2o521b
2o$11908bo$11905b3o$11905bo4$11371b2o6bob2o$11348b2o21bobo3b3ob2o$
11347bobo23bo2bo$11347bo25b2o2b3ob2o$11346b2o31bobo$11379bobo10b2o$
11380bo11b2o11$11239bo127bo$11237b3o125b3o$11236bo127bo$11236b2o126b2o
$11242bo127bo$11240b3o125b3o$11239bo127bo$11239b2o126b2o14$11229b2o
126b2o$11230bo127bo$11227b3o125b3o$11227bo127bo$11413bo$11411b3o$
11410bo$11410b2o$11245b2o126b2o$11245bo127bo$11246b3o125b3o41b2o$
11248bo127bo42bo$11419bob2o$11411b2o4b3o2bo$11411b2o3bo3b2o$11416b4o$
11402b2o15bo$11237b2o126b2o34bobo12b3o$11228b2o7b2o117b2o7b2o34bo13bo$
11229bo127bo42b2o14b5o$11229bobo125bobo60bo$11230b2o126b2o58bo$11246b
2o126b2o42b2o$11246bo127bo$11244bobo125bobo$11244b2o126b2o3$11225b2o
126b2o$11226bo127bo$11226bobo18bo106bobo18bo$11227b2o17bobo106b2o17bob
o$11247bo127bo$11254bo127bo$11254b3o125b3o$11257bo127bo$11256b2o126b2o
$11271b2o126b2o$11271bo127bo$11268b2obo124b2obo$11224b2o41bo2bo81b2o
41bo2bo$11223bobo42b2o81bobo42b2o$11223bo5b2o22b2o96bo5b2o22b2o$8976bo
2245b2o4bo2bo21b2o95b2o4bo2bo21b2o$8976b3o2250b2o126b2o$8979bo$8978b2o
$11231b2o7b2o3bo113b2o7b2o3bo$11231b2o7bo3bobo112b2o7bo3bobo680b2o$
8970b2o2269bo3bobo121bo3bobo678bobo$8970bo2271bo3bobob2o118bo3bobob2o
668b2o4bo$8967b2obo2269bob4o2bob2o116bob4o2bob2o666bo2bo2b2ob4o$8967bo
2b3o4b2o2260bobo3bobo119bobo3bobo670b2obobobobo2bo$8968b2o3bo3b2o2260b
obo2bo2b2ob2o115bobo2bo2b2ob2o669bobobobo$8970b4o2266bo3b2o2bobo117bo
3b2o2bobo670bobob2o$8970bo15b2o3b2o2255bobo10b2o113bobo10b2o659bo$
8971b3o12bobobobo2256bo11b2o114bo11b2o$8974bo13bobo3072b2o$8969b5o14bo
2bo3062b2o7bo$8969bo19bobo3062b2o5bobo$8971bo18bo3070b2o$8970b2o4$
9005b2o$9005b2o$12051b2o$11485bo566bo$11483b3o563b3o$8985b2o2495bo566b
o$8984bobo2495b2o7bo$8984bo18b2o2484b3o$8983b2o7b2o9bo2484bo24bo$8992b
2o10bo2483b2o23b3o$9003b2o2511bo$9000b2o2513b2o$8937bo62b2ob2o2525b2o$
8937b3o63bo2526bo$8940bo59b2o3bo2521b2obo$8939b2o10bo47bo2b4o2520bo2bo
$8950bobo45bobobo2524b2o$8950bobo27bo18bo2bob2o2491b2o13b2o$8928bo20b
2ob3o25b3o19bobo2492b2o13b2o$8928b3o24bo27bo17b2o2bo$8931bo17b2ob3o6bo
20b2o14bobo2bobo$8930b2o17b2obo6b3o15bo20b2o2bobo$8958bo18b3o23bo$
8958b2o20bo$8933b2o44b2o$8932bo2bo2563b2o6bob2o$8933b2o2541b2o21bobo3b
3ob2o$11475bobo23bo2bo$11475bo25b2o2b3ob2o$11474b2o31bobo$8976b2o2529b
obo10b2o$8976b2o17b2o2511bo11b2o$8995b2o$8945b2o$8946bo$8943b3o50b2o$
8943bo52bo$8983b2o12b3o$8966b2o16bo14bo$8966bo14b3o$8967b3o11bo$8969bo
$11367bo127bo$11365b3o125b3o$11364bo127bo$11364b2o126b2o$11370bo127bo$
11368b3o125b3o$11367bo127bo$11367b2o126b2o14$11357b2o126b2o$11358bo
127bo$11355b3o125b3o$11355bo127bo$11541bo$11539b3o$11538bo$11538b2o$
11373b2o126b2o$11373bo127bo$11374b3o125b3o41b2o$11376bo127bo42bo$
11547bob2o$11539b2o4b3o2bo$11539b2o3bo3b2o$11544b4o$11530b2o15bo$
11365b2o126b2o34bobo12b3o$11356b2o7b2o117b2o7b2o34bo13bo$11357bo127bo
42b2o14b5o$11357bobo125bobo60bo$11358b2o126b2o58bo$11374b2o126b2o42b2o
$11374bo127bo$11372bobo125bobo$11372b2o126b2o3$11353b2o126b2o$11354bo
127bo$11354bobo18bo106bobo18bo$11355b2o17bobo106b2o17bobo$11375bo127bo
$11382bo127bo$11382b3o125b3o$11385bo127bo$11384b2o126b2o$11399b2o126b
2o$11399bo127bo$11396b2obo124b2obo$11352b2o41bo2bo81b2o41bo2bo$11351bo
bo42b2o81bobo42b2o$11351bo5b2o22b2o96bo5b2o22b2o$11350b2o4bo2bo21b2o
95b2o4bo2bo21b2o$11357b2o126b2o3$11359b2o7b2o3bo113b2o7b2o3bo$11359b2o
7bo3bobo112b2o7bo3bobo$11369bo3bobo121bo3bobo$11370bo3bobob2o118bo3bob
ob2o$11368bob4o2bob2o116bob4o2bob2o675b2o$11367bobo3bobo119bobo3bobo
679bo$11367bobo2bo2b2ob2o115bobo2bo2b2ob2o677bo$11368bo3b2o2bobo117bo
3b2o2bobo658b2o14b5o$11376bobo10b2o113bobo10b2o647bo13bo$11377bo11b2o
114bo11b2o647bobo12b3o$12167b2o15bo$12181b4o$12176b2o3bo3b2o$12176b2o
4b3o2bo$12184bob2o$12184bo$12183b2o3$12175b2o$12175bo$11613bo562b3o$
11611b3o564bo$11610bo$11610b2o7bo$11617b3o$11616bo24bo$11616b2o23b3o$
11644bo$11643b2o$11658b2o$11658bo$11655b2obo$11654bo2bo$11655b2o$
11625b2o13b2o$11625b2o13b2o541b2o$12183bo$12185bo$12165b2o14b5o$12166b
o13bo$12166bobo12b3o$12167b2o15bo$11627b2o6bob2o542b4o$11604b2o21bobo
3b3ob2o537b2o3bo3b2o$11603bobo23bo2bo543b2o4b3o2bo$11603bo25b2o2b3ob2o
545bob2o$11602b2o31bobo546bo$11616b2o17bobo10b2o533b2o$11616bo19bo11b
2o$11617b3o$11619bo555b2o$12175bo$12176b3o$12178bo6$9424bo2070bo$9424b
3o2066b3o$9427bo2064bo$9426b2o2064b2o$11498bo$11496b3o$9418b2o2075bo$
9418bo2076b2o$9415b2obo2764b2o$9415bo2b3o4b2o2756bo$9416b2o3bo3b2o
2758bo$9418b4o2743b2o14b5o$9418bo15b2o3b2o2725bo13bo$9419b3o12bobobobo
2725bobo12b3o$9422bo13bobo2728b2o15bo$9417b5o14bo2bo2741b4o$9417bo19bo
bo2736b2o3bo3b2o$9419bo18bo2737b2o4b3o2bo$9418b2o2764bob2o$12184bo$
12183b2o$11485b2o$9453b2o2031bo$9453b2o2028b3o689b2o$11483bo691bo$
12176b3o$12178bo$9433b2o$9432bobo$9432bo18b2o2048b2o$9431b2o7b2o9bo
2049bo$9440b2o10bo2049b3o$9451b2o2051bo$9448b2o$9385bo62b2ob2o$9385b3o
63bo$9388bo59b2o3bo$9387b2o10bo47bo2b4o$9398bobo45bobobo2042b2o$9398bo
bo27bo18bo2bob2o2030b2o7b2o$9376bo20b2ob3o25b3o19bobo2032bo697b2o$
9376b3o24bo27bo17b2o2bo2031bobo695bo$9379bo17b2ob3o6bo20b2o14bobo2bobo
2032b2o697bo$9378b2o17b2obo6b3o15bo20b2o2bobo2049b2o661b2o14b5o$9406bo
18b3o23bo2050bo663bo13bo$9406b2o20bo2071bobo663bobo12b3o$9381b2o44b2o
2071b2o665b2o15bo$9380bo2bo2797b4o$9381b2o2793b2o3bo3b2o$11481b2o693b
2o4b3o2bo$11482bo701bob2o$11482bobo18bo680bo$9424b2o2057b2o17bobo678b
2o$9424b2o17b2o2058bo$9443b2o2065bo$9393b2o2115b3o662b2o$9394bo2118bo
661bo$9391b3o50b2o2066b2o662b3o$9391bo52bo2082b2o649bo$9431b2o12b3o
2079bo$9414b2o16bo14bo2076b2obo$9414bo14b3o2048b2o41bo2bo$9415b3o11bo
2049bobo42b2o$9417bo2061bo5b2o22b2o$11478b2o4bo2bo21b2o$11485b2o3$
11487b2o7b2o3bo$11487b2o7bo3bobo$11497bo3bobo$11498bo3bobob2o$11496bob
4o2bob2o675b2o$11495bobo3bobo679bo$11495bobo2bo2b2ob2o677bo$11496bo3b
2o2bobo658b2o14b5o$11504bobo10b2o647bo13bo$11505bo11b2o647bobo12b3o$
12167b2o15bo$12181b4o$12176b2o3bo3b2o$12176b2o4b3o2bo$12184bob2o$
12184bo$12183b2o3$12175b2o$12175bo$11741bo434b3o$11739b3o436bo$11738bo
$11738b2o7bo$11745b3o$11744bo24bo$11744b2o23b3o$11772bo$11771b2o$
11786b2o$11786bo$11783b2obo$11782bo2bo$11783b2o$11753b2o13b2o$11753b2o
13b2o413b2o$12183bo$12185bo$12165b2o14b5o$12166bo13bo$12166bobo12b3o$
12167b2o15bo$11755b2o6bob2o414b4o$11732b2o21bobo3b3ob2o409b2o3bo3b2o$
11731bobo23bo2bo415b2o4b3o2bo$11731bo25b2o2b3ob2o417bob2o$11730b2o31bo
bo418bo$11763bobo10b2o405b2o$11764bo11b2o2$12175b2o$12175bo$12176b3o$
12178bo6$9808bo1535bo278bo127bo$9808b3o1533b3o274b3o125b3o$9811bo1535b
o272bo127bo$9810b2o1534b2o272b2o126b2o$11626bo127bo$11624b3o125b3o$
9802b2o1534b2o283bo127bo$9802bo1535bo284b2o126b2o$9799b2obo1532b2obo
844b2o$9799bo2b3o4b2o1524bo2b3o4b2o836bo$9800b2o3bo3b2o1525b2o3bo3b2o
838bo$9802b4o1532b4o823b2o14b5o$9802bo15b2o3b2o1513bo15b2o3b2o805bo13b
o$9803b3o12bobobobo1514b3o12bobobobo805bobo12b3o$9806bo13bobo1519bo13b
obo808b2o15bo$9801b5o14bo2bo1513b5o14bo2bo821b4o$9801bo19bobo1513bo19b
obo816b2o3bo3b2o$9803bo18bo1516bo18bo817b2o4b3o2bo$9802b2o1534b2o844bo
b2o$12184bo$12183b2o$11613b2o126b2o$9837b2o1534b2o239bo127bo$9837b2o
1534b2o236b3o125b3o433b2o$11611bo127bo435bo$11797bo378b3o$11795b3o380b
o$9817b2o1534b2o439bo$9816bobo1533bobo439b2o$9816bo18b2o1515bo18b2o
256b2o126b2o$9815b2o7b2o9bo1515b2o7b2o9bo257bo127bo$9824b2o10bo1523b2o
10bo257b3o125b3o41b2o$9835b2o1534b2o259bo127bo42bo$9832b2o1534b2o433bo
b2o$9769bo62b2ob2o1468bo62b2ob2o422b2o4b3o2bo$9769b3o63bo1469b3o63bo
423b2o3bo3b2o$9772bo59b2o3bo1470bo59b2o3bo426b4o$9771b2o10bo47bo2b4o
1469b2o10bo47bo2b4o412b2o15bo$9782bobo45bobobo1483bobo45bobobo250b2o
126b2o34bobo12b3o$9782bobo27bo18bo2bob2o1480bobo27bo18bo2bob2o238b2o7b
2o117b2o7b2o34bo13bo$9760bo20b2ob3o25b3o19bobo1459bo20b2ob3o25b3o19bob
o240bo127bo42b2o14b5o378b2o$9760b3o24bo27bo17b2o2bo1458b3o24bo27bo17b
2o2bo239bobo125bobo60bo378bo$9763bo17b2ob3o6bo20b2o14bobo2bobo1461bo
17b2ob3o6bo20b2o14bobo2bobo240b2o126b2o58bo382bo$9762b2o17b2obo6b3o15b
o20b2o2bobo1461b2o17b2obo6b3o15bo20b2o2bobo257b2o126b2o42b2o361b2o14b
5o$9790bo18b3o23bo1490bo18b3o23bo258bo127bo407bo13bo$9790b2o20bo1513b
2o20bo279bobo125bobo407bobo12b3o$9765b2o44b2o1488b2o44b2o279b2o126b2o
409b2o15bo$9764bo2bo1532bo2bo877b4o$9765b2o1534b2o873b2o3bo3b2o$11609b
2o126b2o437b2o4b3o2bo$11610bo127bo445bob2o$11610bobo18bo106bobo18bo
424bo$9808b2o1534b2o265b2o17bobo106b2o17bobo422b2o$9808b2o17b2o1515b2o
17b2o266bo127bo$9827b2o1534b2o273bo127bo$9777b2o1534b2o323b3o125b3o
406b2o$9778bo1535bo326bo127bo405bo$9775b3o50b2o1481b3o50b2o274b2o126b
2o406b3o$9775bo52bo1482bo52bo290b2o126b2o393bo$9815b2o12b3o1519b2o12b
3o287bo127bo$9798b2o16bo14bo1502b2o16bo14bo284b2obo124b2obo$9798bo14b
3o1518bo14b3o256b2o41bo2bo81b2o41bo2bo$9799b3o11bo1521b3o11bo257bobo
42b2o81bobo42b2o$9801bo1535bo269bo5b2o22b2o96bo5b2o22b2o$11606b2o4bo2b
o21b2o95b2o4bo2bo21b2o$11613b2o126b2o3$11615b2o7b2o3bo113b2o7b2o3bo$
11615b2o7bo3bobo112b2o7bo3bobo$11625bo3bobo121bo3bobo$11626bo3bobob2o
118bo3bobob2o$11624bob4o2bob2o116bob4o2bob2o419b2o$11623bobo3bobo119bo
bo3bobo423bo$11623bobo2bo2b2ob2o115bobo2bo2b2ob2o421bo$11624bo3b2o2bob
o117bo3b2o2bobo402b2o14b5o$11632bobo10b2o113bobo10b2o391bo13bo$11633bo
11b2o114bo11b2o391bobo12b3o$11685b2o126b2o352b2o15bo$11685bo127bo367b
4o$11686b3o125b3o359b2o3bo3b2o$11688bo127bo359b2o4b3o2bo$12184bob2o$
12184bo$12183b2o3$12175b2o$11695b2obo124b2obo348bo$11695b2ob3o122b2ob
3o347b3o$11701bo127bo348bo$11695b2ob3o122b2ob3o$11696bobo125bobo$
11696bobo125bobo$11697bo127bo10$12183b2o$12183bo$12185bo$12165b2o14b5o
$12166bo13bo$12166bobo12b3o$12167b2o15bo$12181b4o$12176b2o3bo3b2o$
12176b2o4b3o2bo$12184bob2o$12184bo$12183b2o3$12175b2o$12175bo$12176b3o
$12178bo6$9808bo1663bo$9808b3o1661b3o$9811bo1663bo$9810b2o1662b2o3$
9802b2o1662b2o$9802bo1663bo$9799b2obo1660b2obo716b2o$9799bo2b3o4b2o
1652bo2b3o4b2o708bo$9800b2o3bo3b2o1653b2o3bo3b2o710bo$9802b4o1660b4o
695b2o14b5o$9802bo15b2o3b2o1641bo15b2o3b2o677bo13bo$9803b3o12bobobobo
1642b3o12bobobobo677bobo12b3o$9806bo13bobo1647bo13bobo680b2o15bo$9801b
5o14bo2bo1641b5o14bo2bo693b4o$9801bo19bobo1641bo19bobo688b2o3bo3b2o$
9803bo18bo1644bo18bo689b2o4b3o2bo$9802b2o1662b2o716bob2o$12184bo$
12183b2o2$9837b2o1662b2o$9837b2o1662b2o672b2o$12175bo$12176b3o$12178bo
$9817b2o1662b2o$9816bobo1661bobo$9816bo18b2o1643bo18b2o$9815b2o7b2o9bo
1643b2o7b2o9bo$9824b2o10bo1651b2o10bo$9835b2o1662b2o$9832b2o1662b2o$
9769bo62b2ob2o1596bo62b2ob2o$9769b3o63bo1597b3o63bo$9772bo59b2o3bo
1598bo59b2o3bo$9771b2o10bo47bo2b4o1597b2o10bo47bo2b4o$9782bobo45bobobo
1611bobo45bobobo$9782bobo27bo18bo2bob2o1608bobo27bo18bo2bob2o$9760bo
20b2ob3o25b3o19bobo1587bo20b2ob3o25b3o19bobo682b2o$9760b3o24bo27bo17b
2o2bo1586b3o24bo27bo17b2o2bo681bo$9763bo17b2ob3o6bo20b2o14bobo2bobo
1589bo17b2ob3o6bo20b2o14bobo2bobo683bo$9762b2o17b2obo6b3o15bo20b2o2bob
o1589b2o17b2obo6b3o15bo20b2o2bobo664b2o14b5o$9790bo18b3o23bo1618bo18b
3o23bo666bo13bo$9790b2o20bo1641b2o20bo689bobo12b3o$9765b2o44b2o1616b2o
44b2o690b2o15bo$9764bo2bo1660bo2bo749b4o$9765b2o1662b2o745b2o3bo3b2o$
12176b2o4b3o2bo$12184bob2o$12184bo$9808b2o1662b2o709b2o$9808b2o17b2o
1643b2o17b2o$9827b2o1662b2o$9777b2o1662b2o732b2o$9778bo1663bo732bo$
9775b3o50b2o1609b3o50b2o682b3o$9775bo52bo1610bo52bo685bo$9815b2o12b3o
1647b2o12b3o$9798b2o16bo14bo1630b2o16bo14bo$9798bo14b3o1646bo14b3o$
9799b3o11bo1649b3o11bo$9801bo1663bo$11536bo$11536b3o$11539bo$11538b2o
3$11530b2o$11530bo$11527b2obo652b2o$11527bo2b3o4b2o644bo$11528b2o3bo3b
2o646bo$11530b4o631b2o14b5o$11530bo15b2o3b2o613bo13bo$11531b3o12bobobo
bo613bobo12b3o$11534bo13bobo616b2o15bo$11529b5o14bo2bo629b4o$11529bo
19bobo624b2o3bo3b2o$11531bo18bo625b2o4b3o2bo$11530b2o652bob2o$12184bo$
12183b2o2$11565b2o$11565b2o608b2o$12175bo$12176b3o$12178bo$11545b2o$
11544bobo$11544bo18b2o$11543b2o7b2o9bo$11552b2o10bo$11563b2o$11560b2o$
11497bo62b2ob2o$11497b3o63bo$11500bo59b2o3bo$11499b2o10bo47bo2b4o$
11510bobo45bobobo$11510bobo27bo18bo2bob2o$11488bo20b2ob3o25b3o19bobo
618b2o$11488b3o24bo27bo17b2o2bo617bo$11491bo17b2ob3o6bo20b2o14bobo2bob
o619bo$11490b2o17b2obo6b3o15bo20b2o2bobo600b2o14b5o$11518bo18b3o23bo
602bo13bo$11518b2o20bo625bobo12b3o$11493b2o44b2o626b2o15bo$11492bo2bo
685b4o$11493b2o681b2o3bo3b2o$12176b2o4b3o2bo$12184bob2o$12184bo$11536b
2o645b2o$11536b2o17b2o$11555b2o$11505b2o668b2o$11506bo668bo$11503b3o
50b2o618b3o$11503bo52bo621bo$11543b2o12b3o$11526b2o16bo14bo$11526bo14b
3o$11527b3o11bo$11529bo$9808bo$9808b3o$9811bo$9810b2o3$9802b2o$9802bo$
9799b2obo2380b2o$9799bo2b3o4b2o2372bo$9800b2o3bo3b2o2374bo$9802b4o
2359b2o14b5o$9802bo15b2o3b2o2341bo13bo$9803b3o12bobobobo2341bobo12b3o$
9806bo13bobo2344b2o15bo$9801b5o14bo2bo2357b4o$9801bo19bobo2352b2o3bo3b
2o$9803bo18bo2353b2o4b3o2bo$9802b2o2380bob2o$12184bo$12183b2o2$9837b2o
$9837b2o2336b2o$12175bo$12176b3o$12178bo$9817b2o$9816bobo$9816bo18b2o$
9815b2o7b2o9bo$9824b2o10bo$9835b2o$9832b2o$9769bo62b2ob2o$9769b3o63bo$
9772bo59b2o3bo$9771b2o10bo47bo2b4o$9782bobo45bobobo$9782bobo27bo18bo2b
ob2o$9760bo20b2ob3o25b3o19bobo2346b2o$9760b3o24bo27bo17b2o2bo2345bo$
9763bo17b2ob3o6bo20b2o14bobo2bobo2347bo$9762b2o17b2obo6b3o15bo20b2o2bo
bo2328b2o14b5o$9790bo18b3o23bo2330bo13bo$9790b2o20bo2353bobo12b3o$
9765b2o44b2o2354b2o15bo$9764bo2bo2413b4o$9765b2o2409b2o3bo3b2o$12176b
2o4b3o2bo$12184bob2o$12184bo$9808b2o2373b2o$9808b2o17b2o$9827b2o$9777b
2o2396b2o$9778bo2396bo$9775b3o50b2o2346b3o$9775bo52bo2349bo$9815b2o12b
3o$9798b2o16bo14bo$9798bo14b3o$9799b3o11bo$9801bo$10128bo$10128b3o$
10131bo$10130b2o3$10122b2o$10122bo$10119b2obo2060b2o$10119bo2b3o4b2o
2052bo$10120b2o3bo3b2o2054bo$10122b4o2039b2o14b5o$10122bo15b2o3b2o
2021bo13bo$10123b3o12bobobobo2021bobo12b3o$10126bo13bobo2024b2o15bo$
10121b5o14bo2bo2037b4o$10121bo19bobo2032b2o3bo3b2o$10123bo18bo2033b2o
4b3o2bo$10122b2o2060bob2o$12184bo$12183b2o2$10157b2o$10157b2o2016b2o$
12175bo$12176b3o$12178bo$10137b2o$10136bobo$10136bo18b2o$10135b2o7b2o
9bo$10144b2o10bo$10155b2o$10152b2o$10089bo62b2ob2o$10089b3o63bo$10092b
o59b2o3bo$10091b2o10bo47bo2b4o$10102bobo45bobobo$10102bobo27bo18bo2bob
2o$10080bo20b2ob3o25b3o19bobo$10080b3o24bo27bo17b2o2bo$10083bo17b2ob3o
6bo20b2o14bobo2bobo$10082b2o17b2obo6b3o15bo20b2o2bobo$10110bo18b3o23bo
$10110b2o20bo$10085b2o44b2o$10084bo2bo$10085b2o4$10128b2o$10128b2o17b
2o$10147b2o$10097b2o$10098bo$10095b3o50b2o$10095bo52bo$10135b2o12b3o$
10118b2o16bo14bo$10118bo14b3o$10119b3o11bo$10121bo193$9744bo$9744b3o$
9747bo$9746b2o3$9738b2o$9738bo$9735b2obo$9735bo2b3o4b2o$9736b2o3bo3b2o
$9738b4o$9738bo15b2o3b2o$9739b3o12bobobobo$9742bo13bobo$9737b5o14bo2bo
$9737bo19bobo$9739bo18bo$9738b2o4$9773b2o$9773b2o4$9753b2o$9752bobo$
9752bo18b2o$9751b2o7b2o9bo$9760b2o10bo$9771b2o$9768b2o$9705bo62b2ob2o$
9705b3o63bo$9708bo59b2o3bo$9707b2o10bo47bo2b4o$9718bobo45bobobo$9718bo
bo27bo18bo2bob2o$9696bo20b2ob3o25b3o19bobo$9696b3o24bo27bo17b2o2bo$
9699bo17b2ob3o6bo20b2o14bobo2bobo$9698b2o17b2obo6b3o15bo20b2o2bobo$
9726bo18b3o23bo$9726b2o20bo$9701b2o44b2o$9700bo2bo$9701b2o4$9744b2o$
9744b2o17b2o$9763b2o$9713b2o$9714bo$9711b3o50b2o$9711bo52bo$9751b2o12b
3o$9734b2o16bo14bo$9734bo14b3o$9735b3o11bo$9737bo129$10320bo$10320b3o$
10323bo$10322b2o3$10314b2o$10314bo$10311b2obo$10311bo2b3o4b2o$10312b2o
3bo3b2o$10314b4o$10314bo15b2o3b2o$10315b3o12bobobobo$10318bo13bobo$
10313b5o14bo2bo$10313bo19bobo$10315bo18bo$10314b2o4$10349b2o$10349b2o
4$10329b2o$10328bobo$10328bo18b2o$10327b2o7b2o9bo$10336b2o10bo$10347b
2o$10344b2o$10281bo62b2ob2o$10281b3o63bo$10284bo59b2o3bo$10283b2o10bo
47bo2b4o$10294bobo45bobobo$10294bobo27bo18bo2bob2o$10272bo20b2ob3o25b
3o19bobo$10272b3o24bo27bo17b2o2bo$10275bo17b2ob3o6bo20b2o14bobo2bobo$
10274b2o17b2obo6b3o15bo20b2o2bobo$10302bo18b3o23bo$10302b2o20bo$10277b
2o44b2o$10276bo2bo$10277b2o4$10320b2o$10320b2o17b2o$10339b2o$10289b2o$
10290bo$10287b3o50b2o$10287bo52bo$10327b2o12b3o$10310b2o16bo14bo$
10310bo14b3o$10311b3o11bo$10313bo5313$2384bo$2384b3o$2387bo$2386b2o3$
2378b2o$2378bo$2375b2obo$2375bo2b3o4b2o$2376b2o3bo3b2o$2378b4o$2378bo
15b2o3b2o$2379b3o12bobobobo$2382bo13bobo$2377b5o14bo2bo$2377bo19bobo$
2379bo18bo$2378b2o4$2413b2o$2413b2o4$2393b2o$2392bobo$2392bo18b2o$
2391b2o7b2o9bo$2400b2o10bo$2411b2o$2408b2o$2345bo62b2ob2o$2345b3o63bo$
2348bo59b2o3bo$2347b2o10bo47bo2b4o$2358bobo45bobobo$2358bobo27bo18bo2b
ob2o$2336bo20b2ob3o25b3o19bobo$2336b3o24bo27bo17b2o2bo$2339bo17b2ob3o
6bo20b2o14bobo2bobo$2338b2o17b2obo6b3o15bo20b2o2bobo$2366bo18b3o23bo$
2366b2o20bo$2341b2o44b2o$2340bo2bo$2341b2o4$2384b2o$2384b2o17b2o$2403b
2o$2353b2o$2354bo$2351b3o50b2o$2351bo52bo$2391b2o12b3o$2374b2o16bo14bo
$2374bo14b3o$2375b3o11bo$2377bo129$2576bo$2576b3o$2579bo$2578b2o3$
2570b2o$2570bo$2567b2obo$2567bo2b3o4b2o$2568b2o3bo3b2o$2570b4o$2570bo
15b2o3b2o$2571b3o12bobobobo$2574bo13bobo$2569b5o14bo2bo$2569bo19bobo$
2571bo18bo$2570b2o4$2605b2o$2605b2o4$2585b2o$2584bobo$2584bo18b2o$
2583b2o7b2o9bo$2592b2o10bo$2603b2o$2600b2o$2537bo62b2ob2o$2537b3o63bo$
2540bo59b2o3bo$2539b2o10bo47bo2b4o$2550bobo45bobobo$2550bobo27bo18bo2b
ob2o$2528bo20b2ob3o25b3o19bobo$2528b3o24bo27bo17b2o2bo$2531bo17b2ob3o
6bo20b2o14bobo2bobo$2530b2o17b2obo6b3o15bo20b2o2bobo$2558bo18b3o23bo$
2558b2o20bo$2533b2o44b2o$2532bo2bo$2533b2o4$2576b2o$2576b2o17b2o$2595b
2o$2545b2o$2546bo$2543b3o50b2o$2543bo52bo$2583b2o12b3o$2566b2o16bo14bo
$2566bo14b3o$2567b3o11bo$2569bo$2384bo$2384b3o$2387bo$2386b2o3$2378b2o
$2378bo$2375b2obo$2375bo2b3o4b2o$2376b2o3bo3b2o$2378b4o$2378bo15b2o3b
2o$2379b3o12bobobobo$2382bo13bobo$2377b5o14bo2bo$2377bo19bobo$2379bo
18bo$2378b2o4$2413b2o$2413b2o4$2393b2o$2392bobo$2392bo18b2o$2391b2o7b
2o9bo$2400b2o10bo$2411b2o$2408b2o$2345bo62b2ob2o$2345b3o63bo$2348bo59b
2o3bo$2347b2o10bo47bo2b4o$2358bobo45bobobo$2358bobo27bo18bo2bob2o$
2336bo20b2ob3o25b3o19bobo$2336b3o24bo27bo17b2o2bo$2339bo17b2ob3o6bo20b
2o14bobo2bobo$2338b2o17b2obo6b3o15bo20b2o2bobo$2366bo18b3o23bo$2366b2o
20bo$2341b2o44b2o$2340bo2bo$2341b2o4$2384b2o$2384b2o17b2o$2403b2o$
2353b2o$2354bo$2351b3o50b2o$2351bo52bo$2391b2o12b3o$2374b2o16bo14bo$
2374bo14b3o$2375b3o11bo$2377bo129$2576bo$2576b3o$2579bo$2578b2o3$2570b
2o$2570bo$2567b2obo$2567bo2b3o4b2o$2568b2o3bo3b2o$2570b4o$2570bo15b2o
3b2o$2571b3o12bobobobo$2574bo13bobo$2569b5o14bo2bo$2569bo19bobo$2571bo
18bo$2570b2o4$2605b2o$2605b2o4$2585b2o$2584bobo$2584bo18b2o$2583b2o7b
2o9bo$2592b2o10bo$2603b2o$2600b2o$2537bo62b2ob2o$2537b3o63bo$2540bo59b
2o3bo$2539b2o10bo47bo2b4o$2550bobo45bobobo$2550bobo27bo18bo2bob2o$
2528bo20b2ob3o25b3o19bobo$2528b3o24bo27bo17b2o2bo$2531bo17b2ob3o6bo20b
2o14bobo2bobo$2530b2o17b2obo6b3o15bo20b2o2bobo$2558bo18b3o23bo$2558b2o
20bo$2533b2o44b2o$2532bo2bo$2533b2o4$2576b2o$2576b2o17b2o$2595b2o$
2545b2o$2546bo$2543b3o50b2o$2543bo52bo$2583b2o12b3o$2566b2o16bo14bo$
2566bo14b3o$2567b3o11bo$2569bo$2384bo511bo$2384b3o509b3o$2387bo511bo$
2386b2o510b2o3$2378b2o510b2o$2378bo511bo$2375b2obo508b2obo$2375bo2b3o
4b2o500bo2b3o4b2o$2376b2o3bo3b2o501b2o3bo3b2o$2378b4o508b4o$2378bo15b
2o3b2o489bo15b2o3b2o$2379b3o12bobobobo490b3o12bobobobo$2382bo13bobo
495bo13bobo$2377b5o14bo2bo489b5o14bo2bo$2377bo19bobo489bo19bobo$2379bo
18bo492bo18bo$2378b2o510b2o4$2413b2o510b2o$2413b2o510b2o4$2393b2o510b
2o$2392bobo509bobo$2392bo18b2o491bo18b2o$2391b2o7b2o9bo491b2o7b2o9bo$
2400b2o10bo499b2o10bo$2411b2o510b2o$2408b2o510b2o$2345bo62b2ob2o444bo
62b2ob2o$2345b3o63bo445b3o63bo$2348bo59b2o3bo446bo59b2o3bo$2347b2o10bo
47bo2b4o445b2o10bo47bo2b4o$2358bobo45bobobo459bobo45bobobo$2358bobo27b
o18bo2bob2o456bobo27bo18bo2bob2o$2336bo20b2ob3o25b3o19bobo435bo20b2ob
3o25b3o19bobo$2336b3o24bo27bo17b2o2bo434b3o24bo27bo17b2o2bo$2339bo17b
2ob3o6bo20b2o14bobo2bobo437bo17b2ob3o6bo20b2o14bobo2bobo$2338b2o17b2ob
o6b3o15bo20b2o2bobo437b2o17b2obo6b3o15bo20b2o2bobo$2366bo18b3o23bo466b
o18b3o23bo$2366b2o20bo489b2o20bo$2341b2o44b2o464b2o44b2o$2340bo2bo508b
o2bo$2341b2o510b2o4$2384b2o510b2o$2384b2o17b2o491b2o17b2o$2403b2o510b
2o$2353b2o510b2o$2354bo511bo$2351b3o50b2o457b3o50b2o$2351bo52bo458bo
52bo$2391b2o12b3o495b2o12b3o$2374b2o16bo14bo478b2o16bo14bo$2374bo14b3o
494bo14b3o$2375b3o11bo497b3o11bo$2377bo511bo129$2576bo$2576b3o$2579bo$
2578b2o3$2570b2o$2570bo$2567b2obo$2567bo2b3o4b2o$2568b2o3bo3b2o$2570b
4o$2570bo15b2o3b2o$2571b3o12bobobobo$2574bo13bobo$2569b5o14bo2bo$2569b
o19bobo$2571bo18bo$2570b2o4$2605b2o$2605b2o4$2585b2o$2584bobo$2584bo
18b2o$2583b2o7b2o9bo$2592b2o10bo$2603b2o$2600b2o$2537bo62b2ob2o$2537b
3o63bo$2540bo59b2o3bo$2539b2o10bo47bo2b4o$2550bobo45bobobo$2550bobo27b
o18bo2bob2o$2528bo20b2ob3o25b3o19bobo$2528b3o24bo27bo17b2o2bo$2531bo
17b2ob3o6bo20b2o14bobo2bobo$2530b2o17b2obo6b3o15bo20b2o2bobo$2558bo18b
3o23bo$2558b2o20bo$2533b2o44b2o$2532bo2bo$2533b2o4$2576b2o$2576b2o17b
2o$2595b2o$2545b2o$2546bo$2543b3o50b2o$2543bo52bo$2583b2o12b3o$2566b2o
16bo14bo$2566bo14b3o$2567b3o11bo$2569bo321$3088bo$3088b3o$3091bo$3090b
2o3$3082b2o$3082bo$3079b2obo$3079bo2b3o4b2o$3080b2o3bo3b2o$3082b4o$
3082bo15b2o3b2o$3083b3o12bobobobo$3086bo13bobo$3081b5o14bo2bo$3081bo
19bobo$3083bo18bo$3082b2o4$3117b2o$3117b2o4$3097b2o$3096bobo$3096bo18b
2o$3095b2o7b2o9bo$3104b2o10bo$3115b2o$3112b2o$3049bo62b2ob2o$3049b3o
63bo$3052bo59b2o3bo$3051b2o10bo47bo2b4o$3062bobo45bobobo$3062bobo27bo
18bo2bob2o$3040bo20b2ob3o25b3o19bobo$3040b3o24bo27bo17b2o2bo$3043bo17b
2ob3o6bo20b2o14bobo2bobo$3042b2o17b2obo6b3o15bo20b2o2bobo$3070bo18b3o
23bo$3070b2o20bo$3045b2o44b2o$3044bo2bo$3045b2o4$3088b2o$3088b2o17b2o$
3107b2o$3057b2o$3058bo$3055b3o50b2o$3055bo52bo$3095b2o12b3o$3078b2o16b
o14bo$3078bo14b3o$3079b3o11bo$3081bo$3280bo$3280b3o$3283bo$3282b2o3$
3274b2o$3274bo$3271b2obo$3271bo2b3o4b2o$3272b2o3bo3b2o$3274b4o$3274bo
15b2o3b2o$3275b3o12bobobobo$3278bo13bobo$3273b5o14bo2bo$3273bo19bobo$
3275bo18bo$3274b2o4$3309b2o$3309b2o4$3289b2o$3288bobo$3288bo18b2o$
3287b2o7b2o9bo$3296b2o10bo$3307b2o$3304b2o$3241bo62b2ob2o$3241b3o63bo$
3244bo59b2o3bo$3243b2o10bo47bo2b4o$3254bobo45bobobo$3254bobo27bo18bo2b
ob2o$3232bo20b2ob3o25b3o19bobo$3232b3o24bo27bo17b2o2bo$3235bo17b2ob3o
6bo20b2o14bobo2bobo$3234b2o17b2obo6b3o15bo20b2o2bobo$3262bo18b3o23bo$
3262b2o20bo$3237b2o44b2o$3236bo2bo$3237b2o4$3280b2o$3280b2o17b2o$3299b
2o$3249b2o$3250bo$3247b3o50b2o$3247bo52bo$3287b2o12b3o$3270b2o16bo14bo
$3270bo14b3o$3271b3o11bo$3273bo$3344bo$3344b3o$3347bo$3346b2o3$3338b2o
$3338bo$3335b2obo$3335bo2b3o4b2o$3336b2o3bo3b2o$3338b4o$3338bo15b2o3b
2o$3339b3o12bobobobo$3342bo13bobo$3337b5o14bo2bo$3337bo19bobo$3339bo
18bo$3338b2o4$3373b2o$3373b2o4$3353b2o$3352bobo$3352bo18b2o$3351b2o7b
2o9bo$3360b2o10bo$3371b2o$3368b2o$3305bo62b2ob2o$3305b3o63bo$3308bo59b
2o3bo$3307b2o10bo47bo2b4o$3318bobo45bobobo$3318bobo27bo18bo2bob2o$
3296bo20b2ob3o25b3o19bobo$3296b3o24bo27bo17b2o2bo$3299bo17b2ob3o6bo20b
2o14bobo2bobo$3298b2o17b2obo6b3o15bo20b2o2bobo$3326bo18b3o23bo$3326b2o
20bo$3301b2o44b2o$3300bo2bo$3301b2o4$3344b2o$3344b2o17b2o$3363b2o$
3313b2o$3314bo$3311b3o50b2o$3311bo52bo$3351b2o12b3o$3334b2o16bo14bo$
3334bo14b3o$3335b3o11bo$3337bo31$56bo$54b3o$53bo$52bobo$52bobo$53bo5$
37b2o$37b2o4$57b2o$57bobo$59bo$50b2o7b2o$50b2o2$40bob2o$38b3ob2o$37bo$
38b3ob2o$40bobo$40bobo$41bo6$50b2o$50b2o3420bo$3472b3o$3475bo$3474b2o
3$3466b2o$3466bo$3463b2obo$3463bo2b3o4b2o$3464b2o3bo3b2o$3466b4o$3466b
o15b2o3b2o$3467b3o12bobobobo$3470bo13bobo$3465b5o14bo2bo$35bob2o3426bo
19bobo$33b3ob2o3428bo18bo$32bo3433b2o$33b3ob2o$35bobo2bo$38b3o$43bo5b
2o3450b2o$40b4o5b2o3450b2o$40bo$41bo$40b2o$3481b2o$3480bobo$3480bo18b
2o$3479b2o7b2o9bo$3488b2o10bo$3499b2o$3496b2o$3433bo62b2ob2o$3433b3o
63bo$3436bo59b2o3bo$3435b2o10bo47bo2b4o$3446bobo45bobobo$3446bobo27bo
18bo2bob2o$3424bo20b2ob3o25b3o19bobo$3424b3o24bo27bo17b2o2bo$3427bo17b
2ob3o6bo20b2o14bobo2bobo$3426b2o17b2obo6b3o15bo20b2o2bobo$3454bo18b3o
23bo$3454b2o20bo$3429b2o44b2o$3428bo2bo$3429b2o4$3472b2o$3472b2o17b2o$
3491b2o$3441b2o$3442bo$3439b3o50b2o$3439bo52bo$3479b2o12b3o$3462b2o16b
o14bo$3462bo14b3o$3463b3o11bo$3465bo$3280bo383bo$3280b3o381b3o$3283bo
383bo$3282b2o382b2o3$3274b2o382b2o$3274bo383bo$3271b2obo380b2obo$3271b
o2b3o4b2o372bo2b3o4b2o$3272b2o3bo3b2o373b2o3bo3b2o$3274b4o380b4o$3274b
o15b2o3b2o361bo15b2o3b2o$3275b3o12bobobobo362b3o12bobobobo$3278bo13bob
o367bo13bobo$3273b5o14bo2bo361b5o14bo2bo$3273bo19bobo361bo19bobo$3275b
o18bo364bo18bo$3274b2o382b2o4$3309b2o382b2o$3309b2o382b2o4$3289b2o382b
2o$3288bobo381bobo$3288bo18b2o363bo18b2o$3287b2o7b2o9bo363b2o7b2o9bo$
3296b2o10bo371b2o10bo$3307b2o382b2o$3304b2o382b2o$3241bo62b2ob2o316bo
62b2ob2o$3241b3o63bo317b3o63bo$3244bo59b2o3bo318bo59b2o3bo$3243b2o10bo
47bo2b4o317b2o10bo47bo2b4o$3254bobo45bobobo331bobo45bobobo$3254bobo27b
o18bo2bob2o328bobo27bo18bo2bob2o$3232bo20b2ob3o25b3o19bobo307bo20b2ob
3o25b3o19bobo$3232b3o24bo27bo17b2o2bo306b3o24bo27bo17b2o2bo$3235bo17b
2ob3o6bo20b2o14bobo2bobo309bo17b2ob3o6bo20b2o14bobo2bobo$3234b2o17b2ob
o6b3o15bo20b2o2bobo309b2o17b2obo6b3o15bo20b2o2bobo$3262bo18b3o23bo338b
o18b3o23bo$3262b2o20bo361b2o20bo$3237b2o44b2o336b2o44b2o$3236bo2bo380b
o2bo$3237b2o382b2o4$3280b2o382b2o$3280b2o17b2o363b2o17b2o$3299b2o382b
2o$3249b2o382b2o$3250bo383bo$3247b3o50b2o329b3o50b2o$3247bo52bo330bo
52bo$3287b2o12b3o367b2o12b3o$3270b2o16bo14bo350b2o16bo14bo$3270bo14b3o
366bo14b3o$152bo3118b3o11bo369b3o11bo$150b3o3120bo383bo$149bo$148bobo$
148bobo$149bo5$133b2o$133b2o4$153b2o$153bobo$155bo$146b2o7b2o$146b2o2$
136bob2o$134b3ob2o$133bo$134b3ob2o$136bobo$136bobo$137bo6$146b2o$146b
2o16$131bob2o$129b3ob2o$128bo$129b3ob2o$131bobo2bo$134b3o$139bo5b2o$
136b4o5b2o$136bo$137bo$136b2o6$3280bo255bo$3280b3o253b3o$3283bo255bo$
3282b2o254b2o3$3274b2o254b2o$3274bo255bo$3271b2obo252b2obo$3271bo2b3o
4b2o244bo2b3o4b2o$3272b2o3bo3b2o245b2o3bo3b2o$3274b4o252b4o$3274bo15b
2o3b2o233bo15b2o3b2o$3275b3o12bobobobo234b3o12bobobobo$3278bo13bobo
239bo13bobo$3273b5o14bo2bo233b5o14bo2bo$3273bo19bobo233bo19bobo$3275bo
18bo236bo18bo$3274b2o254b2o4$3309b2o254b2o$3309b2o254b2o4$3289b2o254b
2o$3288bobo253bobo$3288bo18b2o235bo18b2o$3287b2o7b2o9bo235b2o7b2o9bo$
3296b2o10bo243b2o10bo$3307b2o254b2o$3304b2o254b2o$3241bo62b2ob2o188bo
62b2ob2o$3241b3o63bo189b3o63bo$3244bo59b2o3bo190bo59b2o3bo$3243b2o10bo
47bo2b4o189b2o10bo47bo2b4o$3254bobo45bobobo203bobo45bobobo$3254bobo27b
o18bo2bob2o200bobo27bo18bo2bob2o$3232bo20b2ob3o25b3o19bobo179bo20b2ob
3o25b3o19bobo$3232b3o24bo27bo17b2o2bo178b3o24bo27bo17b2o2bo$3235bo17b
2ob3o6bo20b2o14bobo2bobo181bo17b2ob3o6bo20b2o14bobo2bobo$3234b2o17b2ob
o6b3o15bo20b2o2bobo181b2o17b2obo6b3o15bo20b2o2bobo$3262bo18b3o23bo210b
o18b3o23bo$3262b2o20bo233b2o20bo$3237b2o44b2o208b2o44b2o$3236bo2bo252b
o2bo$3237b2o254b2o4$3280b2o254b2o$3280b2o17b2o235b2o17b2o$3299b2o254b
2o$3249b2o254b2o$3250bo255bo$3247b3o50b2o201b3o50b2o$3247bo52bo202bo
52bo$3287b2o12b3o239b2o12b3o$3270b2o16bo14bo222b2o16bo14bo$3270bo14b3o
238bo14b3o$3271b3o11bo241b3o11bo$3273bo255bo$3472bo$3472b3o$3475bo$
3474b2o3$3466b2o$3466bo$3463b2obo$3463bo2b3o4b2o$3464b2o3bo3b2o$3466b
4o$3466bo15b2o3b2o$3467b3o12bobobobo$3470bo13bobo$3465b5o14bo2bo$3465b
o19bobo$3467bo18bo$3466b2o4$3501b2o$3501b2o4$3481b2o$3480bobo$3480bo
18b2o$248bo3230b2o7b2o9bo$246b3o3239b2o10bo$245bo3253b2o$244bobo3249b
2o$244bobo3186bo62b2ob2o$245bo3187b3o63bo$3436bo59b2o3bo$3435b2o10bo
47bo2b4o$3446bobo45bobobo$3446bobo27bo18bo2bob2o$229b2o3193bo20b2ob3o
25b3o19bobo$229b2o3193b3o24bo27bo17b2o2bo$3427bo17b2ob3o6bo20b2o14bobo
2bobo$3426b2o17b2obo6b3o15bo20b2o2bobo$3454bo18b3o23bo$249b2o3203b2o
20bo$249bobo3177b2o44b2o$251bo3176bo2bo$242b2o7b2o3176b2o$242b2o2$232b
ob2o$230b3ob2o3236b2o$229bo3242b2o17b2o$230b3ob2o3255b2o$232bobo3206b
2o$232bobo3207bo$233bo3205b3o50b2o$3439bo52bo$3479b2o12b3o$3462b2o16bo
14bo$3462bo14b3o$3463b3o11bo$242b2o3221bo$242b2o16$227bob2o$225b3ob2o$
224bo$225b3ob2o$227bobo2bo$230b3o$235bo5b2o$232b4o5b2o$232bo$233bo$
232b2o36$24bo$22b3o$21bo$20bobo$20bobo$21bo5$5b2o$5b2o4$25b2o$25bobo$
27bo$18b2o7b2o$18b2o2$8bob2o$6b3ob2o$5bo$6b3ob2o$8bobo$8bobo$9bo6$18b
2o$18b2o16$3bob2o$b3ob2o$o$b3ob2o$3bobo2bo$6b3o$11bo5b2o$8b4o5b2o$8bo$
9bo$8b2o4$344bo$342b3o$341bo$340bobo$340bobo$341bo5$325b2o$325b2o4$
345b2o$345bobo$347bo$338b2o7b2o$338b2o2$328bob2o$326b3ob2o$325bo$326b
3ob2o$328bobo$328bobo$329bo5$440bo$338b2o98b3o$338b2o97bo$436bobo$436b
obo$437bo5$421b2o$421b2o4$441b2o$441bobo$443bo$323bob2o107b2o7b2o$321b
3ob2o107b2o$320bo$321b3ob2o97bob2o$323bobo2bo93b3ob2o$326b3o92bo$331bo
5b2o83b3ob2o$328b4o5b2o85bobo$328bo95bobo$329bo95bo$328b2o5$434b2o$
434b2o16$419bob2o$417b3ob2o$416bo$417b3ob2o$419bobo2bo$422b3o$427bo5b
2o$424b4o5b2o$424bo$425bo$424b2o68$440bo$438b3o$437bo$436bobo$436bobo$
437bo5$421b2o$421b2o4$441b2o$441bobo$443bo$434b2o7b2o$434b2o2$424bob2o
$422b3ob2o$421bo$422b3ob2o$424bobo$424bobo$425bo5$536bo$434b2o98b3o$
434b2o97bo$532bobo$532bobo$533bo5$517b2o$517b2o4$537b2o$537bobo$539bo$
419bob2o107b2o7b2o$417b3ob2o107b2o$416bo$417b3ob2o97bob2o$419bobo2bo
93b3ob2o$422b3o92bo$427bo5b2o83b3ob2o$424b4o5b2o85bobo$424bo95bobo$
425bo95bo$424b2o5$530b2o$530b2o16$515bob2o$513b3ob2o$512bo$513b3ob2o$
515bobo2bo$518b3o$523bo5b2o$520b4o5b2o$520bo$521bo$520b2o68$536bo$534b
3o$533bo$532bobo$532bobo$533bo5$517b2o$517b2o4$537b2o$537bobo$539bo$
530b2o7b2o$530b2o2$520bob2o$518b3ob2o$517bo$518b3ob2o$520bobo$520bobo$
521bo5$632bo$530b2o98b3o$530b2o97bo$628bobo$628bobo$629bo5$613b2o$613b
2o4$633b2o$633bobo$635bo$515bob2o107b2o7b2o$513b3ob2o107b2o$512bo$513b
3ob2o97bob2o$515bobo2bo93b3ob2o$518b3o92bo$523bo5b2o83b3ob2o$520b4o5b
2o85bobo$520bo95bobo$521bo95bo$520b2o5$626b2o$626b2o16$611bob2o$609b3o
b2o$608bo$609b3ob2o$611bobo2bo$614b3o$619bo5b2o$616b4o5b2o$616bo$617bo
$616b2o4$952bo$950b3o$949bo$948bobo$948bobo$949bo5$933b2o$933b2o4$953b
2o$953bobo$955bo$946b2o7b2o$946b2o2$936bob2o$934b3ob2o$933bo$934b3ob2o
$936bobo$936bobo$937bo6$946b2o$946b2o16$931bob2o$929b3ob2o$928bo$929b
3ob2o$931bobo2bo$934b3o$939bo5b2o$936b4o5b2o$936bo$937bo$936b2o4$632bo
$630b3o$629bo$628bobo$628bobo$629bo5$613b2o$613b2o4$633b2o$633bobo$
635bo$626b2o7b2o$626b2o2$616bob2o$614b3ob2o$613bo$614b3ob2o$616bobo$
616bobo$617bo5$728bo$626b2o98b3o$626b2o97bo$724bobo$724bobo$725bo5$
709b2o$709b2o4$729b2o$729bobo$731bo$611bob2o107b2o7b2o$609b3ob2o107b2o
$608bo$609b3ob2o97bob2o$611bobo2bo93b3ob2o$614b3o92bo$619bo5b2o83b3ob
2o$616b4o5b2o85bobo$616bo95bobo$617bo95bo$616b2o5$722b2o$722b2o16$707b
ob2o$705b3ob2o$704bo$705b3ob2o$707bobo2bo$710b3o$715bo5b2o$712b4o5b2o$
712bo$713bo$712b2o100$824bo$822b3o$821bo$820bobo$820bobo$821bo5$805b2o
$805b2o4$825b2o$825bobo$827bo$818b2o7b2o$818b2o2$808bob2o$806b3ob2o$
805bo$806b3ob2o$808bobo$808bobo$809bo6$818b2o$818b2o16$803bob2o$801b3o
b2o$800bo$801b3ob2o$803bobo2bo$806b3o$811bo5b2o$808b4o5b2o$808bo$809bo
$808b2o68$824bo511bo$822b3o509b3o$821bo511bo$820bobo509bobo$820bobo
509bobo$821bo511bo5$805b2o510b2o$805b2o510b2o4$825b2o510b2o$825bobo
509bobo$827bo511bo$818b2o7b2o501b2o7b2o$818b2o510b2o2$808bob2o508bob2o
$806b3ob2o506b3ob2o$805bo511bo$806b3ob2o506b3ob2o$808bobo509bobo$808bo
bo509bobo$809bo511bo6$818b2o510b2o$818b2o510b2o16$803bob2o508bob2o$
801b3ob2o506b3ob2o$800bo511bo$801b3ob2o506b3ob2o$803bobo2bo506bobo2bo$
806b3o509b3o$811bo5b2o504bo5b2o$808b4o5b2o501b4o5b2o$808bo511bo$809bo
511bo$808b2o510b2o132$888bo$886b3o$885bo$884bobo$884bobo$885bo5$869b2o
$869b2o4$889b2o$889bobo$891bo$882b2o7b2o$882b2o2$872bob2o$870b3ob2o$
869bo$870b3ob2o$872bobo$872bobo$873bo5$984bo$882b2o98b3o$882b2o97bo$
980bobo$980bobo$981bo5$965b2o$965b2o4$985b2o$985bobo$987bo$867bob2o
107b2o7b2o$865b3ob2o107b2o$864bo$865b3ob2o97bob2o$867bobo2bo93b3ob2o$
870b3o92bo$875bo5b2o83b3ob2o$872b4o5b2o85bobo$872bo95bobo$873bo95bo$
872b2o5$978b2o$978b2o16$963bob2o$961b3ob2o$960bo$961b3ob2o$963bobo2bo$
966b3o$971bo5b2o$968b4o5b2o$968bo$969bo$968b2o196$1112bo$1110b3o$1109b
o$1108bobo$1108bobo$1109bo5$1093b2o$1093b2o4$1113b2o$1113bobo$1115bo$
1106b2o7b2o$1106b2o2$1096bob2o$1094b3ob2o$1093bo$1094b3ob2o$1096bobo$
1096bobo$1097bo5$1208bo639bo$1106b2o98b3o637b3o$1106b2o97bo639bo$1204b
obo637bobo$1204bobo637bobo$1205bo639bo5$1189b2o638b2o$1189b2o638b2o4$
1209b2o638b2o$1209bobo637bobo$1211bo639bo$1091bob2o107b2o7b2o629b2o7b
2o$1089b3ob2o107b2o638b2o$1088bo$1089b3ob2o97bob2o636bob2o$1091bobo2bo
93b3ob2o634b3ob2o$1094b3o92bo639bo$1099bo5b2o83b3ob2o634b3ob2o$1096b4o
5b2o85bobo637bobo$1096bo95bobo637bobo$1097bo95bo639bo$1096b2o5$1202b2o
638b2o$1202b2o638b2o16$1187bob2o636bob2o$1185b3ob2o634b3ob2o$1184bo
639bo$1185b3ob2o634b3ob2o$1187bobo2bo634bobo2bo$1190b3o637b3o$1195bo5b
2o632bo5b2o$1192b4o5b2o629b4o5b2o$1192bo639bo$1193bo639bo$1192b2o638b
2o68$1208bo$1206b3o$1205bo$1204bobo$1204bobo$1205bo5$1189b2o$1189b2o4$
1209b2o$1209bobo$1211bo$1202b2o7b2o$1202b2o2$1192bob2o$1190b3ob2o$
1189bo$1190b3ob2o$1192bobo$1192bobo$1193bo6$1202b2o$1202b2o16$1187bob
2o$1185b3ob2o$1184bo$1185b3ob2o$1187bobo2bo$1190b3o$1195bo5b2o$1192b4o
5b2o$1192bo$1193bo$1192b2o4$1272bo$1270b3o$1269bo$1268bobo$1268bobo$
1269bo5$1253b2o$1253b2o4$1273b2o$1273bobo$1275bo$1266b2o7b2o$1266b2o2$
1256bob2o$1254b3ob2o$1253bo$1254b3ob2o$1256bobo$1256bobo$1257bo6$1266b
2o$1266b2o16$1251bob2o$1249b3ob2o$1248bo$1249b3ob2o$1251bobo2bo$1254b
3o$1259bo5b2o$1256b4o5b2o$1256bo$1257bo$1256b2o36$1304bo$1302b3o$1301b
o$1300bobo$1300bobo$1301bo5$1285b2o$1285b2o4$1305b2o$1305bobo$1307bo$
1298b2o7b2o$1298b2o2$1288bob2o$1286b3ob2o$1285bo$1286b3ob2o$1288bobo$
1288bobo$1289bo5$1400bo$1298b2o98b3o$1298b2o97bo$1396bobo$1396bobo$
1397bo5$1381b2o$1381b2o4$1401b2o$1401bobo$1403bo$1283bob2o107b2o7b2o$
1281b3ob2o107b2o$1280bo$1281b3ob2o97bob2o$1283bobo2bo93b3ob2o$1286b3o
92bo$1291bo5b2o83b3ob2o$1288b4o5b2o85bobo$1288bo95bobo$1289bo95bo$
1288b2o5$1394b2o$1394b2o16$1379bob2o$1377b3ob2o$1376bo$1377b3ob2o$
1379bobo2bo$1382b3o$1387bo5b2o$1384b4o5b2o$1384bo$1385bo$1384b2o100$
1496bo$1494b3o$1493bo$1492bobo$1492bobo$1493bo5$1477b2o$1477b2o4$1497b
2o$1497bobo$1499bo$1490b2o7b2o$1490b2o2$1480bob2o$1478b3ob2o$1477bo$
1478b3ob2o$1480bobo$1480bobo$1481bo6$1490b2o$1490b2o16$1475bob2o$1473b
3ob2o$1472bo$1473b3ob2o$1475bobo2bo$1478b3o$1483bo5b2o$1480b4o5b2o$
1480bo$1481bo$1480b2o36$1528bo$1526b3o$1525bo$1524bobo$1524bobo$1525bo
5$1509b2o$1509b2o4$1529b2o$1529bobo$1531bo$1522b2o7b2o$1522b2o2$1512bo
b2o$1510b3ob2o$1509bo$1510b3ob2o$1512bobo$1512bobo$1513bo6$1522b2o$
1522b2o16$1507bob2o$1505b3ob2o$1504bo$1505b3ob2o$1507bobo2bo$1510b3o$
1515bo5b2o$1512b4o5b2o$1512bo$1513bo$1512b2o54$2564bo$2562b3o$2561bo$
2561b2o7$2551b2o$2550bobo5b2o$2550bo7b2o$2549b2o2$2563bo$2516bo42b2obo
bo$2514b3o41bobobobo$2513bo41bo2bobobobob2o$2513b2o40b4ob2o2bo2bo$
2559bo4b2o$2557bobo$2557b2o4$2503b2o$2502bobo5b2o$2502bo7b2o$2501b2o2$
2515bo$2468bo42b2obobo$2466b3o41bobobobo$2465bo41bo2bobobobob2o$2465b
2o40b4ob2o2bo2bo$2511bo4b2o$2509bobo$2509b2o4$2455b2o$2454bobo5b2o$
2454bo7b2o$2453b2o$1624bo$1622b3o842bo$1621bo798bo42b2obobo$1620bobo
795b3o41bobobobo$1620bobo794bo41bo2bobobobob2o$1621bo795b2o40b4ob2o2bo
2bo$2463bo4b2o$2461bobo$2461b2o2$1605b2o$1605b2o$2407b2o$2406bobo5b2o$
2406bo7b2o$1625b2o778b2o$1625bobo$1627bo791bo$1618b2o7b2o743bo42b2obob
o$1618b2o750b3o41bobobobo$2369bo41bo2bobobobob2o$1608bob2o757b2o40b4ob
2o2bo2bo$1606b3ob2o803bo4b2o$1605bo807bobo$1606b3ob2o801b2o$1608bobo$
1608bobo$1609bo$2359b2o$2358bobo5b2o$2358bo7b2o$2357b2o2$1618b2o751bo$
1618b2o704bo42b2obobo$2322b3o41bobobobo$2321bo41bo2bobobobob2o$2321b2o
40b4ob2o2bo2bo$2367bo4b2o$2365bobo$2365b2o4$2311b2o$2310bobo5b2o$2310b
o7b2o$2309b2o2$2323bo$1603bob2o669bo42b2obobo$1601b3ob2o667b3o41bobobo
bo$1600bo672bo41bo2bobobobob2o$1601b3ob2o666b2o40b4ob2o2bo2bo$1603bobo
2bo710bo4b2o$1606b3o708bobo$1611bo5b2o698b2o$1608b4o5b2o$1608bo$1609bo
$1608b2o653b2o$2262bobo5b2o$2262bo7b2o$2261b2o$1688bo$1686b3o586bo$
1685bo542bo42b2obobo$1684bobo539b3o41bobobobo$1684bobo538bo41bo2bobobo
bob2o$1685bo539b2o40b4ob2o2bo2bo$2271bo4b2o$2269bobo$2269b2o2$1669b2o$
1669b2o$2215b2o$2214bobo5b2o$2214bo7b2o$1689b2o522b2o$1689bobo$1691bo
535bo$1682b2o7b2o487bo42b2obobo$1682b2o494b3o41bobobobo$2177bo41bo2bob
obobob2o$1672bob2o501b2o40b4ob2o2bo2bo$1670b3ob2o547bo4b2o$1669bo551bo
bo$1670b3ob2o545b2o$1672bobo$1672bobo$1673bo$2167b2o$2166bobo5b2o$
2166bo7b2o$2165b2o2$1682b2o495bo$1682b2o448bo42b2obobo$2130b3o41bobobo
bo$2129bo41bo2bobobobob2o$2129b2o40b4ob2o2bo2bo$2175bo4b2o$2173bobo$
2173b2o4$2119b2o$2118bobo5b2o$2118bo7b2o$2117b2o2$2131bo$1667bob2o413b
o42b2obobo$1665b3ob2o411b3o41bobobobo$1664bo416bo41bo2bobobobob2o$
1665b3ob2o410b2o40b4ob2o2bo2bo$1667bobo2bo454bo4b2o$1670b3o452bobo$
1675bo5b2o442b2o$1672b4o5b2o$1672bo$1673bo$1672b2o397b2o$2070bobo5b2o$
2070bo7b2o$2069b2o2$2083bo$2036bo42b2obobo$2034b3o41bobobobo$2033bo41b
o2bobobobob2o$2033b2o40b4ob2o2bo2bo$2079bo4b2o$2077bobo$2077b2o4$2023b
2o$2022bobo5b2o$2022bo7b2o$2021b2o2$2035bo$1988bo42b2obobo$1986b3o41bo
bobobo$1985bo41bo2bobobobob2o$1985b2o40b4ob2o2bo2bo$2031bo4b2o$2029bob
o$2029b2o4$1975b2o$1974bobo5b2o$1974bo7b2o$1973b2o2$1987bo$1940bo42b2o
bobo$1938b3o41bobobobo$1937bo41bo2bobobobob2o$1937b2o40b4ob2o2bo2bo$
1983bo4b2o$1981bobo$1981b2o4$1927b2o$1926bobo5b2o$1926bo7b2o$1925b2o2$
1939bo$1892bo42b2obobo$1890b3o41bobobobo$1889bo41bo2bobobobob2o$1889b
2o40b4ob2o2bo2bo$1935bo4b2o$1933bobo$1933b2o4$1879b2o$1878bobo5b2o$
1878bo7b2o$1877b2o2$1891bo$1844bo42b2obobo$1842b3o41bobobobo$1841bo41b
o2bobobobob2o$1841b2o40b4ob2o2bo2bo$1887bo4b2o$1885bobo$1885b2o4$1831b
2o$1830bobo5b2o$1830bo7b2o$1829b2o2$1843bo$1796bo42b2obobo$1794b3o41bo
bobobo$1793bo41bo2bobobobob2o$1793b2o40b4ob2o2bo2bo$1839bo4b2o$1837bob
o$1837b2o4$1783b2o$1782bobo5b2o$1782bo7b2o$1781b2o2$1795bo$1791b2obobo
$1790bobobobo$1787bo2bobobobob2o$1787b4ob2o2bo2bo$1791bo4b2o$1789bobo$
1789b2o!
When I replaced the code with the binary adder:

Code: Select all

# APGsembly code emulator, version 0.5 (beta)
#   Version 0.314159+: remove phi calculator and other test programs, activate pi calculator
#   Version 0.5: add support for "ZZ" and "*" preprocessor formats, mostly copied from APGompiler.py

import golly as g
from glife.text import make_text
import types

APGsembly = """# Time to support comments and blank lines in APGsembly
# A 'ZZ' means only Z input is possible for this state
#Binary adder in SQ 
INITIAL; *; A0; NOP

A0; *; A1; READ SQ
A1; Z; B0; SET SQ, DEC SQY
A1; NZ; A0; INC SQY, NOP

B0; Z; A0; NOP
B0; NZ; B0; DEC SQY

program = {}
registers = {}
memory = {}
progname = "Osqrtlogt"

mullookup = {"MUL0 00000":["Z", "00000"],"MUL1 00000":["Z", "00101"],"MUL0 00001":["NZ", "00000"],"MUL1 00001":["NZ", "00101"],
	     "MUL0 00010":["Z", "00001"],"MUL1 00010":["Z", "00110"],"MUL0 00011":["NZ", "00001"],"MUL1 00011":["NZ", "00110"],
	     "MUL0 00100":["Z", "00010"],"MUL1 00100":["Z", "00111"],"MUL0 00101":["NZ", "00010"],"MUL1 00101":["NZ", "00111"],
	     "MUL0 00110":["Z", "00011"],"MUL1 00110":["Z", "01000"],"MUL0 00111":["NZ", "00011"],"MUL1 00111":["NZ", "01000"],
	     "MUL0 01000":["Z", "00100"],"MUL1 01000":["Z", "01001"],"MUL0 01001":["NZ", "00100"],"MUL1 01001":["NZ", "01001"],
	     "MUL0 01010":["Z", "00101"],"MUL1 01010":["Z", "01010"],"MUL0 01011":["NZ", "00101"],"MUL1 01011":["NZ", "01010"],
	     "MUL0 01100":["Z", "00110"],"MUL1 01100":["Z", "01011"],"MUL0 01101":["NZ", "00110"],"MUL1 01101":["NZ", "01011"],
	     "MUL0 01110":["Z", "00111"],"MUL1 01110":["Z", "01100"],"MUL0 01111":["NZ", "00111"],"MUL1 01111":["NZ", "01100"],
	     "MUL0 10000":["Z", "01000"],"MUL1 10000":["Z", "01101"],"MUL0 10001":["NZ", "01000"],"MUL1 10001":["NZ", "01101"],
	     "MUL0 10010":["Z", "01001"],"MUL1 10010":["Z", "01110"],"MUL0 10011":["NZ", "01001"],"MUL1 10011":["NZ", "01110"],
	     "MUL0 10100":["Z", "01010"],"MUL1 10100":["Z", "01111"],"MUL0 10101":["NZ", "01010"],"MUL1 10101":["NZ", "01111"],
	     "MUL0 10110":["Z", "01011"],"MUL1 10110":["Z", "00000"],"MUL0 10111":["NZ", "01011"],"MUL1 10111":["NZ", "00000"],
	     "MUL0 11000":["Z", "01100"],"MUL1 11000":["Z", "00001"],"MUL0 11001":["NZ", "01100"],"MUL1 11001":["NZ", "00001"],
	     "MUL0 11010":["Z", "01101"],"MUL1 11010":["Z", "00010"],"MUL0 11011":["NZ", "01101"],"MUL1 11011":["NZ", "00010"],
	     "MUL0 11100":["Z", "01110"],"MUL1 11100":["Z", "00011"],"MUL0 11101":["NZ", "01110"],"MUL1 11101":["NZ", "00011"],
	     "MUL0 11110":["Z", "01111"],"MUL1 11110":["Z", "00100"],"MUL0 11111":["NZ", "01111"],"MUL1 11111":["NZ", "00100"]}

addlookup = {"000 bit0 A1":["NONE","010 bit1"],"000 bit0 B1":["NZ","000 bit0"],"000 bit0 B0":["Z","000 bit0"],
	     "000 bit1 A1":["NONE","010 bit0"],"000 bit1 B1":["Z","000 bit0"],"000 bit1 B0":["NZ","000 bit0"],
	     "001 bit0 A1":["NONE","011 bit1"],"001 bit0 B1":["NZ","000 bit0"],"001 bit0 B0":["Z","000 bit0"],
	     "001 bit1 A1":["NONE","011 bit0"],"001 bit1 B1":["Z","000 bit0"],"001 bit1 B0":["NZ","000 bit0"],
	     "010 bit0 A1":["NONE","000 bit1"],"010 bit0 B1":["NZ","100 bit1"],"010 bit0 B0":["Z","000 bit0"],
	     "010 bit1 A1":["NONE","000 bit0"],"010 bit1 B1":["Z","100 bit1"],"010 bit1 B0":["NZ","000 bit0"],
	     "011 bit0 A1":["NONE","001 bit1"],"011 bit0 B1":["NZ","000 bit0"],"011 bit0 B0":["Z","100 bit1"],
	     "011 bit1 A1":["NONE","001 bit0"],"011 bit1 B1":["Z","000 bit0"],"011 bit1 B0":["NZ","100 bit1"],
	     "100 bit0 A1":["NONE","110 bit1"],"100 bit0 B1":["NZ","100 bit1"],"100 bit0 B0":["Z","000 bit0"],
	     "100 bit1 A1":["NONE","110 bit0"],"100 bit1 B1":["Z","100 bit1"],"100 bit1 B0":["NZ","000 bit0"],
	     "101 bit0 A1":["NONE","111 bit1"],"101 bit0 B1":["NZ","000 bit0"],"101 bit0 B0":["Z","100 bit1"],
	     "101 bit1 A1":["NONE","111 bit0"],"101 bit1 B1":["Z","000 bit0"],"101 bit1 B0":["NZ","100 bit1"],
	     "110 bit0 A1":["NONE","100 bit1"],"110 bit0 B1":["NZ","100 bit1"],"110 bit0 B0":["Z","100 bit1"],
	     "110 bit1 A1":["NONE","100 bit0"],"110 bit1 B1":["Z","100 bit1"],"110 bit1 B0":["NZ","100 bit1"],
	     "111 bit0 A1":["NONE","101 bit1"],"111 bit0 B1":["NZ","100 bit1"],"111 bit0 B0":["Z","100 bit1"],
	     "111 bit1 A1":["NONE","101 bit0"],"111 bit1 B1":["Z","100 bit1"],"111 bit1 B0":["NZ","100 bit1"]}

sublookup = {"000 stopper0 bit0 A1":["NONE","000 stopper1 bit1"],"000 stopper0 bit0 B0":["Z","000 stopper0 bit0"],
	     "000 stopper0 bit0 B1":["NZ","100 stopper0 bit1"],"000 stopper0 bit1 A1":["NONE","000 stopper1 bit0"],
	     "000 stopper0 bit1 B0":["NZ","000 stopper0 bit0"],"000 stopper0 bit1 B1":["Z","100 stopper0 bit1"],
	     "000 stopper1 bit0 A1":["NONE","FAILURE"],"000 stopper1 bit0 B0":["Z","000 stopper0 bit0"],
	     "000 stopper1 bit0 B1":["NZ","000 stopper0 bit0"],"000 stopper1 bit1 A1":["NONE","FAILURE"],
	     "000 stopper1 bit1 B0":["NZ","000 stopper0 bit0"],"000 stopper1 bit1 B1":["Z","000 stopper0 bit0"],
	     "001 stopper0 bit0 A1":["NONE","001 stopper1 bit1"],"001 stopper0 bit0 B0":["Z","100 stopper0 bit1"],
	     "001 stopper0 bit0 B1":["NZ","000 stopper0 bit0"],"001 stopper0 bit1 A1":["NONE","001 stopper1 bit0"],
	     "001 stopper0 bit1 B0":["NZ","100 stopper0 bit1"],"001 stopper0 bit1 B1":["Z","000 stopper0 bit0"],
	     "001 stopper1 bit0 A1":["NONE","FAILURE"],"001 stopper1 bit0 B0":["Z","000 stopper0 bit0"],
	     "001 stopper1 bit0 B1":["NZ","000 stopper0 bit0"],"001 stopper1 bit1 A1":["NONE","FAILURE"],
	     "001 stopper1 bit1 B0":["NZ","000 stopper0 bit0"],"001 stopper1 bit1 B1":["Z","000 stopper0 bit0"],
	     "010 stopper0 bit0 A1":["NONE","010 stopper1 bit1"],"010 stopper0 bit0 B0":["Z","000 stopper0 bit0"],
	     "010 stopper0 bit0 B1":["NZ","000 stopper0 bit0"],"010 stopper0 bit1 A1":["NONE","010 stopper1 bit0"],
	     "010 stopper0 bit1 B0":["NZ","000 stopper0 bit0"],"010 stopper0 bit1 B1":["Z","000 stopper0 bit0"],
	     "010 stopper1 bit0 A1":["NONE","FAILURE"],"010 stopper1 bit0 B0":["Z","000 stopper0 bit0"],
	     "010 stopper1 bit0 B1":["NZ","100 stopper0 bit1"],"010 stopper1 bit1 A1":["NONE","FAILURE"],
	     "010 stopper1 bit1 B0":["NZ","000 stopper0 bit0"],"010 stopper1 bit1 B1":["Z","100 stopper0 bit1"],
	     "011 stopper0 bit0 A1":["NONE","011 stopper1 bit1"],"011 stopper0 bit0 B0":["Z","000 stopper0 bit0"],
	     "011 stopper0 bit0 B1":["NZ","000 stopper0 bit0"],"011 stopper0 bit1 A1":["NONE","011 stopper1 bit0"],
	     "011 stopper0 bit1 B0":["NZ","000 stopper0 bit0"],"011 stopper0 bit1 B1":["Z","000 stopper0 bit0"],
	     "011 stopper1 bit0 A1":["NONE","FAILURE"],"011 stopper1 bit0 B0":["Z","100 stopper0 bit1"],
	     "011 stopper1 bit0 B1":["NZ","000 stopper0 bit0"],"011 stopper1 bit1 A1":["NONE","FAILURE"],
	     "011 stopper1 bit1 B0":["NZ","100 stopper0 bit1"],"011 stopper1 bit1 B1":["Z","000 stopper0 bit0"],
	     "100 stopper0 bit0 A1":["NONE","100 stopper1 bit1"],"100 stopper0 bit0 B0":["Z","100 stopper0 bit1"],
	     "100 stopper0 bit0 B1":["NZ","100 stopper0 bit1"],"100 stopper0 bit1 A1":["NONE","100 stopper1 bit0"],
	     "100 stopper0 bit1 B0":["NZ","100 stopper0 bit1"],"100 stopper0 bit1 B1":["Z","100 stopper0 bit1"],
	     "100 stopper1 bit0 A1":["NONE","FAILURE"],"100 stopper1 bit0 B0":["Z","000 stopper0 bit0"],
	     "100 stopper1 bit0 B1":["NZ","100 stopper0 bit1"],"100 stopper1 bit1 A1":["NONE","FAILURE"],
	     "100 stopper1 bit1 B0":["NZ","000 stopper0 bit0"],"100 stopper1 bit1 B1":["Z","100 stopper0 bit1"],
	     "101 stopper0 bit0 A1":["NONE","101 stopper1 bit1"],"101 stopper0 bit0 B0":["Z","100 stopper0 bit1"],
             "101 stopper0 bit0 B1":["NZ","100 stopper0 bit1"],"101 stopper0 bit1 A1":["NONE","101 stopper1 bit0"],
	     "101 stopper0 bit1 B0":["NZ","100 stopper0 bit1"],"101 stopper0 bit1 B1":["Z","100 stopper0 bit1"],
	     "101 stopper1 bit0 A1":["NONE","FAILURE"],"101 stopper1 bit0 B0":["Z","100 stopper0 bit1"],
	     "101 stopper1 bit0 B1":["NZ","000 stopper0 bit0"],"101 stopper1 bit1 A1":["NONE","FAILURE"],
	     "101 stopper1 bit1 B0":["NZ","100 stopper0 bit1"],"101 stopper1 bit1 B1":["Z","000 stopper0 bit0"],
	     "110 stopper0 bit0 A1":["NONE","110 stopper1 bit1"],"110 stopper0 bit0 B0":["Z","000 stopper0 bit0"],
	     "110 stopper0 bit0 B1":["NZ","100 stopper0 bit1"],"110 stopper0 bit1 A1":["NONE","110 stopper1 bit0"],
	     "110 stopper0 bit1 B0":["NZ","000 stopper0 bit0"],"110 stopper0 bit1 B1":["Z","100 stopper0 bit1"],
	     "110 stopper1 bit0 A1":["NONE","FAILURE"],"110 stopper1 bit0 B0":["Z","100 stopper0 bit1"],
	     "110 stopper1 bit0 B1":["NZ","100 stopper0 bit1"],"110 stopper1 bit1 A1":["NONE","FAILURE"],
	     "110 stopper1 bit1 B0":["NZ","100 stopper0 bit1"],"110 stopper1 bit1 B1":["Z","100 stopper0 bit1"],
	     "111 stopper0 bit0 A1":["NONE","111 stopper1 bit1"],"111 stopper0 bit0 B0":["Z","100 stopper0 bit1"],
	     "111 stopper0 bit0 B1":["NZ","000 stopper0 bit0"],"111 stopper0 bit1 A1":["NONE","111 stopper1 bit0"],
	     "111 stopper0 bit1 B0":["NZ","100 stopper0 bit1"],"111 stopper0 bit1 B1":["Z","000 stopper0 bit0"],
	     "111 stopper1 bit0 A1":["NONE","FAILURE"],"111 stopper1 bit0 B0":["Z","100 stopper0 bit1"],
	     "111 stopper1 bit0 B1":["NZ","100 stopper0 bit1"],"111 stopper1 bit1 A1":["NONE","FAILURE"],
             "111 stopper1 bit1 B0":["NZ","100 stopper0 bit1"],"111 stopper1 bit1 B1":["Z","100 stopper0 bit1"]}


proglines = (APGsembly + "\nEND OF PROGRAM; Z\nEND OF PROGRAM; NZ").split('\n')

# pre-processing to remove blank lines and comments, and deal with * / ZZ format
progonly = []
NZflag = 0
for line in proglines:
  if line.strip()!="" and line.strip()[:1]!="#":
    if NZflag == 0:
      Zline = line
      NZflag = 1
    else:
      NZflag = 0
      if line == "END OF PROGRAM; NZ":
        break
      
      # process the next pair of lines, make sure it's a matched Z + NZ set
      Zparts = Zline.split("; ")
      NZparts = line.split("; ")
      if Zparts[0]==NZparts[0]:
        if Zparts[1]=="Z" and NZparts[1]=="NZ":
          progonly += [Zline,line]
        else:
          g.note("Pre-processing failed on lines:\n" + Zline + "\n" + line + "\nNeed Z line followed by NZ line, or * / ZZ syntax.")
          g.exit()
      else:
        if Zparts[1]=="*":
          progonly += [Zline.replace("*","Z"),Zline.replace("*","NZ")]
          Zline = line
          NZflag = 1
        elif Zparts[1]=="ZZ":
          # in the line below, there's no .replace("; ZZ;","; Z;") in the compiler version,
          #    because we need to know whether to use ZNZ or onlyZ component...
          progonly += [Zline.replace("; ZZ;","; Z;"), Zparts[0]+"; NZ"]  
          Zline = line
          NZflag = 1
        else:
          g.note("Pre-processing failed on lines:\n" + Zline + "\n" + line + "\nNeed a Z and NZ line for each state, or * / ZZ syntax.")
          g.exit()

g.new(progname)
g.setcell(0,0,1)
g.fit()
g.setcell(0,0,0)
g.update()
runflag = 0

def check_keyboard():
  global runflag
  while 1:
    evt = g.getevent()
    if evt !="":
      g.show(state + " -- " + nextstate + " :: " + instr + "; regs=" + str(registers)  + " -- 'r' to toggle run mode, any key to step")
    if evt == "key q none":
      g.setclipstr(s)
      g.exit()
    if evt == "key r none":
      runflag = 1-runflag
    elif evt=="key g none":
      break
    else:
      g.doevent(evt)
    if runflag == 1:
      break

# every state has a Z and NZ jump instruction to following states,
#   so the order of the program lines doesn't really matter.
#   Turn the program into a dictionary.
for item in progonly:
   fourparts = item.replace(", ",",").split("; ") 
   if len(fourparts) != 4:
      if len(fourparts) == 2:
         # this is probably an auto-generated line for a state+Z/NZ combination that will never be reached
         # ... so we'll try including it with empty jump and action values, and just see if it works.
         fourparts += ["none",""]
      else:
         g.note("Failed to parse: " + item)
         g.exit()
   label, bitval, nextstate, instr = fourparts
   program[label+";"+bitval]=[nextstate,instr]

state, nextstate, nextoutput, outputtext = "START","INITIAL","Z",""

g.show(state + " -- " + nextstate + " :: " + instr + "; regs=" + str(registers)  + " -- 'r' to toggle run mode, any key to step")

check_keyboard()

while 1:

   if nextoutput == "":
      g.show(state + " -- " + nextstate + " :: " + instr + "; regs=" + str(registers)  + "; mem=" + str(memory))
      g.note("Program reached halt state (because no bit value was returned by any instruction).")
      g.setclipstr(s)
      g.exit()
   
   state = nextstate + ";" + nextoutput
   # get info from program dictionary, move to next state
   nextstate, instr = program[state]

   # process instructions for current state
   # -- there may be just one instruction,
   #    or several comma-separated instructions
   nextoutput = ""  # if some instruction doesn't set this variable, the program will halt
   for i in instr.split(","):
     # allow stepping or full-speed run from keyboard (toggle "r")
     check_keyboard()

     if i == "NOP":
       nextoutput = "Z"

     elif i == "READ SQ":
       if "SQX" not in registers: registers["SQX"], registers["SQY"]=0,0  # initialize if necessary
       coord = str(registers["SQX"]) +","+str(registers["SQY"])
       if coord not in memory:
         memory[coord]=0
       if memory[coord]==0:
         nextoutput = "Z"
       else:
         nextoutput = "NZ"
         memory[coord] = 0  # this is a destructive read operation
         g.setcell(registers["SQX"]-registers["SQY"],-registers["SQX"]-registers["SQY"],memory[coord])
         g.update()

     elif i == "SET SQ":
       if coord not in memory:
         memory[coord]=0
       if memory[coord]==0:
         memory[coord] = 1
         g.setcell(registers["SQX"]-registers["SQY"],-registers["SQX"]-registers["SQY"],memory[coord])
         g.update()
       else:
         g.note("PROGRAM ERROR:\nTried to set memory coordinate " + coord + "to 1,\nwhen it was already 1.")
         g.exit()

     elif i[:4]=="INC ":
       reg = i.split(" ")[1]
       if reg not in registers:
         if reg[:1]=="T": # binary register
           registers[reg]=[0,"0"]
         else:
           registers[reg]=0 # simple register
       if isinstance(registers[reg], types.ListType): # binary register
         ptr,bits = registers[reg]
         if ptr == len(bits)-1:
           bits+="0"         # the mechanism automatically adds a zero when INCing past current end of tape
           nextoutput = "Z"  # ... and it returns a zero output in that case
         else:
           nextoutput = "NZ" # if it's not creating a new bit, it returns an NZ output.  TODO: what does the program use this for?
         registers[reg] = [ptr+1,bits]
       else:
         registers[reg] += 1  # simple register

     elif i[:5]=="TDEC " or i[:6]=="DEC SQ": # simple register
       reg = i.split(" ")[1]
       if reg not in registers:
         registers[reg]=0
       if registers[reg] == 0:
         nextoutput = "Z" # don't update register, it's already zero
       else:
         registers[reg] -= 1
         nextoutput = "NZ"

     elif i[:4]=="DEC ": # binary register
       reg = i.split(" ")[1]
       ptr,bits = registers[reg]
       if ptr == 0:
         nextoutput = "Z" # don't update register, it's already zero
       else:
         registers[reg] = [ptr-1,bits]
         nextoutput = "NZ"    

     elif i=="HALT":
       g.note("Program reached halt state.")
       g.setclipstr(s)
       g.exit()

     elif i[:4]=="MUL ":
       bit = str(i[4:])
       if "MUL" not in registers:
         registers["MUL"]="00000"
       nextoutput, registers["MUL"] = mullookup["MUL" + bit + " " + registers["MUL"]]

     elif i[:7] == "OUTPUT ":
       outputtext += i[7:]
       outpat = make_text(outputtext)
       g.putcells(outpat, 0, 10)
       g.update()

     elif i[:4]=="SUB ":
       if "SUB" not in registers:
         registers["SUB"]="000 stopper0 bit0"
       whichinput = i[4:]
       out, registers["SUB"] = sublookup[registers["SUB"] + " " + whichinput]
       if registers["SUB"] == "FAILURE":
         g.note("Program crashed at line '" + i + "'.  SUB A1 must have been run twice (?).")
         g.exit()
       if out != "NONE":
         nextoutput = out

     elif i[:4]=="ADD ":
       if "ADD" not in registers:
         registers["ADD"]="000 bit0"
       whichinput = i[4:]
       temp = registers["ADD"] + " " + whichinput
       out, registers["ADD"] = addlookup[temp]
       if out != "NONE":
         nextoutput = out

     elif i[:5]=="READ ":
       binregname = i[5:] # TODO: maybe be consistent and use .split()?
       if binregname not in registers:
         registers[binregname]=[0,"0"]
       ptr, bits = registers[binregname]
       if bits[ptr]=="x":
         g.note("Program crashed on instruction '" + i + "':\n attempt to read an empty position in a binary register.")
         g.exit()
       elif bits[ptr]=="0":
         nextoutput = "Z"
       elif bits[ptr]=="1":
         nextoutput = "NZ"
       else:
         g.note("Emulator error. Found value '" + bits[ptr] + "' on READ, in " + binregname + " bitstring -- " + str(registers[binregname]) + ".")
         g.exit()
       registers[binregname] = [ptr, bits[:ptr]+"x"+bits[ptr+1:]]

     elif i[:4]=="SET ":
       binregname = i[4:]
       if binregname not in registers:
         registers[binregname]=[0,"0"]
       ptr, bits = registers[binregname]
       if bits[ptr]!="x":
         g.note("Crash. Found value '" + bits[ptr] + "' on SET, in " + binregname + " bitstring -- " + str(registers[binregname]) + ".")
         g.exit()
       registers[binregname] = [ptr, bits[:ptr]+"1"+bits[ptr+1:]]

     elif i[:6]=="RESET ":
       binregname = i[6:]
       if binregname not in registers:
         registers[binregname]=[0,"0"]
       else:
         ptr, bits = registers[binregname]
       if bits[ptr]!="x":
         g.note("Crash. Found value '" + bits[ptr] + "' on READ, in " + binregname + " bitstring -- " + str(registers[binregname]) + ".")
         g.exit()
       registers[binregname] = [ptr, bits[:ptr]+"0"+bits[ptr+1:]]

     else:
       g.note("Unknown instruction: " + instr + " -- ~" + i + "~")
       g.exit()
This

Code: Select all

[Window Title]
Python error:

[Content]
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\frane\AppData\Roaming\Golly\golly_clip.py", line 358
    g.exit()
           ^
SyntaxError: EOF while scanning triple-quoted string literal


[OK]
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » November 22nd, 2019, 5:07 pm

gameoflifemaniac wrote:
November 22nd, 2019, 4:25 pm
Umm, this is what was generated by the compiler, but what is this...
That's just the program part of the full pattern. Open the GPC-2^24.mc pattern just before running the script, and it will put that subpattern in the correct place relative to the GPC.
gameoflifemaniac wrote:
November 22nd, 2019, 4:25 pm
When I replaced the code with the binary adder, ...
This
...
SyntaxError: EOF while scanning triple-quoted string literal
That's the error message you get when you have an open set of triple quotes (""") marking multi-line text like one of these APGsembly programs -- but no closing set of triple quotes. You deleted one set of triple quotes. Put them back, and you should be all set.

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Smaller Pi Calculator Challenge

Post by gameoflifemaniac » November 22nd, 2019, 5:28 pm

Code: Select all

# APGsembly code emulator, version 0.5 (beta)
#   Version 0.314159+: remove phi calculator and other test programs, activate pi calculator
#   Version 0.5: add support for "ZZ" and "*" preprocessor formats, mostly copied from APGompiler.py

import golly as g
from glife.text import make_text
import types

APGsembly = """# Time to support comments and blank lines in APGsembly
# A 'ZZ' means only Z input is possible for this state
#Binary adder in SQ 
INITIAL; *; A0; NOP

A0; *; A1; READ SQ
A1; Z; B0; SET SQ, DEC SQY
A1; NZ; A0; INC SQY, NOP

B0; Z; A0; NOP
B0; NZ; B0; DEC SQY"""

program = {}
registers = {}
memory = {}
progname = "binary adder"

mullookup = {"MUL0 00000":["Z", "00000"],"MUL1 00000":["Z", "00101"],"MUL0 00001":["NZ", "00000"],"MUL1 00001":["NZ", "00101"],
	     "MUL0 00010":["Z", "00001"],"MUL1 00010":["Z", "00110"],"MUL0 00011":["NZ", "00001"],"MUL1 00011":["NZ", "00110"],
	     "MUL0 00100":["Z", "00010"],"MUL1 00100":["Z", "00111"],"MUL0 00101":["NZ", "00010"],"MUL1 00101":["NZ", "00111"],
	     "MUL0 00110":["Z", "00011"],"MUL1 00110":["Z", "01000"],"MUL0 00111":["NZ", "00011"],"MUL1 00111":["NZ", "01000"],
	     "MUL0 01000":["Z", "00100"],"MUL1 01000":["Z", "01001"],"MUL0 01001":["NZ", "00100"],"MUL1 01001":["NZ", "01001"],
	     "MUL0 01010":["Z", "00101"],"MUL1 01010":["Z", "01010"],"MUL0 01011":["NZ", "00101"],"MUL1 01011":["NZ", "01010"],
	     "MUL0 01100":["Z", "00110"],"MUL1 01100":["Z", "01011"],"MUL0 01101":["NZ", "00110"],"MUL1 01101":["NZ", "01011"],
	     "MUL0 01110":["Z", "00111"],"MUL1 01110":["Z", "01100"],"MUL0 01111":["NZ", "00111"],"MUL1 01111":["NZ", "01100"],
	     "MUL0 10000":["Z", "01000"],"MUL1 10000":["Z", "01101"],"MUL0 10001":["NZ", "01000"],"MUL1 10001":["NZ", "01101"],
	     "MUL0 10010":["Z", "01001"],"MUL1 10010":["Z", "01110"],"MUL0 10011":["NZ", "01001"],"MUL1 10011":["NZ", "01110"],
	     "MUL0 10100":["Z", "01010"],"MUL1 10100":["Z", "01111"],"MUL0 10101":["NZ", "01010"],"MUL1 10101":["NZ", "01111"],
	     "MUL0 10110":["Z", "01011"],"MUL1 10110":["Z", "00000"],"MUL0 10111":["NZ", "01011"],"MUL1 10111":["NZ", "00000"],
	     "MUL0 11000":["Z", "01100"],"MUL1 11000":["Z", "00001"],"MUL0 11001":["NZ", "01100"],"MUL1 11001":["NZ", "00001"],
	     "MUL0 11010":["Z", "01101"],"MUL1 11010":["Z", "00010"],"MUL0 11011":["NZ", "01101"],"MUL1 11011":["NZ", "00010"],
	     "MUL0 11100":["Z", "01110"],"MUL1 11100":["Z", "00011"],"MUL0 11101":["NZ", "01110"],"MUL1 11101":["NZ", "00011"],
	     "MUL0 11110":["Z", "01111"],"MUL1 11110":["Z", "00100"],"MUL0 11111":["NZ", "01111"],"MUL1 11111":["NZ", "00100"]}

addlookup = {"000 bit0 A1":["NONE","010 bit1"],"000 bit0 B1":["NZ","000 bit0"],"000 bit0 B0":["Z","000 bit0"],
	     "000 bit1 A1":["NONE","010 bit0"],"000 bit1 B1":["Z","000 bit0"],"000 bit1 B0":["NZ","000 bit0"],
	     "001 bit0 A1":["NONE","011 bit1"],"001 bit0 B1":["NZ","000 bit0"],"001 bit0 B0":["Z","000 bit0"],
	     "001 bit1 A1":["NONE","011 bit0"],"001 bit1 B1":["Z","000 bit0"],"001 bit1 B0":["NZ","000 bit0"],
	     "010 bit0 A1":["NONE","000 bit1"],"010 bit0 B1":["NZ","100 bit1"],"010 bit0 B0":["Z","000 bit0"],
	     "010 bit1 A1":["NONE","000 bit0"],"010 bit1 B1":["Z","100 bit1"],"010 bit1 B0":["NZ","000 bit0"],
	     "011 bit0 A1":["NONE","001 bit1"],"011 bit0 B1":["NZ","000 bit0"],"011 bit0 B0":["Z","100 bit1"],
	     "011 bit1 A1":["NONE","001 bit0"],"011 bit1 B1":["Z","000 bit0"],"011 bit1 B0":["NZ","100 bit1"],
	     "100 bit0 A1":["NONE","110 bit1"],"100 bit0 B1":["NZ","100 bit1"],"100 bit0 B0":["Z","000 bit0"],
	     "100 bit1 A1":["NONE","110 bit0"],"100 bit1 B1":["Z","100 bit1"],"100 bit1 B0":["NZ","000 bit0"],
	     "101 bit0 A1":["NONE","111 bit1"],"101 bit0 B1":["NZ","000 bit0"],"101 bit0 B0":["Z","100 bit1"],
	     "101 bit1 A1":["NONE","111 bit0"],"101 bit1 B1":["Z","000 bit0"],"101 bit1 B0":["NZ","100 bit1"],
	     "110 bit0 A1":["NONE","100 bit1"],"110 bit0 B1":["NZ","100 bit1"],"110 bit0 B0":["Z","100 bit1"],
	     "110 bit1 A1":["NONE","100 bit0"],"110 bit1 B1":["Z","100 bit1"],"110 bit1 B0":["NZ","100 bit1"],
	     "111 bit0 A1":["NONE","101 bit1"],"111 bit0 B1":["NZ","100 bit1"],"111 bit0 B0":["Z","100 bit1"],
	     "111 bit1 A1":["NONE","101 bit0"],"111 bit1 B1":["Z","100 bit1"],"111 bit1 B0":["NZ","100 bit1"]}

sublookup = {"000 stopper0 bit0 A1":["NONE","000 stopper1 bit1"],"000 stopper0 bit0 B0":["Z","000 stopper0 bit0"],
	     "000 stopper0 bit0 B1":["NZ","100 stopper0 bit1"],"000 stopper0 bit1 A1":["NONE","000 stopper1 bit0"],
	     "000 stopper0 bit1 B0":["NZ","000 stopper0 bit0"],"000 stopper0 bit1 B1":["Z","100 stopper0 bit1"],
	     "000 stopper1 bit0 A1":["NONE","FAILURE"],"000 stopper1 bit0 B0":["Z","000 stopper0 bit0"],
	     "000 stopper1 bit0 B1":["NZ","000 stopper0 bit0"],"000 stopper1 bit1 A1":["NONE","FAILURE"],
	     "000 stopper1 bit1 B0":["NZ","000 stopper0 bit0"],"000 stopper1 bit1 B1":["Z","000 stopper0 bit0"],
	     "001 stopper0 bit0 A1":["NONE","001 stopper1 bit1"],"001 stopper0 bit0 B0":["Z","100 stopper0 bit1"],
	     "001 stopper0 bit0 B1":["NZ","000 stopper0 bit0"],"001 stopper0 bit1 A1":["NONE","001 stopper1 bit0"],
	     "001 stopper0 bit1 B0":["NZ","100 stopper0 bit1"],"001 stopper0 bit1 B1":["Z","000 stopper0 bit0"],
	     "001 stopper1 bit0 A1":["NONE","FAILURE"],"001 stopper1 bit0 B0":["Z","000 stopper0 bit0"],
	     "001 stopper1 bit0 B1":["NZ","000 stopper0 bit0"],"001 stopper1 bit1 A1":["NONE","FAILURE"],
	     "001 stopper1 bit1 B0":["NZ","000 stopper0 bit0"],"001 stopper1 bit1 B1":["Z","000 stopper0 bit0"],
	     "010 stopper0 bit0 A1":["NONE","010 stopper1 bit1"],"010 stopper0 bit0 B0":["Z","000 stopper0 bit0"],
	     "010 stopper0 bit0 B1":["NZ","000 stopper0 bit0"],"010 stopper0 bit1 A1":["NONE","010 stopper1 bit0"],
	     "010 stopper0 bit1 B0":["NZ","000 stopper0 bit0"],"010 stopper0 bit1 B1":["Z","000 stopper0 bit0"],
	     "010 stopper1 bit0 A1":["NONE","FAILURE"],"010 stopper1 bit0 B0":["Z","000 stopper0 bit0"],
	     "010 stopper1 bit0 B1":["NZ","100 stopper0 bit1"],"010 stopper1 bit1 A1":["NONE","FAILURE"],
	     "010 stopper1 bit1 B0":["NZ","000 stopper0 bit0"],"010 stopper1 bit1 B1":["Z","100 stopper0 bit1"],
	     "011 stopper0 bit0 A1":["NONE","011 stopper1 bit1"],"011 stopper0 bit0 B0":["Z","000 stopper0 bit0"],
	     "011 stopper0 bit0 B1":["NZ","000 stopper0 bit0"],"011 stopper0 bit1 A1":["NONE","011 stopper1 bit0"],
	     "011 stopper0 bit1 B0":["NZ","000 stopper0 bit0"],"011 stopper0 bit1 B1":["Z","000 stopper0 bit0"],
	     "011 stopper1 bit0 A1":["NONE","FAILURE"],"011 stopper1 bit0 B0":["Z","100 stopper0 bit1"],
	     "011 stopper1 bit0 B1":["NZ","000 stopper0 bit0"],"011 stopper1 bit1 A1":["NONE","FAILURE"],
	     "011 stopper1 bit1 B0":["NZ","100 stopper0 bit1"],"011 stopper1 bit1 B1":["Z","000 stopper0 bit0"],
	     "100 stopper0 bit0 A1":["NONE","100 stopper1 bit1"],"100 stopper0 bit0 B0":["Z","100 stopper0 bit1"],
	     "100 stopper0 bit0 B1":["NZ","100 stopper0 bit1"],"100 stopper0 bit1 A1":["NONE","100 stopper1 bit0"],
	     "100 stopper0 bit1 B0":["NZ","100 stopper0 bit1"],"100 stopper0 bit1 B1":["Z","100 stopper0 bit1"],
	     "100 stopper1 bit0 A1":["NONE","FAILURE"],"100 stopper1 bit0 B0":["Z","000 stopper0 bit0"],
	     "100 stopper1 bit0 B1":["NZ","100 stopper0 bit1"],"100 stopper1 bit1 A1":["NONE","FAILURE"],
	     "100 stopper1 bit1 B0":["NZ","000 stopper0 bit0"],"100 stopper1 bit1 B1":["Z","100 stopper0 bit1"],
	     "101 stopper0 bit0 A1":["NONE","101 stopper1 bit1"],"101 stopper0 bit0 B0":["Z","100 stopper0 bit1"],
             "101 stopper0 bit0 B1":["NZ","100 stopper0 bit1"],"101 stopper0 bit1 A1":["NONE","101 stopper1 bit0"],
	     "101 stopper0 bit1 B0":["NZ","100 stopper0 bit1"],"101 stopper0 bit1 B1":["Z","100 stopper0 bit1"],
	     "101 stopper1 bit0 A1":["NONE","FAILURE"],"101 stopper1 bit0 B0":["Z","100 stopper0 bit1"],
	     "101 stopper1 bit0 B1":["NZ","000 stopper0 bit0"],"101 stopper1 bit1 A1":["NONE","FAILURE"],
	     "101 stopper1 bit1 B0":["NZ","100 stopper0 bit1"],"101 stopper1 bit1 B1":["Z","000 stopper0 bit0"],
	     "110 stopper0 bit0 A1":["NONE","110 stopper1 bit1"],"110 stopper0 bit0 B0":["Z","000 stopper0 bit0"],
	     "110 stopper0 bit0 B1":["NZ","100 stopper0 bit1"],"110 stopper0 bit1 A1":["NONE","110 stopper1 bit0"],
	     "110 stopper0 bit1 B0":["NZ","000 stopper0 bit0"],"110 stopper0 bit1 B1":["Z","100 stopper0 bit1"],
	     "110 stopper1 bit0 A1":["NONE","FAILURE"],"110 stopper1 bit0 B0":["Z","100 stopper0 bit1"],
	     "110 stopper1 bit0 B1":["NZ","100 stopper0 bit1"],"110 stopper1 bit1 A1":["NONE","FAILURE"],
	     "110 stopper1 bit1 B0":["NZ","100 stopper0 bit1"],"110 stopper1 bit1 B1":["Z","100 stopper0 bit1"],
	     "111 stopper0 bit0 A1":["NONE","111 stopper1 bit1"],"111 stopper0 bit0 B0":["Z","100 stopper0 bit1"],
	     "111 stopper0 bit0 B1":["NZ","000 stopper0 bit0"],"111 stopper0 bit1 A1":["NONE","111 stopper1 bit0"],
	     "111 stopper0 bit1 B0":["NZ","100 stopper0 bit1"],"111 stopper0 bit1 B1":["Z","000 stopper0 bit0"],
	     "111 stopper1 bit0 A1":["NONE","FAILURE"],"111 stopper1 bit0 B0":["Z","100 stopper0 bit1"],
	     "111 stopper1 bit0 B1":["NZ","100 stopper0 bit1"],"111 stopper1 bit1 A1":["NONE","FAILURE"],
             "111 stopper1 bit1 B0":["NZ","100 stopper0 bit1"],"111 stopper1 bit1 B1":["Z","100 stopper0 bit1"]}


proglines = (APGsembly + "\nEND OF PROGRAM; Z\nEND OF PROGRAM; NZ").split('\n')

# pre-processing to remove blank lines and comments, and deal with * / ZZ format
progonly = []
NZflag = 0
for line in proglines:
  if line.strip()!="" and line.strip()[:1]!="#":
    if NZflag == 0:
      Zline = line
      NZflag = 1
    else:
      NZflag = 0
      if line == "END OF PROGRAM; NZ":
        break
      
      # process the next pair of lines, make sure it's a matched Z + NZ set
      Zparts = Zline.split("; ")
      NZparts = line.split("; ")
      if Zparts[0]==NZparts[0]:
        if Zparts[1]=="Z" and NZparts[1]=="NZ":
          progonly += [Zline,line]
        else:
          g.note("Pre-processing failed on lines:\n" + Zline + "\n" + line + "\nNeed Z line followed by NZ line, or * / ZZ syntax.")
          g.exit()
      else:
        if Zparts[1]=="*":
          progonly += [Zline.replace("*","Z"),Zline.replace("*","NZ")]
          Zline = line
          NZflag = 1
        elif Zparts[1]=="ZZ":
          # in the line below, there's no .replace("; ZZ;","; Z;") in the compiler version,
          #    because we need to know whether to use ZNZ or onlyZ component...
          progonly += [Zline.replace("; ZZ;","; Z;"), Zparts[0]+"; NZ"]  
          Zline = line
          NZflag = 1
        else:
          g.note("Pre-processing failed on lines:\n" + Zline + "\n" + line + "\nNeed a Z and NZ line for each state, or * / ZZ syntax.")
          g.exit()

g.new(progname)
g.setcell(0,0,1)
g.fit()
g.setcell(0,0,0)
g.update()
runflag = 0

def check_keyboard():
  global runflag
  while 1:
    evt = g.getevent()
    if evt !="":
      g.show(state + " -- " + nextstate + " :: " + instr + "; regs=" + str(registers)  + " -- 'r' to toggle run mode, any key to step")
    if evt == "key q none":
      g.setclipstr(s)
      g.exit()
    if evt == "key r none":
      runflag = 1-runflag
    elif evt=="key g none":
      break
    else:
      g.doevent(evt)
    if runflag == 1:
      break

# every state has a Z and NZ jump instruction to following states,
#   so the order of the program lines doesn't really matter.
#   Turn the program into a dictionary.
for item in progonly:
   fourparts = item.replace(", ",",").split("; ") 
   if len(fourparts) != 4:
      if len(fourparts) == 2:
         # this is probably an auto-generated line for a state+Z/NZ combination that will never be reached
         # ... so we'll try including it with empty jump and action values, and just see if it works.
         fourparts += ["none",""]
      else:
         g.note("Failed to parse: " + item)
         g.exit()
   label, bitval, nextstate, instr = fourparts
   program[label+";"+bitval]=[nextstate,instr]

state, nextstate, nextoutput, outputtext = "START","INITIAL","Z",""

g.show(state + " -- " + nextstate + " :: " + instr + "; regs=" + str(registers)  + " -- 'r' to toggle run mode, any key to step")

check_keyboard()

while 1:

   if nextoutput == "":
      g.show(state + " -- " + nextstate + " :: " + instr + "; regs=" + str(registers)  + "; mem=" + str(memory))
      g.note("Program reached halt state (because no bit value was returned by any instruction).")
      g.setclipstr(s)
      g.exit()
   
   state = nextstate + ";" + nextoutput
   # get info from program dictionary, move to next state
   nextstate, instr = program[state]

   # process instructions for current state
   # -- there may be just one instruction,
   #    or several comma-separated instructions
   nextoutput = ""  # if some instruction doesn't set this variable, the program will halt
   for i in instr.split(","):
     # allow stepping or full-speed run from keyboard (toggle "r")
     check_keyboard()

     if i == "NOP":
       nextoutput = "Z"

     elif i == "READ SQ":
       if "SQX" not in registers: registers["SQX"], registers["SQY"]=0,0  # initialize if necessary
       coord = str(registers["SQX"]) +","+str(registers["SQY"])
       if coord not in memory:
         memory[coord]=0
       if memory[coord]==0:
         nextoutput = "Z"
       else:
         nextoutput = "NZ"
         memory[coord] = 0  # this is a destructive read operation
         g.setcell(registers["SQX"]-registers["SQY"],-registers["SQX"]-registers["SQY"],memory[coord])
         g.update()

     elif i == "SET SQ":
       if coord not in memory:
         memory[coord]=0
       if memory[coord]==0:
         memory[coord] = 1
         g.setcell(registers["SQX"]-registers["SQY"],-registers["SQX"]-registers["SQY"],memory[coord])
         g.update()
       else:
         g.note("PROGRAM ERROR:\nTried to set memory coordinate " + coord + "to 1,\nwhen it was already 1.")
         g.exit()

     elif i[:4]=="INC ":
       reg = i.split(" ")[1]
       if reg not in registers:
         if reg[:1]=="T": # binary register
           registers[reg]=[0,"0"]
         else:
           registers[reg]=0 # simple register
       if isinstance(registers[reg], types.ListType): # binary register
         ptr,bits = registers[reg]
         if ptr == len(bits)-1:
           bits+="0"         # the mechanism automatically adds a zero when INCing past current end of tape
           nextoutput = "Z"  # ... and it returns a zero output in that case
         else:
           nextoutput = "NZ" # if it's not creating a new bit, it returns an NZ output.  TODO: what does the program use this for?
         registers[reg] = [ptr+1,bits]
       else:
         registers[reg] += 1  # simple register

     elif i[:5]=="TDEC " or i[:6]=="DEC SQ": # simple register
       reg = i.split(" ")[1]
       if reg not in registers:
         registers[reg]=0
       if registers[reg] == 0:
         nextoutput = "Z" # don't update register, it's already zero
       else:
         registers[reg] -= 1
         nextoutput = "NZ"

     elif i[:4]=="DEC ": # binary register
       reg = i.split(" ")[1]
       ptr,bits = registers[reg]
       if ptr == 0:
         nextoutput = "Z" # don't update register, it's already zero
       else:
         registers[reg] = [ptr-1,bits]
         nextoutput = "NZ"    

     elif i=="HALT":
       g.note("Program reached halt state.")
       g.setclipstr(s)
       g.exit()

     elif i[:4]=="MUL ":
       bit = str(i[4:])
       if "MUL" not in registers:
         registers["MUL"]="00000"
       nextoutput, registers["MUL"] = mullookup["MUL" + bit + " " + registers["MUL"]]

     elif i[:7] == "OUTPUT ":
       outputtext += i[7:]
       outpat = make_text(outputtext)
       g.putcells(outpat, 0, 10)
       g.update()

     elif i[:4]=="SUB ":
       if "SUB" not in registers:
         registers["SUB"]="000 stopper0 bit0"
       whichinput = i[4:]
       out, registers["SUB"] = sublookup[registers["SUB"] + " " + whichinput]
       if registers["SUB"] == "FAILURE":
         g.note("Program crashed at line '" + i + "'.  SUB A1 must have been run twice (?).")
         g.exit()
       if out != "NONE":
         nextoutput = out

     elif i[:4]=="ADD ":
       if "ADD" not in registers:
         registers["ADD"]="000 bit0"
       whichinput = i[4:]
       temp = registers["ADD"] + " " + whichinput
       out, registers["ADD"] = addlookup[temp]
       if out != "NONE":
         nextoutput = out

     elif i[:5]=="READ ":
       binregname = i[5:] # TODO: maybe be consistent and use .split()?
       if binregname not in registers:
         registers[binregname]=[0,"0"]
       ptr, bits = registers[binregname]
       if bits[ptr]=="x":
         g.note("Program crashed on instruction '" + i + "':\n attempt to read an empty position in a binary register.")
         g.exit()
       elif bits[ptr]=="0":
         nextoutput = "Z"
       elif bits[ptr]=="1":
         nextoutput = "NZ"
       else:
         g.note("Emulator error. Found value '" + bits[ptr] + "' on READ, in " + binregname + " bitstring -- " + str(registers[binregname]) + ".")
         g.exit()
       registers[binregname] = [ptr, bits[:ptr]+"x"+bits[ptr+1:]]

     elif i[:4]=="SET ":
       binregname = i[4:]
       if binregname not in registers:
         registers[binregname]=[0,"0"]
       ptr, bits = registers[binregname]
       if bits[ptr]!="x":
         g.note("Crash. Found value '" + bits[ptr] + "' on SET, in " + binregname + " bitstring -- " + str(registers[binregname]) + ".")
         g.exit()
       registers[binregname] = [ptr, bits[:ptr]+"1"+bits[ptr+1:]]

     elif i[:6]=="RESET ":
       binregname = i[6:]
       if binregname not in registers:
         registers[binregname]=[0,"0"]
       else:
         ptr, bits = registers[binregname]
       if bits[ptr]!="x":
         g.note("Crash. Found value '" + bits[ptr] + "' on READ, in " + binregname + " bitstring -- " + str(registers[binregname]) + ".")
         g.exit()
       registers[binregname] = [ptr, bits[:ptr]+"0"+bits[ptr+1:]]

     else:
       g.note("Unknown instruction: " + instr + " -- ~" + i + "~")
       g.exit()
Works
But I still get this after pasting the empty GPC

Code: Select all

x = 10284, y = 10242, rule = B3/S23
9719b2o$9718bobo$9712b2o4bo$9710bo2bo2b2ob4o$9710b2obobobobo2bo$9713bo
bobobo$9713bobob2o$9714bo2$9727b2o$9718b2o7bo$9718b2o5bobo$9725b2o7$
9715b2o$9661bo54bo$9659b3o51b3o$9658bo54bo$9658b2o7bo$9665b3o$9664bo
24bo$9664b2o23b3o$9692bo$9691b2o$9706b2o$9706bo$9703b2obo$9702bo2bo$
9703b2o$9673b2o13b2o$9673b2o13b2o7$9675b2o6bob2o$9652b2o21bobo3b3ob2o$
9651bobo23bo2bo$9651bo25b2o2b3ob2o$9650b2o31bobo$9683bobo10b2o$9684bo
11b2o11$9543bo127bo$9541b3o125b3o$9540bo127bo$9540b2o126b2o$9546bo127b
o$9544b3o125b3o$9543bo127bo$9536bo6b2o119bo6b2o$9535bobo125bobo$9535b
2o126b2o12$9533b2o126b2o$9534bo127bo$9531b3o125b3o$9531bo127bo$9717bo$
9715b3o$9714bo$9714b2o$9549b2o126b2o$9549bo127bo$9550b3o125b3o41b2o$
9552bo127bo42bo$9723bob2o$9715b2o4b3o2bo$9715b2o3bo3b2o$9720b4o$9706b
2o15bo$9541b2o126b2o34bobo12b3o$9532b2o7b2o117b2o7b2o34bo13bo$9533bo
127bo42b2o14b5o$9533bobo125bobo60bo$9534b2o126b2o58bo$9550b2o126b2o42b
2o$9550bo127bo$9548bobo125bobo$9548b2o126b2o3$9529b2o126b2o$9530bo127b
o$9530bobo18bo106bobo18bo$9531b2o17bobo106b2o17bobo$9551bo127bo183b2o$
9558bo127bo175bobo$9558b3o125b3o167b2o4bo$9561bo127bo164bo2bo2b2ob4o$
9560b2o126b2o164b2obobobobo2bo$9575b2o126b2o152bobobobo$9575bo127bo
153bobob2o$9572b2obo124b2obo154bo$9528b2o41bo2bo81b2o41bo2bo$9527bobo
42b2o81bobo42b2o169b2o$9527bo5b2o22b2o96bo5b2o22b2o175b2o7bo$9526b2o4b
o2bo21b2o95b2o4bo2bo21b2o175b2o5bobo$9533b2o126b2o206b2o3$9535b2o7b2o
3bo113b2o7b2o3bo$9535b2o7bo3bobo112b2o7bo3bobo$9545bo3bobo121bo3bobo$
9546bo3bobob2o118bo3bobob2o$9544bob4o2bob2o116bob4o2bob2o175b2o$9543bo
bo3bobo119bobo3bobo180bo$9543bobo2bo2b2ob2o115bobo2bo2b2ob2o173b3o$
9544bo3b2o2bobo117bo3b2o2bobo174bo$9552bobo10b2o113bobo10b2o$9553bo11b
2o114bo11b2o12$9789bo$9787b3o$9786bo$9786b2o7bo$9793b3o$9792bo24bo$
9792b2o23b3o$9820bo$9819b2o$9834b2o$9834bo$9831b2obo$9830bo2bo$9831b2o
$9801b2o13b2o$9801b2o13b2o7$9803b2o6bob2o$9780b2o21bobo3b3ob2o$9779bob
o23bo2bo$9779bo25b2o2b3ob2o$9778b2o31bobo$9811bobo10b2o$9812bo11b2o11$
9392bo278bo127bo$9392b3o274b3o125b3o$9395bo272bo127bo$9394b2o272b2o
126b2o$9674bo127bo$9672b3o125b3o$9386b2o283bo127bo$9386bo284b2o126b2o$
9383b2obo$9383bo2b3o4b2o$9384b2o3bo3b2o$9386b4o$9386bo15b2o3b2o$9387b
3o12bobobobo$9390bo13bobo$9385b5o14bo2bo$9385bo19bobo$9387bo18bo$9386b
2o3$9661b2o126b2o$9421b2o239bo127bo$9421b2o236b3o125b3o$9659bo127bo$
9845bo$9843b3o$9401b2o439bo$9400bobo439b2o$9400bo18b2o256b2o126b2o$
9399b2o7b2o9bo257bo127bo$9408b2o10bo257b3o125b3o41b2o$9419b2o259bo127b
o42bo$9416b2o433bob2o$9353bo62b2ob2o422b2o4b3o2bo$9353b3o63bo423b2o3bo
3b2o$9356bo59b2o3bo426b4o$9355b2o10bo47bo2b4o412b2o15bo155b2o$9366bobo
45bobobo250b2o126b2o34bobo12b3o155bobo$9366bobo27bo18bo2bob2o238b2o7b
2o117b2o7b2o34bo13bo152b2o4bo$9344bo20b2ob3o25b3o19bobo240bo127bo42b2o
14b5o145bo2bo2b2ob4o$9344b3o24bo27bo17b2o2bo239bobo125bobo60bo145b2obo
bobobo2bo$9347bo17b2ob3o6bo20b2o14bobo2bobo240b2o126b2o58bo150bobobobo
$9346b2o17b2obo6b3o15bo20b2o2bobo257b2o126b2o42b2o149bobob2o$9374bo18b
3o23bo258bo127bo195bo$9374b2o20bo279bobo125bobo$9349b2o44b2o279b2o126b
2o209b2o$9348bo2bo654b2o7bo$9349b2o655b2o5bobo$9657b2o126b2o226b2o$
9658bo127bo$9658bobo18bo106bobo18bo$9392b2o265b2o17bobo106b2o17bobo$
9392b2o17b2o266bo127bo$9411b2o273bo127bo$9361b2o323b3o125b3o$9362bo
326bo127bo185b2o$9359b3o50b2o274b2o126b2o186bo$9359bo52bo290b2o126b2o
168b3o$9399b2o12b3o287bo127bo169bo$9382b2o16bo14bo284b2obo124b2obo$
9382bo14b3o256b2o41bo2bo81b2o41bo2bo$9383b3o11bo257bobo42b2o81bobo42b
2o$9385bo269bo5b2o22b2o96bo5b2o22b2o$9456bo197b2o4bo2bo21b2o95b2o4bo2b
o21b2o$9456b3o202b2o126b2o$9459bo$9458b2o$9663b2o7b2o3bo113b2o7b2o3bo$
9663b2o7bo3bobo112b2o7bo3bobo$9450b2o221bo3bobo121bo3bobo$9450bo223bo
3bobob2o118bo3bobob2o$9447b2obo221bob4o2bob2o116bob4o2bob2o$9447bo2b3o
4b2o212bobo3bobo119bobo3bobo$9448b2o3bo3b2o212bobo2bo2b2ob2o115bobo2bo
2b2ob2o$9450b4o218bo3b2o2bobo117bo3b2o2bobo$9450bo15b2o3b2o207bobo10b
2o113bobo10b2o$9451b3o12bobobobo208bo11b2o114bo11b2o$9454bo13bobo$
9449b5o14bo2bo$9449bo19bobo$9451bo18bo$9450b2o4$9485b2o$9485b2o2$9917b
o$9915b3o$9465b2o447bo$9464bobo447b2o7bo$9464bo18b2o436b3o$9463b2o7b2o
9bo436bo24bo$9472b2o10bo435b2o23b3o$9483b2o463bo$9480b2o465b2o$9417bo
62b2ob2o477b2o$9417b3o63bo478bo$9420bo59b2o3bo473b2obo$9419b2o10bo47bo
2b4o472bo2bo$9430bobo45bobobo476b2o$9430bobo27bo18bo2bob2o443b2o13b2o$
9408bo20b2ob3o25b3o19bobo444b2o13b2o$9408b3o24bo27bo17b2o2bo$9411bo17b
2ob3o6bo20b2o14bobo2bobo$9410b2o17b2obo6b3o15bo20b2o2bobo$9438bo18b3o
23bo$9438b2o20bo$9413b2o44b2o$9412bo2bo515b2o6bob2o$9413b2o493b2o21bob
o3b3ob2o$9907bobo23bo2bo$9907bo25b2o2b3ob2o$9906b2o31bobo$9456b2o481bo
bo10b2o$9456b2o17b2o463bo11b2o$9475b2o$9425b2o$9426bo$9423b3o50b2o$
9423bo52bo$9463b2o12b3o$9446b2o16bo14bo$9446bo14b3o$9447b3o11bo$9449bo
$9799bo127bo$9797b3o125b3o$9796bo127bo$9796b2o126b2o$9802bo127bo$9800b
3o125b3o$9799bo127bo$9799b2o126b2o14$9789b2o126b2o232b2o$9790bo127bo
231bobo$9787b3o125b3o226b2o4bo$9787bo127bo226bo2bo2b2ob4o$9973bo168b2o
bobobobo2bo$9971b3o171bobobobo$9970bo174bobob2o$9970b2o174bo$9805b2o
126b2o$9805bo127bo225b2o$9806b3o125b3o41b2o170b2o7bo$9808bo127bo42bo
170b2o5bobo$9979bob2o174b2o$9971b2o4b3o2bo$9971b2o3bo3b2o$9976b4o$
9962b2o15bo$9797b2o126b2o34bobo12b3o$9788b2o7b2o117b2o7b2o34bo13bo$
9789bo127bo42b2o14b5o166b2o$9789bobo125bobo60bo167bo$9790b2o126b2o58bo
166b3o$9806b2o126b2o42b2o165bo$9806bo127bo$9804bobo125bobo$9804b2o126b
2o3$9785b2o126b2o$9786bo127bo$9786bobo18bo106bobo18bo$9787b2o17bobo
106b2o17bobo$9807bo127bo$9814bo127bo$9814b3o125b3o$9817bo127bo$9816b2o
126b2o$9831b2o126b2o$9831bo127bo$9828b2obo124b2obo$9784b2o41bo2bo81b2o
41bo2bo$9783bobo42b2o81bobo42b2o$9783bo5b2o22b2o96bo5b2o22b2o$9782b2o
4bo2bo21b2o95b2o4bo2bo21b2o$9789b2o126b2o3$9791b2o7b2o3bo113b2o7b2o3bo
$9791b2o7bo3bobo112b2o7bo3bobo$9801bo3bobo121bo3bobo$9802bo3bobob2o
118bo3bobob2o$9800bob4o2bob2o116bob4o2bob2o$9799bobo3bobo119bobo3bobo$
9799bobo2bo2b2ob2o115bobo2bo2b2ob2o$9800bo3b2o2bobo117bo3b2o2bobo$
9808bobo10b2o113bobo10b2o$9809bo11b2o114bo11b2o12$10045bo$10043b3o$
10042bo$10042b2o7bo$10049b3o$10048bo24bo$10048b2o23b3o$10076bo$10075b
2o$10090b2o$10090bo$10087b2obo$10086bo2bo$10087b2o$10057b2o13b2o$
10057b2o13b2o7$10059b2o6bob2o$10036b2o21bobo3b3ob2o$10035bobo23bo2bo$
10035bo25b2o2b3ob2o$10034b2o31bobo$10067bobo10b2o$10068bo11b2o11$9927b
o127bo$9925b3o125b3o$9924bo127bo$9924b2o126b2o$9930bo127bo$9928b3o125b
3o$9927bo127bo$9927b2o126b2o14$9917b2o126b2o$9918bo127bo$9915b3o125b3o
$9915bo127bo235b2o$10101bo177bo$10099b3o179bo$10098bo162b2o14b5o$
10098b2o162bo13bo$9933b2o126b2o199bobo12b3o$9933bo127bo201b2o15bo$
9934b3o125b3o41b2o169b4o$9936bo127bo42bo164b2o3bo3b2o$10107bob2o161b2o
4b3o2bo$10099b2o4b3o2bo169bob2o$10099b2o3bo3b2o170bo$10104b4o171b2o$
10090b2o15bo$9925b2o126b2o34bobo12b3o$9916b2o7b2o117b2o7b2o34bo13bo
167b2o$9917bo127bo42b2o14b5o162bo$9917bobo125bobo60bo163b3o$9918b2o
126b2o58bo167bo$9934b2o126b2o42b2o$9934bo127bo$9932bobo125bobo$9932b2o
126b2o3$9913b2o126b2o$9914bo127bo$9914bobo18bo106bobo18bo$9915b2o17bob
o106b2o17bobo$9935bo127bo$9942bo127bo$9942b3o125b3o$9945bo127bo205b2o$
9944b2o126b2o205bo$9959b2o126b2o192bo$9959bo127bo173b2o14b5o$9956b2obo
124b2obo174bo13bo$9912b2o41bo2bo81b2o41bo2bo175bobo12b3o$9911bobo42b2o
81bobo42b2o177b2o15bo$9911bo5b2o22b2o96bo5b2o22b2o206b4o$9712bo197b2o
4bo2bo21b2o95b2o4bo2bo21b2o201b2o3bo3b2o$9712b3o202b2o126b2o225b2o4b3o
2bo$9715bo564bob2o$9714b2o564bo$9919b2o7b2o3bo113b2o7b2o3bo217b2o$
9919b2o7bo3bobo112b2o7bo3bobo$9706b2o221bo3bobo121bo3bobo$9706bo223bo
3bobob2o118bo3bobob2o203b2o$9703b2obo221bob4o2bob2o116bob4o2bob2o203bo
$9703bo2b3o4b2o212bobo3bobo119bobo3bobo208b3o$9704b2o3bo3b2o212bobo2bo
2b2ob2o115bobo2bo2b2ob2o206bo$9706b4o218bo3b2o2bobo117bo3b2o2bobo$
9706bo15b2o3b2o207bobo10b2o113bobo10b2o$9707b3o12bobobobo208bo11b2o
114bo11b2o$9710bo13bobo262b2o126b2o$9705b5o14bo2bo261bo127bo$9705bo19b
obo262b3o125b3o$9707bo18bo265bo127bo$9706b2o4$9741b2o$9741b2o$9999b2ob
o124b2obo148b2o$9999b2ob3o122b2ob3o146bo$10005bo127bo147bo$9721b2o276b
2ob3o122b2ob3o128b2o14b5o$9720bobo277bobo125bobo131bo13bo$9720bo18b2o
259bobo125bobo131bobo12b3o$9719b2o7b2o9bo261bo127bo133b2o15bo$9728b2o
10bo536b4o$9739b2o531b2o3bo3b2o$9736b2o534b2o4b3o2bo$9673bo62b2ob2o
539bob2o$9673b3o63bo540bo$9676bo59b2o3bo537b2o$9675b2o10bo47bo2b4o$
9686bobo45bobobo$9686bobo27bo18bo2bob2o529b2o$9664bo20b2ob3o25b3o19bob
o530bo$9664b3o24bo27bo17b2o2bo530b3o$9667bo17b2ob3o6bo20b2o14bobo2bobo
532bo$9666b2o17b2obo6b3o15bo20b2o2bobo$9694bo18b3o23bo$9694b2o20bo$
9669b2o44b2o$9668bo2bo$9669b2o4$9712b2o$9712b2o17b2o$9731b2o$9681b2o$
9682bo596b2o$9679b3o50b2o545bo$9679bo52bo548bo$9719b2o12b3o525b2o14b5o
$9702b2o16bo14bo526bo13bo$9702bo14b3o542bobo12b3o$9703b3o11bo545b2o15b
o$9705bo571b4o$9776bo495b2o3bo3b2o$9776b3o493b2o4b3o2bo$9779bo500bob2o
$9778b2o500bo$10279b2o2$9770b2o$9770bo500b2o$9767b2obo500bo$9767bo2b3o
4b2o493b3o$9768b2o3bo3b2o495bo$9770b4o$9770bo15b2o3b2o$9771b3o12bobobo
bo$9774bo13bobo$9769b5o14bo2bo$9769bo19bobo$9771bo18bo$9770b2o4$9805b
2o$9805b2o4$9785b2o$9784bobo$9784bo18b2o$9783b2o7b2o9bo$9792b2o10bo$
9803b2o$9800b2o$9737bo62b2ob2o$9737b3o63bo$9740bo59b2o3bo$9739b2o10bo
47bo2b4o$9750bobo45bobobo$9750bobo27bo18bo2bob2o$9728bo20b2ob3o25b3o
19bobo$9728b3o24bo27bo17b2o2bo$9731bo17b2ob3o6bo20b2o14bobo2bobo$9730b
2o17b2obo6b3o15bo20b2o2bobo$9758bo18b3o23bo$9758b2o20bo$9733b2o44b2o$
9732bo2bo$9733b2o4$9776b2o$9776b2o17b2o$9795b2o$9745b2o$9746bo$9743b3o
50b2o$9743bo52bo$9783b2o12b3o$9766b2o16bo14bo$9766bo14b3o$9767b3o11bo$
9769bo577$8624bo$8624b3o$8627bo$8626b2o3$8618b2o$8618bo$8615b2obo$
8615bo2b3o4b2o$8616b2o3bo3b2o$8618b4o$8618bo15b2o3b2o$8619b3o12bobobob
o$8622bo13bobo$8617b5o14bo2bo$8617bo19bobo$8619bo18bo$8618b2o4$8653b2o
$8653b2o4$8633b2o$8632bobo$8632bo18b2o$8631b2o7b2o9bo$8640b2o10bo$
8651b2o$8648b2o$8585bo62b2ob2o$8585b3o63bo$8588bo59b2o3bo$8587b2o10bo
47bo2b4o$8598bobo45bobobo$8598bobo27bo18bo2bob2o$8576bo20b2ob3o25b3o
19bobo$8576b3o24bo27bo17b2o2bo$8579bo17b2ob3o6bo20b2o14bobo2bobo$8578b
2o17b2obo6b3o15bo20b2o2bobo$8606bo18b3o23bo$8606b2o20bo$8581b2o44b2o$
8580bo2bo$8581b2o4$8624b2o$8624b2o17b2o$8643b2o$8593b2o$8594bo$8591b3o
50b2o$8591bo52bo$8631b2o12b3o$8614b2o16bo14bo$8614bo14b3o$8615b3o11bo$
8617bo$8688bo$8688b3o$8691bo$8690b2o3$8682b2o$8682bo$8679b2obo$8679bo
2b3o4b2o$8680b2o3bo3b2o$8682b4o$8682bo15b2o3b2o$8683b3o12bobobobo$
8686bo13bobo$8681b5o14bo2bo$8681bo19bobo$8683bo18bo$8682b2o4$8717b2o$
8717b2o4$8697b2o$8696bobo$8696bo18b2o$8695b2o7b2o9bo$8704b2o10bo$8715b
2o$8712b2o$8649bo62b2ob2o$8649b3o63bo$8652bo59b2o3bo$8651b2o10bo47bo2b
4o$8662bobo45bobobo$8662bobo27bo18bo2bob2o$8640bo20b2ob3o25b3o19bobo$
8640b3o24bo27bo17b2o2bo$8643bo17b2ob3o6bo20b2o14bobo2bobo$8642b2o17b2o
bo6b3o15bo20b2o2bobo$8670bo18b3o23bo$8670b2o20bo$8645b2o44b2o$8644bo2b
o$8645b2o4$8688b2o$8688b2o17b2o$8707b2o$8657b2o$8658bo$8655b3o50b2o$
8655bo52bo$8695b2o12b3o$8678b2o16bo14bo$8678bo14b3o$8679b3o11bo$8681bo
65$8688bo$8688b3o$8691bo$8690b2o3$8682b2o$8682bo$8679b2obo$8679bo2b3o
4b2o$8680b2o3bo3b2o$8682b4o$8682bo15b2o3b2o$8683b3o12bobobobo$8686bo
13bobo$8681b5o14bo2bo$8681bo19bobo$8683bo18bo$8682b2o4$8717b2o$8717b2o
4$8697b2o$8696bobo$8696bo18b2o$8695b2o7b2o9bo$8704b2o10bo$8715b2o$
8712b2o$8649bo62b2ob2o$8649b3o63bo$8652bo59b2o3bo$8651b2o10bo47bo2b4o$
8662bobo45bobobo$8662bobo27bo18bo2bob2o$8640bo20b2ob3o25b3o19bobo$
8640b3o24bo27bo17b2o2bo$8643bo17b2ob3o6bo20b2o14bobo2bobo$8642b2o17b2o
bo6b3o15bo20b2o2bobo$8670bo18b3o23bo$8670b2o20bo$8645b2o44b2o$8644bo2b
o$8645b2o4$8688b2o$8688b2o17b2o$8707b2o$8657b2o$8658bo$8655b3o50b2o$
8655bo52bo$8695b2o12b3o$8678b2o16bo14bo$8678bo14b3o$8679b3o11bo$8681bo
$8624bo$8624b3o$8627bo$8626b2o3$8618b2o$8618bo$8615b2obo$8615bo2b3o4b
2o$8616b2o3bo3b2o$8618b4o$8618bo15b2o3b2o$8619b3o12bobobobo$8622bo13bo
bo$8617b5o14bo2bo$8617bo19bobo$8619bo18bo$8618b2o4$8653b2o$8653b2o4$
8633b2o$8632bobo$8632bo18b2o$8631b2o7b2o9bo$8640b2o10bo$8651b2o$8648b
2o$8585bo62b2ob2o$8585b3o63bo$8588bo59b2o3bo$8587b2o10bo47bo2b4o$8598b
obo45bobobo$8598bobo27bo18bo2bob2o$8576bo20b2ob3o25b3o19bobo$8576b3o
24bo27bo17b2o2bo$8579bo17b2ob3o6bo20b2o14bobo2bobo$8578b2o17b2obo6b3o
15bo20b2o2bobo$8606bo18b3o23bo$8606b2o20bo$8581b2o44b2o$8580bo2bo$
8581b2o4$8624b2o$8624b2o17b2o$8643b2o$8593b2o$8594bo$8591b3o50b2o$
8591bo52bo$8631b2o12b3o$8614b2o16bo14bo$8614bo14b3o$8615b3o11bo$8617bo
65$8624bo$8624b3o$8627bo$8626b2o3$8618b2o$8618bo$8615b2obo$8615bo2b3o
4b2o$8616b2o3bo3b2o$8618b4o$8618bo15b2o3b2o$8619b3o12bobobobo$8622bo
13bobo$8617b5o14bo2bo$8617bo19bobo$8619bo18bo$8618b2o4$8653b2o$8653b2o
4$8633b2o$8632bobo$8632bo18b2o$8631b2o7b2o9bo$8640b2o10bo$8651b2o$
8648b2o$8585bo62b2ob2o$8585b3o63bo$8588bo59b2o3bo$8587b2o10bo47bo2b4o$
8598bobo45bobobo$8598bobo27bo18bo2bob2o$8576bo20b2ob3o25b3o19bobo$
8576b3o24bo27bo17b2o2bo$8579bo17b2ob3o6bo20b2o14bobo2bobo$8578b2o17b2o
bo6b3o15bo20b2o2bobo$8606bo18b3o23bo$8606b2o20bo$8581b2o44b2o$8580bo2b
o$8581b2o4$8624b2o$8624b2o17b2o$8643b2o$8593b2o$8594bo$8591b3o50b2o$
8591bo52bo$8631b2o12b3o$8614b2o16bo14bo$8614bo14b3o$8615b3o11bo$8617bo
$8816bo$8816b3o$8819bo$8818b2o3$8810b2o$8810bo$8807b2obo$8807bo2b3o4b
2o$8808b2o3bo3b2o$8810b4o$8810bo15b2o3b2o$8811b3o12bobobobo$8814bo13bo
bo$8809b5o14bo2bo$8809bo19bobo$8811bo18bo$8810b2o4$8845b2o$8845b2o4$
8825b2o$8824bobo$8824bo18b2o$8823b2o7b2o9bo$8832b2o10bo$8843b2o$8840b
2o$8777bo62b2ob2o$8777b3o63bo$8780bo59b2o3bo$8779b2o10bo47bo2b4o$8790b
obo45bobobo$8790bobo27bo18bo2bob2o$8768bo20b2ob3o25b3o19bobo$8768b3o
24bo27bo17b2o2bo$8771bo17b2ob3o6bo20b2o14bobo2bobo$8770b2o17b2obo6b3o
15bo20b2o2bobo$8798bo18b3o23bo$8798b2o20bo$8773b2o44b2o$8772bo2bo$
8773b2o4$8816b2o$8816b2o17b2o$8835b2o$8785b2o$8786bo$8783b3o50b2o$
8783bo52bo$8823b2o12b3o$8806b2o16bo14bo$8806bo14b3o$8807b3o11bo$8809bo
7839$24bo$22b3o$21bo$20bobo$20bobo$21bo5$5b2o$5b2o4$25b2o$25bobo$27bo$
18b2o7b2o$18b2o2$8bob2o$6b3ob2o$5bo$6b3ob2o$8bobo$8bobo$9bo6$18b2o$18b
2o16$3bob2o$b3ob2o$o$b3ob2o$3bobo2bo$6b3o$11bo5b2o$8b4o5b2o$8bo$9bo$8b
2o4$88bo$86b3o$85bo$84bobo$84bobo$85bo5$69b2o$69b2o4$89b2o$89bobo$91bo
$82b2o7b2o$82b2o2$72bob2o$70b3ob2o$69bo$70b3ob2o$72bobo$72bobo$73bo6$
82b2o$82b2o16$67bob2o$65b3ob2o$64bo$65b3ob2o$67bobo2bo$70b3o$75bo5b2o$
72b4o5b2o$72bo$73bo$72b2o36$120bo$118b3o$117bo$116bobo$116bobo$117bo5$
101b2o$101b2o4$121b2o$121bobo$123bo$114b2o7b2o$114b2o2$104bob2o$102b3o
b2o$101bo$102b3ob2o$104bobo$104bobo$105bo6$114b2o$114b2o16$99bob2o$97b
3ob2o$96bo$97b3ob2o$99bobo2bo$102b3o$107bo5b2o$104b4o5b2o$104bo$105bo$
104b2o4$184bo$182b3o$181bo$180bobo$180bobo$181bo5$165b2o$165b2o4$185b
2o$185bobo$187bo$178b2o7b2o$178b2o2$168bob2o$166b3ob2o$165bo$166b3ob2o
$168bobo$168bobo$169bo6$178b2o$178b2o16$163bob2o$161b3ob2o$160bo$161b
3ob2o$163bobo2bo$166b3o$171bo5b2o$168b4o5b2o$168bo$169bo$168b2o36$216b
o127bo$214b3o125b3o$213bo127bo$212bobo125bobo$212bobo125bobo$213bo127b
o5$197b2o126b2o$197b2o126b2o4$217b2o126b2o$217bobo125bobo$219bo127bo$
210b2o7b2o117b2o7b2o$210b2o126b2o2$200bob2o124bob2o$198b3ob2o122b3ob2o
$197bo127bo$198b3ob2o122b3ob2o$200bobo125bobo$200bobo125bobo$201bo127b
o6$210b2o126b2o$210b2o126b2o16$195bob2o124bob2o$193b3ob2o122b3ob2o$
192bo127bo$193b3ob2o122b3ob2o$195bobo2bo122bobo2bo$198b3o125b3o$203bo
5b2o120bo5b2o$200b4o5b2o117b4o5b2o$200bo127bo$201bo127bo$200b2o126b2o
4$408bo$406b3o$405bo$404bobo$404bobo$405bo5$389b2o$389b2o4$409b2o$409b
obo$411bo$402b2o7b2o$402b2o2$392bob2o$390b3ob2o$389bo$390b3ob2o$392bob
o$392bobo$393bo6$402b2o$402b2o16$387bob2o$385b3ob2o$384bo$385b3ob2o$
387bobo2bo$390b3o$395bo5b2o$392b4o5b2o$392bo$393bo$392b2o68$408bo$406b
3o$405bo$404bobo$404bobo$405bo5$389b2o$389b2o4$409b2o$409bobo$411bo$
402b2o7b2o$402b2o2$392bob2o$390b3ob2o$389bo$390b3ob2o$392bobo$392bobo$
393bo6$402b2o$402b2o16$387bob2o$385b3ob2o$384bo$385b3ob2o$387bobo2bo$
390b3o$395bo5b2o$392b4o5b2o$392bo$393bo$392b2o38$660bo$658b3o$657bo$
657b2o7$647b2o$646bobo5b2o$646bo7b2o$645b2o2$659bo$612bo42b2obobo$610b
3o41bobobobo$609bo41bo2bobobobob2o$609b2o40b4ob2o2bo2bo$655bo4b2o$653b
obo$653b2o4$599b2o$598bobo5b2o$598bo7b2o$597b2o2$611bo$564bo42b2obobo$
562b3o41bobobobo$561bo41bo2bobobobob2o$561b2o40b4ob2o2bo2bo$607bo4b2o$
605bobo$605b2o4$551b2o$550bobo5b2o$550bo7b2o$549b2o2$563bo$516bo42b2ob
obo$514b3o41bobobobo$513bo41bo2bobobobob2o$513b2o40b4ob2o2bo2bo$559bo
4b2o$557bobo$557b2o4$503b2o$502bobo5b2o$502bo7b2o$501b2o2$515bo$511b2o
bobo$510bobobobo$507bo2bobobobob2o$507b4ob2o2bo2bo$511bo4b2o$509bobo$
509b2o!
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » November 22nd, 2019, 5:41 pm

gameoflifemaniac wrote:
November 22nd, 2019, 5:28 pm
Works
But I still get this after pasting the empty GPC...
Okay, you're pretty much good to go now. You can't just paste in the GPC pattern, because you could put it anywhere, and the script would have to figure out where you put it, and I'm far too lazy for that.

Save the GPC-2^24.mc pattern to your computer, then open it with Golly -- then it's guaranteed to show up at (0,0), so that the script can put the computer/program circuitry in the right place relative to it.

All of this is just temporary, until I finish stringing together the modular compiler (which will build the whole GPC pattern, or whatever subset of it is actually needed, instead of just assuming it's already there).

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Smaller Pi Calculator Challenge

Post by gameoflifemaniac » November 22nd, 2019, 5:46 pm

dvgrn wrote:
November 22nd, 2019, 5:41 pm
gameoflifemaniac wrote:
November 22nd, 2019, 5:28 pm
Works
But I still get this after pasting the empty GPC...
Okay, you're pretty much good to go now. You can't just paste in the GPC pattern, because you could put it anywhere, and the script would have to figure out where you put it, and I'm far too lazy for that.

Save the GPC-2^24.mc pattern to your computer, then open it with Golly -- then it's guaranteed to show up at (0,0), so that the script can put the computer/program circuitry in the right place relative to it.

All of this is just temporary, until I finish stringing together the modular compiler (which will build the whole GPC pattern, or whatever subset of it is actually needed, instead of just assuming it's already there).
Works. Thank you
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » November 22nd, 2019, 5:50 pm

gameoflifemaniac wrote:
November 22nd, 2019, 5:46 pm
Works. Thank you
You're welcome! Now I have to figure out why in Conway's name the SQ unit is breaking, for some programs that the emulator thinks are just fine (like if you use SQX instead of SQY to make a binary adder).

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Smaller Pi Calculator Challenge

Post by gameoflifemaniac » November 22nd, 2019, 5:55 pm

dvgrn wrote:
November 22nd, 2019, 5:50 pm
gameoflifemaniac wrote:
November 22nd, 2019, 5:46 pm
Works. Thank you
You're welcome! Now I have to figure out why in Conway's name the SQ unit is breaking, for some programs that the emulator thinks are just fine (like if you use SQX instead of SQY to make a binary adder).
What code are you planning to write next?
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » November 22nd, 2019, 6:30 pm

gameoflifemaniac wrote:
November 22nd, 2019, 5:55 pm
dvgrn wrote:
November 22nd, 2019, 5:50 pm
gameoflifemaniac wrote:
November 22nd, 2019, 5:46 pm
Works. Thank you
You're welcome! Now I have to figure out why in Conway's name the SQ unit is breaking, for some programs that the emulator thinks are just fine (like if you use SQX instead of SQY to make a binary adder).
What code are you planning to write next?
No plans for more APGsembly code, really, just more Python code. Have to get a modularized compiler working, so that people can design their own logic circuits and compile them easily into their own calculator patterns.

It _would_ be nice to re-create calcyman's pseudo-ruler sequence pattern. Just not sure what to do for the next higher digit after "9" -- I don't know what calcyman's original pattern would have done.

I think simsim314 wants to put together a primer pattern where the sequence of primes is actually printed out, either using the digit printer or the SQ unit. That seems like a good little challenge. It could either be APGsembly-coded the simplest possible way (try all possible divisors for each number, and print it if you can't find a divisor) -- or with a much more efficient Sieve of Erathosthenes type method.

EDIT: Oh, I think I see the problem with simsim314's six-line binary adder code (if modified to use SQX instead of SQY). There might not be a problem with running SET SQ and DEC SQX actions in parallel (as outputs from the same state) in the emulator, but even there it's pretty questionable: it's undefined which one happens first, and it definitely matters which happens first! The same is actually true even with the original SET SQ, DEC SQY, but there it just happens to work, apparently.

But in the real SQ unit, some of the mechanism for SET SQ gets used for a DEC SQX operation also, and it just doesn't look like the two actions play well together. Revised binary-adder code:

Code: Select all

# Vertical-line binary adder in SQ 
INITIAL; *; A0; NOP

A0; *; A1; READ SQ
A1; Z; AZ; SET SQ, NOP
A1; NZ; ANZ; INC SQX, NOP
AZ; *; B0; DEC SQX
ANZ; ZZ; A0; INC SQY, NOP

B0; Z; A0; NOP
B0; NZ; B1; DEC SQY

# This first B1; Z option shouldn't ever actually happen
#   but we don't have an "NZ only" option in the compiler yet
B1; Z; B0; DEC SQX
B1; NZ; B0; DEC SQX
So now the challenge is to remove some of these lines (or replace them with NOPs) to get a binary adder that draws its line to the northeast, instead of to the north. And then maybe make a safer version of simsim314's original code, drawing the line to the northwest (SQY), but without any questionable simultaneous calls to two actions in the same logic circuit (the SQ unit in this case).

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Smaller Pi Calculator Challenge

Post by gameoflifemaniac » November 30th, 2019, 9:36 am

If I want to make the GPC draw an infinite two-dimensional pattern (for example a fractal), what method of drawing the "pixels" is best?
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » November 30th, 2019, 10:07 am

gameoflifemaniac wrote:
November 30th, 2019, 9:36 am
If I want to make the GPC draw an infinite two-dimensional pattern (for example a fractal), what method of drawing the "pixels" is best?
To do the drawing most efficiently, I guess you'd figure out a way to move the SQX and SQY pointers as short a distance as possible.

For example, to make a Wolfram Rule 90 pattern, maybe you could SET a boat at SQX = 1, SQY = 1, then scan back and forth on horizontal lines re-reading the previous line (and re-SETting bits to ON whenever you get an NZ back), and then apply Rule 90 to the bits you find.

(For other rules you might start at (2,2) instead of (1,1), and use only alternate diagonals to get a normal square grid instead of a 45-degree oriented one. You could start at (0,0), but it might be nice to leave room at the edges so you don't have to add more code to deal with the edges of the board.)

It would probably be more efficient to keep the current two rows in two T registers, and just plot the results in the SQ unit instead of re-reading anything. Here again, the most efficient way to do it would probably be to plot every other row in the opposite direction, to avoid having to move the SQX and SQY pointers long distances. It pretty much has to be different code anyway, since you'd be reading T0 and calculating the contents of T1 on even-numbered passes, then reading T1 and writing back to T0 on odd-numbered passes.

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » February 23rd, 2020, 11:06 pm

Here's a drop-in replacement for the SBR (sliding block register) components in the pi and phi calculators, at a little under a sixth of the old size by bounding box. I tried replacing one of the registers in the phi calculator with this circuit, and it still calculated phi just fine:

Code: Select all

x = 540, y = 884, rule = LifeHistory
161.A$160.A.A$151.2B6.2BAB$148.2A3B7.2B$108.4B2.4B29.B2A3B4.4B$109.4B
2.4B29.4B4.6B$110.4B2.4B27.4B3.9B.B5.B.3B$111.4B2.4B25.29B$112.4B2.4B
23.31B$84.4B2.B3.B.5B3.B6.B.4B2.4B21.33B$84.B3.B.2B2.B.B6.2B5.2B2.4B
2.4B19.34B58.2A$61.2A21.B3.B.B.B.B.B7.B4.B.B3.4B2.4B17.35B39.2A.A.2A
11.B2AB$60.B2AB11.2A.A.2A2.4B2.B2.2B.3B5.B3.B2.B4.4B2.4B15.4B3.29B38.
A2.2A.A2.A.2A.A4.3B$61.3B4.A.2A.A2.A.2A2.A.B3.B.B3.B.B7.B3.5B4.4B2.4B
13.4B7.26B37.A.A4.A.2A.A.2A5.B.B$60.B.B5.2A.A.2A.A4.A.AB3.B.B3.B.B7.B
6.B6.4B2.4B11.4B9.2B.10B2.12B36.A.5A2.B8.5B$60.5B8.B2.5A.A.4B2.B3.B.
5B2.3B5.B7.4B2.6B7.4B13.9B3.4B.3B2.2A38.A4.AB2A6.6B$60.6B6.2ABA4.A39.
4B2.5B6.4B15.14B.2B4.A38.A2.BA.A.2A4.8B$60.8B4.2A.A.AB2.A28.2A9.4B.6B
4.4B16.13B.2BAB4.3A34.A.2BA.A2.13B$61.13B2.A.A2B.A27.A.A9.11B2.4B17.
12B3.A.A6.A34.2A.2BA5.13B$59.13B5.A2B.2A29.A10.6B2C2B.4B19.11B4.A46.
4B2.15B$58.15B3.3B27.2A3.A.2A8.6B2C6B18.4B.8B32.A19.3B2.15B$58.15B3.
2B19.A9.A3.A3.A6.14B19.2A4.7B18.A13.3A16.4B.17B$57.17B.4B16.3A9.A.2A.
2A.A5.15B20.A3.8B16.3A16.A8.29B$57.29B8.A13.A.A.A.A5.17B16.3A3.9B15.A
18.2A7.16B2A13B$56.13B2A16B7.2A14.4B5.19B15.A4.11B14.2A17.5B.B2.16B2A
14B$55.14B2A16B2.B.5B13.4B5.4B2.15B18.4B.8B11.4B19.6B.27B3.B2A$54.2AB
3.27B.6B4.3B6.7B2.5B.B2.10B.4B16.4B3.8B9.3B5.B.7B7.33B4.A2.A$53.A2.A
4.33B2.6B2.2B.8B.8B2.4B.4B2.4B14.4B4.9B7.4B.13B3.B.19B2.2B2.B3.6B5.2A
.A$52.A.2A5.6B3.B2.2B2.25B.16B3.2B.4B3.4B2.4B12.4B4.6B.49B14.6B7.A$
52.A7.6B14.38B.B2.6B5.4B2.4B10.4B5.7B.46B14.9B6.2A$51.2A6.9B14.35B2.
8B7.4B2.4B8.4B7.6B2.44B15.2A4.4B$58.4B4.2A15.34B2.7B9.4B2.4B6.4B8.7B.
22B2A21B15.A5.4B$57.4B5.A15.35B2.6B11.4B2.4B4.4B8.31B2A13B.7B12.3A7.
4B$56.4B7.3A12.7B.27B2.5B13.4B2.4B2.4B9.19B2.2B3.11B2.6B4.3B.B2A10.A
10.4B$55.4B10.A10.2AB.3B4.26B2.5B14.4B2.8B9.18B10.10B3.4B9.BA.A21.4B$
54.4B21.A.AB9.4B2.19B.7B14.4B2.6B6.B3.18B13.6B5.5B10.A22.4B$53.4B22.A
10.5B2.14B3.7B.3B15.4B2.4B6.2AB.15B3.B2A13.3B9.2A10.2A22.4B$52.4B22.
2A10.2A4.3B2A9B6.4B3.2B16.10B5.2A18B2.BA.A14.B9.A36.4B$51.4B36.A4.3B
2A8B6.4B5.B17.10B5.B.3B2A12B5.A14.2A9.3A34.4B$50.4B34.3A6.11B6.4B25.
4B2.4B7.2B2A11B6.2A14.A11.A35.4B$49.4B23.2A10.A11.2B.4B6.4B25.6B2.4B
7.2B2.10B19.3A49.4B$48.4B17.2A3.2B2AB33.4B25.8B2.4B5.2B3.6B.B21.A52.
4B$47.4B17.B2AB2.4B33.4B25.4B2.4B2.4B3.B2AB2.4B79.4B$46.4B19.2B3.6B.B
28.4B25.4B4.4B2.4B3.2A3.2B2AB79.4B$45.4B21.2B2.10B25.4B25.4B6.4B2.4B
9.2A81.4B$44.4B21.2B2A11B6.2A5.A10.4B25.4B8.4B2.4B92.4B$43.4B19.B.3B
2A12B5.A6.3A7.4B25.4B10.4B2.4B92.4B$42.4B19.2A18B2.BA.A9.A5.4B25.4B
12.4B2.4B92.4B$41.4B20.2AB.15B3.B2A9.2A4.4B25.4B14.4B2.4B92.4B$40.4B
22.B3.18B11.9B6.2A17.4B16.4B2.4B92.4B$39.4B27.18B13.6B7.A17.4B18.4B2.
4B92.4B$38.4B29.19B2.2B2.B3.6B5.2A.A16.4B20.4B2.4B92.4B$37.4B30.35B4.
A2.A16.4B22.4B2.4B92.4B$36.4B32.7B.27B3.B2A16.4B24.4B2.4B92.4B$35.4B
33.6B2.16B2A14B16.4B26.4B2.4B92.4B$34.4B33.7B.17B2A13B16.4B28.4B2.4B
14.4B2.B3.B.5B3.B6.B50.4B$33.4B34.6B.32B16.4B30.4B2.4B13.B3.B.2B2.B.B
6.2B5.2B51.4B$32.4B36.9B7.4B.17B15.4B32.4B2.4B12.B3.B.B.B.B.B7.B4.B.B
52.4B$31.4B37.8B9.3B2.15B15.4B10.B3.B.B3.B2.3B4.B3.4B2.4B11.4B2.B2.2B
.3B5.B3.B2.B53.4B$30.4B37.8B9.4B2.15B14.4B11.2B2.B.B3.B.B3.B2.2B4.4B
2.4B10.B3.B.B3.B.B7.B3.5B53.4B$29.4B29.A8.7B6.2A.2BA5.13B14.4B12.B.B.
B.B3.B5.B3.B4.5B2.4B9.B3.B.B3.B.B7.B6.B55.4B$28.4B30.3A6.6B7.A.2BA.A
2.13B15.4B13.B2.2B.B.B.B3.2B4.B4.6B2.4B8.4B2.B3.B.5B2.3B5.B56.4B$27.
4B34.A4.7B8.A2.BA.A.2A4.8B13.4B14.B3.B.B.B.B5.B3.B3.9B.4B92.4B$26.4B
34.2A4.7B9.A4.AB2A6.6B12.4B15.B3.B.2B.2B.B3.B3.B3.9B2.4B92.4B$25.4B
35.4B.8B7.A.5A2.B8.5B11.4B16.B3.B.B3.B2.3B3.3B2.10B2.4B17.B74.4B$24.
4B38.11B6.A.A4.A.2A.A.2A5.B.B10.4B40.12B2.4B15.B76.4B$23.4B38.12B7.A
2.2A.A2.A.2A.A4.3B10.4B40.14B2.4B8.B4.B27.2A49.4B$22.4B39.12B8.2A.A.
2A11.B2AB8.4B31.2A8.15B2.4B7.B3.B27.A.A50.4B$21.4B40.11B28.2A8.4B33.A
9.15B2.4B6.B2.B22.2A4.A53.4B$20.4B42.7B9.2A29.4B34.A.AB4.12B2.4B2.4B
5.B.B21.A2.A2.2A.4A50.4B$19.4B43.8B8.A29.4B21.2A13.2AB.15B3.4B2.4B4.
2B22.2A.A.A.A.A2.A51.4B$18.4B45.9B3.BA.A28.4B21.B2AB14.17B4.4B2.4B3.
5B22.A.ABABAB54.4B$17.4B46.11B.B2A14.A13.4B23.2B15.17B5.4B2.4B29.A.AB
2AB56.4B$16.4B46.14B16.3A10.4B19.B3.2B17.17B.B3.4B2.4B29.AB.2B58.4B$
3.2A10.4B45.B.15B18.A8.4B19.2AB.4B15.19B2A3.4B2.4B31.3B58.4B$4.A9.4B
45.2A15B18.2A7.4B20.2A8B11.19B.B2A4.4B2.4B27.B2.4B6.2A50.4B$2.A10.4B
46.2A13B.B2A16.5B3.4B22.B.B2A6B2.2B2.20B4.B6.4B2.4B26.4B2AB6.A52.4B$
2.5A4.5B5.2A41.14B.BA.A17.3B2.4B26.2A32B12.4B2.4B24.5B2AB3.BA.A53.4B$
7.A2.6B5.A8.2A6.A11.2A12.11B7.A7.2A7.9B27.24B.9B6.2A5.4B2.4B23.10B.B
2A55.4B$4.3AB2.7B.BA.A7.A2.A4.A.A9.B2AB13.10B6.2A6.A8.8B24.28B2.7B6.A
2.A3.6B2.4B21.13B58.4B$3.A.2B3.7B.B2A4.A3.3A.A3.A.A9.3B13.12B10.2A.A.
B3.10B25.28B2.7B6.A.A.B.8B2.4B19.14B59.4B$3.4A12B4.3A6.A.A.2A.2A9.B.B
12.12B10.A2.3AB.2B2A7B24.2A26B4.6B4.2A2.2A10B3.4B6.A10.15B60.4B$.2A2.
BA3B2A7B3.A6.2A3.A.A2.B8.5B12.11B12.2A2.BA3B2A7B24.2A14B.4B10.7B3.A2.
2A2.11B3.4B5.3A7.4B2.8B63.4B$A2.3AB.2B2A9B.2A5.A.4A2.AB2A6.6B10.2A.9B
15.4A12B25.B.11B2.4B12.6B3.2A3.2A11B4.4B7.A5.4B5.6B64.4B$2A.A.B3.15B
7.A3.A.A.2A4.8B10.A3.8B15.A.2B3.7B.B2A25.10B2.4B13.7B7.A2.10B5.4B5.2A
4.4B4.9B64.4B$3.A8.10B8.A2.BA.A2.13B9.A.A3.8B16.3AB2.7B.BA.A25.14B14.
6B9.A2.9B6.4B4.9B5.2A4.4B64.4B$3.2A7.10B7.A.2BA.A5.13B7.2A5.7B19.A2.
6B5.A24.14B15.5B7.3A3.14B2.4B5.6B7.A5.4B64.4B$13.10B6.2A.2BA5.15B12.
7B15.5A4.5B5.2A24.13B14.6B7.A7.13B2.4B2.8B4.3A7.4B64.4B$11.5B.6B10.3B
4.15B13.6B15.A10.4B30.13B8.A5.4B16.14B3.15B2.A10.4B64.4B$11.2A4.7B10.
2B.B.17B12.7B16.A9.4B31.2B.8B3.2A2.A.A4.2B2AB15.14B4.14B14.4B64.4B$
12.A4.6B4.29B12.8B2.2A10.2A10.4B33.8B3.A.A2.A.A5.2A17.13B5.13B15.4B
64.4B$9.3A5.7B2.16B2A13B9.12BA.A22.4B32.8B4.B.2A2.A25.11B7.10B.B2A14.
4B64.4B$9.A7.7B2.16B2A14B8.11B3.A23.4B29.10B3.2B2.A.A24.14B6.5B2AB3.B
A.A14.4B64.4B$16.9B.27B3.B2A7.5B2A4B3.2A23.4B28.2A2.7B.2BAB.A.2A22.
11B2A2B7.4B2AB6.A15.4B64.4B$16.36B4.A2.A6.5B2A3B30.4B13.A14.A2.9BA.A.
A25.11B2AB11.4B6.2A15.4B64.4B$11.B4.20B2.2B2.B3.6B5.2A.A5.10B31.4B10.
3A11.3A4.8B.A2.4A22.14B11.3B25.4B64.4B$10.2AB.19B14.6B7.A5.9B33.4B8.A
14.A6.8B2.2A3.A17.2A4.8B.4B8.AB.2B27.4B64.4B$10.2A19B14.9B6.2A4.9B34.
4B7.2A19.6B6.B.A20.A4.8B2.2B8.A.AB2AB27.4B64.4B$11.B.17B15.2A4.4B12.
8B35.4B3.5B19.7B3.B2AB2A19.A.AB2.8B11.A.ABABAB27.4B64.4B$14.17B15.A5.
4B10.8B37.4B2.3B22.8B.B2A23.2AB2.9B7.2A.A.A.A.A2.A26.4B64.4B$14.17B
12.3A7.4B4.A5.6B20.2A17.9B7.2A12.10B3.2A22.12B7.A2.A2.2A.4A5.2A20.4B
64.4B$14.15B.B2A10.A10.4B3.3A3.6B20.A.A17.8B8.A11.3B2A6B4.A22.12B9.2A
4.A10.A21.4B64.4B$14.12B4.BA.A21.4B5.A2.6B22.A4.2A12.10B3.B.A.2A2.2A
5.2B2A6B3.A23.10B.B2A13.A.A6.A7.2A3.2A10.4B64.4B$13.11B9.A22.4B3.2AB.
7B17.4A.2A2.A2.A10.7B2A2B.B3A2.A3.A5.10B3.2A23.8B2.BA.A13.2A4.4A5.B2A
B.B2AB10.4B64.4B$12.13B8.2A22.4B2.4B.6B17.A2.A.A.A.A.2A10.7B2A3BAB2.
2A4.A.AB2.11B26.8B6.A18.A4.2B3.4B.3B12.4B64.4B$13.12B33.4B3.8B20.BABA
BA.A13.12B4A7.2AB.12B27.8B5.2A16.A2.3A3B3.2B3.B6.3B5.4B64.4B$14.10B
35.4B2.8B21.B2ABA.A11.2AB.7B3.2B.A9.15B27.7B24.2A2.A22B5.4B64.4B$14.
9B8.B3.B.B3.B2.3B4.B8.4B2.8B21.2B.BA11.A.AB.7B2.B3A10.16B23.11B25.2A
25B4.4B64.4B$14.9B8.2B2.B.B3.B.B3.B2.2B9.4B2.7B8.A11.3B14.A5.6B2.A13.
16B.2B19.12B25.A.B.25B3.4B64.4B$14.9B8.B.B.B.B3.B5.B3.B10.4B2.6B6.3A
2.2A6.4B2.B10.2A5.5B4.5A8.18B2A18.12B26.A2.24B2A3.4B64.4B$17.5B9.B2.
2B.B.B.B3.2B4.B11.4B.7B4.A6.A6.B2A4B16.4B10.A7.17B.B2A9.A8.11B24.3A3.
24B2A4.4B64.4B$17.5B9.B3.B.B.B.B5.B3.B12.11B4.2A5.A.AB3.B2A5B14.4B9.A
8.4B2.8B.4B.B9.A.A2.2A3.8B.4B22.A6.24B6.4B64.4B$18.4B9.B3.B.2B.2B.B3.
B3.B13.11B.4B6.2AB.10B13.4B10.2A6.4B4.7B15.A.A2.A.A3.7B4.2A29.16B4.4B
7.4B64.4B$19.4B8.B3.B.B3.B2.3B3.3B13.13B10.13B11.4B18.4B5.6B16.A2.2A.
B4.7B4.A31.12B19.4B64.4B$20.4B43.13B9.14B9.4B6.2A10.4B6.4B19.A.A2.2B
3.6B6.3A29.10B21.4B64.4B$21.4B43.12B9.15B7.4B8.A9.4B5.A3B20.2A.A.BA2B
.7B8.A28.14B19.4B64.4B$22.4B43.11B11.8B2.4B5.4B7.A10.4B5.A.AB24.A.A.A
9B36.16B19.4B64.4B$23.4B43.9B12.6B5.4B3.4B8.5A4.5B5.A.BA22.4A2.A.8B
36.4B.12B20.4B64.4B$24.4B43.8B11.9B4.4B.4B14.A.7B5.A.A23.A3.2A4.6B35.
4B3.11B21.4B64.4B$25.4B41.11B8.4B4.2A5.7B12.3AB2.7B.BA.A.A.A23.A.B6.
6B33.4B2.4B.8B22.4B64.4B$26.4B41.10B7.4B5.A7.5B12.A.2B3.7B.B2A3.2A22.
2AB2AB3.7B32.4B3.2A4.7B23.4B64.4B$27.4B39.11B6.4B7.3A4.5B12.4A12B32.
2AB.8B32.4B5.A4.7B24.4B64.4B$28.4B38.13B3.4B10.A3.7B9.2A2.BA3B2A7B29.
2A3.10B31.4B3.3A6.6B25.4B64.4B$29.4B38.13B.4B14.4B.4B7.A2.3AB.2B2A7B
29.A4.6B2A3B29.4B4.A8.7B25.4B64.4B$30.4B35.3B.15B14.4B3.4B6.2A.A.B3.
10B30.A3.6B2A2B5.2A22.4B14.8B25.4B10.2A52.4B$31.4B34.2A2.9B.4B14.4B5.
4B8.A8.8B28.2A3.10B5.A22.4B16.8B25.4B9.A54.4B$32.4B34.A2.13B3.A10.4B
7.4B7.2A7.9B31.11B2.BA.A21.4B17.9B25.4B10.A53.4B$33.4B30.3A4.11B4.3A
7.4B9.4B16.3B2.4B30.12B.B2A21.4B17.6B.4B18.2A5.5B4.5A54.4B$34.4B29.A
4.13B7.A5.4B11.4B13.5B3.4B28.15B22.4B18.7B.4B18.A5.6B2.A60.4B$35.4B
33.2A2.10B5.2A4.4B13.4B12.2A7.4B26.16B21.4B3.2A15.6B2.4B17.A.AB.7B2.B
3A58.4B$36.4B33.A2.6B.4B4.9B15.4B12.A8.4B22.2B.16B20.4B5.A8.B4.8B3.4B
17.2AB.7B3.2B.A58.4B$37.4B29.3A4.4B3.4B5.6B17.4B8.3A10.4B20.2A18B19.
4B6.A.AB3.4B.6B2AB5.4B18.12B4A59.4B$38.4B28.A14.4B2.8B18.4B7.A13.4B
19.2AB.17B6.A10.4B8.2AB.13B2A2B5.4B17.7B2A3BAB2.2A58.4B$39.4B43.15B
17.4B21.4B19.B.4B.8B2.4B5.3A7.4B11.18B7.4B10.A5.7B2A2B.B3A2.A58.4B$
40.4B43.14B18.4B21.4B25.7B4.4B7.A5.4B12.17B9.4B7.3A5.10B3.B.A.2A59.4B
$41.4B43.13B19.4B21.4B25.6B5.4B5.2A4.4B14.13B13.4B5.A7.8B8.A63.4B$42.
4B43.10B.B2A18.4B21.4B26.4B6.4B4.9B17.12B13.4B4.2A5.9B7.2A64.4B$43.4B
42.5B2AB3.BA.A18.4B21.4B27.3BA5.4B5.6B20.10B14.9B4.4B2.3B75.4B$44.4B
42.4B2AB6.A19.4B21.4B27.BA.A5.4B2.8B20.11B14.6B5.4B3.5B74.4B$45.4B44.
4B6.2A19.4B21.4B27.A.A6.15B19.2B.7B14.8B2.4B7.2A75.4B$46.4B43.3B29.4B
21.4B27.A8.14B19.11B11.15B8.A77.4B$47.4B39.AB.2B31.4B21.4B27.3A6.13B
18.11B12.14B10.3A75.4B$48.4B37.A.AB2AB31.4B21.4B28.A7.10B.B2A16.11B
12.13B13.A76.4B$49.4B36.A.ABABAB31.4B21.4B35.5B2AB3.BA.A6.A8.11B10.2A
B.10B92.4B$50.4B32.2A.A.A.A.A2.A30.4B21.4B35.4B2AB6.A5.A.A2.2A3.8B2.B
2A7.A.AB3.B2A5B93.4B$51.4B31.A2.A2.2A.4A31.4B21.4B37.4B6.2A3.A.A2.A.A
3.7B3.BA.A6.A6.B2A4B95.4B$52.4B32.2A4.A36.4B21.4B36.3B12.A2.2A.B4.7B
6.A5.2A6.4B99.4B$53.4B37.A.A35.4B21.4B32.AB.2B14.A.A2.2B3.6B7.2A13.3B
100.4B$54.4B37.2A36.4B21.4B30.A.AB2AB12.2A.A.BA2B.7B23.2B.BA98.4B$55.
4B75.4B21.4B29.A.ABABAB14.A.A.A9B22.B2ABA.A98.4B$56.4B75.4B21.4B25.2A
.A.A.A.A2.A9.4A2.A.8B22.BABABA.A99.4B76.4B$57.4B75.4B21.4B24.A2.A2.2A
.4A9.A3.2A2.8B20.A2.A.A.A.A.2A97.4B74.4B$58.4B75.4B21.4B25.2A4.A15.A.
B6.6B19.4A.2A2.A2.A27.2A69.4B72.4B$59.4B75.4B21.4B30.A.A12.2AB2AB3.7B
23.A4.2A10.2A.A.2A11.B2AB69.4B52.5D13.4B$60.4B75.4B21.4B30.2A15.2AB.
8B22.A.A15.A2.2A.A2.A.2A.A4.3B71.4B54.2D12.4B$61.4B75.4B21.4B43.2A3.
10B22.2A15.A.A4.A.2A.A.2A5.B.B71.4B52.D.D11.4B$62.4B75.4B21.4B42.A4.
6B2A3B39.A.5A2.B8.5B72.4B50.D2.D10.4B66.B$63.4B75.4B21.4B42.A3.6B2A2B
5.2A35.A4.AB2A6.6B73.4B48.D3.D9.4B66.2B$64.4B75.4B21.4B40.2A3.10B5.A
5.2A28.A2.BA.A.2A4.8B74.4B46.D13.4B66.3B$65.4B75.4B21.4B43.11B2.BA.A
4.A.A27.A.2BA.A2.13B76.4B44.D13.4B66.4B$66.4B75.4B21.4B42.12B.B2A5.A
29.2A.2BA5.13B75.4B42.D13.4B66.4B$67.4B75.4B21.4B40.15B5.2A.A3.2A27.
3B3.15B75.4B40.D13.4B66.4B$68.4B75.4B21.4B38.16B4.A3.A3.A9.A19.2B3.
15B76.4B38.D13.4B66.4B$69.4B75.4B21.4B34.2B.16B4.A.2A.2A.A9.3A16.4B.
17B76.4B28.6D16.4B66.4B$70.4B75.4B21.4B32.2A18B5.A.A.A.A13.A8.29B77.
4B31.D16.4B66.4B$71.4B75.4B21.4B31.2AB.17B5.4B14.2A7.16B2A13B77.4B30.
D15.4B66.4B$72.4B75.4B21.4B31.B.4B.8B2.4B5.4B13.5B.B2.16B2A14B77.4B
28.D15.4B66.4B$73.4B75.4B21.4B37.7B4.4B3.7B6.3B4.6B.27B3.B2A77.4B27.D
14.4B66.4B$74.4B75.4B21.4B37.6B5.4B.8B.2B2.6B2.33B4.A2.A77.4B25.D14.
4B66.4B$75.4B75.4B21.4B38.4B6.16B.25B2.2B2.B3.6B5.2A.A77.4B24.D13.4B
66.4B$76.4B75.4B21.4B39.3BA5.38B14.6B7.A78.4B22.D13.4B66.4B$77.4B75.
4B21.4B39.BA.A5.35B14.9B6.2A78.4B21.D12.4B66.4B$78.4B75.4B21.4B39.A.A
6.33B15.2A4.4B86.4B19.6D7.4B66.4B$79.4B75.4B21.4B39.A8.33B15.A5.4B86.
4B30.4B66.4B$80.4B75.4B21.4B39.3A6.24B.7B12.3A7.4B86.4B28.4B66.4B$81.
4B75.4B21.4B40.A7.22B4.3B.B2A10.A10.4B86.4B26.4B66.4B$82.4B75.4B21.4B
48.14B2.4B9.BA.A21.4B86.4B24.4B66.4B$83.4B75.4B21.4B48.14B2.5B10.A22.
4B86.4B22.4B66.4B$84.4B75.4B21.4B12.4B2.B3.B.5B3.B6.B8.9B2A3B4.2A10.
2A22.4B86.4B20.4B66.4B$85.4B75.4B21.4B11.B3.B.2B2.B.B6.2B5.2B9.8B2A3B
4.A36.4B86.4B18.4B66.4B$86.4B75.4B21.4B10.B3.B.B.B.B.B7.B4.B.B3.5B2.
11B6.3A34.4B86.4B16.4B66.4B$87.4B75.4B21.4B9.4B2.B2.2B.3B5.B3.B2.B6.
2B3.4B.2B11.A35.4B86.4B14.4B66.4B$88.4B75.4B21.4B8.B3.B.B3.B.B7.B3.5B
4.B.B4.4B50.4B86.4B12.4B66.4B$89.4B75.4B21.4B7.B3.B.B3.B.B7.B6.B4.B2.
B5.4B50.4B86.4B10.4B66.4B$90.4B75.4B21.4B6.4B2.B3.B.5B2.3B5.B3.B3.B6.
4B10.2A38.4B86.4B8.4B66.4B$91.4B75.4B21.4B35.B12.4B9.A40.4B86.4B6.4B
66.4B$92.4B75.4B21.4B33.B14.4B10.A39.4B86.4B4.4B66.4B$93.4B75.4B21.4B
10.2A19.B9.2A5.5B4.5A40.4B86.4B2.4B66.4B$94.4B75.4B21.4B9.A31.A5.7B.A
46.4B86.8B66.4B13.5D$95.4B75.4B21.4B10.A29.A.AB.7B2.B3A44.4B86.6B66.
4B17.2D$96.4B75.4B14.2A5.5B4.5A30.2AB.7B3.2B.A44.4B86.4B66.4B17.D.D$
97.4B75.4B14.A5.7B.A37.12B4A45.4B84.6B64.4B17.D2.D$98.4B75.4B13.A.AB.
7B2.B3A34.7B2A3BAB2.2A44.4B82.8B62.4B17.D3.D$99.4B75.4B13.2AB.7B3.2B.
A33.7B2A2B.B3A2.A44.4B80.4B2.4B60.4B17.D$100.4B75.4B14.12B4A33.10B3.B
.A.2A45.4B78.4B4.4B58.4B17.D$101.4B75.4B13.7B2A3BAB2.2A30.8B8.A49.4B
76.4B6.4B56.4B17.D$102.4B75.4B12.7B2A2B.B3A2.A19.2A7.9B7.2A50.4B74.4B
8.4B54.4B17.D$103.4B75.4B11.10B3.B.A.2A18.B2AB5.4B2.3B61.4B72.4B10.4B
52.4B17.D$104.4B75.4B9.8B8.A21.3B5.4B3.5B60.4B70.4B12.4B50.4B$105.4B
75.4B7.9B7.2A22.B.B3.4B7.2A61.4B68.4B14.4B48.4B$106.4B75.4B5.4B2.3B
30.6B.4B8.A63.4B66.4B16.4B46.4B$107.4B75.4B3.4B3.5B18.2A8.10B10.3A61.
4B64.4B18.4B44.4B5.D5.D.6D$108.4B75.4B.4B7.2A9.2A6.B2A2B3.12B7.2A4.A
62.4B62.4B20.4B42.4B6.2D4.D5.D$109.4B75.7B8.A11.A11B2.12B8.A69.4B60.
4B22.4B40.4B7.D.D3.D5.D$110.4B75.5B10.3A8.A.A22B6.BA.A70.4B58.4B24.4B
38.4B8.D.D3.D4.D$111.4B74.5B12.A9.2A22B2.3B.B2A13.2A57.4B56.4B26.4B
36.4B9.D2.D2.D4.D$112.4B72.7B23.29B14.B2AB57.4B54.4B28.4B34.4B10.D2.D
2.D3.D$113.4B70.4B.4B22.29B15.2B59.4B52.4B30.4B32.4B11.D3.D.D3.D$114.
4B68.4B3.4B21.28B17.2B3.B55.4B10.2A38.4B32.4B30.4B12.D3.D.D2.D$115.4B
66.4B5.4B20.29B15.4B.B2A55.4B9.A38.4B34.4B28.4B13.D4.2D2.D$116.4B64.
4B7.4B18.32B11.8B2A56.4B10.A35.4B36.4B26.4B14.D5.D.6D$117.4B62.4B9.4B
16.11B2.2B.20B2.2B2.6B2AB.B51.2A5.5B4.5A34.4B38.4B24.4B$118.4B60.4B
11.4B14.4B3.B.BAB3.B2.31B2A25.2A11.A6.2A8.A5.6B2.A38.4B40.4B22.4B$
119.4B58.4B13.4B12.4B3.2A.A.A7.7B.24B24.B2AB9.A.A.B2.A2.A7.A.AB.7B2.B
3A34.4B42.4B20.4B$120.4B56.4B15.4B10.4B5.ABA.3A5.6B2.28B21.3B9.A.A2B.
A.3A3.A4.2AB.7B3.2B.A32.4B44.4B18.4B$121.4B54.4B17.4B8.4B4.A4.A3.A3.
6B3.28B20.B.B9.2A.2ABA.A6.3A4.12B4A31.4B46.4B16.4B$122.4B52.4B19.4B6.
4B5.4A.A2.A4.4B6.26B2A19.5B8.3BABA3.2A6.A3.7B2A3BAB2.2A28.4B48.4B14.
4B$123.4B50.4B21.4B4.4B9.A.A.A5.2B2AB12.4B.14B2A19.6B6.2ABAB.4A.A5.2A
.9B2A2B.B3A2.A26.4B50.4B12.4B$124.4B36.2A10.4B23.4B2.4B7.3A3.A4.2AB.
2A14.4B2.11B.B20.8B4.2ABA.A3.A7.15B3.B.A.2A25.4B52.4B10.4B$125.4B36.A
9.4B25.8B8.A9.A.AB18.4B2.10B23.14B.A.AB2.A8.10B8.A27.4B54.4B8.4B$126.
4B33.A10.4B27.6B19.A22.14B22.15B3.A.A2B.A7.10B7.2A26.4B56.4B6.4B$127.
4B32.5A4.5B5.2A22.4B19.2A23.14B20.15B5.A2B.2A6.10B35.4B58.4B4.4B$128.
4B36.A.7B5.A22.6B43.13B21.15B4.3B10.6B.5B32.4B60.4B2.4B$129.4B32.3AB
2.7B.BA.A21.8B33.A8.13B20.17B.B.2B10.7B4.2A31.4B62.8B$130.4B30.A.2B3.
7B.B2A21.4B2.4B31.A.A2.2A3.8B.2B22.29B4.6B4.A31.4B64.6B$131.4B29.4A
12B22.4B4.4B29.A.A2.A.A3.8B24.13B2A16B2.7B5.3A27.4B66.4B$132.4B26.2A
2.BA3B2A7B21.4B6.4B28.A2.2A.B4.8B23.14B2A16B2.7B7.A26.4B66.6B$133.4B
24.A2.3AB.2B2A7B20.4B8.4B28.A.A2.2B3.10B20.2AB3.27B.9B32.4B66.8B$134.
4B23.2A.A.B3.10B19.4B10.4B26.2A.A.BA2B.7B2.2A19.A2.A4.36B31.4B66.4B2.
4B$135.4B25.A8.8B6.A10.4B12.4B28.A.A.A9B2.A19.A.2A5.6B3.B2.2B2.20B4.B
25.4B66.4B4.4B$136.4B24.2A7.9B5.3A7.4B14.4B24.4A2.A.8B4.3A16.A7.6B14.
19B.B2A23.4B66.4B6.4B$137.4B33.3B2.4B7.A5.4B16.4B23.A3.2A2.8B6.A15.2A
6.9B14.19B2A22.4B66.4B8.4B$138.4B30.5B3.4B5.2A4.4B18.4B24.A.B6.6B28.
4B4.2A15.17B.B22.4B66.4B10.4B$139.4B29.2A7.4B4.9B20.4B22.2AB2AB3.7B
27.4B5.A15.17B24.4B66.4B12.4B$140.4B29.A8.4B5.6B22.4B24.2AB.8B27.4B7.
3A12.17B23.4B66.4B14.4B$141.4B25.3A10.4B2.8B23.4B20.2A3.10B26.4B10.A
10.2AB.15B22.4B66.4B16.4B$142.4B24.A13.15B22.4B19.A4.6B2A3B24.4B21.A.
AB4.12B21.4B66.4B18.4B$143.4B38.14B23.4B19.A3.6B2A2B5.2A17.4B22.A9.
11B19.4B66.4B20.4B$144.4B38.13B24.4B17.2A3.10B5.A17.5B3.B.B3.B2.3B4.B
.2A8.13B17.4B66.4B22.4B$145.4B38.10B.B2A23.4B20.11B2.BA.A16.4B.2B2.B.
B3.B.B3.B2.2B11.12B17.4B66.4B24.4B$146.4B37.5B2AB3.BA.A23.4B19.12B.B
2A16.4B2.B.B.B.B3.B5.B3.B6.A5.10B17.4B66.4B26.4B$147.4B37.4B2AB6.A24.
4B17.15B17.4B3.B2.2B.B.B.B3.2B4.B6.3A4.9B16.4B66.4B28.4B$148.4B36.B2.
4B6.2A24.4B15.16B16.4B4.B3.B.B.B.B5.B3.B9.A3.9B15.4B66.4B30.4B$149.4B
38.3B34.4B11.2B.16B15.4B5.B3.B.2B.2B.B3.B3.B8.2A3.9B14.4B66.4B32.4B$
150.4B34.AB.2B36.4B9.2A18B14.4B6.B3.B.B3.B2.3B3.3B7.5B.6B15.4B66.4B
34.4B$151.4B32.A.AB2AB36.4B8.2AB.17B12.4B38.3B.5B15.4B66.4B36.4B$152.
4B31.A.ABABAB36.4B8.B.4B.8B2.4B10.4B29.2A7.9B15.4B66.4B38.4B$153.4B
27.2A.A.A.A.A2.A35.4B14.7B4.4B8.4B30.A8.8B15.4B66.4B40.4B$154.4B26.A
2.A2.2A.4A36.4B14.6B5.4B6.4B28.2A.A.B3.10B15.4B66.4B42.4B$155.4B27.2A
4.A41.4B15.4B6.4B4.4B29.A2.3AB.2B2A7B14.4B66.4B44.4B$156.4B32.A.A40.
4B16.3BA5.4B2.4B31.2A2.BA3B2A7B13.4B66.4B46.4B$157.4B32.2A41.4B16.BA.
A5.8B34.4A12B12.4B66.4B48.4B$158.4B75.4B16.A.A6.6B35.A.2B3.7B.B2A9.4B
66.4B50.4B$159.4B75.4B16.A8.4B37.3AB2.7B.BA.A7.4B66.4B52.4B$160.4B75.
4B16.3A4.6B39.A.7B5.A6.4B66.4B54.4B10.5D$161.4B75.4B17.A3.8B33.5A4.5B
5.2A4.4B66.4B56.4B9.2D$162.4B75.4B19.4B2.4B32.A10.4B9.4B66.4B58.4B8.D
.D$163.4B75.4B10.A6.4B4.4B33.A9.4B7.4B66.4B60.4B7.D2.D$164.4B75.4B7.
3A5.4B6.4B31.2A10.4B5.4B66.4B62.4B6.D3.D$165.4B75.4B5.A7.4B8.4B43.4B
3.4B66.4B64.4B10.D$166.4B75.4B4.2A5.4B10.4B43.4B.4B66.4B66.4B10.D$
167.4B75.9B4.4B12.4B43.7B66.4B68.4B10.D$168.4B75.6B5.4B14.4B43.5B66.
4B70.4B10.D$169.4B74.8B2.4B16.4B42.5B65.4B72.4B10.D$170.4B71.15B18.4B
40.7B8.B3.B.5B3.B4.3B2.5B3.B6.B15.4B74.4B$171.4B70.14B20.4B38.4B.4B7.
2B2.B.B6.2B3.B7.B4.2B5.2B14.4B76.4B$172.4B69.13B22.4B36.4B3.4B6.B.B.B
.B7.B3.B7.B5.B4.B.B3.4B6.4B78.4B$173.4B66.2AB.10B24.4B34.4B5.4B5.B2.
2B.3B5.B3.4B4.B5.B3.B2.B2.B3.B5.4B80.4B$174.4B64.A.AB3.B2A5B25.4B32.
4B7.4B4.B3.B.B7.B3.B3.B3.B5.B3.5B.B3.B4.4B82.4B7.7D2.5D4.6D4.3D$175.
4B63.A6.B2A4B27.4B30.4B9.4B3.B3.B.B7.B3.B3.B3.B5.B6.B2.B3.B3.4B84.4B
9.D5.D4.D3.D8.D3.D$176.4B61.2A6.4B2.B28.4B28.4B11.4B2.B3.B.5B2.3B3.3B
4.B4.3B5.B3.4B2.4B86.4B8.D5.D5.D2.D7.D5.D$177.4B69.3B32.4B26.4B13.4B
49.4B88.4B7.D5.D5.D2.D7.D$178.4B69.2B.BA30.4B24.4B15.4B47.4B90.4B6.D
5.D5.D2.5D3.D$179.4B67.B2ABA.A30.4B22.4B17.4B10.A34.4B92.4B5.D5.D5.D
2.D7.D$180.4B65.BABABA.A31.4B20.4B19.4B7.3A33.4B94.4B4.D5.D5.D2.D7.D$
181.4B62.A2.A.A.A.A.2A29.4B18.4B21.4B5.A21.B13.2B.B96.4B3.D5.D5.D2.D
7.D5.D$182.4B61.4A.2A2.A2.A30.4B16.4B23.4B4.2A19.3B11.4B98.4B2.D5.D4.
D3.D8.D3.D$183.4B64.A4.2A33.4B14.4B17.2A6.9B14.9B8.5B100.4B.D5.5D4.6D
4.3D$184.4B61.A.A40.4B12.4B19.A7.6B13.13B3.8B102.4B$185.4B60.2A42.4B
10.4B20.A.2A5.6B3.B2.2B2.26B103.4B$186.4B104.4B8.4B22.A2.A4.43B103.4B
$187.4B104.4B6.4B24.2AB3.44B.3B100.4B$188.4B104.4B4.4B26.14B2A13B2A
22B101.4B$189.4B104.4B2.4B28.13B2A13B2A21B2A101.4B$190.4B104.8B30.48B
.B2A102.4B$191.4B104.6B31.17B.4B2.23B3.B104.4B$192.4B104.4B33.15B2.5B
3.B2.18B109.4B$193.4B63.B3.B.5B2.3B2.5B2.3B11.6B32.15B2.2B9.17B111.4B
$194.4B62.2B2.B.B5.B3.B3.B3.B3.B9.8B32.15B12.17B112.4B$195.4B61.B.B.B
.B5.B3.B3.B7.B8.4B2.4B33.14B11.18B112.4B$196.4B60.B2.2B.3B4.3B4.B5.2B
8.4B4.4B31.8B4.2ABA11.18B2.2A108.4B$197.4B59.B3.B.B5.B3.B3.B7.B6.4B6.
4B30.6B6.2AB3A8.5B2.12B3.A109.4B$198.4B58.B3.B.B5.B3.B3.B3.B3.B5.4B8.
4B29.5B8.3B2.A6.4B4.14B.A.2A107.4B$199.4B57.B3.B.5B2.3B4.B4.3B5.4B10.
4B28.B.B9.2A.3A6.4B6.7B4.2A.2A.A108.4B$200.4B88.4B12.4B28.3B9.A.AB6.
4B6.10B3.A114.4B$201.4B86.4B14.4B26.B2AB9.A.A6.4B8.5B.B2A.A.A115.4B$
202.4B36.A47.4B16.4B26.2A11.A6.4B10.4B.B2AB2A117.4B$203.4B35.3A29.A
14.4B18.4B44.4B11.3B4.B121.4B$204.4B37.A28.3A11.4B20.4B42.4B13.2B3.2A
.2A119.4B$205.4B35.2A4.2B25.A9.4B22.4B40.4B20.A.A121.4B$206.4B30.B3.
8B24.2A8.4B24.4B38.4B21.A.A122.4B$207.4B27.4B4.7B11.2A10.6B3.4B26.4B
36.4B23.A124.4B$208.4B25.6B.9B12.A12.5B.4B28.4B34.4B150.4B$209.4B10.A
13.6B.10B11.A.AB7.11B30.4B32.4B152.4B$210.4B7.3A12.19B11.2AB.3B3.13B
29.4B30.4B154.4B$211.4B5.A14.19B14.20B2A29.4B28.4B156.4B$212.4B4.2A
13.17B16.20B2A30.4B26.4B158.4B$205.2A6.9B14.15B18.20B32.4B24.4B160.4B
$206.A7.6B14.17B17.21B33.4B22.4B162.4B$206.A.2A5.6B3.B2.2B2.22B13.20B
37.4B20.4B164.4B$207.A2.A4.41B3.2B2.22B39.4B18.4B166.4B$208.2AB3.27B.
40B.4B38.4B16.4B168.4B$209.14B2A16B2.30B.7B4.2A39.4B14.4B170.4B$210.
13B2A16B2.38B4.A41.4B12.4B172.4B$211.29B4.38B4.3A39.4B10.4B174.4B$
211.17B.4B10.32B3.4B6.A40.4B8.4B176.4B$212.15B2.5B10.16B.4B5.4B3.B2A
2B48.4B6.4B178.4B$212.15B2.2B.A2B.2A6.12B5.3B5.4B5.2A.B2A47.4B4.4B
180.4B$213.15B3.A.A2B.A6.9B6.4B5.4B9.BA.A47.4B2.4B182.4B$215.14B.A.AB
2.A6.11B5.2A6.4B13.A48.8B184.4B$214.8B4.2ABA.A3.A8.7B.B2A5.A5.4B14.2A
48.6B186.4B$214.6B6.2ABAB.4A.A8.4B2.BA.A.3A5.4B66.4B188.4B$214.5B8.3B
ABA3.2A7.B2A2B5.A.A6.4B66.6B188.4B$214.B.B9.2A.2ABA.A11.2A7.2A6.4B66.
8B188.4B$215.3B9.A.A2B.A.3A24.4B66.4B2.4B7.5D176.4B$214.B2AB9.A.A.B2.
A2.A23.4B66.4B4.4B6.2D180.4B$215.2A11.A6.2A23.4B66.4B6.4B5.D.D180.4B$
259.4B66.4B8.4B4.D2.D180.4B$258.4B66.4B10.4B3.D3.D180.4B$257.4B66.4B
12.4B7.D180.4B$256.4B66.4B14.4B7.D180.4B$255.4B66.4B16.4B7.D6.D2.D5.D
3.3D$254.4B66.4B18.4B7.D5.D2.2D4.D2.D3.D$253.4B66.4B20.4B7.D4.D2.D.D
3.D.D5.D$252.4B66.4B22.4B11.D2.D.D3.D.D$251.4B66.4B24.4B10.D2.D2.D2.D
.D$250.4B66.4B26.4B9.D2.D2.D2.D.D$249.4B66.4B28.4B8.D2.D3.D.D.D$248.
4B66.4B30.4B7.D2.D3.D.D.D5.D$247.4B66.4B32.4B6.D2.D4.2D2.D3.D$246.4B
66.4B34.4B5.D2.D5.D3.3D$245.4B66.4B36.4B$244.4B66.4B38.4B$243.4B66.4B
40.4B$224.5D13.4B66.4B42.4B$227.2D12.4B66.4B44.4B$226.D.D11.4B66.4B
46.4B$225.D2.D10.4B66.4B48.4B$224.D3.D9.4B66.4B50.4B$223.D13.4B66.4B
52.4B$222.D13.4B66.4B54.4B$221.D13.4B66.4B56.4B$220.D13.4B66.4B58.4B$
219.D13.4B66.4B60.4B$210.6D16.4B66.4B62.4B$214.D16.4B66.4B64.4B$214.D
15.4B66.4B66.4B$213.D15.4B66.4B68.4B$213.D14.4B66.4B70.4B$212.D14.4B
66.4B72.4B$212.D13.4B66.4B74.4B$211.D13.4B66.4B76.4B$211.D12.4B66.4B
78.4B$210.6D7.4B66.4B80.4B$222.4B66.4B82.4B$221.4B66.4B84.4B$220.4B
66.4B86.4B$219.4B66.4B88.4B$218.4B66.4B90.4B$217.4B66.4B92.4B$216.4B
66.4B94.4B$285.4B96.4B$284.4B98.4B$283.4B100.4B$282.4B102.4B$281.4B
104.4B$280.4B106.4B$279.4B108.4B$278.4B110.4B$277.4B13.5D94.4B$276.4B
17.2D95.4B$275.4B17.D.D96.4B$274.4B17.D2.D97.4B$273.4B17.D3.D98.4B$
272.4B17.D104.4B$271.4B17.D106.4B$270.4B17.D108.4B$269.4B17.D110.4B$
268.4B17.D112.4B$267.4B132.4B$266.4B134.4B$265.4B136.4B$264.4B5.D5.D.
6D119.4B$263.4B6.2D4.D5.D121.4B$273.D.D3.D5.D122.4B$273.D.D3.D4.D124.
4B$273.D2.D2.D4.D125.4B$273.D2.D2.D3.D127.4B$273.D3.D.D3.D128.4B$273.
D3.D.D2.D130.4B$273.D4.2D2.D131.4B$273.D5.D.6D128.4B$416.4B$417.4B$
418.4B$419.4B$420.4B$421.4B$422.4B$423.4B$424.4B$425.4B$426.4B$427.4B
$428.4B$429.4B10.2A$430.4B9.A$431.4B10.A$425.2A5.5B4.5A$426.A5.6B2.A$
426.A.AB.7B2.B3A$427.2AB.7B3.2B.A$429.12B4A$429.7B2A3BAB2.2A$429.7B2A
2B.B3A2.A$429.10B3.B.A.2A$428.8B8.A$427.9B7.2A$426.4B2.3B$425.4B3.5B$
424.4B7.2A$423.4B8.A$422.4B10.3A$421.4B13.A$420.4B$419.4B$418.4B$417.
4B$416.4B$415.4B$414.4B$413.4B$412.4B$411.4B$410.4B$409.4B$408.4B$
407.4B$406.4B$405.4B$404.4B$403.4B$402.4B$401.4B$400.4B$399.4B$398.4B
$397.4B$396.4B$395.4B$394.4B$393.4B$392.4B$391.4B$390.4B$389.4B$388.
4B$387.4B$386.4B$385.4B$384.4B$383.4B$382.4B$381.4B$380.4B$379.4B$
378.4B$377.4B$376.4B$375.4B$374.4B$373.4B$372.4B$371.4B$370.4B$369.4B
$368.4B$367.4B$366.4B$365.4B$364.4B$363.4B$362.4B$361.4B$360.4B$359.
4B$358.4B$357.4B$356.4B$355.4B$354.4B$353.4B$352.4B$351.4B$350.4B$
349.4B$348.4B$347.4B$346.4B$345.4B$344.4B$343.4B$342.4B$341.4B$340.4B
$339.4B$338.4B$337.4B$336.4B$335.4B$334.4B$333.4B$332.4B$331.4B$330.
4B$329.4B$328.4B$327.4B$326.4B$325.4B$324.4B$323.4B$322.4B$321.4B$
320.4B$319.4B$318.4B$317.4B$316.4B$315.4B$314.4B$313.4B$312.4B$311.4B
$310.4B$309.4B$308.4B$307.4B$306.4B$305.4B$304.4B$303.4B$302.4B$301.
4B$300.4B$299.4B$298.4B$297.4B$296.4B$295.4B$294.4B$293.4B$292.4B$
291.4B$290.4B$289.4B$288.4B$287.4B$286.4B$285.4B$284.4B$283.4B$282.4B
$281.4B$280.4B$279.4B$278.4B$277.4B$276.4B$275.4B$274.4B$273.4B$272.
4B$271.4B$270.4B$269.4B$268.4B$267.4B$266.4B$265.4B$264.4B$263.4B$
262.4B$261.4B$260.4B$259.4B$258.4B$257.4B$256.4B$255.4B$254.4B$253.4B
$252.4B$251.4B$250.4B$249.4B$248.4B$247.4B$246.4B$245.4B$244.4B$243.
4B$242.4B$241.4B$240.4B$239.4B$238.4B$237.4B$236.4B$235.4B$234.4B$
233.4B$232.4B$231.4B$230.4B$229.4B$228.4B$227.4B$226.4B$225.4B$224.4B
$223.4B$222.4B$221.4B$220.4B$219.4B$218.4B$217.4B$216.4B$215.4B$214.
4B$213.4B$212.4B$211.4B$210.4B$209.4B$208.4B$207.4B$206.4B$205.4B$
204.4B$203.4B$202.4B$201.4B$200.4B$199.4B$198.4B$197.4B$196.4B$195.4B
$194.4B$193.4B$192.4B$191.4B$190.4B$189.4B$188.4B$187.4B$186.4B$185.
4B$184.4B$183.4B$182.4B$181.4B$180.4B$179.4B$178.4B$177.4B$176.4B$
175.4B$174.4B$173.4B$172.4B$171.4B$170.4B$169.4B$168.4B$167.4B$166.4B
$165.4B$164.4B$163.4B$162.4B$161.4B$160.4B$159.4B$158.4B$157.4B$156.
4B$155.4B$154.4B$153.4B$152.4B$151.4B$150.4B$149.4B$148.4B$147.4B$
146.4B$145.4B$144.4B$143.4B$142.4B$141.4B$140.4B$139.4B$138.4B$137.4B
$136.4B$135.4B$134.4B$133.4B$132.4B$131.4B$130.4B$129.4B$128.4B$127.
4B$126.4B$125.4B$124.4B$123.4B$122.4B$121.4B$120.4B$119.4B$118.4B$
117.4B$116.4B$115.4B$114.4B$113.4B$112.4B$111.4B$110.4B$109.4B$108.4B
$107.4B$106.4B$105.4B$104.4B$103.4B$102.4B$101.4B$100.4B$99.4B$98.4B$
97.4B$96.4B$95.4B$94.4B$93.4B$92.4B$91.4B$90.4B$89.4B$88.4B$87.4B$86.
4B$85.4B$84.4B$83.4B$82.4B$81.4B$80.4B$79.4B$78.4B$77.4B$76.4B$75.4B$
74.4B$73.4B$72.4B$71.4B$70.4B$69.4B$68.4B$67.4B$66.4B$65.4B$64.4B$63.
4B$62.4B$61.4B$60.4B$59.4B$58.4B$57.4B$56.4B$55.4B$54.4B$53.4B$52.4B$
51.4B$50.4B$49.4B$48.4B$47.4B$46.4B$45.4B$44.4B$43.4B$42.4B$41.4B$40.
4B$39.4B$38.4B$37.4B$36.4B$35.4B$34.4B$33.4B$32.4B$31.4B$30.4B$29.4B$
28.4B$27.4B$26.4B$25.4B$24.4B$11.2A10.4B$12.A9.4B$10.A10.4B$10.5A4.5B
5.2A$15.A2.6B5.A$12.3AB2.7B.BA.A$11.A.2B3.7B.B2A$11.4A12B$9.2A2.BA3B
2A7B$8.A2.3AB.2B2A7B$8.2A.A.B3.10B$11.A8.8B$11.2A7.9B$21.3B2.4B$19.5B
3.4B$19.2A7.4B$20.A8.4B$17.3A10.4B$17.A13.4B$32.4B$33.4B$34.4B$35.4B$
36.4B$37.4B$38.4B$39.4B$40.4B$41.4B$42.4B$43.4B$44.4B$45.4B7.5D$46.4B
6.2D$47.4B5.D.D$48.4B4.D2.D$49.4B3.D3.D$50.4B7.D$51.4B7.D$52.4B7.D6.D
2.D5.D3.3D$53.4B7.D5.D2.2D4.D2.D3.D$54.4B7.D4.D2.D.D3.D.D5.D$55.4B11.
D2.D.D3.D.D$56.4B10.D2.D2.D2.D.D$57.4B9.D2.D2.D2.D.D$58.4B8.D2.D3.D.D
.D$59.4B7.D2.D3.D.D.D5.D$60.4B6.D2.D4.2D2.D3.D$61.4B5.D2.D5.D3.3D$62.
4B$63.4B$64.4B$65.4B!
If anyone wants to improve the wiring in this thing, and shrink it down a bit further, your work might well get borrowed for Nathaniel's Game of Life textbook (chapter 9, Universal Computation). It works fine as it stands, but could probably be untangled a bit.

For example, it might be easier to illustrate and explain this circuit if the path for the INC glider#3 insertion didn't intersect the NZ output signal path. And the signal paths near the demultiplexer in the northwest are a bit of a snarl, too.

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » March 20th, 2020, 1:51 am

Just started a quick rebuild of the digit printer from the pi and phi calculators. Signal technology has improved to the point where it should be possible to reduce the area by a a factor of ten or so. Could probably reduce the size of the printed digits by a factor of two as a result.

Probably a good goal would be a script that builds a printer with any number of character inputs, at whatever spacing might be wanted, and any font (defined by an input bitmap). I think calcyman used to have some printer-building code along these lines, but the printer design is wonderfully modular and it really isn't too difficult to rebuild it out of new pieces.

Here's the first piece, which is the edge-shooting shotgun that produces an offset block at the current cursor location, safely out of the way of the PUSH salvo. Old version:

Code: Select all

x = 1236, y = 865, rule = LifeHistory
434.B$432.4B$432.6B$403.2A26.9B$404.A4.3B16.13B$404.A.A5B14.16B$405.
2A6B13.16B$407.6B6.B5.17B$408.6B.B2.25B$407.38B$407.39B$405.B2.39B$
404.2AB.40B$404.2A4B2A37B$405.2B.2B2A6B3.24B.4B$408.5B2.B5.24B2.4B$
407.6B8.23B4.4B$407.4B10.23B5.4B$407.2B2AB8.20B2.B7.4B$405.2AB.2A9.
19B12.4B$404.A.AB10.2AB.12B.2B15.4B$404.A12.A.AB.8B.3B19.4B$403.2A12.
A4.7B25.4B$416.2A4.7B26.4B$409.2A11.6B28.4B$410.A2.2A6.7B29.4B$410.A.
A.A5.8B30.4B$411.A.B5.8B32.4B$413.2B3.9B33.4B$412.BA2B.4B.6B33.4B$
412.A.A5B.7B34.4B$413.A.4B2.6B36.4B$410.3A4.B3.6B37.4B$410.A5.2B2.7B
38.4B$414.13B39.4B$413.16B38.4B$413.16B39.4B$413.17B39.4B$413.17B40.
4B$412.19B40.4B$413.19B40.4B$413.19B41.4B$413.20B41.4B$413.20B42.4B$
413.20B43.4B$413.7BA13B43.4B$413.6BABA12B44.4B$416.2BA2BA13B44.4B$
416.3B2A14B45.4B$420.17B44.4B$423.15B44.4B$423.15B45.4B$422.17B.2B42.
4B$239.A181.20B2A42.4B$239.3A179.20B2A43.4B$242.A177.15B.B2A.2B45.4B$
241.2A176.15B2.B2A49.4B$241.4B173.5B2A10B54.4B$243.3B172.5B2A10B55.4B
$243.4B170.18B56.4B$244.4B168.20B56.4B$185.2A58.4B23.2A142.20B57.4B$
184.B2AB58.4B22.A142.18B.B59.4B$185.2B6.B53.4B18.BA.A139.B.20B61.4B$
186.2B4.3B33.A19.4B14.2A.B2A139.2AB.18B63.4B$185.14B3.A9.A15.3A12.B.
3B.4B12.B2A2B141.2A22B62.4B$185.14B3.3A5.3A18.A10.18B6.4B142.2B.17B.
2A63.4B$176.B5.17B6.A3.A20.2A3.B5.2B2A16B3.6B145.15B3.A65.4B$175.25B
4.2A.B.2A19.8B3.2B2A16B2.6B146.14B5.3A63.4B$173.29B2.7B21.8B.20B.7B
145.6B.8B.2B4.A64.4B$171.B.30B3.3B23.38B143.6B3.9B2A69.4B$170.2A32B.
5B21.15B.2B2.20B141.6B4.7B.B2A70.4B$170.2A38B19.17B8.18B139.6B4.9B.B
72.4B$171.28B3.9B6.2B3.2B2.19B11.16B138.6B6.7B76.4B$171.3B4.B.16B7.
42B12.14B138.6B7.5B79.4B$182.10B.2B9.32B.7B12.16B136.6B9.B.2B80.4B$
183.9B12.14B2A25B11.14B.B2A133.6B95.4B$180.11B11.16B2A26B8.2AB.3B3.6B
.BA.A91.A39.6B97.4B$179.12B11.4B2A27B2.8B8.A.AB7.6B4.A89.3A38.6B99.4B
$179.12B10.4BA2BA7B.2B.3B.4B11.6B8.A9.7B4.2A87.A40.6B101.4B$179.11B
10.2AB2.B2A2B.B.4B6.4B12.5B8.2A4.2A2.8B93.2A38.6B103.4B$179.8B.4B7.A.
AB2.5B4.4B4.4B14.4B13.A.A12B89.4B37.6B105.4B$179.7B4.2A7.A6.2B7.4B2.
4B15.3B14.A3.11B88.3B38.6B107.4B$179.7B4.A7.2A6.4B6.8B17.4B11.2A3.4B
2A5B85.8B35.6B109.4B$179.6B6.3A14.2A7.6B20.2A17.3B2A5B84.10B33.6B111.
4B$178.7B8.A14.A9.4B21.A18.10B49.A20.A13.11B31.6B113.4B$177.8B24.3A5.
6B21.3A16.9B48.A.A7.A11.3A11.10B31.6B115.4B$176.8B27.A4.8B22.A16.9B
48.BA2B4.3A14.A7.13B30.6B117.4B$175.9B31.4B2.4B38.8B38.2A10.2B4.A16.
2A6.17B26.6B119.4B$174.4B.6B30.3B4.4B38.8B38.A7.4B5.2A15.4B5.15B2A24.
6B121.4B$173.4B.7B28.2AB7.4B38.6B39.A.AB3.6B3.3B3.7B.B5.3B5.14B2A23.
6B123.4B$172.4B2.6B15.2A11.A.AB8.4B37.6B4.2A34.2AB3.5B2.3B5.13B.4B6.
10B.2B23.6B125.4B$171.4B3.8B4.B8.A12.A12.4B36.6B4.A37.44B.9B12.A11.6B
127.4B$170.4B5.B2A6B.4B3.BA.A11.2A13.4B34.7B.BA.A37.45B.8B10.3A10.6B
129.4B$169.4B5.2B2A13B.B2A28.4B33.6B2.B2A39.44B.8B3.B5.A12.6B131.4B$
168.4B7.18B31.4B33.8B34.2A5.20B2A22B.13B4.2A10.6B133.4B$167.4B9.17B
32.4B32.8B35.A5.20B2A42B9.6B135.4B$166.4B13.13B34.4B30.8B36.A.AB2.27B
3.2B2.28B10.6B137.4B$165.4B13.12B37.4B29.7B38.2AB.9B.B3.B2.10B11.25B
9.6B139.4B$164.4B14.10B40.4B19.2A7.6B41.11B9.6B16.26B5.6B141.4B$163.
4B14.11B41.4B19.A6.7B41.11B10.3B19.26B3.6B135.B7.4B$162.4B15.7B.2B43.
4B18.A.AB3.7B41.9B.B2A8.B20.27B2.6B134.4B7.4B$161.4B15.11B44.4B18.2AB
2.8B42.7B2.BA.A6.2A20.34B135.6B6.4B$160.4B17.11B44.4B19.11B41.8B5.A6.
A19.2AB.31B107.2A26.9B5.4B$159.4B18.11B45.4B18.11B42.8B4.2A6.A17.A.AB
4.27B109.A4.3B16.13B5.4B$158.4B19.11B46.4B17.11B43.7B11.2A17.A7.26B
110.A.A5B14.16B5.4B$157.4B18.2AB2.8B47.4B15.11B41.11B28.2A8.24B112.2A
6B13.16B6.4B$156.4B18.A.AB3.7B48.4B15.7B.2B40.11B36.B.24B115.6B6.B5.
17B7.4B$155.4B19.A6.7B49.4B14.11B39.11B35.2A24B117.6B.B2.25B7.4B$154.
4B19.2A7.6B50.4B14.10B39.11B35.2AB.11B3.7B117.38B6.4B$153.4B29.7B50.
4B13.12B37.8B2.B2A34.B4.9B4.5B118.39B6.4B$152.4B30.8B50.4B13.13B35.7B
3.BA.A38.9B4.4B117.B2.39B6.4B$151.4B32.8B50.4B9.17B34.7B6.A39.5B6.4B
117.2AB.40B6.4B$150.4B33.8B51.4B7.18B34.6B7.2A31.2A5.5B5.4B118.2A4B2A
37B6.4B$149.4B33.6B2.B2A43.2A5.4B5.2B2A13B.B2A24.2A5.7B39.B2AB4.4B5.
4B120.2B.2B2A6B3.24B.4B6.4B$148.4B34.7B.BA.A43.A6.4B5.B2A6B.4B3.BA.A
22.B2AB3.8B40.3B3.4B5.4B124.5B2.B5.24B2.4B6.4B$147.4B36.6B4.A43.A.AB
4.4B3.8B4.B8.A23.2B3.8B40.B.B3.4B5.4B124.6B8.23B4.4B6.4B$136.A9.4B37.
6B4.2A43.2AB5.4B2.6B15.2A21.2B3.9B39.10B5.4B125.4B10.23B5.4B6.4B$136.
3A6.4B38.6B51.3B4.4B.7B8.2A26.BA2B.4B.6B36.11B5.4B126.2B2AB8.20B2.B7.
4B6.4B$139.A4.4B38.8B50.4B4.4B.6B8.A27.A.A5B.7B35.11B5.4B125.2AB.2A9.
19B12.4B6.4B$138.2A3.4B38.8B52.4B4.9B6.BA.A28.A.4B2.6B34.12B5.4B125.A
.AB10.2AB.12B.2B15.4B6.4B$133.A4.8B22.A16.9B52.4B4.8B6.B2A26.3A4.B3.
6B33.12B5.4B126.A12.A.AB.8B.3B19.4B6.4B$131.3A6.5B21.3A16.9B53.4B4.8B
3.3B28.A5.2B2.7B17.2A13.14B3.4B126.2A12.A4.7B25.4B6.4B$130.A9.4B21.A
18.10B54.4B4.7B2.4B32.13B18.A11.17B.4B140.2A4.7B26.4B6.4B$130.2A7.6B
20.2A17.3B2A5B55.4B4.6B.4B32.16B12.A.A12.22B134.2A11.6B28.4B6.4B$120.
2A6.4B6.8B17.4B16.4B2A5B56.4B3.10B33.16B10.3A.2A10.6B2A14B136.A2.2A6.
7B29.4B6.4B$121.A6.2B7.4B2.4B15.3B13.2A3.11B44.2A11.4B2.9B34.17B8.A4.
B9.8B2A16B134.A.A.A5.8B30.4B6.4B$121.A.AB2.5B4.4B4.4B14.4B12.A2.A12B
45.A12.4B.8B.3B31.17B9.3AB2AB6.27B135.A.B5.8B32.4B6.4B$122.2AB2.B2A2B
.B.4B6.4B12.5B8.2A4.2A2.8B47.A.AB10.16B.2B27.19B10.A.2A32B.B2A135.2B
3.9B33.4B6.4B$123.4BA2BA7B.2B.3B.4B11.6B8.A9.7B4.2A42.2AB.2A8.20B26.
19B11.31B4.BA.A133.BA2B.4B.6B33.4B6.4B$124.4B2A27B2.8B8.A.AB7.6B4.A
45.2B2AB8.20B2.B22.19B13.29B7.A133.A.A5B.7B34.4B6.4B$124.16B2A26B8.2A
B.3B3.6B.BA.A45.4B10.23B6.2A13.20B10.29B9.2A133.A.4B2.6B36.4B6.4B$
126.14B2A25B11.14B.B2A46.6B8.23B6.A14.20B10.28B142.3A4.B3.6B37.4B6.4B
$126.32B.7B12.16B46.B2.5B2.B4.25B2.BA.A14.20B10.4B2A22B142.A5.2B2.7B
38.4B6.4B$125.42B12.14B46.2AB.2B2A6B.26B2.B2A15.7BA13B7.2AB.2B2A21B
147.13B39.4B6.4B$124.9B6.2B3.2B2.19B11.16B45.2A4B2A36B17.6BABA12B6.A.
AB.5B.15B.B.B2A144.16B38.4B6.4B$123.9B19.17B8.18B46.2B.40B20.2BA2BA
13B5.A5.3B2.16B2.BA.A143.16B39.4B6.4B$122.4B.5B21.15B.2B2.20B50.39B
21.3B2A14B4.2A6.3B.12B.2B6.A143.17B39.4B6.4B$121.4B3.3B23.38B50.39B
26.17B9.B2AB.11B10.2A142.17B40.4B6.4B$120.4B2.7B21.8B.20B.7B51.38B30.
15B9.2A3.9B154.19B40.4B6.4B$119.4B3.2A.B.2A19.8B3.2B2A16B2.6B52.9B.
25B32.15B15.3B.B158.19B40.4B6.4B$118.4B5.A3.A20.2A3.B5.2B2A16B3.6B51.
8B3.B5.17B32.17B.2B10.2B162.19B41.4B6.4B$117.4B3.3A5.3A18.A10.18B6.4B
50.8B11.16B31.20B2A8.2BAB161.20B41.4B6.4B$116.4B4.A9.A15.3A12.B.3B.4B
12.B2A2B50.7B12.16B31.20B2A9.A.A161.20B42.4B6.4B$104.A10.4B31.A20.3B
14.2A.B2A39.2A7.6B15.13B31.15B.B2A.2B11.A162.20B43.4B6.4B$104.3A7.4B
51.4B18.BA.A39.A6.7B18.9B31.15B2.B2A177.7BA13B43.4B6.4B$107.A5.4B52.
2A23.A39.A.AB3.7B19.6B32.5B2A10B181.6BABA12B44.4B6.4B$88.A17.2A.7B54.
A23.2A39.2AB2.8B19.4B34.5B2A10B184.2BA2BA13B44.4B6.4B$76.A11.3A15.9B
52.3A67.11B21.B34.18B184.3B2A14B45.4B6.4B$74.3A14.A16.6B53.A69.11B55.
20B187.17B44.4B6.4B$58.A14.A16.2A16.5B124.11B55.20B190.15B44.4B6.4B$
58.3A12.2A15.4B13.7B122.11B55.18B.B191.15B45.4B6.4B$61.A7.2B.3B3.7B.B
5.3B12.6B124.7B.2B52.B.7BA12B191.17B.2B42.4B6.4B$60.2A6.5B5.13B.4B10.
7B124.11B50.2AB.5BABA10B191.20B2A42.4B6.4B$60.5B2.36B4.6B125.10B50.2A
7BABA12B189.20B2A43.4B6.4B$62.42B2.7B125.12B49.2B.6BA10B.2A188.15B.B
2A.2B45.4B6.4B$61.2A41B2.7B126.13B50.15B3.A188.15B2.B2A49.4B6.4B$61.
2A17B2A22B.9B122.17B49.4B.9B5.3A184.5B2A10B54.4B6.4B$62.B.16B2A32B
121.17B49.4B.10B.2B4.A184.5B2A10B55.4B6.4B$64.23B3.2B2.20B4.B115.2B2A
16B46.4B3.11B2A187.18B56.4B6.4B$65.9B2.10B11.19B.B2A115.B2A6B.4B3.2A
45.4B5.8B.B2A186.20B56.4B6.4B$66.8B3.6B16.19B2A108.2A4.8B4.B5.A45.4B
6.9B.B187.20B57.4B6.4B$67.7B4.3B19.17B.B110.A4.6B13.3A41.4B8.7B189.
18B.B59.4B6.4B$64.11B3.B20.17B113.A.AB.7B14.A40.4B9.6B187.B.20B61.4B
6.4B$63.12B2.2A20.17B114.2AB2.6B54.4B11.B.4B185.2AB.18B63.4B6.4B$63.
12B2.A19.2AB.15B116.8B54.4B15.4B184.2A22B62.4B6.4B$63.11B4.3A15.A.AB
4.12B116.8B53.4B17.4B184.2B.17B.2A63.4B6.4B$63.8B.4B4.A15.A9.11B116.
8B36.A14.4B19.4B186.15B3.A65.4B6.4B$63.7B4.2A19.2A8.13B116.7B8.A27.3A
11.4B21.4B185.14B5.3A63.4B6.4B$63.7B4.A30.12B118.6B6.3A30.A9.4B23.4B
23.2A158.6B.8B.2B4.A64.4B6.4B$63.6B6.3A28.10B119.7B4.A32.2A4.2B2.4B
25.4B22.A158.6B3.9B2A69.4B6.4B$62.7B8.A29.9B119.7B4.2A27.B3.8B.4B27.
4B18.BA.A157.6B4.7B.B2A70.4B6.4B$61.8B38.9B119.8B.4B4.A20.4B4.10B9.A
19.4B14.2A.B2A117.A39.6B4.9B.B72.4B6.4B$60.8B39.9B119.11B4.3A19.6B.
11B10.3A12.B.3B.4B12.B2A2B117.3A38.6B6.7B76.4B6.4B$60.8B40.5B122.12B
2.A22.6B.10B14.A10.18B6.4B116.A40.6B7.5B79.4B6.4B$58.2AB2.6B39.4B123.
12B2.2A20.19B12.2A3.B5.2B2A16B3.6B116.2A38.6B9.B.2B80.4B6.4B$57.A.AB.
7B39.4B124.11B3.B19.19B13.8B3.2B2A16B2.6B115.4B37.6B95.4B6.4B$57.A4.
6B15.2A22.4B128.7B4.3B17.17B17.8B.20B.7B114.3B38.6B97.4B6.4B$56.2A4.
8B4.B8.A22.4B128.8B3.6B16.15B18.38B110.8B35.6B99.4B6.4B7.B$63.B2A6B.
4B3.BA.A21.4B128.9B2.10B11.17B17.15B.2B2.20B108.10B33.6B101.4B6.4B4.
4B$62.2B2A13B.B2A21.4B128.23B3.2B2.22B13.17B8.18B72.A20.A13.11B31.6B
103.4B6.4B3.6B$63.18B22.4B127.B.16B2A37B3.2B2.19B11.16B71.A.A7.A11.3A
11.10B31.6B92.2A11.4B6.4B.9B$64.17B21.4B127.2A17B2A22B.40B12.14B72.BA
2B4.3A14.A7.13B30.6B94.A4.3B5.4B6.14B$67.13B21.4B128.2A73B.7B12.16B
60.2A10.2B4.A16.2A6.17B26.6B95.A.A5B6.4B4.16B$66.12B22.4B130.83B11.
14B.B2A59.A7.4B5.2A15.4B5.15B2A24.6B97.2A6B6.4B3.16B$66.10B23.4B129.
5B2.39B.39B8.2AB.3B3.6B.BA.A58.A.AB3.6B3.3B3.7B.B5.3B5.14B2A23.6B100.
6B6.5B.17B$65.11B22.4B130.2A6.5B5.13B.4B5.4B.29B2.8B8.A.AB7.6B4.A59.
2AB3.5B2.3B5.13B.4B6.10B.2B23.6B102.6B.B2.25B$65.7B.2B22.4B132.A7.2B.
3B3.7B.B4.4B5.4B3.16B.4B11.6B8.A9.7B4.2A60.44B.9B12.A11.6B102.38B$64.
11B21.4B130.3A12.2A15.4B5.4B4.12B5.3B12.5B8.2A4.2A2.8B66.45B.8B10.3A
10.6B103.39B$65.11B19.4B131.A14.A15.4B5.4B5.9B6.4B14.4B13.A.A12B65.
44B.8B3.B5.A12.6B102.B2.39B$65.11B18.4B148.3A11.4B5.4B5.11B5.2A16.3B
14.A3.11B58.2A5.20B2A22B.13B4.2A10.6B102.2AB.40B$65.11B17.4B151.A10.
4B5.4B7.7B.B2A5.A17.4B11.2A3.4B2A5B59.A5.20B2A42B9.6B103.2A4B2A37B$
63.2AB2.8B16.4B162.4B5.4B10.4B2.BA.A.3A20.2A17.3B2A5B59.A.AB2.27B3.2B
2.28B10.6B105.2B.2B2A6B3.24B.4B$62.A.AB3.7B15.4B162.4B5.4B10.B2A2B5.A
.A22.A18.10B60.2AB.9B.B3.B2.10B11.25B9.6B109.5B2.B5.24B2.4B$62.A6.7B
14.4B162.4B5.4B12.2A7.2A24.3A16.9B62.11B9.6B16.26B5.6B109.6B8.23B4.4B
$61.2A7.6B13.4B162.4B5.4B50.A16.9B62.11B10.3B19.26B3.6B110.4B10.23B5.
4B$70.7B11.4B162.4B5.4B68.8B63.9B.B2A8.B20.27B2.6B111.2B2AB8.20B.4B5.
4B$70.8B9.4B162.4B5.4B70.8B63.7B2.BA.A6.2A20.34B110.2AB.2A9.19B3.4B5.
4B$71.8B7.4B162.4B5.4B72.6B63.8B5.A6.A19.2AB.31B110.A.AB10.2AB.15B6.
4B5.4B$71.9B5.4B162.4B5.4B73.6B4.2A58.8B4.2A6.A17.A.AB4.27B111.A12.A.
AB.8B.7B6.4B5.4B$70.6B.4B3.4B162.4B5.4B74.6B4.A60.7B11.2A17.A7.26B
111.2A12.A4.7B6.4B6.4B5.4B$70.7B.4B.4B162.4B5.4B74.7B.BA.A57.11B28.2A
8.24B125.2A4.7B7.4B6.4B5.4B$71.6B2.7B162.4B5.4B75.6B2.B2A57.11B36.B.
24B119.2A11.6B9.4B6.4B5.4B$71.6B3.5B162.4B5.4B77.8B59.11B35.2A24B121.
A2.2A6.7B10.4B6.4B5.4B$71.2B2AB4.5B161.4B5.4B78.8B59.11B35.2AB.11B3.
7B122.A.A.A5.8B11.4B6.4B5.4B$70.3B2A2B2.6B160.4B5.4B78.8B60.8B2.B2A
34.B4.9B4.5B124.A.B5.8B13.4B6.4B5.4B$70.7B.4B2.B2A157.4B5.4B79.7B61.
7B3.BA.A38.9B4.4B127.2B3.9B14.4B6.4B5.4B$71.5B.4B3.BA.A155.4B5.4B80.
6B62.7B6.A39.5B6.4B127.BA2B.4B.6B14.4B6.4B5.4B$71.9B7.A154.4B5.4B80.
7B62.6B7.2A31.2A5.5B5.4B128.A.A5B.7B15.4B6.4B5.4B$71.8B8.2A152.4B5.4B
78.2B.7B54.2A5.7B39.B2AB4.4B5.4B130.A.4B2.6B17.4B6.4B5.4B$71.7B162.4B
5.4B78.11B53.B2AB3.8B40.3B3.4B5.4B128.3A4.B3.6B18.4B6.4B5.4B$62.2A7.
6B162.4B5.4B77.13B54.2B3.8B40.B.B3.4B5.4B129.A5.2B2.7B19.4B6.4B5.4B$
63.A7.7B5.2A153.4B5.4B77.14B53.2B3.9B39.10B5.4B134.13B20.4B6.4B5.4B$
63.A.AB3.7B6.A153.4B5.4B78.14B52.BA2B.4B.6B36.11B5.4B134.16B19.4B6.4B
5.4B$64.2AB.11B.BA.A152.4B5.4B78.14B53.A.A5B.7B35.11B5.4B135.16B20.4B
6.4B5.4B$66.10BA2B.B2A152.4B5.4B80.10B57.A.4B2.6B34.12B5.4B136.17B20.
4B6.4B5.4B$65.10BABA3B153.4B5.4B76.2A4.10B53.3A4.B3.6B33.12B5.4B137.
17B21.4B6.4B5.4B$66.9BABA3B152.4B5.4B78.A6.10B.B3.B45.A5.2B2.7B17.2A
13.14B3.4B137.19B21.4B6.4B5.4B$64.2AB.8BA2B153.4B5.4B79.A.AB.19B48.
13B18.A11.17B.4B139.19B21.4B6.4B5.4B$63.A.AB2.8B154.4B5.4B81.2AB.19B.
B45.16B12.A.A12.22B140.19B22.4B6.4B5.4B$63.A4.4B2.3B153.4B5.4B84.22B
2A44.16B10.3A.2A10.6B2A14B141.20B22.4B6.4B5.4B$62.2A3.4B3.5B150.4B5.
4B85.22B2A44.17B8.A4.B9.8B2A16B139.20B23.4B6.4B5.4B$66.4B6.B2A149.4B
5.4B86.23B45.17B9.3AB2AB6.27B139.20B24.4B6.4B5.4B$65.4B8.A149.4B5.4B
87.23B44.19B10.A.2A32B.B2A137.7BA13B24.4B6.4B5.4B$64.4B10.3A145.4B5.
4B87.22B47.19B11.31B4.BA.A136.6BABA12B25.4B6.4B5.4B$63.4B13.A144.4B5.
4B88.8B2.11B48.19B13.29B7.A139.2BA2BA13B25.4B6.4B5.4B$62.4B158.4B5.4B
91.5B3.13B46.20B10.29B9.2A138.3B2A14B26.4B6.4B5.4B$61.4B158.4B5.4B94.
3B4.8B.B2A46.20B10.28B154.17B25.4B6.4B5.4B$60.4B158.4B5.4B96.B5.8B2.A
47.20B10.4B2A22B157.15B25.4B6.4B5.4B$48.A10.4B158.4B5.4B103.8B3.3A44.
7BA13B7.2AB.2B2A21B158.15B26.4B6.4B5.4B$48.3A7.4B158.4B5.4B105.6B6.A
44.6BABA12B6.A.AB.5B.15B.B.B2A155.17B.2B23.4B6.4B5.4B$51.A5.4B158.4B
5.4B106.6B4.2A48.2BA2BA13B5.A5.3B2.16B2.BA.A153.20B2A23.4B6.4B5.4B$
32.A17.2A.7B158.4B5.4B107.6B4.A49.3B2A14B4.2A6.3B.12B.2B6.A153.20B2A
24.4B6.4B5.4B$20.A11.3A15.9B158.4B5.4B107.7B.BA.A53.17B9.B2AB.11B10.
2A151.15B.B2A.2B26.4B6.4B5.4B$18.3A14.A16.6B158.4B5.4B108.6B2.B2A57.
15B9.2A3.9B163.15B2.B2A30.4B6.4B5.4B$2.A14.A16.2A16.5B158.4B5.4B110.
8B59.15B15.3B.B165.5B2A10B35.4B6.4B5.4B$2.3A12.2A15.4B13.7B156.4B5.4B
111.8B58.17B.2B10.2B169.5B2A10B36.4B6.4B5.4B$5.A7.2B.3B3.7B.B5.3B12.
6B156.4B5.4B111.8B58.20B2A8.2BAB167.18B37.4B6.4B5.4B$4.2A6.5B5.13B.4B
10.7B155.4B5.4B112.7B59.20B2A9.A.A166.20B37.4B6.4B5.4B$4.5B2.36B4.6B
154.4B5.4B104.2A7.6B59.15B.B2A.2B11.A167.20B38.4B6.4B5.4B$6.42B2.7B
153.4B5.4B106.A6.7B58.15B2.B2A181.18B.B40.4B6.4B5.4B$5.2A41B2.7B152.
4B5.4B107.A.AB3.7B57.5B2A10B182.B.7BA12B42.4B6.4B5.4B$5.2A17B2A22B.9B
150.4B5.4B109.2AB2.8B57.5B2A10B181.2A7BABA10B44.4B6.4B5.4B$6.B.16B2A
32B149.4B5.4B112.11B56.18B181.2A7BABA12B43.4B6.4B5.4B$8.23B3.2B2.20B
4.B143.4B5.4B113.11B55.20B181.9BA10B.2A44.4B6.4B5.4B$9.9B2.10B11.19B.
B2A141.4B5.4B114.11B55.20B181.18B3.A46.4B6.4B5.4B$10.8B3.6B16.19B2A
140.4B5.4B114.11B55.18B.B183.16B5.3A44.4B6.4B5.4B$11.7B4.3B19.17B.B
140.4B5.4B116.7B.2B52.B.7BA12B183.6B3.8B.2B4.A45.4B6.4B5.4B$8.11B3.B
20.17B142.4B5.4B117.11B50.2AB.5BABA10B183.6B5.9B2A50.4B6.4B5.4B$7.12B
2.2A20.17B141.4B5.4B119.10B50.2A7BABA12B180.6B6.7B.B2A51.4B6.4B5.4B$
7.12B2.A19.2AB.15B140.4B5.4B120.12B49.2B.6BA10B.2A179.6B6.9B.B53.4B6.
4B5.4B$7.11B4.3A15.A.AB4.12B139.4B5.4B122.13B50.15B3.A179.6B8.7B57.4B
6.4B5.4B$7.8B.4B4.A15.A9.11B137.4B5.4B120.17B49.4B.9B5.3A100.2A73.6B
9.5B60.4B6.4B5.4B$7.7B4.2A19.2A8.13B135.4B5.4B120.18B48.4B.10B.2B4.A
101.A72.6B11.B.2B61.4B6.4B5.4B$7.7B4.A30.12B135.4B5.4B120.2B2A13B.B2A
45.4B3.11B2A104.A72.6B78.4B6.4B5.4B$7.6B6.3A28.10B135.4B5.4B122.B2A6B
.4B3.BA.A43.4B5.8B.B2A104.2A12.A17.A39.6B80.4B6.4B5.4B$6.7B8.A29.9B
134.4B5.4B116.2A4.8B4.B8.A42.4B6.9B.B103.2A12.3A15.3A38.6B82.4B6.4B5.
4B$5.8B38.9B133.4B5.4B118.A4.6B15.2A40.4B8.7B105.A2.4A7.A17.A40.6B84.
4B6.4B5.4B$4.8B39.9B132.4B5.4B119.A.AB.7B55.4B9.6B106.A.A4.A6.2A16.2A
38.6B86.4B6.4B5.4B$4.8B40.5B134.4B5.4B121.2AB2.6B54.4B11.B.4B103.3A.
2A2.2A4.4B14.4B37.6B88.4B6.4B5.4B$2.2AB2.6B39.4B134.4B5.4B124.8B54.4B
15.4B101.A4.B3.4B.3B15.3B38.6B90.4B6.4B5.4B$.A.AB.7B39.4B133.4B5.4B
125.8B53.4B17.4B97.A2.4AB2AB3.6B12.8B35.6B92.4B6.4B5.4B$.A4.6B15.2A
22.4B133.4B5.4B127.8B36.A14.4B19.4B96.3A3.A.2AB.7B.B10.10B33.6B94.4B
6.4B5.4B$2A4.8B4.B8.A22.4B133.4B5.4B129.7B8.A27.3A11.4B21.4B98.A4.14B
9.11B31.6B96.4B6.4B5.4B$7.B2A6B.4B3.BA.A21.4B133.4B5.4B131.6B6.3A30.A
9.4B23.4B23.2A71.2AB4.12B3.2B5.10B31.6B98.4B6.4B5.4B$6.2B2A13B.B2A21.
4B133.4B5.4B132.7B4.A32.2A4.2B2.4B25.4B22.A72.5B.33B30.6B100.4B6.4B5.
4B$7.18B22.4B133.4B5.4B133.7B4.2A27.B3.8B.4B27.4B18.BA.A74.40B26.6B
102.4B6.4B5.4B$8.17B21.4B133.4B5.4B134.8B.4B4.A20.4B4.10B9.A19.4B14.
2A.B2A73.41B2A24.6B104.4B6.4B5.4B$11.13B21.4B133.4B5.4B135.11B4.3A19.
6B.11B10.3A12.B.3B.4B12.B2A2B57.2A16.41B2A23.6B106.4B6.4B5.4B$10.12B
22.4B125.2A6.4B5.4B136.12B2.A22.6B.10B14.A10.18B6.4B56.B2AB14.28B2.
10B.2B23.6B108.4B6.4B5.4B$10.10B23.4B125.B2AB4.4B5.4B137.12B2.2A20.
19B12.2A3.B5.2B2A16B3.6B57.2B15.31B.9B12.A11.6B110.4B6.4B5.4B$9.11B
22.4B127.3B3.4B5.4B139.11B3.B19.19B13.8B3.2B2A16B2.6B53.B3.2B17.31B.
8B10.3A10.6B112.4B6.4B5.4B$9.7B.2B22.4B127.B.B3.4B5.4B143.7B4.3B17.
17B17.8B.20B.7B52.2AB.4B15.32B.8B3.B5.A12.6B114.4B6.4B5.4B$8.11B21.4B
127.10B5.4B143.8B3.6B16.15B18.38B51.2A8B11.20B2.12B.13B4.2A10.6B116.
4B6.4B5.4B$9.11B19.4B126.11B5.4B143.9B2.10B11.17B17.15B.2B2.20B51.B.B
2A6B2.2B2.20B5.32B9.6B118.4B6.4B5.4B$9.11B18.4B126.11B5.4B143.23B3.2B
2.22B13.17B8.18B53.2A32B5.30B10.6B120.4B6.4B5.4B$9.11B17.4B125.12B5.
4B142.B.16B2A37B3.2B2.19B11.16B53.24B.9B6.3B.25B9.6B122.4B6.4B5.4B$7.
2AB2.8B16.4B125.12B5.4B142.2A17B2A22B.40B12.14B50.28B2.7B13.26B5.6B
124.4B6.4B5.4B$6.A.AB3.7B15.4B108.A16.14B3.4B143.2A73B.7B12.16B49.28B
3.5B15.26B3.6B126.4B5.5B5.4B$6.A6.7B14.4B108.A.A13.17B.4B145.83B11.
14B.B2A46.2A26B5.4B14.27B2.6B128.4B2.8B5.4B$5.2A7.6B13.4B109.A.A12.
22B144.5B2.39B.39B8.2AB.3B3.6B.BA.A45.2A14B.4B10.4B.B2A12.34B130.4B.
9B5.4B$14.7B11.4B109.2A.2A10.6B2A14B145.2A6.5B5.13B.4B5.4B.29B2.8B8.A
.AB7.6B4.A46.B.11B2.4B11.2A3.BA.A9.2AB.31B107.2A23.14B5.4B$14.8B9.4B
113.B9.8B2A16B144.A7.2B.3B3.7B.B4.4B5.4B3.16B.4B11.6B8.A9.7B4.2A47.
10B2.4B13.A6.A8.A.AB4.27B109.A4.3B16.15B5.4B$15.8B7.4B111.2AB2AB6.27B
141.3A12.2A15.4B5.4B4.12B5.3B12.5B8.2A4.2A2.8B54.14B11.3A7.2A7.A7.26B
110.A.A5B14.18B5.4B$15.9B5.4B113.A.2A32B.B2A139.A14.A15.4B5.4B5.9B6.
4B14.4B13.A.A12B51.14B12.A17.2A8.24B112.2A6B13.19B5.4B$14.6B.4B3.4B
112.A3.31B4.BA.A154.3A11.4B5.4B5.11B5.2A16.3B14.A3.11B52.13B37.B.24B
115.6B6.B5.21B5.4B$14.7B.4B.4B113.2A4.29B7.A156.A10.4B5.4B7.7B.B2A5.A
17.4B11.2A3.4B2A5B52.13B36.2A24B117.6B.B2.29B5.4B$15.6B2.7B118.29B9.
2A165.4B5.4B10.4B2.BA.A.3A20.2A17.3B2A5B54.2B.8B36.2AB.11B3.7B117.41B
5.4B$15.6B3.5B119.28B176.4B5.4B10.B2A2B5.A.A22.A18.10B57.8B37.B4.9B4.
5B118.42B5.4B$15.2B2AB4.5B119.4B2A22B175.4B5.4B12.2A7.2A24.3A16.9B56.
9B42.9B4.4B117.B2.42B5.4B$14.3B2A2B2.6B117.2AB.2B2A21B175.4B5.4B50.A
16.9B56.9B43.5B6.4B117.2AB.43B5.4B$14.7B.4B2.B2A114.A.AB.5B.15B.B.B2A
172.4B5.4B68.8B55.2AB2.7B35.2A5.5B5.4B118.2A4B2A40B5.4B$15.5B.4B3.BA.
A113.A5.3B2.16B2.BA.A170.4B5.4B70.8B53.A.AB2.8B33.B2AB4.4B5.4B120.2B.
2B2A6B3.24B.7B5.4B$15.9B7.A112.2A6.3B.12B.2B6.A169.4B5.4B72.6B54.A6.
8B33.3B3.4B5.4B124.5B2.B5.24B2.7B5.4B$15.8B8.2A118.B2AB.11B10.2A167.
4B5.4B73.6B4.2A47.2A6.8B32.B.B3.4B5.4B124.6B8.24B3.7B5.4B$15.7B130.2A
3.9B179.4B5.4B74.6B4.A55.6B2.B2A29.10B5.4B125.4B10.25B3.7B5.4B$6.2A7.
6B137.3B.B181.4B5.4B74.7B.BA.A55.7B.BA.A26.11B5.4B126.2B2AB8.20B2.5B
3.7B5.4B$7.A7.7B5.2A128.2B184.4B5.4B75.6B2.B2A57.6B4.A25.11B5.4B125.
2AB.2A9.19B5.4B3.7B5.4B$7.A.AB3.7B6.A128.2BAB182.4B5.4B77.8B59.6B4.2A
22.12B5.4B125.A.AB10.2AB.12B.2B8.4B3.7B5.4B$8.2AB.11B.BA.A129.A.A181.
4B5.4B78.8B59.6B27.12B5.4B126.A12.A.AB.8B.3B12.4B3.7B5.4B$10.10BA2B.B
2A131.A181.4B5.4B78.8B59.8B8.A16.14B3.4B126.2A12.A4.7B18.4B3.7B5.4B$
9.10BABA3B314.4B5.4B79.7B59.8B8.A.A13.17B.4B140.2A4.7B19.4B3.7B5.4B$
10.9BABA3B313.4B5.4B80.6B60.9B7.A.A12.22B134.2A11.6B21.4B3.7B5.4B$8.
2AB.8BA2B314.4B5.4B80.7B60.9B6.2A.2A10.6B2A14B136.A2.2A6.7B22.4B3.7B
5.4B$7.A.AB2.8B315.4B5.4B78.2B.7B59.10B9.B9.8B2A16B134.A.A.A5.8B23.4B
3.7B5.4B$7.A4.4B2.3B314.4B5.4B78.11B59.3B2A5B6.2AB2AB6.27B135.A.B5.8B
25.4B3.7B5.4B$6.2A3.4B3.5B311.4B5.4B77.13B58.4B2A5B7.A.2A32B.B2A135.
2B3.9B26.4B3.7B5.4B$10.4B6.B2A310.4B5.4B77.14B58.11B5.A3.31B4.BA.A
133.BA2B.4B.6B26.4B3.7B5.4B$9.4B8.A310.4B5.4B78.14B53.2A.A12B5.2A4.
29B7.A133.A.A5B.7B27.4B3.7B5.4B$8.4B10.3A306.4B5.4B78.14B54.A.2A2.8B
11.29B9.2A133.A.4B2.6B29.4B3.7B5.4B$7.4B13.A305.4B5.4B80.10B64.7B11.
28B142.3A4.B3.6B30.4B3.7B5.4B$6.4B319.4B5.4B76.2A4.10B64.6B11.4B2A22B
142.A5.2B2.7B31.4B3.7B5.4B$5.4B319.4B5.4B78.A6.10B.B3.B56.6B9.2AB.2B
2A21B147.13B32.4B3.7B5.4B$4.4B319.4B5.4B79.A.AB.19B54.7B8.A.AB.5B.15B
.B.B2A144.16B31.4B3.7B5.4B$3.4B319.4B5.4B81.2AB.19B.B53.8B6.A5.3B2.
16B2.BA.A143.16B32.4B3.7B5.4B$2.3CB319.4B5.4B84.22B2A52.8B5.2A6.3B.
12B.2B6.A143.17B32.4B3.7B5.4B$4.C319.4B5.4B85.22B2A49.AB.9B11.B2AB.
11B10.2A142.17B33.4B3.7B5.4B$3.C319.4B5.4B86.23B49.A.A10B12.2A3.9B
154.19B33.4B3.7B5.4B$322.4B5.4B87.23B49.2A.7B.3B17.3B.B158.19B33.4B3.
7B5.4B$321.4B5.4B87.22B56.10B15.2B162.19B34.4B3.7B5.4B$320.4B5.4B88.
8B2.11B57.10B14.2BAB161.20B34.4B3.7B5.4B$319.4B5.4B91.5B3.13B54.12B
14.A.A161.20B35.4B3.7B5.4B$318.4B5.4B94.3B4.8B.B2A55.11B15.A162.20B
36.4B3.7B5.4B$317.4B5.4B96.B5.8B2.A57.10B178.7BA13B36.4B3.7B5.4B$316.
4B5.4B103.8B3.3A57.8B177.6BABA12B37.4B3.7B5.4B$315.4B5.4B105.6B6.A57.
8B180.2BA2BA13B37.4B3.7B5.4B$314.4B5.4B106.6B4.2A57.10B179.3B2A14B38.
4B3.7B5.4B$313.4B5.4B107.6B4.A58.10B183.17B37.4B3.7B5.4B$312.4B5.4B
107.7B.BA.A57.13B184.15B37.4B3.7B5.4B$311.4B5.4B108.6B2.B2A58.14B183.
15B38.4B3.7B5.4B$310.4B5.4B110.8B59.15B182.17B.2B35.4B3.7B5.4B$309.4B
5.4B111.8B58.17B.2B177.20B2A35.4B3.7B5.4B$308.4B5.4B111.8B58.20B2A
176.20B2A36.4B3.7B5.4B$307.4B5.4B112.7B59.20B2A175.15B.B2A.2B38.4B3.
7B5.4B$306.4B5.4B104.2A7.6B59.15B.B2A.2B175.15B2.B2A42.4B3.7B5.4B$
305.4B5.4B106.A6.7B58.15B2.B2A177.5B2A10B47.4B3.7B5.4B$304.4B5.4B107.
A.AB3.7B57.5B2A10B181.5B2A10B48.4B3.7B5.4B$295.2A6.4B5.4B109.2AB2.8B
57.5B2A10B180.18B49.4B3.7B5.4B$294.B2AB4.4B5.4B112.11B56.18B179.20B
49.4B3.7B5.4B$295.3B3.4B5.4B113.11B55.20B178.20B50.4B3.7B5.4B$294.B.B
3.4B5.4B114.11B55.20B177.18B.B52.4B3.7B5.4B$293.10B5.4B114.11B55.18B.
B175.B.20B54.4B3.7B5.4B$291.11B5.4B116.7B.2B52.B.7BA12B175.2AB.18B56.
4B3.7B5.4B$290.11B5.4B117.11B50.2AB.5BABA10B176.2A22B55.4B3.7B5.4B$
288.12B5.4B119.10B50.2A7BABA12B175.2B.17B.2A56.4B3.7B5.4B$287.12B5.4B
120.12B49.2B.6BA10B.2A178.15B3.A58.4B3.7B5.4B$269.A16.14B3.4B122.13B
50.15B3.A179.14B5.3A56.4B3.7B5.4B$268.A.A13.17B.4B120.17B49.4B.9B5.3A
100.2A73.6B.8B.2B4.A57.4B3.7B5.4B$268.A.A12.22B120.18B48.4B.10B.2B4.A
101.A72.6B3.9B2A62.4B3.7B5.4B$267.2A.2A10.6B2A14B120.2B2A13B.B2A45.4B
3.11B2A104.A72.6B4.7B.B2A63.4B3.7B5.4B$270.B9.8B2A16B119.B2A6B.4B3.BA
.A43.4B5.8B.B2A104.2A12.A17.A39.6B4.9B.B65.4B3.7B5.4B$267.2AB2AB6.27B
112.2A4.8B4.B8.A42.4B6.9B.B103.2A12.3A15.3A38.6B6.7B69.4B3.7B5.4B$
268.A.2A32B.B2A111.A4.6B15.2A40.4B8.7B105.A2.4A7.A17.A40.6B7.5B72.4B
3.7B5.4B$266.A3.31B4.BA.A110.A.AB.7B55.4B9.6B106.A.A4.A6.2A16.2A38.6B
9.B.2B73.4B3.7B5.4B$266.2A4.29B7.A111.2AB2.6B54.4B11.B.4B103.3A.2A2.
2A4.4B14.4B37.6B88.4B3.7B5.4B$270.29B9.2A112.8B54.4B15.4B101.A4.B3.4B
.3B15.3B38.6B90.4B3.7B5.4B$270.28B124.8B53.4B17.4B97.A2.4AB2AB3.6B12.
8B35.6B92.4B3.7B5.4B$270.4B2A22B125.8B36.A14.4B19.4B96.3A3.A.2AB.7B.B
10.10B33.6B94.4B3.7B5.4B$268.2AB.2B2A21B127.7B8.A27.3A11.4B21.4B98.A
4.14B9.11B31.6B96.4B3.7B5.4B$267.A.AB.5B.15B.B.B2A126.6B6.3A30.A9.4B
23.4B23.2A71.2AB4.12B3.2B5.10B31.6B98.4B3.7B5.4B$267.A5.3B2.16B2.BA.A
125.7B4.A32.2A4.2B2.4B25.4B22.A72.5B.33B30.6B100.4B3.7B5.4B$266.2A6.
3B.12B.2B6.A125.7B4.2A27.B3.8B.4B27.4B18.BA.A74.40B26.6B102.4B3.7B5.
4B$273.B2AB.11B10.2A124.8B.4B4.A20.4B4.10B9.A19.4B14.2A.B2A73.41B2A
24.6B104.4B3.7B5.4B$274.2A3.9B137.11B4.3A19.6B.11B10.3A12.B.3B.4B12.B
2A2B57.2A16.41B2A23.6B106.4B3.7B5.4B$280.3B.B140.12B2.A22.6B.10B14.A
10.18B6.4B56.B2AB14.28B2.10B.2B23.6B108.4B3.7B5.4B$279.2B144.12B2.2A
20.19B12.2A3.B5.2B2A16B3.6B57.2B15.31B.9B12.A11.6B110.4B3.7B5.4B$278.
2BAB144.11B3.B19.19B13.8B3.2B2A16B2.6B53.B3.2B17.31B.8B10.3A10.6B112.
4B3.7B5.4B$279.A.A147.7B4.3B17.17B17.8B.20B.7B52.2AB.4B15.32B.8B3.B5.
A12.6B114.4B3.7B5.4B$280.A147.8B3.6B16.15B18.38B51.2A8B11.20B2.12B.
13B4.2A10.6B116.4B3.7B5.4B$427.9B2.10B11.17B17.15B.2B2.20B51.B.B2A6B
2.2B2.20B5.32B9.6B118.4B3.7B5.4B$426.23B3.2B2.22B13.17B8.18B53.2A32B
5.30B10.6B120.4B3.7B5.4B$424.B.16B2A37B3.2B2.19B11.16B53.24B.9B6.3B.
25B9.6B122.4B3.7B5.4B$423.2A17B2A22B.40B12.14B50.28B2.7B13.26B5.6B
124.4B3.7B5.4B$423.2A73B.7B12.16B49.28B3.5B15.26B3.6B126.4B3.7B5.4B$
424.83B11.14B.B2A46.2A26B5.4B14.27B2.6B128.4B3.7B5.4B$422.5B2.39B.39B
8.2AB.3B3.6B.BA.A45.2A14B.4B10.4B.B2A12.34B130.4B3.7B5.4B$422.2A6.5B
5.13B.4B5.4B.29B2.8B8.A.AB7.6B4.A46.B.11B2.4B11.2A3.BA.A9.2AB.31B132.
4B3.7B5.4B$423.A7.2B.3B3.7B.B4.4B5.4B3.16B.4B11.6B8.A9.7B4.2A47.10B2.
4B13.A6.A8.A.AB4.27B134.4B3.7B5.4B$420.3A12.2A15.4B5.4B4.12B5.3B12.5B
8.2A4.2A2.8B54.14B11.3A7.2A7.A7.26B136.4B3.7B5.4B$420.A14.A15.4B5.4B
5.9B6.4B14.4B13.A.A12B51.14B12.A17.2A8.24B138.4B3.7B5.4B$436.3A3.2A6.
4B5.4B5.11B5.2A16.3B14.A3.11B52.13B37.B.24B140.4B3.7B5.4B$438.A2.B2AB
4.4B5.4B7.7B.B2A5.A17.4B11.2A3.4B2A5B52.13B36.2A24B142.4B3.7B5.4B$
442.3B3.4B5.4B10.4B2.BA.A.3A20.2A17.3B2A5B54.2B.8B36.2AB.11B3.7B144.
4B3.7B5.4B$441.B.B3.4B5.4B10.B2A2B5.A.A22.A18.10B57.8B37.B4.9B4.5B
146.4B3.7B5.4B$440.10B5.4B12.2A7.2A24.3A16.9B56.9B42.9B4.4B148.4B3.7B
5.4B$438.11B5.4B50.A16.9B56.9B43.5B6.4B150.4B3.7B5.4B$437.11B5.4B68.
8B55.2AB2.7B35.2A5.5B5.4B152.4B3.7B5.4B$435.12B5.4B70.8B53.A.AB2.8B
33.B2AB4.4B5.4B154.4B3.7B5.4B$434.12B5.4B72.6B54.A6.8B33.3B3.4B5.4B
156.4B3.7B5.4B$416.A16.14B3.4B73.6B4.2A47.2A6.8B32.B.B3.4B5.4B158.4B
3.7B5.4B$415.A.A13.17B.4B74.6B4.A55.6B2.B2A29.10B5.4B160.4B3.7B5.4B$
415.A.A12.22B74.7B.BA.A55.7B.BA.A26.11B5.4B162.4B3.7B5.4B$414.2A.2A
10.6B2A14B75.6B2.B2A57.6B4.A25.11B5.4B164.4B3.7B5.4B$417.B9.8B2A16B
74.8B59.6B4.2A22.12B5.4B166.4B3.7B5.4B$414.2AB2AB6.27B74.8B59.6B27.
12B5.4B168.4B3.7B5.4B$415.A.2A32B.B2A71.8B59.8B8.A16.14B3.4B170.4B3.
7B5.4B$413.A3.31B4.BA.A70.7B59.8B8.A.A13.17B.4B172.4B3.7B5.4B$413.2A
4.29B7.A70.6B60.9B7.A.A12.22B174.4B3.7B5.4B$417.29B9.2A68.7B60.9B6.2A
.2A10.6B2A14B176.4B3.7B5.4B$417.28B77.2B.7B59.10B9.B9.8B2A16B152.2A
21.4B.9B5.4B$417.4B2A22B76.11B59.3B2A5B6.2AB2AB6.27B153.A4.3B15.14B5.
4B$415.2AB.2B2A21B75.13B58.4B2A5B7.A.2A32B.B2A151.A.A5B14.16B5.4B$
414.A.AB.5B.15B.B.B2A72.14B58.11B5.A3.31B4.BA.A151.2A6B13.17B5.4B$
414.A5.3B2.16B2.BA.A71.14B53.2A.A12B5.2A4.29B7.A153.6B6.B5.19B5.4B$
413.2A6.3B.12B.2B6.A70.14B54.A.2A2.8B11.29B9.2A153.6B.B2.27B5.4B$420.
B2AB.11B10.2A70.10B64.7B11.28B164.39B5.4B$421.2A3.9B78.2A4.10B64.6B
11.4B2A22B164.40B5.4B$427.3B.B82.A6.10B.B3.B56.6B9.2AB.2B2A21B163.B2.
40B5.4B$426.2B86.A.AB.19B54.7B8.A.AB.5B.15B.B.B2A160.2AB.41B5.4B$425.
2BAB86.2AB.19B.B53.8B6.A5.3B2.16B2.BA.A159.2A4B2A38B5.4B$426.A.A88.
22B2A52.8B5.2A6.3B.12B.2B6.A160.2B.2B2A6B3.30B5.4B$427.A89.22B2A49.AB
.9B11.B2AB.11B10.2A162.5B2.B5.31B5.4B$517.23B49.A.A10B12.2A3.9B174.6B
8.23B2.7B5.4B$517.23B49.2A.7B.3B17.3B.B177.4B10.23B3.7B5.4B$516.22B
56.10B15.2B181.2B2AB8.20B.4B3.7B5.4B$516.8B2.11B57.10B14.2BAB178.2AB.
2A9.19B3.4B3.7B5.4B$518.5B3.13B54.12B14.A.A177.A.AB10.2AB.12B.2B6.4B
3.7B5.4B$520.3B4.8B.B2A55.11B15.A178.A12.A.AB.8B.3B10.4B3.7B5.4B$521.
B5.8B2.A57.10B193.2A12.A4.7B16.4B3.7B5.4B$527.8B3.3A57.8B205.2A4.7B
17.4B3.7B5.4B$528.6B6.A57.8B198.2A11.6B19.4B3.7B5.4B$528.6B4.2A57.10B
198.A2.2A6.7B20.4B3.7B5.4B$528.6B4.A58.10B198.A.A.A5.8B21.4B3.7B5.4B$
527.7B.BA.A57.13B197.A.B5.8B23.4B3.7B5.4B$527.6B2.B2A58.14B198.2B3.9B
24.4B3.7B5.4B$528.8B59.15B197.BA2B.4B.6B24.4B3.7B5.4B$528.8B58.17B.2B
193.A.A5B.7B25.4B3.7B5.4B$527.8B58.20B2A193.A.4B2.6B27.4B3.7B5.4B$
527.7B59.20B2A190.3A4.B3.6B28.4B3.7B5.4B$518.2A7.6B59.15B.B2A.2B191.A
5.2B2.7B29.4B3.7B5.4B$519.A6.7B58.15B2.B2A198.13B30.4B3.7B5.4B$519.A.
AB3.7B57.5B2A10B201.16B29.4B3.7B5.4B$520.2AB2.8B57.5B2A10B201.16B30.
4B3.7B5.4B$522.11B56.18B201.17B30.4B3.7B5.4B$522.11B55.20B200.17B31.
4B3.7B5.4B$522.11B55.20B199.19B31.4B3.7B5.4B$521.11B55.18B.B201.19B
31.4B3.7B5.4B$522.7B.2B52.B.7BA12B202.19B32.4B3.7B5.4B$522.11B50.2AB.
5BABA10B203.20B32.4B3.7B5.4B$523.10B50.2A7BABA12B201.20B33.4B3.7B5.4B
$523.12B49.2B.6BA10B.2A201.20B34.4B3.7B5.4B$524.13B50.15B3.A202.7BA
13B34.4B3.7B5.4B$521.17B49.4B.9B5.3A199.6BABA12B35.4B3.7B5.4B$520.18B
48.4B.10B.2B4.A202.2BA2BA13B35.4B3.7B5.4B$519.2B2A13B.B2A45.4B3.11B2A
206.3B2A14B36.4B3.7B5.4B$520.B2A6B.4B3.BA.A43.4B5.8B.B2A210.17B35.4B
3.7B5.4B$513.2A4.8B4.B8.A42.4B6.9B.B214.15B35.4B3.7B5.4B$514.A4.6B15.
2A40.4B8.7B217.15B36.4B3.7B5.4B$514.A.AB.7B55.4B9.6B217.17B.2B33.4B3.
7B5.4B$515.2AB2.6B54.4B11.B.4B215.20B2A33.4B3.7B5.4B$517.8B54.4B15.4B
214.20B2A34.4B3.7B5.4B$517.8B53.4B17.4B212.15B.B2A.2B36.4B3.7B5.4B$
518.8B36.A14.4B19.4B210.15B2.B2A40.4B3.7B5.4B$519.7B8.A27.3A11.4B21.
4B208.5B2A10B45.4B3.7B5.4B$520.6B6.3A30.A9.4B23.4B23.2A182.5B2A10B46.
4B3.7B5.4B$520.7B4.A32.2A4.2B2.4B25.4B22.A182.18B47.4B3.7B5.4B$520.7B
4.2A27.B3.8B.4B27.4B18.BA.A148.A32.20B47.4B3.7B5.4B$520.8B.4B4.A20.4B
4.10B9.A19.4B14.2A.B2A147.3A32.20B48.4B3.7B5.4B$520.11B4.3A19.6B.11B
10.3A12.B.3B.4B12.B2A2B148.A34.18B.B50.4B3.7B5.4B$520.12B2.A22.6B.10B
14.A10.18B6.4B148.2A30.B.20B52.4B3.7B5.4B$520.12B2.2A20.19B12.2A3.B5.
2B2A16B3.6B146.4B29.2AB.18B54.4B3.7B5.4B$521.11B3.B19.19B13.8B3.2B2A
16B2.6B146.3B31.2A22B53.4B3.7B5.4B$524.7B4.3B17.17B17.8B.20B.7B143.8B
30.2B.17B.2A54.4B3.7B5.4B$523.8B3.6B16.15B18.38B116.2A7.2A14.10B32.
15B3.A56.4B3.7B5.4B$522.9B2.10B11.17B17.15B.2B2.20B114.B2A2B5.A.A13.
11B31.14B5.3A54.4B3.7B5.4B$521.23B3.2B2.22B13.17B8.18B72.A20.A20.4B2.
BA.A.3A11.10B31.6B.8B.2B4.A55.4B3.7B5.4B$519.B.16B2A37B3.2B2.19B11.
16B71.A.A7.A11.3A16.7B.B2A5.A7.13B30.6B3.9B2A60.4B3.7B5.4B$518.2A17B
2A22B.40B12.14B72.BA2B4.3A14.A14.11B5.2A6.17B26.6B4.7B.B2A61.4B3.7B5.
4B$518.2A73B.7B12.16B60.2A10.2B4.A16.2A15.9B6.4B5.15B2A24.6B4.9B.B63.
4B3.7B5.4B$519.83B11.14B.B2A59.A7.4B5.2A15.4B13.12B5.3B5.14B2A23.6B6.
7B67.4B3.7B5.4B$517.5B2.39B.39B8.2AB.3B3.6B.BA.A58.A.AB3.6B3.3B3.7B.B
5.3B12.16B.4B6.10B.2B23.6B7.5B70.4B3.7B5.4B$517.2A6.5B5.13B.4B5.4B.
29B2.8B8.A.AB7.6B4.A59.2AB3.5B2.3B5.13B.4B10.29B.9B12.A11.6B9.B.2B71.
4B3.7B5.4B$518.A7.2B.3B3.7B.B4.4B5.4B3.16B.4B11.6B8.A9.7B4.2A60.44B4.
29B.8B10.3A10.6B86.4B3.7B5.4B$515.3A12.2A15.4B5.4B4.12B5.3B12.5B8.2A
4.2A2.8B66.45B2.30B.8B3.B5.A12.6B88.4B3.7B5.4B$515.A14.A15.4B5.4B5.9B
6.4B14.4B13.A.A12B65.44B2.30B.13B4.2A10.6B90.4B3.7B5.4B$531.3A3.2A6.
4B5.4B5.11B5.2A16.3B14.A3.11B58.2A5.20B2A22B.51B9.6B92.4B3.7B5.4B$
533.A2.B2AB4.4B5.4B7.7B.B2A5.A17.4B11.2A3.4B2A5B59.A5.20B2A37B3.2B2.
28B10.6B94.4B3.7B5.4B$537.3B3.4B5.4B10.4B2.BA.A.3A20.2A17.3B2A5B59.A.
AB2.27B3.2B2.22B13.25B9.6B96.4B3.7B5.4B$536.B.B3.4B5.4B10.B2A2B5.A.A
22.A18.10B60.2AB.9B.B3.B2.10B11.17B17.26B5.6B98.4B3.7B5.4B$535.10B5.
4B12.2A7.2A24.3A16.9B62.11B9.6B16.15B18.26B3.6B100.4B3.7B5.4B$533.11B
5.4B50.A16.9B62.11B10.3B17.17B16.27B2.6B102.4B3.7B5.4B$532.11B5.4B68.
8B63.9B.B2A8.B19.19B14.34B104.4B3.7B5.4B$530.12B5.4B70.8B63.7B2.BA.A
6.2A20.19B11.2AB.31B103.7B3.7B5.4B$529.12B5.4B72.6B63.8B5.A6.A22.6B.
10B11.A.AB4.27B104.8B3.7B5.4B$511.A16.14B3.4B73.6B4.2A58.8B4.2A6.A21.
6B.9B12.A7.26B76.2A26.10B3.7B5.4B$510.A.A13.17B.4B74.6B4.A60.7B11.2A
22.4B4.7B11.2A8.24B78.A4.3B16.14B3.7B5.4B$510.A.A12.22B74.7B.BA.A57.
11B36.B3.8B19.B.24B79.A.A5B14.17B3.7B5.4B$509.2A.2A10.6B2A14B75.6B2.B
2A57.11B41.2A4.2B18.2A24B81.2A6B13.18B3.7B5.4B$512.B9.8B2A16B74.8B59.
11B42.A24.2AB.11B3.7B84.6B6.B5.20B3.7B5.4B$509.2AB2AB6.27B74.8B59.11B
39.3A26.B4.9B4.5B86.6B.B2.28B3.7B5.4B$510.A.2A32B.B2A71.8B60.8B2.B2A
37.A33.9B4.4B86.40B3.7B5.4B$508.A3.31B4.BA.A70.7B61.7B3.BA.A71.5B6.4B
87.41B3.7B5.4B$508.2A4.29B7.A70.6B62.7B6.A64.2A5.5B5.4B86.B2.41B3.7B
5.4B$512.29B9.2A68.7B62.6B7.2A62.B2AB4.4B5.4B86.2AB.42B3.7B5.4B$512.
28B77.2B.7B54.2A5.7B72.3B3.4B5.4B87.2A4B2A39B3.7B5.4B$512.4B2A22B76.
11B53.B2AB3.8B71.B.B3.4B5.4B89.2B.2B2A6B3.24B.6B3.7B5.4B$510.2AB.2B2A
21B75.13B54.2B3.8B71.10B5.4B93.5B2.B5.24B2.6B3.7B5.4B$509.A.AB.5B.15B
.B.B2A72.14B53.2B3.9B69.11B5.4B93.6B8.23B4.6B3.7B5.4B$509.A5.3B2.16B
2.BA.A71.14B52.BA2B.4B.6B67.11B5.4B94.4B10.23B5.6B3.7B5.4B$508.2A6.3B
.12B.2B6.A70.14B53.A.A5B.7B65.12B5.4B95.2B2AB8.20B2.B7.6B3.7B5.4B$
515.B2AB.11B10.2A70.10B57.A.4B2.6B65.12B5.4B94.2AB.2A9.19B12.6B3.7B5.
4B$516.2A3.9B78.2A4.10B53.3A4.B3.6B49.2A13.14B3.4B94.A.AB10.2AB.12B.
2B15.6B3.7B5.4B$522.3B.B82.A6.10B.B3.B45.A5.2B2.7B50.A11.17B.4B95.A
12.A.AB.8B.3B19.6B3.7B5.4B$521.2B86.A.AB.19B48.13B46.A.A12.22B95.2A
12.A4.7B25.6B3.7B5.4B$520.2BAB86.2AB.19B.B45.16B42.3A.2A10.6B2A14B
109.2A4.7B26.6B3.7B5.4B$521.A.A88.22B2A44.16B41.A4.B9.8B2A16B100.2A
11.6B28.6B3.7B5.4B$522.A89.22B2A44.17B41.3AB2AB6.27B101.A2.2A6.7B29.
6B3.7B5.4B$612.23B45.17B43.A.2A32B.B2A99.A.A.A5.8B30.6B3.7B5.4B$612.
23B44.19B44.31B4.BA.A99.A.B5.8B32.6B3.7B5.4B$611.22B47.19B45.29B7.A
101.2B3.9B33.6B3.7B5.4B$611.8B2.11B48.19B43.29B9.2A99.BA2B.4B.6B33.6B
3.7B5.4B$613.5B3.13B46.20B42.28B111.A.A5B.7B34.6B3.7B5.4B$615.3B4.8B.
B2A46.20B42.4B2A22B112.A.4B2.6B36.6B3.7B5.4B$616.B5.8B2.A47.20B40.2AB
.2B2A21B110.3A4.B3.6B37.6B3.7B5.4B$622.8B3.3A44.7BA13B38.A.AB.5B.15B.
B.B2A108.A5.2B2.7B38.6B3.7B5.4B$623.6B6.A44.6BABA12B38.A5.3B2.16B2.BA
.A111.13B39.6B3.7B5.4B$623.6B4.2A48.2BA2BA13B36.2A6.3B.12B.2B6.A110.
16B38.6B3.7B5.4B$623.6B4.A49.3B2A14B43.B2AB.11B10.2A109.16B39.6B3.7B
5.4B$622.7B.BA.A53.17B42.2A3.9B122.17B39.6B3.7B5.4B$622.6B2.B2A57.15B
47.3B.B125.17B40.6B3.7B5.4B$623.8B59.15B46.2B128.19B40.6B3.7B5.4B$
623.8B58.17B.2B41.2BAB128.19B40.6B3.7B5.4B$622.8B58.20B2A41.A.A128.
19B41.6B3.7B5.4B$622.7B59.20B2A42.A129.20B41.6B3.7B5.4B$613.2A7.6B59.
15B.B2A.2B173.20B42.6B3.7B5.4B$614.A6.7B58.15B2.B2A176.20B43.6B3.7B5.
4B$614.A.AB3.7B57.5B2A10B180.7BA13B43.6B3.7B5.4B$615.2AB2.8B57.5B2A
10B180.6BABA12B44.6B3.7B5.4B$617.11B56.18B183.2BA2BA13B44.6B3.7B5.4B$
617.11B55.20B182.3B2A14B45.6B3.7B5.4B$617.11B55.20B186.17B44.6B3.7B5.
4B$616.11B55.18B.B190.15B44.6B3.7B5.4B$617.7B.2B52.B.7BA12B191.15B45.
6B3.7B5.4B$617.11B50.2AB.5BABA10B191.17B.2B42.6B3.7B5.4B$618.10B50.2A
7BABA12B188.20B2A42.6B3.7B5.4B$618.12B49.2B.6BA10B.2A188.20B2A43.6B3.
7B5.4B$619.13B50.15B3.A188.15B.B2A.2B45.6B3.7B5.4B$616.17B49.4B.9B5.
3A184.15B2.B2A49.6B3.7B5.4B$615.18B48.4B.10B.2B4.A183.5B2A10B54.6B3.
7B5.4B$614.2B2A13B.B2A45.4B3.11B2A187.5B2A10B55.6B3.7B5.4B$615.B2A6B.
4B3.BA.A43.4B5.8B.B2A186.18B56.6B3.7B5.4B$608.2A4.8B4.B8.A42.4B6.9B.B
186.20B56.6B3.7B5.4B$609.A4.6B15.2A40.4B8.7B189.20B57.6B3.7B5.4B$609.
A.AB.7B55.4B9.6B189.18B.B59.6B3.7B5.4B$610.2AB2.6B54.4B11.B.4B185.B.
20B61.6B3.7B5.4B$612.8B54.4B15.4B183.2AB.18B63.6B3.7B5.4B$612.8B53.4B
17.4B182.2A22B62.6B3.7B5.4B$613.8B36.A14.4B19.4B182.2B.17B.2A63.6B3.
7B5.4B$614.7B8.A27.3A11.4B21.4B184.15B3.A65.6B3.7B5.4B$615.6B6.3A30.A
9.4B23.4B23.2A158.14B5.3A63.6B3.7B5.4B$615.7B4.A32.2A4.2B2.4B25.4B22.
A158.6B.8B.2B4.A64.6B3.7B5.4B$615.7B4.2A27.B3.8B.4B27.4B18.BA.A157.6B
3.9B2A69.6B3.7B5.4B$615.8B.4B4.A20.4B4.10B9.A19.4B14.2A.B2A117.A39.6B
4.7B.B2A70.6B3.7B5.4B$615.11B4.3A19.6B.11B10.3A12.B.3B.4B12.B2A2B117.
3A38.6B4.9B.B72.6B3.7B5.4B$615.12B2.A22.6B.10B14.A10.18B6.4B116.A40.
6B6.7B76.6B3.7B5.4B$615.12B2.2A20.19B12.2A3.B5.2B2A16B3.6B116.2A38.6B
7.5B79.6B3.7B5.4B$616.11B3.B19.19B13.8B3.2B2A16B2.6B115.4B37.6B9.B.2B
80.6B3.7B5.4B$619.7B4.3B17.17B17.8B.20B.7B114.3B38.6B95.6B3.7B5.4B$
618.8B3.6B16.15B18.38B110.8B35.6B97.6B3.7B5.4B$617.9B2.10B11.17B17.
15B.2B2.20B108.10B33.6B99.6B3.7B5.4B$616.23B3.2B2.22B13.17B8.18B72.A
20.A13.11B31.6B101.6B3.7B5.4B$614.B.16B2A37B3.2B2.19B11.16B71.A.A7.A
11.3A11.10B31.6B103.6B3.7B5.4B$613.2A17B2A22B.40B12.14B72.BA2B4.3A14.
A7.13B30.6B105.6B3.7B5.4B$613.2A73B.7B12.16B60.2A10.2B4.A16.2A6.17B
26.6B107.6B3.7B5.4B$614.83B11.14B.B2A59.A7.4B5.2A15.4B5.15B2A24.6B
109.6B3.7B5.4B$612.5B2.39B.39B8.2AB.3B3.6B.BA.A58.A.AB3.6B3.3B3.7B.B
5.3B5.14B2A23.6B111.6B3.7B5.4B$612.2A6.5B5.13B.4B5.4B.29B2.8B8.A.AB7.
6B4.A59.2AB3.5B2.3B5.13B.4B6.10B.2B23.6B113.6B3.7B5.4B$613.A7.2B.3B3.
7B.B4.4B5.4B3.16B.4B11.6B8.A9.7B4.2A60.44B.9B12.A11.6B115.6B3.7B5.4B$
610.3A12.2A15.4B5.4B4.12B5.3B12.5B8.2A4.2A2.8B66.45B.8B10.3A10.6B117.
6B3.7B5.4B$610.A14.A15.4B5.4B5.9B6.4B14.4B13.A.A12B65.44B.8B3.B5.A12.
6B119.6B3.7B5.4B$626.3A11.4B5.4B5.11B5.2A16.3B14.A3.11B58.2A5.20B2A
22B.13B4.2A10.6B121.6B3.7B5.4B$628.A10.4B5.4B7.7B.B2A5.A17.4B11.2A3.
4B2A5B59.A5.20B2A42B9.6B123.6B3.7B5.4B$638.4B5.4B10.4B2.BA.A.3A20.2A
17.3B2A5B59.A.AB2.27B3.2B2.28B10.6B125.6B3.7B5.4B$637.4B5.4B10.B2A2B
5.A.A22.A18.10B60.2AB.9B.B3.B2.10B11.25B9.6B127.6B3.7B5.4B$636.4B5.4B
12.2A7.2A24.3A16.9B62.11B9.6B16.26B5.6B129.6B3.7B5.4B$635.4B5.4B50.A
16.9B62.11B10.3B19.26B3.6B131.6B3.7B5.4B$634.4B5.4B68.8B63.9B.B2A8.B
20.27B2.6B133.6B3.7B5.4B$633.4B5.4B70.8B63.7B2.BA.A6.2A20.34B135.6B3.
7B5.4B$632.4B5.4B72.6B63.8B5.A6.A19.2AB.31B107.2A26.9B2.7B5.4B$631.4B
5.4B73.6B4.2A58.8B4.2A6.A17.A.AB4.27B109.A4.3B16.13B2.7B5.4B$622.2A6.
4B5.4B74.6B4.A60.7B11.2A17.A7.26B110.A.A5B14.16B2.7B5.4B$621.B2AB4.4B
5.4B74.7B.BA.A57.11B28.2A8.24B112.2A6B13.16B3.7B5.4B$622.3B3.4B5.4B
75.6B2.B2A57.11B36.B.24B115.6B6.B5.18B3.7B5.4B$621.B.B3.4B5.4B77.8B
59.11B35.2A24B117.6B.B2.26B3.7B5.4B$620.10B5.4B78.8B59.11B35.2AB.11B
3.7B117.38B3.7B5.4B$618.11B5.4B78.8B60.8B2.B2A34.B4.9B4.5B118.39B3.7B
5.4B$617.11B5.4B79.7B61.7B3.BA.A38.9B4.4B117.B2.39B3.7B5.4B$615.12B5.
4B80.6B62.7B6.A39.5B6.4B117.2AB.40B3.7B5.4B$614.12B5.4B80.7B62.6B7.2A
31.2A5.5B5.4B118.2A4B2A37B3.7B5.4B$596.A16.14B3.4B78.2B.7B54.2A5.7B
39.B2AB4.4B5.4B120.2B.2B2A6B3.29B3.7B5.4B$595.A.A13.17B.4B78.11B53.B
2AB3.8B40.3B3.4B5.4B124.5B2.B5.30B3.7B5.4B$595.A.A12.22B77.13B54.2B3.
8B40.B.B3.4B5.4B124.6B8.23B2.6B3.7B5.4B$594.2A.2A10.6B2A14B77.14B53.
2B3.9B39.10B5.4B125.4B10.23B3.6B3.7B5.4B$597.B9.8B2A16B75.14B52.BA2B.
4B.6B36.11B5.4B126.2B2AB8.20B2.B5.6B3.7B5.4B$594.2AB2AB6.27B74.14B53.
A.A5B.7B35.11B5.4B125.2AB.2A9.19B10.6B3.7B5.4B$595.A.2A32B.B2A73.10B
57.A.4B2.6B34.12B5.4B125.A.AB10.2AB.12B.2B13.6B3.7B5.4B$593.A3.31B4.B
A.A67.2A4.10B53.3A4.B3.6B33.12B5.4B126.A12.A.AB.8B.3B17.6B3.7B5.4B$
593.2A4.29B7.A68.A6.10B.B3.B45.A5.2B2.7B17.2A13.14B3.4B126.2A12.A4.7B
23.6B3.7B5.4B$597.29B9.2A67.A.AB.19B48.13B18.A11.17B.4B140.2A4.7B24.
6B3.7B5.4B$597.28B80.2AB.19B.B45.16B12.A.A12.22B134.2A11.6B26.6B3.7B
5.4B$597.4B2A22B82.22B2A44.16B10.3A.2A10.6B2A14B136.A2.2A6.7B27.6B3.
7B5.4B$595.2AB.2B2A21B83.22B2A44.17B8.A4.B9.8B2A16B134.A.A.A5.8B28.6B
3.7B5.4B$594.A.AB.5B.15B.B.B2A81.23B45.17B9.3AB2AB6.27B135.A.B5.8B30.
6B3.7B5.4B$594.A5.3B2.16B2.BA.A80.23B44.19B10.A.2A32B.B2A135.2B3.9B
31.6B3.7B5.4B$593.2A6.3B.12B.2B6.A79.22B47.19B11.31B4.BA.A133.BA2B.4B
.6B31.6B3.7B5.4B$600.B2AB.11B10.2A78.8B2.11B48.19B13.29B7.A133.A.A5B.
7B32.6B3.7B5.4B$601.2A3.9B93.5B3.13B46.20B10.29B9.2A133.A.4B2.6B34.6B
3.7B5.4B$607.3B.B98.3B4.8B.B2A46.20B10.28B142.3A4.B3.6B35.6B3.7B5.4B$
606.2B103.B5.8B2.A47.20B10.4B2A22B142.A5.2B2.7B36.6B3.7B5.4B$605.2BAB
108.8B3.3A44.7BA13B7.2AB.2B2A21B147.13B37.6B3.7B5.4B$606.A.A109.6B6.A
44.6BABA12B6.A.AB.5B.15B.B.B2A144.16B36.6B3.7B5.4B$607.A110.6B4.2A48.
2BA2BA13B5.A5.3B2.16B2.BA.A143.16B37.6B3.7B5.4B$718.6B4.A49.3B2A14B4.
2A6.3B.12B.2B6.A143.17B37.6B3.7B5.4B$717.7B.BA.A53.17B9.B2AB.11B10.2A
142.17B38.6B3.7B5.4B$717.6B2.B2A57.15B9.2A3.9B154.19B38.6B3.7B5.4B$
718.8B59.15B15.3B.B158.19B38.6B3.7B5.4B$718.8B58.17B.2B10.2B162.19B
39.6B3.7B5.4B$717.8B58.20B2A8.2BAB161.20B39.6B3.7B5.4B$717.7B59.20B2A
9.A.A161.20B40.6B3.7B5.4B$708.2A7.6B59.15B.B2A.2B11.A162.20B41.6B3.7B
5.4B$709.A6.7B58.15B2.B2A177.7BA13B41.6B3.7B5.4B$709.A.AB3.7B57.5B2A
10B181.6BABA12B42.6B3.7B5.4B$710.2AB2.8B57.5B2A10B184.2BA2BA13B42.6B
3.7B5.4B$712.11B56.18B184.3B2A14B43.6B3.7B5.4B$712.11B55.20B187.17B
42.6B3.7B5.4B$712.11B55.20B190.15B42.6B3.7B5.4B$711.11B55.18B.B191.
15B43.6B3.7B5.4B$712.7B.2B52.B.7BA12B191.17B.2B40.6B3.7B5.4B$712.11B
50.2AB.5BABA10B191.20B2A40.6B3.7B5.4B$713.10B50.2A7BABA12B189.20B2A
41.6B3.7B5.4B$713.12B49.2B.6BA10B.2A188.15B.B2A.2B43.6B3.7B5.4B$714.
13B50.15B3.A188.15B2.B2A47.6B3.7B5.4B$711.17B49.4B.9B5.3A184.5B2A10B
52.6B3.7B5.4B$710.18B48.4B.10B.2B4.A184.5B2A10B53.6B3.7B5.4B$709.2B2A
13B.B2A45.4B3.11B2A187.18B54.6B3.7B5.4B$710.B2A6B.4B3.BA.A43.4B5.8B.B
2A186.20B54.6B3.7B5.4B$703.2A4.8B4.B8.A42.4B6.9B.B187.20B55.6B3.7B5.
4B$704.A4.6B15.2A40.4B8.7B189.18B.B57.6B3.7B5.4B$704.A.AB.7B55.4B9.6B
187.B.20B59.6B3.7B5.4B$705.2AB2.6B54.4B11.B.4B185.2AB.18B61.6B3.7B5.
4B$707.8B54.4B15.4B184.2A22B60.6B3.7B5.4B$707.8B53.4B17.4B184.2B.17B.
2A61.6B3.7B5.4B$708.8B36.A14.4B19.4B186.15B3.A63.6B3.7B5.4B$709.7B8.A
27.3A11.4B21.4B185.14B5.3A61.6B3.7B5.4B$710.6B6.3A30.A9.4B23.4B23.2A
158.6B.8B.2B4.A62.6B3.7B5.4B$710.7B4.A32.2A4.2B2.4B25.4B22.A158.6B3.
9B2A67.6B3.7B5.4B$710.7B4.2A27.B3.8B.4B27.4B18.BA.A157.6B4.7B.B2A68.
6B3.7B5.4B$710.8B.4B4.A20.4B4.10B9.A19.4B14.2A.B2A117.A39.6B4.9B.B70.
6B3.7B5.4B$710.11B4.3A19.6B.11B10.3A12.B.3B.4B12.B2A2B117.3A38.6B6.7B
74.6B3.7B5.4B$710.12B2.A22.6B.10B14.A10.18B6.4B116.A40.6B7.5B77.6B3.
7B5.4B$710.12B2.2A20.19B12.2A3.B5.2B2A16B3.6B116.2A38.6B9.B.2B78.6B3.
7B5.4B$711.11B3.B19.19B13.8B3.2B2A16B2.6B115.4B37.6B93.6B3.7B5.4B$
714.7B4.3B17.17B17.8B.20B.7B114.3B38.6B95.6B3.7B5.4B$713.8B3.6B16.15B
18.38B110.8B35.6B97.6B3.7B5.4B$712.9B2.10B11.17B17.15B.2B2.20B108.10B
33.6B99.6B3.7B5.4B$711.23B3.2B2.22B13.17B8.18B72.A20.A13.11B31.6B101.
6B3.7B5.4B$709.B.16B2A37B3.2B2.19B11.16B71.A.A7.A11.3A11.10B31.6B103.
6B3.7B5.4B$708.2A17B2A22B.40B12.14B72.BA2B4.3A14.A7.13B30.6B105.6B3.
7B5.4B$708.2A73B.7B12.16B60.2A10.2B4.A16.2A6.17B26.6B107.6B3.7B5.4B$
709.83B11.14B.B2A59.A7.4B5.2A15.4B5.15B2A24.6B109.6B3.7B5.4B$707.5B2.
39B.39B8.2AB.3B3.6B.BA.A58.A.AB3.6B3.3B3.7B.B5.3B5.14B2A23.6B111.6B3.
7B5.4B$707.2A6.5B5.13B.4B5.4B.29B2.8B8.A.AB7.6B4.A59.2AB3.5B2.3B5.13B
.4B6.10B.2B23.6B113.6B3.7B5.4B$708.A7.2B.3B3.7B.B4.4B5.4B3.16B.4B11.
6B8.A9.7B4.2A60.44B.9B12.A11.6B115.6B3.7B5.4B$705.3A12.2A15.4B5.4B4.
12B5.3B12.5B8.2A4.2A2.8B66.45B.8B10.3A10.6B117.6B3.7B5.4B$705.A14.A
15.4B5.4B5.9B6.4B14.4B13.A.A12B65.44B.8B3.B5.A12.6B119.6B3.7B5.4B$
721.3A3.2A6.4B5.4B5.11B5.2A16.3B14.A3.11B58.2A5.20B2A22B.13B4.2A10.6B
121.6B3.7B5.4B$723.A2.B2AB4.4B5.4B7.7B.B2A5.A17.4B11.2A3.4B2A5B59.A5.
20B2A42B9.6B123.6B3.7B5.4B$727.3B3.4B5.4B10.4B2.BA.A.3A20.2A17.3B2A5B
59.A.AB2.27B3.2B2.28B10.6B125.6B3.7B5.4B$726.B.B3.4B5.4B10.B2A2B5.A.A
22.A18.10B60.2AB.9B.B3.B2.10B11.25B9.6B127.6B3.7B5.4B$725.10B5.4B12.
2A7.2A24.3A16.9B62.11B9.6B16.26B5.6B129.6B3.7B5.4B$723.11B5.4B50.A16.
9B62.11B10.3B19.26B3.6B131.6B3.7B5.4B$722.11B5.4B68.8B63.9B.B2A8.B20.
27B2.6B133.6B3.7B5.4B$720.12B5.4B70.8B63.7B2.BA.A6.2A20.34B135.6B3.7B
5.4B$719.12B5.4B72.6B63.8B5.A6.A19.2AB.31B137.6B3.7B5.4B$701.A16.14B
3.4B73.6B4.2A58.8B4.2A6.A17.A.AB4.27B139.6B3.7B5.4B$700.A.A13.17B.4B
74.6B4.A60.7B11.2A17.A7.26B141.6B3.7B5.4B$700.A.A12.22B74.7B.BA.A57.
11B28.2A8.24B143.6B3.7B5.4B$699.2A.2A10.6B2A14B75.6B2.B2A57.11B36.B.
24B145.6B3.7B5.4B$702.B9.8B2A16B74.8B59.11B35.2A24B147.6B3.7B5.4B$
699.2AB2AB6.27B74.8B59.11B35.2AB.11B3.7B149.6B3.7B5.4B$700.A.2A32B.B
2A71.8B60.8B2.B2A34.B4.9B4.5B151.6B3.7B5.4B$698.A3.31B4.BA.A70.7B61.
7B3.BA.A38.9B4.4B153.6B3.7B5.4B$698.2A4.29B7.A70.6B62.7B6.A39.5B6.4B
155.6B3.7B5.4B$702.29B9.2A68.7B62.6B7.2A31.2A5.5B5.4B157.6B3.7B5.4B$
702.28B77.2B.7B54.2A5.7B39.B2AB4.4B5.4B159.6B3.7B5.4B$702.4B2A22B76.
11B53.B2AB3.8B40.3B3.4B5.4B161.6B3.7B5.4B$700.2AB.2B2A21B75.13B54.2B
3.8B40.B.B3.4B5.4B163.6B3.7B5.4B$699.A.AB.5B.15B.B.B2A72.14B53.2B3.9B
39.10B5.4B165.6B3.7B5.4B$699.A5.3B2.16B2.BA.A71.14B52.BA2B.4B.6B36.
11B5.4B167.6B3.7B5.4B$698.2A6.3B.12B.2B6.A70.14B53.A.A5B.7B35.11B5.4B
169.6B3.7B5.4B$705.B2AB.11B10.2A70.10B57.A.4B2.6B34.12B5.4B171.6B3.7B
5.4B$706.2A3.9B78.2A4.10B53.3A4.B3.6B33.12B5.4B173.6B3.7B5.4B$712.3B.
B82.A6.10B.B3.B45.A5.2B2.7B17.2A13.14B3.4B175.6B3.7B5.4B$711.2B86.A.A
B.19B48.13B18.A11.17B.4B177.6B3.7B5.4B$710.2BAB86.2AB.19B.B45.16B12.A
.A12.22B179.6B3.7B5.4B$711.A.A88.22B2A44.16B10.3A.2A10.6B2A14B181.6B
3.7B5.4B$712.A89.22B2A44.17B8.A4.B9.8B2A16B180.6B3.7B5.4B$802.23B45.
17B9.3AB2AB6.27B181.6B3.7B5.4B$802.23B44.19B10.A.2A32B.B2A180.6B3.7B
5.4B$801.22B47.19B11.31B4.BA.A180.6B3.7B5.4B$801.8B2.11B48.19B13.29B
7.A181.6B3.7B5.4B$803.5B3.13B46.20B10.29B9.2A181.6B3.7B5.4B$805.3B4.
8B.B2A46.20B10.28B194.6B3.7B5.4B$806.B5.8B2.A47.20B10.4B2A22B195.6B3.
7B5.4B$812.8B3.3A44.7BA13B7.2AB.2B2A21B197.6B3.7B5.4B$813.6B6.A44.6BA
BA12B6.A.AB.5B.15B.B.B2A196.6B3.7B5.4B$813.6B4.2A48.2BA2BA13B5.A5.3B
2.16B2.BA.A196.6B3.7B5.4B$813.6B4.A49.3B2A14B4.2A6.3B.12B.2B6.A197.6B
3.7B5.4B$812.7B.BA.A53.17B9.B2AB.11B10.2A197.6B3.7B5.4B$812.6B2.B2A
57.15B9.2A3.9B211.6B3.7B5.4B$813.8B59.15B15.3B.B215.6B3.7B5.4B$813.8B
58.17B.2B10.2B220.6B3.7B5.4B$812.8B58.20B2A8.2BAB220.6B3.7B5.4B$812.
7B59.20B2A9.A.A221.6B3.7B5.4B$803.2A7.6B59.15B.B2A.2B11.A223.6B3.7B5.
4B$804.A6.7B58.15B2.B2A239.6B3.7B5.4B$804.A.AB3.7B57.5B2A10B244.6B3.
7B5.4B$805.2AB2.8B57.5B2A10B245.6B3.7B5.4B$807.11B56.18B246.6B3.7B5.
4B$807.11B55.20B246.6B3.7B5.4B$807.11B55.20B247.6B3.7B5.4B$806.11B55.
18B.B249.6B3.7B5.4B$807.7B.2B52.B.7BA12B251.6B3.7B5.4B$807.11B50.2AB.
5BABA10B253.6B3.7B5.4B$808.10B50.2A7BABA12B252.6B3.7B5.4B$808.12B49.
2B.6BA10B.2A253.6B3.7B5.4B$809.13B50.15B3.A255.6B3.7B5.4B$806.17B49.
4B.9B5.3A253.6B3.7B5.4B$805.18B48.4B.10B.2B4.A254.6B3.7B5.4B$804.2B2A
13B.B2A45.4B3.11B2A259.6B3.7B5.4B$805.B2A6B.4B3.BA.A43.4B5.8B.B2A260.
6B3.7B5.4B$798.2A4.8B4.B8.A42.4B6.9B.B262.6B3.3BD3B5.4B$799.A4.6B15.
2A40.4B8.7B266.6B3.DBD4B5.4B$799.A.AB.7B55.4B9.6B268.6B3.2D5B5.4B$
800.2AB2.6B54.4B11.B.4B268.6B3.7B5.4B$802.8B54.4B15.4B268.6B3.7B5.4B$
802.8B53.4B17.4B268.6B3.7B5.4B$803.8B36.A14.4B19.4B268.6B3.7B5.4B$
804.7B8.A27.3A11.4B21.4B268.6B3.7B5.4B$805.6B6.3A30.A9.4B23.4B23.2A
243.6B3.2B.4B5.4B$805.7B4.A32.2A4.2B2.4B25.4B22.A245.6B3.B2.4B5.4B$
805.7B4.2A27.B3.8B.4B27.4B18.BA.A246.6B6.4B5.4B$805.8B.4B4.A20.4B4.
10B9.A19.4B14.2A.B2A248.6B6.4B5.4B$805.11B4.3A19.6B.11B10.3A12.B.3B.
4B12.B2A2B251.6B6.4B5.4B$805.12B2.A22.6B.10B14.A10.18B6.4B252.6B6.4B
5.4B$805.12B2.2A20.19B12.2A3.B5.2B2A16B3.6B253.6B6.4B5.4B$806.11B3.B
19.19B13.8B3.2B2A16B2.6B255.6B6.4B5.4B$809.7B4.3B17.17B17.8B.20B.7B
256.6B6.4B5.4B$808.8B3.6B16.15B18.38B256.6B6.4B5.4B$807.9B2.10B11.17B
17.15B.2B2.20B256.B.4B6.4B5.4B$806.23B3.2B2.22B13.17B8.18B258.4B6.4B
5.4B$804.B.16B2A37B3.2B2.19B11.16B259.4B6.4B5.4B$803.2A17B2A22B.40B
12.14B261.4B6.4B5.4B$803.2A73B.7B12.16B261.4B6.4B5.4B$804.83B11.14B.B
2A260.4B6.4B5.BDBD$802.5B2.39B.39B8.2AB.3B3.6B.BA.A260.4B6.4B5.B2DB$
802.2A6.5B5.13B.4B5.4B.29B2.8B8.A.AB7.6B4.A261.4B6.4B5.D3B$803.A7.2B.
3B3.7B.B4.4B5.4B3.16B.4B11.6B8.A9.7B4.2A261.4B6.4B5.4B$800.3A12.2A15.
4B5.4B4.12B5.3B12.5B8.2A4.2A2.8B268.4B6.4B5.4B$800.A14.A15.4B5.4B5.9B
6.4B14.4B13.A.A12B267.4B6.4B5.4B$816.3A3.2A6.4B5.4B5.11B5.2A16.3B14.A
3.11B268.4B5.5B5.4B$818.A2.B2AB4.4B5.4B7.7B.B2A5.A17.4B11.2A3.4B2A5B
269.4B4.6B5.4B$822.3B3.4B5.4B10.4B2.BA.A.3A20.2A17.3B2A5B270.4B4.6B5.
4B$821.B.B3.4B5.4B10.B2A2B5.A.A22.A18.10B271.4B4.6B5.4B$820.10B5.4B
12.2A7.2A24.3A16.9B272.4B4.6B5.4B$818.11B5.4B50.A16.9B273.4B4.6B5.4B$
817.11B5.4B68.8B275.4B4.6B5.4B$815.12B5.4B70.8B275.4B4.6B5.4B$814.12B
5.4B72.6B275.6B4.6B5.4B$796.A16.14B3.4B73.6B4.2A270.6B4.6B5.4B$795.A.
A13.17B.4B74.6B4.A272.6B4.6B5.4B$795.A.A12.22B74.7B.BA.A273.6B4.6B5.
5B$794.2A.2A10.6B2A14B75.6B2.B2A275.6B4.6B3.8B$797.B9.8B2A16B74.8B
278.6B4.5BD11B$794.2AB2AB6.27B74.8B279.6B4.5BD10B$795.A.2A32B.B2A71.
8B281.6B4.2B3D10B$793.A3.31B4.BA.A70.7B283.6B3.15B$793.2A4.29B7.A70.
6B285.6B2.13B$797.29B9.2A68.7B286.24B$797.28B77.2B.7B287.24B$797.4B2A
22B76.11B285.B2.5BD18B6.B2D$795.2AB.2B2A21B75.13B284.7BDBD3B2C20B2DB$
794.A.AB.5B.15B.B.B2A72.14B282.10B2D3B2C24B$794.A5.3B2.16B2.BA.A71.
14B281.42B$793.2A6.3B.12B.2B6.A70.14B283.42B$800.B2AB.11B10.2A70.10B
288.40B$801.2A3.9B78.2A4.10B288.39B$807.3B.B82.A6.10B.B3.B281.5B2.30B
$806.2B86.A.AB.19B282.2B3.24B2.2B$805.2BAB86.2AB.19B.B286.B2.18B$806.
A.A88.22B2A289.17B$807.A89.22B2A290.2B.14B$897.23B295.12B$897.23B297.
10B$896.22B300.4B$896.8B2.11B302.2B$898.5B3.13B$900.3B4.8B.B2A$901.B
5.8B2.A$907.8B3.3A$908.6B6.A$908.6B4.2A$908.6B4.A$907.7B.BA.A$907.6B
2.B2A$908.8B$908.8B$907.8B$907.7B$898.2A7.6B$899.A6.7B$899.A.AB3.7B$
900.2AB2.8B$902.11B$902.11B$902.11B$901.11B$902.7B.2B72.2B$902.11B71.
BA2B$903.10B70.BABA2B$903.12B67.2BABA2B$904.13B65.3BA2B$901.17B63.6B$
900.18B64.7B$899.2B2A13B.B2A63.7B2.B$900.B2A6B.4B3.BA.A62.7B.B2A$893.
2A4.8B4.B8.A63.8B2A$894.A4.6B15.2A62.6B.2B$894.A.AB.7B77.7B$895.2AB2.
6B76.8B$897.8B67.2A8.8B$897.8B52.A15.A9.8B$898.8B49.3A15.A.AB4.10B$
899.7B8.A27.A11.A19.2AB.14B$900.6B6.3A27.3A9.2A20.17B$900.7B4.A33.A9.
B20.17B$900.7B4.2A19.2A10.2A9.3B19.17B.B$900.8B.4B4.A15.A10.5B5.6B16.
19B2A$900.11B4.3A15.A.AB9.4B3.10B11.19B.B2A$900.12B2.A19.2AB.3B4.6B2.
11B3.2B2.22B2.B$900.12B2.2A20.7B.13B2A33B$901.11B3.B20.21B2A22B.9B$
904.7B4.3B19.44B.8B$903.8B3.6B16.45B.8B$902.9B2.10B11.46B.9B$901.23B
3.2B2.19B.B3.13B.4B6.10B.2B$899.B.16B2A29B7.7B.B5.3B5.14B2A$898.2A17B
2A22B.6B19.4B5.15B2A$898.2A41B2.B.5B17.2A6.17B$899.42B7.2A18.A7.13B$
897.5B2.36B8.A16.3A11.10B$897.2A6.5B5.13B.4B16.3A13.A13.11B$898.A7.2B
.3B3.7B.B5.3B19.A27.10B$895.3A12.2A15.4B49.8B$895.A14.A16.2A54.4B$
911.3A14.A55.4B$913.A11.3A57.4B$925.A60.4B$987.4B$988.4B$989.4B$990.
4B$991.4B$992.4B$993.4B!
New version:

Code: Select all

x = 493, y = 343, rule = LifeHistory
176.2A$176.A.A$178.A4.2A$174.4A.2A2.A2.A$174.A2.A.A.A.A.2A$176.BABABA
.A$177.B2ABA.A$178.2B.BA$177.3B$168.2A6.4B$169.A6.B2A3B$169.A.AB3.B2A
3B$170.2AB.10B$172.13B$172.14B$172.15B$174.8B2.4B$174.6B5.4B$173.9B4.
4B$172.4B4.2A5.4B$171.4B5.A7.4B$170.4B7.3A5.4B$169.4B10.A6.4B$156.2A
10.4B19.4B$8.2A147.A9.4B21.4B$8.A.A78.2A64.A10.4B23.4B$10.A4.2A72.A.A
63.5A5.4B5.2A18.4B$6.4A.2A2.A2.A72.A4.2A62.A4.4B5.A20.4B$6.A2.A.A.A.A
.2A68.4A.2A2.A2.A57.3AB2.7B.BA.A21.4B$8.BABABA.A71.A2.A.A.A.A.2A56.A.
2B3.7B.B2A23.4B$9.B2ABA.A73.BABABA.A59.4A12B26.4B$10.2B.BA75.B2ABA.A
57.2A2.BA3B2A7B27.4B$9.3B79.2B.BA57.A2.3AB.2B2A7B28.4B$2A6.4B78.3B60.
2A.A.B3.10B29.4B$.A6.B2A3B55.A11.2A6.4B63.A8.8B29.4B$.A.AB3.B2A3B53.
3A12.A6.B2A3B61.2A7.9B29.4B$2.2AB.10B50.A15.A.AB3.B2A3B71.3B2.4B29.4B
$4.13B38.A10.2A15.2AB.10B67.5B3.4B29.4B$4.14B36.A.A6.5B17.13B66.2A7.
4B10.2A17.4B$4.15B35.A.A5.4B19.14B66.A8.4B9.A19.4B$6.8B2.4B32.3A.2A3.
6B11.A6.15B62.3A10.4B10.A18.4B$6.6B5.4B30.A4.B4.6B9.3A8.8B2.4B35.2A
24.A6.2A5.4B5.5A19.4B$5.9B4.4B23.A6.3AB2AB.7B8.A11.6B5.4B33.B2A2B3.2A
25.A5.4B4.A25.4B$4.4B4.2A5.4B22.3A6.A.2AB2.6B.2B5.2A9.9B4.4B33.4B2.B
2AB24.A.AB.7B2.B3A23.4B$3.4B5.A7.4B24.A7.21B8.4B4.2A5.4B28.B.6B3.2B
26.2AB.7B3.2B.A23.4B$2.4B7.3A5.4B10.A11.2A3.B5.17B9.4B5.A7.4B25.10B2.
2B29.12B4A24.4B$.4B10.A6.4B7.3A11.8B2.15B2A2B7.4B7.3A5.4B10.A5.2A6.
11B2A2B28.7B2A3BAB2.2A23.4B$3CB19.4B5.A16.22BA2BA2B5.4B10.A6.4B7.3A6.
A5.12B2A3B.B25.7B2A2B.B3A2.A23.4B$2.C21.4B4.2A15.23B2A3B4.4B19.4B5.A
9.A.AB2.18B2A24.10B3.B.A.2A24.4B$.C15.2A6.9B14.19B3.9B.4B21.4B4.2A9.
2AB3.15B.B2A23.8B8.A28.4B$18.A7.6B14.21B4.12B15.2A6.9B11.18B3.B23.9B
7.2A29.4B$18.A.2A5.6B3.B2.2B2.25B4.10B17.A7.6B13.18B26.4B2.3B40.4B$
19.A2.A4.34B4.4B3.9B18.A.2A5.6B3.B2.2B2.19B26.4B3.5B39.4B$20.2AB3.27B
.6B6.4B.9B20.A2.A4.35B25.4B7.2A26.2A12.4B$21.14B2A16B2.B.5B5.4B.7B22.
2AB3.27B.7B25.4B8.A26.B2AB12.4B$22.13B2A16B7.2A6.10B24.14B2A16B2.6B
24.4B10.3A24.2B6.B7.4B$23.29B8.A8.4B.2B27.13B2A17B.7B22.4B13.A25.2B4.
3B7.4B$23.17B.4B16.3A6.4B30.32B.6B21.4B39.14B4.4B$24.15B3.2B19.A7.4B
29.17B.4B7.9B21.4B40.14B5.4B$24.15B3.3B27.4B29.15B3.2B9.8B20.4B32.B5.
17B6.4B$25.13B5.A2B.2A24.4B28.15B3.3B9.8B18.4B32.25B6.4B$27.13B2.A.A
2B.A25.4B28.13B5.A2B.2A6.7B8.A8.4B31.29B5.4B$26.8B4.2A.A.AB2.A27.4B
29.13B2.A.A2B.A7.6B6.3A7.4B30.B.30B5.4B$26.6B6.2ABA4.A29.4B27.8B4.2A.
A.AB2.A8.7B4.A9.4B30.2A32B5.4B$26.5B8.B2.5A.A28.4B26.6B6.2ABA4.A9.7B
4.2A7.4B31.2A33B5.4B$26.B.B5.2A.A.2A.A4.2A29.4B25.5B8.B2.5A.A7.8B.4B
6.4B33.28B3.4B5.4B$27.3B4.A.2A.A2.A.2A33.4B24.B.B5.2A.A.2A.A4.2A7.11B
7.4B34.3B4.B.16B7.4B5.4B$26.B2AB11.2A.A.3A31.4B24.3B4.A.2A.A2.A.2A10.
12B5.4B46.10B.2B9.4B5.4B$27.2A19.A32.4B22.B2AB11.2A.A.3A7.12B4.4B48.
9B13.4B5.4B$82.4B22.2A19.A8.11B3.4B16.2A19.A8.11B15.4B5.4B$83.4B54.7B
3.4B16.B2AB11.2A.A.3A7.12B16.4B5.4B$84.4B52.8B2.4B18.3B4.A.2A.A2.A.2A
10.12B17.4B5.4B$85.4B50.14B18.B.B5.2A.A.2A.A4.2A7.11B19.4B5.4B$86.4B
48.16B17.5B8.B2.5A.A7.8B.4B18.4B5.4B$87.4B13.A31.B.17B.B14.6B6.2ABA4.
A9.7B4.2A19.4B5.4B$88.4B10.3A30.2A17B.B2A13.8B4.2A.A.AB2.A8.7B4.A21.
4B5.4B$89.4B8.A33.2A19B2A14.13B2.A.A2B.A7.6B6.3A19.4B5.4B$90.4B7.2A
33.18B.2B13.13B5.A2B.2A6.7B8.A20.4B5.4B$91.4B3.5B31.5B2.13B15.15B3.3B
9.8B30.4B5.4B$92.4B2.3B33.2A6.10B17.15B3.2B9.8B32.4B5.4B$93.9B7.2A24.
A7.9B16.17B.4B7.9B33.4B5.4B$94.8B8.A21.3A8.9B16.32B.6B33.4B5.4B$95.
10B3.B.A.2A18.A10.8B3.A12.13B2A17B.7B34.4B5.4B$95.7B2A2B.B3A2.A29.7B
3.A.A10.14B2A16B2.6B36.4B5.4B$95.7B2A3BAB2.2A31.6B3.A2.A8.2AB3.27B.7B
22.2A13.4B5.4B$95.12B4A11.2A17.8B.2B2A3.A6.A2.A4.35B20.B2AB13.4B5.4B$
93.2AB.7B3.2B.A11.A.A16.10BA2.4A5.A.2A5.6B3.B2.2B2.19B21.2B6.B8.4B5.
4B$92.A.AB.7B2.B3A14.A4.2A9.2A10B2A9.A7.6B13.18B21.2B4.3B8.4B5.4B$92.
A5.4B4.A13.4A.2A2.A2.A7.2A9B2.B.2A.A3.2A6.9B11.18B3.B16.14B5.4B5.4B$
91.2A5.4B5.5A8.A2.A.A.A.A.2A8.B.9B2A.A.2A10.4B4.2A9.2AB3.15B.B2A15.
14B6.4B5.4B$83.A13.4B10.A10.BABABA.A13.8B.A2.A12.4B5.A9.A.AB2.18B2A6.
B5.17B7.4B5.4B$83.3A10.4B9.A13.B2ABA.A14.7B3.2A4.A6.4B7.3A6.A5.12B2A
3B.B6.25B7.4B5.4B$86.A8.4B10.2A13.2B.BA16.6B7.3A5.4B10.A5.2A6.11B2A2B
7.29B6.4B5.4B$85.2A7.4B25.3B17.9B5.A7.4B25.10B2.2B6.B.30B6.4B5.4B$85.
5B3.4B17.2A6.4B17.2A4.4B4.2A5.4B28.B.6B3.2B4.2A32B6.4B5.4B$87.3B2.4B
19.A6.B2A3B16.A5.9B4.4B33.4B2.B2AB3.2A33B6.4B5.4B$77.2A7.9B20.A.AB3.B
2A3B13.3A7.6B5.4B33.B2A2B3.2A5.28B3.4B6.4B5.4B$77.A8.8B22.2AB.10B11.A
9.8B2.4B35.2A12.3B4.B.16B7.4B6.4B5.4B$74.2A.A.B3.10B25.13B18.15B61.
10B.2B9.4B6.4B5.4B$74.A2.3AB.2B2A7B25.14B17.14B63.9B13.4B6.4B5.4B$75.
2A2.BA3B2A7B25.15B16.13B31.2A19.A8.11B15.4B6.4B5.4B$77.4A12B27.8B2.4B
13.2AB.10B31.B2AB11.2A.A.3A7.12B16.4B6.4B5.4B$77.A.2B3.7B.B2A25.6B5.
4B11.A.AB3.B2A3B34.3B4.A.2A.A2.A.2A10.12B17.4B6.4B5.4B$78.3AB2.7B.BA.
A23.9B4.4B10.A6.B2A3B33.B.B5.2A.A.2A.A4.2A7.11B19.4B6.4B5.4B$81.A4.4B
5.A22.4B4.2A5.4B8.2A6.4B35.5B8.B2.5A.A7.8B.4B18.4B6.4B5.4B$76.5A5.4B
5.2A20.4B5.A7.4B16.3B35.6B6.2ABA4.A9.7B4.2A19.4B6.4B5.4B$76.A10.4B25.
4B7.3A5.4B16.2B.BA32.8B4.2A.A.AB2.A8.7B4.A21.4B6.4B5.4B$78.A9.4B23.4B
10.A6.4B14.B2ABA.A32.13B2.A.A2B.A7.6B6.3A19.4B6.4B5.4B$77.2A10.4B21.
4B19.4B12.BABABA.A30.13B5.A2B.2A6.7B8.A20.4B6.4B5.4B$90.4B19.4B21.4B
9.A2.A.A.A.A.2A26.15B3.3B9.8B30.4B6.4B5.4B$91.4B10.A6.4B23.4B8.4A.2A
2.A2.A26.15B3.2B9.8B32.4B6.4B5.4B$92.4B7.3A5.4B25.4B11.A4.2A27.17B.4B
7.9B33.4B6.4B5.4B$93.4B5.A7.4B27.4B8.A.A33.32B.6B33.4B6.4B5.4B$94.4B
4.2A5.4B29.4B7.2A33.13B2A17B.7B34.4B6.4B5.4B$95.9B4.4B31.4B40.14B2A
16B2.6B36.4B6.4B5.4B$96.6B5.4B33.4B38.2AB3.27B.7B37.4B6.4B5.4B$96.8B
2.4B35.4B36.A2.A4.35B37.4B6.4B5.4B$94.15B37.4B34.A.2A5.6B3.B2.2B2.19B
38.4B6.4B5.4B$94.14B39.4B33.A7.6B13.18B38.4B6.4B5.4B$94.13B41.4B31.2A
6.9B10.19B3.B35.4B6.4B5.4B$92.2AB.10B43.4B37.4B4.2A9.4B2.15B.B2A35.4B
6.4B5.4B$91.A.AB3.B2A3B46.4B35.4B5.A9.4B2.18B2A36.4B6.4B5.4B$91.A6.B
2A3B47.4B33.4B7.3A5.4B3.12B2A3B.B38.4B6.4B5.4B$90.2A6.4B50.4B31.4B10.
A4.4B5.11B2A2B42.4B6.4B5.4B$99.3B51.4B29.4B15.4B6.10B2.2B44.4B6.4B5.
4B$100.2B.BA49.4B27.4B15.4B9.B.6B3.2B44.4B6.4B5.4B$99.B2ABA.A49.4B25.
4B15.4B14.4B2.B2AB44.4B6.4B5.4B$98.BABABA.A50.4B23.4B15.4B14.B2A2B3.
2A46.4B6.4B5.4B$96.A2.A.A.A.A.2A48.4B21.4B15.4B16.2A54.5B5.4B5.4B$96.
4A.2A2.A2.A49.4B19.4B15.4B74.5B5.4B5.4B$100.A4.2A52.4B10.A6.4B15.4B
76.6B4.4B5.4B$98.A.A59.4B7.3A5.4B15.4B48.2A26.9B3.4B5.4B$98.2A61.4B5.
A7.4B15.4B50.A4.3B16.13B3.4B5.4B$162.4B4.2A5.4B15.4B51.A.A5B14.16B3.
4B5.4B$163.9B4.4B15.4B53.2A6B13.16B4.4B5.4B$164.6B5.4B15.4B56.6B6.B5.
17B5.4B5.4B$164.8B2.4B15.4B58.6B.B2.25B5.4B5.4B$162.15B15.4B58.38B4.
4B5.4B$162.14B15.4B59.39B4.4B5.4B$162.13B15.4B61.39B4.4B5.4B$160.2AB.
10B15.4B59.2B.40B4.4B5.4B$159.A.AB3.B2A3B16.4B59.2A4B2A37B4.4B5.4B$
159.A6.B2A3B15.4B60.2AB.2B2A6B3.29B4.4B5.4B$158.2A6.4B16.4B62.B2.5B2.
B5.30B4.4B5.4B$167.3B15.4B65.6B8.23B2.6B4.4B5.4B$168.2B.BA11.4B66.4B
10.23B3.6B4.4B5.4B$167.B2ABA.A9.4B67.2B2AB8.20B2.B5.6B4.4B5.4B$166.BA
BABA.A8.4B66.2AB.2A8.20B10.6B4.4B5.4B$164.A2.A.A.A.A.2A4.4B66.A.AB11.
15B.2B13.6B4.4B5.4B$164.4A.2A2.A2.A3.4B67.A12.2AB2.8B.3B17.6B4.4B5.4B
$168.A4.2A4.4B67.2A11.A.AB2.7B23.6B4.4B5.4B$166.A.A9.4B81.A5.7B24.6B
4.4B5.4B$166.2A9.4B46.2A11.A21.2A5.6B26.6B4.4B5.4B$176.4B46.B2AB9.A.A
26.7B27.6B4.4B5.4B$175.4B48.3B9.A.A2.2A3.A17.8B28.6B4.4B5.4B$174.4B
48.B.B9.2A.2A2.A2.A.A15.8B30.6B4.4B5.4B$173.4B49.5B8.B2.A.A3.A.A15.8B
31.6B4.4B5.4B$172.4B50.6B6.2ABA2.4A.A14.2AB2.6B31.6B4.4B5.4B$171.4B
51.8B4.2A.A.A3.A15.A.AB.7B32.6B4.4B5.4B$170.4B53.13B2.A.AB2.A4.A9.A4.
6B34.6B4.4B5.4B$169.4B52.13B5.A.A2B.A3.3A5.3A4.6B35.6B4.4B5.4B$154.A
13.4B52.15B5.A2B.2A6.A3.A7.6B36.6B4.4B5.4B$154.3A10.4B53.15B4.3B9.2A.
B.2A5.8B36.6B2.6B5.4B$157.A8.4B53.17B.B.2B10.7B6.8B36.6B.7B5.4B$156.
2A7.4B54.29B5.3B7.9B14.2A21.14B5.4B$156.5B3.4B54.13B2A16B3.5B6.9B15.A
4.3B15.14B5.4B$158.3B2.4B28.A25.14B2A16B2.7B5.10B14.A.A5B14.16B5.4B$
148.2A7.9B29.3A22.2AB3.27B.9B4.5B2A3B15.2A6B13.17B5.4B$148.A8.8B26.A
6.A20.A2.A4.36B4.5B2A4B3.2A11.6B6.B5.19B5.4B$145.2A.A.B3.10B26.A.A4.
2A19.A.2A5.6B3.B2.2B2.20B4.11B3.A13.6B.B2.27B5.4B$145.A2.3AB.2B2A7B
26.A.A4.5B16.A7.6B14.20B.12BA.A12.39B5.4B$146.2A2.BA3B2A7B24.3A.2A5.
4B11.A2.2A6.9B14.20B.8B2.2A13.40B5.4B$148.4A12B23.A4.B5.5B9.3A9.4B4.
2A15.27B19.40B5.4B$148.A.2B3.7B.B2A15.A6.3AB2AB2.6B8.A11.4B5.A15.27B
17.2B.41B5.4B$149.3AB2.7B.BA.A2.2A10.3A6.A.2AB2.6B.2B5.2A9.4B7.3A12.
27B16.2A4B2A38B5.4B$152.A4.4B5.A2.A14.A7.21B8.4B10.A13.26B16.2AB.2B2A
6B3.24B.5B5.4B$147.5A5.4B5.3A2.A11.2A3.B5.17B9.4B25.24B.B2A15.B2.5B2.
B5.24B2.5B5.4B$147.A10.4B7.3A11.8B2.15B2A2B7.4B28.22B.BA.A16.6B8.24B
3.5B5.4B$149.A9.4B5.A16.22BA2BA2B5.4B27.5B.15B7.A16.4B10.25B3.5B5.4B$
148.2A10.4B4.2A15.23B2A3B4.4B28.2AB4.14B7.2A15.2B2AB8.20B.6B3.5B5.4B$
153.2A6.9B14.19B3.9B.4B30.A4.14B23.2AB.2A8.20B3.6B3.5B5.4B$154.A7.6B
14.21B4.12B28.3A3.A.2AB.2B.6B23.A.AB11.15B.2B6.6B3.5B5.4B$154.A.2A5.
6B3.B2.2B2.25B4.10B29.A2.4AB2AB5.5B5.A17.A12.2AB2.8B.3B10.6B3.5B5.4B$
155.A2.A4.34B4.4B3.9B33.A4.B8.3B4.3A16.2A11.A.AB2.7B16.6B3.5B5.4B$
156.2AB3.27B.6B6.4B.9B35.3A.2A8.2B3.A32.A5.7B17.6B3.5B5.4B$157.14B2A
16B2.B.5B5.4B.7B5.A32.2A2.A12.2A8.A21.2A5.6B19.6B3.5B5.4B$158.13B2A
16B7.2A6.10B4.3A35.2A9.5B7.A.A26.7B20.6B3.5B5.4B$159.29B8.A8.4B.2B5.A
48.4B9.A.A2.2A3.A17.8B21.6B3.5B5.4B$159.17B.4B16.3A6.4B7.2A47.5B7.2A.
2A2.A2.A.A15.8B23.6B3.5B5.4B$160.15B3.2B19.A7.4B3.5B47.6B7.B2.A.A3.A.
A15.8B24.6B3.5B5.4B$160.15B3.3B27.4B2.3B48.8B5.2ABA2.4A.A14.2AB2.6B
24.6B3.5B5.4B$161.13B5.A2B.2A24.9B7.2A38.9B4.2A.A.A3.A15.A.AB.7B25.6B
3.5B5.4B$163.13B2.A.A2B.A25.8B8.A40.13B2.A.AB2.A4.A9.A4.6B27.6B3.5B5.
4B$162.8B4.2A.A.AB2.A27.10B3.B.A.2A35.13B5.A.A2B.A3.3A5.3A4.6B28.6B3.
5B5.4B$162.6B6.2ABA4.A28.7B2A2B.B3A2.A34.15B5.A2B.2A6.A3.A7.6B29.6B3.
5B5.4B$162.5B8.B2.5A.A26.7B2A3BAB2.2A35.15B4.3B9.2A.B.2A5.8B29.6B3.5B
5.4B$162.B.B5.2A.A.2A.A4.2A26.12B4A36.17B.B.2B10.7B6.8B29.6B3.5B5.4B$
163.3B4.A.2A.A2.A.2A22.2A3.2AB.7B3.2B.A36.29B5.3B7.9B30.6B3.5B5.4B$
162.B2AB11.2A.A.3A19.A.A.A.AB.7B2.B3A36.13B2A16B3.5B6.9B31.6B3.5B5.4B
$163.2A19.A21.A.A5.4B4.A38.14B2A16B2.7B5.10B31.6B3.5B5.4B$205.AB.A5.
4B5.5A32.2AB3.27B.9B4.5B2A3B32.6B3.5B5.4B$204.BA.A5.4B10.A31.A2.A4.
36B4.5B2A4B3.2A27.6B3.5B5.4B$203.3BA5.4B9.A32.A.2A5.6B3.B2.2B2.20B4.
11B3.A29.6B3.5B5.4B$201.4B6.4B10.2A31.A7.6B14.20B.12BA.A30.6B3.5B5.4B
$199.6B5.4B43.2A6.9B14.20B.8B2.2A32.6B3.5B5.4B$198.7B4.4B51.4B4.2A15.
27B38.6B3.5B5.4B$191.B.4B.8B2.4B51.4B5.A15.27B40.6B3.5B5.4B$190.2AB.
17B51.4B7.3A12.27B41.6B3.5B5.4B$190.2A18B51.4B10.A13.26B42.6B3.5B5.4B
$191.2B.16B50.4B25.24B.B2A41.6B3.5B5.4B$194.16B49.4B28.22B.BA.A41.6B
3.5B5.4B$195.15B48.4B27.5B.15B7.A42.6B3.5B5.4B$196.12B.B2A45.4B28.2AB
4.14B7.2A42.6B3.5B5.4B$196.11B2.BA.A43.4B30.A4.14B50.9B3.5B5.4B$197.
10B5.A42.4B28.3A3.A.2AB.2B.6B51.10B3.5B5.4B$197.6B2A2B5.2A40.4B29.A2.
4AB2AB5.5B22.2A26.12B3.5B5.4B$197.6B2A3B45.4B33.A4.B8.3B24.A4.3B16.
16B3.5B5.4B$197.10B45.6B7.2A24.3A.2A8.2B24.A.A5B14.19B3.5B5.4B$193.A.
2AB.8B15.2B27.7B7.A27.2A2.A34.2A6B13.20B3.5B5.4B$191.3AB2AB3.7B8.A3.
6B25.9B2.BA.A30.2A36.6B6.B5.22B3.5B5.4B$190.A4.B6.6B6.3A3.7B23.11B.B
2A70.6B.B2.30B3.5B5.4B$191.3A.2A4.6B6.A5.9B22.9BA3B14.2A55.42B.7B5.4B
$193.2A2.A4.5B6.2A5.9B22.7BABA2B14.A56.51B5.4B$196.A.A.8B2.5B5.10B21.
7BABA2B11.BA.A57.51B5.4B$193.3A.A.A8B2.3B6.12B22.B2.3BA3B8.2B.B2A55.
2B.52B5.4B$192.A2.A.BA2B.6B.5B4.9B.4B25.6B6.6B56.2A4B2A41B2.6B5.4B$
191.A.A.A2.2B2.12B2.4B2A3B4.4B25.6B4.6B57.2AB.2B2A6B3.24B.6B4.6B5.4B$
190.A.A2.2A.B3.17BA2BA2B5.4B17.2A5.6B4.7B57.B2.5B2.B5.24B2.6B4.6B5.4B
$190.A.A.A2.A.A2.18B2A2B7.4B17.A6.6B2.8B59.6B8.23B4.6B4.6B5.4B$191.2A
.2A2.2A2.21B9.4B16.A.AB3.17B58.4B10.23B5.6B4.6B5.4B$202.23B8.4B10.A5.
2AB.20B57.2B2AB8.20B2.B7.6B4.6B5.4B$202.16B5.2A9.4B7.3A7.22B55.2AB.2A
8.20B12.6B4.6B5.4B$192.A10.13B7.A11.4B5.A10.21B55.A.AB11.15B.2B15.6B
4.6B5.4B$192.3A9.11B9.3A9.4B4.2A9.19B57.A12.2AB2.8B.3B19.6B4.6B5.4B$
195.A9.10B11.A2.2A6.9B11.17B.2B53.2A11.A.AB2.7B25.6B4.6B5.4B$194.2A6.
14B14.A7.6B14.18B2A65.A5.7B26.6B4.6B5.4B$194.24B12.A.2A5.6B3.B2.2B2.
19B.B2A29.2A11.A21.2A5.6B28.6B4.6B5.4B$183.A12.23B12.A2.A4.35B2.B29.B
2AB9.A.A26.7B29.6B4.6B5.4B$183.3A9.24B13.2AB3.36B33.3B9.A.A2.2A3.A17.
8B30.6B4.6B5.4B$186.A8.25B13.14B2A17B.7B32.B.B9.2A.2A2.A2.A.A15.8B32.
6B4.6B5.4B$185.2A7.26B14.13B2A16B2.7B32.5B8.B2.A.A3.A.A15.8B33.6B4.6B
5.4B$185.5B3.4B.21B16.29B3.7B32.6B6.2ABA2.4A.A14.2AB2.6B33.6B4.6B5.4B
$187.3B2.4B3.2B7.B2.6B.3B14.17B.B.2B11.6B.BA29.8B4.2A.A.A3.A15.A.AB.
7B34.6B4.6B5.4B$177.2A7.9B3.2BAB5.3B.4B4.2A15.15B4.3B10.7BA.A5.A23.
13B2.A.AB2.A4.A9.A4.6B36.6B4.6B5.4B$177.A8.8B5.A.A4.B2AB2.2B5.A16.15B
5.A2B.2A6.8BA4.3A21.13B5.A.A2B.A3.3A5.3A4.6B37.6B4.6B5.4B$174.2A.A.B
3.10B7.A6.2A11.3A14.13B5.A.A2B.A6.6B.B4.A23.15B5.A2B.2A6.A3.A7.6B38.
6B4.6B5.4B$174.A2.3AB.2B2A7B29.A16.13B2.A.AB2.A7.5B7.2A22.15B4.3B9.2A
.B.2A5.8B38.6B4.6B5.4B$175.2A2.BA3B2A7B45.8B4.2A.A.A3.A8.6B3.5B21.17B
.B.2B10.7B6.8B38.6B4.6B5.4B$177.4A12B45.6B6.2ABA2.4A.A4.2AB.5B2.3B23.
29B5.3B7.9B39.6B4.6B5.4B$177.A.2B3.7B.B2A43.5B8.B2.A.A3.2A3.A.AB3.9B
7.2A12.13B2A16B3.5B6.9B40.6B4.6B5.4B$178.3AB2.7B.BA.A42.B.B9.2A.2A.A.
A6.A7.8B8.A11.14B2A16B2.7B5.10B10.2A26.9B3.6B5.4B$181.A4.4B5.A43.3B9.
A.A3.A.3A2.2A8.10B3.B.A.2A7.2AB3.27B.9B4.5B2A3B11.A4.3B16.13B3.6B5.4B
$176.5A5.4B5.2A41.B2AB9.A.A4.A2.A12.7B2A2B.B3A2.A6.A2.A4.36B4.5B2A4B
3.2A5.A.A5B14.16B3.6B5.4B$176.A10.4B48.2A11.A6.2A13.7B2A3BAB2.2A6.A.
2A5.6B3.B2.2B2.20B4.11B3.A7.2A6B13.16B4.6B5.4B$178.A9.4B82.12B4A8.A7.
6B14.20B.12BA.A9.6B6.B5.18B4.6B5.4B$177.2A10.4B79.2AB.7B3.2B.A7.2A6.
9B14.20B.8B2.2A11.6B.B2.26B4.6B5.4B$190.4B77.A.AB.7B2.B3A15.4B4.2A15.
27B15.38B4.6B5.4B$191.4B76.A5.4B4.A17.4B5.A15.27B16.39B4.6B5.4B$192.
4B74.2A5.4B5.5A11.4B7.3A12.27B17.39B4.6B5.4B$193.4B79.4B10.A10.4B10.A
13.26B14.2B.40B4.6B5.4B$194.4B77.4B9.A11.4B25.24B.B2A11.2A4B2A37B4.6B
5.4B$195.4B75.4B10.2A9.4B28.22B.BA.A10.2AB.2B2A6B3.29B4.6B5.4B$196.4B
73.4B21.4B27.5B.15B7.A11.B2.5B2.B5.30B4.6B5.4B$197.4B71.4B21.4B28.2AB
4.14B7.2A12.6B8.23B2.6B4.6B5.4B$198.4B69.4B21.4B30.A4.14B22.4B10.23B
3.6B4.6B5.4B$199.4B67.4B21.4B28.3A3.A.2AB.2B.6B23.2B2AB8.20B2.B5.6B4.
6B5.4B$200.4B65.4B21.4B29.A2.4AB2AB5.5B21.2AB.2A8.20B10.6B4.6B5.4B$
201.4B63.4B21.4B33.A4.B8.3B21.A.AB11.15B.2B13.6B4.6B5.4B$202.4B61.4B
21.4B35.3A.2A8.2B21.A12.2AB2.8B.3B17.6B4.6B5.4B$203.4B45.A13.4B21.4B
38.2A2.A29.2A11.A.AB2.7B23.6B4.6B5.4B$204.4B44.3A10.4B21.4B42.2A42.A
5.7B24.6B4.6B5.4B$205.4B46.A8.4B21.4B51.2A11.A21.2A5.6B26.6B4.6B5.4B$
206.4B44.2A7.4B21.4B51.B2AB9.A.A26.7B27.6B4.6B5.4B$207.4B43.5B3.4B21.
4B53.3B9.A.A2.2A3.A17.8B28.6B4.6B5.4B$208.4B44.3B2.4B21.4B53.B.B9.2A.
2A2.A2.A.A15.8B30.6B4.6B5.4B$209.4B33.2A7.9B21.4B54.5B8.B2.A.A3.A.A
15.8B31.6B4.6B5.4B$210.4B32.A8.8B21.4B55.6B6.2ABA2.4A.A14.2AB2.6B31.
6B4.6B5.4B$211.4B28.2A.A.B3.10B21.4B4.2A50.8B4.2A.A.A3.A15.A.AB.7B32.
6B4.6B5.4B$212.4B27.A2.3AB.2B2A7B20.4B5.A.A50.13B2.A.AB2.A4.A9.A4.6B
34.6B4.6B5.4B$213.4B27.2A2.BA3B2A7B19.4B8.A4.2A42.13B5.A.A2B.A3.3A5.
3A4.6B35.6B4.6B5.4B$214.4B28.4A12B18.4B5.4A.2A2.A2.A39.15B5.A2B.2A6.A
3.A7.6B36.6B4.6B5.4B$215.4B27.A.2B3.7B.B2A15.4B6.A2.A.A.A.A.2A39.15B
4.3B9.2A.B.2A5.8B36.6B4.6B5.4B$216.4B27.3AB2.7B.BA.A2.2A9.4B9.BABABA.
A41.17B.B.2B10.7B6.8B36.6B4.6B5.4B$217.4B29.A4.4B5.A2.A9.4B11.B2ABA.A
41.29B5.3B7.9B37.6B4.6B5.4B$218.4B23.5A5.4B5.3A2.A6.4B13.2B.BA41.13B
2A16B3.5B6.9B38.6B4.6B5.BDBD$219.4B22.A10.4B7.3A5.4B13.3B43.14B2A16B
2.7B5.10B38.6B4.6B5.B2DB$220.4B23.A9.4B5.A7.4B5.2A6.4B42.2AB3.27B.9B
4.5B2A3B39.6B4.6B5.D3B$221.4B21.2A10.4B4.2A5.4B7.A6.B2A3B39.A2.A4.36B
4.5B2A4B3.2A34.6B4.6B5.4B$222.4B33.9B4.4B8.A.AB3.B2A3B38.A.2A5.6B3.B
2.2B2.20B4.11B3.A36.6B4.6B5.4B$223.4B33.6B5.4B10.2AB.10B36.A7.6B14.
20B.12BA.A37.6B4.6B5.4B$224.4B32.8B2.4B13.13B34.2A6.9B14.20B.8B2.2A
39.6B4.6B5.4B$225.4B29.15B14.14B40.4B4.2A15.27B45.6B4.6B5.4B$226.4B
28.14B15.15B38.4B5.A15.27B47.6B4.6B5.4B$227.4B27.13B18.8B2.4B36.4B7.
3A12.27B48.6B4.6B5.4B$228.4B24.2AB.10B19.6B5.4B34.4B10.A13.26B49.6B4.
6B5.4B$229.4B22.A.AB3.B2A3B20.9B4.4B32.4B25.24B.B2A48.6B4.6B5.4B$230.
4B21.A6.B2A3B19.4B4.2A5.4B30.4B28.22B.BA.A48.6B4.6B5.4B$231.4B19.2A6.
4B20.4B5.A7.4B28.6B7.2A16.5B.15B7.A49.6B4.6B5.4B$232.4B27.3B19.4B7.3A
5.4B26.7B7.A17.2AB4.14B7.2A49.6B4.6B5.4B$233.4B27.2B.BA15.4B10.A6.4B
25.9B2.BA.A18.A4.14B60.6B4.6B5.4B$234.4B25.B2ABA.A13.4B19.4B23.11B.B
2A16.3A3.A.2AB.2B.6B62.6B4.6B5.4B$235.4B23.BABABA.A12.4B21.4B22.9BA3B
14.2A2.A2.4AB2AB5.5B63.6B4.6B5.5B$236.4B20.A2.A.A.A.A.2A8.4B23.4B22.
7BABA2B14.A6.A4.B8.3B65.6B4.6B3.8B$237.4B19.4A.2A2.A2.A7.4B25.4B21.7B
ABA2B11.BA.A7.3A.2A8.2B66.6B4.5BD11B$238.4B22.A4.2A8.4B27.4B22.B2.3BA
3B8.2B.B2A10.2A2.A76.6B4.5BD10B$239.4B19.A.A13.4B29.4B25.6B6.6B15.2A
77.6B4.2B3D10B$240.4B18.2A13.4B31.4B25.6B4.6B96.6B3.15B$241.4B31.4B
33.4B17.2A5.6B4.7B96.6B2.13B$242.4B29.4B35.4B17.A6.6B2.8B97.24B$243.
4B27.4B37.4B16.A.AB3.17B97.24B$244.4B25.4B39.4B10.A5.2AB.20B94.B2.5BD
18B6.B2D$245.4B23.4B41.4B7.3A7.22B93.7BDBD3B2C20B2DB$246.4B21.4B43.4B
5.A10.21B92.10B2D3B2C24B$247.4B19.4B45.4B4.2A9.19B93.42B$248.4B10.A6.
4B39.2A6.9B11.17B.2B91.42B$249.4B7.3A5.4B41.A7.6B14.18B2A92.40B$250.
4B5.A7.4B42.A.2A5.6B3.B2.2B2.19B.B2A93.39B$251.4B4.2A5.4B44.A2.A4.35B
2.B95.5B2.30B$252.9B4.4B46.2AB3.36B100.2B3.24B2.2B$253.6B5.4B48.14B2A
17B.7B106.B2.18B$253.8B2.4B50.13B2A16B2.7B110.17B$251.15B52.29B3.7B
111.2B.14B$251.14B53.17B.B.2B11.6B.BA112.12B$251.13B55.15B4.3B10.7BA.
A113.10B$249.2AB.10B56.15B5.A2B.2A6.8BA115.4B$248.A.AB3.B2A3B59.13B5.
A.A2B.A6.6B.B117.2B$248.A6.B2A3B61.13B2.A.AB2.A7.5B$247.2A6.4B62.8B4.
2A.A.A3.A8.6B$256.3B62.6B6.2ABA2.4A.A4.2AB.5B$257.2B.BA59.5B8.B2.A.A
3.2A3.A.AB3.4B$256.B2ABA.A58.B.B9.2A.2A.A.A6.A7.4B$255.BABABA.A59.3B
9.A.A3.A.3A2.2A8.4B$253.A2.A.A.A.A.2A55.B2AB9.A.A4.A2.A13.4B$253.4A.
2A2.A2.A56.2A11.A6.2A15.4B$257.A4.2A96.4B$255.A.A103.4B$255.2A105.4B$
363.3B$364.4B$366.2A$366.A$367.3A$369.A!
-- I just re-used the old recipe, so this could definitely be made smaller. I figure slmake probably knows about a 7G-or-less slow-salvo recipe that puts an object safely off to the side, rebuilds the initial target block, and doesn't require synchronizing any gliders... just didn't feel like digging it out of the database. Anyone want to give it a try?

User avatar
Nathaniel
Site Admin
Posts: 862
Joined: December 10th, 2008, 3:48 pm
Location: New Brunswick, Canada
Contact:

Re: Smaller Pi Calculator Challenge

Post by Nathaniel » March 24th, 2020, 1:49 pm

The "prime_printer.mc" pattern attached to this post is a pattern that prints out the sequence of prime numbers (in decimal), separated by dots.

Here is the start of its output:

Code: Select all

x = 7137, y = 7233, rule = B3/S23
98$485b2o126b2o$485b2o126b2o63$421b2o126b2o126b2o$421b2o126b2o126b2o
63$485b2o126b2o126b2o$485b2o126b2o126b2o63$677b2o126b2o$677b2o126b2o
63$741b2o$741b2o63$677b2o126b2o$677b2o126b2o63$101b2o126b2o126b2o126b
2o126b2o126b2o$101b2o126b2o126b2o126b2o126b2o126b2o63$37b2o126b2o126b
2o126b2o126b2o126b2o$37b2o126b2o126b2o126b2o126b2o126b2o63$101b2o$101b
2o63$37b2o126b2o$37b2o126b2o63$101b2o126b2o$101b2o126b2o63$165b2o126b
2o510b2o$165b2o126b2o510b2o63$229b2o126b2o382b2o126b2o382b2o126b2o$
229b2o126b2o382b2o126b2o382b2o126b2o63$293b2o510b2o382b2o126b2o126b2o$
293b2o510b2o382b2o126b2o126b2o63$1253b2o126b2o126b2o$1253b2o126b2o126b
2o63$1445b2o126b2o$1445b2o126b2o63$1509b2o$1509b2o63$1189b2o254b2o126b
2o$1189b2o254b2o126b2o63$869b2o254b2o126b2o126b2o126b2o$869b2o254b2o
126b2o126b2o126b2o63$805b2o126b2o254b2o126b2o126b2o$805b2o126b2o254b2o
126b2o126b2o63$869b2o382b2o$869b2o382b2o63$805b2o126b2o254b2o$805b2o
126b2o254b2o63$869b2o126b2o126b2o126b2o$869b2o126b2o126b2o126b2o63$
933b2o126b2o126b2o382b2o510b2o$933b2o126b2o126b2o382b2o510b2o63$997b2o
126b2o382b2o126b2o382b2o126b2o$997b2o126b2o382b2o126b2o382b2o126b2o63$
1573b2o382b2o126b2o126b2o$1573b2o382b2o126b2o126b2o63$1893b2o126b2o
126b2o126b2o$1893b2o126b2o126b2o126b2o63$1829b2o126b2o254b2o126b2o$
1829b2o126b2o254b2o126b2o63$1765b2o126b2o382b2o126b2o$1765b2o126b2o
382b2o126b2o63$1829b2o126b2o382b2o$1829b2o126b2o382b2o63$1893b2o126b2o
$1893b2o126b2o63$1573b2o382b2o126b2o$1573b2o382b2o126b2o63$1509b2o126b
2o382b2o$1509b2o126b2o382b2o63$1573b2o126b2o254b2o126b2o$1573b2o126b2o
254b2o126b2o63$1637b2o126b2o126b2o126b2o$1637b2o126b2o126b2o126b2o63$
1701b2o126b2o126b2o382b2o510b2o$1701b2o126b2o126b2o382b2o510b2o63$
1765b2o126b2o382b2o126b2o382b2o126b2o$1765b2o126b2o382b2o126b2o382b2o
126b2o63$2341b2o510b2o126b2o$2341b2o510b2o126b2o63$2917b2o126b2o$2917b
2o126b2o63$2981b2o126b2o$2981b2o126b2o63$3045b2o126b2o$3045b2o126b2o
63$2469b2o126b2o126b2o126b2o126b2o126b2o$2469b2o126b2o126b2o126b2o126b
2o126b2o63$2405b2o126b2o126b2o126b2o126b2o126b2o$2405b2o126b2o126b2o
126b2o126b2o126b2o63$2341b2o126b2o126b2o126b2o126b2o126b2o$2341b2o126b
2o126b2o126b2o126b2o126b2o63$2277b2o126b2o$2277b2o126b2o63$2341b2o$
2341b2o127$3109b2o$3109b2o63$3045b2o126b2o$3045b2o126b2o63$3109b2o382b
2o126b2o126b2o$3109b2o382b2o126b2o126b2o63$3557b2o126b2o126b2o$3557b2o
126b2o126b2o63$3621b2o126b2o$3621b2o126b2o63$3557b2o126b2o$3557b2o126b
2o63$3493b2o126b2o$3493b2o126b2o63$3429b2o126b2o$3429b2o126b2o63$3109b
2o254b2o126b2o$3109b2o254b2o126b2o63$3045b2o126b2o126b2o126b2o$3045b2o
126b2o126b2o126b2o63$3109b2o126b2o126b2o638b2o126b2o126b2o$3109b2o126b
2o126b2o638b2o126b2o126b2o63$3173b2o126b2o766b2o126b2o126b2o$3173b2o
126b2o766b2o126b2o126b2o63$3237b2o126b2o766b2o126b2o$3237b2o126b2o766b
2o126b2o63$3301b2o126b2o638b2o126b2o$3301b2o126b2o638b2o126b2o63$3365b
2o638b2o126b2o$3365b2o638b2o126b2o63$3941b2o126b2o$3941b2o126b2o63$
3621b2o254b2o126b2o$3621b2o254b2o126b2o63$3557b2o126b2o126b2o126b2o$
3557b2o126b2o126b2o126b2o63$3621b2o126b2o126b2o$3621b2o126b2o126b2o63$
3685b2o126b2o$3685b2o126b2o63$3749b2o126b2o510b2o$3749b2o126b2o510b2o
63$3813b2o126b2o382b2o126b2o$3813b2o126b2o382b2o126b2o63$3877b2o510b2o
382b2o126b2o126b2o$3877b2o510b2o382b2o126b2o126b2o63$4837b2o126b2o126b
2o$4837b2o126b2o126b2o63$4901b2o126b2o$4901b2o126b2o63$4837b2o126b2o$
4837b2o126b2o63$4773b2o126b2o$4773b2o126b2o63$4709b2o126b2o$4709b2o
126b2o63$4389b2o254b2o126b2o$4389b2o254b2o126b2o63$4325b2o126b2o126b2o
126b2o638b2o126b2o$4325b2o126b2o126b2o126b2o638b2o126b2o63$4389b2o126b
2o126b2o638b2o126b2o126b2o$4389b2o126b2o126b2o638b2o126b2o126b2o63$
4453b2o126b2o766b2o126b2o126b2o$4453b2o126b2o766b2o126b2o126b2o63$
4517b2o126b2o894b2o126b2o$4517b2o126b2o894b2o126b2o63$4581b2o126b2o
894b2o$4581b2o126b2o894b2o63$4645b2o638b2o254b2o126b2o$4645b2o638b2o
254b2o126b2o63$4965b2o254b2o126b2o126b2o126b2o$4965b2o254b2o126b2o126b
2o126b2o63$4901b2o126b2o254b2o126b2o126b2o$4901b2o126b2o254b2o126b2o
126b2o63$4965b2o382b2o$4965b2o382b2o63$4901b2o126b2o254b2o$4901b2o126b
2o254b2o63$4965b2o126b2o126b2o126b2o$4965b2o126b2o126b2o126b2o63$5029b
2o126b2o126b2o382b2o$5029b2o126b2o126b2o382b2o63$5093b2o126b2o382b2o
126b2o$5093b2o126b2o382b2o126b2o63$5669b2o382b2o126b2o126b2o$5669b2o
382b2o126b2o126b2o63$6117b2o126b2o126b2o$6117b2o126b2o126b2o63$6181b2o
126b2o$6181b2o126b2o63$6117b2o126b2o$6117b2o126b2o63$6053b2o126b2o$
6053b2o126b2o63$5989b2o126b2o$5989b2o126b2o63$5669b2o254b2o126b2o638b
2o$5669b2o254b2o126b2o638b2o63$5605b2o126b2o126b2o126b2o638b2o126b2o$
5605b2o126b2o126b2o126b2o638b2o126b2o63$5669b2o126b2o126b2o766b2o126b
2o$5669b2o126b2o126b2o766b2o126b2o63$5733b2o126b2o894b2o126b2o$5733b2o
126b2o894b2o126b2o63$5797b2o126b2o894b2o126b2o$5797b2o126b2o894b2o126b
2o63$5861b2o126b2o894b2o126b2o$5861b2o126b2o894b2o126b2o63$5925b2o382b
2o126b2o126b2o126b2o126b2o126b2o$5925b2o382b2o126b2o126b2o126b2o126b2o
126b2o63$6245b2o126b2o126b2o126b2o126b2o126b2o$6245b2o126b2o126b2o126b
2o126b2o126b2o63$6181b2o126b2o126b2o126b2o126b2o126b2o$6181b2o126b2o
126b2o126b2o126b2o126b2o63$6117b2o126b2o$6117b2o126b2o63$6181b2o$6181b
2o127$6949b2o$6949b2o63$6885b2o126b2o$6885b2o126b2o63$6949b2o$6949b2o!
Here is the APGsembly code that was used to generate this pattern:

Code: Select all

# T0: a log of which primes have been found so far
# R0: the number that is being counted and will be printed
# R1: number of digits in R0
# R2: 10^(R1-1)
# R3: current digit of R0 to print
# R14: flag that says whether or not to print current R0
# Other registers are temporary helpers
# State    Input    Next state    Actions
# ---------------------------------------
INITIAL;   ZZ;      INIT1;        INC T0, INC R0, INC R1, INC R2, OUTPUT 2
INIT1;     *;       INIT2;        READ T0, INC R0, OUTPUT .
INIT2;     *;       CPYDIG1;      SET T0, DEC T0, INC R0

# Copy R0 to R4 with the help of R7
CPYDIG1;   *;       CPYDIG2;      TDEC R0
CPYDIG2;   Z;       CPYDIG3;      TDEC R7
CPYDIG2;   NZ;      CPYDIG2;      INC R7, TDEC R0
CPYDIG3;   Z;       CPYDIG3A;     TDEC R15
CPYDIG3;   NZ;      CPYDIG3;      INC R0, INC R4, TDEC R7

# Set R15 = 0
CPYDIG3A;  Z;       CPYDIG4;      NOP
CPYDIG3A;  NZ;      CPYDIG3A;     TDEC R15

# Copy R1 to R5 with the help of R7
CPYDIG4;   ZZ;      CPYDIG5;      TDEC R1
CPYDIG5;   Z;       CPYDIG6;      TDEC R7
CPYDIG5;   NZ;      CPYDIG5;      INC R7, TDEC R1
CPYDIG6;   Z;       CPYDIG7;      NOP
CPYDIG6;   NZ;      CPYDIG6;      INC R1, INC R5, TDEC R7

# Copy R2 to R8 with the help of R7
CPYDIG7;   ZZ;      CPYDIG8;      TDEC R2
CPYDIG8;   Z;       CPYDIG9;      TDEC R7
CPYDIG8;   NZ;      CPYDIG8;      INC R7, TDEC R2
CPYDIG9;   Z;       CPYDIG10;     NOP
CPYDIG9;   NZ;      CPYDIG9;      INC R2, INC R8, TDEC R7

# Copy R8 to R6 with the help of R7
CPYDIG10;  ZZ;      CPYDIG11;     TDEC R8
CPYDIG11;  Z;       CPYDIG12;     TDEC R7
CPYDIG11;  NZ;      CPYDIG11;     INC R7, TDEC R8
CPYDIG12;  Z;       SUB1;         NOP
CPYDIG12;  NZ;      CPYDIG12;     INC R8, INC R6, TDEC R7

# Check whether R6 <= R4, and subtract if it is
# If R6 <= R4 then this sets R4 = R4 - R6, R6 = 0 and increases R3 by 1
# If R4 < R6 then this sets R6 = R6 - R4, R4 = 0 and moves on to digit printing
# Set R3 = number of times we subtracted
SUB1;      ZZ;      SUB2;         TDEC R6
SUB2;      Z;       CPYDIG10;     NOP, INC R3
SUB2;      NZ;      SUB3;         TDEC R4
SUB3;      Z;       SUB4;         TDEC R15, INC R6
SUB3;      NZ;      SUB2;         TDEC R6
SUB4;      Z;       CHKPRINT;     NOP
SUB4;      NZ;      PRINTDIG;     NOP

### Put any custom sequence code here (i.e., if you want to only print integers
### with a certain property, test for that property between CHKPRINT and PRINTRES).
### If you want to print the integer, give a Z input to PRINTRES, otherwise give
### it an NZ input.
### You can use R7 and R9 as temporary helper registers, if needed, but reset them
### to 0 when done with them.
CHKPRINT;  ZZ;      CHKPRM1;      NOP

## Check primality.
# Copy R0 to R7 with the help of R9.
CHKPRM1;   ZZ;      CHKPRM2;      TDEC R0
CHKPRM2;   Z;       CHKPRM3;      TDEC R9
CHKPRM2;   NZ;      CHKPRM2;      INC R9, TDEC R0
CHKPRM3;   Z;       CHKPRM4;      NOP, INC R13
CHKPRM3;   NZ;      CHKPRM3;      INC R0, INC R7, TDEC R9

# Loop over R7, increasing the head location of T0. Also loops over R13 increasing.
CHKPRM4;   ZZ;      CHKPRM5;      TDEC R7
CHKPRM5;   Z;       ISPRM1;       DEC T0
CHKPRM5;   NZ;      CHKPRM6;      INC T0, INC R13
CHKPRM6;   *;       CHKPRM7;      READ T0
CHKPRM7;   Z;       CHKPRM4;      NOP, RESET T0
CHKPRM7;   NZ;      CPYPM1;       NOP, SET T0

# If R0 is prime, SET T0, then DEC T0 back to 0 and goto print
ISPRM1;    *;       ISPRM2;       READ T0
ISPRM2;    *;       ISPRM3;       SET T0, DEC T0
ISPRM3;    Z;       ISPRM4;       TDEC R13
ISPRM3;    NZ;      ISPRM3;       DEC T0
ISPRM4;    Z;       PRINTDIG;     NOP
ISPRM4;    NZ;      ISPRM4;       TDEC R13

# Divide (by subtraction) R0 by R13, checking for a remainder.
#   If we get a remainder, go to CHKPRMEX via a TDEC R7.
#   If there is no remainder, increase some flag or break out, indicating not prime
# Copy R0 to R10 with the help of R12
CPYPM1;   *;       CPYPM2;      TDEC R0
CPYPM2;   Z;       CPYPM3;      TDEC R12
CPYPM2;   NZ;      CPYPM2;      INC R12, TDEC R0
CPYPM3;   Z;       CPYPM4;      NOP
CPYPM3;   NZ;      CPYPM3;      INC R0, INC R10, TDEC R12

# Copy R13 to R11 with the help of R12
CPYPM4;   *;       CPYPM5;      TDEC R13
CPYPM5;   Z;       CPYPM6;      TDEC R12
CPYPM5;   NZ;      CPYPM5;      INC R12, TDEC R13
CPYPM6;   Z;       SUBPM1;      NOP
CPYPM6;   NZ;      CPYPM6;      INC R13, INC R11, TDEC R12

# Check whether R11 <= R10, and subtract if it is
# If R11 <= R10 then this sets R10 = R10 - R11, R11 = 0
# If R10 < R11 (i.e., there is a remainder when dividing) then this sets R11 = R11 - R10, R10 = 0
# Set R3 = number of times we subtracted
SUBPM1;    ZZ;      SUBPM2;         TDEC R11
SUBPM2;    Z;       SUBPM4;         NOP
SUBPM2;    NZ;      SUBPM3;         TDEC R10
SUBPM3;    Z;       SUBPM6;         NOP
SUBPM3;    NZ;      SUBPM2;         TDEC R11

# After subtracting R11 (R13), either escape as non-prime (if R10 = 0) or refill R11 and resubtract (if R10 > 0)
SUBPM4;    ZZ;      SUBPM5;       TDEC R10
SUBPM5;    Z;       NOPRM1;       NOP
SUBPM5;    NZ;      CPYPM4;       INC R10, NOP

# Reset R11 and then go back to check divisibility by next prime
SUBPM6;    ZZ;      SUBPM7;       TDEC R11
SUBPM7;    Z;       CHKPRM4;      NOP
SUBPM7;    NZ;      SUBPM7;       TDEC R11

# Not a prime, so don't print it. Also set a flag (R14) so we
# know to skip printing other digits and the period.
NOPRM1;    ZZ;      NOPRM2;       TDEC R11
NOPRM2;    Z;       NOPRM3;       TDEC R7
NOPRM2;    NZ;      NOPRM2;       TDEC R11
NOPRM3;    Z;       NOPRM4;       TDEC R13
NOPRM3;    NZ;      NOPRM3;       TDEC R7
NOPRM4;    Z;       NOPRM5;       DEC T0
NOPRM4;    NZ;      NOPRM4;       TDEC R13
NOPRM5;    Z;       NOPRINT1;     TDEC R4, INC R14
NOPRM5;    NZ;      NOPRM5;       DEC T0
### End custom checking code

# Not printing R3? Have to zero out some registers.
NOPRINT1;  Z;       NOPRINT2;     TDEC R5
NOPRINT1;  NZ;      NOPRINT1;     TDEC R4
NOPRINT2;  Z;       NOPRINT3;     TDEC R6
NOPRINT2;  NZ;      NOPRINT2;     TDEC R5
NOPRINT3;  Z;       NOPRINT4;     TDEC R8
NOPRINT3;  NZ;      NOPRINT3;     TDEC R6
NOPRINT4;  Z;       NOPRINT5;     NOP
NOPRINT4;  NZ;      NOPRINT4;     TDEC R8
# If R3 >= 10 then update R1 and R2. Otherwise just loop back.
NOPRINT5;  ZZ;      NOPRINT6;     TDEC R3
NOPRINT6;  *;       NOPRINT7;     TDEC R3
NOPRINT7;  *;       NOPRINT8;     TDEC R3
NOPRINT8;  *;       NOPRINT9;     TDEC R3
NOPRINT9;  *;       NOPRINT10;    TDEC R3
NOPRINT10; *;       NOPRINT11;    TDEC R3
NOPRINT11; *;       NOPRINT12;    TDEC R3
NOPRINT12; *;       NOPRINT13;    TDEC R3
NOPRINT13; *;       NOPRINT14;    TDEC R3
NOPRINT14; *;       NOPRINT15;    TDEC R3
NOPRINT15; Z;       CPYDIG1;      TDEC R14, INC R0
NOPRINT15; NZ;      EXP1;         NOP

# Print the digit currently stored in R3
PRINTDIG;  ZZ;      OUT0;         TDEC R3, INC R15
OUT0;      Z;       OUTD;         NOP, OUTPUT 0
OUT0;      NZ;      OUT1;         TDEC R3
OUT1;      Z;       OUTD;         NOP, OUTPUT 1
OUT1;      NZ;      OUT2;         TDEC R3
OUT2;      Z;       OUTD;         NOP, OUTPUT 2
OUT2;      NZ;      OUT3;         TDEC R3
OUT3;      Z;       OUTD;         NOP, OUTPUT 3
OUT3;      NZ;      OUT4;         TDEC R3
OUT4;      Z;       OUTD;         NOP, OUTPUT 4
OUT4;      NZ;      OUT5;         TDEC R3
OUT5;      Z;       OUTD;         NOP, OUTPUT 5
OUT5;      NZ;      OUT6;         TDEC R3
OUT6;      Z;       OUTD;         NOP, OUTPUT 6
OUT6;      NZ;      OUT7;         TDEC R3
OUT7;      Z;       OUTD;         NOP, OUTPUT 7
OUT7;      NZ;      OUT8;         TDEC R3
OUT8;      Z;       OUTD;         NOP, OUTPUT 8
OUT8;      NZ;      OUT9;         TDEC R3
OUT9;      Z;       OUTD;         NOP, OUTPUT 9
OUT9;      NZ;      OUT10;        NOP, OUTPUT 1
OUT10;     ZZ;      EXP1;         NOP, OUTPUT 0
OUTD;      ZZ;      DECD1;        NOP

# Set R1 = R1 + 1 and R2 = R2 * 10 if R0 just got a new decimal digit
# Copy R2 to R9 with the help of R7
EXP1;      ZZ;      EXP2;         INC R1, TDEC R2
EXP2;      Z;       EXP3;         TDEC R7
EXP2;      NZ;      EXP2;         INC R7, TDEC R2
EXP3;      Z;       EXP4;         NOP
EXP3;      NZ;      EXP3;         INC R2, INC R9, TDEC R7
# Set R2 = 10 * R9, R9 = 0
EXP4;      ZZ;      EXP5A;        TDEC R9
EXP5A;     Z;       CHKFLAG1;     NOP
EXP5A;     NZ;      EXP5B;        NOP, INC R2
EXP5B;     ZZ;      EXP5C;        NOP, INC R2
EXP5C;     ZZ;      EXP5D;        NOP, INC R2
EXP5D;     ZZ;      EXP5E;        NOP, INC R2
EXP5E;     ZZ;      EXP5F;        NOP, INC R2
EXP5F;     ZZ;      EXP5G;        NOP, INC R2
EXP5G;     ZZ;      EXP5H;        NOP, INC R2
EXP5H;     ZZ;      EXP5I;        NOP, INC R2
EXP5I;     ZZ;      EXP5A;        TDEC R9, INC R2

# If R14 = 1 then jump to next R0
CHKFLAG1;  ZZ;      CHKFLAG2;     TDEC R14
CHKFLAG2;  Z;       DECD1;        NOP
CHKFLAG2;  NZ;      CPYDIG1;      NOP, INC R0

# Copy R8 to R4 with the help of R7
DECD1;     ZZ;      DECD2;        TDEC R8
DECD2;     Z;       DECD3;        TDEC R7
DECD2;     NZ;      DECD2;        INC R7, TDEC R8
DECD3;     Z;       DECD4;        NOP
DECD3;     NZ;      DECD3;        INC R8, INC R4, TDEC R7

# Set R4 = R4 - R6, R6 = 0, R5 = R5 - 1
DECD4;     ZZ;      DECD5;        TDEC R6
DECD5;     Z;       DECDT;        TDEC R5
DECD5;     NZ;      DECD6;        TDEC R4
DECD6;     *;       DECD5;        TDEC R6

# Set R6 = R8/10, R8 = 0, or quit if we've printed all digits
DECDT;     *;       DECD7;        TDEC R5
DECD7;     Z;       DECD18;       TDEC R8
DECD7;     NZ;      DECD8;        INC R5, TDEC R8
DECD8;     *;       DECD9;        TDEC R8
DECD9;     *;       DECD10;       TDEC R8
DECD10;    *;       DECD11;       TDEC R8
DECD11;    *;       DECD12;       TDEC R8
DECD12;    *;       DECD13;       TDEC R8
DECD13;    *;       DECD14;       TDEC R8
DECD14;    *;       DECD15;       TDEC R8
DECD15;    *;       DECD16;       TDEC R8
DECD16;    *;       DECD17;       TDEC R8
DECD17;    Z;       CPYDIG13;     NOP
DECD17;    NZ;      DECD8;        TDEC R8, INC R6
DECD18;    Z;       CPYDIG1;      NOP, INC R0, OUTPUT .
DECD18;    NZ;      DECD18;       TDEC R8

# Copy R6 to R8 with the help of R7
CPYDIG13;  ZZ;      CPYDIG14;     TDEC R6
CPYDIG14;  Z;       CPYDIG15;     TDEC R7
CPYDIG14;  NZ;      CPYDIG14;     INC R7, TDEC R6
CPYDIG15;  Z;       SUB1;         NOP
CPYDIG15;  NZ;      CPYDIG15;     INC R6, INC R8, TDEC R7
Here is some stripped-down APGsembly that just prints out *all* integers (1, 2, 3, ...), which can be used as a starting point for creating patterns that print integer sequences (there's a commented section of the APGsembly where you should put the code for deciding whether or not to print the current integer).

Code: Select all

# R0: the number that is being counted and will be printed
# R1: number of digits in R0
# R2: 10^(R1-1)
# R3: current digit of R0 to print
# R4, R5, R6: temporary copies of R0, R1, R2
# R7, R8, R9: temporary helper registers
# R10: flag that says whether or not to print current R0
# State    Input    Next state    Actions
# ---------------------------------------
INITIAL;   ZZ;      CPYDIG1;      NOP, INC R0, INC R1, INC R2

# Copy R0 to R4 with the help of R7
CPYDIG1;   ZZ;      CPYDIG2;      TDEC R0
CPYDIG2;   Z;       CPYDIG3;      TDEC R7
CPYDIG2;   NZ;      CPYDIG2;      INC R7, TDEC R0
CPYDIG3;   Z;       CPYDIG4;      NOP
CPYDIG3;   NZ;      CPYDIG3;      INC R0, INC R4, TDEC R7

# Copy R1 to R5 with the help of R7
CPYDIG4;   ZZ;      CPYDIG5;      TDEC R1
CPYDIG5;   Z;       CPYDIG6;      TDEC R7
CPYDIG5;   NZ;      CPYDIG5;      INC R7, TDEC R1
CPYDIG6;   Z;       CPYDIG7;      NOP
CPYDIG6;   NZ;      CPYDIG6;      INC R1, INC R5, TDEC R7

# Copy R2 to R8 with the help of R7
CPYDIG7;   ZZ;      CPYDIG8;      TDEC R2
CPYDIG8;   Z;       CPYDIG9;      TDEC R7
CPYDIG8;   NZ;      CPYDIG8;      INC R7, TDEC R2
CPYDIG9;   Z;       CPYDIG10;     NOP
CPYDIG9;   NZ;      CPYDIG9;      INC R2, INC R8, TDEC R7

# Copy R8 to R6 with the help of R7
CPYDIG10;  ZZ;      CPYDIG11;     TDEC R8
CPYDIG11;  Z;       CPYDIG12;     TDEC R7
CPYDIG11;  NZ;      CPYDIG11;     INC R7, TDEC R8
CPYDIG12;  Z;       SUB1;         NOP
CPYDIG12;  NZ;      CPYDIG12;     INC R8, INC R6, TDEC R7

# Check whether R6 <= R4, and subtract if it is
# If R6 <= R4 then this sets R4 = R4 - R6, R6 = 0 and increases R3 by 1
# If R4 < R6 then this sets R6 = R6 - R4, R4 = 0 and moves on to digit printing
# Set R3 = number of times we subtracted
SUB1;      ZZ;      SUB2;         TDEC R6
SUB2;      Z;       CPYDIG10;     NOP, INC R3
SUB2;      NZ;      SUB3;         TDEC R4
SUB3;      Z;       CHKPRINT;     NOP, INC R6
SUB3;      NZ;      SUB2;         TDEC R6

### Put any custom sequence code here (i.e., if you want to only print integers
### with a certain property, test for that property between CHKPRINT and PRINTRES).
### If you want to print the integer, give a Z input to PRINTRES, otherwise give
### it an NZ input.
### You can use R7 and R9 as temporary helper registers, if needed, but reset them
### to 0 when done with them.
CHKPRINT;  ZZ;      PRINTRES;     NOP

PRINTRES;  Z;       PRINTDIG;     NOP
### End custom checking code

# Not printing R3? Have to zero out some registers. Also set a flag (R10) so we
# know to skip printing other digits and the period.
PRINTRES;  NZ;      NOPRINT1;     TDEC R4, INC R10
NOPRINT1;  Z;       NOPRINT2;     TDEC R5
NOPRINT1;  NZ;      NOPRINT1;     TDEC R4
NOPRINT2;  Z;       NOPRINT3;     TDEC R6
NOPRINT2;  NZ;      NOPRINT2;     TDEC R5
NOPRINT3;  Z;       NOPRINT4;     TDEC R8
NOPRINT3;  NZ;      NOPRINT3;     TDEC R6
NOPRINT4;  Z;       NOPRINT5;     NOP
NOPRINT4;  NZ;      NOPRINT4;     TDEC R8
# If R3 >= 10 then update R1 and R2. Otherwise just loop back.
NOPRINT5;  ZZ;      NOPRINT6;     TDEC R3
NOPRINT6;  *;       NOPRINT7;     TDEC R3
NOPRINT7;  *;       NOPRINT8;     TDEC R3
NOPRINT8;  *;       NOPRINT9;     TDEC R3
NOPRINT9;  *;       NOPRINT10;    TDEC R3
NOPRINT10; *;       NOPRINT11;    TDEC R3
NOPRINT11; *;       NOPRINT12;    TDEC R3
NOPRINT12; *;       NOPRINT13;    TDEC R3
NOPRINT13; *;       NOPRINT14;    TDEC R3
NOPRINT14; *;       NOPRINT15;    TDEC R3
NOPRINT15; Z;       CPYDIG1;      NOP, INC R0
NOPRINT15; NZ;      EXP1;         NOP

# Print the digit currently stored in R3
PRINTDIG;  ZZ;      OUT0;         TDEC R3
OUT0;      Z;       OUTD;         NOP, OUTPUT 0
OUT0;      NZ;      OUT1;         TDEC R3
OUT1;      Z;       OUTD;         NOP, OUTPUT 1
OUT1;      NZ;      OUT2;         TDEC R3
OUT2;      Z;       OUTD;         NOP, OUTPUT 2
OUT2;      NZ;      OUT3;         TDEC R3
OUT3;      Z;       OUTD;         NOP, OUTPUT 3
OUT3;      NZ;      OUT4;         TDEC R3
OUT4;      Z;       OUTD;         NOP, OUTPUT 4
OUT4;      NZ;      OUT5;         TDEC R3
OUT5;      Z;       OUTD;         NOP, OUTPUT 5
OUT5;      NZ;      OUT6;         TDEC R3
OUT6;      Z;       OUTD;         NOP, OUTPUT 6
OUT6;      NZ;      OUT7;         TDEC R3
OUT7;      Z;       OUTD;         NOP, OUTPUT 7
OUT7;      NZ;      OUT8;         TDEC R3
OUT8;      Z;       OUTD;         NOP, OUTPUT 8
OUT8;      NZ;      OUT9;         TDEC R3
OUT9;      Z;       OUTD;         NOP, OUTPUT 9
OUT9;      NZ;      OUT10;        NOP, OUTPUT 1
OUT10;     ZZ;      EXP1;         NOP, OUTPUT 0
OUTD;      ZZ;      DECD1;        NOP

# Set R1 = R1 + 1 and R2 = R2 * 10 if R0 just got a new decimal digit
# Copy R2 to R9 with the help of R7
EXP1;      ZZ;      EXP2;         INC R1, TDEC R2
EXP2;      Z;       EXP3;         TDEC R7
EXP2;      NZ;      EXP2;         INC R7, TDEC R2
EXP3;      Z;       EXP4;         NOP
EXP3;      NZ;      EXP3;         INC R2, INC R9, TDEC R7
# Set R2 = 10 * R9, R9 = 0
EXP4;      ZZ;      EXP5A;        TDEC R9
EXP5A;     Z;       CHKFLAG1;     NOP
EXP5A;     NZ;      EXP5B;        NOP, INC R2
EXP5B;     ZZ;      EXP5C;        NOP, INC R2
EXP5C;     ZZ;      EXP5D;        NOP, INC R2
EXP5D;     ZZ;      EXP5E;        NOP, INC R2
EXP5E;     ZZ;      EXP5F;        NOP, INC R2
EXP5F;     ZZ;      EXP5G;        NOP, INC R2
EXP5G;     ZZ;      EXP5H;        NOP, INC R2
EXP5H;     ZZ;      EXP5I;        NOP, INC R2
EXP5I;     ZZ;      EXP5A;        TDEC R9, INC R2

# If R10 = 1 then jump to next R0
CHKFLAG1;  ZZ;      CHKFLAG2;     TDEC R10
CHKFLAG2;  Z;       DECD1;        NOP
CHKFLAG2;  NZ;      CPYDIG1;      NOP, INC R0

# Copy R8 to R4 with the help of R7
DECD1;     ZZ;      DECD2;        TDEC R8
DECD2;     Z;       DECD3;        TDEC R7
DECD2;     NZ;      DECD2;        INC R7, TDEC R8
DECD3;     Z;       DECD4;        NOP
DECD3;     NZ;      DECD3;        INC R8, INC R4, TDEC R7

# Set R4 = R4 - R6, R6 = 0, R5 = R5 - 1
DECD4;     ZZ;      DECD5;        TDEC R6
DECD5;     Z;       DECDT;        TDEC R5
DECD5;     NZ;      DECD6;        TDEC R4
DECD6;     *;       DECD5;        TDEC R6

# Set R6 = R8/10, R8 = 0, or quit if we've printed all digits
DECDT;     *;       DECD7;        TDEC R5
DECD7;     Z;       DECD18;       TDEC R8
DECD7;     NZ;      DECD8;        INC R5, TDEC R8
DECD8;     *;       DECD9;        TDEC R8
DECD9;     *;       DECD10;       TDEC R8
DECD10;    *;       DECD11;       TDEC R8
DECD11;    *;       DECD12;       TDEC R8
DECD12;    *;       DECD13;       TDEC R8
DECD13;    *;       DECD14;       TDEC R8
DECD14;    *;       DECD15;       TDEC R8
DECD15;    *;       DECD16;       TDEC R8
DECD16;    *;       DECD17;       TDEC R8
DECD17;    Z;       CPYDIG13;     NOP
DECD17;    NZ;      DECD8;        TDEC R8, INC R6
DECD18;    Z;       CPYDIG1;      NOP, INC R0, OUTPUT .
DECD18;    NZ;      DECD18;       TDEC R8

# Copy R6 to R8 with the help of R7
CPYDIG13;  ZZ;      CPYDIG14;     TDEC R6
CPYDIG14;  Z;       CPYDIG15;     TDEC R7
CPYDIG14;  NZ;      CPYDIG14;     INC R7, TDEC R6
CPYDIG15;  Z;       SUB1;         NOP
CPYDIG15;  NZ;      CPYDIG15;     INC R6, INC R8, TDEC R7
Attachments
prime_printer.mc
(328.99 KiB) Downloaded 144 times

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Smaller Pi Calculator Challenge

Post by dvgrn » March 24th, 2020, 2:07 pm

Nathaniel wrote:
March 24th, 2020, 1:49 pm
The "prime_printer.mc" pattern attached to this post is a pattern that prints out the sequence of prime numbers (in decimal), separated by dots...
Looks great! An updated compiler/emulator will be coming along shortly (sometime this week, let's say) that can take arbitrary APGsembly as input and produce one of these calculator patterns.

This particular pattern has a clock speed of 2^20, so one thing to try is to switch the pattern to LifeHistory (Alt+H is the default keyboard shortcut for toLifeHistory.lua)... and then set the base step to 2 in Preferences > Control, set the step to 2^20 and hit Tab run the pattern, one calculator clock tick at a time. You'll be able to see the computer section in the southeast moving from state to state, and making calls via the NW/SE output lanes to the row of logic components in the northwest -- and see the register contents changing, and so forth.

For actually seeing the printed output, of course, plain Life is a better format. A step size somewhere around 2^27 to 2^30, or 8^9 to 8^10, works pretty well on my system.

@Nathaniel, are you planning another post with details on your e, sqrt(2), etc., calculators?

User avatar
Nathaniel
Site Admin
Posts: 862
Joined: December 10th, 2008, 3:48 pm
Location: New Brunswick, Canada
Contact:

Re: Smaller Pi Calculator Challenge

Post by Nathaniel » March 24th, 2020, 4:45 pm

dvgrn wrote:
March 24th, 2020, 2:07 pm
@Nathaniel, are you planning another post with details on your e, sqrt(2), etc., calculators?
Sure! I'll leave the details to the textbook (since they're long), but here are the e = 2.7182... and sqrt(2) = 1.4142... calculators themselves:
e_calculator.mc
(373.42 KiB) Downloaded 117 times
sqrt2_calculator.mc
(374.68 KiB) Downloaded 116 times
The e calculator is much quicker than the pi calculator (it produces slightly more than 4x as many digits in the same timeframe), but still slower than the phi calculator. The sqrt(2) calculator is very slow (roughly the same speed as the pi calculator).

e calculator APGsembly:

Code: Select all

# State    Input    Next state    Actions
# ---------------------------------------
INITIAL;   ZZ;      I2;           INC T1
I2;        *;       ICUST1;       READ T1, INC R2
ICUST1;    *;       ICUST2;       SET T1, INC T1
ICUST2;    *;       ICUST3;       READ T1
ICUST3;    *;       ICUST4;       SET T1, DEC T1
ICUST4;    *;       ICUST5;       DEC T1
ICUST5;    *;       ICUST6;       INC T0
ICUST6;    *;       ICUST7;       READ T0
ICUST7;    *;       ICUST8;       SET T0, INC T0
ICUST8;    *;       ICUST9;       INC T0
ICUST9;    *;       ICUST10;      READ T0
ICUST10;   *;       ICUST11;      SET T0, DEC T0
ICUST11;   *;       ICUST12;      DEC T0
ICUST12;   *;       ICUST13;      DEC T0
ICUST13;   *;       ICUST14;      NOP, INC R3
ICUST14;   *;       ICUST15;      NOP, INC R3
ICUST15;   *;       IMEMORY1;     NOP, INC R0, INC R3, INC R7
IMEMORY1;  *;       IMEMORY2;     NOP, INC R0
IMEMORY2;  *;       IMEMORY3;     NOP, INC R0
IMEMORY3;  *;       IMEMORY4;     NOP, INC R0
IMEMORY4;  *;       IMEMORY5;     NOP, INC R0
IMEMORY5;  *;       IMEMORY6;     NOP, INC R0
IMEMORY6;  *;       IMEMORY7;     NOP, INC R0
IMEMORY7;  *;       IMEMORY8;     NOP, INC R0
IMEMORY8;  *;       IMEMORY9;     NOP, INC R0
IMEMORY9;  *;       IMEMORY10;    NOP, INC R0
IMEMORY10; *;       IMEMORY11;    NOP, INC R0
IMEMORY11; *;       IMEMORY12;    NOP, INC R0
IMEMORY12; *;       IMEMORY13;    NOP, INC R0
IMEMORY13; *;       IMEMORY14;    NOP, INC R0
IMEMORY14; *;       IMEMORY15;    NOP, INC R0
IMEMORY15; *;       IMEMORY16;    NOP, INC R0
IMEMORY16; *;       IMEMORY17;    NOP, INC R0
IMEMORY17; *;       IMEMORY18;    NOP, INC R0
IMEMORY18; *;       ITSTART;      NOP, INC R0
ITSTART;   ZZ;      MULA1;        NOP, INC R3
MULA1;     ZZ;      MULA2;        TDEC R0
MULA2;     Z;       MULA3;        TDEC R4
MULA2;     NZ;      MULA2;        INC R4, TDEC R0
MULA3;     Z;       MULA4;        TDEC R5
MULA3;     NZ;      MULA3;        INC R0, INC R5, TDEC R4
MULA4;     Z;       MULA9;        DEC T0
MULA4;     NZ;      MULA5;        READ T2
MULA5;     Z;       MULA6;        READ T0
MULA5;     NZ;      MULA6;        READ T0
MULA6;     Z;       MULA7;        RESET T0, RESET T2, INC T0
MULA6;     NZ;      MULA7;        SET T0, SET T2, INC T0
MULA7;     Z;       MULA8;        INC T2
MULA7;     NZ;      MULA8;        INC T2
MULA8;     Z;       MULA4;        TDEC R5
MULA8;     NZ;      MULA4;        TDEC R5
MULA9;     Z;       MULA10;       DEC T2
MULA9;     NZ;      MULA9;        DEC T0
MULA10;    Z;       MULA11;       TDEC R3
MULA10;    NZ;      MULA10;       DEC T2
MULA11;    Z;       MULA12;       TDEC R5
MULA11;    NZ;      MULA11;       INC R5, TDEC R3
MULA12;    Z;       MULA13;       TDEC R6
MULA12;    NZ;      MULA12;       INC R3, INC R6, TDEC R5
MULA13;    *;       MULA14;       TDEC R6
MULA14;    Z;       C1;           NOP
MULA14;    NZ;      MULA15;       TDEC R0
MULA15;    Z;       MULA16;       TDEC R4
MULA15;    NZ;      MULA15;       TDEC R0, INC R4
MULA16;    Z;       MULA17;       TDEC R5
MULA16;    NZ;      MULA16;       INC R0, TDEC R4, INC R5
MULA17;    Z;       MULA23;       DEC T2
MULA17;    NZ;      MULA18;       READ T2
MULA18;    Z;       MULA19;       READ T0, RESET T2
MULA18;    NZ;      MULA19;       READ T0, SET T2, ADD A1
MULA19;    Z;       MULA20;       ADD B0
MULA19;    NZ;      MULA20;       ADD B1
MULA20;    Z;       MULA21;       RESET T0, INC T0
MULA20;    NZ;      MULA21;       SET T0, INC T0
MULA21;    *;       MULA22;       INC T2
MULA22;    *;       MULA17;       TDEC R5
MULA23;    Z;       MULA24;       DEC T0
MULA23;    NZ;      MULA23;       DEC T2
MULA24;    Z;       MULA14;       TDEC R6
MULA24;    NZ;      MULA24;       DEC T0
C1;        ZZ;      C2;           READ T0
C2;        Z;       C4;           SET T0, DEC T0
C2;        NZ;      C3;           RESET T0, INC T0
C3;        Z;       C2;           READ T0
C3;        NZ;      C2;           READ T0
C4;        Z;       MULD1;        TDEC R0
C4;        NZ;      C4;           DEC T0
MULD1;     Z;       MULD2;        TDEC R4
MULD1;     NZ;      MULD1;        INC R4, TDEC R0
MULD2;     Z;       MULD3;        TDEC R5
MULD2;     NZ;      MULD2;        INC R0, INC R5, TDEC R4
MULD3;     Z;       MULD8;        DEC T1
MULD3;     NZ;      MULD4;        READ T2
MULD4;     Z;       MULD5;        READ T1
MULD4;     NZ;      MULD5;        READ T1
MULD5;     Z;       MULD6;        RESET T1, RESET T2, INC T1
MULD5;     NZ;      MULD6;        SET T1, SET T2, INC T1
MULD6;     Z;       MULD7;        INC T2
MULD6;     NZ;      MULD7;        INC T2
MULD7;     Z;       MULD3;        TDEC R5
MULD7;     NZ;      MULD3;        TDEC R5
MULD8;     Z;       MULD9;        DEC T2
MULD8;     NZ;      MULD8;        DEC T1
MULD9;     Z;       MULD10;       TDEC R3
MULD9;     NZ;      MULD9;        DEC T2
MULD10;    Z;       MULD11;       TDEC R5
MULD10;    NZ;      MULD10;       INC R5, TDEC R3
MULD11;    Z;       MULD12;       TDEC R6
MULD11;    NZ;      MULD11;       INC R3, INC R6, TDEC R5
MULD12;    *;       MULD13;       TDEC R6
MULD13;    Z;       ITHALF;       NOP
MULD13;    NZ;      MULD14;       TDEC R0
MULD14;    Z;       MULD15;       TDEC R4
MULD14;    NZ;      MULD14;       TDEC R0, INC R4
MULD15;    Z;       MULD16;       TDEC R5
MULD15;    NZ;      MULD15;       INC R0, TDEC R4, INC R5
MULD16;    Z;       MULD22;       DEC T2
MULD16;    NZ;      MULD17;       READ T2
MULD17;    Z;       MULD18;       READ T1, RESET T2
MULD17;    NZ;      MULD18;       READ T1, SET T2, ADD A1
MULD18;    Z;       MULD19;       ADD B0
MULD18;    NZ;      MULD19;       ADD B1
MULD19;    Z;       MULD20;       RESET T1, INC T1
MULD19;    NZ;      MULD20;       SET T1, INC T1
MULD20;    *;       MULD21;       INC T2
MULD21;    *;       MULD16;       TDEC R5
MULD22;    Z;       MULD23;       DEC T1
MULD22;    NZ;      MULD22;       DEC T2
MULD23;    Z;       MULD13;       TDEC R6
MULD23;    NZ;      MULD23;       DEC T1
ITHALF;    ZZ;      ITHA;         READ T0
ITHA;      Z;       ITHB;         RESET T0, INC T0
ITHA;      NZ;      IT2;          SET T0, DEC T0
ITHB;      *;       ITHC;         READ T0
ITHC;      Z;       ITHD;         RESET T0, INC R2, DEC T0
ITHC;      NZ;      ITHD;         SET T0, DEC T0
ITHD;      *;       IT2;          DEC T0
IT2;       *;       IT3;          TDEC R2
IT3;       Z;       IT4;          TDEC R5
IT3;       NZ;      IT3;          INC R5, TDEC R2
IT4;       Z;       IT5;          TDEC R1
IT4;       NZ;      IT4;          INC R0, INC R2, TDEC R5
IT5;       Z;       IT6;          TDEC R5
IT5;       NZ;      IT5;          INC R5, TDEC R1
IT6;       Z;       IT7;          TDEC R0
IT6;       NZ;      IT6;          TDEC R5, INC R1, INC R6
IT7;       Z;       IT8;          TDEC R5
IT7;       NZ;      IT7;          TDEC R0, INC R5
IT8;       Z;       IT9;          TDEC R4
IT8;       NZ;      IT8;          INC R0, TDEC R5, INC R4
IT9;       Z;       IT14;         DEC T2
IT9;       NZ;      IT10;         READ T2
IT10;      *;       IT11;         READ T0
IT11;      Z;       IT12;         RESET T0, RESET T2, INC T2
IT11;      NZ;      IT12;         SET T0, SET T2, INC T2
IT12;      *;       IT13;         INC T0
IT13;      *;       IT9;          TDEC R4
IT14;      Z;       IT15;         DEC T0
IT14;      NZ;      IT14;         DEC T2
IT15;      Z;       CMP1;         TDEC R0
IT15;      NZ;      IT15;         DEC T0
CMP1;      Z;       CMP2;         TDEC R5
CMP1;      NZ;      CMP1;         TDEC R0, INC R5
CMP2;      Z;       CMP3;         TDEC R4
CMP2;      NZ;      CMP2;         INC R0, TDEC R5, INC R4
CMP3;      Z;       CMP6;         READ T2
CMP3;      NZ;      CMP4;         INC T2
CMP4;      *;       CMP5;         INC T1
CMP5;      *;       CMP3;         TDEC R4
CMP6;      Z;       CMP7;         READ T1, RESET T2
CMP6;      NZ;      CMP10;        READ T1, SET T2
CMP7;      Z;       CMP8;         RESET T1, DEC T1
CMP7;      NZ;      CMP11;        SET T1, DEC T2
CMP8;      *;       CMP9;         DEC T2
CMP9;      Z;       CMP14;        DEC T1
CMP9;      NZ;      CMP6;         READ T2
CMP10;     Z;       CMP13;        RESET T1, DEC T2
CMP10;     NZ;      CMP8;         SET T1, DEC T1
CMP11;     Z;       CMP12;        DEC T1
CMP11;     NZ;      CMP11;        DEC T2
CMP12;     Z;       DIG1;         TDEC R6
CMP12;     NZ;      CMP12;        DEC T1
CMP13;     Z;       CMP14;        DEC T1
CMP13;     NZ;      CMP13;        DEC T2
CMP14;     Z;       SUB1;         TDEC R0
CMP14;     NZ;      CMP14;        DEC T1
SUB1;      Z;       SUB2;         TDEC R5
SUB1;      NZ;      SUB1;         TDEC R0, INC R5
SUB2;      Z;       SUB3;         TDEC R4
SUB2;      NZ;      SUB2;         INC R0, TDEC R5, INC R4
SUB3;      Z;       SUB9;         DEC T2
SUB3;      NZ;      SUB4;         READ T2
SUB4;      Z;       SUB5;         READ T1
SUB4;      NZ;      SUB5;         READ T1, SUB A1
SUB5;      Z;       SUB6;         RESET T1, SUB B0
SUB5;      NZ;      SUB6;         SET T1, SUB B1
SUB6;      Z;       SUB7;         RESET T2, INC T2
SUB6;      NZ;      SUB7;         SET T2, INC T2
SUB7;      *;       SUB8;         INC T1
SUB8;      *;       SUB3;         TDEC R4
SUB9;      Z;       SUB10;        DEC T1
SUB9;      NZ;      SUB9;         DEC T2
SUB10;     Z;       CMP1;         TDEC R0, INC R7
SUB10;     NZ;      SUB10;        DEC T1
DIG1;      Z;       OUT0;         TDEC R7
DIG1;      NZ;      DIG2;         TDEC R7
DIG2;      Z;       DIG3;         TDEC R0
DIG2;      NZ;      DIG2;         TDEC R7
DIG3;      Z;       DIG4;         TDEC R5
DIG3;      NZ;      DIG3;         TDEC R0, INC R5
DIG4;      Z;       DIG5;         TDEC R4
DIG4;      NZ;      DIG4;         INC R0, TDEC R5, INC R4
DIG5;      Z;       DIG9;         DEC T2
DIG5;      NZ;      DIG6;         READ T2
DIG6;      Z;       DIG7;         MUL 0
DIG6;      NZ;      DIG7;         MUL 1
DIG7;      Z;       DIG8;         RESET T2, INC T2
DIG7;      NZ;      DIG8;         SET T2, INC T2
DIG8;      *;       DIG5;         TDEC R4
DIG9;      Z;       CMP1;         TDEC R0
DIG9;      NZ;      DIG9;         DEC T2
OUT0;      Z;       OUTDTEST;     NOP, OUTPUT 0
OUT0;      NZ;      OUT1;         TDEC R7
OUT1;      Z;       OUTDTEST;     NOP, OUTPUT 1
OUT1;      NZ;      OUT2;         TDEC R7
OUT2;      Z;       OUTDTEST;     NOP, OUTPUT 2
OUT2;      NZ;      OUT3;         TDEC R7
OUT3;      Z;       OUTDTEST;     NOP, OUTPUT 3
OUT3;      NZ;      OUT4;         TDEC R7
OUT4;      Z;       OUTDTEST;     NOP, OUTPUT 4
OUT4;      NZ;      OUT5;         TDEC R7
OUT5;      Z;       OUTDTEST;     NOP, OUTPUT 5
OUT5;      NZ;      OUT6;         TDEC R7
OUT6;      Z;       OUTDTEST;     NOP, OUTPUT 6
OUT6;      NZ;      OUT7;         TDEC R7
OUT7;      Z;       OUTDTEST;     NOP, OUTPUT 7
OUT7;      NZ;      OUT8;         TDEC R7
OUT8;      Z;       OUTDTEST;     NOP, OUTPUT 8
OUT8;      NZ;      OUTDTEST;     NOP, OUTPUT 9
OUTDTEST;  ZZ;      OUTD;         TDEC R1
OUTD;      Z;       ITSTART;      NOP, INC R1, OUTPUT .
OUTD;      NZ;      OUTD2;        NOP, INC R1
OUTD2;     *;       ITSTART;      NOP, INC R1
sqrt(2) calculator APGsembly:

Code: Select all

# State    Input    Next state    Actions
# ---------------------------------------
INITIAL;   ZZ;      I1;           READ T0, INC R0
I1;        ZZ;      I2;           SET T0, READ T2, INC R0
I2;        ZZ;      I3;           RESET T2, INC T2, INC R0
I3;        *;       I4;           READ T2, INC R0
I4;        ZZ;      ICUSTOM;      SET T2, DEC T2, INC R0
ICUSTOM;   *;       IMEM1;        NOP, INC R3, INC R0
IMEM1;     ZZ;      IMEM2;        NOP, INC R0
IMEM2;     ZZ;      IMEM3;        NOP, INC R0
IMEM3;     ZZ;      IMEM4;        NOP, INC R0
IMEM4;     ZZ;      ITSTART;      NOP, INC R0
ITSTART;   ZZ;      ITSTRB;       NOP, INC R6
ITSTRB;    ZZ;      ITSTRC;       NOP, INC R6
ITSTRC;    ZZ;      ITSTRD;       NOP, INC R6
ITSTRD;    ZZ;      ITTEST;       NOP, INC R6
ITTEST;    ZZ;      IT1;          TDEC R6
IT1;       Z;       IT5;          TDEC R1
IT1;       NZ;      IT1B;         NOP, INC R3, INC R4, INC R5
IT1B;      ZZ;      IT1C;         NOP, INC R3, INC R4, INC R5
IT1C;      ZZ;      IT1D;         NOP, INC R4, INC R5
IT1D;      ZZ;      MULA1;        NOP, INC R4, INC R5

## The MULA states compute the (R5 * T1) portion of the top-right entry of B, while also
## storing the value of T1 in the temporary register T3 (but we don't need it there).
# First: Copy T1 into T3 (without erasing T1), with the help of temporary registers R7, R8
MULA1;     ZZ;      MULA2;        TDEC R0
MULA2;     Z;       MULA3;        TDEC R7
MULA2;     NZ;      MULA2;        INC R7, TDEC R0
MULA3;     Z;       MULA4;        TDEC R8
MULA3;     NZ;      MULA3;        INC R0, INC R8, TDEC R7
MULA4;     Z;       MULA9;        DEC T1
MULA4;     NZ;      MULA5;        READ T3
MULA5;     Z;       MULA6;        READ T1
MULA5;     NZ;      MULA6;        READ T1
MULA6;     Z;       MULA7;        RESET T1, RESET T3, INC T1
MULA6;     NZ;      MULA7;        SET T1, SET T3, INC T1
MULA7;     Z;       MULA8;        INC T3
MULA7;     NZ;      MULA8;        INC T3
MULA8;     Z;       MULA4;        TDEC R8
MULA8;     NZ;      MULA4;        TDEC R8
MULA9;     Z;       MULA10;       DEC T3
MULA9;     NZ;      MULA9;        DEC T1
MULA10;    Z;       MULA11;       TDEC R5
MULA10;    NZ;      MULA10;       DEC T3

# Next: Copy R5 to temporary register R9, with the help of temporary register R8
MULA11;    Z;       MULA12;       TDEC R8
MULA11;    NZ;      MULA11;       INC R8, TDEC R5
MULA12;    Z;       MULA13;       TDEC R9
MULA12;    NZ;      MULA12;       INC R5, INC R9, TDEC R8

# Now loop over R9, adding T3 to T1 each time (so that T1 = R5 * T3 and R9 is reset to 0).
# This code actually loops over R9-1, since T1 already contains one copy of T3.
MULA13;    *;       MULA14;       TDEC R9
MULA14;    Z;       MULB1;        TDEC R0
MULA14;    NZ;      MULA15;       TDEC R0
MULA15;    Z;       MULA16;       TDEC R7
MULA15;    NZ;      MULA15;       TDEC R0, INC R7
MULA16;    Z;       MULA17;       TDEC R8
MULA16;    NZ;      MULA16;       INC R0, TDEC R7, INC R8
MULA17;    Z;       MULA23;       DEC T3
MULA17;    NZ;      MULA18;       READ T3
MULA18;    Z;       MULA19;       READ T1, RESET T3
MULA18;    NZ;      MULA19;       READ T1, SET T3, ADD A1
MULA19;    Z;       MULA20;       ADD B0
MULA19;    NZ;      MULA20;       ADD B1
MULA20;    Z;       MULA21;       RESET T1, INC T1
MULA20;    NZ;      MULA21;       SET T1, INC T1
MULA21;    *;       MULA22;       INC T3
MULA22;    *;       MULA17;       TDEC R8
MULA23;    Z;       MULA24;       DEC T1
MULA23;    NZ;      MULA23;       DEC T3
MULA24;    Z;       MULA14;       TDEC R9
MULA24;    NZ;      MULA24;       DEC T1
## Done computing the (R5 * T1) portion of the top-right entry of B.

## The MULB states compute the new top-left entry of B (R3 * T0), while also
## storing the value of T0 in the temporary register T3.
# First: Copy T0 into T3 (without erasing T0), with the help of temporary registers R7, R8
MULB1;     Z;       MULB2;        TDEC R7
MULB1;     NZ;      MULB1;        INC R7, TDEC R0
MULB2;     Z;       MULB3;        TDEC R8
MULB2;     NZ;      MULB2;        INC R0, INC R8, TDEC R7
MULB3;     Z;       MULB8;        DEC T0
MULB3;     NZ;      MULB4;        READ T3
MULB4;     Z;       MULB5;        READ T0
MULB4;     NZ;      MULB5;        READ T0
MULB5;     Z;       MULB6;        RESET T0, RESET T3, INC T0
MULB5;     NZ;      MULB6;        SET T0, SET T3, INC T0
MULB6;     Z;       MULB7;        INC T3
MULB6;     NZ;      MULB7;        INC T3
MULB7;     Z;       MULB3;        TDEC R8
MULB7;     NZ;      MULB3;        TDEC R8
MULB8;     Z;       MULB9;        DEC T3
MULB8;     NZ;      MULB8;        DEC T0
MULB9;     Z;       MULB10;       TDEC R3
MULB9;     NZ;      MULB9;        DEC T3

# Next: Copy R3 to temporary register R9, with the help of temporary register R8
MULB10;    Z;       MULB11;       TDEC R8
MULB10;    NZ;      MULB10;       INC R8, TDEC R3
MULB11;    Z;       MULB12;       TDEC R9
MULB11;    NZ;      MULB11;       INC R3, INC R9, TDEC R8

# Now loop over R9, adding T3 to T0 each time (so that T0 = R3 * T3 and R9 is reset to 0).
# This code actually loops over R9-1, since T0 already contains one copy of T3.
MULB12;    *;       MULB13;       TDEC R9
MULB13;    Z;       MULC1;        TDEC R4
MULB13;    NZ;      MULB14;       TDEC R0
MULB14;    Z;       MULB15;       TDEC R7
MULB14;    NZ;      MULB14;       TDEC R0, INC R7
MULB15;    Z;       MULB16;       TDEC R8
MULB15;    NZ;      MULB15;       INC R0, TDEC R7, INC R8
MULB16;    Z;       MULB22;       DEC T3
MULB16;    NZ;      MULB17;       READ T3
MULB17;    Z;       MULB18;       READ T0, RESET T3
MULB17;    NZ;      MULB18;       READ T0, SET T3, ADD A1
MULB18;    Z;       MULB19;       ADD B0
MULB18;    NZ;      MULB19;       ADD B1
MULB19;    Z;       MULB20;       RESET T0, INC T0
MULB19;    NZ;      MULB20;       SET T0, INC T0
MULB20;    *;       MULB21;       INC T3
MULB21;    *;       MULB16;       TDEC R8
MULB22;    Z;       MULB23;       DEC T0
MULB22;    NZ;      MULB22;       DEC T3
MULB23;    Z;       MULB13;       TDEC R9
MULB23;    NZ;      MULB23;       DEC T0
## Done computing the top-left entry of B (R3 * T0).

## The MULC states add the (R4 * T0) portion to the top-right entry of B (T1).
## This code relies on the fact that the MULB states above stored the value of
## T0 in the temporary register T3.
# First: Copy R4 to temporary register R9, with the help of temporary register R8
MULC1;     Z;       MULC2;        TDEC R8
MULC1;     NZ;      MULC1;        INC R8, TDEC R4
MULC2;     Z;       MULC3;        TDEC R9
MULC2;     NZ;      MULC2;        INC R4, INC R9, TDEC R8

# Now loop over R9, adding T3 to T1 each time (so that T1 = T1 + R4 * T3 and R9 is reset to 0).
MULC3;     Z;       MULD1;        TDEC R0
MULC3;     NZ;      MULC4;        TDEC R0
MULC4;     Z;       MULC5;        TDEC R7
MULC4;     NZ;      MULC4;        TDEC R0, INC R7
MULC5;     Z;       MULC6;        TDEC R8
MULC5;     NZ;      MULC5;        INC R0, TDEC R7, INC R8
MULC6;     Z;       MULC12;       DEC T3
MULC6;     NZ;      MULC7;        READ T3
MULC7;     Z;       MULC8;        READ T1, RESET T3
MULC7;     NZ;      MULC8;        READ T1, SET T3, ADD A1
MULC8;     Z;       MULC9;        ADD B0
MULC8;     NZ;      MULC9;        ADD B1
MULC9;     Z;       MULC10;       RESET T1, INC T1
MULC9;     NZ;      MULC10;       SET T1, INC T1
MULC10;    *;       MULC11;       INC T3
MULC11;    *;       MULC6;        TDEC R8
MULC12;    Z;       MULC13;       DEC T1
MULC12;    NZ;      MULC12;       DEC T3
MULC13;    Z;       MULC3;        TDEC R9
MULC13;    NZ;      MULC13;       DEC T1
## Done computing the top-right entry of B (R5 * T1) + (R4 * T0).

## The MULD states compute the new bottom-right entry of B (R5 * T2), while also
## storing the value of T2 in the temporary register T3 (not that we need it there).
# First: Copy T2 into T3 (without erasing T2), with the help of temporary registers R7, R8
MULD1;     Z;       MULD2;        TDEC R7
MULD1;     NZ;      MULD1;        INC R7, TDEC R0
MULD2;     Z;       MULD3;        TDEC R8
MULD2;     NZ;      MULD2;        INC R0, INC R8, TDEC R7
MULD3;     Z;       MULD8;        DEC T2
MULD3;     NZ;      MULD4;        READ T3
MULD4;     Z;       MULD5;        READ T2
MULD4;     NZ;      MULD5;        READ T2
MULD5;     Z;       MULD6;        RESET T2, RESET T3, INC T2
MULD5;     NZ;      MULD6;        SET T2, SET T3, INC T2
MULD6;     Z;       MULD7;        INC T3
MULD6;     NZ;      MULD7;        INC T3
MULD7;     Z;       MULD3;        TDEC R8
MULD7;     NZ;      MULD3;        TDEC R8
MULD8;     Z;       MULD9;        DEC T3
MULD8;     NZ;      MULD8;        DEC T2
MULD9;     Z;       MULD10;       TDEC R5
MULD9;     NZ;      MULD9;        DEC T3

# Next: Copy R5 to temporary register R9, with the help of temporary register R8
MULD10;    Z;       MULD11;       TDEC R8
MULD10;    NZ;      MULD10;       INC R8, TDEC R5
MULD11;    Z;       MULD12;       TDEC R9
MULD11;    NZ;      MULD11;       INC R5, INC R9, TDEC R8

# Now loop over R9, adding T3 to T2 each time (so that T2 = R5 * T3 and R9 is reset to 0).
# This code actually loops over R9-1, since T2 already contains one copy of T3.
MULD12;    *;       MULD13;       TDEC R9
MULD13;    Z;       IT2;          NOP, INC R2
MULD13;    NZ;      MULD14;       TDEC R0
MULD14;    Z;       MULD15;       TDEC R7
MULD14;    NZ;      MULD14;       TDEC R0, INC R7
MULD15;    Z;       MULD16;       TDEC R8
MULD15;    NZ;      MULD15;       INC R0, TDEC R7, INC R8
MULD16;    Z;       MULD22;       DEC T3
MULD16;    NZ;      MULD17;       READ T3
MULD17;    Z;       MULD18;       READ T2, RESET T3
MULD17;    NZ;      MULD18;       READ T2, SET T3, ADD A1
MULD18;    Z;       MULD19;       ADD B0
MULD18;    NZ;      MULD19;       ADD B1
MULD19;    Z;       MULD20;       RESET T2, INC T2
MULD19;    NZ;      MULD20;       SET T2, INC T2
MULD20;    *;       MULD21;       INC T3
MULD21;    *;       MULD16;       TDEC R8
MULD22;    Z;       MULD23;       DEC T2
MULD22;    NZ;      MULD22;       DEC T3
MULD23;    Z;       MULD13;       TDEC R9
MULD23;    NZ;      MULD23;       DEC T2
## Done computing the bottom-right entry of B (R5 * T2).

# Increase the amount of memory that we are allocating to the binary registers, by adding R2 to R0 (via the temporary register R8)
IT2;       ZZ;      IT3;          TDEC R2
IT3;       Z;       IT4;          TDEC R8
IT3;       NZ;      IT3;          INC R8, TDEC R2
IT4;       Z;       ITTEST;       NOP
IT4;       NZ;      IT4;          INC R0, INC R2, TDEC R8

## The next step is to extract the units digit from (10^R1)*T0/T2, as that will be
## the digit of pi that we want to print.
# Copy R1 to temporary register R9, with the help of temporary register R8
IT5;       Z;       IT6;          TDEC R8
IT5;       NZ;      IT5;          INC R8, TDEC R1
IT6;       Z;       IT7;          TDEC R0
IT6;       NZ;      IT6;          TDEC R8, INC R1, INC R9

# Copy T1 into T3 (without erasing T1), with the help of temporary registers R7, R8
IT7;       Z;       IT8;          TDEC R8
IT7;       NZ;      IT7;          TDEC R0, INC R8
IT8;       Z;       IT9;          TDEC R7
IT8;       NZ;      IT8;          INC R0, TDEC R8, INC R7
IT9;       Z;       IT14;         DEC T3
IT9;       NZ;      IT10;         READ T3
IT10;      *;       IT11;         READ T1
IT11;      Z;       IT12;         RESET T1, RESET T3, INC T3
IT11;      NZ;      IT12;         SET T1, SET T3, INC T3
IT12;      *;       IT13;         INC T1
IT13;      *;       IT9;          TDEC R7
IT14;      Z;       IT15;         DEC T1
IT14;      NZ;      IT14;         DEC T3
IT15;      Z;       CMP1;         TDEC R0
IT15;      NZ;      IT15;         DEC T1

# Now compare T2 with T3 to see which is bigger.
# This determines which of the two upcoming code blocks to send us to.
CMP1;      Z;       CMP2;         TDEC R8
CMP1;      NZ;      CMP1;         TDEC R0, INC R8
CMP2;      Z;       CMP3;         TDEC R7
CMP2;      NZ;      CMP2;         INC R0, TDEC R8, INC R7
CMP3;      Z;       CMP6;         READ T3
CMP3;      NZ;      CMP4;         INC T3
CMP4;      *;       CMP5;         INC T2
CMP5;      *;       CMP3;         TDEC R7
CMP6;      Z;       CMP7;         READ T2, RESET T3
CMP6;      NZ;      CMP10;        READ T2, SET T3
CMP7;      Z;       CMP8;         RESET T2, DEC T2
CMP7;      NZ;      CMP11;        SET T2, DEC T3
CMP8;      *;       CMP9;         DEC T3
CMP9;      Z;       CMP14;        DEC T2
CMP9;      NZ;      CMP6;         READ T3
CMP10;     Z;       CMP13;        RESET T2, DEC T3
CMP10;     NZ;      CMP8;         SET T2, DEC T2
CMP11;     Z;       CMP12;        DEC T2
CMP11;     NZ;      CMP11;        DEC T3
CMP12;     Z;       DIG1;         TDEC R9
CMP12;     NZ;      CMP12;        DEC T2
CMP13;     Z;       CMP14;        DEC T2
CMP13;     NZ;      CMP13;        DEC T3
CMP14;     Z;       SUB1;         TDEC R0
CMP14;     NZ;      CMP14;        DEC T2

# If T2 < T3 then subtract T2 from T3 (i.e., carry on with integer division).
SUB1;      Z;       SUB2;         TDEC R8
SUB1;      NZ;      SUB1;         TDEC R0, INC R8
SUB2;      Z;       SUB3;         TDEC R7
SUB2;      NZ;      SUB2;         INC R0, TDEC R8, INC R7
SUB3;      Z;       SUB9;         DEC T3
SUB3;      NZ;      SUB4;         READ T3
SUB4;      Z;       SUB5;         READ T2
SUB4;      NZ;      SUB5;         READ T2, SUB A1
SUB5;      Z;       SUB6;         RESET T2, SUB B0
SUB5;      NZ;      SUB6;         SET T2, SUB B1
SUB6;      Z;       SUB7;         RESET T3, INC T3
SUB6;      NZ;      SUB7;         SET T3, INC T3
SUB7;      *;       SUB8;         INC T2
SUB8;      *;       SUB3;         TDEC R7
SUB9;      Z;       SUB10;        DEC T2
SUB9;      NZ;      SUB9;         DEC T3
SUB10;     Z;       CMP1;         TDEC R0, INC R10
SUB10;     NZ;      SUB10;        DEC T2

# If T2 > T3 we cannot subtract anymore. Either multiply by T3 by 10 and reset R10, or jump ahead and print the digit that we have now computed.
DIG1;      Z;       OUT0;         TDEC R10
DIG1;      NZ;      DIG2;         TDEC R10
DIG2;      Z;       DIG3;         TDEC R0
DIG2;      NZ;      DIG2;         TDEC R10
DIG3;      Z;       DIG4;         TDEC R8
DIG3;      NZ;      DIG3;         TDEC R0, INC R8
DIG4;      Z;       DIG5;         TDEC R7
DIG4;      NZ;      DIG4;         INC R0, TDEC R8, INC R7
DIG5;      Z;       DIG9;         DEC T3
DIG5;      NZ;      DIG6;         READ T3
DIG6;      Z;       DIG7;         MUL 0
DIG6;      NZ;      DIG7;         MUL 1
DIG7;      Z;       DIG8;         RESET T3, INC T3
DIG7;      NZ;      DIG8;         SET T3, INC T3
DIG8;      *;       DIG5;         TDEC R7
DIG9;      Z;       CMP1;         TDEC R0
DIG9;      NZ;      DIG9;         DEC T3
## Done extracting the next digit of pi.

# Print the current digit, which is stored in R10.
OUT0;      Z;       OUTDTEST;     NOP, OUTPUT 0
OUT0;      NZ;      OUT1;         TDEC R10
OUT1;      Z;       OUTDTEST;     NOP, OUTPUT 1
OUT1;      NZ;      OUT2;         TDEC R10
OUT2;      Z;       OUTDTEST;     NOP, OUTPUT 2
OUT2;      NZ;      OUT3;         TDEC R10
OUT3;      Z;       OUTDTEST;     NOP, OUTPUT 3
OUT3;      NZ;      OUT4;         TDEC R10
OUT4;      Z;       OUTDTEST;     NOP, OUTPUT 4
OUT4;      NZ;      OUT5;         TDEC R10
OUT5;      Z;       OUTDTEST;     NOP, OUTPUT 5
OUT5;      NZ;      OUT6;         TDEC R10
OUT6;      Z;       OUTDTEST;     NOP, OUTPUT 6
OUT6;      NZ;      OUT7;         TDEC R10
OUT7;      Z;       OUTDTEST;     NOP, OUTPUT 7
OUT7;      NZ;      OUT8;         TDEC R10
OUT8;      Z;       OUTDTEST;     NOP, OUTPUT 8
OUT8;      NZ;      OUTDTEST;     NOP, OUTPUT 9

# Check whether or not we just printed the very first digit (1). If so,
# print a decimal place. Either way, increase R1, which counts which
# decimal place we are currently at, and loop back to start the next
# digit calculation.
OUTDTEST;  ZZ;      OUTD;         TDEC R1
OUTD;      Z;       ITSTART;      NOP, INC R1, OUTPUT .
OUTD;      NZ;      OUTD2;        NOP, INC R1
OUTD2;     ZZ;      ITSTART;      NOP, INC R1

Post Reply