From f610483f7fd573f7042d2184aa62a58e8eec7ac2 Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Sun, 6 Dec 2020 23:56:26 -0500
Subject: [PATCH] progress

---
 src/facilities/fsPassage.js | 1701 +++++++++++++++--------------------
 1 file changed, 718 insertions(+), 983 deletions(-)

diff --git a/src/facilities/fsPassage.js b/src/facilities/fsPassage.js
index dfee6c075ef..7c6b259aa48 100644
--- a/src/facilities/fsPassage.js
+++ b/src/facilities/fsPassage.js
@@ -651,6 +651,8 @@ App.UI.FSPassage = function() {
 
 	function selectFS() {
 		const el = new DocumentFragment();
+		let r;
+		let p;
 		/**
 		 * Assistant appearances that particular FS are supported by
 		 * @type {Map<FC.FutureSociety, <appearance|fsAppearance>>} */
@@ -658,25 +660,30 @@ App.UI.FSPassage = function() {
 			["FSSupremacist", ["amazon", "monstergirl", "succubus"]]
 		]);
 		const pursuit = App.UI.DOM.makeElement("span", "You are pursuing", "bold");
-		
+
 		/**
 		 * 
-		 * @param {FC.FutureSociety} FS 
+		 * @param {FC.FutureSociety} FS
+		 * @param {array} [itemArray]
 		 */
-		function FSIsChosen(FS) {
+		function FSIsChosen(FS, itemArray) {
 			const el = new DocumentFragment();
 			const r = [];
-			r.push(
-				App.UI.DOM.link(
-					"Abandon",
-					() => {
-						FutureSocieties.remove(FS)
-					},
-					[],
-					"Future Society"
-				)
-			);
-			r.push(App.UI.FSChangeDecoration(FS))
+			if (FS === "FSRestart" && V.eugenicsFullControl !== 1) {
+				r.push(`The Societal Elite will not permit you to abandon Eugenics.`);
+			} else {
+				r.push(
+					App.UI.DOM.link(
+						"Abandon",
+						() => {
+							FutureSocieties.remove(FS)
+						},
+						[],
+						"Future Society"
+					)
+				);
+			}
+			r.push(App.UI.FSChangeDecoration(FS, itemArray))
 
 			if (V.policies.publicPA === 1) {
 				if (assistantMatching.get(FS).includes(V.assistant.appearance)) {
@@ -688,10 +695,9 @@ App.UI.FSPassage = function() {
 			return el;
 		}
 
-
 		/* Race */
-		//<p>
-		//<div>
+		p = document.createElement("p");
+		r = [];
 		if (arc.FSSupremacist !== "unset") {
 			r.push(pursuit);
 			r.push(`${arc.FSSupremacistRace} superiority.`);
@@ -702,8 +708,8 @@ App.UI.FSPassage = function() {
 					App.UI.DOM.link(
 						"Racial Supremacism",
 						() => {
-							arc.FSSupremacist = 4,
-								App.UI.reload();
+							arc.FSSupremacist = 4;
+							App.UI.reload();
 						}
 					)
 				)
@@ -714,28 +720,28 @@ App.UI.FSPassage = function() {
 					r.push(`${arc.FSSupremacistRace} superiority.`);
 				}
 				r.push(`Select race:`);
-				if (arc.FSSubjugationistRace) {
-					r.push(`It is established that those of the ${arc.FSSubjugationistRace} race are inferior.`);
-				} else {
-					const select = document.createElement("select");
-					r.push(select);
-
-					for (const race of App.Data.misc.filterRacesLowercase) {
-						const choice = App.UI.DOM.appendNewElement("option", select, capFirstChar(race));
-						choice.value = race;
+				const select = document.createElement("select");
+				r.push(select);
+				const races = App.Data.misc.filterRacesLowercase.filter(race => race != arc.FSSubjugationistRace); // Subjugation race cannot be superior, so remove
+				for (const race of App.Data.misc.filterRacesLowercase) {
+					const choice = App.UI.DOM.appendNewElement("option", select, capFirstChar(race));
+					choice.value = race;
+					if (race === arc.FSSupremacistRace) {
+						choice.selected = true;
 					}
-
-					select.onchange = () => {
-						const O = select.options[select.selectedIndex];
-						arc.FSSubjugationistRace = O.value;
-						App.UI.reload();
-					};
 				}
+
+				select.onchange = () => {
+					const O = select.options[select.selectedIndex];
+					arc.FSSupremacistRace = O.value;
+					App.UI.reload();
+				};
 			} else {
 				/*<span class="note"><span style="font-weight:Bold">Racial Supremacism</span>: a belief in the superiority of a chosen race.</span>*/
 			}
 		}
-
+		App.Events.addNode(p, r, "div");
+		r = [];
 		if (arc.FSSubjugationist !== "unset") {
 			r.push(pursuit);
 			r.push(`${arc.FSSupremacistRace} inferiority.`);
@@ -753,1005 +759,734 @@ App.UI.FSPassage = function() {
 				)
 				r.push(`is a belief in`);
 				if (arc.FSSubjugationistRace === 0) {
-					r.push(`the superiority of a chosen race.`);
+					r.push(`the inferiority of a chosen race.`);
 				} else {
-					r.push(`${arc.FSSupremacistRace} superiority.`);
+					r.push(`${arc.FSSubjugationistRace} superiority.`);
 				}
 				r.push(`Select race:`);
-				if (arc.FSSubjugationistRace) {
-					r.push(`It is established that those of the ${arc.FSSubjugationistRace} race are inferior.`);
-				} else {
-					const select = document.createElement("select");
-					r.push(select);
-
-					for (const race of App.Data.misc.filterRacesLowercase) {
-						const choice = App.UI.DOM.appendNewElement("option", select, capFirstChar(race));
-						choice.value = race;
+				const select = document.createElement("select");
+				r.push(select);
+
+				const races = App.Data.misc.filterRacesLowercase.filter(race => race != arc.FSSupremacistRace); // Superior race cannot be subj, so remove
+				for (const race of races) {
+					const choice = App.UI.DOM.appendNewElement("option", select, capFirstChar(race));
+					choice.value = race;
+					if (race === arc.FSSubjugationistRace) {
+						choice.selected = true;
 					}
-
-					select.onchange = () => {
-						const O = select.options[select.selectedIndex];
-						arc.FSSubjugationistRace = O.value;
-						App.UI.reload();
-					};
 				}
-			}
 
-				//[[Racial Subjugationism | Future Society][arc.FSSubjugationist = 4]] is a belief in
-				if (arc.FSSubjugationistRace === 0) {
-					r.push(`the inferiority of a chosen race`);
-				} else {
-					r.push(`${arc.FSSubjugationistRace} inferiority`);
-				}
-				r.push(`.`);
-				<div class="indent">
-					r.push(`Select race:`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "white") {<span class="note">It is established that whites are superior</span>
-					} else if (arc.FSSubjugationistRace !== "white") {[[White | Future Society][arc.FSSubjugationistRace = "white"]]
-					} else {
-						r.push(`White`);
-}
-	r.push(` |`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "asian") {<span class="note">It is established that asians are superior</span>
-					} else if (arc.FSSubjugationistRace !== "asian") {[[Asian | Future Society][arc.FSSubjugationistRace = "asian"]]
-					} else {
-						r.push(`Asian`);
-}
-	r.push(` |`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "latina") {<span class="note">It is established that latinas are superior</span>
-					} else if (arc.FSSubjugationistRace !== "latina") {[[Latino | Future Society][arc.FSSubjugationistRace = "latina"]]
-					} else {
-						r.push(`Latino`);
-}
-	r.push(` |`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "middle eastern") {<span class="note">It is established that middle easterners are superior</span>
-					} else if (arc.FSSubjugationistRace !== "middle eastern") {[[Middle Eastern | Future Society][arc.FSSubjugationistRace = "middle eastern"]]
-					} else {
-						r.push(`Middle Eastern`);
-}
-	r.push(` |`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "black") {<span class="note">It is established that blacks are superior</span>
-					} else if (arc.FSSubjugationistRace !== "black") {[[Black | Future Society][arc.FSSubjugationistRace = "black"]]
-					} else {
-						r.push(`Black`);
-}
-	r.push(` |`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "indo-aryan") {<span class="note">It is established that indo-aryans are superior</span>
-					} else if (arc.FSSubjugationistRace !== "indo-aryan") {[[Indo - Aryan | Future Society][arc.FSSubjugationistRace = "indo-aryan"]]
-					} else {
-						r.push(`Indo-Aryan`);
-}
-	r.push(` |`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "amerindian") {<span class="note">It is established that amerindians are superior</span>
-					} else if (arc.FSSubjugationistRace !== "amerindian") {[[Amerindian | Future Society][arc.FSSubjugationistRace = "amerindian"]]
-					} else {
-						r.push(`Amerindian`);
-}
-	r.push(` |`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "pacific islander") {<span class="note">It is established that pacific islanders are superior</span>
-					} else if (arc.FSSubjugationistRace !== "pacific islander") {[[Pacific Islander | Future Society][arc.FSSubjugationistRace = "pacific islander"]]
-					} else {
-						r.push(`Pacific Islander`);
-}
-	r.push(` |`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "malay") {<span class="note">It is established that malay are superior</span>
-					} else if (arc.FSSubjugationistRace !== "malay") {[[Malay | Future Society][arc.FSSubjugationistRace = "malay"]]
-					} else {
-						r.push(`Malay`);
-}
-	r.push(` |`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "southern european") {<span class="note">It is established that southern europeans are superior</span>
-					} else if (arc.FSSubjugationistRace !== "southern european") {[[Southern European | Future Society][arc.FSSubjugationistRace = "southern european"]]
-					} else {
-						r.push(`Southern European`);
-}
-	r.push(` |`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "semitic") {<span class="note">It is established that semites are superior</span>
-					} else if (arc.FSSubjugationistRace !== "semitic") {[[Semitic | Future Society][arc.FSSubjugationistRace = "semitic"]]
-					} else {
-						r.push(`Semitic`);
-}
-	r.push(` |`);
-				if (arc.FSSupremacist !== "unset" && arc.FSSupremacistRace === "mixed race") {<span class="note">It is established that those with mixed blood are superior</span>
-					} else if (arc.FSSubjugationistRace !== "mixed race") {[[Mixed Race | Future Society][arc.FSSubjugationistRace = "mixed race"]]
-					} else {
-						r.push(`Mixed Race`);
-}
-			</div>
+				select.onchange = () => {
+					const O = select.options[select.selectedIndex];
+					arc.FSSubjugationistRace = O.value;
+					App.UI.reload();
+				};
 			} else {
 				/*<span class="note"><span style="font-weight:Bold">Racial Subjugationism</span>: a belief in the inferiority of a subject race.</span>*/
 			}
 		}
-</div >
-</p >
+		App.Events.addNode(p, r, "div");
+		el.append(p);
 
-/* Preg vs Eugenics */
-<p>
-				if (V.seePreg !== 0) {
-<div>
-						if (arc.FSRestart === "unset") {
-		if (arc.FSRepopulationFocus !== "unset") {
-			r.push(pursuit);
- the belief that mass breeding will save humanity.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSRepopulationFocus");
-					if (V.assistant.fsAppearance === "repopulation focus") {
-						V.assistant.fsAppearance = "default";
+		/* Preg vs Eugenics */
+		if (V.seePreg !== 0) {
+			p = document.createElement("p");
+			r = [];
+			if (arc.FSRestart === "unset") {
+				if (arc.FSRepopulationFocus !== "unset") {
+					r.push(pursuit);
+					r.push(`the belief that mass breeding will save humanity.`);
+					r.push(FSIsChosen("FSRepopulationFocus", ["boughtItem.clothing.maternityLingerie", "boughtItem.clothing.maternityDress", "boughtItem.clothing.belly"]));
+				} else {
+					if (_FSCredits > 0) {
+						r.push(
+							App.UI.DOM.link(
+								"Repopulation Efforts",
+								() => {
+									arc.FSRepopulationFocus = 4 + arc.FSRepopulationFocusInterest - arc.FSEugenicsInterest;
+									arc.FSRepopulationFocusPregPolicy = 0;
+									arc.FSRepopulationFocusMilfPolicy = 0;
+									App.UI.reload();
+								}
+							)
+						)
+						r.push(`is a focus on mass breeding in order to repopulate the future world.`);
+					} else {
+						/*<span class="note"><span style="font-weight:Bold">Repopulation Efforts</span>: societal fetishization of pregnancy.</span>*/
 					}
-				<</link>>
-			</span>
-			_items = ["boughtItem.clothing.maternityLingerie", "boughtItem.clothing.maternityDress", "boughtItem.clothing.belly"];
-			<<includeDOM App.UI.FSChangeDecoration("FSRepopulationFocus", _items)>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "goddess") || (V.assistant.appearance === "hypergoddess") || (V.assistant.appearance === "preggololi") || (V.assistant.appearance === "pregnant fairy") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "witch") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
 				}
 			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-								[[Repopulation Efforts|Future Society][arc.FSRepopulationFocus = 4+arc.FSRepopulationFocusInterest-arc.FSEugenicsInterest, arc.FSRepopulationFocusPregPolicy = 0, arc.FSRepopulationFocusMilfPolicy = 0]] is focus on mass breeding in order to repopulate the future world.
-				</div>
-			} else {
-				/*<span class="note"><span style="font-weight:Bold">Repopulation Efforts</span>: societal fetishization of pregnancy.</span>*/
-			}
-		}
-	}
-</div>
-
-<div>
-						if (arc.FSRepopulationFocus === "unset") {
-		if (arc.FSRestart !== "unset") {
-			if (arc.FSRestartDecoration !== 100) {
-				r.push(pursuit);
- Eugenics.
-				<span class="detail">
-					<<link "Abandon" "Future Society">>
-						FutureSocieties.remove("FSRestart");
-						if (V.assistant.fsAppearance === "eugenics") {
-							V.assistant.fsAppearance = "default";
-						}
-					<</link>>
-				</span>
-				<<includeDOM App.UI.FSChangeDecoration("FSRestart")>>
-				if (V.policies.publicPA === 1) {
-					if (V.assistant.appearance === "businesswoman") || (V.assistant.appearance === "schoolgirl") || (V.assistant.appearance === "goddess") || (V.assistant.appearance === "loli") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "witch") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "angel") {
-						<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+			App.Events.addNode(p, r, "div");
+			r = [];
+			if (arc.FSRepopulationFocus === "unset") {
+				if (arc.FSRestart !== "unset") {
+					if (arc.FSRestartDecoration !== 100) {
+						r.push(pursuit);
+						r.push(`Eugenics.`);
+						r.push(FSIsChosen("FSRestart"));
+					} else {
+						r.push(App.UI.DOM.makeElement("span", "You have established", "bold"));
+						r.push(`Eugenics.`);
+						r.push(FSIsChosen("FSRestart"));
+						r.push(`The Societal Elite exist as the highest class, allowing you access to all manner of benefits`);
 					}
-				}
-			} else {
-				<span style="font-weight:Bold">You have established</span> Eugenics.
-				if (V.eugenicsFullControl !== 1) {
-					r.push(`The Societal Elite will not permit you to abandon Eugenics.`);
 				} else {
-					<span class="detail">
-<<link "Abandon" "Future Society">>
-FutureSocieties.remove("FSRestart");
-if (V.assistant.fsAppearance === "eugenics") {
-V.assistant.fsAppearance = "default";
-}
-<</link>></span>
-				}
-				<<includeDOM App.UI.FSChangeDecoration("FSRestart")>>
-				r.push(`The Societal Elite exist as the highest class, allowing you access to all manner of benefits`);
-				if (V.policies.publicPA === 1) {
-					if (V.assistant.appearance === "businesswoman") || (V.assistant.appearance === "schoolgirl") || (V.assistant.appearance === "goddess") || (V.assistant.appearance === "loli") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "witch") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "angel") {
-						<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+					if (_FSCredits > 0) {
+						r.push(
+							App.UI.DOM.link(
+								"Eugenics",
+								() => {
+									arc.FSRestart = 4 + arc.FSEugenicsInterest - arc.FSRepopulationFocusInterest;
+									arc.FSRepopulationFocusPregPolicy = 0;
+									arc.FSRepopulationFocusMilfPolicy = 0;
+									App.UI.reload();
+								}
+							)
+						)
+						r.push(`is rebuilding society using restrictive breeding programs reserved solely for society's finest.`);
+					} else {
+						/*<span class="note"><span style="font-weight:Bold">Complete Societal Reconstruction</span>: rebuilding society based off the elite.</span>*/
 					}
 				}
 			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-								[[Eugenics|Future Society][arc.FSRestart = 4+arc.FSEugenicsInterest-arc.FSRepopulationFocusInterest, arc.FSRepopulationFocusPregPolicy = 0, arc.FSRepopulationFocusMilfPolicy = 0]] is rebuilding society using restrictive breeding programs reserved solely for society's finest.
-				</div>
-			} else {
-				/*<span class="note"><span style="font-weight:Bold">Complete Societal Reconstruction</span>: rebuilding society based off the elite.</span>*/
-			}
+			App.Events.addNode(p, r, "div");
+			el.append(p);
 		}
-	}
-</div>
-}
-</p>
 
-/* Pro vs Dependant */
-<p>
-<div>
-					if (arc.FSSlaveProfessionalism === "unset") {
-		if (arc.FSIntellectualDependency !== "unset") {
-			r.push(pursuit);
- intellectual dependency, a belief that slaves should be airheaded, horny and fully dependent on their owners.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSIntellectualDependency");
-					if (V.assistant.fsAppearance === "intellectual dependency") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			_items = ["boughtItem.clothing.bimbo"];
-			<<includeDOM App.UI.FSChangeDecoration("FSIntellectualDependency", _items)>>
-			if (V.policies.publicPA === 1) {
-				if (["shemale", "succubus", "witch"].includes(V.assistant.appearance)) {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-				}
-			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-							[[Intellectual Dependency|Future Society][arc.FSIntellectualDependency = 4]] is a belief that slaves should be airheaded, horny and fully dependent on their owners.
-				</div>
+		/* Pro vs Dependant */
+		p = document.createElement("p");
+		r = [];
+		if (arc.FSSlaveProfessionalism === "unset") {
+			if (arc.FSIntellectualDependency !== "unset") {
+				r.push(pursuit);
+				r.push(`intellectual dependency, a belief that slaves should be airheaded, horny and fully dependent on their owners.`);
+				r.push(FSIsChosen("FSIntellectualDependency", ["boughtItem.clothing.bimbo"]));
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">Intellectual Dependency</span>: a belief that slaves should be airheaded, horny and fully dependent on their owners.</span>*/
-			}
-		}
-	}
-</div>
-
-<div>
-					if (arc.FSIntellectualDependency === "unset") {
-		if (arc.FSSlaveProfessionalism !== "unset") {
-			r.push(pursuit);
- slave professionalism, a focus on smart, refined, altogether perfect slaves.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSSlaveProfessionalism");
-					if (V.assistant.fsAppearance === "slave professionalism") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			_items = ["boughtItem.clothing.courtesan"];
-			<<includeDOM App.UI.FSChangeDecoration("FSSlaveProfessionalism", _items)>>
-			if (V.policies.publicPA === 1) {
-				if (["angel", "businesswoman", "incubus", "goddess", "schoolgirl", "succubus"].includes(V.assistant.appearance)) {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Intellectual Dependency",
+							() => {
+								arc.FSIntellectualDependency = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is a belief that slaves should be airheaded, horny and fully dependent on their owners.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Intellectual Dependency</span>: a belief that slaves should be airheaded, horny and fully dependent on their owners.</span>*/
 				}
 			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-							[[Slave Professionalism|Future Society][arc.FSSlaveProfessionalism = 4]] is increased interest in smart, refined, altogether perfect slaves.
-				</div>
-			} else {
-				/*<span class="note"><span style="font-weight:Bold">Slave Professionalism</span>: increased interest in smart, refined, altogether perfect slaves.</span>*/
-			}
 		}
-	}
-</div>
-</p>
-
-/* Gender */
-<p>
-<div>
-					if (V.seeDicks !== 0 || V.makeDicks === 1) {
-		if (arc.FSGenderFundamentalist === "unset") {
-			if (arc.FSGenderRadicalist !== "unset") {
+		App.Events.addNode(p, r, "div");
+		r = [];
+		if (arc.FSIntellectualDependency === "unset") {
+			if (arc.FSSlaveProfessionalism !== "unset") {
 				r.push(pursuit);
- a radical redefinition of gender that identifies powerful people as male, and everyone else as female.
-				<span class="detail">
-					<<link "Abandon" "Future Society">>
-						FutureSocieties.remove("FSGenderRadicalist");
-						if (V.assistant.fsAppearance === "gender radicalist") {
-							V.assistant.fsAppearance = "default";
-						}
-					<</link>>
-				</span>
-				<<includeDOM App.UI.FSChangeDecoration("FSGenderRadicalist")>>
-				if (V.policies.publicPA === 1) {
-					if (V.assistant.appearance === "shemale") || (V.assistant.appearance === "monstergirl") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "witch") {
-						<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-					}
-				}
+				r.push(`slave professionalism, a focus on smart, refined, altogether perfect slaves.`);
+				r.push(FSIsChosen("FSSlaveProfessionalism", ["boughtItem.clothing.courtesan"]));
 			} else {
 				if (_FSCredits > 0) {
-					<div>
-							[[Gender radicalism|Future Society][arc.FSGenderRadicalist = 4]] is a radical redefinition of gender that identifies powerful people as male, and everyone else as female.
-					</div>
+					r.push(
+						App.UI.DOM.link(
+							"Slave Professionalism",
+							() => {
+								arc.FSSlaveProfessionalism = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is increased interest in smart, refined, altogether perfect slaves.`);
 				} else {
-					/*<span class="note"><span style="font-weight:Bold">Gender radicalism</span>: a radical redefinition of gender that identifies powerful people as male, and everyone else as female.</span>*/
+					/*<span class="note"><span style="font-weight:Bold">Slave Professionalism</span>: increased interest in smart, refined, altogether perfect slaves.</span>*/
 				}
 			}
 		}
-	}
-</div>
+		App.Events.addNode(p, r, "div");
+		el.append(p);
 
-<div>
-					if (arc.FSGenderRadicalist === "unset") {
-		if (arc.FSGenderFundamentalist !== "unset") {
-			r.push(pursuit);
- gender traditionalism, including a societal preference for feminine slaves
-if (V.seePreg !== 0) {
-	r.push(` and support for slave pregnancy`);
-}
-	r.push(`.`);
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSGenderFundamentalist");
-					if (V.assistant.fsAppearance === "gender fundamentalist") {
-						V.assistant.fsAppearance = "default";
+		/* Gender */
+		p = document.createElement("p");
+		r = [];
+		if (V.seeDicks !== 0 || V.makeDicks === 1) {
+			if (arc.FSGenderFundamentalist === "unset") {
+				if (arc.FSGenderRadicalist !== "unset") {
+					r.push(pursuit);
+					r.push(`a radical redefinition of gender that identifies powerful people as male, and everyone else as female.`);
+					r.push(FSIsChosen("FSGenderRadicalist"));
+				} else {
+					if (_FSCredits > 0) {
+						r.push(
+							App.UI.DOM.link(
+								"Gender radicalism",
+								() => {
+									arc.FSGenderRadicalist = 4;
+									App.UI.reload();
+								}
+							)
+						)
+						r.push(`is a radical redefinition of gender that identifies powerful people as male, and everyone else as female.`);
+					} else {
+						/*<span class="note"><span style="font-weight:Bold">Gender radicalism</span>: a radical redefinition of gender that identifies powerful people as male, and everyone else as female.</span>*/
 					}
-				<</link>>
-			</span>
-			_items = ["boughtItem.clothing.bunny"];
-			<<includeDOM App.UI.FSChangeDecoration("FSGenderFundamentalist", _items)>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "schoolgirl") || (V.assistant.appearance === "goddess") || (V.assistant.appearance === "hypergoddess") || (V.assistant.appearance === "preggololi") || (V.assistant.appearance === "loli") || (V.assistant.appearance === "fairy") || (V.assistant.appearance === "pregnant fairy") || (V.assistant.appearance === "angel") || (V.assistant.appearance === "cherub") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "witch") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
 				}
 			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-							[[Gender traditionalism|Future Society][arc.FSGenderFundamentalist = 4]] is a societal preference for feminine slaves
-if (V.seePreg !== 0) {
-	r.push(` and support for slave pregnancy`);
-}
-	r.push(`.`);
-				</div>
-			} else {
-				/*<span class="note"><span style="font-weight:Bold">Gender traditionalism</span>: a societal preference for feminine slaves
-if (V.seePreg !== 0) {
-	r.push(` and support for slave pregnancy`);
-}
-	r.push(`.</span>*/`);
-			}
 		}
-	}
-</div>
-</p>
-
-/* Deg vs Paternalist */
-<p>
-<div>
-	if (arc.FSDegradationist === "unset") {
-		if (arc.FSPaternalist !== "unset") {
-			r.push(pursuit);
- a vision of slave improvement, including slaves' health, mental well-being, and education.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSPaternalist");
-					if (V.assistant.fsAppearance === "paternalist") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			_items = ["boughtItem.clothing.conservative"];
-			<<includeDOM App.UI.FSChangeDecoration("FSPaternalist", _items)>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "schoolgirl") || (V.assistant.appearance === "goddess") || (V.assistant.appearance === "hypergoddess") || (V.assistant.appearance === "preggololi") || (V.assistant.appearance === "loli") || (V.assistant.appearance === "fairy") || (V.assistant.appearance === "pregnant fairy") || (V.assistant.appearance === "angel") || (V.assistant.appearance === "cherub") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-				}
-			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Paternalism|Future Society][arc.FSPaternalist = 4]] is a vision of slave improvement, including slaves' health, mental well-being, and education.
-				</div>
+		App.Events.addNode(p, r, "div");
+		r = [];
+		if (arc.FSGenderRadicalist === "unset") {
+			if (arc.FSGenderFundamentalist !== "unset") {
+				r.push(pursuit);
+				r.push(`gender traditionalism, including a societal preference for feminine slaves ${(V.seePreg !== 0) ? ` and support for slave pregnancy` : ``}.`);
+				r.push(FSIsChosen("FSGenderRadicalist", ["boughtItem.clothing.bunny"]));
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">Paternalism</span>: a vision of slave improvement, including slaves' health, mental well-being, and education.</span>*/
-			}
-		}
-	}
-</div>
-
-<div>
-	if (arc.FSPaternalist === "unset") {
-		if (arc.FSDegradationist !== "unset") {
-			r.push(pursuit);
- slave degradation, a belief that slaves are not human and should not be treated decently.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSDegradationist");
-					if (V.assistant.fsAppearance === "degradationist") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			_items = ["boughtItem.clothing.chains"];
-			<<includeDOM App.UI.FSChangeDecoration("FSDegradationist", _items)>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "monstergirl") || (V.assistant.appearance === "businesswoman") || (V.assistant.appearance === "preggololi") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "imp") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Gender traditionalism",
+							() => {
+								arc.FSGenderFundamentalist = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`gender traditionalism, including a societal preference for feminine slaves ${(V.seePreg !== 0) ? ` and support for slave pregnancy` : ``}.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Gender traditionalism</span>: a societal preference for feminine slaves
+						if (V.seePreg !== 0) {
+							r.push(` and support for slave pregnancy`);
+						}
+						r.push(`.</span>`);*/
 				}
 			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Degradationism|Future Society][arc.FSDegradationist = 4]] is a belief that slaves are not human and should not be treated decently.
-				</div>
-			} else {
-				/*<span class="note"><span style="font-weight:Bold">Degradation</span>: a belief that slaves are not human and should not be treated decently.</span>*/
-			}
 		}
-	}
-</div>
-</p>
+		App.Events.addNode(p, r, "div");
+		el.append(p);
 
-/* TF vs Purist */
-<p>
-<div>
-	if (arc.FSTransformationFetishist === "unset") {
-		if (arc.FSBodyPurist !== "unset") {
-			r.push(pursuit);
- societal disapproval of implant surgery.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSBodyPurist");
-					if (V.assistant.fsAppearance === "body purist") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			<<includeDOM App.UI.FSChangeDecoration("FSBodyPurist")>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "amazon") || (V.assistant.appearance === "goddess") || (V.assistant.appearance === "loli") || (V.assistant.appearance === "fairy") || (V.assistant.appearance === "pregnant fairy") || (V.assistant.appearance === "angel") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "witch") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-				}
-			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Body Purism|Future Society][arc.FSBodyPurist = 4]] is societal disapproval of implant surgery.
-				</div>
+		/* Deg vs Paternalist */
+		p = document.createElement("p");
+		r = [];
+		if (arc.FSDegradationist === "unset") {
+			if (arc.FSPaternalist !== "unset") {
+				r.push(pursuit);
+				r.push(`a vision of slave improvement, including slaves' health, mental well-being, and education.`);
+				r.push(FSIsChosen("FSGenderRadicalist", ["boughtItem.clothing.conservative"]));
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">Body Purism</span>: societal disapproval of implant surgery.</span>*/
-			}
-		}
-	}
-</div>
-
-<div>
-	if (arc.FSBodyPurist === "unset") {
-		if (arc.FSTransformationFetishist !== "unset") {
-			r.push(pursuit);
- societal fetishization of implant surgery.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSTransformationFetishist");
-					if (V.assistant.fsAppearance === "transformation fetishist") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			<<includeDOM App.UI.FSChangeDecoration("FSTransformationFetishist")>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "businesswoman") || (V.assistant.appearance === "shemale") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "witch") || (V.assistant.appearance === "ERROR_1606_APPEARANCE_FILE_CORRUPT") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Paternalism",
+							() => {
+								arc.FSPaternalist = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is a vision of slave improvement, including slaves' health, mental well-being, and education.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Paternalism</span>: a vision of slave improvement, including slaves' health, mental well-being, and education.</span>*/
 				}
 			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Transformation Fetishism|Future Society][arc.FSTransformationFetishist = 4]] is societal fetishization of implant surgery.
-				</div>
-			} else {
-				/*<span class="note"><span style="font-weight:Bold">Transformation Fetishism</span>: societal fetishization of implant surgery.</span>*/
-			}
 		}
-	}
-</div>
-</p>
-
-/* Maturity vs Youth */
-<p>
-<div>
-	if (arc.FSMaturityPreferentialist === "unset") {
-		if (arc.FSYouthPreferentialist !== "unset") {
-			r.push(pursuit);
- an accentuated societal preference for younger slaves.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSYouthPreferentialist");
-					if (V.assistant.fsAppearance === "youth preferentialist") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			<<includeDOM App.UI.FSChangeDecoration("FSYouthPreferentialist")>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "schoolgirl") || (V.assistant.appearance === "shemale") || (V.assistant.appearance === "preggololi") || (V.assistant.appearance === "loli") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "angel") || (V.assistant.appearance === "cherub") || (V.assistant.appearance === "imp") || (V.assistant.appearance === "witch") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-				}
-			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Youth Preferentialism|Future Society][arc.FSYouthPreferentialist = 4]] is increased interest in girls just past their majority.
-				</div>
+		App.Events.addNode(p, r, "div");
+		r = [];
+		if (arc.FSPaternalist === "unset") {
+			if (arc.FSDegradationist !== "unset") {
+				r.push(pursuit);
+				r.push(`slave degradation, a belief that slaves are not human and should not be treated decently.`);
+				r.push(FSIsChosen("FSDegradationist", ["boughtItem.clothing.chains"]));
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">Youth Preferentialism</span>: increased interest in girls just past their majority.</span>*/
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Degradationism",
+							() => {
+								arc.FSDegradationist = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is a belief that slaves are not human and should not be treated decently.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Degradation</span>: a belief that slaves are not human and should not be treated decently.</span>*/
+				}
 			}
 		}
-	}
-</div>
+		App.Events.addNode(p, r, "div");
+		el.append(p);
 
-<div>
-	if (arc.FSYouthPreferentialist === "unset") {
-		if (arc.FSMaturityPreferentialist !== "unset") {
-			r.push(pursuit);
- a societal preference for older women.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSMaturityPreferentialist");
-					if (V.assistant.fsAppearance === "maturity preferentialist") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			<<includeDOM App.UI.FSChangeDecoration("FSMaturityPreferentialist")>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "businesswoman") || (V.assistant.appearance === "goddess") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "witch") || (V.assistant.appearance === "angel") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-				}
-			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Maturity Preferentialism|Future Society][arc.FSMaturityPreferentialist = 4]] is increased interest in mature slaves.
-				</div>
+		/* TF vs Purist */
+		p = document.createElement("p");
+		r = [];
+		if (arc.FSTransformationFetishist === "unset") {
+			if (arc.FSBodyPurist !== "unset") {
+				r.push(pursuit);
+				r.push(`societal disapproval of implant surgery.`);
+				r.push(FSIsChosen("FSBodyPurist"));
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">Maturity Preferentialism</span>: increased interest in mature slaves.</span>*/
-			}
-		}
-	}
-</div>
-</p>
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Body Purism",
+							() => {
+								arc.FSBodyPurist = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is societal disapproval of implant surgery`);
 
-/* Statuesque vs Petite */
-<p>
-<div>
-	if (arc.FSStatuesqueGlorification === "unset") {
-		if (arc.FSPetiteAdmiration !== "unset") {
-			r.push(pursuit);
- an accentuated societal preference for short slaves.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSPetiteAdmiration");
-					if (V.assistant.fsAppearance === "petite admiration") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			<<includeDOM App.UI.FSChangeDecoration("FSPetiteAdmiration")>>
-			if (V.policies.publicPA === 1) {
-				if (["cherub", "fairy", "imp", "incubus", "loli", "preggololi", "pregnant fairy", "schoolgirl", "succubus"].includes(V.assistant.appearance)) {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Body Purism</span>: societal disapproval of implant surgery.</span>*/
 				}
 			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Petite Admiration|Future Society][arc.FSPetiteAdmiration = 4]] is increased interest in short slaves.
-				</div>
+		}
+		App.Events.addNode(p, r, "div");
+		r = [];
+		if (arc.FSBodyPurist === "unset") {
+			if (arc.FSTransformationFetishist !== "unset") {
+				r.push(pursuit);
+				r.push(`societal fetishization of implant surgery.`);
+				r.push(FSIsChosen("FSTransformationFetishist"));
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">Petite Admiration</span>: increased interest in short slaves.</span>*/
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Transformation Fetishism",
+							() => {
+								arc.FSTransformationFetishist = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is societal fetishization of implant surgery.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Transformation Fetishism</span>: societal fetishization of implant surgery.</span>*/
+				}
 			}
 		}
-	}
-</div>
+		App.Events.addNode(p, r, "div");
+		el.append(p);
 
-<div>
-	if (arc.FSPetiteAdmiration === "unset") {
-		if (arc.FSStatuesqueGlorification !== "unset") {
-			r.push(pursuit);
- a societal fixation on tallness.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSStatuesqueGlorification");
-					if (V.assistant.fsAppearance === "statuesque glorification") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			<<includeDOM App.UI.FSChangeDecoration("FSStatuesqueGlorification")>>
-			if (V.policies.publicPA === 1) {
-				if (["amazon", "goddess", "incubus", "succubus", "witch"].includes(V.assistant.appearance)) {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-				}
-			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Statuesque Glorification|Future Society][arc.FSStatuesqueGlorification = 4]] is societal fixation on tallness.
-				</div>
+		/* Maturity vs Youth */
+		p = document.createElement("p");
+		r = [];
+		if (arc.FSMaturityPreferentialist === "unset") {
+			if (arc.FSYouthPreferentialist !== "unset") {
+				r.push(pursuit);
+				r.push(`an accentuated societal preference for younger slaves.`);
+				r.push(FSIsChosen("FSYouthPreferentialist"));
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">Statuesque Glorification</span>: societal fixation on tallness.</span>*/
-			}
-		}
-	}
-</div>
-</p>
-
-/* Expand vs Slim */
-<p>
-<div>
-	if (arc.FSAssetExpansionist === "unset") {
-		if (arc.FSSlimnessEnthusiast !== "unset") {
-			<span style="font-weight:Bold">You are supporting</span> enthusiasm for slaves with girlish figures.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSSlimnessEnthusiast");
-					if (V.assistant.fsAppearance === "slimness enthusiast") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			<<includeDOM App.UI.FSChangeDecoration("FSSlimnessEnthusiast")>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "schoolgirl") || (V.assistant.appearance === "shemale") || (V.assistant.appearance === "loli") || (V.assistant.appearance === "cherub") || (V.assistant.appearance === "imp") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "witch") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Youth Preferentialism",
+							() => {
+								arc.FSYouthPreferentialist = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is increased interest in girls just past their majority.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Youth Preferentialism</span>: increased interest in girls just past their majority.</span>*/
 				}
 			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Slimness Enthusiasm|Future Society][arc.FSSlimnessEnthusiast = 4]] is a fashion for slaves with girlish figures.
-				</div>
+		}
+		App.Events.addNode(p, r, "div");
+		r = [];
+		if (arc.FSYouthPreferentialist === "unset") {
+			if (arc.FSMaturityPreferentialist !== "unset") {
+				r.push(pursuit);
+				r.push(`a societal preference for older women.`);
+				r.push(FSIsChosen("FSMaturityPreferentialist"));
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">Slimness Enthusiasm</span>: a fashion for slaves with girlish figures.</span>*/
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Maturity Preferentialism",
+							() => {
+								arc.FSMaturityPreferentialist = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is increased interest in mature slaves.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Maturity Preferentialism</span>: increased interest in mature slaves.</span>*/
+				}
 			}
 		}
-	}
-</div>
+		App.Events.addNode(p, r, "div");
+		el.append(p);
 
-<div>
-	if (arc.FSSlimnessEnthusiast === "unset") {
-		if (arc.FSAssetExpansionist !== "unset") {
-			r.push(pursuit);
- societal hunger for huge assets.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSAssetExpansionist");
-					if (V.assistant.fsAppearance === "asset expansionist") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			<<includeDOM App.UI.FSChangeDecoration("FSAssetExpansionist")>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "businesswoman") || (V.assistant.appearance === "shemale") || (V.assistant.appearance === "hypergoddess") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "witch") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-				}
-			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Asset Expansionism|Future Society][arc.FSAssetExpansionist = 4]] is societal hunger for huge assets of whatever origin.
-				</div>
+		/* Statuesque vs Petite */
+		p = document.createElement("p");
+		r = [];
+		if (arc.FSStatuesqueGlorification === "unset") {
+			if (arc.FSPetiteAdmiration !== "unset") {
+				r.push(pursuit);
+				r.push(`an accentuated societal preference for short slaves.`);
+				r.push(FSIsChosen("FSPetiteAdmiration"));
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">Asset Expansionism</span>: societal hunger for huge assets of whatever origin.</span>*/
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Petite Admiration",
+							() => {
+								arc.FSPetiteAdmiration = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is increased interest in short slaves.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Petite Admiration</span>: increased interest in short slaves.</span>*/
+				}
 			}
 		}
-	}
-</div>
-</p>
-
-/* Milking stands alone */
-<p>
-<div>
-	if (arc.FSPastoralist !== "unset") {
-		r.push(pursuit);
- societal normalization of slave milking.
-		<span class="detail">
-			<<link "Abandon" "Future Society">>
-				FutureSocieties.remove("FSPastoralist");
-				if (V.assistant.fsAppearance === "pastoralist") {
-					V.assistant.fsAppearance = "default";
+		App.Events.addNode(p, r, "div");
+		r = [];
+		if (arc.FSPetiteAdmiration === "unset") {
+			if (arc.FSStatuesqueGlorification !== "unset") {
+				r.push(pursuit);
+				r.push(`a societal fixation on tallness.`);
+				r.push(FSIsChosen("FSPetiteAdmiration"));
+			} else {
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Statuesque Glorification",
+							() => {
+								arc.FSStatuesqueGlorification = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is societal fixation on tallness.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Statuesque Glorification</span>: societal fixation on tallness.</span>*/
 				}
-			<</link>>
-		</span>
-		_items = ["boughtItem.clothing.western"];
-		<<includeDOM App.UI.FSChangeDecoration("FSPastoralist", _items)>>
-		if (V.policies.publicPA === 1) {
-			if (V.assistant.appearance === "goddess") || (V.assistant.appearance === "shemale") || (V.assistant.appearance === "hypergoddess") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "witch") {
-				<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
 			}
 		}
-	} else {
-		if (_FSCredits > 0) {
-			<div>
-				[[Slave Pastoralism|Future Society][arc.FSPastoralist = 4]] is societal acceptance of slave products like milk.
-			</div>
-		} else {
-			/*<span class="note"><span style="font-weight:Bold">Slave Pastoralism</span>: societal acceptance of slave products like milk.</span>*/
-		}
-	}
-</div>
-</p>
+		App.Events.addNode(p, r, "div");
+		el.append(p);
 
-/* Pastoralist vs Hedonist */
-<p>
-<div>
-	if (arc.FSHedonisticDecadence === "unset") {
-		if (arc.FSPhysicalIdealist !== "unset") {
-			r.push(pursuit);
- societal reverence for the idealized human form, including height, health and muscle.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSPhysicalIdealist");
-					if (V.assistant.fsAppearance === "physical idealist") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			_items = ["boughtItem.clothing.oil"];
-			<<includeDOM App.UI.FSChangeDecoration("FSPhysicalIdealist", _items)>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "amazon") || (V.assistant.appearance === "shemale") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "witch") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+		/* Expand vs Slim */
+		p = document.createElement("p");
+		r = [];
+		if (arc.FSAssetExpansionist === "unset") {
+			if (arc.FSSlimnessEnthusiast !== "unset") {
+				r.push(App.UI.DOM.makeElement("span", "You are supporting", "bold"));
+				r.push(`enthusiasm for slaves with girlish figures.`);
+				r.push(FSIsChosen("FSPetiteAdmiration"));
+			} else {
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Slimness Enthusiasm",
+							() => {
+								arc.FSSlimnessEnthusiast = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is a fashion for slaves with girlish figures.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Slimness Enthusiasm</span>: a fashion for slaves with girlish figures.</span>*/
 				}
 			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Physical Idealism|Future Society][arc.FSPhysicalIdealist = 4]] is societal reverence for the idealized human form, including height, health and muscle.
-				</div>
+		}
+		App.Events.addNode(p, r, "div");
+		r = [];
+		if (arc.FSSlimnessEnthusiast === "unset") {
+			if (arc.FSAssetExpansionist !== "unset") {
+				r.push(pursuit);
+				r.push(` societal hunger for huge assets.`);
+				r.push(FSIsChosen("FSAssetExpansionist"));
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">Physical Idealism</span>: societal reverence for the idealized human form, including height, health and muscle.</span>*/
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Asset Expansionism",
+							() => {
+								arc.FSAssetExpansionist = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is societal hunger for huge assets of whatever origin.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Asset Expansionism</span>: societal hunger for huge assets of whatever origin.</span>*/
+				}
 			}
 		}
-	}
-</div>
+		App.Events.addNode(p, r, "div");
+		el.append(p);
+
 
-<div>
-	if (arc.FSPhysicalIdealist === "unset") {
-		if (arc.FSHedonisticDecadence !== "unset") {
+		/* Milking stands alone */
+		r = [];
+		if (arc.FSPastoralist !== "unset") {
 			r.push(pursuit);
- societal normalization of overindulgence and immediate gratification. Be it food, drink, sex, drugs or whatever one's desire may be.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSHedonisticDecadence");
-					if (V.assistant.fsAppearance === "hedonistic decadence") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			<<includeDOM App.UI.FSChangeDecoration("FSHedonisticDecadence")>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "goddess") || (V.assistant.appearance === "hypergoddess") || (V.assistant.appearance === "preggololi") || (V.assistant.appearance === "imp") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "witch") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-				}
-			}
+			r.push(`societal normalization of slave milking.`);
+			r.push(FSIsChosen("FSAssetExpansionist", ["boughtItem.clothing.western"]));
 		} else {
 			if (_FSCredits > 0) {
-				<div>
-					[[Hedonistic Decadence|Future Society][arc.FSHedonisticDecadence = 4]] is societal acceptance of overindulgence and immediate gratification. Be it food, drink, sex, drugs or whatever one's desire may be.
-				</div>
+				r.push(
+					App.UI.DOM.link(
+						"Slave Pastoralism",
+						() => {
+							arc.FSPastoralist = 4;
+							App.UI.reload();
+						}
+					)
+				)
+				r.push(`is societal acceptance of slave products like milk.`);
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">HedonisticDecadence</span>: societal acceptance of over indulgence, particularly of food, drink, sex and drugs.</span>*/
+				/*<span class="note"><span style="font-weight:Bold">Slave Pastoralism</span>: societal acceptance of slave products like milk.</span>*/
 			}
 		}
-	}
-</div>
-</p>
+		App.Events.addNode(el, r, "p");
 
-/* Chattel religionist vs Multicultural */
-<p>
-<div>
-	if (arc.FSNull === "unset") {
-		if (arc.FSChattelReligionist !== "unset") {
-			r.push(pursuit);
- a new strain of religion that emphasizes the slaveholding portions of religious history.
-			<span class="detail">
-				<<link "Abandon" "Future Society">>
-					FutureSocieties.remove("FSChattelReligionist");
-					if (V.assistant.fsAppearance === "chattel religionist") {
-						V.assistant.fsAppearance = "default";
-					}
-				<</link>>
-			</span>
-			_items = ["boughtItem.clothing.habit"];
-			<<includeDOM App.UI.FSChangeDecoration("FSChattelReligionist", _items)>>
-			if (V.policies.publicPA === 1) {
-				if (V.assistant.appearance === "goddess") || (V.assistant.appearance === "monstergirl") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "succubus") || (V.assistant.appearance === "witch") || (V.assistant.appearance === "angel") || (V.assistant.appearance === "cherub") || (V.assistant.appearance === "imp") {
-					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+
+		/* Pastoralist vs Hedonist */
+		p = document.createElement("p");
+		r = [];
+		if (arc.FSHedonisticDecadence === "unset") {
+			if (arc.FSPhysicalIdealist !== "unset") {
+				r.push(pursuit);
+				r.push(`societal reverence for the idealized human form, including height, health and muscle.`);
+				r.push(FSIsChosen("FSAssetExpansionist", ["boughtItem.clothing.oil"]));
+			} else {
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Physical Idealism",
+							() => {
+								arc.FSPhysicalIdealist = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is societal reverence for the idealized human form, including height, health and muscle.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Physical Idealism</span>: societal reverence for the idealized human form, including height, health and muscle.</span>*/
 				}
 			}
-		} else {
-			if (_FSCredits > 0) {
-				<div>
-					[[Chattel Religionism|Future Society][arc.FSChattelReligionist = 4]] is a new strain of religion that emphasizes the slaveholding portions of religious history.
-				</div>
+		}
+		App.Events.addNode(p, r, "div");
+		r = [];
+		if (arc.FSPhysicalIdealist === "unset") {
+			if (arc.FSHedonisticDecadence !== "unset") {
+				r.push(pursuit);
+				r.push(`societal normalization of overindulgence and immediate gratification.Be it food, drink, sex, drugs or whatever one's desire may be.`);
+				r.push(FSIsChosen("FSAssetExpansionist"));
 			} else {
-				/*<span class="note"><span style="font-weight:Bold">Chattel Religionism</span>: a new strain of religion that emphasizes the slaveholding portions of religious history.</span>*/
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Hedonistic Decadence",
+							() => {
+								arc.FSHedonisticDecadence = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is societal acceptance of overindulgence and immediate gratification. Be it food, drink, sex, drugs or whatever one's desire may be.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">HedonisticDecadence</span>: societal acceptance of over indulgence, particularly of food, drink, sex and drugs.</span>*/
+				}
 			}
 		}
-	}
-</div>
+		App.Events.addNode(p, r, "div");
+		el.append(p);
 
-<div>
-	if (arc.FSChattelReligionist === "unset") {
-		if (V.FSCreditCount === 4) {
+		/* Chattel religionist vs Multicultural */
+		p = document.createElement("p");
+		r = [];
+		if (arc.FSNull === "unset") {
+			if (arc.FSChattelReligionist !== "unset") {
+				r.push(pursuit);
+				r.push(`a new strain of religion that emphasizes the slaveholding portions of religious history.`);
+				r.push(FSIsChosen("FSChattelReligionist", ["boughtItem.clothing.habit"]));
+			} else {
+				if (_FSCredits > 0) {
+					r.push(
+						App.UI.DOM.link(
+							"Chattel Religionism",
+							() => {
+								arc.FSChattelReligionist = 4;
+								App.UI.reload();
+							}
+						)
+					)
+					r.push(`is a new strain of religion that emphasizes the slaveholding portions of religious history.`);
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Chattel Religionism</span>: a new strain of religion that emphasizes the slaveholding portions of religious history.</span>*/
+				}
+			}
+		}
+		App.Events.addNode(p, r, "div");
+		r = [];
+		if (arc.FSChattelReligionist === "unset") {
 			if (arc.FSNull !== "unset") {
-				<span style="font-weight:Bold">
-					r.push(`You are permitting`);
+				const freedomArray = [`You are permitting`];
+				if (arc.FSNull <= 25) {
+					freedomArray.push(`basic`);
+				} else if (arc.FSNull <= 50) {
+					freedomArray.push(`considerable`);
+				} else if (arc.FSNull <= 75) {
+					freedomArray.push(`advanced`);
+				} else {
+					freedomArray.push(`absolute`);
+				}
+				r.push(App.UI.DOM.makeElement("span", freedomArray.join(" "), "bold"));
+				r.push(`cultural freedom in your arcology.`);
+			}
+			if (V.FSCreditCount === 4) {
+				if (arc.FSNull !== "unset") {
+					r.push(FSIsChosen("FSChattelReligionist"));
 					if (arc.FSNull <= 25) {
-	r.push(`basic`);
-					} else if (arc.FSNull <= 50) {
-	r.push(`considerable`);
-					} else if (arc.FSNull <= 75) {
-	r.push(`advanced`);
+						r.push(abandonRel());
+
 					} else {
-	r.push(`absolute`);
+						r.push(withdrawRel(25));
+					}
+					if (_FSCredits > 0) {
+						if (arc.FSNull < V.FSLockinLevel) {
+							r.push(advanceRel(25))
+						}
 					}
-				</span>
-				r.push(`cultural freedom in your arcology.`);
-				if (arc.FSNull <= 25) {
-					<span class="detail">
-						[[Abandon|Future Society][FutureSocieties.remove("FSNull")]]
-					</span>
 				} else {
-					<span class="detail">
-						[[Withdraw|Future Society][arc.FSNull -= 25]]
-					</span>
-				}
-				if (_FSCredits > 0) {
-					if (arc.FSNull < V.FSLockinLevel) {
-						<div class="indent">
-						[[Advance|Future Society][arc.FSNull += 25]] is further commitment to allow your arcology's citizens cultural freedom.
-						</div>
+					if (_FSCredits > 0) {
+						r.push(MulticulturalismRel(25));
 					}
 				}
-			} else {
-				if (_FSCredits > 0) {
-					<div>
-						[[Multiculturalism|Future Society][arc.FSNull = 25]] is a commitment to allow your arcology's citizens cultural freedom.
-					</div>
-					<div class="indent detail">
-						r.push(`This option is an alternative to societal advancement, and will not advance naturally.`);
-					</div>
-				}
-			}
-		} else if (V.FSCreditCount === 6) {
-			if (arc.FSNull !== "unset") {
-				<span style="font-weight:Bold">
-						r.push(`You are permitting`);
-					if (arc.FSNull <= 17) {
-	r.push(`basic`);
-					} else if (arc.FSNull <= 34) {
-	r.push(`some`);
-					} else if (arc.FSNull <= 51) {
-	r.push(`considerable`);
-					} else if (arc.FSNull <= 68) {
-	r.push(`great`);
-					} else if (arc.FSNull <= 85) {
-	r.push(`advanced`);
+			} else if (V.FSCreditCount === 6) {
+				if (arc.FSNull !== "unset") {
+					if (arc.FSNull <= 20) {
+						r.push(abandonRel());
 					} else {
-	r.push(`absolute`);
+						r.push(withdrawRel(17));
+					}
+					if (_FSCredits > 0) {
+						if (arc.FSNull < V.FSLockinLevel) {
+							r.push(advanceRel(17))
+						}
 					}
-				</span>
-				r.push(`cultural freedom in your arcology.`);
-				if (arc.FSNull <= 20) {
-					<span class="detail">[[Abandon|Future Society][FutureSocieties.remove("FSNull")]]</span>
 				} else {
-					<span class="detail">[[Withdraw|Future Society][arc.FSNull -= 17]]</span>
-				}
-				if (_FSCredits > 0) {
-					if (arc.FSNull < V.FSLockinLevel) {
-						<div class="indent">
-						[[Advance|Future Society][arc.FSNull += 17]] is further commitment to allow your arcology's citizens cultural freedom.
-						</div>
+					if (_FSCredits > 0) {
+						r.push(MulticulturalismRel(17))
 					}
 				}
-			} else {
-				if (_FSCredits > 0) {
-					<div>
-						[[Multiculturalism|Future Society][arc.FSNull = 17]] is a commitment to allow your arcology's citizens cultural freedom.
-					</div>
-					<div class="indent detail">
-						r.push(`This option is an alternative to societal advancement, and will not advance naturally.`);
-					</div>
-				}
-			}
-		} else if (V.FSCreditCount === 7) {
-			if (arc.FSNull !== "unset") {
-				<span style="font-weight:Bold">
-						r.push(`You are permitting`);
-					if (arc.FSNull <= 15) {
-	r.push(`basic`);
-					} else if (arc.FSNull <= 30) {
-	r.push(`some`);
-					} else if (arc.FSNull <= 45) {
-	r.push(`notable`);
-					} else if (arc.FSNull <= 60) {
-	r.push(`considerable`);
-					} else if (arc.FSNull <= 75) {
-	r.push(`great`);
-					} else if (arc.FSNull <= 90) {
-	r.push(`advanced`);
+			} else if (V.FSCreditCount === 7) {
+				if (arc.FSNull !== "unset") {
+					if (arc.FSNull <= 20) {
+						r.push(abandonRel())
 					} else {
-	r.push(`absolute`);
+						r.push(withdrawRel(15))
+					}
+					if (_FSCredits > 0) {
+						if (arc.FSNull < V.FSLockinLevel) {
+							r.push(advanceRel(15))
+						}
 					}
-				</span>
-				r.push(`cultural freedom in your arcology.`);
-				if (arc.FSNull <= 20) {
-					<span class="detail">
-						[[Abandon|Future Society][FutureSocieties.remove("FSNull")]]
-					</span>
 				} else {
-					<span class="detail">
-						[[Withdraw|Future Society][arc.FSNull -= 15]]
-					</span>
-				}
-				if (_FSCredits > 0) {
-					if (arc.FSNull < V.FSLockinLevel) {
-						<div class="indent">
-						[[Advance|Future Society][arc.FSNull += 15]] is further commitment to allow your arcology's citizens cultural freedom.
-						</div>
+					if (_FSCredits > 0) {
+						r.push(MulticulturalismRel(15))
 					}
 				}
 			} else {
-				if (_FSCredits > 0) {
-					<div>
-						[[Multiculturalism|Future Society][arc.FSNull = 15]] is a commitment to allow your arcology's citizens cultural freedom.
-					</div>
-					<div class="indent detail">
-						r.push(`This option is an alternative to societal advancement, and will not advance naturally.`);
-					</div>
-				}
-			}
-		} else {
-			if (arc.FSNull !== "unset") {
-				<span style="font-weight:Bold">
-						r.push(`You are permitting`);
+				if (arc.FSNull !== "unset") {
 					if (arc.FSNull <= 20) {
-	r.push(`basic`);
-					} else if (arc.FSNull <= 40) {
-	r.push(`considerable`);
-					} else if (arc.FSNull <= 60) {
-	r.push(`great`);
-					} else if (arc.FSNull <= 80) {
-	r.push(`advanced`);
+						r.push(abandonRel())
 					} else {
-	r.push(`absolute`);
+						r.push(withdrawRel(20))
+					}
+					if (_FSCredits > 0) {
+						if (arc.FSNull < V.FSLockinLevel) {
+							r.push(advanceRel(20))
+						}
 					}
-					r.push(`cultural freedom in your arcology.`);
-				</span>
-				if (arc.FSNull <= 20) {
-					<span class="detail">
-						[[Abandon|Future Society][FutureSocieties.remove("FSNull")]]
-					</span>
 				} else {
-					<span class="detail">
-						[[Withdraw|Future Society][arc.FSNull -= 20]]
-					</span>
+					if (_FSCredits > 0) {
+						r.push(MulticulturalismRel(20))
+					}
 				}
-				if (_FSCredits > 0) {
-					if (arc.FSNull < V.FSLockinLevel) {
-						<div class="indent">
-						[[Advance|Future Society][arc.FSNull += 20]] is further commitment to allow your arcology's citizens cultural freedom.
-						</div>
+			}
+		}
+		App.Events.addNode(p, r, "div");
+		el.append(p);
+
+		function withdrawRel(num) {
+			return App.UI.DOM.link(
+				"Windraw",
+				() => {
+					if (arc.FSNull !== "unset") {
+						arc.FSNull -= num;
 					}
+					App.UI.reload();
 				}
-			} else {
-				if (_FSCredits > 0) {
-					<div>
-						[[Multiculturalism|Future Society][arc.FSNull = 20]] is a commitment to allow your arcology's citizens cultural freedom.
-					</div>
-					<div class="indent detail">
-						r.push(`This option is an alternative to societal advancement, and will not advance naturally.`);
-					</div>
+			)
+		}
+
+		function abandonRel() {
+			return App.UI.DOM.link(
+				"Abandon",
+				() => {
+					FutureSocieties.remove("FSNull")
+					App.UI.reload();
 				}
-			}
+			)
+		}
+
+		function advanceRel(num) {
+			return App.UI.DOM.link(
+				"Advance",
+				() => {
+					if (arc.FSNull !== "unset") {
+						arc.FSNull += num;
+					}
+					App.UI.reload();
+				},
+				[],
+				"",
+				"a further commitment to allow your arcology's citizens cultural freedom"
+			)
+		}
+
+		function MulticulturalismRel(num) {
+			const multicultural = App.UI.DOM.makeElement(
+				"span",
+				App.UI.DOM.link(
+					"Multiculturalism",
+					() => {
+						arc.FSNull = num
+						App.UI.reload();
+					},
+					[],
+					"",
+					"a commitment to allow your arcology's citizens cultural freedom."
+				)
+			)
+			multicultural.append(` This option is an alternative to societal advancement, and will not advance naturally.`)
+			return multicultural;
 		}
-	}
-</div>
-</p >
 
-			/* Revival section */
-			<p>
-				<div>
-					if (arc.FSAztecRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSChineseRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
+
+		/* Revival section */
+		<p>
+			<div>
+				if (arc.FSAztecRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSChineseRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
 		if (arc.FSRomanRevivalist !== "unset") {
-						r.push(pursuit);
+					r.push(pursuit);
  a vision of a new Rome.
 			<span class="detail">
 				<<link "Abandon" "Future Society">>
 					FutureSocieties.remove("FSRomanRevivalist");
 					if (V.assistant.fsAppearance === "roman revivalist") {
-							V.assistant.fsAppearance = "default";
+						V.assistant.fsAppearance = "default";
 					}
 				<</link>>
 			</span>
@@ -1759,31 +1494,31 @@ if (V.seePreg !== 0) {
 			<<includeDOM App.UI.FSChangeDecoration("FSRomanRevivalist", _items)>>
 			if (V.policies.publicPA === 1) {
 				if (V.assistant.appearance === "businesswoman") || (V.assistant.appearance === "amazon") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "succubus") {
-						<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-					}
+					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				}
 			}
 		} else {
 			if (_FSCredits > 0) {
-						<div>
-							[[Roman Revivalism|Future Society][arc.FSRomanRevivalist = 4]] is a vision of a new Rome.
+					<div>
+						[[Roman Revivalism|Future Society][arc.FSRomanRevivalist = 4]] is a vision of a new Rome.
 				</div>
-					} else {
-						/*<span class="note"><span style="font-weight:Bold">Roman Revivalism</span>: a vision of a new Rome.</span>*/
-					}
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Roman Revivalism</span>: a vision of a new Rome.</span>*/
+				}
 		}
 	}
 </div>
 
-				<div>
-					if (arc.FSAztecRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSChineseRevivalist === "unset")&& (arc.FSRomanRevivalist === "unset") {
+			<div>
+				if (arc.FSAztecRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSChineseRevivalist === "unset")&& (arc.FSRomanRevivalist === "unset") {
 		if (arc.FSNeoImperialist !== "unset") {
-						r.push(pursuit);
+					r.push(pursuit);
  a vision of a new Imperial Society.
 			<span class="detail">
 				<<link "Abandon" "Future Society">>
 					FutureSocieties.remove("FSNeoImperialist");
 					if (V.assistant.fsAppearance === "neoimperialist") {
-							V.assistant.fsAppearance = "default";
+						V.assistant.fsAppearance = "default";
 					}
 				<</link>>
 			</span>
@@ -1791,31 +1526,31 @@ if (V.seePreg !== 0) {
 			<<includeDOM App.UI.FSChangeDecoration("FSNeoImperialist", _items)>>
 			if (V.policies.publicPA === 1) {
 				if (V.assistant.appearance === "businesswoman") || (V.assistant.appearance === "amazon") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "shemale") || (V.assistant.appearance === "angel") {
-						<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-					}
+					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				}
 			}
 		} else {
 			if (_FSCredits > 0) {
-						<div>
-							[[Neo-Imperialism|Future Society][arc.FSNeoImperialist = 4]] is a vision of a new Imperial society, integrating high technology and old-world culture under the iron fist of your absolute rule.
+					<div>
+						[[Neo-Imperialism|Future Society][arc.FSNeoImperialist = 4]] is a vision of a new Imperial society, integrating high technology and old-world culture under the iron fist of your absolute rule.
 				</div>
-					} else {
-						/*<span class="note"><span style="font-weight:Bold">Neo-Imperialism</span>: a vision of a new Imperial Society, integrating high technology and old-world culture under the iron fist of your absolute rule.</span>*/
-					}
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Neo-Imperialism</span>: a vision of a new Imperial Society, integrating high technology and old-world culture under the iron fist of your absolute rule.</span>*/
+				}
 		}
 	}
 </div>
 
-				<div>
-					if (arc.FSRomanRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSChineseRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
+			<div>
+				if (arc.FSRomanRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSChineseRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
 		if (arc.FSAztecRevivalist !== "unset") {
-						r.push(pursuit);
+					r.push(pursuit);
  a vision of a new Aztec Empire.
 			<span class="detail">
 				<<link "Abandon" "Future Society">>
 					FutureSocieties.remove("FSAztecRevivalist");
 					if (V.assistant.fsAppearance === "aztec revivalist") {
-							V.assistant.fsAppearance = "default";
+						V.assistant.fsAppearance = "default";
 					}
 				<</link>>
 			</span>
@@ -1823,31 +1558,31 @@ if (V.seePreg !== 0) {
 			<<includeDOM App.UI.FSChangeDecoration("FSAztecRevivalist", _items)>>
 			if (V.policies.publicPA === 1) {
 				if (V.assistant.appearance === "goddess") || (V.assistant.appearance === "amazon") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "succubus") {
-						<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-					}
+					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				}
 			}
 		} else {
 			if (_FSCredits > 0) {
-						<div>
-							[[Aztec Revivalism|Future Society][arc.FSAztecRevivalist = 4]] is a vision of a new Aztec Empire.
+					<div>
+						[[Aztec Revivalism|Future Society][arc.FSAztecRevivalist = 4]] is a vision of a new Aztec Empire.
 				</div>
-					} else {
-						/*<span class="note"><span style="font-weight:Bold">Aztec Revivalism</span>: a vision of a new Aztec Empire.</span>*/
-					}
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Aztec Revivalism</span>: a vision of a new Aztec Empire.</span>*/
+				}
 		}
 	}
 </div>
 
-				<div>
-					if (arc.FSRomanRevivalist === "unset") && (arc.FSAztecRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSChineseRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
+			<div>
+				if (arc.FSRomanRevivalist === "unset") && (arc.FSAztecRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSChineseRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
 		if (arc.FSEgyptianRevivalist !== "unset") {
-						r.push(pursuit);
+					r.push(pursuit);
  a vision of Pharaoh's Egypt.
 			<span class="detail">
 				<<link "Abandon" "Future Society">>
 					FutureSocieties.remove("FSEgyptianRevivalist");
 					if (V.assistant.fsAppearance === "egyptian revivalist") {
-							V.assistant.fsAppearance = "default";
+						V.assistant.fsAppearance = "default";
 					}
 				<</link>>
 			</span>
@@ -1855,31 +1590,31 @@ if (V.seePreg !== 0) {
 			<<includeDOM App.UI.FSChangeDecoration("FSEgyptianRevivalist", _items)>>
 			if (V.policies.publicPA === 1) {
 				if (V.assistant.appearance === "goddess") || (V.assistant.appearance === "monstergirl") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "succubus") {
-						<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-					}
+					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				}
 			}
 		} else {
 			if (_FSCredits > 0) {
-						<div>
-							[[Egyptian Revivalism|Future Society][arc.FSEgyptianRevivalist = (4+arc.FSEgyptianRevivalistInterest), arc.FSEgyptianRevivalistIncestPolicy = 0]] is a vision of a Pharaoh's Egypt.
+					<div>
+						[[Egyptian Revivalism|Future Society][arc.FSEgyptianRevivalist = (4+arc.FSEgyptianRevivalistInterest), arc.FSEgyptianRevivalistIncestPolicy = 0]] is a vision of a Pharaoh's Egypt.
 				</div>
-					} else {
-						/*<span class="note"><span style="font-weight:Bold">Egyptian Revivalism</span>: a vision of Pharaoh's Egypt.</span>*/
-					}
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Egyptian Revivalism</span>: a vision of Pharaoh's Egypt.</span>*/
+				}
 		}
 	}
 </div>
 
-				<div>
-					if (arc.FSRomanRevivalist === "unset") && (arc.FSAztecRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSChineseRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
+			<div>
+				if (arc.FSRomanRevivalist === "unset") && (arc.FSAztecRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSChineseRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
 		if (arc.FSEdoRevivalist !== "unset") {
-						r.push(pursuit);
+					r.push(pursuit);
  a vision of Edo Japan.
 			<span class="detail">
 				<<link "Abandon" "Future Society">>
 					FutureSocieties.remove("FSEdoRevivalist");
 					if (V.assistant.fsAppearance === "edo revivalist") {
-							V.assistant.fsAppearance = "default";
+						V.assistant.fsAppearance = "default";
 					}
 				<</link>>
 			</span>
@@ -1887,31 +1622,31 @@ if (V.seePreg !== 0) {
 			<<includeDOM App.UI.FSChangeDecoration("FSEdoRevivalist", _items)>>
 			if (V.policies.publicPA === 1) {
 				if (V.assistant.appearance === "amazon") || (V.assistant.appearance === "monstergirl") || (V.assistant.appearance === "loli") || (V.assistant.appearance === "kitsune") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "succubus") {
-						<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-					}
+					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				}
 			}
 		} else {
 			if (_FSCredits > 0) {
-						<div>
-							[[Edo Revivalism|Future Society][arc.FSEdoRevivalist = 4]] is a vision of Edo Japan.
+					<div>
+						[[Edo Revivalism|Future Society][arc.FSEdoRevivalist = 4]] is a vision of Edo Japan.
 				</div>
-					} else {
-						/*<span class="note"><span style="font-weight:Bold">Edo Revivalism</span>: a vision of Edo Japan.</span>*/
-					}
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Edo Revivalism</span>: a vision of Edo Japan.</span>*/
+				}
 		}
 	}
 </div>
 
-				<div>
-					if (arc.FSRomanRevivalist === "unset") && (arc.FSAztecRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSChineseRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
+			<div>
+				if (arc.FSRomanRevivalist === "unset") && (arc.FSAztecRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSChineseRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
 		if (arc.FSArabianRevivalist !== "unset") {
-						r.push(pursuit);
+					r.push(pursuit);
  a vision of the Sultanate of old.
 			<span class="detail">
 				<<link "Abandon" "Future Society">>
 					FutureSocieties.remove("FSArabianRevivalist");
 					if (V.assistant.fsAppearance === "arabian revivalist") {
-							V.assistant.fsAppearance = "default";
+						V.assistant.fsAppearance = "default";
 					}
 				<</link>>
 			</span>
@@ -1919,31 +1654,31 @@ if (V.seePreg !== 0) {
 			<<includeDOM App.UI.FSChangeDecoration("FSArabianRevivalist", _items)>>
 			if (V.policies.publicPA === 1) {
 				if (V.assistant.appearance === "businesswoman") || (V.assistant.appearance === "schoolgirl") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "succubus") {
-						<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-					}
+					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				}
 			}
 		} else {
 			if (_FSCredits > 0) {
-						<div>
-							[[Arabian Revivalism|Future Society][arc.FSArabianRevivalist = 4]] is a vision of the Sultanate of old.
+					<div>
+						[[Arabian Revivalism|Future Society][arc.FSArabianRevivalist = 4]] is a vision of the Sultanate of old.
 				</div>
-					} else {
-						/*<span class="note"><span style="font-weight:Bold">Arabian Revivalism</span>: a vision of the Sultanate of old.</span>*/
-					}
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Arabian Revivalism</span>: a vision of the Sultanate of old.</span>*/
+				}
 		}
 	}
 </div>
 
-				<div>
-					if (arc.FSRomanRevivalist === "unset") && (arc.FSAztecRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
+			<div>
+				if (arc.FSRomanRevivalist === "unset") && (arc.FSAztecRevivalist === "unset") && (arc.FSEgyptianRevivalist === "unset") && (arc.FSEdoRevivalist === "unset") && (arc.FSArabianRevivalist === "unset") && (arc.FSNeoImperialist === "unset") {
 		if (arc.FSChineseRevivalist !== "unset") {
-						r.push(pursuit);
+					r.push(pursuit);
  a vision of ancient China.
 			<span class="detail">
 				<<link "Abandon" "Future Society">>
 					FutureSocieties.remove("FSChineseRevivalist");
 					if (V.assistant.fsAppearance === "chinese revivalist") {
-							V.assistant.fsAppearance = "default";
+						V.assistant.fsAppearance = "default";
 					}
 				<</link>>
 			</span>
@@ -1951,21 +1686,21 @@ if (V.seePreg !== 0) {
 			<<includeDOM App.UI.FSChangeDecoration("FSChineseRevivalist", _items)>>
 			if (V.policies.publicPA === 1) {
 				if (V.assistant.appearance === "schoolgirl") || (V.assistant.appearance === "monstergirl") || (V.assistant.appearance === "incubus") || (V.assistant.appearance === "succubus") {
-						<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
-					}
+					<span class="note">With _hisA V.assistant.appearance appearance, V.assistant.name is a good public mascot for this goal.</span>
+				}
 			}
 		} else {
 			if (_FSCredits > 0) {
-						<div>
-							[[Chinese Revivalism|Future Society][arc.FSChineseRevivalist = 4]] is a vision of ancient China.
+					<div>
+						[[Chinese Revivalism|Future Society][arc.FSChineseRevivalist = 4]] is a vision of ancient China.
 				</div>
-					} else {
-						/*<span class="note"><span style="font-weight:Bold">Chinese Revivalism</span>: a vision of ancient China.</span>*/
-					}
+				} else {
+					/*<span class="note"><span style="font-weight:Bold">Chinese Revivalism</span>: a vision of ancient China.</span>*/
+				}
 		}
 	}
 </div>
-			</p>
+		</p>
 
 
 		return el;
-- 
GitLab