module.exports = function() {
    console.log("Maintaining Structures... " + Game.getUsedCpu());

    var structures = Object.keys(Game.rooms).forEach(function (roomName) {
        Game.rooms[roomName].find(FIND_STRUCTURES, {
            filter: function (structure) {
                return (structure.my === true || structure.structureType === "STRUCTURE_ROAD");
            }
        });
    });

    var newCandidates = [],
        links = [],
        spawns = [];
    structures.forEach(function(structure) {
        if(structure.hits < (structure.hitsMax / 2)) {
            newCandidates.push(structure);
        }
        if(structure.structureType === STRUCTURE_LINK) {
            links.push(structure.id);
        }
    });

    Memory.repairList.forEach(function (id) {
        var structure = Game.getObjectById(id);

        if(!structure || structure.hits >= structure.hitsMax*0.75) {
            Memory.repairList.splice(Memory.repairList.indexOf(id), 1);
        }
    });

    Memory.linkList = links;
    Memory.spawnList = Game.spawns;

    newCandidates.forEach(function (structure) {
        if(Memory.repairList.indexOf(structure.id) === -1) {
            Memory.repairList.push(structure.id);
        }
    });
    console.log("Finished " + Game.getUsedCpu());
};

@@ -111,16 +111,24 @@
 ctures =
+ %5B%5D;%0A   
  Object.
@@ -182,16 +182,47 @@
         
+structures = structures.concat(
 Game.roo
@@ -378,17 +378,16 @@
 ype === 
-%22
 STRUCTUR
@@ -392,17 +392,16 @@
 URE_ROAD
-%22
 );%0A     
@@ -415,24 +415,25 @@
 %7D%0A        %7D)
+)
 ;%0A    %7D);%0A%0A 

Fix structure maintainer bug