diff --git a/src/endWeek/economics/neighborsDevelopment.js b/src/endWeek/economics/neighborsDevelopment.js
new file mode 100644
index 0000000000000000000000000000000000000000..82d7aab82d360e5adc156a37ba4a13921df10a68
--- /dev/null
+++ b/src/endWeek/economics/neighborsDevelopment.js
@@ -0,0 +1,2033 @@
+/**
+ * @returns {HTMLElement}
+ */
+App.EndWeek.neighborsDevelopment = function() {
+	const el = document.createElement("p");
+	let r = [];
+	let He, his, him, he;
+
+	V.averageProsperity = 0;
+	let _agentBonus = 0;
+	let _corpBonus;
+	let _error;
+	let _desc
+	for (V.i = 0; V.i < V.arcologies.length; V.i++) {
+		if (V.arcologies[V.i].prosperity < 10) {
+			V.arcologies[V.i].prosperity = 10;
+		}
+		V.averageProsperity += V.arcologies[V.i].prosperity;
+	}
+	V.averageProsperity = V.averageProsperity/V.arcologies.length;
+
+	if (V.corp.Incorporated === 1) {
+		_corpBonus = Math.trunc(1000 * Math.pow(App.Corporate.value, 0.1));
+	}
+
+	if (V.useTabs === 0) {
+		//__Arcologies in the Free City__
+	}
+
+	for (V.i = 0; V.i < V.arcologies.length; V.i++) {
+
+	//<br>
+	r.push(`'' ${V.arcologies[V.i].name}'', your `);
+	if (V.arcologies[V.i].direction === 0) {
+		r.push(`arcology`);
+	} else {
+		r.push(`neighbor to the ${V.arcologies[V.i].direction}`);
+	}
+		r.push(`,`);
+
+	/* PROSPERITY */
+
+	if (V.arcologies[V.i].direction !== 0) {
+		switch (V.arcologies[V.i].government) {
+		case "elected officials":
+			V.arcologies[V.i].prosperity += random(-1,1);
+		case "a corporation":
+		case "an oligarchy":
+			V.arcologies[V.i].prosperity += random(-1,2);
+		case "a committee":
+		case "your trustees":
+			V.arcologies[V.i].prosperity += random(0,2);
+		case "an individual":
+			V.arcologies[V.i].prosperity += random(0,3);
+		case "your agent":
+			_agentBonus = agentBonus(V.i);
+			V.arcologies[V.i].prosperity += random(0,3) + _agentBonus;
+		default:
+			V.arcologies[V.i].prosperity += random(-1,1);
+		}
+		V.arcologies[V.i].prosperity = Math.clamp(V.arcologies[V.i].prosperity, 1, 300);
+	}
+
+	if (V.arcologies[V.i].honeymoon > 0) {
+		V.arcologies[V.i].honeymoon -= 1;
+	}
+	let _agentIndex;
+	if (V.arcologies[V.i].government === "your agent") {
+		const _Agent = App.currentAgent(V.i);
+		({his, him, he} = getPronouns(_Agent));
+		r.push(`is being run by your agent <span class="deeppink">${SlaveFullName(_Agent)}.</span>`);
+		_agentIndex = V.slaveIndices[_Agent.ID];
+		if (_agentIndex && V.slaves[_agentIndex].assignment !== "be your agent") {
+			r.push(`<span class="red">BUG: ${V.slaves[_agentIndex].slaveName} also was ${V.slaves[_agentIndex].assignment}!</span>`);
+			assignJob(V.slaves[_agentIndex], "be your agent");
+		}
+		if (_agentBonus > 0) {
+			r.push(`<span class="green">${He} does an excellent job this week.</span>`);
+		}
+		r.push(`The arcology`);
+	} else if (V.arcologies[V.i].government === "your trustees") {
+		r.push(`is being run by <span class="mediumseagreen">your trustees.</span> The arcology`);
+	}
+
+	if (V.arcologies[V.i].direction === 0) {
+		_error = 5;
+	} else {
+		_error = 10;
+	}
+	_error -= Math.min(2*V.assistant.power, _error);
+	const _prosperity = (Math.trunc((0.1*V.arcologies[V.i].prosperity*random(100-_error,100+_error))/100));
+	r.push(`has an estimated GSP of <span class="yellowgreen">${cashFormat(_prosperity)}`);
+	if (V.showNumbers !== 2) {
+		if (V.showNumbers === 1 && _prosperity > V.showNumbersMax) {
+			r.push(`m`);
+		} else {
+			r.push(` million`);
+		}
+	} else {
+		r.push(`m`);
+	}
+	r.push(`,</span>`);
+
+	if (V.arcologies[V.i].rival === 1 && V.arcologies[V.i].government !== "an individual") {
+		r.push(`but it is undergoing some internal turmoil. <span class="red">Resentment that has been quietly building among the arcology's elite turns into open rebellion!</span>`);
+		if (V.arcologies[V.i].PCminority > 0) {
+			r.push(`<span class="red">Your ownership interest in ${V.arcologies[V.i].name} has been annulled!</span>`);
+			V.arcologies[V.i].PCminority = 0;
+		}
+		r.push(`<span class="yellow">After a brief power struggle, it undergoes a change of government.</span>`);
+		if (_agentIndex && _agentIndex !== -1) {
+			({his} = getPronouns(V.slaves[_agentIndex]));
+			r.push(`<span class="deeppink">${V.slaves[_agentIndex].slaveName}</span> manages to escape with the help of a few loyal citizens and returns to you <span class="gold">fearing your displeasure at ${his} failure.</span>`);
+			V.slaves[_agentIndex].trust -= 40;
+			assignJob(V.slaves[_agentIndex], "rest"); // this takes care of necessary cleanup for agent and agent companion (if any)
+		}
+		r.push(`A controlling interest has been taken by a single individual, leaving the arcology ruled like yours is.`);
+		V.arcologies[V.i].government = "an individual";
+		V.arcologies[V.i].ownership = random(51,61), V.arcologies[V.i].minority = 100 - V.arcologies[V.i].ownership - random(1,19), V.arcologies[V.i].honeymoon += 10;
+	} else if ((V.arcologies[V.i].government !== "your trustees") && (V.arcologies[V.i].government !== "your agent") && (V.arcologies[V.i].ownership < V.arcologies[V.i].PCminority) && (V.arcologies[V.i].direction !== 0) && (V.arcologies[V.i].rival !== 1)) {
+		r.push(`undergoing a leadership struggle in which you are deeply concerned, since you now own more of it than its current leadership.`);
+		if (random(0,10) < V.arcologies[V.i].PCminority - V.arcologies[V.i].ownership) {
+			r.push(`<span class="yellow">You successfully execute a hostile takeover and now control the arcology.</span> Trustees from among its leading citizens will exercise local control at your direction until you make other arrangements.`);
+			V.arcologies[V.i].honeymoon += 10;
+			V.arcologies[V.i].ownership = 0;
+			V.arcologies[V.i].government = "your trustees";
+		} else {
+			r.push(`The current leadership has not yet exhausted its legalistic recourses, and retains control for the moment, causing considerable disruption.`);
+			V.arcologies[V.i].prosperity -= 3;
+		}
+	} else if ((V.arcologies[V.i].ownership === 0) && (V.arcologies[V.i].PCminority > 0) && (V.arcologies[V.i].minority > V.arcologies[V.i].PCminority)) {
+		r.push(`undergoing a leadership struggle in which you are deeply concerned, since your ownership share has diminished to a dangerously low point.`);
+		if (random(0,10) < V.arcologies[V.i].minority - V.arcologies[V.i].PCminority) {
+			r.push(`<span class="yellow">It undergoes a change of government.</span>`);
+			V.arcologies[V.i].honeymoon += 10;
+			V.arcologies[V.i].ownership = V.arcologies[V.i].minority;
+			V.arcologies[V.i].minority = 0;
+			switch (V.arcologies[V.i].government) {
+			case "your trustees":
+				if (random(0,2) === 0) {
+					r.push(`Its leading citizens form a corporation to run the arcology more efficiently.`);
+					V.arcologies[V.i].government = "a corporation";
+				} else {
+					r.push(`A power struggle is won by a single individual, leaving the arcology ruled like yours is.`);
+					V.arcologies[V.i].government = "an individual";
+				}
+			default:
+				if (random(0,2) === 0) {
+					r.push(`The failed individual who led it is run out and replaced by direct democracy.`);
+					V.arcologies[V.i].government = "direct democracy";
+				} else {
+					r.push(`The failed individual who led it is bought out by a corporation.`);
+					V.arcologies[V.i].government = "a corporation";
+				}
+			}
+		} else {
+			r.push(`The arcology is paralyzed by dissension over how to respond.`);
+			V.arcologies[V.i].prosperity -= 3;
+		}
+	} else if ((V.arcologies[V.i].ownership !== 0) && ((V.arcologies[V.i].ownership < V.arcologies[V.i].minority) || (V.arcologies[V.i].ownership < 10)) && (V.arcologies[V.i].direction !== 0) && (V.arcologies[V.i].rival !== 1)) {
+		r.push(`undergoing a leadership struggle, since its current government owns less of it than its largest rival for control.`);
+		if (random(0,10) < V.arcologies[V.i].minority - V.arcologies[V.i].ownership) {
+			r.push(`<span class="yellow">It undergoes a change of government.</span>`);
+			V.arcologies[V.i].honeymoon += 10;
+			V.arcologies[V.i].ownership = V.arcologies[V.i].minority;
+			V.arcologies[V.i].minority = 0;
+			switch (V.arcologies[V.i].government) {
+			case "elected officials":
+				if (random(0,2) === 0) {
+					r.push(`Its elected officials surrender power to a small group of leading citizens.`);
+					V.arcologies[V.i].government = "an oligarchy";
+				} else {
+					r.push(`Its elected officials are forced to give way to a committee of public safety.`);
+					V.arcologies[V.i].government = "a committee";
+				}
+			case "a committee":
+				if (random(0,2) === 0) {
+					r.push(`Its ruling committee forms it into a corporation in the hope this will spur growth.`);
+					V.arcologies[V.i].government = "a corporation";
+				} else {
+					r.push(`A power struggle within its ruling committee leaves only a few leading citizens in power.`);
+					V.arcologies[V.i].government = "an oligarchy";
+				}
+			case "an oligarchy":
+				if (random(0,2) === 0) {
+					r.push(`Its leading citizens form a corporation to run the arcology more efficiently.`);
+					V.arcologies[V.i].government = "a corporation";
+				} else {
+					r.push(`A power struggle is won by a single individual, leaving the arcology ruled like yours is.`);
+					V.arcologies[V.i].government = "an individual";
+				}
+			case "an individual":
+				if (random(0,2) === 0) {
+					r.push(`The failed individual who led it is run out and replaced by direct democracy.`);
+					V.arcologies[V.i].government = "direct democracy";
+				} else {
+					r.push(`The failed individual who led it is bought out by a corporation.`);
+					V.arcologies[V.i].government = "a corporation";
+				}
+			case "a corporation":
+				if (random(0,2) === 0) {
+					r.push(`A power struggle within the corporation that runs it is won by a single person.`);
+					V.arcologies[V.i].government = "an individual";
+				} else {
+					r.push(`The corporation that runs it collapses and is replaced by an oligarchy of rich shareholders.`);
+					V.arcologies[V.i].government = "an oligarchy";
+				}
+			default:
+				r.push(`Its direct democracy votes to empower some elected officials in the hope they can lead the arcology out of its problems.`);
+				V.arcologies[V.i].government = "elected officials";
+			}
+			_desc = FutureSocieties.decay(V.i).map((fs) => FutureSocieties.displayName(fs));
+			if (_desc.length > 2) {
+				r.push(`Its citizens take the opportunity to make radical social changes, <span class="cyan">purging the `);
+	_desc.reduce((res, ch, i, arr) => res + (i === arr.length - 1 ? ' and ' : ', ') + ch)
+		r.push(`</span> favored by the old government.`);
+			} else if (_desc.length === 2) {
+				r.push(`Its citizens take the opportunity to make social changes, <span class="cyan">discarding the${  _desc[0]} and _desc[1]</span> favored by the old government.`);
+			} else if (_desc.length === 1) {
+				r.push(`Its citizens take the opportunity to make social change and <span class="cyan">abandon the${  _desc[0]}</span> favored by the old government.`);
+			}
+		} else {
+			r.push(`The arcology is paralyzed by internal dissension over how to respond.`);
+			V.arcologies[V.i].prosperity -= 3;
+		}
+	} else if (V.arcologies[V.i].prosperity >= 300) {
+		r.push(`at the maximum possible prosperity.`);
+	} else if (V.arcologies[V.i].prosperity > V.averageProsperity + 10) {
+		r.push(`much more prosperous than the rest of the Free City, limiting its economic development.`);
+		V.arcologies[V.i].prosperity -= 1;
+	} else if (V.arcologies[V.i].prosperity >= V.averageProsperity - 10) {
+		r.push(`about as prosperous as the rest of the Free City.`);
+	} else {
+		if (V.arcologies[V.i].honeymoon > 0) {
+			r.push(`far behind the rest of the Free City, making it a good investment and spurring its economic development. It remains in the <span class="lightgreen">honeymoon period</span> after its recent change of government, suppressing dissension and further encouraging growth.`);
+			V.arcologies[V.i].prosperity += 2;
+			if (V.arcologies[V.i].ownership !== 0 && V.arcologies[V.i].ownership < 40) {
+				V.arcologies[V.i].ownership += 1;
+			}
+		} else {
+			r.push(`not as prosperous as the rest of the Free City, spurring its economic development.`);
+			V.arcologies[V.i].prosperity += 1;
+		}
+	}
+
+	/* NATURAL CHANGES TO MINORITY SHARE */
+	if ((V.arcologies[V.i].government === "your agent") || (V.arcologies[V.i].government === "your trustees")) {
+		V.arcologies[V.i].ownership = 0;
+	}
+	const _owned = V.arcologies[V.i].minority+V.arcologies[V.i].ownership+V.arcologies[V.i].PCminority;
+	if (V.arcologies[V.i].minority < 10) {
+		V.arcologies[V.i].minority = 0;
+	} else if (V.arcologies[V.i].minority < V.arcologies[V.i].PCminority) {
+		V.arcologies[V.i].minority = 0;
+	} else if (_owned >= 95) {
+		V.arcologies[V.i].minority -= random(3,5);
+	} else if (V.arcologies[V.i].minority > (100 - _owned)*5) {
+		V.arcologies[V.i].minority -= random(3,5);
+	} else if (V.arcologies[V.i].minority < (100 - _owned)*4) {
+		if (V.arcologies[V.i].minority < 10) {
+			if (V.arcologies[V.i].ownership + V.arcologies[V.i].PCminority <= 90) {
+				V.arcologies[V.i].minority = 10;
+			}
+		} else {
+			if (V.arcologies[V.i].ownership + V.arcologies[V.i].PCminority <= 98) {
+				if (V.arcologies[V.i].prosperity < random(0,300)) {
+					V.arcologies[V.i].minority += random(0,2);
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].direction !== 0) {
+
+	/* AI ARCOLOGY SHARE BUYING AND SELLING */
+	const _economicUncertainty = App.Utils.economicUncertainty(V.i);
+	if (V.arcologies[V.i].government !== "your agent") {
+		if (V.arcologies[V.i].government !== "your trustees") {
+			if (V.arcologies[V.i].minority + V.arcologies[V.i].ownership + V.arcologies[V.i].PCminority < 100) {
+				_prosperityDiff = V.arcologies[V.i].prosperity-V.averageProsperity;
+				if (_prosperityDiff > random(-10,50)) {
+					r.push(`Its leadership acquires an increased share of its ownership.`);
+					V.arcologies[V.i].ownership += 1;
+					V.arcologies[V.i].prosperity -= 5;
+					r.push(`This places its government in control of approximately <span class="orange">${Math.trunc(V.arcologies[V.i].ownership*_economicUncertainty)}%</span> of the arcology`);
+	if (V.arcologies[V.i].minority > 0) {
+		r.push(`, against its most prominent competition with a <span class="tan">${Math.trunc(V.arcologies[V.i].minority*_economicUncertainty)}%</span> share`);
+	}
+		r.push(`.`);
+				} else if (_prosperityDiff < random(-50,10)) {
+					if (V.arcologies[V.i].ownership > 0) {
+						if (V.arcologies[V.i].rival !== 1 || (V.arcologies[V.i].rival === 1 && V.arcologies[V.i].ownership > 51 && random(1,2) === 1)) {
+							r.push(`Its leadership sells off some of its ownership to stay afloat.`);
+							V.arcologies[V.i].ownership -= 1;
+							V.arcologies[V.i].prosperity += 5;
+							r.push(`This leaves its government in control of approximately <span class="orange">${Math.trunc(V.arcologies[V.i].ownership*_economicUncertainty)}%</span> of the arcology`);
+	
+	if (V.arcologies[V.i].minority > 0) {
+		r.push(`, against its most prominent competition, with a <span class="tan">${Math.trunc(V.arcologies[V.i].minority*_economicUncertainty)}%</span> share`);
+	
+	}
+		r.push(`.`);
+						}
+					}
+				}
+				if (V.arcologies[V.i].minority+V.arcologies[V.i].ownership > 100) {
+					V.arcologies[V.i].minority = 100-V.arcologies[V.i].ownership;
+				}
+			} else {
+				if (((V.arcologies[V.i].ownership + V.arcologies[V.i].PCminority) >= 99) && V.arcologies[V.i].rival !== 1) {
+					V.arcologies[V.i].ownership = 98 - V.arcologies[V.i].PCminority;
+				} else {
+					V.arcologies[V.i].minority = Math.clamp(98 - V.arcologies[V.i].ownership - V.arcologies[V.i].PCminority, 0, 98);
+				}
+			}
+		}
+	}
+
+	/* AI ARCOLOGY RENTS TO PC */
+
+	if (V.arcologies[V.i].PCminority > 0) {
+		const _rents = (V.arcologies[V.i].prosperity*V.arcologies[V.i].PCminority*2)+random(1,100);
+		cashX(_rents, "rents");
+		r.push(`This week, you made <span class="yellowgreen">${cashFormat(_rents)}</span> from your holdings in this arcology.`);
+	}
+
+	/* CYBER ECONOMIC WARFARE */
+	if (V.arcologies[V.i].direction === V.arcologies[0].CyberEconomicTarget) {
+		let _Catchchance;
+		if (V.PC.skill.hacking === -100) {
+			_Catchchance = 10;
+		} else if (V.PC.skill.hacking <= -75) {
+			_Catchchance = 30;
+		} else if (V.PC.skill.hacking <= -50) {
+			_Catchchance = 40;
+		} else if (V.PC.skill.hacking <= -25) {
+			_Catchchance = 45;
+		} else if (V.PC.skill.hacking === 0) {
+			_Catchchance = 50;
+		} else if (V.PC.skill.hacking <= 25) {
+			_Catchchance = 60;
+		} else if (V.PC.skill.hacking <= 50) {
+			_Catchchance = 70;
+		} else if (V.PC.skill.hacking <= 75) {
+			_Catchchance = 85;
+		} else if (V.PC.skill.hacking >= 100) {
+			_Catchchance = 100;
+		}
+		const _weekModifier = Math.max(1, (100-(V.week*2)));
+		V.arcologies[V.i].prosperity -= V.arcologies[0].CyberEconomic*2;
+		const _WarSpoils = Math.ceil(10+Math.max(((100/_weekModifier)*V.arcologies[V.i].prosperity*V.arcologies[0].CyberEconomic),0));
+		V.arcologies[V.i].prosperity = Math.clamp(V.arcologies[V.i].prosperity, 1, V.AProsperityCap);
+		let _redHanded;
+		if (random(0,100) >= _Catchchance-(10*V.arcologies[0].CyberEconomic)) {
+			V.arcologies[0].prosperity -= V.arcologies[0].CyberEconomic*3;
+			let _redHanded = 1;
+			repX(forceNeg(random(100,200)), "war");
+			if (V.secExpEnabled > 0) {
+				V.SecExp.core.authority -= random(100,500)*V.arcologies[0].CyberEconomic, V.SecExp.core.crimeLow += random(10,25);
+			}
+			V.arcologies[0].prosperity = Math.clamp(V.arcologies[0].prosperity, 1, V.AProsperityCap);
+		}
+		r.push(`You target ${V.arcologies[V.i].name} for <span class="yellow">digital economic warfare,</span> successfully raiding its coffers for <span class="yellowgreen">${cashFormat(_WarSpoils)}</span> this week.`);
+		cashX(_WarSpoils, "war");
+		if (_redHanded === 1) {
+			r.push(`A successful trace back to your arcology has exposed your actions, <span class="red">damaging your reputation</span> and <span class="red">scaring away potential investors.</span>`);
+			if (V.secExpEnabled > 0) {
+				r.push(`To add insult to injury, <span class="red">your authority has been weakened</span> and your actions have painted your arcology as a <span class="red">haven for crime.</span>`);
+			}
+		}
+	} else if (V.arcologies[V.i].direction === V.arcologies[0].CyberReputationTarget) {
+		/* REPUTATION WARFARE */
+		let _Catchchance;
+		if (V.PC.skill.hacking === -100) {
+			_Catchchance = 10;
+		} else if (V.PC.skill.hacking <= -75) {
+			_Catchchance = 30;
+		} else if (V.PC.skill.hacking <= -50) {
+			_Catchchance = 40;
+		} else if (V.PC.skill.hacking <= -25) {
+			_Catchchance = 45;
+		} else if (V.PC.skill.hacking === 0) {
+			_Catchchance = 50;
+		} else if (V.PC.skill.hacking <= 25) {
+			_Catchchance = 60;
+		} else if (V.PC.skill.hacking <= 50) {
+			_Catchchance = 70;
+		} else if (V.PC.skill.hacking <= 75) {
+			_Catchchance = 85;
+		} else if (V.PC.skill.hacking >= 100) {
+			_Catchchance = 100;
+		}
+		V.arcologies[V.i].prosperity -= V.arcologies[0].CyberReputation;
+		if (V.arcologies[V.i].rival !== 1) {
+			V.arcologies[V.i].ownership -= V.arcologies[0].CyberReputation;
+		}
+		V.arcologies[V.i].prosperity = Math.clamp(V.arcologies[V.i].prosperity, 1, 300);
+		V.arcologies[V.i].ownership = Math.clamp(V.arcologies[V.i].ownership, 0, 100);
+		let _redHanded;
+		if (random(0,100) >= _Catchchance-(10*V.arcologies[0].CyberReputation)) {
+			V.arcologies[0].prosperity -= V.arcologies[0].CyberReputation*3;
+			_redHanded = 1;
+			repX(forceNeg(random(100,200)), "war");
+			if (V.secExpEnabled > 0) {
+				V.SecExp.core.authority -= random(100,500)*V.arcologies[0].CyberReputation, V.SecExp.core.crimeLow += random(10,25);
+			}
+			V.arcologies[0].prosperity = Math.clamp(V.arcologies[0].prosperity, 1, 300);
+		}
+		r.push(`You target ${V.arcologies[V.i].name}'s leadership for <span class="yellow">character assassination</span> in an attempt to destabilize the arcology.`);
+		if (_redHanded === 1) {
+			r.push(`A successful trace back to your arcology has exposed your actions, <span class="red">damaging your reputation</span> and <span class="red">scaring away potential investors.</span>`);
+			if (V.secExpEnabled > 0) {
+				r.push(`To add insult to injury, <span class="red">your authority has been weakened</span> and your actions have painted your arcology as a <span class="red">haven for crime.</span>`);
+			}
+		}
+	}
+
+
+	/* AI ARCOLOGY RENAMING */
+	for (V.j = 0; V.j < V.arcologies.length; V.j++) {
+		if (V.arcologies[V.i].direction !== V.arcologies[V.j].direction) {
+			if (V.arcologies[V.i].name === V.arcologies[V.j].name) {
+				V.arcologies[V.i].name = "Arcology X-"+(V.i < 4 ? V.i : V.i + 1);
+				/* X-4 is reserved for player's arcology, so X-1 is available */
+				r.push(`It resumes its original name, '' ${V.arcologies[V.i].name}'', since the arcology to the V.arcologies[V.i].direction of yours is also named V.arcologies[V.j].name.`);
+				break;
+			}
+		}
+	}
+
+	}
+
+	/* ECONOMIC WARFARE */
+
+	for (V.j = 0; V.j < V.arcologies.length; V.j++) {
+		if (V.arcologies[V.i].direction === V.arcologies[V.j].embargoTarget) {
+			V.arcologies[V.i].prosperity -= V.arcologies[V.j].embargo*2;
+			if (V.arcologies[V.j].direction !== 0) {
+				V.arcologies[V.j].prosperity -= V.arcologies[V.j].embargo*2;
+			}
+			V.arcologies[V.i].prosperity = Math.clamp(V.arcologies[V.i].prosperity, 1, 300);
+			r.push(`${V.arcologies[V.j].name} targets V.arcologies[V.i].name for <span class="red">economic warfare.</span>`);
+		}
+	}
+
+	/* FUTURE SOCIETY PROGRESS */
+
+	const _societiesAdopted = FutureSocieties.activeCount(V.i);
+	let _efficiency;
+	switch (V.arcologies[V.i].government) {
+	case "elected officials":
+		_efficiency = random(-2,2);
+	case "a committee":
+		_efficiency = random(-1,2);
+	case "an oligarchy":
+	case "your trustees":
+		_efficiency = random(-1,3);
+	case "an individual":
+		_efficiency = random(-1,5);
+	case "your agent":
+		_efficiency = _agentBonus + random(-1,1);
+	case "a corporation":
+		_efficiency = random(1,2);
+	default:
+		_efficiency = random(-3,3);
+	}
+
+	if (V.arcologies[V.i].rival === 1) {
+		_efficiency += random(0,2);
+	}
+
+	if (V.arcologies[V.i].direction !== 0) {
+		FutureSocieties.applyBroadProgress(V.i, _efficiency);
+	}
+	const _passive = new App.Neighbor.PassiveFSInfluence(V.i);
+	if (V.arcologies[V.i].FSSupremacist !== "unset") {
+		r.push(`${_passive.output("FSSupremacist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSSupremacist >= V.FSLockinLevel) {
+				if ((V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0)) {
+					r.push(`Racial Supremacy for ${V.arcologies[V.i].FSSupremacistRace} people has reached stability and acceptance there. The arcology has been renamed`);
+					switch (V.arcologies[V.i].FSSupremacistRace) {
+					case "white":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistWhite);
+					case "asian":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistAsian);
+					case "latina":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistLatina);
+					case "middle eastern":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistMiddleEastern);
+					case "black":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistBlack);
+					case "indo-aryan":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistIndoAryan);
+					case "pacific islander":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistPacificIslander);
+					case "malay":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistMalay);
+					case "amerindian":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistAmerindian);
+					case "southern european":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistSouthernEuropean);
+					case "semitic":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistSemitic);
+					default:
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSupremacistMixedRace);
+					}
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSSupremacist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on V.arcologies[V.i].FSSupremacistRace Supremacy.`);
+				V.arcologies[V.i].FSSupremacist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSSupremacist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (!V.corp.SpecRaces.includes(V.arcologies[V.i].FSSupremacistRace)) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's racially inferior slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSSupremacist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSSubjugationist !== "unset") {
+		r.push(`${_passive.output("FSSubjugationist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSSubjugationist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Racial Subjugationism of ${V.arcologies[V.i].FSSubjugationistRace} people has reached stability and acceptance there. The arcology has been renamed`);
+					switch (V.arcologies[V.i].FSSubjugationistRace) {
+					case "white":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistWhite);
+					case "asian":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistAsian);
+					case "latina":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistLatina);
+					case "middle eastern":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistMiddleEastern);
+					case "black":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistBlack);
+					case "indo-aryan":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistIndoAryan);
+					case "pacific islander":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistPacificIslander);
+					case "malay":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistMalay);
+					case "amerindian":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistAmerindian);
+					case "southern european":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistSouthernEuropean);
+					case "semitic":
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistSemitic);
+					default:
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSubjugationistMixedRace);
+					}
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSSubjugationist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on V.arcologies[V.i].FSSubjugationistRace Subjugationism.`);
+				V.arcologies[V.i].FSSubjugationist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSSubjugationist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecRaces.includes(V.arcologies[V.i].FSSubjugationistRace)) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's ${V.arcologies[V.i].FSSubjugationistRace} slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSSubjugationist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSRepopulationFocus !== "unset") {
+		r.push(`${_passive.output("FSRepopulationFocus")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSRepopulationFocus >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Repopulationism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesRepopulationist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSRepopulationFocus < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Repopulationism.`);
+				V.arcologies[V.i].FSRepopulationFocus = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSRepopulationFocus !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecMilk > 0) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's milky cows, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSRepopulationFocus += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SpecAge === 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's youthful captures, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSRepopulationFocus += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SpecInjection === 5) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's milky cows, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSRepopulationFocus += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSRestart !== "unset") {
+		r.push(`${_passive.output("FSRestart")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSRestart >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					V.arcologies[V.i].FSRestartResearch = 1;
+					r.push(`Eugenics has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesEugenics);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSRestart < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Eugenics.`);
+				V.arcologies[V.i].FSRestart = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSRestart !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecBalls === -1) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's neutered slavegirls, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSRestart += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				} else if (V.corp.SpecSexEd === 2) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's well trained toys, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSRestart += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SpecIntelligence === 3) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's smarter captures, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSRestart += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSGenderRadicalist !== "unset") {
+		r.push(`${_passive.output("FSGenderRadicalist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSGenderRadicalist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					V.arcologies[V.i].FSGenderRadicalistResearch = 1;
+					r.push(`Gender Radicalism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesGenderRadicalist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSGenderRadicalist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Gender Radicalism.`);
+				V.arcologies[V.i].FSGenderRadicalist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSGenderRadicalist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecHormones > 0) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's hormonally treated slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSGenderRadicalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+				if (V.corp.SpecPussy === 1 && V.corp.SpecDick === 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's beautiful futanari, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSGenderRadicalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SpecBalls === -1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's clipped buttsluts, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSGenderRadicalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+				if (V.corp.SpecGender === 2) || (V.seeDicks === 100) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's feminized slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSGenderRadicalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSGenderFundamentalist !== "unset") {
+		r.push(`${_passive.output("FSGenderFundamentalist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSGenderFundamentalist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Gender Fundamentalism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesGenderFundamentalist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSGenderFundamentalist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Gender Fundamentalism.`);
+				V.arcologies[V.i].FSGenderFundamentalist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSGenderFundamentalist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecGender === 1) || (V.seeDicks === 0) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's enslaved females, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSGenderFundamentalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSPaternalist !== "unset") {
+		r.push(`${_passive.output("FSPaternalist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSPaternalist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Paternalism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesPaternalist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSPaternalist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Paternalism.`);
+				V.arcologies[V.i].FSPaternalist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSPaternalist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecTrust > 3) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's well-treated companions, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSPaternalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+				if (V.corp.SpecCosmetics === 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's meticulously beautified ladies, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSPaternalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SpecEducation > 0) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's educated ladies, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSPaternalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSDegradationist !== "unset") {
+		r.push(`${_passive.output("FSDegradationist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSDegradationist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Degradationism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesDegradationist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSDegradationist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Degradationism.`);
+				V.arcologies[V.i].FSDegradationist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSDegradationist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecTrust < 3) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's thoroughly terrified slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSDegradationist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+				if (V.corp.SpecIntelligence === 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's idiotic sluts, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSDegradationist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SpecAmputee === 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's human sex toys, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSDegradationist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSIntellectualDependency !== "unset") {
+		r.push(`${_passive.output("FSIntellectualDependency")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSIntellectualDependency >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Intellectual Dependency has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesIntellectualDependency);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSIntellectualDependency < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Intellectual Dependency.`);
+				V.arcologies[V.i].FSIntellectualDependency = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSIntellectualDependency !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecIntelligence === 1) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's idiotic sluts, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSIntellectualDependency += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				} else if (V.corp.SpecEducation === 0) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's uneducated slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSIntellectualDependency += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSSlaveProfessionalism !== "unset") {
+		r.push(`${_passive.output("FSSlaveProfessionalism")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSSlaveProfessionalism >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					V.arcologies[V.i].FSSlaveProfessionalismResearch = 1;
+					r.push(`Slave Professionalism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSlaveProfessionalism);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSSlaveProfessionalism < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Slave Professionalism.`);
+				V.arcologies[V.i].FSSlaveProfessionalism = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSSlaveProfessionalism !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecIntelligence === 3) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's smarter captures, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSSlaveProfessionalism += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				}
+				if (V.corp.SpecEducation > 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's well educated ladies, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSSlaveProfessionalism += 2;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SpecEducation > 0) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's educated ladies, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSSlaveProfessionalism += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+				if (V.corp.SpecSexEd === 2) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's well trained toys, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSSlaveProfessionalism += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SpecAccent === 2) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's linguistically perfect slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSSlaveProfessionalism += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSBodyPurist !== "unset") {
+		r.push(`${_passive.output("FSBodyPurist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSBodyPurist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Body Purism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesBodyPurist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSBodyPurist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Body Purism.`);
+				V.arcologies[V.i].FSBodyPurist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSBodyPurist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecImplants === 0) {
+					if (V.corp.SpecAmputee !== 1) {
+						r.push(`It's a <span class="lightgreen">good market</span> for your corporation's implant-free slaves, improving sales and helping social progress.`);
+						V.arcologies[V.i].FSBodyPurist += 1;
+						App.Corporate.earnRevenue(_corpBonus, 'foreign');
+					}
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSTransformationFetishist !== "unset") {
+		r.push(`${_passive.output("FSTransformationFetishist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSTransformationFetishist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					V.arcologies[V.i].FSTransformationFetishistResearch = 1;
+					r.push(`Transformation Fetishism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesTransformationFetishist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSTransformationFetishist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Transformation Fetishism.`);
+				V.arcologies[V.i].FSTransformationFetishist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSTransformationFetishist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecImplants === 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's implanted slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSTransformationFetishist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SpecImplants === 2) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's absurdly implanted slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSTransformationFetishist += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSYouthPreferentialist !== "unset") {
+		r.push(`${_passive.output("FSYouthPreferentialist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSYouthPreferentialist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Youth Preferentialism has reached stability and acceptance there. The arcology has been renamed`);
+					if (V.pedo_mode === 1 || V.minimumSlaveAge < 6) {
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesYouthPreferentialistLow);
+					} else if (V.minimumSlaveAge < 14) {
+						V.arcologies[V.i].name = either(setup.ArcologyNamesYouthPreferentialist, setup.ArcologyNamesYouthPreferentialistLow);
+					} else {
+						V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesYouthPreferentialist);
+					}
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+					V.arcologies[V.i].FSYouthPreferentialistResearch = 1;
+				}
+			} else if (V.arcologies[V.i].FSYouthPreferentialist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Youth Preferentialism.`);
+				V.arcologies[V.i].FSYouthPreferentialist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSYouthPreferentialist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecAge === 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's young slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSYouthPreferentialist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSMaturityPreferentialist !== "unset") {
+		r.push(`${_passive.output("FSMaturityPreferentialist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSMaturityPreferentialist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Maturity Preferentialism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesMaturityPreferentialist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSMaturityPreferentialist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Maturity Preferentialism.`);
+				V.arcologies[V.i].FSMaturityPreferentialist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSMaturityPreferentialist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecAge === 3) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's enslaved MILFs, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSMaturityPreferentialist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSPetiteAdmiration !== "unset") {
+		r.push(`${_passive.output("FSPetiteAdmiration")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSPetiteAdmiration >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Petite Admiration has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesPetiteAdmiration);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSPetiteAdmiration < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Petite Admiration.`);
+				V.arcologies[V.i].FSPetiteAdmiration = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSPetiteAdmiration !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecHeight === 1) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's minuscule slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSPetiteAdmiration += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				} else if (V.corp.SpecHeight === 2) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's shorter captures, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSPetiteAdmiration += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSStatuesqueGlorification !== "unset") {
+		r.push(`${_passive.output("FSStatuesqueGlorification")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSStatuesqueGlorification >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Statuesque Glorification has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesStatuesqueGlorification);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSStatuesqueGlorification < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Statuesque Glorification.`);
+				V.arcologies[V.i].FSStatuesqueGlorification = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSStatuesqueGlorification !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecHeight === 5) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's gigantic slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSStatuesqueGlorification += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				} else if (V.corp.SpecHeight === 4) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's taller captures, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSStatuesqueGlorification += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSSlimnessEnthusiast !== "unset") {
+		r.push(`${_passive.output("FSSlimnessEnthusiast")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSSlimnessEnthusiast >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Slimness Enthusiasm has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesSlimnessEnthusiast);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+					V.arcologies[V.i].FSSlimnessEnthusiastResearch = 1;
+				}
+			} else if (V.arcologies[V.i].FSSlimnessEnthusiast < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Slimness Enthusiasm.`);
+				V.arcologies[V.i].FSSlimnessEnthusiast = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSSlimnessEnthusiast !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecInjection < 2) {
+					if (V.corp.SpecWeight < 3) {
+						r.push(`It's a <span class="lightgreen">good market</span> for your corporation's trim slaves, improving sales and helping social progress.`);
+						V.arcologies[V.i].FSSlimnessEnthusiast += 1;
+						App.Corporate.earnRevenue(_corpBonus, 'foreign');
+					}
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSAssetExpansionist !== "unset") {
+		r.push(`${_passive.output("FSAssetExpansionist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSAssetExpansionist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					V.arcologies[V.i].FSAssetExpansionistResearch = 1;
+					r.push(`Asset Expansionism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesAssetExpansionist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSAssetExpansionist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Asset Expansionism.`);
+				V.arcologies[V.i].FSAssetExpansionist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSAssetExpansionist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SPecInjection === 4) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's world-class tits and ass, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSAssetExpansionist += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				} else if (V.corp.SpecInjection === 5) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's hugely endowed cows, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSAssetExpansionist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SPecInjection === 3) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's stacked slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSAssetExpansionist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSPastoralist !== "unset") {
+		r.push(`${_passive.output("FSPastoralist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSPastoralist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Pastoralism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesPastoralist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSPastoralist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Pastoralism.`);
+				V.arcologies[V.i].FSPastoralist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSPastoralist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecInjection === 5) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's world-class milk producers, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSPastoralist += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				} else if (V.corp.SpecMilk > 0) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's world-class milk producers, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSPastoralist += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSCummunism !== "unset") {
+		r.push(`${_passive.output("FSCummunism")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSCummunism >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Cummunism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesCummunism);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSCummunism < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Cummunism.`);
+				V.arcologies[V.i].FSCummunism = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSCummunism !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecInjection === 5) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's world-class cum producers, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSCummunism += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				} else if (V.corp.SpecHormones === 2) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's masculinized slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSCummunism += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SpecDick === 1 && V.corp.SpecBalls === 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's slaves standard dicks and balls, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSCummunism += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSPhysicalIdealist !== "unset") {
+		r.push(`${_passive.output("FSPhysicalIdealist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSPhysicalIdealist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Physical Idealism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesPhysicalIdealist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSPhysicalIdealist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Physical Idealism.`);
+				V.arcologies[V.i].FSPhysicalIdealist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSPhysicalIdealist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecMuscle === 5 ) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's ripped chicks, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSPhysicalIdealist += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				} else if (V.corp.SpecMuscle === 4) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's toned ladies, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSPhysicalIdealist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				} else if (V.corp.SpecHeight > 3) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's tall ladies, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSPhysicalIdealist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSHedonisticDecadence !== "unset") {
+		r.push(`${_passive.output("FSHedonisticDecadence")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSHedonisticDecadence >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					V.arcologies[V.i].FSHedonisticDecadenceResearch = 1;
+					r.push(`Decadent Hedonism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesHedonisticDecadence);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSHedonisticDecadence < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Decadent Hedonism.`);
+				V.arcologies[V.i].FSHedonisticDecadence = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSHedonisticDecadence !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecTrust > 3) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's well kept, happy slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSHedonisticDecadence += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				} else if (V.corp.SpecSexEd === 2) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's skilled slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSHedonisticDecadence += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSIncestFetishist !== "unset") {
+		r.push(`${_passive.output("FSIncestFetishist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSIncestFetishist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Incest Fetishism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesIncestFetishist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSIncestFetishist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Incest Fetishism.`);
+				V.arcologies[V.i].FSIncestFetishist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSIncestFetishist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecAge === 3) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's motherly slaves, especially those that look like peoples mothers, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSIncestFetishist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSChattelReligionist !== "unset") {
+		r.push(`${_passive.output("FSChattelReligionist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSChattelReligionist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Chattel Religionism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesChattelReligionist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSChattelReligionist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Chattel Religionism.`);
+				V.arcologies[V.i].FSChattelReligionist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSChattelReligionist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecSexEd === 2) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's holy sex slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSChattelReligionist += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				} else if (V.corp.SpecSexEd === 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's aspiring sexual acolytes, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSChattelReligionist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+
+	if (V.arcologies[V.i].FSRomanRevivalist !== "unset") {
+		r.push(`${_passive.output("FSRomanRevivalist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSRomanRevivalist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Roman Revivalism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesRomanRevivalist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSRomanRevivalist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Roman Revivalism.`);
+				V.arcologies[V.i].FSRomanRevivalist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSRomanRevivalist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecEducation > 0) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's properly educated slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSRomanRevivalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+
+	} else if (V.arcologies[V.i].FSNeoImperialist !== "unset") {
+		r.push(`${_passive.output("FSNeoImperialist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSNeoImperialist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Neo-Imperialism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesNeoImperialist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSNeoImperialist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Neo-Imperialism.`);
+				V.arcologies[V.i].FSNeoImperialist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSNeoImperialist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecEducation > 0) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's properly educated slaves, improving sales and helping advocate for a hierarchical Imperial society.`);
+					V.arcologies[V.i].FSNeoImperialist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+
+	} else if (V.arcologies[V.i].FSAztecRevivalist !== "unset") {
+		r.push(`${_passive.output("FSAztecRevivalist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSAztecRevivalist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Aztec Revivalism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesAztecRevivalist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSAztecRevivalist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Aztec Revivalism.`);
+				V.arcologies[V.i].FSAztecRevivalist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSAztecRevivalist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecAccent === 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's lovely mix of slave accents, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSAztecRevivalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSEgyptianRevivalist !== "unset") {
+		r.push(`${_passive.output("FSEgyptianRevivalist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSEgyptianRevivalist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Egyptian Revivalism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesEgyptianRevivalist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSEgyptianRevivalist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Egyptian Revivalism.`);
+				V.arcologies[V.i].FSEgyptianRevivalist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSEgyptianRevivalist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecAccent === 1) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's lovely mix of slave accents, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSEgyptianRevivalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSEdoRevivalist !== "unset") {
+		r.push(`${_passive.output("FSEdoRevivalist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSEdoRevivalist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Edo Revivalism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesEdoRevivalist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSEdoRevivalist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Edo Revivalism.`);
+				V.arcologies[V.i].FSEdoRevivalist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSEdoRevivalist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecAccent === 2) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's linguistically perfect slaves, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSEdoRevivalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSArabianRevivalist !== "unset") {
+		r.push(`${_passive.output("FSArabianRevivalist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSArabianRevivalist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Arabian Revivalism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesArabianRevivalist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSArabianRevivalist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Arabian Revivalism.`);
+				V.arcologies[V.i].FSArabianRevivalist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSArabianRevivalist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecDevotion === 5) {
+					r.push(`It's an <span class="lightgreen">excellent market</span> for your corporation's harem-ready devotees, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSArabianRevivalist += 2;
+					App.Corporate.earnRevenue(_corpBonus*2, 'foreign');
+				} else if (V.corp.SpecDevotion === 4) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's properly broken girls, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSArabianRevivalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	} else if (V.arcologies[V.i].FSChineseRevivalist !== "unset") {
+		r.push(`${_passive.output("FSChineseRevivalist")}`);
+		if (V.arcologies[V.i].direction !== 0) {
+			if (V.arcologies[V.i].FSChineseRevivalist >= V.FSLockinLevel) {
+				if (V.arcologies[V.i].name.indexOf("Arcology") !== -1) && (random(0,2) === 0) {
+					r.push(`Chinese Revivalism has reached stability and acceptance there. The arcology has been renamed`);
+					V.arcologies[V.i].name = App.Neighbor.getUnusedName(setup.ArcologyNamesChineseRevivalist);
+					r.push(`'' ${V.arcologies[V.i].name}'' to mark the occasion.`);
+				}
+			} else if (V.arcologies[V.i].FSChineseRevivalist < 0) {
+				r.push(`${V.arcologies[V.i].name} <span class="cyan">has given up</span> on Chinese Revivalism.`);
+				V.arcologies[V.i].FSChineseRevivalist = "unset";
+			}
+		}
+		if (V.arcologies[V.i].FSChineseRevivalist !== "unset") {
+			if (V.corp.Incorporated === 1) {
+				if (V.corp.SpecIntelligence === 3) {
+					r.push(`It's a <span class="lightgreen">good market</span> for your corporation's intelligent Head Girl prospects, improving sales and helping social progress.`);
+					V.arcologies[V.i].FSChineseRevivalist += 1;
+					App.Corporate.earnRevenue(_corpBonus, 'foreign');
+				}
+			}
+		}
+	}
+	FutureSocieties.overflowToInfluence(V.i);
+
+	/* FUTURE SOCIETY ADOPTION */
+
+	if (V.arcologies[V.i].direction !== 0) {
+		if (_societiesAdopted < V.FSCreditCount) {
+			if (V.arcologies[V.i].rival === 1) || (_societiesAdopted < (V.arcologies[V.i].prosperity/25)+(V.week/25)-3) {
+
+			<<include "Neighbors FS Adoption">>
+
+			}
+		}
+	}
+		r.push(` /* CLOSES FUTURE SOCIETY ADOPTION */`);
+
+	/* INFLUENCE RECEPTION */
+
+	<<for V.j = 0; V.j < V.arcologies.length; V.j++>>
+	if (V.arcologies[V.j].direction !== V.arcologies[V.i].direction) {
+	if (V.arcologies[V.j].influenceTarget === V.arcologies[V.i].direction) {
+
+	V.arcologies[V.j].influenceBonus = Math.clamp(V.arcologies[V.j].influenceBonus, 0, V.FSLockinLevel);
+	_appliedInfluenceBonus = Math.trunc(V.arcologies[V.j].influenceBonus*0.1);
+	V.arcologies[V.j].influenceBonus -= _appliedInfluenceBonus*2;
+	if (V.policies.culturalOpenness === 1) {
+		if (V.arcologies[V.i].direction === 0) || (V.arcologies[V.j].direction === 0) {
+			_appliedInfluenceBonus *= 2;
+		}
+	} else if (V.policies.culturalOpenness === -1) {
+		if (V.arcologies[V.i].direction === 0) || (V.arcologies[V.j].direction === 0) {
+			_appliedInfluenceBonus /= 2;
+		}
+	}
+	if (V.arcologies[V.i].ownership >= 100) {
+		_appliedInfluenceBonus /= 2;
+	}
+	V.desc = [];
+	_alignment = 0;
+
+	if (V.arcologies[V.j].FSSubjugationist > 60) {
+		if (V.arcologies[V.i].FSSubjugationist !== "unset") {
+			if (V.arcologies[V.j].FSSubjugationistRace === V.arcologies[V.i].FSSubjugationistRace) {
+				V.arcologies[V.i].FSSubjugationist += Math.trunc((V.arcologies[V.j].FSSubjugationist-60)/4)+_appliedInfluenceBonus;
+				if (V.arcologies[V.i].FSSubjugationist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+				V.desc.push("helping to advance its racially aligned Subjugationism");
+			} else {
+				V.arcologies[V.i].FSSubjugationist -= Math.trunc((V.arcologies[V.j].FSSubjugationist-60)/4)+_appliedInfluenceBonus;
+				V.desc.push("attacking its incompatible Subjugationism");
+			}
+		} else if ((V.arcologies[V.i].FSSupremacist !== "unset") && (V.arcologies[V.j].FSSubjugationistRace === V.arcologies[V.i].FSSupremacistRace)) {
+			V.arcologies[V.i].FSSupremacist -= Math.trunc((V.arcologies[V.j].FSSubjugationist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its opposing Supremacism");
+		}
+	}
+	if (V.arcologies[V.j].FSSupremacist > 60) {
+		if (V.arcologies[V.i].FSSupremacist !== "unset") {
+			if (V.arcologies[V.j].FSSupremacistRace === V.arcologies[V.i].FSSupremacistRace) {
+				V.arcologies[V.i].FSSupremacist += Math.trunc((V.arcologies[V.j].FSSupremacist-60)/4)+_appliedInfluenceBonus;
+				if (V.arcologies[V.i].FSSupremacist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+				V.desc.push("helping to advance its racially aligned Supremacism");
+			} else {
+				V.arcologies[V.i].FSSupremacist -= Math.trunc((V.arcologies[V.j].FSSupremacist-60)/4)+_appliedInfluenceBonus;
+				V.desc.push("attacking its incompatible Supremacism");
+			}
+		} else if ((V.arcologies[V.i].FSSubjugationist !== "unset") && (V.arcologies[V.j].FSSupremacistRace === V.arcologies[V.i].FSSubjugationistRace)) {
+			V.arcologies[V.i].FSSubjugationist -= Math.trunc((V.arcologies[V.j].FSSupremacist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its opposing Subjugationism");
+		}
+	}
+	if (V.arcologies[V.j].FSRepopulationFocus > 60) {
+		if (V.arcologies[V.i].FSRepopulationFocus !== "unset") {
+			V.arcologies[V.i].FSRepopulationFocus += Math.trunc((V.arcologies[V.j].FSRepopulationFocus-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSRepopulationFocus > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Repopulationism");
+		} else if (V.arcologies[V.i].FSRestart !== "unset") {
+			V.arcologies[V.i].FSRestart -= Math.trunc((V.arcologies[V.j].FSRepopulationFocus-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Eugenics");
+		}
+	} else if (V.arcologies[V.j].FSRestart > 60) {
+		if (V.arcologies[V.i].FSRestart !== "unset") {
+			V.arcologies[V.i].FSRestart += Math.trunc((V.arcologies[V.j].FSRestart-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSRestart > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Eugenics");
+		} else if (V.arcologies[V.i].FSRepopulationFocus !== "unset") {
+			V.arcologies[V.i].FSRepopulationFocus -= Math.trunc((V.arcologies[V.j].FSRestart-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Repopulation Efforts");
+		}
+	}
+	if (V.arcologies[V.j].FSGenderRadicalist > 60) {
+		if (V.arcologies[V.i].FSGenderRadicalist !== "unset") {
+			V.arcologies[V.i].FSGenderRadicalist += Math.trunc((V.arcologies[V.j].FSGenderRadicalist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSGenderRadicalist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Gender Radicalism");
+		} else if (V.arcologies[V.i].FSGenderFundamentalist !== "unset") {
+			V.arcologies[V.i].FSGenderFundamentalist -= Math.trunc((V.arcologies[V.j].FSGenderRadicalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Gender Fundamentalism");
+		}
+	} else if (V.arcologies[V.j].FSGenderFundamentalist > 60) {
+		if (V.arcologies[V.i].FSGenderFundamentalist !== "unset") {
+			V.arcologies[V.i].FSGenderFundamentalist += Math.trunc((V.arcologies[V.j].FSGenderFundamentalist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSGenderFundamentalist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Gender Fundamentalism");
+		} else if (V.arcologies[V.i].FSGenderRadicalist !== "unset") {
+			V.arcologies[V.i].FSGenderRadicalist -= Math.trunc((V.arcologies[V.j].FSGenderFundamentalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Gender Radicalism");
+		}
+	}
+	if (V.arcologies[V.j].FSPaternalist > 60) {
+		if (V.arcologies[V.i].FSPaternalist !== "unset") {
+			V.arcologies[V.i].FSPaternalist += Math.trunc((V.arcologies[V.j].FSPaternalist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSPaternalist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Paternalism");
+		} else if (V.arcologies[V.i].FSDegradationist !== "unset") {
+			V.arcologies[V.i].FSDegradationist -= Math.trunc((V.arcologies[V.j].FSPaternalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Degradationism");
+		}
+	} else if (V.arcologies[V.j].FSDegradationist > 60) {
+		if (V.arcologies[V.i].FSDegradationist !== "unset") {
+			V.arcologies[V.i].FSDegradationist += Math.trunc((V.arcologies[V.j].FSDegradationist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSDegradationist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Degradationism");
+		} else if (V.arcologies[V.i].FSPaternalist !== "unset") {
+			V.arcologies[V.i].FSPaternalist -= Math.trunc((V.arcologies[V.j].FSDegradationist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Paternalism");
+		}
+	}
+	if (V.arcologies[V.j].FSIntellectualDependency > 60) {
+		if (V.arcologies[V.i].FSIntellectualDependency !== "unset") {
+			V.arcologies[V.i].FSIntellectualDependency += Math.trunc((V.arcologies[V.j].FSIntellectualDependency-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSIntellectualDependency > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Intellectual Dependency");
+		} else if (V.arcologies[V.i].FSSlaveProfessionalism !== "unset") {
+			V.arcologies[V.i].FSSlaveProfessionalism -= Math.trunc((V.arcologies[V.j].FSIntellectualDependency-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Slave Professionalism");
+		}
+	} else if (V.arcologies[V.j].FSSlaveProfessionalism > 60) {
+		if (V.arcologies[V.i].FSSlaveProfessionalism !== "unset") {
+			V.arcologies[V.i].FSSlaveProfessionalism += Math.trunc((V.arcologies[V.j].FSSlaveProfessionalism-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSSlaveProfessionalism > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Slave Professionalism");
+		} else if (V.arcologies[V.i].FSIntellectualDependency !== "unset") {
+			V.arcologies[V.i].FSIntellectualDependency -= Math.trunc((V.arcologies[V.j].FSSlaveProfessionalism-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Intellectual Dependency");
+		}
+	}
+	if (V.arcologies[V.j].FSBodyPurist > 60) {
+		if (V.arcologies[V.i].FSBodyPurist !== "unset") {
+			V.arcologies[V.i].FSBodyPurist += Math.trunc((V.arcologies[V.j].FSBodyPurist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSBodyPurist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Body Purism");
+		} else if (V.arcologies[V.i].FSTransformationFetishist !== "unset") {
+			V.arcologies[V.i].FSTransformationFetishist -= Math.trunc((V.arcologies[V.j].FSBodyPurist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Transformation Fetishism");
+		}
+	} else if (V.arcologies[V.j].FSTransformationFetishist > 60) {
+		if (V.arcologies[V.i].FSTransformationFetishist !== "unset") {
+			V.arcologies[V.i].FSTransformationFetishist += Math.trunc((V.arcologies[V.j].FSTransformationFetishist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSTransformationFetishist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Transformation Fetishism");
+		} else if (V.arcologies[V.i].FSBodyPurist !== "unset") {
+			V.arcologies[V.i].FSBodyPurist -= Math.trunc((V.arcologies[V.j].FSTransformationFetishist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Body Purism");
+		}
+	}
+	if (V.arcologies[V.j].FSYouthPreferentialist > 60) {
+		if (V.arcologies[V.i].FSYouthPreferentialist !== "unset") {
+			V.arcologies[V.i].FSYouthPreferentialist += Math.trunc((V.arcologies[V.j].FSYouthPreferentialist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSYouthPreferentialist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Youth Preferentialism");
+		} else if (V.arcologies[V.i].FSMaturityPreferentialist !== "unset") {
+			V.arcologies[V.i].FSMaturityPreferentialist -= Math.trunc((V.arcologies[V.j].FSYouthPreferentialist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Maturity Preferentialism");
+		}
+	} else if (V.arcologies[V.j].FSMaturityPreferentialist > 60) {
+		if (V.arcologies[V.i].FSMaturityPreferentialist !== "unset") {
+			V.arcologies[V.i].FSMaturityPreferentialist += Math.trunc((V.arcologies[V.j].FSMaturityPreferentialist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSMaturityPreferentialist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Maturity Preferentialism");
+		} else if (V.arcologies[V.i].FSYouthPreferentialist !== "unset") {
+			V.arcologies[V.i].FSYouthPreferentialist -= Math.trunc((V.arcologies[V.j].FSMaturityPreferentialist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Youth Preferentialism");
+		}
+	}
+	if (V.arcologies[V.j].FSPetiteAdmiration > 60) {
+		if (V.arcologies[V.i].FSPetiteAdmiration !== "unset") {
+			V.arcologies[V.i].FSPetiteAdmiration += Math.trunc((V.arcologies[V.j].FSPetiteAdmiration-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSPetiteAdmiration > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Petite Admiration");
+		} else if (V.arcologies[V.i].FSStatuesqueGlorification !== "unset") {
+			V.arcologies[V.i].FSStatuesqueGlorification -= Math.trunc((V.arcologies[V.j].FSPetiteAdmiration-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Statuesque Glorification");
+		}
+	} else if (V.arcologies[V.j].FSStatuesqueGlorification > 60) {
+		if (V.arcologies[V.i].FSStatuesqueGlorification !== "unset") {
+			V.arcologies[V.i].FSStatuesqueGlorification += Math.trunc((V.arcologies[V.j].FSStatuesqueGlorification-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSStatuesqueGlorification > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Statuesque Glorification");
+		} else if (V.arcologies[V.i].FSPetiteAdmiration !== "unset") {
+			V.arcologies[V.i].FSPetiteAdmiration -= Math.trunc((V.arcologies[V.j].FSStatuesqueGlorification-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Petite Admiration");
+		}
+	}
+	if (V.arcologies[V.j].FSSlimnessEnthusiast > 60) {
+		if (V.arcologies[V.i].FSSlimnessEnthusiast !== "unset") {
+			V.arcologies[V.i].FSSlimnessEnthusiast += Math.trunc((V.arcologies[V.j].FSSlimnessEnthusiast-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSSlimnessEnthusiast > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Slimness Enthusiasm");
+		} else if (V.arcologies[V.i].FSAssetExpansionist !== "unset") {
+			V.arcologies[V.i].FSAssetExpansionist -= Math.trunc((V.arcologies[V.j].FSSlimnessEnthusiast-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Asset Expansionism");
+		}
+	} else if (V.arcologies[V.j].FSAssetExpansionist > 60) {
+		if (V.arcologies[V.i].FSAssetExpansionist !== "unset") {
+			V.arcologies[V.i].FSAssetExpansionist += Math.trunc((V.arcologies[V.j].FSAssetExpansionist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSAssetExpansionist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Asset Expansionism");
+		} else if (V.arcologies[V.i].FSSlimnessEnthusiast !== "unset") {
+			V.arcologies[V.i].FSSlimnessEnthusiast -= Math.trunc((V.arcologies[V.j].FSAssetExpansionist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Slimness Enthusiasm");
+		}
+	}
+	if (V.arcologies[V.j].FSPastoralist > 60) {
+		if (V.arcologies[V.i].FSPastoralist !== "unset") {
+			V.arcologies[V.i].FSPastoralist += Math.trunc((V.arcologies[V.j].FSPastoralist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSPastoralist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Pastoralism");
+		} else if (V.arcologies[V.i].FSCummunism !== "unset") {
+			V.arcologies[V.i].FSCummunism -= Math.trunc((V.arcologies[V.j].FSPastoralist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Cummunism");
+		}
+	} else if (V.arcologies[V.j].FSCummunism > 60) {
+		if (V.arcologies[V.i].FSCummunism !== "unset") {
+			V.arcologies[V.i].FSCummunism += Math.trunc((V.arcologies[V.j].FSCummunism-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSCummunism > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Cummunism");
+		} else if (V.arcologies[V.i].FSPastoralist !== "unset") {
+			V.arcologies[V.i].FSPastoralist -= Math.trunc((V.arcologies[V.j].FSCummunism-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Pastoralism");
+		}
+	}
+	if (V.arcologies[V.j].FSPhysicalIdealist > 60) {
+		if (V.arcologies[V.i].FSPhysicalIdealist !== "unset") {
+			V.arcologies[V.i].FSPhysicalIdealist += Math.trunc((V.arcologies[V.j].FSPhysicalIdealist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSPhysicalIdealist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Physical Idealism");
+		} else if (V.arcologies[V.i].FSHedonisticDecadence !== "unset") {
+			V.arcologies[V.i].FSHedonisticDecadence -= Math.trunc((V.arcologies[V.j].FSPhysicalIdealist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Hedonism");
+		}
+	} else if (V.arcologies[V.j].FSHedonisticDecadence > 60) {
+		if (V.arcologies[V.i].FSHedonisticDecadence !== "unset") {
+			V.arcologies[V.i].FSHedonisticDecadence += Math.trunc((V.arcologies[V.j].FSHedonisticDecadence-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSHedonisticDecadence > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Hedonism");
+		} else if (V.arcologies[V.i].FSPhysicalIdealist !== "unset") {
+			V.arcologies[V.i].FSPhysicalIdealist -= Math.trunc((V.arcologies[V.j].FSHedonisticDecadence-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its Physical Idealism");
+		}
+	}
+	if (V.arcologies[V.j].FSIncestFetishist > 60) {
+		if (V.arcologies[V.i].FSIncestFetishist !== "unset") {
+			V.arcologies[V.i].FSIncestFetishist += Math.trunc((V.arcologies[V.j].FSIncestFetishist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSIncestFetishist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Incest Fetishism");
+		}
+	}
+	if (V.arcologies[V.j].FSChattelReligionist > 60) {
+		if (V.arcologies[V.i].FSChattelReligionist !== "unset") {
+			V.arcologies[V.i].FSChattelReligionist += Math.trunc((V.arcologies[V.j].FSChattelReligionist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSChattelReligionist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Chattel Religionism");
+		}
+	}
+	if (V.arcologies[V.j].FSRomanRevivalist > 60) {
+		if (V.arcologies[V.i].FSRomanRevivalist !== "unset") {
+			V.arcologies[V.i].FSRomanRevivalist += Math.trunc((V.arcologies[V.j].FSRomanRevivalist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSRomanRevivalist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Roman Revivalism");
+		} else if (V.arcologies[V.i].FSNeoImperialist !== "unset") {
+			V.arcologies[V.i].FSNeoImperialist -= Math.trunc((V.arcologies[V.j].FSRomanRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Imperialism");
+		} else if (V.arcologies[V.i].FSAztecRevivalist !== "unset") {
+			V.arcologies[V.i].FSAztecRevivalist -= Math.trunc((V.arcologies[V.j].FSRomanRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSEgyptianRevivalist !== "unset") {
+			V.arcologies[V.i].FSEgyptianRevivalist -= Math.trunc((V.arcologies[V.j].FSRomanRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSEdoRevivalist !== "unset") {
+			V.arcologies[V.i].FSEdoRevivalist -= Math.trunc((V.arcologies[V.j].FSRomanRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSArabianRevivalist !== "unset") {
+			V.arcologies[V.i].FSArabianRevivalist -= Math.trunc((V.arcologies[V.j].FSRomanRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSChineseRevivalist !== "unset") {
+			V.arcologies[V.i].FSChineseRevivalist -= Math.trunc((V.arcologies[V.j].FSRomanRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		}
+	} else if (V.arcologies[V.j].FSAztecRevivalist > 60) {
+		if (V.arcologies[V.i].FSAztecRevivalist !== "unset") {
+			V.arcologies[V.i].FSAztecRevivalist += Math.trunc((V.arcologies[V.j].FSAztecRevivalist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSAztecRevivalist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Aztec Revivalism");
+		} else if (V.arcologies[V.i].FSNeoImperialist !== "unset") {
+			V.arcologies[V.i].FSNeoImperialist -= Math.trunc((V.arcologies[V.j].FSAztecRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Imperialism");
+		} else if (V.arcologies[V.i].FSRomanRevivalist !== "unset") {
+			V.arcologies[V.i].FSRomanRevivalist -= Math.trunc((V.arcologies[V.j].FSAztecRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSEgyptianRevivalist !== "unset") {
+			V.arcologies[V.i].FSEgyptianRevivalist -= Math.trunc((V.arcologies[V.j].FSAztecRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSEdoRevivalist !== "unset") {
+			V.arcologies[V.i].FSEdoRevivalist -= Math.trunc((V.arcologies[V.j].FSAztecRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSArabianRevivalist !== "unset") {
+			V.arcologies[V.i].FSArabianRevivalist -= Math.trunc((V.arcologies[V.j].FSAztecRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSChineseRevivalist !== "unset") {
+			V.arcologies[V.i].FSChineseRevivalist -= Math.trunc((V.arcologies[V.j].FSAztecRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		}
+	} else if (V.arcologies[V.j].FSEgyptianRevivalist > 60) {
+		if (V.arcologies[V.i].FSEgyptianRevivalist !== "unset") {
+			V.arcologies[V.i].FSEgyptianRevivalist += Math.trunc((V.arcologies[V.j].FSEgyptianRevivalist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSEgyptianRevivalist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Egyptian Revivalism");
+		} else if (V.arcologies[V.i].FSRomanRevivalist !== "unset") {
+			V.arcologies[V.i].FSRomanRevivalist -= Math.trunc((V.arcologies[V.j].FSEgyptianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSNeoImperialist !== "unset") {
+			V.arcologies[V.i].FSNeoImperialist -= Math.trunc((V.arcologies[V.j].FSEgyptianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Imperialism");
+		} else if (V.arcologies[V.i].FSAztecRevivalist !== "unset") {
+			V.arcologies[V.i].FSAztecRevivalist -= Math.trunc((V.arcologies[V.j].FSEgyptianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSEdoRevivalist !== "unset") {
+			V.arcologies[V.i].FSEdoRevivalist -= Math.trunc((V.arcologies[V.j].FSEgyptianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSArabianRevivalist !== "unset") {
+			V.arcologies[V.i].FSArabianRevivalist -= Math.trunc((V.arcologies[V.j].FSEgyptianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSChineseRevivalist !== "unset") {
+			V.arcologies[V.i].FSChineseRevivalist -= Math.trunc((V.arcologies[V.j].FSEgyptianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		}
+	} else if (V.arcologies[V.j].FSEdoRevivalist > 60) {
+		if (V.arcologies[V.i].FSEdoRevivalist !== "unset") {
+			V.arcologies[V.i].FSEdoRevivalist += Math.trunc((V.arcologies[V.j].FSEdoRevivalist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSEdoRevivalist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Edo Revivalism");
+		} else if (V.arcologies[V.i].FSEgyptianRevivalist !== "unset") {
+			V.arcologies[V.i].FSEgyptianRevivalist -= Math.trunc((V.arcologies[V.j].FSEdoRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSNeoImperialist !== "unset") {
+			V.arcologies[V.i].FSNeoImperialist -= Math.trunc((V.arcologies[V.j].FSEdoRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Imperialism");
+		} else if (V.arcologies[V.i].FSRomanRevivalist !== "unset") {
+			V.arcologies[V.i].FSRomanRevivalist -= Math.trunc((V.arcologies[V.j].FSEdoRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSAztecRevivalist !== "unset") {
+			V.arcologies[V.i].FSAztecRevivalist -= Math.trunc((V.arcologies[V.j].FSEdoRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSArabianRevivalist !== "unset") {
+			V.arcologies[V.i].FSArabianRevivalist -= Math.trunc((V.arcologies[V.j].FSEdoRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSChineseRevivalist !== "unset") {
+			V.arcologies[V.i].FSChineseRevivalist -= Math.trunc((V.arcologies[V.j].FSEdoRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		}
+	} else if (V.arcologies[V.j].FSArabianRevivalist > 60) {
+		if (V.arcologies[V.i].FSArabianRevivalist !== "unset") {
+			V.arcologies[V.i].FSArabianRevivalist += Math.trunc((V.arcologies[V.j].FSArabianRevivalist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSArabianRevivalist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Arabian Revivalism");
+		} else if (V.arcologies[V.i].FSEgyptianRevivalist !== "unset") {
+			V.arcologies[V.i].FSEgyptianRevivalist -= Math.trunc((V.arcologies[V.j].FSArabianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSNeoImperialist !== "unset") {
+			V.arcologies[V.i].FSNeoImperialist -= Math.trunc((V.arcologies[V.j].FSArabianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Imperialism");
+		} else if (V.arcologies[V.i].FSEdoRevivalist !== "unset") {
+			V.arcologies[V.i].FSEdoRevivalist -= Math.trunc((V.arcologies[V.j].FSArabianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSRomanRevivalist !== "unset") {
+			V.arcologies[V.i].FSRomanRevivalist -= Math.trunc((V.arcologies[V.j].FSArabianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSAztecRevivalist !== "unset") {
+			V.arcologies[V.i].FSAztecRevivalist -= Math.trunc((V.arcologies[V.j].FSArabianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSChineseRevivalist !== "unset") {
+			V.arcologies[V.i].FSChineseRevivalist -= Math.trunc((V.arcologies[V.j].FSArabianRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		}
+	} else if (V.arcologies[V.j].FSChineseRevivalist > 60) {
+		if (V.arcologies[V.i].FSChineseRevivalist !== "unset") {
+			V.arcologies[V.i].FSChineseRevivalist += Math.trunc((V.arcologies[V.j].FSChineseRevivalist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSChineseRevivalist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Chinese Revivalism");
+		} else if (V.arcologies[V.i].FSEgyptianRevivalist !== "unset") {
+			V.arcologies[V.i].FSEgyptianRevivalist -= Math.trunc((V.arcologies[V.j].FSChineseRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSNeoImperialist !== "unset") {
+			V.arcologies[V.i].FSNeoImperialist -= Math.trunc((V.arcologies[V.j].FSChineseRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Imperialism");
+		} else if (V.arcologies[V.i].FSEdoRevivalist !== "unset") {
+			V.arcologies[V.i].FSEdoRevivalist -= Math.trunc((V.arcologies[V.j].FSChineseRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSArabianRevivalist !== "unset") {
+			V.arcologies[V.i].FSArabianRevivalist -= Math.trunc((V.arcologies[V.j].FSChineseRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSRomanRevivalist !== "unset") {
+			V.arcologies[V.i].FSRomanRevivalist -= Math.trunc((V.arcologies[V.j].FSChineseRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSAztecRevivalist !== "unset") {
+			V.arcologies[V.i].FSAztecRevivalist -= Math.trunc((V.arcologies[V.j].FSChineseRevivalist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		}
+
+	} else if (V.arcologies[V.j].FSNeoImperialist > 60) {
+		if (V.arcologies[V.i].FSNeoImperialist !== "unset") {
+			V.arcologies[V.i].FSNeoImperialist += Math.trunc((V.arcologies[V.j].FSNeoImperialist-60)/4)+_appliedInfluenceBonus;
+			if (V.arcologies[V.i].FSNeoImperialist > V.FSLockinLevel) {
+	_alignment += 1;
+	}
+			V.desc.push("helping to advance its Neo-Imperialism");
+		} else if (V.arcologies[V.i].FSEgyptianRevivalist !== "unset") {
+			V.arcologies[V.i].FSEgyptianRevivalist -= Math.trunc((V.arcologies[V.j].FSNeoImperialist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSChineseRevivalist !== "unset") {
+			V.arcologies[V.i].FSChineseRevivalist -= Math.trunc((V.arcologies[V.j].FSNeoImperialist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSEdoRevivalist !== "unset") {
+			V.arcologies[V.i].FSEdoRevivalist -= Math.trunc((V.arcologies[V.j].FSNeoImperialist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSArabianRevivalist !== "unset") {
+			V.arcologies[V.i].FSArabianRevivalist -= Math.trunc((V.arcologies[V.j].FSNeoImperialist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSRomanRevivalist !== "unset") {
+			V.arcologies[V.i].FSRomanRevivalist -= Math.trunc((V.arcologies[V.j].FSNeoImperialist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		} else if (V.arcologies[V.i].FSAztecRevivalist !== "unset") {
+			V.arcologies[V.i].FSAztecRevivalist -= Math.trunc((V.arcologies[V.j].FSNeoImperialist-60)/4)+_appliedInfluenceBonus;
+			V.desc.push("attacking its incompatible Revivalism");
+		}
+	}
+
+	if (V.desc.length === 0) {
+		r.push(`'' ${V.arcologies[V.j].name}'' attempts to influence it, but has no significant impacts.`);
+	} else if (V.desc.length > 2) {
+		r.push(`'' ${V.arcologies[V.j].name}'''s mature culture influences V.arcologies[V.i].name, V.desc[0],`);
+		<<for _k = 1; _k < V.desc.length; _k++>>
+			if (_k < V.desc.length-1) {
+				r.push(`${V.desc[_k]},`);
+			} else {
+				r.push(`and ${V.desc[_k]}.`);
+			}
+		<</for>>
+	} else if (V.desc.length === 2) {
+		r.push(`'' ${V.arcologies[V.j].name}'''s culture influences V.arcologies[V.i].name's V.desc[0] and V.desc[1].`);
+	} else {
+		r.push(`'' ${V.arcologies[V.j].name}'''s culture is beginning to influence V.arcologies[V.i].name's V.desc[0].`);
+	}
+
+	if (_appliedInfluenceBonus > 0) {
+		if (_appliedInfluenceBonus < 5) {
+			r.push(`${V.arcologies[V.j].name} is societally advanced, giving it extra influence.`);
+		} else {
+			r.push(`${V.arcologies[V.j].name} is societally fanatical, lending it great influence.`);
+		}
+	}
+	if (V.arcologies[V.i].ownership >= 100) {
+		if (_appliedInfluenceBonus > 0) {
+		r.push(`However, `);
+	}
+		r.push(`${V.arcologies[V.i].name} is under completely unified control, making it resistant to change.`);
+	}
+
+	if (V.arcologies[V.j].direction !== 0) {
+		if (V.desc.length === 0) {
+			r.push(`'' ${V.arcologies[V.j].name}'' is not satisfied with the impact its directed influence is having, and withdraws it with the intention of targeting it elsewhere.`);
+			V.arcologies[V.j].influenceTarget = -1;
+		} else if (_alignment >= 4) {
+			r.push(`'' ${V.arcologies[V.j].name}'' is satisfied that its influence has brought V.arcologies[V.i].name into alignment, and withdraws its direct influence with the intention of targeting it elsewhere.`);
+			V.arcologies[V.j].influenceTarget = -1;
+		}
+	}
+
+	}
+	}
+	<</for>>
+		r.push(` /* CLOSES INFLUENCE RECEPTION */`);
+
+	if (V.arcologies[V.i].direction !== 0) {
+		if (V.arcologies[V.i].influenceTarget === -1) {
+			App.Neighbor.selectInfluenceTarget(V.i);
+		}
+	}
+
+	if (V.arcologies[V.i].direction !== 0) {
+		V.arcologies[V.i].prosperity = Math.clamp(V.arcologies[V.i].prosperity, 1, 300);
+		V.arcologies[V.i].ownership = Math.clamp(V.arcologies[V.i].ownership, 0, 100);
+		V.arcologies[V.i].PCminority = Math.clamp(V.arcologies[V.i].PCminority, 0, 100);
+		V.arcologies[V.i].minority = Math.clamp(V.arcologies[V.i].minority, 0, 100);
+		_owned = V.arcologies[V.i].ownership + V.arcologies[V.i].PCminority + V.arcologies[V.i].minority;
+		if (V.arcologies[V.i].government !== "your agent" && V.arcologies[V.i].government !== "your trustees" && V.arcologies[V.i].rival !== 1) {
+			if (_owned < 10) {
+				V.arcologies[V.i].ownership += 10;
+		r.push(` /* Someone needs to own something */`);
+			} else if (_owned > 100) {
+				V.arcologies[V.i].minority = Math.clamp(100 - V.arcologies[V.i].ownership - V.arcologies[V.i].PCminority, 0, 100);
+				if (V.arcologies[V.i].ownership + V.arcologies[V.i].PCminority > 100) {
+					V.arcologies[V.i].ownership = 100 - V.arcologies[V.i].PCminority;
+				}
+			}
+		}
+	}
+
+	<br>
+	<</for>>
+
+	/* PEACEKEEPERS */
+
+	if (V.plot) {
+		if (V.peacekeepers !== 0) {
+			<br>
+			if (V.peacekeepers.strength >= 50) {
+				_prisoners = Math.trunc(V.peacekeepers.attitude/10)+random(0,10);
+				r.push(`General ${V.peacekeepers.generalName}'s little empire near the arcology`);
+				if (V.peacekeepers.attitude >= 100) {
+					r.push(`offers${  _prisoners} menial slaves as tribute; having the area as an avowed client state <span class="green">improves your reputation.</span>`);
+					V.peacekeepers.attitude = 100;
+					repX(100, "peacekeepers");
+				} else {
+					r.push(`delivers${  _prisoners} menial slaves to you in payment for your past support.`);
+				}
+				V.menials += _prisoners;
+			} else if (V.peacekeepers.strength < 0) {
+				r.push(`<span class="yellow">The peacekeeping force led by General ${V.peacekeepers.generalName} in the troubled area near the Free City has been withdrawn.</span>`);
+				if (V.peacekeepers.undermining) {
+					r.push(`Your misinformation campaign against it in the old world media was successful. Before long, everyone in the Free City is confident that you're somehow responsible, <span class="green">greatly improving your reputation.</span>`);
+					V.peacekeepers = 0, V.peacekeepersGone = 1;
+					repX(2000, "peacekeepers");
+				} else {
+					r.push(`The cost was ultimately too high. The time when old world countries could afford to waste billions on military adventurism is gone. It will not return.`);
+					V.peacekeepers = 0, V.peacekeepersGone = 1;
+				}
+			} else {
+				r.push(`There's a peacekeeping force led by General ${V.peacekeepers.generalName} in the troubled area near the Free City.`);
+				if (V.peacekeepers.undermining) {
+					r.push(`You're paying for a media misinformation campaign in the old world country that sent him. It`);
+					V.peacekeepers.strength -= V.peacekeepers.undermining/10000;
+					if (V.peacekeepers.strength < 10) {
+						r.push(`has had a significant impact; one of the nation's two major political parties now favors withdrawing the peacekeepers.`);
+					} else {
+						r.push(`has not had a significant impact yet; only a few fringe figures are arguing against the mission.`);
+					}
+				}
+				r.push(`Unfortunately, the presence of so much old world military power near the Free City causes <span class="red">public concern.</span>`);
+				repX(-100, "peacekeepers");
+			}
+			<br>
+		}
+	}
+};
\ No newline at end of file