function dechex(D){var A=parseInt(D/16);var C=dechexHelper(A);var B=D-(A*16);return C+""+dechexHelper(B)}function dechexHelper(A){if(A<=9){return A}switch(A){case 10:return"A";case 11:return"B";case 12:return"C";case 13:return"D";case 14:return"E";case 15:return"F"}}function hexdec(B){if(B.length==6){return hexdec(B.substr(0,2))+" "+hexdec(B.substr(2,2))+" "+hexdec(B.substr(4,2))}var C=parseInt(hexdecHelper(B.substr(0,1)));var A=parseInt(hexdecHelper(B.substr(1)));return(C*16)+A}function hexdecHelper(A){if(A<=9){return A}switch(A.toUpperCase()){case"A":return 10;case"B":return 11;case"C":return 12;case"D":return 13;case"E":return 14;case"F":return 15}}function Point3(){var A=arguments;switch(A.length){case 0:default:this.x=this.y=this.z=0;break;case 1:switch(typeof A[0]){case"object":var C=A[0];if(C.constructor==Point3){this.x=C.x;this.y=C.y;this.z=C.z}else{if(C.constructor==Array){this.x=C[0];this.y=C[1];this.z=C[2]}}break;case"string":var B;if(A[0].length==6){B=parseInt("0x"+A[0])}else{if(A[0].charAt(0)=="#"){B=parseInt("0x"+A[0].substr(1,6))}else{B=Math.floor(A[0])}}this.x=(B&16711680)>>>16;this.y=(B&65280)>>>8;this.z=(B&255)>>>0;break;default:this.x=this.y=this.z=A[0]}break;case 3:this.x=A[0];this.y=A[1];this.z=A[2];break}}function setBasicMember__Point3__(){var C=Point3;var A=C.prototype;function B(D){if(D<0){return"00"}else{if(D<16){return"0"+D.toString(16)}else{if(D>255){return"ff"}else{return D.toString(16)}}}}C.RGBtoHSB=function(){var J=new C(arguments[0]);var E=J.max();var F=J.min();var H=0;var G=(E!=0)?(E-F)/E:0;var D=E/255;if(G!=0){var I=new C(J);I.scale(-1);I.add(E);I.scale(1/(E-F));if(J.x==E){H=0+I.z-I.y}else{if(J.y==E){H=2+I.x-I.z}else{H=4+I.y-I.x}}H/=6;if(H<0){H+=1}else{if(H>1){H-=1}}}return new C(H,G,D)};C.HSBtoRGB=function(){var L=new C(arguments[0]);var F=L.x;var M=L.y;var K=L.z;var J=new C();if(M==0){J.add(K)}else{var I=(F-Math.floor(F))*6;var H=Math.floor(I);var G=I-H;var D=K*(1-M);var E=((H&1)==0)?K*(1-M*(1-G)):K*(1-M*G);switch(H){case 0:J.set(K,E,D);break;case 1:J.set(E,K,D);break;case 2:J.set(D,K,E);break;case 3:J.set(D,E,K);break;case 4:J.set(E,D,K);break;case 5:J.set(K,D,E);break}}J.scale(255);J.add(0.5);return J.toInteger()};A.set=function(){var D=arguments;var E;switch(D.length){case 0:default:E=new C();break;case 1:E=new C(D[0]);break;case 3:E=new C(D[0],D[1],D[2]);break}this.x=E.x;this.y=E.y;this.z=E.z};A.setX=function(D){this.x=D};A.setY=function(D){this.y=D};A.setZ=function(D){this.z=D};A.getX=function(){return this.x};A.getY=function(){return this.y};A.getZ=function(){return this.z};A.toArray=function(){return new Array(this.x,this.y,this.z)};A.toInteger=function(){return new C(Math.floor(this.x),Math.floor(this.y),Math.floor(this.z))};A.toColor=A.getColor=function(){return B(Math.round(this.x))+B(Math.round(this.y))+B(Math.round(this.z))};A.equals=function(D){return(this.x==D.x&&this.y==D.y&&this.z==D.z)};A.intEquals=function(D){return(this.toInteger().equals(D.toInteger()))};A.isNaN=function(){return(isNaN(this.x)||isNaN(this.y)||isNaN(this.z)||this.x==""||this.y==""||this.z=="")};A.distance=function(E){if(E){var D=new C(this);D.sub(E);return D.distance()}else{return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2)+Math.pow(this.z,2))}};A.mulin=function(D){return this.x*D.x+this.y*D.y+this.z*D.z};A.mulout=function(D){return new C(this.y*D.z-D.y*this.z,this.z*D.x-D.z*this.x,this.x*D.y-D.x*this.y)};A.max=function(){return Math.max(Math.max(this.x,this.y),this.z)};A.min=function(){return Math.min(Math.min(this.x,this.y),this.z)};A.angle=function(E){var D=this.mulin(E)/(this.distance()*E.distance());if(Math.abs(D)>1){D/=Math.abs(D)}return Math.acos(D)};A.absolute=function(){this.x=Math.abs(this.x);this.y=Math.abs(this.y);this.z=Math.abs(this.z)};A.scale=function(D){this.x*=D;this.y*=D;this.z*=D};A.add=function(D){var E=new C(D);this.x+=E.x;this.y+=E.y;this.z+=E.z};A.sub=function(D){var E=new C(D);this.x-=E.x;this.y-=E.y;this.z-=E.z};A.toString=function(){return"Point3:("+this.x+","+this.y+","+this.z+")"}}setBasicMember__Point3__();function HSBtoRGB(G,D,I){var A=0,F=0,J=0;if(D==0){A=F=J=parseInt(I*255)}else{var E=(G-Math.floor(G))*6;var H=E-Math.floor(E);var C=I*(1-D);var B=I*(1-D*H);var K=I*(1-(D*(1-H)));E=E+"";if(E.charAt(0)=="."){E=0+E}if(parseInt(E)==0){A=parseInt(I*255);F=parseInt(K*255);J=parseInt(C*255)}else{if(parseInt(E)==1){A=parseInt(B*255);F=parseInt(I*255);J=parseInt(C*255)}else{if(parseInt(E)==2){A=parseInt(C*255);F=parseInt(I*255);J=parseInt(K*255)}else{if(parseInt(E)==3){A=parseInt(C*255);F=parseInt(B*255);J=parseInt(I*255)}else{if(parseInt(E)==4){A=parseInt(K*255);F=parseInt(C*255);J=parseInt(I*255)}else{if(parseInt(E)==5){A=parseInt(I*255);F=parseInt(C*255);J=parseInt(B*255)}}}}}}}A=A.toString(16);F=F.toString(16);J=J.toString(16);if(A.length==0){A="00"}if(F.length==0){F="00"}if(J.length==0){J="00"}if(A.length==1){A="0"+A}if(F.length==1){F="0"+F}if(J.length==1){J="0"+J}return new Array(A,F,J)}function isDarkColor(A){var B=A.substr(2,1);return(!isNaN(B)&&(B<8))}function mixColor(L,D,I){if(L.length>=7){L=L.substr(1,6)}if(D.length>=7){D=D.substr(1,6)}L=L.toUpperCase();D=D.toUpperCase();if(I==0){return"#"+L}if(I==100){return"#"+D}var B=hexdec(L.substr(0,2));var M=hexdec(L.substr(2,2));var P=hexdec(L.substr(4,2));var N=hexdec(D.substr(0,2));var E=hexdec(D.substr(2,2));var A=hexdec(D.substr(4,2));try{var C=mixColorPart(B,N,I);var K=mixColorPart(M,E,I);var F=mixColorPart(P,A,I);var Q=C.toString(16);var G=K.toString(16);var O=F.toString(16);if(Q.length==1){Q="0"+Q}if(G.length==1){G="0"+G}if(O.length==1){O="0"+O}var J="#"+(Q+G+O).toUpperCase();return J}catch(H){return false}}function mixColorPart(D,C,B){if(B==0){return D}if(B==100){return C}var A=C-D;if(A>0){return D+parseInt(A/100*B)}else{if(A<0){return D+parseInt(A/100*B)}else{return D}}};