Fixed CGA graphics modes on VGA cards

This commit is contained in:
Jeff Parsons 2016-03-12 13:33:21 -08:00
commit 0eddbd05a3
60 changed files with 6775 additions and 404 deletions

View file

@ -59,12 +59,12 @@ l.Sb=function(a){return a?this.save():!0};function lc(a){(!0===a.da.ig||null===a
function mc(a,b){for(var c=0;c<a.Vd.length;c++)nc(a.Vd[c],b);if(a.oa&&a.oa.md&&(c=a.oa.md,c.ta)){nb(c,18,c.R,c.sa);if(c.Ga){var d=c.ha,e=c.B,f,g;null==f&&(f=0);null==g&&(g=d.L-f|0);null==e&&(e={gg:0,cd:0,bg:[]});var h=f>>>d.ca;f=f+g-1>>>d.ca;e.gg=0;for(e.cd=0;h<=f;)g=d.P[h],e.gg+=g.size,g.size&&(e.bg.push(na(mb,h,0,0,g.type)),e.cd++),h++;c.B=e;c.la=c.B.cd*c.ha.tb/691200;d=0;c.B.Ih=0;c.B.He||(c.B.He=[]);var e=-1,h=0,k=-1;for(f=0;f<c.B.cd;f++){var m=c.B.bg[f];g=oa(mb.type,m);m=oa(mb.bj,m);if(g!=e||
m!=k+1)(k=f-h)&&(d+=pb(c,h,k,e)),e=g,h=f;k=m}d+=pb(c,h,f-h,e);e=c.B.Bj!=d;c.B.Bj=d;if(e){e=new hb(0,0,c.R.width,c.R.height);c.B.ae=[];h=c.B.cd;for(d=0;d<c.B.Ih;d++)f=c.B.He[d].cd,c.B.ae.push(ib(e,f,h,!d)),h-=f;for(d=0;d<c.B.ae.length;d++)e=c.B.He[d],h=f=c.B.ae[d],g=c.sa,(k=Vb[e.type])||(k=new gb),g.strokeStyle="black",g.strokeRect(h.x,h.y,h.Dc,h.A),g.fillStyle="string"==typeof k?k:k.toString(),g.fillRect(h.x,h.y,h.Dc,h.A),h=c,g=f,h.S=h.fa,h.L=h.ia,f=g.x+(g.Dc>>1),k=g.y+(g.A>>1),m=g.A,g.Dc<g.A&&(m=
g.Dc,h.ca=!0,h.G.save(),h.G.translate(f,k),h.G.rotate(-Math.PI/2),f=k=0),m<h.L&&(h.L=m,h.S=h.L+"px Monaco, Lucida Console, Courier New"),g=k,h.D=f,h.K=g,h=c,e=Ub[e.type]+" ("+(e.cd*c.ha.tb/1024|0)+"Kb)",h.G.font=h.S,h.D-=h.G.measureText(e).width>>1,h.K+=(h.L>>1)-2,ob(h,e),h.ca&&(h.G.restore(),h.ca=!1)}}else ob(c,"This space intentionally left blank");c.context.drawImage(c.R,0,0,c.R.width,c.R.height,c.La,c.Va,c.Da,c.Fa);c.ta=!1}}
l.Tc=function(){if(this.Vd.length){var a=0,b=0;window&&(a=window.scrollX,b=window.scrollY);this.Vd[0].Tc();window&&window.scrollTo(a,b)}};
l.Tc=function(a){if(this.Vd.length){var b=0,c=0;a&&window&&(b=window.scrollX,c=window.scrollY);this.Vd[0].Tc();a&&window&&window.scrollTo(b,c)}};
l.zb=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.ja[b]=c;a=!0;break;case "run":this.ja[b]=c;c.onclick=function(){var a;if(a=d.oa)if(a=d.oa,a.da.Pb)a=!0;else{var b=null,c,h=Ta(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.da.le);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.da.Pb);c++);c==h.length&&(b=a);n("The "+b.type+" component ("+b.id+") is not "+(b.da.le?"powered yet":"ready yet"+(b.Df?" (waiting for notification)":""))+".");a=!1}a&&(d.da.Qb?oc(d,!0):d.oh(!0))};
a=!0;break;case "speed":this.ja[b]=c;a=!0;break;case "setSpeed":this.ja[b]=c,c.onclick=function(){pc(d,d.T.zd<<1,!0)},c.textContent=this.T.re.toFixed(2)+"Mhz",a=!0}return a};function qc(a,b){if(a.da.Qb){var c=a.A-b;a.A-=c;a.kc-=c}}function rc(a,b,c){a.Oc+=b;c&&(a.kc=a.A=0)}
function sc(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.T.zd&&a.T.yd&&(d=a.T.yd/a.T.Ff);a.T.Yh=Math.round(1E3/30);a.T.Uk=Math.floor(a.T.Zc/c*d);a.T.vg=Math.floor(a.T.Zc/30*d);a.T.$h=Math.floor(a.T.Zc/60*d);a.T.Zh=Math.floor(a.T.Zc/2*d);b||(a.T.Re=a.T.vg,a.T.Qe=a.T.$h,a.T.Pe=a.T.Zh);a.T.wg=0}function tc(a,b){var c=a.Oc+a.xc+a.kc-a.A;b&&1<a.T.zd&&a.T.yd>a.T.Ff&&(c=Math.round(c/a.T.zd));return c}function ic(a){a.T.yd=0;a.Oc=a.xc=a.kc=a.A=0;jc(a);pc(a,1)}
function pc(a,b,c){if(void 0!==b){.8>a.T.yd/a.T.re&&(b=1);a.T.zd=b;b=a.T.Ff*a.T.zd;if(a.T.re!=b){a.T.re=b;b=a.T.re.toFixed(2)+"Mhz";var d=a.ja.setSpeed;d&&(d.textContent=b);a.oc("target speed: "+b)}c&&a.Tc()}rc(a,a.xc);a.xc=0;a.T.se=ka();a.T.Od=0;sc(a)}
l.oh=function(a){if($a(this,!0)){if(!this.da.Qb){pc(this);this.oa&&this.oa.start(this.T.se,tc(this));this.da.Qb=!0;this.da.Rh=!0;this.R&&uc(this.R);var b=this.ja.run;b&&(b.textContent="Halt");this.Wd(!0);a&&this.Tc()}this.T.wg>=this.T.Zc&&sc(this,!0);this.T.Se=0;this.T.Gf=ka();this.T.Od&&(a=this.T.Gf-this.T.Od,a>this.T.Yh&&(this.T.se+=a,this.T.se>this.T.Gf&&(this.T.se=this.T.Gf)));try{do{var c=this.da.Bf?1:this.T.Uk;if(this.R){vc(this.R);var d=this.R;a=c;var e=d.K[0];if(e.Ld){var f=(tc(d.A,d.ca)-
l.oh=function(a){if($a(this,!0)){if(!this.da.Qb){pc(this);this.oa&&this.oa.start(this.T.se,tc(this));this.da.Qb=!0;this.da.Rh=!0;this.R&&uc(this.R);var b=this.ja.run;b&&(b.textContent="Halt");this.Wd(!0);a&&this.Tc(!0)}this.T.wg>=this.T.Zc&&sc(this,!0);this.T.Se=0;this.T.Gf=ka();this.T.Od&&(a=this.T.Gf-this.T.Od,a>this.T.Yh&&(this.T.se+=a,this.T.se>this.T.Gf&&(this.T.se=this.T.Gf)));try{do{var c=this.da.Bf?1:this.T.Uk;if(this.R){vc(this.R);var d=this.R;a=c;var e=d.K[0];if(e.Ld){var f=(tc(d.A,d.ca)-
e.gd)/d.Ha|0,g=wc(d,0)-f;6==e.mode&&(g-=f);var h=g*d.Ha|0;6==e.mode&&(h>>=1);a>h&&(a=h)}var c=a,k=this.R;a=c;if(k.B&&k.B[11]&64){var m=k.na-tc(k.A,k.ca);0<m&&a>m&&(a=m)}c=a}try{this.mj(c)}catch(x){if("number"!=typeof x)throw x;}var q=this.kc-this.A;this.xc+=q;this.T.Se+=q;rc(this,0,!0);a=q;this.da.Bf&&(b=!1,this.T.Hf=this.T.Hf+this.Th()|0,this.T.te-=a,0>=this.T.te&&(this.T.te+=this.T.Ne,b=!0),0<=this.T.Oe&&this.T.Oe<=tc(this)&&(this.T.Ne=this.T.Oe=-1,jc(this),oc(this),b=!0),b&&this.oc(tc(this)+" cycles: checksum="+
ea(this.T.Hf)));this.T.Qe-=q;0>=this.T.Qe&&(this.T.Qe+=this.T.$h,mc(this));this.T.Pe-=q;0>=this.T.Pe&&(this.T.Pe+=this.T.Zh,this.Wd());this.T.Re-=q;if(0>=this.T.Re){this.T.Re+=this.T.vg;break}}while(this.da.Qb)}catch(x){oc(this);kc(this);this.oa&&this.oa.stop(ka(),tc(this));$a(this,!1);bb(this,x.stack||x.message);return}c=setTimeout;d=this.xj;this.T.Od=ka();e=this.T.Yh;this.T.Se&&(e=Math.round(e*this.T.Se/this.T.vg));e-=this.T.Od-this.T.Gf;if(f=this.T.Od-this.T.se)this.T.yd=Math.round(this.xc/(10*
f))/100,864E5<=f&&(this.Oc=0,this.R&&vc(this.R,!0),pc(this));if(0>e||this.T.yd<this.T.re)e=0;this.T.wg+=this.T.Se;this.T.Od+=e;c(d,e)}else kc(this),this.oa&&this.oa.stop(ka(),tc(this))};l.mj=function(){return 0};function oc(a,b){a.da.Nc&&(a.da.jg=!0);a.kc-=a.A;a.A=0;rc(a,a.xc);a.xc=0;if(a.da.Qb){a.da.Qb=!1;a.R&&uc(a.R);var c=a.ja.run;c&&(c.textContent="Run")}a.da.Le=b}function kc(a){mc(a,void 0);a.Wd()}
@ -431,15 +431,15 @@ function lk(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,h=uk(a,g,!0);a.kg&&h==V["`"]&&
function tk(a,b,c){var d=!1;nk(a,b,!0,c);var e=X[b]||X[b+1E3];if(void 0!==e){14==e&&40==(a.bc&40)&&(e=83);var d=[],f=e&255;if(83<f&&83==a.Y)return!1;d.push(f|(c?0:128));for(b=65<=b&&90>=b||97<=b&&122>=b;e>>>=8;){var g=0,h=e&255;224==f||225==f?d.push(f|(c?0:128)):(42==h?a.C&3||a.C&512&&b||(g=h):29==h?a.C&12||(g=h):56==h?a.C&48||(g=h):d.push(f|(c?0:128)),g&&(c?d.unshift(g):d.push(g|128)))}for(c=0;c<d.length;c++)e=a,f=d[c],e.$b&&(20>e.$b.length?(e.$b.push(f),1==e.$b.length&&e.R&&Oj(e.R,f)):20==e.$b.length&&
e.$b.push(255));d=!0}return d}Ea(function(){for(var a=Za(document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new dk(d);Ya(d,c)}});
function Y(a,b,c,d,e){Ia.call(this,"Video",a,Y);this.ba=a.model;this.jb=vk[this.ba]||wk;this.Vc=a.memory||0;this.nd=a.switches;this.ia=a.mode;if(void 0===this.ia||void 0===xk[this.ia])this.ia=yk;this.Hb=a.charCols;this.vc=a.charRows;if(void 0===this.Hb||void 0===this.vc)this.Hb=xk[this.ia][0],this.vc=xk[this.ia][1];this.fa=a.screenWidth;this.pa=a.screenHeight;this.Yd=a.scale;this.Xd=12<=Math.round(this.fa/this.Hb);this.ca=b;this.Y=c;this.H=(this.Hd=d)||b||null;this.od=a.touchScreen;this.wc=zk;this.K=
null;this.Vd=a.autoLock;this.bb=this.Fb=0;this.xa=[];this.na=Array(this.jb==Uj?256:16);this.Ka=!1;var f=this;this.fd=ya("Gecko/");b=["","moz","webkit","ms"];if(this.W=e)if(this.W.ie=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.W.ie){for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenchange","on"+c in document){document.addEventListener(c,function(){Ak(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?
null;this.Vd=a.autoLock;this.cb=this.Fb=0;this.xa=[];this.na=Array(this.jb==Uj?256:16);this.Ka=!1;var f=this;this.fd=ya("Gecko/");b=["","moz","webkit","ms"];if(this.W=e)if(this.W.ie=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.W.ie){for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenchange","on"+c in document){document.addEventListener(c,function(){Ak(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?
!0:!1)},!1);break}for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenerror","on"+c in document){document.addEventListener(c,function(){Ak(f,null)},!1);break}}this.H&&(this.H.onfocus=function(){return f.Pf(!0)},this.H.onblur=function(){return f.Pf(!1)},this.H.Md=this.H.requestPointerLock||this.H.mozRequestPointerLock||this.H.webkitRequestPointerLock,this.H.oj=this.H.exitPointerLock||this.H.mozExitPointerLock||this.H.webkitExitPointerLock,this.H.Md&&(e=function(){f.bf(document.pointerLockElement===f.H||document.mozPointerLockElement===
f.H||document.webkitPointerLockElement===f.H)},"onpointerlockchange"in document?document.addEventListener("pointerlockchange",e,!1):"onmozpointerlockchange"in document?document.addEventListener("mozpointerlockchange",e,!1):"onwebkitpointerlockchange"in document&&document.addEventListener("webkitpointerlockchange",e,!1)));if(a=a.fontROM)"json"!=ga(a)&&(a=qa()+"/api/v1/dump?file="+a+"&format=bytes"),pa(a,null,!0,function(a,b,c){Bk(f,a,b,c)})}Qa(Y);
var wk=1,Uj=7,vk={mda:1,cga:3,ega:5,vga:7},yk=7,Ck={2:{Lf:15700,Kf:208,Qf:85,Rf:96},3:{Lf:18432,Kf:364,Qf:85,Rf:96},4:{Lf:21850,Kf:364,Qf:85,Rf:96},7:{Lf:16700,Kf:480,Qf:85,Rf:83}},Dk={6:[1,3,!0],7:[2,3,!0],8:[6,3,!0],9:[4,3,!0],10:[3,1,!0],11:[3,2,!0],0:[1,3,!1],1:[2,3,!1],2:[6,3,!1],3:[4,3,!1],4:[3,1,!1],5:[3,2,!1]},xk=[,[40,25,1,0,3],,[80,25,1,0,3],[320,200,8,192],,[640,200,16,192]];xk[yk]=[80,25,1,0,1];xk[13]=[320,200,8];xk[14]=[640,200,8];xk[15]=[640,350,8];xk[16]=[640,350,8];
xk[17]=[640,480,8];xk[18]=[640,480,8];xk[19]=[320,200,1];xk[20]=[320,240,4];xk[21]=[320,400,4];xk[0]=xk[1];xk[2]=xk[3];xk[5]=xk[4];
var Ek=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],Fk=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],Gk=[[0,0,0,255],[0,0,170,255],[0,170,0,255],[0,170,170,255],[170,0,0,255],[170,0,170,255],[170,85,0,255],[170,170,170,255],[85,85,85,255],[85,85,255,255],[85,255,85,255],[85,255,255,255],[255,85,85,255],[255,85,255,255],[255,255,85,255],[255,255,255,255]],Hk=[2,4,6],Ik=[3,5,7],Jk=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],Kk=[0,255,65280,65535,16711680,16711935,16776960,
16777215,-16777216,-16776961,-16711936,-16711681,-65536,-65281,-256,-1],Lk=[0];Lk[128]=1;Lk[32768]=2;Lk[32896]=3;Lk[8388608]=4;Lk[8388736]=5;Lk[8421376]=6;Lk[8421504]=7;Lk[-2147483648]=8;Lk[-2147483520]=9;Lk[-2147450880]=10;Lk[-2147450752]=11;Lk[-2139095040]=12;Lk[-2139094912]=13;Lk[-2139062272]=14;Lk[-2139062144]=15;
function Mk(a,b,c,d){if(void 0!==b&&(!c||c.length)){this.video=a;var e=Nk[b],f=a.la||e[5];if(!c||6>c.length)c=[!1,0,null,null,0,Array(5>b?Ok:Pk)];this.jb=b;this.bb=e[2];this.Fb=e[3];this.Vc=d||e[4];65536<=this.Vc&&720896<=this.bb&&(this.Fb=Math.min(this.Vc>>2,32768));this.cc=c[0];this.Jc=c[1];this.gf=c[2];this.Z=c[3];this.pc=c[4]&255;this.Sf=c[4]>>8&255;this.eb=c[5];this.rg=Ok;if(5<=b){this.rg=Pk;b=c[6];void 0===b&&(b=[!1,0,Array(20),0,3==f?0:1,0,0,Array(5),0,0,0,Array(9),0,[this.bb,this.Fb,this.Vc],
Array(this.Vc>>2),-2147478512,0,-1,0,-1,0,-1,0,0,0,0,1,255,0,0,0,Array(256)]);this.Ke=b[0];this.Sd=b[1];this.Ic=b[2];this.mh=b[3];this.hf=b[4];this.Uf=b[5];this.Ae=b[6];this.ze=b[7];this.ej=b[8];this.fj=b[9];this.ye=b[10];this.Dd=b[11];this.qb=b[12];d=b[13];"number"==typeof d&&(d=[this.bb,this.Fb,d]);this.bb=d[0];this.Fb=d[1];d=this.Vc>>2;if((this.rd=b[14])&&this.rd.length<d){for(var e=this.rd,g=0,h=Array(d),k=0;k<e.length-1;){for(var m=e[k++],q=e[k++];m--;)h[g]=q,g+=2;g==d&&(g=1)}this.rd=h}(d=b[15])&&
function Mk(a,b,c,d){if(void 0!==b&&(!c||c.length)){this.video=a;var e=Nk[b],f=a.la||e[5];if(!c||6>c.length)c=[!1,0,null,null,0,Array(5>b?Ok:Pk)];this.jb=b;this.cb=e[2];this.Fb=e[3];this.Vc=d||e[4];65536<=this.Vc&&720896<=this.cb&&(this.Fb=Math.min(this.Vc>>2,32768));this.cc=c[0];this.Jc=c[1];this.gf=c[2];this.Z=c[3];this.pc=c[4]&255;this.Sf=c[4]>>8&255;this.bb=c[5];this.rg=Ok;if(5<=b){this.rg=Pk;b=c[6];void 0===b&&(b=[!1,0,Array(20),0,3==f?0:1,0,0,Array(5),0,0,0,Array(9),0,[this.cb,this.Fb,this.Vc],
Array(this.Vc>>2),-2147478512,0,-1,0,-1,0,-1,0,0,0,0,1,255,0,0,0,Array(256)]);this.Ke=b[0];this.Sd=b[1];this.Ic=b[2];this.mh=b[3];this.hf=b[4];this.Uf=b[5];this.Ae=b[6];this.ze=b[7];this.ej=b[8];this.fj=b[9];this.ye=b[10];this.Dd=b[11];this.qb=b[12];d=b[13];"number"==typeof d&&(d=[this.cb,this.Fb,d]);this.cb=d[0];this.Fb=d[1];d=this.Vc>>2;if((this.rd=b[14])&&this.rd.length<d){for(var e=this.rd,g=0,h=Array(d),k=0;k<e.length-1;){for(var m=e[k++],q=e[k++];m--;)h[g]=q,g+=2;g==d&&(g=1)}this.rd=h}(d=b[15])&&
(d&-2147483648?d&=2147483647:d=Qk[d&65280]|Qk[d&255]);this.Wf(d);this.hh=b[16];this.$a=b[17];this.Fc=b[18];this.sb=b[19];this.af=b[20];this.jd=b[21];this.Ad=b[22];this.sg=b[23];this.tg=b[24];this.df=b[25];this.ih=this.ve=0;this.jb==Uj&&(this.nh=b[26],this.lh=b[27],this.bd=b[28],this.zc=b[29],this.Tf=b[30],this.xe=b[31])}f=Ck[f]||Ck[3];this.ug=a.A.T.Zc/f.Lf|0;this.Tk=this.ug*f.Qf/100|0;this.xg=this.ug*f.Kf|0;this.Vk=this.xg*f.Rf/100|0;this.yg=c[7]||0}}var Ok=18,Pk=25,Qk=[,,1024,5120];Qk[16]=1280;
Qk[512]=0;Qk[1024]=32;Qk[1536]=96;Qk[2560]=160;Qk[3584]=224;Qk[768]=16;Qk[4096]=1;Qk[8192]=2;Qk[24576]=98;Qk[40960]=162;Qk[57344]=226;var Rk=[];Rk[1024]=function(a){a+=this.H;return(this.controller.qb=this.V[a])>>this.controller.hh&255};Rk[17408]=function(a){return(this.controller.qb=this.V[(a&-4)+this.H])>>((a&3)<<3)&255};Rk[5120]=function(a){a+=this.H;var b=this.controller.qb=this.V[a&-2];return(a&1?b>>8:b)&255};
Rk[1280]=function(a){a+=this.H;a=this.controller.qb=this.V[a];for(var b=this.controller.tg,c=this.controller.sg&b,d=0,e=128;e;)(a&b)==c&&(d|=e),c>>>=1,b>>>=1,e>>=1;return d};Rk[0]=function(a,b){var c=a+this.H,d;d=(b|b<<8|b<<16|b<<24)&this.controller.jd|this.controller.Ad;d=d&this.controller.sb|this.controller.qb&~this.controller.sb;d=d&this.controller.$a|this.V[c]&~this.controller.$a;this.V[c]!=d&&(this.V[c]=d,this.Ia=!0)};
@ -451,8 +451,8 @@ Rk[16]=function(a,b){a+=this.H;var c,d=a&-2;c=(b|b<<8|b<<16|b<<24)&this.controll
Rk[17]=function(a){a+=this.H;var b=a&-2;a=this.controller.$a&(b==a?16711935:-16711936);a=this.V[b]&~a|this.controller.qb&a;this.V[b]!=a&&(this.V[b]=a,this.Ia=!0)};Rk[2]=function(a,b){var c=a+this.H,d=Kk[b&15],d=d&this.controller.sb|this.controller.qb&~this.controller.sb,d=d&this.controller.$a|this.V[c]&~this.controller.$a;this.V[c]!=d&&(this.V[c]=d,this.Ia=!0)};
Rk[98]=function(a,b){var c=a+this.H,d=Kk[b&15],d=d&this.controller.qb,d=d&this.controller.sb|this.controller.qb&~this.controller.sb,d=d&this.controller.$a|this.V[c]&~this.controller.$a;this.V[c]!=d&&(this.V[c]=d,this.Ia=!0)};Rk[162]=function(a,b){var c=a+this.H,d=Kk[b&15],d=d|this.controller.qb,d=d&this.controller.sb|this.controller.qb&~this.controller.sb,d=d&this.controller.$a|this.V[c]&~this.controller.$a;this.V[c]!=d&&(this.V[c]=d,this.Ia=!0)};
Rk[226]=function(a,b){var c=a+this.H,d=Kk[b&15],d=d^this.controller.qb,d=d&this.controller.sb|this.controller.qb&~this.controller.sb,d=d&this.controller.$a|this.V[c]&~this.controller.$a;this.V[c]!=d&&(this.V[c]=d,this.Ia=!0)};Rk[3]=function(a,b){var c=a+this.H;b=b>>this.controller.Fc|b<<8-this.controller.Fc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.sb;d=this.controller.af&d|this.controller.qb&~d;d=d&this.controller.$a|this.V[c]&~this.controller.$a;this.V[c]!=d&&(this.V[c]=d,this.Ia=!0)};
function Sk(a){var b=[];if(void 0!==a.jb){b[0]=a.cc;b[1]=a.Jc;b[2]=a.gf;b[3]=a.Z;b[4]=a.pc|a.Sf<<8;b[5]=a.eb;if(5<=a.jb){var c=[];c[0]=a.Ke;c[1]=a.Sd;c[2]=a.Ic;c[3]=a.mh;c[4]=a.hf;c[5]=a.Uf;c[6]=a.Ae;c[7]=a.ze;c[8]=a.ej;c[9]=a.fj;c[10]=a.ye;c[11]=a.Dd;c[12]=a.qb;c[13]=[a.bb,a.Fb,a.Vc];var d;a:if(d=a.rd){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h<d.length;){for(var k=d[h],m=h+2;m<d.length&&d[m]===k;)m+=2;f[e++]=m-h>>1;f[e++]=k;h=m}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]=
a.qg|-2147483648;c[16]=a.hh;c[17]=a.$a;c[18]=a.Fc;c[19]=a.sb;c[20]=a.af;c[21]=a.jd;c[22]=a.Ad;c[23]=a.sg;c[24]=a.tg;c[25]=a.df;a.jb==Uj&&(c[26]=a.nh,c[27]=a.lh,c[28]=a.bd,c[29]=a.zc,c[30]=a.Tf,c[31]=a.xe);b[6]=c}b[7]=a.yg}return b}Mk.prototype.Uh=function(a){return[this.rd,a-this.bb]};Mk.prototype.ng=function(){return this.A};
function Sk(a){var b=[];if(void 0!==a.jb){b[0]=a.cc;b[1]=a.Jc;b[2]=a.gf;b[3]=a.Z;b[4]=a.pc|a.Sf<<8;b[5]=a.bb;if(5<=a.jb){var c=[];c[0]=a.Ke;c[1]=a.Sd;c[2]=a.Ic;c[3]=a.mh;c[4]=a.hf;c[5]=a.Uf;c[6]=a.Ae;c[7]=a.ze;c[8]=a.ej;c[9]=a.fj;c[10]=a.ye;c[11]=a.Dd;c[12]=a.qb;c[13]=[a.cb,a.Fb,a.Vc];var d;a:if(d=a.rd){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h<d.length;){for(var k=d[h],m=h+2;m<d.length&&d[m]===k;)m+=2;f[e++]=m-h>>1;f[e++]=k;h=m}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]=
a.qg|-2147483648;c[16]=a.hh;c[17]=a.$a;c[18]=a.Fc;c[19]=a.sb;c[20]=a.af;c[21]=a.jd;c[22]=a.Ad;c[23]=a.sg;c[24]=a.tg;c[25]=a.df;a.jb==Uj&&(c[26]=a.nh,c[27]=a.lh,c[28]=a.bd,c[29]=a.zc,c[30]=a.Tf,c[31]=a.xe);b[6]=c}b[7]=a.yg}return b}Mk.prototype.Uh=function(a){return[this.rd,a-this.cb]};Mk.prototype.ng=function(){return this.A};
Mk.prototype.Wf=function(a){if(null!=a&&a!=this.qg){var b=a&65280,c=Rk[b];c||b&4096&&(c=Rk[4096]);var b=a&255,d=Rk[b];d||b&16&&(d=Rk[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[3]=d;this.qg=a}};var Nk=[];Nk[wk]=["MDA",948,720896,4096,0,3];Nk[3]=["CGA",980,753664,16384,0,2];Nk[5]=["EGA",980,753664,16384,65536,4];Nk[Uj]=["VGA",980,753664,16384,262144,7];var zk=0;l=Y.prototype;
l.mc=function(a,b,c,d){this.ha=b;this.A=c;this.Oa=d;3!=vk[this.ba]&&(Mb(b,this,Tk),Ob(b,this,Uk));vk[this.ba]!=wk&&(Mb(b,this,Vk),Ob(b,this,Wk));5<=this.jb&&(Mb(b,this,Xk),Ob(b,this,Yk));this.jb==Uj&&(Mb(b,this,Zk),Ob(b,this,$k));if((this.C=jb(a,"Keyboard"))&&this.ca){for(var e in this.ja)0<e.indexOf("lock")&&this.C.zb("led",e,this.ja[e]);this.C.zb(this.Hd?"textarea":"canvas","kbd",this.H)}this.Ab=9;(this.R=jb(a,"ChipSet"))&&this.nd&&5==this.jb&&(this.Ab=Ai(this.nd,this.Ab));"mouse"==this.od?(this.K=
jb(a,"Mouse"))&&al(this,2):"keygrid"==this.od&&this.C&&al(this,1)};l.zb=function(a,b,c){var d=this;if(!this.ja[b])switch(this.ja[b]=c,b){case "fullScreen":return this.W&&this.W.ie?c.onclick=function(){d.ie()}:c.parentNode.removeChild(c),!0;case "lockPointer":return this.Gd=c.textContent,this.H&&this.H.Md?c.onclick=function(){d.Md(!0)}:c.parentNode.removeChild(c),!0;case "refresh":return c.onclick=function(){nc(d,!0)},!0}return!1};l.Tc=function(){this.H&&this.H.focus()};
@ -461,38 +461,38 @@ function Ak(a,b){!b&&a.W&&(a.fd?a.ca.style.width=a.ca.style.height="":a.W.style.
function al(a,b){var c=a.H;c&&!a.wc&&(c.addEventListener("touchstart",function(b){bl(a,b,!0)},!1),c.addEventListener("touchmove",function(b){bl(a,b)},!0),c.addEventListener("touchend",function(b){bl(a,b,!1)},!1),a.wc=b,a.gb=a.rb=a.pd=-1,a.uc=!1,a.Cb=null,a.tc=!1,a.Zd=function(){a.tc=!0;a.K.he(cl,!0)})}l.Pf=function(a){this.C&&this.C.Pf(a)};
function bl(a,b,c){var d,e,f=0,g=0;e=a.ca;do isNaN(e.offsetLeft)||(f+=e.offsetLeft,g+=e.offsetTop);while(e=e.offsetParent);var h=a.fa/a.ca.offsetWidth,k=a.pa/a.ca.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*k;if(1==a.wc)d=d/(a.fa/3)|0,e=e/(a.pa/3)|0,1!=e?e?mk(a.C,1040,!0):mk(a.C,1038,!0):1!=d&&(d?mk(a.C,1039,!0):mk(a.C,1037,!0));else if(a.K){g=a.uc;f=b.timeStamp-a.pd;!0===c?(a.uc=500<f,a.pd=b.timeStamp,
a.Cb=setTimeout(a.Zd,500)):null!=a.Cb&&(clearTimeout(a.Cb),a.Cb=null);void 0===c&&(a.uc=!1);g||b.preventDefault();if(!1===c){a.tc?(a.K.he(cl,!1),a.tc=!1,b=!0):b=!1;if(b)return;if(200>f){a.K.he(cl,!0);a.K.he(cl,!1);return}}if(c||0>a.gb||0>a.rb)a.gb=d,a.rb=e;c=Math.round(d-a.gb);b=Math.round(e-a.rb);a.gb=d;a.rb=e;a.K.pg(c,b,a.gb,a.rb)}}l.Tb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Sb=function(a){return a?this.save():!0};
l.reset=function(){var a=!0,b=0;this.R&&(b=Ti(this.R));this.ba||(this.jb=3==b?wk:3);this.ia=3;switch(this.jb){case Uj:b=7;break;case 5:var c=Dk[this.Ab];c&&(b=c[0]);b||(b=4);break;case wk:b=3;this.ia=yk;break;default:b=2}this.la!==b&&(this.la=b,a=!0);this.D=null;this.oa=this.Yb=new Mk(this,wk);this.P=this.Bb=new Mk(this,3);5>this.jb?this.B=new Mk:(this.B=new Mk(this,this.jb,null,this.Vc),dl(this));el(this);this.va=null;this.Ea=this.aa=-1;this.za=0;fl(this,this.ia);if(this.D.bb&&a){a=this.D.bb+this.Va;
for(b=this.D.bb;b<a;b+=2){var d=65536*Math.random()|0;4==this.la||7==this.la?(c=b>>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8);Lb(this.ha,b,c|d<<8)}nc(this,!0)}};function dl(a){a.B.hf&1?(a.oa=a.Yb,a.P=a.B):(a.oa=a.B,a.P=a.Bb)}l.save=function(){var a=new be(this);D(a,0,Sk(this.Yb));D(a,1,Sk(this.Bb));D(a,2,[this.la,this.ia,this.va]);D(a,3,Sk(this.B));return a.data()};
l.reset=function(){var a=!0,b=0;this.R&&(b=Ti(this.R));this.ba||(this.jb=3==b?wk:3);this.ia=3;switch(this.jb){case Uj:b=7;break;case 5:var c=Dk[this.Ab];c&&(b=c[0]);b||(b=4);break;case wk:b=3;this.ia=yk;break;default:b=2}this.la!==b&&(this.la=b,a=!0);this.D=null;this.oa=this.Yb=new Mk(this,wk);this.P=this.Bb=new Mk(this,3);5>this.jb?this.B=new Mk:(this.B=new Mk(this,this.jb,null,this.Vc),dl(this));el(this);this.va=null;this.Ea=this.aa=-1;this.za=0;fl(this,this.ia);if(this.D.cb&&a){a=this.D.cb+this.Va;
for(b=this.D.cb;b<a;b+=2){var d=65536*Math.random()|0;4==this.la||7==this.la?(c=b>>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8);Lb(this.ha,b,c|d<<8)}nc(this,!0)}};function dl(a){a.B.hf&1?(a.oa=a.Yb,a.P=a.B):(a.oa=a.B,a.P=a.Bb)}l.save=function(){var a=new be(this);D(a,0,Sk(this.Yb));D(a,1,Sk(this.Bb));D(a,2,[this.la,this.ia,this.va]);D(a,3,Sk(this.B));return a.data()};
l.restore=function(a){var b=a[2];this.la=b[0];this.ia=b[1];this.va=b[2];this.D=null;this.oa=this.Yb=new Mk(this,wk,a[0]);this.P=this.Bb=new Mk(this,3,a[1]);this.B=new Mk(this,this.jb,a[3],this.Vc);this.B.cc&&dl(this);el(this);if(!gl(this))return!1;hl(this);return!0};
function Bk(a,b,c,d){if(d)a.Ba("Unable to load font ROM (error "+d+": "+b+")");else{Sa(a.mf,b,c);try{var e=eval("("+c+")");if(!e.length){n("Empty font ROM: "+b);return}if(1==e.length){n(e[0]);return}if(8192==e.length)Tj(a,e,[6144,0]);else{a.Ba("Unrecognized font data length ("+e.length+")");return}}catch(f){a.Ba("Font ROM data error: "+f.message);return}(a.Y||a.Oa)&&p(a)}}
function il(a,b){if(1==b)return a.na[0]=Gk[0],a.na[1]=Gk[7],a.na;if(2==b){var c=a.D.gf;if(a.D===a.B){var d=a.B.Ic[0],c=d&7;d&16&&(c|=8);18!=a.B.Ic[1]&&(c|=32)}a.na[0]=Gk[c&15];c=c&32?Ik:Hk;for(d=0;d<c.length;d++)a.na[d+1]=Gk[c[d]];return a.na}if(a.P===a.Bb)return Gk;a.Ka&&b&&!a.na[16]&&(a.Ka=!1);if(!a.Ka){var c=a.B,d=c.xe,e,f,g,h,k;if(8==b)for(f=0;256>f;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.na[f]=[h,k,g,255];else{var m=d&&d[255];e=null!=c.Ic[15]?c.Ic:Jk;for(f=0;16>f;f++)g=e[f]&63,m?(g|=
(c.Ic[20]&12)<<4,c.Ic[16]&128&&(g&=-49,g|=(c.Ic[20]&3)<<4),g=d[g],h=g<<2&252,k=g>>4&252,g=g>>10&252):(h=(g&4?170:0)|(g&32?85:0),k=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.na[f]=[h,k,g,255]}a.Ka=!0}return a.na}function Tj(a,b,c,d){a.vb=b;a.Xb=c;a.Ha=d}
function el(a,b){var c=!1;if(window&&a.vb&&(!b||a.I)){var d=0,e=a.Ha?a.Ha:8,f=il(a);jl(a,3,a.Xb[0],d,e,8,a.vb,f)&&(c=!0);d=a.Ha?0:2048;e=a.Ha?a.Ha:9;jl(a,1,a.Xb[1],d,e,14,a.vb,Ek,Fk)&&(c=!0);a.Ha&&jl(a,a.jb,a.Xb[1],0,a.Ha,14,a.vb,f)&&(c=!0)}return c}function jl(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(kl(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Xd&&kl(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m}
function kl(a,b,c,d,e,f,g,h,k){var m=!1,q=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={qc:e<<q,rc:f<<q,$d:Array(r),Dh:h.slice(0,r),Ge:k,cg:Array(r)});for(k=0;k<r;k++){var z=h[k],E=x.$d[k]?x.Dh[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=q,U=c,ca=d,ta=e,ua=f,od=g,Rm=[0,0,0,0],qe=document.createElement("canvas");qe.width=m.qc<<4;qe.height=m.rc<<4;for(var mj=qe.getContext("2d"),xb=void 0,Jc=void 0,Zb=void 0,re=8>ua||!ca?ua:8,Ff=mj.createImageData(m.qc,m.rc),xb=0;256>xb;xb++){for(Zb=
0;Zb<ua;Zb++)for(var Sm=m.Ge&&E&1&&Zb>=ua-2,Tm=od[Zb<re?U+xb*re+Zb:ca+xb*re+Zb-re],Gf=0;Gf<=J;Gf++)for(Jc=0;Jc<ta;Jc++){var nj=Jc<<J,oj=(Zb<<J)+Gf,pj=Sm||Tm&128>>(8<=Jc&&192<=xb&&223>=xb?7:Jc)?z:Rm;ll(Ff,nj,oj,pj);J&&ll(Ff,nj+1,oj,pj)}mj.putImageData(Ff,(xb&15)*m.qc,(xb>>4)*m.rc)}m.$d[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Dh[E]=z;m.cg[E]=qe;m=!0}}a.xa[b]=x;return m}function ml(a){0<a.za||0<=a.aa?0>a.Ea&&(a.Ea=0):a.Ea=-1}
function hl(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.D.eb[b])return;var c=a.D.eb[10],b=c&31,d=a.D.eb[11]&31,e=a.D.eb[9]&31,f=!1;a.D===a.B&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)nl(a);else{c=a.D.eb[15]+((a.D.eb[14]&63)<<8);a.aa!=c&&(nl(a),a.aa=c);d=d-b+1;if(a.qd!=b||a.Oc!=d)a.qd=b,a.Oc=d;a.Da=e+1;ml(a)}}}
function kl(a,b,c,d,e,f,g,h,k){var m=!1,q=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={qc:e<<q,rc:f<<q,$d:Array(r),Dh:h.slice(0,r),Ge:k,cg:Array(r)});for(k=0;k<r;k++){var z=h[k],E=x.$d[k]?x.Dh[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=q,U=c,ca=d,ta=e,ua=f,od=g,Sm=[0,0,0,0],qe=document.createElement("canvas");qe.width=m.qc<<4;qe.height=m.rc<<4;for(var mj=qe.getContext("2d"),xb=void 0,Jc=void 0,Zb=void 0,re=8>ua||!ca?ua:8,Ff=mj.createImageData(m.qc,m.rc),xb=0;256>xb;xb++){for(Zb=
0;Zb<ua;Zb++)for(var Tm=m.Ge&&E&1&&Zb>=ua-2,Um=od[Zb<re?U+xb*re+Zb:ca+xb*re+Zb-re],Gf=0;Gf<=J;Gf++)for(Jc=0;Jc<ta;Jc++){var nj=Jc<<J,oj=(Zb<<J)+Gf,pj=Tm||Um&128>>(8<=Jc&&192<=xb&&223>=xb?7:Jc)?z:Sm;ll(Ff,nj,oj,pj);J&&ll(Ff,nj+1,oj,pj)}mj.putImageData(Ff,(xb&15)*m.qc,(xb>>4)*m.rc)}m.$d[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Dh[E]=z;m.cg[E]=qe;m=!0}}a.xa[b]=x;return m}function ml(a){0<a.za||0<=a.aa?0>a.Ea&&(a.Ea=0):a.Ea=-1}
function hl(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.D.bb[b])return;var c=a.D.bb[10],b=c&31,d=a.D.bb[11]&31,e=a.D.bb[9]&31,f=!1;a.D===a.B&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)nl(a);else{c=a.D.bb[15]+((a.D.bb[14]&63)<<8);a.aa!=c&&(nl(a),a.aa=c);d=d-b+1;if(a.qd!=b||a.Oc!=d)a.qd=b,a.Oc=d;a.Da=e+1;ml(a)}}}
function nl(a){if(0<=a.aa){if(void 0!==a.S){var b=a.S[a.aa];if(b&131072){var b=b&-131073,c=a.aa%a.G,d=a.aa/a.G|0;a.I&&a.xa[a.I]&&(a.Ga&&ol(a,c,d,b,a.Ga),ol(a,c,d,b));a.S[a.aa]=b}}a.aa=-1}}
function pl(a){var b,c=a.D;a.Yc=!1;var d=c.Dd[5];if(null!=d){b=1024;var e=0,f=c.Dd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.Fc=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.jb==Uj&&(e=3,c.Fc=f&7)}d&8&&(b=1280);c=c.ze[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Yc=!0));b|=e}return b}
function ql(a,b){var c=a.D;return c&&null!=b&&b!=c.qg?(c.Wf(b),a.ha.Wf(c.bb,c.Fb,c.ng(),!0),!0):!1}
function gl(a,b){var c,d=a.va,e=a.D;if(e)if(e.jb==wk)d=yk;else if(5<=e.jb){var d=null,f=e.Vc>>2,g=32768<f?32768:f,h=e.Dd[6];if(null!=h){switch(h&12){case 0:e.bb=655360;e.Fb=f;d=255;break;case 4:e.bb=655360;e.Fb=f;d=3==a.la?15:16;break;case 8:e.bb=720896;e.Fb=g;d=yk;break;case 12:e.bb=753664,e.Fb=g,d=3==a.la?2:3}var k=80==(e.Dd[5]&80);!k||e.bb==a.bb&&e.Fb==a.Fb||(b=!0);c=e.ze[1]&8;f=e.eb[6];f|=e.eb[7]&1?256:0;e.jb==Uj&&(f|=e.eb[7]&32?512:0);g=e.eb[9];255!=d&&(h&1?655360!=e.bb&&!k&&350>f?d=c?7-d:6:
e.Dd[5]&64?d=g&31?143>=e.eb[18]?19:20:21:g&128||350>f?d=c?13:14:480<=f&&(d=3==a.la?17:18):d-=c?2:0);c=pl(a)}}else e.Jc&8&&(e.Jc&2?(d=e.Jc&16?6:5,e.Jc&4||--d):(d=e.Jc&1?3:1,e.Jc&4&&--d));else a.va=null,null==d&&(d=a.ia);if(!fl(a,d,b))return!1;ql(a,c);return!0}
function fl(a,b,c){if(null!=b&&(b!=a.va||c)){a.Ed=0;a.va=b;a.Ka=!1;b=a.D||(b==yk?a.oa:a.P);if(b!=a.D||b.bb!=a.bb||b.Fb!=a.Fb){nl(a);if(a.bb){if(!Eb(a.ha,a.bb,a.Fb))return!1;a.D&&(a.D.cc=!1)}a.D=b;b.cc=!0;a.bb=b.bb;a.Fb=b.Fb;if(!yb(a.ha,b.bb,b.Fb,3,b===a.B?b:null))return!1}a.I=0;a.G=a.Hb;a.L=a.vc;a.Sa=a.G;a.Gb=xk[yk][2];b=0;if(c=xk[a.va])a.G=c[0],a.L=c[1],a.Gb=c[2],b=c[3],a.I=c[4],4!=a.la&&7!=a.la||a.D!==a.B||3!=a.I||(7==a.B.eb[9]?a.L=43:a.I=a.jb);a.ld=a.G*a.L|0;a.kd=a.ld/a.Gb|0;a.Va=a.kd;a.fc=0;void 0!==
function ql(a,b){var c=a.D;return c&&null!=b&&b!=c.qg?(c.Wf(b),a.ha.Wf(c.cb,c.Fb,c.ng(),!0),!0):!1}
function gl(a,b){var c,d=a.va,e=a.D;if(e)if(e.jb==wk)d=yk;else if(5<=e.jb){var d=null,f=e.Vc>>2,g=32768<f?32768:f,h=e.Dd[6];if(null!=h){switch(h&12){case 0:e.cb=655360;e.Fb=f;d=255;break;case 4:e.cb=655360;e.Fb=f;d=3==a.la?15:16;break;case 8:e.cb=720896;e.Fb=g;d=yk;break;case 12:e.cb=753664,e.Fb=g,d=3==a.la?2:3}c=80==(e.Dd[5]&80);!c||e.cb==a.cb&&e.Fb==a.Fb||(b=!0);f=e.ze[1]&8;g=e.bb[6];g|=e.bb[7]&1?256:0;e.jb==Uj&&(g|=e.bb[7]&32?512:0);var k=e.bb[9],m=e.bb[23];255!=d&&(h&1?655360==e.cb||c||m&1?e.Dd[5]&
64?d=k&31?143>=e.bb[18]?19:20:21:k&128||350>g?d=f?13:14:480<=g&&(d=3==a.la?17:18):d=f?7-d:6:d-=f?2:0);c=pl(a)}}else e.Jc&8&&(e.Jc&2?(d=e.Jc&16?6:5,e.Jc&4||--d):(d=e.Jc&1?3:1,e.Jc&4&&--d));else a.va=null,null==d&&(d=a.ia);if(!fl(a,d,b))return!1;ql(a,c);return!0}
function fl(a,b,c){if(null!=b&&(b!=a.va||c)){a.Ed=0;a.va=b;a.Ka=!1;b=a.D||(b==yk?a.oa:a.P);if(b!=a.D||b.cb!=a.cb||b.Fb!=a.Fb){nl(a);if(a.cb){if(!Eb(a.ha,a.cb,a.Fb))return!1;a.D&&(a.D.cc=!1)}a.D=b;b.cc=!0;a.cb=b.cb;a.Fb=b.Fb;if(!yb(a.ha,b.cb,b.Fb,3,b===a.B?b:null))return!1}a.I=0;a.G=a.Hb;a.L=a.vc;a.Sa=a.G;a.Gb=xk[yk][2];b=0;if(c=xk[a.va])a.G=c[0],a.L=c[1],a.Gb=c[2],b=c[3],a.I=c[4],4!=a.la&&7!=a.la||a.D!==a.B||3!=a.I||(7==a.B.bb[9]?a.L=43:a.I=a.jb);a.ld=a.G*a.L|0;a.kd=a.ld/a.Gb|0;a.Va=a.kd;a.fc=0;void 0!==
b&&(a.Va=(a.Va<<1)+b|0,a.fc=a.Va+b>>1);a.xa.length&&(a.sa=a.fa/a.G|0,a.ta=a.pa/a.L|0,a.I?(b=a.xa[a.I],c=a.xa[a.I<<1],a.Yd&&80==a.G?c&&a.sa>=3*c.qc>>2&&(a.I<<=1,b=c):(c&&a.sa>=c.qc&&(a.I<<=1,b=c),b&&(a.sa=b.qc,a.ta=b.rc)),a.Xa=a.fb=0,b&&(a.Xa=a.G*b.qc,a.fb=a.L*b.rc)):(a.sa=a.ta=1,a.Xa=a.G,a.fb=a.L),a.La=a.Y.createImageData(a.Xa,a.fb),a.Fa=document.createElement("canvas"),a.Fa.width=a.Xa,a.Fa.height=a.fb,a.Ga=a.Fa.getContext("2d"),a.xc=a.Ec=0,a.kc=a.fa,a.lc=a.pa,b=a.fa-a.G*a.sa,c=a.pa-a.L*a.ta,0<b&&
(a.xc=b>>1,a.kc-=b),0<c&&(a.Ec=c>>1,a.lc-=c),b||c)&&(a.Y.fillStyle=a.ca.style.backgroundColor,a.Y.fillRect(0,0,a.fa,a.pa));rl(a,!0);nc(a)}return!0}function ll(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function sl(a){a.za=-1;a.qa=!1;var b=a.kd;if(void 0===a.S||a.S.length!=b)a.S=Array(b)}function rl(a,b){b||(a.Ka=!1);sl(a)}
function ol(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.xa[a.I];h.Ge&&(d=h.Ge[d]);var k=g>>4&15;h.Ge&&(k=h.Ge[k]);e?(b*=h.qc,c*=h.rc,e.fillStyle=h.$d[k],e.fillRect(b,c,h.qc,h.rc)):(b=b*a.sa+a.xc,c=c*a.ta+a.Ec,a.Y.fillStyle=h.$d[k],a.Y.fillRect(b,c,a.sa,a.ta));g&256&&(k=(f&15)*h.qc,f=(f>>4)*h.rc,e?e.drawImage(h.cg[d],k,f,h.qc,h.rc,b,c,h.qc,h.rc):a.Y.drawImage(h.cg[d],k,f,h.qc,h.rc,b,c,a.sa,a.ta));g&512&&(f=a.qd,g=a.Oc,e?(a.Da&&a.Da!==h.rc&&(f=f*h.rc/a.Da|0,g=g*h.rc/a.Da|0),e.fillStyle=h.$d[d],e.fillRect(b,
c+f,h.qc,g)):(a.Da&&a.Da!==a.ta&&(f=f*a.ta/a.Da|0,g=g*a.ta/a.Da|0),a.Y.fillStyle=h.$d[d],a.Y.fillRect(b,c+f,a.sa,g)))}
function nc(a,b){if(a.da.Pb){var c=!1,d=a.D;d&&(d!==a.B?d.Jc&8&&(c=!0):d.Sd&32&&(c=!0));if(c||b){if(b)sl(a);else if(void 0===a.S)return;var e=!1;!(b||++a.Ed&15)&&0<=a.Ea&&(a.Ea++,e=!0);var f=0,g=a.ld,h=a.bb,c=h,k=c+a.Fb;19<=a.va&&(h=c=655360,k=c+65536);if(tl(a,d)&8||d.ve&&d.ve<d.ih)d.df=(d.eb[12]<<8)+d.eb[13]|0,d.ve=0;var m=d.df;a.I&&(m<<=1);c+=m;m=a.Va;5<=a.jb&&d.eb[19]&&d.eb[19]<<1!=d.eb[1]+1&&(a.Sa=d.eb[19]<<(a.I?1:d.eb[20]&64?3:4),m=(a.Sa*(a.L-1)+a.G)/a.Gb|0,a.va<=yk&&(m<<=1));c+m>k&&(m=k-c,0>
function nc(a,b){if(a.da.Pb){var c=!1,d=a.D;d&&(d!==a.B?d.Jc&8&&(c=!0):d.Sd&32&&(c=!0));if(c||b){if(b)sl(a);else if(void 0===a.S)return;var e=!1;!(b||++a.Ed&15)&&0<=a.Ea&&(a.Ea++,e=!0);var f=0,g=a.ld,h=a.cb,c=h,k=c+a.Fb;19<=a.va&&(h=c=655360,k=c+65536);if(tl(a,d)&8||d.ve&&d.ve<d.ih)d.df=(d.bb[12]<<8)+d.bb[13]|0,d.ve=0;var m=d.df;a.I&&(m<<=1);c+=m;m=a.Va;5<=a.jb&&d.bb[19]&&d.bb[19]<<1!=d.bb[1]+1&&(a.Sa=d.bb[19]<<(a.I?1:d.bb[20]&64?3:4),m=(a.Sa*(a.L-1)+a.G)/a.Gb|0,a.va<=yk&&(m<<=1));c+m>k&&(m=k-c,0>
m&&(m=0));k=c+m;if(d=!b&&a.qa){for(var d=a.ha,q=!0,x=c>>>d.ca;0<m&&x<d.P.length;)d.P[x].Ia&&(d.P[x].Ia=q=!1,d.P[x].Ph=!0),m-=d.tb,x++;d=q}if(d){if(!e)return;if(!a.za){if(0>a.aa)return;f=a.aa;g=f+1}}if(a.I){if(a.xa[a.I]){e=0;h=a.za=0;d=1048575;m=a.D.Jc&32;5<=a.jb&&(m=a.D.Ic[16]&8);m&&(h=32768,d&=~h,a.Ea&2||(d&=-65537));for(c+=f<<1;c<k&&f<g;)m=Kb(a.ha,c),m|=65536,m&h&&(a.za++,m&=d),f==a.aa&&(m|=a.Ea&1?131072:0),a.qa&&m===a.S[f]||(ol(a,f%a.G,f/a.G|0,m,a.Ga),a.S[f]=m,e++),c+=2,f++;a.qa=!0;e&&a.Ga&&a.Y.drawImage(a.Fa,
0,0,a.Xa,a.fb,a.xc,a.Ec,a.kc,a.lc);ml(a)}}else if(a.fc){for(var g=k,r,k=c,f=a.za=0,e=a.Gb,h=16==e?65536:196608,d=16==e?1:2,m=il(a,d),x=q=0,z=a.G,E=0,J=a.L,U=0;k<g;){r=Kb(a.ha,k);if(a.qa&&r===a.S[f])q+=e;else{a.S[f]=r;r=r>>8|(r&255)<<8;var ca=h,ta=16;q<z&&(z=q);for(var ua=0;ua<e;ua++){var od=(r&(ca>>=d))>>(ta-=d);ll(a.La,q++,x,m[od])}q>E&&(E=q);x<J&&(J=x);x>=U&&(U=x+1)}k+=2;f++;if(q>=a.G){q=0;x+=2;if(x>a.L)break;x==a.L&&(x=1,k=c+a.fc)}}a.qa=!0;z<a.G&&(a.Ga.putImageData(a.La,0,0,z,J,E-z,U-J),a.Y.drawImage(a.Fa,
0,0,a.G,a.L,0,0,a.fa,a.pa))}else if(a.Yc){g=h;e=a.za=0;h=il(a,8);d=a.D.rd;q=m=0;x=a.G;z=0;E=a.L;J=0;U=a.D.ze[4]&8?4:1;r=a.D.Ic[19]&15;for(ca=a.Sa>a.G?a.Sa-a.G-r>>3:0;c<k;){f=d[c-g];ua=4;r||(a.qa&&f===a.S[e]?(m+=ua,ua=0):a.S[e]=f,e++);if(ua){m<x&&(x=m);for(ta=0;ta<ua;ta++)ll(a.La,m++,q,h[f&255]),f>>=8;m>z&&(z=m);q<E&&(E=q);q>=J&&(J=q+1)}c+=U;if(m>=a.G){m=0;if(++q>a.L)break;c+=ca}}r||(a.qa=!0);x<a.G&&(a.Ga.putImageData(a.La,0,0,x,E,z-x,J-E),a.Y.drawImage(a.Fa,0,0,a.G,a.L,0,0,a.fa,a.pa))}else{g=h;f=
a.za=0;e=il(a);h=a.D.rd;m=d=0;q=a.G;x=0;z=a.L;E=0;J=a.D.Ic[19]&15;for(U=a.Sa>a.G?a.Sa-a.G-J>>3:0;c<k;){r=c++-g;r=h[r];ta=8;J?d?(ca=a.G-d,ta>ca&&(ta=ca)):(r<<=J,ta-=J,a.qa=!1):(a.qa&&r===a.S[f]?(d+=ta,ta=0):a.S[f]=r,f++);if(ta){d<q&&(q=d);for(ca=0;ca<ta;ca++)ua=Lk[r&-2139062144]||0,ll(a.La,d++,m,e[ua]),r<<=1;d>x&&(x=d);m<z&&(z=m);m>=E&&(E=m+1)}if(d>=a.G){d=0;if(++m>a.L)break;c+=U}}J||(a.qa=!0);q<a.G&&(a.Ga.putImageData(a.La,0,0,q,z,x-q,E-z),a.Y.drawImage(a.Fa,0,0,a.G,a.L,0,0,a.fa,a.pa))}}}}
function tl(a,b){var c=0,d=tc(a.A)-b.yg;0>d&&(b.yg=d,d=-d|0);d%b.ug>b.Tk&&(c|=1);d%b.xg>b.Vk&&(c|=9);b.ih=d/b.xg|0;return c}l.tk=function(){var a=this.oa,b;a.cc&&(b=a.pc);return b};l.Gl=function(a,b){var c=this.oa;c.Sf=c.pc;c.pc=b&31};l.sk=function(){return ul(this.oa)};l.Fl=function(a,b){vl(this,this.oa,b)};l.uk=function(){return this.oa.Jc};l.Hl=function(a,b){this.oa.Jc=b;gl(this,!1)};l.vk=function(){return wl(this,this.oa)};l.dj=function(a,b){this.B.Uf=this.B.Uf&-4|b&3};l.Sj=function(){return this.B.Sd};
l.wj=function(){return this.B.Ic[this.B.Sd&31]};l.cj=function(a,b){var c=this.B,d=c.Sd&32;if(c.Ke){c.Ke=!1;var e=c.Sd&31;if(16<=e||!d)c.Ic[e]=b,rl(this,!1)}else c.Sd=b,c.Ke=!0,b&32&&!d&&el(this,!0)&&nc(this,!0),c.df=(c.eb[12]<<8)+c.eb[13]|0,c.ve=0};l.Gk=function(){var a=0;if(5==this.jb)a=3-((this.B.hf&12)>>2),a=(this.Ab&1<<a)<<4-a;else{var b=this.B.xe[0];45!=(b&63)&&2880!=(b&4032)&&184320!=(b&258048)&&(a|=16)}a|=this.B.mh&-17;return this.B.mh=a};l.Il=function(a,b){this.B.hf=b;dl(this)};l.Hk=function(){return this.B.nh};
l.wj=function(){return this.B.Ic[this.B.Sd&31]};l.cj=function(a,b){var c=this.B,d=c.Sd&32;if(c.Ke){c.Ke=!1;var e=c.Sd&31;if(16<=e||!d)c.Ic[e]=b,rl(this,!1)}else c.Sd=b,c.Ke=!0,b&32&&!d&&el(this,!0)&&nc(this,!0),c.df=(c.bb[12]<<8)+c.bb[13]|0,c.ve=0};l.Gk=function(){var a=0;if(5==this.jb)a=3-((this.B.hf&12)>>2),a=(this.Ab&1<<a)<<4-a;else{var b=this.B.xe[0];45!=(b&63)&&2880!=(b&4032)&&184320!=(b&258048)&&(a|=16)}a|=this.B.mh&-17;return this.B.mh=a};l.Il=function(a,b){this.B.hf=b;dl(this)};l.Hk=function(){return this.B.nh};
l.Sl=function(a,b){this.B.nh=b};l.Ek=function(){return this.B.Ae};l.Ql=function(a,b){this.B.Ae=b};l.Dk=function(){return this.B.ze[this.B.Ae]};l.Pl=function(a,b){this.B.ze[this.B.Ae]=b;switch(this.B.Ae){case 2:this.B.$a=Kk[b&15];break;case 4:ql(this,pl(this))&&nc(this,!0)}};l.ek=function(){return this.B.lh};l.pl=function(a,b){this.B.lh=b};l.fk=function(){return this.B.Tf};l.ql=function(a,b){this.B.bd=b;this.B.Tf=3;this.B.zc=0};l.rl=function(a,b){this.B.bd=b;this.B.Tf=0;this.B.zc=0};
l.dk=function(){var a=this.B.xe[this.B.bd]>>this.B.zc&63;this.B.zc+=6;12<this.B.zc&&(this.B.zc=0,this.B.bd=this.B.bd+1&255);return a};l.ol=function(a,b){var c=this.B.xe[this.B.bd],d=c&~(63<<this.B.zc)|(b&63)<<this.B.zc;c!==d&&(this.B.xe[this.B.bd]=d,rl(this,!1));this.B.zc+=6;12<this.B.zc&&(this.B.zc=0,this.B.bd=this.B.bd+1&255)};l.Ik=function(){return this.B.Uf};l.Bl=function(a,b){this.B.fj=b};l.Jk=function(){return this.B.hf};l.Al=function(a,b){this.B.ej=b};l.lk=function(){return this.B.ye};
l.zl=function(a,b){this.B.ye=b};l.kk=function(){return this.B.Dd[this.B.ye]};l.yl=function(a,b){this.B.Dd[this.B.ye]=b;switch(this.B.ye){case 0:this.B.af=Kk[b&15];this.B.Ad=this.B.af&~this.B.jd;break;case 1:this.B.jd=~Kk[b&15];this.B.Ad=this.B.af&~this.B.jd;break;case 2:this.B.sg=Kk[b&15]&-2139062144;break;case 3:case 5:ql(this,pl(this));break;case 4:this.B.hh=(b&3)<<3;break;case 6:gl(this,!1);break;case 7:this.B.tg=Kk[b&15]&-2139062144;break;case 8:this.B.sb=b|b<<8|b<<16|b<<24}};
l.Yj=function(){var a=this.P,b;a.cc&&(b=a.pc);return b};l.jl=function(a,b){var c=this.P;c.Sf=c.pc;c.pc=b&31};l.Xj=function(){return ul(this.P)};l.il=function(a,b){vl(this,this.P,b)};l.Zj=function(){return this.P.Jc};l.kl=function(a,b){this.P.Jc=b;gl(this,!1)};l.Wj=function(){return this.P.gf};l.hl=function(a,b){this.P.gf!==b&&(this.P.gf=b,rl(this,!1))};l.$j=function(){return wl(this,this.P)};function ul(a){var b;a.cc&&a.pc<a.rg&&(b=a.eb[a.pc]);return b}
function vl(a,b,c){if(b.pc<b.rg){b.eb[b.pc]=c;if(12==b.pc||13==b.pc)tl(a,b)&1?b.df=(b.eb[12]<<8)+b.eb[13]|0:b.ve||(b.ve=b.ih);(9==b.pc&&8!=b.Sf||18==b.pc&&223==c)&&gl(a,!0);hl(a)}}function wl(a,b){var c=tl(a,b);b===a.B?(c|=b.Z&48^48,b.Ke=!1):c=(b.Z^=9)|240;return b.Z=c}
l.Yj=function(){var a=this.P,b;a.cc&&(b=a.pc);return b};l.jl=function(a,b){var c=this.P;c.Sf=c.pc;c.pc=b&31};l.Xj=function(){return ul(this.P)};l.il=function(a,b){vl(this,this.P,b)};l.Zj=function(){return this.P.Jc};l.kl=function(a,b){this.P.Jc=b;gl(this,!1)};l.Wj=function(){return this.P.gf};l.hl=function(a,b){this.P.gf!==b&&(this.P.gf=b,rl(this,!1))};l.$j=function(){return wl(this,this.P)};function ul(a){var b;a.cc&&a.pc<a.rg&&(b=a.bb[a.pc]);return b}
function vl(a,b,c){if(b.pc<b.rg){b.bb[b.pc]=c;if(12==b.pc||13==b.pc)tl(a,b)&1?b.df=(b.bb[12]<<8)+b.bb[13]|0:b.ve||(b.ve=b.ih);(9==b.pc&&8!=b.Sf||18==b.pc&&223==c)&&gl(a,!0);hl(a)}}function wl(a,b){var c=tl(a,b);b===a.B?(c|=b.Z&48^48,b.Ke=!1):c=(b.Z^=9)|240;return b.Z=c}
var Tk={948:Y.prototype.tk,949:Y.prototype.sk,952:Y.prototype.uk,954:Y.prototype.vk},Uk={948:Y.prototype.Gl,949:Y.prototype.Fl,952:Y.prototype.Hl},Vk={980:Y.prototype.Yj,981:Y.prototype.Xj,984:Y.prototype.Zj,985:Y.prototype.Wj,986:Y.prototype.$j},Wk={980:Y.prototype.jl,981:Y.prototype.il,984:Y.prototype.kl,985:Y.prototype.hl},Xk={960:Y.prototype.Sj,961:Y.prototype.wj,962:Y.prototype.Gk,964:Y.prototype.Ek,965:Y.prototype.Dk,974:Y.prototype.lk,975:Y.prototype.kk},Yk={954:Y.prototype.dj,960:Y.prototype.cj,
961:Y.prototype.cj,962:Y.prototype.Il,964:Y.prototype.Ql,965:Y.prototype.Pl,970:Y.prototype.Bl,972:Y.prototype.Al,974:Y.prototype.zl,975:Y.prototype.yl,986:Y.prototype.dj},Zk={963:Y.prototype.Hk,966:Y.prototype.ek,967:Y.prototype.fk,969:Y.prototype.dk,970:Y.prototype.Ik,972:Y.prototype.Jk},$k={963:Y.prototype.Sl,966:Y.prototype.pl,967:Y.prototype.ql,968:Y.prototype.rl,969:Y.prototype.ol};
Ea(function(){for(var a=Za(document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
@ -515,110 +515,111 @@ l.Sb=function(a){return a?this.save():!0};l.reset=function(){Nl(this)};l.save=fu
function Kl(a){if(!a.W)for(var b=0;b<a.B.length;b++)Ol(a,a.B[b])&&(a.W=!0)}function Ll(a){if(a.W)for(var b=0;b<a.B.length;b++){var c=a.B[b];c&&(c.style.cursor="auto")}}function Ol(a,b){return b?(b.addEventListener("mousemove",function(b){Pl(a,b)},!1),b.addEventListener("mousedown",function(b){Pl(a,b,!0)},!1),b.addEventListener("mouseup",function(b){Pl(a,b,!1)},!1),b.style.cursor="none",!0):!1}
function Pl(a,b,c){if(void 0!==c){var d;!(d=!1!==a.S)&&(d=a.D.length)&&(d=a.D[0],d=d.Vd?d.Md(!0):!1);d||(a.S=null);a.he(b.button,c)}else{if(0>a.H||0>a.I)a.H=b.clientX,a.I=b.clientY;a.S?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.H,d=b.clientY-a.I);a.H=b.clientX;a.I=b.clientY;a.pg(c,d,a.H,a.I)}}
l.he=function(a,b){if(this.cc&&this.A&&this.A.da.Qb)switch(a){case cl:if(this.R!=b){this.R=b;Ql(this);break}break;case 2:this.P!=b&&(this.P=b,Ql(this))}};l.pg=function(a,b){this.cc&&this.A&&this.A.da.Qb&&(a||b)&&(this.K=a,this.L=b,Ql(this))};function Ql(a){Fl(a.G,[64|(a.R?32:0)|(a.P?16:0)|(a.L&192)>>4|(a.K&192)>>6,a.K&63,a.L&63]);a.K=a.L=0}Ea(function(){for(var a=Za(document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Ml(d);Ya(d,c)}});
function Rl(a,b,c){Ia.call(this,"Disk",{id:a.mf+".disk"+ea(++Sl,4)},Rl);this.controller=a;this.oa=a.oa;this.Oa=a.Oa;this.C=b;this.B=b.name;this.me=b.me;this.Cf=this.D=!1;Tl(this,c,b.kb,b.lb,b.cb,b.pb);this.I=[];this.R=[];this.G=null;this.S=0;this.P=!1;p(this)}var Sl=0;Qa(Rl);l=Rl.prototype;l.mc=function(a,b,c,d){this.Oa=d};l.Tb=function(a,b){b||!this.Cf||this.D||(p(this,!1),this.load(this.B,this.H,null,this.Gj,this));return!0};l.Gj=function(){p(this,!0)};
function Rl(a,b,c){Ia.call(this,"Disk",{id:a.mf+".disk"+ea(++Sl,4)},Rl);this.controller=a;this.oa=a.oa;this.Oa=a.Oa;this.C=b;this.B=b.name;this.me=b.me;this.Cf=this.D=!1;Tl(this,c,b.kb,b.lb,b.eb,b.pb);this.I=[];this.R=[];this.G=null;this.S=0;this.P=!1;p(this)}var Sl=0;Qa(Rl);l=Rl.prototype;l.mc=function(a,b,c,d){this.Oa=d};l.Tb=function(a,b){b||!this.Cf||this.D||(p(this,!1),this.load(this.B,this.H,null,this.Gj,this));return!0};l.Gj=function(){p(this,!0)};
l.Sb=function(a,b){if(this.D){var c,d=0;if(this.P&&!ra("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=Ul(this,!1);)if(d=c[0]){this.controller.Ba('Unable to save "'+this.B+'" (error '+d+")");break}b&&this.D&&(c="action=close&volume="+this.H,c+="&machine="+this.controller.qe(),c+="&user="+this.controller.xd(),pa(qa()+"/api/v1/disk?"+c,null,!0),this.D=!1);!d&&a&&this.controller.Ba(this.B+" saved")}return!0};
function Tl(a,b,c,d,e,f){a.mode=b;a.kb=c;a.lb=d;a.cb=e;a.pb=f;a.A=[];if("preload"!=a.mode){b=Array(a.kb);for(c=0;c<b.length;c++){d=Array(a.lb);for(e=0;e<d.length;e++){f=Array(a.cb);for(var g=1;g<=f.length;g++)f[g-1]=Vl(null,c,e,g,a.pb,"local"==a.mode?0:null);d[e]=f}b[c]=d}a.A=b}a.L=null}
l.load=function(a,b,c,d,e){var f=b;if(this.K)return!0;this.B=a;this.H=b;this.gj=fa(b);var g=this;this.K=d;this.ha=e||this.controller;if(c){var h=new FileReader;h.onload=function(){var a=h.result,b,c=a?a.byteLength:0,d=ba[c];if(d){g.kb=d[0];g.lb=d[1];g.cb=d[2];g.pb=512;b=g.pb>>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.kb);for(c=0;c<g.A.length;c++)for(var f=g.A[c]=Array(g.lb),E=0;E<f.length;E++)for(var J=f[E]=Array(g.cb),U=0;U<J.length;U++){for(var ca=Vl(null,c,E,U+1,g.pb,0),ta=ca.data,ua=0;ua<
function Tl(a,b,c,d,e,f){a.mode=b;a.kb=c;a.lb=d;a.eb=e;a.pb=f;a.A=[];if("preload"!=a.mode){b=Array(a.kb);for(c=0;c<b.length;c++){d=Array(a.lb);for(e=0;e<d.length;e++){f=Array(a.eb);for(var g=1;g<=f.length;g++)f[g-1]=Vl(null,c,e,g,a.pb,"local"==a.mode?0:null);d[e]=f}b[c]=d}a.A=b}a.L=null}
l.load=function(a,b,c,d,e){var f=b;if(this.K)return!0;this.B=a;this.H=b;this.gj=fa(b);var g=this;this.K=d;this.ha=e||this.controller;if(c){var h=new FileReader;h.onload=function(){var a=h.result,b,c=a?a.byteLength:0,d=ba[c];if(d){g.kb=d[0];g.lb=d[1];g.eb=d[2];g.pb=512;b=g.pb>>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.kb);for(c=0;c<g.A.length;c++)for(var f=g.A[c]=Array(g.lb),E=0;E<f.length;E++)for(var J=f[E]=Array(g.eb),U=0;U<J.length;U++){for(var ca=Vl(null,c,E,U+1,g.pb,0),ta=ca.data,ua=0;ua<
b;ua++,e+=4)var od=ta[ua]=a.getInt32(e,!0),d=d+od&-1;ca.Bc=b;J[U]=ca}g.L=d;b=g}else g.Ba("Unrecognized diskette format ("+c+" bytes)");g.K&&(g.K.call(g.controller,g.C,b,g.B,g.H),g.K=null)};h.readAsArrayBuffer(c);return!0}0>b.indexOf("/api/v1/dump")&&(a=ga(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=Wl(this,b),this.Cf=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):
ha(b,"/")&&(c="dir"),f=qa()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.me?"":d)+"&format=json"));return!!pa(f,null,!0,function(a,b,c){Xl(g,a,b,c)})};
function Xl(a,b,c,d){var e=null;a.pe=!1;var f=0>d&&a.oa&&!a.oa.da.Pb;if(a.Cf)d?a.controller.Ba('Unable to connect to disk "'+a.H+'" (error '+d+": "+c+")",f):(a.D=!0,e=a);else if(d)a.controller.Ba('Unable to load disk "'+a.B+'" (error '+d+": "+b+")",f);else{Sa(a.controller.mf,b,c);try{if(0<fa(a.gj,!0).toLowerCase().indexOf("-readonly"))a.pe=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.pe=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.B]:h=0>
c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+c+")");if(h.length)if(1==h.length)n(h[0]);else{a.kb=h.length;a.lb=h[0].length;a.cb=h[0][0].length;var k=h[0][0][0];a.pb=k&&k.length||512;for(d=c=0;d<a.kb;d++)for(f=0;f<a.lb;f++)for(g=0;g<a.cb;g++)if(k=h[d][f][g]){var m=k.length;void 0===m&&(m=k.length=512);var m=m>>2,q=k.pattern;void 0===q&&(q=k.pattern=0);var x=k.data;if(void 0===x){var r=k.bytes;if(void 0!==r&&r.length){for(var z=
m<<2,E=r.length;E<z;E++)r[E]=q;Yl(k,r,0)}else x=[],q=k.pattern=q|q<<8|q<<16|q<<24,k.data=x;delete k.bytes}Vl(k,d,f);for(z=0;z<x.length;z++)c=c+x[z]&-1}a.A=h;a.L=c;e=a}else n("Empty disk image: "+a.B)}catch(J){n("Disk image error ("+b+"): "+J.message)}}a.K&&(a.K.call(a.ha,a.C,e,a.B,a.H),a.K=null)}function Zl(a,b){var c=a.lb*a.cb,d=b/c|0;return d<a.kb?(c=b%c,a.seek(d,c/a.cb|0,c%a.cb+1)):null}function $l(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
function Vl(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Jj=b;a.Kj=c;a.Sc=a.Bc=0;a.Ia=!1;return a}function Wl(a,b){var c;c="action=open&volume="+b+("&mode="+a.mode);c+="&chs="+a.kb+":"+a.lb+":"+a.cb+":"+a.pb;c+="&machine="+a.controller.qe();c+="&user="+a.controller.xd();return qa()+"/api/v1/disk?"+c}
function am(a,b,c,d,e,f,g){if(a.D){var h;h="action=read&volume="+a.H;h+="&chs="+a.kb+":"+a.lb+":"+a.cb+":"+a.pb;h=h+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.controller.qe());h+="&user="+a.controller.xd();pa(qa()+"/api/v1/disk?"+h,null,f,function(h,m,q){h=[b,c,d,e,f,g];var x=!1,r=h[0],z=h[1],E=h[2],J=h[3];if(!q){m=JSON.parse(m);for(x=0;J--;){var U=a.seek(r,z,E,!0);if(!U)break;Yl(U,m,x);x+=U.length;E++}x=h[4]}(h=h[5])&&h(q,x)})}else g&&g(-1,!1)}
function bm(a,b,c,d,e,f,g){if(a.D){var h={};a.P=!0;h.action="write";h.volume=a.H;h.chs=a.kb+":"+a.lb+":"+a.cb+":"+a.pb;h.addr=b+":"+c+":"+d+":"+e;h.machine=a.controller.qe();h.user=a.controller.xd();h.data=JSON.stringify(f);pa(qa()+"/api/v1/disk",h,g,function(f,h,q){var x=[b,c,d,e,g];f=x[0];h=x[1];var r=x[2],z=x[3],x=x[4];a.P=!1;if(0<=f&&f<a.A.length&&0<=h&&h<a.A[f].length)for(r=r-1;0<z--&&0<=r&&r<a.A[f][h].length;r++){var E=a.A[f][h][r];q?cm(a,E,!1):E.Ia||(E.Sc=E.Bc=0)}x&&dm(a)})}return!1}
c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+c+")");if(h.length)if(1==h.length)n(h[0]);else{a.kb=h.length;a.lb=h[0].length;a.eb=h[0][0].length;var k=h[0][0][0];a.pb=k&&k.length||512;for(d=c=0;d<a.kb;d++)for(f=0;f<a.lb;f++)for(g=0;g<a.eb;g++)if(k=h[d][f][g]){var m=k.length;void 0===m&&(m=k.length=512);var m=m>>2,q=k.pattern;void 0===q&&(q=k.pattern=0);var x=k.data;if(void 0===x){var r=k.bytes;if(void 0!==r&&r.length){for(var z=
m<<2,E=r.length;E<z;E++)r[E]=q;Yl(k,r,0)}else x=[],q=k.pattern=q|q<<8|q<<16|q<<24,k.data=x;delete k.bytes}Vl(k,d,f);for(z=0;z<x.length;z++)c=c+x[z]&-1}a.A=h;a.L=c;e=a}else n("Empty disk image: "+a.B)}catch(J){n("Disk image error ("+b+"): "+J.message)}}a.K&&(a.K.call(a.ha,a.C,e,a.B,a.H),a.K=null)}function Zl(a,b){var c=a.lb*a.eb,d=b/c|0;return d<a.kb?(c=b%c,a.seek(d,c/a.eb|0,c%a.eb+1)):null}function $l(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
function Vl(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Jj=b;a.Kj=c;a.Sc=a.Bc=0;a.Ia=!1;return a}function Wl(a,b){var c;c="action=open&volume="+b+("&mode="+a.mode);c+="&chs="+a.kb+":"+a.lb+":"+a.eb+":"+a.pb;c+="&machine="+a.controller.qe();c+="&user="+a.controller.xd();return qa()+"/api/v1/disk?"+c}
function am(a,b,c,d,e,f,g){if(a.D){var h;h="action=read&volume="+a.H;h+="&chs="+a.kb+":"+a.lb+":"+a.eb+":"+a.pb;h=h+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.controller.qe());h+="&user="+a.controller.xd();pa(qa()+"/api/v1/disk?"+h,null,f,function(h,m,q){h=[b,c,d,e,f,g];var x=!1,r=h[0],z=h[1],E=h[2],J=h[3];if(!q){m=JSON.parse(m);for(x=0;J--;){var U=a.seek(r,z,E,!0);if(!U)break;Yl(U,m,x);x+=U.length;E++}x=h[4]}(h=h[5])&&h(q,x)})}else g&&g(-1,!1)}
function bm(a,b,c,d,e,f,g){if(a.D){var h={};a.P=!0;h.action="write";h.volume=a.H;h.chs=a.kb+":"+a.lb+":"+a.eb+":"+a.pb;h.addr=b+":"+c+":"+d+":"+e;h.machine=a.controller.qe();h.user=a.controller.xd();h.data=JSON.stringify(f);pa(qa()+"/api/v1/disk",h,g,function(f,h,q){var x=[b,c,d,e,g];f=x[0];h=x[1];var r=x[2],z=x[3],x=x[4];a.P=!1;if(0<=f&&f<a.A.length&&0<=h&&h<a.A[f].length)for(r=r-1;0<z--&&0<=r&&r<a.A[f][h].length;r++){var E=a.A[f][h][r];q?cm(a,E,!1):E.Ia||(E.Sc=E.Bc=0)}x&&dm(a)})}return!1}
function cm(a,b,c){b.Ia=!0;var d=a.I.indexOf(b);0<=d&&(a.I.splice(d,1),a.R.splice(d,1));a.I.push(b);a.R.push(ka());c&&dm(a)}function dm(a){if(a.I.length){var b=a.R[0]+2E3;a.G&&a.S<b&&(clearTimeout(a.G),a.G=null);if(!a.G){var c=ka(),b=b-c;0>b&&(b=0);2E3<b&&(b=2E3);a.G=setTimeout(function(){Ul(a,!0)},b);a.S=c+b}}else a.G&&(clearTimeout(a.G),a.G=null)}
function Ul(a,b){b&&(a.G=null);var c=a.I[0];if(c){for(var d=c.Jj,e=c.Kj,c=c.sector,f=0,g=[],h=c-1;h<a.A[d][e].length;h++){var k=a.A[d][e][h];if(!k.Ia)break;var m=a.I.indexOf(k);a.I.splice(m,1);a.R.splice(m,1);g=g.concat(em(k));k.Ia=!1;f++}d=bm(a,d,e,c,f,g,b);return b||d}return!1}l.info=function(){return this.A.length?[this.A.length,this.A[0].length,this.A[0][0].length,this.A[0][0][0].length]:[0,0,0,0]};
l.seek=function(a,b,c,d,e){var f=null,g=this.C,h=this.A[a];if(h){var k=h[b];if(!k&&g.eg&&b<g.lb)for(k=h[b]=Array(g.ud),h=0;h<k.length;h++)k[h]=Vl(null,a,b,h+1,g.ub,0);if(k){for(h=0;h<k.length;h++)if(k[h]&&k[h].sector==c){f=k[h];if(null===f.pattern)if(d)f.pattern=0;else{for(d=1;++h<k.length;)null===k[h].pattern&&d++;am(this,a,b,c,d,null!=e,function(a,b){a&&(f=null);e&&e(f,b)});return e?null:f}break}!f&&g.eg&&9==g.ob&&(f=k[h]=Vl(null,a,b,g.ob,g.ub,0))}}e&&e(f,!1);return f};
function Yl(a,b,c){for(var d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}function em(a){var b=a.length,c=Array(b),d=0,b=b>>2,e=a.data;a=a.pattern;for(var f=0;f<b;f++){var g=f<e.length?e[f]:a;c[d++]=g&255;c[d++]=g>>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}l.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};
l.write=function(a,b,c){if(this.pe)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Bc?f<a.Sc?(a.Bc+=a.Sc-f,a.Sc=f):f>=a.Sc+a.Bc&&(a.Bc+=f-(a.Sc+a.Bc)+1):(a.Sc=f,a.Bc=1);d[f]=d[f]&~(255<<b)|c<<b;this.D&&cm(this,a,!0)}return!0}return null};
l.save=function(){var a=0,b=[];b[a++]=[this.H,this.L,this.kb,this.lb,this.cb,this.pb];if(!this.D&&!this.pe)for(var c=this.A,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Bc){for(var h=[],k=0,m=g.Sc,q=g.Sc+g.Bc;m<q;)h[k++]=g.data[m++];b[a++]=[d,e,f,g.Sc,h]}}return b};
l.save=function(){var a=0,b=[];b[a++]=[this.H,this.L,this.kb,this.lb,this.eb,this.pb];if(!this.D&&!this.pe)for(var c=this.A,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Bc){for(var h=[],k=0,m=g.Sc,q=g.Sc+g.Bc;m<q;)h[k++]=g.data[m++];b[a++]=[d,e,f,g.Sc,h]}}return b};
l.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.A.length&&6<=e.length?Tl(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.L&&e[1]!=this.L&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.L+")",b=-2));for(this.A.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],k=g[f++],m=g[f++];if(h>=this.A.length||k>=this.A[h].length||m>=this.A[h][k].length){c="sector (CHS="+h+":"+k+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.pe){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.A[h][k][m]){for(k=h.data.length;k<e;)h.data[k++]=h.pattern;k=0;h.Sc=e;for(h.Bc=f.length;e<g;)h.data[e++]=f[k++];b++}}}0>b&&-2!=b&&this.controller.Ba("Unable to restore disk '"+this.B+": "+c);return b};
l.toJSON=function(){var a=JSON.stringify(this.A,function(a,c){return"file"==a?void 0:c}),a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,""),a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:"),a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,""),a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function fm(a){Ia.call(this,"FDC",a,fm);this.dmaRead=this.qj;this.dmaWrite=this.rj;this.dmaFormat=this.Cj;this.K=a.autoMount||null;this.C=[];this.W=!ya("Mobi")&&window&&"FileReader"in window}Qa(fm);aa={};var gm={3:{dd:3,vd:0,name:aa.Bm},4:{dd:2,vd:1,name:aa.zm},5:{dd:9,vd:7,name:aa.Jm},6:{dd:9,vd:7,name:aa.um},7:{dd:2,vd:0,name:aa.wm},8:{dd:1,vd:2,name:aa.Am},10:{dd:2,vd:7,name:aa.vm},13:{dd:6,vd:7,name:aa.hm},15:{dd:3,vd:0,name:aa.ym}};l=fm.prototype;
l.zb=function(a,b,c){var d=this;switch(b){case "listDisks":return this.ja[b]=c,c.onchange=function(){var a=d.ja.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){n("FDC option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.ja[b]=c,c.onchange=function(){var a=da(c.value,10);null!=a&&hm(d,a)},!0;
case "loadDrive":return this.ja[b]=c,c.onclick=function(){var a=d.ja.listDisks;a&&im(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.W){c.parentNode.removeChild(c);break}this.ja[b]=c;c.onclick=function(){var a=d.ja.listDrives;if(a&&a.options&&d.B)if(a=da(a.value,10),a=d.B[a])if(a.ua){for(var b=a.ua,c="",h=0,k;k=Zl(b,h++);)for(var m=0,q=k.length;m<q;m++)c+=String.fromCharCode($l(b,k,m));a=za(btoa(c),"octet-stream",!0,a.ua.gj.replace(".json",".img"));n(a)}else d.Ba("No disk loaded in drive");
else d.Ba("No drive selected")};return!0;case "mountDrive":if(!this.W){c.parentNode.removeChild(c);break}this.ja[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;im(d,fa(b,!0),b,a)}return!1};return!0}return!1};
l.mc=function(a,b,c,d){this.ha=b;this.A=c;this.Oa=d;this.oa=a;this.R=jb(a,"ChipSet");if((this.K=jm(this.oa,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){n("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}km(this);Mb(b,this,lm);Ob(b,this,mm);this.W&&nm(this,"Local Disk","?");nm(this,"Remote Disk","??");om(this)||p(this)};
l.Tb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.oa.lg){this.C=[];for(var c=0;c<this.B.length;c++)pm(this,c,!0);om(this,!0)}}else if(!this.restore(a))return!1;if(c=this.ja.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.textContent="";for(var d=0;d<this.Y;d++){var e=document.createElement("option");e.value=d;e.textContent=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.Y&&(c.value="0",hm(this,0))}}return!0};l.Sb=function(a){return a?this.save():!0};l.reset=function(){km(this)};
l.save=function(){var a=new be(this),b=0,c=[];c[b++]=this.Qa;c[b++]=0;c[b++]=this.Z;c[b++]=this.I;c[b++]=this.G;c[b++]=this.D;c[b++]=this.S;for(var d=b++,e=0,f=[],g=0;g<this.B.length;g++){var h=e++,k=this.B[g],m=0,q=[];q[m++]=k.mb;q[m++]=[k.name,k.kb,k.lb,k.cb,k.pb,k.me,k.Jf,k.Ue,k.Ve];q[m++]=k.Ya;q[m++]=k.td+100;q[m++]=k.wb;q[m++]=k.ob;q[m++]=k.ud;q[m++]=k.ub;q[m++]=k.Ta;q[m++]=k.ke;q[m++]=k.hj;q[m]=k.Td;f[h]=q}c[d]=f;d=b++;for(e=0;e<this.B.length;e++)f=this.B[e],f.ua&&qm(this,f.Td,f.ua);c[d]=this.C;
c[b++]=this.L;c[b]=this.H;D(a,0,c);return a.data()};l.restore=function(a){return km(this,a[0])};
function km(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.Qa=b[c++];c++;a.Z=b[c++];a.I=b[c++];a.G=b[c++];a.D=b[c++];a.S=b[c++];var f=b[c++];d=b[c++];null!=d&&(a.C=d);void 0===a.B&&(a.Y=4,a.R&&(a.Y=dj(a.R)),a.B=Array(4));for(d=0;d<a.B.length;d++){var g=a.B[d];if(void 0===g){var g=a.B[d]={},h;if(a.R)a:{h=a.R;if(d<dj(h)){if(!h.aa){h=360;break a}if(d<h.aa.length){h=h.aa[d];break a}}h=0}else h=0;switch(h){case 160:case 180:g.lb=1;default:g.kb=40;g.cb=9;break;case 720:g.kb=80;g.cb=9;
break;case 1200:g.kb=80;g.cb=15;break;case 1440:g.kb=80,g.cb=18}}var k=a,m=d,q=f[d],x=0;h=!0;g.Qa=m;g.Nc=g.ke=!1;void 0===q&&(q=[192,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=["Floppy Drive",g.kb||40,g.lb||q[3],g.cb||9,g.pb||512,q[1],g.Jf,g.Ue,g.Ve]);g.mb=q[x++];var r=q[x++];g.name=r[0];g.kb=r[1];g.lb=r[2];g.cb=r[3];g.pb=r[4];g.me=r[5];(g.Jf=r[6])?(g.Ue=r[7],g.Ve=r[8]):(g.Jf=g.kb,g.Ue=g.lb,g.Ve=g.cb);g.Ya=q[x++];g.td=q[x++];g.wb=q[x++];g.td=100<=g.td?g.td-100:g.td-g.wb;g.ob=q[x++];g.ud=q[x++];g.ub=
q[x++];g.Ta=q[x++];g.Wa=null;g.ua||(g.Td="");r=q[x++];102==r&&(r=!1);if("boolean"==typeof r){var z=r,r=q[x++],q=q[x];z?(x=r,r=k.B[m],pm(k,m,!0,!0),r.ke=!0,m=new Rl(k,r,"preload"),k.Nh(r,m,x,q,!0)):rm(k,m,r,q,!0)?g.ua&&q&&sm(k,r,q,g.ua):p(k,!1)}else void 0!==r&&g.ua&&0>g.ua.restore(r)&&(h=!1);h&&g.ua&&void 0!==g.Ta&&(g.Wa=g.ua.seek(g.wb,g.Ya,g.ob));h||(e=!1)}a.L=b[c++]||0;a.H=b[c]||0;return e}
function om(a,b){b||(a.P=0);if(a.K)for(var c in a.K){var d=a.K[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.ja.listDisks)&&f.options)for(var g=0;g<f.options.length;g++)if(f.options[g].value==e){f=f.options[g].innerText;break a}f=fa(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.B.length)){!rm(a,g,f,e,!0)&&b&&p(a,!1);continue}a.Ba("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.P}
function im(a,b,c,d){var e,f=a.ja.listDrives;if(f&&!isNaN(e=da(f.value,10))&&0<=e&&e<a.B.length)if(c)if("?"==c)a.Ba('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=fa(c)}for(;rm(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var f=a,g=c,h=void 0,h=0;h<f.C.length;h++)if(f.C[h][1]==g){f.C.splice(h,1);break}pm(a,
e,!1,!0)}}else pm(a,e);else a.Ba("Unable to load the selected drive")}function rm(a,b,c,d,e,f){var g=a.B[b];if(d&&g.Td!=d){pm(a,b,e,!0);if(g.Nc)return a.Ba("Drive "+b+" busy"),!0;g.Nc=!0;e&&(g.Kd=!0,a.P++);g.ke=!!f;if(!(new Rl(a,g,"preload")).load(c,d,f,a.Nh))return!1}return!0}
l.Nh=function(a,b,c,d,e){var f;a.Nc=!1;b&&(f=b.info(),b&&f[0]>a.kb||f[1]>a.lb)&&(this.Ba('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Qa)),b=null);b?(a.ua=b,a.hj=c,a.Td=d,sm(this,c,d,b),f=b.info(),this.L|=128,this.Ba('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Qa),a.Kd||e),a.Jf=f[0],a.Ue=f[1],a.Ve=f[2]):a.ke=!1;a.Kd&&(a.Kd=!1,--this.P||p(this));hm(this,a.Qa)};
function nm(a,b,c){if((a=a.ja.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}
function hm(a,b){if(0<=b&&b<a.B.length){var c=a.B[b],d=a.ja.listDisks,e=a.ja.listDrives;if(d&&e&&d.options&&e.options&&(e=da(e.value,10),c=c.ke?"?":c.Td,!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}function pm(a,b,c,d){var e=a.B[b];e.ua&&(qm(a,e.Td,e.ua),e.hj="",e.Td="",e.ua=null,e.ke=!1,a.L|=128,d||a.Ba("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||hm(a,b))}
function sm(a,b,c,d){var e;for(e=0;e<a.C.length;e++)if(a.C[e][1]==c){d.restore(a.C[e][2]);return}a.C[e]=[b,c,[]]}function qm(a,b,c){var d;for(d=0;d<a.C.length;d++)if(a.C[d][1]==b){a.C[d][2]=c.save();break}}l.vl=function(a,b){b&4?this.S&4||this.S&8&&this.R&&Se(this.R,6):km(this);this.S=b};l.jk=function(){return this.Z};l.hk=function(){var a=0;this.G<this.D&&(a=this.I[this.G]);this.S&8&&this.R&&Re(this.R,6);++this.G>=this.D&&(this.Z&=-81,this.G=this.D=0);return a};
l.ul=function(a,b){this.D<this.I.length&&(this.I[this.D++]=b);var c=this.I[0]&31;if(void 0!==gm[c]&&this.D>=gm[c].dd){var d=!1;this.G=0;var c=tm(this),e,f,g,h,k,m=c&31;switch(m){case 3:tm(this);tm(this);um(this);break;case 4:f=tm(this);this.Qa=f&3;e=this.B[this.Qa];um(this);vm(this,(e.mb&-16777216)>>>24);break;case 5:case 6:f=tm(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];e.Ya=d;f=e.wb=tm(this);g=tm(this);h=e.ob=tm(this);k=tm(this);e.ub=128<<k;e.ud=tm(this);tm(this);tm(this);6==m?(m=e,m.mb=72,m.ua&&
(m.Wa=null,m.mb=0,this.R&&(uj(this.R,2,this,"dmaRead",m),qj(this.R,2)))):(m=e,m.mb=72,m.ua&&(m.ua.pe?m.mb=576:(m.Wa=null,m.mb=0,this.R&&(uj(this.R,2,this,"dmaWrite",m),qj(this.R,2)))));wm(this,e,c,d,f,g,h,k);d=!0;break;case 7:f=tm(this);this.Qa=f&3;e=this.B[this.Qa];e.wb=e.td=0;e.mb=268435488;um(this);d=!0;break;case 8:e=this.B[this.Qa];e.Ya=0;um(this);vm(this,e.Qa|e.Ya<<2|e.mb&255);vm(this,e.wb);this.Qa=this.Qa+1&3;break;case 10:f=tm(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.wb;g=e.Ya=d;h=
e.ob=1;k=0;e.mb=0;e.ua&&(e.Wa=e.ua.seek(e.wb,e.Ya,e.ob))?k=e.Wa.length>>8:e.mb=72;wm(this,e,c,d,f,g,h,k);d=!0;break;case 13:f=tm(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.wb;g=e.Ya=d;h=1;k=tm(this);e.ub=128<<k;e.ud=tm(this);tm(this);e.Gh=tm(this);m=e;m.mb=72;m.ua&&(m.Wa=null,m.mb=0,this.R&&(m.ge=0,m.Mc=Array(4),m.eg=!0,m.xf=0,uj(this.R,2,this,"dmaFormat",m),qj(this.R,2),m.eg=!1));wm(this,e,c,d,f,g,h,k);d=!0;break;case 15:f=tm(this),this.Qa=f&3,e=this.B[this.Qa],e.Ya=f>>2&1,f=tm(this),e.wb+=
f-e.td,0>e.wb&&(e.wb=0),e.wb>=e.kb&&(e.wb=e.kb-1),e.td=f,e.mb=32,e.wb||(e.mb|=268435456),um(this),d=!0}0<this.D&&(this.Z|=80);this.S&8&&(!e||e.mb&8||!d||this.R&&Se(this.R,6))}};l.ik=function(){var a=this.L;this.L&=-129;return a};l.tl=function(a,b){this.H=b};function wm(a,b,c,d,e,f,g,h){um(a);vm(a,b.Qa|b.Ya<<2|b.mb&255);vm(a,(b.mb&65280)>>>8);vm(a,(b.mb&16711680)>>>16);var k=0;if(e!=b.wb||f!=b.Ya)k=g=1;c&128&&(f^=k,d||(k=0));vm(a,e+k);vm(a,f);vm(a,g);vm(a,h)}
function tm(a){var b=a.I[a.G];a.G++;return b}function um(a){a.G=a.D=0}function vm(a,b){a.I[a.D++]=b}l.qj=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.mb&&a.ua){do{if(a.Wa&&(e=a.Ta,0<=(b=a.ua.read(a.Wa,a.Ta++)))){d=a.Wa;break}a.Wa=a.ua.seek(a.wb,a.Ya,a.ob);if(!a.Wa){a.mb=1088;break}a.Ta=0;xm(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};l.rj=function(a,b){return void 0!==b&&0<=b?ym(a,b):-1};
l.Cj=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.mb)c=-1;else{a.Mc[a.ge++]=c;if(a.ge==a.Mc.length){a.wb=a.Mc[0];a.Ya=a.Mc[1];a.ob=a.Mc[2];a.ub=128<<a.Mc[3];for(var d=a.ge=0;d<a.ub;d++)if(0>ym(a,a.Gh)){c=-1;break a}a.xf++}a.xf>=a.ud&&(c=-1)}else c=-1;return c};function ym(a,b){if(a.mb||!a.ua)return-1;do{if(a.Wa&&a.ua.write(a.Wa,a.Ta++,b))break;a.Wa=a.ua.seek(a.wb,a.Ya,a.ob);if(!a.Wa){a.mb=8256;b=-1;break}a.Ta=0;xm(a)}while(1);return b}
function xm(a){a.ob++;a.ob>=a.Ve+1&&(a.ob=1,a.Ya++,a.Ya>=a.Ue&&(a.Ya=0,a.wb++))}var lm={1012:fm.prototype.jk,1013:fm.prototype.hk,1015:fm.prototype.ik},mm={1010:fm.prototype.vl,1013:fm.prototype.ul,1015:fm.prototype.tl};Ea(function(){for(var a=Za(document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new fm(d);Ya(d,c)}});
l.toJSON=function(){var a;a=0;for(var b;b=Zl(this,a++);)fm(b);a=JSON.stringify(this.A,function(a,b){return"file"==a?void 0:b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function fm(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function gm(a){Ia.call(this,"FDC",a,gm);this.dmaRead=this.qj;this.dmaWrite=this.rj;this.dmaFormat=this.Cj;this.K=a.autoMount||null;this.C=[];this.W=!ya("Mobi")&&window&&"FileReader"in window}Qa(gm);aa={};
var hm={3:{dd:3,vd:0,name:aa.Bm},4:{dd:2,vd:1,name:aa.zm},5:{dd:9,vd:7,name:aa.Jm},6:{dd:9,vd:7,name:aa.um},7:{dd:2,vd:0,name:aa.wm},8:{dd:1,vd:2,name:aa.Am},10:{dd:2,vd:7,name:aa.vm},13:{dd:6,vd:7,name:aa.hm},15:{dd:3,vd:0,name:aa.ym}};l=gm.prototype;
l.zb=function(a,b,c){var d=this;switch(b){case "listDisks":return this.ja[b]=c,c.onchange=function(){var a=d.ja.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){n("FDC option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.ja[b]=c,c.onchange=function(){var a=da(c.value,10);null!=a&&im(d,a)},!0;
case "loadDrive":return this.ja[b]=c,c.onclick=function(){var a=d.ja.listDisks;a&&jm(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.W){c.parentNode.removeChild(c);break}this.ja[b]=c;c.onclick=function(){var a=d.ja.listDrives;if(a&&a.options&&d.B)if(a=da(a.value,10),a=d.B[a])if(a.ua){for(var b=a.ua,c="",h=0,k;k=Zl(b,h++);)for(var m=0,q=k.length;m<q;m++)c+=String.fromCharCode($l(b,k,m));a=za(btoa(c),"octet-stream",!0,a.ua.gj.replace(".json",".img"));n(a)}else d.Ba("No disk loaded in drive");
else d.Ba("No drive selected")};return!0;case "mountDrive":if(!this.W){c.parentNode.removeChild(c);break}this.ja[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;jm(d,fa(b,!0),b,a)}return!1};return!0}return!1};
l.mc=function(a,b,c,d){this.ha=b;this.A=c;this.Oa=d;this.oa=a;this.R=jb(a,"ChipSet");if((this.K=km(this.oa,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){n("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}lm(this);Mb(b,this,mm);Ob(b,this,nm);this.W&&om(this,"Local Disk","?");om(this,"Remote Disk","??");pm(this)||p(this)};
l.Tb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.oa.lg){this.C=[];for(var c=0;c<this.B.length;c++)qm(this,c,!0);pm(this,!0)}}else if(!this.restore(a))return!1;if(c=this.ja.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.textContent="";for(var d=0;d<this.Y;d++){var e=document.createElement("option");e.value=d;e.textContent=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.Y&&(c.value="0",im(this,0))}}return!0};l.Sb=function(a){return a?this.save():!0};l.reset=function(){lm(this)};
l.save=function(){var a=new be(this),b=0,c=[];c[b++]=this.Qa;c[b++]=0;c[b++]=this.Z;c[b++]=this.I;c[b++]=this.G;c[b++]=this.D;c[b++]=this.S;for(var d=b++,e=0,f=[],g=0;g<this.B.length;g++){var h=e++,k=this.B[g],m=0,q=[];q[m++]=k.mb;q[m++]=[k.name,k.kb,k.lb,k.eb,k.pb,k.me,k.Jf,k.Ue,k.Ve];q[m++]=k.Ya;q[m++]=k.td+100;q[m++]=k.wb;q[m++]=k.ob;q[m++]=k.ud;q[m++]=k.ub;q[m++]=k.Ta;q[m++]=k.ke;q[m++]=k.hj;q[m]=k.Td;f[h]=q}c[d]=f;d=b++;for(e=0;e<this.B.length;e++)f=this.B[e],f.ua&&rm(this,f.Td,f.ua);c[d]=this.C;
c[b++]=this.L;c[b]=this.H;D(a,0,c);return a.data()};l.restore=function(a){return lm(this,a[0])};
function lm(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.Qa=b[c++];c++;a.Z=b[c++];a.I=b[c++];a.G=b[c++];a.D=b[c++];a.S=b[c++];var f=b[c++];d=b[c++];null!=d&&(a.C=d);void 0===a.B&&(a.Y=4,a.R&&(a.Y=dj(a.R)),a.B=Array(4));for(d=0;d<a.B.length;d++){var g=a.B[d];if(void 0===g){var g=a.B[d]={},h;if(a.R)a:{h=a.R;if(d<dj(h)){if(!h.aa){h=360;break a}if(d<h.aa.length){h=h.aa[d];break a}}h=0}else h=0;switch(h){case 160:case 180:g.lb=1;default:g.kb=40;g.eb=9;break;case 720:g.kb=80;g.eb=9;
break;case 1200:g.kb=80;g.eb=15;break;case 1440:g.kb=80,g.eb=18}}var k=a,m=d,q=f[d],x=0;h=!0;g.Qa=m;g.Nc=g.ke=!1;void 0===q&&(q=[192,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=["Floppy Drive",g.kb||40,g.lb||q[3],g.eb||9,g.pb||512,q[1],g.Jf,g.Ue,g.Ve]);g.mb=q[x++];var r=q[x++];g.name=r[0];g.kb=r[1];g.lb=r[2];g.eb=r[3];g.pb=r[4];g.me=r[5];(g.Jf=r[6])?(g.Ue=r[7],g.Ve=r[8]):(g.Jf=g.kb,g.Ue=g.lb,g.Ve=g.eb);g.Ya=q[x++];g.td=q[x++];g.wb=q[x++];g.td=100<=g.td?g.td-100:g.td-g.wb;g.ob=q[x++];g.ud=q[x++];g.ub=
q[x++];g.Ta=q[x++];g.Wa=null;g.ua||(g.Td="");r=q[x++];102==r&&(r=!1);if("boolean"==typeof r){var z=r,r=q[x++],q=q[x];z?(x=r,r=k.B[m],qm(k,m,!0,!0),r.ke=!0,m=new Rl(k,r,"preload"),k.Nh(r,m,x,q,!0)):sm(k,m,r,q,!0)?g.ua&&q&&tm(k,r,q,g.ua):p(k,!1)}else void 0!==r&&g.ua&&0>g.ua.restore(r)&&(h=!1);h&&g.ua&&void 0!==g.Ta&&(g.Wa=g.ua.seek(g.wb,g.Ya,g.ob));h||(e=!1)}a.L=b[c++]||0;a.H=b[c]||0;return e}
function pm(a,b){b||(a.P=0);if(a.K)for(var c in a.K){var d=a.K[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.ja.listDisks)&&f.options)for(var g=0;g<f.options.length;g++)if(f.options[g].value==e){f=f.options[g].innerText;break a}f=fa(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.B.length)){!sm(a,g,f,e,!0)&&b&&p(a,!1);continue}a.Ba("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.P}
function jm(a,b,c,d){var e,f=a.ja.listDrives;if(f&&!isNaN(e=da(f.value,10))&&0<=e&&e<a.B.length)if(c)if("?"==c)a.Ba('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=fa(c)}for(;sm(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var f=a,g=c,h=void 0,h=0;h<f.C.length;h++)if(f.C[h][1]==g){f.C.splice(h,1);break}qm(a,
e,!1,!0)}}else qm(a,e);else a.Ba("Unable to load the selected drive")}function sm(a,b,c,d,e,f){var g=a.B[b];if(d&&g.Td!=d){qm(a,b,e,!0);if(g.Nc)return a.Ba("Drive "+b+" busy"),!0;g.Nc=!0;e&&(g.Kd=!0,a.P++);g.ke=!!f;if(!(new Rl(a,g,"preload")).load(c,d,f,a.Nh))return!1}return!0}
l.Nh=function(a,b,c,d,e){var f;a.Nc=!1;b&&(f=b.info(),b&&f[0]>a.kb||f[1]>a.lb)&&(this.Ba('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Qa)),b=null);b?(a.ua=b,a.hj=c,a.Td=d,tm(this,c,d,b),f=b.info(),this.L|=128,this.Ba('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Qa),a.Kd||e),a.Jf=f[0],a.Ue=f[1],a.Ve=f[2]):a.ke=!1;a.Kd&&(a.Kd=!1,--this.P||p(this));im(this,a.Qa)};
function om(a,b,c){if((a=a.ja.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}
function im(a,b){if(0<=b&&b<a.B.length){var c=a.B[b],d=a.ja.listDisks,e=a.ja.listDrives;if(d&&e&&d.options&&e.options&&(e=da(e.value,10),c=c.ke?"?":c.Td,!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}function qm(a,b,c,d){var e=a.B[b];e.ua&&(rm(a,e.Td,e.ua),e.hj="",e.Td="",e.ua=null,e.ke=!1,a.L|=128,d||a.Ba("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||im(a,b))}
function tm(a,b,c,d){var e;for(e=0;e<a.C.length;e++)if(a.C[e][1]==c){d.restore(a.C[e][2]);return}a.C[e]=[b,c,[]]}function rm(a,b,c){var d;for(d=0;d<a.C.length;d++)if(a.C[d][1]==b){a.C[d][2]=c.save();break}}l.vl=function(a,b){b&4?this.S&4||this.S&8&&this.R&&Se(this.R,6):lm(this);this.S=b};l.jk=function(){return this.Z};l.hk=function(){var a=0;this.G<this.D&&(a=this.I[this.G]);this.S&8&&this.R&&Re(this.R,6);++this.G>=this.D&&(this.Z&=-81,this.G=this.D=0);return a};
l.ul=function(a,b){this.D<this.I.length&&(this.I[this.D++]=b);var c=this.I[0]&31;if(void 0!==hm[c]&&this.D>=hm[c].dd){var d=!1;this.G=0;var c=um(this),e,f,g,h,k,m=c&31;switch(m){case 3:um(this);um(this);vm(this);break;case 4:f=um(this);this.Qa=f&3;e=this.B[this.Qa];vm(this);wm(this,(e.mb&-16777216)>>>24);break;case 5:case 6:f=um(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];e.Ya=d;f=e.wb=um(this);g=um(this);h=e.ob=um(this);k=um(this);e.ub=128<<k;e.ud=um(this);um(this);um(this);6==m?(m=e,m.mb=72,m.ua&&
(m.Wa=null,m.mb=0,this.R&&(uj(this.R,2,this,"dmaRead",m),qj(this.R,2)))):(m=e,m.mb=72,m.ua&&(m.ua.pe?m.mb=576:(m.Wa=null,m.mb=0,this.R&&(uj(this.R,2,this,"dmaWrite",m),qj(this.R,2)))));xm(this,e,c,d,f,g,h,k);d=!0;break;case 7:f=um(this);this.Qa=f&3;e=this.B[this.Qa];e.wb=e.td=0;e.mb=268435488;vm(this);d=!0;break;case 8:e=this.B[this.Qa];e.Ya=0;vm(this);wm(this,e.Qa|e.Ya<<2|e.mb&255);wm(this,e.wb);this.Qa=this.Qa+1&3;break;case 10:f=um(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.wb;g=e.Ya=d;h=
e.ob=1;k=0;e.mb=0;e.ua&&(e.Wa=e.ua.seek(e.wb,e.Ya,e.ob))?k=e.Wa.length>>8:e.mb=72;xm(this,e,c,d,f,g,h,k);d=!0;break;case 13:f=um(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.wb;g=e.Ya=d;h=1;k=um(this);e.ub=128<<k;e.ud=um(this);um(this);e.Gh=um(this);m=e;m.mb=72;m.ua&&(m.Wa=null,m.mb=0,this.R&&(m.ge=0,m.Mc=Array(4),m.eg=!0,m.xf=0,uj(this.R,2,this,"dmaFormat",m),qj(this.R,2),m.eg=!1));xm(this,e,c,d,f,g,h,k);d=!0;break;case 15:f=um(this),this.Qa=f&3,e=this.B[this.Qa],e.Ya=f>>2&1,f=um(this),e.wb+=
f-e.td,0>e.wb&&(e.wb=0),e.wb>=e.kb&&(e.wb=e.kb-1),e.td=f,e.mb=32,e.wb||(e.mb|=268435456),vm(this),d=!0}0<this.D&&(this.Z|=80);this.S&8&&(!e||e.mb&8||!d||this.R&&Se(this.R,6))}};l.ik=function(){var a=this.L;this.L&=-129;return a};l.tl=function(a,b){this.H=b};function xm(a,b,c,d,e,f,g,h){vm(a);wm(a,b.Qa|b.Ya<<2|b.mb&255);wm(a,(b.mb&65280)>>>8);wm(a,(b.mb&16711680)>>>16);var k=0;if(e!=b.wb||f!=b.Ya)k=g=1;c&128&&(f^=k,d||(k=0));wm(a,e+k);wm(a,f);wm(a,g);wm(a,h)}
function um(a){var b=a.I[a.G];a.G++;return b}function vm(a){a.G=a.D=0}function wm(a,b){a.I[a.D++]=b}l.qj=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.mb&&a.ua){do{if(a.Wa&&(e=a.Ta,0<=(b=a.ua.read(a.Wa,a.Ta++)))){d=a.Wa;break}a.Wa=a.ua.seek(a.wb,a.Ya,a.ob);if(!a.Wa){a.mb=1088;break}a.Ta=0;ym(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};l.rj=function(a,b){return void 0!==b&&0<=b?zm(a,b):-1};
l.Cj=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.mb)c=-1;else{a.Mc[a.ge++]=c;if(a.ge==a.Mc.length){a.wb=a.Mc[0];a.Ya=a.Mc[1];a.ob=a.Mc[2];a.ub=128<<a.Mc[3];for(var d=a.ge=0;d<a.ub;d++)if(0>zm(a,a.Gh)){c=-1;break a}a.xf++}a.xf>=a.ud&&(c=-1)}else c=-1;return c};function zm(a,b){if(a.mb||!a.ua)return-1;do{if(a.Wa&&a.ua.write(a.Wa,a.Ta++,b))break;a.Wa=a.ua.seek(a.wb,a.Ya,a.ob);if(!a.Wa){a.mb=8256;b=-1;break}a.Ta=0;ym(a)}while(1);return b}
function ym(a){a.ob++;a.ob>=a.Ve+1&&(a.ob=1,a.Ya++,a.Ya>=a.Ue&&(a.Ya=0,a.wb++))}var mm={1012:gm.prototype.jk,1013:gm.prototype.hk,1015:gm.prototype.ik},nm={1010:gm.prototype.vl,1013:gm.prototype.ul,1015:gm.prototype.tl};Ea(function(){for(var a=Za(document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new gm(d);Ya(d,c)}});
function Z(a){Ia.call(this,"HDC",a,Z);this.dmaRead=this.sj;this.dmaWrite=this.tj;this.dmaWriteBuffer=this.Dj;this.dmaWriteFormat=this.Ej;this.fa=[];this.qa=a.drives;this.W="at"==a.type}Qa(Z);
var zm=["XTC","ATC","COMPAQ"],Am=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7],16:[612,4],17:[977,5],18:[977,7],19:[1024,7],20:[733,5],21:[733,7],22:[733,5],23:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[1023,8],5:[940,6],6:[697,5],7:[462,8],8:[925,5],9:[900,15],10:[980,5],11:[925,7],12:[925,9],13:[612,8],14:[980,4],16:[612,4],17:[980,5],18:[966,6],19:[1023,
var Am=["XTC","ATC","COMPAQ"],Bm=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7],16:[612,4],17:[977,5],18:[977,7],19:[1024,7],20:[733,5],21:[733,7],22:[733,5],23:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[1023,8],5:[940,6],6:[697,5],7:[462,8],8:[925,5],9:[900,15],10:[980,5],11:[925,7],12:[925,9],13:[612,8],14:[980,4],16:[612,4],17:[980,5],18:[966,6],19:[1023,
8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}];l=Z.prototype;l.zb=function(){return!1};
l.mc=function(a,b,c,d){this.ha=b;this.A=c;this.Oa=d;this.oa=a;if(d=jm(a,"drives"))this.fa=d;else if(this.qa)try{this.fa=eval("("+this.qa+")")}catch(e){n("HDC drive configuration error: "+e.message+" ("+this.qa+")")}this.R=jb(a,"ChipSet");this.H=0;this.sa=3;Mb(b,this,this.W?Bm:Cm);Ob(b,this,this.W?Dm:Em);this.W&&(this.H++,this.R&&5180==this.R.ba&&this.H++,this.sa=2,b.R[496]=2,b.S[496]=2);Yd(c,19,this.Ok.bind(this));Yd(c,64,this.Pk.bind(this));this.reset();Fm(this)||p(this)};
l.Tb=function(a,b){if(!b)if(!a||!this.restore)Gm(this),this.oa.lg&&Fm(this,!0);else if(!this.restore(a))return!1;return!0};l.Sb=function(a){return a?this.save():!0};l.qe=function(){return this.oa?this.oa.qe():""};l.xd=function(){return this.oa?this.oa.xd():""};l.reset=function(){Gm(this,null,!0)};
l.mc=function(a,b,c,d){this.ha=b;this.A=c;this.Oa=d;this.oa=a;if(d=km(a,"drives"))this.fa=d;else if(this.qa)try{this.fa=eval("("+this.qa+")")}catch(e){n("HDC drive configuration error: "+e.message+" ("+this.qa+")")}this.R=jb(a,"ChipSet");this.H=0;this.sa=3;Mb(b,this,this.W?Cm:Dm);Ob(b,this,this.W?Em:Fm);this.W&&(this.H++,this.R&&5180==this.R.ba&&this.H++,this.sa=2,b.R[496]=2,b.S[496]=2);Yd(c,19,this.Ok.bind(this));Yd(c,64,this.Pk.bind(this));this.reset();Gm(this)||p(this)};
l.Tb=function(a,b){if(!b)if(!a||!this.restore)Hm(this),this.oa.lg&&Gm(this,!0);else if(!this.restore(a))return!1;return!0};l.Sb=function(a){return a?this.save():!0};l.qe=function(){return this.oa?this.oa.qe():""};l.xd=function(){return this.oa?this.oa.xd():""};l.reset=function(){Hm(this,null,!0)};
l.save=function(){var a=new be(this),b=0,c=[];this.W?(c[b++]=this.K,c[b++]=this.za,c[b++]=this.L,c[b++]=this.na,c[b++]=this.la,c[b++]=this.ia,c[b++]=this.aa,c[b++]=this.Z,c[b++]=this.pa,c[b++]=[this.S,this.Qa]):(c[b++]=this.ca,c[b++]=this.Z,c[b++]=this.I,c[b++]=this.G,c[b++]=this.D,c[b++]=this.xa,c[b++]=this.va,c[b++]=this.ta,c[b++]=this.Y);for(var d=0,e=[],f=0;f<this.B.length;f++){var g=d++,h=this.B[f],k=0,m=[];m[k++]=h.errorCode;m[k++]=h.ij;m[k++]=h.me;m[k++]=h.be;m[k++]=h.ce;m[k++]=h.Ya;m[k++]=
h.lb;m[k++]=h.Fd;m[k++]=h.ob;m[k++]=h.ud;m[k++]=h.ub;m[k++]=h.Ta;m[k]=h.ua?h.ua.save():null;e[g]=m}c[b]=e;D(a,0,c);return a.data()};l.restore=function(a){return Gm(this,a[0])};
function Gm(a,b,c){var d=0,e=!0;a.Qa=-1;if(a.W){if(null==b&&(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.K=b[d++],a.za=b[d++],a.L=b[d++],a.na=b[d++],a.la=b[d++],a.ia=b[d++],a.aa=b[d++],a.Z=b[d++],a.pa=b[d++],a.S=b[d++],"object"==typeof a.S){var f=a.S;a.S=f[0];a.Qa=f[1]}}else null==b&&(b=[0,0,Array(14),0,0]),a.ca=b[d++],a.Z=b[d++],a.I=b[d++],a.G=b[d++],a.D=b[d++],a.xa=b[d++],a.va=b[d++],a.ta=b[d++],f=b[d++],void 0!==f?a.Y=f:void 0===a.Y&&(a.Y=-1);void 0===a.B&&(a.B=Array(a.fa.length));b=b[d];void 0===b&&(b=[]);
h.lb;m[k++]=h.Fd;m[k++]=h.ob;m[k++]=h.ud;m[k++]=h.ub;m[k++]=h.Ta;m[k]=h.ua?h.ua.save():null;e[g]=m}c[b]=e;D(a,0,c);return a.data()};l.restore=function(a){return Hm(this,a[0])};
function Hm(a,b,c){var d=0,e=!0;a.Qa=-1;if(a.W){if(null==b&&(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.K=b[d++],a.za=b[d++],a.L=b[d++],a.na=b[d++],a.la=b[d++],a.ia=b[d++],a.aa=b[d++],a.Z=b[d++],a.pa=b[d++],a.S=b[d++],"object"==typeof a.S){var f=a.S;a.S=f[0];a.Qa=f[1]}}else null==b&&(b=[0,0,Array(14),0,0]),a.ca=b[d++],a.Z=b[d++],a.I=b[d++],a.G=b[d++],a.D=b[d++],a.xa=b[d++],a.va=b[d++],a.ta=b[d++],f=b[d++],void 0!==f?a.Y=f:void 0===a.Y&&(a.Y=-1);void 0===a.B&&(a.B=Array(a.fa.length));b=b[d];void 0===b&&(b=[]);
for(d=0;d<a.B.length;d++){void 0===a.B[d]&&(a.B[d]={});var f=a.B[d],g=a,h=d,k=f,m=a.fa[d],q=b[d],x=c,r=0,z=!0;void 0===q&&(q=[0,0,!1,Array(8)]);k.Qa=h;k.errorCode=q[r++];k.ij=q[r++];k.me=q[r++];k.be=q[r++];k.ce=q[r++];k.Ya=q[r++];k.lb=q[r++];k.Fd=q[r++];k.ob=q[r++];k.ud=q[r++];k.ub=q[r++];k.wf=g.W?0:1;k.name=m.name;void 0===k.name&&(k.name="Hard Drive");k.path=m.path;k.mode=m.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||g.xd()||(k.mode="local");k.type=m.type;if(void 0===
k.type||void 0===Am[g.H][k.type])k.type=g.sa;m=Am[g.H][k.type];k.cb=m[2]||17;k.pb=m[3]||512;if(x&&g.R){var E=g.R,J=k.type;if(E.B){var x=null,m=void 0,U=E.B[18];15<J&&(x=J,J=15);h?(U=U&240|J,m=26):(U=U&15|J<<4,m=25);J=E;J.B&&(J.B[18]=U,Wi(J));null!=x&&E.B&&(E.B[m]=x,Wi(E))}}void 0===k.ua&&(k.ua=null,g.Ba("Type "+k.type+' "'+k.name+'" is fixed disk '+h,!0));Hm(g,k);k.Ta=q[r++];k.Wa=null;k.ua&&(g=q[r],void 0!==g&&0>k.ua.restore(g)&&(z=!1),z&&void 0!==k.Ta&&(k.Wa=k.ua.seek(k.Fd,k.Ya,k.ob+k.wf)));z||(e=
!1);null!=a.ca&&1>=d&&(a.ca|=(f.type&3)<<(1-d<<1))}0<=a.Qa&&(a.C=a.B[a.Qa]);return e}function Hm(a,b,c){if(b){var d=0,e=0;null==c&&((d=b.be[2])?e=b.be[0]<<8|b.be[1]:c=b.type);null==c||d||(d=Am[a.H][c][1],e=Am[a.H][c][0]);d&&((c=Am[a.H][b.type])&&e!=c[0]&&d!=c[1]&&a.Ba("Warning: drive parameters ("+e+","+d+") do not match drive type "+b.type+" ("+c[0]+","+c[1]+")"),b.kb=e,b.lb=d,null==b.ua&&(b.ua=new Rl(a,b,b.mode)))}}
function Fm(a,b){b||(a.P=0);for(var c=0;c<a.B.length;c++){var d=a.B[c];if(d.name&&d.path){if(!(b&&d.ua&&d.ua.Cf)){var e;e=a;var f=d.name,d=d.path,g=e.B[c];g.Nc?(e.Ba("Drive "+c+" busy"),e=!0):(g.Nc=!0,g.Kd=!0,e.P++,(g.ua||new Rl(e,g,g.mode)).load(f,d,null,e.Fj),e=!1);!e&&b&&p(a,!1)}}else b&&void 0!==d.type&&(d.ua=null,Hm(a,d,d.type))}return!!a.P}
l.Fj=function(a,b,c){a.Nc=!1;if(a.ua=b)this.Ba('Mounted disk "'+c+'" in drive '+String.fromCharCode(67+a.Qa),a.Kd),b=b.info(),b[0]==a.kb&&b[1]==a.lb&&b[2]==a.cb&&b[3]==a.pb||this.Ba("Warning: disk geometry ("+b[0]+":"+b[1]+":"+b[2]+") does not match "+zm[this.H]+" drive type "+a.type+" ("+a.kb+":"+a.lb+":"+a.cb+")");a.Kd&&(a.Kd=!1,--this.P||p(this))};l.Lk=function(){var a=0;this.G<this.D&&(a=this.I[this.G]);this.R&&Re(this.R,5);this.Z&=-33;++this.G>=this.D&&(this.G=this.D=0,this.Z&=-15);return a};
l.Tl=function(a,b){this.D<this.I.length&&(this.I[this.D++]=b);var c=12!=this.I[0]?6:this.I.length;6==this.D&&(this.Z&=-2);this.D>=c&&(this.Z|=2,this.Z&=-2,Im(this))};l.Mk=function(){var a=this.Z;this.G<this.D&&(this.Z|=1);return a};l.Wl=function(a,b){this.xa=b;this.R&&Re(this.R,5);Gm(this)};l.Kk=function(){return this.ca};l.Vl=function(a,b){this.va=b;this.Z=13};l.Ul=function(a,b){this.ta=b};l.jh=function(){};
function Jm(a){var b=-1;a.C&&(b=Km(a.C,function(){}),(1==a.C.Ta||a.C.Ta==a.C.pb)&&1<a.C.Ta&&(a.C.ub-=a.C.pb,a.L=a.L-1&255,a.C.ub>=a.C.pb?(a.Z=128,Km(a.C,function(b){0<=b?(Lm(a),a.R&&5180==a.R.ba&&(a.Z=0),a.Z|=88):(a.Z=1,a.K=16)},!1)):a.Z=80));return b}l.uj=function(){return Jm(this)|Jm(this)<<8};function Mm(a,b){a.C&&a.C.ub>=a.C.pb&&(0>Nm(a.C,b)?(a.Z=1,a.K=16):(1==a.C.Ta||a.C.Ta==a.C.pb)&&1<a.C.Ta&&(a.C.ub-=a.C.pb,a.L=a.L-1&255,Lm(a),a.Z=80,a.C.ub>=a.C.pb&&(a.Z|=8)))}
l.bl=function(a,b){Mm(this,b&255);Mm(this,b>>8&255)};l.Rj=function(){return this.K};l.gl=function(a,b){this.za=b};l.Tj=function(){return this.L};l.el=function(a,b){this.L=b};l.Uj=function(){return this.na};l.fl=function(a,b){this.na=b};l.Pj=function(){return this.la};l.al=function(a,b){this.la=b};l.Oj=function(){return this.ia};l.$k=function(a,b){this.ia=b};l.Qj=function(){return this.aa};l.cl=function(a,b){this.aa=b;this.Z=this.B[this.aa&16?1:0]?this.Z|80:this.Z&-65};
l.Vj=function(){var a=this.Z;this.Z&64&&(this.Z&=-129);return a};l.Zk=function(a,b){this.pa=b;this.R&&Re(this.R,14);Om(this)};l.dl=function(a,b){this.S&4&&!(b&4)&&(this.K=1);this.S=b};
function Om(a){var b=!1,c=a.pa,d=a.aa&16?1:0,e=a.aa&15,f=a.la|(a.ia&3)<<8,g=a.na,h=a.L||256;a.Qa=-1;a.C=null;a.K=0;a.Z=80;var k=a.B[d];k?(k.Fd=f,k.Ya=e,k.ob=g,k.ub=h*k.pb,c=144<=c?c:c&240,k.Wa=null,k.Ta=0,k.errorCode=0,a.Qa=d,a.C=k):c=-1;switch(c&240){case 16:b=!0;break;case 32:a.Z=128;Km(k,function(b){0<=b&&a.R?(Lm(a),a.Z=88):(a.Z=1,a.K=16)},!1);break;case 48:a.Z=8;break;case 64:b=!0;break;case 112:b=!0;break;case 144:a.K=1;b=!0;break;case 145:k.lb=e+1,k.cb=h,b=!0}b&&Lm(a)}
function Lm(a){!a.R||a.S&2||Se(a.R,14,120)}
function Im(a){a.G=0;var b=Pm(a),c=Pm(a),d=c&32,e=d>>5,f=c&31,g=Pm(a),h=Pm(a),k=g<<2&768|h,m=g&63,q=Pm(a),x=Pm(a),r=a.B[e];r&&(r.Fd=k,r.Ya=f,r.ob=m,r.ub=q*r.pb);switch(b){case 3:Qm(a,r?r.errorCode:4);Um(a,c);Um(a,g);Um(a,h);Um(a,0|d);b=-1;break;case 12:for(c=0;0<=(b=Pm(a));)r&&c<r.be.length&&(r.be[c++]=b);r&&Hm(a,r);b=0;r||a.Y!=e||(a.Y=-1,b=2);Qm(a,b|d);b=-1;break;case 224:case 228:Qm(a,0|d),b=-1}if(0<=b)switch(void 0===r?b=-1:(r.errorCode=0,r.ij=0),b){case 0:Qm(a,0|d);break;case 1:r.Ie=x;Qm(a,0|
d);break;case 5:Qm(a,0|d);break;case 8:Vm(a,r,function(b){Qm(a,b|d)});break;case 10:Wm(a,r,function(b){Qm(a,b|d)});break;case 15:Xm(a,r,function(b){Qm(a,b|d)});break;default:Qm(a,2|d)}}function Pm(a){var b=-1;a.G<a.D&&(b=a.I[a.G++]);return b}function Qm(a,b){a.G=a.D=0;void 0!==b&&Um(a,b);a.R&&Se(a.R,5);a.Z|=32}function Um(a,b){a.I[a.D++]=b}l.sj=function(a,b,c){void 0===b||0>b?Km(a,c):c(-1,!1)};l.tj=function(a,b){return void 0!==b&&0<=b?Nm(a,b):-1};
l.Dj=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.Ta<a.ce.length?a.ce[a.Ta++]=c:(a.errorCode=20,c=-1)):c=-1;return c};l.Ej=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.errorCode)c=-1;else{a.Mc[a.ge++]=c;if(a.ge==a.Mc.length){a.Fd=a.Mc[0];a.Ya=a.Mc[1];a.ob=a.Mc[2];a.ub=128<<a.Mc[3];for(var d=a.ge=0;d<a.ub;d++)if(0>Nm(a,a.Gh)){c=-1;break a}a.xf++}a.xf>=a.ud&&(c=-1)}else c=-1;return c};
function Vm(a,b,c){b.errorCode=4;if(b.ua&&(b.Wa=null,a.R)){b.errorCode=0;uj(a.R,3,a,"dmaRead",b);qj(a.R,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}function Wm(a,b,c){b.errorCode=4;if(b.ua&&(b.Wa=null,a.R)){b.errorCode=0;uj(a.R,3,a,"dmaWrite",b);qj(a.R,3,function(a){a||(0==b.errorCode&&(b.errorCode=4),20==b.errorCode&&(b.errorCode=0));c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}
function Xm(a,b,c){b.errorCode=4;b.ce&&b.ce.length==b.ub||(b.ce=Array(b.ub));b.Ta=0;a.R?(b.errorCode=0,uj(a.R,3,a,"dmaWriteBuffer",b),qj(a.R,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)})):c(b.errorCode?2:0)}
function Km(a,b,c){var d=-1,e=null,f=0;if(a.errorCode)return b&&b(d,!1,e,f),d;var g=!1!==c?1:0;if(a.Wa&&(f=a.Ta,d=a.ua.read(a.Wa,a.Ta),a.Ta+=g,0<=d))return e=a.Wa,b&&b(d,!1,e,f),d;if(b){if(a.ua)return a.ua.seek(a.Fd,a.Ya,a.ob+a.wf,!1,function(c,k){(a.Wa=c)?(e=c,f=a.Ta=0,Ym(a),d=a.ua.read(a.Wa,a.Ta),a.Ta+=g):a.errorCode=20;b(d,k,e,f)}),d;a.errorCode=20;b(d,!1,e,f)}return d}
function Nm(a,b){if(a.errorCode)return-1;do{if(a.Wa&&a.ua.write(a.Wa,a.Ta++,b))break;a.ua&&a.ua.seek(a.Fd,a.Ya,a.ob+a.wf,!0,function(b){a.Wa=b});if(!a.Wa){a.errorCode=20;b=-1;break}a.Ta=0;Ym(a)}while(1);return b}function Ym(a){a.ob++;var b=1-a.wf;a.ob>=a.cb+b&&(a.ob=b,a.Ya++,a.Ya>=a.lb&&(a.Ya=0,a.Fd++))}l.Ok=function(){var a=this.A.M&255;!(this.A.J>>8)&&128<a&&(this.Y=a-128);return!0};l.Pk=function(){var a;(a=this.A.J>>8||!this.R)||(a=!(this.R.gc[0].Uc&64));return a?!0:!1};
var Cm={800:Z.prototype.Lk,801:Z.prototype.Mk,802:Z.prototype.Kk},Bm={496:Z.prototype.uj,497:Z.prototype.Rj,498:Z.prototype.Tj,499:Z.prototype.Uj,500:Z.prototype.Pj,501:Z.prototype.Oj,502:Z.prototype.Qj,503:Z.prototype.Vj},Em={800:Z.prototype.Tl,801:Z.prototype.Wl,802:Z.prototype.Vl,803:Z.prototype.Ul,807:Z.prototype.jh,811:Z.prototype.jh,815:Z.prototype.jh},Dm={496:Z.prototype.bl,497:Z.prototype.gl,498:Z.prototype.el,499:Z.prototype.fl,500:Z.prototype.al,501:Z.prototype.$k,502:Z.prototype.cl,503:Z.prototype.Zk,
1014:Z.prototype.dl};Ea(function(){for(var a=Za(document,"pcjs","hdc"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Z(d);Ya(d,c)}});function be(a,b,c){this.id=a.id;this.key=Zm(a,b,c);this.Oa=a.Oa;$m(this,a.pj)}function Zm(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
be.prototype={constructor:be,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:va()&&(a=wa(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){$m(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==
this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};function $m(a,b){a[a.id]={};b&&D(a,"parms",b);a.A=!1}function an(a){var b=!0;if(va()){var c=JSON.stringify(a[a.id]);xa(a.key,c)||(n("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function bn(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){n(c.message||c),b=!1}return b}function cn(a,b){return a[a.id][b]||null}function D(a,b,c){try{a[a.id][b]=c}catch(d){}}
function dn(a,b,c){Ia.call(this,"Computer",a,dn);this.da.Pb=!1;en(this,b);this.P=jm(this,"autoPower",a);this.D=0;this.ca=a.busWidth||a.buswidth;this.B=fn;this.L=null;this.H=this.aa=!1;this.oa=jm(this,"url")||"";this.fa=(Math.random()+.1).toString(36).substr(2,12);this.C=gn(this);if(this.A=Va("CPU",this.id)){this.Oa=Va("Debugger",this.id);this.ha=new qb({id:this.mf+".bus",buswidth:this.ca},this.A,this.Oa);var d,e=Ta(this.id);if((this.md=Va("Panel",this.id))&&this.md.hg)for(b=0;b<e.length;b++)d=e[b],
d.Ba=this.md.Ba,d.oc=this.md.oc,d.hg=this.md.hg;for(b=0;b<e.length;b++)d=e[b],d.mc&&d.mc(this,this.ha,this.A,this.Oa);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.B=parseInt(d,10));var f;if(a=La&&La.state||jm(this,"state")||(f=!0,a.state))b=this.S=a,f||(this.H=!0,this.B=fn),this.B&&(this.R=new be(this,hn),this.R.load()?b=null:delete this.R);!b&&this.B&&(b=jn(this))&&(this.H=!0);if(b){var g=this;pa(b,null,!0,function(a,b,c){c?(g.K=null,g.H=!1,g.Ba("Unable to load machine state from server (error "+
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.L=b,g.aa=!0);p(g)})}else p(this);this.ja.power||(this.P=!0);!c&&this.P&&kn(this,this.ef)}else n("Unable to find CPU component")}Qa(dn);var hn="1.21.1",fn=0;l=dn.prototype;l.qe=function(){return this.fa};function en(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){n(d.message+" ("+c+")")}}a.I=b}
function jm(a,b,c){var d;a.I&&(d=a.I[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}l.xd=function(){return this.C||""};function kn(a,b,c){for(var d=Ta(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ab(f)){ab(f,function(){kn(a,b,c)});return}}b.call(a,c)}
function ln(a,b){var c=new be(a,hn,"validate");if(c.load()&&bn(c)){var d=cn(c,"timestamp"),e=b?cn(b,"timestamp"):"unknown";d!=e&&(a.Ba("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
l.ef=function(a){void 0===a&&(a=this.B||(this.L?1:fn));if(!this.D){this.D++;var b=!1,c=!1;this.Y=!1;var d=this.R||new be(this,hn);if(-1==a)b=!0;else if(a>fn){if(d.load(this.L)){this.G=new be(this,hn,"failsafe");this.G.load()&&(mn(this,d),a=2,$m(this.G));D(this.G,"timestamp",la());an(this.G);var e=this.B&&!this.H;if(1==a||ra("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=bn(d)){var f=cn(d,"code"),g=cn(d,"data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.Ba("Error: "+g),"unable to verify user"==g&&(xa("user",""),this.C=null)):this.oc(f+": "+g),$m(d),d.load()?(c=bn(d),e=!0):c=!1))}e&&ln(this,c?d:null)}else 2==a&&d.clear()}else ln(this);delete this.L;delete this.R}e=Ta(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.A&&(c=nn(this,g,d,b,c));b=[d,a,c];-1!=a?kn(this,this.Oh,b):this.Oh(b)}};
function nn(a,b,c,d,e){if(!b.da.Pb){b.da.Pb=!0;if(b.Tb){var f=null;e&&((f=cn(c,b.id))||(f=cn(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Tb(f,d)&&f&&(n("Unable to restore state for "+b.type),a.S&&!a.aa?(c.clear(),a.B=fn,window&&window.location.reload()):a.Y=!0,b.Tb(null),e=!1)}if(!d&&b.Ah)for(a=b.Ah.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Oh=function(a){var b=a[0],c=0>a[1];a=a[2];this.da.Pb=!0;var d=this.ja.power;d&&(d.textContent="Shutdown");this.W||(this.oc("PCjs v"+hn+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.W=!0);this.A&&(nn(this,this.A,b,c,a),lc(this.A));this.Y&&(mn(this,b),b.clear());!c&&this.G&&(this.G.clear(),delete this.G);this.D=0};
function mn(a,b){if(ra("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.oa,d=a.xd(),e=b.toString(),f={app:"PCjs"};f.ver=hn;f.url=c;f.user=d;f.type="bug";f.data=e;pa("http://www.pcjs.org/api/v1/report",f,!0)}}
function on(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new be(a,hn),g=new be(a,hn,"validate"),h=la();D(g,"timestamp",h);D(f,"timestamp",h);D(f,"version","1.21.1");D(f,"url",window?window.location.href:null);D(f,"browser",window?window.navigator.userAgent:"");a.A&&a.A.Sb&&(c&&oc(a.A),d=a.A.Sb(b,c),"object"===typeof d&&D(f,a.A.id,d),c&&(a.A.da.Pb=!1,!1===d&&(e=null)));for(var h=Ta(a.id),k=0;k<h.length;k++){var m=h[k];m.da.Pb&&(m.Sb&&(d=m.Sb(b,c),"object"===typeof d&&D(f,m.id,d)),c&&(m.da.Pb=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.C&&pn(a,a.C,f.toString()),an(g)&&an(f)||(e=null,d=h=!0)):a.B&&(d=!0,h=3==a.B),d&&f.clear(h)):e=f.toString());c&&(a.da.Pb=!1,b=a.ja.power)&&(b.textContent="Power");a.D=0;return e}l.reset=function(){this.ha&&this.ha.reset&&this.ha.reset();for(var a=Ta(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ha&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=Ta(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
k.type||void 0===Bm[g.H][k.type])k.type=g.sa;m=Bm[g.H][k.type];k.eb=m[2]||17;k.pb=m[3]||512;if(x&&g.R){var E=g.R,J=k.type;if(E.B){var x=null,m=void 0,U=E.B[18];15<J&&(x=J,J=15);h?(U=U&240|J,m=26):(U=U&15|J<<4,m=25);J=E;J.B&&(J.B[18]=U,Wi(J));null!=x&&E.B&&(E.B[m]=x,Wi(E))}}void 0===k.ua&&(k.ua=null,g.Ba("Type "+k.type+' "'+k.name+'" is fixed disk '+h,!0));Im(g,k);k.Ta=q[r++];k.Wa=null;k.ua&&(g=q[r],void 0!==g&&0>k.ua.restore(g)&&(z=!1),z&&void 0!==k.Ta&&(k.Wa=k.ua.seek(k.Fd,k.Ya,k.ob+k.wf)));z||(e=
!1);null!=a.ca&&1>=d&&(a.ca|=(f.type&3)<<(1-d<<1))}0<=a.Qa&&(a.C=a.B[a.Qa]);return e}function Im(a,b,c){if(b){var d=0,e=0;null==c&&((d=b.be[2])?e=b.be[0]<<8|b.be[1]:c=b.type);null==c||d||(d=Bm[a.H][c][1],e=Bm[a.H][c][0]);d&&((c=Bm[a.H][b.type])&&e!=c[0]&&d!=c[1]&&a.Ba("Warning: drive parameters ("+e+","+d+") do not match drive type "+b.type+" ("+c[0]+","+c[1]+")"),b.kb=e,b.lb=d,null==b.ua&&(b.ua=new Rl(a,b,b.mode)))}}
function Gm(a,b){b||(a.P=0);for(var c=0;c<a.B.length;c++){var d=a.B[c];if(d.name&&d.path){if(!(b&&d.ua&&d.ua.Cf)){var e;e=a;var f=d.name,d=d.path,g=e.B[c];g.Nc?(e.Ba("Drive "+c+" busy"),e=!0):(g.Nc=!0,g.Kd=!0,e.P++,(g.ua||new Rl(e,g,g.mode)).load(f,d,null,e.Fj),e=!1);!e&&b&&p(a,!1)}}else b&&void 0!==d.type&&(d.ua=null,Im(a,d,d.type))}return!!a.P}
l.Fj=function(a,b,c){a.Nc=!1;if(a.ua=b)this.Ba('Mounted disk "'+c+'" in drive '+String.fromCharCode(67+a.Qa),a.Kd),b=b.info(),b[0]==a.kb&&b[1]==a.lb&&b[2]==a.eb&&b[3]==a.pb||this.Ba("Warning: disk geometry ("+b[0]+":"+b[1]+":"+b[2]+") does not match "+Am[this.H]+" drive type "+a.type+" ("+a.kb+":"+a.lb+":"+a.eb+")");a.Kd&&(a.Kd=!1,--this.P||p(this))};l.Lk=function(){var a=0;this.G<this.D&&(a=this.I[this.G]);this.R&&Re(this.R,5);this.Z&=-33;++this.G>=this.D&&(this.G=this.D=0,this.Z&=-15);return a};
l.Tl=function(a,b){this.D<this.I.length&&(this.I[this.D++]=b);var c=12!=this.I[0]?6:this.I.length;6==this.D&&(this.Z&=-2);this.D>=c&&(this.Z|=2,this.Z&=-2,Jm(this))};l.Mk=function(){var a=this.Z;this.G<this.D&&(this.Z|=1);return a};l.Wl=function(a,b){this.xa=b;this.R&&Re(this.R,5);Hm(this)};l.Kk=function(){return this.ca};l.Vl=function(a,b){this.va=b;this.Z=13};l.Ul=function(a,b){this.ta=b};l.jh=function(){};
function Km(a){var b=-1;a.C&&(b=Lm(a.C,function(){}),(1==a.C.Ta||a.C.Ta==a.C.pb)&&1<a.C.Ta&&(a.C.ub-=a.C.pb,a.L=a.L-1&255,a.C.ub>=a.C.pb?(a.Z=128,Lm(a.C,function(b){0<=b?(Mm(a),a.R&&5180==a.R.ba&&(a.Z=0),a.Z|=88):(a.Z=1,a.K=16)},!1)):a.Z=80));return b}l.uj=function(){return Km(this)|Km(this)<<8};function Nm(a,b){a.C&&a.C.ub>=a.C.pb&&(0>Om(a.C,b)?(a.Z=1,a.K=16):(1==a.C.Ta||a.C.Ta==a.C.pb)&&1<a.C.Ta&&(a.C.ub-=a.C.pb,a.L=a.L-1&255,Mm(a),a.Z=80,a.C.ub>=a.C.pb&&(a.Z|=8)))}
l.bl=function(a,b){Nm(this,b&255);Nm(this,b>>8&255)};l.Rj=function(){return this.K};l.gl=function(a,b){this.za=b};l.Tj=function(){return this.L};l.el=function(a,b){this.L=b};l.Uj=function(){return this.na};l.fl=function(a,b){this.na=b};l.Pj=function(){return this.la};l.al=function(a,b){this.la=b};l.Oj=function(){return this.ia};l.$k=function(a,b){this.ia=b};l.Qj=function(){return this.aa};l.cl=function(a,b){this.aa=b;this.Z=this.B[this.aa&16?1:0]?this.Z|80:this.Z&-65};
l.Vj=function(){var a=this.Z;this.Z&64&&(this.Z&=-129);return a};l.Zk=function(a,b){this.pa=b;this.R&&Re(this.R,14);Pm(this)};l.dl=function(a,b){this.S&4&&!(b&4)&&(this.K=1);this.S=b};
function Pm(a){var b=!1,c=a.pa,d=a.aa&16?1:0,e=a.aa&15,f=a.la|(a.ia&3)<<8,g=a.na,h=a.L||256;a.Qa=-1;a.C=null;a.K=0;a.Z=80;var k=a.B[d];k?(k.Fd=f,k.Ya=e,k.ob=g,k.ub=h*k.pb,c=144<=c?c:c&240,k.Wa=null,k.Ta=0,k.errorCode=0,a.Qa=d,a.C=k):c=-1;switch(c&240){case 16:b=!0;break;case 32:a.Z=128;Lm(k,function(b){0<=b&&a.R?(Mm(a),a.Z=88):(a.Z=1,a.K=16)},!1);break;case 48:a.Z=8;break;case 64:b=!0;break;case 112:b=!0;break;case 144:a.K=1;b=!0;break;case 145:k.lb=e+1,k.eb=h,b=!0}b&&Mm(a)}
function Mm(a){!a.R||a.S&2||Se(a.R,14,120)}
function Jm(a){a.G=0;var b=Qm(a),c=Qm(a),d=c&32,e=d>>5,f=c&31,g=Qm(a),h=Qm(a),k=g<<2&768|h,m=g&63,q=Qm(a),x=Qm(a),r=a.B[e];r&&(r.Fd=k,r.Ya=f,r.ob=m,r.ub=q*r.pb);switch(b){case 3:Rm(a,r?r.errorCode:4);Vm(a,c);Vm(a,g);Vm(a,h);Vm(a,0|d);b=-1;break;case 12:for(c=0;0<=(b=Qm(a));)r&&c<r.be.length&&(r.be[c++]=b);r&&Im(a,r);b=0;r||a.Y!=e||(a.Y=-1,b=2);Rm(a,b|d);b=-1;break;case 224:case 228:Rm(a,0|d),b=-1}if(0<=b)switch(void 0===r?b=-1:(r.errorCode=0,r.ij=0),b){case 0:Rm(a,0|d);break;case 1:r.Ie=x;Rm(a,0|
d);break;case 5:Rm(a,0|d);break;case 8:Wm(a,r,function(b){Rm(a,b|d)});break;case 10:Xm(a,r,function(b){Rm(a,b|d)});break;case 15:Ym(a,r,function(b){Rm(a,b|d)});break;default:Rm(a,2|d)}}function Qm(a){var b=-1;a.G<a.D&&(b=a.I[a.G++]);return b}function Rm(a,b){a.G=a.D=0;void 0!==b&&Vm(a,b);a.R&&Se(a.R,5);a.Z|=32}function Vm(a,b){a.I[a.D++]=b}l.sj=function(a,b,c){void 0===b||0>b?Lm(a,c):c(-1,!1)};l.tj=function(a,b){return void 0!==b&&0<=b?Om(a,b):-1};
l.Dj=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.Ta<a.ce.length?a.ce[a.Ta++]=c:(a.errorCode=20,c=-1)):c=-1;return c};l.Ej=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.errorCode)c=-1;else{a.Mc[a.ge++]=c;if(a.ge==a.Mc.length){a.Fd=a.Mc[0];a.Ya=a.Mc[1];a.ob=a.Mc[2];a.ub=128<<a.Mc[3];for(var d=a.ge=0;d<a.ub;d++)if(0>Om(a,a.Gh)){c=-1;break a}a.xf++}a.xf>=a.ud&&(c=-1)}else c=-1;return c};
function Wm(a,b,c){b.errorCode=4;if(b.ua&&(b.Wa=null,a.R)){b.errorCode=0;uj(a.R,3,a,"dmaRead",b);qj(a.R,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}function Xm(a,b,c){b.errorCode=4;if(b.ua&&(b.Wa=null,a.R)){b.errorCode=0;uj(a.R,3,a,"dmaWrite",b);qj(a.R,3,function(a){a||(0==b.errorCode&&(b.errorCode=4),20==b.errorCode&&(b.errorCode=0));c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}
function Ym(a,b,c){b.errorCode=4;b.ce&&b.ce.length==b.ub||(b.ce=Array(b.ub));b.Ta=0;a.R?(b.errorCode=0,uj(a.R,3,a,"dmaWriteBuffer",b),qj(a.R,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)})):c(b.errorCode?2:0)}
function Lm(a,b,c){var d=-1,e=null,f=0;if(a.errorCode)return b&&b(d,!1,e,f),d;var g=!1!==c?1:0;if(a.Wa&&(f=a.Ta,d=a.ua.read(a.Wa,a.Ta),a.Ta+=g,0<=d))return e=a.Wa,b&&b(d,!1,e,f),d;if(b){if(a.ua)return a.ua.seek(a.Fd,a.Ya,a.ob+a.wf,!1,function(c,k){(a.Wa=c)?(e=c,f=a.Ta=0,Zm(a),d=a.ua.read(a.Wa,a.Ta),a.Ta+=g):a.errorCode=20;b(d,k,e,f)}),d;a.errorCode=20;b(d,!1,e,f)}return d}
function Om(a,b){if(a.errorCode)return-1;do{if(a.Wa&&a.ua.write(a.Wa,a.Ta++,b))break;a.ua&&a.ua.seek(a.Fd,a.Ya,a.ob+a.wf,!0,function(b){a.Wa=b});if(!a.Wa){a.errorCode=20;b=-1;break}a.Ta=0;Zm(a)}while(1);return b}function Zm(a){a.ob++;var b=1-a.wf;a.ob>=a.eb+b&&(a.ob=b,a.Ya++,a.Ya>=a.lb&&(a.Ya=0,a.Fd++))}l.Ok=function(){var a=this.A.M&255;!(this.A.J>>8)&&128<a&&(this.Y=a-128);return!0};l.Pk=function(){var a;(a=this.A.J>>8||!this.R)||(a=!(this.R.gc[0].Uc&64));return a?!0:!1};
var Dm={800:Z.prototype.Lk,801:Z.prototype.Mk,802:Z.prototype.Kk},Cm={496:Z.prototype.uj,497:Z.prototype.Rj,498:Z.prototype.Tj,499:Z.prototype.Uj,500:Z.prototype.Pj,501:Z.prototype.Oj,502:Z.prototype.Qj,503:Z.prototype.Vj},Fm={800:Z.prototype.Tl,801:Z.prototype.Wl,802:Z.prototype.Vl,803:Z.prototype.Ul,807:Z.prototype.jh,811:Z.prototype.jh,815:Z.prototype.jh},Em={496:Z.prototype.bl,497:Z.prototype.gl,498:Z.prototype.el,499:Z.prototype.fl,500:Z.prototype.al,501:Z.prototype.$k,502:Z.prototype.cl,503:Z.prototype.Zk,
1014:Z.prototype.dl};Ea(function(){for(var a=Za(document,"pcjs","hdc"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new Z(d);Ya(d,c)}});function be(a,b,c){this.id=a.id;this.key=$m(a,b,c);this.Oa=a.Oa;an(this,a.pj)}function $m(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
be.prototype={constructor:be,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:va()&&(a=wa(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){an(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==
this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};function an(a,b){a[a.id]={};b&&D(a,"parms",b);a.A=!1}function bn(a){var b=!0;if(va()){var c=JSON.stringify(a[a.id]);xa(a.key,c)||(n("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function cn(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){n(c.message||c),b=!1}return b}function dn(a,b){return a[a.id][b]||null}function D(a,b,c){try{a[a.id][b]=c}catch(d){}}
function en(a,b,c){Ia.call(this,"Computer",a,en);this.da.Pb=!1;fn(this,b);this.P=km(this,"autoPower",a);this.D=0;this.ca=a.busWidth||a.buswidth;this.B=gn;this.L=null;this.H=this.aa=!1;this.oa=km(this,"url")||"";this.fa=(Math.random()+.1).toString(36).substr(2,12);this.C=hn(this);if(this.A=Va("CPU",this.id)){this.Oa=Va("Debugger",this.id);this.ha=new qb({id:this.mf+".bus",buswidth:this.ca},this.A,this.Oa);var d,e=Ta(this.id);if((this.md=Va("Panel",this.id))&&this.md.hg)for(b=0;b<e.length;b++)d=e[b],
d.Ba=this.md.Ba,d.oc=this.md.oc,d.hg=this.md.hg;for(b=0;b<e.length;b++)d=e[b],d.mc&&d.mc(this,this.ha,this.A,this.Oa);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.B=parseInt(d,10));var f;if(a=La&&La.state||km(this,"state")||(f=!0,a.state))b=this.S=a,f||(this.H=!0,this.B=gn),this.B&&(this.R=new be(this,jn),this.R.load()?b=null:delete this.R);!b&&this.B&&(b=kn(this))&&(this.H=!0);if(b){var g=this;pa(b,null,!0,function(a,b,c){c?(g.K=null,g.H=!1,g.Ba("Unable to load machine state from server (error "+
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.L=b,g.aa=!0);p(g)})}else p(this);this.ja.power||(this.P=!0);!c&&this.P&&ln(this,this.ef)}else n("Unable to find CPU component")}Qa(en);var jn="1.21.1",gn=0;l=en.prototype;l.qe=function(){return this.fa};function fn(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){n(d.message+" ("+c+")")}}a.I=b}
function km(a,b,c){var d;a.I&&(d=a.I[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}l.xd=function(){return this.C||""};function ln(a,b,c){for(var d=Ta(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ab(f)){ab(f,function(){ln(a,b,c)});return}}b.call(a,c)}
function mn(a,b){var c=new be(a,jn,"validate");if(c.load()&&cn(c)){var d=dn(c,"timestamp"),e=b?dn(b,"timestamp"):"unknown";d!=e&&(a.Ba("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
l.ef=function(a){void 0===a&&(a=this.B||(this.L?1:gn));if(!this.D){this.D++;var b=!1,c=!1;this.Y=!1;var d=this.R||new be(this,jn);if(-1==a)b=!0;else if(a>gn){if(d.load(this.L)){this.G=new be(this,jn,"failsafe");this.G.load()&&(nn(this,d),a=2,an(this.G));D(this.G,"timestamp",la());bn(this.G);var e=this.B&&!this.H;if(1==a||ra("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=cn(d)){var f=dn(d,"code"),g=dn(d,"data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.Ba("Error: "+g),"unable to verify user"==g&&(xa("user",""),this.C=null)):this.oc(f+": "+g),an(d),d.load()?(c=cn(d),e=!0):c=!1))}e&&mn(this,c?d:null)}else 2==a&&d.clear()}else mn(this);delete this.L;delete this.R}e=Ta(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.A&&(c=on(this,g,d,b,c));b=[d,a,c];-1!=a?ln(this,this.Oh,b):this.Oh(b)}};
function on(a,b,c,d,e){if(!b.da.Pb){b.da.Pb=!0;if(b.Tb){var f=null;e&&((f=dn(c,b.id))||(f=dn(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Tb(f,d)&&f&&(n("Unable to restore state for "+b.type),a.S&&!a.aa?(c.clear(),a.B=gn,window&&window.location.reload()):a.Y=!0,b.Tb(null),e=!1)}if(!d&&b.Ah)for(a=b.Ah.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Oh=function(a){var b=a[0],c=0>a[1];a=a[2];this.da.Pb=!0;var d=this.ja.power;d&&(d.textContent="Shutdown");this.W||(this.oc("PCjs v"+jn+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.W=!0);this.A&&(on(this,this.A,b,c,a),lc(this.A));this.Y&&(nn(this,b),b.clear());!c&&this.G&&(this.G.clear(),delete this.G);this.D=0};
function nn(a,b){if(ra("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.oa,d=a.xd(),e=b.toString(),f={app:"PCjs"};f.ver=jn;f.url=c;f.user=d;f.type="bug";f.data=e;pa("http://www.pcjs.org/api/v1/report",f,!0)}}
function pn(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new be(a,jn),g=new be(a,jn,"validate"),h=la();D(g,"timestamp",h);D(f,"timestamp",h);D(f,"version","1.21.1");D(f,"url",window?window.location.href:null);D(f,"browser",window?window.navigator.userAgent:"");a.A&&a.A.Sb&&(c&&oc(a.A),d=a.A.Sb(b,c),"object"===typeof d&&D(f,a.A.id,d),c&&(a.A.da.Pb=!1,!1===d&&(e=null)));for(var h=Ta(a.id),k=0;k<h.length;k++){var m=h[k];m.da.Pb&&(m.Sb&&(d=m.Sb(b,c),"object"===typeof d&&D(f,m.id,d)),c&&(m.da.Pb=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.C&&qn(a,a.C,f.toString()),bn(g)&&bn(f)||(e=null,d=h=!0)):a.B&&(d=!0,h=3==a.B),d&&f.clear(h)):e=f.toString());c&&(a.da.Pb=!1,b=a.ja.power)&&(b.textContent="Power");a.D=0;return e}l.reset=function(){this.ha&&this.ha.reset&&this.ha.reset();for(var a=Ta(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ha&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=Ta(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
l.stop=function(a,b){for(var c=Ta(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.zb=function(a,b,c){var d=this;switch(b){case "power":return this.ja[b]=c,c.onclick=function(){d.D||(d.da.Pb?on(d,!1,!0):kn(d,d.ef))},!0;case "reset":return this.ja[b]=c,c.onclick=function(){if(d.da.Pb&&!d.D)if(d.B&&!d.K){var a=ra("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");on(d,a,!0);!a&&d.S?window&&window.location.reload():(a||(d.lg=!0),d.ef(fn),d.lg=!1)}else d.reset(),d.A&&lc(d.A)},!0;case "save":if(ha(qa(),"pcjs.org")){c.parentNode.removeChild(c);
break}this.ja[b]=c;c.onclick=function(){var a=gn(d,!0);if(a){var b=!!(d.B&&!d.K||d.S),c=on(d,b);b?pn(d,a,c):d.Ba("Resume disabled, machine state not saved")}};return!0}return!1};
function gn(a,b){var c=a.C;c||(c=wa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=qn(a,c))||a.Ba("The user ID is invalid."))):b&&a.Ba("Browser local storage is not available"));return c}
function qn(a,b){a.C=null;var c=pa(qa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(xa("user",c.data),a.C=c.data)}catch(e){n(e.message+" ("+d+")")}return a.C}function jn(a){var b=null;a.C&&(b=qa()+"/api/v1/user?req=load&user="+a.C+"&state="+Zm(a,hn));return b}
function pn(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Zm(a,hn);d.data=c;b=pa(qa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Ba("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Ba(c),xa("user",""),a.C=null)}}
function jb(a,b,c){a=Ta(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}Ea(function(){for(var a=Za(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=Wa(c),c=Za(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=Wa(f),g=new dn(g,d,!0);Ya(g,f);g.P&&kn(g,g.ef)}});Aa.show.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.W&&!c.da.Pb&&c.ef(-1)}});
Aa.exit.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.da.Pb&&on(c,!(!c.B||c.K),!0)}});var rn=0;function sn(a,b,c,d,e,f){e("Loading "+a+"...");pa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):tn(h,a,b,c,d,e,f)})}
function tn(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){Sa(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,
"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(x){h=null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?un(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function un(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);un(a,b,c)}})}else c(a,null)}
function vn(a,b,c,d){function e(a){if(void 0===h){var b=g&&Za(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ja(a))}function f(a){e("Error: "+a);k&&(--rn||Ga(!0));k=!1}var g,h,k=!0;rn++;Ra[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=m:x.appendChild(document.createTextNode(m));q.appendChild(x)}c||
(c="/versions/pcjs/1.21.1/components.xsl");m=function(d,h){h?sn(c,null,null,!1,e,function(d,k){if(k)if(Sa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=h.transformNode(k);m?(g.outerHTML=m,--rn||Ga(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(k),(m=m.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--rn||Ga(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?sn(b,a,d,!0,e,m):tn(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(r){f(r.message)}return k}window.embedPC=function(a,b,c,d){Ga(!1);return vn(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;
function wn(a,b,c,d){if(!c&&b){d.push(b);a=Ra[d[0]];b=null;for(var e in a)if(ha(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?pa(b,null,!0,function(a,b){xn(b,d)}):xn(null,d)}else n("Error ("+c+") requesting "+a)}
function xn(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=Ra[f],k={},m;for(m in h){var q=h[m],x=ga(m);if("xml"==x){for(x=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=x.exec(h[m]);){var r=d[2];r&&(h[r]||(q=q.replace(d[0],"")))}d=m=fa(m)}else"xsl"==x&&(e=m=fa(m));k[m]=q}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(m=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+m+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
l.zb=function(a,b,c){var d=this;switch(b){case "power":return this.ja[b]=c,c.onclick=function(){d.D||(d.da.Pb?pn(d,!1,!0):ln(d,d.ef))},!0;case "reset":return this.ja[b]=c,c.onclick=function(){if(d.da.Pb&&!d.D)if(d.B&&!d.K){var a=ra("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");pn(d,a,!0);!a&&d.S?window&&window.location.reload():(a||(d.lg=!0),d.ef(gn),d.lg=!1)}else d.reset(),d.A&&lc(d.A)},!0;case "save":if(ha(qa(),"pcjs.org")){c.parentNode.removeChild(c);
break}this.ja[b]=c;c.onclick=function(){var a=hn(d,!0);if(a){var b=!!(d.B&&!d.K||d.S),c=pn(d,b);b?qn(d,a,c):d.Ba("Resume disabled, machine state not saved")}};return!0}return!1};
function hn(a,b){var c=a.C;c||(c=wa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=rn(a,c))||a.Ba("The user ID is invalid."))):b&&a.Ba("Browser local storage is not available"));return c}
function rn(a,b){a.C=null;var c=pa(qa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(xa("user",c.data),a.C=c.data)}catch(e){n(e.message+" ("+d+")")}return a.C}function kn(a){var b=null;a.C&&(b=qa()+"/api/v1/user?req=load&user="+a.C+"&state="+$m(a,jn));return b}
function qn(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=$m(a,jn);d.data=c;b=pa(qa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Ba("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Ba(c),xa("user",""),a.C=null)}}
function jb(a,b,c){a=Ta(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}Ea(function(){for(var a=Za(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=Wa(c),c=Za(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=Wa(f),g=new en(g,d,!0);Ya(g,f);g.P&&ln(g,g.ef)}});Aa.show.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.W&&!c.da.Pb&&c.ef(-1)}});
Aa.exit.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.da.Pb&&pn(c,!(!c.B||c.K),!0)}});var sn=0;function tn(a,b,c,d,e,f){e("Loading "+a+"...");pa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):un(h,a,b,c,d,e,f)})}
function un(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){Sa(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,
"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(x){h=null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?vn(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function vn(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);vn(a,b,c)}})}else c(a,null)}
function wn(a,b,c,d){function e(a){if(void 0===h){var b=g&&Za(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ja(a))}function f(a){e("Error: "+a);k&&(--sn||Ga(!0));k=!1}var g,h,k=!0;sn++;Ra[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=m:x.appendChild(document.createTextNode(m));q.appendChild(x)}c||
(c="/versions/pcjs/1.21.1/components.xsl");m=function(d,h){h?tn(c,null,null,!1,e,function(d,k){if(k)if(Sa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=h.transformNode(k);m?(g.outerHTML=m,--sn||Ga(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(k),(m=m.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--sn||Ga(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?tn(b,a,d,!0,e,m):un(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(r){f(r.message)}return k}window.embedPC=function(a,b,c,d){Ga(!1);return wn(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;
function xn(a,b,c,d){if(!c&&b){d.push(b);a=Ra[d[0]];b=null;for(var e in a)if(ha(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?pa(b,null,!0,function(a,b){yn(b,d)}):yn(null,d)}else n("Error ("+c+") requesting "+a)}
function yn(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=Ra[f],k={},m;for(m in h){var q=h[m],x=ga(m);if("xml"==x){for(x=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=x.exec(h[m]);){var r=d[2];r&&(h[r]||(q=q.replace(d[0],"")))}d=m=fa(m)}else"xsl"==x&&(e=m=fa(m));k[m]=q}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(m=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+m+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),c=za(c,"javascript",!1,g),c=c+(', copy it to your web server as "'+g+'", and then add the following to your web page:\n\n')+('<div id="'+f+'"></div>\n'),c+="...\n",c+='<script type="text/javascript" src="'+g+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",n(c)):n("Missing XML/XSL resources")}
window.savePC=function(a,b){var c=Va("Computer",a),d=Va("Debugger",a);if(c){var e=on(c,!0),f=c.I?JSON.stringify(c.I):null;b||(b="/versions/pcjs/1.21.1/pc"+(d?"-dbg":"")+".js");pa(b,null,!0,function(c,d,k){wn(c,d,k,[a,fa(b,!0),f,e])});return!0}n("Unable to identify machine '"+a+"'");return!1};})();
window.savePC=function(a,b){var c=Va("Computer",a),d=Va("Debugger",a);if(c){var e=pn(c,!0),f=c.I?JSON.stringify(c.I):null;b||(b="/versions/pcjs/1.21.1/pc"+(d?"-dbg":"")+".js");pa(b,null,!0,function(c,d,k){xn(c,d,k,[a,fa(b,!0),f,e])});return!0}n("Unable to identify machine '"+a+"'");return!1};})();