From: Dmitry Baranovskiy Date: Fri, 4 Sep 2009 07:24:54 +0000 (+1000) Subject: Change version to 1.0 RC1 X-Git-Tag: semver~34 X-Git-Url: http://git.roojs.org/?p=raphael;a=commitdiff_plain;h=90bf132b4651b5de5f64ee6d48e5fcdf260b4042 Change version to 1.0 RC1 --- diff --git a/plugins/raphael.path.methods.js b/plugins/raphael.path.methods.js index bd358cc..bce7036 100644 --- a/plugins/raphael.path.methods.js +++ b/plugins/raphael.path.methods.js @@ -1,91 +1,53 @@ Raphael.el.isAbsolute = true; Raphael.el.absolutely = function () { - if (this.type != "path") { - return this; - } - this.isAbsolute = true; + this.isAbsolute = 1; return this; }; Raphael.el.relatively = function () { - if (this.type != "path") { - return this; - } - this.isAbsolute = false; + this.isAbsolute = 0; return this; }; Raphael.el.moveTo = function (x, y) { - if (this.type != "path") { - return this; - } - var d = this.isAbsolute ? "M" : "m"; - d += +parseFloat(x).toFixed(3) + " " + (+parseFloat(y).toFixed(3)) + " "; - this.attr({path: this.attrs.path + d}); - return this; + this._last = {x: x, y: y}; + return this.attr({path: this.attrs.path + ["m", "M"][+this.isAbsolute] + parseFloat(x) + " " + parseFloat(y)}); }; Raphael.el.lineTo = function (x, y) { - if (this.type != "path") { - return this; - } - var d = this.isAbsolute ? "L" : "l"; - d += +parseFloat(x).toFixed(3) + " " + (+parseFloat(y).toFixed(3)) + " "; - this.attr({path: this.attrs.path + d}); - return this; + this._last = {x: x, y: y}; + return this.attr({path: this.attrs.path + ["l", "L"][+this.isAbsolute] + parseFloat(x) + " " + parseFloat(y)}); }; -Raphael.el.arcTo = function (rx, ry, large_arc_flag, sweep_flag, x, y) { - if (this.type != "path") { - return this; - } - var d = this.isAbsolute ? "A" : "a"; - d += [+parseFloat(rx).toFixed(3), +parseFloat(ry).toFixed(3), 0, large_arc_flag, sweep_flag, +parseFloat(x).toFixed(3), +parseFloat(y).toFixed(3)].join(" "); - this.attr({path: this.attrs.path + d}); - return this; +Raphael.el.arcTo = function (rx, ry, large_arc_flag, sweep_flag, x, y, angle) { + this._last = {x: x, y: y}; + return this.attr({path: this.attrs.path + ["a", "A"][+this.isAbsolute] + [parseFloat(rx), parseFloat(ry), +angle, large_arc_flag, sweep_flag, parseFloat(x), parseFloat(y)].join(" ")}); }; Raphael.el.curveTo = function () { - if (this.type != "path") { - return this; - } var args = Array.prototype.splice.call(arguments, 0, arguments.length), d = [0, 0, 0, 0, "s", 0, "c"][args.length] || ""; - if (this.isAbsolute) { - d = d.toUpperCase(); - } - this.attr({path: this.attrs.path + d + args}); + this.isAbsolute && (d = d.toUpperCase()); + this._last = {x: args[args.length - 2], y: args[args.length - 1]}; + return this.attr({path: this.attrs.path + d + args}); +}; +Raphael.el.cplineTo = function (x, y, w) { + this.attr({path: this.attrs.path + ["C", this._last.x + w, this._last.y, x - w, y, x, y]}); + this._last = {x: x, y: y}; return this; }; Raphael.el.qcurveTo = function () { - if (this.type != "path") { - return this; - } var d = [0, 1, "t", 3, "q"][arguments.length], args = Array.prototype.splice.call(arguments, 0, arguments.length); if (this.isAbsolute) { d = d.toUpperCase(); } - this.attr({path: this.attrs.path + d + args}); - return this; + this._last = {x: args[args.length - 2], y: args[args.length - 1]}; + return this.attr({path: this.attrs.path + d + args}); }; Raphael.el.addRoundedCorner = function (r, dir) { - if (this.type != "path") { - return this; - } - var rollback = this.isAbsolute, - o = this; - if (rollback) { - this.relatively(); - rollback = function () { - o.absolutely(); - }; - } else { - rollback = function () {}; - } - this.arcTo(r, r, 0, {"lu": 1, "rd": 1, "ur": 1, "dl": 1}[dir] || 0, r * (!!(dir.indexOf("r") + 1) * 2 - 1), r * (!!(dir.indexOf("d") + 1) * 2 - 1)); - rollback(); + var rollback = this.isAbsolute; + rollback && this.relatively(); + this._last = {x: r * (!!(dir.indexOf("r") + 1) * 2 - 1), y: r * (!!(dir.indexOf("d") + 1) * 2 - 1)}; + this.arcTo(r, r, 0, {"lu": 1, "rd": 1, "ur": 1, "dl": 1}[dir] || 0, this._last.x, this._last.y); + rollback && this.absolutely(); return this; }; Raphael.el.andClose = function () { - if (this.type != "path") { - return this; - } - this.attr({path: this.attrs.path + "z"}); - return this; -}; \ No newline at end of file + return this.attr({path: this.attrs.path + "z"}); +}; diff --git a/plugins/raphael.primitives.js b/plugins/raphael.primitives.js index b40ab4d..c639315 100644 --- a/plugins/raphael.primitives.js +++ b/plugins/raphael.primitives.js @@ -46,4 +46,42 @@ Raphael.fn.polygon = function (cx, cy, r, n) { }; Raphael.fn.line = function (x1, y1, x2, y2) { return this.path(["M", x1, y1, "L", x2, y2]); +}; +Raphael.fn.drawGrid = function (x, y, w, h, wv, hv, color) { + color = color || "#000"; + var path = ["M", x, y, "L", x + w, y, x + w, y + h, x, y + h, x, y], + rowHeight = h / hv, + columnWidth = w / wv; + for (var i = 1; i < hv; i++) { + path = path.concat(["M", x, y + i * rowHeight, "L", x + w, y + i * rowHeight]); + } + for (var i = 1; i < wv; i++) { + path = path.concat(["M", x + i * columnWidth, y, "L", x + i * columnWidth, y + h]); + } + return this.path(path.join(",")).attr({stroke: color}); +}; +Raphael.fn.square = function (cx, cy, r) { + r = r * .7; + return this.rect(cx - r, cy - r, 2 * r, 2 * r); +}; +Raphael.fn.triangle = function (cx, cy, r) { + r *= 1.75; + return this.path("M".concat(cx, ",", cy, "m0-", r * .58, "l", r * .5, ",", r * .87, "-", r, ",0z")); +}; +Raphael.fn.diamond = function (cx, cy, r) { + return this.path(["M", cx, cy - r, "l", r, r, -r, r, -r, -r, r, -r, "z"]); +}; +Raphael.fn.cross = function (cx, cy, r) { + r = r / 2.5; + return this.path("M".concat(cx - r, ",", cy, "l", [-r, -r, r, -r, r, r, r, -r, r, r, -r, r, r, r, -r, r, -r, -r, -r, r, -r, -r, "z"])); +}; +Raphael.fn.plus = function (cx, cy, r) { + r = r / 2; + return this.path("M".concat(cx - r / 2, ",", cy - r / 2, "l", [0, -r, r, 0, 0, r, r, 0, 0, r, -r, 0, 0, r, -r, 0, 0, -r, -r, 0, 0, -r, "z"])); +}; +Raphael.fn.arrow = function (cx, cy, r, angle) { + return this.path("M".concat(cx - r * .7, ",", cy - r * .4, "l", [r * .6, 0, 0, -r * .4, r, r * .8, -r, r * .8, 0, -r * .4, -r * .6, 0], "z")).rotate(angle || 0); +}; +Raphael.fn.i = function (cx, cy, r) { + return this.path("M13.052,15.376c0,0.198-0.466,0.66-1.397,1.388c-0.932,0.728-1.773,1.092-2.526,1.092c-0.518,0-0.895-0.133-1.129-0.398s-0.352-0.564-0.352-0.897c0-0.209,0.031-0.404,0.092-0.583c0.062-0.179,0.13-0.361,0.204-0.546l1.758-3.646c0.099-0.209,0.169-0.379,0.213-0.509c0.043-0.129,0.064-0.244,0.064-0.342s-0.019-0.169-0.055-0.213c-0.037-0.043-0.087-0.064-0.148-0.064c-0.16,0-0.472,0.244-0.935,0.731c-0.462,0.487-0.737,0.731-0.823,0.731c-0.099,0-0.198-0.068-0.296-0.204s-0.148-0.222-0.148-0.259c0-0.123,0.117-0.324,0.352-0.602c0.234-0.277,0.531-0.57,0.888-0.879C9.135,9.892,9.521,9.627,9.971,9.38c0.45-0.247,0.848-0.37,1.194-0.37c0.555,0,0.972,0.158,1.249,0.472c0.278,0.314,0.417,0.694,0.417,1.138c0,0.185-0.019,0.382-0.056,0.592c-0.037,0.209-0.117,0.425-0.24,0.647l-1.407,3.09c-0.111,0.259-0.191,0.469-0.241,0.629c-0.049,0.161-0.074,0.271-0.074,0.333c0,0.074,0.019,0.121,0.055,0.139c0.037,0.018,0.074,0.027,0.111,0.027c0.271,0,0.589-0.194,0.953-0.583c0.364-0.389,0.595-0.583,0.694-0.583c0.086,0,0.179,0.064,0.278,0.194C13.002,15.237,13.052,15.327,13.052,15.376z M14.477,5.827c0,0.457-0.164,0.852-0.49,1.185c-0.327,0.333-0.725,0.5-1.194,0.5c-0.457,0-0.851-0.167-1.185-0.5c-0.333-0.333-0.5-0.728-0.5-1.185c0-0.456,0.167-0.851,0.5-1.184c0.333-0.333,0.728-0.5,1.185-0.5c0.469,0,0.867,0.167,1.194,0.5C14.313,4.976,14.477,5.371,14.477,5.827z").translate(cx - 11, cy - 11).scale((r || 20) / 20); }; \ No newline at end of file diff --git a/raphael-min.js b/raphael-min.js index ed6d7fe..5c25628 100644 --- a/raphael-min.js +++ b/raphael-min.js @@ -1,7 +1,7 @@ /* - * Raphael 1.0 - JavaScript Vector Library + * Raphael 1.0 RC1 - JavaScript Vector Library * * Copyright (c) 2008 - 2009 Dmitry Baranovskiy (http://raphaeljs.com) * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license. */ -window.Raphael=(function(){var x=/[, ]+/,F=document,l=window,p={was:"Raphael" in window,is:window.Raphael},E=function(){return J.apply(E,arguments);},B={},O={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},T={cx:"number",cy:"number",fill:"colour","fill-opacity":"number","font-size":"number",height:"number",opacity:"number",path:"path",r:"number",rotation:"csv",rx:"number",ry:"number",scale:"csv",stroke:"colour","stroke-opacity":"number","stroke-width":"number",translation:"csv",width:"number",x:"number",y:"number"},U=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup"];E.version="1.0";E.type=(window.SVGAngle||document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML");E.svg=!(E.vml=E.type=="VML");E.idGenerator=0;E.fn={};E.isArray=function(R){return Object.prototype.toString.call(R)=="[object Array]";};E.setWindow=function(R){l=R;F=l.document;};E.hsb2rgb=w(function(AE,AC,AI){if(typeof AE=="object"&&"h" in AE&&"s" in AE&&"b" in AE){AI=AE.b;AC=AE.s;AE=AE.h;}var z,AA,AJ;if(AI==0){return{r:0,g:0,b:0,hex:"#000"};}if(AE>1||AC>1||AI>1){AE/=255;AC/=255;AI/=255;}var AB=Math.floor(AE*6),AF=(AE*6)-AB,y=AI*(1-AC),e=AI*(1-(AC*AF)),AK=AI*(1-(AC*(1-AF)));z=[AI,e,y,y,AK,AI,AI][AB];AA=[AK,AI,AI,e,y,y,AK][AB];AJ=[y,y,AK,AI,AI,e,y][AB];z*=255;AA*=255;AJ*=255;var AG={r:z,g:AA,b:AJ},R=Math.round(z).toString(16),AD=Math.round(AA).toString(16),AH=Math.round(AJ).toString(16);if(R.length==1){R="0"+R;}if(AD.length==1){AD="0"+AD;}if(AH.length==1){AH="0"+AH;}AG.hex="#"+R+AD+AH;return AG;},E);E.rgb2hsb=w(function(R,e,AC){if(typeof R=="object"&&"r" in R&&"g" in R&&"b" in R){AC=R.b;e=R.g;R=R.r;}if(typeof R=="string"){var AE=E.getRGB(R);R=AE.r;e=AE.g;AC=AE.b;}if(R>1||e>1||AC>1){R/=255;e/=255;AC/=255;}var AB=Math.max(R,e,AC),i=Math.min(R,e,AC),z,y,AA=AB;if(i==AB){return{h:0,s:0,b:AB};}else{var AD=(AB-i);y=AD/AB;if(R==AB){z=(e-AC)/AD;}else{if(e==AB){z=2+((AC-R)/AD);}else{z=4+((R-e)/AD);}}z/=6;if(z<0){z+=1;}if(z>1){z-=1;}}return{h:z,s:y,b:AA};},E);E._path2string=function(){var y="",AB;for(var e=0,z=this.length;e1000){delete i.cache[i.count.unshift()];}i.count.push(AA);i.cache[AA]=y.apply(e,z);return R?R(i.cache[AA]):i.cache[AA];}return i;}E.getRGB=w(function(R){var AE={aliceblue:"#f0f8ff",amethyst:"#96c",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"},AA;if((R+"").toLowerCase() in AE){R=AE[R.toString().toLowerCase()];}if(!R){return{r:0,g:0,b:0,hex:"#000"};}if(R=="none"){return{r:-1,g:-1,b:-1,hex:"none"};}var i,y,AD,AB=(R+"").match(/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgb\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|rgb\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\)|hs[bl]\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|hs[bl]\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\))\s*$/i);if(AB){if(AB[2]){AD=parseInt(AB[2].substring(5),16);y=parseInt(AB[2].substring(3,5),16);i=parseInt(AB[2].substring(1,3),16);}if(AB[3]){AD=parseInt(AB[3].substring(3)+AB[3].substring(3),16);y=parseInt(AB[3].substring(2,3)+AB[3].substring(2,3),16);i=parseInt(AB[3].substring(1,2)+AB[3].substring(1,2),16);}if(AB[4]){AB=AB[4].split(/\s*,\s*/);i=parseFloat(AB[0]);y=parseFloat(AB[1]);AD=parseFloat(AB[2]);}if(AB[5]){AB=AB[5].split(/\s*,\s*/);i=parseFloat(AB[0])*2.55;y=parseFloat(AB[1])*2.55;AD=parseFloat(AB[2])*2.55;}if(AB[6]){AB=AB[6].split(/\s*,\s*/);i=parseFloat(AB[0]);y=parseFloat(AB[1]);AD=parseFloat(AB[2]);return E.hsb2rgb(i,y,AD);}if(AB[7]){AB=AB[7].split(/\s*,\s*/);i=parseFloat(AB[0])*2.55;y=parseFloat(AB[1])*2.55;AD=parseFloat(AB[2])*2.55;return E.hsb2rgb(i,y,AD);}var AB={r:i,g:y,b:AD},e=Math.round(i).toString(16),z=Math.round(y).toString(16),AC=Math.round(AD).toString(16);(e.length==1)&&(e="0"+e);(z.length==1)&&(z="0"+z);(AC.length==1)&&(AC="0"+AC);AB.hex="#"+e+z+AC;AA=AB;}else{AA={r:-1,g:-1,b:-1,hex:"none"};}return AA;},E);E.getColor=function(e){var i=this.getColor.start=this.getColor.start||{h:0,s:1,b:e||0.75},R=this.hsb2rgb(i.h,i.s,i.b);i.h+=0.075;if(i.h>1){i.h=0;i.s-=0.2;if(i.s<=0){this.getColor.start={h:0,s:1,b:i.b};}}return R.hex;};E.getColor.reset=function(){delete this.start;};E.parsePathString=w(function(R){if(!R){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(E.isArray(R)&&E.isArray(R[0])){e=S(R);}if(!e.length){(R+"").replace(/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,function(z,y,AC){var AB=[],AA=y.toLowerCase();AC.replace(/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,function(AE,AD){AD&&AB.push(+AD);});while(AB.length>=i[AA]){e.push([y].concat(AB.splice(0,i[AA])));if(!i[AA]){break;}}});}e.toString=E._path2string;return e;});var a=w(function(AG){AG=o(AG);var AD=0,AC=0,z=[],e=[];for(var AA=0,AF=AG.length;AAAD){AE=AE-Math.PI*2;}if(!AA&&AD>AE){AD=AD-Math.PI*2;}}else{AE=AM[0];AD=AM[1];AO=AM[2];AN=AM[3];}var AI=AD-AE;if(Math.abs(AI)>AQ){var AP=AD,AS=AJ,AG=An;AD=AE+AQ*(AA&&AD>AE?1:-1);AJ=AO+AT*Math.cos(AD);An=AN+AR*Math.sin(AD);AX=P(AJ,An,AT,AR,AL,0,AA,AS,AG,[AD,AP,AO,AN]);}var AC=Math.cos(AE),Am=Math.sin(AE),AB=Math.cos(AD),Al=Math.sin(AD),AI=AD-AE,Aa=Math.tan(AI/4),Ad=4/3*AT*Aa,Ab=4/3*AR*Aa,Aj=[AK,Ao],Ai=[AK+Ad*Am,Ao-Ab*AC],Ah=[AJ+Ad*Al,An-Ab*AB],Af=[AJ,An];Ai[0]=2*Aj[0]-Ai[0];Ai[1]=2*Aj[1]-Ai[1];if(AM){return[Ai,Ah,Af].concat(AX);}else{AX=[Ai,Ah,Af].concat(AX).join(",").split(",");var AV=[];for(var Ag=0,AW=AX.length;Ag0&&AC<1?AC:0),AB=Z(e,R,z,i,AM,AL,AI,AF,AA>0&&AA<1?AA:0);AJ=AJ.concat(AD.x,AB.x);AG=AG.concat(AD.y,AB.y);AK=(AL-2*i+R)-(AF-2*AL+i);AH=2*(i-R)-2*(AL-i);AE=R-i;AC=(-AH+Math.sqrt(AH*AH-4*AK*AE))/2/AK;AA=(-AH-Math.sqrt(AH*AH-4*AK*AE))/2/AK;AD=Z(e,R,z,i,AM,AL,AI,AF,AC>0&&AC<1?AC:0);AB=Z(e,R,z,i,AM,AL,AI,AF,AA>0&&AA<1?AA:0);AJ=AJ.concat(AD.x,AB.x);AG=AG.concat(AD.y,AB.y);return{min:{x:Math.min.apply(Math,AJ),y:Math.min.apply(Math,AG)},max:{x:Math.max.apply(Math,AJ),y:Math.max.apply(Math,AG)}};}),o=w(function(AK,AF){var z=V(AK),AG=AF&&V(AF),AH={x:0,y:0,bx:0,by:0,X:0,Y:0},R={x:0,y:0,bx:0,by:0,X:0,Y:0},AB=function(AL,AM){if(!AL){return["C",AM.x,AM.y,AM.x,AM.y,AM.x,AM.y];}switch(AL[0]){case"M":AM.X=AL[1];AM.Y=AL[2];break;case"A":AL=["C"].concat(P(AM.x,AM.y,AL[1],AL[2],AL[3],AL[4],AL[5],AL[6],AL[7]));break;case"S":var i=AM.x+(AM.x-(AM.bx||AM.x)),AN=AM.y+(AM.y-(AM.by||AM.y));AL=["C",i,AN,AL[1],AL[2],AL[3],AL[4]];break;case"T":var i=AM.x+(AM.x-(AM.bx||AM.x)),AN=AM.y+(AM.y-(AM.by||AM.y));AL=["C"].concat(W(AM.x,AM.y,i,AN,AL[1],AL[2]));break;case"Q":AL=["C"].concat(W(AM.x,AM.y,AL[1],AL[2],AL[3],AL[4]));break;case"L":AL=["C"].concat(D(AM.x,AM.y,AL[1],AL[2]));break;case"H":AL=["C"].concat(D(AM.x,AM.y,AL[1],AM.y));break;case"V":AL=["C"].concat(D(AM.x,AM.y,AM.x,AL[1]));break;case"Z":AL=["C"].concat(D(AM.x,AM.y,AM.X,AM.Y));break;}return AL;},e=function(AL,AM){if(AL[AM].length>7){AL[AM].shift();var AN=AL[AM];while(AN.length){AL.splice(AM++,0,["C"].concat(AN.splice(0,6)));}AL.splice(AM,1);AI=Math.max(z.length,AG&&AG.length||0);}},y=function(AP,AO,AM,AL,AN){if(AP&&AO&&AP[AN][0]=="M"&&AO[AN][0]!="M"){AO.splice(AN,0,["M",AL.x,AL.y]);AM.bx=0;AM.by=0;AM.x=AP[AN][1];AM.y=AP[AN][2];AI=Math.max(z.length,AG&&AG.length||0);}};for(var AD=0,AI=Math.max(z.length,AG&&AG.length||0);AD3){return{container:1,x:arguments[0],y:arguments[1],width:arguments[2],height:arguments[3]};}}},A=function(R,i){var e=this;for(var y in i){if(i.hasOwnProperty(y)&&!(y in R)){switch(typeof i[y]){case"function":(function(z){R[y]=R===e?z:function(){return z.apply(e,arguments);};})(i[y]);break;case"object":R[y]=R[y]||{};A.call(this,R[y],i[y]);break;default:R[y]=i[y];break;}}}};if(E.svg){var n=function(R){return +R+(Math.floor(R)==R)*0.5;};var Y=function(AA){for(var e=0,y=AA.length;eAC.height)&&(AC.height=AB.y+AB.height-AC.y);}}y&&this.hide();return AC;};K.prototype.attr=function(){if(arguments.length==1&&typeof arguments[0]=="string"){if(arguments[0]=="translation"){return this.translate();}if(arguments[0]=="rotation"){return this.rotate();}if(arguments[0]=="scale"){return this.scale();}return this.attrs[arguments[0]];}if(arguments.length==1&&E.isArray(arguments[0])){var R={};for(var e in arguments[0]){R[arguments[0][e]]=this.attrs[arguments[0][e]];}return R;}if(arguments.length==2){var i={};i[arguments[0]]=arguments[1];d(this,i);}else{if(arguments.length==1&&typeof arguments[0]=="object"){d(this,arguments[0]);}}return this;};K.prototype.toFront=function(){this.node.parentNode.appendChild(this.node);return this;};K.prototype.toBack=function(){if(this.node.parentNode.firstChild!=this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);}return this;};K.prototype.insertAfter=function(R){if(R.node.nextSibling){R.node.parentNode.insertBefore(this.node,R.node.nextSibling);}else{R.node.parentNode.appendChild(this.node);}return this;};K.prototype.insertBefore=function(R){var e=R.node;e.parentNode.insertBefore(this.node,e);return this;};var b=function(e,R,AB,AA){R=n(R);AB=n(AB);var z=F.createElementNS(e.svgns,"circle");z.setAttribute("cx",R);z.setAttribute("cy",AB);z.setAttribute("r",AA);z.setAttribute("fill","none");z.setAttribute("stroke","#000");if(e.canvas){e.canvas.appendChild(z);}var i=new K(z,e);i.attrs=i.attrs||{};i.attrs.cx=R;i.attrs.cy=AB;i.attrs.r=AA;i.attrs.stroke="#000";i.type="circle";return i;};var h=function(i,R,AD,e,AB,AC){R=n(R);AD=n(AD);var AA=F.createElementNS(i.svgns,"rect");AA.setAttribute("x",R);AA.setAttribute("y",AD);AA.setAttribute("width",e);AA.setAttribute("height",AB);if(AC){AA.setAttribute("rx",AC);AA.setAttribute("ry",AC);}AA.setAttribute("fill","none");AA.setAttribute("stroke","#000");if(i.canvas){i.canvas.appendChild(AA);}var z=new K(AA,i);z.attrs=z.attrs||{};z.attrs.x=R;z.attrs.y=AD;z.attrs.width=e;z.attrs.height=AB;z.attrs.stroke="#000";if(AC){z.attrs.rx=z.attrs.ry=AC;}z.type="rect";return z;};var G=function(e,R,AC,AB,AA){R=n(R);AC=n(AC);var z=F.createElementNS(e.svgns,"ellipse");z.setAttribute("cx",R);z.setAttribute("cy",AC);z.setAttribute("rx",AB);z.setAttribute("ry",AA);z.setAttribute("fill","none");z.setAttribute("stroke","#000");if(e.canvas){e.canvas.appendChild(z);}var i=new K(z,e);i.attrs=i.attrs||{};i.attrs.cx=R;i.attrs.cy=AC;i.attrs.rx=AB;i.attrs.ry=AA;i.attrs.stroke="#000";i.type="ellipse";return i;};var N=function(i,AC,R,AD,e,AB){var AA=F.createElementNS(i.svgns,"image");AA.setAttribute("x",R);AA.setAttribute("y",AD);AA.setAttribute("width",e);AA.setAttribute("height",AB);AA.setAttribute("preserveAspectRatio","none");AA.setAttributeNS(i.xlink,"href",AC);if(i.canvas){i.canvas.appendChild(AA);}var z=new K(AA,i);z.attrs=z.attrs||{};z.attrs.src=AC;z.attrs.x=R;z.attrs.y=AD;z.attrs.width=e;z.attrs.height=AB;z.type="image";return z;};var g=function(e,R,AB,AA){var z=F.createElementNS(e.svgns,"text");z.setAttribute("x",R);z.setAttribute("y",AB);z.setAttribute("text-anchor","middle");if(e.canvas){e.canvas.appendChild(z);}var i=new K(z,e);i.attrs=i.attrs||{};i.attrs.text=AA;i.attrs.x=R;i.attrs.y=AB;i.type="text";d(i,{font:O.font,stroke:"none",fill:"#000",text:AA});return i;};var c=function(e,R){this.width=e||this.width;this.height=R||this.height;this.canvas.setAttribute("width",this.width);this.canvas.setAttribute("height",this.height);return this;};var J=function(){var z=f.apply(null,arguments),i=z.container,e=z.x,AC=z.y,AA=z.width,R=z.height;if(!i){throw new Error("SVG container not found.");}B.canvas=F.createElementNS(B.svgns,"svg");B.canvas.setAttribute("width",AA||512);B.width=AA||512;B.canvas.setAttribute("height",R||342);B.height=R||342;if(i==1){F.body.appendChild(B.canvas);B.canvas.style.position="absolute";B.canvas.style.left=e+"px";B.canvas.style.top=AC+"px";}else{if(i.firstChild){i.insertBefore(B.canvas,i.firstChild);}else{i.appendChild(B.canvas);}}i={canvas:B.canvas,clear:function(){while(this.canvas.firstChild){this.canvas.removeChild(this.canvas.firstChild);}this.defs=F.createElementNS(B.svgns,"defs");this.canvas.appendChild(this.defs);}};for(var AB in B){if(AB!="create"){i[AB]=B[AB];}}A.call(i,i,E.fn);i.clear();i.raphael=E;return i;};B.remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);};B.svgns="http://www.w3.org/2000/svg";B.xlink="http://www.w3.org/1999/xlink";B.safari=function(){if({"Apple Computer, Inc.":1,"Google Inc.":1}[navigator.vendor]){var R=this.rect(-this.width,-this.height,this.width*3,this.height*3).attr({stroke:"none"});setTimeout(function(){R.remove();});}};}if(E.vml){var X=function(AB){var z=o(AB);for(var e=0,y=z.length;e1&&(AB=1);AH.opacity=AB;}z.fill&&(AH.on=true);if(AH.on==null||z.fill=="none"){AH.on=false;}if(AH.on&&z.fill){var AA=z.fill.match(/^url\(([^\)]+)\)$/i);if(AA){AH.src=AA[1];AH.type="tile";}else{AH.color=E.getRGB(z.fill).hex;AH.src="";AH.type="solid";}}e&&y.appendChild(AH);var AG=(y.getElementsByTagName("stroke")&&y.getElementsByTagName("stroke")[0]),R=false;!AG&&(R=AG=u("stroke"));if((z.stroke&&z.stroke!="none")||z["stroke-width"]||z["stroke-opacity"]!=null||z["stroke-dasharray"]||z["stroke-miterlimit"]||z["stroke-linejoin"]||z["stroke-linecap"]){AG.on=true;}(z.stroke=="none"||AG.on==null||z.stroke==0||z["stroke-width"]==0)&&(AG.on=false);AG.on&&z.stroke&&(AG.color=E.getRGB(z.stroke).hex);var AB=((+AF["stroke-opacity"]+1||2)-1)*((+AF.opacity+1||2)-1);AB<0&&(AB=0);AB>1&&(AB=1);AG.opacity=AB;z["stroke-linejoin"]&&(AG.joinstyle=z["stroke-linejoin"]||"miter");AG.miterlimit=z["stroke-miterlimit"]||8;z["stroke-linecap"]&&(AG.endcap={butt:"flat",square:"square",round:"round"}[z["stroke-linecap"]]||"miter");z["stroke-width"]&&(AG.weight=(parseFloat(z["stroke-width"])||1)*12/16);if(z["stroke-dasharray"]){var AE={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};AG.dashstyle=AE[z["stroke-dasharray"]]||"";}R&&y.appendChild(AG);}if(AD.type=="text"){var AJ=B.span.style;AF.font&&(AJ.font=AF.font);AF["font-family"]&&(AJ.fontFamily=AF["font-family"]);AF["font-size"]&&(AJ.fontSize=AF["font-size"]);AF["font-weight"]&&(AJ.fontWeight=AF["font-weight"]);AF["font-style"]&&(AJ.fontStyle=AF["font-style"]);B.span.innerHTML=AD.node.string.replace(/");AD.W=AF.w=B.span.offsetWidth;AD.H=AF.h=B.span.offsetHeight;AD.X=AF.x;AD.Y=AF.y+Math.round(AD.H/2);switch(AF["text-anchor"]){case"start":AD.node.style["v-text-align"]="left";AD.bbx=Math.round(AD.W/2);break;case"end":AD.node.style["v-text-align"]="right";AD.bbx=-Math.round(AD.W/2);break;default:AD.node.style["v-text-align"]="center";break;}}};var M=function(e,R,z,y){var i=Math.round(Math.atan((parseFloat(z)-parseFloat(e))/(parseFloat(y)-parseFloat(R)))*57.29)||0;if(!i&&parseFloat(e)');};}catch(t){var u=function(R){return F.createElement("<"+R+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');};}var J=function(){var z=f.apply(null,arguments),e=z.container,AE=z.height,AF,i=z.width,AD=z.x,AC=z.y;if(!e){throw new Error("VML container not found.");}var AB=B.canvas=F.createElement("div"),AA=AB.style;i=parseFloat(i)||"512px";AE=parseFloat(AE)||"342px";B.width=i;B.height=AE;B.coordsize=i+" "+AE;B.coordorigin="0 0";B.span=F.createElement("span");AF=B.span.style;AB.appendChild(B.span);AF.position="absolute";AF.left="-99999px";AF.top="-99999px";AF.padding=0;AF.margin=0;AF.lineHeight=1;AF.display="inline";AA.width=i+"px";AA.height=AE+"px";AA.position="absolute";AA.clip="rect(0 "+i+"px "+AE+"px 0)";if(e==1){F.body.appendChild(AB);AA.left=AD+"px";AA.top=AC+"px";e={style:{width:i,height:AE}};}else{e.style.width=i;e.style.height=AE;if(e.firstChild){e.insertBefore(AB,e.firstChild);}else{e.appendChild(AB);}}for(var R in B){e[R]=B[R];}A.call(e,e,E.fn);e.clear=function(){while(AB.firstChild){AB.removeChild(AB.firstChild);}};e.raphael=E;return e;};B.remove=function(){this.canvas.parentNode.removeChild(this.canvas);};B.safari=function(){};}var H=(function(){if(F.addEventListener){return function(z,i,e,R){var y=function(AA){return e.call(R,AA);};z.addEventListener(i,y,false);return function(){z.removeEventListener(i,y,false);return true;};};}else{if(F.attachEvent){return function(AA,y,i,e){var z=function(AB){return i.call(e,AB||l.event);};AA.attachEvent("on"+y,z);var R=function(){AA.detachEvent("on"+y,z);return true;};if(y=="mouseover"){AA.attachEvent("onmouseenter",z);return function(){AA.detachEvent("onmouseenter",z);return R();};}else{if(y=="mouseout"){AA.attachEvent("onmouseleave",z);return function(){AA.detachEvent("onmouseleave",z);return R();};}}return R;};}}})();for(var q=U.length;q--;){(function(R){K.prototype[R]=function(e){if(typeof e=="function"){this.events=this.events||{};this.events[R]=this.events[R]||{};this.events[R][e]=this.events[R][e]||[];this.events[R][e].push(H(this.shape||this.node,R,e,this));}return this;};K.prototype["un"+R]=function(e){this.events&&this.events[R]&&this.events[R][e]&&this.events[R][e].length&&this.events[R][e].shift()()&&!this.events[R][e].length&&delete this.events[R][e];};})(U[q]);}B.circle=function(R,i,e){return b(this,R,i,e);};B.rect=function(R,AA,e,i,z){return h(this,R,AA,e,i,z);};B.ellipse=function(R,z,i,e){return G(this,R,z,i,e);};B.path=function(R){var e=E.isArray(arguments[1])?[0].concat(arguments[1]):arguments;R&&typeof R=="string"&&e.length-1&&(R=R.replace(/\{(\d+)\}/g,function(z,y){return e[++y]||0;}));return v(R,this);};B.image=function(z,R,AA,e,i){return N(this,z,R,AA,e,i);};B.text=function(R,i,e){return g(this,R,i,e);};B.set=function(R){arguments.length>1&&(R=Array.prototype.splice.call(arguments,0,arguments.length));return new I(R);};B.setSize=c;K.prototype.stop=function(){clearTimeout(this.animation_in_progress);return this;};K.prototype.scale=function(AJ,AI,z,e){if(AJ==null&&AI==null){return{x:this._.sx,y:this._.sy,toString:function(){return +this.x.toFixed(3)+" "+(+this.y.toFixed(3));}};}AI=AI||AJ;!+AI&&(AI=AJ);var AN,AL,AM,AK,AZ=this.attrs;if(AJ!=0){var AH=this.type=="path"?a(AZ.path):this.getBBox(),AE=AH.x+AH.width/2,AB=AH.y+AH.height/2,AY=AJ/this._.sx,AX=AI/this._.sy;z=(+z||z==0)?z:AE;e=(+e||e==0)?e:AB;var AG=Math.round(AJ/Math.abs(AJ)),AD=Math.round(AI/Math.abs(AI)),AQ=this.node.style,Ab=z+(AE-z)*AG*AY,Aa=e+(AB-e)*AD*AX;switch(this.type){case"rect":case"image":var AF=AZ.width*AG*AY,AP=AZ.height*AD*AX,AC=Ab-AF/2,AA=Aa-AP/2;this.attr({width:AF,height:AP,x:AC,y:AA});break;case"circle":case"ellipse":this.attr({rx:AZ.rx*AY,ry:AZ.ry*AX,r:AZ.r*AY,cx:Ab,cy:Aa});break;case"path":var AS=C(AZ.path),AT=true;for(var AV=0,AO=AS.length;AV":function(R){return Math.pow(R-1,3)+1;},"<>":function(R){R=R*2;if(R<1){return Math.pow(R,3)/2;}R-=2;return(Math.pow(R,3)+2)/2;},backIn:function(e){var R=1.70158;return e*e*((R+1)*e-R);},backOut:function(e){e=e-1;var R=1.70158;return e*e*((R+1)*e+R)+1;},elastic:function(i){if(i==0||i==1){return i;}var e=0.3,R=e/4;return Math.pow(2,-10*i)*Math.sin((i-R)*(2*Math.PI)/e)+1;},bounce:function(y){var e=7.5625,i=2.75,R;if(y<(1/i)){R=e*y*y;}else{if(y<(2/i)){y-=(1.5/i);R=e*y*y+0.75;}else{if(y<(2.5/i)){y-=(2.25/i);R=e*y*y+0.9375;}else{y-=(2.625/i);R=e*y*y+0.984375;}}}return R;}};K.prototype.animate=function(AR,AI,AH,z){clearTimeout(this.animation_in_progress);if(typeof AH=="function"||!AH){z=AH||null;}var AL={},e={},AF={},AE={x:0,y:0};for(var AJ in AR){if(AJ in T){AL[AJ]=this.attr(AJ);(typeof AL[AJ]=="undefined")&&(AL[AJ]=O[AJ]);e[AJ]=AR[AJ];switch(T[AJ]){case"number":AF[AJ]=(e[AJ]-AL[AJ])/AI;break;case"colour":AL[AJ]=E.getRGB(AL[AJ]);var AK=E.getRGB(e[AJ]);AF[AJ]={r:(AK.r-AL[AJ].r)/AI,g:(AK.g-AL[AJ].g)/AI,b:(AK.b-AL[AJ].b)/AI};break;case"path":var AA=o(AL[AJ],e[AJ]);AL[AJ]=AA[0];e[AJ]=AA[1];AF[AJ]=[];for(var AN=0,AD=AL[AJ].length;AN255?255:+i;},AB=this;(function AO(){var AT=new Date-y,Ab={},AS;if(AT1||AC>1||AI>1){AE/=255;AC/=255;AI/=255;}var AB=Math.floor(AE*6),AF=(AE*6)-AB,y=AI*(1-AC),e=AI*(1-(AC*AF)),AK=AI*(1-(AC*(1-AF)));z=[AI,e,y,y,AK,AI,AI][AB];AA=[AK,AI,AI,e,y,y,AK][AB];AJ=[y,y,AK,AI,AI,e,y][AB];z*=255;AA*=255;AJ*=255;var AG={r:z,g:AA,b:AJ},R=Math.round(z).toString(16),AD=Math.round(AA).toString(16),AH=Math.round(AJ).toString(16);if(R.length==1){R="0"+R;}if(AD.length==1){AD="0"+AD;}if(AH.length==1){AH="0"+AH;}AG.hex="#"+R+AD+AH;return AG;},E);E.rgb2hsb=w(function(R,e,AC){if(typeof R=="object"&&"r" in R&&"g" in R&&"b" in R){AC=R.b;e=R.g;R=R.r;}if(typeof R=="string"){var AE=E.getRGB(R);R=AE.r;e=AE.g;AC=AE.b;}if(R>1||e>1||AC>1){R/=255;e/=255;AC/=255;}var AB=Math.max(R,e,AC),i=Math.min(R,e,AC),z,y,AA=AB;if(i==AB){return{h:0,s:0,b:AB};}else{var AD=(AB-i);y=AD/AB;if(R==AB){z=(e-AC)/AD;}else{if(e==AB){z=2+((AC-R)/AD);}else{z=4+((R-e)/AD);}}z/=6;if(z<0){z+=1;}if(z>1){z-=1;}}return{h:z,s:y,b:AA};},E);E._path2string=function(){var y="",AB;for(var e=0,z=this.length;e1000){delete i.cache[i.count.unshift()];}i.count.push(AA);i.cache[AA]=y.apply(e,z);return R?R(i.cache[AA]):i.cache[AA];}return i;}E.getRGB=w(function(R){var AE={aliceblue:"#f0f8ff",amethyst:"#96c",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"},AA;if((R+"").toLowerCase() in AE){R=AE[R.toString().toLowerCase()];}if(!R){return{r:0,g:0,b:0,hex:"#000"};}if(R=="none"){return{r:-1,g:-1,b:-1,hex:"none"};}var i,y,AD,AB=(R+"").match(/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgb\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|rgb\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\)|hs[bl]\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|hs[bl]\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\))\s*$/i);if(AB){if(AB[2]){AD=parseInt(AB[2].substring(5),16);y=parseInt(AB[2].substring(3,5),16);i=parseInt(AB[2].substring(1,3),16);}if(AB[3]){AD=parseInt(AB[3].substring(3)+AB[3].substring(3),16);y=parseInt(AB[3].substring(2,3)+AB[3].substring(2,3),16);i=parseInt(AB[3].substring(1,2)+AB[3].substring(1,2),16);}if(AB[4]){AB=AB[4].split(/\s*,\s*/);i=parseFloat(AB[0]);y=parseFloat(AB[1]);AD=parseFloat(AB[2]);}if(AB[5]){AB=AB[5].split(/\s*,\s*/);i=parseFloat(AB[0])*2.55;y=parseFloat(AB[1])*2.55;AD=parseFloat(AB[2])*2.55;}if(AB[6]){AB=AB[6].split(/\s*,\s*/);i=parseFloat(AB[0]);y=parseFloat(AB[1]);AD=parseFloat(AB[2]);return E.hsb2rgb(i,y,AD);}if(AB[7]){AB=AB[7].split(/\s*,\s*/);i=parseFloat(AB[0])*2.55;y=parseFloat(AB[1])*2.55;AD=parseFloat(AB[2])*2.55;return E.hsb2rgb(i,y,AD);}var AB={r:i,g:y,b:AD},e=Math.round(i).toString(16),z=Math.round(y).toString(16),AC=Math.round(AD).toString(16);(e.length==1)&&(e="0"+e);(z.length==1)&&(z="0"+z);(AC.length==1)&&(AC="0"+AC);AB.hex="#"+e+z+AC;AA=AB;}else{AA={r:-1,g:-1,b:-1,hex:"none"};}return AA;},E);E.getColor=function(e){var i=this.getColor.start=this.getColor.start||{h:0,s:1,b:e||0.75},R=this.hsb2rgb(i.h,i.s,i.b);i.h+=0.075;if(i.h>1){i.h=0;i.s-=0.2;if(i.s<=0){this.getColor.start={h:0,s:1,b:i.b};}}return R.hex;};E.getColor.reset=function(){delete this.start;};E.parsePathString=w(function(R){if(!R){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(E.isArray(R)&&E.isArray(R[0])){e=S(R);}if(!e.length){(R+"").replace(/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,function(z,y,AC){var AB=[],AA=y.toLowerCase();AC.replace(/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,function(AE,AD){AD&&AB.push(+AD);});while(AB.length>=i[AA]){e.push([y].concat(AB.splice(0,i[AA])));if(!i[AA]){break;}}});}e.toString=E._path2string;return e;});var a=w(function(AG){AG=o(AG);var AD=0,AC=0,z=[],e=[];for(var AA=0,AF=AG.length;AAAD){AE=AE-Math.PI*2;}if(!AA&&AD>AE){AD=AD-Math.PI*2;}}else{AE=AM[0];AD=AM[1];AO=AM[2];AN=AM[3];}var AI=AD-AE;if(Math.abs(AI)>AQ){var AP=AD,AS=AJ,AG=An;AD=AE+AQ*(AA&&AD>AE?1:-1);AJ=AO+AT*Math.cos(AD);An=AN+AR*Math.sin(AD);AX=P(AJ,An,AT,AR,AL,0,AA,AS,AG,[AD,AP,AO,AN]);}var AC=Math.cos(AE),Am=Math.sin(AE),AB=Math.cos(AD),Al=Math.sin(AD),AI=AD-AE,Aa=Math.tan(AI/4),Ad=4/3*AT*Aa,Ab=4/3*AR*Aa,Aj=[AK,Ao],Ai=[AK+Ad*Am,Ao-Ab*AC],Ah=[AJ+Ad*Al,An-Ab*AB],Af=[AJ,An];Ai[0]=2*Aj[0]-Ai[0];Ai[1]=2*Aj[1]-Ai[1];if(AM){return[Ai,Ah,Af].concat(AX);}else{AX=[Ai,Ah,Af].concat(AX).join(",").split(",");var AV=[];for(var Ag=0,AW=AX.length;Ag0&&AC<1?AC:0),AB=Z(e,R,z,i,AM,AL,AI,AF,AA>0&&AA<1?AA:0);AJ=AJ.concat(AD.x,AB.x);AG=AG.concat(AD.y,AB.y);AK=(AL-2*i+R)-(AF-2*AL+i);AH=2*(i-R)-2*(AL-i);AE=R-i;AC=(-AH+Math.sqrt(AH*AH-4*AK*AE))/2/AK;AA=(-AH-Math.sqrt(AH*AH-4*AK*AE))/2/AK;AD=Z(e,R,z,i,AM,AL,AI,AF,AC>0&&AC<1?AC:0);AB=Z(e,R,z,i,AM,AL,AI,AF,AA>0&&AA<1?AA:0);AJ=AJ.concat(AD.x,AB.x);AG=AG.concat(AD.y,AB.y);return{min:{x:Math.min.apply(Math,AJ),y:Math.min.apply(Math,AG)},max:{x:Math.max.apply(Math,AJ),y:Math.max.apply(Math,AG)}};}),o=w(function(AK,AF){var z=V(AK),AG=AF&&V(AF),AH={x:0,y:0,bx:0,by:0,X:0,Y:0},R={x:0,y:0,bx:0,by:0,X:0,Y:0},AB=function(AL,AM){if(!AL){return["C",AM.x,AM.y,AM.x,AM.y,AM.x,AM.y];}switch(AL[0]){case"M":AM.X=AL[1];AM.Y=AL[2];break;case"A":AL=["C"].concat(P(AM.x,AM.y,AL[1],AL[2],AL[3],AL[4],AL[5],AL[6],AL[7]));break;case"S":var i=AM.x+(AM.x-(AM.bx||AM.x)),AN=AM.y+(AM.y-(AM.by||AM.y));AL=["C",i,AN,AL[1],AL[2],AL[3],AL[4]];break;case"T":var i=AM.x+(AM.x-(AM.bx||AM.x)),AN=AM.y+(AM.y-(AM.by||AM.y));AL=["C"].concat(W(AM.x,AM.y,i,AN,AL[1],AL[2]));break;case"Q":AL=["C"].concat(W(AM.x,AM.y,AL[1],AL[2],AL[3],AL[4]));break;case"L":AL=["C"].concat(D(AM.x,AM.y,AL[1],AL[2]));break;case"H":AL=["C"].concat(D(AM.x,AM.y,AL[1],AM.y));break;case"V":AL=["C"].concat(D(AM.x,AM.y,AM.x,AL[1]));break;case"Z":AL=["C"].concat(D(AM.x,AM.y,AM.X,AM.Y));break;}return AL;},e=function(AL,AM){if(AL[AM].length>7){AL[AM].shift();var AN=AL[AM];while(AN.length){AL.splice(AM++,0,["C"].concat(AN.splice(0,6)));}AL.splice(AM,1);AI=Math.max(z.length,AG&&AG.length||0);}},y=function(AP,AO,AM,AL,AN){if(AP&&AO&&AP[AN][0]=="M"&&AO[AN][0]!="M"){AO.splice(AN,0,["M",AL.x,AL.y]);AM.bx=0;AM.by=0;AM.x=AP[AN][1];AM.y=AP[AN][2];AI=Math.max(z.length,AG&&AG.length||0);}};for(var AD=0,AI=Math.max(z.length,AG&&AG.length||0);AD3){return{container:1,x:arguments[0],y:arguments[1],width:arguments[2],height:arguments[3]};}}},A=function(R,i){var e=this;for(var y in i){if(i.hasOwnProperty(y)&&!(y in R)){switch(typeof i[y]){case"function":(function(z){R[y]=R===e?z:function(){return z.apply(e,arguments);};})(i[y]);break;case"object":R[y]=R[y]||{};A.call(this,R[y],i[y]);break;default:R[y]=i[y];break;}}}};if(E.svg){var n=function(R){return +R+(Math.floor(R)==R)*0.5;};var Y=function(AA){for(var e=0,y=AA.length;eAC.height)&&(AC.height=AB.y+AB.height-AC.y);}}y&&this.hide();return AC;};K.prototype.attr=function(){if(arguments.length==1&&typeof arguments[0]=="string"){if(arguments[0]=="translation"){return this.translate();}if(arguments[0]=="rotation"){return this.rotate();}if(arguments[0]=="scale"){return this.scale();}return this.attrs[arguments[0]];}if(arguments.length==1&&E.isArray(arguments[0])){var R={};for(var e in arguments[0]){R[arguments[0][e]]=this.attrs[arguments[0][e]];}return R;}if(arguments.length==2){var i={};i[arguments[0]]=arguments[1];d(this,i);}else{if(arguments.length==1&&typeof arguments[0]=="object"){d(this,arguments[0]);}}return this;};K.prototype.toFront=function(){this.node.parentNode.appendChild(this.node);return this;};K.prototype.toBack=function(){if(this.node.parentNode.firstChild!=this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);}return this;};K.prototype.insertAfter=function(R){if(R.node.nextSibling){R.node.parentNode.insertBefore(this.node,R.node.nextSibling);}else{R.node.parentNode.appendChild(this.node);}return this;};K.prototype.insertBefore=function(R){var e=R.node;e.parentNode.insertBefore(this.node,e);return this;};var b=function(e,R,AB,AA){R=n(R);AB=n(AB);var z=F.createElementNS(e.svgns,"circle");z.setAttribute("cx",R);z.setAttribute("cy",AB);z.setAttribute("r",AA);z.setAttribute("fill","none");z.setAttribute("stroke","#000");if(e.canvas){e.canvas.appendChild(z);}var i=new K(z,e);i.attrs=i.attrs||{};i.attrs.cx=R;i.attrs.cy=AB;i.attrs.r=AA;i.attrs.stroke="#000";i.type="circle";return i;};var h=function(i,R,AD,e,AB,AC){R=n(R);AD=n(AD);var AA=F.createElementNS(i.svgns,"rect");AA.setAttribute("x",R);AA.setAttribute("y",AD);AA.setAttribute("width",e);AA.setAttribute("height",AB);if(AC){AA.setAttribute("rx",AC);AA.setAttribute("ry",AC);}AA.setAttribute("fill","none");AA.setAttribute("stroke","#000");if(i.canvas){i.canvas.appendChild(AA);}var z=new K(AA,i);z.attrs=z.attrs||{};z.attrs.x=R;z.attrs.y=AD;z.attrs.width=e;z.attrs.height=AB;z.attrs.stroke="#000";if(AC){z.attrs.rx=z.attrs.ry=AC;}z.type="rect";return z;};var G=function(e,R,AC,AB,AA){R=n(R);AC=n(AC);var z=F.createElementNS(e.svgns,"ellipse");z.setAttribute("cx",R);z.setAttribute("cy",AC);z.setAttribute("rx",AB);z.setAttribute("ry",AA);z.setAttribute("fill","none");z.setAttribute("stroke","#000");if(e.canvas){e.canvas.appendChild(z);}var i=new K(z,e);i.attrs=i.attrs||{};i.attrs.cx=R;i.attrs.cy=AC;i.attrs.rx=AB;i.attrs.ry=AA;i.attrs.stroke="#000";i.type="ellipse";return i;};var N=function(i,AC,R,AD,e,AB){var AA=F.createElementNS(i.svgns,"image");AA.setAttribute("x",R);AA.setAttribute("y",AD);AA.setAttribute("width",e);AA.setAttribute("height",AB);AA.setAttribute("preserveAspectRatio","none");AA.setAttributeNS(i.xlink,"href",AC);if(i.canvas){i.canvas.appendChild(AA);}var z=new K(AA,i);z.attrs=z.attrs||{};z.attrs.src=AC;z.attrs.x=R;z.attrs.y=AD;z.attrs.width=e;z.attrs.height=AB;z.type="image";return z;};var g=function(e,R,AB,AA){var z=F.createElementNS(e.svgns,"text");z.setAttribute("x",R);z.setAttribute("y",AB);z.setAttribute("text-anchor","middle");if(e.canvas){e.canvas.appendChild(z);}var i=new K(z,e);i.attrs=i.attrs||{};i.attrs.text=AA;i.attrs.x=R;i.attrs.y=AB;i.type="text";d(i,{font:O.font,stroke:"none",fill:"#000",text:AA});return i;};var c=function(e,R){this.width=e||this.width;this.height=R||this.height;this.canvas.setAttribute("width",this.width);this.canvas.setAttribute("height",this.height);return this;};var J=function(){var z=f.apply(null,arguments),i=z.container,e=z.x,AC=z.y,AA=z.width,R=z.height;if(!i){throw new Error("SVG container not found.");}B.canvas=F.createElementNS(B.svgns,"svg");B.canvas.setAttribute("width",AA||512);B.width=AA||512;B.canvas.setAttribute("height",R||342);B.height=R||342;if(i==1){F.body.appendChild(B.canvas);B.canvas.style.position="absolute";B.canvas.style.left=e+"px";B.canvas.style.top=AC+"px";}else{if(i.firstChild){i.insertBefore(B.canvas,i.firstChild);}else{i.appendChild(B.canvas);}}i={canvas:B.canvas,clear:function(){while(this.canvas.firstChild){this.canvas.removeChild(this.canvas.firstChild);}this.defs=F.createElementNS(B.svgns,"defs");this.canvas.appendChild(this.defs);}};for(var AB in B){if(AB!="create"){i[AB]=B[AB];}}A.call(i,i,E.fn);i.clear();i.raphael=E;return i;};B.remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);};B.svgns="http://www.w3.org/2000/svg";B.xlink="http://www.w3.org/1999/xlink";B.safari=function(){if({"Apple Computer, Inc.":1,"Google Inc.":1}[navigator.vendor]){var R=this.rect(-this.width,-this.height,this.width*3,this.height*3).attr({stroke:"none"});setTimeout(function(){R.remove();});}};}if(E.vml){var X=function(AB){var z=o(AB);for(var e=0,y=z.length;e1&&(AB=1);AH.opacity=AB;}z.fill&&(AH.on=true);if(AH.on==null||z.fill=="none"){AH.on=false;}if(AH.on&&z.fill){var AA=z.fill.match(/^url\(([^\)]+)\)$/i);if(AA){AH.src=AA[1];AH.type="tile";}else{AH.color=E.getRGB(z.fill).hex;AH.src="";AH.type="solid";}}e&&y.appendChild(AH);var AG=(y.getElementsByTagName("stroke")&&y.getElementsByTagName("stroke")[0]),R=false;!AG&&(R=AG=u("stroke"));if((z.stroke&&z.stroke!="none")||z["stroke-width"]||z["stroke-opacity"]!=null||z["stroke-dasharray"]||z["stroke-miterlimit"]||z["stroke-linejoin"]||z["stroke-linecap"]){AG.on=true;}(z.stroke=="none"||AG.on==null||z.stroke==0||z["stroke-width"]==0)&&(AG.on=false);AG.on&&z.stroke&&(AG.color=E.getRGB(z.stroke).hex);var AB=((+AF["stroke-opacity"]+1||2)-1)*((+AF.opacity+1||2)-1);AB<0&&(AB=0);AB>1&&(AB=1);AG.opacity=AB;z["stroke-linejoin"]&&(AG.joinstyle=z["stroke-linejoin"]||"miter");AG.miterlimit=z["stroke-miterlimit"]||8;z["stroke-linecap"]&&(AG.endcap={butt:"flat",square:"square",round:"round"}[z["stroke-linecap"]]||"miter");z["stroke-width"]&&(AG.weight=(parseFloat(z["stroke-width"])||1)*12/16);if(z["stroke-dasharray"]){var AE={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};AG.dashstyle=AE[z["stroke-dasharray"]]||"";}R&&y.appendChild(AG);}if(AD.type=="text"){var AJ=B.span.style;AF.font&&(AJ.font=AF.font);AF["font-family"]&&(AJ.fontFamily=AF["font-family"]);AF["font-size"]&&(AJ.fontSize=AF["font-size"]);AF["font-weight"]&&(AJ.fontWeight=AF["font-weight"]);AF["font-style"]&&(AJ.fontStyle=AF["font-style"]);B.span.innerHTML=AD.node.string.replace(/");AD.W=AF.w=B.span.offsetWidth;AD.H=AF.h=B.span.offsetHeight;AD.X=AF.x;AD.Y=AF.y+Math.round(AD.H/2);switch(AF["text-anchor"]){case"start":AD.node.style["v-text-align"]="left";AD.bbx=Math.round(AD.W/2);break;case"end":AD.node.style["v-text-align"]="right";AD.bbx=-Math.round(AD.W/2);break;default:AD.node.style["v-text-align"]="center";break;}}};var M=function(e,R,z,y){var i=Math.round(Math.atan((parseFloat(z)-parseFloat(e))/(parseFloat(y)-parseFloat(R)))*57.29)||0;if(!i&&parseFloat(e)');};}catch(t){var u=function(R){return F.createElement("<"+R+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');};}var J=function(){var z=f.apply(null,arguments),e=z.container,AE=z.height,AF,i=z.width,AD=z.x,AC=z.y;if(!e){throw new Error("VML container not found.");}var AB=B.canvas=F.createElement("div"),AA=AB.style;i=parseFloat(i)||"512px";AE=parseFloat(AE)||"342px";B.width=i;B.height=AE;B.coordsize=i+" "+AE;B.coordorigin="0 0";B.span=F.createElement("span");AF=B.span.style;AB.appendChild(B.span);AF.position="absolute";AF.left="-99999px";AF.top="-99999px";AF.padding=0;AF.margin=0;AF.lineHeight=1;AF.display="inline";AA.width=i+"px";AA.height=AE+"px";AA.position="absolute";AA.clip="rect(0 "+i+"px "+AE+"px 0)";if(e==1){F.body.appendChild(AB);AA.left=AD+"px";AA.top=AC+"px";e={style:{width:i,height:AE}};}else{e.style.width=i;e.style.height=AE;if(e.firstChild){e.insertBefore(AB,e.firstChild);}else{e.appendChild(AB);}}for(var R in B){e[R]=B[R];}A.call(e,e,E.fn);e.clear=function(){while(AB.firstChild){AB.removeChild(AB.firstChild);}};e.raphael=E;return e;};B.remove=function(){this.canvas.parentNode.removeChild(this.canvas);};B.safari=function(){};}var H=(function(){if(F.addEventListener){return function(z,i,e,R){var y=function(AA){return e.call(R,AA);};z.addEventListener(i,y,false);return function(){z.removeEventListener(i,y,false);return true;};};}else{if(F.attachEvent){return function(AA,y,i,e){var z=function(AB){return i.call(e,AB||l.event);};AA.attachEvent("on"+y,z);var R=function(){AA.detachEvent("on"+y,z);return true;};if(y=="mouseover"){AA.attachEvent("onmouseenter",z);return function(){AA.detachEvent("onmouseenter",z);return R();};}else{if(y=="mouseout"){AA.attachEvent("onmouseleave",z);return function(){AA.detachEvent("onmouseleave",z);return R();};}}return R;};}}})();for(var q=U.length;q--;){(function(R){K.prototype[R]=function(e){if(typeof e=="function"){this.events=this.events||{};this.events[R]=this.events[R]||{};this.events[R][e]=this.events[R][e]||[];this.events[R][e].push(H(this.shape||this.node,R,e,this));}return this;};K.prototype["un"+R]=function(e){this.events&&this.events[R]&&this.events[R][e]&&this.events[R][e].length&&this.events[R][e].shift()()&&!this.events[R][e].length&&delete this.events[R][e];};})(U[q]);}B.circle=function(R,i,e){return b(this,R,i,e);};B.rect=function(R,AA,e,i,z){return h(this,R,AA,e,i,z);};B.ellipse=function(R,z,i,e){return G(this,R,z,i,e);};B.path=function(R){var e=E.isArray(arguments[1])?[0].concat(arguments[1]):arguments;R&&typeof R=="string"&&e.length-1&&(R=R.replace(/\{(\d+)\}/g,function(z,y){return e[++y]||0;}));return v(R,this);};B.image=function(z,R,AA,e,i){return N(this,z,R,AA,e,i);};B.text=function(R,i,e){return g(this,R,i,e);};B.set=function(R){arguments.length>1&&(R=Array.prototype.splice.call(arguments,0,arguments.length));return new I(R);};B.setSize=c;K.prototype.stop=function(){clearTimeout(this.animation_in_progress);return this;};K.prototype.scale=function(AJ,AI,z,e){if(AJ==null&&AI==null){return{x:this._.sx,y:this._.sy,toString:function(){return +this.x.toFixed(3)+" "+(+this.y.toFixed(3));}};}AI=AI||AJ;!+AI&&(AI=AJ);var AN,AL,AM,AK,AZ=this.attrs;if(AJ!=0){var AH=this.type=="path"?a(AZ.path):this.getBBox(),AE=AH.x+AH.width/2,AB=AH.y+AH.height/2,AY=AJ/this._.sx,AX=AI/this._.sy;z=(+z||z==0)?z:AE;e=(+e||e==0)?e:AB;var AG=Math.round(AJ/Math.abs(AJ)),AD=Math.round(AI/Math.abs(AI)),AQ=this.node.style,Ab=z+(AE-z)*AG*AY,Aa=e+(AB-e)*AD*AX;switch(this.type){case"rect":case"image":var AF=AZ.width*AG*AY,AP=AZ.height*AD*AX,AC=Ab-AF/2,AA=Aa-AP/2;this.attr({width:AF,height:AP,x:AC,y:AA});break;case"circle":case"ellipse":this.attr({rx:AZ.rx*AY,ry:AZ.ry*AX,r:AZ.r*AY,cx:Ab,cy:Aa});break;case"path":var AS=C(AZ.path),AT=true;for(var AV=0,AO=AS.length;AV":function(R){return Math.pow(R-1,3)+1;},"<>":function(R){R=R*2;if(R<1){return Math.pow(R,3)/2;}R-=2;return(Math.pow(R,3)+2)/2;},backIn:function(e){var R=1.70158;return e*e*((R+1)*e-R);},backOut:function(e){e=e-1;var R=1.70158;return e*e*((R+1)*e+R)+1;},elastic:function(i){if(i==0||i==1){return i;}var e=0.3,R=e/4;return Math.pow(2,-10*i)*Math.sin((i-R)*(2*Math.PI)/e)+1;},bounce:function(y){var e=7.5625,i=2.75,R;if(y<(1/i)){R=e*y*y;}else{if(y<(2/i)){y-=(1.5/i);R=e*y*y+0.75;}else{if(y<(2.5/i)){y-=(2.25/i);R=e*y*y+0.9375;}else{y-=(2.625/i);R=e*y*y+0.984375;}}}return R;}};K.prototype.animate=function(AR,AI,AH,z){clearTimeout(this.animation_in_progress);if(typeof AH=="function"||!AH){z=AH||null;}var AL={},e={},AF={},AE={x:0,y:0};for(var AJ in AR){if(AJ in T){AL[AJ]=this.attr(AJ);(typeof AL[AJ]=="undefined")&&(AL[AJ]=O[AJ]);e[AJ]=AR[AJ];switch(T[AJ]){case"number":AF[AJ]=(e[AJ]-AL[AJ])/AI;break;case"colour":AL[AJ]=E.getRGB(AL[AJ]);var AK=E.getRGB(e[AJ]);AF[AJ]={r:(AK.r-AL[AJ].r)/AI,g:(AK.g-AL[AJ].g)/AI,b:(AK.b-AL[AJ].b)/AI};break;case"path":var AA=o(AL[AJ],e[AJ]);AL[AJ]=AA[0];e[AJ]=AA[1];AF[AJ]=[];for(var AN=0,AD=AL[AJ].length;AN255?255:+i;},AB=this;(function AO(){var AT=new Date-y,Ab={},AS;if(AT