forked from kig/gl-volume3d-demo
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbundle.js
1 lines (1 loc) · 79.9 KB
/
bundle.js
1
!function r(a,n,e){function t(l,i){if(!n[l]){if(!a[l]){var c="function"==typeof require&&require;if(!i&&c)return c(l,!0);if(o)return o(l,!0);var u=new Error("Cannot find module '"+l+"'");throw u.code="MODULE_NOT_FOUND",u}var y=n[l]={exports:{}};a[l][0].call(y.exports,function(r){var n=a[l][1][r];return t(n||r)},y,y.exports,r,a,n,e)}return n[l].exports}for(var o="function"==typeof require&&require,l=0;l<e.length;l++)t(e[l]);return t}({1:[function(r,a,n){"use strict";function e(r,a){return!(!a||!/[^\s\0]/.test(a))&&(console.error(r+"\n"+a),a)}function t(r,a,n){var t=r.createShader(r.VERTEX_SHADER);r.shaderSource(t,a),r.compileShader(t);var o=r.createShader(r.FRAGMENT_SHADER);r.shaderSource(o,n),r.compileShader(o);var l=r.createProgram();r.attachShader(l,t),r.deleteShader(t),r.attachShader(l,o),r.deleteShader(o),r.linkProgram(l);var i=!1;if(i|=e("program",r.getProgramInfoLog(l)),i|=e("vertex",r.getShaderInfoLog(t)),i|=e("fragment",r.getShaderInfoLog(o)))throw new Error("Invalid shader");return l}function o(r,a,n,e,t){return i(r,a,n,"range",function(r){return parseFloat(r.value)},{min:e,max:t,step:.001,value:a[n]})}function l(r,a,n){return i(r,a,n,"checkbox",function(r){return r.checked},{checked:a[n]})}function i(r,a,n,e,t,o){var l=document.createElement("div"),i=document.createElement("label");i.for=r,i.textContent=r;var c=document.createElement("input");c.id=r,c.type=e;for(var u in o)c[u]=o[u];return c.oninput=c.onchange=function(r){a[n]=t(this)},l.appendChild(i),l.appendChild(c),l}var c=function(){function r(r,a){var n=[],e=!0,t=!1,o=void 0;try{for(var l,i=r[Symbol.iterator]();!(e=(l=i.next()).done)&&(n.push(l.value),!a||n.length!==a);e=!0);}catch(r){t=!0,o=r}finally{try{!e&&i.return&&i.return()}finally{if(t)throw o}}return n}return function(a,n){if(Array.isArray(a))return a;if(Symbol.iterator in Object(a))return r(a,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),u=document.body.appendChild(document.createElement("canvas")),y=u.getContext("webgl2"),w=r("right-now"),A=r("gl-mat4"),s=(r("gl-vec3"),r("./lib/fastIsosurface")),F=r("./shaders/shaders.js"),f=r("./lib/computeVertexNormals").computeVertexNormals,v={renderer:"isosurface",isocaps:!0,smoothing:!1,isoLevel:.65,isoRange:.6,raySteps:256},m={min:[.3,.3,.1],max:[.8,.8,.8]},p=3,d=30,h=4,x=-.5,g=t(y,F.rayMarch.vert,F.rayMarch.frag),M=t(y,F.isoSurface.vert,F.isoSurface.frag),C=t(y,F.isoCap.vert,F.isoCap.frag),T=!1,E=[0,0],R=[0,0],b=[0,0];window.onmousedown=function(r){"CANVAS"===r.target.tagName&&(r.preventDefault(),T=!0,E=[r.clientX,r.clientY])},window.onmousemove=function(r){if(T){for(R=[r.clientX,r.clientY],b=R.map(function(r,a){return r-E[a]}),E=R,h-=.01*b[0];h<0;)h+=2*Math.PI;h%=2*Math.PI,x-=.01*b[1],x=Math.max(-Math.PI/2,Math.min(Math.PI/2,x)),r.preventDefault()}},window.onmouseup=function(r){T&&(r.preventDefault(),T=!1)},window.addEventListener("wheel",function(r){r.preventDefault();var a=r.wheelDeltaY||r.deltaY||r.wheelDelta||r.detail;void 0===a&&(a=0),p*=Math.pow(1.01,-a),p=Math.max(.5,Math.min(10,p))},!1);var L=document.createElement("form");L.className="controls",L.style.position="absolute",L.style.zIndex=1,L.style.left="10px",L.style.top="10px",L.appendChild(o("Min X",m.min,0,0,1)),L.appendChild(o("Min Y",m.min,1,0,1)),L.appendChild(o("Min Z",m.min,2,0,1)),L.appendChild(o("Max X",m.max,0,0,1)),L.appendChild(o("Max Y",m.max,1,0,1)),L.appendChild(o("Max Z",m.max,2,0,1)),L.appendChild(o("Iso level",v,"isoLevel",0,1)),L.appendChild(o("Iso range",v,"isoRange",0,1)),L.appendChild(function(r,a,n,e){var t=document.createElement("div"),o=document.createElement("h4");return o.textContent=r,t.appendChild(o),e.forEach(function(e){var o=c(e,2),l=o[0],i=o[1],u=document.createElement("div"),y=document.createElement("label");y.textContent=" "+l;var w=document.createElement("input");w.name=r,w.type="radio",w.value=i,w.checked=a[n]===i,w.oninput=w.onchange=function(e){a[n]=this.form[r].value},u.appendChild(w),u.appendChild(y),t.appendChild(u)}),t}("Renderer",v,"renderer",[["Isosurface","isosurface"],["Volume","volume"]])),L.appendChild(l("Smoothing",v,"smoothing")),L.appendChild(l("Isocaps",v,"isocaps")),L.appendChild(o("Raymarch steps",v,"raySteps",32,384)),document.body.appendChild(L);var I=function(r,a,n){n||(n=a,a="text");var e=new XMLHttpRequest;e.responseType=a,e.onload=function(){n(e.response)},e.open("GET",r,!0),e.send()};I("data/MRbrain.txt","arraybuffer",function(a){function n(r,a,n,e,t,o){var l=2e3*v.isoLevel+1300|0,i=2e3*v.isoRange|0,c=[[0,0,0],e],u=s.marchingCubes(e,t,l-i,l+i,c);return v.smoothing&&f(u.vertices,u.normals,u.normals),r.bindBuffer(r.ARRAY_BUFFER,a),r.bufferData(r.ARRAY_BUFFER,u.vertices,r.STATIC_DRAW),r.bindBuffer(r.ARRAY_BUFFER,n),r.bufferData(r.ARRAY_BUFFER,u.normals,r.STATIC_DRAW),u.vertices.length/3}function e(r,a,n,e,t,o){var l=2e3*v.isoLevel+1300|0,i=2e3*v.isoRange|0,c=[o.min.map(function(r,a){return Math.floor(r*e[a])}),o.max.map(function(r,a){return Math.ceil(r*e[a])})],u=s.marchingCubesCaps(e,t,l-i,l+i,c);return r.bindBuffer(r.ARRAY_BUFFER,a),r.bufferData(r.ARRAY_BUFFER,u.vertices,r.STATIC_DRAW),r.bindBuffer(r.ARRAY_BUFFER,n),r.bufferData(r.ARRAY_BUFFER,u.normals,r.STATIC_DRAW),u.vertices.length/3}function t(r,a,n,e){r.useProgram(a),r.uniform1i(r.getCachedUniformLocation(a,"uTexture"),0),r.uniform1i(r.getCachedUniformLocation(a,"uIsocaps"),v.isocaps?1:0),r.uniform1f(r.getCachedUniformLocation(a,"uTime"),w()/1e3),r.uniform1f(r.getCachedUniformLocation(a,"uIsoLevel"),v.isoLevel),r.uniform1f(r.getCachedUniformLocation(a,"uIsoRange"),v.isoRange),r.uniform1f(r.getCachedUniformLocation(a,"uRaySteps"),v.raySteps),r.uniform2f(r.getCachedUniformLocation(a,"uResolution"),n,e),r.uniform3fv(r.getCachedUniformLocation(a,"uDimensions"),c),r.uniform3fv(r.getCachedUniformLocation(a,"uClipBoxMin"),m.min),r.uniform3fv(r.getCachedUniformLocation(a,"uClipBoxMax"),m.max),r.uniform3fv(r.getCachedUniformLocation(a,"uLightPosition"),[1,1,1]),r.uniform4fv(r.getCachedUniformLocation(a,"uLightColor"),[1,1,1,1]),r.uniformMatrix4fv(r.getCachedUniformLocation(a,"uProjection"),!1,I),r.uniformMatrix4fv(r.getCachedUniformLocation(a,"uModelView"),!1,L)}function o(r,a,n,e,t,o,l,i){r.bindBuffer(r.ARRAY_BUFFER,n),r.enableVertexAttribArray(a),r.vertexAttribPointer(a,e,t,o,l,i)}function l(){if("isosurface"===v.renderer){var r=v.smoothing!==V||v.isoLevel!==O||v.isoRange!==S,a=r||JSON.stringify(m)!==X;r&&(W=n(y,Y,q,c,R,m),O=v.isoLevel,S=v.isoRange,V=v.smoothing),a&&(G=e(y,z,j,c,R,m),X=JSON.stringify(m))}var l=y.drawingBufferWidth,i=y.drawingBufferHeight;y.clearColor(1,1,1,1),y.clear(y.COLOR_BUFFER_BIT|y.DEPTH_BUFFER_BIT|y.STENCIL_BUFFER_BIT),y.viewport(0,0,l,i),y.enable(y.DEPTH_TEST),y.depthMask(!0),A.perspective(I,d/180*Math.PI,l/i,.1,100);var u=[Math.cos(h)*Math.cos(x)*p,Math.sin(x)*p,Math.sin(h)*Math.cos(x)*p];A.lookAt(L,u,[0,0,0],[0,-1,0]),A.translate(L,L,[-.5,-.5,-.275]),A.scale(L,L,[1,1,.55]),"volume"===v.renderer&&(t(y,g,l,i),o(y,0,D,3,y.FLOAT,!1,0,0),y.drawArrays(y.TRIANGLES,0,6)),"isosurface"===v.renderer&&(t(y,M,l,i),o(y,0,Y,3,y.FLOAT,!1,0,0),o(y,1,q,3,y.FLOAT,!1,0,0),y.drawArrays(y.TRIANGLES,0,W),v.isocaps&&G>0&&(t(y,C,l,i),o(y,0,z,3,y.FLOAT,!1,0,0),o(y,1,j,3,y.FLOAT,!1,0,0),y.drawArrays(y.TRIANGLES,0,G)))}function i(){l(),requestAnimationFrame(i)}for(var c=[256,256,109],F=c[0],T=c[1],E=c[2],R=new Uint16Array(a),b=0;b<R.length;b++)R[b]=R[b]<<8&65280|R[b]>>8;for(var L=A.create(),I=A.create(),P=new Uint8Array(F*T*E*4),_=1/0,B=-1/0,b=0;b<R.length;b++)(N=R[b])<_&&(_=N),N>B&&(B=N);for(b=0;b<R.length;b++){var N=255*Math.max(0,Math.min(1,(R[b]-1300)/2e3));P[4*b]=N,P[4*b+1]=N,P[4*b+2]=N,P[4*b+3]=N>0?255:0}var U=y.createTexture();y.activeTexture(y.TEXTURE0),y.bindTexture(y.TEXTURE_3D,U),y.texParameteri(y.TEXTURE_3D,y.TEXTURE_WRAP_S,y.CLAMP_TO_EDGE),y.texParameteri(y.TEXTURE_3D,y.TEXTURE_WRAP_T,y.CLAMP_TO_EDGE),y.texParameteri(y.TEXTURE_3D,y.TEXTURE_WRAP_R,y.CLAMP_TO_EDGE),y.texParameteri(y.TEXTURE_3D,y.TEXTURE_BASE_LEVEL,0),y.texParameteri(y.TEXTURE_3D,y.TEXTURE_MAX_LEVEL,Math.log2(F)),y.texParameteri(y.TEXTURE_3D,y.TEXTURE_MIN_FILTER,y.LINEAR),y.texParameteri(y.TEXTURE_3D,y.TEXTURE_MAG_FILTER,y.LINEAR),y.texImage3D(y.TEXTURE_3D,0,y.RGBA,F,T,E,0,y.RGBA,y.UNSIGNED_BYTE,P);var D=y.createBuffer();y.bindBuffer(y.ARRAY_BUFFER,D),y.bufferData(y.ARRAY_BUFFER,new Float32Array([-1,1,0,-1,-1,0,1,-1,0,-1,1,0,1,-1,0,1,1,0]),y.STATIC_DRAW);var O,S,V,X,Y=y.createBuffer(),q=y.createBuffer(),z=y.createBuffer(),j=y.createBuffer(),W=0,G=0;y.getCachedUniformLocation=function(r,a){return r.uniformLocations||(r.uniformLocations={}),r.uniformLocations[a]||(r.uniformLocations[a]=this.getUniformLocation(r,a)),r.uniformLocations[a]},window.addEventListener("resize",r("canvas-fit")(u),!1),requestAnimationFrame(i)})},{"./lib/computeVertexNormals":2,"./lib/fastIsosurface":3,"./shaders/shaders.js":68,"canvas-fit":4,"gl-mat4":15,"gl-vec3":41,"right-now":63}],2:[function(r,a,n){"use strict";n.computeVertexNormals=function(r,a,n){console.time("computeVertexNormals"),void 0===n&&(n=new Float32Array(a.length));for(var e={},t=0;t<r.length;t+=3)void 0===e[o=(r[t+2]<<20)+(r[t+1]<<10)+r[t]]&&(e[o]=[0,0,0]),(l=e[o])[0]+=a[t],l[1]+=a[t+1],l[2]+=a[t+2];for(t=0;t<r.length;t+=3){var o=(r[t+2]<<20)+(r[t+1]<<10)+r[t],l=e[o];n[t]=l[0],n[t+1]=l[1],n[t+2]=l[2]}return console.timeEnd("computeVertexNormals"),n}},{}],3:[function(r,a,n){"use strict";function e(r,a,n){w.length<r.length&&(w=new Uint8Array(r.length));var e=0,t=r.length-8;for(e=0;e<t;e+=8)w[e+0]=r[e+0]>=a&&r[e+0]<=n?1:0,w[e+1]=r[e+1]>=a&&r[e+1]<=n?1:0,w[e+2]=r[e+2]>=a&&r[e+2]<=n?1:0,w[e+3]=r[e+3]>=a&&r[e+3]<=n?1:0,w[e+4]=r[e+4]>=a&&r[e+4]<=n?1:0,w[e+5]=r[e+5]>=a&&r[e+5]<=n?1:0,w[e+6]=r[e+6]>=a&&r[e+6]<=n?1:0,w[e+7]=r[e+7]>=a&&r[e+7]<=n?1:0;for(;e<r.length;e++)w[e+0]=r[e+0]>=a&&r[e+0]<=n?1:0}function t(){for(var r=0,a=0;a<arguments.length;a++)r+=arguments[a].vertices.length;for(var n=new Float32Array(r),e=new Float32Array(r),t=0,a=0;a<arguments.length;a++)for(var o=arguments[a],l=o.vertices,i=o.normals,c=0,u=l.length;c<u;)e[t]=i[c],n[t++]=l[c++],e[t]=i[c],n[t++]=l[c++],e[t]=i[c],n[t++]=l[c++],e[t]=i[c],n[t++]=l[c++],e[t]=i[c],n[t++]=l[c++],e[t]=i[c],n[t++]=l[c++],e[t]=i[c],n[t++]=l[c++],e[t]=i[c],n[t++]=l[c++],e[t]=i[c],n[t++]=l[c++];return{vertices:n,normals:e}}var o=function(){function r(r,a){var n=[],e=!0,t=!1,o=void 0;try{for(var l,i=r[Symbol.iterator]();!(e=(l=i.next()).done)&&(n.push(l.value),!a||n.length!==a);e=!0);}catch(r){t=!0,o=r}finally{try{!e&&i.return&&i.return()}finally{if(t)throw o}}return n}return function(a,n){if(Array.isArray(a))return a;if(Symbol.iterator in Object(a))return r(a,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),l=[new Float32Array([]),new Float32Array([1,0,0,0,0,1,0,1,0]),new Float32Array([0,0,0,1,1,0,1,0,1]),new Float32Array([1,1,0,0,0,1,0,1,0,1,0,1,0,0,1,1,1,0]),new Float32Array([0,0,0,0,1,1,1,1,0]),new Float32Array([1,0,0,0,1,1,1,1,0,0,0,1,0,1,1,1,0,0]),new Float32Array([1,1,0,1,0,1,0,0,0,1,1,0,0,0,0,0,1,1]),new Float32Array([1,1,0,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0,1,0,0,1,0,1,1]),new Float32Array([1,0,0,0,1,0,1,1,1]),new Float32Array([1,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,1,1]),new Float32Array([1,0,1,0,1,0,1,1,1,0,0,0,0,1,0,1,0,1]),new Float32Array([0,1,0,0,0,1,0,1,0,0,1,0,1,1,1,0,0,1,1,1,1,1,0,1,0,0,1]),new Float32Array([0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0]),new Float32Array([1,0,0,1,1,1,1,0,0,1,0,0,0,0,1,1,1,1,0,0,1,0,1,1,1,1,1]),new Float32Array([0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,1,1,1,1,1,0,1]),new Float32Array([1,0,1,0,0,1,1,1,1,1,1,1,0,0,1,0,1,1]),new Float32Array([1,0,1,0,1,1,0,0,0]),new Float32Array([1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1]),new Float32Array([0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,1,1]),new Float32Array([1,0,1,1,1,0,1,0,1,1,0,1,0,1,1,1,1,0,0,1,1,0,1,0,1,1,0]),new Float32Array([0,0,0,1,0,1,0,1,1,0,0,0,0,1,1,1,1,0]),new Float32Array([0,1,1,1,0,1,0,1,1,0,1,1,1,1,0,1,0,1,1,1,0,1,0,0,1,0,1]),new Float32Array([1,0,1,0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,1,1]),new Float32Array([1,0,1,0,1,1,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,0,1,1,1,1,0,1,0,1,1,1,0,1,1,0]),new Float32Array([1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,0,1,1]),new Float32Array([0,1,0,1,0,1,0,1,1,0,1,0,1,0,0,1,0,1,1,0,0,0,1,0,1,1,1]),new Float32Array([1,0,1,0,1,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1]),new Float32Array([0,1,0,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,1,1,0,1,0,0,1,1,1,0,1,1,0,1]),new Float32Array([0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,1,1,0,0,0,1,0,1]),new Float32Array([1,0,0,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,1,1,1,0,1]),new Float32Array([1,0,1,0,1,1,0,0,0,1,0,1,0,0,0,0,1,1,1,0,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0]),new Float32Array([1,0,1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1,0,1,1,1,1,1]),new Float32Array([1,0,0,1,1,1,0,0,1]),new Float32Array([1,0,0,1,1,1,0,0,1,1,0,0,0,0,1,0,1,0]),new Float32Array([0,0,0,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0]),new Float32Array([0,0,1,1,1,1,0,0,1,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,1]),new Float32Array([1,0,0,1,1,1,0,0,1,1,1,0,0,0,0,0,1,1]),new Float32Array([1,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,0,1,1,1]),new Float32Array([0,0,0,1,1,1,0,0,1,0,0,0,1,1,0,1,1,1,1,1,0,0,0,0,0,1,1]),new Float32Array([1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,0,1,1,1,1]),new Float32Array([1,0,0,0,1,0,1,1,1,1,0,0,1,1,1,0,0,1]),new Float32Array([0,1,0,1,0,0,0,0,1,1,0,0,0,1,0,1,1,1,0,0,1,1,0,0,1,1,1]),new Float32Array([1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0]),new Float32Array([0,1,0,1,1,1,1,1,1,0,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,0,1,0,1,0,0,0,1,0,0,1]),new Float32Array([1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,1,1,1,0,0,1]),new Float32Array([0,0,1,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1]),new Float32Array([1,1,1,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0]),new Float32Array([1,1,1,0,0,1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,0,1,1]),new Float32Array([1,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,0]),new Float32Array([1,0,0,0,1,0,1,0,0,1,0,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1,0]),new Float32Array([0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1]),new Float32Array([1,1,0,1,1,1,0,1,0,0,1,0,1,1,1,0,1,1]),new Float32Array([0,1,1,1,0,0,1,1,1,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,0]),new Float32Array([1,0,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,1,0,0,1,1,0,0,1,1,0,1,1]),new Float32Array([1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,1,1,0,1,1,1,0,1,1]),new Float32Array([0,1,1,1,1,0,1,1,0,0,1,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1]),new Float32Array([1,0,0,0,1,1,0,0,0,1,0,0,1,1,1,0,1,1,1,1,1,1,0,0,0,1,0]),new Float32Array([1,1,1,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,1,1,0,1,0,1,0,0,1,1,1,0,1,1,0,1,0]),new Float32Array([0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0]),new Float32Array([0,1,0,1,1,1,1,1,1,0,1,0,1,1,1,0,1,0,0,1,0,1,1,1,0,1,1]),new Float32Array([1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,1,1]),new Float32Array([1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,1,0,0,0,1,1,0,1,1,1,0,0,1,0,0,1,0,0,1,1,1,0,1,1,1,1,1,1,0,0]),new Float32Array([0,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,0,0,0]),new Float32Array([0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1]),new Float32Array([0,0,1,1,1,1,0,1,0]),new Float32Array([0,1,0,1,0,0,0,0,1,0,1,0,0,0,1,1,1,1]),new Float32Array([0,0,0,1,1,0,1,0,1,0,1,0,0,0,1,1,1,1]),new Float32Array([0,0,1,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,1,1]),new Float32Array([0,0,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,1]),new Float32Array([0,0,1,1,0,0,0,0,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,0,0]),new Float32Array([1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1]),new Float32Array([1,1,0,1,1,1,1,1,0,1,1,0,0,0,1,1,1,1,1,1,0,1,0,1,0,0,1,0,0,1,0,0,1,1,1,1]),new Float32Array([1,1,1,1,0,0,0,1,0,1,1,1,0,1,0,0,0,1]),new Float32Array([1,0,0,0,1,0,1,1,1,0,1,0,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1]),new Float32Array([0,1,0,1,0,1,0,0,0,0,1,0,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1]),new Float32Array([1,1,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,1,1,1,0,0,1,0,1,0,1,1,1,1,0,1,0,0,1]),new Float32Array([1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1]),new Float32Array([1,1,1,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,1]),new Float32Array([0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,1,1,1,1,1,1,1,0,0,1]),new Float32Array([0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,1]),new Float32Array([1,1,1,0,0,0,1,0,1,0,1,0,0,0,0,1,1,1]),new Float32Array([0,1,0,1,1,1,0,1,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1,1,1,1]),new Float32Array([0,0,0,1,1,1,0,1,0,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0,1,1,0]),new Float32Array([1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,1,0,1,1,1]),new Float32Array([0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,1,1,1,1,1,1,0]),new Float32Array([1,0,0,1,0,1,1,1,0,1,0,1,1,1,1,1,1,0]),new Float32Array([1,1,0,1,0,1,0,0,0,1,1,0,0,0,0,1,0,1,1,1,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,0]),new Float32Array([1,1,0,1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1,0,1,1,1,1]),new Float32Array([1,1,1,0,0,0,1,0,1,1,1,1,0,1,0,0,0,0,0,1,0,1,1,1,1,0,0]),new Float32Array([1,0,0,0,1,0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,1,1,1,0,1,0,1,0,0,1,0,1,1,1,1]),new Float32Array([1,0,1,0,1,0,0,0,0,1,0,1,1,1,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,0,1]),new Float32Array([1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,0,1,0,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0,1,1,1,1,0,1,1,1,1,0,1,0]),new Float32Array([0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0]),new Float32Array([1,1,1,1,0,0,1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,0,1]),new Float32Array([1,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0]),new Float32Array([1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1]),new Float32Array([0,0,1,1,0,0,1,1,1,0,0,1,1,1,1,0,1,0]),new Float32Array([1,0,0,0,0,1,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1]),new Float32Array([1,1,1,0,0,0,1,1,0,1,1,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0]),new Float32Array([0,1,0,0,0,1,1,1,1,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1]),new Float32Array([0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0]),new Float32Array([1,0,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,0,0,1,0,0,1]),new Float32Array([0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,1,0,0,0]),new Float32Array([1,1,1,1,1,0,0,0,1,1,1,1,0,0,1,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1]),new Float32Array([1,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,0]),new Float32Array([1,1,1,0,1,0,0,0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,0,1,1,0,0,1,1,1]),new Float32Array([0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0]),new Float32Array([0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,0,1,0,0,0,1,1,1,1]),new Float32Array([1,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1]),new Float32Array([1,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,0,1]),new Float32Array([0,0,1,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,1,1,1,1]),new Float32Array([0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,0,0,1,1,1,1]),new Float32Array([1,1,1,1,0,0,1,1,1,1,1,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0]),new Float32Array([0,1,0,1,1,1,0,1,0,1,0,0,1,1,1,0,1,0,1,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1]),new Float32Array([0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0]),new Float32Array([1,1,1,0,1,0,0,1,0,1,1,1,0,1,0,1,1,1,1,1,1,0,1,0,1,1,0]),new Float32Array([1,1,1,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0]),new Float32Array([1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0]),new Float32Array([1,1,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,0,0,0]),new Float32Array([1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1]),new Float32Array([1,0,0,0,1,0,1,1,1,1,0,0,1,1,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,1,1,1,1,1]),new Float32Array([1,0,0,0,1,0,0,1,0,1,0,0,1,1,1,0,1,0,1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,1,1,1]),new Float32Array([0,1,0,0,0,0,1,1,1,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,1,0,1,1,1]),new Float32Array([1,1,1,0,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,1,1,1,0,1,0]),new Float32Array([1,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,1,1,1]),new Float32Array([1,1,1,1,0,0,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1]),new Float32Array([1,1,1,1,1,1,1,1,1]),new Float32Array([1,1,0,0,1,1,1,0,1]),new Float32Array([1,0,0,0,0,1,0,1,0,1,0,1,1,1,0,0,1,1]),new Float32Array([1,0,1,0,0,0,1,1,0,1,0,1,1,1,0,0,1,1]),new Float32Array([1,1,0,0,0,1,0,1,0,1,1,0,1,0,1,0,0,1,1,0,1,1,1,0,0,1,1]),new Float32Array([1,1,0,0,0,0,0,1,1,1,1,0,0,1,1,1,0,1]),new Float32Array([0,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,1,0,1]),new Float32Array([0,0,0,1,1,0,1,0,1,1,1,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1]),new Float32Array([1,0,1,1,1,0,0,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,1,0,1,0,1,0,0,1,0,1,1]),new Float32Array([1,0,0,0,1,1,1,0,1,0,1,0,0,1,1,1,0,0]),new Float32Array([1,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,0,1]),new Float32Array([1,0,1,0,1,1,1,0,1,1,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,1,1]),new Float32Array([1,0,1,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,0,1,0,0,0,1]),new Float32Array([0,1,1,0,0,0,0,1,1,0,1,1,1,0,1,0,0,0,1,0,1,1,0,0,0,0,0]),new Float32Array([1,0,0,0,0,1,0,1,1,1,0,0,0,1,1,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,1,1]),new Float32Array([0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,0,0,1,0,1,1,0,1]),new Float32Array([0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,1,0,1,0,0,1]),new Float32Array([1,0,1,1,1,0,0,1,1,1,0,1,0,1,1,0,0,0]),new Float32Array([1,0,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1,0,0,1,1,1,0,1,1,1,0]),new Float32Array([1,1,0,1,0,1,0,0,0,1,0,1,1,1,0,0,1,1,0,0,0,1,0,1,0,1,1]),new Float32Array([1,1,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,1,0,1,0,0,1,1,1,0,1,1,0,1]),new Float32Array([0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,1,0,1,1,1,0,0,1,1,1,0,1]),new Float32Array([1,0,1,1,1,0,0,1,1,1,0,1,0,1,1,1,1,0,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,1]),new Float32Array([0,0,0,1,1,0,1,0,1,1,0,1,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1]),new Float32Array([1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,0,1,1]),new Float32Array([0,1,1,1,0,0,0,1,0,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0]),new Float32Array([1,0,0,0,1,0,1,0,1,1,0,1,0,1,0,0,1,1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1]),new Float32Array([0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,1,1]),new Float32Array([0,1,1,0,1,0,1,0,1,0,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,0,0,1,1,1,0,1]),new Float32Array([0,0,0,1,0,1,0,1,1,0,0,0,0,1,1,1,0,1,0,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,1,1]),new Float32Array([1,0,1,1,0,0,0,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1,0,0,0,1,1,0,1,1,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1]),new Float32Array([0,0,0,1,0,1,1,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1]),new Float32Array([0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,1,0,1]),new Float32Array([1,1,0,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0]),new Float32Array([0,0,1,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,1,0]),new Float32Array([1,1,0,0,0,0,1,1,0,1,1,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0]),new Float32Array([0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,1,1,0,1,1,0]),new Float32Array([1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,1,1,0,0,0,0]),new Float32Array([1,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,0,1,1,1,0,0,1,1]),new Float32Array([0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,1,1,1,0,1,1,0]),new Float32Array([0,1,1,0,0,1,1,1,0,0,1,1,1,1,0,1,1,0,0,0,1,0,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,0,1,0,1,1,1,1,0]),new Float32Array([1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,1,1,0,0,1]),new Float32Array([0,1,0,1,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1]),new Float32Array([0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,1]),new Float32Array([0,0,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,1]),new Float32Array([1,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0]),new Float32Array([0,0,1,0,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1,1,0,0,1,0,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,0]),new Float32Array([0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1]),new Float32Array([0,1,1,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1]),new Float32Array([0,1,1,1,1,0,0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,1,1,0]),new Float32Array([1,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,1,1,1,0]),new Float32Array([1,1,0,0,1,1,0,1,1,1,1,0,1,1,0,0,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0]),new Float32Array([1,1,0,0,1,1,0,1,1,1,1,0,0,1,1,1,1,0,1,1,0,0,1,1,0,1,0]),new Float32Array([1,1,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1]),new Float32Array([1,1,0,1,0,0,0,1,1,1,1,0,0,1,1,0,1,1,1,0,0,1,0,0,0,1,1,0,1,1,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1]),new Float32Array([1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,1,0,1,1,0,0,1,1,0,1,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1]),new Float32Array([0,1,1,1,1,0,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,1,1,1,1,0]),new Float32Array([1,0,0,0,1,0,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1]),new Float32Array([0,1,0,0,1,1,1,0,0,0,1,0,1,0,0,1,0,0,0,1,1,0,1,1,1,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,0]),new Float32Array([0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0]),new Float32Array([0,1,1,0,1,0,0,1,0,0,1,1,0,1,1,0,1,0]),new Float32Array([0,0,0,1,0,0,0,1,1,0,0,0,0,1,1,0,1,1,1,0,0,1,0,0,0,1,1,0,1,1,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1]),new Float32Array([1,0,0,1,0,0,1,0,0,0,1,1,0,1,1,0,1,1]),new Float32Array([0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0]),new Float32Array([0,1,1,0,1,1,0,1,1]),new Float32Array([0,1,0,1,0,1,1,1,0,0,0,1,1,0,1,0,1,0]),new Float32Array([0,1,0,1,0,1,1,1,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,0,0]),new Float32Array([1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,0,1,0,1,1,0,1,0,1,0,0,0]),new Float32Array([1,1,0,0,0,1,1,0,1,1,1,0,0,1,0,0,0,1,1,0,1,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0]),new Float32Array([1,1,0,1,0,1,1,1,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1]),new Float32Array([0,0,1,1,1,0,1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,0,1,1,0,1,1,1,0,1,1,0,1,0,1]),new Float32Array([1,0,1,0,0,0,1,1,0,1,0,1,1,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,1,0]),new Float32Array([1,0,1,0,0,1,1,1,0,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,1,0,1,1,0,1,1,0,1,0,1,0,0,1,1,0,1,1,1,0]),new Float32Array([0,1,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,1,1,0,1,1,0,0]),new Float32Array([1,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,1,1,0,1,0,0,1,0,1,0,0,1,0]),new Float32Array([1,0,1,0,0,1,1,0,1,1,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1]),new Float32Array([0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0]),new Float32Array([1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1]),new Float32Array([1,0,0,0,0,1,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,1]),new Float32Array([1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,1]),new Float32Array([1,0,1,0,0,1,0,0,1,1,0,1,1,0,1,0,0,1]),new Float32Array([1,0,1,0,0,0,1,0,1,1,0,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0]),new Float32Array([1,0,1,1,0,0,1,0,1,1,0,1,0,1,0,1,0,0,1,0,1,1,1,0,0,1,0,0,1,0,0,1,0,1,0,0]),new Float32Array([0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,0,1,1,0,0,1,0,1,1,0,1,0,1,1,0,1]),new Float32Array([1,1,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1,1,1,0,0,1,0,1,1,0,1,0,1]),new Float32Array([1,1,0,1,0,1,1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,1,0,1]),new Float32Array([1,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,1,0,1,0,0]),new Float32Array([0,0,0,1,1,0,1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1]),new Float32Array([1,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,1,0]),new Float32Array([0,1,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,1,1,0,1,0,0,0]),new Float32Array([1,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,1,1,0,0,0,1,0]),new Float32Array([0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1,0,0,0,0,1,0,0,0,0,1,0,1]),new Float32Array([1,0,1,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0]),new Float32Array([0,0,0,1,0,1,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,1,0,0]),new Float32Array([1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1]),new Float32Array([0,0,0,1,0,1,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1]),new Float32Array([1,0,1,1,0,1,1,0,1]),new Float32Array([0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,1,1,0,0,1,0]),new Float32Array([1,0,0,0,0,1,0,1,0,0,0,1,1,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0]),new Float32Array([1,1,0,1,1,0,0,1,0,1,1,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0]),new Float32Array([0,1,0,1,1,0,0,0,1,0,1,0,0,0,1,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0,1,0,0,0,1]),new Float32Array([1,1,0,1,0,0,1,1,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0]),new Float32Array([1,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1]),new Float32Array([0,0,0,0,0,1,1,1,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0]),new Float32Array([1,1,0,1,1,0,1,1,0,0,0,1,0,0,1,0,0,1]),new Float32Array([0,0,1,0,1,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0]),new Float32Array([1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0]),new Float32Array([0,1,0,0,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0]),new Float32Array([0,1,0,0,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,0,0,1]),new Float32Array([0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0]),new Float32Array([0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,0,1,1,0,0]),new Float32Array([0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0]),new Float32Array([0,0,1,0,0,1,0,0,1]),new Float32Array([1,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0]),new Float32Array([0,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,1,0]),new Float32Array([0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0]),new Float32Array([0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,1,0]),new Float32Array([1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0]),new Float32Array([1,0,0,1,1,0,1,1,0,1,0,0,1,0,0,1,1,0]),new Float32Array([1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0]),new Float32Array([1,1,0,1,1,0,1,1,0]),new Float32Array([1,0,0,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0]),new Float32Array([0,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0]),new Float32Array([0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0]),new Float32Array([0,1,0,0,1,0,0,1,0]),new Float32Array([1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0]),new Float32Array([1,0,0,1,0,0,1,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0]),new Float32Array([])],i=[new Float32Array([]),new Float32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1]),new Float32Array([0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1]),new Float32Array([-1,1,-1,-1,1,-1,-1,1,-1]),new Float32Array([-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([1,1,-1,1,1,-1,1,1,-1]),new Float32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]),new Float32Array([1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,1,-1,-1,1,-1,-1,1,-1,-1,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,-1,-1,1,-1,-1,1,-1,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,1,1,-1,1,1,-1,1,1,-1,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([-1,-1,1,-1,-1,1,-1,-1,1]),new Float32Array([-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,-1,-1,1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,0,-1,0,0]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,-1,-1,1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0]),new Float32Array([1,1,-1,1,1,-1,1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1]),new Float32Array([-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,1,1,-1,1,1,-1,1,1,-1]),new Float32Array([1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,-1,-1,1,-1,-1,1,-1,-1,1]),new Float32Array([1,0,-1,1,0,-1,1,0,-1,-1,-1,0,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,-1,-1,1,-1,-1,1,-1,-1,1]),new Float32Array([0,1,-1,0,1,-1,0,1,-1,-1,-1,0,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([-1,-1,1,-1,-1,1,-1,-1,1,1,1,-1,1,1,-1,1,1,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([1,-1,1,1,-1,1,1,-1,1]),new Float32Array([1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1]),new Float32Array([1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,1,-1,-1,1,-1,-1,1,-1,-1,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([1,-1,1,1,-1,1,1,-1,1,-1,1,-1,-1,1,-1,-1,1,-1]),new Float32Array([-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,1,-1,1,1,-1,1,1,-1,1]),new Float32Array([1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,-1,1,-1,-1,1,-1,-1,1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,1,-1,0,1,-1,0,1,-1,0,-1,0,-1,-1,0,-1,-1,0,-1,0,0,0,0,0,0,0,0,0]),new Float32Array([1,1,-1,1,1,-1,1,1,-1,1,-1,1,1,-1,1,1,-1,1]),new Float32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,-1,1,-1,1,1,-1,1,1,-1,1]),new Float32Array([0,0,0,0,0,0,0,0,0,1,-1,-1,1,-1,-1,1,-1,-1,1,0,0,1,0,0,1,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,1,-1,-1,1,-1,-1,0,0,0,0,0,0,0,0,0]),new Float32Array([0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,1,-1,1,1,-1,1,1,-1,1]),new Float32Array([1,-1,1,1,-1,1,1,-1,1,0,0,0,0,0,0,0,0,0,-1,1,-1,-1,1,-1,-1,1,-1,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([1,-1,0,1,-1,0,1,-1,0,0,1,-1,0,1,-1,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,-1,1,-1,-1,1,-1,-1,1,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,1,-1,1,1,-1,1,1,-1,1,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,-1,1,-1,-1,1,-1,-1,1,-1]),new Float32Array([0,-1,1,0,-1,1,0,-1,1,-1,0,-1,-1,0,-1,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([-1,1,-1,-1,1,-1,-1,1,-1,0,0,0,0,0,0,0,0,0,1,-1,1,1,-1,1,1,-1,1,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,1,1,-1,1,1,-1,1,1,-1]),new Float32Array([1,1,-1,1,1,-1,1,1,-1,0,0,0,0,0,0,0,0,0,-1,-1,1,-1,-1,1,-1,-1,1,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,1,0,-1,1,0,-1,1,0,-1,0,-1,1,0,-1,1,0,-1,1,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1]),new Float32Array([0,-1,1,0,-1,1,0,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,1,-1,0,1,-1]),new Float32Array([0,1,-1,0,1,-1,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,0,-1,1,0,-1,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([-1,1,1,-1,1,1,-1,1,1]),new Float32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1,-1,1,1,-1,1,1,-1,1,1]),new Float32Array([0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,-1,1,1,-1,1,1,-1,1,1]),new Float32Array([-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,-1,-1,1,-1,-1,1,-1,-1,0,0,-1,0,0,-1,0,0]),new Float32Array([-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,1,-1,-1,1,-1,-1,1,-1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,0,-1,1,0,-1,1,0,0,-1,-1,0,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0]),new Float32Array([1,1,-1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,-1,1,1]),new Float32Array([1,1,-1,1,1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1]),new Float32Array([1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,-1,1,1,-1,1,1,-1,1,1]),new Float32Array([-1,1,1,-1,1,1,-1,1,1,0,0,0,0,0,0,0,0,0,1,-1,-1,1,-1,-1,1,-1,-1,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,-1,-1,1,-1,-1,1,-1,0,1,0,0,1,0,0,1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,-1,-1,1,-1,-1,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,0,-1,1,0,-1,1,0,1,0,-1,1,0,-1,1,0,-1,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,-1,1,-1,-1,1,-1,-1,1,-1,0,0,-1,0,0,-1,0,0]),new Float32Array([-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,1,-1,-1,1,-1,-1,1,-1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,0,1,-1,0,1,-1,0,1,0,-1,-1,0,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,1,-1,1,1,-1,1,1,-1,0,0,-1,0,0,-1,0,0]),new Float32Array([-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1,-1,1,1,-1,1,1,-1,1,1,-1,0,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1,0,0]),new Float32Array([-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,1,1,-1,1,1,-1,1,1,-1]),new Float32Array([1,1,-1,1,1,-1,1,1,-1,0,0,0,0,0,0,0,0,0,-1,-1,1,-1,-1,1,-1,-1,1,-1,0,0,-1,0,0,-1,0,0]),new Float32Array([-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1]),new Float32Array([1,0,-1,1,0,-1,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,1,-1,0,1,-1,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,1,-1,0,1,-1,0,1,-1,-1,0,1,-1,0,1,-1,0,1,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1,0,0]),new Float32Array([-1,0,1,-1,0,1,-1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,1,0,-1,1,0,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,-1,1,1,-1,1,1,-1,1,-1,1,1,-1,1,1,-1,1,1]),new Float32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1,1,1,-1,1,-1,1,1,-1,1,1,-1,1,1]),new Float32Array([1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,-1,1,1,-1,1,1,-1,1,1]),new Float32Array([-1,1,1,-1,1,1,-1,1,1,0,0,0,0,0,0,0,0,0,1,-1,-1,1,-1,-1,1,-1,-1,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,1,-1,1,1,-1,1,1,-1,1]),new Float32Array([1,-1,1,1,-1,1,1,-1,1,-1,1,-1,-1,1,-1,-1,1,-1,-1,0,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,-1,1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0]),new Float32Array([-1,1,0,-1,1,0,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,1,-1,0,1,-1,0]),new Float32Array([1,-1,1,1,-1,1,1,-1,1,1,1,-1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,-1,1,1]),new Float32Array([-1,1,1,-1,1,1,-1,1,1,1,1,-1,1,1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1,1,1,-1,1]),new Float32Array([-1,1,1,-1,1,1,-1,1,1,0,0,0,0,0,0,0,0,0,1,-1,-1,1,-1,-1,1,-1,-1,1,0,0,1,0,0,1,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,1,-1,-1,1,-1,-1,1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,1,-1,1,1,-1,1,1]),new Float32Array([1,-1,1,1,-1,1,1,-1,1,0,0,0,0,0,0,0,0,0,-1,1,-1,-1,1,-1,-1,1,-1,0,1,0,0,1,0,0,1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,-1,-1,1,-1,-1,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,1,1,-1,1,1,-1,1]),new Float32Array([1,-1,0,1,-1,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,0,-1,1,0,-1,1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,-1,1,-1,-1,1,-1,-1,1,0,0,1,0,0,1,0,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,-1,1,-1,-1,1,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,0,1,-1,0,1,-1,0,1,1,-1,0,1,-1,0,1,-1,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([0,-1,1,0,-1,1,0,-1,1,-1,1,0,-1,1,0,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1,0,0]),new Float32Array([1,-1,0,1,-1,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,0,-1,1,0,-1,1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,1,-1,1,1,-1,1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,-1,1,-1,-1,1,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,-1,1,1,-1,1,1,-1]),new Float32Array([-1,0,1,-1,0,1,-1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,1,0,-1,1,0,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,1,-1,0,1,-1,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,0,-1,1,0,-1,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0]),new Float32Array([1,1,1,1,1,1,1,1,1]),new Float32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,1,1]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1,1,1,1,1,1,1,1,1,1]),new Float32Array([0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,1,1,1,1,1,1,1,1,1]),new Float32Array([-1,1,-1,-1,1,-1,-1,1,-1,1,1,1,1,1,1,1,1,1]),new Float32Array([-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,1,1,1,1,1,1,1,1,1]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,1,1,1,1,1,1,1,1]),new Float32Array([1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0]),new Float32Array([1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,1,1,-1,1,1,-1,1,1,-1,1,0,0,1,0,0,1,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,-1,0,-1,-1,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,1,1,-1,1,1,-1,1,1,-1,0,1,0,0,1,0,0,1,0]),new Float32Array([-1,0,-1,-1,0,-1,-1,0,-1,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,-1,1,1,-1,1,1,-1,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1]),new Float32Array([1,1,1,1,1,1,1,1,1,-1,-1,1,-1,-1,1,-1,-1,1]),new Float32Array([-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,1,1,1,1,1,1,1,1,1]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1,1,1,1,1,1,1,1,1,1,-1,-1,1,-1,-1,1,-1,-1,1]),new Float32Array([1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,0,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0]),new Float32Array([-1,1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,1,1,1,1,1,1,1,1,1]),new Float32Array([1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,-1,-1,1,-1,1,1,1,1,1,1,1,1,1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1]),new Float32Array([1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,-1,-1,1,-1,-1,1,-1,-1,1]),new Float32Array([1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0]),new Float32Array([-1,-1,1,-1,-1,1,-1,-1,1,0,0,0,0,0,0,0,0,0,1,1,-1,1,1,-1,1,1,-1,1,0,0,1,0,0,1,0,0]),new Float32Array([-1,-1,0,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,0]),new Float32Array([-1,-1,1,-1,-1,1,-1,-1,1,1,1,-1,1,1,-1,1,1,-1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,-1,0,-1,-1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,1,1,-1,1,1,-1,1,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,1,-1,-1,1,-1,-1,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1]),new Float32Array([1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,-1,-1,-1,-1,-1,-1,-1,-1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,1,-1,1,1,-1,1,1,-1,1,1,0,0,1,0,0,1,0,0]),new Float32Array([0,-1,-1,0,-1,-1,0,-1,-1,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,-1,1,-1,-1,1,-1,-1,1,-1]),new Float32Array([-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1]),new Float32Array([-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,1,-1,1,1,-1,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,-1,-1,0,-1,-1,0,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,0]),new Float32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,0]),new Float32Array([1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0]),new Float32Array([1,0,1,1,0,1,1,0,1,0,1,-1,0,1,-1,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([-1,0,-1,-1,0,-1,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,1,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,1,-1,1,1,-1,1,1,-1,1,0,0,1,0,0,1,0,0,1]),new Float32Array([-1,-1,0,-1,-1,0,-1,-1,0,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,1,1,-1,1,1,-1,1,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1,0]),new Float32Array([-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,1,-1,1,1,-1,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0]),new Float32Array([-1,0,-1,-1,0,-1,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,1,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,1,-1,1,1,-1,1,1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,-1,-1,1,-1,-1,1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,1,0,1,1,0,1,1,0,0,-1,1,0,-1,1,0,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,-1,0,-1,-1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,-1,1,0,-1,1,0,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,1,-1,0,1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0]),new Float32Array([0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1]),new Float32Array([0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1]),new Float32Array([0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,-1,-1,1,-1,-1,1,-1,-1]),new Float32Array([0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,1,-1,1,1,-1,1,1,0,1,0,0,1,0,0,1,0]),new Float32Array([-1,0,-1,-1,0,-1,-1,0,-1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1,-1,1,1,-1,1,1,-1,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,-1,-1,0,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1]),new Float32Array([0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0]),new Float32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,0,-1,1,0,-1,1,0,-1,0,0,0,0,0,0,0,0,0]),new Float32Array([0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,-1,0,-1,-1]),new Float32Array([0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,1,-1,1,1,-1,1,1,0,0,1,0,0,1,0,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,-1,0,-1,-1,0,-1,-1,0,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0]),new Float32Array([1,-1,-1,1,-1,-1,1,-1,-1,-1,1,1,-1,1,1,-1,1,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0]),new Float32Array([0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,-1,0,-1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,1,-1,1,1,-1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,-1,1,1,-1,1,1,-1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,1,-1,-1,1,-1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,1,0,1,1,0,1,1,0,-1,0,1,-1,0,1,-1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([-1,-1,0,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,0]),new Float32Array([1,0,-1,1,0,-1,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,1,-1,0,1,-1,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,0,1]),new Float32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,-1,0,1,-1,0,1,-1,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,-1,-1,0,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1]),new Float32Array([0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,1,0,1,-1,1,0,-1,1,0,-1,1,0,0,0,0,0,0,0,0,0,0]),new Float32Array([1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,-1,-1,0,-1,-1,0,-1]),new Float32Array([-1,1,0,-1,1,0,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,1,-1,0,1,-1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0]),new Float32Array([0,0,0,0,0,0,0,0,0]),new Float32Array([])],c=l.map(function(r){return r.length}),u=function(r,a,n,e,t){var c,u,y,w,A,s,F=o(e,3),f=(F[0],F[1],F[2],o(t[0],3)),v=f[0],m=f[1],p=f[2],d=o(t[1],3),h=d[0],x=d[1],g=d[2];h--,x--,g--;var M=0,C=0,T=0,E=0,R=0,b=0;for(s=p;s<g;s++)for(A=m;A<x;A++)for(w=v;w<h;w++,C++)for(c=r[C],u=l[c],y=i[c],b=u.length,M=0,R=0;M<b;)n[E++]=y[R++],n[E++]=y[R++],n[E++]=y[R++],n[E++]=y[R++],n[E++]=y[R++],n[E++]=y[R++],n[E++]=y[R++],n[E++]=y[R++],n[E++]=y[R++],a[T++]=u[M++]+w,a[T++]=u[M++]+A,a[T++]=u[M++]+s,a[T++]=u[M++]+w,a[T++]=u[M++]+A,a[T++]=u[M++]+s,a[T++]=u[M++]+w,a[T++]=u[M++]+A,a[T++]=u[M++]+s},y=function(r,a,n,e){var t,l,i,u=o(n,3),y=u[0],w=u[1],A=(u[2],o(e[0],3)),s=A[0],F=A[1],f=A[2],v=o(e[1],3),m=v[0],p=v[1],d=v[2],h=y*w,x=y;p--,d--;var g,M,C,T,E,R,b,L,I,P,_,B,N,U=--m-4,D=0,O=0;for(i=f;i<d;i++)for(g=i*h,l=F;l<p;l++){for(T=(M=g+l*x+s)+h,E=(C=M+x)+h,R=a[M++],b=a[C++],L=a[T++],I=a[E++],t=s;t<U;t+=4,O+=4)P=0,_=0,B=0,N=0,P+=1*R,P+=4*b,P+=16*L,P+=64*I,P+=2*(R=a[M++]),P+=8*(b=a[C++]),P+=32*(L=a[T++]),P+=128*(I=a[E++]),_+=1*R,_+=4*b,_+=16*L,_+=64*I,_+=2*(R=a[M++]),_+=8*(b=a[C++]),_+=32*(L=a[T++]),_+=128*(I=a[E++]),B+=1*R,B+=4*b,B+=16*L,B+=64*I,B+=2*(R=a[M++]),B+=8*(b=a[C++]),B+=32*(L=a[T++]),B+=128*(I=a[E++]),N+=1*R,N+=4*b,N+=16*L,N+=64*I,N+=2*(R=a[M++]),N+=8*(b=a[C++]),N+=32*(L=a[T++]),N+=128*(I=a[E++]),r[O+0]=P,r[O+1]=_,r[O+2]=B,r[O+3]=N,D+=c[P],D+=c[_],D+=c[B],D+=c[N];for(;t<m;t++,O++)P=0,_=0,B=0,N=0,P+=1*R,P+=4*b,P+=16*L,P+=64*I,P+=2*(R=a[M++]),P+=8*(b=a[C++]),P+=32*(L=a[T++]),P+=128*(I=a[E++]),r[O+0]=P,D+=c[P]}return D},w=new Uint8Array(1e6),A=new Uint8Array(1e6);n.marchingCubes=function(r,a,n,t,l){console.log("---"),console.time("marchingCubes"),l||(l=[[0,0,0],r]);var i=o(l[0],3),c=i[0],s=i[1],F=i[2],f=o(l[1],3),v=f[0],m=f[1],p=f[2];console.time("Munch data"),e(a,n,t),console.timeEnd("Munch data"),console.time("Construct cube indices");var d=(p-F-1)*(m-s-1)*(v-c-1);A.length<d&&(A=new Uint8Array(d));var h=y(A,w,r,l);console.timeEnd("Construct cube indices"),console.time("Fill vertex arrays");var x=new Float32Array(h),g=new Float32Array(h);return u(A,x,g,r,l),console.timeEnd("Fill vertex arrays"),console.timeEnd("marchingCubes"),{vertices:x,normals:g}},n.marchingCubeCapX=function(r,a,n,e,t,l){var i=-1===l?t[0][0]:t[1][0]-1,c=o(t[0],3),w=(c[0],c[1]),s=c[2],F=o(t[1],3),f=(F[0],F[1]),v=F[2],m=o(r,3),p=m[0],d=m[1],h=(m[2],f-w),x=v-s,g=0,M=1;-1===l&&(g=1,M=0);for(var C=new Uint8Array(2*h*x),T=p*d,E=s,R=0;E<v;E++,R++)for(var b=w,L=0;b<f;b++,L++){var I=a[E*T+b*p+i];C[g+2*R*h+2*L]=0,C[M+2*R*h+2*L]=I>=n&&I<=e?1:0}var P=[2,h,x],t=[[0,0,0],P],_=(x-1)*(h-1)*1;A.length<_&&(A=new Uint8Array(_));var B=y(A,C,P,t),N=new Float32Array(B),U=new Float32Array(B);u(A,N,U,r,t);for(var D=0;D<N.length;D+=3)N[D]=i,N[D+1]+=w,N[D+2]+=s;return{vertices:N,normals:U}},n.marchingCubeCapY=function(r,a,n,e,t,l){var i=-1===l?t[0][1]:t[1][1]-1,c=o(t[0],3),w=c[0],s=(c[1],c[2]),F=o(t[1],3),f=F[0],v=(F[1],F[2]),m=o(r,3),p=m[0],d=m[1],h=(m[2],f-w),x=v-s,g=0,M=h;-1===l&&(g=h,M=0);for(var C=new Uint8Array(2*h*x),T=p*d,E=s,R=0;E<v;E++,R++)for(var b=w,L=0;b<f;b++,L++){var I=a[E*T+b+p*i];C[g+R*h*2+L]=0,C[M+R*h*2+L]=I>=n&&I<=e?1:0}var P=[h,2,x],t=[[0,0,0],P],_=1*(x-1)*(h-1);A.length<_&&(A=new Uint8Array(_));var B=y(A,C,P,t),N=new Float32Array(B),U=new Float32Array(B);u(A,N,U,r,t);for(var D=0;D<N.length;D+=3)N[D]+=w,N[D+1]=i,N[D+2]+=s;return{vertices:N,normals:U}},n.marchingCubeCapZ=function(r,a,n,e,t,l){var i=-1===l?t[0][2]:t[1][2]-1,c=o(t[0],3),w=c[0],s=c[1],F=(c[2],o(t[1],3)),f=F[0],v=F[1],m=(F[2],o(r,3)),p=m[0],d=m[1],h=(m[2],f-w),x=v-s,g=0,M=x*h;-1===l&&(g=x*h,M=0);for(var C=new Uint8Array(h*x*2),T=p*d,E=s,R=0;E<v;E++,R++)for(var b=w,L=0;b<f;b++,L++){var I=a[E*p+b+T*i];C[g+R*h+L]=0,C[M+R*h+L]=I>=n&&I<=e?1:0}var P=[h,x,2],t=[[0,0,0],P],_=1*(x-1)*(h-1);A.length<_&&(A=new Uint8Array(_));var B=y(A,C,P,t),N=new Float32Array(B),U=new Float32Array(B);u(A,N,U,r,t);for(var D=0;D<N.length;D+=3)N[D]+=w,N[D+1]+=s,N[D+2]=i;return{vertices:N,normals:U}},n.marchingCubesCaps=function(r,a,e,o,l){return t(n.marchingCubeCapX(r,a,e,o,l,-1),n.marchingCubeCapX(r,a,e,o,l,1),n.marchingCubeCapY(r,a,e,o,l,-1),n.marchingCubeCapY(r,a,e,o,l,1),n.marchingCubeCapZ(r,a,e,o,l,-1),n.marchingCubeCapZ(r,a,e,o,l,1))}},{}],4:[function(r,a,n){var e=r("element-size");a.exports=function(r,a,n){function o(){var a=o.parent||r.parentNode;if("function"==typeof a)var n=a(t)||t,i=n[0],c=n[1];else if(a&&a!==document.body)var u=e(a),i=0|u[0],c=0|u[1];else var i=window.innerWidth,c=window.innerHeight;return l?(r.setAttribute("width",i*o.scale+"px"),r.setAttribute("height",c*o.scale+"px")):(r.width=i*o.scale,r.height=c*o.scale),r.style.width=i+"px",r.style.height=c+"px",o}var l="SVG"===r.nodeName.toUpperCase();return r.style.position=r.style.position||"absolute",r.style.top=0,r.style.left=0,o.scale=parseFloat(n||1),o.parent=a,o()};var t=new Float32Array(2)},{"element-size":5}],5:[function(r,a,n){function e(r){return parseFloat(r)||0}a.exports=function(r){if(r===window||r===document.body)return[window.innerWidth,window.innerHeight];if(!r.parentNode){var a=!0;document.body.appendChild(r)}var n=r.getBoundingClientRect(),t=getComputedStyle(r),o=(0|n.height)+e(t.getPropertyValue("margin-top"))+e(t.getPropertyValue("margin-bottom")),l=(0|n.width)+e(t.getPropertyValue("margin-left"))+e(t.getPropertyValue("margin-right"));return a&&document.body.removeChild(r),[l,o]}},{}],6:[function(r,a,n){a.exports=function(r,a){var n=a[0],e=a[1],t=a[2],o=a[3],l=a[4],i=a[5],c=a[6],u=a[7],y=a[8],w=a[9],A=a[10],s=a[11],F=a[12],f=a[13],v=a[14],m=a[15];return r[0]=i*(A*m-s*v)-w*(c*m-u*v)+f*(c*s-u*A),r[1]=-(e*(A*m-s*v)-w*(t*m-o*v)+f*(t*s-o*A)),r[2]=e*(c*m-u*v)-i*(t*m-o*v)+f*(t*u-o*c),r[3]=-(e*(c*s-u*A)-i*(t*s-o*A)+w*(t*u-o*c)),r[4]=-(l*(A*m-s*v)-y*(c*m-u*v)+F*(c*s-u*A)),r[5]=n*(A*m-s*v)-y*(t*m-o*v)+F*(t*s-o*A),r[6]=-(n*(c*m-u*v)-l*(t*m-o*v)+F*(t*u-o*c)),r[7]=n*(c*s-u*A)-l*(t*s-o*A)+y*(t*u-o*c),r[8]=l*(w*m-s*f)-y*(i*m-u*f)+F*(i*s-u*w),r[9]=-(n*(w*m-s*f)-y*(e*m-o*f)+F*(e*s-o*w)),r[10]=n*(i*m-u*f)-l*(e*m-o*f)+F*(e*u-o*i),r[11]=-(n*(i*s-u*w)-l*(e*s-o*w)+y*(e*u-o*i)),r[12]=-(l*(w*v-A*f)-y*(i*v-c*f)+F*(i*A-c*w)),r[13]=n*(w*v-A*f)-y*(e*v-t*f)+F*(e*A-t*w),r[14]=-(n*(i*v-c*f)-l*(e*v-t*f)+F*(e*c-t*i)),r[15]=n*(i*A-c*w)-l*(e*A-t*w)+y*(e*c-t*i),r}},{}],7:[function(r,a,n){a.exports=function(r){var a=new Float32Array(16);return a[0]=r[0],a[1]=r[1],a[2]=r[2],a[3]=r[3],a[4]=r[4],a[5]=r[5],a[6]=r[6],a[7]=r[7],a[8]=r[8],a[9]=r[9],a[10]=r[10],a[11]=r[11],a[12]=r[12],a[13]=r[13],a[14]=r[14],a[15]=r[15],a}},{}],8:[function(r,a,n){a.exports=function(r,a){return r[0]=a[0],r[1]=a[1],r[2]=a[2],r[3]=a[3],r[4]=a[4],r[5]=a[5],r[6]=a[6],r[7]=a[7],r[8]=a[8],r[9]=a[9],r[10]=a[10],r[11]=a[11],r[12]=a[12],r[13]=a[13],r[14]=a[14],r[15]=a[15],r}},{}],9:[function(r,a,n){a.exports=function(){var r=new Float32Array(16);return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}},{}],10:[function(r,a,n){a.exports=function(r){var a=r[0],n=r[1],e=r[2],t=r[3],o=r[4],l=r[5],i=r[6],c=r[7],u=r[8],y=r[9],w=r[10],A=r[11],s=r[12],F=r[13],f=r[14],v=r[15];return(a*l-n*o)*(w*v-A*f)-(a*i-e*o)*(y*v-A*F)+(a*c-t*o)*(y*f-w*F)+(n*i-e*l)*(u*v-A*s)-(n*c-t*l)*(u*f-w*s)+(e*c-t*i)*(u*F-y*s)}},{}],11:[function(r,a,n){a.exports=function(r,a){var n=a[0],e=a[1],t=a[2],o=a[3],l=n+n,i=e+e,c=t+t,u=n*l,y=e*l,w=e*i,A=t*l,s=t*i,F=t*c,f=o*l,v=o*i,m=o*c;return r[0]=1-w-F,r[1]=y+m,r[2]=A-v,r[3]=0,r[4]=y-m,r[5]=1-u-F,r[6]=s+f,r[7]=0,r[8]=A+v,r[9]=s-f,r[10]=1-u-w,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}},{}],12:[function(r,a,n){a.exports=function(r,a,n){var e=a[0],t=a[1],o=a[2],l=a[3],i=e+e,c=t+t,u=o+o,y=e*i,w=e*c,A=e*u,s=t*c,F=t*u,f=o*u,v=l*i,m=l*c,p=l*u;return r[0]=1-(s+f),r[1]=w+p,r[2]=A-m,r[3]=0,r[4]=w-p,r[5]=1-(y+f),r[6]=F+v,r[7]=0,r[8]=A+m,r[9]=F-v,r[10]=1-(y+s),r[11]=0,r[12]=n[0],r[13]=n[1],r[14]=n[2],r[15]=1,r}},{}],13:[function(r,a,n){a.exports=function(r,a,n,e,t,o,l){var i=1/(n-a),c=1/(t-e),u=1/(o-l);return r[0]=2*o*i,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2*o*c,r[6]=0,r[7]=0,r[8]=(n+a)*i,r[9]=(t+e)*c,r[10]=(l+o)*u,r[11]=-1,r[12]=0,r[13]=0,r[14]=l*o*2*u,r[15]=0,r}},{}],14:[function(r,a,n){a.exports=function(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}},{}],15:[function(r,a,n){a.exports={create:r("./create"),clone:r("./clone"),copy:r("./copy"),identity:r("./identity"),transpose:r("./transpose"),invert:r("./invert"),adjoint:r("./adjoint"),determinant:r("./determinant"),multiply:r("./multiply"),translate:r("./translate"),scale:r("./scale"),rotate:r("./rotate"),rotateX:r("./rotateX"),rotateY:r("./rotateY"),rotateZ:r("./rotateZ"),fromRotationTranslation:r("./fromRotationTranslation"),fromQuat:r("./fromQuat"),frustum:r("./frustum"),perspective:r("./perspective"),perspectiveFromFieldOfView:r("./perspectiveFromFieldOfView"),ortho:r("./ortho"),lookAt:r("./lookAt"),str:r("./str")}},{"./adjoint":6,"./clone":7,"./copy":8,"./create":9,"./determinant":10,"./fromQuat":11,"./fromRotationTranslation":12,"./frustum":13,"./identity":14,"./invert":16,"./lookAt":17,"./multiply":18,"./ortho":19,"./perspective":20,"./perspectiveFromFieldOfView":21,"./rotate":22,"./rotateX":23,"./rotateY":24,"./rotateZ":25,"./scale":26,"./str":27,"./translate":28,"./transpose":29}],16:[function(r,a,n){a.exports=function(r,a){var n=a[0],e=a[1],t=a[2],o=a[3],l=a[4],i=a[5],c=a[6],u=a[7],y=a[8],w=a[9],A=a[10],s=a[11],F=a[12],f=a[13],v=a[14],m=a[15],p=n*i-e*l,d=n*c-t*l,h=n*u-o*l,x=e*c-t*i,g=e*u-o*i,M=t*u-o*c,C=y*f-w*F,T=y*v-A*F,E=y*m-s*F,R=w*v-A*f,b=w*m-s*f,L=A*m-s*v,I=p*L-d*b+h*R+x*E-g*T+M*C;return I?(I=1/I,r[0]=(i*L-c*b+u*R)*I,r[1]=(t*b-e*L-o*R)*I,r[2]=(f*M-v*g+m*x)*I,r[3]=(A*g-w*M-s*x)*I,r[4]=(c*E-l*L-u*T)*I,r[5]=(n*L-t*E+o*T)*I,r[6]=(v*h-F*M-m*d)*I,r[7]=(y*M-A*h+s*d)*I,r[8]=(l*b-i*E+u*C)*I,r[9]=(e*E-n*b-o*C)*I,r[10]=(F*g-f*h+m*p)*I,r[11]=(w*h-y*g-s*p)*I,r[12]=(i*T-l*R-c*C)*I,r[13]=(n*R-e*T+t*C)*I,r[14]=(f*d-F*x-v*p)*I,r[15]=(y*x-w*d+A*p)*I,r):null}},{}],17:[function(r,a,n){var e=r("./identity");a.exports=function(r,a,n,t){var o,l,i,c,u,y,w,A,s,F,f=a[0],v=a[1],m=a[2],p=t[0],d=t[1],h=t[2],x=n[0],g=n[1],M=n[2];return Math.abs(f-x)<1e-6&&Math.abs(v-g)<1e-6&&Math.abs(m-M)<1e-6?e(r):(w=f-x,A=v-g,s=m-M,F=1/Math.sqrt(w*w+A*A+s*s),w*=F,A*=F,s*=F,o=d*s-h*A,l=h*w-p*s,i=p*A-d*w,(F=Math.sqrt(o*o+l*l+i*i))?(o*=F=1/F,l*=F,i*=F):(o=0,l=0,i=0),c=A*i-s*l,u=s*o-w*i,y=w*l-A*o,(F=Math.sqrt(c*c+u*u+y*y))?(c*=F=1/F,u*=F,y*=F):(c=0,u=0,y=0),r[0]=o,r[1]=c,r[2]=w,r[3]=0,r[4]=l,r[5]=u,r[6]=A,r[7]=0,r[8]=i,r[9]=y,r[10]=s,r[11]=0,r[12]=-(o*f+l*v+i*m),r[13]=-(c*f+u*v+y*m),r[14]=-(w*f+A*v+s*m),r[15]=1,r)}},{"./identity":14}],18:[function(r,a,n){a.exports=function(r,a,n){var e=a[0],t=a[1],o=a[2],l=a[3],i=a[4],c=a[5],u=a[6],y=a[7],w=a[8],A=a[9],s=a[10],F=a[11],f=a[12],v=a[13],m=a[14],p=a[15],d=n[0],h=n[1],x=n[2],g=n[3];return r[0]=d*e+h*i+x*w+g*f,r[1]=d*t+h*c+x*A+g*v,r[2]=d*o+h*u+x*s+g*m,r[3]=d*l+h*y+x*F+g*p,d=n[4],h=n[5],x=n[6],g=n[7],r[4]=d*e+h*i+x*w+g*f,r[5]=d*t+h*c+x*A+g*v,r[6]=d*o+h*u+x*s+g*m,r[7]=d*l+h*y+x*F+g*p,d=n[8],h=n[9],x=n[10],g=n[11],r[8]=d*e+h*i+x*w+g*f,r[9]=d*t+h*c+x*A+g*v,r[10]=d*o+h*u+x*s+g*m,r[11]=d*l+h*y+x*F+g*p,d=n[12],h=n[13],x=n[14],g=n[15],r[12]=d*e+h*i+x*w+g*f,r[13]=d*t+h*c+x*A+g*v,r[14]=d*o+h*u+x*s+g*m,r[15]=d*l+h*y+x*F+g*p,r}},{}],19:[function(r,a,n){a.exports=function(r,a,n,e,t,o,l){var i=1/(a-n),c=1/(e-t),u=1/(o-l);return r[0]=-2*i,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*c,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=2*u,r[11]=0,r[12]=(a+n)*i,r[13]=(t+e)*c,r[14]=(l+o)*u,r[15]=1,r}},{}],20:[function(r,a,n){a.exports=function(r,a,n,e,t){var o=1/Math.tan(a/2),l=1/(e-t);return r[0]=o/n,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=o,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=(t+e)*l,r[11]=-1,r[12]=0,r[13]=0,r[14]=2*t*e*l,r[15]=0,r}},{}],21:[function(r,a,n){a.exports=function(r,a,n,e){var t=Math.tan(a.upDegrees*Math.PI/180),o=Math.tan(a.downDegrees*Math.PI/180),l=Math.tan(a.leftDegrees*Math.PI/180),i=Math.tan(a.rightDegrees*Math.PI/180),c=2/(l+i),u=2/(t+o);return r[0]=c,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=u,r[6]=0,r[7]=0,r[8]=-(l-i)*c*.5,r[9]=(t-o)*u*.5,r[10]=e/(n-e),r[11]=-1,r[12]=0,r[13]=0,r[14]=e*n/(n-e),r[15]=0,r}},{}],22:[function(r,a,n){a.exports=function(r,a,n,e){var t,o,l,i,c,u,y,w,A,s,F,f,v,m,p,d,h,x,g,M,C,T,E,R,b=e[0],L=e[1],I=e[2],P=Math.sqrt(b*b+L*L+I*I);return Math.abs(P)<1e-6?null:(P=1/P,b*=P,L*=P,I*=P,t=Math.sin(n),o=Math.cos(n),l=1-o,i=a[0],c=a[1],u=a[2],y=a[3],w=a[4],A=a[5],s=a[6],F=a[7],f=a[8],v=a[9],m=a[10],p=a[11],d=b*b*l+o,h=L*b*l+I*t,x=I*b*l-L*t,g=b*L*l-I*t,M=L*L*l+o,C=I*L*l+b*t,T=b*I*l+L*t,E=L*I*l-b*t,R=I*I*l+o,r[0]=i*d+w*h+f*x,r[1]=c*d+A*h+v*x,r[2]=u*d+s*h+m*x,r[3]=y*d+F*h+p*x,r[4]=i*g+w*M+f*C,r[5]=c*g+A*M+v*C,r[6]=u*g+s*M+m*C,r[7]=y*g+F*M+p*C,r[8]=i*T+w*E+f*R,r[9]=c*T+A*E+v*R,r[10]=u*T+s*E+m*R,r[11]=y*T+F*E+p*R,a!==r&&(r[12]=a[12],r[13]=a[13],r[14]=a[14],r[15]=a[15]),r)}},{}],23:[function(r,a,n){a.exports=function(r,a,n){var e=Math.sin(n),t=Math.cos(n),o=a[4],l=a[5],i=a[6],c=a[7],u=a[8],y=a[9],w=a[10],A=a[11];return a!==r&&(r[0]=a[0],r[1]=a[1],r[2]=a[2],r[3]=a[3],r[12]=a[12],r[13]=a[13],r[14]=a[14],r[15]=a[15]),r[4]=o*t+u*e,r[5]=l*t+y*e,r[6]=i*t+w*e,r[7]=c*t+A*e,r[8]=u*t-o*e,r[9]=y*t-l*e,r[10]=w*t-i*e,r[11]=A*t-c*e,r}},{}],24:[function(r,a,n){a.exports=function(r,a,n){var e=Math.sin(n),t=Math.cos(n),o=a[0],l=a[1],i=a[2],c=a[3],u=a[8],y=a[9],w=a[10],A=a[11];return a!==r&&(r[4]=a[4],r[5]=a[5],r[6]=a[6],r[7]=a[7],r[12]=a[12],r[13]=a[13],r[14]=a[14],r[15]=a[15]),r[0]=o*t-u*e,r[1]=l*t-y*e,r[2]=i*t-w*e,r[3]=c*t-A*e,r[8]=o*e+u*t,r[9]=l*e+y*t,r[10]=i*e+w*t,r[11]=c*e+A*t,r}},{}],25:[function(r,a,n){a.exports=function(r,a,n){var e=Math.sin(n),t=Math.cos(n),o=a[0],l=a[1],i=a[2],c=a[3],u=a[4],y=a[5],w=a[6],A=a[7];return a!==r&&(r[8]=a[8],r[9]=a[9],r[10]=a[10],r[11]=a[11],r[12]=a[12],r[13]=a[13],r[14]=a[14],r[15]=a[15]),r[0]=o*t+u*e,r[1]=l*t+y*e,r[2]=i*t+w*e,r[3]=c*t+A*e,r[4]=u*t-o*e,r[5]=y*t-l*e,r[6]=w*t-i*e,r[7]=A*t-c*e,r}},{}],26:[function(r,a,n){a.exports=function(r,a,n){var e=n[0],t=n[1],o=n[2];return r[0]=a[0]*e,r[1]=a[1]*e,r[2]=a[2]*e,r[3]=a[3]*e,r[4]=a[4]*t,r[5]=a[5]*t,r[6]=a[6]*t,r[7]=a[7]*t,r[8]=a[8]*o,r[9]=a[9]*o,r[10]=a[10]*o,r[11]=a[11]*o,r[12]=a[12],r[13]=a[13],r[14]=a[14],r[15]=a[15],r}},{}],27:[function(r,a,n){a.exports=function(r){return"mat4("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+", "+r[4]+", "+r[5]+", "+r[6]+", "+r[7]+", "+r[8]+", "+r[9]+", "+r[10]+", "+r[11]+", "+r[12]+", "+r[13]+", "+r[14]+", "+r[15]+")"}},{}],28:[function(r,a,n){a.exports=function(r,a,n){var e,t,o,l,i,c,u,y,w,A,s,F,f=n[0],v=n[1],m=n[2];return a===r?(r[12]=a[0]*f+a[4]*v+a[8]*m+a[12],r[13]=a[1]*f+a[5]*v+a[9]*m+a[13],r[14]=a[2]*f+a[6]*v+a[10]*m+a[14],r[15]=a[3]*f+a[7]*v+a[11]*m+a[15]):(e=a[0],t=a[1],o=a[2],l=a[3],i=a[4],c=a[5],u=a[6],y=a[7],w=a[8],A=a[9],s=a[10],F=a[11],r[0]=e,r[1]=t,r[2]=o,r[3]=l,r[4]=i,r[5]=c,r[6]=u,r[7]=y,r[8]=w,r[9]=A,r[10]=s,r[11]=F,r[12]=e*f+i*v+w*m+a[12],r[13]=t*f+c*v+A*m+a[13],r[14]=o*f+u*v+s*m+a[14],r[15]=l*f+y*v+F*m+a[15]),r}},{}],29:[function(r,a,n){a.exports=function(r,a){if(r===a){var n=a[1],e=a[2],t=a[3],o=a[6],l=a[7],i=a[11];r[1]=a[4],r[2]=a[8],r[3]=a[12],r[4]=n,r[6]=a[9],r[7]=a[13],r[8]=e,r[9]=o,r[11]=a[14],r[12]=t,r[13]=l,r[14]=i}else r[0]=a[0],r[1]=a[4],r[2]=a[8],r[3]=a[12],r[4]=a[1],r[5]=a[5],r[6]=a[9],r[7]=a[13],r[8]=a[2],r[9]=a[6],r[10]=a[10],r[11]=a[14],r[12]=a[3],r[13]=a[7],r[14]=a[11],r[15]=a[15];return r}},{}],30:[function(r,a,n){a.exports=function(r,a,n){return r[0]=a[0]+n[0],r[1]=a[1]+n[1],r[2]=a[2]+n[2],r}},{}],31:[function(r,a,n){a.exports=function(r,a){var n=e(r[0],r[1],r[2]),l=e(a[0],a[1],a[2]);t(n,n),t(l,l);var i=o(n,l);return i>1?0:Math.acos(i)};var e=r("./fromValues"),t=r("./normalize"),o=r("./dot")},{"./dot":38,"./fromValues":40,"./normalize":49}],32:[function(r,a,n){a.exports=function(r){var a=new Float32Array(3);return a[0]=r[0],a[1]=r[1],a[2]=r[2],a}},{}],33:[function(r,a,n){a.exports=function(r,a){return r[0]=a[0],r[1]=a[1],r[2]=a[2],r}},{}],34:[function(r,a,n){a.exports=function(){var r=new Float32Array(3);return r[0]=0,r[1]=0,r[2]=0,r}},{}],35:[function(r,a,n){a.exports=function(r,a,n){var e=a[0],t=a[1],o=a[2],l=n[0],i=n[1],c=n[2];return r[0]=t*c-o*i,r[1]=o*l-e*c,r[2]=e*i-t*l,r}},{}],36:[function(r,a,n){a.exports=function(r,a){var n=a[0]-r[0],e=a[1]-r[1],t=a[2]-r[2];return Math.sqrt(n*n+e*e+t*t)}},{}],37:[function(r,a,n){a.exports=function(r,a,n){return r[0]=a[0]/n[0],r[1]=a[1]/n[1],r[2]=a[2]/n[2],r}},{}],38:[function(r,a,n){a.exports=function(r,a){return r[0]*a[0]+r[1]*a[1]+r[2]*a[2]}},{}],39:[function(r,a,n){a.exports=function(r,a,n,t,o,l){var i,c;for(a||(a=3),n||(n=0),c=t?Math.min(t*a+n,r.length):r.length,i=n;i<c;i+=a)e[0]=r[i],e[1]=r[i+1],e[2]=r[i+2],o(e,e,l),r[i]=e[0],r[i+1]=e[1],r[i+2]=e[2];return r};var e=r("./create")()},{"./create":34}],40:[function(r,a,n){a.exports=function(r,a,n){var e=new Float32Array(3);return e[0]=r,e[1]=a,e[2]=n,e}},{}],41:[function(r,a,n){a.exports={create:r("./create"),clone:r("./clone"),angle:r("./angle"),fromValues:r("./fromValues"),copy:r("./copy"),set:r("./set"),add:r("./add"),subtract:r("./subtract"),multiply:r("./multiply"),divide:r("./divide"),min:r("./min"),max:r("./max"),scale:r("./scale"),scaleAndAdd:r("./scaleAndAdd"),distance:r("./distance"),squaredDistance:r("./squaredDistance"),length:r("./length"),squaredLength:r("./squaredLength"),negate:r("./negate"),inverse:r("./inverse"),normalize:r("./normalize"),dot:r("./dot"),cross:r("./cross"),lerp:r("./lerp"),random:r("./random"),transformMat4:r("./transformMat4"),transformMat3:r("./transformMat3"),transformQuat:r("./transformQuat"),rotateX:r("./rotateX"),rotateY:r("./rotateY"),rotateZ:r("./rotateZ"),forEach:r("./forEach")}},{"./add":30,"./angle":31,"./clone":32,"./copy":33,"./create":34,"./cross":35,"./distance":36,"./divide":37,"./dot":38,"./forEach":39,"./fromValues":40,"./inverse":42,"./length":43,"./lerp":44,"./max":45,"./min":46,"./multiply":47,"./negate":48,"./normalize":49,"./random":50,"./rotateX":51,"./rotateY":52,"./rotateZ":53,"./scale":54,"./scaleAndAdd":55,"./set":56,"./squaredDistance":57,"./squaredLength":58,"./subtract":59,"./transformMat3":60,"./transformMat4":61,"./transformQuat":62}],42:[function(r,a,n){a.exports=function(r,a){return r[0]=1/a[0],r[1]=1/a[1],r[2]=1/a[2],r}},{}],43:[function(r,a,n){a.exports=function(r){var a=r[0],n=r[1],e=r[2];return Math.sqrt(a*a+n*n+e*e)}},{}],44:[function(r,a,n){a.exports=function(r,a,n,e){var t=a[0],o=a[1],l=a[2];return r[0]=t+e*(n[0]-t),r[1]=o+e*(n[1]-o),r[2]=l+e*(n[2]-l),r}},{}],45:[function(r,a,n){a.exports=function(r,a,n){return r[0]=Math.max(a[0],n[0]),r[1]=Math.max(a[1],n[1]),r[2]=Math.max(a[2],n[2]),r}},{}],46:[function(r,a,n){a.exports=function(r,a,n){return r[0]=Math.min(a[0],n[0]),r[1]=Math.min(a[1],n[1]),r[2]=Math.min(a[2],n[2]),r}},{}],47:[function(r,a,n){a.exports=function(r,a,n){return r[0]=a[0]*n[0],r[1]=a[1]*n[1],r[2]=a[2]*n[2],r}},{}],48:[function(r,a,n){a.exports=function(r,a){return r[0]=-a[0],r[1]=-a[1],r[2]=-a[2],r}},{}],49:[function(r,a,n){a.exports=function(r,a){var n=a[0],e=a[1],t=a[2],o=n*n+e*e+t*t;return o>0&&(o=1/Math.sqrt(o),r[0]=a[0]*o,r[1]=a[1]*o,r[2]=a[2]*o),r}},{}],50:[function(r,a,n){a.exports=function(r,a){a=a||1;var n=2*Math.random()*Math.PI,e=2*Math.random()-1,t=Math.sqrt(1-e*e)*a;return r[0]=Math.cos(n)*t,r[1]=Math.sin(n)*t,r[2]=e*a,r}},{}],51:[function(r,a,n){a.exports=function(r,a,n,e){var t=[],o=[];return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],o[0]=t[0],o[1]=t[1]*Math.cos(e)-t[2]*Math.sin(e),o[2]=t[1]*Math.sin(e)+t[2]*Math.cos(e),r[0]=o[0]+n[0],r[1]=o[1]+n[1],r[2]=o[2]+n[2],r}},{}],52:[function(r,a,n){a.exports=function(r,a,n,e){var t=[],o=[];return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],o[0]=t[2]*Math.sin(e)+t[0]*Math.cos(e),o[1]=t[1],o[2]=t[2]*Math.cos(e)-t[0]*Math.sin(e),r[0]=o[0]+n[0],r[1]=o[1]+n[1],r[2]=o[2]+n[2],r}},{}],53:[function(r,a,n){a.exports=function(r,a,n,e){var t=[],o=[];return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],o[0]=t[0]*Math.cos(e)-t[1]*Math.sin(e),o[1]=t[0]*Math.sin(e)+t[1]*Math.cos(e),o[2]=t[2],r[0]=o[0]+n[0],r[1]=o[1]+n[1],r[2]=o[2]+n[2],r}},{}],54:[function(r,a,n){a.exports=function(r,a,n){return r[0]=a[0]*n,r[1]=a[1]*n,r[2]=a[2]*n,r}},{}],55:[function(r,a,n){a.exports=function(r,a,n,e){return r[0]=a[0]+n[0]*e,r[1]=a[1]+n[1]*e,r[2]=a[2]+n[2]*e,r}},{}],56:[function(r,a,n){a.exports=function(r,a,n,e){return r[0]=a,r[1]=n,r[2]=e,r}},{}],57:[function(r,a,n){a.exports=function(r,a){var n=a[0]-r[0],e=a[1]-r[1],t=a[2]-r[2];return n*n+e*e+t*t}},{}],58:[function(r,a,n){a.exports=function(r){var a=r[0],n=r[1],e=r[2];return a*a+n*n+e*e}},{}],59:[function(r,a,n){a.exports=function(r,a,n){return r[0]=a[0]-n[0],r[1]=a[1]-n[1],r[2]=a[2]-n[2],r}},{}],60:[function(r,a,n){a.exports=function(r,a,n){var e=a[0],t=a[1],o=a[2];return r[0]=e*n[0]+t*n[3]+o*n[6],r[1]=e*n[1]+t*n[4]+o*n[7],r[2]=e*n[2]+t*n[5]+o*n[8],r}},{}],61:[function(r,a,n){a.exports=function(r,a,n){var e=a[0],t=a[1],o=a[2],l=n[3]*e+n[7]*t+n[11]*o+n[15];return l=l||1,r[0]=(n[0]*e+n[4]*t+n[8]*o+n[12])/l,r[1]=(n[1]*e+n[5]*t+n[9]*o+n[13])/l,r[2]=(n[2]*e+n[6]*t+n[10]*o+n[14])/l,r}},{}],62:[function(r,a,n){a.exports=function(r,a,n){var e=a[0],t=a[1],o=a[2],l=n[0],i=n[1],c=n[2],u=n[3],y=u*e+i*o-c*t,w=u*t+c*e-l*o,A=u*o+l*t-i*e,s=-l*e-i*t-c*o;return r[0]=y*u+s*-l+w*-c-A*-i,r[1]=w*u+s*-i+A*-l-y*-c,r[2]=A*u+s*-c+y*-i-w*-l,r}},{}],63:[function(r,a,n){(function(r){a.exports=r.performance&&r.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],64:[function(r,a,n){"use strict";var e=r("./shaderLib.js");a.exports.frag="#version 300 es\n\nprecision highp float;\nprecision highp sampler3D;\n\nin vec3 vPosition;\nin vec3 vNormal;\n\nuniform sampler3D uTexture;\nuniform float uTime;\nuniform vec2 uResolution;\n\nuniform mat4 uModelView;\nuniform mat4 uProjection;\n\nuniform bool uIsocaps;\n\nuniform float uIsoLevel;\nuniform float uIsoRange;\n\nuniform vec3 uLightPosition;\nuniform vec4 uLightColor;\n\nuniform vec3 uClipBoxMin;\nuniform vec3 uClipBoxMax;\n\nout vec4 color;\n\n"+e.raytrace+"\n\nvoid main() {\n color = texture(uTexture, vPosition).rrra;\n color.a = 1.0;\n}",a.exports.vert="#version 300 es\n\n#define POSITION_LOCATION 0\n#define NORMAL_LOCATION 1\n\nprecision highp float;\nprecision highp int;\n\nlayout(location = POSITION_LOCATION) in vec3 aPosition;\nlayout(location = NORMAL_LOCATION) in vec3 aNormal;\n\nuniform mat4 uModelView;\nuniform mat4 uProjection;\nuniform float uTime;\nuniform vec3 uClipBoxMin;\nuniform vec3 uClipBoxMax;\nuniform vec3 uDimensions;\n\nout vec3 vPosition;\nout vec3 vNormal;\n\nout float vClipped;\n\n"+e.raytrace+"\n\nvoid main() {\n vec3 p = aPosition / uDimensions;\n gl_Position = uProjection * uModelView * vec4(p, 1.0);\n vPosition = p;\n vNormal = normalize(transpose(mat3(inverse(uModelView))) * aNormal);\n}"},{"./shaderLib.js":67}],65:[function(r,a,n){"use strict";var e=r("./shaderLib");a.exports.frag="#version 300 es\n\nprecision highp float;\nprecision highp sampler3D;\n\nin vec3 vPosition;\nin vec3 vNormal;\n\nuniform sampler3D uTexture;\nuniform float uTime;\nuniform vec2 uResolution;\n\nuniform mat4 uModelView;\nuniform mat4 uProjection;\n\nuniform bool uIsocaps;\n\nuniform float uIsoLevel;\nuniform float uIsoRange;\n\nuniform vec3 uLightPosition;\nuniform vec4 uLightColor;\n\nuniform vec3 uClipBoxMin;\nuniform vec3 uClipBoxMax;\n\nout vec4 color;\n\n"+e.raytrace+"\n\nvoid main() {\n vec3 dims = vec3(textureSize(uTexture, 0));\n Box clipBox = Box(uClipBoxMin * dims, uClipBoxMax * dims);\n vec3 p = vPosition * dims;\n if ((any(lessThan(p-floor(clipBox.minPoint), vec3(-0.01))) || any(greaterThan(p-floor(clipBox.maxPoint), vec3(0.01))))) {\n discard;\n }\n float diffuse = dot(normalize(vNormal), -normalize(transpose(mat3(inverse(uModelView))) * uLightPosition));\n diffuse = abs(diffuse);\n color = vec4(diffuse * uLightColor * uLightColor.a);\n color.a = 1.0;\n}",a.exports.vert="#version 300 es\n\n#define POSITION_LOCATION 0\n#define NORMAL_LOCATION 1\n\nprecision highp float;\nprecision highp int;\n\nlayout(location = POSITION_LOCATION) in vec3 aPosition;\nlayout(location = NORMAL_LOCATION) in vec3 aNormal;\n\nuniform mat4 uModelView;\nuniform mat4 uProjection;\nuniform float uTime;\nuniform vec3 uClipBoxMin;\nuniform vec3 uClipBoxMax;\nuniform vec3 uDimensions;\nuniform bool uIsocaps;\n\nout vec3 vPosition;\nout vec3 vNormal;\n\n"+e.raytrace+"\n\nvoid main() {\n Box clipBox = Box(uClipBoxMin, uClipBoxMax);\n\n vec3 p = aPosition / uDimensions;\n vec3 cp = uIsocaps ? clamp(p, clipBox.minPoint, clipBox.maxPoint) : p;\n gl_Position = uProjection * uModelView * vec4(p, 1.0);\n vPosition = p;\n vNormal = normalize(transpose(mat3(inverse(uModelView))) * aNormal);\n}"},{"./shaderLib":67}],66:[function(r,a,n){"use strict";var e=r("./shaderLib");a.exports.frag="#version 300 es\n\nprecision highp float;\nprecision highp sampler3D;\n\nin vec3 vPosition;\n\nuniform sampler3D uTexture;\nuniform float uTime;\nuniform vec2 uResolution;\n\nuniform mat4 uModelView;\nuniform mat4 uProjection;\n\nuniform vec3 uClipBoxMin;\nuniform vec3 uClipBoxMax;\n\nuniform bool uIsocaps;\n\nuniform float uIsoLevel;\nuniform float uIsoRange;\nuniform float uRaySteps;\n\nout vec4 color;\n\n"+e.raytrace+"\n\nvec3 gradient(vec3 uvw, vec4 c)\n{\n vec3 e = vec3(0.0, 0.0, 1.0 / 256.0);\n vec4 dx = texture(uTexture, uvw + e.zxx, -16.0) - c;\n vec4 dy = texture(uTexture, uvw + e.xzx, -16.0) - c;\n vec4 dz = texture(uTexture, uvw + e.xxz, -16.0) - c;\n return vec3(dx.r, dy.r, dz.r);\n}\n\nvec3 grey(vec3 rgb) {\n return vec3((rgb.r + rgb.g + rgb.b) / 3.0);\n}\n\nvec4 getColor(vec3 uvw, vec4 c) {\n vec3 grad = gradient(uvw, c);\n float alpha = 0.005; //mix(0.05*c.r, 0.01*c.r, pow(clamp(c.r+0., 0.0, 1.0), 4.0));\n if (abs(c.r - uIsoLevel) <= uIsoRange) {\n alpha = 0.15;\n }\n alpha *= c.a;\n c.r = abs(c.r - uIsoLevel) * 2.0;\n vec3 col = 1.0-max(vec3(0.0), vec3(c.r*2., abs(0.7-c.r), 0.8-c.r)+0.5);\n col = col.bgr;\n col.r *= 0.75;\n col.b *= 0.5;\n return vec4(pow(grey(abs(grad))+abs(grad), vec3(0.5))+col, alpha); \n}\n\nvec4 getCapColor(vec3 uvw, vec4 c) {\n vec3 grad = gradient(uvw, c);\n float alpha = 0.005; //mix(0.05*c.r, 0.01*c.r, pow(clamp(c.r+0., 0.0, 1.0), 4.0));\n if (abs(c.r - uIsoLevel) <= uIsoRange) {\n alpha = 0.15;\n }\n alpha *= c.a;\n vec3 col = 1.0-max(vec3(0.0), vec3(c.r*2., abs(0.7-c.r), 0.8-c.r)+0.5);\n col = col.bgr;\n col.r *= 0.75;\n col.b *= 0.5;\n return vec4(pow(grey(abs(grad))+abs(grad), vec3(0.5))+col, alpha); \n}\n\nvoid main() {\n vec2 uv = gl_FragCoord.xy / uResolution * 2.0 - 1.0;\n\n mat4 clipToEye = inverse(uProjection);\n mat4 eyeToWorld = inverse(uModelView);\n\n vec4 clipNear = vec4(uv, -1.0, 1.0);\n vec4 clipFar = vec4(uv, 1.0, 1.0);\n\n vec4 eyeNear = clipToEye * clipNear;\n vec4 eyeFar = clipToEye * clipFar;\n\n vec4 worldNear = eyeToWorld * eyeNear;\n vec4 worldFar = eyeToWorld * eyeFar;\n\n vec3 ro = worldNear.xyz / worldNear.w;\n vec3 rd = normalize((worldFar.xyz / worldFar.w) - ro);\n\n color = vec4(0.0);\n float t1, t2;\n vec3 nml;\n Box clipBox = Box(uClipBoxMin, uClipBoxMax);\n if (boxIntersect(ro, rd, clipBox, t1, t2, nml)) {\n vec3 uvw = (ro + rd * t1);\n if ( uIsocaps && all(lessThanEqual(uvw, vec3(1.0))) && all(greaterThanEqual(uvw, vec3(0.0))) ) {\n vec4 c = texture(uTexture, uvw, -16.0);\n if (abs(c.r - uIsoLevel) <= uIsoRange) {\n vec4 col = getCapColor(uvw, c);\n color = 1.0 - col;\n color.a = sqrt(c.r) * c.a;\n }\n }\n vec3 p1 = ro + rd * t1;\n vec4 accum = vec4(0.0);\n bool noHit = true;\n float steps = ceil((t2-t1) * uRaySteps);\n for (float i=0.0; i<=steps; i++) {\n float t = 1.0 - i/steps;\n vec3 uvw = (p1 + rd * (t2-t1) * t);\n //uvw += vec3(sin(uTime + uvw.y*6.0) * 0.2, 0.0, 0.0);\n vec3 ou = uvw;\n if (all(lessThanEqual(uvw, clipBox.maxPoint)) && all(greaterThanEqual(uvw, clipBox.minPoint)) ) {\n vec4 c = texture(uTexture, uvw, -16.0);\n //if (abs(c.r - uIsoLevel) <= uIsoRange) {\n vec4 col = getColor(uvw, c);\n accum = mix(accum, col, col.a);\n noHit = false;\n //}\n }\n }\n// if (noHit) {\n// discard;\n// return;\n// }\n color = mix(1.0 - accum, color, color.a);\n color.a = 1.0;\n }\n}\n",a.exports.vert="#version 300 es\n\n#define POSITION_LOCATION 0\n\nprecision highp float;\nprecision highp int;\n\nlayout(location = POSITION_LOCATION) in vec3 aPosition;\n\nout vec3 vPosition;\n\nvoid main() {\n gl_Position = vec4(aPosition, 1.0);\n vPosition = gl_Position.xyz;\n}"},{"./shaderLib":67}],67:[function(r,a,n){"use strict";a.exports={raytrace:"\n struct Box {\n vec3 minPoint;\n vec3 maxPoint;\n };\n\n bool boxIntersect(vec3 ro, vec3 rd, Box box, out float t1, out float t2, out vec3 nml)\n {\n vec3 ird = 1.0 / rd;\n vec3 v1 = (box.minPoint - ro) * ird;\n vec3 v2 = (box.maxPoint - ro) * ird;\n vec3 n = min(v1, v2);\n vec3 f = max(v1, v2);\n float enter = max(n.x, max(n.y, n.z));\n float exit = min(f.x, min(f.y, f.z));\n if (exit > 0.0 && enter < exit) {\n t1 = enter;\n t2 = exit;\n return true;\n }\n return false;\n }\n\n bool planeIntersect(vec3 ro, vec3 rd, vec3 p, vec3 nml, out float t)\n {\n float d = dot(nml, rd);\n if (d <= 0.0) {\n return false;\n }\n d = -dot(ro-p, nml) / d;\n if (d < 0.0) {\n return false;\n }\n t = d;\n return true;\n }\n "}},{}],68:[function(r,a,n){"use strict";a.exports.rayMarch=r("./rayMarch.js"),a.exports.isoCap=r("./isoCap.js"),a.exports.isoSurface=r("./isoSurface.js")},{"./isoCap.js":64,"./isoSurface.js":65,"./rayMarch.js":66}]},{},[1]);