Ken Webb 2018-12-01T07:45:52Z
Become a Castaway in the Island Game.
To save the current game, drag the following code onto the Castaway's current location (the outer circle in the circles-within-circles view):
<SaveGrid implName="org.primordion.xholon.base.Behavior_gwtjs" outTarget="webpage" gridOwnerXPath="IslandSystem/Space" gridCellIncludeList="LandCell,CoastCell" nodeExcludeList="Fish,Cat"><![CDATA[ /** * Save the contents of a Xholon grid, such as in the Island game. * Paste or drag this entire file into any node. * Use RestoreGrid.js to restore a grid saved by this script. * outTarget: "outtab" "consolelog" "alert" "webpage" * gridOwnerXPath: "IslandSystem/Space" * gridCellIncludeList: "LandCell,CoastCell" * nodeExcludeList: "Fish,Cat" * * TODO * - */ var me, gridOwner, outstr, gridCellIncludeArr, nodeExcludeArr, gridContents, beh = { postConfigure: function() { me = this.cnode; me.remove(); outstr = ""; $wnd.xh.avatar()["systemAvatar"] = true; // mark the system Avatar gridCellIncludeArr = null; nodeExcludeArr = null; gridContents = ""; // each gridCell type and incognita status. ex: O C L o c l for Ocean Coast Land if (me.gridCellIncludeList) { gridCellIncludeArr = me.gridCellIncludeList.split(","); } if (me.nodeExcludeList) { nodeExcludeArr = me.nodeExcludeList.split(","); } if (!gridCellIncludeArr) { outstr += "The gridCellIncludeList must contain at least one name."; $wnd.console.log(outstr); return; } gridOwner = $wnd.xh.root().xpath(me.gridOwnerXPath); if (!gridOwner) { outstr += "The XPath expression " + me.gridOwnerXPath + " evaluates to null."; $wnd.console.log(outstr); return; } //$wnd.console.log("SaveGrid OK"); outstr += '<SavedGrid gridOwnerXPath="' + me.gridOwnerXPath + '" gridCellIncludeList="' + me.gridCellIncludeList + '" timestamp="' + Date.now() + '">\n\n'; var ypos = 0; var xpos = 0; var row = gridOwner.first(); while (row) { var cell = row.first(); while (cell) { this.saveCellContent(cell, xpos, ypos); cell = cell.next(); xpos++; } row = row.next(); ypos++; xpos = 0; gridContents += "\n"; } outstr += '<SavedGridContents><Attribute_String>\n'; outstr += gridContents; outstr += '</Attribute_String></SavedGridContents>\n\n'; outstr += '</SavedGrid>\n'; delete $wnd.xh.avatar()["systemAvatar"]; // unmark the system Avatar switch (me.outTarget) { case "outtab": me.print(outstr); break; case "alert": // only shows a small part of the text alert(outstr); break; case "webpage": var xhdiv = $doc.querySelector("body"); if (xhdiv) { var saveDiv = $doc.createElement("PRE"); xhdiv.appendChild(saveDiv); saveDiv.innerText = outstr; } break; case "consolelog": default: $wnd.console.log(outstr); break; } }, /** * <SavedCellContent xpos="11" ypos="22" gridCellType="LandCell"> */ saveCellContent: function(gridCell, xpos, ypos) { var gridCellClassName = gridCell.xhc().name(); if (gridCell.first() && (gridCellIncludeArr.indexOf(gridCellClassName) != -1)) { outstr += '<SavedCellContent xpos="' + xpos + '" ypos="' + ypos + '" gridCellType="' + gridCell.xhc().name() + '">\n'; var node = gridCell.first(); while (node) { if (nodeExcludeArr.indexOf(node.xhc().name()) == -1) { outstr += $wnd.xh.xport("Xml", node, "{}", false, true); outstr += '\n'; } node = node.next(); } outstr += '</SavedCellContent>\n\n'; } var gcChar = gridCellClassName.substring(0,1); if (gridCell["incognita"]) { gcChar = gcChar.toLowerCase(); } gridContents += gcChar; } } //# sourceURL=SaveGrid.js ]]></SaveGrid>
To restore a saved game, drag the following code onto the Castaway's current location:
<script>$wnd.alert("Sorry. Not yet fully implemented.");</script>
While waiting for Load Saved Game to become fully implemented, you might want to try out a zombie or two. A zombie can be dragged onto the Castaway's current location:
<?xml version="1.0" encoding="UTF-8"?> <!-- Zombie module. Creates a Zombie that will move in a grid. --> <XholonModule> <XholonMap> <Attribute_String roleName="ih"><![CDATA[ <_-.XholonClass> <Zombie superClass="Script"/> </_-.XholonClass> ]]></Attribute_String> <!-- Zombie color and behavior --> <Attribute_String roleName="cd"><![CDATA[ <xholonClassDetails> <Zombie xhType="XhtypePureActiveObject"> <Color>black</Color> <DefaultContent> var zombie, direction, timestep, beh = { postConfigure: function() { zombie = this.cnode; direction = Math.floor(Math.random() * 4); // a grid cell may ref 4 or 8 other cells if (zombie.parent().port(7)) { direction = Math.floor(Math.random() * 8); } timestep = $wnd.xh.param("TimeStep"); // Zombie should only move once per timestep $wnd.console.log(zombie.name() + " " + this.toString()); }, act: function() { var timestepNew = $wnd.xh.param("TimeStep"); if (timestepNew != timestep) { this.move(); timestep = timestepNew; } }, move: function() { var destination = zombie.parent().port(direction); if (destination) { destination.append(zombie.remove()); } }, toString: function() { return "direction:" + direction; } } //# sourceURL=Zombiebehavior.js </DefaultContent> </Zombie> </xholonClassDetails> ]]></Attribute_String> <Attribute_String roleName="csh"><![CDATA[ <_-.csh> <Zombie roleName="Bob"/> </_-.csh> ]]></Attribute_String> </XholonMap> </XholonModule>
To test out roughly how Restore Saved Game will work, drag the following code onto the Castaway's current location:
<RestoreContainer> <RestoreGrid implName="org.primordion.xholon.base.Behavior_gwtjs" removeExisting="true"><![CDATA[ /** * Restore the contents of a Xholon grid, such as from the Island game. * Paste or drag this entire file into any node. * This processes content saved by SaveGrid.js . */ var me, gridOwner, gridCellIncludeArr, beh = { postConfigure: function() { me = this.cnode; var sgNode = me.next(); // SavedGrid node if (sgNode) { gridCellIncludeArr = null; if (sgNode.gridCellIncludeList) { gridCellIncludeArr = sgNode.gridCellIncludeList.split(","); } gridOwner = $wnd.xh.root().xpath(sgNode.gridOwnerXPath); if (!gridOwner) { $wnd.console.log("The XPath expression " + sgNode.gridOwnerXPath + " evaluates to null."); return; } if (me.removeExisting == "true") { this.removeAllExistingCellContents(gridOwner); } var ynow = 0; // y position (row) right now while iterating thru the grid var xnow = 0; // x position (gridCell) right now while iterating thru the grid var row = gridOwner.first(); var cell = row.first(); var sccNode = sgNode.first(); // SavedCellContent node while (sccNode) { $wnd.console.log(sccNode.gridCellType + " " + sccNode.xpos + " " + sccNode.ypos); if (sccNode.ypos == ynow) { // remain on the same row while (sccNode.xpos > xnow) { cell = cell.next(); xnow++; } } else { // find a new row while (sccNode.ypos > ynow) { row = row.next(); ynow++; } cell = row.first(); xnow = 0; while (sccNode.xpos > xnow) { cell = cell.next(); xnow++; } } var node = sccNode.first(); while (node) { var nextNode = node.next(); if ((node.xhc().name() == "Avatar") && (node["systemAvatar"])) { var ava = $wnd.xh.avatar(); ava["energy"] = node["energy"]; var invNode = node.first(); while (invNode) { var nextInvNode = invNode.next(); ava.append(invNode.remove()); invNode = nextInvNode; } cell.append(ava.remove()); } cell.append(node.remove()); node = nextNode; } sccNode = sccNode.next(); if (sccNode.xhc().name() == "SavedGridContents") { this.restoreGridContents(sccNode); sccNode = sccNode.next(); } } me.parent().remove(); } }, restoreGridContents: function(sgcNode) { if (!sgcNode.first()) {return;} var sgcText = sgcNode.first().text(); $wnd.console.log(sgcText); var row = gridOwner.first(); var tindex = 0; while (row) { var cell = row.first(); while (cell) { var achar = sgcText.charAt(tindex); if (achar.toLowerCase() == achar) { cell["incognita"] = true; } else { cell["incognita"] = false; } tindex++; cell = cell.next(); } tindex++; // handle the "\n" row = row.next(); } }, removeAllExistingCellContents: function(gridOwner) { var row = gridOwner.first(); var cell = null; while (row) { cell = row.first(); while (cell) { if ((gridCellIncludeArr && gridCellIncludeArr.indexOf(cell.xhc().name()) != -1) || !gridCellIncludeArr) { var node = cell.first(); while (node) { var nextNode = node.next(); if ((node.xhc().name() == "Avatar") && (node == $wnd.xh.avatar())) { // retain this node } else { node.remove(); } node = nextNode; } } cell = cell.next(); } row = row.next(); } } } //# sourceURL=RestoreGrid.js ]]></RestoreGrid> <SavedGrid gridOwnerXPath="IslandSystem/Space" gridCellIncludeList="LandCell,CoastCell" timestamp="1541249234528"> <SavedCellContent xpos="91" ypos="5" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="93" ypos="6" gridCellType="CoastCell"> </SavedCellContent> <SavedCellContent xpos="82" ypos="7" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> <Avatar roleName="Castaway" speechOut="0" energy="92065" islandID="0" systemAvatar="true"> <FishingRod mass="3" energy="0"></FishingRod> <Fruit energy="10" mass="1"></Fruit> <JuicyBerry energy="10" mass="1"></JuicyBerry> <Stick energy="0" mass="1"></Stick> </Avatar> </SavedCellContent> <SavedCellContent xpos="90" ypos="7" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="91" ypos="7" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="86" ypos="8" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="87" ypos="9" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="85" ypos="12" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="83" ypos="13" gridCellType="LandCell"> <Spring mass="9999" energy="0"> <FreshWater maxClones="100" energy="0" mass="1"></FreshWater> </Spring> </SavedCellContent> <SavedCellContent xpos="32" ypos="14" gridCellType="CoastCell"> <TreasureChest mass="1000"> <Stick maxClones="1" energy="0" mass="1"></Stick> <Vine maxClones="1" energy="0" mass="1"></Vine> <Thorn maxClones="1" energy="0" mass="1"></Thorn> <CatTreat maxClones="10" energy="0" mass="1"></CatTreat> <Volleyball roleName="Wilson" maxClones="1" energy="0" mass="1"> <Annotation>https://en.wikipedia.org/wiki/Cast_Away</Annotation> </Volleyball> </TreasureChest> </SavedCellContent> <SavedCellContent xpos="91" ypos="14" gridCellType="LandCell"> <Spring mass="9999" energy="0"> <FreshWater maxClones="100" energy="0" mass="1"></FreshWater> </Spring> </SavedCellContent> <SavedCellContent xpos="92" ypos="14" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="89" ypos="15" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="21" ypos="16" gridCellType="CoastCell"> </SavedCellContent> <SavedCellContent xpos="22" ypos="16" gridCellType="CoastCell"> <TreasureChest mass="1000"> <Stick maxClones="1" energy="0" mass="1"></Stick> <Vine maxClones="1" energy="0" mass="1"></Vine> <Thorn maxClones="1" energy="0" mass="1"></Thorn> <CatTreat maxClones="10" energy="0" mass="1"></CatTreat> <Volleyball roleName="Wilson" maxClones="1" energy="0" mass="1"> <Annotation>https://en.wikipedia.org/wiki/Cast_Away</Annotation> </Volleyball> </TreasureChest> </SavedCellContent> <SavedCellContent xpos="23" ypos="16" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="96" ypos="16" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="96" ypos="17" gridCellType="LandCell"> <Spring mass="9999" energy="0"> <FreshWater maxClones="100" energy="0" mass="1"></FreshWater> </Spring> </SavedCellContent> <SavedCellContent xpos="85" ypos="18" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="26" ypos="20" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="9" energy="0" mass="1"></Thorn> <Vine maxClones="9" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="83" ypos="20" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="26" ypos="21" gridCellType="LandCell"> <Spring mass="9999" energy="0"> <FreshWater maxClones="100" energy="0" mass="1"></FreshWater> </Spring> </SavedCellContent> <SavedCellContent xpos="80" ypos="21" gridCellType="CoastCell"> </SavedCellContent> <SavedCellContent xpos="91" ypos="21" gridCellType="CoastCell"> <TreasureChest mass="1000"> <Stick maxClones="1" energy="0" mass="1"></Stick> <Vine maxClones="1" energy="0" mass="1"></Vine> <Thorn maxClones="1" energy="0" mass="1"></Thorn> <CatTreat maxClones="10" energy="0" mass="1"></CatTreat> <Volleyball roleName="Wilson" maxClones="1" energy="0" mass="1"> <Annotation>https://en.wikipedia.org/wiki/Cast_Away</Annotation> </Volleyball> </TreasureChest> </SavedCellContent> <SavedCellContent xpos="83" ypos="22" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="90" ypos="24" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="22" ypos="25" gridCellType="CoastCell"> </SavedCellContent> <SavedCellContent xpos="35" ypos="25" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="8" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="9" energy="10" mass="1"></JuicyBerry> <Stick maxClones="8" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="22" ypos="32" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="66" ypos="40" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="70" ypos="41" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="64" ypos="42" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="55" ypos="43" gridCellType="CoastCell"> </SavedCellContent> <SavedCellContent xpos="67" ypos="45" gridCellType="LandCell"> <Spring mass="9999" energy="0"> <FreshWater maxClones="100" energy="0" mass="1"></FreshWater> </Spring> </SavedCellContent> <SavedCellContent xpos="50" ypos="46" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="53" ypos="48" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="54" ypos="48" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="70" ypos="49" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="85" ypos="49" gridCellType="CoastCell"> </SavedCellContent> <SavedCellContent xpos="55" ypos="50" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="56" ypos="50" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="71" ypos="50" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="76" ypos="50" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="52" ypos="51" gridCellType="CoastCell"> <City roleName="Ottawa" mass="9999" energy="0"> <University roleName="Carleton" mass="9999" energy="0"> <Library mass="9999" energy="0"> <CoffeeShop roleName="Starbucks" mass="9999" energy="0"> <IslandControlCentre mass="9999" energy="0"> <SecretProjects> <Annotation>working on it</Annotation> <ElDorado></ElDorado> <TreeWanderer implName="org.primordion.xholon.script.TreeWanderer"></TreeWanderer> </SecretProjects> </IslandControlCentre> </CoffeeShop> <TreeWanderer implName="org.primordion.xholon.script.TreeWanderer"></TreeWanderer> <Avatar roleName="Troll" speechOut="0"> <Attribute_String>[Troll will repeatedly look for and take students from anywhere in the city, and will drop them in the IslandControlCentre]; wait 1; exit; take *treeWanderer; exit; wait 1; enter library; wait 1; enter *coffeeShop; wait 1; enter islandControlCentre; drop *treeWanderer; wait 1; exit; wait 1; </Attribute_String> </Avatar> </Library> <TreeWanderer implName="org.primordion.xholon.script.TreeWanderer"></TreeWanderer> <TreeWanderer implName="org.primordion.xholon.script.TreeWanderer"></TreeWanderer> </University> </City> </SavedCellContent> <SavedCellContent xpos="70" ypos="51" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="74" ypos="51" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="61" ypos="52" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="91" ypos="52" gridCellType="CoastCell"> <TreasureChest mass="1000"> <Stick maxClones="1" energy="0" mass="1"></Stick> <Vine maxClones="1" energy="0" mass="1"></Vine> <Thorn maxClones="1" energy="0" mass="1"></Thorn> <CatTreat maxClones="10" energy="0" mass="1"></CatTreat> <Volleyball roleName="Wilson" maxClones="1" energy="0" mass="1"> <Annotation>https://en.wikipedia.org/wiki/Cast_Away</Annotation> </Volleyball> </TreasureChest> </SavedCellContent> <SavedCellContent xpos="85" ypos="53" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="80" ypos="54" gridCellType="LandCell"> <Spring mass="9999" energy="0"> <FreshWater maxClones="100" energy="0" mass="1"></FreshWater> </Spring> </SavedCellContent> <SavedCellContent xpos="83" ypos="54" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="60" ypos="55" gridCellType="LandCell"> <Spring mass="9999" energy="0"> <FreshWater maxClones="100" energy="0" mass="1"></FreshWater> </Spring> </SavedCellContent> <SavedCellContent xpos="70" ypos="55" gridCellType="LandCell"> <Spring mass="9999" energy="0"> <FreshWater maxClones="100" energy="0" mass="1"></FreshWater> </Spring> </SavedCellContent> <SavedCellContent xpos="76" ypos="55" gridCellType="LandCell"> <Spring mass="9999" energy="0"> <FreshWater maxClones="100" energy="0" mass="1"></FreshWater> </Spring> </SavedCellContent> <SavedCellContent xpos="79" ypos="55" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="56" ypos="56" gridCellType="CoastCell"> </SavedCellContent> <SavedCellContent xpos="64" ypos="56" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="89" ypos="56" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="73" ypos="58" gridCellType="LandCell"> <GreenTree mass="9999" energy="0"> <Fruit maxClones="10" energy="10" mass="1"></Fruit> <JuicyBerry maxClones="10" energy="10" mass="1"></JuicyBerry> <Stick maxClones="10" energy="0" mass="1"></Stick> </GreenTree> </SavedCellContent> <SavedCellContent xpos="77" ypos="58" gridCellType="LandCell"> <Spring mass="9999" energy="0"> <FreshWater maxClones="100" energy="0" mass="1"></FreshWater> </Spring> </SavedCellContent> <SavedCellContent xpos="68" ypos="60" gridCellType="CoastCell"> </SavedCellContent> <SavedCellContent xpos="70" ypos="60" gridCellType="CoastCell"> </SavedCellContent> <SavedCellContent xpos="82" ypos="60" gridCellType="LandCell"> <RedTree mass="9999" energy="0"> <PricklyFruit maxClones="10" energy="10" mass="1"></PricklyFruit> <Thorn maxClones="10" energy="0" mass="1"></Thorn> <Vine maxClones="10" energy="0" mass="1"></Vine> </RedTree> </SavedCellContent> <SavedCellContent xpos="85" ypos="60" gridCellType="CoastCell"> <TreasureChest mass="1000"> <Stick maxClones="1" energy="0" mass="1"></Stick> <Vine maxClones="1" energy="0" mass="1"></Vine> <Thorn maxClones="1" energy="0" mass="1"></Thorn> <CatTreat maxClones="10" energy="0" mass="1"></CatTreat> <Volleyball roleName="Wilson" maxClones="1" energy="0" mass="1"> <Annotation>https://en.wikipedia.org/wiki/Cast_Away</Annotation> </Volleyball> </TreasureChest> </SavedCellContent> <SavedGridContents><Attribute_String> oOOOOOOooOOOOoooooooooooooooooOoooooooooooooooooooooooooooOOOoOOoOoOoOOOooooooooooooooooooooooooooooooOOOoOooOoOOOOoOOOo OoOOOOooOOOOoOoOoooooooooooooooOoooooooooooOooooooooooooooooooOOoooooOoOoooooooooooooooooOoooooooooooooOoOOooOoOOOoOOOOO OOOOOOooOOOOOOooOoooooooooooooooooooooooooOOOoOOooooooooooOoOooOOoooooOooooooooooooooooOoOoOooooOoOooOOooooOOoOOOoOOOOOO OOOoOOoOOOOOOOOOooooooooooooooooooooooooOooooooOoOooooooooOOoOoooooooOoOoooooooooOooooOooOoOOooooOOOooOoooOoOooooOOOOOOO OOOOOOOOOOOoOOOOOOOoooooooooooooooooooooOoooOoooOoooooooooOooOooooooooOOoooooooooCCCCCCCCCCCCoOooOoOOOoOOoooooooOooOOOOO ooooOOOOOOOOOOOOOoOooooooooooooooooooooOoooOOooooooooooooooooOoooooooOOoooooooooOCLLCLLLCCLLCoOOOOOoooOoooooOoooooooOOOO ooooOOOOOOOOOOOoooooooooooooooooooooOoOoooOoOOOooooooooooooOoooooooooOOOoooooooCCCCLLLLLLLLCCCCooOoooooOooooooooooOoOoOO OOOOOOoOoOoooOOooooOoooooooooooooooOoooooooOOoooooooooooooOoooooooooOOoooooooooCLLLLLLLLLLLLLLCoOoOoOOoOooooooooOoooooOO oOOooOoOOOoooOooooOooooooooooooooooooooooooOOooooooooooooOoOOOooooooOOOOOooOOooCLLLLLLLLLLLLLLCooOooOOOOooOOooooOOOooOOO OOoOOOOoOoOOOoOooOOoooooooooooooooOoOOoooOOOoOoooooooOoOooOooooooooOOOOoOoOoOooCCCCLLLLLLLLLCCCoOooooOOOooooOoooooooOooO oOoOOoOOOoOoOooOOOOOoooooooooooooooOoOooooooooooooooOooOooooOOooooooOOOOOOoOOOoOoCCCCCLLLLCCCooooooooOoooOOOoOoOOooooooO oOOoOOOOOOOOoOooOOooooooooooooooooOooooooooooOOooOooOOOoooOoOOOoooOoooooOOOOooooOCLLLLLLLLLCOooooooOoooOOoOoOoOOOOooooOO oOOoOOOooooOooOOOOOooooooooooooooooOOOOoOoOooooOOoOoOOOoooOOOOoOOooOOoOOOOOOoOooCCCLLLLLLLLCOOooooooooOOoOoOoooOOOoOoooo OOoOOOOOOoOOOOooOoOooOOOOOOOOoooooOooooOOOoOOooOoOOOOooooOoOOOOOOOOOOoooOOoOoOOOCLLLLLLLLLLCCCOOOOOOOOOOOoOooOooooOooooO OOOOOOOOoOOOOOOooOoooCCCCCCCCCCCCOoOOooOOOOOoOooooOoOooooooOoOoOOOoOoooOOOOooOoOCCLLLLLLLLLLLCCCCCCCCCoOoOOoOOOOooOoOooO OOOOOOOOoOOOOOoOooooOCLLCLLLCCLLCooOoOOOOoOoOOoOoOOoOOOoooOOOoooOOOoooOoOOOoOooOoCCCLLLLLLLLLLLLLLLLLCOOOOoOOOOOoOOOOOOO OoOOOOOOOOOOOoooooocCCCLLLLLLLLCCCCOoOoOOoOoOOOooOoOOOoooOOOoOooooOOooooOoOoOooOOOCLLLLLLLLLLLLLLLLCCCOOooOOOooOoOoooOoO OOoOOOOoOOOOOooooooCLLLLLLLLLLLLLLCoOoOoOOooOoooOOooOoOoOOOoOOOOooOOOOoooOOOoooooOCCCLLLLLLLLLLLLLCCOOOOOoOOOOOOOOoooooo oOOOOooOOOooOooooooCLLLLLLLLLLLLLLCoooOOoOoOoooooooooooOOoOOOOoOOOOOOOooooOooOooOOCLLLLLLLLLCCCCCCCOOOOOoOOOOoOOOOOooOOO oOOOoOOOOOOOoooOOooCCCCLLLLLLLLLCCCoOooOOOoOOoOOoOOoooooOOOOOOOOOOOOOoOooooOooOooCCCCCLLLLCCCOOOOOOOOOoOOoOOOOOOOOOooooo oOoooOOOOOooOOoOOooOOCCCCCLLLLCCCOOoOoOOOOooOoOoOOOoooOooOoooOOOoOOOoOOOOoOoooOOOCLLLLLLLLLLCOOoOoOOOOOooOOOOOOoOOooOOOo OooooOOOOoOOOOOoooooOCLLLLLLLLLCOOoooOooOooooooooOOoOoOOoooooOOOOOOOOOOOOOoOOoOCCCCLLLLLLLLCCCCoOOOoOOOOOoOoOOOOoOOoooOO oOoooOOOoOooooooooooCCCLLLLLLLLCOOooOOOOoOoooooooOOOoOOOOoOoOOOOOooooOOOOOoooOOCLLLLLLLLLLLLLLCooOOOoOOooOOOOOoOOOOoOoOO oooOoOOoOOOOoOOOOoooCLLLLLLLLLLCCCOOOOOOOOOOOoOOOoOOOOOOoOoOOoOoOOOOOOOOOOOOOOoCLLLLLLLLLLLLLLCoOOOoOooooooOOoooOoOOOoOO OooOOOOOOOOOOooOooOoCCLLLLLLLLLLLCCCCCCCCCoOoOooOOooOoOoOOOOOOOoOOoOOOOOOoOOOOOCCCCLLLLLLLLLCCCOOOooOoOoooOoooOoooOooooO oOOOooOOOooooOoOooooOCCCLLLLLLLLLLLLLLLLLCoooOoOOOOOOOoOOOOoOOOOOOOOOOOOOOOOOOoOOOCCCCLLLLCCCOOOOooooOoOOOOooOOooooooooo OOOOoOoOOOOOOoOooooooOCLLLLLLLLLLLLLLLLCCCooOoOoOOoOOOOOOOOOoOoOooOOOOOOOOOoOOOOoOOOOCCCCCCOOoOooOOOoooooOOOooooooooOoOO oOOOOOOoOoOooOoOooooooCCCLLLLLLLLLLLLLCCOOooOooOOoOOOOooOOOOOoOOOOOoOOOOOOOOooOOOOOOoOOOOOOOoOOOOoOOooOooOOoooooOooooOOo oOoOOOOOooooOOoOooooooCLLLLLLLLLCCCCCCCOOoOoooOooOoOOOOOOoOOOOoOoOOOOOOOOOoOOOoOoOoooooooOooooOOOOOOOOOOOOooOoOooooooooo OoOOoooOOooOOOOOoooooCCCCCLLLLCCCOoOOOOOoOooOoOooOoOOOOOOOOOOOOOoOOOoOOOOOOOOOoOOoOOoooooooooOOOOOoOOoOoOOOOOOooooooOooo oOoOooOooooOoOOoooooOCLLLLLLLLLLCoooOooooOoOoOOOoOoOooOOoOOOOoOOOOOOOOoOOoOooOOOoOooooooooOoOoOOOOOooOOOoOoooOOoOooooooO ooOoOooOoooooOOooooCCCCLLLLLLLLCCCCoOOOoOOOOoOOOOOoOOoOOOOOOOOOOOOOOOoOOOOOoOOOOOOOoOoooOOOOOOoOOOOoOoOOOOoOoOOooooooOOO oOOOOooOooooOOOOOOoCLLLLLLLLLLLLLLCoOoOOooOOOOOoOOOOOOOoOOOOOOOOOOoOOOOOoOOOOOOOOOOooooOoOOoOoOOOOOoOOOOOoooOoOoooOoOOoo OOOOOOOOOoOoOOOOoOoCLLLLLLLLLLLLLLCoooOoOOooOOOOOOOOOoOoOOOOoOOOOOOOoOOoOOOOOOOOOOOOOOOoOOoOOOOOOOoOOOOOOoooOOOooooooOOO OOOOOOOOOOOooooooooCCCCLLLLLLLLLCCCooOooOooOOoOOOOOOOOoOOOOOoOOOOOOOOooOOooOOOOOOOOOOOOOOOOoOOOOOOoOOOOOOOOoOoOOoOooOOoo oOOOOOOOOOOooooooOoOOOCCCCLLLLCCCOOOOOoOooOOOooOOOOOOOoOOOooOOOooOooooOOOOoOOOoOOOOOOOOOOOOOOOOOooOOOOOoOoOOOoOooooooOOo oOOOOOOOOOOoOooooooooooOoCCCCCCOOOoooooooOoOOoOoOOOOoOOOoOOooOOOoooOoOOOOOOoOOOOOOOOOOOOOOOOOOooOOOOooOOOOoOOOOOOOooOOOO OOOOoOOOOOoooOoOoooooooOooOOOOOOOOoooOoOOooooOOOOOoOOOOoooooOOOoooooooOoOOOOOOOOoOOoOooOOOOOOOoOOOoOooOoOOOOOooOOooOOooo OOOOOoOOoOoooooOoooOOoOOOOOoOOoOooooooooooooOOOoOOOoOoOooooOOOOOoOOOooOOOOOOOOOOOOOOoOOOOOOOOOoOOOOOOOOoOOOoOoooOoOOoooo ooOOOOoooOooooooooooooooooOOoOoOoooOoooOoooooOoooOOoooOOoooCCCCCOCCCOOCCCCCCCOOOOoooOOOOOOOOOoOoOOOOOoOOOOoOOOoOooOOoooo ooooOOoOOoOooooooooooooooooooOOOOoooOooooooooooOOoOooooOooCCLCLCCCLCCCCLCCLLCCoOoOOoOOOOOOOOOOooOooOOOOOOOOoOoOoOOOOoooO oOoOoOOOOOooooooooooooooooOooOOOOOoOOooOooooooooooOOoOoOocCCLLLLLLLLLLLLLLLLLCooOOOOOOOOOOOOOOOoOOOoOOOOOOOoooOOOoOooooo ooOOOOOOOOOooooOoOooooOoOOoooOOOOOOoOOOooOooooOOoOOOooOCCCLLLLLLLLLLLLLLLLLCCCoOOOOOOOOOoOOOOOOOOoOOOOOOooOOOoOOoooooooO oooOoOOoOooooooooOoooooooOOOOOoOOOoOoooooooooooOoOOOOOOCLLLLLLLLLLLLLLLLLCCCOOOOOoOOOOOOOOOOOOOOooOOOOOoOOoooOoOoooooooo ooOOOOOOOOoOooOooooooooooOOOOOooOoOOoOooooooooooOOOCCCCCCLLLLLLLLLLLLLLLLLLCCOOOOOOOOOOOOOOoOOOOOoOOOOoOOoooooOooooooOOo ooooooOoOOooooOoOoooooooooOOooOOoOoooOooooooOOooOCCCLLLLLLLLLLLLLLLLLLLLLLLLCCCOOOOOOoOOOOoOOoOOOOoOOOooOooOOOoOoOooOoOo oOooooOoOOOOoooooooooooooOOOOOOoooooooooooooooOooCLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCCCCCCCOOOOoOOOOOOOOoOOooOoooOoOoOooooooo oOooooooOOOOOoooooooooOoOOOOOoOOooOooooOOoOoOOoooCCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCCCOoOOOOOOOOOOooOoOoooooooooooooO ooooOooooOOoOOooooOoooooOoOOOOoooooooOoooooOOooooOCCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCooOoOOOOOOooooooOoooOooooOooooo ooOoooOoOoOooOoooooOooOOOOOOOOOoOooooOooooOooOOoooOCCCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCCCCCOOOOOOOOOoOoooOOOoooOoOoooooooo oOOooooOoooOoooooOoooooOOOOOOOoOooooOooooooooOoooooOCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCCOOOOOOOOOoOOOoOooooooooOOOoOOooooOo oooooOOooOOOOooooOooooooOOOOOOOOoOoooooooooOOoOoooooCCCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCCCOOOOOOOOOoooOoooOooooooOoOoooooO OoOooOOOoOOoOoOoOoooOOooOoOoOOOOoooooooooOoOooOoooooCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCCCCOOOOOOOOooooOoooOOooooooooOO oooOooooooOOOooOoooooooOoOOOOOOOOOoOOoooOOOoooooooooCCCCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCCCoooOOOooooOoooooOooooooOo oOOooooOoooooooOoooOoOoOOOOOOOoOoOooOooOoOOoooOoooooOOoCCCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCOOooOooooooOoOoOOoOOoOOoo oOOOoooOoOOOoooooOooOoOOOOOOOOoOOOoOOooOoOOooooOoooooooOCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCCoOOOOooOooooooooooooooOOo OOOoooooooOoOoOOOoooOoOOOOOoOoOOoOOOOoooOOOOOOoooOooooooCCCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCCOOOOOOOooooooooooOOOOooOOoO OOooOOooooooOOOOooooooOooooOooOOoooOOOOOOoOOooOoooooooooCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCCCoOoOOOOOOooooooooooooooooOoOO OOOOOOoooOooOoOOoooooOoOoooOooOOOoooOooOOoOoOOOOooooOoooCCCCCCCLLLLLLLLLLLLLLLLLLLLLCCCCOOOOoOOooOOoOOooooooooOooooooOoo oOOOOOooOoooOoOOooooOooOOOOOOOOooooooooooooOooOoooooooooooOOOCLLLLLLLLLLLLLLLLLLLLLLLCOOoOoOoOooooooOoOOOoOoOOooOOoOOooo oOoOOooooooooOoooooooOoOooOOOOOooooOOooOoooooOoOoooooooooooooCCCLLLCCCCCCCCCCCCLLLLCCCoooooooooooooooooOOoooOoOOOOoooOoo ooOOOOOoOOooOOoOooooOOoOOOoOOOooOooOoooooooooooooooooOooooooooocCCCCOOOOOOOOOOCCCCCCOOooooooooooooooooooooOooooOooooooOo OOOOOOoooooooooooooOOooOOoOooooooooOooooooOoOooOooooooooooooooooOOOoooooooooooOOOOOOooooooooooooOoooooooooOooooooooooooO OooOOoooooooOooOoOoOoooooOOoooooooOooooooooooooooOooooooooooooooooooooOoooooooOOoooooooooooooooooOOoOoOoooooOoooOOoooooo OoOOOooOooOoOOooOoOoOoooooOoooooooOOooOoooOooooooooooOooooOoooooooooooOooooooOoooooooooooooooooooOOooOOoOOOOOooooOOOOooo OooooooooOoOOoooOOOOoooOOOOOooooOooooooooOoooooooooooooooooooooooooooOOOoooooooooooooooooooooooooOOoOOOOOOOOOoooOooOOOOo OOOoooOOoooOOOOOOOOOoooOOOoOooooooooOooooooooooooooooOOoOOoooooooooOooOoOOoooOooooooooooooooooooOoOoOoOOOOOOOoOOoooOoOOo OoooooooooOOOOOOOOOOooOOOOooooooooooooooooooooOooOoooooOoooooooooooooooOOOoOooooooooooooooooooooOoOOoOOOOOOOOOOOooOOOooo OoooooooooOOOOoOoOOOOooOOOoooooooOoooooooOooOoooooOOoooooooooooooooooOOOOOoooooooooooooooooOooOoOOOOooOOOOOOOOOOOOOoOOOO OOoooooooOOOOOOOoooOOoOOoOOooOooooooooooooooooooooooooooOooOoOooooooOoooooooooooooooooooooOoOOOoOOOOOOOOOOOOOoOOOoOOOOOo OoooOooooOOoOOOOoOooOOoOOoooooooooooOooOooooooOooooOoooooooooooooooOoooooooooooooooooooOooOoOoOoOOOOOOOOOOOOOOOOOOoOOOOO OOOooooOoOOOOoOoooOOOOOOOooOoOoOoooooooooooOoooooOoooooooooooooOOoOOooooooooooooooooooooooooooOOOOOOOOOOOOOoOOOOoOOOOOOo OOOooOOOoOoOOOOoooOOOOOOOOOOooooooooooooooooooooooooooooooooooOOooooooooooooooooooooooooOOoooOOOOOOOoOOOOOOOOOOOOOOOOOOO oooOoOoOOoOOOOOoOoOOOOOOOOOOOooOooooooooooooooooooooooooooOooooOoooooooooooooooooooooooooooOoooOOoOOoOOOOOOOOOOoOOOOOOOO oOOOOOOOOOOOOoOOOOOOOOOOOOOOOOOOooooooooooOooooooooooooooooooOoOoooooooooooooooooooooooooooooooOOOoOoOOOOOOOOOooOOOOOOOO OOOOOOOOOOOOOOOoooOOoOOOOOOOOOoOooooooooooooooooooooooooooooooOOooooooooooooooooooooooooooooOooooooooOOOOOOOOoOOoOOoOOOO OOOOOOOoOOOOOOoOoOOoOOoOoOOOOOooOooooooooooooooooooooooooooooOoOoooooooooooooooooooooooooooooooooooooooOOOOOoOoOOOOooOOO oOOOOoOOOOOooOOooooOOOoooOOOOOOOooooooooooooooooooooooooooooooOooooooooooooooooooooooooooooooooooOoooooooooOooOOoOOooOOO OOOOOoOOOOooooOooooOOOooooOOooooooOoooooooooooooooooooooooooOOooooooooOoooooooooooooooooooooooOoooooOOoOOOOOoOOOOoOOOOOO oOOOOOOOOOOOoooOooooooooooOoooOOOOooooooooooooooooooooooooooOOooOOOOOOoOoooooooooooooooooooOooooooooOoOoOOooOoOoOOoOOooO </Attribute_String></SavedGridContents> </SavedGrid> </RestoreContainer>