(function(){
    function cC(a,b,c,d,e,f){
        function o(a,b){
            var c,d,e,f,j,k;
            for(e=a,k=0;k<8;k++){
                f=m(e)-a;
                if(B(f)<b)return e;
                j=(3*i*e+2*h)*e+g;
                if(B(j)<1e-6)break;
                e=e-f/j
                }
                c=0,d=1,e=a;
            if(e<c)return c;
            if(e>d)return d;
            while(c<d){
                f=m(e);
                if(B(f-a)<b)return e;
                a>f?c=e:d=e,e=(d-c)/2+c
                }
                return e
            }
            function n(a,b){
            var c=o(a,b);
            return((l*c+k)*c+j)*c
            }
            function m(a){
            return((i*a+h)*a+g)*a
            }
            var g=3*b,h=3*(d-b)-g,i=1-g-h,j=3*c,k=3*(e-c)-j,l=1-j-k;
        return n(a,1/(200*f))
        }
        function cB(b){
        return function(c,d,e,f){
            var g={
                back:b
            };
            
            a.is(e,"function")?f=e:g.rot=e,c&&c.constructor==bN&&(c=c.attrs.path),c&&(g.along=c);
            return this.animate(g,d,f)
            }
        }
    function cp(){
    return this.x+q+this.y
    }
    function bm(a,b,c){
    function d(){
        var g=Array[e].slice.call(arguments,0),h=g[v]("►"),i=d.cache=d.cache||{},j=d.count=d.count||[];
        if(i[f](h))return c?c(i[h]):i[h];
        j[w]>=1e3&&delete i[j.shift()],j[L](h),i[h]=a[m](b,g);
        return c?c(i[h]):i[h]
        }
        return d
    }
    function bh(){
    var a=[],b=0;
    for(;b<32;b++)a[b]=(~~(y.random()*16))[H](16);
    a[12]=4,a[16]=(a[16]&3|8)[H](16);
    return"r-"+a[v]("")
    }
    function a(){
    if(a.is(arguments[0],G)){
        var b=arguments[0],d=bV[m](a,b.splice(0,3+a.is(b[0],E))),e=d.set();
        for(var g=0,h=b[w];g<h;g++){
            var i=b[g]||{};
            
            c[f](i.type)&&e[L](d[i.type]().attr(i))
            }
            return e
        }
        return bV[m](a,arguments)
    }
    a.version="1.5.2";
var b=/[, ]+/,c={
    circle:1,
    rect:1,
    path:1,
    ellipse:1,
    text:1,
    image:1
},d=/\{(\d+)\}/g,e="prototype",f="hasOwnProperty",g=document,h=window,i={
    was:Object[e][f].call(h,"Raphael"),
    is:h.Raphael
    },j=function(){
    this.customAttributes={}
},k,l="appendChild",m="apply",n="concat",o="createTouch"in g,p="",q=" ",r=String,s="split",t="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend orientationchange touchcancel gesturestart gesturechange gestureend"[s](q),u={
    mousedown:"touchstart",
    mousemove:"touchmove",
    mouseup:"touchend"
},v="join",w="length",x=r[e].toLowerCase,y=Math,z=y.max,A=y.min,B=y.abs,C=y.pow,D=y.PI,E="number",F="string",G="array",H="toString",I="fill",J=Object[e][H],K={},L="push",M=/^url\(['"]?([^\)]+?)['"]?\)$/i,N=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,O={
    NaN:1,
    Infinity:1,
    "-Infinity":1
},P=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,Q=y.round,R="setAttribute",S=parseFloat,T=parseInt,U=" progid:DXImageTransform.Microsoft",V=r[e].toUpperCase,W={
    blur:0,
    "clip-rect":"0 0 1e9 1e9",
    cursor:"default",
    cx:0,
    cy:0,
    fill:"#fff",
    "fill-opacity":1,
    font:'10px "Arial"',
    "font-family":'"Arial"',
    "font-size":"10",
    "font-style":"normal",
    "font-weight":400,
    gradient:0,
    height:0,
    href:"http://raphaeljs.com/",
    opacity:1,
    path:"M0,0",
    r:0,
    rotation:0,
    rx:0,
    ry:0,
    scale:"1 1",
    src:"",
    stroke:"#000",
    "stroke-dasharray":"",
    "stroke-linecap":"butt",
    "stroke-linejoin":"butt",
    "stroke-miterlimit":0,
    "stroke-opacity":1,
    "stroke-width":1,
    target:"_blank",
    "text-anchor":"middle",
    title:"Raphael",
    translation:"0 0",
    width:0,
    x:0,
    y:0
},X={
    along:"along",
    blur:E,
    "clip-rect":"csv",
    cx:E,
    cy:E,
    fill:"colour",
    "fill-opacity":E,
    "font-size":E,
    height:E,
    opacity:E,
    path:"path",
    r:E,
    rotation:"csv",
    rx:E,
    ry:E,
    scale:"csv",
    stroke:"colour",
    "stroke-opacity":E,
    "stroke-width":E,
    translation:"csv",
    width:E,
    x:E,
    y:E
},Y="replace",Z=/^(from|to|\d+%?)$/,$=/\s*,\s*/,_={
    hs:1,
    rg:1
},ba=/,?([achlmqrstvxz]),?/gi,bb=/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,bc=/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,bd=/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,be=function(a,b){
    return a.key-b.key
    };
    
a.type=h.SVGAngle||g.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML";
    if(a.type=="VML"){
    var bf=g.createElement("div"),bg;
    bf.innerHTML='<v:shape adj="1"/>',bg=bf.firstChild,bg.style.behavior="url(#default#VML)";
    if(!bg||typeof bg.adj!="object")return a.type=null;
    bf=null
    }
    a.svg=!(a.vml=a.type=="VML"),j[e]=a[e],k=j[e],a._id=0,a._oid=0,a.fn={},a.is=function(a,b){
    b=x.call(b);
    if(b=="finite")return!O[f](+a);
    return b=="null"&&a===null||b==typeof a||b=="object"&&a===Object(a)||b=="array"&&Array.isArray&&Array.isArray(a)||J.call(a).slice(8,-1).toLowerCase()==b
    },a.angle=function(b,c,d,e,f,g){
    if(f==null){
        var h=b-d,i=c-e;
        if(!h&&!i)return 0;
        return((h<0)*180+y.atan(-i/-h)*180/D+360)%360
        }
        return a.angle(b,c,f,g)-a.angle(d,e,f,g)
    },a.rad=function(a){
    return a%360*D/180
    },a.deg=function(a){
    return a*180/D%360
    },a.snapTo=function(b,c,d){
    d=a.is(d,"finite")?d:10;
    if(a.is(b,G)){
        var e=b.length;
        while(e--)if(B(b[e]-c)<=d)return b[e]
            }else{
        b=+b;
        var f=c%b;
        if(f<d)return c-f;
        if(f>b-d)return c-f+b
            }
            return c
    },a.setWindow=function(a){
    h=a,g=h.document
    };
    
var bi=function(b){
    if(a.vml){
        var c=/^\s+|\s+$/g,d;
        try{
            var e=new ActiveXObject("htmlfile");
            e.write("<body>"),e.close(),d=e.body
            }catch(f){
            d=createPopup().document.body
            }
            var h=d.createTextRange();
        bi=bm(function(a){
            try{
                d.style.color=r(a)[Y](c,p);
                var b=h.queryCommandValue("ForeColor");
                b=(b&255)<<16|b&65280|(b&16711680)>>>16;
                return"#"+("000000"+b[H](16)).slice(-6)
                }catch(e){
                return"none"
                }
            })
    }else{
    var i=g.createElement("i");
    i.title="Raphaël Colour Picker",i.style.display="none",g.body[l](i),bi=bm(function(a){
        i.style.color=a;
        return g.defaultView.getComputedStyle(i,p).getPropertyValue("color")
        })
    }
    return bi(b)
    },bj=function(){
    return"hsb("+[this.h,this.s,this.b]+")"
    },bk=function(){
    return"hsl("+[this.h,this.s,this.l]+")"
    },bl=function(){
    return this.hex
    };
    
a.hsb2rgb=function(b,c,d,e){
    a.is(b,"object")&&"h"in b&&"s"in b&&"b"in b&&(d=b.b,c=b.s,b=b.h,e=b.o);
    return a.hsl2rgb(b,c,d/2,e)
    },a.hsl2rgb=function(b,c,d,e){
    a.is(b,"object")&&"h"in b&&"s"in b&&"l"in b&&(d=b.l,c=b.s,b=b.h);
    if(b>1||c>1||d>1)b/=360,c/=100,d/=100;
    var f={},g=["r","g","b"],h,i,j,k,l,m;
    if(!c)f={
        r:d,
        g:d,
        b:d
    };
    else{
        d<.5?h=d*(1+c):h=d+c-d*c,i=2*d-h;
        for(var n=0;n<3;n++)j=b+1/3*-(n-1),j<0&&j++,j>1&&j--,j*6<1?f[g[n]]=i+(h-i)*6*j:j*2<1?f[g[n]]=h:j*3<2?f[g[n]]=i+(h-i)*(2/3-j)*6:f[g[n]]=i
            }
            f.r*=255,f.g*=255,f.b*=255,f.hex="#"+(16777216|f.b|f.g<<8|f.r<<16).toString(16).slice(1),a.is(e,"finite")&&(f.opacity=e),f.toString=bl;
    return f
    },a.rgb2hsb=function(b,c,d){
    c==null&&a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b&&(d=b.b,c=b.g,b=b.r);
    if(c==null&&a.is(b,F)){
        var e=a.getRGB(b);
        b=e.r,c=e.g,d=e.b
        }
        if(b>1||c>1||d>1)b/=255,c/=255,d/=255;
    var f=z(b,c,d),g=A(b,c,d),h,i,j=f;
    if(g==f)return{
        h:0,
        s:0,
        b:f,
        toString:bj
    };
    
    var k=f-g;
    i=k/f,b==f?h=(c-d)/k:c==f?h=2+(d-b)/k:h=4+(b-c)/k,h/=6,h<0&&h++,h>1&&h--;
    return{
        h:h,
        s:i,
        b:j,
        toString:bj
    }
},a.rgb2hsl=function(b,c,d){
    c==null&&a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b&&(d=b.b,c=b.g,b=b.r);
    if(c==null&&a.is(b,F)){
        var e=a.getRGB(b);
        b=e.r,c=e.g,d=e.b
        }
        if(b>1||c>1||d>1)b/=255,c/=255,d/=255;
    var f=z(b,c,d),g=A(b,c,d),h,i,j=(f+g)/2,k;
    if(g==f)k={
        h:0,
        s:0,
        l:j
    };
    else{
        var l=f-g;
        i=j<.5?l/(f+g):l/(2-f-g),b==f?h=(c-d)/l:c==f?h=2+(d-b)/l:h=4+(b-c)/l,h/=6,h<0&&h++,h>1&&h--,k={
            h:h,
            s:i,
            l:j
        }
    }
    k.toString=bk;
return k
},a._path2string=function(){
    return this.join(",")[Y](ba,"$1")
    },a.getRGB=bm(function(b){
    if(!b||!!((b=r(b)).indexOf("-")+1))return{
        r:-1,
        g:-1,
        b:-1,
        hex:"none",
        error:1
    };
    
    if(b=="none")return{
        r:-1,
        g:-1,
        b:-1,
        hex:"none"
    };
    !_[f](b.toLowerCase().substring(0,2))&&b.charAt()!="#"&&(b=bi(b));
    var c,d,e,g,h,i,j,k=b.match(N);
    if(k){
        k[2]&&(g=T(k[2].substring(5),16),e=T(k[2].substring(3,5),16),d=T(k[2].substring(1,3),16)),k[3]&&(g=T((i=k[3].charAt(3))+i,16),e=T((i=k[3].charAt(2))+i,16),d=T((i=k[3].charAt(1))+i,16)),k[4]&&(j=k[4][s]($),d=S(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=S(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),g=S(j[2]),j[2].slice(-1)=="%"&&(g*=2.55),k[1].toLowerCase().slice(0,4)=="rgba"&&(h=S(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100));
        if(k[5]){
            j=k[5][s]($),d=S(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=S(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),g=S(j[2]),j[2].slice(-1)=="%"&&(g*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="°")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsba"&&(h=S(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);
            return a.hsb2rgb(d,e,g,h)
            }
            if(k[6]){
            j=k[6][s]($),d=S(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=S(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),g=S(j[2]),j[2].slice(-1)=="%"&&(g*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="°")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsla"&&(h=S(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);
            return a.hsl2rgb(d,e,g,h)
            }
            k={
            r:d,
            g:e,
            b:g
        },k.hex="#"+(16777216|g|e<<8|d<<16).toString(16).slice(1),a.is(h,"finite")&&(k.opacity=h);
        return k
        }
        return{
        r:-1,
        g:-1,
        b:-1,
        hex:"none",
        error:1
    }
},a),a.getColor=function(a){
    var b=this.getColor.start=this.getColor.start||{
        h:0,
        s:1,
        b:a||.75
        },c=this.hsb2rgb(b.h,b.s,b.b);
    b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={
        h:0,
        s:1,
        b:b.b
        }));
    return c.hex
    },a.getColor.reset=function(){
    delete this.start
    },a.parsePathString=bm(function(b){
    if(!b)return null;
    var c={
        a:7,
        c:6,
        h:1,
        l:2,
        m:2,
        q:4,
        s:4,
        t:2,
        v:1,
        z:0
    },d=[];
    a.is(b,G)&&a.is(b[0],G)&&(d=bo(b)),d[w]||r(b)[Y](bb,function(a,b,e){
        var f=[],g=x.call(b);
        e[Y](bc,function(a,b){
            b&&f[L](+b)
            }),g=="m"&&f[w]>2&&(d[L]([b][n](f.splice(0,2))),g="l",b=b=="m"?"l":"L");
        while(f[w]>=c[g]){
            d[L]([b][n](f.splice(0,c[g])));
            if(!c[g])break
        }
    }),d[H]=a._path2string;
return d
}),a.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){
    var j=1-i,k=C(j,3)*a+C(j,2)*3*i*c+j*3*i*i*e+C(i,3)*g,l=C(j,3)*b+C(j,2)*3*i*d+j*3*i*i*f+C(i,3)*h,m=a+2*i*(c-a)+i*i*(e-2*c+a),n=b+2*i*(d-b)+i*i*(f-2*d+b),o=c+2*i*(e-c)+i*i*(g-2*e+c),p=d+2*i*(f-d)+i*i*(h-2*f+d),q=(1-i)*a+i*c,r=(1-i)*b+i*d,s=(1-i)*e+i*g,t=(1-i)*f+i*h,u=90-y.atan((m-o)/(n-p))*180/D;
    (m>o||n<p)&&(u+=180);
    return{
        x:k,
        y:l,
        m:{
            x:m,
            y:n
        },
        n:{
            x:o,
            y:p
        },
        start:{
            x:q,
            y:r
        },
        end:{
            x:s,
            y:t
        },
        alpha:u
    }
};

var bn=bm(function(a){
    if(!a)return{
        x:0,
        y:0,
        width:0,
        height:0
    };
    
    a=bw(a);
    var b=0,c=0,d=[],e=[],f;
    for(var g=0,h=a[w];g<h;g++){
        f=a[g];
        if(f[0]=="M")b=f[1],c=f[2],d[L](b),e[L](c);
        else{
            var i=bv(b,c,f[1],f[2],f[3],f[4],f[5],f[6]);
            d=d[n](i.min.x,i.max.x),e=e[n](i.min.y,i.max.y),b=f[5],c=f[6]
            }
        }
    var j=A[m](0,d),k=A[m](0,e);
    return{
    x:j,
    y:k,
    width:z[m](0,d)-j,
    height:z[m](0,e)-k
    }
}),bo=function(b){
    var c=[];
    if(!a.is(b,G)||!a.is(b&&b[0],G))b=a.parsePathString(b);
    for(var d=0,e=b[w];d<e;d++){
        c[d]=[];
        for(var f=0,g=b[d][w];f<g;f++)c[d][f]=b[d][f]
            }
            c[H]=a._path2string;
    return c
    },bp=bm(function(b){
    if(!a.is(b,G)||!a.is(b&&b[0],G))b=a.parsePathString(b);
    var c=[],d=0,e=0,f=0,g=0,h=0;
    b[0][0]=="M"&&(d=b[0][1],e=b[0][2],f=d,g=e,h++,c[L](["M",d,e]));
    for(var i=h,j=b[w];i<j;i++){
        var k=c[i]=[],l=b[i];
        if(l[0]!=x.call(l[0])){
            k[0]=x.call(l[0]);
            switch(k[0]){
                case"a":
                    k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]-d).toFixed(3),k[7]=+(l[7]-e).toFixed(3);
                    break;
                case"v":
                    k[1]=+(l[1]-e).toFixed(3);
                    break;
                case"m":
                    f=l[1],g=l[2];
                default:
                    for(var m=1,n=l[w];m<n;m++)k[m]=+(l[m]-(m%2?d:e)).toFixed(3)
                    }
                }else{
        k=c[i]=[],l[0]=="m"&&(f=l[1]+d,g=l[2]+e);
        for(var o=0,p=l[w];o<p;o++)c[i][o]=l[o]
            }
            var q=c[i][w];
    switch(c[i][0]){
        case"z":
            d=f,e=g;
            break;
        case"h":
            d+=+c[i][q-1];
            break;
        case"v":
            e+=+c[i][q-1];
            break;
        default:
            d+=+c[i][q-2],e+=+c[i][q-1]
            }
        }
    c[H]=a._path2string;
return c
},0,bo),bq=bm(function(b){
    if(!a.is(b,G)||!a.is(b&&b[0],G))b=a.parsePathString(b);
    var c=[],d=0,e=0,f=0,g=0,h=0;
    b[0][0]=="M"&&(d=+b[0][1],e=+b[0][2],f=d,g=e,h++,c[0]=["M",d,e]);
    for(var i=h,j=b[w];i<j;i++){
        var k=c[i]=[],l=b[i];
        if(l[0]!=V.call(l[0])){
            k[0]=V.call(l[0]);
            switch(k[0]){
                case"A":
                    k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]+d),k[7]=+(l[7]+e);
                    break;
                case"V":
                    k[1]=+l[1]+e;
                    break;
                case"H":
                    k[1]=+l[1]+d;
                    break;
                case"M":
                    f=+l[1]+d,g=+l[2]+e;
                default:
                    for(var m=1,n=l[w];m<n;m++)k[m]=+l[m]+(m%2?d:e)
                    }
                }else for(var o=0,p=l[w];o<p;o++)c[i][o]=l[o];
        switch(k[0]){
        case"Z":
            d=f,e=g;
            break;
        case"H":
            d=k[1];
            break;
        case"V":
            e=k[1];
            break;
        case"M":
            f=c[i][c[i][w]-2],g=c[i][c[i][w]-1];
        default:
            d=c[i][c[i][w]-2],e=c[i][c[i][w]-1]
            }
        }
    c[H]=a._path2string;
return c
},null,bo),br=function(a,b,c,d){
    return[a,b,c,d,c,d]
    },bs=function(a,b,c,d,e,f){
    var g=1/3,h=2/3;
    return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]
    },bt=function(a,b,c,d,e,f,g,h,i,j){
    var k=D*120/180,l=D/180*(+e||0),m=[],o,p=bm(function(a,b,c){
        var d=a*y.cos(c)-b*y.sin(c),e=a*y.sin(c)+b*y.cos(c);
        return{
            x:d,
            y:e
        }
    });
if(!j){
    o=p(a,b,-l),a=o.x,b=o.y,o=p(h,i,-l),h=o.x,i=o.y;
    var q=y.cos(D/180*e),r=y.sin(D/180*e),t=(a-h)/2,u=(b-i)/2,x=t*t/(c*c)+u*u/(d*d);
    x>1&&(x=y.sqrt(x),c=x*c,d=x*d);
    var z=c*c,A=d*d,C=(f==g?-1:1)*y.sqrt(B((z*A-z*u*u-A*t*t)/(z*u*u+A*t*t))),E=C*c*u/d+(a+h)/2,F=C*-d*t/c+(b+i)/2,G=y.asin(((b-F)/d).toFixed(9)),H=y.asin(((i-F)/d).toFixed(9));
    G=a<E?D-G:G,H=h<E?D-H:H,G<0&&(G=D*2+G),H<0&&(H=D*2+H),g&&G>H&&(G=G-D*2),!g&&H>G&&(H=H-D*2)
    }else G=j[0],H=j[1],E=j[2],F=j[3];
var I=H-G;
if(B(I)>k){
    var J=H,K=h,L=i;
    H=G+k*(g&&H>G?1:-1),h=E+c*y.cos(H),i=F+d*y.sin(H),m=bt(h,i,c,d,e,0,g,K,L,[H,J,E,F])
    }
    I=H-G;
var M=y.cos(G),N=y.sin(G),O=y.cos(H),P=y.sin(H),Q=y.tan(I/4),R=4/3*c*Q,S=4/3*d*Q,T=[a,b],U=[a+R*N,b-S*M],V=[h+R*P,i-S*O],W=[h,i];
U[0]=2*T[0]-U[0],U[1]=2*T[1]-U[1];
if(j)return[U,V,W][n](m);
m=[U,V,W][n](m)[v]()[s](",");
var X=[];
for(var Y=0,Z=m[w];Y<Z;Y++)X[Y]=Y%2?p(m[Y-1],m[Y],l).y:p(m[Y],m[Y+1],l).x;
return X
},bu=function(a,b,c,d,e,f,g,h,i){
    var j=1-i;
    return{
        x:C(j,3)*a+C(j,2)*3*i*c+j*3*i*i*e+C(i,3)*g,
        y:C(j,3)*b+C(j,2)*3*i*d+j*3*i*i*f+C(i,3)*h
        }
    },bv=bm(function(a,b,c,d,e,f,g,h){
    var i=e-2*c+a-(g-2*e+c),j=2*(c-a)-2*(e-c),k=a-c,l=(-j+y.sqrt(j*j-4*i*k))/2/i,n=(-j-y.sqrt(j*j-4*i*k))/2/i,o=[b,h],p=[a,g],q;
    B(l)>"1e12"&&(l=.5),B(n)>"1e12"&&(n=.5),l>0&&l<1&&(q=bu(a,b,c,d,e,f,g,h,l),p[L](q.x),o[L](q.y)),n>0&&n<1&&(q=bu(a,b,c,d,e,f,g,h,n),p[L](q.x),o[L](q.y)),i=f-2*d+b-(h-2*f+d),j=2*(d-b)-2*(f-d),k=b-d,l=(-j+y.sqrt(j*j-4*i*k))/2/i,n=(-j-y.sqrt(j*j-4*i*k))/2/i,B(l)>"1e12"&&(l=.5),B(n)>"1e12"&&(n=.5),l>0&&l<1&&(q=bu(a,b,c,d,e,f,g,h,l),p[L](q.x),o[L](q.y)),n>0&&n<1&&(q=bu(a,b,c,d,e,f,g,h,n),p[L](q.x),o[L](q.y));
    return{
        min:{
            x:A[m](0,p),
            y:A[m](0,o)
            },
        max:{
            x:z[m](0,p),
            y:z[m](0,o)
            }
        }
}),bw=bm(function(a,b){
    var c=bq(a),d=b&&bq(b),e={
        x:0,
        y:0,
        bx:0,
        by:0,
        X:0,
        Y:0,
        qx:null,
        qy:null
    },f={
        x:0,
        y:0,
        bx:0,
        by:0,
        X:0,
        Y:0,
        qx:null,
        qy:null
    },g=function(a,b){
        var c,d;
        if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];
        !(a[0]in{
            T:1,
            Q:1
        })&&(b.qx=b.qy=null);
        switch(a[0]){
            case"M":
                b.X=a[1],b.Y=a[2];
                break;
            case"A":
                a=["C"][n](bt[m](0,[b.x,b.y][n](a.slice(1))));
                break;
            case"S":
                c=b.x+(b.x-(b.bx||b.x)),d=b.y+(b.y-(b.by||b.y)),a=["C",c,d][n](a.slice(1));
                break;
            case"T":
                b.qx=b.x+(b.x-(b.qx||b.x)),b.qy=b.y+(b.y-(b.qy||b.y)),a=["C"][n](bs(b.x,b.y,b.qx,b.qy,a[1],a[2]));
                break;
            case"Q":
                b.qx=a[1],b.qy=a[2],a=["C"][n](bs(b.x,b.y,a[1],a[2],a[3],a[4]));
                break;
            case"L":
                a=["C"][n](br(b.x,b.y,a[1],a[2]));
                break;
            case"H":
                a=["C"][n](br(b.x,b.y,a[1],b.y));
                break;
            case"V":
                a=["C"][n](br(b.x,b.y,b.x,a[1]));
                break;
            case"Z":
                a=["C"][n](br(b.x,b.y,b.X,b.Y))
                }
                return a
        },h=function(a,b){
        if(a[b][w]>7){
            a[b].shift();
            var e=a[b];
            while(e[w])a.splice(b++,0,["C"][n](e.splice(0,6)));
            a.splice(b,1),k=z(c[w],d&&d[w]||0)
            }
        },i=function(a,b,e,f,g){
    a&&b&&a[g][0]=="M"&&b[g][0]!="M"&&(b.splice(g,0,["M",f.x,f.y]),e.bx=0,e.by=0,e.x=a[g][1],e.y=a[g][2],k=z(c[w],d&&d[w]||0))
    };
    
for(var j=0,k=z(c[w],d&&d[w]||0);j<k;j++){
    c[j]=g(c[j],e),h(c,j),d&&(d[j]=g(d[j],f)),d&&h(d,j),i(c,d,e,f,j),i(d,c,f,e,j);
    var l=c[j],o=d&&d[j],p=l[w],q=d&&o[w];
    e.x=l[p-2],e.y=l[p-1],e.bx=S(l[p-4])||e.x,e.by=S(l[p-3])||e.y,f.bx=d&&(S(o[q-4])||f.x),f.by=d&&(S(o[q-3])||f.y),f.x=d&&o[q-2],f.y=d&&o[q-1]
    }
    return d?[c,d]:c
},null,bo),bx=bm(function(b){
    var c=[];
    for(var d=0,e=b[w];d<e;d++){
        var f={},g=b[d].match(/^([^:]*):?([\d\.]*)/);
        f.color=a.getRGB(g[1]);
        if(f.color.error)return null;
        f.color=f.color.hex,g[2]&&(f.offset=g[2]+"%"),c[L](f)
        }
        for(d=1,e=c[w]-1;d<e;d++)if(!c[d].offset){
        var h=S(c[d-1].offset||0),i=0;
        for(var j=d+1;j<e;j++)if(c[j].offset){
            i=c[j].offset;
            break
        }
        i||(i=100,j=e),i=S(i);
        var k=(i-h)/(j-d+1);
        for(;d<j;d++)h+=k,c[d].offset=h+"%"
            }
            return c
    }),by=function(b,c,d,e){
    var f;
    if(!a.is(b,F)&&!a.is(b,"object"))return{
        container:1,
        x:b,
        y:c,
        width:d,
        height:e
    };
    
    f=a.is(b,F)?g.getElementById(b):b;
    if(f.tagName)return c==null?{
        container:f,
        width:f.style.pixelWidth||f.offsetWidth,
        height:f.style.pixelHeight||f.offsetHeight
        }:{
        container:f,
        width:c,
        height:d
    }
    },bz=function(a,b){
    var c=this;
    for(var d in b)if(b[f](d)&&!(d in a))switch(typeof b[d]){
        case"function":
            (function(b){
            a[d]=a===c?b:function(){
                return b[m](c,arguments)
                }
            })(b[d]);
        break;
    case"object":
        a[d]=a[d]||{},bz.call(this,a[d],b[d]);
        break;
        default:
        a[d]=b[d]
        }
    },bA=function(a,b){
    a==b.top&&(b.top=a.prev),a==b.bottom&&(b.bottom=a.next),a.next&&(a.next.prev=a.prev),a.prev&&(a.prev.next=a.next)
    },bB=function(a,b){
    b.top!==a&&(bA(a,b),a.next=null,a.prev=b.top,b.top.next=a,b.top=a)
    },bC=function(a,b){
    b.bottom!==a&&(bA(a,b),a.next=b.bottom,a.prev=null,b.bottom.prev=a,b.bottom=a)
    },bD=function(a,b,c){
    bA(a,c),b==c.top&&(c.top=a),b.next&&(b.next.prev=a),a.next=b.next,a.prev=b,b.next=a
    },bE=function(a,b,c){
    bA(a,c),b==c.bottom&&(c.bottom=a),b.prev&&(b.prev.next=a),a.prev=b.prev,b.prev=a,a.next=b
    },bF=function(a){
    return function(){
        throw new Error("Raphaël: you are calling to method “"+a+"” of removed object")
        }
    };

a.pathToRelative=bp;
if(a.svg){
    k.svgns="http://www.w3.org/2000/svg",k.xlink="http://www.w3.org/1999/xlink",Q=function(a){
        return+a+(~~a===a)*.5
        };
        
    var bG=function(a,b){
        if(!b){
            a=g.createElementNS(k.svgns,a),a.style.webkitTapHighlightColor="rgba(0,0,0,0)";
            return a
            }
            for(var c in b)b[f](c)&&a[R](c,r(b[c]))
            };
            
    a[H]=function(){
        return"Your browser supports SVG.\nYou are running Raphaël "+this.version
        };
        
    var bH=function(a,b){
        var c=bG("path");
        b.canvas&&b.canvas[l](c);
        var d=new bN(c,b);
        d.type="path",bK(d,{
            fill:"none",
            stroke:"#000",
            path:a
        });
        return d
        },bI=function(a,b,c){
        var d="linear",e=.5,f=.5,h=a.style;
        b=r(b)[Y](bd,function(a,b,c){
            d="radial";
            if(b&&c){
                e=S(b),f=S(c);
                var g=(f>.5)*2-1;
                C(e-.5,2)+C(f-.5,2)>.25&&(f=y.sqrt(.25-C(e-.5,2))*g+.5)&&f!=.5&&(f=f.toFixed(5)-1e-5*g)
                }
                return p
            }),b=b[s](/\s*\-\s*/);
        if(d=="linear"){
            var i=b.shift();
            i=-S(i);
            if(isNaN(i))return null;
            var j=[0,0,y.cos(i*D/180),y.sin(i*D/180)],k=1/(z(B(j[2]),B(j[3]))||1);
            j[2]*=k,j[3]*=k,j[2]<0&&(j[0]=-j[2],j[2]=0),j[3]<0&&(j[1]=-j[3],j[3]=0)
            }
            var m=bx(b);
        if(!m)return null;
        var n=a.getAttribute(I);
        n=n.match(/^url\(#(.*)\)$/),n&&c.defs.removeChild(g.getElementById(n[1]));
        var o=bG(d+"Gradient");
        o.id=bh(),bG(o,d=="radial"?{
            fx:e,
            fy:f
        }:{
            x1:j[0],
            y1:j[1],
            x2:j[2],
            y2:j[3]
            }),c.defs[l](o);
        for(var q=0,t=m[w];q<t;q++){
            var u=bG("stop");
            bG(u,{
                offset:m[q].offset?m[q].offset:q?"100%":"0%",
                "stop-color":m[q].color||"#fff"
                }),o[l](u)
            }
            bG(a,{
            fill:"url(#"+o.id+")",
            opacity:1,
            "fill-opacity":1
        }),h.fill=p,h.opacity=1,h.fillOpacity=1;
        return 1
        },bJ=function(b){
        var c=b.getBBox();
        bG(b.pattern,{
            patternTransform:a.format("translate({0},{1})",c.x,c.y)
            })
        },bK=function(c,d){
        var e={
            "":[0],
            none:[0],
            "-":[3,1],
            ".":[1,1],
            "-.":[3,1,1,1],
            "-..":[3,1,1,1,1,1],
            ". ":[1,3],
            "- ":[4,3],
            "--":[8,3],
            "- .":[4,3,1,3],
            "--.":[8,3,1,3],
            "--..":[8,3,1,3,1,3]
            },h=c.node,i=c.attrs,j=c.rotate(),k=function(a,b){
            b=e[x.call(b)];
            if(b){
                var c=a.attrs["stroke-width"]||"1",f=({
                    round:c,
                    square:c,
                    butt:0
                })[a.attrs["stroke-linecap"]||d["stroke-linecap"]]||0,g=[],i=b[w];
                while(i--)g[i]=b[i]*c+(i%2?1:-1)*f;
                bG(h,{
                    "stroke-dasharray":g[v](",")
                    })
                }
            };
        
    d[f]("rotation")&&(j=d.rotation);
    var m=r(j)[s](b);
    m.length-1?(m[1]=+m[1],m[2]=+m[2]):m=null,S(j)&&c.rotate(0,!0);
    for(var n in d)if(d[f](n)){
        if(!W[f](n))continue;
        var o=d[n];
        i[n]=o;
        switch(n){
            case"blur":
                c.blur(o);
                break;
            case"rotation":
                c.rotate(o,!0);
                break;
            case"href":case"title":case"target":
                var t=h.parentNode;
                if(x.call(t.tagName)!="a"){
                var u=bG("a");
                t.insertBefore(u,h),u[l](h),t=u
                }
                n=="target"&&o=="blank"?t.setAttributeNS(c.paper.xlink,"show","new"):t.setAttributeNS(c.paper.xlink,n,o);
                break;
            case"cursor":
                h.style.cursor=o;
                break;
            case"clip-rect":
                var y=r(o)[s](b);
                if(y[w]==4){
                c.clip&&c.clip.parentNode.parentNode.removeChild(c.clip.parentNode);
                var z=bG("clipPath"),A=bG("rect");
                z.id=bh(),bG(A,{
                    x:y[0],
                    y:y[1],
                    width:y[2],
                    height:y[3]
                    }),z[l](A),c.paper.defs[l](z),bG(h,{
                    "clip-path":"url(#"+z.id+")"
                    }),c.clip=A
                }
                if(!o){
                var B=g.getElementById(h.getAttribute("clip-path")[Y](/(^url\(#|\)$)/g,p));
                B&&B.parentNode.removeChild(B),bG(h,{
                    "clip-path":p
                }),delete c.clip
                }
                break;
            case"path":
                c.type=="path"&&bG(h,{
                d:o?i.path=bq(o):"M0,0"
                });
            break;
            case"width":
                h[R](n,o);
                if(i.fx)n="x",o=i.x;else break;case"x":
                i.fx&&(o=-i.x-(i.width||0));
            case"rx":
                if(n=="rx"&&c.type=="rect")break;case"cx":
                m&&(n=="x"||n=="cx")&&(m[1]+=o-i[n]),h[R](n,o),c.pattern&&bJ(c);
                break;
            case"height":
                h[R](n,o);
                if(i.fy)n="y",o=i.y;else break;case"y":
                i.fy&&(o=-i.y-(i.height||0));
            case"ry":
                if(n=="ry"&&c.type=="rect")break;case"cy":
                m&&(n=="y"||n=="cy")&&(m[2]+=o-i[n]),h[R](n,o),c.pattern&&bJ(c);
                break;
            case"r":
                c.type=="rect"?bG(h,{
                rx:o,
                ry:o
            }):h[R](n,o);
                break;
            case"src":
                c.type=="image"&&h.setAttributeNS(c.paper.xlink,"href",o);
                break;
            case"stroke-width":
                h.style.strokeWidth=o,h[R](n,o),i["stroke-dasharray"]&&k(c,i["stroke-dasharray"]);
                break;
            case"stroke-dasharray":
                k(c,o);
                break;
            case"translation":
                var C=r(o)[s](b);
                C[0]=+C[0]||0,C[1]=+C[1]||0,m&&(m[1]+=C[0],m[2]+=C[1]),cA.call(c,C[0],C[1]);
                break;
            case"scale":
                C=r(o)[s](b),c.scale(+C[0]||1,+C[1]||+C[0]||1,isNaN(S(C[2]))?null:+C[2],isNaN(S(C[3]))?null:+C[3]);
                break;
            case I:
                var D=r(o).match(M);
                if(D){
                z=bG("pattern");
                var E=bG("image");
                z.id=bh(),bG(z,{
                    x:0,
                    y:0,
                    patternUnits:"userSpaceOnUse",
                    height:1,
                    width:1
                }),bG(E,{
                    x:0,
                    y:0
                }),E.setAttributeNS(c.paper.xlink,"href",D[1]),z[l](E);
                var F=g.createElement("img");
                F.style.cssText="position:absolute;left:-9999em;top-9999em",F.onload=function(){
                    bG(z,{
                        width:this.offsetWidth,
                        height:this.offsetHeight
                        }),bG(E,{
                        width:this.offsetWidth,
                        height:this.offsetHeight
                        }),g.body.removeChild(this),c.paper.safari()
                    },g.body[l](F),F.src=D[1],c.paper.defs[l](z),h.style.fill="url(#"+z.id+")",bG(h,{
                    fill:"url(#"+z.id+")"
                    }),c.pattern=z,c.pattern&&bJ(c);
                break
            }
            var G=a.getRGB(o);
                if(!G.error)delete d.gradient,delete i.gradient,!a.is(i.opacity,"undefined")&&a.is(d.opacity,"undefined")&&bG(h,{
                opacity:i.opacity
                }),!a.is(i["fill-opacity"],"undefined")&&a.is(d["fill-opacity"],"undefined")&&bG(h,{
                "fill-opacity":i["fill-opacity"]
                });
            else if((({
                circle:1,
                ellipse:1
            })[f](c.type)||r(o).charAt()!="r")&&bI(h,o,c.paper)){
                i.gradient=o,i.fill="none";
                break
            }
            G[f]("opacity")&&bG(h,{
                "fill-opacity":G.opacity>1?G.opacity/100:G.opacity
                });
            case"stroke":
                G=a.getRGB(o),h[R](n,G.hex),n=="stroke"&&G[f]("opacity")&&bG(h,{
                "stroke-opacity":G.opacity>1?G.opacity/100:G.opacity
                });
            break;
            case"gradient":
                (({
                circle:1,
                ellipse:1
            })[f](c.type)||r(o).charAt()!="r")&&bI(h,o,c.paper);
                break;
            case"opacity":
                i.gradient&&!i[f]("stroke-opacity")&&bG(h,{
                "stroke-opacity":o>1?o/100:o
                });
            case"fill-opacity":
                if(i.gradient){
                var H=g.getElementById(h.getAttribute(I)[Y](/^url\(#|\)$/g,p));
                if(H){
                    var J=H.getElementsByTagName("stop");
                    J[J[w]-1][R]("stop-opacity",o)
                    }
                    break
            };
            
            default:
                n=="font-size"&&(o=T(o,10)+"px");
                var K=n[Y](/(\-.)/g,function(a){
                return V.call(a.substring(1))
                });
            h.style[K]=o,h[R](n,o)
                }
            }
    bM(c,d),m?c.rotate(m.join(q)):S(j)&&c.rotate(j,!0)
},bL=1.2,bM=function(b,c){
    if(b.type=="text"&&!!(c[f]("text")||c[f]("font")||c[f]("font-size")||c[f]("x")||c[f]("y"))){
        var d=b.attrs,e=b.node,h=e.firstChild?T(g.defaultView.getComputedStyle(e.firstChild,p).getPropertyValue("font-size"),10):10;
        if(c[f]("text")){
            d.text=c.text;
            while(e.firstChild)e.removeChild(e.firstChild);
            var i=r(c.text)[s]("\n");
            for(var j=0,k=i[w];j<k;j++)if(i[j]){
                var m=bG("tspan");
                j&&bG(m,{
                    dy:h*bL,
                    x:d.x
                    }),m[l](g.createTextNode(i[j])),e[l](m)
                }
            }else{
        i=e.getElementsByTagName("tspan");
        for(j=0,k=i[w];j<k;j++)j&&bG(i[j],{
            dy:h*bL,
            x:d.x
            })
        }
        bG(e,{
        y:d.y
        });
    var n=b.getBBox(),o=d.y-(n.y+n.height/2);
    o&&a.is(o,"finite")&&bG(e,{
        y:d.y+o
        })
    }
},bN=function(b,c){
    var d=0,e=0;
    this[0]=b,this.id=a._oid++,this.node=b,b.raphael=this,this.paper=c,this.attrs=this.attrs||{},this.transformations=[],this._={
        tx:0,
        ty:0,
        rt:{
            deg:0,
            cx:0,
            cy:0
        },
        sx:1,
        sy:1
    },!c.bottom&&(c.bottom=this),this.prev=c.top,c.top&&(c.top.next=this),c.top=this,this.next=null
    },bO=bN[e];
bN[e].rotate=function(c,d,e){
    if(this.removed)return this;
    if(c==null){
        if(this._.rt.cx)return[this._.rt.deg,this._.rt.cx,this._.rt.cy][v](q);
        return this._.rt.deg
        }
        var f=this.getBBox();
    c=r(c)[s](b),c[w]-1&&(d=S(c[1]),e=S(c[2])),c=S(c[0]),d!=null&&d!==!1?this._.rt.deg=c:this._.rt.deg+=c,e==null&&(d=null),this._.rt.cx=d,this._.rt.cy=e,d=d==null?f.x+f.width/2:d,e=e==null?f.y+f.height/2:e,this._.rt.deg?(this.transformations[0]=a.format("rotate({0} {1} {2})",this._.rt.deg,d,e),this.clip&&bG(this.clip,{
        transform:a.format("rotate({0} {1} {2})",-this._.rt.deg,d,e)
        })):(this.transformations[0]=p,this.clip&&bG(this.clip,{
        transform:p
    })),bG(this.node,{
        transform:this.transformations[v](q)
        });
    return this
    },bN[e].hide=function(){
    !this.removed&&(this.node.style.display="none");
    return this
    },bN[e].show=function(){
    !this.removed&&(this.node.style.display="");
    return this
    },bN[e].remove=function(){
    if(!this.removed){
        bA(this,this.paper),this.node.parentNode.removeChild(this.node);
        for(var a in this)delete this[a];this.removed=!0
        }
    },bN[e].getBBox=function(){
    if(this.removed)return this;
    if(this.type=="path")return bn(this.attrs.path);
    if(this.node.style.display=="none"){
        this.show();
        var a=!0
        }
        var b={};
    
    try{
        b=this.node.getBBox()
        }catch(c){}finally{
        b=b||{}
    }
    if(this.type=="text"){
    b={
        x:b.x,
        y:Infinity,
        width:0,
        height:0
    };
    
    for(var d=0,e=this.node.getNumberOfChars();d<e;d++){
        var f=this.node.getExtentOfChar(d);
        f.y<b.y&&(b.y=f.y),f.y+f.height-b.y>b.height&&(b.height=f.y+f.height-b.y),f.x+f.width-b.x>b.width&&(b.width=f.x+f.width-b.x)
        }
    }
    a&&this.hide();
return b
},bN[e].attr=function(b,c){
    if(this.removed)return this;
    if(b==null){
        var d={};
        
        for(var e in this.attrs)this.attrs[f](e)&&(d[e]=this.attrs[e]);this._.rt.deg&&(d.rotation=this.rotate()),(this._.sx!=1||this._.sy!=1)&&(d.scale=this.scale()),d.gradient&&d.fill=="none"&&(d.fill=d.gradient)&&delete d.gradient;
        return d
        }
        if(c==null&&a.is(b,F)){
        if(b=="translation")return cA.call(this);
        if(b=="rotation")return this.rotate();
        if(b=="scale")return this.scale();
        if(b==I&&this.attrs.fill=="none"&&this.attrs.gradient)return this.attrs.gradient;
        return this.attrs[b]
        }
        if(c==null&&a.is(b,G)){
        var g={};
        
        for(var h=0,i=b.length;h<i;h++)g[b[h]]=this.attr(b[h]);
        return g
        }
        if(c!=null){
        var j={};
        
        j[b]=c
        }else b!=null&&a.is(b,"object")&&(j=b);
    for(var k in this.paper.customAttributes)if(this.paper.customAttributes[f](k)&&j[f](k)&&a.is(this.paper.customAttributes[k],"function")){
        var l=this.paper.customAttributes[k].apply(this,[][n](j[k]));
        this.attrs[k]=j[k];
        for(var m in l)l[f](m)&&(j[m]=l[m])
            }
            bK(this,j);
    return this
    },bN[e].toFront=function(){
    if(this.removed)return this;
    this.node.parentNode[l](this.node);
    var a=this.paper;
    a.top!=this&&bB(this,a);
    return this
    },bN[e].toBack=function(){
    if(this.removed)return this;
    if(this.node.parentNode.firstChild!=this.node){
        this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),bC(this,this.paper);
        var a=this.paper
        }
        return this
    },bN[e].insertAfter=function(a){
    if(this.removed)return this;
    var b=a.node||a[a.length-1].node;
    b.nextSibling?b.parentNode.insertBefore(this.node,b.nextSibling):b.parentNode[l](this.node),bD(this,a,this.paper);
    return this
    },bN[e].insertBefore=function(a){
    if(this.removed)return this;
    var b=a.node||a[0].node;
    b.parentNode.insertBefore(this.node,b),bE(this,a,this.paper);
    return this
    },bN[e].blur=function(a){
    var b=this;
    if(+a!==0){
        var c=bG("filter"),d=bG("feGaussianBlur");
        b.attrs.blur=a,c.id=bh(),bG(d,{
            stdDeviation:+a||1.5
            }),c.appendChild(d),b.paper.defs.appendChild(c),b._blur=c,bG(b.node,{
            filter:"url(#"+c.id+")"
            })
        }else b._blur&&(b._blur.parentNode.removeChild(b._blur),delete b._blur,delete b.attrs.blur),b.node.removeAttribute("filter")
        };
        
var bP=function(a,b,c,d){
    var e=bG("circle");
    a.canvas&&a.canvas[l](e);
    var f=new bN(e,a);
    f.attrs={
        cx:b,
        cy:c,
        r:d,
        fill:"none",
        stroke:"#000"
    },f.type="circle",bG(e,f.attrs);
    return f
    },bQ=function(a,b,c,d,e,f){
    var g=bG("rect");
    a.canvas&&a.canvas[l](g);
    var h=new bN(g,a);
    h.attrs={
        x:b,
        y:c,
        width:d,
        height:e,
        r:f||0,
        rx:f||0,
        ry:f||0,
        fill:"none",
        stroke:"#000"
    },h.type="rect",bG(g,h.attrs);
    return h
    },bR=function(a,b,c,d,e){
    var f=bG("ellipse");
    a.canvas&&a.canvas[l](f);
    var g=new bN(f,a);
    g.attrs={
        cx:b,
        cy:c,
        rx:d,
        ry:e,
        fill:"none",
        stroke:"#000"
    },g.type="ellipse",bG(f,g.attrs);
    return g
    },bS=function(a,b,c,d,e,f){
    var g=bG("image");
    bG(g,{
        x:c,
        y:d,
        width:e,
        height:f,
        preserveAspectRatio:"none"
    }),g.setAttributeNS(a.xlink,"href",b),a.canvas&&a.canvas[l](g);
    var h=new bN(g,a);
    h.attrs={
        x:c,
        y:d,
        width:e,
        height:f,
        src:b
    },h.type="image";
    return h
    },bT=function(a,b,c,d){
    var e=bG("text");
    bG(e,{
        x:b,
        y:c,
        "text-anchor":"middle"
    }),a.canvas&&a.canvas[l](e);
    var f=new bN(e,a);
    f.attrs={
        x:b,
        y:c,
        "text-anchor":"middle",
        text:d,
        font:W.font,
        stroke:"none",
        fill:"#000"
    },f.type="text",bK(f,f.attrs);
    return f
    },bU=function(a,b){
    this.width=a||this.width,this.height=b||this.height,this.canvas[R]("width",this.width),this.canvas[R]("height",this.height);
    return this
    },bV=function(){
    var b=by[m](0,arguments),c=b&&b.container,d=b.x,e=b.y,f=b.width,h=b.height;
    if(!c)throw new Error("SVG container not found.");
    var i=bG("svg");
    d=d||0,e=e||0,f=f||512,h=h||342,bG(i,{
        xmlns:"http://www.w3.org/2000/svg",
        version:1.1,
        width:f,
        height:h
    }),c==1?(i.style.cssText="position:absolute;left:"+d+"px;top:"+e+"px",g.body[l](i)):c.firstChild?c.insertBefore(i,c.firstChild):c[l](i),c=new j,c.width=f,c.height=h,c.canvas=i,bz.call(c,c,a.fn),c.clear();
    return c
    };
    
k.clear=function(){
    var a=this.canvas;
    while(a.firstChild)a.removeChild(a.firstChild);
    this.bottom=this.top=null,(this.desc=bG("desc"))[l](g.createTextNode("Created with Raphaël")),a[l](this.desc),a[l](this.defs=bG("defs"))
    },k.remove=function(){
    this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);
    for(var a in this)this[a]=bF(a)
        }
    }
if(a.vml){
    var bW={
        M:"m",
        L:"l",
        C:"c",
        Z:"x",
        m:"t",
        l:"r",
        c:"v",
        z:"x"
    },bX=/([clmz]),?([^clmz]*)/gi,bY=/ progid:\S+Blur\([^\)]+\)/g,bZ=/-?[^,\s-]+/g,b$=1e3+q+1e3,b_=10,ca={
        path:1,
        rect:1
    },cb=function(a){
        var b=/[ahqstv]/ig,c=bq;
        r(a).match(b)&&(c=bw),b=/[clmz]/g;
        if(c==bq&&!r(a).match(b)){
            var d=r(a)[Y](bX,function(a,b,c){
                var d=[],e=x.call(b)=="m",f=bW[b];
                c[Y](bZ,function(a){
                    e&&d[w]==2&&(f+=d+bW[b=="m"?"l":"L"],d=[]),d[L](Q(a*b_))
                    });
                return f+d
                });
            return d
            }
            var e=c(a),f,g;
        d=[];
        for(var h=0,i=e[w];h<i;h++){
            f=e[h],g=x.call(e[h][0]),g=="z"&&(g="x");
            for(var j=1,k=f[w];j<k;j++)g+=Q(f[j]*b_)+(j!=k-1?",":p);
            d[L](g)
            }
            return d[v](q)
        };
        
    a[H]=function(){
        return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version
        },bH=function(a,b){
        var c=cd("group");
        c.style.cssText="position:absolute;left:0;top:0;width:"+b.width+"px;height:"+b.height+"px",c.coordsize=b.coordsize,c.coordorigin=b.coordorigin;
        var d=cd("shape"),e=d.style;
        e.width=b.width+"px",e.height=b.height+"px",d.coordsize=b$,d.coordorigin=b.coordorigin,c[l](d);
        var f=new bN(d,c,b),g={
            fill:"none",
            stroke:"#000"
        };
        
        a&&(g.path=a),f.type="path",f.path=[],f.Path=p,bK(f,g),b.canvas[l](c);
        var h=cd("skew");
        h.on=!0,d.appendChild(h),f.skew=h;
        return f
        },bK=function(c,d){
        c.attrs=c.attrs||{};
        
        var e=c.node,h=c.attrs,i=e.style,j,k=(d.x!=h.x||d.y!=h.y||d.width!=h.width||d.height!=h.height||d.r!=h.r)&&c.type=="rect",m=c;
        for(var n in d)d[f](n)&&(h[n]=d[n]);k&&(h.path=cc(h.x,h.y,h.width,h.height,h.r),c.X=h.x,c.Y=h.y,c.W=h.width,c.H=h.height),d.href&&(e.href=d.href),d.title&&(e.title=d.title),d.target&&(e.target=d.target),d.cursor&&(i.cursor=d.cursor),"blur"in d&&c.blur(d.blur);
        if(d.path&&c.type=="path"||k)e.path=cb(h.path);
        d.rotation!=null&&c.rotate(d.rotation,!0),d.translation&&(j=r(d.translation)[s](b),cA.call(c,j[0],j[1]),c._.rt.cx!=null&&(c._.rt.cx+=+j[0],c._.rt.cy+=+j[1],c.setBox(c.attrs,j[0],j[1]))),d.scale&&(j=r(d.scale)[s](b),c.scale(+j[0]||1,+j[1]||+j[0]||1,+j[2]||null,+j[3]||null));
        if("clip-rect"in d){
            var o=r(d["clip-rect"])[s](b);
            if(o[w]==4){
                o[2]=+o[2]+ +o[0],o[3]=+o[3]+ +o[1];
                var q=e.clipRect||g.createElement("div"),t=q.style,u=e.parentNode;
                t.clip=a.format("rect({1}px {2}px {3}px {0}px)",o),e.clipRect||(t.position="absolute",t.top=0,t.left=0,t.width=c.paper.width+"px",t.height=c.paper.height+"px",u.parentNode.insertBefore(q,u),q[l](u),e.clipRect=q)
                }
                d["clip-rect"]||e.clipRect&&(e.clipRect.style.clip=p)
            }
            c.type=="image"&&d.src&&(e.src=d.src),c.type=="image"&&d.opacity&&(e.filterOpacity=U+".Alpha(opacity="+d.opacity*100+")",i.filter=(e.filterMatrix||p)+(e.filterOpacity||p)),d.font&&(i.font=d.font),d["font-family"]&&(i.fontFamily='"'+d["font-family"][s](",")[0][Y](/^['"]+|['"]+$/g,p)+'"'),d["font-size"]&&(i.fontSize=d["font-size"]),d["font-weight"]&&(i.fontWeight=d["font-weight"]),d["font-style"]&&(i.fontStyle=d["font-style"]);
        if(d.opacity!=null||d["stroke-width"]!=null||d.fill!=null||d.stroke!=null||d["stroke-width"]!=null||d["stroke-opacity"]!=null||d["fill-opacity"]!=null||d["stroke-dasharray"]!=null||d["stroke-miterlimit"]!=null||d["stroke-linejoin"]!=null||d["stroke-linecap"]!=null){
            e=c.shape||e;
            var v=e.getElementsByTagName(I)&&e.getElementsByTagName(I)[0],x=!1;
            !v&&(x=v=cd(I));
            if("fill-opacity"in d||"opacity"in d){
                var y=((+h["fill-opacity"]+1||2)-1)*((+h.opacity+1||2)-1)*((+a.getRGB(d.fill).o+1||2)-1);
                y=A(z(y,0),1),v.opacity=y
                }
                d.fill&&(v.on=!0);
            if(v.on==null||d.fill=="none")v.on=!1;
            if(v.on&&d.fill){
                var B=d.fill.match(M);
                B?(v.src=B[1],v.type="tile"):(v.color=a.getRGB(d.fill).hex,v.src=p,v.type="solid",a.getRGB(d.fill).error&&(m.type in{
                    circle:1,
                    ellipse:1
                }||r(d.fill).charAt()!="r")&&bI(m,d.fill)&&(h.fill="none",h.gradient=d.fill))
                }
                x&&e[l](v);
            var C=e.getElementsByTagName("stroke")&&e.getElementsByTagName("stroke")[0],D=!1;
            !C&&(D=C=cd("stroke"));
            if(d.stroke&&d.stroke!="none"||d["stroke-width"]||d["stroke-opacity"]!=null||d["stroke-dasharray"]||d["stroke-miterlimit"]||d["stroke-linejoin"]||d["stroke-linecap"])C.on=!0;
            (d.stroke=="none"||C.on==null||d.stroke==0||d["stroke-width"]==0)&&(C.on=!1);
            var E=a.getRGB(d.stroke);
            C.on&&d.stroke&&(C.color=E.hex),y=((+h["stroke-opacity"]+1||2)-1)*((+h.opacity+1||2)-1)*((+E.o+1||2)-1);
            var F=(S(d["stroke-width"])||1)*.75;
            y=A(z(y,0),1),d["stroke-width"]==null&&(F=h["stroke-width"]),d["stroke-width"]&&(C.weight=F),F&&F<1&&(y*=F)&&(C.weight=1),C.opacity=y,d["stroke-linejoin"]&&(C.joinstyle=d["stroke-linejoin"]||"miter"),C.miterlimit=d["stroke-miterlimit"]||8,d["stroke-linecap"]&&(C.endcap=d["stroke-linecap"]=="butt"?"flat":d["stroke-linecap"]=="square"?"square":"round");
            if(d["stroke-dasharray"]){
                var G={
                    "-":"shortdash",
                    ".":"shortdot",
                    "-.":"shortdashdot",
                    "-..":"shortdashdotdot",
                    ". ":"dot",
                    "- ":"dash",
                    "--":"longdash",
                    "- .":"dashdot",
                    "--.":"longdashdot",
                    "--..":"longdashdotdot"
                };
                
                C.dashstyle=G[f](d["stroke-dasharray"])?G[d["stroke-dasharray"]]:p
                }
                D&&e[l](C)
            }
            if(m.type=="text"){
            i=m.paper.span.style,h.font&&(i.font=h.font),h["font-family"]&&(i.fontFamily=h["font-family"]),h["font-size"]&&(i.fontSize=h["font-size"]),h["font-weight"]&&(i.fontWeight=h["font-weight"]),h["font-style"]&&(i.fontStyle=h["font-style"]),m.node.string&&(m.paper.span.innerHTML=r(m.node.string)[Y](/</g,"&#60;")[Y](/&/g,"&#38;")[Y](/\n/g,"<br>")),m.W=h.w=m.paper.span.offsetWidth,m.H=h.h=m.paper.span.offsetHeight,m.X=h.x,m.Y=h.y+Q(m.H/2);
            switch(h["text-anchor"]){
                case"start":
                    m.node.style["v-text-align"]="left",m.bbx=Q(m.W/2);
                    break;
                case"end":
                    m.node.style["v-text-align"]="right",m.bbx=-Q(m.W/2);
                    break;
                default:
                    m.node.style["v-text-align"]="center"
                    }
                }
    },bI=function(a,b){
    a.attrs=a.attrs||{};
    
    var c=a.attrs,d,e="linear",f=".5 .5";
    a.attrs.gradient=b,b=r(b)[Y](bd,function(a,b,c){
        e="radial",b&&c&&(b=S(b),c=S(c),C(b-.5,2)+C(c-.5,2)>.25&&(c=y.sqrt(.25-C(b-.5,2))*((c>.5)*2-1)+.5),f=b+q+c);
        return p
        }),b=b[s](/\s*\-\s*/);
    if(e=="linear"){
        var g=b.shift();
        g=-S(g);
        if(isNaN(g))return null
            }
            var h=bx(b);
    if(!h)return null;
    a=a.shape||a.node,d=a.getElementsByTagName(I)[0]||cd(I),!d.parentNode&&a.appendChild(d);
    if(h[w]){
        d.on=!0,d.method="none",d.color=h[0].color,d.color2=h[h[w]-1].color;
        var i=[];
        for(var j=0,k=h[w];j<k;j++)h[j].offset&&i[L](h[j].offset+q+h[j].color);
        d.colors&&(d.colors.value=i[w]?i[v]():"0% "+d.color),e=="radial"?(d.type="gradientradial",d.focus="100%",d.focussize=f,d.focusposition=f):(d.type="gradient",d.angle=(270-g)%360)
        }
        return 1
    },bN=function(b,c,d){
    var e=0,f=0,g=0,h=1;
    this[0]=b,this.id=a._oid++,this.node=b,b.raphael=this,this.X=0,this.Y=0,this.attrs={},this.Group=c,this.paper=d,this._={
        tx:0,
        ty:0,
        rt:{
            deg:0
        },
        sx:1,
        sy:1
    },!d.bottom&&(d.bottom=this),this.prev=d.top,d.top&&(d.top.next=this),d.top=this,this.next=null
    },bO=bN[e],bO.rotate=function(a,c,d){
    if(this.removed)return this;
    if(a==null){
        if(this._.rt.cx)return[this._.rt.deg,this._.rt.cx,this._.rt.cy][v](q);
        return this._.rt.deg
        }
        a=r(a)[s](b),a[w]-1&&(c=S(a[1]),d=S(a[2])),a=S(a[0]),c!=null?this._.rt.deg=a:this._.rt.deg+=a,d==null&&(c=null),this._.rt.cx=c,this._.rt.cy=d,this.setBox(this.attrs,c,d),this.Group.style.rotation=this._.rt.deg;
    return this
    },bO.setBox=function(a,b,c){
    if(this.removed)return this;
    var d=this.Group.style,e=this.shape&&this.shape.style||this.node.style;
    a=a||{};
    
    for(var g in a)a[f](g)&&(this.attrs[g]=a[g]);b=b||this._.rt.cx,c=c||this._.rt.cy;
    var h=this.attrs,i,j,k,l;
    switch(this.type){
        case"circle":
            i=h.cx-h.r,j=h.cy-h.r,k=l=h.r*2;
            break;
        case"ellipse":
            i=h.cx-h.rx,j=h.cy-h.ry,k=h.rx*2,l=h.ry*2;
            break;
        case"image":
            i=+h.x,j=+h.y,k=h.width||0,l=h.height||0;
            break;
        case"text":
            this.textpath.v=["m",Q(h.x),", ",Q(h.y-2),"l",Q(h.x)+1,", ",Q(h.y-2)][v](p),i=h.x-Q(this.W/2),j=h.y-this.H/2,k=this.W,l=this.H;
            break;
        case"rect":case"path":
            if(!this.attrs.path)i=0,j=0,k=this.paper.width,l=this.paper.height;
            else{
            var m=bn(this.attrs.path);
            i=m.x,j=m.y,k=m.width,l=m.height
            }
            break;
        default:
            i=0,j=0,k=this.paper.width,l=this.paper.height
            }
            b=b==null?i+k/2:b,c=c==null?j+l/2:c;
    var n=b-this.paper.width/2,o=c-this.paper.height/2,q;
    d.left!=(q=n+"px")&&(d.left=q),d.top!=(q=o+"px")&&(d.top=q),this.X=ca[f](this.type)?-n:i,this.Y=ca[f](this.type)?-o:j,this.W=k,this.H=l,ca[f](this.type)?(e.left!=(q=-n*b_+"px")&&(e.left=q),e.top!=(q=-o*b_+"px")&&(e.top=q)):this.type=="text"?(e.left!=(q=-n+"px")&&(e.left=q),e.top!=(q=-o+"px")&&(e.top=q)):(d.width!=(q=this.paper.width+"px")&&(d.width=q),d.height!=(q=this.paper.height+"px")&&(d.height=q),e.left!=(q=i-n+"px")&&(e.left=q),e.top!=(q=j-o+"px")&&(e.top=q),e.width!=(q=k+"px")&&(e.width=q),e.height!=(q=l+"px")&&(e.height=q))
    },bO.hide=function(){
    !this.removed&&(this.Group.style.display="none");
    return this
    },bO.show=function(){
    !this.removed&&(this.Group.style.display="block");
    return this
    },bO.getBBox=function(){
    if(this.removed)return this;
    if(ca[f](this.type))return bn(this.attrs.path);
    return{
        x:this.X+(this.bbx||0),
        y:this.Y,
        width:this.W,
        height:this.H
        }
    },bO.remove=function(){
    if(!this.removed){
        bA(this,this.paper),this.node.parentNode.removeChild(this.node),this.Group.parentNode.removeChild(this.Group),this.shape&&this.shape.parentNode.removeChild(this.shape);
        for(var a in this)delete this[a];this.removed=!0
        }
    },bO.attr=function(b,c){
    if(this.removed)return this;
    if(b==null){
        var d={};
        
        for(var e in this.attrs)this.attrs[f](e)&&(d[e]=this.attrs[e]);this._.rt.deg&&(d.rotation=this.rotate()),(this._.sx!=1||this._.sy!=1)&&(d.scale=this.scale()),d.gradient&&d.fill=="none"&&(d.fill=d.gradient)&&delete d.gradient;
        return d
        }
        if(c==null&&a.is(b,"string")){
        if(b=="translation")return cA.call(this);
        if(b=="rotation")return this.rotate();
        if(b=="scale")return this.scale();
        if(b==I&&this.attrs.fill=="none"&&this.attrs.gradient)return this.attrs.gradient;
        return this.attrs[b]
        }
        if(this.attrs&&c==null&&a.is(b,G)){
        var g,h={};
        
        for(e=0,g=b[w];e<g;e++)h[b[e]]=this.attr(b[e]);
        return h
        }
        var i;
    c!=null&&(i={},i[b]=c),c==null&&a.is(b,"object")&&(i=b);
    if(i){
        for(var j in this.paper.customAttributes)if(this.paper.customAttributes[f](j)&&i[f](j)&&a.is(this.paper.customAttributes[j],"function")){
            var k=this.paper.customAttributes[j].apply(this,[][n](i[j]));
            this.attrs[j]=i[j];
            for(var l in k)k[f](l)&&(i[l]=k[l])
                }
                i.text&&this.type=="text"&&(this.node.string=i.text),bK(this,i),i.gradient&&(({
            circle:1,
            ellipse:1
        })[f](this.type)||r(i.gradient).charAt()!="r")&&bI(this,i.gradient),(!ca[f](this.type)||this._.rt.deg)&&this.setBox(this.attrs)
        }
        return this
    },bO.toFront=function(){
    !this.removed&&this.Group.parentNode[l](this.Group),this.paper.top!=this&&bB(this,this.paper);
    return this
    },bO.toBack=function(){
    if(this.removed)return this;
    this.Group.parentNode.firstChild!=this.Group&&(this.Group.parentNode.insertBefore(this.Group,this.Group.parentNode.firstChild),bC(this,this.paper));
    return this
    },bO.insertAfter=function(a){
    if(this.removed)return this;
    a.constructor==cD&&(a=a[a.length-1]),a.Group.nextSibling?a.Group.parentNode.insertBefore(this.Group,a.Group.nextSibling):a.Group.parentNode[l](this.Group),bD(this,a,this.paper);
    return this
    },bO.insertBefore=function(a){
    if(this.removed)return this;
    a.constructor==cD&&(a=a[0]),a.Group.parentNode.insertBefore(this.Group,a.Group),bE(this,a,this.paper);
    return this
    },bO.blur=function(b){
    var c=this.node.runtimeStyle,d=c.filter;
    d=d.replace(bY,p),+b!==0?(this.attrs.blur=b,c.filter=d+q+U+".Blur(pixelradius="+(+b||1.5)+")",c.margin=a.format("-{0}px 0 0 -{0}px",Q(+b||1.5))):(c.filter=d,c.margin=0,delete this.attrs.blur)
    },bP=function(a,b,c,d){
    var e=cd("group"),f=cd("oval"),g=f.style;
    e.style.cssText="position:absolute;left:0;top:0;width:"+a.width+"px;height:"+a.height+"px",e.coordsize=b$,e.coordorigin=a.coordorigin,e[l](f);
    var h=new bN(f,e,a);
    h.type="circle",bK(h,{
        stroke:"#000",
        fill:"none"
    }),h.attrs.cx=b,h.attrs.cy=c,h.attrs.r=d,h.setBox({
        x:b-d,
        y:c-d,
        width:d*2,
        height:d*2
        }),a.canvas[l](e);
    return h
    };
    
function cc(b,c,d,e,f){
    return f?a.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z",b+f,c,d-f*2,f,-f,e-f*2,f*2-d,f*2-e):a.format("M{0},{1}l{2},0,0,{3},{4},0z",b,c,d,e,-d)
    }
    bQ=function(a,b,c,d,e,f){
    var g=cc(b,c,d,e,f),h=a.path(g),i=h.attrs;
    h.X=i.x=b,h.Y=i.y=c,h.W=i.width=d,h.H=i.height=e,i.r=f,i.path=g,h.type="rect";
    return h
    },bR=function(a,b,c,d,e){
    var f=cd("group"),g=cd("oval"),h=g.style;
    f.style.cssText="position:absolute;left:0;top:0;width:"+a.width+"px;height:"+a.height+"px",f.coordsize=b$,f.coordorigin=a.coordorigin,f[l](g);
    var i=new bN(g,f,a);
    i.type="ellipse",bK(i,{
        stroke:"#000"
    }),i.attrs.cx=b,i.attrs.cy=c,i.attrs.rx=d,i.attrs.ry=e,i.setBox({
        x:b-d,
        y:c-e,
        width:d*2,
        height:e*2
        }),a.canvas[l](f);
    return i
    },bS=function(a,b,c,d,e,f){
    var g=cd("group"),h=cd("image");
    g.style.cssText="position:absolute;left:0;top:0;width:"+a.width+"px;height:"+a.height+"px",g.coordsize=b$,g.coordorigin=a.coordorigin,h.src=b,g[l](h);
    var i=new bN(h,g,a);
    i.type="image",i.attrs.src=b,i.attrs.x=c,i.attrs.y=d,i.attrs.w=e,i.attrs.h=f,i.setBox({
        x:c,
        y:d,
        width:e,
        height:f
    }),a.canvas[l](g);
    var j=cd("skew");
    j.on=!0,h.appendChild(j),i.skew=j;
    return i
    },bT=function(b,c,d,e){
    var f=cd("group"),g=cd("shape"),h=g.style,i=cd("path"),j=i.style,k=cd("textpath");
    f.style.cssText="position:absolute;left:0;top:0;width:"+b.width+"px;height:"+b.height+"px",f.coordsize=b$,f.coordorigin=b.coordorigin,i.v=a.format("m{0},{1}l{2},{1}",Q(c*10),Q(d*10),Q(c*10)+1),i.textpathok=!0,h.width=b.width,h.height=b.height,k.string=r(e),k.on=!0,g[l](k),g[l](i),f[l](g);
    var m=new bN(k,f,b);
    m.shape=g,m.textpath=i,m.type="text",m.attrs.text=e,m.attrs.x=c,m.attrs.y=d,m.attrs.w=1,m.attrs.h=1,bK(m,{
        font:W.font,
        stroke:"none",
        fill:"#000"
    }),m.setBox(),b.canvas[l](f);
    return m
    },bU=function(a,b){
    var c=this.canvas.style;
    a==+a&&(a+="px"),b==+b&&(b+="px"),c.width=a,c.height=b,c.clip="rect(0 "+a+" "+b+" 0)";
    return this
    };
    
var cd;
g.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");
try{
    !g.namespaces.rvml&&g.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),cd=function(a){
        return g.createElement("<rvml:"+a+' class="rvml">')
        }
    }catch(ce){
    cd=function(a){
        return g.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')
        }
    }
bV=function(){
    var b=by[m](0,arguments),c=b.container,d=b.height,e,f=b.width,h=b.x,i=b.y;
    if(!c)throw new Error("VML container not found.");
    var k=new j,n=k.canvas=g.createElement("div"),o=n.style;
    h=h||0,i=i||0,f=f||512,d=d||342,f==+f&&(f+="px"),d==+d&&(d+="px"),k.width=1e3,k.height=1e3,k.coordsize=b_*1e3+q+b_*1e3,k.coordorigin="0 0",k.span=g.createElement("span"),k.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",n[l](k.span),o.cssText=a.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",f,d),c==1?(g.body[l](n),o.left=h+"px",o.top=i+"px",o.position="absolute"):c.firstChild?c.insertBefore(n,c.firstChild):c[l](n),bz.call(k,k,a.fn);
    return k
    },k.clear=function(){
    this.canvas.innerHTML=p,this.span=g.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas[l](this.span),this.bottom=this.top=null
    },k.remove=function(){
    this.canvas.parentNode.removeChild(this.canvas);
    for(var a in this)this[a]=bF(a);return!0
    }
}
var cf=navigator.userAgent.match(/Version\/(.*?)\s/);
navigator.vendor=="Apple Computer, Inc."&&(cf&&cf[1]<4||navigator.platform.slice(0,2)=="iP")?k.safari=function(){
    var a=this.rect(-99,-99,this.width+99,this.height+99).attr({
        stroke:"none"
    });
    h.setTimeout(function(){
        a.remove()
        })
    }:k.safari=function(){};

var cg=function(){
    this.returnValue=!1
    },ch=function(){
    return this.originalEvent.preventDefault()
    },ci=function(){
    this.cancelBubble=!0
    },cj=function(){
    return this.originalEvent.stopPropagation()
    },ck=function(){
    if(g.addEventListener)return function(a,b,c,d){
        var e=o&&u[b]?u[b]:b,g=function(e){
            if(o&&u[f](b))for(var g=0,h=e.targetTouches&&e.targetTouches.length;g<h;g++)if(e.targetTouches[g].target==a){
                var i=e;
                e=e.targetTouches[g],e.originalEvent=i,e.preventDefault=ch,e.stopPropagation=cj;
                break
            }
            return c.call(d,e)
            };
            
        a.addEventListener(e,g,!1);
        return function(){
            a.removeEventListener(e,g,!1);
            return!0
            }
        };
    
if(g.attachEvent)return function(a,b,c,d){
    var e=function(a){
        a=a||h.event,a.preventDefault=a.preventDefault||cg,a.stopPropagation=a.stopPropagation||ci;
        return c.call(d,a)
        };
        
    a.attachEvent("on"+b,e);
    var f=function(){
        a.detachEvent("on"+b,e);
        return!0
        };
        
    return f
    }
}(),cl=[],cm=function(a){
    var b=a.clientX,c=a.clientY,d=g.documentElement.scrollTop||g.body.scrollTop,e=g.documentElement.scrollLeft||g.body.scrollLeft,f,h=cl.length;
    while(h--){
        f=cl[h];
        if(o){
            var i=a.touches.length,j;
            while(i--){
                j=a.touches[i];
                if(j.identifier==f.el._drag.id){
                    b=j.clientX,c=j.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();
                    break
                }
            }
        }else a.preventDefault();
b+=e,c+=d,f.move&&f.move.call(f.move_scope||f.el,b-f.el._drag.x,c-f.el._drag.y,b,c,a)
}
},cn=function(b){
    a.unmousemove(cm).unmouseup(cn);
    var c=cl.length,d;
    while(c--)d=cl[c],d.el._drag={},d.end&&d.end.call(d.end_scope||d.start_scope||d.move_scope||d.el,b);
    cl=[]
    };
    
for(var co=t[w];co--;)(function(b){
    a[b]=bN[e][b]=function(c,d){
        a.is(c,"function")&&(this.events=this.events||[],this.events.push({
            name:b,
            f:c,
            unbind:ck(this.shape||this.node||g,b,c,d||this)
            }));
        return this
        },a["un"+b]=bN[e]["un"+b]=function(a){
        var c=this.events,d=c[w];
        while(d--)if(c[d].name==b&&c[d].f==a){
            c[d].unbind(),c.splice(d,1),!c.length&&delete this.events;
            return this
            }
            return this
        }
    })(t[co]);
bO.hover=function(a,b,c,d){
    return this.mouseover(a,c).mouseout(b,d||c)
    },bO.unhover=function(a,b){
    return this.unmouseover(a).unmouseout(b)
    },bO.drag=function(b,c,d,e,f,h){
    this._drag={},this.mousedown(function(i){
        (i.originalEvent||i).preventDefault();
        var j=g.documentElement.scrollTop||g.body.scrollTop,k=g.documentElement.scrollLeft||g.body.scrollLeft;
        this._drag.x=i.clientX+k,this._drag.y=i.clientY+j,this._drag.id=i.identifier,c&&c.call(f||e||this,i.clientX+k,i.clientY+j,i),!cl.length&&a.mousemove(cm).mouseup(cn),cl.push({
            el:this,
            move:b,
            end:d,
            move_scope:e,
            start_scope:f,
            end_scope:h
        })
        });
    return this
    },bO.undrag=function(b,c,d){
    var e=cl.length;
    while(e--)cl[e].el==this&&cl[e].move==b&&cl[e].end==d&&cl.splice(e++,1);
    !cl.length&&a.unmousemove(cm).unmouseup(cn)
    },k.circle=function(a,b,c){
    return bP(this,a||0,b||0,c||0)
    },k.rect=function(a,b,c,d,e){
    return bQ(this,a||0,b||0,c||0,d||0,e||0)
    },k.ellipse=function(a,b,c,d){
    return bR(this,a||0,b||0,c||0,d||0)
    },k.path=function(b){
    b&&!a.is(b,F)&&!a.is(b[0],G)&&(b+=p);
    return bH(a.format[m](a,arguments),this)
    },k.image=function(a,b,c,d,e){
    return bS(this,a||"about:blank",b||0,c||0,d||0,e||0)
    },k.text=function(a,b,c){
    return bT(this,a||0,b||0,r(c))
    },k.set=function(a){
    arguments[w]>1&&(a=Array[e].splice.call(arguments,0,arguments[w]));
    return new cD(a)
    },k.setSize=bU,k.top=k.bottom=null,k.raphael=a,bO.resetScale=function(){
    if(this.removed)return this;
    this._.sx=1,this._.sy=1,this.attrs.scale="1 1"
    },bO.scale=function(a,b,c,d){
    if(this.removed)return this;
    if(a==null&&b==null)return{
        x:this._.sx,
        y:this._.sy,
        toString:cp
    };
    
    b=b||a,!+b&&(b=a);
    var e,f,g,h,i=this.attrs;
    if(a!=0){
        var j=this.getBBox(),k=j.x+j.width/2,l=j.y+j.height/2,m=B(a/this._.sx),o=B(b/this._.sy);
        c=+c||c==0?c:k,d=+d||d==0?d:l;
        var r=this._.sx>0,s=this._.sy>0,t=~~(a/B(a)),u=~~(b/B(b)),x=m*t,y=o*u,z=this.node.style,A=c+B(k-c)*x*(k>c==r?1:-1),C=d+B(l-d)*y*(l>d==s?1:-1),D=a*t>b*u?o:m;
        switch(this.type){
            case"rect":case"image":
                var E=i.width*m,F=i.height*o;
                this.attr({
                height:F,
                r:i.r*D,
                width:E,
                x:A-E/2,
                y:C-F/2
                });
            break;
            case"circle":case"ellipse":
                this.attr({
                rx:i.rx*m,
                ry:i.ry*o,
                r:i.r*D,
                cx:A,
                cy:C
            });
            break;
            case"text":
                this.attr({
                x:A,
                y:C
            });
            break;
            case"path":
                var G=bp(i.path),H=!0,I=r?x:m,J=s?y:o;
                for(var K=0,L=G[w];K<L;K++){
                var M=G[K],N=V.call(M[0]);
                if(N=="M"&&H)continue;
                H=!1;
                if(N=="A")M[G[K][w]-2]*=I,M[G[K][w]-1]*=J,M[1]*=m,M[2]*=o,M[5]=+(t+u?!!+M[5]:!+M[5]);
                else if(N=="H")for(var O=1,P=M[w];O<P;O++)M[O]*=I;
                else if(N=="V")for(O=1,P=M[w];O<P;O++)M[O]*=J;else for(O=1,P=M[w];O<P;O++)M[O]*=O%2?I:J
                    }
                    var Q=bn(G);
                e=A-Q.x-Q.width/2,f=C-Q.y-Q.height/2,G[0][1]+=e,G[0][2]+=f,this.attr({
                path:G
            })
            }
            this.type in{
            text:1,
            image:1
        }&&(t!=1||u!=1)?this.transformations?(this.transformations[2]="scale("[n](t,",",u,")"),this.node[R]("transform",this.transformations[v](q)),e=t==-1?-i.x-(E||0):i.x,f=u==-1?-i.y-(F||0):i.y,this.attr({
            x:e,
            y:f
        }),i.fx=t-1,i.fy=u-1):(this.node.filterMatrix=U+".Matrix(M11="[n](t,", M12=0, M21=0, M22=",u,", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')"),z.filter=(this.node.filterMatrix||p)+(this.node.filterOpacity||p)):this.transformations?(this.transformations[2]=p,this.node[R]("transform",this.transformations[v](q)),i.fx=0,i.fy=0):(this.node.filterMatrix=p,z.filter=(this.node.filterMatrix||p)+(this.node.filterOpacity||p)),i.scale=[a,b,c,d][v](q),this._.sx=a,this._.sy=b
        }
        return this
    },bO.clone=function(){
    if(this.removed)return null;
    var a=this.attr();
    delete a.scale,delete a.translation;
    return this.paper[this.type]().attr(a)
    };
    
var cq={},cr=function(b,c,d,e,f,g,h,i,j){
    var k=0,l=100,m=[b,c,d,e,f,g,h,i].join(),n=cq[m],o,p;
    !n&&(cq[m]=n={
        data:[]
    }),n.timer&&clearTimeout(n.timer),n.timer=setTimeout(function(){
        delete cq[m]
    },2e3);
    if(j!=null){
        var q=cr(b,c,d,e,f,g,h,i);
        l=~~q*10
        }
        for(var r=0;r<l+1;r++){
        n.data[j]>r?p=n.data[r*l]:(p=a.findDotsAtSegment(b,c,d,e,f,g,h,i,r/l),n.data[r]=p),r&&(k+=C(C(o.x-p.x,2)+C(o.y-p.y,2),.5));
        if(j!=null&&k>=j)return p;
        o=p
        }
        if(j==null)return k
        },cs=function(b,c){
    return function(d,e,f){
        d=bw(d);
        var g,h,i,j,k="",l={},m,n=0;
        for(var o=0,p=d.length;o<p;o++){
            i=d[o];
            if(i[0]=="M")g=+i[1],h=+i[2];
            else{
                j=cr(g,h,i[1],i[2],i[3],i[4],i[5],i[6]);
                if(n+j>e){
                    if(c&&!l.start){
                        m=cr(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),k+=["C",m.start.x,m.start.y,m.m.x,m.m.y,m.x,m.y];
                        if(f)return k;
                        l.start=k,k=["M",m.x,m.y+"C",m.n.x,m.n.y,m.end.x,m.end.y,i[5],i[6]][v](),n+=j,g=+i[5],h=+i[6];
                        continue
                    }
                    if(!b&&!c){
                        m=cr(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n);
                        return{
                            x:m.x,
                            y:m.y,
                            alpha:m.alpha
                            }
                        }
                }
            n+=j,g=+i[5],h=+i[6]
        }
        k+=i
        }
        l.end=k,m=b?n:c?l:a.findDotsAtSegment(g,h,i[1],i[2],i[3],i[4],i[5],i[6],1),m.alpha&&(m={
    x:m.x,
    y:m.y,
    alpha:m.alpha
    });
return m
}
},ct=cs(1),cu=cs(),cv=cs(0,1);
bO.getTotalLength=function(){
    if(this.type=="path"){
        if(this.node.getTotalLength)return this.node.getTotalLength();
        return ct(this.attrs.path)
        }
    },bO.getPointAtLength=function(a){
    if(this.type=="path")return cu(this.attrs.path,a)
        },bO.getSubpath=function(a,b){
    if(this.type=="path"){
        if(B(this.getTotalLength()-b)<"1e-6")return cv(this.attrs.path,a).end;
        var c=cv(this.attrs.path,b,1);
        return a?cv(c,a).end:c
        }
    },a.easing_formulas={
    linear:function(a){
        return a
        },
    "<":function(a){
        return C(a,3)
        },
    ">":function(a){
        return C(a-1,3)+1
        },
    "<>":function(a){
        a=a*2;
        if(a<1)return C(a,3)/2;
        a-=2;
        return(C(a,3)+2)/2
        },
    backIn:function(a){
        var b=1.70158;
        return a*a*((b+1)*a-b)
        },
    backOut:function(a){
        a=a-1;
        var b=1.70158;
        return a*a*((b+1)*a+b)+1
        },
    elastic:function(a){
        if(a==0||a==1)return a;
        var b=.3,c=b/4;
        return C(2,-10*a)*y.sin((a-c)*2*D/b)+1
        },
    bounce:function(a){
        var b=7.5625,c=2.75,d;
        a<1/c?d=b*a*a:a<2/c?(a-=1.5/c,d=b*a*a+.75):a<2.5/c?(a-=2.25/c,d=b*a*a+.9375):(a-=2.625/c,d=b*a*a+.984375);
        return d
        }
    };

var cw=[],cx=function(){
    var b=+(new Date);
    for(var c=0;c<cw[w];c++){
        var d=cw[c];
        if(d.stop||d.el.removed)continue;
        var e=b-d.start,g=d.ms,h=d.easing,i=d.from,j=d.diff,k=d.to,l=d.t,m=d.el,n={},o;
        if(e<g){
            var r=h(e/g);
            for(var s in i)if(i[f](s)){
                switch(X[s]){
                    case"along":
                        o=r*g*j[s],k.back&&(o=k.len-o);
                        var t=cu(k[s],o);
                        m.translate(j.sx-j.x||0,j.sy-j.y||0),j.x=t.x,j.y=t.y,m.translate(t.x-j.sx,t.y-j.sy),k.rot&&m.rotate(j.r+t.alpha,t.x,t.y);
                        break;
                    case E:
                        o=+i[s]+r*g*j[s];
                        break;
                    case"colour":
                        o="rgb("+[cz(Q(i[s].r+r*g*j[s].r)),cz(Q(i[s].g+r*g*j[s].g)),cz(Q(i[s].b+r*g*j[s].b))][v](",")+")";
                        break;
                    case"path":
                        o=[];
                        for(var u=0,x=i[s][w];u<x;u++){
                        o[u]=[i[s][u][0]];
                        for(var y=1,z=i[s][u][w];y<z;y++)o[u][y]=+i[s][u][y]+r*g*j[s][u][y];
                        o[u]=o[u][v](q)
                        }
                        o=o[v](q);
                        break;
                    case"csv":
                        switch(s){
                        case"translation":
                            var A=r*g*j[s][0]-l.x,B=r*g*j[s][1]-l.y;
                            l.x+=A,l.y+=B,o=A+q+B;
                            break;
                        case"rotation":
                            o=+i[s][0]+r*g*j[s][0],i[s][1]&&(o+=","+i[s][1]+","+i[s][2]);
                            break;
                        case"scale":
                            o=[+i[s][0]+r*g*j[s][0],+i[s][1]+r*g*j[s][1],2 in k[s]?k[s][2]:p,3 in k[s]?k[s][3]:p][v](q);
                            break;
                        case"clip-rect":
                            o=[],u=4;
                            while(u--)o[u]=+i[s][u]+r*g*j[s][u]
                            }
                            break;
                    default:
                        var C=[].concat(i[s]);
                        o=[],u=m.paper.customAttributes[s].length;
                        while(u--)o[u]=+C[u]+r*g*j[s][u]
                        }
                        n[s]=o
                }
                m.attr(n),m._run&&m._run.call(m)
            }else k.along&&(t=cu(k.along,k.len*!k.back),m.translate(j.sx-(j.x||0)+t.x-j.sx,j.sy-(j.y||0)+t.y-j.sy),k.rot&&m.rotate(j.r+t.alpha,t.x,t.y)),(l.x||l.y)&&m.translate(-l.x,-l.y),k.scale&&(k.scale+=p),m.attr(k),cw.splice(c--,1)
            }
            a.svg&&m&&m.paper&&m.paper.safari(),cw[w]&&setTimeout(cx)
    },cy=function(b,c,d,e,f){
    var g=d-e;
    c.timeouts.push(setTimeout(function(){
        a.is(f,"function")&&f.call(c),c.animate(b,g,b.easing)
        },e))
    },cz=function(a){
    return z(A(a,255),0)
    },cA=function(a,b){
    if(a==null)return{
        x:this._.tx,
        y:this._.ty,
        toString:cp
    };
    
    this._.tx+=+a,this._.ty+=+b;
    switch(this.type){
        case"circle":case"ellipse":
            this.attr({
            cx:+a+this.attrs.cx,
            cy:+b+this.attrs.cy
            });
        break;
        case"rect":case"image":case"text":
            this.attr({
            x:+a+this.attrs.x,
            y:+b+this.attrs.y
            });
        break;
        case"path":
            var c=bp(this.attrs.path);
            c[0][1]+=+a,c[0][2]+=+b,this.attr({
            path:c
        })
        }
        return this
    };
    
bO.animateWith=function(a,b,c,d,e){
    for(var f=0,g=cw.length;f<g;f++)cw[f].el.id==a.id&&(b.start=cw[f].start);
    return this.animate(b,c,d,e)
    },bO.animateAlong=cB(),bO.animateAlongBack=cB(1),bO.onAnimation=function(a){
    this._run=a||0;
    return this
    },bO.animate=function(c,d,e,g){
    var h=this;
    h.timeouts=h.timeouts||[];
    if(a.is(e,"function")||!e)g=e||null;
    if(h.removed){
        g&&g.call(h);
        return h
        }
        var i={},j={},k=!1,l={};
    
    for(var m in c)if(c[f](m))if(X[f](m)||h.paper.customAttributes[f](m)){
        k=!0,i[m]=h.attr(m),i[m]==null&&(i[m]=W[m]),j[m]=c[m];
        switch(X[m]){
            case"along":
                var n=ct(c[m]),o=cu(c[m],n*!!c.back),p=h.getBBox();
                l[m]=n/d,l.tx=p.x,l.ty=p.y,l.sx=o.x,l.sy=o.y,j.rot=c.rot,j.back=c.back,j.len=n,c.rot&&(l.r=S(h.rotate())||0);
                break;
            case E:
                l[m]=(j[m]-i[m])/d;
                break;
            case"colour":
                i[m]=a.getRGB(i[m]);
                var q=a.getRGB(j[m]);
                l[m]={
                r:(q.r-i[m].r)/d,
                g:(q.g-i[m].g)/d,
                b:(q.b-i[m].b)/d
                };
                
            break;
            case"path":
                var t=bw(i[m],j[m]);
                i[m]=t[0];
                var u=t[1];
                l[m]=[];
                for(var v=0,x=i[m][w];v<x;v++){
                l[m][v]=[0];
                for(var y=1,z=i[m][v][w];y<z;y++)l[m][v][y]=(u[v][y]-i[m][v][y])/d
                    }
                    break;
            case"csv":
                var A=r(c[m])[s](b),B=r(i[m])[s](b);
                switch(m){
                case"translation":
                    i[m]=[0,0],l[m]=[A[0]/d,A[1]/d];
                    break;
                case"rotation":
                    i[m]=B[1]==A[1]&&B[2]==A[2]?B:[0,A[1],A[2]],l[m]=[(A[0]-i[m][0])/d,0,0];
                    break;
                case"scale":
                    c[m]=A,i[m]=r(i[m])[s](b),l[m]=[(A[0]-i[m][0])/d,(A[1]-i[m][1])/d,0,0];
                    break;
                case"clip-rect":
                    i[m]=r(i[m])[s](b),l[m]=[],v=4;
                    while(v--)l[m][v]=(A[v]-i[m][v])/d
                    }
                    j[m]=A;
            break;
            default:
                A=[].concat(c[m]),B=[].concat(i[m]),l[m]=[],v=h.paper.customAttributes[m][w];
                while(v--)l[m][v]=((A[v]||0)-(B[v]||0))/d
                }
            }
    if(!k){
    var C=[],D;
    for(var F in c)c[f](F)&&Z.test(F)&&(m={
        value:c[F]
        },F=="from"&&(F=0),F=="to"&&(F=100),m.key=T(F,10),C.push(m));C.sort(be),C[0].key&&C.unshift({
        key:0,
        value:h.attrs
        });
    for(v=0,x=C[w];v<x;v++)cy(C[v].value,h,d/100*C[v].key,d/100*(C[v-1]&&C[v-1].key||0),C[v-1]&&C[v-1].value.callback);
    D=C[C[w]-1].value.callback,D&&h.timeouts.push(setTimeout(function(){
        D.call(h)
        },d))
    }else{
    var G=a.easing_formulas[e];
    if(!G){
        G=r(e).match(P);
        if(G&&G[w]==5){
            var H=G;
            G=function(a){
                return cC(a,+H[1],+H[2],+H[3],+H[4],d)
                }
            }else G=function(a){
        return a
        }
    }
    cw.push({
    start:c.start||+(new Date),
    ms:d,
    easing:G,
    from:i,
    diff:l,
    to:j,
    el:h,
    t:{
        x:0,
        y:0
    }
}),a.is(g,"function")&&(h._ac=setTimeout(function(){
    g.call(h)
    },d)),cw[w]==1&&setTimeout(cx)
}
return this
},bO.stop=function(){
    for(var a=0;a<cw.length;a++)cw[a].el.id==this.id&&cw.splice(a--,1);
    for(a=0,ii=this.timeouts&&this.timeouts.length;a<ii;a++)clearTimeout(this.timeouts[a]);
    this.timeouts=[],clearTimeout(this._ac),delete this._ac;
    return this
    },bO.translate=function(a,b){
    return this.attr({
        translation:a+" "+b
        })
    },bO[H]=function(){
    return"Raphaël’s object"
    },a.ae=cw;
var cD=function(a){
    this.items=[],this[w]=0,this.type="set";
    if(a)for(var b=0,c=a[w];b<c;b++)a[b]&&(a[b].constructor==bN||a[b].constructor==cD)&&(this[this.items[w]]=this.items[this.items[w]]=a[b],this[w]++)
        };
        
cD[e][L]=function(){
    var a,b;
    for(var c=0,d=arguments[w];c<d;c++)a=arguments[c],a&&(a.constructor==bN||a.constructor==cD)&&(b=this.items[w],this[b]=this.items[b]=a,this[w]++);
    return this
    },cD[e].pop=function(){
    delete this[this[w]--];
    return this.items.pop()
    };
    
for(var cE in bO)bO[f](cE)&&(cD[e][cE]=function(a){
    return function(){
        for(var b=0,c=this.items[w];b<c;b++)this.items[b][a][m](this.items[b],arguments);
        return this
        }
    }(cE));cD[e].attr=function(b,c){
    if(b&&a.is(b,G)&&a.is(b[0],"object"))for(var d=0,e=b[w];d<e;d++)this.items[d].attr(b[d]);else for(var f=0,g=this.items[w];f<g;f++)this.items[f].attr(b,c);
    return this
    },cD[e].animate=function(b,c,d,e){
    (a.is(d,"function")||!d)&&(e=d||null);
    var f=this.items[w],g=f,h,i=this,j;
    e&&(j=function(){
        !--f&&e.call(i)
        }),d=a.is(d,F)?d:j,h=this.items[--g].animate(b,c,d,j);
    while(g--)this.items[g]&&!this.items[g].removed&&this.items[g].animateWith(h,b,c,d,j);
    return this
    },cD[e].insertAfter=function(a){
    var b=this.items[w];
    while(b--)this.items[b].insertAfter(a);
    return this
    },cD[e].getBBox=function(){
    var a=[],b=[],c=[],d=[];
    for(var e=this.items[w];e--;){
        var f=this.items[e].getBBox();
        a[L](f.x),b[L](f.y),c[L](f.x+f.width),d[L](f.y+f.height)
        }
        a=A[m](0,a),b=A[m](0,b);
    return{
        x:a,
        y:b,
        width:z[m](0,c)-a,
        height:z[m](0,d)-b
        }
    },cD[e].clone=function(a){
    a=new cD;
    for(var b=0,c=this.items[w];b<c;b++)a[L](this.items[b].clone());
    return a
    },a.registerFont=function(a){
    if(!a.face)return a;
    this.fonts=this.fonts||{};
    
    var b={
        w:a.w,
        face:{},
        glyphs:{}
},c=a.face["font-family"];
for(var d in a.face)a.face[f](d)&&(b.face[d]=a.face[d]);this.fonts[c]?this.fonts[c][L](b):this.fonts[c]=[b];
if(!a.svg){
    b.face["units-per-em"]=T(a.face["units-per-em"],10);
    for(var e in a.glyphs)if(a.glyphs[f](e)){
        var g=a.glyphs[e];
        b.glyphs[e]={
            w:g.w,
            k:{},
            d:g.d&&"M"+g.d[Y](/[mlcxtrv]/g,function(a){
                return({
                    l:"L",
                    c:"C",
                    x:"z",
                    t:"m",
                    r:"l",
                    v:"c"
                })[a]||"M"
                })+"z"
            };
            
        if(g.k)for(var h in g.k)g[f](h)&&(b.glyphs[e].k[h]=g.k[h])
            }
        }
    return a
},k.getFont=function(b,c,d,e){
    e=e||"normal",d=d||"normal",c=+c||({
        normal:400,
        bold:700,
        lighter:300,
        bolder:800
    })[c]||400;
    if(!!a.fonts){
        var g=a.fonts[b];
        if(!g){
            var h=new RegExp("(^|\\s)"+b[Y](/[^\w\d\s+!~.:_-]/g,p)+"(\\s|$)","i");
            for(var i in a.fonts)if(a.fonts[f](i)&&h.test(i)){
                g=a.fonts[i];
                break
            }
            }
            var j;
    if(g)for(var k=0,l=g[w];k<l;k++){
        j=g[k];
        if(j.face["font-weight"]==c&&(j.face["font-style"]==d||!j.face["font-style"])&&j.face["font-stretch"]==e)break
    }
    return j
    }
},k.print=function(c,d,e,f,g,h,i){
    h=h||"middle",i=z(A(i||0,1),-1);
    var j=this.set(),k=r(e)[s](p),l=0,m=p,n;
    a.is(f,e)&&(f=this.getFont(f));
    if(f){
        n=(g||16)/f.face["units-per-em"];
        var o=f.face.bbox.split(b),q=+o[0],t=+o[1]+(h=="baseline"?o[3]-o[1]+ +f.face.descent:(o[3]-o[1])/2);
        for(var u=0,v=k[w];u<v;u++){
            var x=u&&f.glyphs[k[u-1]]||{},y=f.glyphs[k[u]];
            l+=u?(x.w||f.w)+(x.k&&x.k[k[u]]||0)+f.w*i:0,y&&y.d&&j[L](this.path(y.d).attr({
                fill:"#000",
                stroke:"none",
                translation:[l,0]
                }))
            }
            j.scale(n,n,q,t).translate(c-q,d-t)
        }
        return j
    },a.format=function(b,c){
    var e=a.is(c,G)?[0][n](c):arguments;
    b&&a.is(b,F)&&e[w]-1&&(b=b[Y](d,function(a,b){
        return e[++b]==null?p:e[b]
        }));
    return b||p
    },a.ninja=function(){
    i.was?h.Raphael=i.is:delete Raphael;
    return a
    },a.el=bO,a.st=cD[e],i.was?h.Raphael=a:Raphael=a
})()
