Advertisement
Guest User

Familiaris Source Code

a guest
Aug 25th, 2014
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 103.86 KB | None | 0 0
  1.  
  2. <!DOCTYPE html>
  3. <!--[if lte IE 8]><html class="lt-ie9"><![endif]-->
  4. <!--[if gt IE 8]><!--><html><!--<![endif]-->
  5. <head>
  6. <meta charset="utf-8">
  7. <title>familiar1s</title>
  8. <meta name="viewport" content="width=device-width, initial-scale=1">
  9. <!--
  10. Made in Twine 1.4.2 (running on Darwin 14.0.0)
  11. Built on 24 Aug 2014 at 19:59:41, -0700
  12.  
  13. Sugarcane is based on:
  14.  
  15. TiddlyWiki 1.2.39 by Jeremy Ruston, (jeremy [at] osmosoft [dot] com)
  16.  
  17. Published under a BSD open source license
  18.  
  19. Copyright (c) Osmosoft Limited 2005
  20.  
  21. Redistribution and use in source and binary forms, with or without modification,
  22. are permitted provided that the following conditions are met:
  23.  
  24. Redistributions of source code must retain the above copyright notice, this
  25. list of conditions and the following disclaimer.
  26.  
  27. Redistributions in binary form must reproduce the above copyright notice, this
  28. list of conditions and the following disclaimer in the documentation and/or other
  29. materials provided with the distribution.
  30.  
  31. Neither the name of the Osmosoft Limited nor the names of its contributors may be
  32. used to endorse or promote products derived from this software without specific
  33. prior written permission.
  34.  
  35. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
  36. EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  37. OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
  38. SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  39. INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
  40. TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  41. BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  42. CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
  43. ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
  44. DAMAGE.
  45. -->
  46. <script title="engine">
  47. (function(){
  48.  
  49. function clone(a){var constructor,b,proto;if(!a||typeof a!="object"){return a
  50. }constructor=a.constructor;if(constructor==Date||constructor==RegExp){b=new constructor(a)}else{if(constructor==Array){b=[]}else{if(a.nodeType&&typeof a.cloneNode=="function"){b=a.cloneNode(true)}else{proto=(typeof Object.getPrototypeOf=="function"?Object.getPrototypeOf(a):a.__proto__);b=proto?Object.create(proto):{}}}}for(var property in a){if(Object.prototype.hasOwnProperty.call(a,property)&&!isCyclic(a[property])){if(typeof a[property]=="object"){try{b[property]=clone(a[property]);continue}catch(e){}}b[property]=a[property]}}return b}function isCyclic(obj){var properties=[];return(function recurse(obj){var key,i,ownProps=[];if(obj&&typeof obj=="object"){if(properties.indexOf(obj)>-1){return true
  51. }properties.push(obj);for(key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)&&recurse(obj[key])){return true
  52. }}}return false}(obj))}function insertElement(a,d,f,c,e){var b=document.createElement(d);if(f){b.id=f}if(c){b.className=c}if(e){insertText(b,e)}if(a){a.appendChild(b)}return b}function addClickHandler(el,fn){if(el.addEventListener){el.addEventListener("click",fn)}else{if(el.attachEvent){el.attachEvent("onclick",fn)}}}function insertText(a,b){return a.appendChild(document.createTextNode(b))}function removeChildren(a){while(a.hasChildNodes()){a.removeChild(a.firstChild)}}function findPassageParent(el){while(el&&el!=document.body&&!~el.className.indexOf("passage")){el=el.parentNode}return el==document.body?null:el}function setPageElement(c,b,a){var place;if(place=(typeof c=="string"?document.getElementById(c):c)){removeChildren(place);if(tale.has(b)){new Wikifier(place,tale.get(b).processText())}else{new Wikifier(place,a)}}}var scrollWindowInterval;function scrollWindowTo(e,margin){var d=window.scrollY?window.scrollY:document.documentElement.scrollTop,m=window.innerHeight?window.innerHeight:document.documentElement.clientHeight,g=k(e),j=(d>g)?-1:1,b=0,c=Math.abs(d-g);scrollWindowInterval&&window.clearInterval(scrollWindowInterval);if(c){scrollWindowInterval=window.setInterval(h,25)}function h(){b+=0.1;window.scrollTo(0,d+j*(c*Math.easeInOut(b)));if(b>=1){window.clearInterval(scrollWindowInterval)}}function k(o){var p=a(o),h=o.offsetHeight,n=d+m;p=Math.min(Math.max(p+(margin||0)*(p<d?-1:1),0),n);if(p<d){return p
  53. }else{if(p+h>n){if(h<m){return(p-(m-h)+20)}else{return p
  54. }}else{return p
  55. }}}function a(l){var m=0;while(l.offsetParent){m+=l.offsetTop;l=l.offsetParent}return m}}function delta(old,neu){var vars,ret={};if(old&&neu){for(vars in neu){if(neu[vars]!==old[vars]){ret[vars]=neu[vars]}}}return ret}function decompile(val){var i,ret;if((typeof val!="object"&&typeof val!="function")||!val){return val
  56. }else{if(val instanceof Passage){return{"[[Passage]]":val.id}}else{if(Array.isArray(val)){ret=[]}else{ret={}}}}for(i in val){if(Object.prototype.hasOwnProperty.call(val,i)&&!isCyclic(val[i])){ret[i]=decompile(val[i])}}if(typeof val=="function"||val instanceof RegExp){try{internalEval(val+"");ret["[[Call]]"]=val+""}catch(e){ret["[[Call]]"]="function(){}"}}return ret}function recompile(val){var i,ret=val;if(val&&typeof val=="object"){if(typeof val["[[Passage]]"]=="number"){return tale.get(val["[[Passage]]"])}if(typeof val["[[Call]]"]=="string"){try{ret=internalEval(val["[[Call]]"])}catch(e){}}for(i in val){if(Object.prototype.hasOwnProperty.call(val,i)){ret[i]=recompile(val[i])}}}return ret}function addStyle(b){if(document.createStyleSheet){document.getElementsByTagName("head")[0].insertAdjacentHTML("beforeEnd","&nbsp;<style>"+b+"</style>")}else{var a=document.createElement("style");a.appendChild(document.createTextNode(b));document.getElementsByTagName("head")[0].appendChild(a)}}function alterCSS(text){var temp="",imgPassages=tale.lookup("tags","Twine.image");text=text.replace(/\/\*(?:[^\*]|\*(?!\/))*\*\//g,"");text=text.replace(/:link/g,"[class*=Link]");text=text.replace(/:visited/g,".visitedLink");text=text.replace(/@import\s+(?:url\s*\(\s*['"]?|['"])[^"'\s]+(?:['"]?\s*\)|['"])\s*([\w\s\(\)\d\:,\-]*);/g,function(e){temp+=e;return""});text=temp+text;return text.replace(new RegExp(Wikifier.imageFormatter.lookahead,"gim"),function(m,p1,p2,p3,src){for(var i=0;i<imgPassages.length;i++){if(imgPassages[i].title==src){src=imgPassages[i].text;break}}return"url("+src+")"})}function setTransitionCSS(styleText){styleText=alterCSS(styleText);var style=document.getElementById("transitionCSS");style.styleSheet?(style.styleSheet.cssText=styleText):(style.innerHTML=styleText)}function throwError(a,b,tooltip){if(a){var elem=insertElement(a,"span",null,"marked",b);tooltip&&elem.setAttribute("title",tooltip)}else{alert("Regrettably, this "+tale.identity()+"'s code just ran into a problem:\n"+b+".\n"+softErrorMessage)}}Math.easeInOut=function(a){return(1-((Math.cos(a*Math.PI)+1)/2))};String.prototype.readMacroParams=function(keepquotes){var exec,re=/(?:\s*)(?:(?:"([^"]*)")|(?:'([^']*)')|(?:\[\[((?:[^\]]|\](?!\]))*)\]\])|([^"'\s]\S*))/mg,params=[];do{var val;exec=re.exec(this);if(exec){if(exec[1]){val=exec[1];keepquotes&&(val='"'+val+'"')}else{if(exec[2]){val=exec[2];keepquotes&&(val="'"+val+"'")}else{if(exec[3]){val=exec[3];keepquotes&&(val='"'+val.replace('"','\\"')+'"')}else{if(exec[4]){val=exec[4]}}}}val&&params.push(val)}}while(exec);return params};String.prototype.readBracketedList=function(){var c,b="\\[\\[([^\\]]+)\\]\\]",a="[^\\s$]+",e="(?:"+b+")|("+a+")",d=new RegExp(e,"mg"),f=[];do{c=d.exec(this);if(c){if(c[1]){f.push(c[1])}else{if(c[2]){f.push(c[2])}}}}while(c);return(f)};function rot13(s){return s.replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt()+13)?c:c-26)})}Object.create||(function(){var F=function(){};Object.create=function(o){if(typeof o!="object"){throw TypeError()}F.prototype=o;return new F()}})();String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s\s*/,"").replace(/\s\s*$/,"")});Array.isArray||(Array.isArray=function(arg){return Object.prototype.toString.call(arg)==="[object Array]"});Array.prototype.indexOf||(Array.prototype.indexOf=function(b,d){d=(d==null)?0:d;var a=this.length;for(var c=d;c<a;c++){if(this[c]==b){return c
  57. }}return -1});Array.prototype.forEach||(Array.prototype.forEach=function(fun){if(this==null){throw TypeError()}var t=Object(this);var len=+t.length;if(typeof fun!="function"){throw TypeError()}var thisArg=arguments.length>=2?arguments[1]:void 0;for(var i=0;i<len;i++){if(i in t){fun.call(thisArg,t[i],i,t)}}});(function(){function t(t){this.message=t}var e=window,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";t.prototype=Error(),t.prototype.name="InvalidCharacterError",e.btoa||(e.btoa=function(e){for(var o,n,a=0,i=r,c="";e.charAt(0|a)||(i="=",a%1);c+=i.charAt(63&o>>8-8*(a%1))){if(n=e.charCodeAt(a+=0.75),n>255){throw new t()}o=o<<8|n}return c}),e.atob||(e.atob=function(e){if(e=e.replace(/=+$/,""),1==e.length%4){throw new t()}for(var o,n,a=0,i=0,c="";n=e.charAt(i++);~n&&(o=a%4?64*o+n:n,a++%4)?c+=String.fromCharCode(255&o>>(6&-2*a)):0){n=r.indexOf(n)}return c})})();var hasTransition="transition" in document.documentElement.style||"-webkit-transition" in document.documentElement.style;function fade(f,c){var h;var e=f.cloneNode(true);var g=(c.fade=="in")?1:-1;f.parentNode.replaceChild(e,f);if(c.fade=="in"){h=0;e.style.visibility="visible"}else{h=1
  58. }b(e,h);var a=window.setInterval(d,25);function d(){h+=0.05*g;b(e,Math.easeInOut(h));if(((g==1)&&(h>=1))||((g==-1)&&(h<=0))){f.style.visibility=(c.fade=="in")?"visible":"hidden";if(e.parentNode){e.parentNode.replaceChild(f,e)}window.clearInterval(a);if(c.onComplete){c.onComplete.call(f)}}}function b(k,j){var l=Math.floor(j*100);k.style.zoom=1;k.style.filter="alpha(opacity="+l+")";k.style.opacity=j}}function History(){this.history=[{passage:null,variables:{}}];this.id=new Date().getTime()+"";this.hash=""}History.prototype.encodeHistory=function(b,noVars){var ret=".",vars,type,hist=this.history[b],d=this.history[b+1]?delta(this.history[b+1].variables,hist.variables):hist.variables;function vtob(val){try{return window.btoa(unescape(encodeURIComponent(JSON.stringify(decompile(val)))))}catch(e){return"0"
  59. }}if(!hist.passage||hist.passage.id==null){return""
  60. }ret+=hist.passage.id.toString(36);if(noVars){return ret
  61. }for(vars in d){type=typeof d[vars];if(type!="undefined"){ret+="$"+vtob(vars)+","+vtob(d[vars])}}for(vars in hist.linkVars){type=typeof hist.linkVars[vars];if(type!="function"&&type!="undefined"){ret+="["+vtob(vars)+","+vtob(hist.linkVars[vars])}}return ret};History.decodeHistory=function(str,prev){var name,splits,variable,c,d,ret={variables:clone(prev.variables)||{}},match=/([a-z0-9]+)((?:\$[A-Za-z0-9\+\/=]+,[A-Za-z0-9\+\/=]+)*)((?:\[[A-Za-z0-9\+\/=]+,[A-Za-z0-9\+\/=]+)*)/g.exec(str);function btov(str){try{return recompile(JSON.parse(decodeURIComponent(escape(window.atob(str)))))}catch(e){return 0
  62. }}if(match){name=parseInt(match[1],36);if(!tale.has(name)){return false
  63. }if(match[2]){ret.variables||(ret.variables={});splits=match[2].split("$");for(c=0;c<splits.length;c++){variable=splits[c].split(",");d=btov(variable[0]);if(d){ret.variables[d]=btov(variable[1])}}}if(match[3]){ret.linkVars||(ret.linkVars={});splits=match[3].split("[");for(c=0;c<splits.length;c++){variable=splits[c].split(",");d=btov(variable[0]);if(d){ret.linkVars[d]=btov(variable[1])}}}ret.passage=tale.get(name);return ret}};History.prototype.save=function(){var hist,b,a="";for(b=this.history.length-1;b>=0;b--){hist=this.history[b];if(!hist){break
  64. }a+=this.encodeHistory(b)}return"#"+a};History.prototype.restore=function(){var a,b,c,vars;try{if(!window.location.hash||(window.location.hash=="#")){if(testplay){if(tale.has("StoryInit")){new Wikifier(insertElement(null,"span"),tale.get("StoryInit").text)}this.display(testplay,null,"quietly");return true}return false}if(window.location.hash.substr(0,2)=="#!"){c=window.location.hash.substr(2).split("_").join(" ");this.display(c,null,"quietly");return true}a=window.location.hash.replace("#","").split(".");for(b=0;b<a.length;b++){vars=History.decodeHistory(a[b],vars||{});if(vars){if(b==a.length-1){vars.variables=clone(this.history[0].variables);for(c in this.history[0].linkVars){vars.variables[c]=clone(this.history[0].linkVars[c])}this.history.unshift(vars);this.display(vars.passage.title,null,"back")}else{this.history.unshift(vars)}}}return true}catch(d){return false
  65. }};History.prototype.saveVariables=function(c,el,callback){if(typeof callback=="function"){callback.call(el)}this.history.unshift({passage:c,variables:clone(this.history[0].variables)})};var restart=History.prototype.restart=function(){if(typeof window.history.replaceState=="function"){(typeof this.pushState=="function")&&this.pushState(true,window.location.href.replace(/#.*$/,""));window.location.reload()}else{window.location.hash=""}};var version={major:4,minor:2,revision:0,date:new Date("2014"),extensions:{}};var testplay,tale,state,prerender={},postrender={},macros=window.macros={};version.extensions.displayMacro={major:2,minor:0,revision:0};macros.display={parameters:[],handler:function(place,macroName,params,parser){var t,j,output,oldDisplayParams,name=parser.fullArgs();if(macroName!="display"){output=macroName;params=parser.fullMatch().replace(/^\S*|>>$/g,"").readMacroParams(true);try{for(j=0;j<params.length;j++){params[j]=internalEval(Wikifier.parse(params[j]))}}catch(e){throwError(place,parser.fullMatch()+" bad argument: "+params[j],parser.fullMatch());return}}else{try{output=internalEval(name)}catch(e){}if(output==null){if(tale.has(name)){output=name
  66. }}}if(!output){throwError(place,"<<"+macroName+'>>: "'+name+'" did not evaluate to a passage name',parser.fullMatch())}else{if(!tale.has(output+"")){throwError(place,"<<"+macroName+'>>: The "'+output+'" passage does not exist',parser.fullMatch())}else{oldDisplayParams=this.parameters;this.parameters=params;t=tale.get(output+"");if(t.tags.indexOf("script")>-1){scriptEval(t)}else{new Wikifier(place,t.processText())}this.parameters=oldDisplayParams
  67. }}}};version.extensions.actionsMacro={major:1,minor:2,revision:0};macros.actions={handler:function(a,f,g){var v=state.history[0].variables,e=insertElement(a,"ul");if(!v["actions clicked"]){v["actions clicked"]={}}for(var b=0;b<g.length;b++){if(v["actions clicked"][g[b]]){continue
  68. }var d=insertElement(e,"li");var c=Wikifier.createInternalLink(d,g[b],(function(link){return function(){state.history[0].variables["actions clicked"][link]=true}}(g[b])));insertText(c,g[b])}}};version.extensions.printMacro={major:1,minor:1,revision:1};macros.print={handler:function(place,macroName,params,parser){var args=parser.fullArgs(macroName!="print"),output;try{output=internalEval(args);if(output!=null&&(typeof output!="number"||!isNaN(output))){new Wikifier(place,""+output)}}catch(e){throwError(place,"<<print>> bad expression: "+params.join(" "),parser.fullMatch())}}};version.extensions.setMacro={major:1,minor:1,revision:0};macros.set={handler:function(a,b,c,parser){macros.set.run(a,parser.fullArgs(),parser,c.join(" "))},run:function(a,expression,parser,original){try{return internalEval(expression)}catch(e){throwError(a,"bad expression: "+(original||expression),parser?parser.fullMatch():expression)}}};version.extensions.ifMacros={major:2,minor:0,revision:0};macros["if"]={handler:function(place,macroName,params,parser){var conditions=[],clauses=[],rawConds=[],srcOffset=parser.source.indexOf(">>",parser.matchStart)+2,src=parser.source.slice(srcOffset),endPos=-1,rawCond=params.join(" "),currentCond=parser.fullArgs(),currentClause="",t=0,nesting=0,i=0;for(;i<src.length;i++){if((src.substr(i,6)=="<<else")&&!nesting){rawConds.push(rawCond);conditions.push(currentCond.trim());clauses.push(currentClause);currentClause="";t=src.indexOf(">>",i+6);if(src.substr(i+6,4)==" if "||src.substr(i+6,3)=="if "){rawCond=src.slice(i+9,t);currentCond=Wikifier.parse(rawCond)}else{rawCond="";currentCond="true"}i=t+2}if(src.substr(i,5)=="<<if "){nesting++
  69. }if(src.substr(i,9)=="<<endif>>"){nesting--;if(nesting<0){endPos=srcOffset+i+9;rawConds.push(rawCond);conditions.push(currentCond.trim());clauses.push(currentClause);break}}currentClause+=src.charAt(i)}if(endPos!=-1){parser.nextMatch=endPos;try{for(i=0;i<clauses.length;i++){if(internalEval(conditions[i])){new Wikifier(place,clauses[i]);break}}}catch(e){throwError(place,"<<"+(i?"else ":"")+"if>> bad condition: "+rawConds[i],!i?parser.fullMatch():"<<else if "+rawConds[i]+">>")}}else{throwError(place,"I can't find a matching <<endif>>",parser.fullMatch())}}};macros["else"]=macros.elseif=macros.endif={handler:function(){}};version.extensions.rememberMacro={major:2,minor:0,revision:0};macros.remember={handler:function(place,macroName,params,parser){var variable,value,re,match,statement=params.join(" ");macros.set.run(place,parser.fullArgs(),null,params.join(" "));if(!window.localStorage){throwError(place,"<<remember>> can't be used "+(window.location.protocol=="file:"?" by local HTML files ":"")+" in this browser.",parser.fullMatch());return}re=new RegExp(Wikifier.textPrimitives.variable,"g");while(match=re.exec(statement)){variable=match[1];value=state.history[0].variables[variable];try{value=JSON.stringify(value)}catch(e){throwError(place,"can't <<remember>> the variable $"+variable+" ("+(typeof value)+")",parser.fullMatch());return}window.localStorage[this.prefix+variable]=value}},init:function(){var i,variable,value;if(tale.has("StoryTitle")){this.prefix="Twine."+tale.title+"."}else{this.prefix="Twine.Untitled Story."}for(i in window.localStorage){if(i.indexOf(this.prefix)==0){variable=i.substr(this.prefix.length);value=window.localStorage[i];try{value=JSON.parse(value);state.history[0].variables[variable]=value}catch(e){}}}},expire:null,prefix:null};version.extensions.forgetMacro={major:1,minor:0,revision:0};macros.forget={handler:function(place,macroName,params){var re,match,variable,statement=params.join(" ");re=new RegExp(Wikifier.textPrimitives.variable,"g");while(match=re.exec(statement)){variable=match[1]+"";delete state.history[0].variables[variable];delete window.localStorage[macros.remember.prefix+variable]}}};version.extensions.SilentlyMacro={major:1,minor:1,revision:0};macros.nobr=macros.silently={handler:function(place,macroName,f,parser){var i,h=insertElement(null,"div"),k=parser.source.indexOf(">>",parser.matchStart)+2,a=parser.source.slice(k),d=-1,c="",l=0;for(i=0;i<a.length;i++){if(a.substr(i,macroName.length+7)=="<<end"+macroName+">>"){if(l==0){d=k+i+macroName.length+7;break}else{l--
  70. }}else{if(a.substr(i,macroName.length+4)=="<<"+macroName+">>"){l++
  71. }}if(macroName=="nobr"&&a.charAt(i)=="\n"){c+="\u200c"}else{c+=a.charAt(i)}}if(d!=-1){new Wikifier(macroName=="nobr"?place:h,c);parser.nextMatch=d}else{throwError(place,"can't find matching <<end"+macroName+">>",parser.fullMatch())}}};macros.endsilently={handler:function(){}};version.extensions.choiceMacro={major:2,minor:0,revision:0};macros.choice={callback:function(){var i,other,passage=findPassageParent(this);if(passage){other=passage.querySelectorAll(".choice");for(i=0;i<other.length;i++){other[i].outerHTML="<span class=disabled>"+other[i].innerHTML+"</span>"}state.history[0].variables["choice clicked"][passage.id.replace(/\|[^\]]*$/,"")]=true}},handler:function(A,C,D,parser){var link,id,match,text=D[1]||D[0].split("|")[0],passage=findPassageParent(A);if(!passage){throwError(A,"<<"+C+">> can't be used here.",parser.fullMatch());return}id=(passage&&passage.id.replace(/\|[^\]]*$/,""));if(id&&(state.history[0].variables["choice clicked"]||(state.history[0].variables["choice clicked"]={}))[id]){insertElement(A,"span",null,"disabled",text)}else{match=new RegExp(Wikifier.linkFormatter.lookahead).exec(parser.fullMatch());if(match){link=Wikifier.linkFormatter.makeLink(A,match,this.callback)}else{link=Wikifier.linkFormatter.makeLink(A,[0,text,D[0]],this.callback)}link.className+=" "+C}}};version.extensions.backMacro={major:2,minor:0,revision:0};macros.back={labeltext:"&#171; back",handler:function(a,b,e,parser){var labelParam,c,el,labeltouse=this.labeltext,steps=1,stepsParam=e.indexOf("steps"),stepsParam2="";if(stepsParam>0){stepsParam2=e[stepsParam-1];if(stepsParam2[0]=="$"){try{stepsParam2=internalEval(Wikifier.parse(stepsParam2))}catch(r){throwError(a,parser.fullMatch()+" bad expression: "+r.message,parser.fullMatch());return}}steps=+stepsParam2;if(steps>=state.history.length-1){steps=state.history.length-2}e.splice(stepsParam-1,2)}labelParam=e.indexOf("label");if(labelParam>-1){if(!e[labelParam+1]){throwError(a,parser.fullMatch()+": "+e[labelParam]+" keyword needs an additional label parameter",parser.fullMatch());return}labeltouse=e[labelParam+1];e.splice(labelParam,2)}if(stepsParam<=0){if(e[0]){if(e[0].charAt(0)=="$"){try{e=internalEval(Wikifier.parse(e[0]))}catch(r){throwError(a,parser.fullMatch()+" bad expression: "+r.message,parser.fullMatch());return}}else{e=e[0]}if(!tale.has(e)){throwError(a,'The "'+e+'" passage does not exist',parser.fullMatch());return}for(c=0;c<state.history.length;c++){if(state.history[c].passage.title==e){steps=c;break}}}}el=document.createElement("a");el.className=b;addClickHandler(el,(function(b){return function(){return macros.back.onclick(b=="back",steps,el)}}(b)));el.innerHTML=labeltouse;a.appendChild(el)}};version.extensions.returnMacro={major:2,minor:0,revision:0};macros["return"]={labeltext:"&#171; return",handler:function(a,b,e){macros.back.handler.call(this,a,b,e)}};version.extensions.textInputMacro={major:2,minor:0,revision:0};macros.checkbox=macros.radio=macros.textinput={handler:function(A,C,D,parser){var match,class_=C.replace("input","Input"),q=A.querySelectorAll("input"),id=class_+"|"+((q&&q.length)||0);input=insertElement(null,"input",id,class_);input.name=D[0];input.type=C.replace("input","");A.appendChild(input);if(C=="textinput"&&D[1]){match=new RegExp(Wikifier.linkFormatter.lookahead).exec(parser.fullMatch());if(match){Wikifier.linkFormatter.makeLink(A,match,macros.button.callback,"button")}else{Wikifier.linkFormatter.makeLink(A,[0,(D[2]||D[1]),D[1]],macros.button.callback,"button")}}else{if((C=="radio"||C=="checkbox")&&D[1]){input.value=D[1];insertElement(A,"label","","",D[1]).setAttribute("for",id);if(D[2]){insertElement(A,"br");D.splice(1,1);macros[C].handler(A,C,D)}}}}};version.extensions.buttonMacro={major:1,minor:0,revision:0};macros.button={callback:function(){var el=findPassageParent(this);if(el){var inputs=el.querySelectorAll("input");for(i=0;i<inputs.length;i++){if(inputs[i].type!="checkbox"&&(inputs[i].type!="radio"||inputs[i].checked)){macros.set.run(null,Wikifier.parse(inputs[i].name+' = "'+inputs[i].value.replace(/"/g,'\\"')+'"'))}else{if(inputs[i].type=="checkbox"&&inputs[i].checked){macros.set.run(null,Wikifier.parse(inputs[i].name+" = [].concat("+inputs[i].name+" || []);"));macros.set.run(null,Wikifier.parse(inputs[i].name+'.push("'+inputs[i].value.replace(/"/g,'\\"')+'")'))}}}}},handler:function(A,C,D,parser){var link,match=new RegExp(Wikifier.linkFormatter.lookahead).exec(parser.fullMatch());if(match){Wikifier.linkFormatter.makeLink(A,match,this.callback,"button")}else{Wikifier.linkFormatter.makeLink(A,[0,D[1]||D[0],D[0]],this.callback,"button")}}};function Passage(c,b,a,ofunc){var t;if(!this||this.constructor!=Passage){throw new ReferenceError("passage() must be in lowercase")}this.title=c;ofunc=typeof ofunc=="function"&&ofunc;if(b){this.id=a;this.tags=b.getAttribute("tags");if(typeof this.tags=="string"){if(ofunc){this.tags=ofunc(this.tags)}this.tags=this.tags.readBracketedList()}else{this.tags=[]}t=b.firstChild?b.firstChild.nodeValue:"";if(ofunc&&!this.isImage()){this.text=ofunc(Passage.unescapeLineBreaks(t))}else{this.text=Passage.unescapeLineBreaks(t)}if(!this.isImage()){this.preloadImages()}if(/\.char\b|\[data\-char\b/.exec(this.text)&&Wikifier.charSpanFormatter){Wikifier.formatters.push(Wikifier.charSpanFormatter);delete Wikifier.charSpanFormatter}}else{this.text="@@This passage does not exist: "+c+"@@";this.tags=[]}}Passage.prototype.isImage=function(){return !!~(this.tags.indexOf("Twine.image"))};Passage.prototype.preloadImages=function(){var u="\\s*['\"]?([^\"'$]+\\.(jpe?g|a?png|gif|bmp|webp|svg))['\"]?\\s*",k=function(c,e){var i,d;do{d=c.exec(this.text);if(d){i=new Image();i.src=d[e]}}while(d);return k};k.call(this,new RegExp(Wikifier.imageFormatter.lookahead.replace("[^\\[\\]\\|]+",u),"mg"),4).call(this,new RegExp("url\\s*\\("+u+"\\)","mig"),1).call(this,new RegExp("src\\s*="+u,"mig"),1)};Passage.unescapeLineBreaks=function(a){if(a&&typeof a=="string"){return a.replace(/\\n/mg,"\n").replace(/\\t/mg,"\t").replace(/\\s/mg,"\\").replace(/\\/mg,"\\").replace(/\r/mg,"")}else{return""
  72. }};Passage.prototype.setTags=function(b){var t=this.tags!=null&&this.tags.length?this.tags.join(" "):"";if(t){b.setAttribute("data-tags",this.tags.join(" "))}document.body.setAttribute("data-tags",t)};Passage.prototype.processText=function(){var ret=this.text;if(~this.tags.indexOf("nobr")){ret=ret.replace(/\n/g,"\u200c")}if(this.isImage()){ret="[img["+ret+"]]"}return ret};function Tale(){var a,b,c,lines,i,kv,nsc,isImage,settings=this.storysettings={lookup:function(a,dfault){if(!(a in this)){return dfault
  73. }return(this[a]+"")!="off"}},tiddlerTitle="";window.tale=this;this.passages={};if(document.normalize){document.normalize()}a=document.getElementById("storeArea").children;for(b=0;b<a.length;b++){c=a[b];if(c.getAttribute&&c.getAttribute("tiddler")=="StorySettings"){lines=new Passage("StorySettings",c,0,null,null).text.split("\n");for(i in lines){if(typeof lines[i]=="string"&&lines[i].indexOf(":")>-1){kv=lines[i].toLowerCase().split(":");kv[0]=kv[0].replace(/^\s+|\s+$/g,"");kv[1]=kv[1].replace(/^\s+|\s+$/g,"");if(kv[0]!="lookup"){settings[kv[0]]=kv[1]}}}}}if(settings.obfuscate=="rot13"){for(b=0;b<a.length;b++){c=a[b];if(c.getAttribute&&(tiddlerTitle=c.getAttribute("tiddler"))){isImage=(c.getAttribute("tags")+"").indexOf("Twine.image")>-1;if(tiddlerTitle!="StorySettings"&&!isImage){tiddlerTitle=rot13(tiddlerTitle)}this.passages[tiddlerTitle]=new Passage(tiddlerTitle,c,b+1,!isImage&&rot13)
  74. }}}else{for(b=0;b<a.length;b++){c=a[b];if(c.getAttribute&&(tiddlerTitle=c.getAttribute("tiddler"))){this.passages[tiddlerTitle]=new Passage(tiddlerTitle,c,b,null,null)}}}}Tale.prototype.has=function(a){if(typeof a=="string"){return(this.passages[a]!=null)}else{for(var i in this.passages){if(this.passages[i].id==a){return true
  75. }}return false}};Tale.prototype.get=function(a){if(typeof a=="string"){return this.passages[a]||new Passage(a)}else{for(var i in this.passages){if(this.passages[i].id==a){return this.passages[i]}}}};Tale.prototype.lookup=function(h,g,a){var d=[];for(var c in this.passages){var f=this.passages[c];for(var b=0;b<f[h].length;b++){if(f[h][b]==g){d.push(f)}}}if(!a){a="title"
  76. }d.sort(function(k,j){if(k[a]==j[a]){return(0)}else{return(k[a]<j[a])?-1:+1}});return d};Tale.prototype.canUndo=function(){return this.storysettings.lookup("undo",true)};Tale.prototype.identity=function(){var meta=document.querySelector("meta[name='identity']"),identity=meta?meta.getAttribute("content"):"story";return(Tale.prototype.identity=function(){return identity
  77. })()};Tale.prototype.forEachStylesheet=function(tags,callback){var passage,i;tags=tags||[];if(typeof callback!="function"){return
  78. }for(passage in this.passages){passage=tale.passages[passage];if(passage&&~passage.tags.indexOf("stylesheet")){for(i=0;i<tags.length;i++){if(~passage.tags.indexOf(tags[i])){callback(passage);break}}}}};Tale.prototype.setPageElements=function(){var storyTitle,defaultTitle="familiar1s";setPageElement("storyTitle","StoryTitle",defaultTitle);storyTitle=document.getElementById("storyTitle");document.title=this.title=(storyTitle&&(storyTitle.textContent||storyTitle.innerText))||defaultTitle;setPageElement("storySubtitle","StorySubtitle","");if(tale.has("StoryAuthor")){setPageElement("titleSeparator",null,"\n");setPageElement("storyAuthor","StoryAuthor","")}if(tale.has("StoryMenu")){document.getElementById("storyMenu").setAttribute("style","");setPageElement("storyMenu","StoryMenu","")}};function Wikifier(place,source){this.source=source;this.output=place;this.nextMatch=0;this.assembleFormatterMatches(Wikifier.formatters);this.subWikify(this.output)}Wikifier.textPrimitives={upperLetter:"[A-Z\u00c0-\u00de\u0150\u0170]",lowerLetter:"[a-z\u00df-\u00ff_0-9\\-\u0151\u0171]",anyLetter:"[A-Za-z\u00c0-\u00de\u00df-\u00ff_0-9\\-\u0150\u0170\u0151\u0171]"};Wikifier.textPrimitives.variable="\\$((?:"+Wikifier.textPrimitives.anyLetter.replace("\\-","")+"*"+Wikifier.textPrimitives.anyLetter.replace("0-9\\-","")+"+"+Wikifier.textPrimitives.anyLetter.replace("\\-","")+"*)+)";Wikifier.textPrimitives.unquoted="(?=(?:[^\"'\\\\]*(?:\\\\.|'(?:[^'\\\\]*\\\\.)*[^'\\\\]*'|\"(?:[^\"\\\\]*\\\\.)*[^\"\\\\]*\"))*[^'\"]*$)";Wikifier.prototype.assembleFormatterMatches=function(formatters){this.formatters=[];var pattern=[];for(var n=0;n<formatters.length;n++){pattern.push("("+formatters[n].match+")");this.formatters.push(formatters[n])}this.formatterRegExp=new RegExp(pattern.join("|"),"mg")};Wikifier.prototype.subWikify=function(output,terminator){var terminatorMatch,formatterMatch,oldOutput=this.output;this.output=output;var terminatorRegExp=terminator?new RegExp("("+terminator+")","mg"):null;do{this.formatterRegExp.lastIndex=this.nextMatch;if(terminatorRegExp){terminatorRegExp.lastIndex=this.nextMatch}formatterMatch=this.formatterRegExp.exec(this.source);terminatorMatch=terminatorRegExp?terminatorRegExp.exec(this.source):null;if(terminatorMatch&&(!formatterMatch||terminatorMatch.index<=formatterMatch.index)){if(terminatorMatch.index>this.nextMatch){this.outputText(this.output,this.nextMatch,terminatorMatch.index)}this.matchStart=terminatorMatch.index;this.matchLength=terminatorMatch[1].length;this.matchText=terminatorMatch[1];this.nextMatch=terminatorMatch.index+terminatorMatch[1].length;this.output=oldOutput;return}else{if(formatterMatch){if(formatterMatch.index>this.nextMatch){this.outputText(this.output,this.nextMatch,formatterMatch.index)}this.matchStart=formatterMatch.index;this.matchLength=formatterMatch[0].length;this.matchText=formatterMatch[0];this.nextMatch=this.formatterRegExp.lastIndex;var matchingFormatter=-1;for(var t=1;t<formatterMatch.length;t++){if(formatterMatch[t]){matchingFormatter=t-1;break}}if(matchingFormatter!=-1){this.formatters[matchingFormatter].handler(this)}}}}while(terminatorMatch||formatterMatch);if(this.nextMatch<this.source.length){this.outputText(this.output,this.nextMatch,this.source.length);this.nextMatch=this.source.length}this.output=oldOutput};Wikifier.prototype.outputText=function(place,startPos,endPos){if(place){insertText(place,this.source.substring(startPos,endPos))}};Wikifier.prototype.fullMatch=function(){return this.source.slice(this.matchStart,this.source.indexOf(">>",this.matchStart)+2)};Wikifier.prototype.fullArgs=function(includeName){var source=this.source.replace(/\u200c/g," "),endPos=this.nextMatch-2,startPos=source.indexOf(includeName?"<<":" ",this.matchStart);if(!~startPos||!~endPos||endPos<=startPos){return""
  79. }return Wikifier.parse(source.slice(startPos+(includeName?2:1),endPos).trim())};Wikifier.parse=function(input){var m,re,b=input,found=[],g=Wikifier.textPrimitives.unquoted;function alter(from,to){b=b.replace(new RegExp(from+g,"gim"),to);return alter}re=new RegExp(Wikifier.textPrimitives.variable+g,"gi");while(m=re.exec(input)){if(!~found.indexOf(m[0])){b=m[0]+" == null && ("+m[0]+" = 0);"+b;found.push(m[0])}}alter(Wikifier.textPrimitives.variable,"state.history[0].variables.$1")("\\beq\\b"," == ")("\\bneq\\b"," != ")("\\bgt\\b"," > ")("\\bgte\\b"," >= ")("\\blt\\b"," < ")("\\blte\\b"," <= ")("\\band\\b"," && ")("\\bor\\b"," || ")("\\bnot\\b"," ! ")("\\bis\\b"," == ")("\\bto\\b"," = ");return b};Wikifier.formatHelpers={charFormatHelper:function(a){var b=insertElement(a.output,this.element);a.subWikify(b,this.terminator)},inlineCssHelper:function(w){var s,v,lookaheadMatch,gotMatch,styles=[],lookahead=Wikifier.styleByCharFormatter.lookahead,lookaheadRegExp=new RegExp(lookahead,"mg"),hadStyle=false,unDash=function(str){var s=str.split("-");if(s.length>1){for(var t=1;t<s.length;t++){s[t]=s[t].substr(0,1).toUpperCase()+s[t].substr(1)}}return s.join("")};styles.className="";do{lookaheadRegExp.lastIndex=w.nextMatch;lookaheadMatch=lookaheadRegExp.exec(w.source);gotMatch=lookaheadMatch&&lookaheadMatch.index==w.nextMatch;if(gotMatch){hadStyle=true;if(lookaheadMatch[5]){styles.className+=lookaheadMatch[5].replace(/\./g," ")+" "}else{if(lookaheadMatch[1]){s=unDash(lookaheadMatch[1]);v=lookaheadMatch[2]}else{s=unDash(lookaheadMatch[3]);v=lookaheadMatch[4]}}switch(s){case"bgcolor":s="backgroundColor";break;case"float":s="cssFloat";break}styles.push({style:s,value:v});w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}while(gotMatch);return styles},monospacedByLineHelper:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){insertElement(w.output,"pre",null,null,lookaheadMatch[1]);w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}};Wikifier.formatters=[{name:"table",match:"^\\|(?:[^\\n]*)\\|(?:[fhc]?)$",lookahead:"^\\|([^\\n]*)\\|([fhc]?)$",rowTerminator:"\\|(?:[fhc]?)$\\n?",cellPattern:"(?:\\|([^\\n\\|]*)\\|)|(\\|[fhc]?$\\n?)",cellTerminator:"(?:\\x20*)\\|",rowTypes:{"c":"caption","h":"thead","":"tbody","f":"tfoot"},handler:function(w){var rowContainer,rowElement,lookaheadMatch,matched,table=insertElement(w.output,"table"),lookaheadRegExp=new RegExp(this.lookahead,"mg"),currRowType=null,nextRowType,prevColumns=[],rowCount=0;w.nextMatch=w.matchStart;do{lookaheadRegExp.lastIndex=w.nextMatch;lookaheadMatch=lookaheadRegExp.exec(w.source),matched=lookaheadMatch&&lookaheadMatch.index==w.nextMatch;if(matched){nextRowType=lookaheadMatch[2];if(nextRowType!=currRowType){rowContainer=insertElement(table,this.rowTypes[nextRowType])}currRowType=nextRowType;if(currRowType=="c"){if(rowCount==0){rowContainer.setAttribute("align","top")}else{rowContainer.setAttribute("align","bottom")}w.nextMatch=w.nextMatch+1;w.subWikify(rowContainer,this.rowTerminator)}else{rowElement=insertElement(rowContainer,"tr");this.rowHandler(w,rowElement,prevColumns)}rowCount++}}while(matched)},rowHandler:function(w,e,prevColumns){var cellMatch,matched,col=0,currColCount=1,cellRegExp=new RegExp(this.cellPattern,"mg");do{cellRegExp.lastIndex=w.nextMatch;cellMatch=cellRegExp.exec(w.source);matched=cellMatch&&cellMatch.index==w.nextMatch;if(matched){if(cellMatch[1]=="~"){var last=prevColumns[col];if(last){last.rowCount++;last.element.setAttribute("rowSpan",last.rowCount);last.element.setAttribute("rowspan",last.rowCount);last.element.valign="center"}w.nextMatch=cellMatch.index+cellMatch[0].length-1}else{if(cellMatch[1]==">"){currColCount++;w.nextMatch=cellMatch.index+cellMatch[0].length-1}else{if(cellMatch[2]){w.nextMatch=cellMatch.index+cellMatch[0].length;break}else{var spaceLeft=false,spaceRight=false,lastColCount,lastColElement,styles,cell,t;w.nextMatch++;styles=Wikifier.formatHelpers.inlineCssHelper(w);while(w.source.substr(w.nextMatch,1)==" "){spaceLeft=true;w.nextMatch++}if(w.source.substr(w.nextMatch,1)=="!"){cell=insertElement(e,"th");w.nextMatch++}else{cell=insertElement(e,"td")}prevColumns[col]={rowCount:1,element:cell};lastColCount=1;lastColElement=cell;if(currColCount>1){cell.setAttribute("colSpan",currColCount);cell.setAttribute("colspan",currColCount);currColCount=1}for(t=0;t<styles.length;t++){cell.style[styles[t].style]=styles[t].value}w.subWikify(cell,this.cellTerminator);if(w.matchText.substr(w.matchText.length-2,1)==" "){spaceRight=true
  80. }if(spaceLeft&&spaceRight){cell.align="center"}else{if(spaceLeft){cell.align="right"}else{if(spaceRight){cell.align="left"}}}w.nextMatch=w.nextMatch-1}}}col++}}while(matched)}},{name:"rule",match:"^----$\\n?",handler:function(w){insertElement(w.output,"hr")}},{name:"emdash",match:"--",becomes:String.fromCharCode(8212),handler:function(a){insertElement(a.output,"span",null,"char",this.becomes).setAttribute("data-char","emdash")}},{name:"heading",match:"^!{1,5}",terminator:"\\n",handler:function(w){var e=insertElement(w.output,"h"+w.matchLength);w.subWikify(e,this.terminator)}},{name:"monospacedByLine",match:"^\\{\\{\\{\\n",lookahead:"^\\{\\{\\{\\n((?:^[^\\n]*\\n)+?)(^\\}\\}\\}$\\n?)",handler:Wikifier.formatHelpers.monospacedByLineHelper},{name:"quoteByBlock",match:"^<<<\\n",terminator:"^<<<\\n",handler:function(w){var e=insertElement(w.output,"blockquote");w.subWikify(e,this.terminator)}},{name:"list",match:"^(?:(?:\\*+)|(?:#+))",lookahead:"^(?:(\\*+)|(#+))",terminator:"\\n",handler:function(w){var newType,newLevel,t,len,bulletType,lookaheadMatch,matched,lookaheadRegExp=new RegExp(this.lookahead,"mg"),placeStack=[w.output],currType=null,currLevel=0;w.nextMatch=w.matchStart;do{lookaheadRegExp.lastIndex=w.nextMatch;lookaheadMatch=lookaheadRegExp.exec(w.source);matched=lookaheadMatch&&lookaheadMatch.index==w.nextMatch;if(matched){newLevel=lookaheadMatch[0].length;if(lookaheadMatch[1]){bulletType=lookaheadMatch[1].slice(-1);newType="ul"}else{if(lookaheadMatch[2]){newType="ol"
  81. }}w.nextMatch+=newLevel;if(newLevel>currLevel){for(t=currLevel;t<newLevel;t++){placeStack.push(insertElement(placeStack[placeStack.length-1],newType))}}else{if(newLevel<currLevel){for(t=currLevel;t>newLevel;t--){placeStack.pop()}}else{if(newLevel==currLevel&&newType!=currType){placeStack.pop();placeStack.push(insertElement(placeStack[placeStack.length-1],newType))}}}currLevel=newLevel;currType=newType;t=insertElement(placeStack[placeStack.length-1],"li");if(bulletType&&bulletType!="*"){t.setAttribute("data-bullet",bulletType)}w.subWikify(t,this.terminator)}}while(matched)}},(Wikifier.urlFormatter={name:"urlLink",match:"(?:https?|mailto|javascript|ftp|data):[^\\s'\"]+(?:/|\\b)",handler:function(w){var e=Wikifier.createExternalLink(w.output,w.matchText);w.outputText(e,w.matchStart,w.nextMatch)}}),(Wikifier.linkFormatter={name:"prettyLink",match:"\\[\\[",lookahead:"\\[\\[([^\\|]*?)(?:\\|(.*?))?\\](?:\\[(.*?)])?\\]",makeInternalOrExternal:function(out,title,callback,type){if(title&&!tale.has(title)&&(title.match(Wikifier.urlFormatter.match,"g")||~title.search(/[\.\\\/#]/))){return Wikifier.createExternalLink(out,title,callback,type)
  82. }else{return Wikifier.createInternalLink(out,title,callback,type)}},makeCallback:function(code,callback){return function(){macros.set.run(null,Wikifier.parse(code),null,code);typeof callback=="function"&&callback.call(this)}},makeLink:function(out,match,callback2,type){var link,title,callback;if(match[3]){callback=this.makeCallback(match[3],callback2)}else{typeof callback2=="function"&&(callback=callback2)}title=Wikifier.parsePassageTitle(match[2]||match[1]);link=this.makeInternalOrExternal(out,title,callback,type);setPageElement(link,null,match[2]?match[1]:title);return link},handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){this.makeLink(w.output,lookaheadMatch);w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}}),(Wikifier.imageFormatter={name:"image",match:"\\[(?:[<]{0,1})(?:[>]{0,1})[Ii][Mm][Gg]\\[",lookahead:"\\[([<]?)(>?)img\\[(?:([^\\|\\]]+)\\|)?([^\\[\\]\\|]+)\\](?:\\[([^\\]]*)\\]?)?(\\])",importedImage:function(img,passageName){var imgPassages,imgname;try{imgname=internalEval(Wikifier.parse(passageName))}catch(e){}if(!imgname){imgname=passageName
  83. }imgPassages=tale.lookup("tags","Twine.image");for(j=0;j<imgPassages.length;j++){if(imgPassages[j].title==imgname){img.src=imgPassages[j].text;break}}},handler:function(w){var e,img,j,lookaheadMatch,lookaheadRegExp=new RegExp(this.lookahead,"mig");lookaheadRegExp.lastIndex=w.matchStart;lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){e=w.output,title=Wikifier.parsePassageTitle(lookaheadMatch[5]);if(title){e=Wikifier.linkFormatter.makeInternalOrExternal(w.output,title)}img=insertElement(e,"img");if(lookaheadMatch[1]){img.align="left"}else{if(lookaheadMatch[2]){img.align="right"}}if(lookaheadMatch[3]){img.title=lookaheadMatch[3]}this.importedImage(img,lookaheadMatch[4]);w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}}),{name:"macro",match:"<<",lookahead:/<<([^>\s]+)(?:\s*)((?:\\.|'(?:[^'\\]*\\.)*[^'\\]*'|"(?:[^"\\]*\\.)*[^"\\]*"|[^'"\\>]|>(?!>))*)>>/mg,handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead);lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source.replace(/\u200c/g,"\n"));if(lookaheadMatch&&lookaheadMatch.index==w.matchStart&&lookaheadMatch[1]){var params=lookaheadMatch[2].readMacroParams();w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length;var name=lookaheadMatch[1];try{var macro=macros[name];if(macro&&typeof macro=="object"&&macro.handler){macro.handler(w.output,name,params,w)}else{if(name[0]=="$"){macros.print.handler(w.output,name,[name].concat(params),w)}else{if(tale.has(name)){macros.display.handler(w.output,name,[name].concat(params),w)}else{throwError(w.output,'No macro or passage called "'+name+'"',w.fullMatch())}}}}catch(e){throwError(w.output,"Error executing macro "+name+": "+e.toString(),w.fullMatch())}}}},{name:"html",match:"<html>",lookahead:"<html>((?:.|\\n)*?)</html>",handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){var e=insertElement(w.output,"span");e.innerHTML=lookaheadMatch[1];w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}},{name:"commentByBlock",match:"/%",lookahead:"/%((?:.|\\n)*?)%/",handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}},{name:"boldByChar",match:"''",terminator:"''",element:"strong",handler:Wikifier.formatHelpers.charFormatHelper},{name:"strikeByChar",match:"==",terminator:"==",element:"strike",handler:Wikifier.formatHelpers.charFormatHelper},{name:"underlineByChar",match:"__",terminator:"__",element:"u",handler:Wikifier.formatHelpers.charFormatHelper},{name:"italicByChar",match:"//",terminator:"//",element:"em",handler:Wikifier.formatHelpers.charFormatHelper},{name:"subscriptByChar",match:"~~",terminator:"~~",element:"sub",handler:Wikifier.formatHelpers.charFormatHelper},{name:"superscriptByChar",match:"\\^\\^",terminator:"\\^\\^",element:"sup",handler:Wikifier.formatHelpers.charFormatHelper},{name:"monospacedByChar",match:"\\{\\{\\{",lookahead:"\\{\\{\\{((?:.|\\n)*?)\\}\\}\\}",handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){var e=insertElement(w.output,"code",null,null,lookaheadMatch[1]);w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}},(Wikifier.styleByCharFormatter={name:"styleByChar",match:"@@",terminator:"@@",lookahead:"(?:([^\\(@]+)\\(([^\\)\\|\\n]+)(?:\\):))|(?:([^\\.:@]+):([^;\\|\\n]+);)|(?:\\.([^;\\|\\n]+);)",handler:function(w){var e=insertElement(w.output,"span",null,null,null);var styles=Wikifier.formatHelpers.inlineCssHelper(w);if(styles.length==0){e.className="marked"}else{for(var t=0;t<styles.length;t++){e.style[styles[t].style]=styles[t].value}if(typeof styles.className=="string"){e.className=styles.className}}w.subWikify(e,this.terminator)}}),{name:"lineBreak",match:"\\n",handler:function(w){insertElement(w.output,"br")}},{name:"continuedLine",match:"\\\\\\s*?\\n",handler:function(a){a.nextMatch=a.matchStart+2}},{name:"htmlCharacterReference",match:"(?:(?:&#?[a-zA-Z0-9]{2,8};|.)(?:&#?(?:x0*(?:3[0-6][0-9a-fA-F]|1D[c-fC-F][0-9a-fA-F]|20[d-fD-F][0-9a-fA-F]|FE2[0-9a-fA-F])|0*(?:76[89]|7[7-9][0-9]|8[0-7][0-9]|761[6-9]|76[2-7][0-9]|84[0-3][0-9]|844[0-7]|6505[6-9]|6506[0-9]|6507[0-1]));)+|&#?[a-zA-Z0-9]{2,8};)",handler:function(w){var el=document.createElement("div");el.innerHTML=w.matchText;insertText(w.output,el.textContent)}},{name:"htmltag",match:"<(?:\\/?[\\w\\-]+|[\\w\\-]+(?:(?:\\s+[\\w\\-]+(?:\\s*=\\s*(?:\\\".*?\\\"|'.*?'|[^'\\\">\\s]+))?)+\\s*|\\s*)\\/?)>",tagname:"<(\\w+)",voids:["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],tableElems:["table","thead","tbody","tfoot","th","tr","td","colgroup","col","caption","figcaption"],cleanupTables:function(e){var i,name,elems=[].slice.call(e.children);for(i=0;i<elems.length;i++){if(elems[i].tagName){name=elems[i].tagName.toLowerCase();if(this.tableElems.indexOf(name)==-1){elems[i].outerHTML=""}else{if(["col","caption","figcaption","td","th"].indexOf(name)==-1){this.cleanupTables.call(this,elems[i])}}}}},handler:function(a){var tmp,passage,setter,e,isvoid,isstyle,lookaheadRegExp,lookaheadMatch,lookahead,re=new RegExp(this.tagname).exec(a.matchText),tn=re&&re[1]&&re[1].toLowerCase();if(tn&&tn!="html"){lookahead="<\\/\\s*"+tn+"\\s*>";isvoid=(this.voids.indexOf(tn)!=-1);isstyle=tn=="style"||tn=="script";lookaheadRegExp=new RegExp(lookahead,"mg");lookaheadRegExp.lastIndex=a.matchStart;lookaheadMatch=lookaheadRegExp.exec(a.source);if(lookaheadMatch||isvoid){if(isstyle){e=document.createElement(tn);e.type="text/css";tmp=a.source.slice(a.nextMatch,lookaheadMatch.index);e.styleSheet?(e.styleSheet.cssText=tmp):(e.innerHTML=tmp);a.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}else{e=document.createElement(a.output.tagName);e.innerHTML=a.matchText;while(e.firstChild){e=e.firstChild}if(!isvoid){a.subWikify(e,lookahead)}}if(e.tagName.toLowerCase()=="table"){this.cleanupTables.call(this,e)}if(setter=e.getAttribute("data-setter")){setter=Wikifier.linkFormatter.makeCallback(setter)}if(passage=e.getAttribute("data-passage")){if(tn!="img"){addClickHandler(e,Wikifier.linkFunction(Wikifier.parsePassageTitle(passage),e,setter));if(tn=="area"||tn=="a"){e.setAttribute("href","javascript:;")}}else{Wikifier.imageFormatter.importedImage(e,passage)}}a.output.appendChild(e)}else{throwError(a.output,"HTML tag '"+tn+"' wasn't closed.",a.matchText)}}}}];Wikifier.charSpanFormatter={name:"char",match:"[^\n]",handler:function(a){insertElement(a.output,"span",null,"char",a.matchText).setAttribute("data-char",a.matchText==" "?"space":a.matchText=="\t"?"tab":a.matchText)}};Wikifier.parsePassageTitle=function(title){if(title&&!tale.has(title)){try{title=(internalEval(this.parse(title))||title)+""}catch(e){}}return title};Wikifier.linkFunction=function(title,el,callback){return function(){if(state.rewindTo){var passage=findPassageParent(el);if(passage&&passage.parentNode.lastChild!=passage){state.rewindTo(passage,true)}}state.display(title,el,null,callback)}};Wikifier.createInternalLink=function(place,title,callback,type){var tag=(type=="button"?"button":"a"),suffix=(type=="button"?"Button":"Link"),el=insertElement(place,tag);if(tale.has(title)){el.className="internal"+suffix;if(visited(title)){el.className+=" visited"+suffix}}else{el.className="broken"+suffix}addClickHandler(el,Wikifier.linkFunction(title,el,callback));if(place){place.appendChild(el)}return el};Wikifier.createExternalLink=function(place,url,callback,type){var tag=(type=="button"?"button":"a"),el=insertElement(place,tag);el.href=url;el.className="external"+(type=="button"?"Button":"Link");el.target="_blank";if(typeof callback=="function"){addClickHandler(el,callback)}if(place){place.appendChild(el)}return el};function visited(e){var ret=0,i=0;if(!state){return 0
  84. }e=e||state.history[0].passage.title;if(arguments.length>1){for(ret=state.history.length;i<arguments.length;i++){ret=Math.min(ret,visited(arguments[i]))}}else{for(;i<state.history.length&&state.history[i].passage;i++){if(e==state.history[i].passage.title){ret++
  85. }}}return ret}function visitedTag(){var i,j,sh,ret=0,tags=Array.prototype.slice.call(arguments);if(tags.length==1&&typeof tags[0]=="string"){tags=tags.split(" ")}if(!state){return 0
  86. }sh=state.history;for(i=0;i<sh.length&&sh[i].passage;i++){for(j=0;j<tags.length||void ret++;j++){if(sh[i].passage.tags.indexOf(tags[j])==-1){break
  87. }}}return ret}var visitedTags=visitedTag;function turns(){return state.history.length-1}function passage(){return state.history[0].passage.title}function tags(e){var ret=[],i=0;if(!state){return 0
  88. }e=e||state.history[0].passage.title;if(arguments.length>1){for(i=arguments.length-1;i>=1;i--){ret=ret.concat(tags(arguments[i]))}}ret=ret.concat(tale.get(e).tags);return ret}function previous(){if(state&&state.history[1]){for(var d=1;d<state.history.length&&state.history[d].passage;d++){if(state.history[d].passage.title!=state.history[0].passage.title){return state.history[d].passage.title}}}return""}function random(a,b){var from,to;if(!b){from=0;to=a}else{from=Math.min(a,b);to=Math.max(a,b)}to+=1;return ~~((Math.random()*(to-from)))+from}function either(){if(Array.isArray(arguments[0])&&arguments.length==1){return either.apply(this,arguments[0])}return arguments[~~(Math.random()*arguments.length)]}function parameter(n){n=n||0;if(macros.display.parameters[n]){return macros.display.parameters[n]}return 0}function bookmark(){return state.hash||"#"}function internalEval(s){return eval("0,"+s)}function scriptEval(s){try{eval(s.text)}catch(e){alert("There is a technical problem with this "+tale.identity()+" ("+s.title+": "+e.message+")."+softErrorMessage)}}window.onbeforeunload=function(){if(tale&&tale.storysettings.lookup("exitprompt",false)&&state&&state.history.length>1){return"You are about to end this "+tale.identity()+"."}};var oldOnError=window.onerror||null,softErrorMessage="You may be able to continue playing, but some parts may not work properly.";window.onerror=function(msg,a,b,c,error){var s=(error&&(".\n\n"+error.stack.replace(/\([^\)]+\)/g,"")+"\n\n"))||(" ("+msg+").\n");alert("Sorry to interrupt, but this "+((tale&&tale.identity&&tale.identity())||"page")+"'s code has got itself in a mess"+s+softErrorMessage.slice(1));window.onerror=oldOnError;if(typeof window.onerror=="function"){window.onerror(msg,a,b,c,error)}};var $;function main(){$=window.$||function(a){return(typeof a=="string"?document.getElementById(a):a)
  89. };var imgs,scripts,macro,style,i,styleText="",passages=document.getElementById("passages");function sanityCheck(thing){var i,j,s="NOTE: The "+thing,checks={prerender:prerender,postrender:postrender,macros:macros};for(i in checks){if(Object.prototype.hasOwnProperty.call(checks,i)&&!sanityCheck[i]){if(!checks[i]||typeof checks[i]!="object"){alert(s+" seems to have corrupted the "+i+" object."+softErrorMessage);sanityCheck[i]=true;continue}if(i!="macros"){for(j in checks[i]){if(Object.prototype.hasOwnProperty.call(checks[i],j)&&typeof checks[i][j]!="function"){alert(s+" added a property '"+j+"' to "+i+", "+"which is a "+typeof checks[i][j]+", not a function."+softErrorMessage);sanityCheck[i]=true;break}}}}}if(!sanityCheck.display){if(History.prototype.display.length<4&&!~History.prototype.display.toString().indexOf("arguments")){alert(s+" contains a function that patches History.prototype.display, but takes the wrong number of arguments."+softErrorMessage)}sanityCheck.display=true}}if(!window.JSON||!document.querySelector){return(passages.innerHTML="This "+tale.identity()+" requires a newer web browser. Sorry.")}else{passages.innerHTML=""}tale=window.tale=new Tale();if(~document.documentElement.className.indexOf("lt-ie9")){imgs=tale.lookup("tags","Twine.image");for(i=0;i<imgs.length;i++){if(imgs[i].text.length>=32768){alert("NOTE: This "+tale.identity()+"'s HTML file contains embedded images that may be too large for this browser to display."+softErrorMessage);break}}}scripts=tale.lookup("tags","script");for(i=0;i<scripts.length;i++){scriptEval(scripts[i]);sanityCheck('script passage "'+scripts[i].title+'"')}state=window.state=new History();for(i in macros){macro=macros[i];if(typeof macro.init=="function"){macro.init();sanityCheck('init() of the custom macro "'+i+'"')}}style=document.getElementById("storyCSS");for(i in tale.passages){i=tale.passages[i];if(i.tags.indexOf("stylesheet")==-1){continue
  90. }if(i.tags+""=="stylesheet"){styleText+=i.text}else{if(i.tags.length==2&&i.tags.indexOf("transition")>-1){setTransitionCSS(i.text)}}}styleText=alterCSS(styleText);style.styleSheet?(style.styleSheet.cssText=styleText):(style.innerHTML=styleText);state.init()}setTimeout(function f(){var size,bar=document.getElementById("loadingbar"),store=document.getElementById("storeArea");if(!bar){return
  91. }if(store){size=store.getAttribute("data-size");if(store.children.length<=size&&!tale){bar.style.width=~~((store.children.length+1)/size*100)+"%"}else{bar.outerHTML="";return}}setTimeout(f,5)},5);
  92.  
  93. var hasPushState=!!window.history&&(typeof window.history.pushState=="function")&&(function(a){try{a.setItem("test","1");a.removeItem("test");return true}catch(e){return false
  94. }}(window.sessionStorage));Tale.prototype.canBookmark=function(){return this.canUndo()&&!this.storysettings.lookup("hash")&&(this.storysettings.lookup("bookmark",true)||!hasPushState)};History.prototype.init=function(){var a=this;if(!this.restore()){if(tale.has("StoryInit")){new Wikifier(insertElement(null,"span"),tale.get("StoryInit").text)}this.display("Start",null)}if(!hasPushState){this.hash=window.location.hash;this.interval=window.setInterval(function(){a.watchHash()},250)}};hasPushState&&(History.prototype.pushState=function(replace,uri){window.history[replace?"replaceState":"pushState"]({id:this.id,length:this.history.length},document.title,uri)});History.prototype.display=function(title,source,type,callback){var i,e,q,bookmark,hash,c=tale.get(title),p=document.getElementById("passages");if(c==null){return
  95. }if(type!="back"){this.saveVariables(c,source,callback);hash=(tale.storysettings.lookup("hash")&&this.save())||"";if(hasPushState&&tale.canUndo()){try{sessionStorage.setItem("Twine.History"+this.id,JSON.stringify(decompile(this.history)));this.pushState(this.history.length<=2&&window.history.state=="",hash)}catch(e){alert("Your browser couldn't save the state of the "+tale.identity()+".\n"+"You may continue playing, but it will no longer be possible to undo moves from here on in.");tale.storysettings.undo="off"}}}this.hash=hash||this.save();e=c.render();if(type!="quietly"){if(hasTransition){for(i=0;i<p.childNodes.length;i+=1){q=p.childNodes[i];q.classList.add("transition-out");setTimeout((function(a){return function(){if(a.parentNode){a.parentNode.removeChild(a)}}}(q)),1000)}e.classList.add("transition-in");setTimeout(function(){e.classList.remove("transition-in")},1);e.style.visibility="visible";p.appendChild(e)}else{removeChildren(p);p.appendChild(e);fade(e,{fade:"in"
  96. })}}else{p.appendChild(e);e.style.visibility="visible"}tale.setPageElements();if(tale.canUndo()){if(!hasPushState&&type!="back"){window.location.hash=this.hash}else{if(tale.canBookmark()){bookmark=document.getElementById("bookmark");bookmark&&(bookmark.href=this.hash)}}}window.scroll(0,0);return e};History.prototype.watchHash=function(){if(window.location.hash!=this.hash){if(window.location.hash&&(window.location.hash!="#")){this.history=[{passage:null,variables:{}}];removeChildren(document.getElementById("passages"));if(!this.restore()){alert("The passage you had previously visited could not be found.")}}else{window.location.reload()}this.hash=window.location.hash}};History.prototype.loadLinkVars=function(){for(var c in this.history[0].linkVars){this.history[0].variables[c]=clone(this.history[0].linkVars[c])}};Passage.prototype.render=function(){var b=insertElement(null,"div","passage"+this.title,"passage");b.style.visibility="hidden";this.setTags(b);this.setCSS();insertElement(b,"div","","header");var a=insertElement(b,"div","","body content");for(var i in prerender){(typeof prerender[i]=="function")&&prerender[i].call(this,a)}new Wikifier(a,this.processText());insertElement(b,"div","","footer");for(i in postrender){(typeof postrender[i]=="function")&&postrender[i].call(this,a)}return b};Passage.prototype.excerpt=function(){var b=this.text.replace(/<<.*?>>/g,"");b=b.replace(/!.*?\n/g,"");b=b.replace(/[\[\]\/]/g,"");var a=b.split("\n");while(a.length&&a[0].length==0){a.shift()}var c="";if(a.length==0||a[0].length==0){c=this.title}else{c=a[0].substr(0,30)+"..."}return c};Passage.transitionCache="";Passage.prototype.setCSS=function(){var trans=false,text="",tags=this.tags||[],c=document.getElementById("tagCSS"),c2=document.getElementById("transitionCSS");if(c&&c.getAttribute("data-tags")!=tags.join(" ")){tale.forEachStylesheet(tags,function(passage){if(~passage.tags.indexOf("transition")){if(!Passage.transitionCache&&c2){Passage.transitionCache=c2.innerHTML}setTransitionCSS(passage.text);trans=true}else{text+=alterCSS(passage.text)}});if(!trans&&Passage.transitionCache&&c2){setTransitionCSS(Passage.transitionCache);trans=false;Passage.transitionCache=""}c.styleSheet?(c.styleSheet.cssText=text):(c.innerHTML=text);c.setAttribute("data-tags",tags.join(" "))}};var Interface={init:function(){var snapback=document.getElementById("snapback"),restart=document.getElementById("restart"),bookmark=document.getElementById("bookmark");main();if(!tale){return
  97. }if(snapback){if(!tale.lookup("tags","bookmark").length){snapback.parentNode.removeChild(snapback)}else{addClickHandler(snapback,Interface.showSnapback)}}if(bookmark&&(!tale.canBookmark()||!hasPushState)){bookmark.parentNode.removeChild(bookmark)}restart&&addClickHandler(restart,Interface.restart)},restart:function(){if(confirm("Are you sure you want to restart this "+tale.identity()+"?")){state.restart()}},showSnapback:function(a){Interface.hideAllMenus();Interface.buildSnapback();Interface.showMenu(a,document.getElementById("snapbackMenu"))},buildSnapback:function(){var b,c=false,menuelem=document.getElementById("snapbackMenu");while(menuelem.hasChildNodes()){menuelem.removeChild(menuelem.firstChild)}for(var a=state.history.length-1;a>=0;a--){if(state.history[a].passage&&state.history[a].passage.tags.indexOf("bookmark")!=-1){b=document.createElement("div");b.pos=a;addClickHandler(b,function(){return macros.back.onclick(true,this.pos)});b.innerHTML=state.history[a].passage.excerpt();menuelem.appendChild(b);c=true}}b=null;if(!c){b=document.createElement("div");b.innerHTML="<i>No passages available</i>";document.getElementById("snapbackMenu").appendChild(b)}},hideAllMenus:function(){document.getElementById("snapbackMenu").style.display="none"},showMenu:function(b,a){if(!b){b=window.event}var c={x:0,y:0};if(b.pageX||b.pageY){c.x=b.pageX;c.y=b.pageY}else{if(b.clientX||b.clientY){c.x=b.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;c.y=b.clientY+document.body.scrollTop+document.documentElement.scrollTop}}a.style.top=c.y+"px";a.style.left=c.x+"px";a.style.display="block";addClickHandler(document,Interface.hideAllMenus);b.cancelBubble=true;if(b.stopPropagation){b.stopPropagation()}}};window.onload=Interface.init;macros.back.onclick=function(back,steps){var title;if(back){if(tale.canUndo()){window.history.go(-steps);return}while(steps-->=0&&state.history.length>1){title=state.history[0].passage.title;state.history.shift()}state.loadLinkVars();state.saveVariables(tale.get(title));state.display(title,null,"back")}else{state.display(state.history[steps].passage.title)}};window.onpopstate=function(e){var title,hist,steps,i,s=e&&e.state;if(s&&s.id&&s.length!=null){hist=recompile(JSON.parse(sessionStorage.getItem("Twine.History"+s.id)));if(hist){steps=hist.length-s.length}}if(steps!=null){state.history=hist;while(steps-->=0&&state.history.length>1){title=state.history[0].passage.title;state.history.shift()}state.loadLinkVars();state.saveVariables(tale.get(title));state.display(title,null,"back")}};
  98.  
  99. testplay = "";
  100.  
  101. }());
  102. </script>
  103. <script title="modules">
  104.  
  105.  
  106. </script>
  107. <style id="baseCSS">
  108. /* Sidebar */
  109. #sidebar {
  110.     position: fixed;
  111.     list-style: none;
  112.     width: 12em;
  113. }
  114. #sidebar #title, #sidebar #credits  {
  115.     cursor: auto;
  116. }
  117. #sidebar #storySubtitle, #sidebar #storyMenu {
  118.     display: block;
  119. }
  120. .menu {
  121.     position: absolute;
  122.     display: none;
  123.     z-index: 5;
  124. }
  125. /* Passages container */
  126. #passages {
  127.     margin-left: 18.2em;
  128.     position:relative;
  129. }
  130. /* Links */
  131. .passage a {
  132.     color: #4d6ad8;
  133. }
  134. a.internalLink, a.externalLink, a.back, a.return, [data-passage], .menu div {
  135.     cursor: pointer;
  136. }
  137. a.brokenLink {
  138.     background-color: red;
  139.     color: #000;
  140. }
  141. .marked {
  142.     background-color: #f66;
  143.     color: #000;
  144. }
  145. .marked[title] {
  146.     cursor: help;
  147. }
  148. .passage li[data-bullet] {
  149.     list-style-type: none;
  150. }
  151. .passage li[data-bullet]:before {
  152.     content: attr(data-bullet);
  153.     position: relative;
  154.     left: -1em;
  155. }
  156. #storeArea {
  157.     display: none;
  158. }
  159. #noscript {
  160.     margin-left: 18.2em;
  161.     font-size: 1.2em;
  162.     font-weight: bold;
  163. }
  164. /* HTML4 compatibility */
  165. img {
  166.     vertical-align:bottom;
  167. }
  168. @media screen and (max-width: 640px) {
  169.     #sidebar {
  170.         position: static;
  171.         margin: 0 auto;
  172.         padding: 0;
  173.     }
  174.     body #sidebar li  {
  175.         text-align: center;
  176.     }
  177.     #passages {
  178.         min-height: 100vh;
  179.         margin-left: 0em;
  180.     }
  181. }
  182. #loadingbar {
  183.     position:fixed;
  184.     top:0;
  185.     left:0;
  186.     border-top: solid #4d6ad8 6px;
  187.     transition: width 0.5s;
  188. }
  189. </style>
  190. <style id="defaultCSS">
  191. body {
  192.     background-color: #000;
  193.     color: #fff;
  194.     font-family: Verdana,sans-serif;
  195.     font-size: 62.5%;
  196.     margin: 4em 15% 5% 5em;
  197. }
  198. #sidebar {
  199.     left: 7.5em;
  200.     margin: 0;
  201.     padding: 0 1em 0 0;
  202.     font: bold 1.1em Verdana,sans-serif;
  203. }
  204. #sidebar ul {
  205.     padding: 0;
  206. }
  207. #sidebar li {
  208.     color: #333;
  209.     text-align: right;
  210.     background-repeat: no-repeat;
  211.     margin-bottom: 1em;
  212.     line-height: 1.4em;
  213.     list-style: none;
  214. }
  215. #sidebar li a {
  216.     color: #333;
  217.     text-decoration: none;
  218. }
  219. #sidebar li a:hover, #sidebar #title a:hover, #snapback:hover, #restart:hover {
  220.     color: #fff;
  221.     cursor: pointer;
  222.     text-decoration: none;
  223. }
  224. #sidebar #title {
  225.     font-size: 150%;
  226. }
  227. #sidebar #title, #sidebar #title:hover, #sidebar #title a {
  228.     color: #999;
  229. }
  230. #sidebar #storySubtitle {
  231.     font-size: 75%;
  232. }
  233. #storyAuthor {
  234.     font-size: 50%;
  235. }
  236. #sidebar #storyMenu {
  237.     line-height: 2.5em;
  238.     margin-bottom: .5em;
  239.     color: #999;
  240.     cursor: auto;
  241. }
  242. #sidebar #credits {
  243.     padding-top: 2em;
  244.     font-weight: normal;
  245.     font-size: 80%;
  246. }
  247. #sidebar #credits:hover {
  248.     color: #333;
  249. }
  250. #sidebar #credits a {
  251.     text-decoration: none;
  252. }
  253. #passages {
  254.     border-left: 1px solid #333;
  255.     padding-left: 1.5em;
  256. }
  257. .menu {
  258.     background-color: #343434;
  259.     color: #fff;
  260.     opacity: .9;
  261.     border: 1px solid #fff;
  262.     text-align: left;
  263.     font: 1.1em Verdana;
  264.     line-height: 2em;
  265. }
  266. .menu div {
  267.     padding: 0 .4em;
  268. }
  269. .menu div:hover {
  270.     cursor: pointer;
  271.     background-color: #fff;
  272.     color: #343434;
  273. }
  274. .passage {
  275.     font-size: 1.2em;
  276.     line-height: 175%;
  277.     margin-bottom: 2em;
  278.     text-align: left;
  279. }
  280. .passage a {
  281.     font-weight: bold;
  282.     text-decoration: none;
  283. }
  284. .passage a:hover {
  285.     color: #8ea6ff;
  286.     text-decoration: underline;
  287. }
  288. .content > ul {
  289.     padding-top: 1.3em;
  290. }
  291. .passage ul, .passage ol {
  292.     margin-left: .5em;
  293.     padding-left: 1.5em;
  294. }
  295. .passage li {
  296.     margin-right: 6em;
  297. }
  298. .passage table {
  299.     border-collapse: collapse;
  300.     font-size: 100%;
  301.     margin: .8em 1.0em;
  302. }
  303. .passage th,.passage td,.passage tr,.passage caption {
  304.     padding: 3px;
  305. }
  306. .passage hr {
  307.     height: 1px;
  308. }
  309. .passage center {
  310.     max-width:50%;
  311.     margin:auto;
  312. }
  313. .marked {
  314.     margin-right: 12px;
  315.     padding: 3px;
  316. }
  317. .disabled {
  318.     font-weight: bold;
  319.     color: #333;
  320. }
  321. @media screen and (max-width: 640px) {
  322.     body {
  323.         margin: 5%;
  324.     }
  325.     #sidebar {
  326.         width:100%;
  327.         margin: 0;
  328.         border-bottom: 1px solid #333;
  329.     }
  330.     #passages {
  331.         padding-top: 2em;
  332.         border-left: 0;
  333.     }
  334. }
  335. </style>
  336. <style id="transitionCSS">
  337. .transition-in {
  338.     opacity:0;
  339.     position:absolute;
  340. }
  341. .passage:not(.transition-out) {
  342.     transition: 1s;
  343.     -webkit-transition: 1s;
  344. }
  345. .transition-out {
  346.     opacity:0 !important;
  347.     position:absolute;
  348. }
  349. </style>
  350. <style id="storyCSS"></style>
  351. <style id="tagCSS"></style>
  352. </head>
  353. <body>
  354. <div id="loadingbar"></div>
  355. <ul id="sidebar">
  356. <li id="title" class="storyElement"><span id="storyTitle" class="storyElement"></span><span id="storySubtitle" class="storyElement"></span><span id="titleSeparator"></span><span id="storyAuthor" class="storyElement"></span></li>
  357. <li id="storyMenu" class="storyElement" style="display:none"></li>
  358. <li><a href="javascript:;" id="snapback">Rewind</a></li>
  359. <li><a href="javascript:;" id="restart">Restart</a></li>
  360. <li><a id="bookmark" title="Permanent link to this passage">Bookmark</a></li>
  361. <li id="credits">
  362. This story was created with <a href="http://twinery.org/">Twine</a> and is powered by <a href="http://tiddlywiki.com/">TiddlyWiki</a>
  363. </li>
  364. </ul>
  365. <div id="snapbackMenu" class="menu"></div>
  366. <div id="passages">
  367. <noscript><div id="noscript">Please enable Javascript to play this story!</div></noscript>
  368. <style>
  369. #sidebar{display:none;}
  370. </style>
  371. </div>
  372. <div id="storeArea" data-size="51" hidden><div tiddler="Nudge2AtDoor" tags="" created="201408241452" modifier="twee" twine-position="990,3930">&lt;&lt;timedremove 5s &gt;&gt;You nudge his hand again.\n\nA sliver of light appears at the top of the window curtain.&lt;&lt;endtimedremove&gt;&gt;\n&lt;&lt;timedremove 10.5s &gt;&gt;The door opens slightly. The woman stands at the door with the two dogs peeking out under her legs.&lt;&lt;endtimedremove&gt;&gt;\n&lt;&lt;timedremove 13.5s &gt;&gt;The man picks up the shoes and holds them out to her.&lt;&lt;endtimedremove&gt;&gt; \n&lt;&lt;timedremove 19.5s &gt;&gt;The door flies open. She runs out and hugs the man.&lt;&lt;endtimedremove&gt;&gt;\n&lt;&lt;timedremove 24.5s &gt;&gt;He hugs her, careful to keep the shoes away from her.&lt;&lt;endtimedremove&gt;&gt;\n\n&lt;&lt;timedinsert 25.8s &gt;&gt;[[Familiaris|credits]]&lt;&lt;endtimedinsert&gt;&gt;</div><div tiddler="HowlAtDoor" tags="" created="201408241438" modifier="twee" twine-position="710,4070">&lt;&lt;timedremove 5.5s &gt;&gt;The door opens slightly. The woman stands at the door with the two dogs peeking out under her legs.&lt;&lt;endtimedremove&gt;&gt;\n\n&lt;&lt;timedremove 8.5s &gt;&gt;The man picks up the shoes and holds them out to her.&lt;&lt;endtimedremove&gt;&gt; \n\n&lt;&lt;timedremove 14.5s &gt;&gt;The door flies open. She runs out and hugs the man.&lt;&lt;endtimedremove&gt;&gt;\n\n&lt;&lt;timedremove 23.5s &gt;&gt;He hugs her, careful to keep the shoes away from her.&lt;&lt;endtimedremove&gt;&gt;\n\n&lt;&lt;timedinsert 25s &gt;&gt;[[Familiaris|credits]]&lt;&lt;endtimedinsert&gt;&gt;</div><div tiddler="BedsideWait" tags="" created="201408232106" modifier="twee" twine-position="990,570">The man lifts the window curtain and peeks outside. It is still dark.\n\nHe groans.\n\nSunlight shines in through the curtains. He looks at the alarm clock, sits up and gets out of bed.\n\nThe man puts on the same jeans and shirt he wore yesterday. He grabs his backpack, tosses a textbook into it, and zips it closed as he walks toward the door.\n\nHe sits on the couch, puts his shoes on, then heads to the door.\n\nBright sunlight shines on him as he opens the door.  He takes a deep breath.\n\nHe mumbles something, walks out, and slams the door. \n\nYou jump up to the window and watch him walk away. He looks down at the sidewalk as he walks.\n\n[[Take a nap.|TestNap]] \n</div><div tiddler="IgnorePlate" tags="" created="201408240004" modifier="twee" twine-position="710,1410">You walk away.\n\nThe man undresses and goes into the bathroom. He leaves the bathroom door open.\n\nHe walks out of the bathroom with a towel wrapped around his waist. He hums the melody a song you've never heard.\n\nHe opens the closet and pulls out clothes more colorful and stylish than what he wore before.\n\nHe goes back to the bathroom.\n\n[[Follow.|GoToBathroom]]\n\n\n</div><div tiddler="CleanShoes2" tags="" created="201408240927" modifier="twee" twine-position="850,2670">The man shouts something from inside the bathroom.\n\n[[Howl.|GetShoes3]]</div><div tiddler="VomitOnShoesSniff" tags="" created="201408240854" modifier="twee" twine-position="990,1830">You run around the grass field with the dogs. \n\nThe man and woman sit on a bench and talk.\n\nYou return to them exhausted. \n\nYou sniff the woman's shoes. They smell like dogs. \n\nYou feel something rise from your stomach and, before you can stop it, you spew vomit onto her white slip-on shoes.\n\nThe woman screams.\n\nShe yanks the shoes off without touching the vomit.\n\nThe man looks terrified. The woman yells something.\n\nThe woman stands up. The man gets up and motions for you to come closer.\n\nThe woman whistles to her dogs. They follow her back to her apartment.  She opens the door, goes inside, and slams it shut.\n\nYou turn to see the man walking away. \n\n[[Follow.|ShoeChance]]</div><div tiddler="IntoApartment" tags="" created="201408231950" modifier="twee" twine-position="850,290">You walk up to the gate. He looks at you for a moment, then  unlocks the gate. You follow him inside. \n\nHe follows a winding path to the last door. He stops and pulls keys out of his pocket.\n\nHe unlocks the door and holds it open. You walk inside.\n\nWater drips from your wet fur onto the carpet. The man sees you shivering. He grabs a towel from the closet and dries you off.\n\nThe man grabs a bowl, fills it with water, and sets it on the kitchen tile floor. You drink the water but you are hungry.\n\nThe man takes a box of corn dogs out of the freezer and drops two onto a plate. \n\nHe looks at you, takes two more corn dogs out of the box and puts them on the plate. He puts the plate in the microwave and cooks them.\n\nHe gets an extra plate from the cabinet and knife from a drawer. He places a plate of two cut up corn dogs on the floor next to the water bowl. \n\nYou devour the food. When you're finished, you look up and see him smiling.\n\nHe goes to the couch with his plate and eats while he watches TV. You lay on the rug in front of the couch.\n\nHe falls asleep.\n\n[[Wake him up.|WakeCouch]]\n[[Let him sleep.|SleepCouch]]\n\n</div><div tiddler="Start" tags="" created="201408221838" modifier="twee" twine-position="1410,10">It's raining. You see an older woman and a child across the street exit a building carrying paper bags. You smell the irresistible aroma of cooked beef. You cross the street and follow them. \n\nThe woman looks over her shoulder and sees you. She shouts and swats her hand at you. \n\nThe child turns and sees you. He stops and tries to pet you.\n\nThe woman snatches the child's hand and pulls him away. Her shouting echoes down an alleyway as they head toward a parking lot.\n\nYou reach the end of the block. A man crossing the street passes by but does not seem to notice you. He stares at the ground and covers his head with the his coat hood as the rainfall gets heavier. \n\n[[Follow.|Meeting]]\n</div><div tiddler="BarkAtMan" tags="" created="201408240020" modifier="twee" twine-position="710,1690">The man laughs. He makes more sounds. They sound more like howling. \n\n[[Howl.|HowlAtMan]]</div><div tiddler="NudgeAtDoor" tags="" created="201408241431" modifier="twee" twine-position="990,3790">You nudge the man's hand holding the shoes with your snout. \n\nHe looks down and smiles at you.\n\nHe reaches out and knocks on the door.\n\nYou hear the dogs scurrying around inside the apartment.\n\n[[Nudge him again.|Nudge2AtDoor]]\n\n</div><div tiddler="IgnoreTextbook" tags="" created="201408232102" modifier="twee" twine-position="2110,710">You watch as he leaves the apartment. You walk to the window and jump up to watch him leave. \n\nAs he runs toward the gate, he trips and collides with a pillar. He keeps running.  \n\nYou wake to the sound of the front door slamming shut. The man takes off his backpack and throws it at the counter. It misses the counter and lands on the tiled floor.\n\nHe yells something and trudges over to his bed. He lays face down.\n\n[[Jump onto bed.|CheerBed]]\n[[Leave him alone.|NoBedJump]]\n</div><div tiddler="Meeting" tags="" created="201408231945" modifier="twee" twine-position="1410,150">You walk alongside him. When he reaches a gate, he stops and turns around. \n\nHe says something and points in the opposite direction.\n\n[[Follow.|IntoApartment]]\n[[Leave.|WalkAway]]</div><div tiddler="JumpToShoes" tags="" created="201408241418" modifier="twee" twine-position="850,3510">You jump up on the counter and look up at the man.\n\nHe laughs and walks to the sink.\n\nHe washes his hands. You look out the window. Your view is obscured by a dark blue curtain behind her window. \n\nThe man returns to the counter. He pets your head.\n\nThe man takes the shoes and walks to the door.\n\n[[Follow|ReturnShoes]]\n</div><div tiddler="RunToMan" tags="" created="201408232308" modifier="twee" twine-position="1970,1270">You run back inside the man's apartment. He shuts the door. \n\nHe paces back and forth.\n\nHe talks to himself. He lifts his shirt collar and smells himself. \n\nHe opens the fridge and looks inside. He looks down at the empty plate on the floor.\n\nHe picks up the plate and says something.\n\n[[Sniff the plate.|SniffPlate]]\n[[Walk away.|IgnorePlate]]</div><div tiddler="BadDay" tags="" created="201408241934" modifier="twee" twine-position="1690,710">You wake to the sound of the front door slamming shut. The man takes off his backpack and throws it at the counter. It misses the counter and lands on the tiled floor.\n\nHe yells something and trudges over to his bed. He lays face down.\n\n[[Jump onto bed.|CheerBed]]\n[[Leave him alone.|NoBedJump]]\n</div><div tiddler="RunWoman" tags="" created="201408232305" modifier="twee" twine-position="1970,990">You squeeze past the man and run to the woman. She bends down and pets you. \n\nShe looks up to see the man standing at the door. \n\n[[Run back.|RunToMan]]\n[[Stay.|StayWithWoman]]\n</div><div tiddler="HomeWithMan" tags="" created="201408232358" modifier="twee" twine-position="850,1270">You and the man go inside and he shuts the door. He paces back and forth.\n\nHe talks to himself. He lifts his shirt collar and smells himself. \n\nHe opens the fridge and looks inside. He looks down at the empty plate on the floor.\n\nHe picks up the plate and says something.\n\n[[Sniff the plate.|SniffPlate]]\n[[Walk away.|IgnorePlate]]</div><div tiddler="SleepCouch" tags="" created="201408232037" modifier="twee" twine-position="1970,570">The overly enthusiastic sound of infomercials lulls you to sleep. \n\nYou wake up to sunlight shining through the windows. The man is laying on top of his plate, still sleeping and on the verge of falling off the couch. \n\nYou poke his arm hanging off the couch with your nose. He wakes up. He sits up, presses a button on his phone on the table, and panics. He stands up, grabs his phone, and runs to his bed. \n\nHe grabs his backpack and a textbook on his desk. He sets them both on the counter, runs into the bathroom, brushes his teeth briefly, then runs out.\n\nHe throws the backpack over his shoulder and heads toward the door, leaving the textbook on the counter.\n\nHe shouts something at you as he fumbles with his keys. \n\n[[Jump up on the counter.|JumpCounter]]\n[[Stay.|IgnoreTextbook]]</div><div tiddler="BringShoes" tags="" created="201408240922" modifier="twee" twine-position="850,2390">You carry the shoes back inside the man's apartment. \n\nYou drop the shoes on the kitchen tile. \n\nThe man is still in the bathroom.  \n\n[[Bark.|CleanShoes]]</div><div tiddler="StoryTitle" tags="" created="201408221838" modifier="twee" twine-position="150,10">Familiaris</div><div tiddler="TestNap" tags="" created="201408232322" modifier="twee" twine-position="850,710">You wake to the sound of the front door opening. The man sees you and smiles.\n\nHe takes off his backpack and sends it sailing toward his bed. \n\nHe sings a song as he walks toward you. You get up.\n\nHe grabs your front legs and dances with you.  You play along until he gets bored and lets go of you. \n\nHe says something to you and points toward the door. He motions for you to come closer.\n\nHe looks around the house. He walks to his desk, opens a drawer, and returns with a long ethernet cable.\n\nHe tries to turn the cord into a functional leash but gives up.\n\n[[Whimper.|WantWalk]]</div><div tiddler="CleanShoes" tags="" created="201408240926" modifier="twee" twine-position="850,2530">You watch the sliver of light under the bathroom door. Nothing happens.\n\n[[Bark!|CleanShoes2]]</div><div tiddler="GoodShoesLook" tags="" created="201408240940" modifier="twee" twine-position="570,3230">You walk to the window and jump up.\n\nYou look up to see the man staring at his phone.\n\nHe retrieves items one at a time from the cabinets.\n\nYou watch as he pours various liquids into a bowl.\n\nHe stands over the trash can and scrapes the solid bits off the shoes. Then, the shoes are dropped into the bowl.\n\nHe removes the shoes from the bowl and wipes them with a cloth. \n\nHe takes the shoes to the sink and rinses them with water.\n\nThey're wet, but they look clean.\n\nThe man sets them on the counter and looks out the window toward the woman's apartment. \n\n[[Jump up to counter.|JumpToShoes]]\n\n\n</div><div tiddler="NoBedJump" tags="" created="201408232253" modifier="twee" twine-position="2110,850">You sit next to the bed, waiting for him to get up.\n\nThe man turns onto his back and sees you. \n\nHe gets up and walks to the door. You follow.\n\nHe pushes you away with his leg and motions for you to stay.\n\nHe opens the door and stops before leaving. A beautiful woman in a blue business suit is walking toward him. He stares at her. \n\n[[Run.|RunWoman]]\n</div><div tiddler="GetShoes" tags="" created="201408240911" modifier="twee" twine-position="850,2250">You paw at the door. It swings open.\n\nYou walk to the shoes.\n\nYou grab both shoes covered in bits of corn dogs and egg rolls with your teeth.\n\n[[Bring back.|BringShoes]]\n\n\n</div><div tiddler="StorySettings" tags="" created="201408230007" modifier="twee" twine-position="430,10">jquery:off\nhash:off\nbookmark:off\nmodernizr:off\nundo:off\nobfuscate:off\nexitprompt:on\nblankcss:off\n</div><div tiddler="ReturnShoes" tags="" created="201408241425" modifier="twee" twine-position="850,3650">The man opens the door. He walks toward the woman's apartment.\n\nYou follow him.\n\nHe stops at the door. No light can be seen from the window.\n\nThe man looks at the shoes, then at the window, then back at his apartment. \n\n[[Bark.|BarkAtDoor]]\n[[Nudge his hand.|NudgeAtDoor]]</div><div tiddler="ShowShoes" tags="" created="201408240934" modifier="twee" twine-position="1270,3090">You walk to the shoes and pick them up with your teeth.\n\nYou walk back to the man.\n\nHe yells at you.\n\nYou sit and look at him with the shoes hanging from your mouth. \n\nThe man looks out the window. He takes the shoes from you and walks back to the kitchen.\n\nYou look up to see the man staring at his phone. He retrieves items one at a time from the cabinet.\n\nYou watch as he pours various liquids into a bowl.\n\nHe stands over the trash can and scrapes the solid bits off the shoes. Then, the shoes are dropped into the bowl.\n\nHe removes the shoes from the bowl and wipes them with a cloth. \n\nHe takes the shoes to the sink and rinses them with water.\n\nThey're wet, but they look clean.\n\nThe man sets them on the counter and looks out the window toward the woman's apartment. \n\n[[Jump up to counter.|JumpToShoes]]</div><div tiddler="Bark2AtDoor" tags="" created="201408241433" modifier="twee" twine-position="710,3930">The man turns around and runs back to you. He tries to grab you and pull you back to his apartment, but you refuse to go.\n\nA sliver of light appears at the top of the window curtain.\n\nThe man keeps trying to pull you away. You hear the dogs scurrying around inside the apartment.\n\n[[Howl.|HowlAtDoor]]\n</div><div tiddler="WakeCouch" tags="" created="201408232037" modifier="twee" twine-position="850,430">You get up and lick his hand. He wakes up and turns off the TV.\n\nHe takes his plate and puts it in the sink.\n\nYou follow him to his bed. He sits on the bed next to the night table. He flips a switch on the alarm clock. \n\nYou lay down near the bed. He gets up, removes his clothes, and tosses them onto the desk chair. He lays on the bed.\n\nHe looks at you and says something. You wag your tail. \n\nHe laughs and shuts off the light on the night table. \n\nA loud beeping sound wakes you up. The man reaches over and shuts the alarm off. He stretches his arms toward the ceiling.\n\n[[Jump on the side of the bed.|BedsideJump]]\n[[Wait.|BedsideWait]]\n</div><div tiddler="VomitOnShoesIgnore" tags="" created="201408240837" modifier="twee" twine-position="710,1970">You chase after the ball and grab it. The woman says something and her dogs run to join you. \n\nThe man and woman sit at a bench and talk while you play. These dogs  seem friendly. Much nicer than most dogs you've met.\n\nYou get tired and walk to the bench. The woman's dogs follow you.\n\nYou sniff the woman's shoes.  You feel something rising from your stomach and, before you can stop it, you spew vomit onto her white slip-on shoes.\n\nThe woman screams.\n\nShe yanks the shoes off without touching the vomit.\n\nThe man looks terrified. The woman yells something.\n\nThe woman stands up. The man gets up and motions for you to come closer.\n\nThe woman whistles to her dogs. They follow her back to her apartment.  She opens the door, goes inside, and slams it shut.\n\nYou turn to see the man walking away. \n\n[[Follow.|ShoeChance]]</div><div tiddler="GoodShoesStay" tags="" created="201408240940" modifier="twee" twine-position="290,3230">You stare at him while he shouts.\n\nAfter a while, he stops and walks back to the kitchen.\n\nYou look up to see the man staring at his phone. He retrieves items one at a time from the cabinets.\n\nYou watch as he pours various liquids into a bowl.\n\nHe stands over the trash can and scrapes the solid bits off the shoes. Then, the shoes are dropped into the bowl.\n\nHe removes the shoes from the bowl and wipes them with a cloth. \n\nHe takes the shoes to the sink and rinses them with water.\n\nThey're wet, but they look clean.\n\nThe man sets them on the counter and looks out the window toward the woman's apartment.\n\n[[Jump up to counter.|JumpToShoes]]</div><div tiddler="LeaveShoes" tags="" created="201408240934" modifier="twee" twine-position="430,3090">You walk to the rug by the TV and lay down. \n\nThe man goes the door and slams it closed.\n\nHe peers out the window.\n\nHe shakes his head and walks toward the fridge.  He trips over something and shouts.\n\nHe continues shouting as he walks over to you.\n\nHe points toward the kitchen.\n\n[[Stay.|GoodShoesStay]]\n[[Look out window.|GoodShoesLook]]</div><div tiddler="GetShoes4" tags="" created="201408240930" modifier="twee" twine-position="850,2950">The man shouts something.\n\nThe bathroom door opens.\n\nHe sees the open door and yells. \n\n[[Bring shoes.|ShowShoes]]\n[[Walk away.|LeaveShoes]]\n\n</div><div tiddler="TimedScript" tags="script" created="201408232028" modifier="twee" twine-position="570,10">(function(){version.extensions.replaceMacrosCombined={major:1,minor:1,revision:4};var nullobj={handler:function(){}};function showVer(n,notrans){if(!n){return\n}n.innerHTML=&quot;&quot;;new Wikifier(n,n.tweecode);n.setAttribute(&quot;data-enabled&quot;,&quot;true&quot;);n.style.display=&quot;inline&quot;;n.classList.remove(&quot;revision-span-out&quot;);\nif(!notrans){n.classList.add(&quot;revision-span-in&quot;);if(n.timeout){clearTimeout(n.timeout)}n.timeout=setTimeout(function(){n.classList.remove(&quot;revision-span-in&quot;);\nn=null},1)}}function hideVer(n,notrans){if(!n){return}n.setAttribute(&quot;data-enabled&quot;,&quot;false&quot;);n.classList.remove(&quot;revision-span-in&quot;);\nif(n.timeout){clearTimeout(n.timeout)}if(!notrans){n.classList.add(&quot;revision-span-out&quot;);n.timeout=setTimeout(function(){if(n.getAttribute(&quot;data-enabled&quot;)==&quot;false&quot;){n.classList.remove(&quot;revision-span-out&quot;);\nn.style.display=&quot;none&quot;;n.innerHTML=&quot;&quot;}n=null},1000)}else{n.style.display=&quot;none&quot;;n.innerHTML=&quot;&quot;;n=null}}function tagcontents(b,starttags,desttags,endtags,k){var l=0,c=&quot;&quot;,tg,a,i;\nfunction tagfound(i,e){for(var j=0;j&lt;e.length;j++){if(a.indexOf(&quot;&lt;&lt;&quot;+e[j],i)==i){return e[j]}}}a=b.source.slice(k);for(i=0;\ni&lt;a.length;i++){if(tg=tagfound(i,starttags)){l++}else{if((tg=tagfound(i,desttags))&amp;&amp;l==0){b.nextMatch=k+i+tg.length+4;return[c,tg]\n}else{if(tg=tagfound(i,endtags)){l--;if(l&lt;0){return null}}}}c+=a.charAt(i)}return null}var begintags=[];var endtags=[];function revisionSpanHandler(g,e,f,b){var k=b.source.indexOf(&quot;&gt;&gt;&quot;,b.matchStart)+2,vsns=[],vtype=e,flen=f.length,becomes,c,cn,m,h,vsn;\nfunction mkspan(vtype){h=insertElement(m,&quot;span&quot;,null,&quot;revision-span &quot;+vtype);h.setAttribute(&quot;data-enabled&quot;,false);h.style.display=&quot;none&quot;;\nh.tweecode=&quot;&quot;;return h}if(this.shorthand&amp;&amp;flen){while(f.length&gt;0){vsns.push([f.shift(),(this.flavour==&quot;insert&quot;?&quot;gains&quot;:&quot;becomes&quot;)])\n}}else{if(this.flavour==&quot;insert&quot;||(this.flavour==&quot;continue&quot;&amp;&amp;this.trigger==&quot;time&quot;)){vsns.push([&quot;&quot;,&quot;becomes&quot;])}}if(this.flavour==&quot;continue&quot;&amp;&amp;flen){b.nextMatch=k+b.source.slice(k).length;\nvsns.push([b.source.slice(k),vtype])}else{becomes=[&quot;becomes&quot;,&quot;gains&quot;];c=tagcontents(b,begintags,becomes.concat(endtags),endtags,k);\nif(c&amp;&amp;endtags.indexOf(c[1])==-1){while(c){vsns.push(c);c=tagcontents(b,begintags,becomes,endtags,b.nextMatch)}c=tagcontents(b,begintags,[&quot;end&quot;+e],endtags,b.nextMatch)\n}if(!c){throwError(g,&quot;can't find matching end&quot;+e);return}vsns.push(c);if(this.flavour==&quot;continue&quot;){k=b.nextMatch;b.nextMatch=k+b.source.slice(k).length;\nvsns.push([b.source.slice(k),&quot;&quot;])}}if(this.flavour==&quot;remove&quot;){vsns.push([&quot;&quot;,&quot;becomes&quot;])}cn=0;m=insertElement(g,&quot;span&quot;,null,e);\nm.setAttribute(&quot;data-flavour&quot;,this.flavour);h=mkspan(&quot;initial&quot;);vsn=vsns.shift();h.tweecode=vsn[0];showVer(h,true);while(vsns.length&gt;0){if(vsn){vtype=vsn[1]\n}vsn=vsns.shift();h=mkspan(vtype);h.tweecode=vsn[0]}if(typeof this.setup==&quot;function&quot;){this.setup(m,g,f)}}function quantity(m){return(m.children.length-1)+(m.getAttribute(&quot;data-flavour&quot;)==&quot;remove&quot;)\n}function revisionSetup(m,g,f){m.className+=&quot; &quot;+f[0].replace(&quot; &quot;,&quot;_&quot;)}function keySetup(m,g,f){var key=f[0];m.setEventListener(&quot;keydown&quot;,function l(e){var done=!revise(&quot;revise&quot;,m);\nif(done){m.removeEventListener(&quot;keydown&quot;,l)}})}function timeSetup(m,g,f){function cssTimeUnit(s){if(typeof s==&quot;string&quot;){if(s.slice(-2).toLowerCase()==&quot;ms&quot;){return Number(s.slice(0,-2))||0\n}else{if(s.slice(-1).toLowerCase()==&quot;s&quot;){return Number(s.slice(0,-1))*1000||0}}}throwError(g,s+&quot; isn't a CSS time unit&quot;);\nreturn 0}var tm=cssTimeUnit(f[0]);setTimeout(function timefn(){var done=!revise(&quot;revise&quot;,m);if(!done){setTimeout(timefn,tm)\n}},tm)}function hoverSetup(m){var fn,noMouseEnter=(document.head.onmouseenter!==null),m1=m.children[0],m2=m.children[1];if(!m1||!m2){return\n}m1.onmouseenter=function(e){if(this.getAttribute(&quot;data-enabled&quot;)!=&quot;false&quot;){revise(&quot;revise&quot;,this.parentNode)}};m2.onmouseleave=function(e){if(this.getAttribute(&quot;data-enabled&quot;)!=&quot;false&quot;){revise(&quot;revert&quot;,this.parentNode)\n}};if(noMouseEnter){fn=function(n){return function(e){if(!event.relatedTarget||(event.relatedTarget!=this&amp;&amp;!(this.compareDocumentPosition(event.relatedTarget)&amp;Node.DOCUMENT_POSITION_CONTAINED_BY))){this[n]()\n}}};m1.onmouseover=fn(&quot;onmouseenter&quot;);m2.onmouseout=fn(&quot;onmouseleave&quot;)}m=null}function mouseSetup(m){var evt=(document.head.onmouseenter===null?&quot;onmouseenter&quot;:&quot;onmouseover&quot;);\nm[evt]=function(){var done=!revise(&quot;revise&quot;,this);if(done){this[evt]=null}};m=null}function linkSetup(m,g,f){var l=Wikifier.createInternalLink(),p=m.parentNode;\nl.className=&quot;internalLink replaceLink&quot;;p.insertBefore(l,m);l.insertBefore(m,null);l.onclick=function(){var p,done=false;if(m&amp;&amp;m.parentNode==this){done=!revise(&quot;revise&quot;,m);\nscrollWindowTo(m)}if(done){this.parentNode.insertBefore(m,this);this.parentNode.removeChild(this)}};l=null}function visitedSetup(m,g,f){var i,done,shv=state.history[0].variables,os=&quot;once seen&quot;,d=(m.firstChild&amp;&amp;(this.flavour==&quot;insert&quot;?m.firstChild.nextSibling:m.firstChild).tweecode);\nshv[os]=shv[os]||{};if(d&amp;&amp;!shv[os].hasOwnProperty(d)){shv[os][d]=1}else{for(i=shv[os][d];i&gt;0&amp;&amp;!done;i--){done=!revise(&quot;revise&quot;,m,true)\n}if(shv[os].hasOwnProperty(d)){shv[os][d]+=1}}}[{name:&quot;insert&quot;,flavour:&quot;insert&quot;,trigger:&quot;link&quot;,setup:linkSetup},{name:&quot;timedinsert&quot;,flavour:&quot;insert&quot;,trigger:&quot;time&quot;,setup:timeSetup},{name:&quot;insertion&quot;,flavour:&quot;insert&quot;,trigger:&quot;revisemacro&quot;,setup:revisionSetup},{name:&quot;later&quot;,flavour:&quot;insert&quot;,trigger:&quot;visited&quot;,setup:visitedSetup},{name:&quot;keyinsert&quot;,flavour:&quot;insert&quot;,trigger:&quot;key&quot;,setup:keySetup},{name:&quot;replace&quot;,flavour:&quot;replace&quot;,trigger:&quot;link&quot;,setup:linkSetup},{name:&quot;timedreplace&quot;,flavour:&quot;replace&quot;,trigger:&quot;time&quot;,setup:timeSetup},{name:&quot;mousereplace&quot;,flavour:&quot;replace&quot;,trigger:&quot;mouse&quot;,setup:mouseSetup},{name:&quot;hoverreplace&quot;,flavour:&quot;replace&quot;,trigger:&quot;hover&quot;,setup:hoverSetup},{name:&quot;revision&quot;,flavour:&quot;replace&quot;,trigger:&quot;revisemacro&quot;,setup:revisionSetup},{name:&quot;keyreplace&quot;,flavour:&quot;replace&quot;,trigger:&quot;key&quot;,setup:keySetup},{name:&quot;timedremove&quot;,flavour:&quot;remove&quot;,trigger:&quot;time&quot;,setup:timeSetup},{name:&quot;mouseremove&quot;,flavour:&quot;remove&quot;,trigger:&quot;mouse&quot;,setup:mouseSetup},{name:&quot;hoverremove&quot;,flavour:&quot;remove&quot;,trigger:&quot;hover&quot;,setup:hoverSetup},{name:&quot;removal&quot;,flavour:&quot;remove&quot;,trigger:&quot;revisemacro&quot;,setup:revisionSetup},{name:&quot;once&quot;,flavour:&quot;remove&quot;,trigger:&quot;visited&quot;,setup:visitedSetup},{name:&quot;keyremove&quot;,flavour:&quot;remove&quot;,trigger:&quot;key&quot;,setup:keySetup},{name:&quot;continue&quot;,flavour:&quot;continue&quot;,trigger:&quot;link&quot;,setup:linkSetup},{name:&quot;timedcontinue&quot;,flavour:&quot;continue&quot;,trigger:&quot;time&quot;,setup:timeSetup},{name:&quot;mousecontinue&quot;,flavour:&quot;continue&quot;,trigger:&quot;mouse&quot;,setup:mouseSetup},{name:&quot;keycontinue&quot;,flavour:&quot;continue&quot;,trigger:&quot;key&quot;,setup:keySetup},{name:&quot;cycle&quot;,flavour:&quot;cycle&quot;,trigger:&quot;revisemacro&quot;,setup:revisionSetup},{name:&quot;mousecycle&quot;,flavour:&quot;cycle&quot;,trigger:&quot;mouse&quot;,setup:mouseSetup},{name:&quot;timedcycle&quot;,flavour:&quot;cycle&quot;,trigger:&quot;time&quot;,setup:timeSetup},{name:&quot;keycycle&quot;,flavour:&quot;replace&quot;,trigger:&quot;key&quot;,setup:keySetup}].forEach(function(e){e.handler=revisionSpanHandler;\ne.shorthand=([&quot;link&quot;,&quot;mouse&quot;,&quot;hover&quot;].indexOf(e.trigger)&gt;-1);macros[e.name]=e;macros[&quot;end&quot;+e.name]=nullobj;begintags.push(e.name);\nendtags.push(&quot;end&quot;+e.name)});function insideDepartingSpan(elem){var r=elem.parentNode;while(!r.classList.contains(&quot;passage&quot;)){if(r.classList.contains(&quot;revision-span-out&quot;)){return true\n}r=r.parentNode}}function reviseAll(rt,rname){var rall=document.querySelectorAll(&quot;.passage [data-flavour].&quot;+rname),ret=false;\nfor(var i=0;i&lt;rall.length;i++){if(!insideDepartingSpan(rall[i])){ret=revise(rt,rall[i])||ret}}return ret}function revise(rt,r,notrans){var ind2,curr,next,ind=-1,rev=(rt==&quot;revert&quot;),rnd=(rt.indexOf(&quot;random&quot;)&gt;-1),fl=r.getAttribute(&quot;data-flavour&quot;),rc=r.childNodes,cyc=(fl==&quot;cycle&quot;),rcl=rc.length-1;\nfunction doToGainerSpans(n,fn){for(var k=n-1;k&gt;=0;k--){if(rc[k+1].classList.contains(&quot;gains&quot;)){fn(rc[k],notrans)}else{break\n}}}for(var k=0;k&lt;=rcl;k++){if(rc[k].getAttribute(&quot;data-enabled&quot;)==&quot;true&quot;){ind=k}}if(rev){ind-=1}curr=(ind&gt;=0?rc[ind]:(cyc?rc[rcl]:null));\nind2=ind;if(rnd){ind2=(ind+(Math.floor(Math.random()*rcl)))%rcl}next=((ind2&lt;rcl)?rc[ind2+1]:(cyc?rc[0]:null));var docurr=(rev?showVer:hideVer);\nvar donext=(rev?hideVer:showVer);var currfn=function(){if(!(next&amp;&amp;next.classList.contains(&quot;gains&quot;))||rnd){docurr(curr,notrans);\ndoToGainerSpans(ind,docurr,notrans)}};var nextfn=function(){donext(next,notrans);if(rnd){doToGainerSpans(ind2+1,donext,notrans)\n}};if(!rev){currfn();nextfn()}else{nextfn();currfn()}return(cyc?true:(rev?(ind&gt;0):(ind2&lt;rcl-1)))}macros.revert=macros.revise=macros.randomise=macros.randomize={handler:function(a,b,c){var l,rev,rname;\nfunction disableLink(l){l.style.display=&quot;none&quot;}function enableLink(l){l.style.display=&quot;inline&quot;}function updateLink(l){if(l.className.indexOf(&quot;random&quot;)&gt;-1){enableLink(l);\nreturn}var rall=document.querySelectorAll(&quot;.passage [data-flavour].&quot;+rname),cannext,canprev,i,ind,r,fl;for(i=0;i&lt;rall.length;\ni++){r=rall[i],fl=r.getAttribute(&quot;data-flavour&quot;);if(insideDepartingSpan(r)){continue}if(fl==&quot;cycle&quot;){cannext=canprev=true\n}else{if(r.firstChild.getAttribute(&quot;data-enabled&quot;)==!1+&quot;&quot;){canprev=true}if(r.lastChild.getAttribute(&quot;data-enabled&quot;)==!1+&quot;&quot;){cannext=true\n}}}var can=(l.classList.contains(&quot;revert&quot;)?canprev:cannext);(can?enableLink:disableLink)(l)}function toggleText(w){w.classList.toggle(rl+&quot;Enabled&quot;);\nw.classList.toggle(rl+&quot;Disabled&quot;);w.style.display=((w.style.display==&quot;none&quot;)?&quot;inline&quot;:&quot;none&quot;)}var rl=&quot;reviseLink&quot;;if(c.length&lt;2){throwError(a,b+&quot; macro needs 2 parameters&quot;);\nreturn}rname=c.shift().replace(&quot; &quot;,&quot;_&quot;);l=Wikifier.createInternalLink(a,null);l.className=&quot;internalLink &quot;+rl+&quot; &quot;+rl+&quot;_&quot;+rname+&quot; &quot;+b;\nvar v=&quot;&quot;;var end=false;var out=false;if(c.length&gt;1&amp;&amp;c[0][0]==&quot;$&quot;){v=c[0].slice(1);c.shift()}switch(c[c.length-1]){case&quot;end&quot;:end=true;\nc.pop();break;case&quot;out&quot;:out=true;c.pop();break}var h=state.history[0].variables;for(var i=0;i&lt;c.length;i++){var on=(i==Math.max(c.indexOf(h[v]),0));\nvar d=insertElement(null,&quot;span&quot;,null,rl+((on)?&quot;En&quot;:&quot;Dis&quot;)+&quot;abled&quot;);if(on){h[v]=c[i];l.setAttribute(&quot;data-cycle&quot;,i)}else{d.style.display=&quot;none&quot;\n}insertText(d,c[i]);l.appendChild(d)}l.onclick=function(){reviseAll(b,rname);var t=this.childNodes,u=this.getAttribute(&quot;data-cycle&quot;)-0,m=t.length,n,lall,i;\nif((end||out)&amp;&amp;u==m-(end?2:1)){if(end){n=this.removeChild(t[u+1]);n.className=rl+&quot;End&quot;;n.style.display=&quot;inline&quot;;this.parentNode.replaceChild(n,this)\n}else{this.parentNode.removeChild(this);return}}else{toggleText(t[u]);u=(u+1)%m;if(v){h[v]=c[u]}toggleText(t[u]);this.setAttribute(&quot;data-cycle&quot;,u)\n}lall=document.getElementsByClassName(rl+&quot;_&quot;+rname);for(i=0;i&lt;lall.length;i++){updateLink(lall[i])}};l=null}};macros.mouserevise=macros.hoverrevise={handler:function(a,b,c,d){var endtags=[&quot;end&quot;+b],evt=(window.onmouseenter===null?&quot;onmouseenter&quot;:&quot;onmouseover&quot;),t=tagcontents(d,[b],endtags,endtags,d.source.indexOf(&quot;&gt;&gt;&quot;,d.matchStart)+2);\nif(t){var rname=c[0].replace(&quot; &quot;,&quot;_&quot;),h=insertElement(a,&quot;span&quot;,null,&quot;hoverrevise hoverrevise_&quot;+rname),f=function(){var done=!reviseAll(&quot;revise&quot;,rname);\nif(b!=&quot;hoverrevise&quot;&amp;&amp;done){this[evt]=null}};new Wikifier(h,t[0]);if(b==&quot;hoverrevise&quot;){h.onmouseover=f;h.onmouseout=function(){reviseAll(&quot;revert&quot;,rname)\n}}else{h[evt]=f}h=null}}};macros.instantrevise={handler:function(a,b,c,d){reviseAll(&quot;revise&quot;,c[0].replace(&quot; &quot;,&quot;_&quot;))}};macros.endmouserevise=nullobj;\nmacros.endhoverrevise=nullobj}());</div><div tiddler="StayWithWoman" tags="" created="201408232308" modifier="twee" twine-position="1690,1130">The woman stands up and smiles at him. He walks toward her.\n\nThey talk for a while. The man scratches his neck and stumbles over his words. \n\nThe woman looks down at her feet and laughs nervously.\n\nShe points to a nearby apartment window. Two dogs perched at the window watch them. The man looks at the grass field in the courtyard. He nods. \n\nThey both smile. The woman pats your head before walking to her apartment.\n\nShe stops and calls out to the man. He turns and shouts something back. \n\nThe man opens his apartment door. He watches as the woman opens the door to her apartment and goes inside.\n[[Go inside.|HomeWithMan]]\n\n</div><div tiddler="GetShoes3" tags="" created="201408240928" modifier="twee" twine-position="850,2810">The man groans. \n\nYou hear the sound of water running.\n\n[[Howl!|GetShoes4]]\n\n</div><div tiddler="GoToBathroom" tags="" created="201408240015" modifier="twee" twine-position="710,1550">You stand in the doorway watching him.  He takes a bottle from a shelf, squirts something onto his hands, and rubs it in his hair.\n\nHe brushes his teeth. \n\nHe shouts something at you with his mouth full of toothpaste. You wag your tail and approach him. \n\nHe spits out the toothpaste and yells again. You recognize that sound. \n\nHe seems to be imitating the sound of barking.\n\n[[Bark.|BarkAtMan]]\n\n\n</div><div tiddler="BedsideJump" tags="" created="201408232106" modifier="twee" twine-position="710,570">You jump up on the side of the bed, startling the man. He laughs and pets your head.\n\nHe sits up, pushes you off the bed, and stands up. He walks into the bathroom and shuts the door. You hear the sound of water running.\n\nThe bathroom door opens. Steam emanates from the bathroom. The man, covered from the waist down in a towel, gets dressed and loads a textbook into his backpack. \n\nHe says something to you and smiles. \n\nHe walks to the door. As he unlocks and opens the door, the first rays of sunlight from the sunrise can be seen. He takes a deep breath.\n\nHe waves to you and shuts the door behind him as he leaves. \n\nYou jump up to the window and watch him walk away. He looks up at the pink and orange clouds as he walks. \n\n[[Take a nap.|TestNap]]\n</div><div tiddler="credits" tags="" created="201408242250" modifier="twee" twine-position="850,4210">Written by Greg Klein\n\n&lt;html&gt;&lt;a href=&quot;http://gkle.in&quot;&gt;gkle.in&lt;/a&gt;&lt;/html&gt;\n\nCreated with Twine\n\n&lt;html&gt;&lt;a href=&quot;http://twinery.org&quot;&gt;Twinery.org&lt;/a&gt;&lt;/html&gt;\n\n\n\n</div><div tiddler="JumpCounter" tags="" created="201408232102" modifier="twee" twine-position="1690,570">You jump up on the counter. He looks back. \n\nHe says something, then walks out the door and slams it shut behind him. \n\n[[Take a nap.|BadDay]]\n</div><div tiddler="Untitled Stylesheet 1" tags="stylesheet" created="201408222119" modifier="twee" twine-position="10,10">@import url(http://fonts.googleapis.com/css?family=Architects+Daughter);\n\nhead {\n\n}\nhead * {\n  display:none;\n}\nbody {\n  background-color:#fff;\n  margin: 0;\n  text-align:center;\n  font-family: &quot;Architects Daughter&quot;, handwriting;\n\n}\n#passages {\n  border-left: 0;\n  margin: 0;\n  padding: 0;\n  line-height:100vh;\n}\n.passage {\n  font-size: 2.3em;\t\n  color: black;\t\n  position: absolute;\n  top: 0;  bottom: 0;  left: 0;  right: 0;\n  width: 95%;\n  height: 90%;\n  margin:auto;\n  text-align:center;\n}\n#sidebar {\n  display:table;\n  position:fixed;\n  top: 0; left: 0;\n  width:100%;\n  height:100%;\n}\n\n#sidebar #title #storyTitle {\ndisplay: none;\n}\n\n#storymenu, #snapback, #restart, #share, #credits {\n  display:none;\n}\na.internalLink:hover, a.externalLink:hover {\n  color:#de0000 !important;\n  text-decoration: none;\n}\na.internalLink:nth-child(3n), a.externalLink:nth-child(3n) {\n  color: #666;\n}\na.internalLink:nth-child(3n+1), a.externalLink:nth-child(3n+1) {\n  color: #777;\n}\na.internalLink:nth-child(3n+2), a.externalLink:nth-child(3n+2) {\n  color: #888;\n}\n@media screen and (max-width: 960px) {\n  body { font-size: 50%; }\n}\n@media screen and (max-width: 840px) {\n  body { font-size: 40%; }\n}\n@media screen and (max-width: 720px) {\n  body { \n    font-size: 30%;\n  }\n}\n</div><div tiddler="SniffPlate" tags="" created="201408240004" modifier="twee" twine-position="990,1550">You sniff the plate. The man sets the plate down on the floor, opens the fridge, and removes a Chinese food take out box.\n\nHe opens the box and smells the contents inside.\n\nHe takes out a soggy egg roll and drops it onto your plate. You sniff it.\n\nYou eat the egg roll. He looks out the window as he stands at the counter eating the other egg roll. \n\nThe man checks the clock. He tosses the take out box in the trash and goes into the bathroom. You hear the sound of running water in the shower.\n\nThe sound stops.\n\nThe man leaves the bathroom and checks the time again. He runs to the closet, rips his towel off, and hastily grabs clothes to wear.\n\nHis shirt is inside out, he missed two belt loops, and his socks don't match.\n\nA knock at the door.\n\nThe man runs into the bathroom, swishes water in his mouth, and spits it into the sink. He straightens his hair before opening the door.\n\nThe woman stands outside with her two dogs sitting next to her. She talks to the man.\n\nYou walk to the door.\n\nThe man points to the grass and says something to you. The woman points to the grass field and says something. Her dogs run toward the grass. \n\n[[Follow.|VomitOnShoesSniff]]</div><div tiddler="WalkAway" tags="" created="201408231951" modifier="twee" twine-position="1970,290">You turn and walk away.\n\nThe man calls out to you. You look back. He smiles. \n\n&lt;&lt;display &quot;IntoApartment&quot;&gt;&gt;</div><div tiddler="BarkAtDoor" tags="" created="201408241431" modifier="twee" twine-position="710,3790">The man scolds you. \n\nHe sets the shoes by the door and starts to walk back to his house.\n\n[[Bark.|Bark2AtDoor]]\n</div><div tiddler="StoryAuthor" tags="" created="201408221838" modifier="twee" twine-position="290,10"></div><div tiddler="ShoeChance" tags="" created="201408240905" modifier="twee" twine-position="850,2110">You follow the man back inside. \n\nHe closes the door, but it stays ajar. \n\nHe tosses his keys on the counter, goes into the bathroom, and slams the door. \n\nYou look out the window. The woman's shoes are still near the bench outside.\n\n[[Go outside.|GetShoes]]</div><div tiddler="CheerBed" tags="" created="201408232253" modifier="twee" twine-position="1690,850">You leap onto the bed and stand look down at him.\n\nHe says something and wiggles left and right to get you to jump off the bed. \n\nYou jump off and sit next to the bed, waiting for him to get up.\n\nThe man turns onto his back and sees you. \n\nHe gets up and walks to the door. You follow.\n\nHe pushes you away with his leg and motions for you to stay.\n\nHe opens the door and stops before leaving. A beautiful woman in a blue business suit is walking toward him. He stares at her. \n\n[[Run.|RunWoman]]\n</div><div tiddler="WantWalk" tags="" created="201408232331" modifier="twee" twine-position="850,850">The man looks out the window. \n\nHe walks to a shelf by his bed and returns with a tennis ball. \n\nHe opens the door and throws the tennis ball toward the grass field. You run after the ball and grab it while it rolls on the grass. \n\nThe man shuts the door and walks onto the grass field. You hear the sound of scratching on a window nearby. Two dogs are peeking out, eager to meet you.\n\n[[Jump up to window.|SeeDogs]]</div><div tiddler="HowlAtMan" tags="" created="201408240021" modifier="twee" twine-position="710,1830">The man says something to you, pets your head, then returns to brushing his teeth. \n\nYou walk away. He leaves the bathroom, walks to a shelf near his bed, and walks toward you holding a tennis ball.\n\nHe bounces the ball on the floor and catches it. You are mesmerized by the ball and hope he will let you play with it.\n\nHe says something, then opens the door. On the opposite side of the building, the woman shuts the door to her apartment while her two dogs sit by her side. \n\nThe man throws the tennis ball onto the grass field.\n\n[[Get the ball.|VomitOnShoesIgnore]]\n</div><div tiddler="SeeDogs" tags="" created="201408232350" modifier="twee" twine-position="850,990">You jump up and look into the window. The two dogs whimper and scratch the window. \n\nThe gate creaks open. A beautiful woman wearing a blue business suit enters. \n\nThe man yells at you and tries to pull you away.\n\nThe woman laughs and calls out to the man. She points to you. \n\nThe woman and man talk. You jump down from the window. \n\nThe woman pets you. The dogs continue scratching on the window.\n\nThe woman gestures toward the grass field. The man nods. \n\nShe goes to her apartment door and waves. She goes inside and closes it.\n\nThe man smiles. He walks back to his apartment. \n\n[[Follow him.|HomeWithMan]]\n</div></div></body></html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement