Created
December 7, 2011 21:05
-
-
Save edvakf/1444656 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*** | |
P R O C E S S I N G . J S - 1.3.0 | |
a port of the Processing visualization language | |
Processing.js is licensed under the MIT License, see LICENSE. | |
For a list of copyright holders, please refer to AUTHORS. | |
http://processingjs.org | |
***/ | |
(function(U,at,ah,ae){var R=function(){};var af=(function(){if("console" in U){return function(a){U.console.log("Processing.js: "+a)}}return R()}());var ab=function(a){var b=new XMLHttpRequest();b.open("GET",a,false);if(b.overrideMimeType){b.overrideMimeType("text/plain")}b.setRequestHeader("If-Modified-Since","Fri, 01 Jan 1960 00:00:00 GMT");b.send(null);if(b.status!==200&&b.status!==0){throw ("XMLHttpRequest failed, status code "+b.status)}return b.responseText};var ak=("document" in this)&&!("fake" in this.document);function V(a,b){if(a in U){return U[a]}if(typeof U[b]==="function"){return U[b]}return function(c){if(c instanceof Array){return c}if(typeof c==="number"){var d=[];d.length=c;return d}}}var ar=V("Float32Array","WebGLFloatArray"),N=V("Int32Array","WebGLIntArray"),Z=V("Uint16Array","WebGLUnsignedShortArray"),av=V("Uint8Array","WebGLUnsignedByteArray");var W={X:0,Y:1,Z:2,R:3,G:4,B:5,A:6,U:7,V:8,NX:9,NY:10,NZ:11,EDGE:12,SR:13,SG:14,SB:15,SA:16,SW:17,TX:18,TY:19,TZ:20,VX:21,VY:22,VZ:23,VW:24,AR:25,AG:26,AB:27,DR:3,DG:4,DB:5,DA:6,SPR:28,SPG:29,SPB:30,SHINE:31,ER:32,EG:33,EB:34,BEEN_LIT:35,VERTEX_FIELD_COUNT:36,P2D:1,JAVA2D:1,WEBGL:2,P3D:2,OPENGL:2,PDF:0,DXF:0,OTHER:0,WINDOWS:1,MAXOSX:2,LINUX:3,EPSILON:0.0001,MAX_FLOAT:3.4028235e+38,MIN_FLOAT:-3.4028235e+38,MAX_INT:2147483647,MIN_INT:-2147483648,PI:ah.PI,TWO_PI:2*ah.PI,HALF_PI:ah.PI/2,THIRD_PI:ah.PI/3,QUARTER_PI:ah.PI/4,DEG_TO_RAD:ah.PI/180,RAD_TO_DEG:180/ah.PI,WHITESPACE:" \t\n\r\f\u00A0",RGB:1,ARGB:2,HSB:3,ALPHA:4,CMYK:5,TIFF:0,TARGA:1,JPEG:2,GIF:3,BLUR:11,GRAY:12,INVERT:13,OPAQUE:14,POSTERIZE:15,THRESHOLD:16,ERODE:17,DILATE:18,REPLACE:0,BLEND:1<<0,ADD:1<<1,SUBTRACT:1<<2,LIGHTEST:1<<3,DARKEST:1<<4,DIFFERENCE:1<<5,EXCLUSION:1<<6,MULTIPLY:1<<7,SCREEN:1<<8,OVERLAY:1<<9,HARD_LIGHT:1<<10,SOFT_LIGHT:1<<11,DODGE:1<<12,BURN:1<<13,ALPHA_MASK:4278190080,RED_MASK:16711680,GREEN_MASK:65280,BLUE_MASK:255,CUSTOM:0,ORTHOGRAPHIC:2,PERSPECTIVE:3,POINT:2,POINTS:2,LINE:4,LINES:4,TRIANGLE:8,TRIANGLES:9,TRIANGLE_STRIP:10,TRIANGLE_FAN:11,QUAD:16,QUADS:16,QUAD_STRIP:17,POLYGON:20,PATH:21,RECT:30,ELLIPSE:31,ARC:32,SPHERE:40,BOX:41,GROUP:0,PRIMITIVE:1,GEOMETRY:3,VERTEX:0,BEZIER_VERTEX:1,CURVE_VERTEX:2,BREAK:3,CLOSESHAPE:4,OPEN:1,CLOSE:2,CORNER:0,CORNERS:1,RADIUS:2,CENTER_RADIUS:2,CENTER:3,DIAMETER:3,CENTER_DIAMETER:3,BASELINE:0,TOP:101,BOTTOM:102,NORMAL:1,NORMALIZED:1,IMAGE:2,MODEL:4,SHAPE:5,SQUARE:"butt",ROUND:"round",PROJECT:"square",MITER:"miter",BEVEL:"bevel",AMBIENT:0,DIRECTIONAL:1,SPOT:3,BACKSPACE:8,TAB:9,ENTER:10,RETURN:13,ESC:27,DELETE:127,CODED:65535,SHIFT:16,CONTROL:17,ALT:18,CAPSLK:20,PGUP:33,PGDN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLK:144,META:157,INSERT:155,ARROW:"default",CROSS:"crosshair",HAND:"pointer",MOVE:"move",TEXT:"text",WAIT:"wait",NOCURSOR:"url('data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='), auto",DISABLE_OPENGL_2X_SMOOTH:1,ENABLE_OPENGL_2X_SMOOTH:-1,ENABLE_OPENGL_4X_SMOOTH:2,ENABLE_NATIVE_FONTS:3,DISABLE_DEPTH_TEST:4,ENABLE_DEPTH_TEST:-4,ENABLE_DEPTH_SORT:5,DISABLE_DEPTH_SORT:-5,DISABLE_OPENGL_ERROR_REPORT:6,ENABLE_OPENGL_ERROR_REPORT:-6,ENABLE_ACCURATE_TEXTURES:7,DISABLE_ACCURATE_TEXTURES:-7,HINT_COUNT:10,SINCOS_LENGTH:720,PRECISIONB:15,PRECISIONF:1<<15,PREC_MAXVAL:(1<<15)-1,PREC_ALPHA_SHIFT:24-15,PREC_RED_SHIFT:16-15,NORMAL_MODE_AUTO:0,NORMAL_MODE_SHAPE:1,NORMAL_MODE_VERTEX:2,MAX_LIGHTS:8};function ao(b){if(typeof(b)==="string"){var c=0;for(var a=0;a<b.length;++a){c=(c*31+b.charCodeAt(a))&4294967295}return c}if(typeof(b)!=="object"){return b&4294967295}if(b.hashCode instanceof Function){return b.hashCode()}if(b.$id===ae){b.$id=((ah.floor(ah.random()*65536)-32768)<<16)|ah.floor(ah.random()*65536)}return b.$id}function ag(b,a){if(b===null||a===null){return(b===null)&&(a===null)}if(typeof(b)==="string"){return b===a}if(typeof(b)!=="object"){return b===a}if(b.equals instanceof Function){return b.equals(a)}return b===a}var aj=function(b){if(b.iterator instanceof Function){return b.iterator()}if(b instanceof Array){var a=-1;this.hasNext=function(){return ++a<b.length};this.next=function(){return b[a]}}else{throw"Unable to iterate: "+b}};var aq=(function(){function b(c){var d=0;this.hasNext=function(){return d<c.length};this.next=function(){return c[d++]};this.remove=function(){c.splice(d,1)}}function a(){var c;if(arguments.length===0){c=[]}else{if(arguments.length>0&&typeof arguments[0]!=="number"){c=arguments[0].toArray()}else{c=[];c.length=0|arguments[0]}}this.get=function(d){return c[d]};this.contains=function(d){return this.indexOf(d)>-1};this.indexOf=function(d){for(var e=0,f=c.length;e<f;++e){if(ag(d,c[e])){return e}}return -1};this.add=function(){if(arguments.length===1){c.push(arguments[0])}else{if(arguments.length===2){var d=arguments[0];if(typeof d==="number"){if(d>=0&&d<=c.length){c.splice(d,0,arguments[1])}else{throw (d+" is not a valid index")}}else{throw (typeof d+" is not a number")}}else{throw ("Please use the proper number of parameters.")}}};this.addAll=function(e,f){var d;if(typeof e==="number"){if(e<0||e>c.length){throw ("Index out of bounds for addAll: "+e+" greater or equal than "+c.length)}d=new aj(f);while(d.hasNext()){c.splice(e++,0,d.next())}}else{d=new aj(e);while(d.hasNext()){c.push(d.next())}}};this.set=function(){if(arguments.length===2){var d=arguments[0];if(typeof d==="number"){if(d>=0&&d<c.length){c.splice(d,1,arguments[1])}else{throw (d+" is not a valid index.")}}else{throw (typeof d+" is not a number")}}else{throw ("Please use the proper number of parameters.")}};this.size=function(){return c.length};this.clear=function(){c.length=0};this.remove=function(d){if(typeof d==="number"){return c.splice(d,1)[0]}d=this.indexOf(d);if(d>-1){c.splice(d,1);return true}return false};this.isEmpty=function(){return !c.length};this.clone=function(){return new a(this)};this.toArray=function(){return c.slice(0)};this.iterator=function(){return new b(c)}}return a}());var aa=(function(){function a(){if(arguments.length===1&&arguments[0] instanceof a){return arguments[0].clone()}var c=arguments.length>0?arguments[0]:16;var b=arguments.length>1?arguments[1]:0.75;var i=[];i.length=c;var g=0;var k=this;function e(m){var l=ao(m)%i.length;return l<0?i.length+l:l}function h(){if(g<=b*i.length){return}var o=[];for(var p=0;p<i.length;++p){if(i[p]!==ae){o=o.concat(i[p])}}var n=i.length*2;i=[];i.length=n;for(var q=0;q<o.length;++q){var l=e(o[q].key);var m=i[l];if(m===ae){i[l]=m=[]}m.push(o[q])}}function j(o,m){var l=0;var n=-1;var p=false;function q(){while(!p){++n;if(l>=i.length){p=true}else{if(i[l]===ae||n>=i[l].length){n=-1;++l}else{return}}}}this.hasNext=function(){return !p};this.next=function(){var r=o(i[l][n]);q();return r};this.remove=function(){m(this.next());--n};q()}function d(l,n,m){this.clear=function(){k.clear()};this.contains=function(o){return n(o)};this.containsAll=function(p){var o=p.iterator();while(o.hasNext()){if(!this.contains(o.next())){return false}}return true};this.isEmpty=function(){return k.isEmpty()};this.iterator=function(){return new j(l,m)};this.remove=function(o){if(this.contains(o)){m(o);return true}return false};this.removeAll=function(o){var r=o.iterator();var p=false;while(r.hasNext()){var q=r.next();if(this.contains(q)){m(q);p=true}}return true};this.retainAll=function(o){var q=this.iterator();var s=[];while(q.hasNext()){var p=q.next();if(!o.contains(p)){s.push(p)}}for(var r=0;r<s.length;++r){m(s[r])}return s.length>0};this.size=function(){return k.size()};this.toArray=function(){var p=[];var o=this.iterator();while(o.hasNext()){p.push(o.next())}return p}}function f(l){this._isIn=function(m){return m===k&&(l.removed===ae)};this.equals=function(m){return ag(l.key,m.getKey())};this.getKey=function(){return l.key};this.getValue=function(){return l.value};this.hashCode=function(m){return ao(l.key)};this.setValue=function(m){var n=l.value;l.value=m;return n}}this.clear=function(){g=0;i=[];i.length=c};this.clone=function(){var l=new a();l.putAll(this);return l};this.containsKey=function(n){var l=e(n);var m=i[l];if(m===ae){return false}for(var o=0;o<m.length;++o){if(ag(m[o].key,n)){return true}}return false};this.containsValue=function(n){for(var o=0;o<i.length;++o){var m=i[o];if(m===ae){continue}for(var l=0;l<m.length;++l){if(ag(m[l].value,n)){return true}}}return false};this.entrySet=function(){return new d(function(l){return new f(l)},function(l){return(l instanceof f)&&l._isIn(k)},function(l){return k.remove(l.getKey())})};this.get=function(n){var l=e(n);var m=i[l];if(m===ae){return null}for(var o=0;o<m.length;++o){if(ag(m[o].key,n)){return m[o].value}}return null};this.isEmpty=function(){return g===0};this.keySet=function(){return new d(function(l){return l.key},function(l){return k.containsKey(l)},function(l){return k.remove(l)})};this.values=function(){return new d(function(l){return l.value},function(l){return k.containsValue(l)},function(l){return k.removeByValue(l)})};this.put=function(p,o){var l=e(p);var m=i[l];if(m===ae){++g;i[l]=[{key:p,value:o}];h();return null}for(var q=0;q<m.length;++q){if(ag(m[q].key,p)){var n=m[q].value;m[q].value=o;return n}}++g;m.push({key:p,value:o});h();return null};this.putAll=function(l){var n=l.entrySet().iterator();while(n.hasNext()){var m=n.next();this.put(m.getKey(),m.getValue())}};this.remove=function(o){var l=e(o);var n=i[l];if(n===ae){return null}for(var p=0;p<n.length;++p){if(ag(n[p].key,o)){--g;var m=n[p].value;n[p].removed=true;if(n.length>1){n.splice(p,1)}else{i[l]=ae}return m}}return null};this.removeByValue=function(o){var n,p,l,m;for(n in i){if(i.hasOwnProperty(n)){for(p=0,l=i[n].length;p<l;p++){m=i[n][p];if(m.value===o){i[n].splice(p,1);return true}}}}return false};this.size=function(){return g}}return a}());var X=(function(){function a(f,d,e){this.x=f||0;this.y=d||0;this.z=e||0}a.dist=function(d,e){return d.dist(e)};a.dot=function(d,e){return d.dot(e)};a.cross=function(d,e){return d.cross(e)};a.angleBetween=function(d,e){return ah.acos(d.dot(e)/(d.mag()*e.mag()))};a.prototype={set:function(f,d,e){if(arguments.length===1){this.set(f.x||f[0]||0,f.y||f[1]||0,f.z||f[2]||0)}else{this.x=f;this.y=d;this.z=e}},get:function(){return new a(this.x,this.y,this.z)},mag:function(){var f=this.x,d=this.y,e=this.z;return ah.sqrt(f*f+d*d+e*e)},add:function(f,d,e){if(arguments.length===1){this.x+=f.x;this.y+=f.y;this.z+=f.z}else{this.x+=f;this.y+=d;this.z+=e}},sub:function(f,d,e){if(arguments.length===1){this.x-=f.x;this.y-=f.y;this.z-=f.z}else{this.x-=f;this.y-=d;this.z-=e}},mult:function(d){if(typeof d==="number"){this.x*=d;this.y*=d;this.z*=d}else{this.x*=d.x;this.y*=d.y;this.z*=d.z}},div:function(d){if(typeof d==="number"){this.x/=d;this.y/=d;this.z/=d}else{this.x/=d.x;this.y/=d.y;this.z/=d.z}},dist:function(d){var e=this.x-d.x,f=this.y-d.y,g=this.z-d.z;return ah.sqrt(e*e+f*f+g*g)},dot:function(f,d,e){if(arguments.length===1){return(this.x*f.x+this.y*f.y+this.z*f.z)}return(this.x*f+this.y*d+this.z*e)},cross:function(f){var g=this.x,d=this.y,e=this.z;return new a(d*f.z-f.y*e,e*f.x-f.z*g,g*f.y-f.x*d)},normalize:function(){var d=this.mag();if(d>0){this.div(d)}},limit:function(d){if(this.mag()>d){this.normalize();this.mult(d)}},heading2D:function(){return(-ah.atan2(-this.y,this.x))},toString:function(){return"["+this.x+", "+this.y+", "+this.z+"]"},array:function(){return[this.x,this.y,this.z]}};function c(d){return function(e,f){var g=e.get();g[d](f);return g}}for(var b in a.prototype){if(a.prototype.hasOwnProperty(b)&&!a.hasOwnProperty(b)){a[b]=c(b)}}return a}());function L(){}L.prototype=W;var ap=new L();ap.ArrayList=aq;ap.HashMap=aa;ap.PVector=X;ap.ObjectIterator=aj;ap.PConstants=W;ap.defineProperty=function(c,a,b){if("defineProperty" in Object){Object.defineProperty(c,a,b)}else{if(b.hasOwnProperty("get")){c.__defineGetter__(a,b.get)}if(b.hasOwnProperty("set")){c.__defineSetter__(a,b.set)}}};function an(c,d){function b(f){ap.defineProperty(c,f,{get:function(){return d[f]},set:function(g){d[f]=g},enumerable:true})}var e=[];for(var a in d){if(typeof d[a]==="function"){if(!c.hasOwnProperty(a)){c[a]=d[a]}}else{if(a.charAt(0)!=="$"&&!(a in c)){e.push(a)}}}while(e.length>0){b(e.shift())}}ap.extendClassChain=function(c){var b=[c];for(var a=c.$upcast;a;a=a.$upcast){an(a,c);b.push(a);c=a}while(b.length>0){b.pop().$self=c}};ap.extendStaticMembers=function(a,b){an(a,b)};ap.extendInterfaceMembers=function(a,b){an(a,b)};ap.addMethod=function(d,e,b,c){if(d[e]){var f=b.length,a=d[e];d[e]=function(){if(arguments.length===f){return b.apply(this,arguments)}return a.apply(this,arguments)}}else{d[e]=b}};ap.createJavaArray=function(d,c){var g=null;if(typeof c[0]==="number"){var a=0|c[0];if(c.length<=1){g=[];g.length=a;for(var e=0;e<a;++e){g[e]=0}}else{g=[];var b=c.slice(1);for(var f=0;f<a;++f){g.push(ap.createJavaArray(d,b))}}}return g};var T={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",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:"#ff00ff",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",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",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:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",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:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};(function(f){var c=("open() createOutput() createInput() BufferedReader selectFolder() dataPath() createWriter() selectOutput() beginRecord() saveStream() endRecord() selectInput() saveBytes() createReader() beginRaw() endRaw() PrintWriter").split(" "),d=c.length,a,b;function e(g){return function(){throw"Processing.js does not support "+g+"."}}while(d--){a=c[d];b=a.replace("()","");f[b]=e(a)}}(ap));ap.defineProperty(ap,"screenWidth",{get:function(){return U.innerWidth}});ap.defineProperty(ap,"screenHeight",{get:function(){return U.innerHeight}});var al=[];var O={};var M=function(a){al.splice(O[a],1);delete O[a]};var aw=function(a){if(a.externals.canvas.id===ae||!a.externals.canvas.id.length){a.externals.canvas.id="__processing"+al.length}O[a.externals.canvas.id]=al.length;al.push(a)};function ai(e){var l=250,p=e.size/l,o=at.createElement("canvas");o.width=2*l;o.height=2*l;o.style.opacity=0;var f=e.getCSSDefinition(l+"px","normal"),d=o.getContext("2d");d.font=f;e.context2d=d;var r="dbflkhyjqpg";o.width=d.measureText(r).width;d.font=f;var i=at.createElement("div");i.style.position="absolute";i.style.opacity=0;i.style.fontFamily='"'+e.name+'"';i.style.fontSize=l+"px";i.innerHTML=r+"<br/>"+r;at.body.appendChild(i);var h=o.width,a=o.height,g=a/2;d.fillStyle="white";d.fillRect(0,0,h,a);d.fillStyle="black";d.fillText(r,0,g);var m=d.getImageData(0,0,h,a).data;var c=0,j=h*4,b=m.length;while(++c<b&&m[c]===255){R()}var k=ah.round(c/j);c=b-1;while(--c>0&&m[c]===255){R()}var q=ah.round(c/j);e.ascent=p*(g-k);e.descent=p*(q-g);if(at.defaultView.getComputedStyle){var n=at.defaultView.getComputedStyle(i,null).getPropertyValue("height");n=p*n.replace("px","");if(n>=e.size*2){e.leading=ah.round(n/2)}}at.body.removeChild(i)}function Q(a,e){if(a===ae){a=""}this.name=a;if(e===ae){e=0}this.size=e;this.glyph=false;this.ascent=0;this.descent=0;this.leading=1.2*e;var b=a.indexOf(" Italic Bold");if(b!==-1){a=a.substring(0,b)}this.style="normal";var c=a.indexOf(" Italic");if(c!==-1){a=a.substring(0,c);this.style="italic"}this.weight="normal";var d=a.indexOf(" Bold");if(d!==-1){a=a.substring(0,d);this.weight="bold"}this.family="sans-serif";if(a!==ae){switch(a){case"sans-serif":case"serif":case"monospace":case"fantasy":case"cursive":this.family=a;break;default:this.family='"'+a+'", sans-serif';break}}this.context2d=null;ai(this);this.css=this.getCSSDefinition();this.context2d.font=this.css}Q.prototype.getCSSDefinition=function(b,a){if(b===ae){b=this.size+"px"}if(a===ae){a=this.leading+"px"}var c=[this.style,"normal",this.weight,b+"/"+a,this.family];return c.join(" ")};Q.prototype.measureTextWidth=function(a){return this.context2d.measureText(a).width};Q.PFontCache={};Q.get=function(c,b){var d=Q.PFontCache;var a=c+"/"+b;if(!d[a]){d[a]=new Q(c,b)}return d[a]};Q.list=function(){return["sans-serif","serif","monospace","fantasy","cursive"]};Q.preloading={template:{},initialized:false,initialize:function(){var b=function(){var d="#E3KAI2wAgT1MvMg7Eo3VmNtYX7ABi3CxnbHlm7Abw3kaGVhZ7ACs3OGhoZWE7A53CRobXR47AY3AGbG9jYQ7G03Bm1heH7ABC3CBuYW1l7Ae3AgcG9zd7AI3AE#B3AQ2kgTY18PPPUACwAg3ALSRoo3#yld0xg32QAB77#E777773B#E3C#I#Q77773E#Q7777777772CMAIw7AB77732B#M#Q3wAB#g3B#E#E2BB//82BB////w#B7#gAEg3E77x2B32B#E#Q#MTcBAQ32gAe#M#QQJ#E32M#QQJ#I#g32Q77#";var e=function(f){return"AAAAAAAA".substr(~~f?7-f:6)};return d.replace(/[#237]/g,e)};var a=at.createElement("style");a.setAttribute("type","text/css");a.innerHTML='@font-face {\n font-family: "PjsEmptyFont";\n src: url(\'data:application/x-font-ttf;base64,'+b()+"')\n format('truetype');\n}";at.head.appendChild(a);var c=at.createElement("span");c.style.cssText='position: absolute; top: 0; left: 0; opacity: 0; font-family: "PjsEmptyFont", fantasy;';c.innerHTML="AAAAAAAA";at.body.appendChild(c);this.template=c;this.initialized=true},getElementWidth:function(a){return at.defaultView.getComputedStyle(a,"").getPropertyValue("width")},timeAttempted:0,pending:function(b){if(!this.initialized){this.initialize()}var d,a,c=this.getElementWidth(this.template);for(var e=0;e<this.fontList.length;e++){d=this.fontList[e];a=this.getElementWidth(d);if(this.timeAttempted<4000&&a===c){this.timeAttempted+=b;return true}else{at.body.removeChild(d);this.fontList.splice(e--,1);this.timeAttempted=0}}if(this.fontList.length===0){return false}return true},fontList:[],addedList:{},add:function(a){if(!this.initialized){this.initialize()}var b=(typeof a==="object"?a.fontFace:a),c=(typeof a==="object"?a.url:a);if(this.addedList[b]){return}var d=at.createElement("style");d.setAttribute("type","text/css");d.innerHTML="@font-face{\n font-family: '"+b+"';\n src: url('"+c+"');\n}\n";at.head.appendChild(d);this.addedList[b]=true;var e=at.createElement("span");e.style.cssText="position: absolute; top: 0; left: 0; opacity: 0;";e.style.fontFamily='"'+b+'", "PjsEmptyFont", fantasy';e.innerHTML="AAAAAAAA";at.body.appendChild(e);this.fontList.push(e)}};ap.PFont=Q;var S=this.Processing=function(gl,c){if(!(this instanceof S)){throw ("called Processing constructor as if it were a function: missing 'new'.")}function p(ax){S.debug("Unimplemented - "+ax)}var ev=this;var ez=(arguments.length===0);if(ez){gl=at.createElement("canvas")}ev.externals={canvas:gl,context:ae,sketch:ae};ev.name="Processing.js Instance";ev.use3DContext=false;ev.focused=false;ev.breakShape=false;ev.glyphTable={};ev.pmouseX=0;ev.pmouseY=0;ev.mouseX=0;ev.mouseY=0;ev.mouseButton=0;ev.mouseScroll=0;ev.mouseClicked=ae;ev.mouseDragged=ae;ev.mouseMoved=ae;ev.mousePressed=ae;ev.mouseReleased=ae;ev.mouseScrolled=ae;ev.mouseOver=ae;ev.mouseOut=ae;ev.touchStart=ae;ev.touchEnd=ae;ev.touchMove=ae;ev.touchCancel=ae;ev.key=ae;ev.keyCode=ae;ev.keyPressed=R;ev.keyReleased=R;ev.keyTyped=R;ev.draw=ae;ev.setup=ae;ev.__mousePressed=false;ev.__keyPressed=false;ev.__frameRate=60;ev.frameCount=0;ev.width=100;ev.height=100;var eH,eR,cy,ei=true,gW=true,e1=[1,1,1,1],gu=4294967295,fU=true,ec=true,em=[0.8,0.8,0.8,1],a8=4294835709,gL=true,db=1,fz=false,dt=false,g0=true,gI=0,gd=W.CORNER,e2=W.CENTER,e=0,f=0,g=0,gt=W.NORMAL_MODE_AUTO,dk=false,dg=60,fv=1000/dg,eD=W.ARROW,dv=gl.style.cursor,dm=W.POLYGON,dw=0,eO=[],gU=0,e7=20,e5=false,i=-3355444,a3=20,fT=255,gh=255,gk=255,gn=255,eo=false,gT=false,eq=W.RGB,fr=null,ey=null,h=false,v=Date.now(),s=v,e9=0,fp,fW,gO,gS,ep,ee,eW,j={attributes:{},locations:{}},o,dn,fV,fm,fe,z,g1,gN,fo,gB,fN,gX,ej,fC,gi,fL,fZ,dc={width:0,height:0},eS=W.IMAGE,di=false,fj,gq,e4,fg=W.LEFT,ek=W.BASELINE,fh=W.MODEL,eG="Arial",a5=12,gs=9,l=2,eK=14,eN=Q.get(eG,a5),f9,dp=null,de=false,J,fA=1000,gg=[],ea=null,da=[W.SHIFT,W.CONTROL,W.ALT,W.CAPSLK,W.PGUP,W.PGDN,W.END,W.HOME,W.LEFT,W.UP,W.RIGHT,W.DOWN,W.NUMLK,W.INSERT,W.F1,W.F2,W.F3,W.F4,W.F5,W.F6,W.F7,W.F8,W.F9,W.F10,W.F11,W.F12,W.META];var go,w,gG,fJ;if(at.defaultView&&at.defaultView.getComputedStyle){go=parseInt(at.defaultView.getComputedStyle(gl,null)["paddingLeft"],10)||0;w=parseInt(at.defaultView.getComputedStyle(gl,null)["paddingTop"],10)||0;gG=parseInt(at.defaultView.getComputedStyle(gl,null)["borderLeftWidth"],10)||0;fJ=parseInt(at.defaultView.getComputedStyle(gl,null)["borderTopWidth"],10)||0}var dx=0;var gc=0,ga=0,eL=[],eP=[],eT=[],ge=new ar(W.SINCOS_LENGTH),fa=new ar(W.SINCOS_LENGTH),fn,K;var fO,dZ,d6,gJ,f4,fD,eu,H,fX=false,dz=false,fb=60*(ah.PI/180),y=ev.width/2,A=ev.height/2,B=A/ah.tan(fb/2),gx=B/10,fG=B*10,gH=ev.width/ev.height;var b=[],gv=[],f0=0,dr=false,ex=false,r=true;var e0=W.CORNER;var e8=[];var C=new ar([0.5,0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,0.5]);var gm=new ar([0.5,0.5,0.5,0.5,-0.5,0.5,0.5,0.5,-0.5,0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5]);var D=new ar([0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0]);var f8=new ar([0,0,0,0,1,0,1,1,0,1,0,0]);var gb=new ar([0,0,1,0,0,1,0,0,1,0,0,1]);var fR="varying vec4 frontColor;attribute vec3 aVertex;attribute vec4 aColor;uniform mat4 uView;uniform mat4 uProjection;uniform float pointSize;void main(void) { frontColor = aColor; gl_PointSize = pointSize; gl_Position = uProjection * uView * vec4(aVertex, 1.0);}";var fi="#ifdef GL_ES\nprecision highp float;\n#endif\nvarying vec4 frontColor;void main(void){ gl_FragColor = frontColor;}";var gj="varying vec4 frontColor;attribute vec3 Vertex;attribute vec2 aTextureCoord;uniform vec4 color;uniform mat4 model;uniform mat4 view;uniform mat4 projection;uniform float pointSize;varying vec2 vTextureCoord;void main(void) { gl_PointSize = pointSize; frontColor = color; gl_Position = projection * view * model * vec4(Vertex, 1.0); vTextureCoord = aTextureCoord;}";var fB="#ifdef GL_ES\nprecision highp float;\n#endif\nvarying vec4 frontColor;varying vec2 vTextureCoord;uniform sampler2D uSampler;uniform int picktype;void main(void){ if(picktype == 0){ gl_FragColor = frontColor; } else if(picktype == 1){ float alpha = texture2D(uSampler, vTextureCoord).a; gl_FragColor = vec4(frontColor.rgb*alpha, alpha);\n }}";var en=/Windows/.test(navigator.userAgent);var eC="varying vec4 frontColor;attribute vec3 Vertex;attribute vec3 Normal;attribute vec4 aColor;attribute vec2 aTexture;varying vec2 vTexture;uniform vec4 color;uniform bool usingMat;uniform vec3 specular;uniform vec3 mat_emissive;uniform vec3 mat_ambient;uniform vec3 mat_specular;uniform float shininess;uniform mat4 model;uniform mat4 view;uniform mat4 projection;uniform mat4 normalTransform;uniform int lightCount;uniform vec3 falloff;struct Light { int type; vec3 color; vec3 position; vec3 direction; float angle; vec3 halfVector; float concentration;};uniform Light lights0;uniform Light lights1;uniform Light lights2;uniform Light lights3;uniform Light lights4;uniform Light lights5;uniform Light lights6;uniform Light lights7;Light getLight(int index){ if(index == 0) return lights0; if(index == 1) return lights1; if(index == 2) return lights2; if(index == 3) return lights3; if(index == 4) return lights4; if(index == 5) return lights5; if(index == 6) return lights6; return lights7;}void AmbientLight( inout vec3 totalAmbient, in vec3 ecPos, in Light light ) { float d = length( light.position - ecPos ); float attenuation = 1.0 / ( falloff[0] + ( falloff[1] * d ) + ( falloff[2] * d * d )); totalAmbient += light.color * attenuation;}void DirectionalLight( inout vec3 col, inout vec3 spec, in vec3 vertNormal, in vec3 ecPos, in Light light ) { float powerfactor = 0.0; float nDotVP = max(0.0, dot( vertNormal, normalize(-light.position) )); float nDotVH = max(0.0, dot( vertNormal, normalize(-light.position-normalize(ecPos) ))); if( nDotVP != 0.0 ){ powerfactor = pow( nDotVH, shininess ); } col += light.color * nDotVP; spec += specular * powerfactor;}void PointLight( inout vec3 col, inout vec3 spec, in vec3 vertNormal, in vec3 ecPos, in Light light ) { float powerfactor; vec3 VP = light.position - ecPos; float d = length( VP ); VP = normalize( VP ); float attenuation = 1.0 / ( falloff[0] + ( falloff[1] * d ) + ( falloff[2] * d * d )); float nDotVP = max( 0.0, dot( vertNormal, VP )); vec3 halfVector = normalize( VP - normalize(ecPos) ); float nDotHV = max( 0.0, dot( vertNormal, halfVector )); if( nDotVP == 0.0) { powerfactor = 0.0; } else{ powerfactor = pow( nDotHV, shininess ); } spec += specular * powerfactor * attenuation; col += light.color * nDotVP * attenuation;}void SpotLight( inout vec3 col, inout vec3 spec, in vec3 vertNormal, in vec3 ecPos, in Light light ) { float spotAttenuation; float powerfactor; vec3 VP = light.position - ecPos; vec3 ldir = normalize( -light.direction ); float d = length( VP ); VP = normalize( VP ); float attenuation = 1.0 / ( falloff[0] + ( falloff[1] * d ) + ( falloff[2] * d * d ) ); float spotDot = dot( VP, ldir );"+(en?" spotAttenuation = 1.0; ":" if( spotDot > cos( light.angle ) ) { spotAttenuation = pow( spotDot, light.concentration ); } else{ spotAttenuation = 0.0; } attenuation *= spotAttenuation;")+" float nDotVP = max( 0.0, dot( vertNormal, VP )); vec3 halfVector = normalize( VP - normalize(ecPos) ); float nDotHV = max( 0.0, dot( vertNormal, halfVector )); if( nDotVP == 0.0 ) { powerfactor = 0.0; } else { powerfactor = pow( nDotHV, shininess ); } spec += specular * powerfactor * attenuation; col += light.color * nDotVP * attenuation;}void main(void) { vec3 finalAmbient = vec3( 0.0, 0.0, 0.0 ); vec3 finalDiffuse = vec3( 0.0, 0.0, 0.0 ); vec3 finalSpecular = vec3( 0.0, 0.0, 0.0 ); vec4 col = color; if(color[0] == -1.0){ col = aColor; } vec3 norm = normalize(vec3( normalTransform * vec4( Normal, 0.0 ) )); vec4 ecPos4 = view * model * vec4(Vertex,1.0); vec3 ecPos = (vec3(ecPos4))/ecPos4.w; if( lightCount == 0 ) { frontColor = col + vec4(mat_specular,1.0); } else { for( int i = 0; i < 8; i++ ) { Light l = getLight(i); if( i >= lightCount ){ break; } if( l.type == 0 ) { AmbientLight( finalAmbient, ecPos, l ); } else if( l.type == 1 ) { DirectionalLight( finalDiffuse, finalSpecular, norm, ecPos, l ); } else if( l.type == 2 ) { PointLight( finalDiffuse, finalSpecular, norm, ecPos, l ); } else { SpotLight( finalDiffuse, finalSpecular, norm, ecPos, l ); } } if( usingMat == false ) { frontColor = vec4( vec3(col) * finalAmbient + vec3(col) * finalDiffuse + vec3(col) * finalSpecular, col[3] ); } else{ frontColor = vec4( mat_emissive + (vec3(col) * mat_ambient * finalAmbient) + (vec3(col) * finalDiffuse) + (mat_specular * finalSpecular), col[3] ); } } vTexture.xy = aTexture.xy; gl_Position = projection * view * model * vec4( Vertex, 1.0 );}";var gf="#ifdef GL_ES\nprecision highp float;\n#endif\nvarying vec4 frontColor;uniform sampler2D sampler;uniform bool usingTexture;uniform bool usingTint;varying vec2 vTexture;void main(void){ if(usingTexture){ gl_FragColor = vec4(texture2D(sampler, vTexture.xy)); if(usingTint){ gl_FragColor = gl_FragColor*frontColor; } } else{ gl_FragColor = frontColor; }}";function a1(ax,ay,aA,aB){var az=j.locations[ax];if(az===ae){az=eH.getUniformLocation(ay,aA);j.locations[ax]=az}if(az!==-1){if(aB.length===4){eH.uniform4fv(az,aB)}else{if(aB.length===3){eH.uniform3fv(az,aB)}else{if(aB.length===2){eH.uniform2fv(az,aB)}else{eH.uniform1f(az,aB)}}}}}function a7(ax,ay,aA,aB){var az=j.locations[ax];if(az===ae){az=eH.getUniformLocation(ay,aA);j.locations[ax]=az}if(az!==-1){if(aB.length===4){eH.uniform4iv(az,aB)}else{if(aB.length===3){eH.uniform3iv(az,aB)}else{if(aB.length===2){eH.uniform2iv(az,aB)}else{eH.uniform1i(az,aB)}}}}}function G(aB,ax,aA,ay,aC){var az=j.attributes[aB];if(az===ae){az=eH.getAttribLocation(ax,aA);j.attributes[aB]=az}if(az!==-1){eH.bindBuffer(eH.ARRAY_BUFFER,aC);eH.vertexAttribPointer(az,ay,eH.FLOAT,false,0,0);eH.enableVertexAttribArray(az)}}function d8(ax,ay,aA){var az=j.attributes[ax];if(az===ae){az=eH.getAttribLocation(ay,aA);j.attributes[ax]=az}if(az!==-1){eH.disableVertexAttribArray(az)}}function d(aB,ax,aA,aC,ay){var az=j.locations[aB];if(az===ae){az=eH.getUniformLocation(ax,aA);j.locations[aB]=az}if(az!==-1){if(ay.length===16){eH.uniformMatrix4fv(az,aC,ay)}else{if(ay.length===9){eH.uniformMatrix3fv(az,aC,ay)}else{eH.uniformMatrix2fv(az,aC,ay)}}}}var gz=function(az,aA,ay,aB,ax){return{x:az,y:aA,w:ay,h:aB}};var fd=gz;var fu=function(az,aA,ay,aB,ax){return{x:az,y:aA,w:ax?ay:ay-az,h:ax?aB:aB-aA}};var gQ=function(az,aA,ay,aB,ax){return{x:az-ay/2,y:aA-aB/2,w:ay,h:aB}};var gp=function(ax,aB,ay){var aA=ax.createShader(ax.VERTEX_SHADER);ax.shaderSource(aA,aB);ax.compileShader(aA);if(!ax.getShaderParameter(aA,ax.COMPILE_STATUS)){throw ax.getShaderInfoLog(aA)}var aC=ax.createShader(ax.FRAGMENT_SHADER);ax.shaderSource(aC,ay);ax.compileShader(aC);if(!ax.getShaderParameter(aC,ax.COMPILE_STATUS)){throw ax.getShaderInfoLog(aC)}var az=ax.createProgram();ax.attachShader(az,aA);ax.attachShader(az,aC);ax.linkProgram(az);if(!ax.getProgramParameter(az,ax.LINK_STATUS)){throw"Error linking shaders."}return az};var t=function(){};var f2=function(){};var el=function(){};var gw=function(){};f2.prototype=new t();f2.prototype.constructor=f2;el.prototype=new t();el.prototype.constructor=el;gw.prototype=new t();gw.prototype.constructor=gw;t.prototype.a3DOnlyFunction=R;var ds={};var f3=ev.Character=function(ax){if(typeof ax==="string"&&ax.length===1){this.code=ax.charCodeAt(0)}else{if(typeof ax==="number"){this.code=ax}else{if(ax instanceof f3){this.code=ax}else{this.code=NaN}}}return(ds[this.code]===ae)?ds[this.code]=this:ds[this.code]};f3.prototype.toString=function(){return String.fromCharCode(this.code)};f3.prototype.valueOf=function(){return this.code};var fc=ev.PShape=function(ax){this.family=ax||W.GROUP;this.visible=true;this.style=true;this.children=[];this.nameTable=[];this.params=[];this.name="";this.image=null;this.matrix=null;this.kind=null;this.close=null;this.width=null;this.height=null;this.parent=null};fc.prototype={isVisible:function(){return this.visible},setVisible:function(ax){this.visible=ax},disableStyle:function(){this.style=false;for(var ax=0,ay=this.children.length;ax<ay;ax++){this.children[ax].disableStyle()}},enableStyle:function(){this.style=true;for(var ax=0,ay=this.children.length;ax<ay;ax++){this.children[ax].enableStyle()}},getFamily:function(){return this.family},getWidth:function(){return this.width},getHeight:function(){return this.height},setName:function(ax){this.name=ax},getName:function(){return this.name},draw:function(){if(this.visible){this.pre();this.drawImpl();this.post()}},drawImpl:function(){if(this.family===W.GROUP){this.drawGroup()}else{if(this.family===W.PRIMITIVE){this.drawPrimitive()}else{if(this.family===W.GEOMETRY){this.drawGeometry()}else{if(this.family===W.PATH){this.drawPath()}}}}},drawPath:function(){var ax,ay;if(this.vertices.length===0){return}ev.beginShape();if(this.vertexCodes.length===0){if(this.vertices[0].length===2){for(ax=0,ay=this.vertices.length;ax<ay;ax++){ev.vertex(this.vertices[ax][0],this.vertices[ax][1])}}else{for(ax=0,ay=this.vertices.length;ax<ay;ax++){ev.vertex(this.vertices[ax][0],this.vertices[ax][1],this.vertices[ax][2])}}}else{var az=0;if(this.vertices[0].length===2){for(ax=0,ay=this.vertexCodes.length;ax<ay;ax++){if(this.vertexCodes[ax]===W.VERTEX){ev.vertex(this.vertices[az][0],this.vertices[az][1]);if(this.vertices[az]["moveTo"]===true){b[b.length-1]["moveTo"]=true}else{if(this.vertices[az]["moveTo"]===false){b[b.length-1]["moveTo"]=false}}ev.breakShape=false;az++}else{if(this.vertexCodes[ax]===W.BEZIER_VERTEX){ev.bezierVertex(this.vertices[az+0][0],this.vertices[az+0][1],this.vertices[az+1][0],this.vertices[az+1][1],this.vertices[az+2][0],this.vertices[az+2][1]);az+=3}else{if(this.vertexCodes[ax]===W.CURVE_VERTEX){ev.curveVertex(this.vertices[az][0],this.vertices[az][1]);az++}else{if(this.vertexCodes[ax]===W.BREAK){ev.breakShape=true}}}}}}else{for(ax=0,ay=this.vertexCodes.length;ax<ay;ax++){if(this.vertexCodes[ax]===W.VERTEX){ev.vertex(this.vertices[az][0],this.vertices[az][1],this.vertices[az][2]);if(this.vertices[az]["moveTo"]===true){b[b.length-1]["moveTo"]=true}else{if(this.vertices[az]["moveTo"]===false){b[b.length-1]["moveTo"]=false}}ev.breakShape=false}else{if(this.vertexCodes[ax]===W.BEZIER_VERTEX){ev.bezierVertex(this.vertices[az+0][0],this.vertices[az+0][1],this.vertices[az+0][2],this.vertices[az+1][0],this.vertices[az+1][1],this.vertices[az+1][2],this.vertices[az+2][0],this.vertices[az+2][1],this.vertices[az+2][2]);az+=3}else{if(this.vertexCodes[ax]===W.CURVE_VERTEX){ev.curveVertex(this.vertices[az][0],this.vertices[az][1],this.vertices[az][2]);az++}else{if(this.vertexCodes[ax]===W.BREAK){ev.breakShape=true}}}}}}}ev.endShape(this.close?W.CLOSE:W.OPEN)},drawGeometry:function(){var ax,ay;ev.beginShape(this.kind);if(this.style){for(ax=0,ay=this.vertices.length;ax<ay;ax++){ev.vertex(this.vertices[ax])}}else{for(ax=0,ay=this.vertices.length;ax<ay;ax++){var az=this.vertices[ax];if(az[2]===0){ev.vertex(az[0],az[1])}else{ev.vertex(az[0],az[1],az[2])}}}ev.endShape()},drawGroup:function(){for(var ax=0,ay=this.children.length;ax<ay;ax++){this.children[ax].draw()}},drawPrimitive:function(){if(this.kind===W.POINT){ev.point(this.params[0],this.params[1])}else{if(this.kind===W.LINE){if(this.params.length===4){ev.line(this.params[0],this.params[1],this.params[2],this.params[3])}else{ev.line(this.params[0],this.params[1],this.params[2],this.params[3],this.params[4],this.params[5])}}else{if(this.kind===W.TRIANGLE){ev.triangle(this.params[0],this.params[1],this.params[2],this.params[3],this.params[4],this.params[5])}else{if(this.kind===W.QUAD){ev.quad(this.params[0],this.params[1],this.params[2],this.params[3],this.params[4],this.params[5],this.params[6],this.params[7])}else{if(this.kind===W.RECT){if(this.image!==null){ev.imageMode(W.CORNER);ev.image(this.image,this.params[0],this.params[1],this.params[2],this.params[3])}else{ev.rectMode(W.CORNER);ev.rect(this.params[0],this.params[1],this.params[2],this.params[3])}}else{if(this.kind===W.ELLIPSE){ev.ellipseMode(W.CORNER);ev.ellipse(this.params[0],this.params[1],this.params[2],this.params[3])}else{if(this.kind===W.ARC){ev.ellipseMode(W.CORNER);ev.arc(this.params[0],this.params[1],this.params[2],this.params[3],this.params[4],this.params[5])}else{if(this.kind===W.BOX){if(this.params.length===1){ev.box(this.params[0])}else{ev.box(this.params[0],this.params[1],this.params[2])}}else{if(this.kind===W.SPHERE){ev.sphere(this.params[0])}}}}}}}}}},pre:function(){if(this.matrix){ev.pushMatrix();eH.transform(this.matrix.elements[0],this.matrix.elements[3],this.matrix.elements[1],this.matrix.elements[4],this.matrix.elements[2],this.matrix.elements[5])}if(this.style){ev.pushStyle();this.styles()}},post:function(){if(this.matrix){ev.popMatrix()}if(this.style){ev.popStyle()}},styles:function(){if(this.stroke){ev.stroke(this.strokeColor);ev.strokeWeight(this.strokeWeight);ev.strokeCap(this.strokeCap);ev.strokeJoin(this.strokeJoin)}else{ev.noStroke()}if(this.fill){ev.fill(this.fillColor)}else{ev.noFill()}},getChild:function(aA){var ay,az;if(typeof aA==="number"){return this.children[aA]}var ax;if(aA===""||this.name===aA){return this}if(this.nameTable.length>0){for(ay=0,az=this.nameTable.length;ay<az||ax;ay++){if(this.nameTable[ay].getName===aA){ax=this.nameTable[ay];break}}if(ax){return ax}}for(ay=0,az=this.children.length;ay<az;ay++){ax=this.children[ay].getChild(aA);if(ax){return ax}}return null},getChildCount:function(){return this.children.length},addChild:function(ax){this.children.push(ax);ax.parent=this;if(ax.getName()!==null){this.addName(ax.getName(),ax)}},addName:function(ax,ay){if(this.parent!==null){this.parent.addName(ax,ay)}else{this.nameTable.push([ax,ay])}},translate:function(){if(arguments.length===2){this.checkMatrix(2);this.matrix.translate(arguments[0],arguments[1])}else{this.checkMatrix(3);this.matrix.translate(arguments[0],arguments[1],0)}},checkMatrix:function(ax){if(this.matrix===null){if(ax===2){this.matrix=new ev.PMatrix2D()}else{this.matrix=new ev.PMatrix3D()}}else{if(ax===3&&this.matrix instanceof ev.PMatrix2D){this.matrix=new ev.PMatrix3D()}}},rotateX:function(ax){this.rotate(ax,1,0,0)},rotateY:function(ax){this.rotate(ax,0,1,0)},rotateZ:function(ax){this.rotate(ax,0,0,1)},rotate:function(){if(arguments.length===1){this.checkMatrix(2);this.matrix.rotate(arguments[0])}else{this.checkMatrix(3);this.matrix.rotate(arguments[0],arguments[1],arguments[2],arguments[3])}},scale:function(){if(arguments.length===2){this.checkMatrix(2);this.matrix.scale(arguments[0],arguments[1])}else{if(arguments.length===3){this.checkMatrix(2);this.matrix.scale(arguments[0],arguments[1],arguments[2])}else{this.checkMatrix(2);this.matrix.scale(arguments[0])}}},resetMatrix:function(){this.checkMatrix(2);this.matrix.reset()},applyMatrix:function(ax){if(arguments.length===1){this.applyMatrix(ax.elements[0],ax.elements[1],0,ax.elements[2],ax.elements[3],ax.elements[4],0,ax.elements[5],0,0,1,0,0,0,0,1)}else{if(arguments.length===6){this.checkMatrix(2);this.matrix.apply(arguments[0],arguments[1],arguments[2],0,arguments[3],arguments[4],arguments[5],0,0,0,1,0,0,0,0,1)}else{if(arguments.length===16){this.checkMatrix(3);this.matrix.apply(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8],arguments[9],arguments[10],arguments[11],arguments[12],arguments[13],arguments[14],arguments[15])}}}}};var dd=ev.PShapeSVG=function(){ev.PShape.call(this);if(arguments.length===1){this.element=arguments[0];this.vertexCodes=[];this.vertices=[];this.opacity=1;this.stroke=false;this.strokeColor=W.ALPHA_MASK;this.strokeWeight=1;this.strokeCap=W.SQUARE;this.strokeJoin=W.MITER;this.strokeGradient=null;this.strokeGradientPaint=null;this.strokeName=null;this.strokeOpacity=1;this.fill=true;this.fillColor=W.ALPHA_MASK;this.fillGradient=null;this.fillGradientPaint=null;this.fillName=null;this.fillOpacity=1;if(this.element.getName()!=="svg"){throw ("root is not <svg>, it's <"+this.element.getName()+">")}}else{if(arguments.length===2){if(typeof arguments[1]==="string"){if(arguments[1].indexOf(".svg")>-1){this.element=new ev.XMLElement(null,arguments[1]);this.vertexCodes=[];this.vertices=[];this.opacity=1;this.stroke=false;this.strokeColor=W.ALPHA_MASK;this.strokeWeight=1;this.strokeCap=W.SQUARE;this.strokeJoin=W.MITER;this.strokeGradient="";this.strokeGradientPaint="";this.strokeName="";this.strokeOpacity=1;this.fill=true;this.fillColor=W.ALPHA_MASK;this.fillGradient=null;this.fillGradientPaint=null;this.fillOpacity=1}}else{if(arguments[0]){this.element=arguments[1];this.vertexCodes=arguments[0].vertexCodes.slice();this.vertices=arguments[0].vertices.slice();this.stroke=arguments[0].stroke;this.strokeColor=arguments[0].strokeColor;this.strokeWeight=arguments[0].strokeWeight;this.strokeCap=arguments[0].strokeCap;this.strokeJoin=arguments[0].strokeJoin;this.strokeGradient=arguments[0].strokeGradient;this.strokeGradientPaint=arguments[0].strokeGradientPaint;this.strokeName=arguments[0].strokeName;this.fill=arguments[0].fill;this.fillColor=arguments[0].fillColor;this.fillGradient=arguments[0].fillGradient;this.fillGradientPaint=arguments[0].fillGradientPaint;this.fillName=arguments[0].fillName;this.strokeOpacity=arguments[0].strokeOpacity;this.fillOpacity=arguments[0].fillOpacity;this.opacity=arguments[0].opacity}}}}this.name=this.element.getStringAttribute("id");var az=this.element.getStringAttribute("display","inline");this.visible=az!=="none";var aA=this.element.getAttribute("transform");if(aA){this.matrix=this.parseMatrix(aA)}var ax=this.element.getStringAttribute("viewBox");if(ax!==null){var aB=ax.split(" ");this.width=aB[2];this.height=aB[3]}var ay=this.element.getStringAttribute("width");var aC=this.element.getStringAttribute("height");if(ay!==null){this.width=this.parseUnitSize(ay);this.height=this.parseUnitSize(aC)}else{if((this.width===0)||(this.height===0)){this.width=1;this.height=1;throw ("The width and/or height is not readable in the <svg> tag of this file.")}}this.parseColors(this.element);this.parseChildren(this.element)};dd.prototype=new fc();dd.prototype.parseMatrix=(function(){function ax(ay){var az=[];ay.replace(/\((.*?)\)/,(function(){return function(aB,aA){az=aA.replace(/,+/g," ").split(/\s+/)}}()));return az}return function(aA){this.checkMatrix(2);var aH=[];aA.replace(/\s*(\w+)\((.*?)\)/g,function(aI){aH.push(ev.trim(aI))});if(aH.length===0){return null}for(var aC=0,aE=aH.length;aC<aE;aC++){var aG=ax(aH[aC]);if(aH[aC].indexOf("matrix")!==-1){this.matrix.set(aG[0],aG[2],aG[4],aG[1],aG[3],aG[5])}else{if(aH[aC].indexOf("translate")!==-1){var aB=aG[0];var aD=(aG.length===2)?aG[1]:0;this.matrix.translate(aB,aD)}else{if(aH[aC].indexOf("scale")!==-1){var ay=aG[0];var az=(aG.length===2)?aG[1]:aG[0];this.matrix.scale(ay,az)}else{if(aH[aC].indexOf("rotate")!==-1){var aF=aG[0];if(aG.length===1){this.matrix.rotate(ev.radians(aF))}else{if(aG.length===3){this.matrix.translate(aG[1],aG[2]);this.matrix.rotate(ev.radians(aG[0]));this.matrix.translate(-aG[1],-aG[2])}}}else{if(aH[aC].indexOf("skewX")!==-1){this.matrix.skewX(parseFloat(aG[0]))}else{if(aH[aC].indexOf("skewY")!==-1){this.matrix.skewY(aG[0])}}}}}}}return this.matrix}}());dd.prototype.parseChildren=function(aA){var ay=aA.getChildren();var aB=new ev.PShape();for(var aC=0,ax=ay.length;aC<ax;aC++){var az=this.parseChild(ay[aC]);if(az){aB.addChild(az)}}this.children.push(aB)};dd.prototype.getName=function(){return this.name};dd.prototype.parseChild=function(ax){var ay=ax.getName();var az;if(ay==="g"){az=new dd(this,ax)}else{if(ay==="defs"){az=new dd(this,ax)}else{if(ay==="line"){az=new dd(this,ax);az.parseLine()}else{if(ay==="circle"){az=new dd(this,ax);az.parseEllipse(true)}else{if(ay==="ellipse"){az=new dd(this,ax);az.parseEllipse(false)}else{if(ay==="rect"){az=new dd(this,ax);az.parseRect()}else{if(ay==="polygon"){az=new dd(this,ax);az.parsePoly(true)}else{if(ay==="polyline"){az=new dd(this,ax);az.parsePoly(false)}else{if(ay==="path"){az=new dd(this,ax);az.parsePath()}else{if(ay==="radialGradient"){p("PShapeSVG.prototype.parseChild, name = radialGradient")}else{if(ay==="linearGradient"){p("PShapeSVG.prototype.parseChild, name = linearGradient")}else{if(ay==="text"){p("PShapeSVG.prototype.parseChild, name = text")}else{if(ay==="filter"){p("PShapeSVG.prototype.parseChild, name = filter")}else{if(ay==="mask"){p("PShapeSVG.prototype.parseChild, name = mask")}else{R()}}}}}}}}}}}}}}return az};dd.prototype.parsePath=function(){this.family=W.PATH;this.kind=0;var aK=[];var aP;var aR=ev.trim(this.element.getStringAttribute("d").replace(/[\s,]+/g," "));if(aR===null){return}aR=ev.__toCharArray(aR);var aM=0,aN=0,aF=0,aH=0,aG=0,aI=0,az=0,aA=0,aO=0,aQ=0,aD=0,aE=0,aB=0,aC=0,aS=0,aW=0;var ay="";var aU=[];var aT=false;var aJ;var aL;var aV,ax;while(aS<aR.length){aW=aR[aS].valueOf();if((aW>=65&&aW<=90)||(aW>=97&&aW<=122)){aV=aS;aS++;if(aS<aR.length){aU=[];aW=aR[aS].valueOf();while(!((aW>=65&&aW<=90)||(aW>=97&&aW<=100)||(aW>=102&&aW<=122))&&aT===false){if(aW===32){if(ay!==""){aU.push(parseFloat(ay));ay=""}aS++}else{if(aW===45){if(aR[aS-1].valueOf()===101){ay+=aR[aS].toString();aS++}else{if(ay!==""){aU.push(parseFloat(ay))}ay=aR[aS].toString();aS++}}else{ay+=aR[aS].toString();aS++}}if(aS===aR.length){aT=true}else{aW=aR[aS].valueOf()}}}if(ay!==""){aU.push(parseFloat(ay));ay=""}aL=aR[aV];aW=aL.valueOf();if(aW===77){if(aU.length>=2&&aU.length%2===0){aM=aU[0];aN=aU[1];this.parsePathMoveto(aM,aN);if(aU.length>2){for(aV=2,ax=aU.length;aV<ax;aV+=2){aM=aU[aV];aN=aU[aV+1];this.parsePathLineto(aM,aN)}}}}else{if(aW===109){if(aU.length>=2&&aU.length%2===0){aM+=aU[0];aN+=aU[1];this.parsePathMoveto(aM,aN);if(aU.length>2){for(aV=2,ax=aU.length;aV<ax;aV+=2){aM+=aU[aV];aN+=aU[aV+1];this.parsePathLineto(aM,aN)}}}}else{if(aW===76){if(aU.length>=2&&aU.length%2===0){for(aV=0,ax=aU.length;aV<ax;aV+=2){aM=aU[aV];aN=aU[aV+1];this.parsePathLineto(aM,aN)}}}else{if(aW===108){if(aU.length>=2&&aU.length%2===0){for(aV=0,ax=aU.length;aV<ax;aV+=2){aM+=aU[aV];aN+=aU[aV+1];this.parsePathLineto(aM,aN)}}}else{if(aW===72){for(aV=0,ax=aU.length;aV<ax;aV++){aM=aU[aV];this.parsePathLineto(aM,aN)}}else{if(aW===104){for(aV=0,ax=aU.length;aV<ax;aV++){aM+=aU[aV];this.parsePathLineto(aM,aN)}}else{if(aW===86){for(aV=0,ax=aU.length;aV<ax;aV++){aN=aU[aV];this.parsePathLineto(aM,aN)}}else{if(aW===118){for(aV=0,ax=aU.length;aV<ax;aV++){aN+=aU[aV];this.parsePathLineto(aM,aN)}}else{if(aW===67){if(aU.length>=6&&aU.length%6===0){for(aV=0,ax=aU.length;aV<ax;aV+=6){aG=aU[aV];az=aU[aV+1];aI=aU[aV+2];aA=aU[aV+3];aO=aU[aV+4];aQ=aU[aV+5];this.parsePathCurveto(aG,az,aI,aA,aO,aQ);aM=aO;aN=aQ}}}else{if(aW===99){if(aU.length>=6&&aU.length%6===0){for(aV=0,ax=aU.length;aV<ax;aV+=6){aG=aM+aU[aV];az=aN+aU[aV+1];aI=aM+aU[aV+2];aA=aN+aU[aV+3];aO=aM+aU[aV+4];aQ=aN+aU[aV+5];this.parsePathCurveto(aG,az,aI,aA,aO,aQ);aM=aO;aN=aQ}}}else{if(aW===83){if(aU.length>=4&&aU.length%4===0){for(aV=0,ax=aU.length;aV<ax;aV+=4){if(aJ.toLowerCase()==="c"||aJ.toLowerCase()==="s"){aD=this.vertices[this.vertices.length-2][0];aE=this.vertices[this.vertices.length-2][1];aB=this.vertices[this.vertices.length-1][0];aC=this.vertices[this.vertices.length-1][1];aG=aB+(aB-aD);az=aC+(aC-aE)}else{aG=this.vertices[this.vertices.length-1][0];az=this.vertices[this.vertices.length-1][1]}aI=aU[aV];aA=aU[aV+1];aO=aU[aV+2];aQ=aU[aV+3];this.parsePathCurveto(aG,az,aI,aA,aO,aQ);aM=aO;aN=aQ}}}else{if(aW===115){if(aU.length>=4&&aU.length%4===0){for(aV=0,ax=aU.length;aV<ax;aV+=4){if(aJ.toLowerCase()==="c"||aJ.toLowerCase()==="s"){aD=this.vertices[this.vertices.length-2][0];aE=this.vertices[this.vertices.length-2][1];aB=this.vertices[this.vertices.length-1][0];aC=this.vertices[this.vertices.length-1][1];aG=aB+(aB-aD);az=aC+(aC-aE)}else{aG=this.vertices[this.vertices.length-1][0];az=this.vertices[this.vertices.length-1][1]}aI=aM+aU[aV];aA=aN+aU[aV+1];aO=aM+aU[aV+2];aQ=aN+aU[aV+3];this.parsePathCurveto(aG,az,aI,aA,aO,aQ);aM=aO;aN=aQ}}}else{if(aW===81){if(aU.length>=4&&aU.length%4===0){for(aV=0,ax=aU.length;aV<ax;aV+=4){aF=aU[aV];aH=aU[aV+1];aO=aU[aV+2];aQ=aU[aV+3];this.parsePathQuadto(aM,aN,aF,aH,aO,aQ);aM=aO;aN=aQ}}}else{if(aW===113){if(aU.length>=4&&aU.length%4===0){for(aV=0,ax=aU.length;aV<ax;aV+=4){aF=aM+aU[aV];aH=aN+aU[aV+1];aO=aM+aU[aV+2];aQ=aN+aU[aV+3];this.parsePathQuadto(aM,aN,aF,aH,aO,aQ);aM=aO;aN=aQ}}}else{if(aW===84){if(aU.length>=2&&aU.length%2===0){for(aV=0,ax=aU.length;aV<ax;aV+=2){if(aJ.toLowerCase()==="q"||aJ.toLowerCase()==="t"){aD=this.vertices[this.vertices.length-2][0];aE=this.vertices[this.vertices.length-2][1];aB=this.vertices[this.vertices.length-1][0];aC=this.vertices[this.vertices.length-1][1];aF=aB+(aB-aD);aH=aC+(aC-aE)}else{aF=aM;aH=aN}aO=aU[aV];aQ=aU[aV+1];this.parsePathQuadto(aM,aN,aF,aH,aO,aQ);aM=aO;aN=aQ}}}else{if(aW===116){if(aU.length>=2&&aU.length%2===0){for(aV=0,ax=aU.length;aV<ax;aV+=2){if(aJ.toLowerCase()==="q"||aJ.toLowerCase()==="t"){aD=this.vertices[this.vertices.length-2][0];aE=this.vertices[this.vertices.length-2][1];aB=this.vertices[this.vertices.length-1][0];aC=this.vertices[this.vertices.length-1][1];aF=aB+(aB-aD);aH=aC+(aC-aE)}else{aF=aM;aH=aN}aO=aM+aU[aV];aQ=aN+aU[aV+1];this.parsePathQuadto(aM,aN,aF,aH,aO,aQ);aM=aO;aN=aQ}}}else{if(aW===90||aW===122){this.close=true}}}}}}}}}}}}}}}}}aJ=aL.toString()}else{aS++}}};dd.prototype.parsePathQuadto=function(ax,aB,az,aA,ay,aC){if(this.vertices.length>0){this.parsePathCode(W.BEZIER_VERTEX);this.parsePathVertex(ax+((az-ax)*2/3),aB+((aA-aB)*2/3));this.parsePathVertex(ay+((az-ay)*2/3),aC+((aA-aC)*2/3));this.parsePathVertex(ay,aC)}else{throw ("Path must start with M/m")}};dd.prototype.parsePathCurveto=function(aC,aA,ay,aB,az,ax){if(this.vertices.length>0){this.parsePathCode(W.BEZIER_VERTEX);this.parsePathVertex(aC,aA);this.parsePathVertex(ay,aB);this.parsePathVertex(az,ax)}else{throw ("Path must start with M/m")}};dd.prototype.parsePathLineto=function(ax,ay){if(this.vertices.length>0){this.parsePathCode(W.VERTEX);this.parsePathVertex(ax,ay);this.vertices[this.vertices.length-1]["moveTo"]=false}else{throw ("Path must start with M/m")}};dd.prototype.parsePathMoveto=function(ax,ay){if(this.vertices.length>0){this.parsePathCode(W.BREAK)}this.parsePathCode(W.VERTEX);this.parsePathVertex(ax,ay);this.vertices[this.vertices.length-1]["moveTo"]=true};dd.prototype.parsePathVertex=function(az,ax){var ay=[];ay[0]=az;ay[1]=ax;this.vertices.push(ay)};dd.prototype.parsePathCode=function(ax){this.vertexCodes.push(ax)};dd.prototype.parsePoly=function(aB){this.family=W.PATH;this.close=aB;var ay=ev.trim(this.element.getStringAttribute("points").replace(/[,\s]+/g," "));if(ay!==null){var az=ay.split(" ");if(az.length%2===0){for(var aC=0,ax=az.length;aC<ax;aC++){var aA=[];aA[0]=az[aC];aA[1]=az[++aC];this.vertices.push(aA)}}else{throw ("Error parsing polygon points: odd number of coordinates provided")}}};dd.prototype.parseRect=function(){this.kind=W.RECT;this.family=W.PRIMITIVE;this.params=[];this.params[0]=this.element.getFloatAttribute("x");this.params[1]=this.element.getFloatAttribute("y");this.params[2]=this.element.getFloatAttribute("width");this.params[3]=this.element.getFloatAttribute("height");if(this.params[2]<0||this.params[3]<0){throw ("svg error: negative width or height found while parsing <rect>")}};dd.prototype.parseEllipse=function(ax){this.kind=W.ELLIPSE;this.family=W.PRIMITIVE;this.params=[];this.params[0]=this.element.getFloatAttribute("cx")|0;this.params[1]=this.element.getFloatAttribute("cy")|0;var ay,az;if(ax){ay=az=this.element.getFloatAttribute("r");if(ay<0){throw ("svg error: negative radius found while parsing <circle>")}}else{ay=this.element.getFloatAttribute("rx");az=this.element.getFloatAttribute("ry");if(ay<0||az<0){throw ("svg error: negative x-axis radius or y-axis radius found while parsing <ellipse>")}}this.params[0]-=ay;this.params[1]-=az;this.params[2]=ay*2;this.params[3]=az*2};dd.prototype.parseLine=function(){this.kind=W.LINE;this.family=W.PRIMITIVE;this.params=[];this.params[0]=this.element.getFloatAttribute("x1");this.params[1]=this.element.getFloatAttribute("y1");this.params[2]=this.element.getFloatAttribute("x2");this.params[3]=this.element.getFloatAttribute("y2")};dd.prototype.parseColors=function(ax){if(ax.hasAttribute("opacity")){this.setOpacity(ax.getAttribute("opacity"))}if(ax.hasAttribute("stroke")){this.setStroke(ax.getAttribute("stroke"))}if(ax.hasAttribute("stroke-width")){this.setStrokeWeight(ax.getAttribute("stroke-width"))}if(ax.hasAttribute("stroke-linejoin")){this.setStrokeJoin(ax.getAttribute("stroke-linejoin"))}if(ax.hasAttribute("stroke-linecap")){this.setStrokeCap(ax.getStringAttribute("stroke-linecap"))}if(ax.hasAttribute("fill")){this.setFill(ax.getStringAttribute("fill"))}if(ax.hasAttribute("style")){var aA=ax.getStringAttribute("style");var aC=aA.toString().split(";");for(var ay=0,az=aC.length;ay<az;ay++){var aB=ev.trim(aC[ay].split(":"));if(aB[0]==="fill"){this.setFill(aB[1])}else{if(aB[0]==="fill-opacity"){this.setFillOpacity(aB[1])}else{if(aB[0]==="stroke"){this.setStroke(aB[1])}else{if(aB[0]==="stroke-width"){this.setStrokeWeight(aB[1])}else{if(aB[0]==="stroke-linecap"){this.setStrokeCap(aB[1])}else{if(aB[0]==="stroke-linejoin"){this.setStrokeJoin(aB[1])}else{if(aB[0]==="stroke-opacity"){this.setStrokeOpacity(aB[1])}else{if(aB[0]==="opacity"){this.setOpacity(aB[1])}}}}}}}}}}};dd.prototype.setFillOpacity=function(ax){this.fillOpacity=parseFloat(ax);this.fillColor=this.fillOpacity*255<<24|this.fillColor&16777215};dd.prototype.setFill=function(ay){var ax=this.fillColor&4278190080;if(ay==="none"){this.fill=false}else{if(ay.indexOf("#")===0){this.fill=true;if(ay.length===4){ay=ay.replace(/#(.)(.)(.)/,"#$1$1$2$2$3$3")}this.fillColor=ax|(parseInt(ay.substring(1),16))&16777215}else{if(ay.indexOf("rgb")===0){this.fill=true;this.fillColor=ax|this.parseRGB(ay)}else{if(ay.indexOf("url(#")===0){this.fillName=ay.substring(5,ay.length-1)}else{if(T[ay]){this.fill=true;this.fillColor=ax|(parseInt(T[ay].substring(1),16))&16777215}}}}}};dd.prototype.setOpacity=function(ax){this.strokeColor=parseFloat(ax)*255<<24|this.strokeColor&16777215;this.fillColor=parseFloat(ax)*255<<24|this.fillColor&16777215};dd.prototype.setStroke=function(ay){var ax=this.strokeColor&4278190080;if(ay==="none"){this.stroke=false}else{if(ay.charAt(0)==="#"){this.stroke=true;if(ay.length===4){ay=ay.replace(/#(.)(.)(.)/,"#$1$1$2$2$3$3")}this.strokeColor=ax|(parseInt(ay.substring(1),16))&16777215}else{if(ay.indexOf("rgb")===0){this.stroke=true;this.strokeColor=ax|this.parseRGB(ay)}else{if(ay.indexOf("url(#")===0){this.strokeName=ay.substring(5,ay.length-1)}else{if(T[ay]){this.stroke=true;this.strokeColor=ax|(parseInt(T[ay].substring(1),16))&16777215}}}}}};dd.prototype.setStrokeWeight=function(ax){this.strokeWeight=this.parseUnitSize(ax)};dd.prototype.setStrokeJoin=function(ax){if(ax==="miter"){this.strokeJoin=W.MITER}else{if(ax==="round"){this.strokeJoin=W.ROUND}else{if(ax==="bevel"){this.strokeJoin=W.BEVEL}}}};dd.prototype.setStrokeCap=function(ax){if(ax==="butt"){this.strokeCap=W.SQUARE}else{if(ax==="round"){this.strokeCap=W.ROUND}else{if(ax==="square"){this.strokeCap=W.PROJECT}}}};dd.prototype.setStrokeOpacity=function(ax){this.strokeOpacity=parseFloat(ax);this.strokeColor=this.strokeOpacity*255<<24|this.strokeColor&16777215};dd.prototype.parseRGB=function(ay){var ax=ay.substring(ay.indexOf("(")+1,ay.indexOf(")"));var az=ax.split(", ");return(az[0]<<16)|(az[1]<<8)|(az[2])};dd.prototype.parseUnitSize=function(ax){var ay=ax.length-2;if(ay<0){return ax}if(ax.indexOf("pt")===ay){return parseFloat(ax.substring(0,ay))*1.25}if(ax.indexOf("pc")===ay){return parseFloat(ax.substring(0,ay))*15}if(ax.indexOf("mm")===ay){return parseFloat(ax.substring(0,ay))*3.543307}if(ax.indexOf("cm")===ay){return parseFloat(ax.substring(0,ay))*35.43307}if(ax.indexOf("in")===ay){return parseFloat(ax.substring(0,ay))*90}if(ax.indexOf("px")===ay){return parseFloat(ax.substring(0,ay))}return parseFloat(ax)};ev.shape=function(ax,ay,aA,aB,az){if(arguments.length>=1&&arguments[0]!==null){if(ax.isVisible()){ev.pushMatrix();if(e0===W.CENTER){if(arguments.length===5){ev.translate(ay-aB/2,aA-az/2);ev.scale(aB/ax.getWidth(),az/ax.getHeight())}else{if(arguments.length===3){ev.translate(ay-ax.getWidth()/2,-ax.getHeight()/2)}else{ev.translate(-ax.getWidth()/2,-ax.getHeight()/2)}}}else{if(e0===W.CORNER){if(arguments.length===5){ev.translate(ay,aA);ev.scale(aB/ax.getWidth(),az/ax.getHeight())}else{if(arguments.length===3){ev.translate(ay,aA)}}}else{if(e0===W.CORNERS){if(arguments.length===5){aB-=ay;az-=aA;ev.translate(ay,aA);ev.scale(aB/ax.getWidth(),az/ax.getHeight())}else{if(arguments.length===3){ev.translate(ay,aA)}}}}}ax.draw();if((arguments.length===1&&e0===W.CENTER)||arguments.length>1){ev.popMatrix()}}}};ev.shapeMode=function(ax){e0=ax};ev.loadShape=function(ax){if(arguments.length===1){if(ax.indexOf(".svg")>-1){return new dd(null,ax)}}return null};var eF=function(aA,aB,az,ay,ax){this.fullName=aA||"";this.name=aB||"";this.namespace=az||"";this.value=ay;this.type=ax};eF.prototype={getName:function(){return this.name},getFullName:function(){return this.fullName},getNamespace:function(){return this.namespace},getValue:function(){return this.value},getType:function(){return this.type},setValue:function(ax){this.value=ax}};var gy=ev.XMLElement=function(){this.attributes=[];this.children=[];this.fullName=null;this.name=null;this.namespace="";this.content=null;this.parent=null;this.lineNr="";this.systemID="";this.type="ELEMENT";if(arguments.length===4){this.fullName=arguments[0]||"";if(arguments[1]){this.name=arguments[1]}else{var ax=this.fullName.indexOf(":");if(ax>=0){this.name=this.fullName.substring(ax+1)}else{this.name=this.fullName}}this.namespace=arguments[1];this.lineNr=arguments[3];this.systemID=arguments[2]}else{if((arguments.length===2&&arguments[1].indexOf(".")>-1)){this.parse(arguments[arguments.length-1])}else{if(arguments.length===1&&typeof arguments[0]==="string"){this.parse(arguments[0])}}}};gy.prototype={parse:function(az){var ax;try{var aA=az.substring(az.length-4);if(aA===".xml"||aA===".svg"){az=ab(az)}ax=new DOMParser().parseFromString(az,"text/xml");var ay=ax.documentElement;if(ay){this.parseChildrenRecursive(null,ay)}else{throw ("Error loading document")}return this}catch(aB){throw (aB)}},parseChildrenRecursive:function(ax,az){var aA,aE,ay,aB,aC,aF;if(!ax){this.fullName=az.localName;this.name=az.nodeName;aA=this}else{aA=new gy(az.localName,az.nodeName,"","");aA.parent=ax}if(az.nodeType===3&&az.textContent!==""){return this.createPCDataElement(az.textContent)}for(aB=0,aC=az.attributes.length;aB<aC;aB++){ay=az.attributes[aB];aE=new eF(ay.getname,ay.nodeName,ay.namespaceURI,ay.nodeValue,ay.nodeType);aA.attributes.push(aE)}for(aB=0,aC=az.childNodes.length;aB<aC;aB++){var aD=az.childNodes[aB];if(aD.nodeType===1||aD.nodeType===3){aF=aA.parseChildrenRecursive(aA,aD);if(aF!==null){aA.children.push(aF)}}}return aA},createElement:function(){if(arguments.length===2){return new gy(arguments[0],arguments[1],null,null)}return new gy(arguments[0],arguments[1],arguments[2],arguments[3])},createPCDataElement:function(ay){if(ay.replace(/^\s+$/g,"")===""){return null}var ax=new gy();ax.content=ay;ax.type="TEXT";return ax},hasAttribute:function(){if(arguments.length===1){return this.getAttribute(arguments[0])!==null}if(arguments.length===2){return this.getAttribute(arguments[0],arguments[1])!==null}},equals:function(aB){if(!(aB instanceof gy)){return false}var aE,aF;if(this.name!==aB.getLocalName()){return false}if(this.attributes.length!==aB.getAttributeCount()){return false}if(this.attributes.length!==aB.attributes.length){return false}var ax,az,aG,aA,ay;for(aE=0,aF=this.attributes.length;aE<aF;aE++){ax=this.attributes[aE].getName();az=this.attributes[aE].getNamespace();ay=aB.findAttribute(ax,az);if(ay===null){return false}if(this.attributes[aE].getValue()!==ay.getValue()){return false}if(this.attributes[aE].getType()!==ay.getType()){return false}}if(this.children.length!==aB.getChildCount()){return false}if(this.children.length>0){var aC,aD;for(aE=0,aF=this.children.length;aE<aF;aE++){aC=this.getChild(aE);aD=aB.getChild(aE);if(!aC.equals(aD)){return false}}return true}return(this.content===aB.content)},getContent:function(){if(this.type==="TEXT"){return this.content}var ax=this.children;if(ax.length===1&&ax[0].type==="TEXT"){return ax[0].content}return null},getAttribute:function(){var ax;if(arguments.length===2){ax=this.findAttribute(arguments[0]);if(ax){return ax.getValue()}return arguments[1]}else{if(arguments.length===1){ax=this.findAttribute(arguments[0]);if(ax){return ax.getValue()}return null}else{if(arguments.length===3){ax=this.findAttribute(arguments[0],arguments[1]);if(ax){return ax.getValue()}return arguments[2]}}}},getStringAttribute:function(){if(arguments.length===1){return this.getAttribute(arguments[0])}if(arguments.length===2){return this.getAttribute(arguments[0],arguments[1])}return this.getAttribute(arguments[0],arguments[1],arguments[2])},getString:function(ax){return this.getStringAttribute(ax)},getFloatAttribute:function(){if(arguments.length===1){return parseFloat(this.getAttribute(arguments[0],0))}if(arguments.length===2){return this.getAttribute(arguments[0],arguments[1])}return this.getAttribute(arguments[0],arguments[1],arguments[2])},getFloat:function(ax){return this.getFloatAttribute(ax)},getIntAttribute:function(){if(arguments.length===1){return this.getAttribute(arguments[0],0)}if(arguments.length===2){return this.getAttribute(arguments[0],arguments[1])}return this.getAttribute(arguments[0],arguments[1],arguments[2])},getInt:function(ax){return this.getIntAttribute(ax)},hasChildren:function(){return this.children.length>0},addChild:function(ax){if(ax!==null){ax.parent=this;this.children.push(ax)}},insertChild:function(ax,az){if(ax){if((ax.getLocalName()===null)&&(!this.hasChildren())){var ay=this.children[this.children.length-1];if(ay.getLocalName()===null){ay.setContent(ay.getContent()+ax.getContent());return}}ax.parent=this;this.children.splice(az,0,ax)}},getChild:function(){if(typeof arguments[0]==="number"){return this.children[arguments[0]]}if(arguments[0].indexOf("/")!==-1){this.getChildRecursive(arguments[0].split("/"),0);return null}var az,aA;for(var ax=0,ay=this.getChildCount();ax<ay;ax++){az=this.getChild(ax);aA=az.getName();if(aA!==null&&aA===arguments[0]){return az}}return null},getChildren:function(){if(arguments.length===1){if(typeof arguments[0]==="number"){return this.getChild(arguments[0])}if(arguments[0].indexOf("/")!==-1){return this.getChildrenRecursive(arguments[0].split("/"),0)}var aA=[];var az,aB;for(var ax=0,ay=this.getChildCount();ax<ay;ax++){az=this.getChild(ax);aB=az.getName();if(aB!==null&&aB===arguments[0]){aA.push(az)}}return aA}return this.children},getChildCount:function(){return this.children.length},getChildRecursive:function(ay,aA){var az,aB;for(var aC=0,ax=this.getChildCount();aC<ax;aC++){az=this.getChild(aC);aB=az.getName();if(aB!==null&&aB===ay[aA]){if(aA===ay.length-1){return az}aA+=1;return az.getChildRecursive(ay,aA)}}return null},getChildrenRecursive:function(az,aA){if(aA===az.length-1){return this.getChildren(az[aA])}var aB=this.getChildren(az[aA]);var ax=[];for(var ay=0;ay<aB.length;ay++){ax=ax.concat(aB[ay].getChildrenRecursive(az,aA+1))}return ax},isLeaf:function(){return !this.hasChildren()},listChildren:function(){var az=[];for(var ax=0,ay=this.children.length;ax<ay;ax++){az.push(this.getChild(ax).getName())}return az},removeAttribute:function(ay,aA){this.namespace=aA||"";for(var ax=0,az=this.attributes.length;ax<az;ax++){if(this.attributes[ax].getName()===ay&&this.attributes[ax].getNamespace()===this.namespace){this.attributes.splice(ax,1);break}}},removeChild:function(ax){if(ax){for(var ay=0,az=this.children.length;ay<az;ay++){if(this.children[ay].equals(ax)){this.children.splice(ay,1);break}}}},removeChildAtIndex:function(ax){if(this.children.length>ax){this.children.splice(ax,1)}},findAttribute:function(ay,aA){this.namespace=aA||"";for(var ax=0,az=this.attributes.length;ax<az;ax++){if(this.attributes[ax].getName()===ay&&this.attributes[ax].getNamespace()===this.namespace){return this.attributes[ax]}}return null},setAttribute:function(){var az;if(arguments.length===3){var ax=arguments[0].indexOf(":");var ay=arguments[0].substring(ax+1);az=this.findAttribute(ay,arguments[1]);if(az){az.setValue(arguments[2])}else{az=new eF(arguments[0],ay,arguments[1],arguments[2],"CDATA");this.attributes.push(az)}}else{az=this.findAttribute(arguments[0]);if(az){az.setValue(arguments[1])}else{az=new eF(arguments[0],arguments[0],null,arguments[1],"CDATA");this.attributes.push(az)}}},setString:function(ay,ax){this.setAttribute(ay,ax)},setInt:function(ay,ax){this.setAttribute(ay,ax)},setFloat:function(ay,ax){this.setAttribute(ay,ax)},setContent:function(ax){if(this.children.length>0){S.debug("Tried to set content for XMLElement with children")}this.content=ax},setName:function(){if(arguments.length===1){this.name=arguments[0];this.fullName=arguments[0];this.namespace=null}else{var ax=arguments[0].indexOf(":");if((arguments[1]===null)||(ax<0)){this.name=arguments[0]}else{this.name=arguments[0].substring(ax+1)}this.fullName=arguments[0];this.namespace=arguments[1]}},getName:function(){return this.fullName},getLocalName:function(){return this.name},getAttributeCount:function(){return this.attributes.length},toString:function(){if(this.type==="TEXT"){return this.content}var ax=(this.namespace!==""&&this.namespace!==this.name?this.namespace+":":"")+this.name;var aB="<"+ax;var ay,aA;for(ay=0;ay<this.attributes.length;ay++){var az=this.attributes[ay];aB+=" "+az.getName()+'="'+az.getValue()+'"'}if(this.children.length===0){if(this.content===""){aB+="/>"}else{aB+=">"+this.content+"</"+ax+">"}}else{aB+=">";for(aA=0;aA<this.children.length;aA++){aB+=this.children[aA].toString()}aB+="</"+ax+">"}return aB}};gy.parse=function(ax){var ay=new gy();ay.parse(ax);return ay};var dq=function(aA){var az=0;for(var ay=0;ay<aA.length;ay++){if(ay!==0){az=ah.max(az,ah.abs(aA[ay]))}else{az=ah.abs(aA[ay])}}var ax=(az+"").indexOf(".");if(ax===0){ax=1}else{if(ax===-1){ax=(az+"").length}}return ax};var gD=ev.PMatrix2D=function(){if(arguments.length===0){this.reset()}else{if(arguments.length===1&&arguments[0] instanceof gD){this.set(arguments[0].array())}else{if(arguments.length===6){this.set(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])}}}};gD.prototype={set:function(){if(arguments.length===6){var ax=arguments;this.set([ax[0],ax[1],ax[2],ax[3],ax[4],ax[5]])}else{if(arguments.length===1&&arguments[0] instanceof gD){this.elements=arguments[0].array()}else{if(arguments.length===1&&arguments[0] instanceof Array){this.elements=arguments[0].slice()}}}},get:function(){var ax=new gD();ax.set(this.elements);return ax},reset:function(){this.set([1,0,0,0,1,0])},array:function gY(){return this.elements.slice()},translate:function(ax,ay){this.elements[2]=ax*this.elements[0]+ay*this.elements[1]+this.elements[2];this.elements[5]=ax*this.elements[3]+ay*this.elements[4]+this.elements[5]},invTranslate:function(ax,ay){this.translate(-ax,-ay)},transpose:function(){},mult:function(ay,ax){var az,aA;if(ay instanceof X){az=ay.x;aA=ay.y;if(!ax){ax=new X()}}else{if(ay instanceof Array){az=ay[0];aA=ay[1];if(!ax){ax=[]}}}if(ax instanceof Array){ax[0]=this.elements[0]*az+this.elements[1]*aA+this.elements[2];ax[1]=this.elements[3]*az+this.elements[4]*aA+this.elements[5]}else{if(ax instanceof X){ax.x=this.elements[0]*az+this.elements[1]*aA+this.elements[2];ax.y=this.elements[3]*az+this.elements[4]*aA+this.elements[5];ax.z=0}}return ax},multX:function(ay,ax){return(ay*this.elements[0]+ax*this.elements[1]+this.elements[2])},multY:function(ay,ax){return(ay*this.elements[3]+ax*this.elements[4]+this.elements[5])},skewX:function(ax){this.apply(1,0,1,ax,0,0)},skewY:function(ax){this.apply(1,0,1,0,ax,0)},determinant:function(){return(this.elements[0]*this.elements[4]-this.elements[1]*this.elements[3])},invert:function(){var aB=this.determinant();if(ah.abs(aB)>W.MIN_INT){var ay=this.elements[0];var aA=this.elements[1];var aC=this.elements[2];var aD=this.elements[3];var ax=this.elements[4];var az=this.elements[5];this.elements[0]=ax/aB;this.elements[3]=-aD/aB;this.elements[1]=-aA/aB;this.elements[4]=ay/aB;this.elements[2]=(aA*az-ax*aC)/aB;this.elements[5]=(aD*aC-ay*az)/aB;return true}return false},scale:function(ax,ay){if(ax&&!ay){ay=ax}if(ax&&ay){this.elements[0]*=ax;this.elements[1]*=ay;this.elements[3]*=ax;this.elements[4]*=ay}},invScale:function(ax,ay){if(ax&&!ay){ay=ax}this.scale(1/ax,1/ay)},apply:function(){var ax;if(arguments.length===1&&arguments[0] instanceof gD){ax=arguments[0].array()}else{if(arguments.length===6){ax=Array.prototype.slice.call(arguments)}else{if(arguments.length===1&&arguments[0] instanceof Array){ax=arguments[0]}}}var az=[0,0,this.elements[2],0,0,this.elements[5]];var aB=0;for(var aA=0;aA<2;aA++){for(var ay=0;ay<3;ay++,aB++){az[aB]+=this.elements[aA*3+0]*ax[ay+0]+this.elements[aA*3+1]*ax[ay+3]}}this.elements=az.slice()},preApply:function(){var ax;if(arguments.length===1&&arguments[0] instanceof gD){ax=arguments[0].array()}else{if(arguments.length===6){ax=Array.prototype.slice.call(arguments)}else{if(arguments.length===1&&arguments[0] instanceof Array){ax=arguments[0]}}}var ay=[0,0,ax[2],0,0,ax[5]];ay[2]=ax[2]+this.elements[2]*ax[0]+this.elements[5]*ax[1];ay[5]=ax[5]+this.elements[2]*ax[3]+this.elements[5]*ax[4];ay[0]=this.elements[0]*ax[0]+this.elements[3]*ax[1];ay[3]=this.elements[0]*ax[3]+this.elements[3]*ax[4];ay[1]=this.elements[1]*ax[0]+this.elements[4]*ax[1];ay[4]=this.elements[1]*ax[3]+this.elements[4]*ax[4];this.elements=ay.slice()},rotate:function(ax){var aA=ah.cos(ax);var az=ah.sin(ax);var aB=this.elements[0];var ay=this.elements[1];this.elements[0]=aA*aB+az*ay;this.elements[1]=-az*aB+aA*ay;aB=this.elements[3];ay=this.elements[4];this.elements[3]=aA*aB+az*ay;this.elements[4]=-az*aB+aA*ay},rotateZ:function(ax){this.rotate(ax)},invRotateZ:function(ax){this.rotateZ(ax-ah.PI)},print:function(){var ax=dq(this.elements);var ay=""+ev.nfs(this.elements[0],ax,4)+" "+ev.nfs(this.elements[1],ax,4)+" "+ev.nfs(this.elements[2],ax,4)+"\n"+ev.nfs(this.elements[3],ax,4)+" "+ev.nfs(this.elements[4],ax,4)+" "+ev.nfs(this.elements[5],ax,4)+"\n\n";ev.println(ay)}};var gP=ev.PMatrix3D=function(){this.reset()};gP.prototype={set:function(){if(arguments.length===16){this.elements=Array.prototype.slice.call(arguments)}else{if(arguments.length===1&&arguments[0] instanceof gP){this.elements=arguments[0].array()}else{if(arguments.length===1&&arguments[0] instanceof Array){this.elements=arguments[0].slice()}}}},get:function(){var ax=new gP();ax.set(this.elements);return ax},reset:function(){this.set([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])},array:function gY(){return this.elements.slice()},translate:function(ay,az,ax){if(ax===ae){ax=0}this.elements[3]+=ay*this.elements[0]+az*this.elements[1]+ax*this.elements[2];this.elements[7]+=ay*this.elements[4]+az*this.elements[5]+ax*this.elements[6];this.elements[11]+=ay*this.elements[8]+az*this.elements[9]+ax*this.elements[10];this.elements[15]+=ay*this.elements[12]+az*this.elements[13]+ax*this.elements[14]},transpose:function(){var ax=this.elements.slice();this.elements[0]=ax[0];this.elements[1]=ax[4];this.elements[2]=ax[8];this.elements[3]=ax[12];this.elements[4]=ax[1];this.elements[5]=ax[5];this.elements[6]=ax[9];this.elements[7]=ax[13];this.elements[8]=ax[2];this.elements[9]=ax[6];this.elements[10]=ax[10];this.elements[11]=ax[14];this.elements[12]=ax[3];this.elements[13]=ax[7];this.elements[14]=ax[11];this.elements[15]=ax[15]},mult:function(ax,aC){var az,aA,aB,ay;if(ax instanceof X){az=ax.x;aA=ax.y;aB=ax.z;ay=1;if(!aC){aC=new X()}}else{if(ax instanceof Array){az=ax[0];aA=ax[1];aB=ax[2];ay=ax[3]||1;if(!aC||(aC.length!==3&&aC.length!==4)){aC=[0,0,0]}}}if(aC instanceof Array){if(aC.length===3){aC[0]=this.elements[0]*az+this.elements[1]*aA+this.elements[2]*aB+this.elements[3];aC[1]=this.elements[4]*az+this.elements[5]*aA+this.elements[6]*aB+this.elements[7];aC[2]=this.elements[8]*az+this.elements[9]*aA+this.elements[10]*aB+this.elements[11]}else{if(aC.length===4){aC[0]=this.elements[0]*az+this.elements[1]*aA+this.elements[2]*aB+this.elements[3]*ay;aC[1]=this.elements[4]*az+this.elements[5]*aA+this.elements[6]*aB+this.elements[7]*ay;aC[2]=this.elements[8]*az+this.elements[9]*aA+this.elements[10]*aB+this.elements[11]*ay;aC[3]=this.elements[12]*az+this.elements[13]*aA+this.elements[14]*aB+this.elements[15]*ay}}}if(aC instanceof X){aC.x=this.elements[0]*az+this.elements[1]*aA+this.elements[2]*aB+this.elements[3];aC.y=this.elements[4]*az+this.elements[5]*aA+this.elements[6]*aB+this.elements[7];aC.z=this.elements[8]*az+this.elements[9]*aA+this.elements[10]*aB+this.elements[11]}return aC},preApply:function(){var ax;if(arguments.length===1&&arguments[0] instanceof gP){ax=arguments[0].array()}else{if(arguments.length===16){ax=Array.prototype.slice.call(arguments)}else{if(arguments.length===1&&arguments[0] instanceof Array){ax=arguments[0]}}}var az=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var aB=0;for(var aA=0;aA<4;aA++){for(var ay=0;ay<4;ay++,aB++){az[aB]+=this.elements[ay+0]*ax[aA*4+0]+this.elements[ay+4]*ax[aA*4+1]+this.elements[ay+8]*ax[aA*4+2]+this.elements[ay+12]*ax[aA*4+3]}}this.elements=az.slice()},apply:function(){var ax;if(arguments.length===1&&arguments[0] instanceof gP){ax=arguments[0].array()}else{if(arguments.length===16){ax=Array.prototype.slice.call(arguments)}else{if(arguments.length===1&&arguments[0] instanceof Array){ax=arguments[0]}}}var az=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var aB=0;for(var aA=0;aA<4;aA++){for(var ay=0;ay<4;ay++,aB++){az[aB]+=this.elements[aA*4+0]*ax[ay+0]+this.elements[aA*4+1]*ax[ay+4]+this.elements[aA*4+2]*ax[ay+8]+this.elements[aA*4+3]*ax[ay+12]}}this.elements=az.slice()},rotate:function(aC,az,aA,aD){if(!aA){this.rotateZ(aC)}else{var aB=ev.cos(aC);var ax=ev.sin(aC);var ay=1-aB;this.apply((ay*az*az)+aB,(ay*az*aA)-(ax*aD),(ay*az*aD)+(ax*aA),0,(ay*az*aA)+(ax*aD),(ay*aA*aA)+aB,(ay*aA*aD)-(ax*az),0,(ay*az*aD)-(ax*aA),(ay*aA*aD)+(ax*az),(ay*aD*aD)+aB,0,0,0,0,1)}},invApply:function(){if(eu===ae){eu=new gP()}var ax=arguments;eu.set(ax[0],ax[1],ax[2],ax[3],ax[4],ax[5],ax[6],ax[7],ax[8],ax[9],ax[10],ax[11],ax[12],ax[13],ax[14],ax[15]);if(!eu.invert()){return false}this.preApply(eu);return true},rotateX:function(ay){var ax=ev.cos(ay);var az=ev.sin(ay);this.apply([1,0,0,0,0,ax,-az,0,0,az,ax,0,0,0,0,1])},rotateY:function(ay){var ax=ev.cos(ay);var az=ev.sin(ay);this.apply([ax,0,az,0,0,1,0,0,-az,0,ax,0,0,0,0,1])},rotateZ:function(ay){var ax=ah.cos(ay);var az=ah.sin(ay);this.apply([ax,-az,0,0,az,ax,0,0,0,0,1,0,0,0,0,1])},scale:function(ax,ay,az){if(ax&&!ay&&!az){ay=az=ax}else{if(ax&&ay&&!az){az=1}}if(ax&&ay&&az){this.elements[0]*=ax;this.elements[1]*=ay;this.elements[2]*=az;this.elements[4]*=ax;this.elements[5]*=ay;this.elements[6]*=az;this.elements[8]*=ax;this.elements[9]*=ay;this.elements[10]*=az;this.elements[12]*=ax;this.elements[13]*=ay;this.elements[14]*=az}},skewX:function(ax){var ay=ah.tan(ax);this.apply(1,ay,0,0,0,1,0,0,0,0,1,0,0,0,0,1)},skewY:function(ax){var ay=ah.tan(ax);this.apply(1,0,0,0,ay,1,0,0,0,0,1,0,0,0,0,1)},multX:function(az,aA,ax,ay){if(!ax){return this.elements[0]*az+this.elements[1]*aA+this.elements[3]}if(!ay){return this.elements[0]*az+this.elements[1]*aA+this.elements[2]*ax+this.elements[3]}return this.elements[0]*az+this.elements[1]*aA+this.elements[2]*ax+this.elements[3]*ay},multY:function(az,aA,ax,ay){if(!ax){return this.elements[4]*az+this.elements[5]*aA+this.elements[7]}if(!ay){return this.elements[4]*az+this.elements[5]*aA+this.elements[6]*ax+this.elements[7]}return this.elements[4]*az+this.elements[5]*aA+this.elements[6]*ax+this.elements[7]*ay},multZ:function(az,aA,ax,ay){if(!ay){return this.elements[8]*az+this.elements[9]*aA+this.elements[10]*ax+this.elements[11]}return this.elements[8]*az+this.elements[9]*aA+this.elements[10]*ax+this.elements[11]*ay},multW:function(az,aA,ax,ay){if(!ay){return this.elements[12]*az+this.elements[13]*aA+this.elements[14]*ax+this.elements[15]}return this.elements[12]*az+this.elements[13]*aA+this.elements[14]*ax+this.elements[15]*ay},invert:function(){var aC=this.elements[0]*this.elements[5]-this.elements[1]*this.elements[4];var aD=this.elements[0]*this.elements[6]-this.elements[2]*this.elements[4];var aE=this.elements[0]*this.elements[7]-this.elements[3]*this.elements[4];var aF=this.elements[1]*this.elements[6]-this.elements[2]*this.elements[5];var aG=this.elements[1]*this.elements[7]-this.elements[3]*this.elements[5];var aH=this.elements[2]*this.elements[7]-this.elements[3]*this.elements[6];var aI=this.elements[8]*this.elements[13]-this.elements[9]*this.elements[12];var aJ=this.elements[8]*this.elements[14]-this.elements[10]*this.elements[12];var aK=this.elements[8]*this.elements[15]-this.elements[11]*this.elements[12];var ax=this.elements[9]*this.elements[14]-this.elements[10]*this.elements[13];var az=this.elements[9]*this.elements[15]-this.elements[11]*this.elements[13];var aA=this.elements[10]*this.elements[15]-this.elements[11]*this.elements[14];var ay=aC*aA-aD*az+aE*ax+aF*aK-aG*aJ+aH*aI;if(ah.abs(ay)<=1e-9){return false}var aB=[];aB[0]=+this.elements[5]*aA-this.elements[6]*az+this.elements[7]*ax;aB[4]=-this.elements[4]*aA+this.elements[6]*aK-this.elements[7]*aJ;aB[8]=+this.elements[4]*az-this.elements[5]*aK+this.elements[7]*aI;aB[12]=-this.elements[4]*ax+this.elements[5]*aJ-this.elements[6]*aI;aB[1]=-this.elements[1]*aA+this.elements[2]*az-this.elements[3]*ax;aB[5]=+this.elements[0]*aA-this.elements[2]*aK+this.elements[3]*aJ;aB[9]=-this.elements[0]*az+this.elements[1]*aK-this.elements[3]*aI;aB[13]=+this.elements[0]*ax-this.elements[1]*aJ+this.elements[2]*aI;aB[2]=+this.elements[13]*aH-this.elements[14]*aG+this.elements[15]*aF;aB[6]=-this.elements[12]*aH+this.elements[14]*aE-this.elements[15]*aD;aB[10]=+this.elements[12]*aG-this.elements[13]*aE+this.elements[15]*aC;aB[14]=-this.elements[12]*aF+this.elements[13]*aD-this.elements[14]*aC;aB[3]=-this.elements[9]*aH+this.elements[10]*aG-this.elements[11]*aF;aB[7]=+this.elements[8]*aH-this.elements[10]*aE+this.elements[11]*aD;aB[11]=-this.elements[8]*aG+this.elements[9]*aE-this.elements[11]*aC;aB[15]=+this.elements[8]*aF-this.elements[9]*aD+this.elements[10]*aC;var aL=1/ay;aB[0]*=aL;aB[1]*=aL;aB[2]*=aL;aB[3]*=aL;aB[4]*=aL;aB[5]*=aL;aB[6]*=aL;aB[7]*=aL;aB[8]*=aL;aB[9]*=aL;aB[10]*=aL;aB[11]*=aL;aB[12]*=aL;aB[13]*=aL;aB[14]*=aL;aB[15]*=aL;this.elements=aB.slice();return true},toString:function(){var ax="";for(var ay=0;ay<15;ay++){ax+=this.elements[ay]+", "}ax+=this.elements[15];return ax},print:function(){var ax=dq(this.elements);var ay=""+ev.nfs(this.elements[0],ax,4)+" "+ev.nfs(this.elements[1],ax,4)+" "+ev.nfs(this.elements[2],ax,4)+" "+ev.nfs(this.elements[3],ax,4)+"\n"+ev.nfs(this.elements[4],ax,4)+" "+ev.nfs(this.elements[5],ax,4)+" "+ev.nfs(this.elements[6],ax,4)+" "+ev.nfs(this.elements[7],ax,4)+"\n"+ev.nfs(this.elements[8],ax,4)+" "+ev.nfs(this.elements[9],ax,4)+" "+ev.nfs(this.elements[10],ax,4)+" "+ev.nfs(this.elements[11],ax,4)+"\n"+ev.nfs(this.elements[12],ax,4)+" "+ev.nfs(this.elements[13],ax,4)+" "+ev.nfs(this.elements[14],ax,4)+" "+ev.nfs(this.elements[15],ax,4)+"\n\n";ev.println(ay)},invTranslate:function(ay,az,ax){this.preApply(1,0,0,-ay,0,1,0,-az,0,0,1,-ax,0,0,0,1)},invRotateX:function(ay){var ax=ah.cos(-ay);var az=ah.sin(-ay);this.preApply([1,0,0,0,0,ax,-az,0,0,az,ax,0,0,0,0,1])},invRotateY:function(ay){var ax=ah.cos(-ay);var az=ah.sin(-ay);this.preApply([ax,0,az,0,0,1,0,0,-az,0,ax,0,0,0,0,1])},invRotateZ:function(ay){var ax=ah.cos(-ay);var az=ah.sin(-ay);this.preApply([ax,-az,0,0,az,ax,0,0,0,0,1,0,0,0,0,1])},invScale:function(az,ax,ay){this.preApply([1/az,0,0,0,0,1/ax,0,0,0,0,1/ay,0,0,0,0,1])}};var eQ=ev.PMatrixStack=function(){this.matrixStack=[]};eQ.prototype.load=function(){var ax=cy.$newPMatrix();if(arguments.length===1){ax.set(arguments[0])}else{ax.set(arguments)}this.matrixStack.push(ax)};f2.prototype.$newPMatrix=function(){return new gD()};el.prototype.$newPMatrix=function(){return new gP()};eQ.prototype.push=function(){this.matrixStack.push(this.peek())};eQ.prototype.pop=function(){return this.matrixStack.pop()};eQ.prototype.peek=function(){var ax=cy.$newPMatrix();ax.set(this.matrixStack[this.matrixStack.length-1]);return ax};eQ.prototype.mult=function(ax){this.matrixStack[this.matrixStack.length-1].apply(ax)};ev.split=function(ax,ay){return ax.split(ay)};ev.splitTokens=function(aB,ax){if(arguments.length===1){ax="\n\t\r\f "}ax="["+ax+"]";var ay=[];var az=0;var aA=aB.search(ax);while(aA>=0){if(aA===0){aB=aB.substring(1)}else{ay[az]=aB.substring(0,aA);az++;aB=aB.substring(aA)}aA=aB.search(ax)}if(aB.length>0){ay[az]=aB}if(ay.length===0){ay=ae}return ay};ev.append=function(ax,ay){ax[ax.length]=ay;return ax};ev.concat=function(ax,ay){return ax.concat(ay)};ev.sort=function(aA,aC){var ay=[];if(aA.length>0){var aB=aC>0?aC:aA.length;for(var ax=0;ax<aB;ax++){ay.push(aA[ax])}if(typeof aA[0]==="string"){ay.sort()}else{ay.sort(function(aD,aE){return aD-aE})}if(aC>0){for(var az=ay.length;az<aA.length;az++){ay.push(aA[az])}}}return ay};ev.splice=function(aA,aB,ay){if(aB.length===0){return aA}if(aB instanceof Array){for(var ax=0,az=ay;ax<aB.length;az++,ax++){aA.splice(az,0,aB[ax])}}else{aA.splice(ay,0,aB)}return aA};ev.subset=function(aA,ax,ay){var az=(ay!==ae)?ax+ay:aA.length;return aA.slice(ax,az)};ev.join=function(ax,ay){return ax.join(ay)};ev.shorten=function(aA){var ay=[];var az=aA.length;for(var ax=0;ax<az;ax++){ay[ax]=aA[ax]}ay.pop();return ay};ev.expand=function(ax,aA){var ay=ax.slice(0),az=aA||ax.length*2;ay.length=az;return ay};ev.arrayCopy=function(){var aA,aC=0,ax,ay=0,aB;if(arguments.length===2){aA=arguments[0];ax=arguments[1];aB=aA.length}else{if(arguments.length===3){aA=arguments[0];ax=arguments[1];aB=arguments[2]}else{if(arguments.length===5){aA=arguments[0];aC=arguments[1];ax=arguments[2];ay=arguments[3];aB=arguments[4]}}}for(var aD=aC,az=ay;aD<aB+aC;aD++,az++){if(ax[az]!==ae){ax[az]=aA[aD]}else{throw"array index out of bounds exception"}}};ev.reverse=function(ax){return ax.reverse()};ev.mix=function(ay,az,ax){return ay+(((az-ay)*ax)>>8)};ev.peg=function(ax){return(ax<0)?0:((ax>255)?255:ax)};ev.modes=(function(){var aB=W.ALPHA_MASK,ax=W.RED_MASK,ay=W.GREEN_MASK,aC=W.BLUE_MASK,aD=ah.min,az=ah.max;function aA(aL,aI,aM,aS,aQ,aR,aK,aG,aH,aO,aN){var aE=aD(((aL&4278190080)>>>24)+aI,255)<<24;var aP=(aM+(((aH-aM)*aI)>>8));aP=((aP<0)?0:((aP>255)?255:aP))<<16;var aJ=(aS+(((aO-aS)*aI)>>8));aJ=((aJ<0)?0:((aJ>255)?255:aJ))<<8;var aF=aQ+(((aN-aQ)*aI)>>8);aF=(aF<0)?0:((aF>255)?255:aF);return(aE|aP|aJ|aF)}return{replace:function(aE,aF){return aF},blend:function(aK,aL){var aI=(aL&aB)>>>24,aM=(aK&ax),aG=(aK&ay),aE=(aK&aC),aF=(aL&ax),aJ=(aL&ay),aH=(aL&aC);return(aD(((aK&aB)>>>24)+aI,255)<<24|(aM+(((aF-aM)*aI)>>8))&ax|(aG+(((aJ-aG)*aI)>>8))&ay|(aE+(((aH-aE)*aI)>>8))&aC)},add:function(aF,aG){var aE=(aG&aB)>>>24;return(aD(((aF&aB)>>>24)+aE,255)<<24|aD(((aF&ax)+((aG&ax)>>8)*aE),ax)&ax|aD(((aF&ay)+((aG&ay)>>8)*aE),ay)&ay|aD((aF&aC)+(((aG&aC)*aE)>>8),aC))},subtract:function(aF,aG){var aE=(aG&aB)>>>24;return(aD(((aF&aB)>>>24)+aE,255)<<24|az(((aF&ax)-((aG&ax)>>8)*aE),ay)&ax|az(((aF&ay)-((aG&ay)>>8)*aE),aC)&ay|az((aF&aC)-(((aG&aC)*aE)>>8),0))},lightest:function(aF,aG){var aE=(aG&aB)>>>24;return(aD(((aF&aB)>>>24)+aE,255)<<24|az(aF&ax,((aG&ax)>>8)*aE)&ax|az(aF&ay,((aG&ay)>>8)*aE)&ay|az(aF&aC,((aG&aC)*aE)>>8))},darkest:function(aK,aL){var aI=(aL&aB)>>>24,aM=(aK&ax),aG=(aK&ay),aE=(aK&aC),aF=aD(aK&ax,((aL&ax)>>8)*aI),aJ=aD(aK&ay,((aL&ay)>>8)*aI),aH=aD(aK&aC,((aL&aC)*aI)>>8);return(aD(((aK&aB)>>>24)+aI,255)<<24|(aM+(((aF-aM)*aI)>>8))&ax|(aG+(((aJ-aG)*aI)>>8))&ay|(aE+(((aH-aE)*aI)>>8))&aC)},difference:function(aL,aM){var aJ=(aM&aB)>>>24,aN=(aL&ax)>>16,aG=(aL&ay)>>8,aE=(aL&aC),aF=(aM&ax)>>16,aK=(aM&ay)>>8,aH=(aM&aC),aI=(aN>aF)?(aN-aF):(aF-aN),aP=(aG>aK)?(aG-aK):(aK-aG),aO=(aE>aH)?(aE-aH):(aH-aE);return aA(aL,aJ,aN,aG,aE,aF,aK,aH,aI,aP,aO)},exclusion:function(aL,aM){var aJ=(aM&aB)>>>24,aN=(aL&ax)>>16,aG=(aL&ay)>>8,aE=(aL&aC),aF=(aM&ax)>>16,aK=(aM&ay)>>8,aH=(aM&aC),aI=aN+aF-((aN*aF)>>7),aP=aG+aK-((aG*aK)>>7),aO=aE+aH-((aE*aH)>>7);return aA(aL,aJ,aN,aG,aE,aF,aK,aH,aI,aP,aO)},multiply:function(aL,aM){var aJ=(aM&aB)>>>24,aN=(aL&ax)>>16,aG=(aL&ay)>>8,aE=(aL&aC),aF=(aM&ax)>>16,aK=(aM&ay)>>8,aH=(aM&aC),aI=(aN*aF)>>8,aP=(aG*aK)>>8,aO=(aE*aH)>>8;return aA(aL,aJ,aN,aG,aE,aF,aK,aH,aI,aP,aO)},screen:function(aL,aM){var aJ=(aM&aB)>>>24,aN=(aL&ax)>>16,aG=(aL&ay)>>8,aE=(aL&aC),aF=(aM&ax)>>16,aK=(aM&ay)>>8,aH=(aM&aC),aI=255-(((255-aN)*(255-aF))>>8),aP=255-(((255-aG)*(255-aK))>>8),aO=255-(((255-aE)*(255-aH))>>8);return aA(aL,aJ,aN,aG,aE,aF,aK,aH,aI,aP,aO)},hard_light:function(aL,aM){var aJ=(aM&aB)>>>24,aN=(aL&ax)>>16,aG=(aL&ay)>>8,aE=(aL&aC),aF=(aM&ax)>>16,aK=(aM&ay)>>8,aH=(aM&aC),aI=(aF<128)?((aN*aF)>>7):(255-(((255-aN)*(255-aF))>>7)),aP=(aK<128)?((aG*aK)>>7):(255-(((255-aG)*(255-aK))>>7)),aO=(aH<128)?((aE*aH)>>7):(255-(((255-aE)*(255-aH))>>7));return aA(aL,aJ,aN,aG,aE,aF,aK,aH,aI,aP,aO)},soft_light:function(aL,aM){var aJ=(aM&aB)>>>24,aN=(aL&ax)>>16,aG=(aL&ay)>>8,aE=(aL&aC),aF=(aM&ax)>>16,aK=(aM&ay)>>8,aH=(aM&aC),aI=((aN*aF)>>7)+((aN*aN)>>8)-((aN*aN*aF)>>15),aP=((aG*aK)>>7)+((aG*aG)>>8)-((aG*aG*aK)>>15),aO=((aE*aH)>>7)+((aE*aE)>>8)-((aE*aE*aH)>>15);return aA(aL,aJ,aN,aG,aE,aF,aK,aH,aI,aP,aO)},overlay:function(aL,aM){var aJ=(aM&aB)>>>24,aN=(aL&ax)>>16,aG=(aL&ay)>>8,aE=(aL&aC),aF=(aM&ax)>>16,aK=(aM&ay)>>8,aH=(aM&aC),aI=(aN<128)?((aN*aF)>>7):(255-(((255-aN)*(255-aF))>>7)),aP=(aG<128)?((aG*aK)>>7):(255-(((255-aG)*(255-aK))>>7)),aO=(aE<128)?((aE*aH)>>7):(255-(((255-aE)*(255-aH))>>7));return aA(aL,aJ,aN,aG,aE,aF,aK,aH,aI,aP,aO)},dodge:function(aL,aM){var aJ=(aM&aB)>>>24,aN=(aL&ax)>>16,aG=(aL&ay)>>8,aE=(aL&aC),aF=(aM&ax)>>16,aK=(aM&ay)>>8,aH=(aM&aC);var aI=255;if(aF!==255){aI=(aN<<8)/(255-aF);aI=(aI<0)?0:((aI>255)?255:aI)}var aP=255;if(aK!==255){aP=(aG<<8)/(255-aK);aP=(aP<0)?0:((aP>255)?255:aP)}var aO=255;if(aH!==255){aO=(aE<<8)/(255-aH);aO=(aO<0)?0:((aO>255)?255:aO)}return aA(aL,aJ,aN,aG,aE,aF,aK,aH,aI,aP,aO)},burn:function(aL,aM){var aJ=(aM&aB)>>>24,aN=(aL&ax)>>16,aG=(aL&ay)>>8,aE=(aL&aC),aF=(aM&ax)>>16,aK=(aM&ay)>>8,aH=(aM&aC);var aI=0;if(aF!==0){aI=((255-aN)<<8)/aF;aI=255-((aI<0)?0:((aI>255)?255:aI))}var aP=0;if(aK!==0){aP=((255-aG)<<8)/aK;aP=255-((aP<0)?0:((aP>255)?255:aP))}var aO=0;if(aH!==0){aO=((255-aE)<<8)/aH;aO=255-((aO<0)?0:((aO>255)?255:aO))}return aA(aL,aJ,aN,aG,aE,aF,aK,aH,aI,aP,aO)}}}());function eb(aA,aB,aD,aE){var aF,aC,ay,ax;if(eq===W.HSB){var az=ev.color.toRGB(aA,aB,aD);aF=az[0];aC=az[1];ay=az[2]}else{aF=ah.round(255*(aA/gh));aC=ah.round(255*(aB/gk));ay=ah.round(255*(aD/gn))}ax=ah.round(255*(aE/fT));aF=(aF<0)?0:aF;aC=(aC<0)?0:aC;ay=(ay<0)?0:ay;ax=(ax<0)?0:ax;aF=(aF>255)?255:aF;aC=(aC>255)?255:aC;ay=(ay>255)?255:ay;ax=(ax>255)?255:ax;return(ax<<24)&W.ALPHA_MASK|(aF<<16)&W.RED_MASK|(aC<<8)&W.GREEN_MASK|ay&W.BLUE_MASK}function dy(az,ax){var ay;if(az&W.ALPHA_MASK){ay=ah.round(255*(ax/fT));ay=(ay>255)?255:ay;ay=(ay<0)?0:ay;return az-(az&W.ALPHA_MASK)+((ay<<24)&W.ALPHA_MASK)}if(eq===W.RGB){return eb(az,az,az,ax)}if(eq===W.HSB){return eb(0,0,(az/gh)*gn,ax)}}function du(ax){if(ax<=gh&&ax>=0){if(eq===W.RGB){return eb(ax,ax,ax,fT)}if(eq===W.HSB){return eb(0,0,(ax/gh)*gn,fT)}}if(ax){if(ax>2147483647){ax-=4294967296}return ax}}ev.color=function(az,aA,ax,ay){if(az!==ae&&aA!==ae&&ax!==ae&&ay!==ae){return eb(az,aA,ax,ay)}if(az!==ae&&aA!==ae&&ax!==ae){return eb(az,aA,ax,fT)}if(az!==ae&&aA!==ae){return dy(az,aA)}if(typeof az==="number"){return du(az)}return eb(gh,gk,gn,fT)};ev.color.toString=function(ax){return"rgba("+((ax&W.RED_MASK)>>>16)+","+((ax&W.GREEN_MASK)>>>8)+","+((ax&W.BLUE_MASK))+","+((ax&W.ALPHA_MASK)>>>24)/255+")"};ev.color.toInt=function(aA,ax,az,ay){return(ay<<24)&W.ALPHA_MASK|(aA<<16)&W.RED_MASK|(ax<<8)&W.GREEN_MASK|az&W.BLUE_MASK};ev.color.toArray=function(ax){return[(ax&W.RED_MASK)>>>16,(ax&W.GREEN_MASK)>>>8,ax&W.BLUE_MASK,(ax&W.ALPHA_MASK)>>>24]};ev.color.toGLArray=function(ax){return[((ax&W.RED_MASK)>>>16)/255,((ax&W.GREEN_MASK)>>>8)/255,(ax&W.BLUE_MASK)/255,((ax&W.ALPHA_MASK)>>>24)/255]};ev.color.toRGB=function(aD,ax,aA){aD=(aD>gh)?gh:aD;ax=(ax>gk)?gk:ax;aA=(aA>gn)?gn:aA;aD=(aD/gh)*360;ax=(ax/gk)*100;aA=(aA/gn)*100;var ay=ah.round(aA/100*255);if(ax===0){return[ay,ay,ay]}var aC=aD%360;var aB=aC%60;var aE=ah.round((aA*(100-ax))/10000*255);var aF=ah.round((aA*(6000-ax*aB))/600000*255);var az=ah.round((aA*(6000-ax*(60-aB)))/600000*255);switch(ah.floor(aC/60)){case 0:return[ay,az,aE];case 1:return[aF,ay,aE];case 2:return[aE,ay,az];case 3:return[aE,aF,ay];case 4:return[az,aE,ay];case 5:return[ay,aE,aF]}};function gK(aA){var aB,aC,ay;aB=((aA&W.RED_MASK)>>>16)/255;aC=((aA&W.GREEN_MASK)>>>8)/255;ay=(aA&W.BLUE_MASK)/255;var az=ev.max(ev.max(aB,aC),ay),aE=ev.min(ev.min(aB,aC),ay),ax,aD;if(aE===az){return[0,0,az*gn]}aD=(az-aE)/az;if(aB===az){ax=(aC-ay)/(az-aE)}else{if(aC===az){ax=2+((ay-aB)/(az-aE))}else{ax=4+((aB-aC)/(az-aE))}}ax/=6;if(ax<0){ax+=1}else{if(ax>1){ax-=1}}return[ax*gh,aD*gk,az*gn]}ev.brightness=function(ax){return gK(ax)[2]};ev.saturation=function(ax){return gK(ax)[1]};ev.hue=function(ax){return gK(ax)[0]};ev.red=function(ax){return((ax&W.RED_MASK)>>>16)/255*gh};ev.green=function(ax){return((ax&W.GREEN_MASK)>>>8)/255*gk};ev.blue=function(ax){return(ax&W.BLUE_MASK)/255*gn};ev.alpha=function(ax){return((ax&W.ALPHA_MASK)>>>24)/255*fT};ev.lerpColor=function(aD,aE,aK){var aF,az,ay,ax,aB,aP,aJ,aR,aC,aQ,aL,aS;var aH,aI,aO,aA,aG;var aM=ev.color(aD);var aN=ev.color(aE);if(eq===W.HSB){aH=gK(aM);aR=((aM&W.ALPHA_MASK)>>>24)/fT;aI=gK(aN);aS=((aN&W.ALPHA_MASK)>>>24)/fT;aA=ev.lerp(aH[0],aI[0],aK);aG=ev.lerp(aH[1],aI[1],aK);ay=ev.lerp(aH[2],aI[2],aK);aO=ev.color.toRGB(aA,aG,ay);ax=ev.lerp(aR,aS,aK)*fT;return(ax<<24)&W.ALPHA_MASK|(aO[0]<<16)&W.RED_MASK|(aO[1]<<8)&W.GREEN_MASK|aO[2]&W.BLUE_MASK}aB=(aM&W.RED_MASK)>>>16;aP=(aM&W.GREEN_MASK)>>>8;aJ=(aM&W.BLUE_MASK);aR=((aM&W.ALPHA_MASK)>>>24)/fT;aC=(aN&W.RED_MASK)>>>16;aQ=(aN&W.GREEN_MASK)>>>8;aL=(aN&W.BLUE_MASK);aS=((aN&W.ALPHA_MASK)>>>24)/fT;aF=ev.lerp(aB,aC,aK)|0;az=ev.lerp(aP,aQ,aK)|0;ay=ev.lerp(aJ,aL,aK)|0;ax=ev.lerp(aR,aS,aK)*fT;return(ax<<24)&W.ALPHA_MASK|(aF<<16)&W.RED_MASK|(az<<8)&W.GREEN_MASK|ay&W.BLUE_MASK};ev.colorMode=function(){eq=arguments[0];if(arguments.length>1){gh=arguments[1];gk=arguments[2]||arguments[1];gn=arguments[3]||arguments[1];fT=arguments[4]||arguments[1]}};ev.blendColor=function(ay,az,ax){if(ax===W.REPLACE){return ev.modes.replace(ay,az)}else{if(ax===W.BLEND){return ev.modes.blend(ay,az)}else{if(ax===W.ADD){return ev.modes.add(ay,az)}else{if(ax===W.SUBTRACT){return ev.modes.subtract(ay,az)}else{if(ax===W.LIGHTEST){return ev.modes.lightest(ay,az)}else{if(ax===W.DARKEST){return ev.modes.darkest(ay,az)}else{if(ax===W.DIFFERENCE){return ev.modes.difference(ay,az)}else{if(ax===W.EXCLUSION){return ev.modes.exclusion(ay,az)}else{if(ax===W.MULTIPLY){return ev.modes.multiply(ay,az)}else{if(ax===W.SCREEN){return ev.modes.screen(ay,az)}else{if(ax===W.HARD_LIGHT){return ev.modes.hard_light(ay,az)}else{if(ax===W.SOFT_LIGHT){return ev.modes.soft_light(ay,az)}else{if(ax===W.OVERLAY){return ev.modes.overlay(ay,az)}else{if(ax===W.DODGE){return ev.modes.dodge(ay,az)}else{if(ax===W.BURN){return ev.modes.burn(ay,az)}}}}}}}}}}}}}}}};function gZ(){eH.save()}function eV(){eH.restore();gL=true;fU=true}ev.printMatrix=function(){d6.print()};f2.prototype.translate=function(ay,ax){d6.translate(ay,ax);gJ.invTranslate(ay,ax);eH.translate(ay,ax)};el.prototype.translate=function(az,ax,ay){d6.translate(az,ax,ay);gJ.invTranslate(az,ax,ay)};f2.prototype.scale=function(ay,ax){d6.scale(ay,ax);gJ.invScale(ay,ax);eH.scale(ay,ax||ay)};el.prototype.scale=function(az,ax,ay){d6.scale(az,ax,ay);gJ.invScale(az,ax,ay)};f2.prototype.pushMatrix=function(){f4.load(d6);fD.load(gJ);gZ()};el.prototype.pushMatrix=function(){f4.load(d6);fD.load(gJ)};f2.prototype.popMatrix=function(){d6.set(f4.pop());gJ.set(fD.pop());eV()};el.prototype.popMatrix=function(){d6.set(f4.pop());gJ.set(fD.pop())};f2.prototype.resetMatrix=function(){d6.reset();gJ.reset();eH.setTransform(1,0,0,1,0,0)};el.prototype.resetMatrix=function(){d6.reset();gJ.reset()};t.prototype.applyMatrix=function(){var ax=arguments;d6.apply(ax[0],ax[1],ax[2],ax[3],ax[4],ax[5],ax[6],ax[7],ax[8],ax[9],ax[10],ax[11],ax[12],ax[13],ax[14],ax[15]);gJ.invApply(ax[0],ax[1],ax[2],ax[3],ax[4],ax[5],ax[6],ax[7],ax[8],ax[9],ax[10],ax[11],ax[12],ax[13],ax[14],ax[15])};f2.prototype.applyMatrix=function(){var ay=arguments;for(var ax=ay.length;ax<16;ax++){ay[ax]=0}ay[10]=ay[15]=1;t.prototype.applyMatrix.apply(this,ay)};ev.rotateX=function(ax){d6.rotateX(ax);gJ.invRotateX(ax)};f2.prototype.rotateZ=function(){throw"rotateZ() is not supported in 2D mode. Use rotate(float) instead."};el.prototype.rotateZ=function(ax){d6.rotateZ(ax);gJ.invRotateZ(ax)};ev.rotateY=function(ax){d6.rotateY(ax);gJ.invRotateY(ax)};f2.prototype.rotate=function(ax){d6.rotateZ(ax);gJ.invRotateZ(ax);eH.rotate(ax)};el.prototype.rotate=function(ax){ev.rotateZ(ax)};ev.pushStyle=function(){gZ();ev.pushMatrix();var ax={doFill:gW,currentFillColor:gu,doStroke:ec,currentStrokeColor:a8,curTint:fr,curRectMode:gd,curColorMode:eq,colorModeX:gh,colorModeZ:gn,colorModeY:gk,colorModeA:fT,curTextFont:eN,horizontalTextAlignment:fg,verticalTextAlignment:ek,textMode:fh,curFontName:eG,curTextSize:a5,curTextAscent:gs,curTextDescent:l,curTextLeading:eK};e8.push(ax)};ev.popStyle=function(){var ax=e8.pop();if(ax){eV();ev.popMatrix();gW=ax.doFill;gu=ax.currentFillColor;ec=ax.doStroke;a8=ax.currentStrokeColor;fr=ax.curTint;gd=ax.curRectmode;eq=ax.curColorMode;gh=ax.colorModeX;gn=ax.colorModeZ;gk=ax.colorModeY;fT=ax.colorModeA;eN=ax.curTextFont;eG=ax.curFontName;a5=ax.curTextSize;fg=ax.horizontalTextAlignment;ek=ax.verticalTextAlignment;fh=ax.textMode;gs=ax.curTextAscent;l=ax.curTextDescent;eK=ax.curTextLeading}else{throw"Too many popStyle() without enough pushStyle()"}};ev.year=function(){return new Date().getFullYear()};ev.month=function(){return new Date().getMonth()+1};ev.day=function(){return new Date().getDate()};ev.hour=function(){return new Date().getHours()};ev.minute=function(){return new Date().getMinutes()};ev.second=function(){return new Date().getSeconds()};ev.millis=function(){return Date.now()-v};t.prototype.redraw=function(){var ay=(Date.now()-s)/1000;e9++;var ax=e9/ay;if(ay>0.5){s=Date.now();e9=0;ev.__frameRate=ax}ev.frameCount++};f2.prototype.redraw=function(){t.prototype.redraw.apply(this,arguments);eH.lineWidth=db;dk=true;gZ();ev.draw();eV();dk=false};el.prototype.redraw=function(){t.prototype.redraw.apply(this,arguments);dk=true;eH.clear(eH.DEPTH_BUFFER_BIT);j={attributes:{},locations:{}};ev.noLights();ev.lightFalloff(1,0,0);ev.shininess(1);ev.ambient(255,255,255);ev.specular(0,0,0);ev.emissive(0,0,0);ev.camera();ev.draw();dk=false};ev.noLoop=function(){g0=false;fz=false;clearInterval(gI);eR.onPause()};ev.loop=function(){if(fz){return}s=Date.now();e9=0;gI=U.setInterval(function(){try{eR.onFrameStart();ev.redraw();eR.onFrameEnd()}catch(ax){U.clearInterval(gI);throw ax}},fv);g0=true;fz=true;eR.onLoop()};ev.frameRate=function(ax){dg=ax;fv=1000/dg;if(g0){ev.noLoop();ev.loop()}};var fI=[];function f6(ax,ay,az){if(ax.addEventListener){ax.addEventListener(ay,az,false)}else{ax.attachEvent("on"+ay,az)}fI.push({elem:ax,type:ay,fn:az})}function E(az){var aA=az.elem,ax=az.type,ay=az.fn;if(aA.removeEventListener){aA.removeEventListener(ax,ay,false)}else{if(aA.detachEvent){aA.detachEvent("on"+ax,ay)}}}ev.exit=function(){U.clearInterval(gI);M(ev.externals.canvas.id);for(var ax in S.lib){if(S.lib.hasOwnProperty(ax)){if(S.lib[ax].hasOwnProperty("detach")){S.lib[ax].detach(ev)}}}var ay=fI.length;while(ay--){E(fI[ay])}eR.onExit()};ev.cursor=function(){if(arguments.length>1||(arguments.length===1&&arguments[0] instanceof ev.PImage)){var aC=arguments[0],az,aA;if(arguments.length>=3){az=arguments[1];aA=arguments[2];if(az<0||aA<0||aA>=aC.height||az>=aC.width){throw"x and y must be non-negative and less than the dimensions of the image"}}else{az=aC.width>>>1;aA=aC.height>>>1}var ay=aC.toDataURL();var ax='url("'+ay+'") '+az+" "+aA+", default";eD=gl.style.cursor=ax}else{if(arguments.length===1){var aB=arguments[0];eD=gl.style.cursor=aB}else{eD=gl.style.cursor=dv}}};ev.noCursor=function(){eD=gl.style.cursor=W.NOCURSOR};ev.link=function(ay,ax){if(ax!==ae){U.open(ay,ax)}else{U.location=ay}};ev.beginDraw=R;ev.endDraw=R;ev.Import=function(ax){};ev.status=function(ax){U.status=ax};ev.binary=function(ay,ax){var aA;if(ax>0){aA=ax}else{if(ay instanceof f3){aA=16;ay|=0}else{aA=32;while(aA>1&&!((ay>>>(aA-1))&1)){aA--}}}var az="";while(aA>0){az+=((ay>>>(--aA))&1)?"1":"0"}return az};ev.unbinary=function(ay){var aB=ay.length-1,ax=1,az=0;while(aB>=0){var aA=ay[aB--];if(aA!=="0"&&aA!=="1"){throw"the value passed into unbinary was not an 8 bit binary number"}if(aA==="1"){az+=ax}ax<<=1}return az};function es(aA,aC,aI,ax,aG,az){var aK=(aA<0)?aI:aC;var aL=aG===0;var aB=(aG===ae||aG<0)?0:aG;var aD=ah.abs(aA);if(aL){aB=1;aD*=10;while(ah.abs(ah.round(aD)-aD)>0.000001&&aB<7){++aB;aD*=10}}else{if(aB!==0){aD*=ah.pow(10,aB)}}var aJ,aE=aD*2;if(ah.floor(aD)===aD){aJ=aD}else{if(ah.floor(aE)===aE){var aM=ah.floor(aD);aJ=aM+(aM%2)}else{aJ=ah.round(aD)}}var aH="";var ay=ax+aB;while(ay>0||aJ>0){ay--;aH=""+(aJ%10)+aH;aJ=ah.floor(aJ/10)}if(az!==ae){var aF=aH.length-3-aB;while(aF>0){aH=aH.substring(0,aF)+az+aH.substring(aF);aF-=3}}if(aB>0){return aK+aH.substring(0,aH.length-aB)+"."+aH.substring(aH.length-aB,aH.length)}return aK+aH}function fY(az,aA,aF,ax,aE,ay){if(az instanceof Array){var aC=[];for(var aD=0,aB=az.length;aD<aB;aD++){aC.push(es(az[aD],aA,aF,ax,aE,ay))}return aC}return es(az,aA,aF,ax,aE,ay)}ev.nf=function(ax,az,ay){return fY(ax,"","-",az,ay)};ev.nfs=function(ax,az,ay){return fY(ax," ","-",az,ay)};ev.nfp=function(ax,az,ay){return fY(ax,"+","-",az,ay)};ev.nfc=function(ax,az,ay){return fY(ax,"","-",az,ay,",")};var gR=function(ax,ay){ay=(ay===ae||ay===null)?ay=8:ay;if(ax<0){ax=4294967295+ax+1}var az=Number(ax).toString(16).toUpperCase();while(az.length<ay){az="0"+az}if(az.length>=ay){az=az.substring(az.length-ay,az.length)}return az};ev.hex=function(ax,ay){if(arguments.length===1){if(ax instanceof f3){ay=4}else{ay=8}}return gR(ax,ay)};function eg(ay){var ax=parseInt("0x"+ay,16);if(ax>2147483647){ax-=4294967296}return ax}ev.unhex=function(ax){if(ax instanceof Array){var az=[];for(var ay=0;ay<ax.length;ay++){az.push(eg(ax[ay]))}return az}return eg(ax)};ev.loadStrings=function(ax){if(localStorage[ax]){return localStorage[ax].split("\n")}var ay=ab(ax);if(typeof ay!=="string"||ay===""){return[]}ay=ay.replace(/(\r\n?)/g,"\n").replace(/\n$/,"");return ay.split("\n")};ev.saveStrings=function(ax,ay){localStorage[ax]=ay.join("\n")};ev.loadBytes=function(ax){var ay=ab(ax);var az=[];for(var aA=0;aA<ay.length;aA++){az.push(ay.charCodeAt(aA))}return az};function a(ax){return Array.prototype.slice.call(ax,1)}ev.matchAll=function(ay,az){var aB=[],ax;var aA=new RegExp(az,"g");while((ax=aA.exec(ay))!==null){aB.push(ax);if(ax[0].length===0){++aA.lastIndex}}return aB.length>0?aB:null};ev.__contains=function(ax,ay){if(typeof ax!=="string"){return ax.contains.apply(ax,a(arguments))}return((ax!==null)&&(ay!==null)&&(typeof ay==="string")&&(ax.indexOf(ay)>-1))};ev.__replaceAll=function(az,ax,ay){if(typeof az!=="string"){return az.replaceAll.apply(az,a(arguments))}return az.replace(new RegExp(ax,"g"),ay)};ev.__replaceFirst=function(az,ax,ay){if(typeof az!=="string"){return az.replaceFirst.apply(az,a(arguments))}return az.replace(new RegExp(ax,""),ay)};ev.__replace=function(aC,aA,aB){if(typeof aC!=="string"){return aC.replace.apply(aC,a(arguments))}if(aA instanceof RegExp){return aC.replace(aA,aB)}if(typeof aA!=="string"){aA=aA.toString()}if(aA===""){return aC}var ax=aC.indexOf(aA);if(ax<0){return aC}var ay=0,az="";do{az+=aC.substring(ay,ax)+aB;ay=ax+aA.length}while((ax=aC.indexOf(aA,ay))>=0);return az+aC.substring(ay)};ev.__equals=function(ax,ay){if(ax.equals instanceof Function){return ax.equals.apply(ax,a(arguments))}return ax.valueOf()===ay.valueOf()};ev.__equalsIgnoreCase=function(ax,ay){if(typeof ax!=="string"){return ax.equalsIgnoreCase.apply(ax,a(arguments))}return ax.toLowerCase()===ay.toLowerCase()};ev.__toCharArray=function(ax){if(typeof ax!=="string"){return ax.toCharArray.apply(ax,a(arguments))}var aA=[];for(var ay=0,az=ax.length;ay<az;++ay){aA[ay]=new f3(ax.charAt(ay))}return aA};ev.__split=function(aE,aD,ay){if(typeof aE!=="string"){return aE.split.apply(aE,a(arguments))}var aB=new RegExp(aD);if((ay===ae)||(ay<1)){return aE.split(aB)}var aA=[],aC=aE,az;while(((az=aC.search(aB))!==-1)&&(aA.length<(ay-1))){var ax=aB.exec(aC).toString();aA.push(aC.substring(0,az));aC=aC.substring(az+ax.length)}if((az!==-1)||(aC!=="")){aA.push(aC)}return aA};ev.__codePointAt=function(aB,ay){var aA=aB.charCodeAt(ay),ax,az;if(55296<=aA&&aA<=56319){ax=aA;az=aB.charCodeAt(ay+1);return((ax-55296)*1024)+(az-56320)+65536}return aA};ev.match=function(ax,ay){return ax.match(ay)};ev.__startsWith=function(az,ax,ay){if(typeof az!=="string"){return az.startsWith.apply(az,a(arguments))}ay=ay||0;if(ay<0||ay>az.length){return false}return(ax===""||ax===az)?true:(az.indexOf(ax)===ay)};ev.__endsWith=function(ay,ax){if(typeof ay!=="string"){return ay.endsWith.apply(ay,a(arguments))}var az=ax?ax.length:0;return(ax===""||ax===ay)?true:(ay.indexOf(ax)===ay.length-az)};ev.__hashCode=function(ax){if(ax.hashCode instanceof Function){return ax.hashCode.apply(ax,a(arguments))}return ao(ax)};ev.__printStackTrace=function(ax){ev.println("Exception: "+ax.toString())};var ew=[];ev.println=function(ay){var ax=ew.length;if(ax){S.logger.log(ew.join(""));ew.length=0}if(arguments.length===0&&ax===0){S.logger.log("")}else{if(arguments.length!==0){S.logger.log(ay)}}};ev.print=function(ax){ew.push(ax)};ev.str=function(ax){if(ax instanceof Array){var az=[];for(var ay=0;ay<ax.length;ay++){az.push(ax[ay].toString()+"")}return az}return(ax.toString()+"")};ev.trim=function(ax){if(ax instanceof Array){var az=[];for(var ay=0;ay<ax.length;ay++){az.push(ax[ay].replace(/^\s*/,"").replace(/\s*$/,"").replace(/\r*$/,""))}return az}return ax.replace(/^\s*/,"").replace(/\s*$/,"").replace(/\r*$/,"")};function gM(ax){if(typeof ax==="number"){return ax!==0}if(typeof ax==="boolean"){return ax}if(typeof ax==="string"){return ax.toLowerCase()==="true"}if(ax instanceof f3){return ax.code===49||ax.code===84||ax.code===116}}ev.parseBoolean=function(ax){if(ax instanceof Array){var az=[];for(var ay=0;ay<ax.length;ay++){az.push(gM(ax[ay]))}return az}return gM(ax)};ev.parseByte=function(ax){if(ax instanceof Array){var az=[];for(var ay=0;ay<ax.length;ay++){az.push((0-(ax[ay]&128))|(ax[ay]&127))}return az}return(0-(ax&128))|(ax&127)};ev.parseChar=function(ax){if(typeof ax==="number"){return new f3(String.fromCharCode(ax&65535))}if(ax instanceof Array){var az=[];for(var ay=0;ay<ax.length;ay++){az.push(new f3(String.fromCharCode(ax[ay]&65535)))}return az}throw"char() may receive only one argument of type int, byte, int[], or byte[]."};function eZ(ax){if(typeof ax==="number"){return ax}if(typeof ax==="boolean"){return ax?1:0}if(typeof ax==="string"){return parseFloat(ax)}if(ax instanceof f3){return ax.code}}ev.parseFloat=function(ax){if(ax instanceof Array){var az=[];for(var ay=0;ay<ax.length;ay++){az.push(eZ(ax[ay]))}return az}return eZ(ax)};function f5(ax,az){if(typeof ax==="number"){return ax&4294967295}if(typeof ax==="boolean"){return ax?1:0}if(typeof ax==="string"){var ay=parseInt(ax,az||10);return ay&4294967295}if(ax instanceof f3){return ax.code}}ev.parseInt=function(aA,ax){if(aA instanceof Array){var az=[];for(var ay=0;ay<aA.length;ay++){if(typeof aA[ay]==="string"&&!/^\s*[+\-]?\d+\s*$/.test(aA[ay])){az.push(0)}else{az.push(f5(aA[ay],ax))}}return az}return f5(aA,ax)};ev.__int_cast=function(ax){return 0|ax};ev.__instanceof=function(ax,ay){if(typeof ay!=="function"){throw"Function is expected as type argument for instanceof operator"}if(typeof ax==="string"){return ay===Object||ay===String}if(ax instanceof ay){return true}if(typeof ax!=="object"||ax===null){return false}var aA=ax.constructor;if(ay.$isInterface){var aB=[];while(aA){if(aA.$interfaces){aB=aB.concat(aA.$interfaces)}aA=aA.$base}while(aB.length>0){var az=aB.shift();if(az===ay){return true}if(az.$interfaces){aB=aB.concat(az.$interfaces)}}return false}while(aA.hasOwnProperty("$base")){aA=aA.$base;if(aA===ay){return true}}return false};ev.abs=ah.abs;ev.ceil=ah.ceil;ev.constrain=function(ay,ax,az){return ay>az?az:ay<ax?ax:ay};ev.dist=function(){var ax,ay,az;if(arguments.length===4){ax=arguments[0]-arguments[2];ay=arguments[1]-arguments[3];return ah.sqrt(ax*ax+ay*ay)}if(arguments.length===6){ax=arguments[0]-arguments[3];ay=arguments[1]-arguments[4];az=arguments[2]-arguments[5];return ah.sqrt(ax*ax+ay*ay+az*az)}};ev.exp=ah.exp;ev.floor=ah.floor;ev.lerp=function(ay,az,ax){return((az-ay)*ax)+ay};ev.log=ah.log;ev.mag=function(ay,az,ax){if(ax){return ah.sqrt(ay*ay+az*az+ax*ax)}return ah.sqrt(ay*ay+az*az)};ev.map=function(aB,ay,ax,az,aA){return az+(aA-az)*((aB-ay)/(ax-ay))};ev.max=function(){if(arguments.length===2){return arguments[0]<arguments[1]?arguments[1]:arguments[0]}var ay=arguments.length===1?arguments[0]:arguments;if(!("length" in ay&&ay.length>0)){throw"Non-empty array is expected"}var az=ay[0],aA=ay.length;for(var ax=1;ax<aA;++ax){if(az<ay[ax]){az=ay[ax]}}return az};ev.min=function(){if(arguments.length===2){return arguments[0]<arguments[1]?arguments[0]:arguments[1]}var az=arguments.length===1?arguments[0]:arguments;if(!("length" in az&&az.length>0)){throw"Non-empty array is expected"}var ax=az[0],aA=az.length;for(var ay=1;ay<aA;++ay){if(ax>az[ay]){ax=az[ay]}}return ax};ev.norm=function(ay,az,ax){return(ay-az)/(ax-az)};ev.pow=ah.pow;ev.round=ah.round;ev.sq=function(ax){return ax*ax};ev.sqrt=ah.sqrt;ev.acos=ah.acos;ev.asin=ah.asin;ev.atan=ah.atan;ev.atan2=ah.atan2;ev.cos=ah.cos;ev.degrees=function(ax){return(ax*180)/ah.PI};ev.radians=function(ax){return(ax/180)*ah.PI};ev.sin=ah.sin;ev.tan=ah.tan;var fF=ah.random;ev.random=function(){if(arguments.length===0){return fF()}if(arguments.length===1){return fF()*arguments[0]}var ax=arguments[0],ay=arguments[1];return fF()*(ay-ax)+ax};function dl(ax,ay){var aA=ax||362436069,az=ay||521288629;var aB=function(){aA=(36969*(aA&65535)+(aA>>>16))&4294967295;az=(18000*(az&65535)+(az>>>16))&4294967295;return(((aA&65535)<<16)|(az&65535))&4294967295};this.nextDouble=function(){var aC=aB()/4294967296;return aC<0?1+aC:aC};this.nextInt=aB}dl.createRandomized=function(){var ax=new Date();return new dl((ax/60000)&4294967295,ax&4294967295)};ev.randomSeed=function(ax){fF=(new dl(ax)).nextDouble};ev.Random=function(az){var aA=false,ay,ax;this.nextGaussian=function(){if(aA){aA=false;return ay}var aB,aD,aE;do{aB=2*ax()-1;aD=2*ax()-1;aE=aB*aB+aD*aD}while(aE>=1||aE===0);var aC=ah.sqrt(-2*ah.log(aE)/aE);ay=aD*aC;aA=true;return aB*aC};ax=(az===ae)?ah.random:(new dl(az)).nextDouble};function m(az){var aF=az!==ae?new dl(az):dl.createRandomized();var aA,aC;var aD=new av(512);for(aA=0;aA<256;++aA){aD[aA]=aA}for(aA=0;aA<256;++aA){var ax=aD[aC=aF.nextInt()&255];aD[aC]=aD[aA];aD[aA]=ax}for(aA=0;aA<256;++aA){aD[aA+256]=aD[aA]}function aG(aK,aN,aH,aI){var aJ=aK&15;var aL=aJ<8?aN:aH,aM=aJ<4?aH:aJ===12||aJ===14?aN:aI;return((aJ&1)===0?aL:-aL)+((aJ&2)===0?aM:-aM)}function aB(aI,aK,aH){var aJ=(aI&1)===0?aK:aH;return(aI&2)===0?-aJ:aJ}function ay(aH,aI){return(aH&1)===0?-aI:aI}function aE(aH,aI,aJ){return aI+aH*(aJ-aI)}this.noise3d=function(aS,aT,aU){var aM=ah.floor(aS)&255,aO=ah.floor(aT)&255,aP=ah.floor(aU)&255;aS-=ah.floor(aS);aT-=ah.floor(aT);aU-=ah.floor(aU);var aI=(3-2*aS)*aS*aS,aJ=(3-2*aT)*aT*aT,aK=(3-2*aU)*aU*aU;var aQ=aD[aM]+aO,aV=aD[aQ]+aP,aH=aD[aQ+1]+aP,aR=aD[aM+1]+aO,aL=aD[aR]+aP,aN=aD[aR+1]+aP;return aE(aK,aE(aJ,aE(aI,aG(aD[aV],aS,aT,aU),aG(aD[aL],aS-1,aT,aU)),aE(aI,aG(aD[aH],aS,aT-1,aU),aG(aD[aN],aS-1,aT-1,aU))),aE(aJ,aE(aI,aG(aD[aV+1],aS,aT,aU-1),aG(aD[aL+1],aS-1,aT,aU-1)),aE(aI,aG(aD[aH+1],aS,aT-1,aU-1),aG(aD[aN+1],aS-1,aT-1,aU-1))))};this.noise2d=function(aO,aH){var aI=ah.floor(aO)&255,aK=ah.floor(aH)&255;aO-=ah.floor(aO);aH-=ah.floor(aH);var aM=(3-2*aO)*aO*aO,aN=(3-2*aH)*aH*aH;var aJ=aD[aI]+aK,aL=aD[aI+1]+aK;return aE(aN,aE(aM,aB(aD[aJ],aO,aH),aB(aD[aL],aO-1,aH)),aE(aM,aB(aD[aJ+1],aO,aH-1),aB(aD[aL+1],aO-1,aH-1)))};this.noise1d=function(aJ){var aH=ah.floor(aJ)&255;aJ-=ah.floor(aJ);var aI=(3-2*aJ)*aJ*aJ;return aE(aI,ay(aD[aH],aJ),ay(aD[aH+1],aJ-1))}}var fK={generator:ae,octaves:4,fallout:0.5,seed:ae};ev.noise=function(aA,az,aB){if(fK.generator===ae){fK.generator=new m(fK.seed)}var aC=fK.generator;var aD=1,ay=1,aE=0;for(var ax=0;ax<fK.octaves;++ax){aD*=fK.fallout;switch(arguments.length){case 1:aE+=aD*(1+aC.noise1d(ay*aA))/2;break;case 2:aE+=aD*(1+aC.noise2d(ay*aA,ay*az))/2;break;case 3:aE+=aD*(1+aC.noise3d(ay*aA,ay*az,ay*aB))/2;break}ay*=2}return aE};ev.noiseDetail=function(ax,ay){fK.octaves=ax;if(ay!==ae){fK.fallout=ay}};ev.noiseSeed=function(ax){fK.seed=ax;fK.generator=ae};t.prototype.size=function(ay,aB,aC){ev.stroke(0);ev.fill(255);var ax={fillStyle:eH.fillStyle,strokeStyle:eH.strokeStyle,lineCap:eH.lineCap,lineJoin:eH.lineJoin};if(gl.style.length>0){gl.style.removeProperty("width");gl.style.removeProperty("height")}gl.width=ev.width=ay||100;gl.height=ev.height=aB||100;for(var aA in ax){if(ax.hasOwnProperty(aA)){eH[aA]=ax[aA]}}ev.textFont(eN);ev.background();fA=ah.max(1000,ay*aB*0.05);ev.externals.context=eH;for(var az=0;az<W.SINCOS_LENGTH;az++){ge[az]=ev.sin(az*(W.PI/180)*0.5);fa[az]=ev.cos(az*(W.PI/180)*0.5)}};f2.prototype.size=function(az,ax,ay){if(eH===ae){eH=gl.getContext("2d");f4=new eQ();fD=new eQ();d6=new gD();gJ=new gD()}t.prototype.size.apply(this,arguments)};el.prototype.size=(function(){var ax=false;return function ay(aD,aB,aC){if(ax){throw"Multiple calls to size() for 3D renders are not allowed."}ax=true;function aA(aF){var aH=["experimental-webgl","webgl","webkit-3d"],aI;for(var aE=0,aG=aH.length;aE<aG;aE++){aI=aF.getContext(aH[aE]);if(aI){break}}return aI}try{if(gl.width!==aD||gl.height!==aB){gl.setAttribute("width",aD);gl.setAttribute("height",aB)}eH=aA(gl);fL=eH.createTexture();fZ=eH.createTexture()}catch(az){S.debug(az)}if(!eH){throw"WebGL context is not supported on this browser."}eH.viewport(0,0,gl.width,gl.height);eH.enable(eH.DEPTH_TEST);eH.enable(eH.BLEND);eH.blendFunc(eH.SRC_ALPHA,eH.ONE_MINUS_SRC_ALPHA);dn=gp(eH,gj,fB);fV=gp(eH,fR,fi);ev.strokeWeight(1);o=gp(eH,eC,gf);eH.useProgram(o);a7("usingTexture3d",o,"usingTexture",di);a7("usingTint3d",o,"usingTint",false);ev.lightFalloff(1,0,0);ev.shininess(1);ev.ambient(255,255,255);ev.specular(0,0,0);ev.emissive(0,0,0);fm=eH.createBuffer();eH.bindBuffer(eH.ARRAY_BUFFER,fm);eH.bufferData(eH.ARRAY_BUFFER,C,eH.STATIC_DRAW);fe=eH.createBuffer();eH.bindBuffer(eH.ARRAY_BUFFER,fe);eH.bufferData(eH.ARRAY_BUFFER,D,eH.STATIC_DRAW);z=eH.createBuffer();eH.bindBuffer(eH.ARRAY_BUFFER,z);eH.bufferData(eH.ARRAY_BUFFER,gm,eH.STATIC_DRAW);g1=eH.createBuffer();eH.bindBuffer(eH.ARRAY_BUFFER,g1);eH.bufferData(eH.ARRAY_BUFFER,f8,eH.STATIC_DRAW);gN=eH.createBuffer();eH.bindBuffer(eH.ARRAY_BUFFER,gN);eH.bufferData(eH.ARRAY_BUFFER,gb,eH.STATIC_DRAW);fo=eH.createBuffer();gB=eH.createBuffer();fN=eH.createBuffer();gX=eH.createBuffer();ej=eH.createBuffer();gi=eH.createBuffer();fC=eH.createBuffer();eH.bindBuffer(eH.ARRAY_BUFFER,fC);eH.bufferData(eH.ARRAY_BUFFER,new ar([0,0,0]),eH.STATIC_DRAW);fj=eH.createBuffer();eH.bindBuffer(eH.ARRAY_BUFFER,fj);eH.bufferData(eH.ARRAY_BUFFER,new ar([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),eH.STATIC_DRAW);gq=eH.createBuffer();eH.bindBuffer(eH.ARRAY_BUFFER,gq);eH.bufferData(eH.ARRAY_BUFFER,new ar([0,0,1,0,1,1,0,1]),eH.STATIC_DRAW);e4=eH.createBuffer();eH.bindBuffer(eH.ELEMENT_ARRAY_BUFFER,e4);eH.bufferData(eH.ELEMENT_ARRAY_BUFFER,new Z([0,1,2,2,3,0]),eH.STATIC_DRAW);fO=new gP();dZ=new gP();d6=new gP();gJ=new gP();H=new gP();ev.camera();ev.perspective();f4=new eQ();fD=new eQ();fW=new gP();gO=new gP();gS=new gP();ep=new gP();ee=new gP();eW=new gP();eW.set(-1,3,-3,1,3,-6,3,0,-3,3,0,0,1,0,0,0);t.prototype.size.apply(this,arguments)}}());f2.prototype.ambientLight=t.prototype.a3DOnlyFunction;el.prototype.ambientLight=function(aD,aE,ay,aA,az,aC){if(dx===W.MAX_LIGHTS){throw"can only create "+W.MAX_LIGHTS+" lights"}var aB=new X(aA,az,aC);var ax=new gP();ax.scale(1,-1,1);ax.apply(d6.array());ax.mult(aB,aB);eH.useProgram(o);a1("lights.color.3d."+dx,o,"lights"+dx+".color",[aD/255,aE/255,ay/255]);a1("lights.position.3d."+dx,o,"lights"+dx+".position",aB.array());a7("lights.type.3d."+dx,o,"lights"+dx+".type",0);a7("lightCount3d",o,"lightCount",++dx)};f2.prototype.directionalLight=t.prototype.a3DOnlyFunction;el.prototype.directionalLight=function(aD,aE,ay,aA,az,aB){if(dx===W.MAX_LIGHTS){throw"can only create "+W.MAX_LIGHTS+" lights"}eH.useProgram(o);var aC=new gP();aC.scale(1,-1,1);aC.apply(d6.array());aC=aC.array();var ax=[aC[0]*aA+aC[4]*az+aC[8]*aB,aC[1]*aA+aC[5]*az+aC[9]*aB,aC[2]*aA+aC[6]*az+aC[10]*aB];a1("lights.color.3d."+dx,o,"lights"+dx+".color",[aD/255,aE/255,ay/255]);a1("lights.position.3d."+dx,o,"lights"+dx+".position",ax);a7("lights.type.3d."+dx,o,"lights"+dx+".type",1);a7("lightCount3d",o,"lightCount",++dx)};f2.prototype.lightFalloff=t.prototype.a3DOnlyFunction;el.prototype.lightFalloff=function(ay,az,ax){eH.useProgram(o);a1("falloff3d",o,"falloff",[ay,az,ax])};f2.prototype.lightSpecular=t.prototype.a3DOnlyFunction;el.prototype.lightSpecular=function(ax,ay,az){eH.useProgram(o);a1("specular3d",o,"specular",[ax/255,ay/255,az/255])};ev.lights=function(){ev.ambientLight(128,128,128);ev.directionalLight(128,128,128,0,0,-1);ev.lightFalloff(1,0,0);ev.lightSpecular(0,0,0)};f2.prototype.pointLight=t.prototype.a3DOnlyFunction;el.prototype.pointLight=function(aD,aE,ay,aA,az,aC){if(dx===W.MAX_LIGHTS){throw"can only create "+W.MAX_LIGHTS+" lights"}var aB=new X(aA,az,aC);var ax=new gP();ax.scale(1,-1,1);ax.apply(d6.array());ax.mult(aB,aB);eH.useProgram(o);a1("lights.color.3d."+dx,o,"lights"+dx+".color",[aD/255,aE/255,ay/255]);a1("lights.position.3d."+dx,o,"lights"+dx+".position",aB.array());a7("lights.type.3d."+dx,o,"lights"+dx+".type",2);a7("lightCount3d",o,"lightCount",++dx)};f2.prototype.noLights=t.prototype.a3DOnlyFunction;el.prototype.noLights=function(){dx=0;eH.useProgram(o);a7("lightCount3d",o,"lightCount",dx)};f2.prototype.spotLight=t.prototype.a3DOnlyFunction;el.prototype.spotLight=function(aK,aE,az,ay,aA,aC,aD,aF,aH,aI,aG){if(dx===W.MAX_LIGHTS){throw"can only create "+W.MAX_LIGHTS+" lights"}eH.useProgram(o);var aB=new X(ay,aA,aC);var ax=new gP();ax.scale(1,-1,1);ax.apply(d6.array());ax.mult(aB,aB);ax=ax.array();var aJ=[ax[0]*aD+ax[4]*aF+ax[8]*aH,ax[1]*aD+ax[5]*aF+ax[9]*aH,ax[2]*aD+ax[6]*aF+ax[10]*aH];a1("lights.color.3d."+dx,o,"lights"+dx+".color",[aK/255,aE/255,az/255]);a1("lights.position.3d."+dx,o,"lights"+dx+".position",aB.array());a1("lights.direction.3d."+dx,o,"lights"+dx+".direction",aJ);a1("lights.concentration.3d."+dx,o,"lights"+dx+".concentration",aG);a1("lights.angle.3d."+dx,o,"lights"+dx+".angle",aI);a7("lights.type.3d."+dx,o,"lights"+dx+".type",3);a7("lightCount3d",o,"lightCount",++dx)};f2.prototype.beginCamera=function(){throw ("beginCamera() is not available in 2D mode")};el.prototype.beginCamera=function(){if(fX){throw ("You cannot call beginCamera() again before calling endCamera()")}fX=true;d6=dZ;gJ=fO};f2.prototype.endCamera=function(){throw ("endCamera() is not available in 2D mode")};el.prototype.endCamera=function(){if(!fX){throw ("You cannot call endCamera() before calling beginCamera()")}d6.set(fO);gJ.set(dZ);fX=false};ev.camera=function(ax,ay,az,aH,aJ,aL,aD,aE,aF){if(arguments.length===0){y=gl.width/2;A=gl.height/2;B=A/ah.tan(fb/2);ax=y;ay=A;az=B;aH=y;aJ=A;aL=0;aD=0;aE=1;aF=0}var aC=new X(ax-aH,ay-aJ,az-aL);var aB=new X(aD,aE,aF);var aG,aI,aK;aC.normalize();var aA=X.cross(aB,aC);aB=X.cross(aC,aA);aA.normalize();aB.normalize();fO.set(aA.x,aA.y,aA.z,0,aB.x,aB.y,aB.z,0,aC.x,aC.y,aC.z,0,0,0,0,1);fO.translate(-ax,-ay,-az);dZ.reset();dZ.invApply(aA.x,aA.y,aA.z,0,aB.x,aB.y,aB.z,0,aC.x,aC.y,aC.z,0,0,0,0,1);dZ.translate(ax,ay,az);d6.set(fO);gJ.set(dZ)};ev.perspective=function(aD,ax,aC,ay){if(arguments.length===0){A=gl.height/2;B=A/ah.tan(fb/2);gx=B/10;fG=B*10;gH=gl.width/gl.height;aD=fb;ax=gH;aC=gx;ay=fG}var aB,aA,az,aE;aB=aC*ah.tan(aD/2);aA=-aB;az=aB*ax;aE=aA*ax;ev.frustum(aE,az,aA,aB,aC,ay)};ev.frustum=function(aA,ax,ay,aB,aC,az){dz=true;H=new gP();H.set((2*aC)/(ax-aA),0,(ax+aA)/(ax-aA),0,0,(2*aC)/(aB-ay),(aB+ay)/(aB-ay),0,0,0,-(az+aC)/(az-aC),-(2*az*aC)/(az-aC),0,0,-1,0);var aD=new gP();aD.set(H);aD.transpose();eH.useProgram(dn);d("projection2d",dn,"projection",false,aD.array());eH.useProgram(o);d("projection3d",o,"projection",false,aD.array());eH.useProgram(fV);d("uProjectionUS",fV,"uProjection",false,aD.array())};ev.ortho=function(aI,ax,aJ,az,aC,aD){if(arguments.length===0){aI=0;ax=ev.width;aJ=0;az=ev.height;aC=-10;aD=10}var ay=2/(ax-aI);var aA=2/(az-aJ);var aB=-2/(aD-aC);var aE=-(ax+aI)/(ax-aI);var aF=-(az+aJ)/(az-aJ);var aG=-(aD+aC)/(aD-aC);H=new gP();H.set(ay,0,0,aE,0,aA,0,aF,0,0,aB,aG,0,0,0,1);var aH=new gP();aH.set(H);aH.transpose();eH.useProgram(dn);d("projection2d",dn,"projection",false,aH.array());eH.useProgram(o);d("projection3d",o,"projection",false,aH.array());eH.useProgram(fV);d("uProjectionUS",fV,"uProjection",false,aH.array());dz=false};ev.printProjection=function(){H.print()};ev.printCamera=function(){fO.print()};f2.prototype.box=t.prototype.a3DOnlyFunction;el.prototype.box=function(ax,aC,aA){if(!aC||!aA){aC=aA=ax}var aD=new gP();aD.scale(ax,aC,aA);var ay=new gP();ay.scale(1,-1,1);ay.apply(d6.array());ay.transpose();if(gW){eH.useProgram(o);d("model3d",o,"model",false,aD.array());d("view3d",o,"view",false,ay.array());eH.enable(eH.POLYGON_OFFSET_FILL);eH.polygonOffset(1,1);a1("color3d",o,"color",e1);if(dx>0){var aE=new gP();aE.set(ay);var az=new gP();az.set(aD);aE.mult(az);var aB=new gP();aB.set(aE);aB.invert();aB.transpose();d("normalTransform3d",o,"normalTransform",false,aB.array());G("normal3d",o,"Normal",3,fe)}else{d8("normal3d",o,"Normal")}G("vertex3d",o,"Vertex",3,fm);d8("aColor3d",o,"aColor");d8("aTexture3d",o,"aTexture");eH.drawArrays(eH.TRIANGLES,0,C.length/3);eH.disable(eH.POLYGON_OFFSET_FILL)}if(db>0&&ec){eH.useProgram(dn);d("model2d",dn,"model",false,aD.array());d("view2d",dn,"view",false,ay.array());a1("color2d",dn,"color",em);a7("picktype2d",dn,"picktype",0);G("vertex2d",dn,"Vertex",3,z);d8("aTextureCoord2d",dn,"aTextureCoord");eH.drawArrays(eH.LINES,0,gm.length/3)}};var fq=function(){var ay;fn=[];for(ay=0;ay<ga;ay++){fn.push(0);fn.push(-1);fn.push(0);fn.push(eL[ay]);fn.push(eP[ay]);fn.push(eT[ay])}fn.push(0);fn.push(-1);fn.push(0);fn.push(eL[0]);fn.push(eP[0]);fn.push(eT[0]);var aA,ax,aB;var aC=0;for(ay=2;ay<gc;ay++){aA=ax=aC;aC+=ga;aB=aC;for(var az=0;az<ga;az++){fn.push(eL[aA]);fn.push(eP[aA]);fn.push(eT[aA++]);fn.push(eL[aB]);fn.push(eP[aB]);fn.push(eT[aB++])}aA=ax;aB=aC;fn.push(eL[aA]);fn.push(eP[aA]);fn.push(eT[aA]);fn.push(eL[aB]);fn.push(eP[aB]);fn.push(eT[aB])}for(ay=0;ay<ga;ay++){aB=aC+ay;fn.push(eL[aB]);fn.push(eP[aB]);fn.push(eT[aB]);fn.push(0);fn.push(1);fn.push(0)}fn.push(eL[aC]);fn.push(eP[aC]);fn.push(eT[aC]);fn.push(0);fn.push(1);fn.push(0);eH.bindBuffer(eH.ARRAY_BUFFER,fo);eH.bufferData(eH.ARRAY_BUFFER,new ar(fn),eH.STATIC_DRAW)};ev.sphereDetail=function(aI,ax){var aC;if(arguments.length===1){aI=ax=arguments[0]}if(aI<3){aI=3}if(ax<2){ax=2}if((aI===ga)&&(ax===gc)){return}var ay=W.SINCOS_LENGTH/aI;var aE=new ar(aI);var aH=new ar(aI);for(aC=0;aC<aI;aC++){aE[aC]=fa[((aC*ay)%W.SINCOS_LENGTH)|0];aH[aC]=ge[((aC*ay)%W.SINCOS_LENGTH)|0]}var az=aI*(ax-1)+2;var aA=0;eL=new ar(az);eP=new ar(az);eT=new ar(az);var aB=(W.SINCOS_LENGTH*0.5)/ax;var aF=aB;for(aC=1;aC<ax;aC++){var aG=ge[(aF%W.SINCOS_LENGTH)|0];var aJ=-fa[(aF%W.SINCOS_LENGTH)|0];for(var aD=0;aD<aI;aD++){eL[aA]=aE[aD]*aG;eP[aA]=aJ;eT[aA++]=aH[aD]*aG}aF+=aB}ga=aI;gc=ax;fq()};f2.prototype.sphere=t.prototype.a3DOnlyFunction;el.prototype.sphere=function(){var aB=arguments[0];if((ga<3)||(gc<2)){ev.sphereDetail(30)}var aC=new gP();aC.scale(aB,aB,aB);var ay=new gP();ay.scale(1,-1,1);ay.apply(d6.array());ay.transpose();if(gW){if(dx>0){var ax=new gP();ax.set(ay);var az=new gP();az.set(aC);ax.mult(az);var aA=new gP();aA.set(ax);aA.invert();aA.transpose();d("normalTransform3d",o,"normalTransform",false,aA.array());G("normal3d",o,"Normal",3,fo)}else{d8("normal3d",o,"Normal")}eH.useProgram(o);d8("aTexture3d",o,"aTexture");d("model3d",o,"model",false,aC.array());d("view3d",o,"view",false,ay.array());G("vertex3d",o,"Vertex",3,fo);d8("aColor3d",o,"aColor");eH.enable(eH.POLYGON_OFFSET_FILL);eH.polygonOffset(1,1);a1("color3d",o,"color",e1);eH.drawArrays(eH.TRIANGLE_STRIP,0,fn.length/3);eH.disable(eH.POLYGON_OFFSET_FILL)}if(db>0&&ec){eH.useProgram(dn);d("model2d",dn,"model",false,aC.array());d("view2d",dn,"view",false,ay.array());G("vertex2d",dn,"Vertex",3,fo);d8("aTextureCoord2d",dn,"aTextureCoord");a1("color2d",dn,"color",em);a7("picktype2d",dn,"picktype",0);eH.drawArrays(eH.LINE_STRIP,0,fn.length/3)}};ev.modelX=function(aB,aC,aD){var az=d6.array();var ax=dZ.array();var aH=az[0]*aB+az[1]*aC+az[2]*aD+az[3];var ay=az[4]*aB+az[5]*aC+az[6]*aD+az[7];var aA=az[8]*aB+az[9]*aC+az[10]*aD+az[11];var aG=az[12]*aB+az[13]*aC+az[14]*aD+az[15];var aF=ax[0]*aH+ax[1]*ay+ax[2]*aA+ax[3]*aG;var aE=ax[12]*aH+ax[13]*ay+ax[14]*aA+ax[15]*aG;return(aE!==0)?aF/aE:aF};ev.modelY=function(aB,aC,aD){var az=d6.array();var ax=dZ.array();var aH=az[0]*aB+az[1]*aC+az[2]*aD+az[3];var ay=az[4]*aB+az[5]*aC+az[6]*aD+az[7];var aA=az[8]*aB+az[9]*aC+az[10]*aD+az[11];var aG=az[12]*aB+az[13]*aC+az[14]*aD+az[15];var aF=ax[4]*aH+ax[5]*ay+ax[6]*aA+ax[7]*aG;var aE=ax[12]*aH+ax[13]*ay+ax[14]*aA+ax[15]*aG;return(aE!==0)?aF/aE:aF};ev.modelZ=function(aB,aC,aD){var az=d6.array();var ax=dZ.array();var aH=az[0]*aB+az[1]*aC+az[2]*aD+az[3];var ay=az[4]*aB+az[5]*aC+az[6]*aD+az[7];var aA=az[8]*aB+az[9]*aC+az[10]*aD+az[11];var aF=az[12]*aB+az[13]*aC+az[14]*aD+az[15];var aG=ax[8]*aH+ax[9]*ay+ax[10]*aA+ax[11]*aF;var aE=ax[12]*aH+ax[13]*ay+ax[14]*aA+ax[15]*aF;return(aE!==0)?aG/aE:aG};f2.prototype.ambient=t.prototype.a3DOnlyFunction;el.prototype.ambient=function(){var ay=arguments;eH.useProgram(o);a7("usingMat3d",o,"usingMat",true);if(ay.length===1){if(typeof ay[0]==="string"){var ax=ay[0].slice(5,-1).split(",");a1("mat_ambient3d",o,"mat_ambient",[ax[0]/255,ax[1]/255,ax[2]/255])}else{a1("mat_ambient3d",o,"mat_ambient",[ay[0]/255,ay[0]/255,ay[0]/255])}}else{a1("mat_ambient3d",o,"mat_ambient",[ay[0]/255,ay[1]/255,ay[2]/255])}};f2.prototype.emissive=t.prototype.a3DOnlyFunction;el.prototype.emissive=function(){var ay=arguments;eH.useProgram(o);a7("usingMat3d",o,"usingMat",true);if(ay.length===1){if(typeof ay[0]==="string"){var ax=ay[0].slice(5,-1).split(",");a1("mat_emissive3d",o,"mat_emissive",[ax[0]/255,ax[1]/255,ax[2]/255])}else{a1("mat_emissive3d",o,"mat_emissive",[ay[0]/255,ay[0]/255,ay[0]/255])}}else{a1("mat_emissive3d",o,"mat_emissive",[ay[0]/255,ay[1]/255,ay[2]/255])}};f2.prototype.shininess=t.prototype.a3DOnlyFunction;el.prototype.shininess=function(ax){eH.useProgram(o);a7("usingMat3d",o,"usingMat",true);a1("shininess3d",o,"shininess",ax)};f2.prototype.specular=t.prototype.a3DOnlyFunction;el.prototype.specular=function(ay,az,aA){var ax=ev.color(ay,az,aA);eH.useProgram(o);a7("usingMat3d",o,"usingMat",true);a1("mat_specular3d",o,"mat_specular",ev.color.toGLArray(ax).slice(0,3))};ev.screenX=function(aA,aB,aC){var ay=d6.array();if(ay.length===16){var aH=ay[0]*aA+ay[1]*aB+ay[2]*aC+ay[3];var ax=ay[4]*aA+ay[5]*aB+ay[6]*aC+ay[7];var az=ay[8]*aA+ay[9]*aB+ay[10]*aC+ay[11];var aG=ay[12]*aA+ay[13]*aB+ay[14]*aC+ay[15];var aD=H.array();var aF=aD[0]*aH+aD[1]*ax+aD[2]*az+aD[3]*aG;var aE=aD[12]*aH+aD[13]*ax+aD[14]*az+aD[15]*aG;if(aE!==0){aF/=aE}return ev.width*(1+aF)/2}return d6.multX(aA,aB)};ev.screenY=function ft(aA,aB,aC){var ay=d6.array();if(ay.length===16){var aH=ay[0]*aA+ay[1]*aB+ay[2]*aC+ay[3];var ax=ay[4]*aA+ay[5]*aB+ay[6]*aC+ay[7];var az=ay[8]*aA+ay[9]*aB+ay[10]*aC+ay[11];var aG=ay[12]*aA+ay[13]*aB+ay[14]*aC+ay[15];var aD=H.array();var aF=aD[4]*aH+aD[5]*ax+aD[6]*az+aD[7]*aG;var aE=aD[12]*aH+aD[13]*ax+aD[14]*az+aD[15]*aG;if(aE!==0){aF/=aE}return ev.height*(1+aF)/2}return d6.multY(aA,aB)};ev.screenZ=function fx(aA,aB,aC){var ay=d6.array();if(ay.length!==16){return 0}var aD=H.array();var aH=ay[0]*aA+ay[1]*aB+ay[2]*aC+ay[3];var ax=ay[4]*aA+ay[5]*aB+ay[6]*aC+ay[7];var az=ay[8]*aA+ay[9]*aB+ay[10]*aC+ay[11];var aF=ay[12]*aA+ay[13]*aB+ay[14]*aC+ay[15];var aG=aD[8]*aH+aD[9]*ax+aD[10]*az+aD[11]*aF;var aE=aD[12]*aH+aD[13]*ax+aD[14]*az+aD[15]*aF;if(aE!==0){aG/=aE}return(aG+1)/2};t.prototype.fill=function(){var ax=ev.color(arguments[0],arguments[1],arguments[2],arguments[3]);if(ax===gu&&gW){return}gW=true;gu=ax};f2.prototype.fill=function(){t.prototype.fill.apply(this,arguments);fU=true};el.prototype.fill=function(){t.prototype.fill.apply(this,arguments);e1=ev.color.toGLArray(gu)};function e3(){if(gW){if(fU){eH.fillStyle=ev.color.toString(gu);fU=false}eH.fill()}}ev.noFill=function(){gW=false};t.prototype.stroke=function(){var ax=ev.color(arguments[0],arguments[1],arguments[2],arguments[3]);if(ax===a8&&ec){return}ec=true;a8=ax};f2.prototype.stroke=function(){t.prototype.stroke.apply(this,arguments);gL=true};el.prototype.stroke=function(){t.prototype.stroke.apply(this,arguments);em=ev.color.toGLArray(a8)};function F(){if(ec){if(gL){eH.strokeStyle=ev.color.toString(a8);gL=false}eH.stroke()}}ev.noStroke=function(){ec=false};t.prototype.strokeWeight=function(ax){db=ax};f2.prototype.strokeWeight=function(ax){t.prototype.strokeWeight.apply(this,arguments);eH.lineWidth=ax};el.prototype.strokeWeight=function(ax){t.prototype.strokeWeight.apply(this,arguments);eH.useProgram(dn);a1("pointSize2d",dn,"pointSize",ax);eH.useProgram(fV);a1("pointSizeUnlitShape",fV,"pointSize",ax);eH.lineWidth(ax)};ev.strokeCap=function(ax){cy.$ensureContext().lineCap=ax};ev.strokeJoin=function(ax){cy.$ensureContext().lineJoin=ax};f2.prototype.smooth=function(){dt=true;var ax=gl.style;ax.setProperty("image-rendering","optimizeQuality","important");ax.setProperty("-ms-interpolation-mode","bicubic","important");if(eH.hasOwnProperty("mozImageSmoothingEnabled")){eH.mozImageSmoothingEnabled=true}};el.prototype.smooth=R;f2.prototype.noSmooth=function(){dt=false;var ax=gl.style;ax.setProperty("image-rendering","optimizeSpeed","important");ax.setProperty("image-rendering","-moz-crisp-edges","important");ax.setProperty("image-rendering","-webkit-optimize-contrast","important");ax.setProperty("image-rendering","optimize-contrast","important");ax.setProperty("-ms-interpolation-mode","nearest-neighbor","important");if(eH.hasOwnProperty("mozImageSmoothingEnabled")){eH.mozImageSmoothingEnabled=false}};el.prototype.noSmooth=R;f2.prototype.point=function(ay,ax){if(!ec){return}ay=ah.round(ay);ax=ah.round(ax);eH.fillStyle=ev.color.toString(a8);fU=true;if(db>1){eH.beginPath();eH.arc(ay,ax,db/2,0,W.TWO_PI,false);eH.fill()}else{eH.fillRect(ay,ax,1,1)}};el.prototype.point=function(az,aA,aB){var ax=new gP();ax.translate(az,aA,aB||0);ax.transpose();var ay=new gP();ay.scale(1,-1,1);ay.apply(d6.array());ay.transpose();eH.useProgram(dn);d("model2d",dn,"model",false,ax.array());d("view2d",dn,"view",false,ay.array());if(db>0&&ec){a1("color2d",dn,"color",em);a7("picktype2d",dn,"picktype",0);G("vertex2d",dn,"Vertex",3,fC);d8("aTextureCoord2d",dn,"aTextureCoord");eH.drawArrays(eH.POINTS,0,1)}};ev.beginShape=function(ax){dm=ax;eO=[];b=[]};f2.prototype.vertex=function(az,aA,aB,ax){var ay=[];if(r){r=false}ay.isVert=true;ay[0]=az;ay[1]=aA;ay[2]=0;ay[3]=aB;ay[4]=ax;ay[5]=gu;ay[6]=a8;b.push(ay)};el.prototype.vertex=function(az,aA,aB,aC,ax){var ay=[];if(r){r=false}ay.isVert=true;if(ax===ae&&di){ax=aC;aC=aB;aB=0}ay[0]=az;ay[1]=aA;ay[2]=aB||0;ay[3]=aC||0;ay[4]=ax||0;ay[5]=e1[0];ay[6]=e1[1];ay[7]=e1[2];ay[8]=e1[3];ay[9]=em[0];ay[10]=em[1];ay[11]=em[2];ay[12]=em[3];ay[13]=e;ay[14]=f;ay[15]=g;b.push(ay)};var a2=function(ax,ay){var az=new gP();az.scale(1,-1,1);az.apply(d6.array());az.transpose();eH.useProgram(fV);d("uViewUS",fV,"uView",false,az.array());G("aVertexUS",fV,"aVertex",3,fC);eH.bufferData(eH.ARRAY_BUFFER,new ar(ax),eH.STREAM_DRAW);G("aColorUS",fV,"aColor",4,gX);eH.bufferData(eH.ARRAY_BUFFER,new ar(ay),eH.STREAM_DRAW);eH.drawArrays(eH.POINTS,0,ax.length/3)};var ff=function(aA,aB,ax){var ay;if(aB==="LINES"){ay=eH.LINES}else{if(aB==="LINE_LOOP"){ay=eH.LINE_LOOP}else{ay=eH.LINE_STRIP}}var az=new gP();az.scale(1,-1,1);az.apply(d6.array());az.transpose();eH.useProgram(fV);d("uViewUS",fV,"uView",false,az.array());G("aVertexUS",fV,"aVertex",3,gB);eH.bufferData(eH.ARRAY_BUFFER,new ar(aA),eH.STREAM_DRAW);G("aColorUS",fV,"aColor",4,ej);eH.bufferData(eH.ARRAY_BUFFER,new ar(ax),eH.STREAM_DRAW);eH.drawArrays(ay,0,aA.length/3)};var x=function(aA,aB,aC,ax){var ay;if(aB==="TRIANGLES"){ay=eH.TRIANGLES}else{if(aB==="TRIANGLE_FAN"){ay=eH.TRIANGLE_FAN}else{ay=eH.TRIANGLE_STRIP}}var az=new gP();az.scale(1,-1,1);az.apply(d6.array());az.transpose();eH.useProgram(o);d("model3d",o,"model",false,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);d("view3d",o,"view",false,az.array());eH.enable(eH.POLYGON_OFFSET_FILL);eH.polygonOffset(1,1);a1("color3d",o,"color",[-1,0,0,0]);G("vertex3d",o,"Vertex",3,fN);eH.bufferData(eH.ARRAY_BUFFER,new ar(aA),eH.STREAM_DRAW);if(di&&fr!==null){ey(aC);a7("usingTint3d",o,"usingTint",true)}G("aColor3d",o,"aColor",4,gX);eH.bufferData(eH.ARRAY_BUFFER,new ar(aC),eH.STREAM_DRAW);d8("normal3d",o,"Normal");var aD;if(di){if(eS===W.IMAGE){for(aD=0;aD<ax.length;aD+=2){ax[aD]=ax[aD]/dc.width;ax[aD+1]/=dc.height}}for(aD=0;aD<ax.length;aD+=2){if(ax[aD+0]>1){ax[aD+0]-=(ax[aD+0]-1)}if(ax[aD+1]>1){ax[aD+1]-=(ax[aD+1]-1)}}a7("usingTexture3d",o,"usingTexture",di);G("aTexture3d",o,"aTexture",2,gi);eH.bufferData(eH.ARRAY_BUFFER,new ar(ax),eH.STREAM_DRAW)}eH.drawArrays(ay,0,aA.length/3);eH.disable(eH.POLYGON_OFFSET_FILL)};function eJ(){e3();F();eH.closePath()}f2.prototype.endShape=function(aD){if(b.length===0){return}var aH=aD===W.CLOSE;if(aH){b.push(b[0])}var aI=[];var aK=[];var aB=[];var ay=[];var aF=[];var aC;r=true;var aE,aG,aJ;var az=b.length;for(aE=0;aE<az;aE++){aC=b[aE];for(aG=0;aG<3;aG++){aK.push(aC[aG])}}for(aE=0;aE<az;aE++){aC=b[aE];for(aG=5;aG<9;aG++){aB.push(aC[aG])}}for(aE=0;aE<az;aE++){aC=b[aE];for(aG=9;aG<13;aG++){ay.push(aC[aG])}}for(aE=0;aE<az;aE++){aC=b[aE];aF.push(aC[3]);aF.push(aC[4])}if(dr&&(dm===W.POLYGON||dm===ae)){if(az>3){var aA=[],ax=1-gU;eH.beginPath();eH.moveTo(b[1][0],b[1][1]);for(aE=1;(aE+2)<az;aE++){aC=b[aE];aA[0]=[aC[0],aC[1]];aA[1]=[aC[0]+(ax*b[aE+1][0]-ax*b[aE-1][0])/6,aC[1]+(ax*b[aE+1][1]-ax*b[aE-1][1])/6];aA[2]=[b[aE+1][0]+(ax*b[aE][0]-ax*b[aE+2][0])/6,b[aE+1][1]+(ax*b[aE][1]-ax*b[aE+2][1])/6];aA[3]=[b[aE+1][0],b[aE+1][1]];eH.bezierCurveTo(aA[1][0],aA[1][1],aA[2][0],aA[2][1],aA[3][0],aA[3][1])}eJ()}}else{if(ex&&(dm===W.POLYGON||dm===ae)){eH.beginPath();for(aE=0;aE<az;aE++){aC=b[aE];if(b[aE]["isVert"]){if(b[aE]["moveTo"]){eH.moveTo(aC[0],aC[1])}else{eH.lineTo(aC[0],aC[1])}}else{eH.bezierCurveTo(b[aE][0],b[aE][1],b[aE][2],b[aE][3],b[aE][4],b[aE][5])}}eJ()}else{if(dm===W.POINTS){for(aE=0;aE<az;aE++){aC=b[aE];if(ec){ev.stroke(aC[6])}ev.point(aC[0],aC[1])}}else{if(dm===W.LINES){for(aE=0;(aE+1)<az;aE+=2){aC=b[aE];if(ec){ev.stroke(b[aE+1][6])}ev.line(aC[0],aC[1],b[aE+1][0],b[aE+1][1])}}else{if(dm===W.TRIANGLES){for(aE=0;(aE+2)<az;aE+=3){aC=b[aE];eH.beginPath();eH.moveTo(aC[0],aC[1]);eH.lineTo(b[aE+1][0],b[aE+1][1]);eH.lineTo(b[aE+2][0],b[aE+2][1]);eH.lineTo(aC[0],aC[1]);if(gW){ev.fill(b[aE+2][5]);e3()}if(ec){ev.stroke(b[aE+2][6]);F()}eH.closePath()}}else{if(dm===W.TRIANGLE_STRIP){for(aE=0;(aE+1)<az;aE++){aC=b[aE];eH.beginPath();eH.moveTo(b[aE+1][0],b[aE+1][1]);eH.lineTo(aC[0],aC[1]);if(ec){ev.stroke(b[aE+1][6])}if(gW){ev.fill(b[aE+1][5])}if(aE+2<az){eH.lineTo(b[aE+2][0],b[aE+2][1]);if(ec){ev.stroke(b[aE+2][6])}if(gW){ev.fill(b[aE+2][5])}}eJ()}}else{if(dm===W.TRIANGLE_FAN){if(az>2){eH.beginPath();eH.moveTo(b[0][0],b[0][1]);eH.lineTo(b[1][0],b[1][1]);eH.lineTo(b[2][0],b[2][1]);if(gW){ev.fill(b[2][5]);e3()}if(ec){ev.stroke(b[2][6]);F()}eH.closePath();for(aE=3;aE<az;aE++){aC=b[aE];eH.beginPath();eH.moveTo(b[0][0],b[0][1]);eH.lineTo(b[aE-1][0],b[aE-1][1]);eH.lineTo(aC[0],aC[1]);if(gW){ev.fill(aC[5]);e3()}if(ec){ev.stroke(aC[6]);F()}eH.closePath()}}}else{if(dm===W.QUADS){for(aE=0;(aE+3)<az;aE+=4){aC=b[aE];eH.beginPath();eH.moveTo(aC[0],aC[1]);for(aG=1;aG<4;aG++){eH.lineTo(b[aE+aG][0],b[aE+aG][1])}eH.lineTo(aC[0],aC[1]);if(gW){ev.fill(b[aE+3][5]);e3()}if(ec){ev.stroke(b[aE+3][6]);F()}eH.closePath()}}else{if(dm===W.QUAD_STRIP){if(az>3){for(aE=0;(aE+1)<az;aE+=2){aC=b[aE];eH.beginPath();if(aE+3<az){eH.moveTo(b[aE+2][0],b[aE+2][1]);eH.lineTo(aC[0],aC[1]);eH.lineTo(b[aE+1][0],b[aE+1][1]);eH.lineTo(b[aE+3][0],b[aE+3][1]);if(gW){ev.fill(b[aE+3][5])}if(ec){ev.stroke(b[aE+3][6])}}else{eH.moveTo(aC[0],aC[1]);eH.lineTo(b[aE+1][0],b[aE+1][1])}eJ()}}}else{eH.beginPath();eH.moveTo(b[0][0],b[0][1]);for(aE=1;aE<az;aE++){aC=b[aE];if(aC.isVert){if(aC.moveTo){eH.moveTo(aC[0],aC[1])}else{eH.lineTo(aC[0],aC[1])}}}eJ()}}}}}}}}}dr=false;ex=false;gv=[];f0=0;if(aH){b.pop()}};el.prototype.endShape=function(aC){if(b.length===0){return}var aG=aC===W.CLOSE;var aH=[];var aJ=[];var aA=[];var ax=[];var aE=[];var aB;r=true;var aD,aF,aI;var ay=b.length;for(aD=0;aD<ay;aD++){aB=b[aD];for(aF=0;aF<3;aF++){aJ.push(aB[aF])}}for(aD=0;aD<ay;aD++){aB=b[aD];for(aF=5;aF<9;aF++){aA.push(aB[aF])}}for(aD=0;aD<ay;aD++){aB=b[aD];for(aF=9;aF<13;aF++){ax.push(aB[aF])}}for(aD=0;aD<ay;aD++){aB=b[aD];aE.push(aB[3]);aE.push(aB[4])}if(aG){aJ.push(b[0][0]);aJ.push(b[0][1]);aJ.push(b[0][2]);for(aD=5;aD<9;aD++){aA.push(b[0][aD])}for(aD=9;aD<13;aD++){ax.push(b[0][aD])}aE.push(b[0][3]);aE.push(b[0][4])}if(dr&&(dm===W.POLYGON||dm===ae)){aH=aJ;if(ec){ff(aH,null,ax)}if(gW){x(aJ,null,aA)}}else{if(ex&&(dm===W.POLYGON||dm===ae)){aH=aJ;aH.splice(aH.length-3);ax.splice(ax.length-4);if(ec){ff(aH,null,ax)}if(gW){x(aJ,"TRIANGLES",aA)}}else{if(dm===W.POINTS){for(aD=0;aD<ay;aD++){aB=b[aD];for(aF=0;aF<3;aF++){aH.push(aB[aF])}}a2(aH,ax)}else{if(dm===W.LINES){for(aD=0;aD<ay;aD++){aB=b[aD];for(aF=0;aF<3;aF++){aH.push(aB[aF])}}for(aD=0;aD<ay;aD++){aB=b[aD];for(aF=5;aF<9;aF++){aA.push(aB[aF])}}ff(aH,"LINES",ax)}else{if(dm===W.TRIANGLES){if(ay>2){for(aD=0;(aD+2)<ay;aD+=3){aJ=[];aE=[];aH=[];aA=[];ax=[];for(aF=0;aF<3;aF++){for(aI=0;aI<3;aI++){aH.push(b[aD+aF][aI]);aJ.push(b[aD+aF][aI])}}for(aF=0;aF<3;aF++){for(aI=3;aI<5;aI++){aE.push(b[aD+aF][aI])}}for(aF=0;aF<3;aF++){for(aI=5;aI<9;aI++){aA.push(b[aD+aF][aI]);ax.push(b[aD+aF][aI+4])}}if(ec){ff(aH,"LINE_LOOP",ax)}if(gW||di){x(aJ,"TRIANGLES",aA,aE)}}}}else{if(dm===W.TRIANGLE_STRIP){if(ay>2){for(aD=0;(aD+2)<ay;aD++){aH=[];aJ=[];ax=[];aA=[];aE=[];for(aF=0;aF<3;aF++){for(aI=0;aI<3;aI++){aH.push(b[aD+aF][aI]);aJ.push(b[aD+aF][aI])}}for(aF=0;aF<3;aF++){for(aI=3;aI<5;aI++){aE.push(b[aD+aF][aI])}}for(aF=0;aF<3;aF++){for(aI=5;aI<9;aI++){ax.push(b[aD+aF][aI+4]);aA.push(b[aD+aF][aI])}}if(gW||di){x(aJ,"TRIANGLE_STRIP",aA,aE)}if(ec){ff(aH,"LINE_LOOP",ax)}}}}else{if(dm===W.TRIANGLE_FAN){if(ay>2){for(aD=0;aD<3;aD++){aB=b[aD];for(aF=0;aF<3;aF++){aH.push(aB[aF])}}for(aD=0;aD<3;aD++){aB=b[aD];for(aF=9;aF<13;aF++){ax.push(aB[aF])}}if(ec){ff(aH,"LINE_LOOP",ax)}for(aD=2;(aD+1)<ay;aD++){aH=[];ax=[];aH.push(b[0][0]);aH.push(b[0][1]);aH.push(b[0][2]);ax.push(b[0][9]);ax.push(b[0][10]);ax.push(b[0][11]);ax.push(b[0][12]);for(aF=0;aF<2;aF++){for(aI=0;aI<3;aI++){aH.push(b[aD+aF][aI])}}for(aF=0;aF<2;aF++){for(aI=9;aI<13;aI++){ax.push(b[aD+aF][aI])}}if(ec){ff(aH,"LINE_STRIP",ax)}}if(gW||di){x(aJ,"TRIANGLE_FAN",aA,aE)}}}else{if(dm===W.QUADS){for(aD=0;(aD+3)<ay;aD+=4){aH=[];for(aF=0;aF<4;aF++){aB=b[aD+aF];for(aI=0;aI<3;aI++){aH.push(aB[aI])}}if(ec){ff(aH,"LINE_LOOP",ax)}if(gW){aJ=[];aA=[];aE=[];for(aF=0;aF<3;aF++){aJ.push(b[aD][aF])}for(aF=5;aF<9;aF++){aA.push(b[aD][aF])}for(aF=0;aF<3;aF++){aJ.push(b[aD+1][aF])}for(aF=5;aF<9;aF++){aA.push(b[aD+1][aF])}for(aF=0;aF<3;aF++){aJ.push(b[aD+3][aF])}for(aF=5;aF<9;aF++){aA.push(b[aD+3][aF])}for(aF=0;aF<3;aF++){aJ.push(b[aD+2][aF])}for(aF=5;aF<9;aF++){aA.push(b[aD+2][aF])}if(di){aE.push(b[aD+0][3]);aE.push(b[aD+0][4]);aE.push(b[aD+1][3]);aE.push(b[aD+1][4]);aE.push(b[aD+3][3]);aE.push(b[aD+3][4]);aE.push(b[aD+2][3]);aE.push(b[aD+2][4])}x(aJ,"TRIANGLE_STRIP",aA,aE)}}}else{if(dm===W.QUAD_STRIP){var az=[];if(ay>3){for(aD=0;aD<2;aD++){aB=b[aD];for(aF=0;aF<3;aF++){aH.push(aB[aF])}}for(aD=0;aD<2;aD++){aB=b[aD];for(aF=9;aF<13;aF++){ax.push(aB[aF])}}ff(aH,"LINE_STRIP",ax);if(ay>4&&ay%2>0){az=aJ.splice(aJ.length-3);b.pop()}for(aD=0;(aD+3)<ay;aD+=2){aH=[];ax=[];for(aF=0;aF<3;aF++){aH.push(b[aD+1][aF])}for(aF=0;aF<3;aF++){aH.push(b[aD+3][aF])}for(aF=0;aF<3;aF++){aH.push(b[aD+2][aF])}for(aF=0;aF<3;aF++){aH.push(b[aD+0][aF])}for(aF=9;aF<13;aF++){ax.push(b[aD+1][aF])}for(aF=9;aF<13;aF++){ax.push(b[aD+3][aF])}for(aF=9;aF<13;aF++){ax.push(b[aD+2][aF])}for(aF=9;aF<13;aF++){ax.push(b[aD+0][aF])}if(ec){ff(aH,"LINE_STRIP",ax)}}if(gW||di){x(aJ,"TRIANGLE_LIST",aA,aE)}}}else{if(ay===1){for(aF=0;aF<3;aF++){aH.push(b[0][aF])}for(aF=9;aF<13;aF++){ax.push(b[0][aF])}a2(aH,ax)}else{for(aD=0;aD<ay;aD++){aB=b[aD];for(aF=0;aF<3;aF++){aH.push(aB[aF])}for(aF=5;aF<9;aF++){ax.push(aB[aF])}}if(ec&&aG){ff(aH,"LINE_LOOP",ax)}else{if(ec&&!aG){ff(aH,"LINE_STRIP",ax)}}if(gW||di){x(aJ,"TRIANGLE_FAN",aA,aE)}}}}}}}}}di=false;eH.useProgram(o);a7("usingTexture3d",o,"usingTexture",di)}}dr=false;ex=false;gv=[];f0=0};var gA=function(aB,ax){var aA=1/aB;var ay=aA*aA;var az=ay*aA;ax.set(0,0,0,1,az,ay,aA,0,6*az,2*ay,0,0,6*az,0,0,0)};var u=function(){if(!gS){fW=new gP();gS=new gP();e5=true}var ax=gU;fW.set((ax-1)/2,(ax+3)/2,(-3-ax)/2,(1-ax)/2,(1-ax),(-5-ax)/2,(ax+2),(ax-1)/2,(ax-1)/2,0,(1-ax)/2,0,0,1,0,0);gA(e7,gS);if(!ee){gO=new gP()}gO.set(fW);gO.preApply(ee);gS.apply(fW)};f2.prototype.bezierVertex=function(){ex=true;var ay=[];if(r){throw ("vertex() must be used at least once before calling bezierVertex()")}for(var ax=0;ax<arguments.length;ax++){ay[ax]=arguments[ax]}b.push(ay);b[b.length-1]["isVert"]=false};el.prototype.bezierVertex=function(){ex=true;var aF=[];if(r){throw ("vertex() must be used at least once before calling bezierVertex()")}if(arguments.length===9){if(ep===ae){ep=new gP()}var aA=b.length-1;gA(a3,ep);ep.apply(eW);var ay=ep.array();var aJ=b[aA][0],az=b[aA][1],aG=b[aA][2];var aD=ay[4]*aJ+ay[5]*arguments[0]+ay[6]*arguments[3]+ay[7]*arguments[6];var aE=ay[8]*aJ+ay[9]*arguments[0]+ay[10]*arguments[3]+ay[11]*arguments[6];var aH=ay[12]*aJ+ay[13]*arguments[0]+ay[14]*arguments[3]+ay[15]*arguments[6];var ax=ay[4]*az+ay[5]*arguments[1]+ay[6]*arguments[4]+ay[7]*arguments[7];var aB=ay[8]*az+ay[9]*arguments[1]+ay[10]*arguments[4]+ay[11]*arguments[7];var aC=ay[12]*az+ay[13]*arguments[1]+ay[14]*arguments[4]+ay[15]*arguments[7];var aK=ay[4]*aG+ay[5]*arguments[2]+ay[6]*arguments[5]+ay[7]*arguments[8];var aL=ay[8]*aG+ay[9]*arguments[2]+ay[10]*arguments[5]+ay[11]*arguments[8];var aM=ay[12]*aG+ay[13]*arguments[2]+ay[14]*arguments[5]+ay[15]*arguments[8];for(var aI=0;aI<a3;aI++){aJ+=aD;aD+=aE;aE+=aH;az+=ax;ax+=aB;aB+=aC;aG+=aK;aK+=aL;aL+=aM;ev.vertex(aJ,az,aG)}ev.vertex(arguments[6],arguments[7],arguments[8])}};var d7=function(){var ay=at.createElement("canvas");try{eH.texImage2D(eH.TEXTURE_2D,0,eH.RGBA,eH.RGBA,eH.UNSIGNED_BYTE,ay);d7=function(az){eH.texImage2D(eH.TEXTURE_2D,0,eH.RGBA,eH.RGBA,eH.UNSIGNED_BYTE,az)}}catch(ax){d7=function(az){eH.texImage2D(eH.TEXTURE_2D,0,az,false)}}d7.apply(this,arguments)};ev.texture=function(aC){var ay=cy.$ensureContext();if(aC.localName==="canvas"){ay.bindTexture(ay.TEXTURE_2D,fL);d7(aC);ay.texParameteri(ay.TEXTURE_2D,ay.TEXTURE_MAG_FILTER,ay.LINEAR);ay.texParameteri(ay.TEXTURE_2D,ay.TEXTURE_MIN_FILTER,ay.LINEAR);ay.generateMipmap(ay.TEXTURE_2D)}else{if(!aC.__texture){var ax=ay.createTexture();aC.__texture=ax;var aA=at.createElement("canvas");var aB;if(aC.width&(aC.width-1)===0){aA.width=aC.width}else{aB=1;while(aB<aC.width){aB*=2}aA.width=aB}if(aC.height&(aC.height-1)===0){aA.height=aC.height}else{aB=1;while(aB<aC.height){aB*=2}aA.height=aB}aC.resize(aA.width,aA.height);var az=aA.getContext("2d");az.putImageData(aC.imageData,0,0);aC.__cvs=aA;ay.bindTexture(ay.TEXTURE_2D,aC.__texture);ay.texParameteri(ay.TEXTURE_2D,ay.TEXTURE_MIN_FILTER,ay.LINEAR_MIPMAP_LINEAR);ay.texParameteri(ay.TEXTURE_2D,ay.TEXTURE_MAG_FILTER,ay.LINEAR);ay.texParameteri(ay.TEXTURE_2D,ay.TEXTURE_WRAP_T,ay.CLAMP_TO_EDGE);ay.texParameteri(ay.TEXTURE_2D,ay.TEXTURE_WRAP_S,ay.CLAMP_TO_EDGE);d7(aC.__cvs);ay.generateMipmap(ay.TEXTURE_2D)}else{ay.bindTexture(ay.TEXTURE_2D,aC.__texture)}}dc.width=aC.width;dc.height=aC.height;di=true;ay.useProgram(o);a7("usingTexture3d",o,"usingTexture",di)};ev.textureMode=function(ax){eS=ax};var fQ=function(aU,aJ,aD,aW,aK,aE,ay,aL,aF,aA,aM,aH){var aT=aW;var aI=aK;var aC=aE;var aG=gS.array();var aV=aG[4]*aU+aG[5]*aW+aG[6]*ay+aG[7]*aA;var ax=aG[8]*aU+aG[9]*aW+aG[10]*ay+aG[11]*aA;var az=aG[12]*aU+aG[13]*aW+aG[14]*ay+aG[15]*aA;var aP=aG[4]*aJ+aG[5]*aK+aG[6]*aL+aG[7]*aM;var aR=aG[8]*aJ+aG[9]*aK+aG[10]*aL+aG[11]*aM;var aS=aG[12]*aJ+aG[13]*aK+aG[14]*aL+aG[15]*aM;var aN=aG[4]*aD+aG[5]*aE+aG[6]*aF+aG[7]*aH;var aO=aG[8]*aD+aG[9]*aE+aG[10]*aF+aG[11]*aH;var aQ=aG[12]*aD+aG[13]*aE+aG[14]*aF+aG[15]*aH;ev.vertex(aT,aI,aC);for(var aB=0;aB<e7;aB++){aT+=aV;aV+=ax;ax+=az;aI+=aP;aP+=aR;aR+=aS;aC+=aN;aN+=aO;aO+=aQ;ev.vertex(aT,aI,aC)}};f2.prototype.curveVertex=function(ay,ax){dr=true;ev.vertex(ay,ax)};el.prototype.curveVertex=function(az,aA,ax){dr=true;if(!e5){u()}var ay=[];ay[0]=az;ay[1]=aA;ay[2]=ax;gv.push(ay);f0++;if(f0>3){fQ(gv[f0-4][0],gv[f0-4][1],gv[f0-4][2],gv[f0-3][0],gv[f0-3][1],gv[f0-3][2],gv[f0-2][0],gv[f0-2][1],gv[f0-2][2],gv[f0-1][0],gv[f0-1][1],gv[f0-1][2])}};f2.prototype.curve=function(){if(arguments.length===8){ev.beginShape();ev.curveVertex(arguments[0],arguments[1]);ev.curveVertex(arguments[2],arguments[3]);ev.curveVertex(arguments[4],arguments[5]);ev.curveVertex(arguments[6],arguments[7]);ev.endShape()}};el.prototype.curve=function(){if(arguments.length===12){ev.beginShape();ev.curveVertex(arguments[0],arguments[1],arguments[2]);ev.curveVertex(arguments[3],arguments[4],arguments[5]);ev.curveVertex(arguments[6],arguments[7],arguments[8]);ev.curveVertex(arguments[9],arguments[10],arguments[11]);ev.endShape()}};ev.curveTightness=function(ax){gU=ax};ev.curveDetail=function(ax){e7=ax;u()};ev.rectMode=function(ax){gd=ax};ev.imageMode=function(ax){switch(ax){case W.CORNER:fd=gz;break;case W.CORNERS:fd=fu;break;case W.CENTER:fd=gQ;break;default:throw"Invalid imageMode"}};ev.ellipseMode=function(ax){e2=ax};ev.arc=function(aA,aC,aJ,ay,aK,aB){if(aJ<=0||aB<aK){return}if(e2===W.CORNERS){aJ=aJ-aA;ay=ay-aC}else{if(e2===W.RADIUS){aA=aA-aJ;aC=aC-ay;aJ=aJ*2;ay=ay*2}else{if(e2===W.CENTER){aA=aA-aJ/2;aC=aC-ay/2}}}while(aK<0){aK+=W.TWO_PI;aB+=W.TWO_PI}if(aB-aK>W.TWO_PI){aK=0;aB=W.TWO_PI}var az=aJ/2;var ax=ay/2;var aF=aA+az;var aH=aC+ax;var aL=0|(-0.5+(aK/W.TWO_PI)*W.SINCOS_LENGTH);var aD=0|(0.5+(aB/W.TWO_PI)*W.SINCOS_LENGTH);var aE,aG;if(gW){var aI=ec;ec=false;ev.beginShape();ev.vertex(aF,aH);for(aE=aL,aG=aL;aE<aD;aE++,aG++){if(aG>=W.SINCOS_LENGTH){aG=aG-W.SINCOS_LENGTH}ev.vertex(aF+fa[aG]*az,aH+ge[aG]*ax)}ev.endShape(W.CLOSE);ec=aI}if(ec){var aM=gW;gW=false;ev.beginShape();for(aE=aL,aG=aL;aE<aD;aE++,aG++){if(aG>=W.SINCOS_LENGTH){aG=aG-W.SINCOS_LENGTH}ev.vertex(aF+fa[aG]*az,aH+ge[aG]*ax)}aG=aD%W.SINCOS_LENGTH;ev.vertex(aF+fa[aG]*az,aH+ge[aG]*ax);ev.endShape();gW=aM}};f2.prototype.line=function(aF,ay,aG,aA){if(!ec){return}aF=ah.round(aF);aG=ah.round(aG);ay=ah.round(ay);aA=ah.round(aA);if(aF===aG&&ay===aA){ev.point(aF,ay);return}var aE=ae,ax=ae,aB=true,az=d6.array(),aD=[1,0,0,0,1,0];for(var aC=0;aC<6&&aB;aC++){aB=az[aC]===aD[aC]}if(aB){if(aF===aG){if(ay>aA){aE=ay;ay=aA;aA=aE}aA++;if(db%2===1){eH.translate(0.5,0)}}else{if(ay===aA){if(aF>aG){aE=aF;aF=aG;aG=aE}aG++;if(db%2===1){eH.translate(0,0.5)}}}if(db===1){ax=eH.lineCap;eH.lineCap="butt"}}eH.beginPath();eH.moveTo(aF||0,ay||0);eH.lineTo(aG||0,aA||0);F();if(aB){if(aF===aG&&db%2===1){eH.translate(-0.5,0)}else{if(ay===aA&&db%2===1){eH.translate(0,-0.5)}}if(db===1){eH.lineCap=ax}}};el.prototype.line=function(ax,aC,aA,ay,aE,aB){if(aE===ae||aB===ae){aB=0;aE=ay;ay=aA;aA=0}if(ax===ay&&aC===aE&&aA===aB){ev.point(ax,aC,aA);return}var aD=[ax,aC,aA,ay,aE,aB];var az=new gP();az.scale(1,-1,1);az.apply(d6.array());az.transpose();if(db>0&&ec){eH.useProgram(dn);d("model2d",dn,"model",false,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);d("view2d",dn,"view",false,az.array());a1("color2d",dn,"color",em);a7("picktype2d",dn,"picktype",0);G("vertex2d",dn,"Vertex",3,gB);d8("aTextureCoord2d",dn,"aTextureCoord");eH.bufferData(eH.ARRAY_BUFFER,new ar(aD),eH.STREAM_DRAW);eH.drawArrays(eH.LINES,0,2)}};f2.prototype.bezier=function(){if(arguments.length!==8){throw ("You must use 8 parameters for bezier() in 2D mode")}ev.beginShape();ev.vertex(arguments[0],arguments[1]);ev.bezierVertex(arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7]);ev.endShape()};el.prototype.bezier=function(){if(arguments.length!==12){throw ("You must use 12 parameters for bezier() in 3D mode")}ev.beginShape();ev.vertex(arguments[0],arguments[1],arguments[2]);ev.bezierVertex(arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8],arguments[9],arguments[10],arguments[11]);ev.endShape()};ev.bezierDetail=function(ax){a3=ax};ev.bezierPoint=function(ay,az,aA,aB,ax){return(1-ax)*(1-ax)*(1-ax)*ay+3*(1-ax)*(1-ax)*ax*az+3*(1-ax)*ax*ax*aA+ax*ax*ax*aB};ev.bezierTangent=function(ay,az,aA,aB,ax){return(3*ax*ax*(-ay+3*az-3*aA+aB)+6*ax*(ay-2*az+aA)+3*(-ay+az))};ev.curvePoint=function(ay,az,aA,aB,ax){return 0.5*((2*az)+(-ay+aA)*ax+(2*ay-5*az+4*aA-aB)*ax*ax+(-ay+3*az-3*aA+aB)*ax*ax*ax)};ev.curveTangent=function(ay,az,aA,aB,ax){return 0.5*((-ay+aA)+2*(2*ay-5*az+4*aA-aB)*ax+3*(-ay+3*az-3*aA+aB)*ax*ax)};ev.triangle=function(aC,aA,ay,aB,az,ax){ev.beginShape(W.TRIANGLES);ev.vertex(aC,aA,0);ev.vertex(ay,aB,0);ev.vertex(az,ax,0);ev.endShape()};ev.quad=function(aC,aA,aE,aB,ay,aD,az,ax){ev.beginShape(W.QUADS);ev.vertex(aC,aA,0);ev.vertex(aE,aB,0);ev.vertex(ay,aD,0);ev.vertex(az,ax,0);ev.endShape()};var f7=function(aA,aB,aG,az,ax,aC,ay,aF){if(aF===ae){aC=ax;ay=ax;aF=ax}var aE=aG/2,aD=az/2;if(ax>aE||ax>aD){ax=ah.min(aE,aD)}if(aC>aE||aC>aD){aC=ah.min(aE,aD)}if(ay>aE||ay>aD){ay=ah.min(aE,aD)}if(aF>aE||aF>aD){aF=ah.min(aE,aD)}if(!gW||ec){eH.translate(0.5,0.5)}eH.beginPath();eH.moveTo(aA+ax,aB);eH.lineTo(aA+aG-aC,aB);eH.quadraticCurveTo(aA+aG,aB,aA+aG,aB+aC);eH.lineTo(aA+aG,aB+az-ay);eH.quadraticCurveTo(aA+aG,aB+az,aA+aG-ay,aB+az);eH.lineTo(aA+aF,aB+az);eH.quadraticCurveTo(aA,aB+az,aA,aB+az-aF);eH.lineTo(aA,aB+ax);eH.quadraticCurveTo(aA,aB,aA+ax,aB);if(!gW||ec){eH.translate(-0.5,-0.5)}e3();F()};f2.prototype.rect=function(ay,aA,aD,az,ax,aC,aE,aB){if(!aD&&!az){return}if(gd===W.CORNERS){aD-=ay;az-=aA}if(gd===W.RADIUS){aD*=2;az*=2}if(gd===W.CENTER||gd===W.RADIUS){ay-=aD/2;aA-=az/2}ay=ah.round(ay);aA=ah.round(aA);aD=ah.round(aD);az=ah.round(az);if(ax!==ae){f7(ay,aA,aD,az,ax,aC,aE,aB);return}if(ec&&db%2===1){eH.translate(0.5,0.5)}eH.beginPath();eH.rect(ay,aA,aD,az);e3();F();if(ec&&db%2===1){eH.translate(-0.5,-0.5)}};el.prototype.rect=function(aB,aC,aJ,az,ax,aE,ay,aI){if(ax!==ae){throw"rect() with rounded corners is not supported in 3D mode"}var aF=new gP();aF.translate(aB,aC,0);aF.scale(aJ,az,1);aF.transpose();var aD=new gP();aD.scale(1,-1,1);aD.apply(d6.array());aD.transpose();if(db>0&&ec){eH.useProgram(dn);d("model2d",dn,"model",false,aF.array());d("view2d",dn,"view",false,aD.array());a1("color2d",dn,"color",em);a7("picktype2d",dn,"picktype",0);G("vertex2d",dn,"Vertex",3,g1);d8("aTextureCoord2d",dn,"aTextureCoord");eH.drawArrays(eH.LINE_LOOP,0,f8.length/3)}if(gW){eH.useProgram(o);d("model3d",o,"model",false,aF.array());d("view3d",o,"view",false,aD.array());eH.enable(eH.POLYGON_OFFSET_FILL);eH.polygonOffset(1,1);a1("color3d",o,"color",e1);if(dx>0){var aA=new gP();aA.set(aD);var aH=new gP();aH.set(aF);aA.mult(aH);var aG=new gP();aG.set(aA);aG.invert();aG.transpose();d("normalTransform3d",o,"normalTransform",false,aG.array());G("normal3d",o,"Normal",3,gN)}else{d8("normal3d",o,"Normal")}G("vertex3d",o,"Vertex",3,g1);eH.drawArrays(eH.TRIANGLE_FAN,0,f8.length/3);eH.disable(eH.POLYGON_OFFSET_FILL)}};t.prototype.ellipse=function(ay,aA,ax,az){ay=ay||0;aA=aA||0;if(ax<=0&&az<=0){return}if(e2===W.RADIUS){ax*=2;az*=2}if(e2===W.CORNERS){ax=ax-ay;az=az-aA}if(e2===W.CORNER||e2===W.CORNERS){ay+=ax/2;aA+=az/2}return{x:ay,y:aA,width:ax,height:az}};f2.prototype.ellipse=function(az,aA,aG,ax){var aD=t.prototype.ellipse.apply(this,arguments),aB=0;if(!aD){return}az=aD.x;aA=aD.y;aG=aD.width;ax=aD.height;if(aG===ax){eH.beginPath();eH.arc(az-aB,aA-aB,aG/2,0,W.TWO_PI,false);e3();F();eH.closePath()}else{var ay=aG/2,aC=ax/2,aH=0.5522847498307933;var aE=aH*ay,aF=aH*aC;ev.beginShape();ev.vertex(az+ay,aA);ev.bezierVertex(az+ay,aA-aF,az+aE,aA-aC,az,aA-aC);ev.bezierVertex(az-aE,aA-aC,az-ay,aA-aF,az-ay,aA);ev.bezierVertex(az-ay,aA+aF,az-aE,aA+aC,az,aA+aC);ev.bezierVertex(az+aE,aA+aC,az+ay,aA+aF,az+ay,aA);ev.endShape()}};el.prototype.ellipse=function(aL,aM,aE,aF){var ay=t.prototype.ellipse.apply(this,arguments),aN=0;if(!ay){return}aL=ay.x;aM=ay.y;aE=ay.width;aF=ay.height;var aK=aE/2,aB=aF/2,aG=0.5522847498307933;var aH=aG*aK,aJ=aG*aB;ev.beginShape();ev.vertex(aL+aK,aM);ev.bezierVertex(aL+aK,aM-aJ,0,aL+aH,aM-aB,0,aL,aM-aB,0);ev.bezierVertex(aL-aH,aM-aB,0,aL-aK,aM-aJ,0,aL-aK,aM,0);ev.bezierVertex(aL-aK,aM+aJ,0,aL-aH,aM+aB,0,aL,aM+aB,0);ev.bezierVertex(aL+aH,aM+aB,0,aL+aK,aM+aJ,0,aL+aK,aM,0);ev.endShape();if(gW){var ax=0,aI=0,aC,aD;for(aC=0;aC<b.length;aC++){ax+=b[aC][0];aI+=b[aC][1]}ax/=b.length;aI/=b.length;var aA=[],az=[],aO=[];aA[0]=ax;aA[1]=aI;aA[2]=0;aA[3]=0;aA[4]=0;aA[5]=e1[0];aA[6]=e1[1];aA[7]=e1[2];aA[8]=e1[3];aA[9]=em[0];aA[10]=em[1];aA[11]=em[2];aA[12]=em[3];aA[13]=e;aA[14]=f;aA[15]=g;b.unshift(aA);for(aC=0;aC<b.length;aC++){for(aD=0;aD<3;aD++){az.push(b[aC][aD])}for(aD=5;aD<9;aD++){aO.push(b[aC][aD])}}x(az,"TRIANGLE_FAN",aO)}};ev.normal=function(az,ax,ay){if(arguments.length!==3||!(typeof az==="number"&&typeof ax==="number"&&typeof ay==="number")){throw"normal() requires three numeric arguments."}e=az;f=ax;g=ay;if(dm!==0){if(gt===W.NORMAL_MODE_AUTO){gt=W.NORMAL_MODE_SHAPE}else{if(gt===W.NORMAL_MODE_SHAPE){gt=W.NORMAL_MODE_VERTEX}}}};ev.save=function(ax,ay){if(ay!==ae){return U.open(ay.toDataURL(),"_blank")}return U.open(ev.externals.canvas.toDataURL(),"_blank")};var a6=0;ev.saveFrame=function(ay){if(ay===ae){ay="screen-####.png"}var ax=ay.replace(/#+/,function(aA){var az=""+(a6++);while(az.length<aA.length){az="0"+az}return az});ev.save(ax)};var ef=at.createElement("canvas").getContext("2d");var eI=[ae,ae,ae];function er(aA,ay,aB){var aE=eI.shift();if(aE===ae){aE={};aE.canvas=at.createElement("canvas");aE.context=aE.canvas.getContext("2d")}eI.push(aE);var ax=aE.canvas,aD=aE.context,aC=ay||aA.width,az=aB||aA.height;ax.width=aC;ax.height=az;if(!aA){aD.clearRect(0,0,aC,az)}else{if("data" in aA){aD.putImageData(aA,0,0)}else{aD.clearRect(0,0,aC,az);aD.drawImage(aA,0,0,aC,az)}}return aE}function fw(ax){return{getLength:(function(ay){return function(){if(ay.isRemote){throw"Image is loaded remotely. Cannot get length."}else{return ay.imageData.data.length?ay.imageData.data.length/4:0}}}(ax)),getPixel:(function(ay){return function(az){var aA=az*4,aB=ay.imageData.data;if(ay.isRemote){throw"Image is loaded remotely. Cannot get pixels."}return(aB[aA+3]<<24)&W.ALPHA_MASK|(aB[aA]<<16)&W.RED_MASK|(aB[aA+1]<<8)&W.GREEN_MASK|aB[aA+2]&W.BLUE_MASK}}(ax)),setPixel:(function(ay){return function(az,aA){var aB=az*4,aC=ay.imageData.data;if(ay.isRemote){throw"Image is loaded remotely. Cannot set pixel."}aC[aB+0]=(aA&W.RED_MASK)>>>16;aC[aB+1]=(aA&W.GREEN_MASK)>>>8;aC[aB+2]=(aA&W.BLUE_MASK);aC[aB+3]=(aA&W.ALPHA_MASK)>>>24;ay.__isDirty=true}}(ax)),toArray:(function(ay){return function(){var az=[],aB=ay.imageData.data,aC=ay.width*ay.height;if(ay.isRemote){throw"Image is loaded remotely. Cannot get pixels."}for(var aD=0,aA=0;aD<aC;aD++,aA+=4){az.push((aB[aA+3]<<24)&W.ALPHA_MASK|(aB[aA]<<16)&W.RED_MASK|(aB[aA+1]<<8)&W.GREEN_MASK|aB[aA+2]&W.BLUE_MASK)}return az}}(ax)),set:(function(ay){return function(az){var aB,aC,aA;if(this.isRemote){throw"Image is loaded remotely. Cannot set pixels."}aC=ay.imageData.data;for(var aE=0,aD=az.length;aE<aD;aE++){aA=az[aE];aB=aE*4;aC[aB+0]=(aA&W.RED_MASK)>>>16;aC[aB+1]=(aA&W.GREEN_MASK)>>>8;aC[aB+2]=(aA&W.BLUE_MASK);aC[aB+3]=(aA&W.ALPHA_MASK)>>>24}ay.__isDirty=true}}(ax))}}var fl=function(aE,aB,aD){this.__isDirty=false;if(aE instanceof HTMLImageElement){this.fromHTMLImageData(aE)}else{if(aB||aD){this.width=aE||1;this.height=aB||1;var ay=this.sourceImg=at.createElement("canvas");ay.width=this.width;ay.height=this.height;var aA=this.imageData=ay.getContext("2d").createImageData(this.width,this.height);this.format=(aD===W.ARGB||aD===W.ALPHA)?aD:W.RGB;if(this.format===W.RGB){for(var ax=3,aC=this.imageData.data,az=aC.length;ax<az;ax+=4){aC[ax]=255}}this.__isDirty=true;this.updatePixels()}else{this.width=0;this.height=0;this.imageData=ef.createImageData(1,1);this.format=W.ARGB}}this.pixels=fw(this)};fl.prototype={updatePixels:function(){var ax=this.sourceImg;if(ax&&ax instanceof HTMLCanvasElement&&this.__isDirty){ax.getContext("2d").putImageData(this.imageData,0,0)}this.__isDirty=false},fromHTMLImageData:function(az){var ay=er(az);try{var aA=ay.context.getImageData(0,0,az.width,az.height);this.fromImageData(aA)}catch(ax){if(az.width&&az.height){this.isRemote=true;this.width=az.width;this.height=az.height}}this.sourceImg=az},get:function(az,aA,ay,ax){if(!arguments.length){return ev.get(this)}if(arguments.length===2){return ev.get(az,aA,this)}if(arguments.length===4){return ev.get(az,aA,ay,ax,this)}},set:function(az,ax,ay){ev.set(az,ax,ay,this);this.__isDirty=true},blend:function(ay,aC,aD,aF,aA,ax,az,aB,aG,aE){if(arguments.length===9){ev.blend(this,ay,aC,aD,aF,aA,ax,az,aB,aG,this)}else{if(arguments.length===10){ev.blend(ay,aC,aD,aF,aA,ax,az,aB,aG,aE,this)}}delete this.sourceImg},copy:function(ay,aB,aC,aD,aE,ax,az,aA,aF){if(arguments.length===8){ev.blend(this,ay,aB,aC,aD,aE,ax,az,aA,W.REPLACE,this)}else{if(arguments.length===9){ev.blend(ay,aB,aC,aD,aE,ax,az,aA,aF,W.REPLACE,this)}}delete this.sourceImg},filter:function(ax,ay){if(arguments.length===2){ev.filter(ax,ay,this)}else{if(arguments.length===1){ev.filter(ax,null,this)}}delete this.sourceImg},save:function(ax){ev.save(ax,this)},resize:function(az,ax){if(this.isRemote){throw"Image is loaded remotely. Cannot resize."}if(this.width!==0||this.height!==0){if(az===0&&ax!==0){az=ah.floor(this.width/this.height*ax)}else{if(ax===0&&az!==0){ax=ah.floor(this.height/this.width*az)}}var ay=er(this.imageData).canvas;var aA=er(ay,az,ax).context.getImageData(0,0,az,ax);this.fromImageData(aA)}},mask:function(ax){this.__mask=ae;if(ax instanceof fl){if(ax.width===this.width&&ax.height===this.height){this.__mask=ax}else{throw"mask must have the same dimensions as PImage."}}else{if(ax instanceof Array){if(this.pixels.length===ax.length){this.__mask=ax}else{throw"mask array must be the same length as PImage pixels array."}}}},loadPixels:R,toImageData:function(){if(this.isRemote){return this.sourceImg}var ax=er(this.imageData);return ax.context.getImageData(0,0,this.width,this.height)},toDataURL:function(){if(this.isRemote){throw"Image is loaded remotely. Cannot create dataURI."}var ax=er(this.imageData);return ax.canvas.toDataURL()},fromImageData:function(aA){var ay=aA.width,aB=aA.height,ax=at.createElement("canvas"),az=ax.getContext("2d");this.width=ax.width=ay;this.height=ax.height=aB;az.putImageData(aA,0,0);this.format=W.ARGB;this.imageData=aA;this.sourceImg=ax}};ev.PImage=fl;ev.createImage=function(az,ay,ax){return new fl(az,ay,ax)};ev.loadImage=function(ay,ax,aA){if(ax){ay=ay+"."+ax}var aB;if(eR.imageCache.images[ay]){aB=new fl(eR.imageCache.images[ay]);aB.loaded=true;return aB}aB=new fl();var az=at.createElement("img");aB.sourceImg=az;az.onload=(function(aD,aF,aG){var aC=aD;var aE=aF;var aH=aG;return function(){aE.fromHTMLImageData(aC);aE.loaded=true;if(aH){aH()}}}(az,aB,aA));az.src=ay;return aB};ev.requestImage=ev.loadImage;function fy(){var ax=new fl(ev.width,ev.height,W.RGB);ax.fromImageData(eH.getImageData(0,0,ev.width,ev.height));return ax}function fE(az,aA){var ay;if(az<ev.width&&az>=0&&aA>=0&&aA<ev.height){if(de){var ax=((0|az)+ev.width*(0|aA))*4;ay=ev.imageData.data;return ev.color.toInt(ay[ax],ay[ax+1],ay[ax+2],ay[ax+3])}ay=eH.getImageData(0|az,0|aA,1,1).data;return ev.color.toInt(ay[0],ay[1],ay[2],ay[3])}return 0}function fH(az,aA,ay){if(ay.isRemote){throw"Image is loaded remotely. Cannot get x,y."}var ax=aA*ay.width*4+(az*4);return ev.color.toInt(ay.imageData.data[ax],ay.imageData.data[ax+1],ay.imageData.data[ax+2],ay.imageData.data[ax+3])}function fM(az,aA,ay,ax){var aB=new fl(ay,ax,W.RGB);aB.fromImageData(eH.getImageData(az,aA,ay,ax));return aB}function fP(aJ,aK,aI,aD,ax){if(ax.isRemote){throw"Image is loaded remotely. Cannot get x,y,w,h."}var az=new fl(aI,aD,W.RGB),aM=az.imageData.data,aL=ax.width,aC=ax.height,aA=ax.imageData.data;var aO=ah.max(0,-aK),aN=ah.max(0,-aJ),aH=ah.min(aD,aC-aK),aG=ah.min(aI,aL-aJ);for(var aE=aO;aE<aH;++aE){var aB=((aK+aE)*aL+(aJ+aN))*4;var ay=(aE*aI+aN)*4;for(var aF=aN;aF<aG;++aF){aM[ay++]=aA[aB++];aM[ay++]=aA[aB++];aM[ay++]=aA[aB++];aM[ay++]=aA[aB++]}}az.__isDirty=true;return az}ev.get=function(az,aA,ay,aB,ax){if(arguments.length===2){return fE(az,aA)}if(arguments.length===0){return fy()}if(arguments.length===5){return fP(az,aA,ay,aB,ax)}if(arguments.length===4){return fM(az,aA,ay,aB)}if(arguments.length===3){return fH(az,aA,ay)}if(arguments.length===1){return az}};ev.createGraphics=function(az,ax,ay){var aA=new S();aA.size(az,ax,ay);return aA};function eY(){if(de){eH=f9;de=false;ev.updatePixels()}}function df(){function ay(aA,aC){function aB(){eY();eH[aC].apply(eH,arguments)}aA[aC]=aB}function az(aA,aC){function aD(){eY();return eH[aC]}function aB(aE){eY();eH[aC]=aE}ev.defineProperty(aA,aC,{get:aD,set:aB})}for(var ax in eH){if(typeof eH[ax]==="function"){ay(this,ax)}else{az(this,ax)}}}function fs(){if(de){return}ev.loadPixels();if(dp===null){f9=eH;dp=new df()}de=true;eH=dp;J=0}function et(az,ax,ay){if(az<ev.width&&az>=0&&ax>=0&&ax<ev.height){fs();ev.pixels.setPixel((0|az)+ev.width*(0|ax),ay);if(++J>fA){eY()}}}function eB(az,aA,aD,ay){if(ay.isRemote){throw"Image is loaded remotely. Cannot set x,y."}var aB=ev.color.toArray(aD);var aC=aA*ay.width*4+(az*4);var ax=ay.imageData.data;ax[aC]=aB[0];ax[aC+1]=aB[1];ax[aC+2]=aB[2];ax[aC+3]=aB[3]}ev.set=function(az,aA,aC,ax){var ay,aB;if(arguments.length===3){if(typeof aC==="number"){et(az,aA,aC)}else{if(aC instanceof fl){ev.image(aC,az,aA)}}}else{if(arguments.length===4){eB(az,aA,aC,ax)}}};ev.imageData={};ev.pixels={getLength:function(){return ev.imageData.data.length?ev.imageData.data.length/4:0},getPixel:function(az){var ax=az*4,ay=ev.imageData.data;return(ay[ax+3]<<24)&4278190080|(ay[ax+0]<<16)&16711680|(ay[ax+1]<<8)&65280|ay[ax+2]&255},setPixel:function(az,aA){var ax=az*4,ay=ev.imageData.data;ay[ax+0]=(aA&16711680)>>>16;ay[ax+1]=(aA&65280)>>>8;ay[ax+2]=(aA&255);ay[ax+3]=(aA&4278190080)>>>24},toArray:function(){var az=[],ax=ev.imageData.width*ev.imageData.height,aB=ev.imageData.data;for(var ay=0,aA=0;ay<ax;ay++,aA+=4){az.push((aB[aA+3]<<24)&4278190080|(aB[aA+0]<<16)&16711680|(aB[aA+1]<<8)&65280|aB[aA+2]&255)}return az},set:function(az){for(var ay=0,ax=az.length;ay<ax;ay++){this.setPixel(ay,az[ay])}}};ev.loadPixels=function(){ev.imageData=cy.$ensureContext().getImageData(0,0,ev.width,ev.height)};ev.updatePixels=function(){if(ev.imageData){cy.$ensureContext().putImageData(ev.imageData,0,0)}};ev.hint=function(ax){var ay=cy.$ensureContext();if(ax===W.DISABLE_DEPTH_TEST){ay.disable(ay.DEPTH_TEST);ay.depthMask(false);ay.clear(ay.DEPTH_BUFFER_BIT)}else{if(ax===W.ENABLE_DEPTH_TEST){ay.enable(ay.DEPTH_TEST);ay.depthMask(true)}}};var gr=function(aB,ax,ay,az){var aA;if(aB instanceof fl){aA=aB;if(!aA.loaded){throw"Error using image in background(): PImage not loaded."}if(aA.width!==ev.width||aA.height!==ev.height){throw"Background image must be the same dimensions as the canvas."}}else{aA=ev.color(aB,ax,ay,az)}i=aA};f2.prototype.background=function(aA,ax,ay,az){if(aA!==ae){gr(aA,ax,ay,az)}if(i instanceof fl){gZ();eH.setTransform(1,0,0,1,0,0);ev.image(i,0,0);eV()}else{gZ();eH.setTransform(1,0,0,1,0,0);if(ev.alpha(i)!==fT){eH.clearRect(0,0,ev.width,ev.height)}eH.fillStyle=ev.color.toString(i);eH.fillRect(0,0,ev.width,ev.height);fU=true;eV()}};el.prototype.background=function(aB,ax,ay,az){if(arguments.length>0){gr(aB,ax,ay,az)}var aA=ev.color.toGLArray(i);eH.clearColor(aA[0],aA[1],aA[2],aA[3]);eH.clear(eH.COLOR_BUFFER_BIT|eH.DEPTH_BUFFER_BIT)};f2.prototype.image=function(aG,aA,aC,az,aE){aA=ah.round(aA);aC=ah.round(aC);if(aG.width>0){var ax=az||aG.width;var aB=aE||aG.height;var aK=fd(aA||0,aC||0,az||aG.width,aE||aG.height,arguments.length<4);var aD=!!aG.sourceImg&&fr===null&&!aG.__mask;if(aD){var aJ=aG.sourceImg;if(aG.__isDirty){aG.updatePixels()}eH.drawImage(aJ,0,0,aJ.width,aJ.height,aK.x,aK.y,aK.w,aK.h)}else{var aH=aG.toImageData();if(aG.__mask){var aI,ay;if(aG.__mask instanceof fl){var aF=aG.__mask.toImageData();for(aI=2,ay=aG.width*aG.height*4;aI<ay;aI+=4){aH.data[aI+1]=aF.data[aI]}}else{for(aI=0,ay=aG.__mask.length;aI<ay;++aI){aH.data[(aI<<2)+3]=aG.__mask[aI]}}}if(fr!==null){fr(aH)}eH.drawImage(er(aH).canvas,0,0,aG.width,aG.height,aK.x,aK.y,aK.w,aK.h)}}};el.prototype.image=function(ax,az,aA,ay,aB){if(ax.width>0){az=ah.round(az);aA=ah.round(aA);ay=ay||ax.width;aB=aB||ax.height;ev.beginShape(ev.QUADS);ev.texture(ax);ev.vertex(az,aA,0,0,0);ev.vertex(az,aA+aB,0,0,aB);ev.vertex(az+ay,aA+aB,0,ay,aB);ev.vertex(az+ay,aA,0,ay,0);ev.endShape()}};ev.tint=function(aE,ay,aA){var aB=ev.color(aE,ay,aA);var aC=ev.red(aB)/gh;var aD=ev.green(aB)/gk;var az=ev.blue(aB)/gn;var ax=ev.alpha(aB)/fT;fr=function(aH){var aI=aH.data,aF=4*aH.width*aH.height;for(var aG=0;aG<aF;){aI[aG++]*=aC;aI[aG++]*=aD;aI[aG++]*=az;aI[aG++]*=ax}};ey=function(aF){for(var aG=0;aG<aF.length;){aF[aG++]=aC;aF[aG++]=aD;aF[aG++]=az;aF[aG++]=ax}}};ev.noTint=function(){fr=null;ey=null};ev.copy=function(aF,aA,aB,az,aD,ax,ay,aE,aC){if(arguments.length===8){aC=aE;aE=ay;ay=ax;ax=aD;aD=az;az=aB;aB=aA;aA=aF;aF=ev}ev.blend(aF,aA,aB,az,aD,ax,ay,aE,aC,W.REPLACE)};ev.blend=function(aM,aC,aD,az,aH,ax,ay,aL,aF,aG,aJ){if(arguments.length===9){aG=aF;aF=aL;aL=ay;ay=ax;ax=aH;aH=az;az=aD;aD=aC;aC=aM;aM=ev}var aK=aC+az;var aE=aD+aH;var aA=ax+aL;var aI=ay+aF;var aB;if(aM.isRemote){throw"Image is loaded remotely. Cannot blend image."}if(arguments.length===10||arguments.length===9){ev.loadPixels();aB=ev}else{if(arguments.length===11&&aJ&&aJ.imageData){aB=aJ}}if(aM===ev){if(ev.intersect(aC,aD,aK,aE,ax,ay,aA,aI)){ev.blit_resize(ev.get(aC,aD,aK-aC,aE-aD),0,0,aK-aC-1,aE-aD-1,aB.imageData.data,aB.width,aB.height,ax,ay,aA,aI,aG)}else{ev.blit_resize(aM,aC,aD,aK,aE,aB.imageData.data,aB.width,aB.height,ax,ay,aA,aI,aG)}}else{aM.loadPixels();ev.blit_resize(aM,aC,aD,aK,aE,aB.imageData.data,aB.width,aB.height,ax,ay,aA,aI,aG)}if(arguments.length===10){ev.updatePixels()}};var eX=function(aD){var aA=ev.floor(aD*3.5),ax,ay;aA=(aA<1)?1:((aA<248)?aA:248);if(ev.shared.blurRadius!==aA){ev.shared.blurRadius=aA;ev.shared.blurKernelSize=1+(ev.shared.blurRadius<<1);ev.shared.blurKernel=new ar(ev.shared.blurKernelSize);var aB=ev.shared.blurKernel;var aC=ev.shared.blurKernelSize;var aE=ev.shared.blurRadius;for(ax=0;ax<aC;ax++){aB[ax]=0}var az=(aA-1)*(aA-1);for(ax=1;ax<aA;ax++){aB[aA+ax]=aB[ay]=az}aB[aA]=aA*aA}};var gC=function(aB,a9){var aQ,aK,aE,az,ay,aR,ax;var aY,aC,aT,aV,aA;var aH=a9.pixels.getLength();var aZ=new ar(aH);var aM=new ar(aH);var aI=new ar(aH);var aN=new ar(aH);var aP=0;var aF,aG,aW,aL;eX(aB);var aS=a9.height;var aU=a9.width;var aX=ev.shared.blurKernelSize;var aD=ev.shared.blurRadius;var aJ=ev.shared.blurKernel;var aO=a9.imageData.data;for(aG=0;aG<aS;aG++){for(aF=0;aF<aU;aF++){az=aE=aK=ay=aQ=0;aY=aF-aD;if(aY<0){aA=-aY;aY=0}else{if(aY>=aU){break}aA=0}for(aW=aA;aW<aX;aW++){if(aY>=aU){break}aL=(aY+aP)*4;ax=aJ[aW];ay+=ax*aO[aL+3];aK+=ax*aO[aL];aE+=ax*aO[aL+1];az+=ax*aO[aL+2];aQ+=ax;aY++}aC=aP+aF;aN[aC]=ay/aQ;aZ[aC]=aK/aQ;aM[aC]=aE/aQ;aI[aC]=az/aQ}aP+=aU}aP=0;aT=-aD;aV=aT*aU;for(aG=0;aG<aS;aG++){for(aF=0;aF<aU;aF++){az=aE=aK=ay=aQ=0;if(aT<0){aA=aC=-aT;aY=aF}else{if(aT>=aS){break}aA=0;aC=aT;aY=aF+aV}for(aW=aA;aW<aX;aW++){if(aC>=aS){break}ax=aJ[aW];ay+=ax*aN[aY];aK+=ax*aZ[aY];aE+=ax*aM[aY];az+=ax*aI[aY];aQ+=ax;aC++;aY+=aU}aL=(aF+aP)*4;aO[aL]=aK/aQ;aO[aL+1]=aE/aQ;aO[aL+2]=az/aQ;aO[aL+3]=ay/aQ}aP+=aU;aV+=aU;aT++}};var d9=function(ay,aE){var aI=0;var aQ=aE.pixels.getLength();var aD=new N(aQ);var aA,aO,aF,aG,aM;var az,aL,aJ,aH,aN,aC,aR,aP,ax,aK,aS,aB;if(!ay){while(aI<aQ){aA=aI;aO=aI+aE.width;while(aI<aO){aF=aG=aE.pixels.getPixel(aI);aL=aI-1;az=aI+1;aJ=aI-aE.width;aH=aI+aE.width;if(aL<aA){aL=aI}if(az>=aO){az=aI}if(aJ<0){aJ=0}if(aH>=aQ){aH=aI}aR=aE.pixels.getPixel(aJ);aC=aE.pixels.getPixel(aL);aP=aE.pixels.getPixel(aH);aN=aE.pixels.getPixel(az);aM=77*(aF>>16&255)+151*(aF>>8&255)+28*(aF&255);aK=77*(aC>>16&255)+151*(aC>>8&255)+28*(aC&255);ax=77*(aN>>16&255)+151*(aN>>8&255)+28*(aN&255);aS=77*(aR>>16&255)+151*(aR>>8&255)+28*(aR&255);aB=77*(aP>>16&255)+151*(aP>>8&255)+28*(aP&255);if(aK>aM){aG=aC;aM=aK}if(ax>aM){aG=aN;aM=ax}if(aS>aM){aG=aR;aM=aS}if(aB>aM){aG=aP;aM=aB}aD[aI++]=aG}}}else{while(aI<aQ){aA=aI;aO=aI+aE.width;while(aI<aO){aF=aG=aE.pixels.getPixel(aI);aL=aI-1;az=aI+1;aJ=aI-aE.width;aH=aI+aE.width;if(aL<aA){aL=aI}if(az>=aO){az=aI}if(aJ<0){aJ=0}if(aH>=aQ){aH=aI}aR=aE.pixels.getPixel(aJ);aC=aE.pixels.getPixel(aL);aP=aE.pixels.getPixel(aH);aN=aE.pixels.getPixel(az);aM=77*(aF>>16&255)+151*(aF>>8&255)+28*(aF&255);aK=77*(aC>>16&255)+151*(aC>>8&255)+28*(aC&255);ax=77*(aN>>16&255)+151*(aN>>8&255)+28*(aN&255);aS=77*(aR>>16&255)+151*(aR>>8&255)+28*(aR&255);aB=77*(aP>>16&255)+151*(aP>>8&255)+28*(aP&255);if(aK<aM){aG=aC;aM=aK}if(ax<aM){aG=aN;aM=ax}if(aS<aM){aG=aR;aM=aS}if(aB<aM){aG=aP;aM=aB}aD[aI++]=aG}}}aE.pixels.set(aD)};ev.filter=function(aF,aG,aJ){var aC,aH,aL,aD;if(arguments.length===3){aJ.loadPixels();aC=aJ}else{ev.loadPixels();aC=ev}if(aG===ae){aG=null}if(aC.isRemote){throw"Image is loaded remotely. Cannot filter image."}var aB=aC.pixels.getLength();switch(aF){case W.BLUR:var aA=aG||1;gC(aA,aC);break;case W.GRAY:if(aC.format===W.ALPHA){for(aD=0;aD<aB;aD++){aH=255-aC.pixels.getPixel(aD);aC.pixels.setPixel(aD,(4278190080|(aH<<16)|(aH<<8)|aH))}aC.format=W.RGB}else{for(aD=0;aD<aB;aD++){aH=aC.pixels.getPixel(aD);aL=(77*(aH>>16&255)+151*(aH>>8&255)+28*(aH&255))>>8;aC.pixels.setPixel(aD,((aH&W.ALPHA_MASK)|aL<<16|aL<<8|aL))}}break;case W.INVERT:for(aD=0;aD<aB;aD++){aC.pixels.setPixel(aD,(aC.pixels.getPixel(aD)^16777215))}break;case W.POSTERIZE:if(aG===null){throw"Use filter(POSTERIZE, int levels) instead of filter(POSTERIZE)"}var ax=ev.floor(aG);if((ax<2)||(ax>255)){throw"Levels must be between 2 and 255 for filter(POSTERIZE, levels)"}var aE=ax-1;for(aD=0;aD<aB;aD++){var aM=(aC.pixels.getPixel(aD)>>16)&255;var az=(aC.pixels.getPixel(aD)>>8)&255;var aK=aC.pixels.getPixel(aD)&255;aM=(((aM*ax)>>8)*255)/aE;az=(((az*ax)>>8)*255)/aE;aK=(((aK*ax)>>8)*255)/aE;aC.pixels.setPixel(aD,((4278190080&aC.pixels.getPixel(aD))|(aM<<16)|(az<<8)|aK))}break;case W.OPAQUE:for(aD=0;aD<aB;aD++){aC.pixels.setPixel(aD,(aC.pixels.getPixel(aD)|4278190080))}aC.format=W.RGB;break;case W.THRESHOLD:if(aG===null){aG=0.5}if((aG<0)||(aG>1)){throw"Level must be between 0 and 1 for filter(THRESHOLD, level)"}var aI=ev.floor(aG*255);for(aD=0;aD<aB;aD++){var ay=ev.max((aC.pixels.getPixel(aD)&W.RED_MASK)>>16,ev.max((aC.pixels.getPixel(aD)&W.GREEN_MASK)>>8,(aC.pixels.getPixel(aD)&W.BLUE_MASK)));aC.pixels.setPixel(aD,((aC.pixels.getPixel(aD)&W.ALPHA_MASK)|((ay<aI)?0:16777215)))}break;case W.ERODE:d9(true,aC);break;case W.DILATE:d9(false,aC);break}aC.updatePixels()};ev.shared={fracU:0,ifU:0,fracV:0,ifV:0,u1:0,u2:0,v1:0,v2:0,sX:0,sY:0,iw:0,iw1:0,ih1:0,ul:0,ll:0,ur:0,lr:0,cUL:0,cLL:0,cUR:0,cLR:0,srcXOffset:0,srcYOffset:0,r:0,g:0,b:0,a:0,srcBuffer:null,blurRadius:0,blurKernelSize:0,blurKernel:null};ev.intersect=function(aI,aB,aJ,aC,ax,aE,ay,aF){var az=aJ-aI+1;var aG=aC-aB+1;var aK=ay-ax+1;var aD=aF-aE+1;if(ax<aI){aK+=ax-aI;if(aK>az){aK=az}}else{var aA=az+aI-ax;if(aK>aA){aK=aA}}if(aE<aB){aD+=aE-aB;if(aD>aG){aD=aG}}else{var aH=aG+aB-aE;if(aD>aH){aD=aH}}return !(aK<=0||aD<=0)};var dj={};dj[W.BLEND]=ev.modes.blend;dj[W.ADD]=ev.modes.add;dj[W.SUBTRACT]=ev.modes.subtract;dj[W.LIGHTEST]=ev.modes.lightest;dj[W.DARKEST]=ev.modes.darkest;dj[W.REPLACE]=ev.modes.replace;dj[W.DIFFERENCE]=ev.modes.difference;dj[W.EXCLUSION]=ev.modes.exclusion;dj[W.MULTIPLY]=ev.modes.multiply;dj[W.SCREEN]=ev.modes.screen;dj[W.OVERLAY]=ev.modes.overlay;dj[W.HARD_LIGHT]=ev.modes.hard_light;dj[W.SOFT_LIGHT]=ev.modes.soft_light;dj[W.DODGE]=ev.modes.dodge;dj[W.BURN]=ev.modes.burn;ev.blit_resize=function(bf,aU,a9,aV,ba,aL,bj,bb,aW,be,aX,bg,bd){var aO,aQ;if(aU<0){aU=0}if(a9<0){a9=0}if(aV>=bf.width){aV=bf.width-1}if(ba>=bf.height){ba=bf.height-1}var aH=aV-aU;var aC=ba-a9;var aT=aX-aW;var bi=bg-be;if(aT<=0||bi<=0||aH<=0||aC<=0||aW>=bj||be>=bb||aU>=bf.width||a9>=bf.height){return}var bl=ah.floor(aH/aT*W.PRECISIONF);var ay=ah.floor(aC/bi*W.PRECISIONF);var aJ=ev.shared;aJ.srcXOffset=ah.floor(aW<0?-aW*bl:aU*W.PRECISIONF);aJ.srcYOffset=ah.floor(be<0?-be*ay:a9*W.PRECISIONF);if(aW<0){aT+=aW;aW=0}if(be<0){bi+=be;be=0}aT=ah.min(aT,bj-aW);bi=ah.min(bi,bb-be);var aZ=be*bj+aW;var az;aJ.srcBuffer=bf.imageData.data;aJ.iw=bf.width;aJ.iw1=bf.width-1;aJ.ih1=bf.height-1;var aY=ev.filter_bilinear,aF=ev.filter_new_scanline,bk=dj[bd],aI,aD,aK,aG,aP,aN,aS=W.ALPHA_MASK,aE=W.RED_MASK,aR=W.GREEN_MASK,bm=W.BLUE_MASK,aA=W.PREC_MAXVAL,aM=W.PRECISIONB,bh=W.PREC_RED_SHIFT,bc=W.PREC_ALPHA_SHIFT,ax=aJ.srcBuffer,aB=ah.min;for(aQ=0;aQ<bi;aQ++){aJ.sX=aJ.srcXOffset;aJ.fracV=aJ.srcYOffset&aA;aJ.ifV=aA-aJ.fracV;aJ.v1=(aJ.srcYOffset>>aM)*aJ.iw;aJ.v2=aB((aJ.srcYOffset>>aM)+1,aJ.ih1)*aJ.iw;for(aO=0;aO<aT;aO++){aD=(aZ+aO)*4;az=(aL[aD+3]<<24)&aS|(aL[aD]<<16)&aE|(aL[aD+1]<<8)&aR|aL[aD+2]&bm;aJ.fracU=aJ.sX&aA;aJ.ifU=aA-aJ.fracU;aJ.ul=(aJ.ifU*aJ.ifV)>>aM;aJ.ll=(aJ.ifU*aJ.fracV)>>aM;aJ.ur=(aJ.fracU*aJ.ifV)>>aM;aJ.lr=(aJ.fracU*aJ.fracV)>>aM;aJ.u1=(aJ.sX>>aM);aJ.u2=aB(aJ.u1+1,aJ.iw1);aK=(aJ.v1+aJ.u1)*4;aG=(aJ.v1+aJ.u2)*4;aP=(aJ.v2+aJ.u1)*4;aN=(aJ.v2+aJ.u2)*4;aJ.cUL=(ax[aK+3]<<24)&aS|(ax[aK]<<16)&aE|(ax[aK+1]<<8)&aR|ax[aK+2]&bm;aJ.cUR=(ax[aG+3]<<24)&aS|(ax[aG]<<16)&aE|(ax[aG+1]<<8)&aR|ax[aG+2]&bm;aJ.cLL=(ax[aP+3]<<24)&aS|(ax[aP]<<16)&aE|(ax[aP+1]<<8)&aR|ax[aP+2]&bm;aJ.cLR=(ax[aN+3]<<24)&aS|(ax[aN]<<16)&aE|(ax[aN+1]<<8)&aR|ax[aN+2]&bm;aJ.r=((aJ.ul*((aJ.cUL&aE)>>16)+aJ.ll*((aJ.cLL&aE)>>16)+aJ.ur*((aJ.cUR&aE)>>16)+aJ.lr*((aJ.cLR&aE)>>16))<<bh)&aE;aJ.g=((aJ.ul*(aJ.cUL&aR)+aJ.ll*(aJ.cLL&aR)+aJ.ur*(aJ.cUR&aR)+aJ.lr*(aJ.cLR&aR))>>>aM)&aR;aJ.b=(aJ.ul*(aJ.cUL&bm)+aJ.ll*(aJ.cLL&bm)+aJ.ur*(aJ.cUR&bm)+aJ.lr*(aJ.cLR&bm))>>>aM;aJ.a=((aJ.ul*((aJ.cUL&aS)>>>24)+aJ.ll*((aJ.cLL&aS)>>>24)+aJ.ur*((aJ.cUR&aS)>>>24)+aJ.lr*((aJ.cLR&aS)>>>24))<<bc)&aS;aI=bk(az,(aJ.a|aJ.r|aJ.g|aJ.b));aL[aD]=(aI&aE)>>>16;aL[aD+1]=(aI&aR)>>>8;aL[aD+2]=(aI&bm);aL[aD+3]=(aI&aS)>>>24;aJ.sX+=bl}aZ+=bj;aJ.srcYOffset+=ay}};ev.loadFont=function(ay,ax){if(ay===ae){throw ("font name required in loadFont.")}if(ay.indexOf(".svg")===-1){if(ax===ae){ax=eN.size}return Q.get(ay,ax)}var az=ev.loadGlyphs(ay);return{name:ay,css:"12px sans-serif",glyph:true,units_per_em:az.units_per_em,horiz_adv_x:1/az.units_per_em*az.horiz_adv_x,ascent:az.ascent,descent:az.descent,width:function(aA){var aC=0;var aE=aA.length;for(var aD=0;aD<aE;aD++){try{aC+=parseFloat(ev.glyphLook(ev.glyphTable[ay],aA[aD]).horiz_adv_x)}catch(aB){S.debug(aB)}}return aC/ev.glyphTable[ay].units_per_em}}};ev.createFont=function(ay,ax){return ev.loadFont(ay,ax)};ev.textFont=function(az,ax){if(ax!==ae){if(!az.glyph){az=Q.get(az.name,ax)}a5=ax}eN=az;eG=eN.name;gs=eN.ascent;l=eN.descent;eK=eN.leading;var ay=cy.$ensureContext();ay.font=eN.css};ev.textSize=function(ax){if(ax!==a5){eN=Q.get(eG,ax);a5=ax;gs=eN.ascent;l=eN.descent;eK=eN.leading;var ay=cy.$ensureContext();ay.font=eN.css}};ev.textAscent=function(){return gs};ev.textDescent=function(){return l};ev.textLeading=function(ax){eK=ax};ev.textAlign=function(ax,ay){fg=ax;ek=ay||W.BASELINE};function eE(ax){if(ax instanceof String){return ax}if(typeof ax==="number"){if(ax===(0|ax)){return ax.toString()}return ev.nf(ax,0,3)}if(ax===null||ax===ae){return""}return ax.toString()}f2.prototype.textWidth=function(aA){var az=eE(aA).split(/\r?\n/g),ax=0;var ay,aB=az.length;eH.font=eN.css;for(ay=0;ay<aB;++ay){ax=ah.max(ax,eN.measureTextWidth(az[ay]))}return ax.toFixed(1)};el.prototype.textWidth=function(aA){var az=eE(aA).split(/\r?\n/g),aC=0;var ax,aB=az.length;if(fp===ae){fp=at.createElement("canvas")}var ay=fp.getContext("2d");ay.font=eN.css;for(ax=0;ax<aB;++ax){aC=ah.max(aC,ay.measureText(az[ax]).width)}return aC.toFixed(1)};ev.glyphLook=function(az,ay){try{switch(ay){case"1":return az.one;case"2":return az.two;case"3":return az.three;case"4":return az.four;case"5":return az.five;case"6":return az.six;case"7":return az.seven;case"8":return az.eight;case"9":return az.nine;case"0":return az.zero;case" ":return az.space;case"$":return az.dollar;case"!":return az.exclam;case'"':return az.quotedbl;case"#":return az.numbersign;case"%":return az.percent;case"&":return az.ampersand;case"'":return az.quotesingle;case"(":return az.parenleft;case")":return az.parenright;case"*":return az.asterisk;case"+":return az.plus;case",":return az.comma;case"-":return az.hyphen;case".":return az.period;case"/":return az.slash;case"_":return az.underscore;case":":return az.colon;case";":return az.semicolon;case"<":return az.less;case"=":return az.equal;case">":return az.greater;case"?":return az.question;case"@":return az.at;case"[":return az.bracketleft;case"\\":return az.backslash;case"]":return az.bracketright;case"^":return az.asciicircum;case"`":return az.grave;case"{":return az.braceleft;case"|":return az.bar;case"}":return az.braceright;case"~":return az.asciitilde;default:return az[ay]}}catch(ax){S.debug(ax)}};f2.prototype.text$line=function(aB,ay,az,aA,aE){var aC=0,aD=0;if(!eN.glyph){if(aB&&("fillText" in eH)){if(fU){eH.fillStyle=ev.color.toString(gu);fU=false}if(aE===W.RIGHT||aE===W.CENTER){aC=eN.measureTextWidth(aB);if(aE===W.RIGHT){aD=-aC}else{aD=-aC/2}}eH.fillText(aB,ay+aD,az)}}else{var aJ=ev.glyphTable[eG];gZ();eH.translate(ay,az+a5);if(aE===W.RIGHT||aE===W.CENTER){aC=aJ.width(aB);if(aE===W.RIGHT){aD=-aC}else{aD=-aC/2}}var ax=aJ.units_per_em,aF=1/ax*a5;eH.scale(aF,aF);for(var aI=0,aH=aB.length;aI<aH;aI++){try{ev.glyphLook(aJ,aB[aI]).draw()}catch(aG){S.debug(aG)}}eV()}};el.prototype.text$line=function(aB,ax,ay,aA,aD){if(fp===ae){fp=at.createElement("canvas")}var aH=eH;eH=fp.getContext("2d");eH.font=eN.css;var aC=eN.measureTextWidth(aB);fp.width=aC;fp.height=a5;eH=fp.getContext("2d");eH.font=eN.css;eH.textBaseline="top";f2.prototype.text$line(aB,0,0,0,W.LEFT);var aI=fp.width/fp.height;eH=aH;eH.bindTexture(eH.TEXTURE_2D,fZ);d7(fp);eH.texParameteri(eH.TEXTURE_2D,eH.TEXTURE_MAG_FILTER,eH.LINEAR);eH.texParameteri(eH.TEXTURE_2D,eH.TEXTURE_MIN_FILTER,eH.LINEAR);eH.texParameteri(eH.TEXTURE_2D,eH.TEXTURE_WRAP_T,eH.CLAMP_TO_EDGE);eH.texParameteri(eH.TEXTURE_2D,eH.TEXTURE_WRAP_S,eH.CLAMP_TO_EDGE);var aE=0;if(aD===W.RIGHT){aE=-aC}else{if(aD===W.CENTER){aE=-aC/2}}var aG=new gP();var aF=a5*0.5;aG.translate(ax+aE-aF/2,ay-aF,aA);aG.scale(-aI*aF,-aF,aF);aG.translate(-1,-1,-1);aG.transpose();var az=new gP();az.scale(1,-1,1);az.apply(d6.array());az.transpose();eH.useProgram(dn);G("vertex2d",dn,"Vertex",3,fj);G("aTextureCoord2d",dn,"aTextureCoord",2,gq);a7("uSampler2d",dn,"uSampler",[0]);a7("picktype2d",dn,"picktype",1);d("model2d",dn,"model",false,aG.array());d("view2d",dn,"view",false,az.array());a1("color2d",dn,"color",e1);eH.bindBuffer(eH.ELEMENT_ARRAY_BUFFER,e4);eH.drawElements(eH.TRIANGLES,6,eH.UNSIGNED_SHORT,0)};function fk(aC,az,aA,aB){var ax,aD;if(aC.indexOf("\n")<0){ax=[aC];aD=1}else{ax=aC.split(/\r?\n/g);aD=ax.length}var aF=0;if(ek===W.TOP){aF=gs+l}else{if(ek===W.CENTER){aF=gs/2-(aD-1)*eK/2}else{if(ek===W.BOTTOM){aF=-(l+(aD-1)*eK)}}}for(var aE=0;aE<aD;++aE){var ay=ax[aE];cy.text$line(ay,az,aA+aF,aB,fg);aF+=eK}}function g2(az,aE,aF,aA,aC,aG){if(az.length===0||aA===0||aC===0){return}if(a5>aC){return}var aD=-1;var aL=0;var aP=0;var aJ=[];for(var aK=0,ax=az.length;aK<ax;aK++){var aI=az[aK];var aQ=(aI===" ");var aB=eN.measureTextWidth(aI);if(aI!=="\n"&&(aP+aB<=aA)){if(aQ){aD=aK}aP+=aB}else{if(aD+1===aL){if(aK>0){aD=aK}else{return}}if(aI==="\n"){aJ.push({text:az.substring(aL,aK),width:aP});aL=aK+1}else{aJ.push({text:az.substring(aL,aD+1),width:aP});aL=aD+1}aP=0;aK=aL-1}}if(aL<ax){aJ.push({text:az.substring(aL),width:aP})}var aR=0,aH=gs;if(fg===W.CENTER){aR=aA/2}else{if(fg===W.RIGHT){aR=aA}}var aO=ah.floor(aC/eK);if(ek===W.TOP){aH=gs+l}else{if(ek===W.CENTER){aH=eK+l}else{if(ek===W.BOTTOM){aH=l+eK}}}var aN,aM,ay=aJ.length,aS;for(aN=0;aN<ay;aN++){aS=aN*eK;if(aH+aS>aC-l){break}aM=aJ[aN];cy.text$line(aM.text,aE+aR,aF+aH+aS,aG,fg)}}ev.text=function(){if(fh===W.SHAPE){return}if(arguments.length===3){fk(eE(arguments[0]),arguments[1],arguments[2],0)}else{if(arguments.length===4){fk(eE(arguments[0]),arguments[1],arguments[2],arguments[3])}else{if(arguments.length===5){g2(eE(arguments[0]),arguments[1],arguments[2],arguments[3],arguments[4],0)}else{if(arguments.length===6){g2(eE(arguments[0]),arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])}}}}};ev.textMode=function(ax){fh=ax};ev.loadGlyphs=function(aI){var aG,aH,aK,aM,az,aA,aB,ay,aE,ax,aD,aC="[0-9\\-]+",aF;var aJ=function(aS,aT){var aP=0,aQ=[],aR,aU=new RegExp(aS,"g");aR=aQ[aP]=aU.exec(aT);while(aR){aP++;aR=aQ[aP]=aU.exec(aT)}return aQ};var aN=function(aT){var aS=aJ("[A-Za-z][0-9\\- ]+|Z",aT);var aU=function(){gZ();return cy.$ensureContext()};var aP=function(){e3();F();eV()};aF="return {draw:function(){var curContext=beforePathDraw();curContext.beginPath();";aG=0;aH=0;aK=0;aM=0;az=0;aA=0;aT=0;ay=0;aE="";ax=aS.length-1;for(var aQ=0;aQ<ax;aQ++){var aR=aS[aQ][0],aV=aJ(aC,aR);switch(aR[0]){case"M":aG=parseFloat(aV[0][0]);aH=parseFloat(aV[1][0]);aF+="curContext.moveTo("+aG+","+(-aH)+");";break;case"L":aG=parseFloat(aV[0][0]);aH=parseFloat(aV[1][0]);aF+="curContext.lineTo("+aG+","+(-aH)+");";break;case"H":aG=parseFloat(aV[0][0]);aF+="curContext.lineTo("+aG+","+(-aH)+");";break;case"V":aH=parseFloat(aV[0][0]);aF+="curContext.lineTo("+aG+","+(-aH)+");";break;case"T":az=parseFloat(aV[0][0]);aA=parseFloat(aV[1][0]);if(aE==="Q"||aE==="T"){aT=ah.sqrt(ah.pow(aG-aK,2)+ah.pow(aM-aH,2));ay=ah.PI+ah.atan2(aK-aG,aM-aH);aK=aG+(ah.sin(ay)*(aT));aM=aH+(ah.cos(ay)*(aT))}else{aK=aG;aM=aH}aF+="curContext.quadraticCurveTo("+aK+","+(-aM)+","+az+","+(-aA)+");";aG=az;aH=aA;break;case"Q":aK=parseFloat(aV[0][0]);aM=parseFloat(aV[1][0]);az=parseFloat(aV[2][0]);aA=parseFloat(aV[3][0]);aF+="curContext.quadraticCurveTo("+aK+","+(-aM)+","+az+","+(-aA)+");";aG=az;aH=aA;break;case"Z":aF+="curContext.closePath();";break}aE=aR[0]}aF+="afterPathDraw();";aF+="curContext.translate("+aD+",0);";aF+="}}";return((new Function("beforePathDraw","afterPathDraw",aF))(aU,aP))};var aO=function(aW){var aP=aW.getElementsByTagName("font");ev.glyphTable[aI].horiz_adv_x=aP[0].getAttribute("horiz-adv-x");var aU=aW.getElementsByTagName("font-face")[0];ev.glyphTable[aI].units_per_em=parseFloat(aU.getAttribute("units-per-em"));ev.glyphTable[aI].ascent=parseFloat(aU.getAttribute("ascent"));ev.glyphTable[aI].descent=parseFloat(aU.getAttribute("descent"));var aS=aW.getElementsByTagName("glyph"),aQ=aS.length;for(var aT=0;aT<aQ;aT++){var aR=aS[aT].getAttribute("unicode");var aV=aS[aT].getAttribute("glyph-name");aD=aS[aT].getAttribute("horiz-adv-x");if(aD===null){aD=ev.glyphTable[aI].horiz_adv_x}aB=aS[aT].getAttribute("d");if(aB!==ae){aF=aN(aB);ev.glyphTable[aI][aV]={name:aV,unicode:aR,horiz_adv_x:aD,draw:aF.draw}}}};var aL=function(){var aP;try{aP=at.implementation.createDocument("","",null)}catch(aS){S.debug(aS.message);return}try{aP.async=false;aP.load(aI);aO(aP.getElementsByTagName("svg")[0])}catch(aQ){S.debug(aQ);try{var aR=new U.XMLHttpRequest();aR.open("GET",aI,false);aR.send(null);aO(aR.responseXML.documentElement)}catch(aT){S.debug(aQ)}}};ev.glyphTable[aI]={};aL(aI);return ev.glyphTable[aI]};ev.param=function(ax){var ay="data-processing-"+ax;if(gl.hasAttribute(ay)){return gl.getAttribute(ay)}for(var aB=0,az=gl.childNodes.length;aB<az;++aB){var aA=gl.childNodes.item(aB);if(aA.nodeType!==1||aA.tagName.toLowerCase()!=="param"){continue}if(aA.getAttribute("name")===ax){return aA.getAttribute("value")}}if(eR.params.hasOwnProperty(ax)){return eR.params[ax]}return null};function e6(ax){if(ax==="3D"){cy=new el()}else{if(ax==="2D"){cy=new f2()}else{cy=new gw()}}for(var ay in gw.prototype){if(gw.prototype.hasOwnProperty(ay)&&ay.indexOf("$")<0){ev[ay]=cy[ay]}}cy.$init()}function eA(ax){return function(){e6("2D");return cy[ax].apply(this,arguments)}}gw.prototype.translate=eA("translate");gw.prototype.scale=eA("scale");gw.prototype.pushMatrix=eA("pushMatrix");gw.prototype.popMatrix=eA("popMatrix");gw.prototype.resetMatrix=eA("resetMatrix");gw.prototype.applyMatrix=eA("applyMatrix");gw.prototype.rotate=eA("rotate");gw.prototype.rotateZ=eA("rotateZ");gw.prototype.redraw=eA("redraw");gw.prototype.ambientLight=eA("ambientLight");gw.prototype.directionalLight=eA("directionalLight");gw.prototype.lightFalloff=eA("lightFalloff");gw.prototype.lightSpecular=eA("lightSpecular");gw.prototype.pointLight=eA("pointLight");gw.prototype.noLights=eA("noLights");gw.prototype.spotLight=eA("spotLight");gw.prototype.beginCamera=eA("beginCamera");gw.prototype.endCamera=eA("endCamera");gw.prototype.box=eA("box");gw.prototype.sphere=eA("sphere");gw.prototype.ambient=eA("ambient");gw.prototype.emissive=eA("emissive");gw.prototype.shininess=eA("shininess");gw.prototype.specular=eA("specular");gw.prototype.fill=eA("fill");gw.prototype.stroke=eA("stroke");gw.prototype.strokeWeight=eA("strokeWeight");gw.prototype.smooth=eA("smooth");gw.prototype.noSmooth=eA("noSmooth");gw.prototype.point=eA("point");gw.prototype.vertex=eA("vertex");gw.prototype.endShape=eA("endShape");gw.prototype.bezierVertex=eA("bezierVertex");gw.prototype.curveVertex=eA("curveVertex");gw.prototype.curve=eA("curve");gw.prototype.line=eA("line");gw.prototype.bezier=eA("bezier");gw.prototype.rect=eA("rect");gw.prototype.ellipse=eA("ellipse");gw.prototype.background=eA("background");gw.prototype.image=eA("image");gw.prototype.textWidth=eA("textWidth");gw.prototype.text$line=eA("text$line");gw.prototype.$ensureContext=eA("$ensureContext");gw.prototype.$newPMatrix=eA("$newPMatrix");gw.prototype.size=function(az,ax,ay){e6(ay===W.WEBGL?"3D":"2D");ev.size(az,ax,ay)};gw.prototype.$init=R;f2.prototype.$init=function(){ev.size(ev.width,ev.height);eH.lineCap="round";ev.noSmooth();ev.disableContextMenu()};el.prototype.$init=function(){ev.use3DContext=true};t.prototype.$ensureContext=function(){return eH};function n(ay,aB){var ax=ay,az=0,aA=0;ev.pmouseX=ev.mouseX;ev.pmouseY=ev.mouseY;if(ax.offsetParent){do{az+=ax.offsetLeft;aA+=ax.offsetTop}while(!!(ax=ax.offsetParent))}ax=ay;do{az-=ax.scrollLeft||0;aA-=ax.scrollTop||0}while(!!(ax=ax.parentNode));az+=go;aA+=w;az+=gG;aA+=fJ;az+=U.pageXOffset;aA+=U.pageYOffset;return{X:az,Y:aA}}function gV(az,ay){var ax=n(az,ay);ev.mouseX=ay.pageX-ax.X;ev.mouseY=ay.pageY-ax.Y}function cz(ay){var aC=n(ay.changedTouches[0].target,ay.changedTouches[0]),az;for(az=0;az<ay.touches.length;az++){var aA=ay.touches[az];aA.offsetX=aA.pageX-aC.X;aA.offsetY=aA.pageY-aC.Y}for(az=0;az<ay.targetTouches.length;az++){var ax=ay.targetTouches[az];ax.offsetX=ax.pageX-aC.X;ax.offsetY=ax.pageY-aC.Y}for(az=0;az<ay.changedTouches.length;az++){var aB=ay.changedTouches[az];aB.offsetX=aB.pageX-aC.X;aB.offsetY=aB.pageY-aC.Y}return ay}f6(gl,"touchstart",function(ax){gl.setAttribute("style","-webkit-user-select: none");gl.setAttribute("onclick","void(0)");gl.setAttribute("style","-webkit-tap-highlight-color:rgba(0,0,0,0)");for(var ay=0,az=fI.length;ay<az;ay++){var aA=fI[ay].type;if(aA==="mouseout"||aA==="mousemove"||aA==="mousedown"||aA==="mouseup"||aA==="DOMMouseScroll"||aA==="mousewheel"||aA==="touchstart"){E(fI[ay])}}if(ev.touchStart!==ae||ev.touchMove!==ae||ev.touchEnd!==ae||ev.touchCancel!==ae){f6(gl,"touchstart",function(aB){if(ev.touchStart!==ae){aB=cz(aB);ev.touchStart(aB)}});f6(gl,"touchmove",function(aB){if(ev.touchMove!==ae){aB.preventDefault();aB=cz(aB);ev.touchMove(aB)}});f6(gl,"touchend",function(aB){if(ev.touchEnd!==ae){aB=cz(aB);ev.touchEnd(aB)}});f6(gl,"touchcancel",function(aB){if(ev.touchCancel!==ae){aB=cz(aB);ev.touchCancel(aB)}})}else{f6(gl,"touchstart",function(aB){gV(gl,aB.touches[0]);ev.__mousePressed=true;ev.mouseDragging=false;ev.mouseButton=W.LEFT;if(typeof ev.mousePressed==="function"){ev.mousePressed()}});f6(gl,"touchmove",function(aB){aB.preventDefault();gV(gl,aB.touches[0]);if(typeof ev.mouseMoved==="function"&&!ev.__mousePressed){ev.mouseMoved()}if(typeof ev.mouseDragged==="function"&&ev.__mousePressed){ev.mouseDragged();ev.mouseDragging=true}});f6(gl,"touchend",function(aB){ev.__mousePressed=false;if(typeof ev.mouseClicked==="function"&&!ev.mouseDragging){ev.mouseClicked()}if(typeof ev.mouseReleased==="function"){ev.mouseReleased()}})}gl.dispatchEvent(ax)});(function(){var ay=true,ax=function(az){az.preventDefault();az.stopPropagation()};ev.disableContextMenu=function(){if(!ay){return}f6(gl,"contextmenu",ax);ay=false};ev.enableContextMenu=function(){if(ay){return}E({elem:gl,type:"contextmenu",fn:ax});ay=true}}());f6(gl,"mousemove",function(ax){gV(gl,ax);if(typeof ev.mouseMoved==="function"&&!ev.__mousePressed){ev.mouseMoved()}if(typeof ev.mouseDragged==="function"&&ev.__mousePressed){ev.mouseDragged();ev.mouseDragging=true}});f6(gl,"mouseout",function(ax){if(typeof ev.mouseOut==="function"){ev.mouseOut()}});f6(gl,"mouseover",function(ax){gV(gl,ax);if(typeof ev.mouseOver==="function"){ev.mouseOver()}});f6(gl,"mousedown",function(ax){ev.__mousePressed=true;ev.mouseDragging=false;switch(ax.which){case 1:ev.mouseButton=W.LEFT;break;case 2:ev.mouseButton=W.CENTER;break;case 3:ev.mouseButton=W.RIGHT;break}if(typeof ev.mousePressed==="function"){ev.mousePressed()}});f6(gl,"mouseup",function(ax){ev.__mousePressed=false;if(typeof ev.mouseClicked==="function"&&!ev.mouseDragging){ev.mouseClicked()}if(typeof ev.mouseReleased==="function"){ev.mouseReleased()}});var f1=function(ay){var ax=0;if(ay.wheelDelta){ax=ay.wheelDelta/120;if(U.opera){ax=-ax}}else{if(ay.detail){ax=-ay.detail/3}}ev.mouseScroll=ax;if(ax&&typeof ev.mouseScrolled==="function"){ev.mouseScrolled()}};f6(at,"DOMMouseScroll",f1);f6(at,"mousewheel",f1);if(typeof gl==="string"){gl=at.getElementById(gl)}if(!gl.getAttribute("tabindex")){gl.setAttribute("tabindex",0)}function eh(ax){var ay=ax.which||ax.keyCode;switch(ay){case 13:return 10;case 91:case 93:case 224:return 157;case 57392:return 17;case 46:return 127;case 45:return 155}return ay}function I(ay){var ax=ay.which||ay.keyCode;var az=ay.shiftKey||ay.ctrlKey||ay.altKey||ay.metaKey;switch(ax){case 13:ax=az?13:10;break;case 8:ax=az?127:8;break}return new f3(ax)}function eM(ax){if(typeof ax.preventDefault==="function"){ax.preventDefault()}else{if(typeof ax.stopPropagation==="function"){ax.stopPropagation()}}return false}function ed(){var ax;for(ax in gg){if(gg.hasOwnProperty(ax)){ev.__keyPressed=true;return}}ev.__keyPressed=false}function a4(){ev.__keyPressed=false;gg=[];ea=null}function eU(ay,ax){gg[ay]=ax;ea=null;ev.key=ax;ev.keyCode=ay;ev.keyPressed();ev.keyCode=0;ev.keyTyped();ed()}function a0(ay){var az=eh(ay);if(az===W.DELETE){eU(az,new f3(127));return}if(da.indexOf(az)<0){ea=az;return}var ax=new f3(W.CODED);ev.key=ax;ev.keyCode=az;gg[az]=ax;ev.keyPressed();ea=null;ed();return eM(ay)}function q(ay){if(ea===null){return}var az=ea,ax=I(ay);eU(az,ax);return eM(ay)}function dh(ay){var az=eh(ay),ax=gg[az];if(ax===ae){return}ev.key=ax;ev.keyCode=az;ev.keyReleased();delete gg[az];ed()}if(!ez){if(c instanceof S.Sketch){eR=c}else{if(typeof c==="function"){eR=new S.Sketch(c)}else{if(!c){eR=new S.Sketch(function(){})}else{eR=S.compile(c)}}}ev.externals.sketch=eR;e6();gl.onfocus=function(){ev.focused=true};gl.onblur=function(){ev.focused=false;if(!eR.options.globalKeyEvents){a4()}};if(eR.options.pauseOnBlur){f6(U,"focus",function(){if(g0){ev.loop()}});f6(U,"blur",function(){if(g0&&fz){ev.noLoop();g0=true}a4()})}var gF=eR.options.globalKeyEvents?U:gl;f6(gF,"keydown",a0);f6(gF,"keypress",q);f6(gF,"keyup",dh);for(var fS in S.lib){if(S.lib.hasOwnProperty(fS)){if(S.lib[fS].hasOwnProperty("attach")){S.lib[fS].attach(ev)}else{if(S.lib[fS] instanceof Function){S.lib[fS].call(this)}}}}var k=100;var gE=function(aA){if(!(eR.imageCache.pending||Q.preloading.pending(k))){if(U.opera){var ax,ay,az=eR.imageCache.operaCache;for(ax in az){if(az.hasOwnProperty(ax)){ay=az[ax];if(ay!==null){at.body.removeChild(ay)}delete (az[ax])}}}eR.attach(aA,ap);eR.onLoad();if(aA.setup){aA.setup();aA.resetMatrix();eR.onSetup()}eY();if(aA.draw){if(!g0){aA.redraw()}else{aA.loop()}}}else{U.setTimeout(function(){gE(aA)},k)}};aw(this);gE(ev)}else{eR=new S.Sketch();e6();ev.size=function(az,ax,ay){if(ay&&ay===W.WEBGL){e6("3D")}else{e6("2D")}if(ay===W.WEBGL){ev.toImageData=function(){var aC=at.createElement("canvas");var aA=aC.getContext("2d");var aG=aA.createImageData(this.width,this.height);var aH=new av(this.width*this.height*4);eH.readPixels(0,0,this.width,this.height,eH.RGBA,eH.UNSIGNED_BYTE,aH);for(var aF=0,aD=aH.length,aE=this.height,aB=this.width,aI=aG.data;aF<aD;aF++){aI[aF]=aH[(aE-1-ah.floor(aF/4/aB))*aB*4+(aF%(aB*4))]}return aG}}else{ev.toImageData=function(){return eH.getImageData(0,0,this.width,this.height)}}ev.size(az,ax,ay)}}};S.debug=af;S.prototype=ap;function ad(){var c=["abs","acos","alpha","ambient","ambientLight","append","applyMatrix","arc","arrayCopy","asin","atan","atan2","background","beginCamera","beginDraw","beginShape","bezier","bezierDetail","bezierPoint","bezierTangent","bezierVertex","binary","blend","blendColor","blit_resize","blue","box","breakShape","brightness","camera","ceil","Character","color","colorMode","concat","constrain","copy","cos","createFont","createGraphics","createImage","cursor","curve","curveDetail","curvePoint","curveTangent","curveTightness","curveVertex","day","degrees","directionalLight","disableContextMenu","dist","draw","ellipse","ellipseMode","emissive","enableContextMenu","endCamera","endDraw","endShape","exit","exp","expand","externals","fill","filter","floor","focused","frameCount","frameRate","frustum","get","glyphLook","glyphTable","green","height","hex","hint","hour","hue","image","imageMode","Import","intersect","join","key","keyCode","keyPressed","keyReleased","keyTyped","lerp","lerpColor","lightFalloff","lights","lightSpecular","line","link","loadBytes","loadFont","loadGlyphs","loadImage","loadPixels","loadShape","loadStrings","log","loop","mag","map","match","matchAll","max","millis","min","minute","mix","modelX","modelY","modelZ","modes","month","mouseButton","mouseClicked","mouseDragged","mouseMoved","mouseOut","mouseOver","mousePressed","mouseReleased","mouseScroll","mouseScrolled","mouseX","mouseY","name","nf","nfc","nfp","nfs","noCursor","noFill","noise","noiseDetail","noiseSeed","noLights","noLoop","norm","normal","noSmooth","noStroke","noTint","ortho","param","parseBoolean","parseByte","parseChar","parseFloat","parseInt","peg","perspective","PImage","pixels","PMatrix2D","PMatrix3D","PMatrixStack","pmouseX","pmouseY","point","pointLight","popMatrix","popStyle","pow","print","printCamera","println","printMatrix","printProjection","PShape","PShapeSVG","pushMatrix","pushStyle","quad","radians","random","Random","randomSeed","rect","rectMode","red","redraw","requestImage","resetMatrix","reverse","rotate","rotateX","rotateY","rotateZ","round","saturation","save","saveFrame","saveStrings","scale","screenX","screenY","screenZ","second","set","setup","shape","shapeMode","shared","shininess","shorten","sin","size","smooth","sort","specular","sphere","sphereDetail","splice","split","splitTokens","spotLight","sq","sqrt","status","str","stroke","strokeCap","strokeJoin","strokeWeight","subset","tan","text","textAlign","textAscent","textDescent","textFont","textLeading","textMode","textSize","texture","textureMode","textWidth","tint","touchCancel","touchEnd","touchMove","touchStart","translate","triangle","trim","unbinary","unhex","updatePixels","use3DContext","vertex","width","XMLElement","year","__contains","__equals","__equalsIgnoreCase","__frameRate","__hashCode","__int_cast","__instanceof","__keyPressed","__mousePressed","__printStackTrace","__replace","__replaceAll","__replaceFirst","__toCharArray","__split","__codePointAt","__startsWith","__endsWith"];var e={};var d,f;for(d=0,f=c.length;d<f;++d){e[c[d]]=null}for(var b in S.lib){if(S.lib.hasOwnProperty(b)){if(S.lib[b].exports){var a=S.lib[b].exports;for(d=0,f=a.length;d<f;++d){e[a[d]]=null}}}}return e}function au(az){var bs=ad();function bL(aB){var aH=[];var aF=aB.split(/([\{\[\(\)\]\}])/);var aC=aF[0];var aE=[];for(var aI=1;aI<aF.length;aI+=2){var aD=aF[aI];if(aD==="["||aD==="{"||aD==="("){aE.push(aC);aC=aD}else{if(aD==="]"||aD==="}"||aD===")"){var aA=aD==="}"?"A":aD===")"?"B":"C";var aG=aH.length;aH.push(aC+aD);aC=aE.pop()+'"'+aA+(aG+1)+'"'}}aC+=aF[aI+1]}aH.unshift(aC);return aH}function bg(aA,aB){return aA.replace(/'(\d+)'/g,function(aD,aE){var aC=aB[aE];if(aC.charAt(0)==="/"){return aC}return(/^'((?:[^'\\\n])|(?:\\.[0-9A-Fa-f]*))'$/).test(aC)?"(new $p.Character("+aC+"))":aC})}function bA(aA){var aB=/^\s*/.exec(aA),aD;if(aB[0].length===aA.length){aD={left:aB[0],middle:"",right:""}}else{var aC=/\s*$/.exec(aA);aD={left:aB[0],middle:aA.substring(aB[0].length,aC.index),right:aC[0]}}aD.untrim=function(aE){return this.left+aE+this.right};return aD}function bT(aA){return aA.replace(/^\s+/,"").replace(/\s+$/,"")}function K(aB,aA){for(var aC=0,aD=aA.length;aC<aD;++aC){aB[aA[aC]]=null}return aB}function bP(aA){for(var aB in aA){if(aA.hasOwnProperty(aB)){return false}}return true}function bz(aA){return aA.substring(2,aA.length-1)}var s=az.replace(/\r\n?|\n\r/g,"\n");var D=[];var bW=s.replace(/("(?:[^"\\\n]|\\.)*")|('(?:[^'\\\n]|\\.)*')|(([\[\(=|&!\^:?]\s*)(\/(?![*\/])(?:[^\/\\\n]|\\.)*\/[gim]*)\b)|(\/\/[^\n]*\n)|(\/\*(?:(?!\*\/)(?:.|\n))*\*\/)/g,function(aC,aA,aF,aE,aH,aD,aB,aI){var aG;if(aA||aF){aG=D.length;D.push(aC);return"'"+aG+"'"}if(aE){aG=D.length;D.push(aD);return aH+"'"+aG+"'"}return aI!==""?" ":"\n"});var i;var F=bW;var g=function(aC,aB,aD,aA){if(!!aB||!!aA){return aC}i=true;return""};do{i=false;F=F.replace(/([<]?)<\s*((?:\?|[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)(?:\s+(?:extends|super)\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)?(?:\s*,\s*(?:\?|[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)(?:\s+(?:extends|super)\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)?)*)\s*>([=]?)/g,g)}while(i);var j=bL(F);var be;var bG={},bQ,G=0;function A(aB,aC){var aA=j.length;j.push(aB);return'"'+aC+aA+'"'}function bS(){return"class"+(++G)}function h(aB,aA,aC){aB.classId=aA;aB.scopeId=aC;bG[aA]=aB}var q,w,ba,bu,n,bq;var C=/\b((?:(?:public|private|final|protected|static|abstract)\s+)*)(class|interface)\s+([A-Za-z_$][\w$]*\b)(\s+extends\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*,\s*[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*\b)*)?(\s+implements\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*,\s*[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*\b)*)?\s*("A\d+")/g;var bO=/\b((?:(?:public|private|final|protected|static|abstract|synchronized)\s+)*)((?!(?:else|new|return|throw|function|public|private|protected)\b)[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*"C\d+")*)\s*([A-Za-z_$][\w$]*\b)\s*("B\d+")(\s*throws\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*,\s*[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)*)?\s*("A\d+"|;)/g;var bD=/^((?:(?:public|private|final|protected|static)\s+)*)((?!(?:else|new|return|throw)\b)[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*"C\d+")*)\s*([A-Za-z_$][\w$]*\b)\s*(?:"C\d+"\s*)*([=,]|$)/;var f=/\b((?:(?:public|private|final|protected|static|abstract)\s+)*)((?!(?:new|return|throw)\b)[A-Za-z_$][\w$]*\b)\s*("B\d+")(\s*throws\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*,\s*[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)*)?\s*("A\d+")/g;var o=/^((?:(?:public|private|final|protected|static)\s+)*)((?!(?:new|return|throw)\b)[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*"C\d+")*)\s*/;var ax=/\bfunction(?:\s+([A-Za-z_$][\w$]*))?\s*("B\d+")\s*("A\d+")/g;function bl(aA){var aB=aA;aB=aB.replace(C,function(aC){return A(aC,"E")});aB=aB.replace(bO,function(aC){return A(aC,"D")});aB=aB.replace(ax,function(aC){return A(aC,"H")});return aB}function x(aA,aB){var aC=aA.replace(f,function(aD,aG,aF,aI,aE,aH){if(aF!==aB){return aD}return A(aD,"G")});return aC}function bI(aA){this.name=aA}bI.prototype.toString=function(){return this.name};function bb(aA){this.params=aA}bb.prototype.getNames=function(){var aA=[];for(var aB=0,aC=this.params.length;aB<aC;++aB){aA.push(this.params[aB].name)}return aA};bb.prototype.toString=function(){if(this.params.length===0){return"()"}var aC="(";for(var aA=0,aB=this.params.length;aA<aB;++aA){aC+=this.params[aA]+", "}return aC.substring(0,aC.length-2)+")"};function bM(aA){var aC=bT(aA.substring(1,aA.length-1));var aF=[];if(aC!==""){var aE=aC.split(",");for(var aD=0;aD<aE.length;++aD){var aB=/\b([A-Za-z_$][\w$]*\b)(\s*"[ABC][\d]*")*\s*$/.exec(aE[aD]);aF.push(new bI(aB[1]))}}return new bb(aF)}function a0(aA){var aB=aA;aB=aB.replace(/\bnew\s+([A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)(?:\s*"C\d+")+\s*("A\d+")/g,function(aG,aH,aF){return aF});aB=aB.replace(/\bnew\s+([A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)(?:\s*"B\d+")\s*("A\d+")/g,function(aG,aH,aF){return A(aG,"F")});aB=aB.replace(ax,function(aF){return A(aF,"H")});aB=aB.replace(/\bnew\s+([A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)\s*("C\d+"(?:\s*"C\d+")*)/g,function(aI,aJ,aF){var aG=aF.replace(/"C(\d+)"/g,function(aM,aL){return j[aL]}).replace(/\[\s*\]/g,"[null]").replace(/\s*\]\s*\[\s*/g,", ");var aK="{"+aG.substring(1,aG.length-1)+"}";var aH="('"+aJ+"', "+A(aK,"A")+")";return"$p.createJavaArray"+A(aH,"B")});aB=aB.replace(/(\.\s*length)\s*"B\d+"/g,"$1");aB=aB.replace(/#([0-9A-Fa-f]{6})\b/g,function(aG,aF){return"0xFF"+aF});aB=aB.replace(/"B(\d+)"(\s*(?:[\w$']|"B))/g,function(aJ,aG,aF){var aI=j[aG];if(!/^\(\s*[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*\s*(?:"C\d+"\s*)*\)$/.test(aI)){return aJ}if(/^\(\s*int\s*\)$/.test(aI)){return"(int)"+aF}var aH=aI.split(/"C(\d+)"/g);if(aH.length>1){if(!/^\[\s*\]$/.test(j[aH[1]])){return aJ}}return""+aF});aB=aB.replace(/\(int\)([^,\]\)\}\?\:\*\+\-\/\^\|\%\&\~<\>\=]+)/g,function(aG,aH){var aF=bA(aH);return aF.untrim("__int_cast("+aF.middle+")")});aB=aB.replace(/\bsuper(\s*"B\d+")/g,"$$superCstr$1").replace(/\bsuper(\s*\.)/g,"$$super$1");aB=aB.replace(/\b0+((\d*)(?:\.[\d*])?(?:[eE][\-\+]?\d+)?[fF]?)\b/,function(aF,aG,aH){if(aG===aH){return aF}return aH===""?"0"+aG:aG});aB=aB.replace(/\b(\.?\d+\.?)[fF]\b/g,"$1");aB=aB.replace(/([^\s])%([^=\s])/g,"$1 % $2");aB=aB.replace(/\b(frameRate|keyPressed|mousePressed)\b(?!\s*"B)/g,"__$1");aB=aB.replace(/\b(boolean|byte|char|float|int)\s*"B/g,function(aF,aG){return"parse"+aG.substring(0,1).toUpperCase()+aG.substring(1)+'"B'});aB=aB.replace(/\bpixels\s*(("C(\d+)")|\.length)?(\s*=(?!=)([^,\]\)\}]+))?/g,function(aG,aJ,aH,aK,aL,aI){if(aH){var aF=j[aK];if(aL){return"pixels.setPixel"+A("("+aF.substring(1,aF.length-1)+","+aI+")","B")}return"pixels.getPixel"+A("("+aF.substring(1,aF.length-1)+")","B")}if(aJ){return"pixels.getLength"+A("()","B")}if(aL){return"pixels.set"+A("("+aI+")","B")}return"pixels.toArray"+A("()","B")});var aC;function aD(aG,aH,aI,aK){var aF=j[aK];aC=true;var aJ=bA(aF.substring(1,aF.length-1));return"__"+aI+(aJ.middle===""?A("("+aH.replace(/\.\s*$/,"")+")","B"):A("("+aH.replace(/\.\s*$/,"")+","+aJ.middle+")","B"))}do{aC=false;aB=aB.replace(/((?:'\d+'|\b[A-Za-z_$][\w$]*\s*(?:"[BC]\d+")*)\s*\.\s*(?:[A-Za-z_$][\w$]*\s*(?:"[BC]\d+"\s*)*\.\s*)*)(replace|replaceAll|replaceFirst|contains|equals|equalsIgnoreCase|hashCode|toCharArray|printStackTrace|split|startsWith|endsWith|codePointAt)\s*"B(\d+)"/g,aD)}while(aC);function aE(aF,aH,aG){aC=true;return"__instanceof"+A("("+aH+", "+aG+")","B")}do{aC=false;aB=aB.replace(/((?:'\d+'|\b[A-Za-z_$][\w$]*\s*(?:"[BC]\d+")*)\s*(?:\.\s*[A-Za-z_$][\w$]*\s*(?:"[BC]\d+"\s*)*)*)instanceof\s+([A-Za-z_$][\w$]*\s*(?:\.\s*[A-Za-z_$][\w$]*)*)/g,aE)}while(aC);aB=aB.replace(/\bthis(\s*"B\d+")/g,"$$constr$1");return aB}function bN(aA,aB){this.baseInterfaceName=aA;this.body=aB;aB.owner=this}bN.prototype.toString=function(){return"new ("+this.body+")"};function bh(aD){var aE=new RegExp(/\bnew\s*([A-Za-z_$][\w$]*\s*(?:\.\s*[A-Za-z_$][\w$]*)*)\s*"B\d+"\s*"A(\d+)"/).exec(aD);var aA=bQ,aB=bS();bQ=aB;var aF=aE[1]+"$"+aB;var aC=new bN(aF,q(j[aE[2]],aF,"","implements "+aE[1]));h(aC,aB,aA);bQ=aA;return aC}function bk(aB,aA,aC){this.name=aB;this.params=aA;this.body=aC}bk.prototype.toString=function(){var aB=be;var aA=K({"this":null},this.params.getNames());be=function(aD){return aA.hasOwnProperty(aD.name)?aD.name:aB(aD)};var aC="function";if(this.name){aC+=" "+this.name}aC+=this.params+" "+this.body;be=aB;return aC};function bF(aA){var aB=new RegExp(/\b([A-Za-z_$][\w$]*)\s*"B(\d+)"\s*"A(\d+)"/).exec(aA);return new bk(aB[1]!=="function"?aB[1]:null,bM(j[aB[2]]),ba(j[aB[3]]))}function bm(aA){this.members=aA}bm.prototype.toString=function(){var aB=be;be=function(aE){return aE.name==="this"?"this":aB(aE)};var aD="";for(var aA=0,aC=this.members.length;aA<aC;++aA){if(this.members[aA].label){aD+=this.members[aA].label+": "}aD+=this.members[aA].value.toString()+", "}be=aB;return aD.substring(0,aD.length-2)};function bK(aA){var aD=aA.split(",");for(var aB=0;aB<aD.length;++aB){var aC=aD[aB].indexOf(":");if(aC<0){aD[aB]={value:bq(aD[aB])}}else{aD[aB]={label:bT(aD[aB].substring(0,aC)),value:bq(bT(aD[aB].substring(aC+1)))}}}return new bm(aD)}function H(aA){if(aA.charAt(0)==="("||aA.charAt(0)==="["){return aA.charAt(0)+H(aA.substring(1,aA.length-1))+aA.charAt(aA.length-1)}if(aA.charAt(0)==="{"){if(/^\{\s*(?:[A-Za-z_$][\w$]*|'\d+')\s*:/.test(aA)){return"{"+A(aA.substring(1,aA.length-1),"I")+"}"}return"["+H(aA.substring(1,aA.length-1))+"]"}var aB=bA(aA);var aC=a0(aB.middle);aC=aC.replace(/"[ABC](\d+)"/g,function(aD,aE){return H(j[aE])});return aB.untrim(aC)}function y(aA){return aA.replace(/(\.\s*)?(\b[A-Za-z_$][\w$]*\b)(\s*\.\s*(\b[A-Za-z_$][\w$]*\b)(\s*\()?)?/g,function(aF,aD,aH,aB,aC,aE){if(aD){return aF}var aG={name:aH,member:aC,callSign:!!aE};return be(aG)+(aB===ae?"":aB)})}function b(aA,aB){this.expr=aA;this.transforms=aB}b.prototype.toString=function(){var aB=this.transforms;var aA=y(this.expr);return aA.replace(/"!(\d+)"/g,function(aC,aD){return aB[aD].toString()})};bq=function(aA){var aB=[];var aC=H(aA);aC=aC.replace(/"H(\d+)"/g,function(aD,aE){aB.push(bF(j[aE]));return'"!'+(aB.length-1)+'"'});aC=aC.replace(/"F(\d+)"/g,function(aD,aE){aB.push(bh(j[aE]));return'"!'+(aB.length-1)+'"'});aC=aC.replace(/"I(\d+)"/g,function(aD,aE){aB.push(bK(j[aE]));return'"!'+(aB.length-1)+'"'});return new b(aC,aB)};function bV(aC,aA,aB){this.name=aC;this.value=aA;this.isDefault=aB}bV.prototype.toString=function(){return this.name+" = "+this.value};function bf(aB,aE){var aA=aB.indexOf("=");var aF,aC,aD;if(aA<0){aF=aB;aC=aE;aD=true}else{aF=aB.substring(0,aA);aC=bq(aB.substring(aA+1));aD=false}return new bV(bT(aF.replace(/(\s*"C\d+")+/g,"")),aC,aD)}function bw(aA){if(aA==="int"||aA==="float"){return"0"}if(aA==="boolean"){return"false"}if(aA==="color"){return"0x00000000"}return"null"}function bH(aA,aB){this.definitions=aA;this.varType=aB}bH.prototype.getNames=function(){var aA=[];for(var aB=0,aC=this.definitions.length;aB<aC;++aB){aA.push(this.definitions[aB].name)}return aA};bH.prototype.toString=function(){return"var "+this.definitions.join(",")};function bi(aA){this.expression=aA}bi.prototype.toString=function(){return this.expression.toString()};function d(aA){if(bD.test(aA)){var aB=o.exec(aA);var aC=aA.substring(aB[0].length).split(",");var aE=bw(aB[2]);for(var aD=0;aD<aC.length;++aD){aC[aD]=bf(aC[aD],aE)}return new bH(aC,aB[2])}return new bi(bq(aA))}function bo(aC,aA,aB){this.initStatement=aC;this.condition=aA;this.step=aB}bo.prototype.toString=function(){return"("+this.initStatement+"; "+this.condition+"; "+this.step+")"};function bx(aA,aB){this.initStatement=aA;this.container=aB}bx.prototype.toString=function(){var aA=this.initStatement.toString();if(aA.indexOf("=")>=0){aA=aA.substring(0,aA.indexOf("="))}return"("+aA+" in "+this.container+")"};function br(aA,aB){this.initStatement=aA;this.container=aB}br.iteratorId=0;br.prototype.toString=function(){var aA=this.initStatement.toString();var aD="$it"+(br.iteratorId++);var aB=aA.replace(/^\s*var\s*/,"").split("=")[0];var aC="var "+aD+" = new $p.ObjectIterator("+this.container+"), "+aB+" = void(0)";var aE=aD+".hasNext() && (("+aB+" = "+aD+".next()) || true)";return"("+aC+"; "+aE+";)"};function k(aA){var aB;if(/\bin\b/.test(aA)){aB=aA.substring(1,aA.length-1).split(/\bin\b/g);return new bx(d(bT(aB[0])),bq(aB[1]))}if(aA.indexOf(":")>=0&&aA.indexOf(";")<0){aB=aA.substring(1,aA.length-1).split(":");return new br(d(bT(aB[0])),bq(aB[1]))}aB=aA.substring(1,aA.length-1).split(";");return new bo(d(bT(aB[0])),bq(aB[1]),bq(aB[2]))}function a(aA){aA.sort(function(aB,aC){return aC.weight-aB.weight})}function e(aA,aC,aB){this.name=aA;this.body=aC;this.isStatic=aB;aC.owner=this}e.prototype.toString=function(){return""+this.body};function bc(aA,aC,aB){this.name=aA;this.body=aC;this.isStatic=aB;aC.owner=this}bc.prototype.toString=function(){return""+this.body};function u(aE){var aF=C.exec(aE);C.lastIndex=0;var aD=aF[1].indexOf("static")>=0;var aG=j[bz(aF[6])],aB;var aA=bQ,aC=bS();bQ=aC;if(aF[2]==="interface"){aB=new e(aF[3],w(aG,aF[3],aF[4]),aD)}else{aB=new bc(aF[3],q(aG,aF[3],aF[4],aF[5]),aD)}h(aB,aC,aA);bQ=aA;return aB}function bn(aB,aA,aD,aC){this.name=aB;this.params=aA;this.body=aD;this.isStatic=aC}bn.prototype.toString=function(){var aA=K({},this.params.getNames());var aB=be;be=function(aD){return aA.hasOwnProperty(aD.name)?aD.name:aB(aD)};var aC="function "+this.methodId+this.params+" "+this.body+"\n";be=aB;return aC};function B(aA){var aC=bO.exec(aA);bO.lastIndex=0;var aB=aC[1].indexOf("static")>=0;var aD=aC[6]!==";"?j[bz(aC[6])]:"{}";return new bn(aC[3],bM(j[bz(aC[4])]),ba(aD),aB)}function bd(aA,aB,aC){this.definitions=aA;this.fieldType=aB;this.isStatic=aC}bd.prototype.getNames=function(){var aA=[];for(var aB=0,aC=this.definitions.length;aB<aC;++aB){aA.push(this.definitions[aB].name)}return aA};bd.prototype.toString=function(){var aD=be({name:"[this]"});if(this.isStatic){var aE=this.owner.name;var aG=[];for(var aF=0,aH=this.definitions.length;aF<aH;++aF){var aI=this.definitions[aF];var aB=aI.name,aC=aE+"."+aB;var aA="if("+aC+" === void(0)) {\n "+aC+" = "+aI.value+"; }\n$p.defineProperty("+aD+", '"+aB+"', { get: function(){return "+aC+";}, set: function(val){"+aC+" = val;} });\n";aG.push(aA)}return aG.join("")}return aD+"."+this.definitions.join("; "+aD+".")};function t(aA){var aB=o.exec(aA);var aF=aB[1].indexOf("static")>=0;var aC=aA.substring(aB[0].length).split(/,\s*/g);var aE=bw(aB[2]);for(var aD=0;aD<aC.length;++aD){aC[aD]=bf(aC[aD],aE)}return new bd(aC,aB[2],aF)}function bC(aA,aB){this.params=aA;this.body=aB}bC.prototype.toString=function(){var aA=K({},this.params.getNames());var aC=be;be=function(aE){return aA.hasOwnProperty(aE.name)?aE.name:aC(aE)};var aB="function $constr_"+this.params.params.length+this.params.toString();var aD=this.body.toString();if(!/\$(superCstr|constr)\b/.test(aD)){aD="{\n$superCstr();\n"+aD.substring(1)}be=aC;return aB+aD+"\n"};function ay(aA){var aC=new RegExp(/"B(\d+)"\s*"A(\d+)"/).exec(aA);var aB=bM(j[aC[1]]);return new bC(aB,ba(j[aC[2]]))}function bB(aF,aC,aD,aH,aB,aA){var aE,aG;this.name=aF;this.interfacesNames=aC;this.methodsNames=aD;this.fields=aH;this.innerClasses=aB;this.misc=aA;for(aE=0,aG=aH.length;aE<aG;++aE){aH[aE].owner=this}}bB.prototype.getMembers=function(aE,aB,aG){if(this.owner.base){this.owner.base.body.getMembers(aE,aB,aG)}var aH,aI,aJ,aA;for(aH=0,aJ=this.fields.length;aH<aJ;++aH){var aC=this.fields[aH].getNames();for(aI=0,aA=aC.length;aI<aA;++aI){aE[aC[aI]]=this.fields[aH]}}for(aH=0,aJ=this.methodsNames.length;aH<aJ;++aH){var aF=this.methodsNames[aH];aB[aF]=true}for(aH=0,aJ=this.innerClasses.length;aH<aJ;++aH){var aD=this.innerClasses[aH];aG[aD.name]=aD}};bB.prototype.toString=function(){function aB(aQ){var aR=0;while(aQ){++aR;aQ=aQ.scope}return aR}var aF=aB(this.owner);var aE=this.name;var aI="";var aD="";var aP={},aG={},aH={};this.getMembers(aP,aG,aH);var aJ,aL,aK,aN;if(this.owner.interfaces){var aC=[],aO;for(aJ=0,aL=this.interfacesNames.length;aJ<aL;++aJ){if(!this.owner.interfaces[aJ]){continue}aO=be({name:this.interfacesNames[aJ]});aC.push(aO);aI+="$p.extendInterfaceMembers("+aE+", "+aO+");\n"}aD+=aE+".$interfaces = ["+aC.join(", ")+"];\n"}aD+=aE+".$isInterface = true;\n";aD+=aE+".$methods = ['"+this.methodsNames.join("', '")+"'];\n";a(this.innerClasses);for(aJ=0,aL=this.innerClasses.length;aJ<aL;++aJ){var aM=this.innerClasses[aJ];if(aM.isStatic){aI+=aE+"."+aM.name+" = "+aM+";\n"}}for(aJ=0,aL=this.fields.length;aJ<aL;++aJ){var aA=this.fields[aJ];if(aA.isStatic){aI+=aE+"."+aA.definitions.join(";\n"+aE+".")+";\n"}}return"(function() {\nfunction "+aE+"() { throw 'Unable to create the interface'; }\n"+aI+aD+"return "+aE+";\n})()"};w=function(aI,aA,aD){var aC=aI.substring(1,aI.length-1);aC=bl(aC);aC=x(aC,aA);var aF=[],aL=[];aC=aC.replace(/"([DE])(\d+)"/g,function(aN,aO,aP){if(aO==="D"){aF.push(aP)}else{if(aO==="E"){aL.push(aP)}}return""});var aH=aC.split(/;(?:\s*;)*/g);var aK;var aJ,aM;if(aD!==ae){aK=aD.replace(/^\s*extends\s+(.+?)\s*$/g,"$1").split(/\s*,\s*/g)}for(aJ=0,aM=aF.length;aJ<aM;++aJ){var aB=B(j[aF[aJ]]);aF[aJ]=aB.name}for(aJ=0,aM=aH.length-1;aJ<aM;++aJ){var aE=bA(aH[aJ]);aH[aJ]=t(aE.middle)}var aG=aH.pop();for(aJ=0,aM=aL.length;aJ<aM;++aJ){aL[aJ]=u(j[aL[aJ]])}return new bB(aA,aK,aF,aH,aL,{tail:aG})};function E(aA,aE,aF,aG,aK,aD,aC,aI,aB){var aH,aJ;this.name=aA;this.baseClassName=aE;this.interfacesNames=aF;this.functions=aG;this.methods=aK;this.fields=aD;this.cstrs=aC;this.innerClasses=aI;this.misc=aB;for(aH=0,aJ=aD.length;aH<aJ;++aH){aD[aH].owner=this}}E.prototype.getMembers=function(aE,aA,aF){if(this.owner.base){this.owner.base.body.getMembers(aE,aA,aF)}var aG,aH,aI,aJ;for(aG=0,aI=this.fields.length;aG<aI;++aG){var aC=this.fields[aG].getNames();for(aH=0,aJ=aC.length;aH<aJ;++aH){aE[aC[aH]]=this.fields[aG]}}for(aG=0,aI=this.methods.length;aG<aI;++aG){var aB=this.methods[aG];aA[aB.name]=aB}for(aG=0,aI=this.innerClasses.length;aG<aI;++aG){var aD=this.innerClasses[aG];aF[aD.name]=aD}};E.prototype.toString=function(){function aH(a3){var a4=0;while(a3){++a4;a3=a3.scope}return a4}var aG=aH(this.owner);var aW="$this_"+aG;var aY=this.name;var aO="var "+aW+" = this;\n";var aU="";var aK="";var aB={},aA={},aP={};this.getMembers(aB,aA,aP);var aC=be;be=function(a3){var a4=a3.name;if(a4==="this"){return a3.callSign||!a3.member?aW+".$self":aW}if(aB.hasOwnProperty(a4)){return aB[a4].isStatic?aY+"."+a4:aW+"."+a4}if(aP.hasOwnProperty(a4)){return aW+"."+a4}if(aA.hasOwnProperty(a4)){return aA[a4].isStatic?aY+"."+a4:aW+".$self."+a4}return aC(a3)};var aI;if(this.baseClassName){aI=aC({name:this.baseClassName});aO+="var $super = { $upcast: "+aW+" };\n";aO+="function $superCstr(){"+aI+".apply($super,arguments);if(!('$self' in $super)) $p.extendClassChain($super)}\n";aK+=aY+".$base = "+aI+";\n"}else{aO+="function $superCstr(){$p.extendClassChain("+aW+")}\n"}if(this.owner.base){aU+="$p.extendStaticMembers("+aY+", "+aI+");\n"}var aJ,aN,aM,aS;if(this.owner.interfaces){var aQ=[],a2;for(aJ=0,aN=this.interfacesNames.length;aJ<aN;++aJ){if(!this.owner.interfaces[aJ]){continue}a2=aC({name:this.interfacesNames[aJ]});aQ.push(a2);aU+="$p.extendInterfaceMembers("+aY+", "+a2+");\n"}aK+=aY+".$interfaces = ["+aQ.join(", ")+"];\n"}if(this.functions.length>0){aO+=this.functions.join("\n")+"\n"}a(this.innerClasses);for(aJ=0,aN=this.innerClasses.length;aJ<aN;++aJ){var aX=this.innerClasses[aJ];if(aX.isStatic){aU+=aY+"."+aX.name+" = "+aX+";\n";aO+=aW+"."+aX.name+" = "+aY+"."+aX.name+";\n"}else{aO+=aW+"."+aX.name+" = "+aX+";\n"}}for(aJ=0,aN=this.fields.length;aJ<aN;++aJ){var a1=this.fields[aJ];if(a1.isStatic){aU+=aY+"."+a1.definitions.join(";\n"+aY+".")+";\n";for(aM=0,aS=a1.definitions.length;aM<aS;++aM){var aT=a1.definitions[aM].name,aL=aY+"."+aT;aO+="$p.defineProperty("+aW+", '"+aT+"', {get: function(){return "+aL+"}, set: function(val){"+aL+" = val}});\n"}}else{aO+=aW+"."+a1.definitions.join(";\n"+aW+".")+";\n"}}var aZ={};for(aJ=0,aN=this.methods.length;aJ<aN;++aJ){var aV=this.methods[aJ];var aE=aZ[aV.name];var aR=aV.name+"$"+aV.params.params.length;if(aE){++aE;aR+="_"+aE}else{aE=1}aV.methodId=aR;aZ[aV.name]=aE;if(aV.isStatic){aU+=aV;aU+="$p.addMethod("+aY+", '"+aV.name+"', "+aR+");\n";aO+="$p.addMethod("+aW+", '"+aV.name+"', "+aR+");\n"}else{aO+=aV;aO+="$p.addMethod("+aW+", '"+aV.name+"', "+aR+");\n"}}aO+=bT(this.misc.tail);if(this.cstrs.length>0){aO+=this.cstrs.join("\n")+"\n"}aO+="function $constr() {\n";var aD=[];for(aJ=0,aN=this.cstrs.length;aJ<aN;++aJ){var aF=this.cstrs[aJ].params.params.length;aD.push("if(arguments.length === "+aF+") { $constr_"+aF+".apply("+aW+", arguments); }")}if(aD.length>0){aO+=aD.join(" else ")+" else "}aO+="$superCstr();\n}\n";aO+="$constr.apply(null, arguments);\n";be=aC;return"(function() {\nfunction "+aY+"() {\n"+aO+"}\n"+aU+aK+"return "+aY+";\n})()"};q=function(aG,aB,aD,aC){var aN=aG.substring(1,aG.length-1);aN=bl(aN);aN=x(aN,aB);var aO=[],aM=[],aA=[],aJ=[];aN=aN.replace(/"([DEGH])(\d+)"/g,function(aP,aQ,aR){if(aQ==="D"){aO.push(aR)}else{if(aQ==="E"){aM.push(aR)}else{if(aQ==="H"){aJ.push(aR)}else{aA.push(aR)}}}return""});var aH=aN.replace(/^(?:\s*;)+/,"").split(/;(?:\s*;)*/g);var aI,aK;var aL;if(aD!==ae){aI=aD.replace(/^\s*extends\s+([A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)\s*$/g,"$1")}if(aC!==ae){aK=aC.replace(/^\s*implements\s+(.+?)\s*$/g,"$1").split(/\s*,\s*/g)}for(aL=0;aL<aJ.length;++aL){aJ[aL]=bF(j[aJ[aL]])}for(aL=0;aL<aO.length;++aL){aO[aL]=B(j[aO[aL]])}for(aL=0;aL<aH.length-1;++aL){var aE=bA(aH[aL]);aH[aL]=t(aE.middle)}var aF=aH.pop();for(aL=0;aL<aA.length;++aL){aA[aL]=ay(j[aA[aL]])}for(aL=0;aL<aM.length;++aL){aM[aL]=u(j[aM[aL]])}return new E(aB,aI,aK,aJ,aO,aH,aA,aM,{tail:aF})};function J(aA,aB){this.name=aA;this.body=aB;aB.owner=this}J.prototype.toString=function(){return"var "+this.name+" = "+this.body+";\n$p."+this.name+" = "+this.name+";\n"};function bU(aA,aB){this.name=aA;this.body=aB;aB.owner=this}bU.prototype.toString=function(){return"var "+this.name+" = "+this.body+";\n$p."+this.name+" = "+this.name+";\n"};function c(aD){var aE=C.exec(aD);C.lastIndex=0;var aF=j[bz(aE[6])];var aA=bQ,aC=bS();bQ=aC;var aB;if(aE[2]==="interface"){aB=new J(aE[3],w(aF,aE[3],aE[4]))}else{aB=new bU(aE[3],q(aF,aE[3],aE[4],aE[5]))}h(aB,aC,aA);bQ=aA;return aB}function by(aB,aA,aC){this.name=aB;this.params=aA;this.body=aC}by.prototype.toString=function(){var aA=K({},this.params.getNames());var aB=be;be=function(aD){return aA.hasOwnProperty(aD.name)?aD.name:aB(aD)};var aC="function "+this.name+this.params+" "+this.body+"\n$p."+this.name+" = "+this.name+";";be=aB;return aC};function bt(aA){var aB=bO.exec(aA);var aC=bO.lastIndex=0;return new by(aB[3],bM(j[bz(aB[4])]),ba(j[bz(aB[6])]))}function bj(aB){var aA=aB;aA=aA.replace(/\b(catch\s*"B\d+"\s*"A\d+")(\s*catch\s*"B\d+"\s*"A\d+")+/g,"$1");return aA}function bv(aB,aA){this.argument=aB;this.misc=aA}bv.prototype.toString=function(){return this.misc.prefix+this.argument.toString()};function z(aB,aA){this.argument=aB;this.misc=aA}z.prototype.toString=function(){return this.misc.prefix+this.argument.toString()};function I(aC,aB,aA){this.name=aC;this.argument=aB;this.misc=aA}I.prototype.toString=function(){var aA=this.misc.prefix;if(this.argument!==ae){aA+=this.argument.toString()}return aA};function bE(aA){this.expr=aA}bE.prototype.toString=function(){return"case "+this.expr+":"};function m(aA){this.label=aA}m.prototype.toString=function(){return this.label};bu=function(aH,aG,aN){var aA=new RegExp(/\b(catch|for|if|switch|while|with)\s*"B(\d+)"|\b(do|else|finally|return|throw|try|break|continue)\b|("[ADEH](\d+)")|\b(case)\s+([^:]+):|\b([A-Za-z_$][\w$]*\s*:)|(;)/g);var aF=[];aH=bj(aH);var aI=0,aM,aB;while((aM=aA.exec(aH))!==null){if(aM[1]!==ae){var aJ=aH.lastIndexOf('"B',aA.lastIndex);var aD=aH.substring(aI,aJ);if(aM[1]==="for"){aF.push(new bv(k(j[aM[2]]),{prefix:aD}))}else{if(aM[1]==="catch"){aF.push(new z(bM(j[aM[2]]),{prefix:aD}))}else{aF.push(new I(aM[1],bq(j[aM[2]]),{prefix:aD}))}}}else{if(aM[3]!==ae){aF.push(new I(aM[3],ae,{prefix:aH.substring(aI,aA.lastIndex)}))}else{if(aM[4]!==ae){aB=aH.substring(aI,aA.lastIndex-aM[4].length);if(bT(aB).length!==0){continue}aF.push(aB);var aL=aM[4].charAt(1),aC=aM[5];if(aL==="D"){aF.push(aG(j[aC]))}else{if(aL==="E"){aF.push(aN(j[aC]))}else{if(aL==="H"){aF.push(bF(j[aC]))}else{aF.push(ba(j[aC]))}}}}else{if(aM[6]!==ae){aF.push(new bE(bq(bT(aM[7]))))}else{if(aM[8]!==ae){aB=aH.substring(aI,aA.lastIndex-aM[8].length);if(bT(aB).length!==0){continue}aF.push(new m(aH.substring(aI,aA.lastIndex)))}else{var aE=bA(aH.substring(aI,aA.lastIndex-1));aF.push(aE.left);aF.push(d(aE.middle));aF.push(aE.right+";")}}}}}aI=aA.lastIndex}var aK=bA(aH.substring(aI));aF.push(aK.left);if(aK.middle!==""){aF.push(d(aK.middle));aF.push(";"+aK.right)}return aF};function v(aD){var aC=[];for(var aB=0,aE=aD.length;aB<aE;++aB){var aA=aD[aB];if(aA instanceof bH){aC=aC.concat(aA.getNames())}else{if(aA instanceof bv&&aA.argument.initStatement instanceof bH){aC=aC.concat(aA.argument.initStatement.getNames())}else{if(aA instanceof e||aA instanceof bc||aA instanceof J||aA instanceof bU||aA instanceof by||aA instanceof bk){aC.push(aA.name)}}}}return K({},aC)}function r(aA){this.statements=aA}r.prototype.toString=function(){var aA=v(this.statements);var aB=be;if(!bP(aA)){be=function(aD){return aA.hasOwnProperty(aD.name)?aD.name:aB(aD)}}var aC="{\n"+this.statements.join("")+"\n}";be=aB;return aC};ba=function(aA){var aB=bA(aA.substring(1,aA.length-1));return new r(bu(aB.middle))};function bJ(aA){this.statements=aA}bJ.prototype.toString=function(){var aC=[],aB=[],aA;for(var aD=0,aF=this.statements.length;aD<aF;++aD){aA=this.statements[aD];if(aA instanceof bU||aA instanceof J){aC.push(aA)}else{aB.push(aA)}}a(aC);var aE=v(this.statements);be=function(aI){var aH=aI.name;if(aE.hasOwnProperty(aH)){return aH}if(bs.hasOwnProperty(aH)||W.hasOwnProperty(aH)||ap.hasOwnProperty(aH)){return"$p."+aH}return aH};var aG="// this code was autogenerated from PJS\n(function($p) {\n"+aC.join("")+"\n"+aB.join("")+"\n})";be=null;return aG};n=function(){var aA=bl(j[0]);aA=aA.replace(/\bimport\s+[^;]+;/g,"");return new bJ(bu(aA,bt,c))};function l(aD){var aL={};var aO,aH;for(aO in bG){if(bG.hasOwnProperty(aO)){aH=bG[aO];var aN=aH.scopeId,aB=aH.name;if(aN){var aA=bG[aN];aH.scope=aA;if(aA.inScope===ae){aA.inScope={}}aA.inScope[aB]=aH}else{aL[aB]=aH}}}function aE(aV,aS){var aP=aS.split(".");var aT=aV.scope,aQ;while(aT){if(aT.hasOwnProperty(aP[0])){aQ=aT[aP[0]];break}aT=aT.scope}if(aQ===ae){aQ=aL[aP[0]]}for(var aR=1,aU=aP.length;aR<aU&&aQ;++aR){aQ=aQ.inScope[aP[aR]]}return aQ}for(aO in bG){if(bG.hasOwnProperty(aO)){aH=bG[aO];var aI=aH.body.baseClassName;if(aI){var aF=aE(aH,aI);if(aF){aH.base=aF;if(!aF.derived){aF.derived=[]}aF.derived.push(aH)}}var aJ=aH.body.interfacesNames,aC=[],aK,aM;if(aJ&&aJ.length>0){for(aK=0,aM=aJ.length;aK<aM;++aK){var aG=aE(aH,aJ[aK]);aC.push(aG);if(!aG){continue}if(!aG.derived){aG.derived=[]}aG.derived.push(aH)}if(aC.length>0){aH.interfaces=aC}}}}}function bR(aB){var aG=[],aJ={};var aA,aD,aF;for(aA in bG){if(bG.hasOwnProperty(aA)){aF=bG[aA];if(!aF.inScope&&!aF.derived){aG.push(aA);aF.weight=0}else{var aE=[];if(aF.inScope){for(aD in aF.inScope){if(aF.inScope.hasOwnProperty(aD)){aE.push(aF.inScope[aD])}}}if(aF.derived){aE=aE.concat(aF.derived)}aJ[aA]=aE}}}function aC(aK,aM){var aL=aJ[aK];if(!aL){return false}var aN=aL.indexOf(aM);if(aN<0){return false}aL.splice(aN,1);if(aL.length>0){return false}delete aJ[aK];return true}while(aG.length>0){aA=aG.shift();aF=bG[aA];if(aF.scopeId&&aC(aF.scopeId,aF)){aG.push(aF.scopeId);bG[aF.scopeId].weight=aF.weight+1}if(aF.base&&aC(aF.base.classId,aF)){aG.push(aF.base.classId);aF.base.weight=aF.weight+1}if(aF.interfaces){var aH,aI;for(aH=0,aI=aF.interfaces.length;aH<aI;++aH){if(!aF.interfaces[aH]||!aC(aF.interfaces[aH].classId,aF)){continue}aG.push(aF.interfaces[aH].classId);aF.interfaces[aH].weight=aF.weight+1}}}}var p=n();l(p);bR(p);var bp=p.toString();bp=bp.replace(/\s*\n(?:[\t ]*\n)+/g,"\n\n");return bg(bp,D)}function Y(n,r){var e=new RegExp(/\/\*\s*@pjs\s+((?:[^\*]|\*+[^\*\/])*)\*\//g).exec(n);if(e&&e.length===2){var o=[],l=e.splice(1,2)[0].replace(/\{([\s\S]*?)\}/g,(function(){return function(u,t){o.push(t);return"{"+(o.length-1)+"}"}}())).replace("\n","").replace("\r","").split(";");var f=function(t){return t.replace(/^\s*["']?/,"").replace(/["']?\s*$/,"")};for(var b=0,d=l.length;b<d;b++){var h=l[b].split("=");if(h&&h.length===2){var p=f(h[0]),g=f(h[1]),q=[];if(p==="preload"){q=g.split(",");for(var c=0,a=q.length;c<a;c++){var s=f(q[c]);r.imageCache.add(s)}}else{if(p==="font"){q=g.split(",");for(var k=0,i=q.length;k<i;k++){var j=f(q[k]),m=/^\{(\d*?)\}$/.exec(j);Q.preloading.add(m?JSON.parse("{"+o[m[1]]+"}"):j)}}else{if(p==="pauseOnBlur"){r.options.pauseOnBlur=g==="true"}else{if(p==="globalKeyEvents"){r.options.globalKeyEvents=g==="true"}else{if(p.substring(0,6)==="param-"){r.params[p.substring(6)]=g}else{r.options[p]=g}}}}}}}}return n}S.compile=function(a){var b=new S.Sketch();var d=Y(a,b);var c=au(d);b.sourceCode=c;return b};var am=(function(){var b={},e="undefined",d="function",a=!1,c=!0,g=512,f="log";if(typeof tinylog!==e&&typeof tinylog[f]===d){b[f]=tinylog[f]}else{if(typeof at!==e&&!at.fake){(function(){var p=at,r="div",B="style",x="title",h={zIndex:10000,position:"fixed",bottom:"0px",width:"100%",height:"15%",fontFamily:"sans-serif",color:"#ccc",backgroundColor:"black"},z={position:"relative",fontFamily:"monospace",overflow:"auto",height:"100%",paddingTop:"5px"},v={height:"5px",marginTop:"-5px",cursor:"n-resize",backgroundColor:"darkgrey"},q={position:"absolute",top:"5px",right:"20px",color:"#111",MozBorderRadius:"4px",webkitBorderRadius:"4px",borderRadius:"4px",cursor:"pointer",fontWeight:"normal",textAlign:"center",padding:"3px 5px",backgroundColor:"#333",fontSize:"12px"},k={minHeight:"16px"},y={fontSize:"12px",margin:"0 8px 0 8px",maxWidth:"100%",whiteSpace:"pre-wrap",overflow:"auto"},A=p.defaultView,s=p.documentElement,o=s[B],m=function(){var E=arguments.length,F,C,D;while(E--){C=arguments[E--];F=arguments[E][B];for(D in C){if(C.hasOwnProperty(D)){F[D]=C[D]}}}},u=function(C,D,E){if(C.addEventListener){C.addEventListener(D,E,a)}else{if(C.attachEvent){C.attachEvent("on"+D,E)}}return[C,D,E]},n=function(C,D,E){if(C.removeEventListener){C.removeEventListener(D,E,a)}else{if(C.detachEvent){C.detachEvent("on"+D,E)}}},i=function(D){var E=D.childNodes,C=E.length;while(C--){D.removeChild(E.item(0))}},t=function(C,D){return C.appendChild(D)},w=function(C){return p.createElement(C)},j=function(C){return p.createTextNode(C)},l=b[f]=function(I){var F,E=o.paddingBottom,ax=w(r),aE=ax[B],aC=t(ax,w(r)),H=t(ax,w(r)),J=t(ax,w(r)),K=a,G=a,aB=a,D=0,aD=function(){o.paddingBottom=ax.clientHeight+"px"},aF=function(aA){var az=A.innerHeight,ay=aC.clientHeight;if(aA<0){aA=0}else{if(aA+ay>az){aA=az-ay}}aE.height=aA/az*100+"%";aD()},C=[u(p,"mousemove",function(ay){if(K){aF(A.innerHeight-ay.clientY);H.scrollTop=aB}}),u(p,"mouseup",function(){if(K){K=aB=a}}),u(aC,"dblclick",function(ay){ay.preventDefault();if(G){aF(G);G=a}else{G=ax.clientHeight;aE.height="0px"}}),u(aC,"mousedown",function(ay){ay.preventDefault();K=c;aB=H.scrollTop}),u(aC,"contextmenu",function(){K=a}),u(J,"click",function(){F()})];F=function(){var ay=C.length;while(ay--){n.apply(b,C[ay])}s.removeChild(ax);o.paddingBottom=E;i(H);i(ax);b[f]=l};m(ax,h,H,z,aC,v,J,q);J[x]="Close Log";t(J,j("\u2716"));aC[x]="Double-click to toggle log minimization";s.insertBefore(ax,s.firstChild);b[f]=function(ay){if(D===g){H.removeChild(H.firstChild)}else{D++}var az=t(H,w(r)),aA=t(az,w(r));az[x]=(new Date()).toLocaleTimeString();m(az,k,aA,y);t(aA,j(ay));H.scrollTop=H.scrollHeight};b[f](I);aD()}}())}else{if(typeof print===d){b[f]=print}}}return b}());S.logger=am;S.version="1.3.0";S.lib={};S.registerLibrary=function(a,b){S.lib[a]=b;if(b.hasOwnProperty("init")){b.init(ap)}};S.instances=al;S.getInstanceById=function(a){return al[O[a]]};S.Sketch=function(a){this.attachFunction=a;this.options={pauseOnBlur:false,globalKeyEvents:false};this.onLoad=R;this.onSetup=R;this.onPause=R;this.onLoop=R;this.onFrameStart=R;this.onFrameEnd=R;this.onExit=R;this.params={};this.imageCache={pending:0,images:{},operaCache:{},add:function(c,d){if(this.images[c]){return}if(!ak){this.images[c]=null}if(!d){d=new Image();d.onload=(function(e){return function(){e.pending--}}(this));this.pending++;d.src=c}this.images[c]=d;if(U.opera){var b=at.createElement("div");b.appendChild(d);b.style.position="absolute";b.style.opacity=0;b.style.width="1px";b.style.height="1px";if(!this.operaCache[c]){at.body.appendChild(b);this.operaCache[c]=b}}}};this.sourceCode=undefined;this.attach=function(b){if(typeof this.attachFunction==="function"){this.attachFunction(b)}else{if(this.sourceCode){var c=((new Function("return ("+this.sourceCode+");"))());c(b);this.attachFunction=c}else{throw"Unable to attach sketch to the processing instance"}}};this.toString=function(){var d;var c="((function(Sketch) {\n";c+="var sketch = new Sketch(\n"+this.sourceCode+");\n";for(d in this.options){if(this.options.hasOwnProperty(d)){var b=this.options[d];c+="sketch.options."+d+" = "+(typeof b==="string"?'"'+b+'"':""+b)+";\n"}}for(d in this.imageCache){if(this.options.hasOwnProperty(d)){c+='sketch.imageCache.add("'+d+'");\n'}}c+="return sketch;\n})(Processing.Sketch))";return c}};var ac=function(f,i){var h=[],b=[],a=i.length,d=0;function c(l,j){var k=new XMLHttpRequest();k.onreadystatechange=function(){if(k.readyState===4){var m;if(k.status!==200&&k.status!==0){m="Invalid XHR status "+k.status}else{if(k.responseText===""){if(("withCredentials" in new XMLHttpRequest())&&(new XMLHttpRequest()).withCredentials===false&&U.location.protocol==="file:"){m="XMLHttpRequest failure, possibly due to a same-origin policy violation. You can try loading this page in another browser, or load it from http://localhost using a local webserver. See the Processing.js README for a more detailed explanation of this problem and solutions."}else{m="File is empty."}}}j(k.responseText,m)}};k.open("GET",l,true);if(k.overrideMimeType){k.overrideMimeType("application/json")}k.setRequestHeader("If-Modified-Since","Fri, 01 Jan 1960 00:00:00 GMT");k.send(null)}function g(k,l){function m(o,p){h[k]=o;++d;if(p){b.push(l+" ==> "+p)}if(d===a){if(b.length===0){try{return new S(f,h.join("\n"))}catch(n){throw"Processing.js: Unable to execute pjs sketch: "+n}}else{throw"Processing.js: Unable to load pjs sketch files: "+b.join("\n")}}}if(l.charAt(0)==="#"){var j=at.getElementById(l.substring(1));if(j){m(j.text||j.textContent)}else{m("","Unable to load pjs sketch: element with id '"+l.substring(1)+"' was not found")}return}c(l,m)}for(var e=0;e<a;++e){g(e,i[e])}};var P=function(){at.removeEventListener("DOMContentLoaded",P,false);var m=at.getElementsByTagName("canvas"),g;for(var h=0,l=m.length;h<l;h++){var e=m[h].getAttribute("data-processing-sources");if(e===null){e=m[h].getAttribute("data-src");if(e===null){e=m[h].getAttribute("datasrc")}}if(e){g=e.split(" ");for(var i=0;i<g.length;){if(g[i]){i++}else{g.splice(i,1)}}ac(m[h],g)}}var k=at.getElementsByTagName("script");var a,n,b;for(a=0;a<k.length;a++){var c=k[a];if(!c.getAttribute){continue}var d=c.getAttribute("type");if(d&&(d.toLowerCase()==="text/processing"||d.toLowerCase()==="application/processing")){var f=c.getAttribute("data-processing-target");m=ae;if(f){m=at.getElementById(f)}else{var j=c.nextSibling;while(j&&j.nodeType!==1){j=j.nextSibling}if(j.nodeName.toLowerCase()==="canvas"){m=j}}if(m){if(c.getAttribute("src")){g=c.getAttribute("src").split(/\s+/);ac(m,g);continue}n=c.textContent||c.text;b=new S(m,n)}}}};S.loadSketchFromSources=ac;S.disableInit=function(){if(ak){at.removeEventListener("DOMContentLoaded",P,false)}};if(ak){U.Processing=S;at.addEventListener("DOMContentLoaded",P,false)}else{this.Processing=S}}(window,window.document,Math)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment