From 28c083fc8cb2cd5db0f3d99d994dd662edbd45af Mon Sep 17 00:00:00 2001 From: Dmitry Baranovskiy Date: Fri, 5 Feb 2010 09:20:35 +1100 Subject: [PATCH] Fiz for couple IE bugs, Set.clone added --- raphael-min.js | 6 +-- raphael.js | 144 ++++++++++++++++++++++++++++--------------------- 2 files changed, 85 insertions(+), 65 deletions(-) diff --git a/raphael-min.js b/raphael-min.js index 3e95317..a9ba36d 100644 --- a/raphael-min.js +++ b/raphael-min.js @@ -1,7 +1,7 @@ /* - * Raphael 1.3.0 - JavaScript Vector Library + * Raphael 1.3.2 - JavaScript Vector Library * - * Copyright (c) 2008 - 2009 Dmitry Baranovskiy (http://raphaeljs.com) + * Copyright (c) 2009 Dmitry Baranovskiy (http://raphaeljs.com) * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license. */ -window.Raphael=(function(){var a=/[, ]+/,aO=/^(circle|rect|path|ellipse|text|image)$/,L=document,au=window,l={was:"Raphael" in au,is:au.Raphael},an=function(){if(an.is(arguments[0],"array")){var d=arguments[0],e=w[aW](an,d.splice(0,3+an.is(d[0],al))),S=e.set();for(var R=0,a0=d[m];R

";if(ag.childNodes[m]!=2){return null;}}an.svg=!(an.vml=an.type=="VML");aT[aY]=an[aY];an._id=0;an._oid=0;an.fn={};an.is=function(e,d){d=aZ.call(d);return((d=="object"||d=="undefined")&&typeof e==d)||(e==null&&d=="null")||aZ.call(aw.call(e).slice(8,-1))==d;};an.setWindow=function(d){au=d;L=au.document;};var aD=function(e){if(an.vml){var d=/^\s+|\s+$/g;aD=aj(function(R){var S;R=(R+at)[aP](d,at);try{var a0=new ActiveXObject("htmlfile");a0.write("");a0.close();S=a0.body;}catch(a2){S=createPopup().document.body;}var i=S.createTextRange();try{S.style.color=R;var a1=i.queryCommandValue("ForeColor");a1=((a1&255)<<16)|(a1&65280)|((a1&16711680)>>>16);return"#"+("000000"+a1[aA](16)).slice(-6);}catch(a2){return"none";}});}else{var E=L.createElement("i");E.title="Rapha\xebl Colour Picker";E.style.display="none";L.body[aL](E);aD=aj(function(i){E.style.color=i;return L.defaultView.getComputedStyle(E,at).getPropertyValue("color");});}return aD(e);};an.hsb2rgb=aj(function(a3,a1,a7){if(an.is(a3,"object")&&"h" in a3&&"s" in a3&&"b" in a3){a7=a3.b;a1=a3.s;a3=a3.h;}var R,S,a8;if(a7==0){return{r:0,g:0,b:0,hex:"#000"};}if(a3>1||a1>1||a7>1){a3/=255;a1/=255;a7/=255;}var a0=~~(a3*6),a4=(a3*6)-a0,E=a7*(1-a1),e=a7*(1-(a1*a4)),a9=a7*(1-(a1*(1-a4)));R=[a7,e,E,E,a9,a7,a7][a0];S=[a9,a7,a7,e,E,E,a9][a0];a8=[E,E,a9,a7,a7,e,E][a0];R*=255;S*=255;a8*=255;var a5={r:R,g:S,b:a8},d=(~~R)[aA](16),a2=(~~S)[aA](16),a6=(~~a8)[aA](16);d=d[aP](aU,"0");a2=a2[aP](aU,"0");a6=a6[aP](aU,"0");a5.hex="#"+d+a2+a6;return a5;},an);an.rgb2hsb=aj(function(d,e,a1){if(an.is(d,"object")&&"r" in d&&"g" in d&&"b" in d){a1=d.b;e=d.g;d=d.r;}if(an.is(d,"string")){var a3=an.getRGB(d);d=a3.r;e=a3.g;a1=a3.b;}if(d>1||e>1||a1>1){d/=255;e/=255;a1/=255;}var a0=g(d,e,a1),i=aI(d,e,a1),R,E,S=a0;if(i==a0){return{h:0,s:0,b:a0};}else{var a2=(a0-i);E=a2/a0;if(d==a0){R=(e-a1)/a2;}else{if(e==a0){R=2+((a1-d)/a2);}else{R=4+((d-e)/a2);}}R/=6;R<0&&R++;R>1&&R--;}return{h:R,s:E,b:S};},an);var aE=/,?([achlmqrstvxz]),?/gi;an._path2string=function(){return this.join(",")[aP](aE,"$1");};function aj(E,e,d){function i(){var R=Array[aY].slice.call(arguments,0),a0=R[az]("\u25ba"),S=i.cache=i.cache||{},a1=i.count=i.count||[];if(S[Q](a0)){return d?d(S[a0]):S[a0];}a1[m]>=1000&&delete S[a1.shift()];a1[f](a0);S[a0]=E[aW](e,R);return d?d(S[a0]):S[a0];}return i;}an.getRGB=aj(function(d){if(!d||!!((d=d+at).indexOf("-")+1)){return{r:-1,g:-1,b:-1,hex:"none",error:1};}if(d=="none"){return{r:-1,g:-1,b:-1,hex:"none"};}!(({hs:1,rg:1})[Q](d.substring(0,2))||d.charAt()=="#")&&(d=aD(d));var S,i,E,a2,a3,a0=d.match(x);if(a0){if(a0[2]){a2=G(a0[2].substring(5),16);E=G(a0[2].substring(3,5),16);i=G(a0[2].substring(1,3),16);}if(a0[3]){a2=G((a3=a0[3].charAt(3))+a3,16);E=G((a3=a0[3].charAt(2))+a3,16);i=G((a3=a0[3].charAt(1))+a3,16);}if(a0[4]){a0=a0[4][z](/\s*,\s*/);i=W(a0[0]);E=W(a0[1]);a2=W(a0[2]);}if(a0[5]){a0=a0[5][z](/\s*,\s*/);i=W(a0[0])*2.55;E=W(a0[1])*2.55;a2=W(a0[2])*2.55;}if(a0[6]){a0=a0[6][z](/\s*,\s*/);i=W(a0[0]);E=W(a0[1]);a2=W(a0[2]);return an.hsb2rgb(i,E,a2);}if(a0[7]){a0=a0[7][z](/\s*,\s*/);i=W(a0[0])*2.55;E=W(a0[1])*2.55;a2=W(a0[2])*2.55;return an.hsb2rgb(i,E,a2);}a0={r:i,g:E,b:a2};var e=(~~i)[aA](16),R=(~~E)[aA](16),a1=(~~a2)[aA](16);e=e[aP](aU,"0");R=R[aP](aU,"0");a1=a1[aP](aU,"0");a0.hex="#"+e+R+a1;return a0;}return{r:-1,g:-1,b:-1,hex:"none",error:1};},an);an.getColor=function(e){var i=this.getColor.start=this.getColor.start||{h:0,s:1,b:e||0.75},d=this.hsb2rgb(i.h,i.s,i.b);i.h+=0.075;if(i.h>1){i.h=0;i.s-=0.2;i.s<=0&&(this.getColor.start={h:0,s:1,b:i.b});}return d.hex;};an.getColor.reset=function(){delete this.start;};an.parsePathString=aj(function(d){if(!d){return null;}var i={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},e=[];if(an.is(d,"array")&&an.is(d[0],"array")){e=av(d);}if(!e[m]){(d+at)[aP](/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,function(R,E,a1){var a0=[],S=aZ.call(E);a1[aP](/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,function(a3,a2){a2&&a0[f](+a2);});while(a0[m]>=i[S]){e[f]([E][aS](a0.splice(0,i[S])));if(!i[S]){break;}}});}e[aA]=an._path2string;return e;});an.findDotsAtSegment=function(e,d,be,bc,a0,R,a2,a1,a8){var a6=1-a8,a5=aM(a6,3)*e+aM(a6,2)*3*a8*be+a6*3*a8*a8*a0+aM(a8,3)*a2,a3=aM(a6,3)*d+aM(a6,2)*3*a8*bc+a6*3*a8*a8*R+aM(a8,3)*a1,ba=e+2*a8*(be-e)+a8*a8*(a0-2*be+e),a9=d+2*a8*(bc-d)+a8*a8*(R-2*bc+d),bd=be+2*a8*(a0-be)+a8*a8*(a2-2*a0+be),bb=bc+2*a8*(R-bc)+a8*a8*(a1-2*R+bc),a7=(1-a8)*e+a8*be,a4=(1-a8)*d+a8*bc,E=(1-a8)*a0+a8*a2,i=(1-a8)*R+a8*a1,S=(90-ab.atan((ba-bd)/(a9-bb))*180/ab.PI);(ba>bd||a9a2){a3=a3-R*2;}if(!S&&a2>a3){a2=a2-R*2;}}else{a3=bb[0];a2=bb[1];bd=bb[2];bc=bb[3];}var a7=a2-a3;if(ab.abs(a7)>bf){var be=a2,bh=a8,a5=bC;a2=a3+bf*(S&&a2>a3?1:-1);a8=bd+bi*ab.cos(a2);bC=bc+bg*ab.sin(a2);bm=K(a8,bC,bi,bg,ba,0,S,bh,a5,[a2,be,bd,bc]);}a7=a2-a3;var a1=ab.cos(a3),bB=ab.sin(a3),a0=ab.cos(a2),bA=ab.sin(a2),bp=ab.tan(a7/4),bs=4/3*bi*bp,bq=4/3*bg*bp,by=[a9,bD],bx=[a9+bs*bB,bD-bq*a1],bw=[a8+bs*bA,bC-bq*a0],bu=[a8,bC];bx[0]=2*by[0]-bx[0];bx[1]=2*by[1]-bx[1];if(bb){return[bx,bw,bu][aS](bm);}else{bm=[bx,bw,bu][aS](bm)[az]()[z](",");var bk=[];for(var bv=0,bl=bm[m];bv1000000000000&&(a0=0.5);ab.abs(S)>1000000000000&&(S=0.5);if(a0>0&&a0<1){e=M(i,d,R,E,a9,a8,a5,a2,a0);a6[f](e.x);a3[f](e.y);}if(S>0&&S<1){e=M(i,d,R,E,a9,a8,a5,a2,S);a6[f](e.x);a3[f](e.y);}a7=(a8-2*E+d)-(a2-2*a8+E);a4=2*(E-d)-2*(a8-E);a1=d-E;a0=(-a4+ab.sqrt(a4*a4-4*a7*a1))/2/a7;S=(-a4-ab.sqrt(a4*a4-4*a7*a1))/2/a7;ab.abs(a0)>1000000000000&&(a0=0.5);ab.abs(S)>1000000000000&&(S=0.5);if(a0>0&&a0<1){e=M(i,d,R,E,a9,a8,a5,a2,a0);a6[f](e.x);a3[f](e.y);}if(S>0&&S<1){e=M(i,d,R,E,a9,a8,a5,a2,S);a6[f](e.x);a3[f](e.y);}return{min:{x:aI[aW](0,a6),y:aI[aW](0,a3)},max:{x:g[aW](0,a6),y:g[aW](0,a3)}};}),H=aj(function(a9,a4){var R=r(a9),a5=a4&&r(a4),a6={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},d={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},a0=function(ba,bb){var i,bc;if(!ba){return["C",bb.x,bb.y,bb.x,bb.y,bb.x,bb.y];}!(ba[0] in {T:1,Q:1})&&(bb.qx=bb.qy=null);switch(ba[0]){case"M":bb.X=ba[1];bb.Y=ba[2];break;case"A":ba=["C"][aS](K[aW](0,[bb.x,bb.y][aS](ba.slice(1))));break;case"S":i=bb.x+(bb.x-(bb.bx||bb.x));bc=bb.y+(bb.y-(bb.by||bb.y));ba=["C",i,bc][aS](ba.slice(1));break;case"T":bb.qx=bb.x+(bb.x-(bb.qx||bb.x));bb.qy=bb.y+(bb.y-(bb.qy||bb.y));ba=["C"][aS](aK(bb.x,bb.y,bb.qx,bb.qy,ba[1],ba[2]));break;case"Q":bb.qx=ba[1];bb.qy=ba[2];ba=["C"][aS](aK(bb.x,bb.y,ba[1],ba[2],ba[3],ba[4]));break;case"L":ba=["C"][aS](aX(bb.x,bb.y,ba[1],ba[2]));break;case"H":ba=["C"][aS](aX(bb.x,bb.y,ba[1],bb.y));break;case"V":ba=["C"][aS](aX(bb.x,bb.y,bb.x,ba[1]));break;case"Z":ba=["C"][aS](aX(bb.x,bb.y,bb.X,bb.Y));break;}return ba;},e=function(ba,bb){if(ba[bb][m]>7){ba[bb].shift();var bc=ba[bb];while(bc[m]){ba.splice(bb++,0,["C"][aS](bc.splice(0,6)));}ba.splice(bb,1);a7=g(R[m],a5&&a5[m]||0);}},E=function(be,bd,bb,ba,bc){if(be&&bd&&be[bc][0]=="M"&&bd[bc][0]!="M"){bd.splice(bc,0,["M",ba.x,ba.y]);bb.bx=0;bb.by=0;bb.x=be[bc][1];bb.y=be[bc][2];a7=g(R[m],a5&&a5[m]||0);}};for(var a2=0,a7=g(R[m],a5&&a5[m]||0);a23){return{container:1,x:arguments[0],y:arguments[1],width:arguments[2],height:arguments[3]};}}},aG=function(d,i){var e=this;for(var E in i){if(i[Q](E)&&!(E in d)){switch(typeof i[E]){case"function":(function(R){d[E]=d===e?R:function(){return R[aW](e,arguments);};})(i[E]);break;case"object":d[E]=d[E]||{};aG.call(this,d[E],i[E]);break;default:d[E]=i[E];break;}}}},ak=function(d,e){d==e.top&&(e.top=d.prev);d==e.bottom&&(e.bottom=d.next);d.next&&(d.next.prev=d.prev);d.prev&&(d.prev.next=d.next);},Y=function(d,e){if(e.top===d){return;}ak(d,e);d.next=null;d.prev=e.top;e.top.next=d;e.top=d;},k=function(d,e){if(e.bottom===d){return;}ak(d,e);d.next=e.bottom;d.prev=null;e.bottom.prev=d;e.bottom=d;},A=function(e,d,i){ak(e,i);d==i.top&&(i.top=e);d.next&&(d.next.prev=e);e.next=d.next;e.prev=d;d.next=e;},aq=function(e,d,i){ak(e,i);d==i.bottom&&(i.bottom=e);d.prev&&(d.prev.next=e);e.prev=d.prev;d.prev=e;e.next=d;},s=function(d){return function(){throw new Error("Rapha\xebl: you are calling to method \u201c"+d+"\u201d of removed object");};},ar=/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/;if(an.svg){aT[aY].svgns="http://www.w3.org/2000/svg";aT[aY].xlink="http://www.w3.org/1999/xlink";var O=function(d){return +d+(~~d===d)*0.5;},V=function(S){for(var e=0,E=S[m];e0.5)*2-1);aM(a1-0.5,2)+aM(S-0.5,2)>0.25&&(S=ab.sqrt(0.25-aM(a1-0.5,2))*ba+0.5)&&S!=0.5&&(S=S.toFixed(5)-0.00001*ba);}return at;});a7=a7[z](/\s*\-\s*/);if(a4=="linear"){var a0=a7.shift();a0=-W(a0);if(isNaN(a0)){return null;}var R=[0,0,ab.cos(a0*ab.PI/180),ab.sin(a0*ab.PI/180)],a6=1/(g(ab.abs(R[2]),ab.abs(R[3]))||1);R[2]*=a6;R[3]*=a6;if(R[2]<0){R[0]=-R[2];R[2]=0;}if(R[3]<0){R[1]=-R[3];R[3]=0;}}var a3=p(a7);if(!a3){return null;}var e=aJ(a4+"Gradient");e.id="r"+(an._id++)[aA](36);aJ(e,a4=="radial"?{fx:a1,fy:S}:{x1:R[0],y1:R[1],x2:R[2],y2:R[3]});d.defs[aL](e);for(var a2=0,a8=a3[m];a2a1.height)&&(a1.height=a0.y+a0.height-a1.y);(a0.x+a0.width-a1.x>a1.width)&&(a1.width=a0.x+a0.width-a1.x);}}E&&this.hide();return a1;};ax[aY].attr=function(){if(this.removed){return this;}if(arguments[m]==0){var R={};for(var E in this.attrs){if(this.attrs[Q](E)){R[E]=this.attrs[E];}}this._.rt.deg&&(R.rotation=this.rotate());(this._.sx!=1||this._.sy!=1)&&(R.scale=this.scale());R.gradient&&R.fill=="none"&&(R.fill=R.gradient)&&delete R.gradient;return R;}if(arguments[m]==1&&an.is(arguments[0],"string")){if(arguments[0]=="translation"){return t.call(this);}if(arguments[0]=="rotation"){return this.rotate();}if(arguments[0]=="scale"){return this.scale();}if(arguments[0]=="fill"&&this.attrs.fill=="none"&&this.attrs.gradient){return this.attrs.gradient;}return this.attrs[arguments[0]];}if(arguments[m]==1&&an.is(arguments[0],"array")){var d={};for(var e in arguments[0]){if(arguments[0][Q](e)){d[arguments[0][e]]=this.attrs[arguments[0][e]];}}return d;}if(arguments[m]==2){var S={};S[arguments[0]]=arguments[1];aa(this,S);}else{if(arguments[m]==1&&an.is(arguments[0],"object")){aa(this,arguments[0]);}}return this;};ax[aY].toFront=function(){if(this.removed){return this;}this.node.parentNode[aL](this.node);var d=this.paper;d.top!=this&&Y(this,d);return this;};ax[aY].toBack=function(){if(this.removed){return this;}if(this.node.parentNode.firstChild!=this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);k(this,this.paper);var d=this.paper;}return this;};ax[aY].insertAfter=function(d){if(this.removed){return this;}var e=d.node;if(e.nextSibling){e.parentNode.insertBefore(this.node,e.nextSibling);}else{e.parentNode[aL](this.node);}A(this,d,this.paper);return this;};ax[aY].insertBefore=function(d){if(this.removed){return this;}var e=d.node;e.parentNode.insertBefore(this.node,e);aq(this,d,this.paper);return this;};var P=function(e,d,S,R){d=O(d);S=O(S);var E=aJ("circle");e.canvas&&e.canvas[aL](E);var i=new ax(E,e);i.attrs={cx:d,cy:S,r:R,fill:"none",stroke:"#000"};i.type="circle";aJ(E,i.attrs);return i;};var aF=function(i,d,a1,e,S,a0){d=O(d);a1=O(a1);var R=aJ("rect");i.canvas&&i.canvas[aL](R);var E=new ax(R,i);E.attrs={x:d,y:a1,width:e,height:S,r:a0||0,rx:a0||0,ry:a0||0,fill:"none",stroke:"#000"};E.type="rect";aJ(R,E.attrs);return E;};var ai=function(e,d,a0,S,R){d=O(d);a0=O(a0);var E=aJ("ellipse");e.canvas&&e.canvas[aL](E);var i=new ax(E,e);i.attrs={cx:d,cy:a0,rx:S,ry:R,fill:"none",stroke:"#000"};i.type="ellipse";aJ(E,i.attrs);return i;};var o=function(i,a0,d,a1,e,S){var R=aJ("image");aJ(R,{x:d,y:a1,width:e,height:S,preserveAspectRatio:"none"});R.setAttributeNS(i.xlink,"href",a0);i.canvas&&i.canvas[aL](R);var E=new ax(R,i);E.attrs={x:d,y:a1,width:e,height:S,src:a0};E.type="image";return E;};var X=function(e,d,S,R){var E=aJ("text");aJ(E,{x:d,y:S,"text-anchor":"middle"});e.canvas&&e.canvas[aL](E);var i=new ax(E,e);i.attrs={x:d,y:S,"text-anchor":"middle",text:R,font:j.font,stroke:"none",fill:"#000"};i.type="text";aa(i,i.attrs);return i;};var aV=function(e,d){this.width=e||this.width;this.height=d||this.height;this.canvas[v]("width",this.width);this.canvas[v]("height",this.height);return this;};var w=function(){var E=ao[aW](null,arguments),i=E&&E.container,e=E.x,a0=E.y,R=E.width,d=E.height;if(!i){throw new Error("SVG container not found.");}var S=aJ("svg");R=R||512;d=d||342;aJ(S,{xmlns:"http://www.w3.org/2000/svg",version:1.1,width:R,height:d});if(i==1){S.style.cssText="position:absolute;left:"+e+"px;top:"+a0+"px";L.body[aL](S);}else{if(i.firstChild){i.insertBefore(S,i.firstChild);}else{i[aL](S);}}i=new aT;i.width=R;i.height=d;i.canvas=S;aG.call(i,i,an.fn);i.clear();return i;};aT[aY].clear=function(){var d=this.canvas;while(d.firstChild){d.removeChild(d.firstChild);}this.bottom=this.top=null;(this.desc=aJ("desc"))[aL](L.createTextNode("Created with Rapha\xebl"));d[aL](this.desc);d[aL](this.defs=aJ("defs"));};aT[aY].remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var d in this){this[d]=s(d);}};}if(an.vml){var aH=function(a8){var a5=/[ahqstv]/ig,a0=r;(a8+at).match(a5)&&(a0=H);a5=/[clmz]/g;if(a0==r&&!(a8+at).match(a5)){var e={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},R=/([clmz]),?([^clmz]*)/gi,S=/-?[^,\s-]+/g;var a4=(a8+at)[aP](R,function(a9,bb,i){var ba=[];i[aP](S,function(bc){ba[f](O(bc));});return e[bb]+ba;});return a4;}var a6=a0(a8),E,a4=[],d;for(var a2=0,a7=a6[m];a21&&(e=1);a7.opacity=e;}a8.fill&&(a7.on=true);if(a7.on==null||a8.fill=="none"){a7.on=false;}if(a7.on&&a8.fill){var i=a8.fill.match(c);if(i){a7.src=i[1];a7.type="tile";}else{a7.color=an.getRGB(a8.fill).hex;a7.src=at;a7.type="solid";if(an.getRGB(a8.fill).error&&(bd.type in {circle:1,ellipse:1}||(a8.fill+at).charAt()!="r")&&b(bd,a8.fill)){a9.fill="none";a9.gradient=a8.fill;}}}ba&&a6[aL](a7);var R=(a6.getElementsByTagName("stroke")&&a6.getElementsByTagName("stroke")[0]),bb=false;!R&&(bb=R=ah("stroke"));if((a8.stroke&&a8.stroke!="none")||a8["stroke-width"]||a8["stroke-opacity"]!=null||a8["stroke-dasharray"]||a8["stroke-miterlimit"]||a8["stroke-linejoin"]||a8["stroke-linecap"]){R.on=true;}(a8.stroke=="none"||R.on==null||a8.stroke==0||a8["stroke-width"]==0)&&(R.on=false);R.on&&a8.stroke&&(R.color=an.getRGB(a8.stroke).hex);var e=((+a9["stroke-opacity"]+1||2)-1)*((+a9.opacity+1||2)-1),a4=(W(a8["stroke-width"])||1)*0.75;e<0&&(e=0);e>1&&(e=1);a8["stroke-width"]==null&&(a4=a9["stroke-width"]);a8["stroke-width"]&&(R.weight=a4);a4&&a4<1&&(e*=a4)&&(R.weight=1);R.opacity=e;a8["stroke-linejoin"]&&(R.joinstyle=a8["stroke-linejoin"]||"miter");R.miterlimit=a8["stroke-miterlimit"]||8;a8["stroke-linecap"]&&(R.endcap=a8["stroke-linecap"]=="butt"?"flat":a8["stroke-linecap"]=="square"?"square":"round");if(a8["stroke-dasharray"]){var a5={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};R.dashstyle=a5[Q](a8["stroke-dasharray"])?a5[a8["stroke-dasharray"]]:at;}bb&&a6[aL](R);}if(bd.type=="text"){var a0=bd.paper.span.style;a9.font&&(a0.font=a9.font);a9["font-family"]&&(a0.fontFamily=a9["font-family"]);a9["font-size"]&&(a0.fontSize=a9["font-size"]);a9["font-weight"]&&(a0.fontWeight=a9["font-weight"]);a9["font-style"]&&(a0.fontStyle=a9["font-style"]);bd.node.string&&(bd.paper.span.innerHTML=(bd.node.string+at)[aP](/"));bd.W=a9.w=bd.paper.span.offsetWidth;bd.H=a9.h=bd.paper.span.offsetHeight;bd.X=a9.x;bd.Y=a9.y+O(bd.H/2);switch(a9["text-anchor"]){case"start":bd.node.style["v-text-align"]="left";bd.bbx=O(bd.W/2);break;case"end":bd.node.style["v-text-align"]="right";bd.bbx=-O(bd.W/2);break;default:bd.node.style["v-text-align"]="center";break;}}};var b=function(d,a1){d.attrs=d.attrs||{};var a2=d.attrs,a4=d.node.getElementsByTagName("fill"),S="linear",a0=".5 .5";d.attrs.gradient=a1;a1=(a1+at)[aP](ar,function(a6,a7,i){S="radial";if(a7&&i){a7=W(a7);i=W(i);aM(a7-0.5,2)+aM(i-0.5,2)>0.25&&(i=ab.sqrt(0.25-aM(a7-0.5,2))*((i>0.5)*2-1)+0.5);a0=a7+am+i;}return at;});a1=a1[z](/\s*\-\s*/);if(S=="linear"){var e=a1.shift();e=-W(e);if(isNaN(e)){return null;}}var R=p(a1);if(!R){return null;}d=d.shape||d.node;a4=a4[0]||ah("fill");if(R[m]){a4.on=true;a4.method="none";a4.type=(S=="radial")?"gradientradial":"gradient";a4.color=R[0].color;a4.color2=R[R[m]-1].color;var a5=[];for(var E=0,a3=R[m];E');};}catch(af){ah=function(d){return L.createElement("<"+d+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');};}var w=function(){var i=ao[aW](null,arguments),d=i.container,a2=i.height,a3,e=i.width,a1=i.x,a0=i.y;if(!d){throw new Error("VML container not found.");}var R=new aT,S=R.canvas=L.createElement("div"),E=S.style;e=e||512;a2=a2||342;e==+e&&(e+="px");a2==+a2&&(a2+="px");R.width=1000;R.height=1000;R.coordsize="1000 1000";R.coordorigin="0 0";R.span=L.createElement("span");R.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";S[aL](R.span);E.cssText=an.format("width:{0};height:{1};position:absolute;clip:rect(0 {0} {1} 0);overflow:hidden",e,a2);if(d==1){L.body[aL](S);E.left=a1+"px";E.top=a0+"px";}else{d.style.width=e;d.style.height=a2;if(d.firstChild){d.insertBefore(S,d.firstChild);}else{d[aL](S);}}aG.call(R,R,an.fn);return R;};aT[aY].clear=function(){this.canvas.innerHTML=at;this.span=L.createElement("span");this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";this.canvas[aL](this.span);this.bottom=this.top=null;};aT[aY].remove=function(){this.canvas.parentNode.removeChild(this.canvas);for(var d in this){this[d]=s(d);}};}if((/^Apple|^Google/).test(navigator.vendor)&&!(navigator.userAgent.indexOf("Version/4.0")+1)){aT[aY].safari=function(){var d=this.rect(-99,-99,this.width+99,this.height+99);setTimeout(function(){d.remove();});};}else{aT[aY].safari=function(){};}var ae=(function(){if(L.addEventListener){return function(R,i,e,d){var E=function(S){return e.call(d,S);};R.addEventListener(i,E,false);return function(){R.removeEventListener(i,E,false);return true;};};}else{if(L.attachEvent){return function(S,E,i,e){var R=function(a0){return i.call(e,a0||au.event);};S.attachEvent("on"+E,R);var d=function(){S.detachEvent("on"+E,R);return true;};return d;};}}})();for(var ac=F[m];ac--;){(function(d){ax[aY][d]=function(e){if(an.is(e,"function")){this.events=this.events||[];this.events.push({name:d,f:e,unbind:ae(this.shape||this.node,d,e,this)});}return this;};ax[aY]["un"+d]=function(E){var i=this.events,e=i[m];while(e--){if(i[e].name==d&&i[e].f==E){i[e].unbind();i.splice(e,1);!i.length&&delete this.events;return this;}}return this;};})(F[ac]);}ax[aY].hover=function(e,d){return this.mouseover(e).mouseout(d);};ax[aY].unhover=function(e,d){return this.unmouseover(e).unmouseout(d);};aT[aY].circle=function(d,i,e){return P(this,d||0,i||0,e||0);};aT[aY].rect=function(d,R,e,i,E){return aF(this,d||0,R||0,e||0,i||0,E||0);};aT[aY].ellipse=function(d,E,i,e){return ai(this,d||0,E||0,i||0,e||0);};aT[aY].path=function(d){d&&!an.is(d,"string")&&!an.is(d[0],"array")&&(d+=at);return q(an.format[aW](an,arguments),this);};aT[aY].image=function(E,d,R,e,i){return o(this,E||"about:blank",d||0,R||0,e||0,i||0);};aT[aY].text=function(d,i,e){return X(this,d||0,i||0,e||at);};aT[aY].set=function(d){arguments[m]>1&&(d=Array[aY].splice.call(arguments,0,arguments[m]));return new T(d);};aT[aY].setSize=aV;aT[aY].top=aT[aY].bottom=null;aT[aY].raphael=an;function u(){return this.x+am+this.y;}ax[aY].scale=function(a6,a5,E,e){if(a6==null&&a5==null){return{x:this._.sx,y:this._.sy,toString:u};}a5=a5||a6;!+a5&&(a5=a6);var ba,a8,a9,a7,bm=this.attrs;if(a6!=0){var a4=this.getBBox(),a1=a4.x+a4.width/2,R=a4.y+a4.height/2,bl=a6/this._.sx,bk=a5/this._.sy;E=(+E||E==0)?E:a1;e=(+e||e==0)?e:R;var a3=~~(a6/ab.abs(a6)),a0=~~(a5/ab.abs(a5)),be=this.node.style,bo=E+(a1-E)*bl,bn=e+(R-e)*bk;switch(this.type){case"rect":case"image":var a2=bm.width*a3*bl,bd=bm.height*a0*bk;this.attr({height:bd,r:bm.r*aI(a3*bl,a0*bk),width:a2,x:bo-a2/2,y:bn-bd/2});break;case"circle":case"ellipse":this.attr({rx:bm.rx*a3*bl,ry:bm.ry*a0*bk,r:bm.r*aI(a3*bl,a0*bk),cx:bo,cy:bn});break;case"path":var bg=ad(bm.path),bh=true;for(var bj=0,bc=bg[m];bjS){if(e&&!a8.start){a6=an.findDotsAtSegment(a5,a4,E[1],E[2],E[3],E[4],E[5],E[6],(S-a3)/a1);R+=["C",a6.start.x,a6.start.y,a6.m.x,a6.m.y,a6.x,a6.y];if(a0){return R;}a8.start=R;R=["M",a6.x,a6.y,"C",a6.n.x,a6.n.y,a6.end.x,a6.end.y,E[5],E[6]][az]();a3+=a1;a5=+E[5];a4=+E[6];continue;}if(!d&&!e){a6=an.findDotsAtSegment(a5,a4,E[1],E[2],E[3],E[4],E[5],E[6],(S-a3)/a1);return{x:a6.x,y:a6.y,alpha:a6.alpha};}}a3+=a1;a5=+E[5];a4=+E[6];}R+=E;}a8.end=R;a6=d?a3:e?a8:an.findDotsAtSegment(a5,a4,E[1],E[2],E[3],E[4],E[5],E[6],1);a6.alpha&&(a6={x:a6.x,y:a6.y,alpha:a6.alpha});return a6;};},n=aj(function(E,d,a0,S,a6,a5,a4,a3){var R={x:0,y:0},a2=0;for(var a1=0;a1<1.01;a1+=0.01){var e=M(E,d,a0,S,a6,a5,a4,a3,a1);a1&&(a2+=ab.sqrt(aM(R.x-e.x,2)+aM(R.y-e.y,2)));R=e;}return a2;});var ap=aB(1),C=aB(),J=aB(0,1);ax[aY].getTotalLength=function(){if(this.type!="path"){return;}return ap(this.attrs.path);};ax[aY].getPointAtLength=function(d){if(this.type!="path"){return;}return C(this.attrs.path,d);};ax[aY].getSubpath=function(i,e){if(this.type!="path"){return;}var d=J(this.attrs.path,e,1);return i?J(d,i).end:d;};an.easing_formulas={linear:function(d){return d;},"<":function(d){return aM(d,3);},">":function(d){return aM(d-1,3)+1;},"<>":function(d){d=d*2;if(d<1){return aM(d,3)/2;}d-=2;return(aM(d,3)+2)/2;},backIn:function(e){var d=1.70158;return e*e*((d+1)*e-d);},backOut:function(e){e=e-1;var d=1.70158;return e*e*((d+1)*e+d)+1;},elastic:function(i){if(i==0||i==1){return i;}var e=0.3,d=e/4;return aM(2,-10*i)*ab.sin((i-d)*(2*ab.PI)/e)+1;},bounce:function(E){var e=7.5625,i=2.75,d;if(E<(1/i)){d=e*E*E;}else{if(E<(2/i)){E-=(1.5/i);d=e*E*E+0.75;}else{if(E<(2.5/i)){E-=(2.25/i);d=e*E*E+0.9375;}else{E-=(2.625/i);d=e*E*E+0.984375;}}}return d;}};var I={length:0},aR=function(){var a2=+new Date;for(var be in I){if(be!="length"&&I[Q](be)){var bj=I[be];if(bj.stop){delete I[be];I[m]--;continue;}var a0=a2-bj.start,bb=bj.ms,ba=bj.easing,bf=bj.from,a7=bj.diff,E=bj.to,a6=bj.t,a9=bj.prev||0,a1=bj.el,R=bj.callback,a8={},d;if(a0255?255:(d<0?0:d);},t=function(d,i){if(d==null){return{x:this._.tx,y:this._.ty,toString:u};}this._.tx+=+d;this._.ty+=+i;switch(this.type){case"circle":case"ellipse":this.attr({cx:+d+this.attrs.cx,cy:+i+this.attrs.cy});break;case"rect":case"image":case"text":this.attr({x:+d+this.attrs.x,y:+i+this.attrs.y});break;case"path":var e=ad(this.attrs.path);e[0][1]+=+d;e[0][2]+=+i;this.attr({path:e});break;}return this;};ax[aY].animateWith=function(e,i,d,R,E){I[e.id]&&(i.start=I[e.id].start);return this.animate(i,d,R,E);};ax[aY].animateAlong=ay();ax[aY].animateAlongBack=ay(1);function ay(d){return function(E,i,e,S){var R={back:d};an.is(e,"function")?(S=e):(R.rot=e);E&&E.constructor==ax&&(E=E.attrs.path);E&&(R.along=E);return this.animate(R,i,S);};}ax[aY].onAnimation=function(d){this._run=d||0;return this;};ax[aY].animate=function(be,a5,a4,E){if(an.is(a4,"function")||!a4){E=a4||null;}var a9={},e={},a2={};for(var a6 in be){if(be[Q](a6)){if(Z[Q](a6)){a9[a6]=this.attr(a6);(a9[a6]==null)&&(a9[a6]=j[a6]);e[a6]=be[a6];switch(Z[a6]){case"along":var bc=ap(be[a6]),a7=C(be[a6],bc*!!be.back),R=this.getBBox();a2[a6]=bc/a5;a2.tx=R.x;a2.ty=R.y;a2.sx=a7.x;a2.sy=a7.y;e.rot=be.rot;e.back=be.back;e.len=bc;be.rot&&(a2.r=W(this.rotate())||0);break;case"number":a2[a6]=(e[a6]-a9[a6])/a5;break;case"colour":a9[a6]=an.getRGB(a9[a6]);var a8=an.getRGB(e[a6]);a2[a6]={r:(a8.r-a9[a6].r)/a5,g:(a8.g-a9[a6].g)/a5,b:(a8.b-a9[a6].b)/a5};break;case"path":var S=H(a9[a6],e[a6]);a9[a6]=S[0];var a3=S[1];a2[a6]=[];for(var bb=0,a1=a9[a6][m];bb

";if(ah.childNodes[m]!=2){return null;}}ap.svg=!(ap.vml=ap.type=="VML");aX[a2]=ap[a2];ap._id=0;ap._oid=0;ap.fn={};ap.is=function(e,d){d=a4.call(d);return((d=="object"||d=="undefined")&&typeof e==d)||(e==null&&d=="null")||a4.call(aA.call(e).slice(8,-1))==d;};ap.setWindow=function(d){ax=d;M=ax.document;};var aH=function(e){if(ap.vml){var d=/^\s+|\s+$/g;aH=ak(function(R){var S;R=(R+aw)[aT](d,aw);try{var a5=new ActiveXObject("htmlfile");a5.write("");a5.close();S=a5.body;}catch(a7){S=createPopup().document.body;}var i=S.createTextRange();try{S.style.color=R;var a6=i.queryCommandValue("ForeColor");a6=((a6&255)<<16)|(a6&65280)|((a6&16711680)>>>16);return"#"+("000000"+a6[aE](16)).slice(-6);}catch(a7){return"none";}});}else{var E=M.createElement("i");E.title="Rapha\xebl Colour Picker";E.style.display="none";M.body[aP](E);aH=ak(function(i){E.style.color=i;return M.defaultView.getComputedStyle(E,aw).getPropertyValue("color");});}return aH(e);};ap.hsb2rgb=ak(function(a8,a6,bc){if(ap.is(a8,"object")&&"h" in a8&&"s" in a8&&"b" in a8){bc=a8.b;a6=a8.s;a8=a8.h;}var R,S,bd;if(bc==0){return{r:0,g:0,b:0,hex:"#000"};}if(a8>1||a6>1||bc>1){a8/=255;a6/=255;bc/=255;}var a5=~~(a8*6),a9=(a8*6)-a5,E=bc*(1-a6),e=bc*(1-(a6*a9)),be=bc*(1-(a6*(1-a9)));R=[bc,e,E,E,be,bc,bc][a5];S=[be,bc,bc,e,E,E,be][a5];bd=[E,E,be,bc,bc,e,E][a5];R*=255;S*=255;bd*=255;var ba={r:R,g:S,b:bd},d=(~~R)[aE](16),a7=(~~S)[aE](16),bb=(~~bd)[aE](16);d=d[aT](aY,"0");a7=a7[aT](aY,"0");bb=bb[aT](aY,"0");ba.hex="#"+d+a7+bb;return ba;},ap);ap.rgb2hsb=ak(function(d,e,a6){if(ap.is(d,"object")&&"r" in d&&"g" in d&&"b" in d){a6=d.b;e=d.g;d=d.r;}if(ap.is(d,"string")){var a8=ap.getRGB(d);d=a8.r;e=a8.g;a6=a8.b;}if(d>1||e>1||a6>1){d/=255;e/=255;a6/=255;}var a5=g(d,e,a6),i=aM(d,e,a6),R,E,S=a5;if(i==a5){return{h:0,s:0,b:a5};}else{var a7=(a5-i);E=a7/a5;if(d==a5){R=(e-a6)/a7;}else{if(e==a5){R=2+((a6-d)/a7);}else{R=4+((d-e)/a7);}}R/=6;R<0&&R++;R>1&&R--;}return{h:R,s:E,b:S};},ap);var aI=/,?([achlmqrstvxz]),?/gi;ap._path2string=function(){return this.join(",")[aT](aI,"$1");};function ak(E,e,d){function i(){var R=Array[a2].slice.call(arguments,0),a5=R[aD]("\u25ba"),S=i.cache=i.cache||{},a6=i.count=i.count||[];if(S[T](a5)){return d?d(S[a5]):S[a5];}a6[m]>=1000&&delete S[a6.shift()];a6[f](a5);S[a5]=E[a0](e,R);return d?d(S[a5]):S[a5];}return i;}ap.getRGB=ak(function(d){if(!d||!!((d=d+aw).indexOf("-")+1)){return{r:-1,g:-1,b:-1,hex:"none",error:1};}if(d=="none"){return{r:-1,g:-1,b:-1,hex:"none"};}!(({hs:1,rg:1})[T](d.substring(0,2))||d.charAt()=="#")&&(d=aH(d));var S,i,E,a7,a8,a5=d.match(x);if(a5){if(a5[2]){a7=H(a5[2].substring(5),16);E=H(a5[2].substring(3,5),16);i=H(a5[2].substring(1,3),16);}if(a5[3]){a7=H((a8=a5[3].charAt(3))+a8,16);E=H((a8=a5[3].charAt(2))+a8,16);i=H((a8=a5[3].charAt(1))+a8,16);}if(a5[4]){a5=a5[4][z](/\s*,\s*/);i=X(a5[0]);E=X(a5[1]);a7=X(a5[2]);}if(a5[5]){a5=a5[5][z](/\s*,\s*/);i=X(a5[0])*2.55;E=X(a5[1])*2.55;a7=X(a5[2])*2.55;}if(a5[6]){a5=a5[6][z](/\s*,\s*/);i=X(a5[0]);E=X(a5[1]);a7=X(a5[2]);return ap.hsb2rgb(i,E,a7);}if(a5[7]){a5=a5[7][z](/\s*,\s*/);i=X(a5[0])*2.55;E=X(a5[1])*2.55;a7=X(a5[2])*2.55;return ap.hsb2rgb(i,E,a7);}a5={r:i,g:E,b:a7};var e=(~~i)[aE](16),R=(~~E)[aE](16),a6=(~~a7)[aE](16);e=e[aT](aY,"0");R=R[aT](aY,"0");a6=a6[aT](aY,"0");a5.hex="#"+e+R+a6;return a5;}return{r:-1,g:-1,b:-1,hex:"none",error:1};},ap);ap.getColor=function(e){var i=this.getColor.start=this.getColor.start||{h:0,s:1,b:e||0.75},d=this.hsb2rgb(i.h,i.s,i.b);i.h+=0.075;if(i.h>1){i.h=0;i.s-=0.2;i.s<=0&&(this.getColor.start={h:0,s:1,b:i.b});}return d.hex;};ap.getColor.reset=function(){delete this.start;};var ay=/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,an=/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig;ap.parsePathString=ak(function(d){if(!d){return null;}var i={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},e=[];if(ap.is(d,"array")&&ap.is(d[0],"array")){e=az(d);}if(!e[m]){(d+aw)[aT](ay,function(R,E,a6){var a5=[],S=a4.call(E);a6[aT](an,function(a8,a7){a7&&a5[f](+a7);});if(S=="m"&&a5[m]>2){e[f]([E][aW](a5.splice(0,2)));S="l";E=E=="m"?"l":"L";}while(a5[m]>=i[S]){e[f]([E][aW](a5.splice(0,i[S])));if(!i[S]){break;}}});}e[aE]=ap._path2string;return e;});ap.findDotsAtSegment=function(e,d,bj,bh,a5,R,a7,a6,bd){var bb=1-bd,ba=aQ(bb,3)*e+aQ(bb,2)*3*bd*bj+bb*3*bd*bd*a5+aQ(bd,3)*a7,a8=aQ(bb,3)*d+aQ(bb,2)*3*bd*bh+bb*3*bd*bd*R+aQ(bd,3)*a6,bf=e+2*bd*(bj-e)+bd*bd*(a5-2*bj+e),be=d+2*bd*(bh-d)+bd*bd*(R-2*bh+d),bi=bj+2*bd*(a5-bj)+bd*bd*(a7-2*a5+bj),bg=bh+2*bd*(R-bh)+bd*bd*(a6-2*R+bh),bc=(1-bd)*e+bd*bj,a9=(1-bd)*d+bd*bh,E=(1-bd)*a5+bd*a7,i=(1-bd)*R+bd*a6,S=(90-ac.atan((bf-bi)/(be-bg))*180/ac.PI);(bf>bi||be1){bD=ac.sqrt(bD);bn=bD*bn;bl=bD*bl;}var E=bn*bn,bw=bl*bl,by=(a9==S?-1:1)*ac.sqrt(ac.abs((E*bw-E*bs*bs-bw*bt*bt)/(E*bs*bs+bw*bt*bt))),bi=by*bn*bs/bl+(be+bd)/2,bh=by*-bl*bt/bn+(bJ+bI)/2,a8=ac.asin(((bJ-bh)/bl).toFixed(7)),a7=ac.asin(((bI-bh)/bl).toFixed(7));a8=bea7){a8=a8-R*2;}if(!S&&a7>a8){a7=a7-R*2;}}else{a8=bg[0];a7=bg[1];bi=bg[2];bh=bg[3];}var bc=a7-a8;if(ac.abs(bc)>bk){var bj=a7,bm=bd,ba=bI;a7=a8+bk*(S&&a7>a8?1:-1);bd=bi+bn*ac.cos(a7);bI=bh+bl*ac.sin(a7);br=L(bd,bI,bn,bl,bf,0,S,bm,ba,[a7,bj,bi,bh]);}bc=a7-a8;var a6=ac.cos(a8),bH=ac.sin(a8),a5=ac.cos(a7),bG=ac.sin(a7),bu=ac.tan(bc/4),bx=4/3*bn*bu,bv=4/3*bl*bu,bE=[be,bJ],bC=[be+bx*bH,bJ-bv*a6],bB=[bd+bx*bG,bI-bv*a5],bz=[bd,bI];bC[0]=2*bE[0]-bC[0];bC[1]=2*bE[1]-bC[1];if(bg){return[bC,bB,bz][aW](br);}else{br=[bC,bB,bz][aW](br)[aD]()[z](",");var bp=[];for(var bA=0,bq=br[m];bA1000000000000&&(a5=0.5);ac.abs(S)>1000000000000&&(S=0.5);if(a5>0&&a5<1){e=N(i,d,R,E,be,bd,ba,a7,a5);bb[f](e.x);a8[f](e.y);}if(S>0&&S<1){e=N(i,d,R,E,be,bd,ba,a7,S);bb[f](e.x);a8[f](e.y);}bc=(bd-2*E+d)-(a7-2*bd+E);a9=2*(E-d)-2*(bd-E);a6=d-E;a5=(-a9+ac.sqrt(a9*a9-4*bc*a6))/2/bc;S=(-a9-ac.sqrt(a9*a9-4*bc*a6))/2/bc;ac.abs(a5)>1000000000000&&(a5=0.5);ac.abs(S)>1000000000000&&(S=0.5);if(a5>0&&a5<1){e=N(i,d,R,E,be,bd,ba,a7,a5);bb[f](e.x);a8[f](e.y);}if(S>0&&S<1){e=N(i,d,R,E,be,bd,ba,a7,S);bb[f](e.x);a8[f](e.y);}return{min:{x:aM[a0](0,bb),y:aM[a0](0,a8)},max:{x:g[a0](0,bb),y:g[a0](0,a8)}};}),I=ak(function(be,a9){var R=r(be),ba=a9&&r(a9),bb={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},d={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},a5=function(bf,bg){var i,bh;if(!bf){return["C",bg.x,bg.y,bg.x,bg.y,bg.x,bg.y];}!(bf[0] in {T:1,Q:1})&&(bg.qx=bg.qy=null);switch(bf[0]){case"M":bg.X=bf[1];bg.Y=bf[2];break;case"A":bf=["C"][aW](L[a0](0,[bg.x,bg.y][aW](bf.slice(1))));break;case"S":i=bg.x+(bg.x-(bg.bx||bg.x));bh=bg.y+(bg.y-(bg.by||bg.y));bf=["C",i,bh][aW](bf.slice(1));break;case"T":bg.qx=bg.x+(bg.x-(bg.qx||bg.x));bg.qy=bg.y+(bg.y-(bg.qy||bg.y));bf=["C"][aW](aO(bg.x,bg.y,bg.qx,bg.qy,bf[1],bf[2]));break;case"Q":bg.qx=bf[1];bg.qy=bf[2];bf=["C"][aW](aO(bg.x,bg.y,bf[1],bf[2],bf[3],bf[4]));break;case"L":bf=["C"][aW](a1(bg.x,bg.y,bf[1],bf[2]));break;case"H":bf=["C"][aW](a1(bg.x,bg.y,bf[1],bg.y));break;case"V":bf=["C"][aW](a1(bg.x,bg.y,bg.x,bf[1]));break;case"Z":bf=["C"][aW](a1(bg.x,bg.y,bg.X,bg.Y));break;}return bf;},e=function(bf,bg){if(bf[bg][m]>7){bf[bg].shift();var bh=bf[bg];while(bh[m]){bf.splice(bg++,0,["C"][aW](bh.splice(0,6)));}bf.splice(bg,1);bc=g(R[m],ba&&ba[m]||0);}},E=function(bj,bi,bg,bf,bh){if(bj&&bi&&bj[bh][0]=="M"&&bi[bh][0]!="M"){bi.splice(bh,0,["M",bf.x,bf.y]);bg.bx=0;bg.by=0;bg.x=bj[bh][1];bg.y=bj[bh][2];bc=g(R[m],ba&&ba[m]||0);}};for(var a7=0,bc=g(R[m],ba&&ba[m]||0);a73){return{container:1,x:arguments[0],y:arguments[1],width:arguments[2],height:arguments[3]};}}},aK=function(d,i){var e=this;for(var E in i){if(i[T](E)&&!(E in d)){switch(typeof i[E]){case"function":(function(R){d[E]=d===e?R:function(){return R[a0](e,arguments);};})(i[E]);break;case"object":d[E]=d[E]||{};aK.call(this,d[E],i[E]);break;default:d[E]=i[E];break;}}}},al=function(d,e){d==e.top&&(e.top=d.prev);d==e.bottom&&(e.bottom=d.next);d.next&&(d.next.prev=d.prev);d.prev&&(d.prev.next=d.next);},Z=function(d,e){if(e.top===d){return;}al(d,e);d.next=null;d.prev=e.top;e.top.next=d;e.top=d;},k=function(d,e){if(e.bottom===d){return;}al(d,e);d.next=e.bottom;d.prev=null;e.bottom.prev=d;e.bottom=d;},A=function(e,d,i){al(e,i);d==i.top&&(i.top=e);d.next&&(d.next.prev=e);e.next=d.next;e.prev=d;d.next=e;},at=function(e,d,i){al(e,i);d==i.bottom&&(i.bottom=e);d.prev&&(d.prev.next=e);e.prev=d.prev;d.prev=e;e.next=d;},s=function(d){return function(){throw new Error("Rapha\xebl: you are calling to method \u201c"+d+"\u201d of removed object");};},av=/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/;if(ap.svg){aX[a2].svgns="http://www.w3.org/2000/svg";aX[a2].xlink="http://www.w3.org/1999/xlink";var P=function(d){return +d+(~~d===d)*0.5;},W=function(S){for(var e=0,E=S[m];e0.5)*2-1);aQ(a6-0.5,2)+aQ(S-0.5,2)>0.25&&(S=ac.sqrt(0.25-aQ(a6-0.5,2))*bf+0.5)&&S!=0.5&&(S=S.toFixed(5)-0.00001*bf);}return aw;});bc=bc[z](/\s*\-\s*/);if(a9=="linear"){var a5=bc.shift();a5=-X(a5);if(isNaN(a5)){return null;}var R=[0,0,ac.cos(a5*ac.PI/180),ac.sin(a5*ac.PI/180)],bb=1/(g(ac.abs(R[2]),ac.abs(R[3]))||1);R[2]*=bb;R[3]*=bb;if(R[2]<0){R[0]=-R[2];R[2]=0;}if(R[3]<0){R[1]=-R[3];R[3]=0;}}var a8=p(bc);if(!a8){return null;}var e=aN(a9+"Gradient");e.id="r"+(ap._id++)[aE](36);aN(e,a9=="radial"?{fx:a6,fy:S}:{x1:R[0],y1:R[1],x2:R[2],y2:R[3]});d.defs[aP](e);for(var a7=0,bd=a8[m];a7a6.height)&&(a6.height=a5.y+a5.height-a6.y);(a5.x+a5.width-a6.x>a6.width)&&(a6.width=a5.x+a5.width-a6.x);}}E&&this.hide();return a6;};aB[a2].attr=function(){if(this.removed){return this;}if(arguments[m]==0){var R={};for(var E in this.attrs){if(this.attrs[T](E)){R[E]=this.attrs[E];}}this._.rt.deg&&(R.rotation=this.rotate());(this._.sx!=1||this._.sy!=1)&&(R.scale=this.scale());R.gradient&&R.fill=="none"&&(R.fill=R.gradient)&&delete R.gradient;return R;}if(arguments[m]==1&&ap.is(arguments[0],"string")){if(arguments[0]=="translation"){return t.call(this);}if(arguments[0]=="rotation"){return this.rotate();}if(arguments[0]=="scale"){return this.scale();}if(arguments[0]=="fill"&&this.attrs.fill=="none"&&this.attrs.gradient){return this.attrs.gradient;}return this.attrs[arguments[0]];}if(arguments[m]==1&&ap.is(arguments[0],"array")){var d={};for(var e in arguments[0]){if(arguments[0][T](e)){d[arguments[0][e]]=this.attrs[arguments[0][e]];}}return d;}if(arguments[m]==2){var S={};S[arguments[0]]=arguments[1];ab(this,S);}else{if(arguments[m]==1&&ap.is(arguments[0],"object")){ab(this,arguments[0]);}}return this;};aB[a2].toFront=function(){if(this.removed){return this;}this.node.parentNode[aP](this.node);var d=this.paper;d.top!=this&&Z(this,d);return this;};aB[a2].toBack=function(){if(this.removed){return this;}if(this.node.parentNode.firstChild!=this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);k(this,this.paper);var d=this.paper;}return this;};aB[a2].insertAfter=function(d){if(this.removed){return this;}var e=d.node;if(e.nextSibling){e.parentNode.insertBefore(this.node,e.nextSibling);}else{e.parentNode[aP](this.node);}A(this,d,this.paper);return this;};aB[a2].insertBefore=function(d){if(this.removed){return this;}var e=d.node;e.parentNode.insertBefore(this.node,e);at(this,d,this.paper);return this;};var Q=function(e,d,S,R){d=P(d);S=P(S);var E=aN("circle");e.canvas&&e.canvas[aP](E);var i=new aB(E,e);i.attrs={cx:d,cy:S,r:R,fill:"none",stroke:"#000"};i.type="circle";aN(E,i.attrs);return i;};var aJ=function(i,d,a6,e,S,a5){d=P(d);a6=P(a6);var R=aN("rect");i.canvas&&i.canvas[aP](R);var E=new aB(R,i);E.attrs={x:d,y:a6,width:e,height:S,r:a5||0,rx:a5||0,ry:a5||0,fill:"none",stroke:"#000"};E.type="rect";aN(R,E.attrs);return E;};var aj=function(e,d,a5,S,R){d=P(d);a5=P(a5);var E=aN("ellipse");e.canvas&&e.canvas[aP](E);var i=new aB(E,e);i.attrs={cx:d,cy:a5,rx:S,ry:R,fill:"none",stroke:"#000"};i.type="ellipse";aN(E,i.attrs);return i;};var o=function(i,a5,d,a6,e,S){var R=aN("image");aN(R,{x:d,y:a6,width:e,height:S,preserveAspectRatio:"none"});R.setAttributeNS(i.xlink,"href",a5);i.canvas&&i.canvas[aP](R);var E=new aB(R,i);E.attrs={x:d,y:a6,width:e,height:S,src:a5};E.type="image";return E;};var Y=function(e,d,S,R){var E=aN("text");aN(E,{x:d,y:S,"text-anchor":"middle"});e.canvas&&e.canvas[aP](E);var i=new aB(E,e);i.attrs={x:d,y:S,"text-anchor":"middle",text:R,font:j.font,stroke:"none",fill:"#000"};i.type="text";ab(i,i.attrs);return i;};var aZ=function(e,d){this.width=e||this.width;this.height=d||this.height;this.canvas[v]("width",this.width);this.canvas[v]("height",this.height);return this;};var w=function(){var E=aq[a0](null,arguments),i=E&&E.container,e=E.x,a5=E.y,R=E.width,d=E.height;if(!i){throw new Error("SVG container not found.");}var S=aN("svg");R=R||512;d=d||342;aN(S,{xmlns:"http://www.w3.org/2000/svg",version:1.1,width:R,height:d});if(i==1){S.style.cssText="position:absolute;left:"+e+"px;top:"+a5+"px";M.body[aP](S);}else{if(i.firstChild){i.insertBefore(S,i.firstChild);}else{i[aP](S);}}i=new aX;i.width=R;i.height=d;i.canvas=S;aK.call(i,i,ap.fn);i.clear();return i;};aX[a2].clear=function(){var d=this.canvas;while(d.firstChild){d.removeChild(d.firstChild);}this.bottom=this.top=null;(this.desc=aN("desc"))[aP](M.createTextNode("Created with Rapha\xebl"));d[aP](this.desc);d[aP](this.defs=aN("defs"));};aX[a2].remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var d in this){this[d]=s(d);}};}if(ap.vml){var D={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},au=/([clmz]),?([^clmz]*)/gi,a3=/-?[^,\s-]+/g,aL=function(ba){var a7=/[ahqstv]/ig,E=r;(ba+aw).match(a7)&&(E=I);a7=/[clmz]/g;if(E==r&&!(ba+aw).match(a7)){var a6=(ba+aw)[aT](au,function(bd,bf,bb){var be=[],i=a4.call(bf)=="m",bc=D[bf];bb[aT](a3,function(bg){if(i&&be[m]==2){bc+=be+D[bf=="m"?"l":"L"];be=[];}be[f](P(bg));});return bc+be;});return a6;}var a8=E(ba),e,a6=[],d;for(var S=0,a9=a8[m];S1&&(e=1);bc.opacity=e;}bd.fill&&(bc.on=true);if(bc.on==null||bd.fill=="none"){bc.on=false;}if(bc.on&&bd.fill){var i=bd.fill.match(c);if(i){bc.src=i[1];bc.type="tile";}else{bc.color=ap.getRGB(bd.fill).hex;bc.src=aw;bc.type="solid";if(ap.getRGB(bd.fill).error&&(bi.type in {circle:1,ellipse:1}||(bd.fill+aw).charAt()!="r")&&b(bi,bd.fill)){be.fill="none";be.gradient=bd.fill;}}}bf&&bb[aP](bc);var R=(bb.getElementsByTagName("stroke")&&bb.getElementsByTagName("stroke")[0]),bg=false;!R&&(bg=R=ai("stroke"));if((bd.stroke&&bd.stroke!="none")||bd["stroke-width"]||bd["stroke-opacity"]!=null||bd["stroke-dasharray"]||bd["stroke-miterlimit"]||bd["stroke-linejoin"]||bd["stroke-linecap"]){R.on=true;}(bd.stroke=="none"||R.on==null||bd.stroke==0||bd["stroke-width"]==0)&&(R.on=false);R.on&&bd.stroke&&(R.color=ap.getRGB(bd.stroke).hex);var e=((+be["stroke-opacity"]+1||2)-1)*((+be.opacity+1||2)-1),a9=(X(bd["stroke-width"])||1)*0.75;e<0&&(e=0);e>1&&(e=1);bd["stroke-width"]==null&&(a9=be["stroke-width"]);bd["stroke-width"]&&(R.weight=a9);a9&&a9<1&&(e*=a9)&&(R.weight=1);R.opacity=e;bd["stroke-linejoin"]&&(R.joinstyle=bd["stroke-linejoin"]||"miter");R.miterlimit=bd["stroke-miterlimit"]||8;bd["stroke-linecap"]&&(R.endcap=bd["stroke-linecap"]=="butt"?"flat":bd["stroke-linecap"]=="square"?"square":"round");if(bd["stroke-dasharray"]){var ba={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};R.dashstyle=ba[T](bd["stroke-dasharray"])?ba[bd["stroke-dasharray"]]:aw;}bg&&bb[aP](R);}if(bi.type=="text"){var a5=bi.paper.span.style;be.font&&(a5.font=be.font);be["font-family"]&&(a5.fontFamily=be["font-family"]);be["font-size"]&&(a5.fontSize=be["font-size"]);be["font-weight"]&&(a5.fontWeight=be["font-weight"]);be["font-style"]&&(a5.fontStyle=be["font-style"]);bi.node.string&&(bi.paper.span.innerHTML=(bi.node.string+aw)[aT](/"));bi.W=be.w=bi.paper.span.offsetWidth;bi.H=be.h=bi.paper.span.offsetHeight;bi.X=be.x;bi.Y=be.y+P(bi.H/2);switch(be["text-anchor"]){case"start":bi.node.style["v-text-align"]="left";bi.bbx=P(bi.W/2);break;case"end":bi.node.style["v-text-align"]="right";bi.bbx=-P(bi.W/2);break;default:bi.node.style["v-text-align"]="center";break;}}};var b=function(d,a6){d.attrs=d.attrs||{};var a7=d.attrs,a9=d.node.getElementsByTagName("fill"),S="linear",a5=".5 .5";d.attrs.gradient=a6;a6=(a6+aw)[aT](av,function(bb,bc,i){S="radial";if(bc&&i){bc=X(bc);i=X(i);aQ(bc-0.5,2)+aQ(i-0.5,2)>0.25&&(i=ac.sqrt(0.25-aQ(bc-0.5,2))*((i>0.5)*2-1)+0.5);a5=bc+ao+i;}return aw;});a6=a6[z](/\s*\-\s*/);if(S=="linear"){var e=a6.shift();e=-X(e);if(isNaN(e)){return null;}}var R=p(a6);if(!R){return null;}d=d.shape||d.node;a9=a9[0]||ai("fill");if(R[m]){a9.on=true;a9.method="none";a9.type=(S=="radial")?"gradientradial":"gradient";a9.color=R[0].color;a9.color2=R[R[m]-1].color;var ba=[];for(var E=0,a8=R[m];E');};}catch(ag){ai=function(d){return M.createElement("<"+d+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');};}var w=function(){var i=aq[a0](null,arguments),d=i.container,a7=i.height,a8,e=i.width,a6=i.x,a5=i.y;if(!d){throw new Error("VML container not found.");}var R=new aX,S=R.canvas=M.createElement("div"),E=S.style;e=e||512;a7=a7||342;e==+e&&(e+="px");a7==+a7&&(a7+="px");R.width=1000;R.height=1000;R.coordsize="1000 1000";R.coordorigin="0 0";R.span=M.createElement("span");R.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";S[aP](R.span);E.cssText=ap.format("width:{0};height:{1};position:absolute;clip:rect(0 {0} {1} 0);overflow:hidden",e,a7);if(d==1){M.body[aP](S);E.left=a6+"px";E.top=a5+"px";}else{d.style.width=e;d.style.height=a7;if(d.firstChild){d.insertBefore(S,d.firstChild);}else{d[aP](S);}}aK.call(R,R,ap.fn);return R;};aX[a2].clear=function(){this.canvas.innerHTML=aw;this.span=M.createElement("span");this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";this.canvas[aP](this.span);this.bottom=this.top=null;};aX[a2].remove=function(){this.canvas.parentNode.removeChild(this.canvas);for(var d in this){this[d]=s(d);}};}if((/^Apple|^Google/).test(navigator.vendor)&&!(navigator.userAgent.indexOf("Version/4.0")+1)){aX[a2].safari=function(){var d=this.rect(-99,-99,this.width+99,this.height+99);setTimeout(function(){d.remove();});};}else{aX[a2].safari=function(){};}var af=(function(){if(M.addEventListener){return function(R,i,e,d){var E=function(S){return e.call(d,S);};R.addEventListener(i,E,false);return function(){R.removeEventListener(i,E,false);return true;};};}else{if(M.attachEvent){return function(S,E,i,e){var R=function(a5){return i.call(e,a5||ax.event);};S.attachEvent("on"+E,R);var d=function(){S.detachEvent("on"+E,R);return true;};return d;};}}})();for(var ad=G[m];ad--;){(function(d){aB[a2][d]=function(e){if(ap.is(e,"function")){this.events=this.events||[];this.events.push({name:d,f:e,unbind:af(this.shape||this.node,d,e,this)});}return this;};aB[a2]["un"+d]=function(E){var i=this.events,e=i[m];while(e--){if(i[e].name==d&&i[e].f==E){i[e].unbind();i.splice(e,1);!i.length&&delete this.events;return this;}}return this;};})(G[ad]);}aB[a2].hover=function(e,d){return this.mouseover(e).mouseout(d);};aB[a2].unhover=function(e,d){return this.unmouseover(e).unmouseout(d);};aX[a2].circle=function(d,i,e){return Q(this,d||0,i||0,e||0);};aX[a2].rect=function(d,R,e,i,E){return aJ(this,d||0,R||0,e||0,i||0,E||0);};aX[a2].ellipse=function(d,E,i,e){return aj(this,d||0,E||0,i||0,e||0);};aX[a2].path=function(d){d&&!ap.is(d,"string")&&!ap.is(d[0],"array")&&(d+=aw);return q(ap.format[a0](ap,arguments),this);};aX[a2].image=function(E,d,R,e,i){return o(this,E||"about:blank",d||0,R||0,e||0,i||0);};aX[a2].text=function(d,i,e){return Y(this,d||0,i||0,e||aw);};aX[a2].set=function(d){arguments[m]>1&&(d=Array[a2].splice.call(arguments,0,arguments[m]));return new U(d);};aX[a2].setSize=aZ;aX[a2].top=aX[a2].bottom=null;aX[a2].raphael=ap;function u(){return this.x+ao+this.y;}aB[a2].scale=function(bc,ba,E,e){if(bc==null&&ba==null){return{x:this._.sx,y:this._.sy,toString:u};}ba=ba||bc;!+ba&&(ba=bc);var bg,be,bf,bd,br=this.attrs;if(bc!=0){var a9=this.getBBox(),a6=a9.x+a9.width/2,R=a9.y+a9.height/2,bq=bc/this._.sx,bp=ba/this._.sy;E=(+E||E==0)?E:a6;e=(+e||e==0)?e:R;var a8=~~(bc/ac.abs(bc)),a5=~~(ba/ac.abs(ba)),bj=this.node.style,bt=E+(a6-E)*bq,bs=e+(R-e)*bp;switch(this.type){case"rect":case"image":var a7=br.width*a8*bq,bi=br.height*a5*bp;this.attr({height:bi,r:br.r*aM(a8*bq,a5*bp),width:a7,x:bt-a7/2,y:bs-bi/2});break;case"circle":case"ellipse":this.attr({rx:br.rx*a8*bq,ry:br.ry*a5*bp,r:br.r*aM(a8*bq,a5*bp),cx:bt,cy:bs});break;case"path":var bl=ae(br.path),bm=true;for(var bo=0,bh=bl[m];boS){if(e&&!bd.start){bb=ap.findDotsAtSegment(ba,a9,E[1],E[2],E[3],E[4],E[5],E[6],(S-a8)/a6);R+=["C",bb.start.x,bb.start.y,bb.m.x,bb.m.y,bb.x,bb.y];if(a5){return R;}bd.start=R;R=["M",bb.x,bb.y+"C",bb.n.x,bb.n.y,bb.end.x,bb.end.y,E[5],E[6]][aD]();a8+=a6;ba=+E[5];a9=+E[6];continue;}if(!d&&!e){bb=ap.findDotsAtSegment(ba,a9,E[1],E[2],E[3],E[4],E[5],E[6],(S-a8)/a6);return{x:bb.x,y:bb.y,alpha:bb.alpha};}}a8+=a6;ba=+E[5];a9=+E[6];}R+=E;}bd.end=R;bb=d?a8:e?bd:ap.findDotsAtSegment(ba,a9,E[1],E[2],E[3],E[4],E[5],E[6],1);bb.alpha&&(bb={x:bb.x,y:bb.y,alpha:bb.alpha});return bb;};},n=ak(function(E,d,a5,S,bb,ba,a9,a8){var R={x:0,y:0},a7=0;for(var a6=0;a6<1.01;a6+=0.01){var e=N(E,d,a5,S,bb,ba,a9,a8,a6);a6&&(a7+=ac.sqrt(aQ(R.x-e.x,2)+aQ(R.y-e.y,2)));R=e;}return a7;});var ar=aF(1),C=aF(),K=aF(0,1);aB[a2].getTotalLength=function(){if(this.type!="path"){return;}return ar(this.attrs.path);};aB[a2].getPointAtLength=function(d){if(this.type!="path"){return;}return C(this.attrs.path,d);};aB[a2].getSubpath=function(i,e){if(this.type!="path"){return;}if(ac.abs(this.getTotalLength()-e)<0.000001){return K(this.attrs.path,i).end;}var d=K(this.attrs.path,e,1);return i?K(d,i).end:d;};ap.easing_formulas={linear:function(d){return d;},"<":function(d){return aQ(d,3);},">":function(d){return aQ(d-1,3)+1;},"<>":function(d){d=d*2;if(d<1){return aQ(d,3)/2;}d-=2;return(aQ(d,3)+2)/2;},backIn:function(e){var d=1.70158;return e*e*((d+1)*e-d);},backOut:function(e){e=e-1;var d=1.70158;return e*e*((d+1)*e+d)+1;},elastic:function(i){if(i==0||i==1){return i;}var e=0.3,d=e/4;return aQ(2,-10*i)*ac.sin((i-d)*(2*ac.PI)/e)+1;},bounce:function(E){var e=7.5625,i=2.75,d;if(E<(1/i)){d=e*E*E;}else{if(E<(2/i)){E-=(1.5/i);d=e*E*E+0.75;}else{if(E<(2.5/i)){E-=(2.25/i);d=e*E*E+0.9375;}else{E-=(2.625/i);d=e*E*E+0.984375;}}}return d;}};var J={length:0},aV=function(){var a7=+new Date;for(var bj in J){if(bj!="length"&&J[T](bj)){var bo=J[bj];if(bo.stop||bo.el.removed){delete J[bj];J[m]--;continue;}var a5=a7-bo.start,bg=bo.ms,bf=bo.easing,bk=bo.from,bc=bo.diff,E=bo.to,bb=bo.t,be=bo.prev||0,a6=bo.el,R=bo.callback,bd={},d;if(a5255?255:(d<0?0:d);},t=function(d,i){if(d==null){return{x:this._.tx,y:this._.ty,toString:u};}this._.tx+=+d;this._.ty+=+i;switch(this.type){case"circle":case"ellipse":this.attr({cx:+d+this.attrs.cx,cy:+i+this.attrs.cy});break;case"rect":case"image":case"text":this.attr({x:+d+this.attrs.x,y:+i+this.attrs.y});break;case"path":var e=ae(this.attrs.path);e[0][1]+=+d;e[0][2]+=+i;this.attr({path:e});break;}return this;};aB[a2].animateWith=function(e,i,d,R,E){J[e.id]&&(i.start=J[e.id].start);return this.animate(i,d,R,E);};aB[a2].animateAlong=aC();aB[a2].animateAlongBack=aC(1);function aC(d){return function(E,i,e,S){var R={back:d};ap.is(e,"function")?(S=e):(R.rot=e);E&&E.constructor==aB&&(E=E.attrs.path);E&&(R.along=E);return this.animate(R,i,S);};}aB[a2].onAnimation=function(d){this._run=d||0;return this;};aB[a2].animate=function(bj,ba,a9,E){if(ap.is(a9,"function")||!a9){E=a9||null;}var be={},e={},a7={};for(var bb in bj){if(bj[T](bb)){if(aa[T](bb)){be[bb]=this.attr(bb);(be[bb]==null)&&(be[bb]=j[bb]);e[bb]=bj[bb];switch(aa[bb]){case"along":var bh=ar(bj[bb]),bc=C(bj[bb],bh*!!bj.back),R=this.getBBox();a7[bb]=bh/ba;a7.tx=R.x;a7.ty=R.y;a7.sx=bc.x;a7.sy=bc.y;e.rot=bj.rot;e.back=bj.back;e.len=bh;bj.rot&&(a7.r=X(this.rotate())||0);break;case"number":a7[bb]=(e[bb]-be[bb])/ba;break;case"colour":be[bb]=ap.getRGB(be[bb]);var bd=ap.getRGB(e[bb]);a7[bb]={r:(bd.r-be[bb].r)/ba,g:(bd.g-be[bb].g)/ba,b:(bd.b-be[bb].b)/ba};break;case"path":var S=I(be[bb],e[bb]);be[bb]=S[0];var a8=S[1];a7[bb]=[];for(var bg=0,a6=be[bb][m];bg 2) { + data[push]([b][concat](params.splice(0, 2))); + name = "l"; + b = b == "m" ? "l" : "L"; + } while (params[length] >= paramCounts[name]) { data[push]([b][concat](params.splice(0, paramCounts[name]))); if (!paramCounts[name]) { @@ -573,8 +580,14 @@ window.Raphael = (function () { sin = math.sin(PI / 180 * angle), x = (x1 - x2) / 2, y = (y1 - y2) / 2; - rx = mmax(rx, math.abs(x)); - ry = mmax(ry, math.abs(y)); + // rx = mmax(rx, math.abs(x)); + // ry = mmax(ry, math.abs(y)); + var h = (x * x) / (rx * rx) + (y * y) / (ry * ry); + if (h > 1) { + h = math.sqrt(h); + rx = h * rx; + ry = h * ry; + } var rx2 = rx * rx, ry2 = ry * ry, k = (large_arc_flag == sweep_flag ? -1 : 1) * @@ -583,7 +596,7 @@ window.Raphael = (function () { cy = k * -ry * x / rx + (y1 + y2) / 2, f1 = math.asin(((y1 - cy) / ry).toFixed(7)), f2 = math.asin(((y2 - cy) / ry).toFixed(7)); - + f1 = x1 < cx ? PI - f1 : f1; f2 = x2 < cx ? PI - f2 : f2; f1 < 0 && (f1 = PI * 2 + f1); @@ -632,6 +645,7 @@ window.Raphael = (function () { for (var i = 0, ii = res[length]; i < ii; i++) { newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x; } + // alert(newres); return newres; } }, @@ -1077,7 +1091,7 @@ window.Raphael = (function () { hl[appendChild](node); pn = hl; } - pn.setAttributeNS(o.Paper[proto].xlink, att, value); + pn.setAttributeNS(o.paper.xlink, att, value); break; case "cursor": node.style.cursor = value; @@ -1108,9 +1122,8 @@ window.Raphael = (function () { } break; case "path": - if (value && o.type == "path") { - attrs.path = roundPath(pathToAbsolute(value)); - $(node, {d: attrs.path}); + if (o.type == "path") { + $(node, {d: value ? attrs.path = roundPath(pathToAbsolute(value)) : "M0,0"}); } break; case "width": @@ -1615,36 +1628,42 @@ window.Raphael = (function () { // VML if (R.vml) { - var path2vml = function (path) { - var total = /[ahqstv]/ig, - command = pathToAbsolute; - (path + E).match(total) && (command = path2curve); - total = /[clmz]/g; - if (command == pathToAbsolute && !(path + E).match(total)) { - var map = {M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x"}, - bites = /([clmz]),?([^clmz]*)/gi, - val = /-?[^,\s-]+/g; - var res = (path + E)[rp](bites, function (all, command, args) { - var vals = []; - args[rp](val, function (value) { - vals[push](round(value)); + var map = {M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x"}, + bites = /([clmz]),?([^clmz]*)/gi, + val = /-?[^,\s-]+/g, + path2vml = function (path) { + var total = /[ahqstv]/ig, + command = pathToAbsolute; + (path + E).match(total) && (command = path2curve); + total = /[clmz]/g; + if (command == pathToAbsolute && !(path + E).match(total)) { + var res = (path + E)[rp](bites, function (all, command, args) { + var vals = [], + isMove = lowerCase.call(command) == "m", + res = map[command]; + args[rp](val, function (value) { + if (isMove && vals[length] == 2) { + res += vals + map[command == "m" ? "l" : "L"]; + vals = []; + } + vals[push](round(value)); + }); + return res + vals; }); - return map[command] + vals; - }); - return res; - } - var pa = command(path), p, res = [], r; - for (var i = 0, ii = pa[length]; i < ii; i++) { - p = pa[i]; - r = lowerCase.call(pa[i][0]); - r == "z" && (r = "x"); - for (var j = 1, jj = p[length]; j < jj; j++) { - r += round(p[j]) + (j != jj - 1 ? "," : E); + return res; + } + var pa = command(path), p, res = [], r; + for (var i = 0, ii = pa[length]; i < ii; i++) { + p = pa[i]; + r = lowerCase.call(pa[i][0]); + r == "z" && (r = "x"); + for (var j = 1, jj = p[length]; j < jj; j++) { + r += round(p[j]) + (j != jj - 1 ? "," : E); + } + res[push](r); } - res[push](r); - } - return res[join](S); - }; + return res[join](S); + }; R[toString] = function () { return "Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl " + this.version; @@ -1660,12 +1679,14 @@ window.Raphael = (function () { el.coordsize = this.coordsize; el.coordorigin = this.coordorigin; g[appendChild](el); - var p = new Element(el, g, VML); + var p = new Element(el, g, VML), + attr = {fill: "none", stroke: "#000"}; + pathString && (attr.path = pathString); p.isAbsolute = true; p.type = "path"; p.path = []; p.Path = E; - pathString && setFillAndStroke(p, {fill: "none", stroke: "#000", path: pathString}); + setFillAndStroke(p, attr); VML.canvas[appendChild](g); return p; }; @@ -2628,11 +2649,9 @@ window.Raphael = (function () { if (subpath && !subpaths.start) { point = R.findDotsAtSegment(x, y, p[1], p[2], p[3], p[4], p[5], p[6], (length - len) / l); sp += ["C", point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y]; - if (onlystart) { - return sp; - } + if (onlystart) return sp; subpaths.start = sp; - sp = ["M", point.x, point.y, "C", point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]][join](); + sp = ["M", point.x, point.y + "C", point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]][join](); len += l; x = +p[5]; y = +p[6]; @@ -2678,6 +2697,9 @@ window.Raphael = (function () { }; Element[proto].getSubpath = function (from, to) { if (this.type != "path") return; + if (math.abs(this.getTotalLength() - to) < 1e-6) { + return getSubpathsAtLength(this.attrs.path, from).end; + } var a = getSubpathsAtLength(this.attrs.path, to, 1); return from ? getSubpathsAtLength(a, from).end : a; }; @@ -2747,7 +2769,7 @@ window.Raphael = (function () { var Now = +new Date; for (var l in animationElements) if (l != "length" && animationElements[has](l)) { var e = animationElements[l]; - if (e.stop) { + if (e.stop || e.el.removed) { delete animationElements[l]; animationElements[length]--; continue; @@ -3100,7 +3122,14 @@ window.Raphael = (function () { height: mmax[apply](0, h) - y }; }; - + Set[proto].clone = function (s) { + s = new Set; + for (var i = 0, ii = this.items[length]; i < ii; i++) { + s[push](this.items[i].clone()); + } + return s; + }; + R.registerFont = function (font) { if (!font.face) { return font; @@ -3198,17 +3227,8 @@ window.Raphael = (function () { return token || E; }; R.ninja = function () { - var r = win.Raphael, u; - if (oldRaphael.was) { - win.Raphael = oldRaphael.is; - } else { - try { - delete win.Raphael; - } catch (e) { - win.Raphael = u; - } - } - return r; + oldRaphael.was ? (Raphael = oldRaphael.is) : delete Raphael; + return R; }; R.el = Element[proto]; return R; -- 2.39.2