diff --git a/Changelog.txt b/Changelog.txt
index 4f27175a7f76d82b63dc5203ef87a1625e5fbc54..321daa6d34a894543849bfc9fb37fe00c2e58668 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -3,6 +3,7 @@ Pregmod
 0.10.7.1-3.4.x
 
 	-sugarcube updated to 2.31.1
+	-added a python based save editor
 	-added incubator upgrade to improve young slave pregnancy adaptation
 	-added incubator setting to generate husks for bodyswapping
 	-added nipple growth drugs
diff --git a/devNotes/eyeDescription.rtf b/devNotes/eyeDescription.rtf
new file mode 100644
index 0000000000000000000000000000000000000000..25283d623ea66bb4277fa58e8834e6847e66b068
--- /dev/null
+++ b/devNotes/eyeDescription.rtf
@@ -0,0 +1,378 @@
+{\rtf1\ansi\deff3\adeflang1025
+{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\froman\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\froman\fprq2\fcharset0 DejaVu Sans Mono;}{\f6\fnil\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}}
+{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red152\green118\blue170;\red169\green183\blue198;\red255\green198\blue109;\red204\green120\blue50;\red106\green135\blue89;\red206\green24\blue30;\red43\green43\blue43;}
+{\stylesheet{\s0\snext0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031 Normal;}
+{\s1\sbasedon15\snext16\ilvl0\outlinelevel0\ql\widctlpar\hyphpar0\sb240\sa120\keepn\ltrpar\cf0\b\kerning1\dbch\af6\langfe1031\dbch\af6\afs36\ab\loch\f4\fs36\lang1031 \u220\'dcberschrift 1;}
+{\s15\sbasedon0\snext16\ql\widctlpar\hyphpar0\sb240\sa120\keepn\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\loch\f4\fs28\lang1031 \u220\'dcberschrift;}
+{\s16\sbasedon0\snext16\sl276\slmult1\ql\widctlpar\hyphpar0\sb0\sa140\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\loch\f3\fs24\lang1031 Textk\u246\'f6rper;}
+{\s17\sbasedon16\snext17\sl276\slmult1\ql\widctlpar\hyphpar0\sb0\sa140\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\loch\f3\fs24\lang1031 Liste;}
+{\s18\sbasedon0\snext18\ql\widctlpar\hyphpar0\sb120\sa120\ltrpar\cf0\i\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\loch\f3\fs24\lang1031 Beschriftung;}
+{\s19\sbasedon0\snext19\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\loch\f3\fs24\lang1031 Verzeichnis;}
+{\s20\sbasedon0\snext20\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\loch\f3\fs24\lang1031 Tabelleninhalt;}
+{\s21\sbasedon20\snext21\qc\widctlpar\hyphpar0\ltrpar\cf0\b\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\loch\f3\fs24\lang1031 Tabellen\u252\'fcberschrift;}
+{\s22\sbasedon0\snext22\ql\widctlpar\tqc\tx4819\tqr\tx9638\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\loch\f3\fs24\lang1031 Kopfzeile;}
+{\s23\sbasedon0\snext23\ql\widctlpar\hyphpar0\li567\ri567\lin567\rin567\fi0\sb0\sa283\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\loch\f3\fs24\lang1031 Zitat;}
+}{\*\listtable{\list\listtemplateid1
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}\listid1}
+}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}{\*\generator LibreOffice/6.1.5.2$Linux_X86_64 LibreOffice_project/10$Build-2}{\info{\creatim\yr2020\mo4\dy13\hr11\min6}{\revtim\yr2020\mo4\dy23\hr16\min13}{\printim\yr0\mo0\dy0\hr0\min0}}{\*\userprops}\deftab720
+\hyphauto0\viewscale100
+{\*\pgdsctbl
+{\pgdsc0\pgdscuse451\pgwsxn11906\pghsxn16838\marglsxn30\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;}}
+\formshade{\*\pgdscno0}\paperh16838\paperw11906\margl30\margr0\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn30\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
+{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\b\langfe1031\rtlch \ltrch\loch\lang2057
+Long version:}{\langfe1031\rtlch \ltrch\loch\lang2057
+ "She has ... ."}
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\langfe1031\rtlch \ltrch\loch\lang2057
+All single variations have an inverted equivalent: "a red eye with green sclera and a blue eye"; inverted: "a red eye and a blue eye with yellow sclera" unless the listed variation is already usable for both sides.}
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\langfe1031\rtlch \ltrch\loch\lang2057
+
+\par \trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clbrdrt\brdrs\brdrw15\brdrcf1\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clbrdrt\brdrs\brdrw15\brdrcf1\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clbrdrt\brdrs\brdrw15\brdrcf1\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clbrdrt\brdrs\brdrw15\brdrcf1\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+shape}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+sclera}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left !== right}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red and blue eyes}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes with green sclerae}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red and blue eyes with green sclerae}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left !== right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes; one with a green sclera and the other with a yellow one}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a red eye with green sclera and a blue eye with yellow sclera}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+single}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes; one with a green sclera}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a red eye with green sclera and a blue eye}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+demonic red eyes}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+demonic red and blue eyes}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left !== right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes; one demonic and the other goat-like}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a demonic red eye and a goat-like blue one}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+single}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes; one demonic}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red and blue eyes; both demonic}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+demonic red eyes with green sclerae}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+demonic red and blue eyes with green sclerae}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left !== right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+demonic red eyes; one with a green sclera and the other with a yellow one}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a red eye with green sclera and a blue eye with yellow sclera; both demonic}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+single}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+demonic red eyes; one with a green sclera}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a red eye with green sclera and a blue eye; both demonic}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left !== right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes; one demonic and the other goat-like, with green sclerae}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a demonic red and a goat-like blue eye; both with green sclerae}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left !== right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left !== right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes; one demonic with green sclera and the other goat-like with yellow sclera}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a demonic red eye with green sclera and a goat-like blue eye with yellow sclera}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left !== right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+single}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes; one demonic with green sclera and the other goat-like}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a demonic red eye with green sclera and a goat-like blue eye}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+single}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes; one demonic, with green sclerae}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a demonic red and a blue eye; both with green sclerae}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+single}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left !== right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes; one demonic with green sclera and the other with yellow sclera}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a demonic red eye with green sclera and a blue eye with yellow sclera}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+single}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+single (same)}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes; one demonic with green sclera}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a demonic red eye with green sclera and a blue one}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+single}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+single (other)}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes; one demonic and the other with yellow sclera}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+a demonic red eye and a blue one with yellow sclera}\cell\row\pard\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\langfe1031\rtlch \ltrch\loch\lang2057
+
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\b\langfe1031\rtlch \ltrch\loch\lang2057
+Short version:}{\b0\langfe1031\rtlch \ltrch\loch\lang2057
+ }{\langfe1031\rtlch \ltrch\loch\lang2057
+"She has ... and loves to fuck."}
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031{\langfe1031\rtlch \ltrch\loch\lang2057
+All not listed combinations default to the most similar combination. (single and !== are handled as def)}
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\langfe1031\rtlch \ltrch\loch\lang2057
+
+\par \trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clbrdrt\brdrs\brdrw15\brdrcf1\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clbrdrt\brdrs\brdrw15\brdrcf1\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clbrdrt\brdrs\brdrw15\brdrcf1\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clbrdrt\brdrs\brdrw15\brdrcf1\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+shape}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+sclera}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left !== right}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red and blue eyes}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red eyes with green sclerae}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+red and blue eyes with green sclerae}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+def}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+demonic red eyes}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+demonic red and blue eyes}\cell\row\pard\trowd\trql\trleft0\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx1528\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx3058\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clpadfr3\clpadr55\cellx7543\clpadfl3\clpadl55\clbrdrl\brdrs\brdrw15\brdrcf1\clpadft3\clpadt55\clbrdrb\brdrs\brdrw15\brdrcf1\clpadfb3\clpadb55\clbrdrr\brdrs\brdrw15\brdrcf1\clpadfr3\clpadr55\cellx11848\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+left === right}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+demonic red eyes with green sclerae}\cell\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\intbl{\langfe1031\rtlch \ltrch\loch\lang2057
+demonic red and blue eyes with green sclerae}\cell\row\pard\pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\li0\ri0\lin0\rin0\fi0\sb0\sa0\langfe1031\rtlch \ltrch\loch\lang2057
+
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\li0\ri0\lin0\rin0\fi0\sb0\sa0\langfe1031\rtlch \ltrch\loch\lang2057
+
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\li0\ri0\lin0\rin0\fi0\sb0\sa0{\langfe1031\rtlch \ltrch\loch\lang2057
+Helpfull function to test the descriptions}
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\li0\ri0\lin0\rin0\fi0\sb0\sa0\langfe1031\rtlch \ltrch\loch\lang2057
+
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\li0\ri0\lin0\rin0\fi0\sb0\sa0{\langfe1031\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+App}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+.}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+test }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+= }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+function}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+() \{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+const }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+irisPairs = [\{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"red"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"red"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"red"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"blue"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}]}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+;}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab const }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+pupilPairs = [\{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"circular"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"circular"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"demonic"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"circular"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"demonic"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+,}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"demonic"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"demonic"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"goat-like"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}]}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+;}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab const }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+scleraPairs = [\{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"white"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"white"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"yellow"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"white"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"yellow"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+,}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"yellow"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"yellow"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"green"}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}]}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+;}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line \line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab for }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+(}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+let }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+irisPair }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+of }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+irisPairs) \{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+for }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+(}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+let }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+pupilPair }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+of }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+pupilPairs) \{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+for }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+(}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+let }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+scleraPair }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+of }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+scleraPairs) \{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab \tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+const }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+slave = \{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab \tab \tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+eye}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: \{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab \tab \tab \tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: \{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+iris}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: irisPair.}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+pupil}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: pupilPair.}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+sclera}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: scleraPair.}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+left}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+,}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab \tab \tab \tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: \{}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+iris}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: irisPair.}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+pupil}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: pupilPair.}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+, }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+sclera}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+: scleraPair.}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+right}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab \tab \tab \tab \}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab \tab \tab \}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+;}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab \tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+console}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+.}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+log}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+(}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"She has " }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
++ }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+App}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+.}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+Desc}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+.}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+eyesColorLong}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+(slave) + }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+"."}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+)}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+;}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab \tab }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \tab \}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\tab \}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+\}}{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\fs20\lang2057\loch\f5\hich\af5
+;}
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\li0\ri0\lin0\rin0\fi0\sb0\sa0\langfe1031\rtlch \ltrch\loch\lang2057
+
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\li0\ri0\lin0\rin0\fi0\sb0\sa0\langfe1031\rtlch \ltrch\loch\lang2057
+
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+\line }
+\par \pard\plain \s0\ql\widctlpar\hyphpar0\ltrpar\cf0\kerning1\dbch\af6\langfe1031\dbch\af6\afs24\alang1081\loch\f3\fs24\lang1031\li0\ri0\lin0\rin0\fi0\sb0\sa0\cf0\i0\ulnone\ulc0\b0\langfe1031\ai0\ab0\rtlch \ltrch\loch\lang2057
+
+\par }
\ No newline at end of file
diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index ff132f1b933430dfe5d1d1be0313437b6fc2b3b5..3a3c7298a13b5739032c6b1cbc4ea35caf60fd33 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -251,7 +251,6 @@ App.Data.resetOnNGPlus = {
 	personalShares: 0,
 	publicShares: 0,
 	SF: {},
-	shelterGirlsIDs: [], // Only needed in endweek loop
 	recuriterOffice: 0,
 	focus: "social engineering",
 	thisWeeksFSWares: 0,
diff --git a/js/003-data/slaveSummaryData.js b/js/003-data/slaveSummaryData.js
index 4e2a4f5ab0c4d580823b324aa459dc564a1af5cc..3a03d1d71ad0d63e3e99b39c5700589f2be94e15 100644
--- a/js/003-data/slaveSummaryData.js
+++ b/js/003-data/slaveSummaryData.js
@@ -186,7 +186,7 @@ App.Data.SlaveSummary = {
 				130: {desc: "Toned"},
 				150: {desc: "Fit"},
 				195: {desc: "Muscular"},
-				100: {desc: "Hugely muscular"}
+				200: {desc: "Hugely muscular"}
 			}
 		},
 		mental: {
@@ -822,7 +822,7 @@ App.Data.SlaveSummary = {
 				130: {desc: "Toned"},
 				150: {desc: "Fit"},
 				195: {desc: "Musc+"},
-				100: {desc: "Musc++"}
+				200: {desc: "Musc++"}
 			}
 		},
 		mental: {
diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index d2278d399ae3f487f17c82b079804a66e331a7a9..f15f9b8f68e52e94df842de133bd7d8a02016319 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -3816,6 +3816,17 @@ accepts int
 0 - no
 1 - yes, comforting
 2 - yes, terrifying
+3 - yes, vegetable (do not use outside of incubator!)
+
+clone:
+
+Is she a clone?
+0 - yes
+1 - no
+
+cloneID:
+
+If she is a clone, the ID of her source
 
 geneMods:
 
diff --git a/src/003-assets/CSS/links.css b/src/003-assets/CSS/links.css
index e7f58a50fac71e6f4e34463e98674b5c29384613..dec77772527ba73940bc1a9fb09392fb97d05415 100644
--- a/src/003-assets/CSS/links.css
+++ b/src/003-assets/CSS/links.css
@@ -46,3 +46,17 @@
 	opacity: 1;
 	transition-delay: 0.3s;
 }
+
+ul.choicesStrip {
+	display: inline;
+	list-style-type: none;
+	padding: 0mm;
+}
+
+ul.choicesStrip li {
+	display: inline;
+}
+
+ul.choicesStrip li + li:before {
+    content: " | ";
+}
diff --git a/src/endWeek/endWeek.js b/src/endWeek/endWeek.js
new file mode 100644
index 0000000000000000000000000000000000000000..7ef4ccfc42363b602100d61ade5d346cd019449c
--- /dev/null
+++ b/src/endWeek/endWeek.js
@@ -0,0 +1,340 @@
+window.endWeek = (function() {
+	function doEndWeek() {
+		// purge SugarCube's expired state cache
+		State.expired.length = 0;
+
+		// report setup
+		setupLastWeeksCash();
+		setupLastWeeksRep();
+
+		// globals setup
+		resetSlaveMarkets();
+		resetSlaveCounters();
+		for (const s of V.slaves) {
+			slavePrep(s);
+		}
+		setUseWeights();
+		saveWeekTotals();
+
+		// pass time for objects that need it
+		organs();
+		prosthetics();
+		nursery();
+		food();
+		PC();
+
+		// week end is done, move on to gameover or SA reports
+		resetMiscGlobals();
+		advance();
+	}
+
+	function resetSlaveMarkets() {
+		V.gingering = 0;
+		delete V.slaveMarket;
+		for (const school of [ "TSS", "GRI", "SCP", "LDE", "TGA", "HA", "TFS", "TCR", "NUL" ]) {
+			V[school].schoolSale = 0;
+		}
+	}
+
+	function resetSlaveCounters() {
+		V.inflatedSlavesCum = 0;
+		V.inflatedSlavesMilk = 0;
+		V.subSlaves = 0;
+	}
+
+	function slavePrep(s) {
+		if (s.inflationMethod === 1 || s.inflationMethod === 2) {
+			if (s.inflationType === "milk") {
+				V.inflatedSlavesMilk++;
+			} else if (s.inflationType === "cum") {
+				V.inflatedSlavesCum++;
+			}
+		}
+		if (s.assignment === "be a subordinate slave" && s.subTarget === 0) {
+			V.subSlaves++;
+		}
+		s.lastWeeksCashIncome = 0;
+		s.lastWeeksRepIncome = 0;
+		s.lastWeeksRepExpenses = 0;
+	}
+
+	function setUseWeights() {
+		V.oralUseWeight = 5;
+		V.vaginalUseWeight = 5;
+		V.analUseWeight = 5;
+		V.mammaryUseWeight = 1;
+		V.penetrativeUseWeight = 1;
+
+		if (V.OralEncouragement === 1) {
+			V.oralUseWeight += 2;
+			V.vaginalUseWeight -= 1;
+			V.analUseWeight -= 1;
+		} else if (V.VaginalEncouragement === 1) {
+			V.oralUseWeight -= 1;
+			V.vaginalUseWeight += 2;
+			V.analUseWeight -= 1;
+		} else if (V.AnalEncouragement === 1) {
+			V.oralUseWeight -= 1;
+			V.vaginalUseWeight -= 1;
+			V.analUseWeight += 2;
+		}
+
+		if (V.OralDiscouragement === 1) {
+			V.oralUseWeight -= 2;
+			V.vaginalUseWeight += 1;
+			V.analUseWeight += 1;
+		}
+		if (V.VaginalDiscouragement === 1) {
+			V.oralUseWeight += 1;
+			V.vaginalUseWeight -= 2;
+			V.analUseWeight += 1;
+		}
+		if (V.AnalDiscouragement === 1) {
+			V.oralUseWeight += 1;
+			V.vaginalUseWeight += 1;
+			V.analUseWeight -= 2;
+		}
+
+		if (V.sexualOpeness === 1) {
+			V.penetrativeUseWeight += 1;
+		}
+	}
+
+	function saveWeekTotals() {
+		V.cashLastWeek = V.cash;
+		V.repLastWeek = V.rep;
+		V.foodLastWeek = V.food;
+	}
+
+	function organs() {
+		function advanceOrgan(o) {
+			if (o.weeksToCompletion > 0) {
+				if (V.organFarmUpgrade === 3) {
+					o.weeksToCompletion -= 4;
+				} else if (V.organFarmUpgrade === 2) {
+					o.weeksToCompletion -= 2;
+				} else {
+					o.weeksToCompletion--;
+				}
+			}
+		}
+
+		for (const organ of V.organs) {
+			advanceOrgan(organ);
+		}
+
+		// move completed non-incubator organs to V.completedOrgans
+		V.organs = V.organs.filter(function(o) {
+			if (o.weeksToCompletion <= 0) {
+				V.completedOrgans.push(o);
+				return false;
+			}
+			return true;
+		});
+
+		for (const organ of V.incubatorOrgans) {
+			advanceOrgan(organ);
+		}
+
+		// TODO: nurseryOrgans too, if those ever exist...
+	}
+
+	function prosthetics() {
+		for (const p of V.adjustProsthetics) {
+			if (p.workLeft > 0) {
+				if (V.prostheticsUpgrade === 3) {
+					p.workLeft -= 40;
+				} else if (V.prostheticsUpgrade === 2) {
+					p.workLeft -= 20;
+				} else {
+					p.workLeft -= 10;
+				}
+				if (p.workLeft <= 0){
+					V.adjustProstheticsCompleted++;
+				}
+			}
+		}
+	}
+
+	function nursery() {
+		for (const c of V.cribs) {
+			c.growTime--;
+			c.birthWeek++;
+			if (c.birthWeek >= 52) {
+				c.birthWeek = 0;
+				c.actualAge++;
+			}
+			if (c.actualAge >= 3) {
+				App.Facilities.Nursery.infantToChild(c);
+			}
+		}
+	}
+
+	function food() {
+		function foodConsumption(s) {
+			if (s.diet === "restricted") {
+				return 1.8;
+			} else if (s.diet === "slimming") {
+				return 1.9;
+			} else if (s.diet === "muscle building") {
+				return 2.1;
+			} else if (s.diet === "fattening") {
+				return 2.2;
+			} else {
+				return 2;
+			}
+		}
+
+		if (V.foodMarket > 0) {
+			V.foodConsumption = ((V.lowerClass*V.foodRate.lower) + (V.middleClass*V.foodRate.middle) + (V.upperClass*V.foodRate.upper) + (V.topClass*V.foodRate.top));
+			V.foodConsumption += V.slaves.reduce((acc, cur) => acc += foodConsumption(cur), 0);
+			V.food -= Math.max(V.foodConsumption, V.food);
+			V.foodConsumption = 0;
+		}
+	}
+
+	function PC() {
+		V.PC.sexualEnergy = 4;
+		if (V.PCSlutContacts === 2) {
+			V.PC.sexualEnergy -= 3;
+		}
+		if (V.personalAttention === "sex") {
+			V.PC.sexualEnergy += 2;
+		}
+		if (V.PC.physicalAge >= 80) {
+			V.PC.sexualEnergy -= 6;
+		} else if (V.PC.physicalAge >= 72) {
+			V.PC.sexualEnergy -= 5;
+		} else if (V.PC.physicalAge >= 65) {
+			V.PC.sexualEnergy -= 4;
+		} else if (V.PC.physicalAge >= 58) {
+			V.PC.sexualEnergy -= 3;
+		} else if (V.PC.physicalAge >= 50) {
+			V.PC.sexualEnergy -= 2;
+		} else if (V.PC.physicalAge >= 42) {
+			V.PC.sexualEnergy -= 1;
+		} else if (V.PC.physicalAge >= 35) {
+			V.PC.sexualEnergy += 0;
+		} else if (V.PC.physicalAge >= 31) {
+			V.PC.sexualEnergy += 1;
+		} else if (V.PC.physicalAge >= 28) {
+			V.PC.sexualEnergy += 2;
+		} else if (V.PC.physicalAge >= 21) {
+			V.PC.sexualEnergy += 3;
+		} else if (V.PC.physicalAge >= 13) {
+			V.PC.sexualEnergy += 4;
+		} else if (V.PC.physicalAge === 12) {
+			V.PC.sexualEnergy += 1;
+		} else if (V.PC.physicalAge === 11) {
+			V.PC.sexualEnergy -= 2;
+		} else if (V.PC.physicalAge >= 0) {
+			V.PC.sexualEnergy -= 6;
+		}
+		if (V.PC.balls >= 10) {
+			V.PC.sexualEnergy += 2;
+		} else if (V.PC.balls >= 5) {
+			V.PC.sexualEnergy++;
+		}
+		if (V.PC.preg > 20) {
+			if (V.PC.pregMood === 2) {
+				V.PC.sexualEnergy += 4;
+			} else {
+				V.PC.sexualEnergy -= 3;
+			}
+		} else if (V.PC.preg > 0) {
+			V.PC.sexualEnergy -= 1;
+		} else {
+			if (V.PC.fertDrugs === 1) {
+				V.PC.sexualEnergy++;
+			}
+			if (V.PC.forcedFertDrugs > 0) {
+				V.PC.sexualEnergy += 2;
+			}
+		}
+		if (V.PC.staminaPills > 0) {
+			V.PC.sexualEnergy += 2;
+		}
+		if (V.PC.preg > 0) {
+			WombProgress(V.PC, 1, 1);
+			WombNormalizePreg(V.PC);
+			V.PC.pregWeek = V.PC.preg;
+			let newBelly = WombGetVolume(V.PC);
+			if (newBelly >= V.PC.belly) {
+				V.PC.belly = newBelly;
+			} else if (V.PC.belly > 500) {
+				V.PC.belly *= .75;
+			}
+			V.PC.fertDrugs = 0;
+		} else if (V.PC.belly > 0) {
+			if (V.PC.belly < 100) {
+				V.PC.belly = 0;
+			} else {
+				V.PC.belly *= .75;
+			}
+		}
+		if (V.PC.pregWeek < 0) {
+			V.PC.pregWeek++;
+		}
+	}
+
+	function resetMiscGlobals() {
+		// if a global is going to be used by the end-of-week reports, it must be reset here instead of in Next Week
+		V.showEncyclopedia = 0;
+		V.expiree = 0;
+		V.retiree = 0;
+
+		V.HGEnergy = 0;
+		V.HGCum = 0;
+		V.HGSlaveSuccess = 0;
+		V.HeadGirl = 0;
+		V.Recruiter = 0;
+		V.Madam = 0;
+		V.unMadam = 0;
+		V.madamCashBonus = 0;
+		V.whorePriceAdjustment = {};
+		V.DJ = 0;
+		V.unDJ = 0;
+		V.DJRepBonus = 0;
+		V.Milkmaid = 0;
+		V.Farmer = 0;
+		V.Collectrix = 0;
+		V.Stewardess = 0;
+		V.Schoolteacher = 0;
+		V.Wardeness = 0;
+		V.Concubine = 0;
+		V.Attendant = 0;
+		V.Matron = 0;
+		V.Nurse = 0;
+		V.Bodyguard = 0;
+		V.Stud = 0;
+		V.StudCum = 0;
+		V.fuckSlaves = 0;
+		V.freeSexualEnergy = 0;
+		V.publicServants = 0;
+		V.cumSlaves = 0;
+		V.averageDick = 0;
+		V.slavesWithWorkingDicks = 0;
+		V.slaveJobValues = {};
+	}
+
+	function advance() {
+		if (V.slaves.length < 1) {
+			V.gameover = "no slaves";
+			Engine.play("Gameover");
+		} else if (V.arcologies[0].ownership < V.arcologies[0].minority) {
+			V.gameover = "ownership";
+			Engine.play("Gameover");
+		} else {
+			Engine.play("Slave Assignments Report");
+		}
+	}
+
+	function confirmEndWeek() {
+		if (!V.sideBarOptions.confirmWeekEnd || confirm("Are you sure you want to end the week?")) {
+			window.LoadLockID = LoadScreen.lock();
+			setTimeout(doEndWeek, 0); // execute immediately, but after the event loop runs, so the loading screen gets shown
+		}
+	}
+
+	return confirmEndWeek;
+})();
diff --git a/src/endWeek/saPleaseYou.js b/src/endWeek/saPleaseYou.js
index 8cdf00d4f1154504bade380a937c280f2238037a..59831fcac7e636b73802e6624e286a8d82830a20 100644
--- a/src/endWeek/saPleaseYou.js
+++ b/src/endWeek/saPleaseYou.js
@@ -1260,7 +1260,7 @@ window.saPleaseYou = (function saPleaseYou() {
 				}
 				r.push(`and, since ${his} pussy is covered by ${his} chastity belt, asshole`);
 			} else {
-				r += `mouth `;
+				r.push(`mouth `);
 				if (V.PC.dick !== 0 && slave.nipples === "fuckable") {
 					r.push(`and nipples`);
 				}
@@ -1335,7 +1335,7 @@ window.saPleaseYou = (function saPleaseYou() {
 				}
 				r.push(`and, since ${his} pussy is covered by ${his} chastity belt, asshole`);
 			} else {
-				r += `mouth `;
+				r.push(`mouth `);
 				if (V.PC.dick !== 0 && slave.nipples === "fuckable") {
 					r.push(`and nipples`);
 				}
@@ -1500,7 +1500,7 @@ window.saPleaseYou = (function saPleaseYou() {
 			if (slaveResting(slave)) {
 				r.push(`${He} spends reduced hours serving you in order to <span class="green">offset ${his} lack of rest.</span>`);
 			} else if (slave.tired + 11 >= 90 && !willWorkToDeath(slave)) {
-				r.push(`${He} attempts to rebuke your advances due ${his} exhaustion, but can do little to avoid them or the resulting <span class="trust dec">severe punishment.</span> It still feels like <span class="devotion dec">fucking a dead fish,</span> since it's obvious that ${he} has choosen ${his} overall well-being over angering you.`);
+				r.push(`${He} attempts to rebuke your advances due ${his} exhaustion, but can do little to avoid them or the resulting <span class="trust dec">severe punishment.</span> It still feels like <span class="devotion dec">fucking a dead fish,</span> since it's obvious that ${he} has chosen ${his} overall well-being over angering you.`);
 				slave.devotion -= 10;
 				slave.trust -= 5;
 			} else {
diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index 5f6b2cb30039e22e1810bedf6bf6893010aa7676..347e4de74f78cfb8561764a40adb2b3ef270c478 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -1533,6 +1533,12 @@ window.saServeThePublic = (function saServeThePublic() {
 					} else if (vignette.effect < 0) {
 						cashX(forceNeg(cashVign), "slaveAssignmentClubVign", slave);
 					}
+				} else if (slave.assignment === window.Job.DJ) {
+					if (vignette.effect > 0) {
+						cashX(cashVign, "slaveAssignmentDjVign", slave);
+					} else if (vignette.effect < 0) {
+						cashX(forceNeg(cashVign), "slaveAssignmentDjVign", slave);
+					}
 				} else {
 					if (vignette.effect > 0) {
 						cashX(cashVign, "vignette public sexslave income in an unregistered building", slave);
diff --git a/src/events/001-base/baseEvent.js b/src/events/001-base/baseEvent.js
index 67bab1f667c67612817c957eb387a9d51c1983ad..bd14a10f55da84020788990198f41fd24a92797d 100644
--- a/src/events/001-base/baseEvent.js
+++ b/src/events/001-base/baseEvent.js
@@ -2,7 +2,7 @@
 App.Events.BaseEvent = class BaseEvent {
 	/** build a new event
 	 *  parameters are necessary for serialization (so that saving with the event active will work correctly) and should not normally be used directly
-	 *  child classes should forward to this implementation */
+	 *  child classes will inherit this implementation automatically, and should not normally need their own constructor implementation */
 	constructor(actors, params) {
 		/** @member {Array<number>} actors - a list of IDs for the actors participating in this event. */
 		this.actors = actors || [];
diff --git a/src/events/RESS/lazyEvening.js b/src/events/RESS/lazyEvening.js
index 2c9223306d59b0a6680df496b51f890ce5c54589..f7197cbc03837bf10aaa723cdd5f7aca9eea1a5e 100644
--- a/src/events/RESS/lazyEvening.js
+++ b/src/events/RESS/lazyEvening.js
@@ -1,8 +1,4 @@
 App.Events.RESSLazyEvening = class RESSLazyEvening extends App.Events.BaseEvent {
-	constructor(actors, params) {
-		super(actors, params);
-	}
-
 	eventPrerequisites() {
 		return [];
 	}
diff --git a/src/events/RESS/muscles.js b/src/events/RESS/muscles.js
index 06dff12a6a2577635a02a166cc9c30a4038786b2..2671d77a2ffa7263a8e883fddba0c4680a590467 100644
--- a/src/events/RESS/muscles.js
+++ b/src/events/RESS/muscles.js
@@ -1,8 +1,4 @@
 App.Events.RESSMuscles = class RESSMuscles extends App.Events.BaseEvent {
-	constructor(actors, params) {
-		super(actors, params);
-	}
-
 	eventPrerequisites() {
 		return [];
 	}
diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw
index 25f164f96dbd605afa5e7a460a21a47cf22a77d6..6940e8908cf7a8c1e3ea334286ca089f57663d71 100644
--- a/src/events/intro/introSummary.tw
+++ b/src/events/intro/introSummary.tw
@@ -589,9 +589,9 @@ You may review your settings before clicking "Continue" to begin.<br>
 
 	<<options $realRoyalties>>
 		<<option 1 "Historical dynasties">>
-			When getting an event for enslaving the members of the royalty, they will have nationalities and surnames of the real royalties.
+			When enslaving Royalty, they will have nationalities and surnames of the real royalties.
 		<<option 0 "Random dynasties">>
-			When getting an event for enslaving the members of the royalty, their nationalities and surnames will be random.
+			When enslaving Royalty, their nationalities and surnames will be random.
 	<</options>>
 
 	<<options $allowMaleSlaveNames>>
@@ -612,6 +612,15 @@ You may review your settings before clicking "Continue" to begin.<br>
 			Names will always be ''Surname Name''.
 	<</options>>
 
+	<<options $limitFamilies>>
+		<<option 1 "Restrict family size">>
+			Vanilla emulation.
+		<<option 0 "Allow extended families">>
+			Extended family mode.
+		<<comment>>
+			Controls acquisition of additional relatives, by means other than birth, for slaves with families.
+	<</options>>
+
 	<<options $showDistantRelatives>>
 		<<option 1 "Enable distant relatives">>
 			Distant relatives ''will'' be tracked.
diff --git a/src/events/reDevotees.js b/src/events/reDevotees.js
index 588cf91541880648899f85b0d118404ffac29573..dd997e8f98e4768c577a47dc1b15c25b88ced2a4 100644
--- a/src/events/reDevotees.js
+++ b/src/events/reDevotees.js
@@ -1,8 +1,4 @@
 App.Events.REDevotees = class REDevotees extends App.Events.BaseEvent {
-	constructor(actors, params) {
-		super(actors, params);
-	}
-
 	eventPrerequisites() {
 		return []; // always valid if sufficient actors can be cast successfully
 	}
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index 04166f071cd7190fc0085ee0446a286e664226d5..5c6fa56fe2b4d6f191fd54d647f4d19128220dd4 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -2668,6 +2668,7 @@ LORE: INTERVIEWS
 	<br>''CheatMode'' for additional cheatmode options.
 	<br>''Transhumanist01'' for the production of husk slaves via incubator.
 	<br>''Fake_Dev'' for nipple enhancers.
+	<br>''UnwrappedGodiva'' for a tool to edit save files.
 	<br>''git contributors lost to time'' for their submissions and work through pregmod's git.
 	<br>''Bane70'' optimized huge swaths of code with notable professionalism.
 	<br>''Circle Tritagonist'' provided several new collars and outfits.
@@ -2843,7 +2844,7 @@ LORE: INTERVIEWS
 	''Super Fertility Drugs'' practically guarantee a slave will bear multiple children, and when combined with female hormones, will generally lead to hyper-pregnancy The also have the side effects of inducing lactation, increasing sex drive, and increasing attraction to men. Researched through the dispensary.
 
 <<case "Pregnancy Generator">>
-	The ''Pregnancy Generator'' is a small implant inserted into a slave's womb where it anchors itself and begins pumping the slave full of drugs and hormones with the intent to trick the slave's body into believing it both is and isn't pregnant. The slave's body will begin constantly releasing ovum that, once fertilized, will embed themselves into the uterine lining and begin growing. This will continue for as long as the implant is in place, regardless to how large the slave grows with children. Once the first set of infants is born, the implanted slave will give birth nearly a dozen times per week as her body continuously produces new offspring. Will likely lead to the slave's early death as her body will be consumed to feed her unending brood. Researched through the dispensary.
+	The ''Pregnancy Generator'' is a small implant inserted into a slave's womb where it anchors itself and begins pumping the slave full of drugs and hormones with the intent to trick the slave's body into believing it both is and isn't pregnant. The slave's body will begin constantly releasing ovum that, once fertilized, will embed themselves into the uterine lining and begin growing. This will continue for as long as the implant is in place, regardless of how large the slave grows with children. Once the first set of infants is born, the implanted slave will give birth nearly a dozen times per week as her body continuously produces new offspring. Will likely lead to the slave's early death as her body will be consumed to feed her unending brood. Researched through the implant manufactory.
 
 <<case "Childbirth and C-Secs">>
 	Eventually a pregnant slave will need to give birth. Cesarean sections are an option should a slave's health not permit a safe natural birth, or should a slaveowner want to keep her from being stretched out by her newborn child. A healthy, well rested slave, with wide hips and some knowledge will generally find childbirth easy. Though poor health, tiredness, narrow hips, anorexia, tight vaginas, excessively young motherhood, and lack of experience can complicate things, potentially leading to the loss of both child and mother.
diff --git a/src/gui/storyCaptionWidgets.tw b/src/gui/storyCaptionWidgets.tw
index 899efabf70500af9cb4998577518c781e6ce5bf9..7e20114b35f6e1f0b7f361f1ed75cf47575d0522 100644
--- a/src/gui/storyCaptionWidgets.tw
+++ b/src/gui/storyCaptionWidgets.tw
@@ -7,7 +7,7 @@
 	<<if _Pass != "End Week">>
 		<<if _Pass == "Main">>
 			<strong>
-				<div id="endWeekButton"><<link "$nextButton">><</link>> @@.cyan;[Ent]@@</div>
+				<div id="endWeekButton"><<link "END WEEK">><<run endWeek()>><</link>> @@.cyan;[Ent]@@</div>
 			</strong>
 			<<if $rulesAssistantAuto == 1 && DefaultRulesError()>>
 				<div>@@.yellow;WARNING: Rules Assistant has rules with errors!@@</div>
@@ -26,15 +26,6 @@
 			</div></strong>
 		<</if>>
 	<</if>>
-	<<script>>
-		$(document).one(':passageend', () => {
-			$('#endWeekButton').click(() => {
-				if (!V.sideBarOptions.confirmWeekEnd || confirm("Are you sure you want to end the week?")) {
-					Engine.play(V.nextLink);
-				}
-			});
-		});
-	<</script>>
 <</widget>>
 
 <<widget "security">>
diff --git a/src/interaction/budgets/recordTemplates.js b/src/interaction/budgets/recordTemplates.js
index 86c8582596f095e60d1d06b2fe6d89991a082e17..09c8b1a397201aa89fc8baa4b0ca6d157a714643 100644
--- a/src/interaction/budgets/recordTemplates.js
+++ b/src/interaction/budgets/recordTemplates.js
@@ -40,6 +40,7 @@ App.Data.Records.LastWeeksCash = function() {
 	this.slaveAssignmentWarden = 0,
 	this.slaveAssignmentCellblock = 0,
 	this.slaveAssignmentDj = 0,
+	this.slaveAssignmentDjVign = 0,
 	this.slaveAssignmentClub = 0,
 	this.slaveAssignmentClubVign = 0,
 	this.slaveAssignmentNurse = 0,
diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js
index b187865f2dd471fc3c70e8c0586a6377d9d96cb0..c501780ce63300ae6237c0395ec88d2f2512b71b 100644
--- a/src/interaction/slaveInteract.js
+++ b/src/interaction/slaveInteract.js
@@ -21,209 +21,146 @@ App.UI.SlaveInteract.placeInLine = function(slave) {
 	return [ slaveList[prevIndex].ID, slaveList[nextIndex].ID ];
 };
 
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @return {Node}
+ */
 App.UI.SlaveInteract.modify = function(slave) {
-	/** @type {App.Entity.SlaveState} */
 	const {he, his} = getPronouns(slave);
 	let el = new DocumentFragment();
 	let div;
 	let note;
 
-	let sceneIntro = document.createElement('p');
-	sceneIntro.className = "scene-intro";
+	const isAgent = ["be your agent", "live with your agent"].includes(slave.assignment);
 
-	if (["be your agent", "live with your agent"].includes(slave.assignment)) {
-		sceneIntro.textContent = "Recall your agent to modify them.";
-		el.append(sceneIntro);
-	} else {
-		sceneIntro.textContent = "Take slave to another room.";
-		el.append(sceneIntro);
+	App.UI.DOM.appendNewElement('p', el, isAgent ? "Recall your agent to modify them." : "Take slave to another room.", "scene-intro");
 
-		// Salon
-		div = document.createElement('div');
-		div.appendChild(
-			App.UI.DOM.link(
-				"Auto salon",
-				() => {
-					V.activeSlave = slave,
-					V.degradation = 0,
-					V.primaryHairColor = "",
-					V.secondaryHairColor = "",
-					V.primaryEarColor = "",
-					V.secondaryEarColor = "",
-					V.primaryTailColor = "",
-					V.secondaryTailColor = "",
-					V.artificialEyeColor = "",
-					V.artificialEyeShape = "",
-					V.artificialEyeFill = "",
-					V.tattooChoice = "",
-					V.piercingLevel = "";
-				},
-				[],
-				"Salon"
-			)
-		);
-		note = document.createElement('span');
-		note.className="note";
-		note.textContent = ` Modify hair (color, length, style), nails, and even skin color.`;
+	if (isAgent) {
+		return el;
+	}
 
-		div.append(note);
-		el.append(div);
+	/**
+	 * Create a link with a note to send a  slave to a specific room
+	 * @param {Node} c
+	 * @param {string} caption
+	 * @param {string} passage
+	 * @param {string} note
+	 * @param {function ():void} handler
+	 */
+	function makeRoomLink(c, caption, passage, note, handler) {
+		const res = document.createElement('div');
+		c.appendChild(res);
+		res.appendChild(App.UI.DOM.link(caption, handler, [], passage));
+		App.UI.DOM.appendNewElement('span', res, note, "note");
+		return res;
+	}
+
+	makeRoomLink(el, "Auto salon", "Salon", ' Modify hair (color, length, style), nails, and even skin color.',
+		() => {
+			V.activeSlave = slave,
+			V.degradation = 0,
+			V.primaryHairColor = "",
+			V.secondaryHairColor = "",
+			V.primaryEarColor = "",
+			V.secondaryEarColor = "",
+			V.primaryTailColor = "",
+			V.secondaryTailColor = "",
+			V.artificialEyeColor = "",
+			V.artificialEyeShape = "",
+			V.artificialEyeFill = "",
+			V.tattooChoice = "",
+			V.piercingLevel = "";
+		}
+	);
 
-		// Body Mod
-		div = document.createElement('div');
-		div.appendChild(
-			App.UI.DOM.link(
-				"Body mod studio",
-				() => {
-					V.activeSlave = slave,
-					V.degradation = 0,
-					V.tattooChoice = undefined;
-				},
-				[],
-				"Body Modification"
-			)
-		);
-		note = document.createElement('span');
-		note.className="note";
-		note.textContent = ` Mark your slave with piercings, tattoos, brands or even scars.`;
+	makeRoomLink(el, "Body mod studio", "Body Modification", ' Mark your slave with piercings, tattoos, brands or even scars.',
+		() => {
+			V.activeSlave = slave,
+			V.degradation = 0,
+			V.tattooChoice = undefined;
+		},
+	);
 
-		div.append(note);
-		el.append(div);
+	makeRoomLink(el, "Remote surgery", "Remote Surgery", ` Surgically modify your slave with state of the art plastic surgery and more. Alter ${his} senses, skeletal structure, organs, and even more.`,
+		() => {
+			V.activeSlave = slave,
+			V.degradation = 0;
+		}
+	);
 
-		// Surgery
-		div = document.createElement('div');
-		div.appendChild(
-			App.UI.DOM.link(
-				"Remote surgery",
-				() => {
-					V.activeSlave = slave,
-					V.degradation = 0;
-				},
-				[],
-				"Remote Surgery"
-			)
+	// Prosthetics
+	if (V.prostheticsUpgrade > 0) {
+		makeRoomLink(el, "Configure cybernetics", "Prosthetics Configuration", ` Configure prosthetics, if ${he} has been surgically implanted with interfaces that support it.`,
+			() => {
+				V.activeSlave = slave,
+				V.prostheticsConfig = "main";
+			}
 		);
-		note = document.createElement('span');
-		note.className="note";
-		note.textContent = ` Surgically modify your slave with state of the art plastic surgery and more. Alter ${his} senses, skeletal structure, organs, and even more.`;
-
-		div.append(note);
-		el.append(div);
-
-		// Prosthetics
-		if (V.prostheticsUpgrade > 0) {
-			div = document.createElement('div');
-			div.appendChild(
-				App.UI.DOM.link(
-					"Configure cybernetics",
-					() => {
-						V.activeSlave = slave,
-						V.prostheticsConfig = "main";
-					},
-					[],
-					"Prosthetics Configuration"
-				)
-			);
-			note = document.createElement('span');
-			note.className="note";
-			note.textContent = ` Configure prosthetics, if ${he} has been surgically implanted with interfaces that support it.`;
-
-			div.append(note);
-			el.append(div);
-		}
 	}
+
 	return el;
 };
 
+/**
+ * @param {App.Entity.SlaveState} slave
+ */
 App.UI.SlaveInteract.fucktoyPref = function(slave) {
-	/** @type {App.Entity.SlaveState} */
 	const {his} = getPronouns(slave);
-	let el = document.createElement('div');
+	const el = document.createElement('div');
 	let links = [];
 
-	if ((slave.assignment === "please you") || (slave.assignment === "serve in the master suite") || (slave.assignment === "be your Concubine")) {
-		let storyLabel = document.createElement('span');
-		storyLabel.className = "story-label";
-		storyLabel.textContent = `Fucktoy use preference:`;
-		el.appendChild(storyLabel);
+	function appendLink(text, toyHole, enabled, disabledText) {
+		const link = {text: text};
+		if (enabled) {
+			link.toyHole = toyHole;
+		} else {
+			link.disabled = disabledText;
+		}
+		links.push(link);
+	}
 
+	if ((slave.assignment === App.Data.Facilities.penthouse.jobs.fucktoy.assignment) || (slave.assignment === App.Data.Facilities.masterSuite.jobs.fucktoy.assignment) || (slave.assignment === App.Data.Facilities.masterSuite.manager.assignment)) {
+		App.UI.DOM.appendNewElement("span", el, "Fucktoy use preference:", "story-label");
 		el.append(` `);
 
-		let hole = document.createElement('span');
+		const hole = App.UI.DOM.appendNewElement('span', el, `${slave.toyHole}. `);
 		hole.style.fontWeight = "bold";
-		hole.textContent = `${slave.toyHole}. `;
-		el.appendChild(hole);
 
-		/** @type {object} */
+		appendLink('Mouth', 'mouth', true);
+		appendLink('Tits', 'boobs', true);
+		if (slave.vagina >= 0) {
+			appendLink('Pussy', 'pussy', slave.vagina > 0 && canDoVaginal(slave), `Take ${his} virginity before giving ${his} pussy special attention`);
+		}
+		appendLink('Ass', 'ass', (slave.anus > 0) && canDoAnal(slave), `Take ${his} anal virginity before giving ${his} ass special attention`);
+		if (slave.dick > 0 && canPenetrate(slave)) {
+			appendLink('Dick', 'dick', true);
+		}
+		appendLink('No Preference', "all her holes", true);
+	}
+
+	function generateLink(linkDesc) {
+		// is it just text?
+		if (linkDesc.disabled) { return App.UI.DOM.disabledLink(linkDesc.text, [linkDesc.disabled]); }
+		// Are they already on this toyHole?
+		if (linkDesc.toyHole === slave.toyHole) { return document.createTextNode(linkDesc.text); }
+		// Set up the link
+		const link = App.UI.DOM.link(
+			linkDesc.text,
+			() => {
+				slave.toyHole = linkDesc.toyHole;
+				App.UI.SlaveInteract.fucktoyPref(slave);
+			},
+		);
 
-		links.push({text: `Mouth`, toyHole: `mouth`});
-		links.push({text: `Tits`, toyHole: `boobs`});
-		if ((slave.vagina > 0) && canDoVaginal(slave)) {
-			links.push({text: `Pussy`, toyHole: `pussy`});
-		} else if (slave.vagina === 0) {
-			links.push({text: `Pussy`, disabled: `Take ${his} virginity before giving ${his} pussy special attention`});
-		}
-		if ((slave.anus > 0) && canDoAnal(slave)) {
-			links.push({text: `Ass`, toyHole: `ass`});
-		} else {
-			links.push({text: `Ass`, disabled: `Take ${his} anal virginity before giving ${his} ass special attention`});
-		}
-		if ((slave.dick > 0) && canPenetrate(slave)) {
-			links.push({text: `Dick`, toyHole: `dick`});
+		// add a note node if required
+		if (linkDesc.note) {
+			App.UI.DOM.appendNewElement("span", link, `${linkDesc.note} `, "note");
 		}
-		links.push({text: `No Preference`, toyHole: `all ${his} holes`});
+		return link;
 	}
-	el.appendChild(generateRows(links));
 
-	function generateRows(toyHoleArray) {
-		let row = document.createDocumentFragment();
-		for (let i = 0; i < toyHoleArray.length; i++) {
-			let link;
-			const separator = document.createTextNode(` | `);
-			const keys = Object.keys(toyHoleArray[i]);
+	el.appendChild(App.UI.SlaveInteract.generateLinksStrip(links, generateLink));
 
-			// Test to see if there was a problem with the key
-			for (let j = 0; j < keys.length; j++) {
-				if (["text", "toyHole", "disabled"].includes(keys[j])) {
-					continue;
-				} else {
-					toyHoleArray[i].text += " ERROR, THIS SCENE WAS NOT ENTERED CORRECTLY";
-					console.log("Trash found while generateRows() was running: " + keys[j] + ": " + toyHoleArray[i][keys[j]]);
-					break;
-				}
-			}
-			// is it just text?
-			if (toyHoleArray[i].disabled) {
-				link = App.UI.DOM.disabledLink(toyHoleArray[i].text, [toyHoleArray[i].disabled]);
-				// Are they already on this toyHole?
-			} else if (toyHoleArray[i].toyHole === slave.toyHole) {
-				link = document.createTextNode(toyHoleArray[i].text);
-				// Set up the link
-			} else {
-				link = App.UI.DOM.link(
-					toyHoleArray[i].text,
-					() => {
-						slave.toyHole = toyHoleArray[i].toyHole,
-							App.UI.SlaveInteract.fucktoyPref(slave);
-					},
-				);
-
-				// add a note node if required
-				if (toyHoleArray[i].note) {
-					let note = document.createElement('span');
-					note.textContent = `${toyHoleArray[i].note} `;
-					note.className = "note";
-					link.appendChild(note);
-				}
-			}
-			row.appendChild(link);
-			if (i < toyHoleArray.length - 1) {
-				row.appendChild(separator);
-			}
-		}
-
-		return row;
-	}
 	return jQuery('#fucktoypref').empty().append(el);
 };
 
@@ -269,8 +206,8 @@ App.UI.SlaveInteract.assignmentBlock = function(blockId, slave) {
 			App.UI.DOM.link(
 				`Stay on this assignment for another month`,
 				() => {
-					slave.sentence += 4,
-						App.UI.SlaveInteract.assignmentBlock(blockId, slave);
+					slave.sentence += 4;
+					App.UI.SlaveInteract.assignmentBlock(blockId, slave);
 				},
 			)
 		);
@@ -283,8 +220,8 @@ App.UI.SlaveInteract.assignmentBlock = function(blockId, slave) {
 		App.UI.jobLinks.assignmentsFragment(
 			V.slaveIndices[slave.ID], passage(),
 			(slave, assignment) => {
-				assignJob(slave, assignment),
-					V.activeSlave = slave;
+				assignJob(slave, assignment);
+				V.activeSlave = slave;
 			}
 		)
 	);
@@ -1297,9 +1234,7 @@ App.UI.SlaveInteract.useSlaveDisplay = function(slave) {
 
 			// Test to see if there was a problem with the key
 			for (let j = 0; j < keys.length; j++) {
-				if (["text", "scene", "goto", "updateSlave", "update", "note", "disabled"].includes(keys[j])) {
-					continue;
-				} else {
+				if (!["text", "scene", "goto", "updateSlave", "update", "note", "disabled"].includes(keys[j])) {
 					sexArray[i].text += " ERROR, THIS SCENE WAS NOT ENTERED CORRECTLY";
 					console.log("Trash found while generateRows() was running: " + keys[j] + ": " + sexArray[i][keys[j]]);
 					break;
@@ -3269,3 +3204,17 @@ App.UI.SlaveInteract.refreshAll = function(slave) {
 	App.UI.SlaveInteract.smartSettings(slave);
 	App.UI.SlaveInteract.orgasm(slave);
 };
+
+App.UI.SlaveInteract.generateLinksStrip = function(links, mapper) {
+	const strip = document.createElement('ul');
+	strip.className = "choicesStrip";
+
+	const elems = mapper ? links.map(mapper) : links;
+	elems.reduce((list, lnk) => {
+		const li = document.createElement("li");
+		li.appendChild(lnk);
+		list.appendChild(li);
+		return list;
+	}, strip);
+	return strip;
+};
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 5fe21b697f60cdc48b957ab2137303e6b09601b8..7f969162582c014dfa9a17fadc99dfe0f11d8713 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -2412,8 +2412,12 @@ App.Entity.SlaveState = class SlaveState {
 		 *
 		 * 0: no; 1: yes, comforting; 2: yes, terrifying */
 		this.tankBaby = 0;
-		/** */
+		/** Is the slave a clone?
+		 *
+		 * 0: no; 1: yes */
 		this.clone = 0;
+		/** ID she was cloned from */
+		this.cloneID = 0;
 		/** */
 		this.geneMods = {
 			/** Does slave have induced NCS?
diff --git a/src/js/descriptionWidgets.js b/src/js/descriptionWidgets.js
index 044c181a2f7854dc5303816e0050bcbb9599dc8d..464d824b6dea8f4128d4cdbd991dd43f4e3851ea 100644
--- a/src/js/descriptionWidgets.js
+++ b/src/js/descriptionWidgets.js
@@ -252,15 +252,15 @@ App.Desc.eyes = function(slave) {
 			if (slave.intelligence + slave.intelligenceImplant > 95) {
 				r += `${His} ${App.Desc.eyeColor(slave)}-eyed gaze is incisive, quick, cunning; with ${his} education, ${he} can be considered <span class="deepskyblue">brilliant.</span> `;
 			} else if (slave.intelligence + slave.intelligenceImplant <= 50) {
-				r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} alive with intelligence; with ${his} miseducation, however, ${he} performs merely <span class="orangered">above average.</span> `;
+				r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are", false)} alive with intelligence; with ${his} miseducation, however, ${he} performs merely <span class="orangered">above average.</span> `;
 			} else if (slave.intelligenceImplant >= 15) {
-				r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} alive with intelligence; ${he} is both <span class="deepskyblue">highly intelligent</span> and `;
+				r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are", false)} alive with intelligence; ${he} is both <span class="deepskyblue">highly intelligent</span> and `;
 				if (slave.intelligenceImplant >= 30) {
 					r += `well `;
 				}
 				r += `educated. `;
 			} else {
-				r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} alive with intelligence; ${he} is so <span class="deepskyblue">highly intelligent</span> that ${his} `;
+				r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are", false)} alive with intelligence; ${he} is so <span class="deepskyblue">highly intelligent</span> that ${his} `;
 				if (slave.intelligenceImplant > 0) {
 					r += `meager`;
 				} else if (slave.intelligenceImplant <= -15) {
@@ -271,7 +271,7 @@ App.Desc.eyes = function(slave) {
 				r += ` education is unimportant. `;
 			}
 		} else if (slave.intelligence > 15) {
-			r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} `;
+			r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are", false)} `;
 			if (slave.intelligence + slave.intelligenceImplant > 50) {
 				r += `alive with intelligence; with ${his} education, ${he} can be considered <span class="deepskyblue">highly intelligent.</span> `;
 			} else if (slave.intelligence + slave.intelligenceImplant <= 15) {
@@ -288,7 +288,7 @@ App.Desc.eyes = function(slave) {
 				r += `clever; ${he} is of <span class="deepskyblue">above average intelligence</span> despite being undereducated. `;
 			}
 		} else if (slave.intelligence >= -15) {
-			r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} `;
+			r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are", false)} `;
 			if (slave.intelligence + slave.intelligenceImplant > 15) {
 				r += `clever; with ${his} education, ${he} can be considered of <span class="deepskyblue">above average intelligence.</span> `;
 			} else if (slave.intelligence + slave.intelligenceImplant < -15) {
@@ -305,7 +305,7 @@ App.Desc.eyes = function(slave) {
 				r += `alert; ${he} is of average intelligence and is undereducated. `;
 			}
 		} else if (slave.intelligence >= -50) {
-			r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} `;
+			r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are", false)} `;
 			if (slave.intelligence + slave.intelligenceImplant >= -15) {
 				r += `alert; with ${his} education, ${he} can be considered of average intelligence. `;
 			} else if (slave.intelligence + slave.intelligenceImplant < -50) {
@@ -322,7 +322,7 @@ App.Desc.eyes = function(slave) {
 				r += `dim; ${he} is of <span class="orangered">below average intelligence</span> and is poorly educated. `;
 			}
 		} else if (slave.intelligence >= -95) {
-			r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} `;
+			r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are", false)} `;
 			if (slave.intelligence + slave.intelligenceImplant >= -50) {
 				r += `dim; even with ${his} education, ${he} can only be considered of <span class="orangered">below average intelligence.</span> `;
 			} else if (slave.intelligence + slave.intelligenceImplant < -95) {
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index 6083cced95d1196af84cbb3b0ccb6aef8fd30906..5f3464847d262fcc6ff229a1ec46567f17a33e68 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -113,6 +113,7 @@ window.CategoryAssociatedGroup = Object.freeze({
 	CLUB: [
 		'club',
 		'slaveAssignmentDj',
+		'slaveAssignmentDjVign',
 		'slaveAssignmentClub',
 		'slaveAssignmentClubVign',
 		'clubAds'
@@ -2636,6 +2637,7 @@ window.setupLastWeeksCash = function() {
 	V.lastWeeksCashIncome = new App.Data.Records.LastWeeksCash();
 	V.lastWeeksCashExpenses = new App.Data.Records.LastWeeksCash();
 	V.lastWeeksCashProfits = new App.Data.Records.LastWeeksCash();
+	V.lastWeeksCashErrors = "Errors: ";
 
 	// Here we reset our tracked totals on week end, and add the default categories to all objects
 	V.lastWeeksGatheredTotals = {};
@@ -2651,4 +2653,5 @@ window.setupLastWeeksRep = function() {
 	V.lastWeeksRepIncome = new App.Data.Records.LastWeeksRep();
 	V.lastWeeksRepExpenses = new App.Data.Records.LastWeeksRep();
 	V.lastWeeksRepProfits = new App.Data.Records.LastWeeksRep();
+	V.lastWeeksRepErrors = "Errors: ";
 };
diff --git a/src/js/slaveSummaryHelpers.js b/src/js/slaveSummaryHelpers.js
index 4340f9ada967832ee42e4b6139743c831a4e8921..3f763f9f18a1beb3884f3ecb643bfab68675d7bf 100644
--- a/src/js/slaveSummaryHelpers.js
+++ b/src/js/slaveSummaryHelpers.js
@@ -1068,7 +1068,10 @@ App.UI.SlaveSummaryImpl = function() {
 				}
 				return helpers.getNumericRating(tbl, slave.fetishStrength);
 			}
-			makeSpan(c, fetishStr(slave), "lightcoral", true, slave.fetishStrength);
+			const fStr = fetishStr(slave);
+			if (fStr) {
+				makeSpan(c, fStr, "lightcoral", true, slave.fetishStrength);
+			}
 		}
 
 		/**
@@ -1177,7 +1180,10 @@ App.UI.SlaveSummaryImpl = function() {
 				}
 				return helpers.getNumericRating(tbl, slave.fetishStrength);
 			}
-			makeSpan(c, fetishStr(slave), "lightcoral", true, slave.fetishStrength);
+			const fStr = fetishStr(slave);
+			if (fStr) {
+				makeSpan(c, fStr, "lightcoral", true, slave.fetishStrength);
+			}
 		}
 
 		/**
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index ad5e8a32fa9b911f97961fee7568951fa964107f..474eb007c4586f4e73c70be610978cca340e5d6d 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -889,7 +889,7 @@ App.UI.SlaveSummary = function() {
 			initDelegates(settingsObj);
 			App.UI.SlaveSummaryImpl.helpers.syncFSData(newState ? newState.arcologies[0] : V.arcologies[0]);
 		} catch (ex) {
-			console.error(ex);
+			console.log(`Slave summary settings change handler encountered an error: ${ex}`);
 		}
 	}
 
diff --git a/src/js/utilsDOM.js b/src/js/utilsDOM.js
index a88f6d5fe8445184237239d908fe9c0b954cf954..a2f71ec3b9fe3f3cdc37055ca73a56dcef806605 100644
--- a/src/js/utilsDOM.js
+++ b/src/js/utilsDOM.js
@@ -169,12 +169,10 @@ App.UI.DOM.linkReplace = function(linkText, newContent) {
 
 /**
  * @param {string} selector for jQuery
- * @param {Node} newContent
+ * @param {JQuery.Node} newContent
  */
 App.UI.DOM.replace = function(selector, newContent) {
-	const target = $(selector);
-	target.empty();
-	target.append(newContent);
+	$(selector).empty().append(newContent);
 };
 
 /**
diff --git a/src/npc/acquisition.tw b/src/npc/acquisition.tw
index 82007cba84db8a6e6184620693260109600d5e22..438d1e09fe6bbe9af880d15fa1d9ec0603bb6359 100644
--- a/src/npc/acquisition.tw
+++ b/src/npc/acquisition.tw
@@ -832,7 +832,7 @@ The previous owner seems to have left in something of a hurry.
 <</if>>
 <<set $enduringTrust = $averageTrust>>
 <<set $enduringDevotion = $averageDevotion>>
-
+<<run App.UI.SlaveSummary.settingsChanged()>>
 <br><br>
 
 <<link "Continue">>
@@ -850,4 +850,4 @@ The previous owner seems to have left in something of a hurry.
 	<</if>>
 	<<script>>Save.autosave.save("Week Start Autosave")<</script>>
 	<<goto "Main">>
-<</link>>
\ No newline at end of file
+<</link>>
diff --git a/src/npc/descriptions/eyes.js b/src/npc/descriptions/eyes.js
index 564f0f08def476ac990a7962b24faa9252ebcddb..aab1052f2435ebb2347fa10a02699efa8905c856 100644
--- a/src/npc/descriptions/eyes.js
+++ b/src/npc/descriptions/eyes.js
@@ -48,31 +48,158 @@ App.Desc.eyeTypeToString = function(type) {
  * Fits in a sentence like this:
  * She has {return}.
  *
+ * Intentionally leaves out some information to make it flow nicer and have less grammatical restrictions.
+ * Use App.Desc.eyesColorLong for a complete eye description.
+ *
  * @param {App.Entity.SlaveState} slave
  * @param {string} [adj]
  * @param {string} [eye]
  * @param {string} [eyes]
  * @returns {string}
  */
-App.Desc.eyesColor = function(slave, adj = "", eye = "eye", eyes = "eyes") {
+App.Desc.eyesColor = function(slave, adj = "", eye = "eye", eyes = "eyes", a = true) {
 	let r = "";
 	if (hasBothEyes(slave)) {
-		if (getLeftEyeColor(slave) !== getRightEyeColor(slave)) {
-			r = `${getRightEyeColor(slave)} and ${getLeftEyeColor(slave)} ${adj} ${eyes}`;
-		} else {
-			r = `${getRightEyeColor(slave)} ${adj} ${eyes}`;
+		const leftEye = slave.eye.left;
+		const rightEye = slave.eye.right;
+		if (unusualPupil(leftEye) && leftEye.pupil === rightEye.pupil) {
+			r += `${leftEye.pupil} `;
+		}
+		r += leftEye.iris;
+		if (leftEye.iris !== rightEye.iris) {
+			r += ` and ${rightEye.iris}`;
+		}
+		r += ` ${adj} ${eyes}`;
+		if (unusualSclera(leftEye && leftEye.sclera === rightEye.sclera)) {
+			r += ` with ${leftEye.sclera} sclerae`;
 		}
 	} else if (hasAnyEyes(slave)) {
-		if (hasRightEye(slave)) {
-			r = `a ${getRightEyeColor(slave)} ${adj} ${eye}`;
-		} else if (hasLeftEye(slave)) {
-			r = `a ${getLeftEyeColor(slave)} ${adj} ${eye}`;
+		const slaveEye = hasLeftEye(slave) ? slave.eye.left : slave.eye.right;
+		if (a) {
+			r += "a ";
+		}
+		if (unusualPupil(slaveEye)) {
+			r += `${slaveEye.pupil} `;
+		}
+		r += `${slaveEye.iris} ${adj ? `${adj} ` : ""}${eye}`;
+		if (unusualSclera(slaveEye)) {
+			r += ` with ${a ? "a " : ""}${slaveEye.sclera} sclera`;
 		}
 	} else {
 		r = "no eyes";
 	}
 
 	return r;
+
+	// TODO deduplicate with eyesColorLong()
+	function unusualPupil(eye) { return eye.pupil !== "circular"; }
+
+	function unusualSclera(eye) { return eye.sclera !== "white"; }
+};
+
+/**
+ * Returns a description of a given slave's eyes.
+ * WARNING: Expects .,:;!? after the string, otherwise there might be grammatical errors!
+ *
+ * @param {App.Entity.SlaveState} slave
+ * @returns {string}
+ */
+App.Desc.eyesColorLong = function(slave) {
+	let r = "";
+	if (hasBothEyes(slave)) {
+		const leftEye = slave.eye.left;
+		const rightEye = slave.eye.right;
+		if (leftEye.iris === rightEye.iris) {
+			if (leftEye.pupil === rightEye.pupil && unusualPupil(leftEye)) {
+				r += `${leftEye.pupil} `;
+			}
+			// This line is the only guaranteed line, every other line has a space on the side TOWARDS this line.
+			r += `${leftEye.iris} eyes`;
+			let comma = false;
+			let left = "";
+			let right = "";
+			if (leftEye.pupil !== rightEye.pupil) {
+				if (unusualPupil(leftEye)) {
+					left = ` ${leftEye.pupil}`;
+				}
+				if (unusualPupil(rightEye)) {
+					right = ` ${rightEye.pupil}`;
+				}
+			}
+			if (leftEye.sclera !== rightEye.sclera) {
+				if (unusualSclera(leftEye)) {
+					left += ` with a ${leftEye.sclera} sclera`;
+				}
+				if (unusualSclera(rightEye)) {
+					right += ` with a ${rightEye.sclera} sclera`;
+				}
+			}
+			if (left !== "") {
+				r += `; one${left}`;
+				if (right !== "") {
+					r += ` and the other${right}`;
+				}
+				comma = true;
+			} else if (right !== "") {
+				r += `; one${right}`;
+				comma = true;
+			}
+			if (leftEye.sclera === rightEye.sclera && unusualSclera(leftEye)) {
+				r += `${comma ? "," : ""} with ${leftEye.sclera} sclerae`;
+			}
+		} else {
+			const splitPupil = leftEye.pupil !== rightEye.pupil;
+			const splitSclerae = leftEye.sclera !== rightEye.sclera;
+			if (splitPupil || splitSclerae) {
+				r += "a";
+				if (splitPupil && unusualPupil(leftEye)) {
+					r += ` ${leftEye.pupil}`;
+				}
+				r += ` ${leftEye.iris} eye`;
+				if (splitSclerae && unusualSclera(leftEye)) {
+					r += ` with a ${leftEye.sclera} sclera`;
+				}
+				r += " and a";
+				if (splitPupil && unusualPupil(rightEye)) {
+					r += ` ${rightEye.pupil}`;
+				}
+				r += ` ${rightEye.iris} eye`;
+				if (splitSclerae && unusualSclera(rightEye)) {
+					r += ` with a ${rightEye.sclera} sclera`;
+				}
+				if (!splitPupil && unusualPupil(leftEye)) {
+					r += `; both ${leftEye.pupil}`;
+				} else if (!splitSclerae && unusualSclera(leftEye)) {
+					r += `; both with ${leftEye.sclera} sclerae`;
+				}
+			} else {
+				if (unusualPupil(leftEye)) {
+					r += `${leftEye.pupil} `;
+				}
+				r += `${leftEye.iris} and ${rightEye.iris} eyes`;
+				if (unusualSclera(leftEye)) {
+					r += ` with ${leftEye.sclera} sclerae`;
+				}
+			}
+		}
+	} else if (hasAnyEyes(slave)) {
+		const eye = hasLeftEye(slave) ? slave.eye.left : slave.eye.right;
+		r += "a";
+		if (unusualPupil(eye)) {
+			r += ` ${eye.pupil}`;
+		}
+		r += ` ${eye.iris} eye`;
+		if (unusualSclera(eye)) {
+			r += ` with a ${eye.sclera} sclera`;
+		}
+	} else {
+		r = "no eyes";
+	}
+	return r;
+
+	function unusualPupil(eye) { return eye.pupil !== "circular"; }
+
+	function unusualSclera(eye) { return eye.sclera !== "white"; }
 };
 
 /**
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index a72ad04ffec30fe28f3aace8724958dc656c220d..b6360144eb73a54715f104bf358c40b8bf651969 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -25,25 +25,122 @@
 </p>
 
 <p>
-	<span class="major-link">
-		<<link "Refresh" "Starting Girls">>	<</link>>
-	</span>
+	<span id="headerLinks">
+		<span class="major-link">
+			<<link "Refresh" "Starting Girls">>	<</link>>
+		</span>
+
+		| <<link "Randomize career" "Starting Girls">>
+			<<set $activeSlave.career = randomCareer($activeSlave)>>
+		<</link>>
+
+		| <<link "Randomize name" "Starting Girls">>
+			<<run nationalityToName($activeSlave)>>
+			<<set $activeSlave.slaveName = $activeSlave.birthName>>
+		<</link>>
 
-	| <<link "Randomize career" "Starting Girls">>
-		<<set $activeSlave.career = randomCareer($activeSlave)>>
-	<</link>>
+		| <<link "Start over with a random slave" "Starting Girls">>
+			<<set $activeSlave = App.StartingGirls.generate()>>
+		<</link>>
 
-	| <<link "Randomize name" "Starting Girls">>
-		<<run nationalityToName($activeSlave)>>
-		<<set $activeSlave.slaveName = $activeSlave.birthName>>
-	<</link>>
+		| <<link "Start over by selecting an archetype">>
+			<<replace "#headerLinks">>
+				<div class="note">
+					Convenient combinations of slave attributes
+				</div>
+				<div class="indent">
+					<<link "Irish Rose" "Starting Girls">>
+						<<set $activeSlave = App.StartingGirls.generate({ nationality: "Irish", race: "white" })>>
+						<<set $activeSlave.eye.origColor = "green", $activeSlave.origSkin = "fair", $activeSlave.origHColor = "red", $activeSlave.markings = "heavily freckled">>
+					<</link>>
+					<span class="note">
+						A beautiful flower from the Emerald Isle
+					</span>
+				</div>
+
+				<div class="indent">
+					<<link "Cali Girl" "Starting Girls">>
+						<<set $activeSlave = App.StartingGirls.generate({ nationality: "American" })>>
+						<<set $activeSlave.eye.origColor = "blue", $activeSlave.skin = "sun tanned", $activeSlave.override_Skin = 1, $activeSlave.origHColor = "blonde", $activeSlave.markings = "none", $activeSlave.face = 95, $activeSlave.muscles = 20, $activeSlave.weight = -20, $activeSlave.height = Math.round(Height.forAge(190, $activeSlave))>>
+					<</link>>
+					<span class="note">
+						Tall, taut, and tan
+					</span>
+				</div>
+
+				<div class="indent">
+					<<link "Novice" "Starting Girls">>
+						<<set $activeSlave = App.StartingGirls.generate()>>
+						<<set $activeSlave.skill.anal = 0, $activeSlave.skill.oral = 0, $activeSlave.skill.vaginal = 0, $activeSlave.skill.whoring = 0, $activeSlave.skill.entertainment = 0, $activeSlave.skill.combat = 0, $activeSlave.actualAge = 18, $activeSlave.visualAge = 18, $activeSlave.physicalAge = 18, $activeSlave.fetishKnown = 0, $activeSlave.attrKnown = 0>>
+					<</link>>
+					<span class="note">
+						Train your own and save
+					</span>
+				</div>
+
+				<div class="indent">
+					<<link "Head Girl Prospect" "Starting Girls">>
+						<<set $activeSlave = App.StartingGirls.generate({ minAge: 36, maxAge: 44 })>>
+						<<set $activeSlave.career = setup.HGCareers.random(), $activeSlave.intelligence = 70, $activeSlave.intelligenceImplant = 0>>
+					<</link>>
+					<span class="note">
+						Inexpensive potential to become a great right hand woman
+					</span>
+				</div>
+
+				<<if $seeExtreme != 0>>
+					<div class="indent">
+						<<link "Wellspring" "Starting Girls">>
+							<<set $activeSlave = App.StartingGirls.generate({ minAge: 18, maxAge: 18 })>>
+							<<set $activeSlave.skill.anal = 0, $activeSlave.skill.oral = 0, $activeSlave.skill.vaginal = 0, $activeSlave.skill.whoring = 0, $activeSlave.skill.entertainment = 0, $activeSlave.skill.combat = 0, $activeSlave.fetishKnown = 0, $activeSlave.attrKnown = 0, $activeSlave.health.condition = 10, $activeSlave.intelligence = -100, $activeSlave.intelligenceImplant = 0, $activeSlave.vagina = 3, $activeSlave.anus = 3, $activeSlave.ovaries = 1, $activeSlave.dick = 5, $activeSlave.balls = 5, $activeSlave.prostate = 1, $activeSlave.lactation = 2, $activeSlave.lactationDuration = 2, $activeSlave.nipples = "huge", $activeSlave.boobs = 10000>>
+						<</link>>
+						<span class="note">
+							Capable of producing all kinds of useful fluids
+						</span>
+					</div>
+
+					<div class="indent">
+						<<link "Onahole" "Starting Girls">>
+							<<set $activeSlave = App.StartingGirls.generate()>>
+							<<set $activeSlave.skill.anal = 0, $activeSlave.skill.oral = 0, $activeSlave.skill.vaginal = 0, $activeSlave.skill.whoring = 0, $activeSlave.skill.entertainment = 0, $activeSlave.skill.combat = 0, $activeSlave.fetish = "mindbroken", $activeSlave.voice = 0, $activeSlave.hears = 0>>
+							<<run removeLimbs($activeSlave, "all"), eyeSurgery($activeSlave, "both", "normal")>>
+						<</link>>
+						<span class="note">
+							A living cocksleeve
+						</span>
+					</div>
+				<</if>>
+				
+				<div class="indent">
+					<<link "Back" "Starting Girls">>	<</link>>
+				</div>
+			<</replace>>
+		<</link>>
 
-	| <<link "Start over with a random slave" "Starting Girls">>
-		<<set $activeSlave = App.StartingGirls.generate()>>
-	<</link>>
+		| <<link "Start over by selecting a nationality">>
+			<<replace "#headerLinks">>
+				<div>
+					<<for _sg = 0; _sg < setup.baseNationalities.length; _sg++>>
+						<<set _nation = setup.baseNationalities[_sg]>>
+						<<capture _nation>>
+						<<link _nation "Starting Girls">>
+							<<set $activeSlave = App.StartingGirls.generate({ nationality: _nation })>>
+						<</link>>
+						<</capture>>
+						<<if _sg < setup.baseNationalities.length-1>>
+							|
+						<</if>>
+					<</for>>
+				</div>
 
-	| [[Take control of your arcology|Acquisition]]
+				<div>
+					<<link "Back" "Starting Girls">>	<</link>>
+				</div>
+			<</replace>>
+		<</link>>
 
+		| [[Take control of your arcology|Acquisition]]
+	</span>
 	<hr>
 </p>
 
@@ -1593,97 +1690,6 @@
 		</div>
 	<</if>>
 
-	<h3>Start over by selecting an archetype:</h3>
-	<div class="note">
-		Convenient combinations of slave attributes
-	</div>
-	<div class="indent">
-		<<link "Irish Rose">>
-			<<set $activeSlave = App.StartingGirls.generate({ nationality: "Irish", race: "white" })>>
-			<<set $activeSlave.eye.origColor = "green", $activeSlave.origSkin = "fair", $activeSlave.origHColor = "red", $activeSlave.markings = "heavily freckled">>
-			<<goto "Starting Girls">>
-		<</link>>
-		<span class="note">
-			A beautiful flower from the Emerald Isle
-		</span>
-	</div>
-
-	<div class="indent">
-		<<link "Cali Girl">>
-			<<set $activeSlave = App.StartingGirls.generate({ nationality: "American" })>>
-			<<set $activeSlave.eye.origColor = "blue", $activeSlave.skin = "sun tanned", $activeSlave.override_Skin = 1, $activeSlave.origHColor = "blonde", $activeSlave.markings = "none", $activeSlave.face = 95, $activeSlave.muscles = 20, $activeSlave.weight = -20, $activeSlave.height = Math.round(Height.forAge(190, $activeSlave))>>
-			<<goto "Starting Girls">>
-		<</link>>
-		<span class="note">
-			Tall, taut, and tan
-		</span>
-	</div>
-
-	<div class="indent">
-		<<link "Novice">>
-			<<set $activeSlave = App.StartingGirls.generate()>>
-			<<set $activeSlave.skill.anal = 0, $activeSlave.skill.oral = 0, $activeSlave.skill.vaginal = 0, $activeSlave.skill.whoring = 0, $activeSlave.skill.entertainment = 0, $activeSlave.skill.combat = 0, $activeSlave.actualAge = 18, $activeSlave.visualAge = 18, $activeSlave.physicalAge = 18, $activeSlave.fetishKnown = 0, $activeSlave.attrKnown = 0>>
-			<<goto "Starting Girls">>
-		<</link>>
-		<span class="note">
-			Train your own and save
-		</span>
-	</div>
-
-	<div class="indent">
-		<<link "Head Girl Prospect">>
-			<<set $activeSlave = App.StartingGirls.generate({ minAge: 36, maxAge: 44 })>>
-			<<set $activeSlave.career = setup.HGCareers.random(), $activeSlave.intelligence = 70, $activeSlave.intelligenceImplant = 0>>
-			<<goto "Starting Girls">>
-		<</link>>
-		<span class="note">
-			Inexpensive potential to become a great right hand woman
-		</span>
-	</div>
-
-	<<if $seeExtreme != 0>>
-		<div class="indent">
-			<<link "Wellspring">>
-				<<set $activeSlave = App.StartingGirls.generate({ minAge: 18, maxAge: 18 })>>
-				<<set $activeSlave.skill.anal = 0, $activeSlave.skill.oral = 0, $activeSlave.skill.vaginal = 0, $activeSlave.skill.whoring = 0, $activeSlave.skill.entertainment = 0, $activeSlave.skill.combat = 0, $activeSlave.fetishKnown = 0, $activeSlave.attrKnown = 0, $activeSlave.health.condition = 10, $activeSlave.intelligence = -100, $activeSlave.intelligenceImplant = 0, $activeSlave.vagina = 3, $activeSlave.anus = 3, $activeSlave.ovaries = 1, $activeSlave.dick = 5, $activeSlave.balls = 5, $activeSlave.prostate = 1, $activeSlave.lactation = 2, $activeSlave.lactationDuration = 2, $activeSlave.nipples = "huge", $activeSlave.boobs = 10000>>
-				<<goto "Starting Girls">>
-			<</link>>
-			<span class="note">
-				Capable of producing all kinds of useful fluids
-			</span>
-		</div>
-
-		<div class="indent">
-			<<link "Onahole">>
-				<<set $activeSlave = App.StartingGirls.generate()>>
-				<<set $activeSlave.skill.anal = 0, $activeSlave.skill.oral = 0, $activeSlave.skill.vaginal = 0, $activeSlave.skill.whoring = 0, $activeSlave.skill.entertainment = 0, $activeSlave.skill.combat = 0, $activeSlave.fetish = "mindbroken", $activeSlave.voice = 0, $activeSlave.hears = 0>>
-				<<run removeLimbs($activeSlave, "all"), eyeSurgery($activeSlave, "both", "normal")>>
-				<<goto "Starting Girls">>
-			<</link>>
-			<span class="note">
-				A living cocksleeve
-			</span>
-		</div>
-	<</if>>
-
-	<p>
-		<h3>Start over by selecting a nationality:</h3>
-		<div>
-			<<for _sg = 0; _sg < setup.baseNationalities.length; _sg++>>
-				<<set _nation = setup.baseNationalities[_sg]>>
-				<<capture _nation>>
-				<<link _nation>>
-					<<set $activeSlave = App.StartingGirls.generate({ nationality: _nation })>>
-					<<goto "Starting Girls">>
-				<</link>>
-				<</capture>>
-				<<if _sg < setup.baseNationalities.length-1>>
-					|
-				<</if>>
-			<</for>>
-		</div>
-	</p>
-
 	</div>
 </div>
 
diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw
index 40d1b89e9cc471467dcf7904838b8d55eccc4fe4..f7ab755c0fe9ef4b96b838f56b88c88568dbd0fd 100644
--- a/src/pregmod/managePersonalAffairs.tw
+++ b/src/pregmod/managePersonalAffairs.tw
@@ -44,7 +44,7 @@
 	</div>
 	<div>
 		You have a number of contact lenses in various colors available.
-		You current eye color is <<print App.Desc.eyeColor($PC)>>.
+		You currently have <<print App.Desc.eyesColorLong($PC)>>.
 
 		/* This a simplified version of the slave code in salon.tw, when adding missing/glass eyes, copy the code from there */
 		/* remove lenses */
diff --git a/src/pregmod/widgets/bodySwapReaction.tw b/src/pregmod/widgets/bodySwapReaction.tw
index 2d9ab7d21cc27ce111e64a4596aefa2f48ea4594..395ceb483e94148745fd104ba42b6e0508dda809 100644
--- a/src/pregmod/widgets/bodySwapReaction.tw
+++ b/src/pregmod/widgets/bodySwapReaction.tw
@@ -1680,8 +1680,13 @@ Now you only have to wait for $him to wake up.
 			The changes to $his tattoos were not lost on $him, but compared to everything else, they were truly insignificant.
 		<</if>>
 
-		<<if $args[0].fetish != "mindbroken" && $args[0].origBodyOwnerID == $args[0].ID>>
-			This is $his body alright. Some things might have changed,
+		<<if $args[0].fetish != "mindbroken">>
+			<<if $args[0].origBodyOwnerID == $args[0].ID>>
+				This is $his body alright.
+			<<elseif $args[0].ID == $args[0].cloneID>>
+				This feels like $his body, in a sense.
+			<</if>>
+			Some things might have changed,
 			<<if $args[0].devotion > 50>>
 				but $he enjoyed the time they spent apart.
 			<<elseif $args[0].devotion >= -20>>
@@ -1691,6 +1696,9 @@ Now you only have to wait for $him to wake up.
 				but @@.mediumaquamarine;$he's where $he belongs.@@ Now to get it back the way @@.mediumorchid;$he likes it.@@
 				<<set $args[0].trust += 30, $args[0].devotion -= 15>>
 			<</if>>
+			<<if $args[0].ID == $args[0].cloneID>>
+				Whether or not $he'll figure out it is a clone of $his original body remains to be seen.
+			<</if>>
 		<</if>>
 
 	<</if>>
@@ -3195,16 +3203,20 @@ Now you only have to wait for $him to wake up.
 			The changes to $his tattoos were not lost on $him, but compared to everything else, they were truly insignificant.
 		<</if>>
 
-		<<if $args[0].fetish != "mindbroken" && $args[0].origBodyOwnerID == $args[0].ID>>
-			This is $his body alright. Some things might have changed,
-			<<if $args[0].devotion > 50>>
-				but $he enjoyed the time they spent apart.
-			<<elseif $args[0].devotion >= -20>>
-				but @@.mediumaquamarine;it's good to be home.@@
-				<<set $args[0].trust += 15>>
-			<<else>>
-				but @@.mediumaquamarine;$he's where $he belongs.@@ Now to get it back the way @@.mediumorchid;$he likes it.@@
-				<<set $args[0].trust += 30, $args[0].devotion -= 15>>
+		<<if $args[0].fetish != "mindbroken">>
+			<<if $args[0].origBodyOwnerID == $args[0].ID>>
+				This is $his body alright. Some things might have changed,
+				<<if $args[0].devotion > 50>>
+					but $he enjoyed the time they spent apart.
+				<<elseif $args[0].devotion >= -20>>
+					but @@.mediumaquamarine;it's good to be home.@@
+					<<set $args[0].trust += 15>>
+				<<else>>
+					but @@.mediumaquamarine;$he's where $he belongs.@@ Now to get it back the way @@.mediumorchid;$he likes it.@@
+					<<set $args[0].trust += 30, $args[0].devotion -= 15>>
+				<</if>>
+			<<elseif $args[0].ID == $args[0].cloneID>>
+				This is $his body, but not ''$his'' body. That it was cloned from $his original one is not lost on $him.
 			<</if>>
 		<</if>>
 
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
index e78c76933937880d9a0ca879015ad5c1773f75f1..0449dcf8102d1587e143f62490162e08fedb306d 100644
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -162,6 +162,8 @@
 <<set $args[0].ovaImplant = $args[1].ovaImplant>>
 <<set $args[0].geneticQuirks = $args[1].geneticQuirks>>
 <<set $args[0].albinismOverride = $args[1].albinismOverride>>
+<<set $args[0].clone = $args[1].clone>>
+<<set $args[0].cloneID = $args[1].cloneID>>
 
 <<set $args[0].canRecruit = 0>>
 
diff --git a/src/uncategorized/costsBudget.js b/src/uncategorized/costsBudget.js
index 03864854ad46a9515f62f12400f04a12883e9f9c..9680b5d488217284b55d2a68983e9a612ff9e003 100644
--- a/src/uncategorized/costsBudget.js
+++ b/src/uncategorized/costsBudget.js
@@ -634,6 +634,7 @@ App.UI.Budget.Cost = function() {
 	generateRowGroup(V.clubNameCaps, "CLUB", V.club, "Club", V.ClubiIDs.length);
 	generateRowCategory("Club Maintenance", "club");
 	generateRowCategory("Club DJ", "slaveAssignmentDj");
+	generateRowCategory("Club DJVign", "slaveAssignmentDjVign");
 	generateRowCategory("Club Public", "slaveAssignmentClub");
 	generateRowCategory("Club PublicVign", "slaveAssignmentClubVign");
 	generateRowCategory("Club Ads", "clubAds");
diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw
deleted file mode 100644
index 4375e86ecb7d94a4289f7c1d70c607c7965e74f4..0000000000000000000000000000000000000000
--- a/src/uncategorized/endWeek.tw
+++ /dev/null
@@ -1,268 +0,0 @@
-:: End Week [nobr]
-
-<<set State.expired.length = 0>>
-
-<<run setupLastWeeksCash()>>
-<<run setupLastWeeksRep()>>
-
-<<set $gingering = 0, $oralUseWeight = 5, $vaginalUseWeight = 5, $analUseWeight = 5, $mammaryUseWeight = 1, $penetrativeUseWeight = 1, $inflatedSlavesMilk = 0, $inflatedSlavesCum = 0, $subSlaves = 0>>
-<<unset $slaveMarket>>
-
-<<if $OralEncouragement == 1>>
-	<<set $oralUseWeight += 2, $vaginalUseWeight -= 1, $analUseWeight -= 1>>
-<<elseif $VaginalEncouragement == 1>>
-	<<set $oralUseWeight -= 1, $vaginalUseWeight += 2, $analUseWeight -= 1>>
-<<elseif $AnalEncouragement == 1>>
-	<<set $oralUseWeight -= 1, $vaginalUseWeight -= 1, $analUseWeight += 2>>
-<</if>>
-<<if $OralDiscouragement == 1>>
-	<<set $oralUseWeight -= 2, $vaginalUseWeight += 1, $analUseWeight += 1>>
-<</if>>
-<<if $VaginalDiscouragement == 1>>
-	<<set $oralUseWeight += 1, $vaginalUseWeight -= 2, $analUseWeight += 1>>
-<</if>>
-<<if $AnalDiscouragement == 1>>
-	<<set $oralUseWeight += 1, $vaginalUseWeight += 1, $analUseWeight -= 2>>
-<</if>>
-<<if $sexualOpeness == 1>>
-	<<set $penetrativeUseWeight++>>
-<</if>>
-
-<<run $slaves.forEach(function(s) {
-	if (s.inflationMethod == 1 || s.inflationMethod == 2) {
-		if (s.inflationType == "milk") {
-			$inflatedSlavesMilk++;
-		} else if (s.inflationType == "cum") {
-			$inflatedSlavesCum++;
-		}
-	}
-	if (s.assignment == "be a subordinate slave" && s.subTarget == 0) {
-		$subSlaves++;
-	}
-	s.lastWeeksCashIncome = 0;
-	s.lastWeeksRepIncome = 0;
-	s.lastWeeksRepExpenses = 0;
-})>>
-
-<<if $organs.length > 0>>
-	<<run $organs.forEach(function(o) {
-		if (o.weeksToCompletion > 0) {
-			if ($organFarmUpgrade == 3) {
-				o.weeksToCompletion -= 4;
-			} else if ($organFarmUpgrade == 2) {
-				o.weeksToCompletion -= 2;
-			} else {
-				o.weeksToCompletion--;
-			}
-		}
-	})>>
-	<<set $organs = $organs.filter(function(o) {
-		if (o.weeksToCompletion <= 0) {
-			$completedOrgans.push(o);
-			return false;
-		}
-		return true;
-	})>>
-<</if>>
-
-<<if $incubatorOrgans.length > 0>>
-	<<run $incubatorOrgans.forEach(function(io) {
-		if (io.weeksToCompletion > 0) {
-			if ($organFarmUpgrade == 3) {
-				io.weeksToCompletion -= 4;
-			} else if ($organFarmUpgrade == 2) {
-				io.weeksToCompletion -= 2;
-			} else {
-				io.weeksToCompletion--;
-			}
-		}
-	})>>
-<</if>>
-
-<<if $nurseryBabies > 0>>
-	<<run $cribs.forEach(function(c) {
-		c.growTime--;
-		c.birthWeek++;
-		if (c.birthWeek >= 52) {
-			c.birthWeek = 0;
-			c.actualAge++;
-		}
-		if (c.actualAge >= 3) {
-			App.Facilities.Nursery.infantToChild(c);
-		}
-	})>>
-<</if>>
-
-/* for potential future use
-<<if $nurseryOrgans.length > 0>>
-	<<run $nurseryOrgans.forEach(function(no) {
-		if (no.weeksToCompletion > 0) {
-			if ($organFarmUpgrade == 3) {
-				no.weeksToCompletion -= 4;
-			} else if ($organFarmUpgrade == 2) {
-				no.weeksToCompletion -= 2;
-			} else {
-				no.weeksToCompletion--;
-			}
-		}
-	})>>
-<</if>>
-*/
-
-<<if $adjustProsthetics.length > 0>>
-	<<run $adjustProsthetics.forEach(function(p) {
-		if (p.workLeft > 0) {
-			if ($prostheticsUpgrade == 3) {
-				p.workLeft -= 40;
-			} else if ($prostheticsUpgrade == 2) {
-				p.workLeft -= 20;
-			} else {
-				p.workLeft -= 10;
-			}
-			if (p.workLeft <= 0){
-				$adjustProstheticsCompleted++;
-			}
-		}
-	})>>
-<</if>>
-
-/% Begin section: ensure minimum age is set (game may have been loaded from a non-modded version). %/
-<<if $minimumSlaveAge <= 18 && $minimumSlaveAge > 0>>
-<<else>>
-	<<set $minimumSlaveAge = 18>>
-	<<set $pedo_mode = 0>>
-	<<if $fertilityAge <= 18 && $fertilityAge > 0>>
-	<<else>>
-		<<set $fertilityAge = 13>>
-	<</if>>
-	<<if $potencyAge <= 18 && $potencyAge > 0>>
-	<<else>>
-		<<set $potencyAge = 13>>
-	<</if>>
-<</if>>
-/% End section: ensure minimum age is set. %/
-
-<<set $TSS.schoolSale = 0, $GRI.schoolSale = 0, $SCP.schoolSale = 0, $LDE.schoolSale = 0, $TGA.schoolSale = 0, $HA.schoolSale = 0, $TFS.schoolSale = 0, $TCR.schoolSale = 0, $NUL.schoolSale = 0, $showEncyclopedia = 0, $shelterGirlsIDs = [], $cashLastWeek = $cash, $repLastWeek = $rep, $foodLastWeek = $food>>
-
-<<if $foodMarket > 0>>
-	<<set $foodConsumption = (($lowerClass*$foodRate.lower) + ($middleClass*$foodRate.middle) + ($upperClass*$foodRate.upper) + ($topClass*$foodRate.top))>>
-	<<run $slaves.forEach(function(s) {
-		if (s.diet == "restricted") {
-			V.foodConsumption += 1.8;
-		} else if (s.diet == "slimming") {
-			V.foodConsumption += 1.9;
-		} else if (s.diet == "muscle building") {
-			V.foodConsumption += 2.1;
-		} else if (s.diet == "fattening") {
-			V.foodConsumption += 2.2;
-		} else {
-			V.foodConsumption += 2;
-		}
-	})>>
-
-	<<set $food -= $foodConsumption>>
-	<<if $food < 0>>
-		<<set $food = 0>>
-	<</if>>
-	<<set $foodConsumption = 0>>
-<</if>>
-
-<<set $lastWeeksCashErrors = "Errors: ">>
-<<set $lastWeeksRepErrors = "Errors: ">>
-
-<<set $retiree = 0>>
-<<set $expiree = 0>>
-
-<<set $PC.sexualEnergy = 4>>
-<<if $PCSlutContacts == 2>>
-	<<set $PC.sexualEnergy -= 3>>
-<</if>>
-<<if $personalAttention == "sex">>
-	<<set $PC.sexualEnergy += 2>>
-<</if>>
-<<if $PC.physicalAge >= 80>>
-	<<set $PC.sexualEnergy -= 6>>
-<<elseif $PC.physicalAge >= 72>>
-	<<set $PC.sexualEnergy -= 5>>
-<<elseif $PC.physicalAge >= 65>>
-	<<set $PC.sexualEnergy -= 4>>
-<<elseif $PC.physicalAge >= 58>>
-	<<set $PC.sexualEnergy -= 3>>
-<<elseif $PC.physicalAge >= 50>>
-	<<set $PC.sexualEnergy -= 2>>
-<<elseif $PC.physicalAge >= 42>>
-	<<set $PC.sexualEnergy -= 1>>
-<<elseif $PC.physicalAge >= 35>>
-	<<set $PC.sexualEnergy += 0>>
-<<elseif $PC.physicalAge >= 31>>
-	<<set $PC.sexualEnergy += 1>>
-<<elseif $PC.physicalAge >= 28>>
-	<<set $PC.sexualEnergy += 2>>
-<<elseif $PC.physicalAge >= 21>>
-	<<set $PC.sexualEnergy += 3>>
-<<elseif $PC.physicalAge >= 13>>
-	<<set $PC.sexualEnergy += 4>>
-<<elseif $PC.physicalAge == 12>>
-	<<set $PC.sexualEnergy += 1>>
-<<elseif $PC.physicalAge == 11>>
-	<<set $PC.sexualEnergy -= 2>>
-<<elseif $PC.physicalAge >= 0>>
-	<<set $PC.sexualEnergy -= 6>>
-<</if>>
-<<if $PC.balls >= 10>>
-	<<set $PC.sexualEnergy += 2>>
-<<elseif $PC.balls >= 5>>
-	<<set $PC.sexualEnergy++>>
-<</if>>
-<<if $PC.preg > 20>>
-	<<if $PC.pregMood == 2>>
-		<<set $PC.sexualEnergy += 4>>
-	<<else>>
-		<<set $PC.sexualEnergy -= 3>>
-	<</if>>
-<<elseif $PC.preg > 0>>
-	<<set $PC.sexualEnergy -= 1>>
-<<else>>
-	<<if $PC.fertDrugs == 1>>
-		<<set $PC.sexualEnergy++>>
-	<</if>>
-	<<if $PC.forcedFertDrugs > 0>>
-		<<set $PC.sexualEnergy += 2>>
-	<</if>>
-<</if>>
-<<if $PC.staminaPills > 0>>
-	<<set $PC.sexualEnergy += 2>>
-<</if>>
-<<if $PC.preg > 0>>
-	<<set WombProgress($PC, 1, 1)>>
-	<<set WombNormalizePreg($PC), $PC.pregWeek = $PC.preg>>
-	<<set _newBelly = WombGetVolume($PC)>>
-	<<if _newBelly >= $PC.belly>>
-		<<set $PC.belly = _newBelly>>
-	<<elseif $PC.belly > 500>>
-		<<set $PC.belly *= .75>>
-	<</if>>
-	<<if $PC.fertDrugs != 0>>
-		<<set $PC.fertDrugs = 0>>
-	<</if>>
-<<elseif $PC.belly > 0>>
-	<<if $PC.belly < 100>>
-		<<set $PC.belly = 0>>
-	<<else>>
-		<<set $PC.belly *= .75>>
-	<</if>>
-<</if>>
-<<if $PC.pregWeek < 0>>
-	<<set $PC.pregWeek++>>
-<</if>>
-
-<<set $HGEnergy = 0, $HGCum = 0, $HGSlaveSuccess = 0, $HeadGirl = 0, $Recruiter = 0, $Madam = 0, $unMadam = 0, $madamCashBonus = 0, $whorePriceAdjustment = {}, $DJ = 0, $unDJ = 0, $DJRepBonus = 0, $Milkmaid = 0, $Farmer = 0, $Collectrix = 0, $Stewardess = 0, $Schoolteacher = 0, $Wardeness = 0, $Concubine = 0, $Attendant = 0, $Matron = 0, $Nurse = 0, $Bodyguard = 0, $Stud = 0, $StudCum = 0, $fuckSlaves = 0, $freeSexualEnergy = 0, $publicServants = 0, $cumSlaves = 0, $averageDick = 0, $slavesWithWorkingDicks = 0, $slaveJobValues = {}>>
-
-/* GAMEOVERS */
-<<if $slaves.length < 1>>
-	<<set $gameover = "no slaves">><<goto "Gameover">>
-<<elseif $arcologies[0].ownership < $arcologies[0].minority>>
-	<<set $gameover = "ownership">><<goto "Gameover">>
-<<else>>
-	<<goto "Slave Assignments Report">>
-<</if>>
diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw
index 428f88a704990be9813e9109bb650dfa881fc63c..8f67962e66065242f80c275874d8187ab218f970 100644
--- a/src/uncategorized/nextWeek.tw
+++ b/src/uncategorized/nextWeek.tw
@@ -332,7 +332,7 @@
 /% These are variables that either should be made into _temp vars or should be Zeroed out once done with them instead of here. This can also interfere with debugging or hide NaN's as zeroing things out would clear a NaN. Also could stop from NaN's getting worse? %/
 /% Integer and float variables. No real need to zero them out but doesn't hurt to have them in a known state, though this might mask variables NaN'ing out. Takes up the least amount of Memory besides a "" string. %/
 <<set $i = 0, $j = 0, $averageProsperity = 0, $motherSlave = -1, $daughterSlave = -1, $devMother = -1, $devDaughter = -1, $alphaTwin = -1, $betaTwin = -1, $youngerSister = -1, $olderSister = -1, $recruiterSlave = -1>>
-<<set $boobsID = -1, $boobsInterestTargetID = -1, $buttslutID = -1, $buttslutInterestTargetID = -1, $cumslutID = -1, $cumslutInterestTargetID = -1, $humiliationID = -1, $humiliationInterestTargetID = -1, $sadistID = -1, $sadistInterestTargetID = -1, $masochistID = -1, $masochistInterestTargetID = -1, $domID = -1, $dominantInterestTargetID = -1, $subID = -1, $submissiveInterestTargetID = -1>>
+<<set $boobsID = -1, $boobsInterestTargetID = -1, $buttslutID = -1, $buttslutInterestTargetID = -1, $cumslutID = -1, $cumslutInterestTargetID = -1, $humiliationID = -1, $humiliationInterestTargetID = -1, $sadistID = -1, $sadistInterestTargetID = -1, $masochistID = -1, $masochistInterestTargetID = -1, $domID = -1, $dominantInterestTargetID = -1, $subID = -1, $submissiveInterestTargetID = -1, $shelterGirlID = -1>>
 
 /% Other arrays %/
 <<set $events = [], $RESSevent = [], $RESSTRevent = [], $RETSevent = [], $RECIevent = [], $RecETSevent = [], $REFIevent = [], $REFSevent = [], $PESSevent = [], $PETSevent = [], $FSAcquisitionEvents = [], $FSNonconformistEvents = [], $REAnalCowgirlSubIDs = [], $REButtholeCheckinIDs = [], $recruit = [], $RETasteTestSubIDs = [], $rebelSlaves = [], $REBoobCollisionSubIDs = [], $REIfYouEnjoyItSubIDs = [], $RESadisticDescriptionSubIDs = [], $REShowerForceSubIDs = [], $RESimpleAssaultIDs = [], $RECockmilkInterceptionIDs = [], $REInterslaveBeggingIDs = [], $bedSlaves = [], $eligibleSlaves = []>>
diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw
index 22bcbcd49499fe049522d10bb14e93dd2efcc83f..4f8716bde985f5a6f4e63311c167a2d111398f08 100644
--- a/src/uncategorized/randomNonindividualEvent.tw
+++ b/src/uncategorized/randomNonindividualEvent.tw
@@ -75,7 +75,9 @@
 	<</if>>
 
 	<<if $shelterAbuse <= 5>>
-		<<if $shelterGirlsIDs.length > 0>>
+		<<set _shelterGirls = $slaves.filter(isShelterSlave)>>
+		<<if _shelterGirls.length > 0>>
+			<<set $shelterGirlID = _shelterGirls.random().ID>>
 			<<set $events.push("RE shelter inspection")>>
 		<</if>>
 	<</if>>
diff --git a/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw b/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw
index 8a8a11697fe3d41851741686070c0f7a9c2a0fb7..f07e9d82ef9c008fa7b700df79e11b4b0355893a 100644
--- a/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw
+++ b/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw
@@ -63,7 +63,7 @@ You receive so many messages, as a noted titan of the new Free Cities world, tha
 This call is coming from a public kiosk, which is usually an indication that the person on the other end is a transient individual who has decided to take slavery over homelessness. In this case, however, the story is more unusual — the callers seem stressed, but otherwise normal. They haltingly and quietly explain, with many nervous glances off-camera to ensure they are not overheard, that they are both siblings and lovers, and their attempts to keep the truth of the nature of their relationship from their friends, family, and society at large have failed. They had heard of $arcologies[0].name's reverence for incestuous relationships, and have managed to talk themselves into the questionable conclusion that their only chance to be together was for them to sell themselves to someone who would not just accept but encourage their incest — namely, you.
 <br><br>
 <<= capFirstChar($assistant.name)>> assembles a dossier of information and photos from information they've sent describing their bodies and skills, to be used as a substitute for an in-person inspection.
-<br></br>
+<br><br>
 
 <<set _totalValue = slaveCost($activeSlave) + slaveCost(_secondSlave)>>
 //Enslaving them will cost <<print cashFormat(_contractCost)>>. Selling them immediately will bring in approximately <<print cashFormat(_totalValue-_contractCost)>>.//
diff --git a/src/uncategorized/reShelterInspection.tw b/src/uncategorized/reShelterInspection.tw
index 4ee0a5eb8e59e76c80a160f16bc8928010405c0b..58cf6af091d2f7489f10cf4d6d90b720cd986b90 100644
--- a/src/uncategorized/reShelterInspection.tw
+++ b/src/uncategorized/reShelterInspection.tw
@@ -40,17 +40,8 @@
 <<set $activeSlave.sexualQuirk = either("apathetic", "idealistic")>>
 <<set $activeSlave.clothes = either("conservative clothing", "nice business attire")>>
 
-<<set _slave = $shelterGirlsIDs.random()>>
-<<set _Inspectee = getSlave(_slave)>>
-<<set _originSlave = $genePool.find(function(s) { return s.ID == _slave; })>>
-/*
-* this check is currently unnecessary but if in the future the shelter girl IDs list is changed to updated only when acquiring shelter girls, this should be enabled
-*
-<<if (ndef _Inspectee)>>
-	<<set $shelterGirlsIDs.delete(_slave)>>
-	<<goto "Random Nonindividual Event">>
-<</if>>
-*/
+<<set _Inspectee = getSlave($shelterGirlID)>>
+<<set _originSlave = $genePool.find(function(s) { return s.ID == $shelterGirlID; })>>
 
 <<setLocalPronouns _Inspectee>>
 <<setLocalPronouns $activeSlave 2>>
diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw
index 2f598239a79dfeb161527a297a506a1713a5aee8..522ab6de08b2ef2f63ff561588484f35bba5d6ce 100644
--- a/src/uncategorized/saRules.tw
+++ b/src/uncategorized/saRules.tw
@@ -260,7 +260,7 @@
 						<</if>> /* closes $slaves[$i].devotion > 50 */
 						<<saRulesPlayerDiscoversFetish>>
 						<<saRulesPlayerDrugEffects>>
-					<<else>> //* _release.master === 0 */
+					<<else>> /* _release.master === 0 */
 						<<saRulesNoRelease>>
 						<<saRulesNoReleaseDrugEffects>>
 					<</if>>
diff --git a/src/uncategorized/salon.tw b/src/uncategorized/salon.tw
index 92dcfa97080d1a07eefb0a22fb95447d0f4a9ed2..d1270397d26e23f1dd0255d9a6d697c60eb32db1 100644
--- a/src/uncategorized/salon.tw
+++ b/src/uncategorized/salon.tw
@@ -70,7 +70,7 @@
 
 <div>
 	Custom glass eyes and cosmetic lenses:
-	$He has <<print App.Desc.eyesType(getSlave($AS))>><<if hasAnyEyes(getSlave($AS))>>, they are <<print App.Desc.eyeColor(getSlave($AS))>><</if>>.
+	$He has <<print App.Desc.eyesType(getSlave($AS))>><<if hasAnyEyes(getSlave($AS))>>, <<if hasBothEyes(getSlave($AS))>>they are<<else>>it is<</if>> <<print App.Desc.eyesColorLong(getSlave($AS))>><</if>>.
 
 	<div class="choices">
 		/* remove lenses */
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index 98571c44315af9a6e00c75f8d055b2693798d321..dad68e96fb5fb912269ee2119f09b225f70de189 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -862,10 +862,6 @@ $sexDemandResult.topClass = Math.trunc((($NPCSexSupply.topClass + $slaveJobValue
 	<</if>>
 <</if>>
 
-<<if isShelterSlave($slaves[$i])>>
-	<<set $shelterGirlsIDs.push($slaves[$i].ID)>>
-<</if>>
-
 <<if $slaves[$i].bellyPain != 0>>
 	<<set $slaves[$i].bellyPain = 0>>
 <</if>>
@@ -1127,3 +1123,6 @@ $sexDemandResult.topClass = Math.trunc((($NPCSexSupply.topClass + $slaveJobValue
 <<if ($researchLab.level > 0)>>
 	<<include "Lab Report">><br><br>
 <</if>>
+
+/* release loading screen as soon as the event loop can run */
+<<run setTimeout(LoadScreen.unlock, 0, window.LoadLockID)>>