function hasCan(){var c=document.getElementById('can');return !!(c.getContext&&c.getContext('2d'));} function sep(d){ans={};var ar=d.split("\t");var l=ar.length;for(var i=0;i(zm-1)){return(zm-1)}return z} function gchx(c,x){return gch(x*c['xm']+c['xo'],c['ctx'].canvas.width)} function gchy(c,y){return gch((1-y)*c['ym']+c['yo'],c['ctx'].canvas.height)} function gx0(c){return -c['xo']/c['xm']}; function gy0(c){return -c['yo']/c['ym']}; function gto(c,xo,yo){c['xo']+=xo;c['yo']+=yo} function gts(c,xs,ys){c['xm']*=xs;c['ym']*=ys} function gtso(c,xs,ys){gto(c,c['xm']*(1.0-xs)/2.0,c['ym']*(1.0-ys)/2.0);gts(c,xs,ys)} function gfs(c,bg){c['ctx'].fillStyle=bg} function gss(c,fg){c['ctx'].strokeStyle=fg} function glw(c,pct){c['ctx'].lineWidth=pct*c['ym']/100.0} function glwr(c,rat){c['ctx'].lineWidth*=rat} function gfz(c,x,y,ox,oy,t,co,a){gfs(c,co);c['ctx'].textAlign=a;c['ctx'].fillText(t,gchx(c,x)+ox,gchy(c,y)-oy)} function gbe(c,x,y){c['ctx'].beginPath();c['ctx'].moveTo(gchx(c,x),gchy(c,y))} function gln(c,x,y){c['ctx'].lineTo(gchx(c,x),gchy(c,y))} function glm(c,x,y){c['ctx'].moveTo(gchx(c,x),gchy(c,y))} function gle(c){c['ctx'].closePath()} function gfl(c){c['ctx'].fill()} function gst(c){c['ctx'].stroke()} function gfi(c){gle(c);gst(c)} function gbd(c){gbe(c,0,0);gln(c,1,0);gln(c,1,1);gln(c,0,1);gle(c);gfl(c);gst(c)} function ggr(c,xs,ys,yt,xn,x0,x1,y0,y1,ar,nx,vx,vy,av){ gtso(c,xs,ys); gss(c,'black');glw(c,0.25); gbe(c,0,1);gln(c,0,0);gln(c,1,0);gst(c); glwr(c,0.1); var hi=c['ctx'].measureText('M').width; var wi=c['ctx'].measureText('1').width; for(var i=0;i<11;i++){var y=i/10.0;gbe(c,-0.01,y);gln(c,1,y);gst(c);var t=''+(((y1-y0)*i/10+y0).toFixed(2));gfz(c,0,y,-wi,0,t,'black','end')} gfz(c,gx0(c),0.55,wi,0,yt,'#0080ff','left'); var m=Math.round(0.5+xn/20.0); var f=1; for(var i=0;ic['xm']){c['ym']=c['xm']}c['xo']=0.0;c['yo']=0.0;c['ctx'].canvas.width=c['xm'];c['ctx'].canvas.height=c['ym']} function gdrw(d){var c={};gc(c); gfs(c,'white');gss(c,'black');glw(c,1);gbd(c); var rows=d['rows'];var ymin=-1;var ymax=0;var xmin=-1;var xmax=0; var tda=0; for(var i=0;iths){ymin=ths}if(ths>ymax)ymax=ths;d['nx:'+i]=sn(i,d['shift:'+i]);if(xmin==-1||xmin>s){xmin=s}if(xmax