Mr.doob 11 years ago
parent
commit
5de341fa53
100 changed files with 52939 additions and 3967 deletions
  1. 219 187
      build/three.js
  2. 107 108
      build/three.min.js
  3. 5 5
      docs/api/extras/ImageUtils.html
  4. 7 7
      docs/api/extras/core/Shape.html
  5. 6 1
      docs/api/extras/geometries/ShapeGeometry.html
  6. 0 0
      docs/api/materials/ParticleSystemMaterial.html
  7. 0 0
      docs/api/materials/SpriteCanvasMaterial.html
  8. 2 17
      docs/api/objects/Mesh.html
  9. 0 46
      docs/api/objects/Particle.html
  10. 1 1
      docs/api/objects/ParticleSystem.html
  11. 3 9
      docs/api/objects/Sprite.html
  12. 1 1
      docs/index.html
  13. 3 6
      docs/list.js
  14. 194 0
      editor/css/dark.css
  15. 161 0
      editor/css/light.css
  16. 50 0
      editor/css/types.css
  17. 63 124
      editor/index.html
  18. 51 0
      editor/js/Config.js
  19. 63 7
      editor/js/Editor.js
  20. 0 33
      editor/js/Loader.js
  21. 1 1
      editor/js/Menubar.Add.js
  22. 1 1
      editor/js/Menubar.Edit.js
  23. 5 24
      editor/js/Menubar.File.js
  24. 1 1
      editor/js/Menubar.Help.js
  25. 52 0
      editor/js/Menubar.View.js
  26. 2 1
      editor/js/Menubar.js
  27. 2 4
      editor/js/Sidebar.Animation.js
  28. 2 4
      editor/js/Sidebar.Geometry.CircleGeometry.js
  29. 6 8
      editor/js/Sidebar.Geometry.CubeGeometry.js
  30. 7 9
      editor/js/Sidebar.Geometry.CylinderGeometry.js
  31. 2 4
      editor/js/Sidebar.Geometry.IcosahedronGeometry.js
  32. 4 6
      editor/js/Sidebar.Geometry.PlaneGeometry.js
  33. 7 9
      editor/js/Sidebar.Geometry.SphereGeometry.js
  34. 5 7
      editor/js/Sidebar.Geometry.TorusGeometry.js
  35. 7 9
      editor/js/Sidebar.Geometry.TorusKnotGeometry.js
  36. 13 19
      editor/js/Sidebar.Geometry.js
  37. 29 32
      editor/js/Sidebar.Material.js
  38. 25 25
      editor/js/Sidebar.Object3D.js
  39. 13 38
      editor/js/Sidebar.Renderer.js
  40. 19 12
      editor/js/Sidebar.Scene.js
  41. 1 1
      editor/js/Sidebar.js
  42. 83 0
      editor/js/Storage.js
  43. 1 1
      editor/js/Toolbar.js
  44. 63 34
      editor/js/Viewport.js
  45. 0 1671
      editor/js/libs/rawdeflate.js
  46. 0 753
      editor/js/libs/rawinflate.js
  47. 58 35
      editor/js/libs/ui.js
  48. 2 2
      examples/canvas_interactive_cubes.html
  49. 2 2
      examples/canvas_interactive_lines.html
  50. 1 1
      examples/canvas_interactive_particles.html
  51. 3 3
      examples/canvas_lights_pointlights.html
  52. 3 3
      examples/canvas_lights_pointlights_smooth.html
  53. 2 2
      examples/canvas_lines.html
  54. 2 2
      examples/canvas_lines_sphere.html
  55. 1 1
      examples/canvas_materials.html
  56. 2 2
      examples/canvas_materials_video.html
  57. 2 2
      examples/canvas_particles_floor.html
  58. 6 1
      examples/canvas_particles_random.html
  59. 10 5
      examples/canvas_particles_shapes.html
  60. 7 5
      examples/canvas_particles_sprites.html
  61. 2 2
      examples/canvas_particles_waves.html
  62. 12 7
      examples/canvas_performance.html
  63. 1 0
      examples/index.html
  64. 18 5
      examples/js/controls/EditorControls.js
  65. 1 1
      examples/js/controls/PathControls.js
  66. 1 1
      examples/js/controls/PointerLockControls.js
  67. 295 181
      examples/js/controls/TransformControls.js
  68. 9 1
      examples/js/exporters/BufferGeometryExporter.js
  69. 302 0
      examples/js/loaders/AssimpJSONLoader.js
  70. 22 36
      examples/js/loaders/BabylonLoader.js
  71. 230 90
      examples/js/loaders/OBJLoader.js
  72. 230 90
      examples/js/loaders/OBJMTLLoader.js
  73. 148 30
      examples/js/loaders/VRMLLoader.js
  74. 111 74
      examples/js/loaders/ctm/CTMLoader.js
  75. 30 2
      examples/js/loaders/ctm/ctm.js
  76. 4 4
      examples/js/renderers/SVGRenderer.js
  77. 6 6
      examples/misc_controls_fly.html
  78. BIN
      examples/models/assimp/interior/image1.jpg
  79. BIN
      examples/models/assimp/interior/image2.jpg
  80. BIN
      examples/models/assimp/interior/interior.3ds
  81. 2687 0
      examples/models/assimp/interior/interior.3ds.json
  82. BIN
      examples/models/assimp/interior/wall.jpg
  83. BIN
      examples/models/assimp/jeep/jeep1.jpg
  84. BIN
      examples/models/assimp/jeep/jeep1.ms3d
  85. 42010 0
      examples/models/assimp/jeep/jeep1.ms3d.json
  86. 15 0
      examples/models/assimp/jeep/jeep1.readme.txt
  87. 5183 0
      examples/models/vrml/house.wrl
  88. 5 18
      examples/webgl_buffergeometry.html
  89. 5 19
      examples/webgl_buffergeometry_custom_attributes_particles.html
  90. 2 10
      examples/webgl_buffergeometry_lines.html
  91. 3 13
      examples/webgl_buffergeometry_particles.html
  92. 1 1
      examples/webgl_camera.html
  93. 6 6
      examples/webgl_geometry_extrude_shapes.html
  94. 2 2
      examples/webgl_geometry_shapes.html
  95. 186 0
      examples/webgl_loader_assimp2json.html
  96. 2 4
      examples/webgl_loader_vrml.html
  97. 11 67
      examples/webgl_materials_wireframe.html
  98. 9 3
      examples/webgl_panorama_equirectangular.html
  99. 1 1
      examples/webgl_particles_billboards.html
  100. 1 1
      examples/webgl_particles_billboards_colors.html

+ 219 - 187
build/three.js

@@ -4,7 +4,7 @@
  * @author bhouston / http://exocortex.com
  */
 
-var THREE = THREE || { REVISION: '61' };
+var THREE = { REVISION: '62' };
 
 self.console = self.console || {
 
@@ -6729,26 +6729,40 @@ THREE.EventDispatcher.prototype = {
 
 	},
 
-	dispatchEvent: function ( event ) {
+	dispatchEvent: function () {
 
-		if ( this._listeners === undefined ) return;
+		var array = [];
 
-		var listeners = this._listeners;
-		var listenerArray = listeners[ event.type ];
+		return function ( event ) {
+
+			if ( this._listeners === undefined ) return;
+
+			var listeners = this._listeners;
+			var listenerArray = listeners[ event.type ];
+
+			if ( listenerArray !== undefined ) {
+
+				event.target = this;
 
-		if ( listenerArray !== undefined ) {
+				var length = listenerArray.length;
 
-			event.target = this;
+				for ( var i = 0; i < length; i ++ ) {
 
-			for ( var i = 0, l = listenerArray.length; i < l; i ++ ) {
+					array[ i ] = listenerArray[ i ];
 
-				listenerArray[ i ].call( this, event );
+				}
+
+				for ( var i = 0; i < length; i ++ ) {
+
+					array[ i ].call( this, event );
+
+				}
 
 			}
 
-		}
+		};
 
-	}
+	}()
 
 };
 
@@ -6790,7 +6804,7 @@ THREE.EventDispatcher.prototype = {
 
 	var intersectObject = function ( object, raycaster, intersects ) {
 
-		if ( object instanceof THREE.Particle ) {
+		if ( object instanceof THREE.Sprite ) {
 
 			matrixPosition.getPositionFromMatrix( object.matrixWorld );
 			var distance = raycaster.ray.distanceToPoint( matrixPosition );
@@ -6896,7 +6910,16 @@ THREE.EventDispatcher.prototype = {
 								positions[ c * 3 + 2 ]
 							);
 
-							var intersectionPoint = localRay.intersectTriangle( vA, vB, vC, material.side !== THREE.DoubleSide );
+							
+							if ( material.side === THREE.BackSide ) {
+							
+								var intersectionPoint = localRay.intersectTriangle( vC, vB, vA, true ); 
+
+							} else {
+
+								var intersectionPoint = localRay.intersectTriangle( vA, vB, vC, material.side !== THREE.DoubleSide );
+
+							}
 
 							if ( intersectionPoint === null ) continue;
 
@@ -6950,7 +6973,16 @@ THREE.EventDispatcher.prototype = {
 							positions[ c * 3 + 2 ]
 						);
 
-						var intersectionPoint = localRay.intersectTriangle( vA, vB, vC, material.side !== THREE.DoubleSide );
+						
+						if ( material.side === THREE.BackSide ) {
+							
+							var intersectionPoint = localRay.intersectTriangle( vC, vB, vA, true ); 
+
+						} else {
+
+							var intersectionPoint = localRay.intersectTriangle( vA, vB, vC, material.side !== THREE.DoubleSide );
+
+						}
 
 						if ( intersectionPoint === null ) continue;
 
@@ -6996,7 +7028,15 @@ THREE.EventDispatcher.prototype = {
 					b = vertices[ face.b ];
 					c = vertices[ face.c ];
 					
-					var intersectionPoint = localRay.intersectTriangle( a, b, c, material.side !== THREE.DoubleSide );
+					if ( material.side === THREE.BackSide ) {
+							
+						var intersectionPoint = localRay.intersectTriangle( c, b, a, true ); 
+
+					} else {
+								
+						var intersectionPoint = localRay.intersectTriangle( a, b, c, material.side !== THREE.DoubleSide );
+
+					}
 
 					if ( intersectionPoint === null ) continue;
 
@@ -7707,7 +7747,7 @@ THREE.Projector = function () {
 	_vertex, _vertexCount, _vertexPool = [], _vertexPoolLength = 0,
 	_face, _face3Count, _face3Pool = [], _face3PoolLength = 0,
 	_line, _lineCount, _linePool = [], _linePoolLength = 0,
-	_particle, _particleCount, _particlePool = [], _particlePoolLength = 0,
+	_sprite, _spriteCount, _spritePool = [], _spritePoolLength = 0,
 
 	_renderData = { objects: [], sprites: [], lights: [], elements: [] },
 
@@ -7809,7 +7849,7 @@ THREE.Projector = function () {
 
 			}
 
-		} else if ( object instanceof THREE.Sprite || object instanceof THREE.Particle ) {
+		} else if ( object instanceof THREE.Sprite ) {
 
 			_renderData.sprites.push( getObject( object ) );
 
@@ -7850,7 +7890,7 @@ THREE.Projector = function () {
 
 		_face3Count = 0;
 		_lineCount = 0;
-		_particleCount = 0;
+		_spriteCount = 0;
 
 		_renderData.elements.length = 0;
 
@@ -8079,7 +8119,7 @@ THREE.Projector = function () {
 
 			_modelMatrix = object.matrixWorld;
 
-			if ( object instanceof THREE.Particle ) {
+			if ( object instanceof THREE.Sprite ) {
 
 				_vector4.set( _modelMatrix.elements[12], _modelMatrix.elements[13], _modelMatrix.elements[14], 1 );
 				_vector4.applyMatrix4( _viewProjectionMatrix );
@@ -8088,23 +8128,23 @@ THREE.Projector = function () {
 
 				_vector4.z *= invW;
 
-				if ( _vector4.z > 0 && _vector4.z < 1 ) {
+				if ( _vector4.z > -1 && _vector4.z < 1 ) {
 
-					_particle = getNextParticleInPool();
-					_particle.id = object.id;
-					_particle.x = _vector4.x * invW;
-					_particle.y = _vector4.y * invW;
-					_particle.z = _vector4.z;
-					_particle.object = object;
+					_sprite = getNextSpriteInPool();
+					_sprite.id = object.id;
+					_sprite.x = _vector4.x * invW;
+					_sprite.y = _vector4.y * invW;
+					_sprite.z = _vector4.z;
+					_sprite.object = object;
 
-					_particle.rotation = object.rotation.z;
+					_sprite.rotation = object.rotation;
 
-					_particle.scale.x = object.scale.x * Math.abs( _particle.x - ( _vector4.x + camera.projectionMatrix.elements[0] ) / ( _vector4.w + camera.projectionMatrix.elements[12] ) );
-					_particle.scale.y = object.scale.y * Math.abs( _particle.y - ( _vector4.y + camera.projectionMatrix.elements[5] ) / ( _vector4.w + camera.projectionMatrix.elements[13] ) );
+					_sprite.scale.x = object.scale.x * Math.abs( _sprite.x - ( _vector4.x + camera.projectionMatrix.elements[0] ) / ( _vector4.w + camera.projectionMatrix.elements[12] ) );
+					_sprite.scale.y = object.scale.y * Math.abs( _sprite.y - ( _vector4.y + camera.projectionMatrix.elements[5] ) / ( _vector4.w + camera.projectionMatrix.elements[13] ) );
 
-					_particle.material = object.material;
+					_sprite.material = object.material;
 
-					_renderData.elements.push( _particle );
+					_renderData.elements.push( _sprite );
 
 				}
 
@@ -8185,19 +8225,19 @@ THREE.Projector = function () {
 
 	}
 
-	function getNextParticleInPool() {
+	function getNextSpriteInPool() {
 
-		if ( _particleCount === _particlePoolLength ) {
+		if ( _spriteCount === _spritePoolLength ) {
 
-			var particle = new THREE.RenderableParticle();
-			_particlePool.push( particle );
-			_particlePoolLength ++;
-			_particleCount ++
-			return particle;
+			var sprite = new THREE.RenderableSprite();
+			_spritePool.push( sprite );
+			_spritePoolLength ++;
+			_spriteCount ++
+			return sprite;
 
 		}
 
-		return _particlePool[ _particleCount ++ ];
+		return _spritePool[ _spriteCount ++ ];
 
 	}
 
@@ -9041,6 +9081,17 @@ THREE.BufferGeometry.prototype = {
 
 	constructor: THREE.BufferGeometry,
 
+	addAttribute: function( name, type, numItems, itemSize ) {
+
+		this.attributes[ name ] = {
+
+			itemSize: itemSize,
+			array: new type( numItems * itemSize )
+
+		};
+
+	},
+
 	applyMatrix: function ( matrix ) {
 
 		var positionArray;
@@ -11144,8 +11195,9 @@ THREE.JSONLoader.prototype.parse = function ( json, texturePath ) {
 		}
 
 		geometry.bones = json.bones;
+		// could change this to json.animations[0] or remove completely
 		geometry.animation = json.animation;
-
+		geometry.animations = json.animations;
 	};
 
 	function parseMorphing( scale ) {
@@ -13837,7 +13889,7 @@ THREE.MeshFaceMaterial.prototype.clone = function () {
  * }
  */
 
-THREE.ParticleBasicMaterial = function ( parameters ) {
+THREE.ParticleSystemMaterial = function ( parameters ) {
 
 	THREE.Material.call( this );
 
@@ -13856,11 +13908,11 @@ THREE.ParticleBasicMaterial = function ( parameters ) {
 
 };
 
-THREE.ParticleBasicMaterial.prototype = Object.create( THREE.Material.prototype );
+THREE.ParticleSystemMaterial.prototype = Object.create( THREE.Material.prototype );
 
-THREE.ParticleBasicMaterial.prototype.clone = function () {
+THREE.ParticleSystemMaterial.prototype.clone = function () {
 
-	var material = new THREE.ParticleBasicMaterial();
+	var material = new THREE.ParticleSystemMaterial();
 
 	THREE.Material.prototype.clone.call( this, material );
 
@@ -13879,42 +13931,9 @@ THREE.ParticleBasicMaterial.prototype.clone = function () {
 
 };
 
-/**
- * @author mrdoob / http://mrdoob.com/
- *
- * parameters = {
- *  color: <hex>,
- *  program: <function>,
- *  opacity: <float>,
- *  blending: THREE.NormalBlending
- * }
- */
-
-THREE.ParticleCanvasMaterial = function ( parameters ) {
-
-	THREE.Material.call( this );
-
-	this.color = new THREE.Color( 0xffffff );
-	this.program = function ( context, color ) {};
-
-	this.setValues( parameters );
-
-};
-
-THREE.ParticleCanvasMaterial.prototype = Object.create( THREE.Material.prototype );
-
-THREE.ParticleCanvasMaterial.prototype.clone = function () {
-
-	var material = new THREE.ParticleCanvasMaterial();
-
-	THREE.Material.prototype.clone.call( this, material );
-
-	material.color.copy( this.color );
-	material.program = this.program;
-
-	return material;
+// backwards compatibility
 
-};
+THREE.ParticleBasicMaterial = THREE.ParticleSystemMaterial;
 
 /**
  * @author alteredq / http://alteredqualia.com/
@@ -14041,7 +14060,6 @@ THREE.ShaderMaterial.prototype.clone = function () {
  *
  *  useScreenCoordinates: <bool>,
  *  sizeAttenuation: <bool>,
- *  scaleByViewport: <bool>,
  *  alignment: THREE.SpriteAlignment.center,
  *
  *	uvOffset: new THREE.Vector2(),
@@ -14063,7 +14081,6 @@ THREE.SpriteMaterial = function ( parameters ) {
 	this.useScreenCoordinates = true;
 	this.depthTest = !this.useScreenCoordinates;
 	this.sizeAttenuation = !this.useScreenCoordinates;
-	this.scaleByViewport = !this.sizeAttenuation;
 	this.alignment = THREE.SpriteAlignment.center.clone();
 
 	this.fog = false;
@@ -14081,7 +14098,6 @@ THREE.SpriteMaterial = function ( parameters ) {
 
 	if ( parameters.depthTest === undefined ) this.depthTest = !this.useScreenCoordinates;
 	if ( parameters.sizeAttenuation === undefined ) this.sizeAttenuation = !this.useScreenCoordinates;
-	if ( parameters.scaleByViewport === undefined ) this.scaleByViewport = !this.sizeAttenuation;
 
 };
 
@@ -14098,7 +14114,6 @@ THREE.SpriteMaterial.prototype.clone = function () {
 
 	material.useScreenCoordinates = this.useScreenCoordinates;
 	material.sizeAttenuation = this.sizeAttenuation;
-	material.scaleByViewport = this.scaleByViewport;
 	material.alignment.copy( this.alignment );
 
 	material.uvOffset.copy( this.uvOffset );
@@ -14113,16 +14128,56 @@ THREE.SpriteMaterial.prototype.clone = function () {
 // Alignment enums
 
 THREE.SpriteAlignment = {};
-THREE.SpriteAlignment.topLeft = new THREE.Vector2( 1, -1 );
-THREE.SpriteAlignment.topCenter = new THREE.Vector2( 0, -1 );
-THREE.SpriteAlignment.topRight = new THREE.Vector2( -1, -1 );
-THREE.SpriteAlignment.centerLeft = new THREE.Vector2( 1, 0 );
+THREE.SpriteAlignment.topLeft = new THREE.Vector2( 0.5, -0.5 );
+THREE.SpriteAlignment.topCenter = new THREE.Vector2( 0, -0.5 );
+THREE.SpriteAlignment.topRight = new THREE.Vector2( -0.5, -0.5 );
+THREE.SpriteAlignment.centerLeft = new THREE.Vector2( 0.5, 0 );
 THREE.SpriteAlignment.center = new THREE.Vector2( 0, 0 );
-THREE.SpriteAlignment.centerRight = new THREE.Vector2( -1, 0 );
-THREE.SpriteAlignment.bottomLeft = new THREE.Vector2( 1, 1 );
-THREE.SpriteAlignment.bottomCenter = new THREE.Vector2( 0, 1 );
-THREE.SpriteAlignment.bottomRight = new THREE.Vector2( -1, 1 );
+THREE.SpriteAlignment.centerRight = new THREE.Vector2( -0.5, 0 );
+THREE.SpriteAlignment.bottomLeft = new THREE.Vector2( 0.5, 0.5 );
+THREE.SpriteAlignment.bottomCenter = new THREE.Vector2( 0, 0.5 );
+THREE.SpriteAlignment.bottomRight = new THREE.Vector2( -0.5, 0.5 );
+
+/**
+ * @author mrdoob / http://mrdoob.com/
+ *
+ * parameters = {
+ *  color: <hex>,
+ *  program: <function>,
+ *  opacity: <float>,
+ *  blending: THREE.NormalBlending
+ * }
+ */
+
+THREE.SpriteCanvasMaterial = function ( parameters ) {
+
+	THREE.Material.call( this );
+
+	this.color = new THREE.Color( 0xffffff );
+	this.program = function ( context, color ) {};
+
+	this.setValues( parameters );
+
+};
+
+THREE.SpriteCanvasMaterial.prototype = Object.create( THREE.Material.prototype );
+
+THREE.SpriteCanvasMaterial.prototype.clone = function () {
+
+	var material = new THREE.SpriteCanvasMaterial();
+
+	THREE.Material.prototype.clone.call( this, material );
 
+	material.color.copy( this.color );
+	material.program = this.program;
+
+	return material;
+
+};
+
+// backwards compatibility
+
+THREE.ParticleCanvasMaterial = THREE.SpriteCanvasMaterial;
 /**
  * @author mrdoob / http://mrdoob.com/
  * @author alteredq / http://alteredqualia.com/
@@ -14264,30 +14319,6 @@ THREE.DataTexture.prototype.clone = function () {
 
 };
 
-/**
- * @author mrdoob / http://mrdoob.com/
- */
-
-THREE.Particle = function ( material ) {
-
-	THREE.Object3D.call( this );
-
-	this.material = material;
-
-};
-
-THREE.Particle.prototype = Object.create( THREE.Object3D.prototype );
-
-THREE.Particle.prototype.clone = function ( object ) {
-
-	if ( object === undefined ) object = new THREE.Particle( this.material );
-
-	THREE.Object3D.prototype.clone.call( this, object );
-
-	return object;
-
-};
-
 /**
  * @author alteredq / http://alteredqualia.com/
  */
@@ -14297,7 +14328,7 @@ THREE.ParticleSystem = function ( geometry, material ) {
 	THREE.Object3D.call( this );
 
 	this.geometry = geometry !== undefined ? geometry : new THREE.Geometry();
-	this.material = material !== undefined ? material : new THREE.ParticleBasicMaterial( { color: Math.random() * 0xffffff } );
+	this.material = material !== undefined ? material : new THREE.ParticleSystemMaterial( { color: Math.random() * 0xffffff } );
 
 	this.sortParticles = false;
 	this.frustumCulled = false;
@@ -15051,7 +15082,6 @@ THREE.Sprite = function ( material ) {
 
 	this.material = ( material !== undefined ) ? material : new THREE.SpriteMaterial();
 
-	this.rotation3d = this.rotation;
 	this.rotation = 0;
 
 };
@@ -15064,8 +15094,6 @@ THREE.Sprite.prototype = Object.create( THREE.Object3D.prototype );
 
 THREE.Sprite.prototype.updateMatrix = function () {
 
-	this.rotation3d.set( 0, 0, this.rotation, this.rotation3d.order );
-	this.quaternion.setFromEuler( this.rotation3d );
 	this.matrix.compose( this.position, this.quaternion, this.scale );
 
 	this.matrixWorldNeedsUpdate = true;
@@ -15082,7 +15110,9 @@ THREE.Sprite.prototype.clone = function ( object ) {
 
 };
 
+// Backwards compatibility
 
+THREE.Particle = THREE.Sprite;
 /**
  * @author mrdoob / http://mrdoob.com/
  */
@@ -15270,7 +15300,11 @@ THREE.CanvasRenderer = function ( parameters ) {
 			? parameters.canvas
 			: document.createElement( 'canvas' ),
 
-	_canvasWidth, _canvasHeight, _canvasWidthHalf, _canvasHeightHalf,
+	_canvasWidth = _canvas.width,
+	_canvasHeight = _canvas.height,
+	_canvasWidthHalf = Math.floor( _canvasWidth / 2 ),
+	_canvasHeightHalf = Math.floor( _canvasHeight / 2 ),
+	
 	_context = _canvas.getContext( '2d' ),
 
 	_clearColor = new THREE.Color( 0x000000 ),
@@ -15537,12 +15571,12 @@ THREE.CanvasRenderer = function ( parameters ) {
 
 			_elemBox.makeEmpty();
 
-			if ( element instanceof THREE.RenderableParticle ) {
+			if ( element instanceof THREE.RenderableSprite ) {
 
 				_v1 = element;
 				_v1.x *= _canvasWidthHalf; _v1.y *= _canvasHeightHalf;
 
-				renderParticle( _v1, element, material );
+				renderSprite( _v1, element, material );
 
 			} else if ( element instanceof THREE.RenderableLine ) {
 
@@ -15635,13 +15669,13 @@ THREE.CanvasRenderer = function ( parameters ) {
 
 			} else if ( light instanceof THREE.DirectionalLight ) {
 
-				// for particles
+				// for sprites
 
 				_directionalLights.add( lightColor );
 
 			} else if ( light instanceof THREE.PointLight ) {
 
-				// for particles
+				// for sprites
 
 				_pointLights.add( lightColor );
 
@@ -15693,7 +15727,7 @@ THREE.CanvasRenderer = function ( parameters ) {
 
 	}
 
-	function renderParticle( v1, element, material ) {
+	function renderSprite( v1, element, material ) {
 
 		setOpacity( material.opacity );
 		setBlending( material.blending );
@@ -15701,20 +15735,25 @@ THREE.CanvasRenderer = function ( parameters ) {
 		var width, height, scaleX, scaleY,
 		bitmap, bitmapWidth, bitmapHeight;
 
-		if ( material instanceof THREE.ParticleBasicMaterial ) {
+		if ( material instanceof THREE.SpriteMaterial ||
+			 material instanceof THREE.ParticleSystemMaterial ) { // Backwards compatibility
 
-			if ( material.map === null ) {
+			if ( material.map.image !== undefined ) {
 
-				scaleX = element.object.scale.x;
-				scaleY = element.object.scale.y;
+				bitmap = material.map.image;
+				bitmapWidth = bitmap.width >> 1;
+				bitmapHeight = bitmap.height >> 1;
 
-				// TODO: Be able to disable this
+				scaleX = element.scale.x * _canvasWidthHalf;
+				scaleY = element.scale.y * _canvasHeightHalf;
 
-				scaleX *= element.scale.x * _canvasWidthHalf;
-				scaleY *= element.scale.y * _canvasHeightHalf;
+				width = scaleX * bitmapWidth;
+				height = scaleY * bitmapHeight;
 
-				_elemBox.min.set( v1.x - scaleX, v1.y - scaleY );
-				_elemBox.max.set( v1.x + scaleX, v1.y + scaleY );
+				// TODO: Rotations break this...
+
+				_elemBox.min.set( v1.x - width, v1.y - height );
+				_elemBox.max.set( v1.x + width, v1.y + height );
 
 				if ( _clipBox.isIntersectionBox( _elemBox ) === false ) {
 
@@ -15723,31 +15762,27 @@ THREE.CanvasRenderer = function ( parameters ) {
 
 				}
 
-				setFillStyle( material.color.getStyle() );
-
 				_context.save();
 				_context.translate( v1.x, v1.y );
 				_context.rotate( - element.rotation );
-				_context.scale( scaleX, scaleY );
-				_context.fillRect( -1, -1, 2, 2 );
+				_context.scale( scaleX, - scaleY );
+
+				_context.translate( - bitmapWidth, - bitmapHeight );
+				_context.drawImage( bitmap, 0, 0 );
 				_context.restore();
 
 			} else {
 
-				bitmap = material.map.image;
-				bitmapWidth = bitmap.width >> 1;
-				bitmapHeight = bitmap.height >> 1;
-
-				scaleX = element.scale.x * _canvasWidthHalf;
-				scaleY = element.scale.y * _canvasHeightHalf;
+				scaleX = element.object.scale.x;
+				scaleY = element.object.scale.y;
 
-				width = scaleX * bitmapWidth;
-				height = scaleY * bitmapHeight;
+				// TODO: Be able to disable this
 
-				// TODO: Rotations break this...
+				scaleX *= element.scale.x * _canvasWidthHalf;
+				scaleY *= element.scale.y * _canvasHeightHalf;
 
-				_elemBox.min.set( v1.x - width, v1.y - height );
-				_elemBox.max.set( v1.x + width, v1.y + height );
+				_elemBox.min.set( v1.x - scaleX, v1.y - scaleY );
+				_elemBox.max.set( v1.x + scaleX, v1.y + scaleY );
 
 				if ( _clipBox.isIntersectionBox( _elemBox ) === false ) {
 
@@ -15756,13 +15791,13 @@ THREE.CanvasRenderer = function ( parameters ) {
 
 				}
 
+				setFillStyle( material.color.getStyle() );
+
 				_context.save();
 				_context.translate( v1.x, v1.y );
 				_context.rotate( - element.rotation );
-				_context.scale( scaleX, - scaleY );
-
-				_context.translate( - bitmapWidth, - bitmapHeight );
-				_context.drawImage( bitmap, 0, 0 );
+				_context.scale( scaleX, scaleY );
+				_context.fillRect( -1, -1, 2, 2 );
 				_context.restore();
 
 			}
@@ -15777,7 +15812,7 @@ THREE.CanvasRenderer = function ( parameters ) {
 			_context.stroke();
 			*/
 
-		} else if ( material instanceof THREE.ParticleCanvasMaterial ) {
+		} else if ( material instanceof THREE.SpriteCanvasMaterial ) {
 
 			width = element.scale.x * _canvasWidthHalf;
 			height = element.scale.y * _canvasHeightHalf;
@@ -17572,7 +17607,7 @@ THREE.ShaderChunk = {
 
 		"#ifdef USE_COLOR",
 
-			"gl_FragColor = gl_FragColor * vec4( vColor, opacity );",
+			"gl_FragColor = gl_FragColor * vec4( vColor, 1.0 );",
 
 		"#endif"
 
@@ -19708,8 +19743,8 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	_viewportX = 0,
 	_viewportY = 0,
-	_viewportWidth = 0,
-	_viewportHeight = 0,
+	_viewportWidth = _canvas.width,
+	_viewportHeight = _canvas.height,
 	_currentWidth = 0,
 	_currentHeight = 0,
 
@@ -23655,7 +23690,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 			shaderID = 'dashed';
 
-		} else if ( material instanceof THREE.ParticleBasicMaterial ) {
+		} else if ( material instanceof THREE.ParticleSystemMaterial ) {
 
 			shaderID = 'particle_basic';
 
@@ -23922,7 +23957,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 				refreshUniformsLine( m_uniforms, material );
 				refreshUniformsDash( m_uniforms, material );
 
-			} else if ( material instanceof THREE.ParticleBasicMaterial ) {
+			} else if ( material instanceof THREE.ParticleSystemMaterial ) {
 
 				refreshUniformsParticle( m_uniforms, material );
 
@@ -26108,6 +26143,8 @@ THREE.WebGLRenderer = function ( parameters ) {
 		_gl.blendEquation( _gl.FUNC_ADD );
 		_gl.blendFunc( _gl.SRC_ALPHA, _gl.ONE_MINUS_SRC_ALPHA );
 
+		_gl.viewport( _viewportX, _viewportY, _viewportWidth, _viewportHeight );
+		
 		_gl.clearColor( _clearColor.r, _clearColor.g, _clearColor.b, _clearAlpha );
 
 	};
@@ -26280,7 +26317,7 @@ THREE.RenderableObject = function () {
  * @author mrdoob / http://mrdoob.com/
  */
 
-THREE.RenderableParticle = function () {
+THREE.RenderableSprite = function () {
 
 	this.id = 0;
 
@@ -26290,7 +26327,7 @@ THREE.RenderableParticle = function () {
 	this.y = 0;
 	this.z = 0;
 
-	this.rotation = null;
+	this.rotation = 0;
 	this.scale = new THREE.Vector2();
 
 	this.material = null;
@@ -31773,15 +31810,13 @@ THREE.CylinderGeometry.prototype = Object.create( THREE.Geometry.prototype );
  *
  * parameters = {
  *
- *  size: <float>, // size of the text
- *  height: <float>, // thickness to extrude text
  *  curveSegments: <int>, // number of points on the curves
  *  steps: <int>, // number of points for z-side extrusions / used for subdividing segements of extrude spline too
- *  amount: <int>, // Amount
+ *  amount: <int>, // Depth to extrude the shape
  *
  *  bevelEnabled: <bool>, // turn on bevel
- *  bevelThickness: <float>, // how deep into text bevel goes
- *  bevelSize: <float>, // how far from text outline is bevel
+ *  bevelThickness: <float>, // how deep into the original shape bevel goes
+ *  bevelSize: <float>, // how far from shape outline is bevel
  *  bevelSegments: <int>, // number of bevel layers
  *
  *  extrudePath: <THREE.CurvePath> // 3d spline path to extrude shape along. (creates Frames if .frames aren't defined)
@@ -36166,16 +36201,16 @@ THREE.SpritePlugin = function () {
 
 		var i = 0;
 
-		_sprite.vertices[ i++ ] = -1; _sprite.vertices[ i++ ] = -1;	// vertex 0
+		_sprite.vertices[ i++ ] = -0.5; _sprite.vertices[ i++ ] = -0.5;	// vertex 0
 		_sprite.vertices[ i++ ] = 0;  _sprite.vertices[ i++ ] = 0;	// uv 0
 
-		_sprite.vertices[ i++ ] = 1;  _sprite.vertices[ i++ ] = -1;	// vertex 1
+		_sprite.vertices[ i++ ] = 0.5;  _sprite.vertices[ i++ ] = -0.5;	// vertex 1
 		_sprite.vertices[ i++ ] = 1;  _sprite.vertices[ i++ ] = 0;	// uv 1
 
-		_sprite.vertices[ i++ ] = 1;  _sprite.vertices[ i++ ] = 1;	// vertex 2
+		_sprite.vertices[ i++ ] = 0.5;  _sprite.vertices[ i++ ] = 0.5;	// vertex 2
 		_sprite.vertices[ i++ ] = 1;  _sprite.vertices[ i++ ] = 1;	// uv 2
 
-		_sprite.vertices[ i++ ] = -1; _sprite.vertices[ i++ ] = 1;	// vertex 3
+		_sprite.vertices[ i++ ] = -0.5; _sprite.vertices[ i++ ] = 0.5;	// vertex 3
 		_sprite.vertices[ i++ ] = 0;  _sprite.vertices[ i++ ] = 1;	// uv 3
 
 		i = 0;
@@ -36206,6 +36241,7 @@ THREE.SpritePlugin = function () {
 		_sprite.uniforms.rotation             = _gl.getUniformLocation( _sprite.program, "rotation" );
 		_sprite.uniforms.scale                = _gl.getUniformLocation( _sprite.program, "scale" );
 		_sprite.uniforms.alignment            = _gl.getUniformLocation( _sprite.program, "alignment" );
+		_sprite.uniforms.halfViewport         = _gl.getUniformLocation( _sprite.program, "halfViewport" );
 
 		_sprite.uniforms.color                = _gl.getUniformLocation( _sprite.program, "color" );
 		_sprite.uniforms.map                  = _gl.getUniformLocation( _sprite.program, "map" );
@@ -36237,8 +36273,6 @@ THREE.SpritePlugin = function () {
 		var attributes = _sprite.attributes,
 			uniforms = _sprite.uniforms;
 
-		var invAspect = viewportHeight / viewportWidth;
-
 		var halfViewportWidth = viewportWidth * 0.5,
 			halfViewportHeight = viewportHeight * 0.5;
 
@@ -36301,7 +36335,7 @@ THREE.SpritePlugin = function () {
 
 		// update positions and sort
 
-		var i, sprite, material, screenPosition, size, fogType, scale = [];
+		var i, sprite, material, screenPosition, fogType, scale = [];
 
 		for( i = 0; i < nSprites; i ++ ) {
 
@@ -36348,8 +36382,8 @@ THREE.SpritePlugin = function () {
 						Math.max( 0, Math.min( 1, sprite.position.z ) )
 					);
 
-					scale[ 0 ] = _renderer.devicePixelRatio;
-					scale[ 1 ] = _renderer.devicePixelRatio;
+					scale[ 0 ] = _renderer.devicePixelRatio * sprite.scale.x;
+					scale[ 1 ] = _renderer.devicePixelRatio * sprite.scale.y;
 
 				} else {
 
@@ -36357,8 +36391,8 @@ THREE.SpritePlugin = function () {
 					_gl.uniform1i( uniforms.sizeAttenuation, material.sizeAttenuation ? 1 : 0 );
 					_gl.uniformMatrix4fv( uniforms.modelViewMatrix, false, sprite._modelViewMatrix.elements );
 
-					scale[ 0 ] = 1;
-					scale[ 1 ] = 1;
+					scale[ 0 ] = sprite.scale.x;
+					scale[ 1 ] = sprite.scale.y;
 
 				}
 
@@ -36379,11 +36413,6 @@ THREE.SpritePlugin = function () {
 
 				}
 
-				size = 1 / ( material.scaleByViewport ? viewportHeight : 1 );
-
-				scale[ 0 ] *= size * invAspect * sprite.scale.x
-				scale[ 1 ] *= size * sprite.scale.y;
-
 				_gl.uniform2f( uniforms.uvScale, material.uvScale.x, material.uvScale.y );
 				_gl.uniform2f( uniforms.uvOffset, material.uvOffset.x, material.uvOffset.y );
 				_gl.uniform2f( uniforms.alignment, material.alignment.x, material.alignment.y );
@@ -36393,6 +36422,7 @@ THREE.SpritePlugin = function () {
 
 				_gl.uniform1f( uniforms.rotation, sprite.rotation );
 				_gl.uniform2fv( uniforms.scale, scale );
+				_gl.uniform2f( uniforms.halfViewport, halfViewportWidth, halfViewportHeight );
 
 				_renderer.setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst );
 				_renderer.setDepthTest( material.depthTest );
@@ -36860,6 +36890,7 @@ THREE.ShaderSprite = {
 			"uniform vec2 alignment;",
 			"uniform vec2 uvOffset;",
 			"uniform vec2 uvScale;",
+			"uniform vec2 halfViewport;",
 
 			"attribute vec2 position;",
 			"attribute vec2 uv;",
@@ -36870,22 +36901,23 @@ THREE.ShaderSprite = {
 
 				"vUV = uvOffset + uv * uvScale;",
 
-				"vec2 alignedPosition = position + alignment;",
+				"vec2 alignedPosition = ( position + alignment ) * scale;",
 
 				"vec2 rotatedPosition;",
-				"rotatedPosition.x = ( cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y ) * scale.x;",
-				"rotatedPosition.y = ( sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y ) * scale.y;",
+				"rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;",
+				"rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;",
 
 				"vec4 finalPosition;",
 
 				"if( useScreenCoordinates != 0 ) {",
 
-					"finalPosition = vec4( screenPosition.xy + rotatedPosition, screenPosition.z, 1.0 );",
+					"finalPosition = vec4( screenPosition.xy + ( rotatedPosition / halfViewport ), screenPosition.z, 1.0 );",
 
 				"} else {",
 
-					"finalPosition = projectionMatrix * modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );",
+					"finalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );",
 					"finalPosition.xy += rotatedPosition * ( sizeAttenuation == 1 ? 1.0 : finalPosition.z );",
+					"finalPosition = projectionMatrix * finalPosition;",
 
 				"}",
 

File diff suppressed because it is too large
+ 107 - 108
build/three.min.js


+ 5 - 5
docs/api/extras/ImageUtils.html

@@ -55,12 +55,12 @@
 		todo
 		</div>
 
-		<h3>.loadTexture([page:todo url], [page:todo mapping], [page:todo onLoad], [page:todo onError]) [page:todo]</h3>
+		<h3>.loadTexture([page:String url], [page:UVMapping mapping], [page:Function onLoad], [page:Function onError]) [page:todo]</h3>
 		<div>
-		url -- todo <br />
-		mapping -- todo <br />
-		onLoad -- todo <br />
-		onError -- todo
+		url -- the url of the texture<br />
+		mapping -- Can be an instance of [page:UVMapping Three.UVMapping], [page:CubeReflectionMapping THREE.CubeReflectionMapping], [page:SphericalReflectionMapping THREE.SphericalReflectionMapping] or [page:SphericalRefractionMapping THREE.SphericalRefractionMapping]. Describes how the image is applied to the object.<br />Use undefined instead of null as a default value. See mapping property of [page:Texture texture] for more details.
+		onLoad -- callback function<br />
+		onError -- callback function
 		</div>
 		<div>
 		todo

+ 7 - 7
docs/api/extras/core/Shape.html

@@ -34,10 +34,10 @@
 
 		<h3>.makeGeometry([page:todo options]) [page:todo]</h3>
 		<div>
-		options -- todo
+		options -- The options passed as the second argument to [page:ShapeGeometry ShapeGeometry]
 		</div>
 		<div>
-		todo
+		Convenience method to return ShapeGeometry
 		</div>
 
 		<h3>.extractAllPoints([page:todo divisions]) [page:todo]</h3>
@@ -45,15 +45,15 @@
 		divisions -- todo
 		</div>
 		<div>
-		todo
+		Get points of shape and holes (keypoints based on segments parameter)
 		</div>
 
 		<h3>.extrude([page:todo options]) [page:todo]</h3>
 		<div>
-		options -- todo
+		options -- The options passed as the second argument to [page:ExtrudeGeometry ExtrudeGeometry]
 		</div>
 		<div>
-		todo
+		Convenience method to return ExtrudeGeometry
 		</div>
 
 		<h3>.extractPoints([page:todo divisions]) [page:todo]</h3>
@@ -77,7 +77,7 @@
 		divisions -- todo
 		</div>
 		<div>
-		todo
+		Get points of holes
 		</div>
 
 		<h3>.getSpacedPointsHoles([page:todo divisions]) [page:todo]</h3>
@@ -85,7 +85,7 @@
 		divisions -- todo
 		</div>
 		<div>
-		todo
+		Get points of holes (spaced by regular distance)
 		</div>
 
 		<h2>Source</h2>

+ 6 - 1
docs/api/extras/geometries/ShapeGeometry.html

@@ -20,7 +20,12 @@
 		<h3>[name]([page:Array shapes], [page:Object options])</h3>
 		<div>
 		shapes — todo <br />
-		options — todo
+		options — 
+		<ul>
+		<li>curveSegments - todo</li>
+		<li>material - todo</li>
+		<li>UVGenerator - todo</li>
+		</ul>
 		</div>
 		<div>
 		todo

+ 0 - 0
docs/api/materials/ParticleBasicMaterial.html → docs/api/materials/ParticleSystemMaterial.html


+ 0 - 0
docs/api/materials/ParticleCanvasMaterial.html → docs/api/materials/SpriteCanvasMaterial.html


+ 2 - 17
docs/api/objects/Mesh.html

@@ -34,6 +34,7 @@
 		material — An instance of [page:Material] (optional).
 		</div>
 
+
 		<h2>Properties</h2>
 
 		<h3>.[page:Geometry geometry]</h3>
@@ -44,6 +45,7 @@
 
 		<div>An instance of [page:Material], defining the object's appearance. Default is a [page:MeshBasicMaterial] with wireframe mode enabled and randomised colour.</div>
 
+
 		<h2>Methods</h2>
 
 		<h3>.getMorphTargetIndexByName( [page:String name] )</h3>
@@ -53,23 +55,6 @@
 
 		Returns the index of a morph target defined by name.
 
-
-		<h3>.setMaterial([page:todo material]) [page:todo]</h3>
-		<div>
-		material -- todo
-		</div>
-		<div>
-		todo
-		</div>
-
-		<h3>.setGeometry([page:todo geometry]) [page:todo]</h3>
-		<div>
-		geometry -- todo
-		</div>
-		<div>
-		todo
-		</div>
-
 		<h3>.updateMorphTargets() [page:todo]</h3>
 		<div>
 		todo

+ 0 - 46
docs/api/objects/Particle.html

@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<script src="../../list.js"></script>
-		<script src="../../page.js"></script>
-		<link type="text/css" rel="stylesheet" href="../../page.css" />
-	</head>
-	<body>
-		[page:Object3D] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">todo</div>
-
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]([page:todo material])</h3>
-		<div>
-		material -- todo
-		</div>
-		<div>
-		todo
-		</div>
-
-
-		<h2>Properties</h2>
-
-
-
-		<h3>.[page:todo material]</h3>
-		<div>
-		todo
-		</div> 
-
-		<h2>Methods</h2>
-
-
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>

+ 1 - 1
docs/api/objects/ParticleSystem.html

@@ -32,7 +32,7 @@
 
 		<h3>.[page:Material material]</h3>
 
-		<div>An instance of [page:Material], defining the object's appearance. Default is a [page:ParticleBasicMaterial] with randomised colour.</div>
+		<div>An instance of [page:Material], defining the object's appearance. Default is a [page:ParticleSystemMaterial] with randomised colour.</div>
 
 		<h3>.[page:Boolean frustrumCulled]</h3>
 		

+ 3 - 9
docs/api/objects/Sprite.html

@@ -16,7 +16,6 @@
 
 		<h2>Constructor</h2>
 
-
 		<h3>[name]([page:todo material])</h3>
 		<div>
 		material -- todo
@@ -28,20 +27,15 @@
 
 		<h2>Properties</h2>
 
-
-
-		<h3>.[page:Vector3 rotation3d]</h3>
+		<h3>.[page:SpriteMaterial material]</h3>
 		<div>
 		todo
 		</div> 
 
-		<h3>.[page:SpriteMaterial material]</h3>
+		<h3>.[page:Float rotation]</h3>
 		<div>
 		todo
-		</div> 
-
-		<h2>Methods</h2>
-
+		</div>
 
 
 		<h2>Source</h2>

+ 1 - 1
docs/index.html

@@ -97,7 +97,7 @@
 
 		<script src="list.js"></script>
 		<script>
-			var REVISION = '61';
+			var REVISION = '62';
 
 			var panel = document.getElementById( 'panel' );
 			var viewer = document.getElementById( 'viewer' );

+ 3 - 6
docs/list.js

@@ -55,12 +55,10 @@ var list = {
 			[ "MeshLambertMaterial", "api/materials/MeshLambertMaterial" ],
 			[ "MeshNormalMaterial", "api/materials/MeshNormalMaterial" ],
 			[ "MeshPhongMaterial", "api/materials/MeshPhongMaterial" ],
-			[ "ParticleBasicMaterial", "api/materials/ParticleBasicMaterial" ],
-			[ "ParticleCanvasMaterial", "api/materials/ParticleCanvasMaterial" ],
-			[ "ParticleDOMMaterial", "api/materials/ParticleDOMMaterial" ],
+			[ "ParticleSystemMaterial", "api/materials/ParticleSystemMaterial" ],
 			[ "ShaderMaterial", "api/materials/ShaderMaterial" ],
-			[ "SpriteMaterial", "api/materials/SpriteMaterial" ]
-
+			[ "SpriteMaterial", "api/materials/SpriteMaterial" ],
+			[ "SpriteCanvasMaterial", "api/materials/SpriteCanvasMaterial" ]
 		],
 
 		"Math": [
@@ -89,7 +87,6 @@ var list = {
 			[ "LOD", "api/objects/LOD" ],
 			[ "Mesh", "api/objects/Mesh" ],
 			[ "MorphAnimMesh", "api/objects/MorphAnimMesh" ],
-			[ "Particle", "api/objects/Particle" ],
 			[ "ParticleSystem", "api/objects/ParticleSystem" ],
 			[ "SkinnedMesh", "api/objects/SkinnedMesh" ],
 			[ "Sprite", "api/objects/Sprite" ]

+ 194 - 0
editor/css/dark.css

@@ -0,0 +1,194 @@
+* {
+	vertical-align: middle;
+}
+
+	/* Webkit micro scrollbars */
+
+	::-webkit-scrollbar {
+		width:9px;
+	}
+
+	::-webkit-scrollbar-track {
+		-webkit-border-radius:5px;
+		border-radius:5px;
+		background:rgba(140,140,140,0.1);
+	}
+
+	::-webkit-scrollbar-thumb {
+		-webkit-border-radius:5px;
+		border-radius:5px;
+		background:rgba(140,140,140,0.2);
+	}
+
+	::-webkit-scrollbar-thumb:hover {
+		background:rgba(140,140,140,0.4);
+	}
+
+	::-webkit-scrollbar-thumb:window-inactive {
+		background:rgba(140,140,140,0.5);
+	}
+
+body {
+	font-family: Arial, sans-serif;
+	font-size: 14px;
+	margin: 0;
+	overflow: hidden;
+}
+
+hr {
+	border: 0px;
+	border-top: 1px solid #ccc;
+}
+
+button {
+	position: relative;
+}
+
+.Panel {
+
+	-moz-user-select: none;
+	-webkit-user-select: none;
+	-ms-user-select: none;
+
+		/* No support for these yet */
+	-o-user-select: none;
+	user-select: none;
+}
+
+.FancySelect {
+	background: #222;
+	border: 1px solid #3C3C3C;
+	padding: 0;
+	cursor: default;
+	overflow: auto;
+	outline: none;
+}
+
+	.FancySelect .option {
+		padding: 4px;
+		white-space: nowrap;
+	}
+
+	.FancySelect .option.active {
+		background-color: #153C5E;
+	}
+
+input.Number {
+	color: #2A75B7;
+	font-size: 12px;							/** TODO: Use of !imporant is not ideal **/
+	background-color: transparent!important;	/* For now this is a quick fix a rendering issue due to inherited background */
+	border: 1px solid transparent;
+	padding: 2px;
+	cursor: col-resize;
+}
+
+#viewport {
+	top: 32px;
+	left: 0px;
+	right: 300px;
+	bottom: 32px;
+	background-color: #333333;
+}
+
+#menubar {
+	position: absolute;
+	width: 100%;
+	height: 32px;
+	background-color: #111;
+	padding: 0px;
+	margin: 0px;
+}
+
+	#menubar .menu {
+		float: left;
+		width: 50px;
+		cursor: pointer;
+	}
+
+	#menubar .Panel {
+		color: #888;
+	}
+
+		#menubar .menu .options {
+			padding: 5px 0px;
+			background-color: #111;
+			width: 140px;
+			border-top: solid 1px #1D1D1D;
+		}
+
+			#menubar .menu .options hr {
+				border-color: #444;
+			}
+
+			#menubar .menu .options .option {
+				color: #666;
+				background-color: transparent;
+				padding: 5px 10px;
+				margin: 0px !important;
+			}
+
+				#menubar .menu .options .option:hover {
+					color: #fff;
+					background-color: #08f;
+				}
+
+
+#sidebar {
+	position: absolute;
+	right: 0px;
+	top: 32px;
+	bottom: 0px;
+	width: 300px;
+	background-color: #111;
+	overflow: auto;
+}
+
+	#sidebar input,
+	#sidebar textarea,
+	#sidebar select {
+		background: #ccc;
+	}
+
+	#sidebar .Panel {
+		margin-bottom: 10px;
+	}
+
+	#sidebar > .Panel {
+		color: #888;
+		padding: 10px;
+		border-top: 1px solid #333;
+	}
+
+	#sidebar #outliner {
+		width: 100%;
+		height: 140px;
+		color: #868686;
+		font-size: 12px;
+	}
+
+	#sidebar .Panel.Material canvas {
+
+		border: solid 1px #5A5A5A;
+
+	}
+
+#toolbar {
+	position: absolute;
+	left: 0px;
+	right: 300px;
+	bottom: 0px;
+	height: 32px;
+	background-color: #111;
+	color: #333;
+}
+
+	#toolbar .Panel {
+		padding: 4px;
+		color: #888;
+	}
+
+	#toolbar button {
+		margin-right: 6px;
+	}
+
+

+ 161 - 0
editor/css/light.css

@@ -0,0 +1,161 @@
+* {
+	vertical-align: middle;
+}
+
+body {
+	font-family: Arial, sans-serif;
+	font-size: 14px;
+	margin: 0;
+	overflow: hidden;
+}
+
+hr {
+	border: 0px;
+	border-top: 1px solid #ccc;
+}
+
+button {
+	position: relative;
+}
+
+.Panel {
+	-moz-user-select: none;
+	-webkit-user-select: none;
+	-ms-user-select: none;
+
+		/* No support for these yet */
+	-o-user-select: none;
+	user-select: none;
+}
+
+.FancySelect {
+	background: #fff;
+	border: 1px solid #ccc;
+	padding: 0;
+	cursor: default;
+	overflow: auto;
+	outline: none;
+}
+
+	.FancySelect .option {
+		padding: 4px;
+		color: #666;
+		white-space: nowrap;
+	}
+
+	.FancySelect .option.active {
+		background-color: #f8f8f8;
+	}
+
+input.Number {
+	color: #0080f0;
+	font-size: 12px;							/** TODO: Use of !imporant is not ideal **/
+	background-color: transparent!important;	/* For now this is a quick fix a rendering issue due to inherited background */
+	border: 1px solid transparent;
+	padding: 2px;
+	cursor: col-resize;
+}
+
+#viewport {
+	top: 32px;
+	left: 0px;
+	right: 300px;
+	bottom: 32px;
+	background-color: #aaaaaa;
+}
+
+#menubar {
+	position: absolute;
+	width: 100%;
+	height: 32px;
+	background: #eee;
+	padding: 0px;
+	margin: 0px;
+}
+
+	#menubar .menu {
+		float: left;
+		width: 50px;
+		cursor: pointer;
+	}
+
+	#menubar .Panel {
+		color: #888;
+	}
+
+		#menubar .menu .options {
+			padding: 5px 0px;
+			background: #eee;
+			width: 140px;
+		}
+
+			#menubar .menu .options hr {
+				border-color: #ddd;
+			}
+
+			#menubar .menu .options .option {
+				color: #666;
+				background-color: transparent;
+				padding: 5px 10px;
+				margin: 0px !important;
+			}
+
+				#menubar .menu .options .option:hover {
+					color: #fff;
+					background-color: #08f;
+				}
+
+
+#sidebar {
+	position: absolute;
+	right: 0px;
+	top: 32px;
+	bottom: 0px;
+	width: 300px;
+	background: #eee;
+	overflow: auto;
+}
+
+	#sidebar input,
+	#sidebar textarea,
+	#sidebar select {
+		/* background: #ccc; */
+	}
+
+	#sidebar .Panel {
+		margin-bottom: 10px;
+	}
+
+	#sidebar > .Panel {
+		color: #888;
+		padding: 10px;
+		border-top: 1px solid #ccc;
+	}
+
+	#sidebar #outliner {
+		width: 100%;
+		height: 140px;
+		color: #444;
+		font-size: 12px;
+	}
+
+#toolbar {
+	position: absolute;
+	left: 0px;
+	right: 300px;
+	bottom: 0px;
+	height: 32px;
+	background: #eee;
+	color: #333;
+}
+
+	#toolbar .Panel {
+		padding: 4px;
+		color: #888;
+	}
+
+	#toolbar button {
+		margin-right: 6px;
+	}
+
+

+ 50 - 0
editor/css/types.css

@@ -0,0 +1,50 @@
+.type {
+	position:relative;
+	top:-2px;
+	padding: 0px 2px;
+	color: #ddd;
+}
+.type:after {
+	content: '■';
+}
+
+.Scene {
+	color: #ccccff;
+}
+
+.Object3D {
+	color: #aaaaee;
+}
+
+.Mesh {
+	color: #8888ee;
+}
+
+/* */
+
+.PointLight {
+	color: #dddd00;
+}
+
+/* */
+
+.Geometry {
+	color: #88ff88;
+}
+
+.CubeGeometry {
+	color: #bbeebb;
+}
+.TorusGeometry {
+	color: #aaeeaa;	
+}
+
+/* */
+
+.Material {
+	color: #ff8888;
+}
+
+.MeshPhongMaterial {
+	color: #ffaa88;
+}

+ 63 - 124
editor/index.html

@@ -4,98 +4,10 @@
 		<title>three.js editor</title>
 		<meta charset="utf-8">
 		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
-		<style>
-			* {
-				vertical-align: middle;
-			}
-
-			body {
-				font-family: Arial, sans-serif;
-				font-size: 14px;
-				margin: 0;
-				overflow: hidden;
-			}
-
-			hr {
-				border: 0px;
-				border-top: 1px solid #ccc;
-			}
-
-			button {
-				position: relative;
-			}
-			
-			#menubar {
-				position: absolute;
-				background-color: #eee;
-				padding: 0px;
-				margin: 0px;
-			}
-
-				#menubar .menu {
-					float: left;
-					width: 50px;
-					cursor: pointer;
-				}
-
-					#menubar .menu .options {
-						padding: 5px 0px;
-						background-color: #fff;
-						width: 140px;
-					}
-
-						#menubar .menu .options hr {
-							border-color: #ddd;
-						}
-
-						#menubar .menu .options .option {
-							color: #666;
-							background-color: transparent;
-							padding: 5px 10px;
-							margin: 0px !important;
-						}
-
-							#menubar .menu .options .option:hover {
-								color: #fff;
-								background-color: #08f;
-							}
-
-
-			#sidebar {
-				position: absolute;
-				width: 300px;
-				background-color: #eee;
-				overflow: auto;
-			}
-
-				#sidebar .Panel {
-					margin-bottom: 10px;
-				}
-
-				#sidebar #outliner .type {
-					padding: 2px 4px;
-					font-size: 10px;
-					background-color: #eee;
-					color: #aaa;
-				}
-
-			#toolbar {
-				position: absolute;
-				background-color: #999;
-				color: #333;
-			}
-			
-				#toolbar .Panel {
-					padding: 4px;
-				}
-
-				#toolbar button {
-					margin-right: 6px;
-				}
-
-		</style>
 	</head>
 	<body>
+		<link href="css/types.css" rel="stylesheet" />
+		<link id="theme" href="css/light.css" rel="stylesheet" />
 
 		<script src="../build/three.min.js"></script>
 		<script src="../examples/js/libs/system.min.js"></script>
@@ -128,18 +40,20 @@
 		<script src="../examples/js/exporters/ObjectExporter.js"></script>
 		<script src="../examples/js/renderers/WebGLRenderer3.js"></script>
 
-		<script src="js/libs/rawdeflate.js"></script>
-		<script src="js/libs/rawinflate.js"></script>
 		<script src="js/libs/signals.min.js"></script>
 		<script src="js/libs/ui.js"></script>
 		<script src="js/libs/ui.three.js"></script>
 
+		<script src="js/Storage.js"></script>
+
 		<script src="js/Editor.js"></script>
+		<script src="js/Config.js"></script>
 		<script src="js/Loader.js"></script>
 		<script src="js/Menubar.js"></script>
 		<script src="js/Menubar.File.js"></script>
 		<script src="js/Menubar.Edit.js"></script>
 		<script src="js/Menubar.Add.js"></script>
+		<script src="js/Menubar.View.js"></script>
 		<script src="js/Menubar.Help.js"></script>
 		<script src="js/Sidebar.js"></script>
 		<script src="js/Sidebar.Renderer.js"></script>
@@ -166,33 +80,73 @@
 
 			var editor = new Editor();
 
-			var viewport = new Viewport( editor );
-			viewport.setTop( '32px' );
-			viewport.setLeft( '0px' );
-			viewport.setRight( '300px' );
-			viewport.setBottom( '32px' );
+			var viewport = new Viewport( editor ).setId( 'viewport' );
 			document.body.appendChild( viewport.dom );
 
-			var toolbar = new Toolbar( editor );
-			toolbar.setBottom( '0px' );
-			toolbar.setLeft( '0px' );
-			toolbar.setRight( '300px' );
-			toolbar.setHeight( '32px' );
+			var toolbar = new Toolbar( editor ).setId( 'toolbar' )
 			document.body.appendChild( toolbar.dom );
 
-			var menubar = new Menubar( editor );
-			menubar.setWidth( '100%' );
-			menubar.setHeight( '32px' );
+			var menubar = new Menubar( editor ).setId( 'menubar' );
 			document.body.appendChild( menubar.dom );
 
-			var sidebar = new Sidebar( editor );
-			sidebar.setRight( '0px' );
-			sidebar.setTop( '32px' );
-			sidebar.setBottom( '0px' );
+			var sidebar = new Sidebar( editor ).setId( 'sidebar' );
 			document.body.appendChild( sidebar.dom );
 
 			//
 
+			editor.setTheme( editor.config.getKey( 'theme' ) );
+
+			editor.storage.init( function () {
+
+				editor.storage.get( function ( state ) {
+
+					if ( state !== undefined ) {
+
+						var loader = new THREE.ObjectLoader();
+						var scene = loader.parse( state );
+
+						editor.setScene( scene );
+
+					}
+
+					var selected = editor.config.getKey( 'selected' );
+
+					if ( selected !== undefined ) {
+
+						editor.selectByUuid( selected );
+
+					}
+
+				} );
+
+				//
+
+				var timeout;
+				var exporter = new THREE.ObjectExporter();
+
+				var saveState = function ( scene ) {
+
+					clearTimeout( timeout );
+
+					timeout = setTimeout( function () {
+
+						editor.storage.set( exporter.parse( editor.scene ) );
+
+					}, 2000 );
+
+				};
+
+				var signals = editor.signals;
+
+				signals.objectAdded.add( saveState );
+				signals.objectChanged.add( saveState );
+				signals.objectRemoved.add( saveState );
+				signals.sceneGraphChanged.add( saveState );
+
+			} );
+
+			//
+
 			document.addEventListener( 'dragover', function ( event ) {
 
 				event.preventDefault();
@@ -232,21 +186,6 @@
 
 			onWindowResize();
 
-			var hash = window.location.hash.substr( 1 );
-
-			if ( hash !== '' && hash.substr( 0, 2 ) === 'A/' ) {
-
-				var string = RawDeflate.inflate( window.atob( hash.substr( 2 ) ) );
-				var json = JSON.parse( string );
-				var scene = new THREE.ObjectLoader().parse( json );
-				editor.setScene( scene );
-				
-			} else {
-
-				editor.loader.loadLocalStorage();
-
-			}
-
 		</script>
 	</body>
 </html>

+ 51 - 0
editor/js/Config.js

@@ -0,0 +1,51 @@
+var Config = function () {
+
+	var name = 'threejs-editor';
+
+	var storage = {
+		theme: 'css/light.css',
+		camera: {
+			position: [ 500, 250, 500 ],
+			target: [ 0, 0, 0 ] 
+		}
+	};
+
+	if ( window.localStorage[ name ] !== undefined ) {
+
+		var data = JSON.parse( window.localStorage[ name ] );
+
+		for ( var key in data ) {
+
+			storage[ key ] = data[ key ];
+
+		}
+
+	}
+
+	return {
+
+		getKey: function ( key ) {
+
+			return storage[ key ];
+
+		},
+
+		setKey: function ( key, value ) {
+
+			storage[ key ] = value;
+
+			window.localStorage[ name ] = JSON.stringify( storage );
+
+			console.log( '[' + /\d\d\:\d\d\:\d\d/.exec( new Date() )[ 0 ] + ']', 'Saved config to LocalStorage.' );
+
+		},
+
+		clear: function () {
+
+			delete window.localStorage[ name ];
+
+		}
+
+	}
+
+};

+ 63 - 7
editor/js/Editor.js

@@ -10,6 +10,8 @@ var Editor = function () {
 
 		// notifications
 
+		themeChanged: new SIGNALS.Signal(),
+
 		transformModeChanged: new SIGNALS.Signal(),
 		snapChanged: new SIGNALS.Signal(),
 		spaceChanged: new SIGNALS.Signal(),
@@ -17,6 +19,8 @@ var Editor = function () {
 
 		sceneGraphChanged: new SIGNALS.Signal(),
 
+		cameraChanged: new SIGNALS.Signal(),
+
 		objectSelected: new SIGNALS.Signal(),
 		objectAdded: new SIGNALS.Signal(),
 		objectChanged: new SIGNALS.Signal(),
@@ -26,14 +30,15 @@ var Editor = function () {
 		helperRemoved: new SIGNALS.Signal(),
 
 		materialChanged: new SIGNALS.Signal(),
-		clearColorChanged: new SIGNALS.Signal(),
 		fogTypeChanged: new SIGNALS.Signal(),
 		fogColorChanged: new SIGNALS.Signal(),
 		fogParametersChanged: new SIGNALS.Signal(),
 		windowResize: new SIGNALS.Signal()
 
 	};
-
+	
+	this.config = new Config();
+	this.storage = new Storage();
 	this.loader = new Loader( this );
 
 	this.scene = new THREE.Scene();
@@ -51,17 +56,32 @@ var Editor = function () {
 
 Editor.prototype = {
 
+	setTheme: function ( value ) {
+
+		document.getElementById( 'theme' ).href = value;
+
+		this.signals.themeChanged.dispatch( value );
+
+	},
+
 	setScene: function ( scene ) {
 
 		this.scene.name = scene.name;
 		this.scene.userData = JSON.parse( JSON.stringify( scene.userData ) );
 
+		// avoid render per object
+
+		this.signals.sceneGraphChanged.active = false;
+
 		while ( scene.children.length > 0 ) {
 
 			this.addObject( scene.children[ 0 ] );
 
 		}
 
+		this.signals.sceneGraphChanged.active = true;
+		this.signals.sceneGraphChanged.dispatch();
+
 	},
 
 	//
@@ -86,6 +106,13 @@ Editor.prototype = {
 
 	},
 
+	setObjectName: function ( object, name ) {
+
+		object.name = name;
+		this.signals.sceneGraphChanged.dispatch();
+
+	},
+
 	removeObject: function ( object ) {
 
 		if ( object.parent === undefined ) return; // avoid deleting the camera or scene
@@ -113,12 +140,26 @@ Editor.prototype = {
 
 	},
 
+	setGeometryName: function ( geometry, name ) {
+
+		geometry.name = name;
+		this.signals.sceneGraphChanged.dispatch();
+
+	},
+
 	addMaterial: function ( material ) {
 
 		this.materials[ material.uuid ] = material;
 
 	},
 
+	setMaterialName: function ( material, name ) {
+
+		material.name = name;
+		this.signals.sceneGraphChanged.dispatch();
+
+	},
+
 	addTexture: function ( texture ) {
 
 		this.textures[ texture.uuid ] = texture;
@@ -251,25 +292,40 @@ Editor.prototype = {
 	select: function ( object ) {
 
 		this.selected = object;
+		this.config.setKey( 'selected', object.uuid );
 		this.signals.objectSelected.dispatch( object );
 
 	},
 
 	selectById: function ( id ) {
 
-		var object = null;
+		var scope = this;
 
 		this.scene.traverse( function ( child ) {
 
 			if ( child.id === id ) {
 
-				object = child;
+				scope.select( child );
 
 			}
 
 		} );
 
-		this.select( object );
+	},
+
+	selectByUuid: function ( uuid ) {
+
+		var scope = this;
+
+		this.scene.traverse( function ( child ) {
+
+			if ( child.uuid === uuid ) {
+
+				scope.select( child );
+
+			}
+
+		} );
 
 	},
 
@@ -351,9 +407,9 @@ Editor.prototype = {
 			'MeshLambertMaterial': THREE.MeshLambertMaterial,
 			'MeshNormalMaterial': THREE.MeshNormalMaterial,
 			'MeshPhongMaterial': THREE.MeshPhongMaterial,
-			'ParticleBasicMaterial': THREE.ParticleBasicMaterial,
-			'ParticleCanvasMaterial': THREE.ParticleCanvasMaterial,
+			'ParticleSystemMaterial': THREE.ParticleSystemMaterial,
 			'ShaderMaterial': THREE.ShaderMaterial,
+			'SpriteCanvasMaterial': THREE.SpriteCanvasMaterial,
 			'Material': THREE.Material
 
 		};

+ 0 - 33
editor/js/Loader.js

@@ -3,39 +3,6 @@ var Loader = function ( editor ) {
 	var scope = this;
 	var signals = editor.signals;
 
-	this.loadLocalStorage = function () {
-
-		if ( localStorage.threejsEditor !== undefined ) {
-
-			var loader = new THREE.ObjectLoader();
-			var scene = loader.parse( JSON.parse( localStorage.threejsEditor ) );
-
-			editor.setScene( scene );
-
-		}
-
-	};
-
-	var exporter = new THREE.ObjectExporter();
-	var timeout;
-
-	this.saveLocalStorage = function ( scene ) {
-
-		clearTimeout( timeout );
-
-		timeout = setTimeout( function () {
-
-			localStorage.threejsEditor = JSON.stringify( exporter.parse( editor.scene ) );
-			console.log( '[' + /\d\d\:\d\d\:\d\d/.exec( new Date() )[ 0 ] + ']', 'Saved state to LocalStorage.' );
-
-		}, 3000 );
-
-	};
-
-	signals.objectAdded.add( this.saveLocalStorage );
-	signals.objectChanged.add( this.saveLocalStorage );
-	signals.objectRemoved.add( this.saveLocalStorage );
-
 	this.loadFile = function ( file ) {
 
 		var filename = file.name;

+ 1 - 1
editor/js/Menubar.Add.js

@@ -7,7 +7,7 @@ Menubar.Add = function ( editor ) {
 	container.onClick( function () { options.setDisplay( 'block' ) } );
 
 	var title = new UI.Panel();
-	title.setTextContent( 'Add' ).setColor( '#666' );
+	title.setTextContent( 'Add' );
 	title.setMargin( '0px' );
 	title.setPadding( '8px' );
 	container.add( title );

+ 1 - 1
editor/js/Menubar.Edit.js

@@ -7,7 +7,7 @@ Menubar.Edit = function ( editor ) {
 	container.onClick( function () { options.setDisplay( 'block' ) } );
 
 	var title = new UI.Panel();
-	title.setTextContent( 'Edit' ).setColor( '#666' );
+	title.setTextContent( 'Edit' );
 	title.setMargin( '0px' );
 	title.setPadding( '8px' );
 	container.add( title );

+ 5 - 24
editor/js/Menubar.File.js

@@ -7,7 +7,7 @@ Menubar.File = function ( editor ) {
 	container.onClick( function () { options.setDisplay( 'block' ) } );
 
 	var title = new UI.Panel();
-	title.setTextContent( 'File' ).setColor( '#666' );
+	title.setTextContent( 'File' );
 	title.setMargin( '0px' );
 	title.setPadding( '8px' );
 	container.add( title );
@@ -28,13 +28,12 @@ Menubar.File = function ( editor ) {
 
 		if ( confirm( 'Are you sure?' ) ) {
 
-			if ( localStorage.threejsEditor !== undefined ) {
+			editor.config.clear();
+			editor.storage.clear( function () {
 
-				delete localStorage.threejsEditor;
+				location.href = location.pathname;
 
-			}
-
-			location.href = location.pathname;
+			} );
 
 		}
 
@@ -207,24 +206,6 @@ Menubar.File = function ( editor ) {
 
 	};
 
-	options.add( new UI.HorizontalRule() );
-
-
-	// share
-
-	var option = new UI.Panel();
-	option.setClass( 'option' );
-	option.setTextContent( 'Share' );
-	option.onClick( function () {
-
-		var exporter = new THREE.ObjectExporter();
-		var string = JSON.stringify( exporter.parse( editor.scene ) );
-		window.location.hash = 'A/' + window.btoa( RawDeflate.deflate( string ) );
-
-	} );
-	options.add( option );
-
-
 	return container;
 
 }

+ 1 - 1
editor/js/Menubar.Help.js

@@ -7,7 +7,7 @@ Menubar.Help = function ( editor ) {
 	container.onClick( function () { options.setDisplay( 'block' ) } );
 
 	var title = new UI.Panel();
-	title.setTextContent( 'Help' ).setColor( '#666' );
+	title.setTextContent( 'Help' );
 	title.setMargin( '0px' );
 	title.setPadding( '8px' );
 	container.add( title );

+ 52 - 0
editor/js/Menubar.View.js

@@ -0,0 +1,52 @@
+Menubar.View = function ( editor ) {
+
+	var container = new UI.Panel();
+	container.setClass( 'menu' );
+	container.onMouseOver( function () { options.setDisplay( 'block' ) } );
+	container.onMouseOut( function () { options.setDisplay( 'none' ) } );
+	container.onClick( function () { options.setDisplay( 'block' ) } );
+
+	var title = new UI.Panel();
+	title.setTextContent( 'View' );
+	title.setMargin( '0px' );
+	title.setPadding( '8px' );
+	container.add( title );
+
+	//
+
+	var options = new UI.Panel();
+	options.setClass( 'options' );
+	options.setDisplay( 'none' );
+	container.add( options );
+
+	// themes
+
+	var option = new UI.Panel();
+	option.setClass( 'option' );
+	option.setTextContent( 'Light theme' );
+	option.onClick( function () {
+
+		editor.setTheme( 'css/light.css' );
+		editor.config.setKey( 'theme', 'css/light.css' );
+
+	} );
+	options.add( option );
+
+	// about
+
+	var option = new UI.Panel();
+	option.setClass( 'option' );
+	option.setTextContent( 'Dark theme' );
+	option.onClick( function () {
+
+		editor.setTheme( 'css/dark.css' );
+		editor.config.setKey( 'theme', 'css/dark.css' );
+
+	} );
+	options.add( option );
+
+	//
+
+	return container;
+
+}

+ 2 - 1
editor/js/Menubar.js

@@ -1,10 +1,11 @@
 var Menubar = function ( editor ) {
 
-	var container = new UI.Panel().setId( 'menubar' );
+	var container = new UI.Panel();
 
 	container.add( new Menubar.File( editor ) );
 	container.add( new Menubar.Edit( editor ) );
 	container.add( new Menubar.Add( editor ) );
+	container.add( new Menubar.View( editor ) );
 	container.add( new Menubar.Help( editor ) );
 
 	return container;

+ 2 - 4
editor/js/Sidebar.Animation.js

@@ -6,16 +6,14 @@ Sidebar.Animation = function ( editor ) {
 	var possibleAnimations = {};
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPadding( '10px' );
 	container.setDisplay( 'none' );
 
-	container.add( new UI.Text( 'Animation' ).setColor( '#666' ) );
+	container.add( new UI.Text( 'Animation' ) );
 	container.add( new UI.Break(), new UI.Break() );
 
 	var AnimationsRow = new UI.Panel();
 	var Animations = new UI.Select().setOptions( options ).setWidth( '130px' ).setColor( '#444' ).setFontSize( '12px' );
-	AnimationsRow.add( new UI.Text( 'animations' ).setWidth( '90px' ).setColor( '#666' ) );
+	AnimationsRow.add( new UI.Text( 'animations' ).setWidth( '90px' ) );
 	AnimationsRow.add( Animations );
 	container.add( AnimationsRow );
 	container.add( new UI.Break() );

+ 2 - 4
editor/js/Sidebar.Geometry.CircleGeometry.js

@@ -1,8 +1,6 @@
 Sidebar.Geometry.CircleGeometry = function ( signals, object ) {
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPaddingTop( '10px' );
 
 	var geometry = object.geometry;
 
@@ -11,7 +9,7 @@ Sidebar.Geometry.CircleGeometry = function ( signals, object ) {
 	var radiusRow = new UI.Panel();
 	var radius = new UI.Number( geometry.radius ).onChange( update );
 
-	radiusRow.add( new UI.Text( 'Radius' ).setWidth( '90px' ).setColor( '#666' ) );
+	radiusRow.add( new UI.Text( 'Radius' ).setWidth( '90px' ) );
 	radiusRow.add( radius );
 
 	container.add( radiusRow );
@@ -21,7 +19,7 @@ Sidebar.Geometry.CircleGeometry = function ( signals, object ) {
 	var segmentsRow = new UI.Panel();
 	var segments = new UI.Integer( geometry.segments ).onChange( update );
 
-	segmentsRow.add( new UI.Text( 'Segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	segmentsRow.add( new UI.Text( 'Segments' ).setWidth( '90px' ) );
 	segmentsRow.add( segments );
 
 	container.add( segmentsRow );

+ 6 - 8
editor/js/Sidebar.Geometry.CubeGeometry.js

@@ -1,8 +1,6 @@
 Sidebar.Geometry.CubeGeometry = function ( signals, object ) {
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPaddingTop( '10px' );
 
 	var geometry = object.geometry;
 
@@ -11,7 +9,7 @@ Sidebar.Geometry.CubeGeometry = function ( signals, object ) {
 	var widthRow = new UI.Panel();
 	var width = new UI.Number( geometry.width ).onChange( update );
 
-	widthRow.add( new UI.Text( 'Width' ).setWidth( '90px' ).setColor( '#666' ) );
+	widthRow.add( new UI.Text( 'Width' ).setWidth( '90px' ) );
 	widthRow.add( width );
 
 	container.add( widthRow );
@@ -21,7 +19,7 @@ Sidebar.Geometry.CubeGeometry = function ( signals, object ) {
 	var heightRow = new UI.Panel();
 	var height = new UI.Number( geometry.height ).onChange( update );
 
-	heightRow.add( new UI.Text( 'Height' ).setWidth( '90px' ).setColor( '#666' ) );
+	heightRow.add( new UI.Text( 'Height' ).setWidth( '90px' ) );
 	heightRow.add( height );
 
 	container.add( heightRow );
@@ -31,7 +29,7 @@ Sidebar.Geometry.CubeGeometry = function ( signals, object ) {
 	var depthRow = new UI.Panel();
 	var depth = new UI.Number( geometry.depth ).onChange( update );
 
-	depthRow.add( new UI.Text( 'Depth' ).setWidth( '90px' ).setColor( '#666' ) );
+	depthRow.add( new UI.Text( 'Depth' ).setWidth( '90px' ) );
 	depthRow.add( depth );
 
 	container.add( depthRow );
@@ -41,7 +39,7 @@ Sidebar.Geometry.CubeGeometry = function ( signals, object ) {
 	var widthSegmentsRow = new UI.Panel();
 	var widthSegments = new UI.Integer( geometry.widthSegments ).setRange( 1, Infinity ).onChange( update );
 
-	widthSegmentsRow.add( new UI.Text( 'Width segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	widthSegmentsRow.add( new UI.Text( 'Width segments' ).setWidth( '90px' ) );
 	widthSegmentsRow.add( widthSegments );
 
 	container.add( widthSegmentsRow );
@@ -51,7 +49,7 @@ Sidebar.Geometry.CubeGeometry = function ( signals, object ) {
 	var heightSegmentsRow = new UI.Panel();
 	var heightSegments = new UI.Integer( geometry.heightSegments ).setRange( 1, Infinity ).onChange( update );
 
-	heightSegmentsRow.add( new UI.Text( 'Height segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	heightSegmentsRow.add( new UI.Text( 'Height segments' ).setWidth( '90px' ) );
 	heightSegmentsRow.add( heightSegments );
 
 	container.add( heightSegmentsRow );
@@ -61,7 +59,7 @@ Sidebar.Geometry.CubeGeometry = function ( signals, object ) {
 	var depthSegmentsRow = new UI.Panel();
 	var depthSegments = new UI.Integer( geometry.depthSegments ).setRange( 1, Infinity ).onChange( update );
 
-	depthSegmentsRow.add( new UI.Text( 'Height segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	depthSegmentsRow.add( new UI.Text( 'Height segments' ).setWidth( '90px' ) );
 	depthSegmentsRow.add( depthSegments );
 
 	container.add( depthSegmentsRow );

+ 7 - 9
editor/js/Sidebar.Geometry.CylinderGeometry.js

@@ -1,8 +1,6 @@
 Sidebar.Geometry.CylinderGeometry = function ( signals, object ) {
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPaddingTop( '10px' );
 
 	var geometry = object.geometry;
 
@@ -11,7 +9,7 @@ Sidebar.Geometry.CylinderGeometry = function ( signals, object ) {
 	var radiusTopRow = new UI.Panel();
 	var radiusTop = new UI.Number( geometry.radiusTop ).onChange( update );
 
-	radiusTopRow.add( new UI.Text( 'Radius top' ).setWidth( '90px' ).setColor( '#666' ) );
+	radiusTopRow.add( new UI.Text( 'Radius top' ).setWidth( '90px' ) );
 	radiusTopRow.add( radiusTop );
 
 	container.add( radiusTopRow );
@@ -21,7 +19,7 @@ Sidebar.Geometry.CylinderGeometry = function ( signals, object ) {
 	var radiusBottomRow = new UI.Panel();
 	var radiusBottom = new UI.Number( geometry.radiusBottom ).onChange( update );
 
-	radiusBottomRow.add( new UI.Text( 'Radius bottom' ).setWidth( '90px' ).setColor( '#666' ) );
+	radiusBottomRow.add( new UI.Text( 'Radius bottom' ).setWidth( '90px' ) );
 	radiusBottomRow.add( radiusBottom );
 
 	container.add( radiusBottomRow );
@@ -31,7 +29,7 @@ Sidebar.Geometry.CylinderGeometry = function ( signals, object ) {
 	var heightRow = new UI.Panel();
 	var height = new UI.Number( geometry.height ).onChange( update );
 
-	heightRow.add( new UI.Text( 'Height' ).setWidth( '90px' ).setColor( '#666' ) );
+	heightRow.add( new UI.Text( 'Height' ).setWidth( '90px' ) );
 	heightRow.add( height );
 
 	container.add( heightRow );
@@ -39,9 +37,9 @@ Sidebar.Geometry.CylinderGeometry = function ( signals, object ) {
 	// radiusSegments
 
 	var radiusSegmentsRow = new UI.Panel();
-	var radiusSegments = new UI.Integer( geometry.radiusSegments ).setRange( 1, Infinity ).onChange( update );
+	var radiusSegments = new UI.Integer( geometry.radialSegments ).setRange( 1, Infinity ).onChange( update );
 
-	radiusSegmentsRow.add( new UI.Text( 'Radius segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	radiusSegmentsRow.add( new UI.Text( 'Radius segments' ).setWidth( '90px' ) );
 	radiusSegmentsRow.add( radiusSegments );
 
 	container.add( radiusSegmentsRow );
@@ -51,7 +49,7 @@ Sidebar.Geometry.CylinderGeometry = function ( signals, object ) {
 	var heightSegmentsRow = new UI.Panel();
 	var heightSegments = new UI.Integer( geometry.heightSegments ).setRange( 1, Infinity ).onChange( update );
 
-	heightSegmentsRow.add( new UI.Text( 'Height segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	heightSegmentsRow.add( new UI.Text( 'Height segments' ).setWidth( '90px' ) );
 	heightSegmentsRow.add( heightSegments );
 
 	container.add( heightSegmentsRow );
@@ -61,7 +59,7 @@ Sidebar.Geometry.CylinderGeometry = function ( signals, object ) {
 	var openEndedRow = new UI.Panel();
 	var openEnded = new UI.Checkbox( geometry.openEnded ).onChange( update );
 
-	openEndedRow.add( new UI.Text( 'Open ended' ).setWidth( '90px' ).setColor( '#666' ) );
+	openEndedRow.add( new UI.Text( 'Open ended' ).setWidth( '90px' ) );
 	openEndedRow.add( openEnded );
 
 	container.add( openEndedRow );

+ 2 - 4
editor/js/Sidebar.Geometry.IcosahedronGeometry.js

@@ -1,8 +1,6 @@
 Sidebar.Geometry.IcosahedronGeometry = function ( signals, object ) {
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPaddingTop( '10px' );
 
 	var geometry = object.geometry;
 
@@ -11,7 +9,7 @@ Sidebar.Geometry.IcosahedronGeometry = function ( signals, object ) {
 	var radiusRow = new UI.Panel();
 	var radius = new UI.Number( geometry.radius ).onChange( update );
 
-	radiusRow.add( new UI.Text( 'Radius' ).setWidth( '90px' ).setColor( '#666' ) );
+	radiusRow.add( new UI.Text( 'Radius' ).setWidth( '90px' ) );
 	radiusRow.add( radius );
 
 	container.add( radiusRow );
@@ -21,7 +19,7 @@ Sidebar.Geometry.IcosahedronGeometry = function ( signals, object ) {
 	var detailRow = new UI.Panel();
 	var detail = new UI.Integer( geometry.detail ).setRange( 0, Infinity ).onChange( update );
 
-	detailRow.add( new UI.Text( 'Detail' ).setWidth( '90px' ).setColor( '#666' ) );
+	detailRow.add( new UI.Text( 'Detail' ).setWidth( '90px' ) );
 	detailRow.add( detail );
 
 	container.add( detailRow );

+ 4 - 6
editor/js/Sidebar.Geometry.PlaneGeometry.js

@@ -1,8 +1,6 @@
 Sidebar.Geometry.PlaneGeometry = function ( signals, object ) {
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPaddingTop( '10px' );
 
 	var geometry = object.geometry;
 
@@ -11,7 +9,7 @@ Sidebar.Geometry.PlaneGeometry = function ( signals, object ) {
 	var widthRow = new UI.Panel();
 	var width = new UI.Number( geometry.width ).onChange( update );
 
-	widthRow.add( new UI.Text( 'Width' ).setWidth( '90px' ).setColor( '#666' ) );
+	widthRow.add( new UI.Text( 'Width' ).setWidth( '90px' ) );
 	widthRow.add( width );
 
 	container.add( widthRow );
@@ -21,7 +19,7 @@ Sidebar.Geometry.PlaneGeometry = function ( signals, object ) {
 	var heightRow = new UI.Panel();
 	var height = new UI.Number( geometry.height ).onChange( update );
 
-	heightRow.add( new UI.Text( 'Height' ).setWidth( '90px' ).setColor( '#666' ) );
+	heightRow.add( new UI.Text( 'Height' ).setWidth( '90px' ) );
 	heightRow.add( height );
 
 	container.add( heightRow );
@@ -31,7 +29,7 @@ Sidebar.Geometry.PlaneGeometry = function ( signals, object ) {
 	var widthSegmentsRow = new UI.Panel();
 	var widthSegments = new UI.Integer( geometry.widthSegments ).setRange( 1, Infinity ).onChange( update );
 
-	widthSegmentsRow.add( new UI.Text( 'Width segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	widthSegmentsRow.add( new UI.Text( 'Width segments' ).setWidth( '90px' ) );
 	widthSegmentsRow.add( widthSegments );
 
 	container.add( widthSegmentsRow );
@@ -41,7 +39,7 @@ Sidebar.Geometry.PlaneGeometry = function ( signals, object ) {
 	var heightSegmentsRow = new UI.Panel();
 	var heightSegments = new UI.Integer( geometry.heightSegments ).setRange( 1, Infinity ).onChange( update );
 
-	heightSegmentsRow.add( new UI.Text( 'Height segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	heightSegmentsRow.add( new UI.Text( 'Height segments' ).setWidth( '90px' ) );
 	heightSegmentsRow.add( heightSegments );
 
 	container.add( heightSegmentsRow );

+ 7 - 9
editor/js/Sidebar.Geometry.SphereGeometry.js

@@ -1,8 +1,6 @@
 Sidebar.Geometry.SphereGeometry = function ( signals, object ) {
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPaddingTop( '10px' );
 
 	var geometry = object.geometry;
 
@@ -11,7 +9,7 @@ Sidebar.Geometry.SphereGeometry = function ( signals, object ) {
 	var radiusRow = new UI.Panel();
 	var radius = new UI.Number( geometry.radius ).onChange( update );
 
-	radiusRow.add( new UI.Text( 'Radius' ).setWidth( '90px' ).setColor( '#666' ) );
+	radiusRow.add( new UI.Text( 'Radius' ).setWidth( '90px' ) );
 	radiusRow.add( radius );
 
 	container.add( radiusRow );
@@ -21,7 +19,7 @@ Sidebar.Geometry.SphereGeometry = function ( signals, object ) {
 	var widthSegmentsRow = new UI.Panel();
 	var widthSegments = new UI.Integer( geometry.widthSegments ).setRange( 1, Infinity ).onChange( update );
 
-	widthSegmentsRow.add( new UI.Text( 'Width segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	widthSegmentsRow.add( new UI.Text( 'Width segments' ).setWidth( '90px' ) );
 	widthSegmentsRow.add( widthSegments );
 
 	container.add( widthSegmentsRow );
@@ -31,7 +29,7 @@ Sidebar.Geometry.SphereGeometry = function ( signals, object ) {
 	var heightSegmentsRow = new UI.Panel();
 	var heightSegments = new UI.Integer( geometry.heightSegments ).setRange( 1, Infinity ).onChange( update );
 
-	heightSegmentsRow.add( new UI.Text( 'Height segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	heightSegmentsRow.add( new UI.Text( 'Height segments' ).setWidth( '90px' ) );
 	heightSegmentsRow.add( heightSegments );
 
 	container.add( heightSegmentsRow );
@@ -41,7 +39,7 @@ Sidebar.Geometry.SphereGeometry = function ( signals, object ) {
 	var phiStartRow = new UI.Panel();
 	var phiStart = new UI.Number( geometry.phiStart ).onChange( update );
 
-	phiStartRow.add( new UI.Text( 'Phi start' ).setWidth( '90px' ).setColor( '#666' ) );
+	phiStartRow.add( new UI.Text( 'Phi start' ).setWidth( '90px' ) );
 	phiStartRow.add( phiStart );
 
 	container.add( phiStartRow );
@@ -51,7 +49,7 @@ Sidebar.Geometry.SphereGeometry = function ( signals, object ) {
 	var phiLengthRow = new UI.Panel();
 	var phiLength = new UI.Number( geometry.phiLength ).onChange( update );
 
-	phiLengthRow.add( new UI.Text( 'Phi length' ).setWidth( '90px' ).setColor( '#666' ) );
+	phiLengthRow.add( new UI.Text( 'Phi length' ).setWidth( '90px' ) );
 	phiLengthRow.add( phiLength );
 
 	container.add( phiLengthRow );
@@ -61,7 +59,7 @@ Sidebar.Geometry.SphereGeometry = function ( signals, object ) {
 	var thetaStartRow = new UI.Panel();
 	var thetaStart = new UI.Number( geometry.thetaStart ).onChange( update );
 
-	thetaStartRow.add( new UI.Text( 'Theta start' ).setWidth( '90px' ).setColor( '#666' ) );
+	thetaStartRow.add( new UI.Text( 'Theta start' ).setWidth( '90px' ) );
 	thetaStartRow.add( thetaStart );
 
 	container.add( thetaStartRow );
@@ -71,7 +69,7 @@ Sidebar.Geometry.SphereGeometry = function ( signals, object ) {
 	var thetaLengthRow = new UI.Panel();
 	var thetaLength = new UI.Number( geometry.thetaLength ).onChange( update );
 
-	thetaLengthRow.add( new UI.Text( 'Theta length' ).setWidth( '90px' ).setColor( '#666' ) );
+	thetaLengthRow.add( new UI.Text( 'Theta length' ).setWidth( '90px' ) );
 	thetaLengthRow.add( thetaLength );
 
 	container.add( thetaLengthRow );

+ 5 - 7
editor/js/Sidebar.Geometry.TorusGeometry.js

@@ -1,8 +1,6 @@
 Sidebar.Geometry.TorusGeometry = function ( signals, object ) {
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPaddingTop( '10px' );
 
 	var geometry = object.geometry;
 
@@ -11,7 +9,7 @@ Sidebar.Geometry.TorusGeometry = function ( signals, object ) {
 	var radiusRow = new UI.Panel();
 	var radius = new UI.Number( geometry.radius ).onChange( update );
 
-	radiusRow.add( new UI.Text( 'Radius' ).setWidth( '90px' ).setColor( '#666' ) );
+	radiusRow.add( new UI.Text( 'Radius' ).setWidth( '90px' ) );
 	radiusRow.add( radius );
 
 	container.add( radiusRow );
@@ -21,7 +19,7 @@ Sidebar.Geometry.TorusGeometry = function ( signals, object ) {
 	var tubeRow = new UI.Panel();
 	var tube = new UI.Number( geometry.tube ).onChange( update );
 
-	tubeRow.add( new UI.Text( 'Tube' ).setWidth( '90px' ).setColor( '#666' ) );
+	tubeRow.add( new UI.Text( 'Tube' ).setWidth( '90px' ) );
 	tubeRow.add( tube );
 
 	container.add( tubeRow );
@@ -31,7 +29,7 @@ Sidebar.Geometry.TorusGeometry = function ( signals, object ) {
 	var radialSegmentsRow = new UI.Panel();
 	var radialSegments = new UI.Integer( geometry.radialSegments ).setRange( 1, Infinity ).onChange( update );
 
-	radialSegmentsRow.add( new UI.Text( 'Radial segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	radialSegmentsRow.add( new UI.Text( 'Radial segments' ).setWidth( '90px' ) );
 	radialSegmentsRow.add( radialSegments );
 
 	container.add( radialSegmentsRow );
@@ -41,7 +39,7 @@ Sidebar.Geometry.TorusGeometry = function ( signals, object ) {
 	var tubularSegmentsRow = new UI.Panel();
 	var tubularSegments = new UI.Integer( geometry.tubularSegments ).setRange( 1, Infinity ).onChange( update );
 
-	tubularSegmentsRow.add( new UI.Text( 'Tubular segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	tubularSegmentsRow.add( new UI.Text( 'Tubular segments' ).setWidth( '90px' ) );
 	tubularSegmentsRow.add( tubularSegments );
 
 	container.add( tubularSegmentsRow );
@@ -51,7 +49,7 @@ Sidebar.Geometry.TorusGeometry = function ( signals, object ) {
 	var arcRow = new UI.Panel();
 	var arc = new UI.Number( geometry.arc ).onChange( update );
 
-	arcRow.add( new UI.Text( 'Arc' ).setWidth( '90px' ).setColor( '#666' ) );
+	arcRow.add( new UI.Text( 'Arc' ).setWidth( '90px' ) );
 	arcRow.add( arc );
 
 	container.add( arcRow );

+ 7 - 9
editor/js/Sidebar.Geometry.TorusKnotGeometry.js

@@ -1,8 +1,6 @@
 Sidebar.Geometry.TorusKnotGeometry = function ( signals, object ) {
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPaddingTop( '10px' );
 
 	var geometry = object.geometry;
 
@@ -11,7 +9,7 @@ Sidebar.Geometry.TorusKnotGeometry = function ( signals, object ) {
 	var radiusRow = new UI.Panel();
 	var radius = new UI.Number( geometry.radius ).onChange( update );
 
-	radiusRow.add( new UI.Text( 'Radius' ).setWidth( '90px' ).setColor( '#666' ) );
+	radiusRow.add( new UI.Text( 'Radius' ).setWidth( '90px' ) );
 	radiusRow.add( radius );
 
 	container.add( radiusRow );
@@ -21,7 +19,7 @@ Sidebar.Geometry.TorusKnotGeometry = function ( signals, object ) {
 	var tubeRow = new UI.Panel();
 	var tube = new UI.Number( geometry.tube ).onChange( update );
 
-	tubeRow.add( new UI.Text( 'Tube' ).setWidth( '90px' ).setColor( '#666' ) );
+	tubeRow.add( new UI.Text( 'Tube' ).setWidth( '90px' ) );
 	tubeRow.add( tube );
 
 	container.add( tubeRow );
@@ -31,7 +29,7 @@ Sidebar.Geometry.TorusKnotGeometry = function ( signals, object ) {
 	var radialSegmentsRow = new UI.Panel();
 	var radialSegments = new UI.Integer( geometry.radialSegments ).setRange( 1, Infinity ).onChange( update );
 
-	radialSegmentsRow.add( new UI.Text( 'Radial segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	radialSegmentsRow.add( new UI.Text( 'Radial segments' ).setWidth( '90px' ) );
 	radialSegmentsRow.add( radialSegments );
 
 	container.add( radialSegmentsRow );
@@ -41,7 +39,7 @@ Sidebar.Geometry.TorusKnotGeometry = function ( signals, object ) {
 	var tubularSegmentsRow = new UI.Panel();
 	var tubularSegments = new UI.Integer( geometry.tubularSegments ).setRange( 1, Infinity ).onChange( update );
 
-	tubularSegmentsRow.add( new UI.Text( 'Tubular segments' ).setWidth( '90px' ).setColor( '#666' ) );
+	tubularSegmentsRow.add( new UI.Text( 'Tubular segments' ).setWidth( '90px' ) );
 	tubularSegmentsRow.add( tubularSegments );
 
 	container.add( tubularSegmentsRow );
@@ -51,7 +49,7 @@ Sidebar.Geometry.TorusKnotGeometry = function ( signals, object ) {
 	var pRow = new UI.Panel();
 	var p = new UI.Number( geometry.p ).onChange( update );
 
-	pRow.add( new UI.Text( 'P' ).setWidth( '90px' ).setColor( '#666' ) );
+	pRow.add( new UI.Text( 'P' ).setWidth( '90px' ) );
 	pRow.add( p );
 
 	container.add( pRow );
@@ -61,7 +59,7 @@ Sidebar.Geometry.TorusKnotGeometry = function ( signals, object ) {
 	var qRow = new UI.Panel();
 	var q = new UI.Number( geometry.q ).onChange( update );
 
-	pRow.add( new UI.Text( 'Q' ).setWidth( '90px' ).setColor( '#666' ) );
+	pRow.add( new UI.Text( 'Q' ).setWidth( '90px' ) );
 	pRow.add( q );
 
 	container.add( qRow );
@@ -71,7 +69,7 @@ Sidebar.Geometry.TorusKnotGeometry = function ( signals, object ) {
 	var heightScaleRow = new UI.Panel();
 	var heightScale = new UI.Number( geometry.heightScale ).onChange( update );
 
-	pRow.add( new UI.Text( 'Height scale' ).setWidth( '90px' ).setColor( '#666' ) );
+	pRow.add( new UI.Text( 'Height scale' ).setWidth( '90px' ) );
 	pRow.add( heightScale );
 
 	container.add( heightScaleRow );

+ 13 - 19
editor/js/Sidebar.Geometry.js

@@ -3,11 +3,9 @@ Sidebar.Geometry = function ( editor ) {
 	var signals = editor.signals;
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPadding( '10px' );
 	container.setDisplay( 'none' );
 
-	container.add( new UI.Text().setValue( 'GEOMETRY' ).setColor( '#666' ) );
+	container.add( new UI.Text().setValue( 'GEOMETRY' ) );
 	container.add( new UI.Break(), new UI.Break() );
 
 	// uuid
@@ -17,11 +15,12 @@ Sidebar.Geometry = function ( editor ) {
 	var geometryUUIDRenew = new UI.Button( '⟳' ).setMarginLeft( '7px' ).onClick( function () {
 
 		geometryUUID.setValue( THREE.Math.generateUUID() );
-		update();
+
+		editor.selected.geometry.uuid = geometryUUID.getValue();
 
 	} );
 
-	geometryUUIDRow.add( new UI.Text( 'UUID' ).setWidth( '90px' ).setColor( '#666' ) );
+	geometryUUIDRow.add( new UI.Text( 'UUID' ).setWidth( '90px' ) );
 	geometryUUIDRow.add( geometryUUID );
 	geometryUUIDRow.add( geometryUUIDRenew );
 
@@ -30,9 +29,13 @@ Sidebar.Geometry = function ( editor ) {
 	// name
 
 	var geometryNameRow = new UI.Panel();
-	var geometryName = new UI.Input().setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( update );
+	var geometryName = new UI.Input().setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( function () {
+
+		editor.setGeometryName( editor.selected.geometry, geometryName.getValue() );
 
-	geometryNameRow.add( new UI.Text( 'Name' ).setWidth( '90px' ).setColor( '#666' ) );
+	} );
+
+	geometryNameRow.add( new UI.Text( 'Name' ).setWidth( '90px' ) );
 	geometryNameRow.add( geometryName );
 
 	container.add( geometryNameRow );
@@ -42,7 +45,7 @@ Sidebar.Geometry = function ( editor ) {
 	var geometryTypeRow = new UI.Panel();
 	var geometryType = new UI.Text().setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' );
 
-	geometryTypeRow.add( new UI.Text( 'Class' ).setWidth( '90px' ).setColor( '#666' ) );
+	geometryTypeRow.add( new UI.Text( 'Type' ).setWidth( '90px' ) );
 	geometryTypeRow.add( geometryType );
 
 	container.add( geometryTypeRow );
@@ -52,7 +55,7 @@ Sidebar.Geometry = function ( editor ) {
 	var geometryVerticesRow = new UI.Panel();
 	var geometryVertices = new UI.Text().setColor( '#444' ).setFontSize( '12px' );
 
-	geometryVerticesRow.add( new UI.Text( 'Vertices' ).setWidth( '90px' ).setColor( '#666' ) );
+	geometryVerticesRow.add( new UI.Text( 'Vertices' ).setWidth( '90px' ) );
 	geometryVerticesRow.add( geometryVertices );
 
 	container.add( geometryVerticesRow );
@@ -62,7 +65,7 @@ Sidebar.Geometry = function ( editor ) {
 	var geometryFacesRow = new UI.Panel();
 	var geometryFaces = new UI.Text().setColor( '#444' ).setFontSize( '12px' );
 
-	geometryFacesRow.add( new UI.Text( 'Faces' ).setWidth( '90px' ).setColor( '#666' ) );
+	geometryFacesRow.add( new UI.Text( 'Faces' ).setWidth( '90px' ) );
 	geometryFacesRow.add( geometryFaces );
 
 	container.add( geometryFacesRow );
@@ -74,15 +77,6 @@ Sidebar.Geometry = function ( editor ) {
 
 	//
 
-	function update() {
-
-		var geometry = editor.selected.geometry;
-
-		geometry.uuid = geometryUUID.getValue();
-		geometry.name = geometryName.getValue();
-
-	}
-
 	function build() {
 
 		var object = editor.selected;

+ 29 - 32
editor/js/Sidebar.Material.js

@@ -12,19 +12,18 @@ Sidebar.Material = function ( editor ) {
 		'MeshLambertMaterial': THREE.MeshLambertMaterial,
 		'MeshNormalMaterial': THREE.MeshNormalMaterial,
 		'MeshPhongMaterial': THREE.MeshPhongMaterial,
-		'ParticleBasicMaterial': THREE.ParticleBasicMaterial,
-		'ParticleCanvasMaterial': THREE.ParticleCanvasMaterial,
+		'ParticleSystemMaterial': THREE.ParticleSystemMaterial,
 		'ShaderMaterial': THREE.ShaderMaterial,
+		'SpriteCanvasMaterial': THREE.SpriteCanvasMaterial,
 		'Material': THREE.Material
 
 	};
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPadding( '10px' );
 	container.setDisplay( 'none' );
+	container.dom.classList.add( 'Material' );
 
-	container.add( new UI.Text().setValue( 'MATERIAL' ).setColor( '#666' ) );
+	container.add( new UI.Text().setValue( 'MATERIAL' ) );
 	container.add( new UI.Break(), new UI.Break() );
 
 	// uuid
@@ -38,7 +37,7 @@ Sidebar.Material = function ( editor ) {
 
 	} );
 
-	materialUUIDRow.add( new UI.Text( 'UUID' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialUUIDRow.add( new UI.Text( 'UUID' ).setWidth( '90px' ) );
 	materialUUIDRow.add( materialUUID );
 	materialUUIDRow.add( materialUUIDRenew );
 
@@ -47,9 +46,13 @@ Sidebar.Material = function ( editor ) {
 	// name
 
 	var materialNameRow = new UI.Panel();
-	var materialName = new UI.Input().setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( update );
+	var materialName = new UI.Input().setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( function () {
 
-	materialNameRow.add( new UI.Text( 'Name' ).setWidth( '90px' ).setColor( '#666' ) );
+		editor.setMaterialName( editor.selected.material, materialName.getValue() );
+
+	} );
+
+	materialNameRow.add( new UI.Text( 'Name' ).setWidth( '90px' ) );
 	materialNameRow.add( materialName );
 
 	container.add( materialNameRow );
@@ -70,7 +73,7 @@ Sidebar.Material = function ( editor ) {
 
 	} ).setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( update );
 
-	materialClassRow.add( new UI.Text( 'Class' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialClassRow.add( new UI.Text( 'Type' ).setWidth( '90px' ) );
 	materialClassRow.add( materialClass );
 
 	container.add( materialClassRow );
@@ -80,7 +83,7 @@ Sidebar.Material = function ( editor ) {
 	var materialColorRow = new UI.Panel();
 	var materialColor = new UI.Color().onChange( update );
 
-	materialColorRow.add( new UI.Text( 'Color' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialColorRow.add( new UI.Text( 'Color' ).setWidth( '90px' ) );
 	materialColorRow.add( materialColor );
 
 	container.add( materialColorRow );
@@ -90,7 +93,7 @@ Sidebar.Material = function ( editor ) {
 	var materialAmbientRow = new UI.Panel();
 	var materialAmbient = new UI.Color().onChange( update );
 
-	materialAmbientRow.add( new UI.Text( 'Ambient' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialAmbientRow.add( new UI.Text( 'Ambient' ).setWidth( '90px' ) );
 	materialAmbientRow.add( materialAmbient );
 
 	container.add( materialAmbientRow );
@@ -100,7 +103,7 @@ Sidebar.Material = function ( editor ) {
 	var materialEmissiveRow = new UI.Panel();
 	var materialEmissive = new UI.Color().onChange( update );
 
-	materialEmissiveRow.add( new UI.Text( 'Emissive' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialEmissiveRow.add( new UI.Text( 'Emissive' ).setWidth( '90px' ) );
 	materialEmissiveRow.add( materialEmissive );
 
 	container.add( materialEmissiveRow );
@@ -110,7 +113,7 @@ Sidebar.Material = function ( editor ) {
 	var materialSpecularRow = new UI.Panel();
 	var materialSpecular = new UI.Color().onChange( update );
 
-	materialSpecularRow.add( new UI.Text( 'Specular' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialSpecularRow.add( new UI.Text( 'Specular' ).setWidth( '90px' ) );
 	materialSpecularRow.add( materialSpecular );
 
 	container.add( materialSpecularRow );
@@ -120,7 +123,7 @@ Sidebar.Material = function ( editor ) {
 	var materialShininessRow = new UI.Panel();
 	var materialShininess = new UI.Number( 30 ).onChange( update );
 
-	materialShininessRow.add( new UI.Text( 'Shininess' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialShininessRow.add( new UI.Text( 'Shininess' ).setWidth( '90px' ) );
 	materialShininessRow.add( materialShininess );
 
 	container.add( materialShininessRow );
@@ -136,7 +139,7 @@ Sidebar.Material = function ( editor ) {
 
 	} ).onChange( update );
 
-	materialVertexColorsRow.add( new UI.Text( 'Vertex Colors' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialVertexColorsRow.add( new UI.Text( 'Vertex Colors' ).setWidth( '90px' ) );
 	materialVertexColorsRow.add( materialVertexColors );
 
 	container.add( materialVertexColorsRow );
@@ -148,7 +151,7 @@ Sidebar.Material = function ( editor ) {
 	var materialMapEnabled = new UI.Checkbox( false ).onChange( update );
 	var materialMap = new UI.Texture().setColor( '#444' ).onChange( update );
 
-	materialMapRow.add( new UI.Text( 'Map' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialMapRow.add( new UI.Text( 'Map' ).setWidth( '90px' ) );
 	materialMapRow.add( materialMapEnabled );
 	materialMapRow.add( materialMap );
 
@@ -161,7 +164,7 @@ Sidebar.Material = function ( editor ) {
 	var materialLightMapEnabled = new UI.Checkbox( false ).onChange( update );
 	var materialLightMap = new UI.Texture().setColor( '#444' ).onChange( update );
 
-	materialLightMapRow.add( new UI.Text( 'Light Map' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialLightMapRow.add( new UI.Text( 'Light Map' ).setWidth( '90px' ) );
 	materialLightMapRow.add( materialLightMapEnabled );
 	materialLightMapRow.add( materialLightMap );
 
@@ -175,7 +178,7 @@ Sidebar.Material = function ( editor ) {
 	var materialBumpMap = new UI.Texture().setColor( '#444' ).onChange( update );
 	var materialBumpScale = new UI.Number( 1 ).setWidth( '30px' ).onChange( update );
 
-	materialBumpMapRow.add( new UI.Text( 'Bump Map' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialBumpMapRow.add( new UI.Text( 'Bump Map' ).setWidth( '90px' ) );
 	materialBumpMapRow.add( materialBumpMapEnabled );
 	materialBumpMapRow.add( materialBumpMap );
 	materialBumpMapRow.add( materialBumpScale );
@@ -189,7 +192,7 @@ Sidebar.Material = function ( editor ) {
 	var materialNormalMapEnabled = new UI.Checkbox( false ).onChange( update );
 	var materialNormalMap = new UI.Texture().setColor( '#444' ).onChange( update );
 
-	materialNormalMapRow.add( new UI.Text( 'Normal Map' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialNormalMapRow.add( new UI.Text( 'Normal Map' ).setWidth( '90px' ) );
 	materialNormalMapRow.add( materialNormalMapEnabled );
 	materialNormalMapRow.add( materialNormalMap );
 
@@ -202,7 +205,7 @@ Sidebar.Material = function ( editor ) {
 	var materialSpecularMapEnabled = new UI.Checkbox( false ).onChange( update );
 	var materialSpecularMap = new UI.Texture().setColor( '#444' ).onChange( update );
 
-	materialSpecularMapRow.add( new UI.Text( 'Specular Map' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialSpecularMapRow.add( new UI.Text( 'Specular Map' ).setWidth( '90px' ) );
 	materialSpecularMapRow.add( materialSpecularMapEnabled );
 	materialSpecularMapRow.add( materialSpecularMap );
 
@@ -216,7 +219,7 @@ Sidebar.Material = function ( editor ) {
 	var materialEnvMap = new UI.CubeTexture().setColor( '#444' ).onChange( update );
 	var materialReflectivity = new UI.Number( 1 ).setWidth( '30px' ).onChange( update );
 
-	materialEnvMapRow.add( new UI.Text( 'Env Map' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialEnvMapRow.add( new UI.Text( 'Env Map' ).setWidth( '90px' ) );
 	materialEnvMapRow.add( materialEnvMapEnabled );
 	materialEnvMapRow.add( materialEnvMap );
 	materialEnvMapRow.add( materialReflectivity );
@@ -238,7 +241,7 @@ Sidebar.Material = function ( editor ) {
 
 	} ).setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( update );
 
-	materialBlendingRow.add( new UI.Text( 'Blending' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialBlendingRow.add( new UI.Text( 'Blending' ).setWidth( '90px' ) );
 	materialBlendingRow.add( materialBlending );
 
 	container.add( materialBlendingRow );
@@ -255,7 +258,7 @@ Sidebar.Material = function ( editor ) {
 
 	} ).setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( update );
 
-	materialSideRow.add( new UI.Text( 'Side' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialSideRow.add( new UI.Text( 'Side' ).setWidth( '90px' ) );
 	materialSideRow.add( materialSide );
 
 	container.add( materialSideRow );
@@ -266,7 +269,7 @@ Sidebar.Material = function ( editor ) {
 	var materialOpacityRow = new UI.Panel();
 	var materialOpacity = new UI.Number().setWidth( '60px' ).setRange( 0, 1 ).onChange( update );
 
-	materialOpacityRow.add( new UI.Text( 'Opacity' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialOpacityRow.add( new UI.Text( 'Opacity' ).setWidth( '90px' ) );
 	materialOpacityRow.add( materialOpacity );
 
 	container.add( materialOpacityRow );
@@ -277,7 +280,7 @@ Sidebar.Material = function ( editor ) {
 	var materialTransparentRow = new UI.Panel();
 	var materialTransparent = new UI.Checkbox().setLeft( '100px' ).onChange( update );
 
-	materialTransparentRow.add( new UI.Text( 'Transparent' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialTransparentRow.add( new UI.Text( 'Transparent' ).setWidth( '90px' ) );
 	materialTransparentRow.add( materialTransparent );
 
 	container.add( materialTransparentRow );
@@ -289,7 +292,7 @@ Sidebar.Material = function ( editor ) {
 	var materialWireframe = new UI.Checkbox( false ).onChange( update );
 	var materialWireframeLinewidth = new UI.Number( 1 ).setWidth( '60px' ).setRange( 0, 100 ).onChange( update );
 
-	materialWireframeRow.add( new UI.Text( 'Wireframe' ).setWidth( '90px' ).setColor( '#666' ) );
+	materialWireframeRow.add( new UI.Text( 'Wireframe' ).setWidth( '90px' ) );
 	materialWireframeRow.add( materialWireframe );
 	materialWireframeRow.add( materialWireframeLinewidth );
 
@@ -317,12 +320,6 @@ Sidebar.Material = function ( editor ) {
 
 			}
 
-			if ( material.name !== undefined ) {
-
-				material.name = materialName.getValue();
-
-			}
-
 			if ( material instanceof materialClasses[ materialClass.getValue() ] === false ) {
 
 				material = new materialClasses[ materialClass.getValue() ]();

+ 25 - 25
editor/js/Sidebar.Object3D.js

@@ -3,11 +3,9 @@ Sidebar.Object3D = function ( editor ) {
 	var signals = editor.signals;
 
 	var container = new UI.Panel();
-	container.setBorderTop( '1px solid #ccc' );
-	container.setPadding( '10px' );
 	container.setDisplay( 'none' );
 
-	var objectType = new UI.Text().setColor( '#666' ).setTextTransform( 'uppercase' );
+	var objectType = new UI.Text().setTextTransform( 'uppercase' );
 	container.add( objectType );
 	container.add( new UI.Break(), new UI.Break() );
 
@@ -18,11 +16,12 @@ Sidebar.Object3D = function ( editor ) {
 	var objectUUIDRenew = new UI.Button( '⟳' ).setMarginLeft( '7px' ).onClick( function () {
 
 		objectUUID.setValue( THREE.Math.generateUUID() );
-		update();
+
+		editor.selected.uuid = objectUUID.getValue();
 
 	} );
 
-	objectUUIDRow.add( new UI.Text( 'UUID' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectUUIDRow.add( new UI.Text( 'UUID' ).setWidth( '90px' ) );
 	objectUUIDRow.add( objectUUID );
 	objectUUIDRow.add( objectUUIDRenew );
 
@@ -31,9 +30,13 @@ Sidebar.Object3D = function ( editor ) {
 	// name
 
 	var objectNameRow = new UI.Panel();
-	var objectName = new UI.Input().setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( update );
+	var objectName = new UI.Input().setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( function () {
+
+			editor.setObjectName( editor.selected, objectName.getValue() );
 
-	objectNameRow.add( new UI.Text( 'Name' ).setWidth( '90px' ).setColor( '#666' ) );
+	} );
+
+	objectNameRow.add( new UI.Text( 'Name' ).setWidth( '90px' ) );
 	objectNameRow.add( objectName );
 
 	container.add( objectNameRow );
@@ -43,7 +46,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectParentRow = new UI.Panel();
 	var objectParent = new UI.Select().setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( update );
 
-	objectParentRow.add( new UI.Text( 'Parent' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectParentRow.add( new UI.Text( 'Parent' ).setWidth( '90px' ) );
 	objectParentRow.add( objectParent );
 
 	container.add( objectParentRow );
@@ -55,7 +58,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectPositionY = new UI.Number().setWidth( '50px' ).onChange( update );
 	var objectPositionZ = new UI.Number().setWidth( '50px' ).onChange( update );
 
-	objectPositionRow.add( new UI.Text( 'Position' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectPositionRow.add( new UI.Text( 'Position' ).setWidth( '90px' ) );
 	objectPositionRow.add( objectPositionX, objectPositionY, objectPositionZ );
 
 	container.add( objectPositionRow );
@@ -67,7 +70,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectRotationY = new UI.Number().setWidth( '50px' ).onChange( update );
 	var objectRotationZ = new UI.Number().setWidth( '50px' ).onChange( update );
 
-	objectRotationRow.add( new UI.Text( 'Rotation' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectRotationRow.add( new UI.Text( 'Rotation' ).setWidth( '90px' ) );
 	objectRotationRow.add( objectRotationX, objectRotationY, objectRotationZ );
 
 	container.add( objectRotationRow );
@@ -80,7 +83,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectScaleY = new UI.Number( 1 ).setWidth( '50px' ).onChange( updateScaleY );
 	var objectScaleZ = new UI.Number( 1 ).setWidth( '50px' ).onChange( updateScaleZ );
 
-	objectScaleRow.add( new UI.Text( 'Scale' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectScaleRow.add( new UI.Text( 'Scale' ).setWidth( '90px' ) );
 	objectScaleRow.add( objectScaleLock );
 	objectScaleRow.add( objectScaleX, objectScaleY, objectScaleZ );
 
@@ -91,7 +94,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectFovRow = new UI.Panel();
 	var objectFov = new UI.Number().onChange( update );
 
-	objectFovRow.add( new UI.Text( 'Fov' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectFovRow.add( new UI.Text( 'Fov' ).setWidth( '90px' ) );
 	objectFovRow.add( objectFov );
 
 	container.add( objectFovRow );
@@ -101,7 +104,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectNearRow = new UI.Panel();
 	var objectNear = new UI.Number().onChange( update );
 
-	objectNearRow.add( new UI.Text( 'Near' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectNearRow.add( new UI.Text( 'Near' ).setWidth( '90px' ) );
 	objectNearRow.add( objectNear );
 
 	container.add( objectNearRow );
@@ -111,7 +114,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectFarRow = new UI.Panel();
 	var objectFar = new UI.Number().onChange( update );
 
-	objectFarRow.add( new UI.Text( 'Far' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectFarRow.add( new UI.Text( 'Far' ).setWidth( '90px' ) );
 	objectFarRow.add( objectFar );
 
 	container.add( objectFarRow );
@@ -121,7 +124,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectIntensityRow = new UI.Panel();
 	var objectIntensity = new UI.Number().setRange( 0, Infinity ).onChange( update );
 
-	objectIntensityRow.add( new UI.Text( 'Intensity' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectIntensityRow.add( new UI.Text( 'Intensity' ).setWidth( '90px' ) );
 	objectIntensityRow.add( objectIntensity );
 
 	container.add( objectIntensityRow );
@@ -131,7 +134,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectColorRow = new UI.Panel();
 	var objectColor = new UI.Color().onChange( update );
 
-	objectColorRow.add( new UI.Text( 'Color' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectColorRow.add( new UI.Text( 'Color' ).setWidth( '90px' ) );
 	objectColorRow.add( objectColor );
 
 	container.add( objectColorRow );
@@ -141,7 +144,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectGroundColorRow = new UI.Panel();
 	var objectGroundColor = new UI.Color().onChange( update );
 
-	objectGroundColorRow.add( new UI.Text( 'Ground color' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectGroundColorRow.add( new UI.Text( 'Ground color' ).setWidth( '90px' ) );
 	objectGroundColorRow.add( objectGroundColor );
 
 	container.add( objectGroundColorRow );
@@ -151,7 +154,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectDistanceRow = new UI.Panel();
 	var objectDistance = new UI.Number().setRange( 0, Infinity ).onChange( update );
 
-	objectDistanceRow.add( new UI.Text( 'Distance' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectDistanceRow.add( new UI.Text( 'Distance' ).setWidth( '90px' ) );
 	objectDistanceRow.add( objectDistance );
 
 	container.add( objectDistanceRow );
@@ -161,7 +164,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectAngleRow = new UI.Panel();
 	var objectAngle = new UI.Number().setPrecision( 3 ).setRange( 0, Math.PI / 2 ).onChange( update );
 
-	objectAngleRow.add( new UI.Text( 'Angle' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectAngleRow.add( new UI.Text( 'Angle' ).setWidth( '90px' ) );
 	objectAngleRow.add( objectAngle );
 
 	container.add( objectAngleRow );
@@ -171,7 +174,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectExponentRow = new UI.Panel();
 	var objectExponent = new UI.Number().setRange( 0, Infinity ).onChange( update );
 
-	objectExponentRow.add( new UI.Text( 'Exponent' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectExponentRow.add( new UI.Text( 'Exponent' ).setWidth( '90px' ) );
 	objectExponentRow.add( objectExponent );
 
 	container.add( objectExponentRow );
@@ -181,7 +184,7 @@ Sidebar.Object3D = function ( editor ) {
 	var objectVisibleRow = new UI.Panel();
 	var objectVisible = new UI.Checkbox().onChange( update );
 
-	objectVisibleRow.add( new UI.Text( 'Visible' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectVisibleRow.add( new UI.Text( 'Visible' ).setWidth( '90px' ) );
 	objectVisibleRow.add( objectVisible );
 
 	container.add( objectVisibleRow );
@@ -207,7 +210,7 @@ Sidebar.Object3D = function ( editor ) {
 
 	} );
 
-	objectUserDataRow.add( new UI.Text( 'User data' ).setWidth( '90px' ).setColor( '#666' ) );
+	objectUserDataRow.add( new UI.Text( 'User data' ).setWidth( '90px' ) );
 	objectUserDataRow.add( objectUserData );
 
 	container.add( objectUserDataRow );
@@ -272,9 +275,6 @@ Sidebar.Object3D = function ( editor ) {
 
 		if ( object !== null ) {
 
-			object.uuid = objectUUID.getValue();
-			object.name = objectName.getValue();
-
 			if ( object.parent !== undefined ) {
 
 				var newParentId = parseInt( objectParent.getValue() );

+ 13 - 38
editor/js/Sidebar.Renderer.js

@@ -2,7 +2,7 @@ Sidebar.Renderer = function ( editor ) {
 
 	var signals = editor.signals;
 
-	var rendererClasses = {
+	var rendererTypes = {
 
 		'WebGLRenderer': THREE.WebGLRenderer,
 		'WebGLRenderer3': THREE.WebGLRenderer3,
@@ -13,17 +13,15 @@ Sidebar.Renderer = function ( editor ) {
 	};
 
 	var container = new UI.Panel();
-	container.setPadding( '10px' );
-	container.setBorderTop( '1px solid #ccc' );
 
-	container.add( new UI.Text( 'RENDERER' ).setColor( '#666' ) );
+	container.add( new UI.Text( 'RENDERER' ) );
 	container.add( new UI.Break(), new UI.Break() );
 
 	// class
 
 	var options = {};
 
-	for ( var key in rendererClasses ) {
+	for ( var key in rendererTypes ) {
 
 		if ( key.indexOf( 'WebGL' ) >= 0 && System.support.webgl === false ) continue;
 
@@ -31,52 +29,29 @@ Sidebar.Renderer = function ( editor ) {
 
 	}
 
-	var rendererClassRow = new UI.Panel();
-	var rendererClass = new UI.Select().setOptions( options ).setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( updateRenderer );
+	var rendererTypeRow = new UI.Panel();
+	var rendererType = new UI.Select().setOptions( options ).setWidth( '150px' ).setColor( '#444' ).setFontSize( '12px' ).onChange( updateRenderer );
 
-	rendererClassRow.add( new UI.Text( 'Class' ).setWidth( '90px' ).setColor( '#666' ) );
-	rendererClassRow.add( rendererClass );
+	rendererTypeRow.add( new UI.Text( 'Type' ).setWidth( '90px' ) );
+	rendererTypeRow.add( rendererType );
 
-	container.add( rendererClassRow );
+	container.add( rendererTypeRow );
 
-	// clear color
+	if ( editor.config.getKey( 'renderer' ) !== undefined ) {
 
-	var clearColorRow = new UI.Panel();
-	var clearColor = new UI.Color().setValue( '#aaaaaa' ).onChange( updateClearColor );
+		rendererType.setValue( editor.config.getKey( 'renderer' ) );
 
-	clearColorRow.add( new UI.Text( 'Clear color' ).setWidth( '90px' ).setColor( '#666' ) );
-	clearColorRow.add( clearColor );
-
-	container.add( clearColorRow );
+	}
 
 	//
 
 	function updateRenderer() {
 
-		var renderer = new rendererClasses[ rendererClass.getValue() ]( {
-			antialias: true,
-			alpha: false,
-			clearColor: clearColor.getHexValue(),
-			clearAlpha: 1
-		} );
-		signals.rendererChanged.dispatch( renderer );
-
-	}
-
-	function updateClearColor() {
-
-		signals.clearColorChanged.dispatch( clearColor.getHexValue() );
+		signals.rendererChanged.dispatch( rendererType.getValue() );
+		editor.config.setKey( 'renderer', rendererType.getValue() );
 
 	}
 
-	// events
-
-	signals.clearColorChanged.add( function ( color ) {
-
-		clearColor.setHexValue( color );
-
-	} );
-
 	return container;
 
 }

+ 19 - 12
editor/js/Sidebar.Scene.js

@@ -3,13 +3,11 @@ Sidebar.Scene = function ( editor ) {
 	var signals = editor.signals;
 
 	var container = new UI.Panel();
-	container.setPadding( '10px' );
-	container.setBorderTop( '1px solid #ccc' );
 
-	container.add( new UI.Text( 'SCENE' ).setColor( '#666' ) );
+	container.add( new UI.Text( 'SCENE' ) );
 	container.add( new UI.Break(), new UI.Break() );
 
-	var outliner = new UI.FancySelect().setId( 'outliner' ).setWidth( '100%' ).setHeight('140px').setColor( '#444' ).setFontSize( '12px' );
+	var outliner = new UI.FancySelect().setId( 'outliner' );
 	outliner.onChange( function () {
 
 		editor.selectById( parseInt( outliner.getValue() ) );
@@ -47,7 +45,7 @@ Sidebar.Scene = function ( editor ) {
 
 	} );
 
-	fogTypeRow.add( new UI.Text( 'Fog' ).setWidth( '90px' ).setColor( '#666' ) );
+	fogTypeRow.add( new UI.Text( 'Fog' ).setWidth( '90px' ) );
 	fogTypeRow.add( fogType );
 
 	container.add( fogTypeRow );
@@ -64,7 +62,7 @@ Sidebar.Scene = function ( editor ) {
 
 	} );
 
-	fogColorRow.add( new UI.Text( 'Fog color' ).setWidth( '90px' ).setColor( '#666' ) );
+	fogColorRow.add( new UI.Text( 'Fog color' ).setWidth( '90px' ) );
 	fogColorRow.add( fogColor );
 
 	container.add( fogColorRow );
@@ -76,7 +74,7 @@ Sidebar.Scene = function ( editor ) {
 
 	var fogNear = new UI.Number( 1 ).setWidth( '60px' ).setRange( 0, Infinity ).onChange( updateFogParameters );
 
-	fogNearRow.add( new UI.Text( 'Fog near' ).setWidth( '90px' ).setColor( '#666' ) );
+	fogNearRow.add( new UI.Text( 'Fog near' ).setWidth( '90px' ) );
 	fogNearRow.add( fogNear );
 
 	container.add( fogNearRow );
@@ -88,7 +86,7 @@ Sidebar.Scene = function ( editor ) {
 
 	var fogFar = new UI.Number( 5000 ).setWidth( '60px' ).setRange( 0, Infinity ).onChange( updateFogParameters );
 
-	fogFarRow.add( new UI.Text( 'Fog far' ).setWidth( '90px' ).setColor( '#666' ) );
+	fogFarRow.add( new UI.Text( 'Fog far' ).setWidth( '90px' ) );
 	fogFarRow.add( fogFar );
 
 	container.add( fogFarRow );
@@ -100,7 +98,7 @@ Sidebar.Scene = function ( editor ) {
 
 	var fogDensity = new UI.Number( 0.00025 ).setWidth( '60px' ).setRange( 0, 0.1 ).setPrecision( 5 ).onChange( updateFogParameters );
 
-	fogDensityRow.add( new UI.Text( 'Fog density' ).setWidth( '90px' ).setColor( '#666' ) );
+	fogDensityRow.add( new UI.Text( 'Fog density' ).setWidth( '90px' ) );
 	fogDensityRow.add( fogDensity );
 
 	container.add( fogDensityRow );
@@ -123,22 +121,31 @@ Sidebar.Scene = function ( editor ) {
 	signals.sceneGraphChanged.add( function () {
 
 		var scene = editor.scene;
+		var sceneType = editor.getObjectType( scene );
 
 		var options = {};
 
-		options[ scene.id ] = '<span class="type">' + editor.getObjectType( scene ) + '</span> ' + scene.name;
+		options[ scene.id ] = '<span class="type ' + sceneType + '"></span> ' + scene.name;
 
 		( function addObjects( objects, pad ) {
 
 			for ( var i = 0, l = objects.length; i < l; i ++ ) {
 
 				var object = objects[ i ];
+				var objectType = editor.getObjectType( object );
 
-				var option = pad + '<span class="type">' + editor.getObjectType( object ) + '</span> ' + object.name;
+				var option = pad + '<span class="type ' + objectType + '"></span> ' + object.name;
 
 				if ( object instanceof THREE.Mesh ) {
 
-					option += ' ( ' + object.geometry.name + ', ' + object.material.name + ' ) ';
+					var geometry = object.geometry;
+					var material = object.material;
+
+					var geometryType = editor.getGeometryType( geometry );
+					var materialType = editor.getMaterialType( material );
+
+					option += ' <span class="type ' + geometryType + '"></span> ' + geometry.name;
+					option += ' <span class="type ' + materialType + '"></span> ' + material.name;
 
 				}
 

+ 1 - 1
editor/js/Sidebar.js

@@ -1,6 +1,6 @@
 var Sidebar = function ( editor ) {
 
-	var container = new UI.Panel().setId( 'sidebar' );
+	var container = new UI.Panel();
 
 	container.add( new Sidebar.Renderer( editor ) );
 	container.add( new Sidebar.Scene( editor ) );

+ 83 - 0
editor/js/Storage.js

@@ -0,0 +1,83 @@
+var Storage = function () {
+
+	var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
+
+	var name = 'threejs-editor';
+	var version = 1;
+
+	var database;
+
+	return {
+
+		init: function ( callback ) {
+
+			var request = indexedDB.open( name, version );
+			request.onupgradeneeded = function ( event ) {
+
+				var db = event.target.result;
+
+				if ( db.objectStoreNames.contains( 'states' ) === false ) {
+
+					db.createObjectStore( 'states' );
+
+				}
+
+			};
+			request.onsuccess = function ( event ) {
+
+				database = event.target.result;
+
+				callback();
+
+			};
+			request.onerror = function ( event ) {
+
+				console.error( 'IndexedDB', event );
+
+			};
+			
+
+		},
+
+		get: function ( callback ) {
+
+			var transaction = database.transaction( [ 'states' ], 'readwrite' );
+			var objectStore = transaction.objectStore( 'states' );
+			var request = objectStore.get( 0 );
+			request.onsuccess = function ( event ) {
+
+				callback( event.target.result );
+
+			};
+
+		},
+
+		set: function ( data, callback ) {
+
+			var transaction = database.transaction( [ 'states' ], 'readwrite' );
+			var objectStore = transaction.objectStore( 'states' );
+			var request = objectStore.put( data, 0 );
+			request.onsuccess = function ( event ) {
+
+				console.log( '[' + /\d\d\:\d\d\:\d\d/.exec( new Date() )[ 0 ] + ']', 'Saved state to IndexedDB.' );
+
+			};
+
+		},
+
+		clear: function ( callback ) {
+
+			var transaction = database.transaction( [ 'states' ], 'readwrite' );
+			var objectStore = transaction.objectStore( 'states' );
+			var request = objectStore.clear();
+			request.onsuccess = function ( event ) {
+
+				callback();
+			
+			};
+
+		}
+
+	}
+
+};

+ 1 - 1
editor/js/Toolbar.js

@@ -2,7 +2,7 @@ var Toolbar = function ( editor ) {
 
 	var signals = editor.signals;
 
-	var container = new UI.Panel().setId( 'toolbar' );
+	var container = new UI.Panel();
 
 	var buttons = new UI.Panel();
 	container.add( buttons );

+ 63 - 34
editor/js/Viewport.js

@@ -4,7 +4,6 @@ var Viewport = function ( editor ) {
 
 	var container = new UI.Panel();
 	container.setPosition( 'absolute' );
-	container.setBackgroundColor( '#aaa' );
 
 	var info = new UI.Text();
 	info.setPosition( 'absolute' );
@@ -18,7 +17,6 @@ var Viewport = function ( editor ) {
 	var scene = editor.scene;
 	var sceneHelpers = editor.sceneHelpers;
 
-	var clearColor = 0xAAAAAA;
 	var objects = [];
 
 	// helpers
@@ -29,8 +27,8 @@ var Viewport = function ( editor ) {
 	//
 
 	var camera = new THREE.PerspectiveCamera( 50, container.dom.offsetWidth / container.dom.offsetHeight, 1, 5000 );
-	camera.position.set( 500, 250, 500 );
-	camera.lookAt( scene.position );
+	camera.position.fromArray( editor.config.getKey( 'camera' ).position );
+	camera.lookAt( new THREE.Vector3().fromArray( editor.config.getKey( 'camera' ).target ) );
 
 	//
 
@@ -43,10 +41,19 @@ var Viewport = function ( editor ) {
 	var transformControls = new THREE.TransformControls( camera, container.dom );
 	transformControls.addEventListener( 'change', function () {
 
-        controls.enabled = true;
-        if ( transformControls.axis ) controls.enabled = false;
-        
-		if (editor.selected) signals.objectChanged.dispatch( editor.selected );
+		controls.enabled = true;
+
+		if ( transformControls.axis !== undefined ) {
+
+			controls.enabled = false;
+
+		}
+
+		if ( editor.selected !== null ) {
+
+			signals.objectChanged.dispatch( editor.selected );
+
+		}
 
 	} );
 	sceneHelpers.add( transformControls );
@@ -68,9 +75,9 @@ var Viewport = function ( editor ) {
 
 	var getIntersects = function ( event, object ) {
 
-	    var rect = container.dom.getBoundingClientRect();
-	    x = (event.clientX - rect.left) / rect.width;
-	    y = (event.clientY - rect.top) / rect.height;
+		var rect = container.dom.getBoundingClientRect();
+		x = (event.clientX - rect.left) / rect.width;
+		y = (event.clientY - rect.top) / rect.height;
 		var vector = new THREE.Vector3( ( x ) * 2 - 1, - ( y ) * 2 + 1, 0.5 );
 
 		projector.unprojectVector( vector, camera );
@@ -94,9 +101,9 @@ var Viewport = function ( editor ) {
 
 		event.preventDefault();
 
-	    var rect = container.dom.getBoundingClientRect();
-	    x = (event.clientX - rect.left) / rect.width;
-	    y = (event.clientY - rect.top) / rect.height;
+		var rect = container.dom.getBoundingClientRect();
+		x = (event.clientX - rect.left) / rect.width;
+		y = (event.clientY - rect.top) / rect.height;
 		onMouseDownPosition.set( x, y );
 
 		document.addEventListener( 'mouseup', onMouseUp, false );
@@ -105,9 +112,9 @@ var Viewport = function ( editor ) {
 
 	var onMouseUp = function ( event ) {
 
-	    var rect = container.dom.getBoundingClientRect();
-	    x = (event.clientX - rect.left) / rect.width;
-	    y = (event.clientY - rect.top) / rect.height;
+		var rect = container.dom.getBoundingClientRect();
+		x = (event.clientX - rect.left) / rect.width;
+		y = (event.clientY - rect.top) / rect.height;
 		onMouseUpPosition.set( x, y );
 
 		if ( onMouseDownPosition.distanceTo( onMouseUpPosition ) == 0 ) {
@@ -163,15 +170,29 @@ var Viewport = function ( editor ) {
 	// otherwise controls.enabled doesn't work.
 
 	var controls = new THREE.EditorControls( camera, container.dom );
+	controls.center.fromArray( editor.config.getKey( 'camera' ).target )
 	controls.addEventListener( 'change', function () {
 
 		transformControls.update();
-		signals.objectChanged.dispatch( camera );
+		signals.cameraChanged.dispatch( camera );
 
 	} );
 
 	// signals
 
+	signals.themeChanged.add( function ( value ) {
+
+		switch ( value ) {
+
+			case 'css/light.css': grid.setColors( 0x444444, 0x888888 ); break;
+			case 'css/dark.css': grid.setColors( 0xbbbbbb, 0x888888 ); break;
+
+		}
+
+		render();
+
+	} );
+
 	signals.transformModeChanged.add( function ( mode ) {
 
 		transformControls.setMode( mode );
@@ -190,12 +211,11 @@ var Viewport = function ( editor ) {
 
 	} );
 
-	signals.rendererChanged.add( function ( object ) {
+	signals.rendererChanged.add( function ( type ) {
 
 		container.dom.removeChild( renderer.domElement );
 
-		renderer = object;
-		renderer.setClearColor( clearColor );
+		renderer = new THREE[ type ]( { antialias: true } );
 		renderer.autoClear = false;
 		renderer.autoUpdateScene = false;
 		renderer.setSize( container.dom.offsetWidth, container.dom.offsetHeight );
@@ -213,6 +233,17 @@ var Viewport = function ( editor ) {
 
 	} );
 
+	signals.cameraChanged.add( function () {
+
+		editor.config.setKey( 'camera', {
+			position: camera.position.toArray(),
+			target: controls.center.toArray()
+		} );
+
+		render();
+
+	} );
+
 	signals.objectSelected.add( function ( object ) {
 
 		selectionBox.visible = false;
@@ -315,15 +346,6 @@ var Viewport = function ( editor ) {
 
 	} );
 
-	signals.clearColorChanged.add( function ( color ) {
-
-		renderer.setClearColor( color );
-		render();
-
-		clearColor = color;
-
-	} );
-
 	signals.fogTypeChanged.add( function ( fogType ) {
 
 		if ( fogType !== oldFogType ) {
@@ -408,17 +430,24 @@ var Viewport = function ( editor ) {
 
 	var renderer;
 
-	if ( System.support.webgl === true ) {
+	if ( editor.config.getKey( 'renderer' ) !== undefined ) {
 
-		renderer = new THREE.WebGLRenderer( { antialias: true, alpha: false } );
+		renderer = new THREE[ editor.config.getKey( 'renderer' ) ]( { antialias: true } );
 
 	} else {
 
-		renderer = new THREE.CanvasRenderer();
+		if ( System.support.webgl === true ) {
+
+			renderer = new THREE.WebGLRenderer( { antialias: true } );
+
+		} else {
+
+			renderer = new THREE.CanvasRenderer();
+
+		}
 
 	}
 
-	renderer.setClearColor( clearColor );
 	renderer.autoClear = false;
 	renderer.autoUpdateScene = false;
 	container.dom.appendChild( renderer.domElement );

+ 0 - 1671
editor/js/libs/rawdeflate.js

@@ -1,1671 +0,0 @@
-/*
- * $Id: rawdeflate.js,v 0.3 2009/03/01 19:05:05 dankogai Exp dankogai $
- *
- * Original:
- *   http://www.onicos.com/staff/iz/amuse/javascript/expert/deflate.txt
- */
-
-(function(){
-
-/* Copyright (C) 1999 Masanao Izumo <[email protected]>
- * Version: 1.0.1
- * LastModified: Dec 25 1999
- */
-
-/* Interface:
- * data = zip_deflate(src);
- */
-
-/* constant parameters */
-var zip_WSIZE = 32768;		// Sliding Window size
-var zip_STORED_BLOCK = 0;
-var zip_STATIC_TREES = 1;
-var zip_DYN_TREES    = 2;
-
-/* for deflate */
-var zip_DEFAULT_LEVEL = 6;
-var zip_FULL_SEARCH = true;
-var zip_INBUFSIZ = 32768;	// Input buffer size
-var zip_INBUF_EXTRA = 64;	// Extra buffer
-var zip_OUTBUFSIZ = 1024 * 8;
-var zip_window_size = 2 * zip_WSIZE;
-var zip_MIN_MATCH = 3;
-var zip_MAX_MATCH = 258;
-var zip_BITS = 16;
-// for SMALL_MEM
-var zip_LIT_BUFSIZE = 0x2000;
-var zip_HASH_BITS = 13;
-// for MEDIUM_MEM
-// var zip_LIT_BUFSIZE = 0x4000;
-// var zip_HASH_BITS = 14;
-// for BIG_MEM
-// var zip_LIT_BUFSIZE = 0x8000;
-// var zip_HASH_BITS = 15;
-if(zip_LIT_BUFSIZE > zip_INBUFSIZ)
-    alert("error: zip_INBUFSIZ is too small");
-if((zip_WSIZE<<1) > (1<<zip_BITS))
-    alert("error: zip_WSIZE is too large");
-if(zip_HASH_BITS > zip_BITS-1)
-    alert("error: zip_HASH_BITS is too large");
-if(zip_HASH_BITS < 8 || zip_MAX_MATCH != 258)
-    alert("error: Code too clever");
-var zip_DIST_BUFSIZE = zip_LIT_BUFSIZE;
-var zip_HASH_SIZE = 1 << zip_HASH_BITS;
-var zip_HASH_MASK = zip_HASH_SIZE - 1;
-var zip_WMASK = zip_WSIZE - 1;
-var zip_NIL = 0; // Tail of hash chains
-var zip_TOO_FAR = 4096;
-var zip_MIN_LOOKAHEAD = zip_MAX_MATCH + zip_MIN_MATCH + 1;
-var zip_MAX_DIST = zip_WSIZE - zip_MIN_LOOKAHEAD;
-var zip_SMALLEST = 1;
-var zip_MAX_BITS = 15;
-var zip_MAX_BL_BITS = 7;
-var zip_LENGTH_CODES = 29;
-var zip_LITERALS =256;
-var zip_END_BLOCK = 256;
-var zip_L_CODES = zip_LITERALS + 1 + zip_LENGTH_CODES;
-var zip_D_CODES = 30;
-var zip_BL_CODES = 19;
-var zip_REP_3_6 = 16;
-var zip_REPZ_3_10 = 17;
-var zip_REPZ_11_138 = 18;
-var zip_HEAP_SIZE = 2 * zip_L_CODES + 1;
-var zip_H_SHIFT = parseInt((zip_HASH_BITS + zip_MIN_MATCH - 1) /
-			   zip_MIN_MATCH);
-
-/* variables */
-var zip_free_queue;
-var zip_qhead, zip_qtail;
-var zip_initflag;
-var zip_outbuf = null;
-var zip_outcnt, zip_outoff;
-var zip_complete;
-var zip_window;
-var zip_d_buf;
-var zip_l_buf;
-var zip_prev;
-var zip_bi_buf;
-var zip_bi_valid;
-var zip_block_start;
-var zip_ins_h;
-var zip_hash_head;
-var zip_prev_match;
-var zip_match_available;
-var zip_match_length;
-var zip_prev_length;
-var zip_strstart;
-var zip_match_start;
-var zip_eofile;
-var zip_lookahead;
-var zip_max_chain_length;
-var zip_max_lazy_match;
-var zip_compr_level;
-var zip_good_match;
-var zip_nice_match;
-var zip_dyn_ltree;
-var zip_dyn_dtree;
-var zip_static_ltree;
-var zip_static_dtree;
-var zip_bl_tree;
-var zip_l_desc;
-var zip_d_desc;
-var zip_bl_desc;
-var zip_bl_count;
-var zip_heap;
-var zip_heap_len;
-var zip_heap_max;
-var zip_depth;
-var zip_length_code;
-var zip_dist_code;
-var zip_base_length;
-var zip_base_dist;
-var zip_flag_buf;
-var zip_last_lit;
-var zip_last_dist;
-var zip_last_flags;
-var zip_flags;
-var zip_flag_bit;
-var zip_opt_len;
-var zip_static_len;
-var zip_deflate_data;
-var zip_deflate_pos;
-
-/* objects (deflate) */
-
-var zip_DeflateCT = function() {
-    this.fc = 0; // frequency count or bit string
-    this.dl = 0; // father node in Huffman tree or length of bit string
-}
-
-var zip_DeflateTreeDesc = function() {
-    this.dyn_tree = null;	// the dynamic tree
-    this.static_tree = null;	// corresponding static tree or NULL
-    this.extra_bits = null;	// extra bits for each code or NULL
-    this.extra_base = 0;	// base index for extra_bits
-    this.elems = 0;		// max number of elements in the tree
-    this.max_length = 0;	// max bit length for the codes
-    this.max_code = 0;		// largest code with non zero frequency
-}
-
-/* Values for max_lazy_match, good_match and max_chain_length, depending on
- * the desired pack level (0..9). The values given below have been tuned to
- * exclude worst case performance for pathological files. Better values may be
- * found for specific files.
- */
-var zip_DeflateConfiguration = function(a, b, c, d) {
-    this.good_length = a; // reduce lazy search above this match length
-    this.max_lazy = b;    // do not perform lazy search above this match length
-    this.nice_length = c; // quit search above this match length
-    this.max_chain = d;
-}
-
-var zip_DeflateBuffer = function() {
-    this.next = null;
-    this.len = 0;
-    this.ptr = new Array(zip_OUTBUFSIZ);
-    this.off = 0;
-}
-
-/* constant tables */
-var zip_extra_lbits = new Array(
-    0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0);
-var zip_extra_dbits = new Array(
-    0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13);
-var zip_extra_blbits = new Array(
-    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7);
-var zip_bl_order = new Array(
-    16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15);
-var zip_configuration_table = new Array(
-	new zip_DeflateConfiguration(0,    0,   0,    0),
-	new zip_DeflateConfiguration(4,    4,   8,    4),
-	new zip_DeflateConfiguration(4,    5,  16,    8),
-	new zip_DeflateConfiguration(4,    6,  32,   32),
-	new zip_DeflateConfiguration(4,    4,  16,   16),
-	new zip_DeflateConfiguration(8,   16,  32,   32),
-	new zip_DeflateConfiguration(8,   16, 128,  128),
-	new zip_DeflateConfiguration(8,   32, 128,  256),
-	new zip_DeflateConfiguration(32, 128, 258, 1024),
-	new zip_DeflateConfiguration(32, 258, 258, 4096));
-
-
-/* routines (deflate) */
-
-var zip_deflate_start = function(level) {
-    var i;
-
-    if(!level)
-	level = zip_DEFAULT_LEVEL;
-    else if(level < 1)
-	level = 1;
-    else if(level > 9)
-	level = 9;
-
-    zip_compr_level = level;
-    zip_initflag = false;
-    zip_eofile = false;
-    if(zip_outbuf != null)
-	return;
-
-    zip_free_queue = zip_qhead = zip_qtail = null;
-    zip_outbuf = new Array(zip_OUTBUFSIZ);
-    zip_window = new Array(zip_window_size);
-    zip_d_buf = new Array(zip_DIST_BUFSIZE);
-    zip_l_buf = new Array(zip_INBUFSIZ + zip_INBUF_EXTRA);
-    zip_prev = new Array(1 << zip_BITS);
-    zip_dyn_ltree = new Array(zip_HEAP_SIZE);
-    for(i = 0; i < zip_HEAP_SIZE; i++)
-	zip_dyn_ltree[i] = new zip_DeflateCT();
-    zip_dyn_dtree = new Array(2*zip_D_CODES+1);
-    for(i = 0; i < 2*zip_D_CODES+1; i++)
-	zip_dyn_dtree[i] = new zip_DeflateCT();
-    zip_static_ltree = new Array(zip_L_CODES+2);
-    for(i = 0; i < zip_L_CODES+2; i++)
-	zip_static_ltree[i] = new zip_DeflateCT();
-    zip_static_dtree = new Array(zip_D_CODES);
-    for(i = 0; i < zip_D_CODES; i++)
-	zip_static_dtree[i] = new zip_DeflateCT();
-    zip_bl_tree = new Array(2*zip_BL_CODES+1);
-    for(i = 0; i < 2*zip_BL_CODES+1; i++)
-	zip_bl_tree[i] = new zip_DeflateCT();
-    zip_l_desc = new zip_DeflateTreeDesc();
-    zip_d_desc = new zip_DeflateTreeDesc();
-    zip_bl_desc = new zip_DeflateTreeDesc();
-    zip_bl_count = new Array(zip_MAX_BITS+1);
-    zip_heap = new Array(2*zip_L_CODES+1);
-    zip_depth = new Array(2*zip_L_CODES+1);
-    zip_length_code = new Array(zip_MAX_MATCH-zip_MIN_MATCH+1);
-    zip_dist_code = new Array(512);
-    zip_base_length = new Array(zip_LENGTH_CODES);
-    zip_base_dist = new Array(zip_D_CODES);
-    zip_flag_buf = new Array(parseInt(zip_LIT_BUFSIZE / 8));
-}
-
-var zip_deflate_end = function() {
-    zip_free_queue = zip_qhead = zip_qtail = null;
-    zip_outbuf = null;
-    zip_window = null;
-    zip_d_buf = null;
-    zip_l_buf = null;
-    zip_prev = null;
-    zip_dyn_ltree = null;
-    zip_dyn_dtree = null;
-    zip_static_ltree = null;
-    zip_static_dtree = null;
-    zip_bl_tree = null;
-    zip_l_desc = null;
-    zip_d_desc = null;
-    zip_bl_desc = null;
-    zip_bl_count = null;
-    zip_heap = null;
-    zip_depth = null;
-    zip_length_code = null;
-    zip_dist_code = null;
-    zip_base_length = null;
-    zip_base_dist = null;
-    zip_flag_buf = null;
-}
-
-var zip_reuse_queue = function(p) {
-    p.next = zip_free_queue;
-    zip_free_queue = p;
-}
-
-var zip_new_queue = function() {
-    var p;
-
-    if(zip_free_queue != null)
-    {
-	p = zip_free_queue;
-	zip_free_queue = zip_free_queue.next;
-    }
-    else
-	p = new zip_DeflateBuffer();
-    p.next = null;
-    p.len = p.off = 0;
-
-    return p;
-}
-
-var zip_head1 = function(i) {
-    return zip_prev[zip_WSIZE + i];
-}
-
-var zip_head2 = function(i, val) {
-    return zip_prev[zip_WSIZE + i] = val;
-}
-
-/* put_byte is used for the compressed output, put_ubyte for the
- * uncompressed output. However unlzw() uses window for its
- * suffix table instead of its output buffer, so it does not use put_ubyte
- * (to be cleaned up).
- */
-var zip_put_byte = function(c) {
-    zip_outbuf[zip_outoff + zip_outcnt++] = c;
-    if(zip_outoff + zip_outcnt == zip_OUTBUFSIZ)
-	zip_qoutbuf();
-}
-
-/* Output a 16 bit value, lsb first */
-var zip_put_short = function(w) {
-    w &= 0xffff;
-    if(zip_outoff + zip_outcnt < zip_OUTBUFSIZ - 2) {
-	zip_outbuf[zip_outoff + zip_outcnt++] = (w & 0xff);
-	zip_outbuf[zip_outoff + zip_outcnt++] = (w >>> 8);
-    } else {
-	zip_put_byte(w & 0xff);
-	zip_put_byte(w >>> 8);
-    }
-}
-
-/* ==========================================================================
- * Insert string s in the dictionary and set match_head to the previous head
- * of the hash chain (the most recent string with same hash key). Return
- * the previous length of the hash chain.
- * IN  assertion: all calls to to INSERT_STRING are made with consecutive
- *    input characters and the first MIN_MATCH bytes of s are valid
- *    (except for the last MIN_MATCH-1 bytes of the input file).
- */
-var zip_INSERT_STRING = function() {
-    zip_ins_h = ((zip_ins_h << zip_H_SHIFT)
-		 ^ (zip_window[zip_strstart + zip_MIN_MATCH - 1] & 0xff))
-	& zip_HASH_MASK;
-    zip_hash_head = zip_head1(zip_ins_h);
-    zip_prev[zip_strstart & zip_WMASK] = zip_hash_head;
-    zip_head2(zip_ins_h, zip_strstart);
-}
-
-/* Send a code of the given tree. c and tree must not have side effects */
-var zip_SEND_CODE = function(c, tree) {
-    zip_send_bits(tree[c].fc, tree[c].dl);
-}
-
-/* Mapping from a distance to a distance code. dist is the distance - 1 and
- * must not have side effects. dist_code[256] and dist_code[257] are never
- * used.
- */
-var zip_D_CODE = function(dist) {
-    return (dist < 256 ? zip_dist_code[dist]
-	    : zip_dist_code[256 + (dist>>7)]) & 0xff;
-}
-
-/* ==========================================================================
- * Compares to subtrees, using the tree depth as tie breaker when
- * the subtrees have equal frequency. This minimizes the worst case length.
- */
-var zip_SMALLER = function(tree, n, m) {
-    return tree[n].fc < tree[m].fc ||
-      (tree[n].fc == tree[m].fc && zip_depth[n] <= zip_depth[m]);
-}
-
-/* ==========================================================================
- * read string data
- */
-var zip_read_buff = function(buff, offset, n) {
-    var i;
-    for(i = 0; i < n && zip_deflate_pos < zip_deflate_data.length; i++)
-	buff[offset + i] =
-	    zip_deflate_data.charCodeAt(zip_deflate_pos++) & 0xff;
-    return i;
-}
-
-/* ==========================================================================
- * Initialize the "longest match" routines for a new file
- */
-var zip_lm_init = function() {
-    var j;
-
-    /* Initialize the hash table. */
-    for(j = 0; j < zip_HASH_SIZE; j++)
-//	zip_head2(j, zip_NIL);
-	zip_prev[zip_WSIZE + j] = 0;
-    /* prev will be initialized on the fly */
-
-    /* Set the default configuration parameters:
-     */
-    zip_max_lazy_match = zip_configuration_table[zip_compr_level].max_lazy;
-    zip_good_match     = zip_configuration_table[zip_compr_level].good_length;
-    if(!zip_FULL_SEARCH)
-	zip_nice_match = zip_configuration_table[zip_compr_level].nice_length;
-    zip_max_chain_length = zip_configuration_table[zip_compr_level].max_chain;
-
-    zip_strstart = 0;
-    zip_block_start = 0;
-
-    zip_lookahead = zip_read_buff(zip_window, 0, 2 * zip_WSIZE);
-    if(zip_lookahead <= 0) {
-	zip_eofile = true;
-	zip_lookahead = 0;
-	return;
-    }
-    zip_eofile = false;
-    /* Make sure that we always have enough lookahead. This is important
-     * if input comes from a device such as a tty.
-     */
-    while(zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile)
-	zip_fill_window();
-
-    /* If lookahead < MIN_MATCH, ins_h is garbage, but this is
-     * not important since only literal bytes will be emitted.
-     */
-    zip_ins_h = 0;
-    for(j = 0; j < zip_MIN_MATCH - 1; j++) {
-//      UPDATE_HASH(ins_h, window[j]);
-	zip_ins_h = ((zip_ins_h << zip_H_SHIFT) ^ (zip_window[j] & 0xff)) & zip_HASH_MASK;
-    }
-}
-
-/* ==========================================================================
- * Set match_start to the longest match starting at the given string and
- * return its length. Matches shorter or equal to prev_length are discarded,
- * in which case the result is equal to prev_length and match_start is
- * garbage.
- * IN assertions: cur_match is the head of the hash chain for the current
- *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
- */
-var zip_longest_match = function(cur_match) {
-    var chain_length = zip_max_chain_length; // max hash chain length
-    var scanp = zip_strstart; // current string
-    var matchp;		// matched string
-    var len;		// length of current match
-    var best_len = zip_prev_length;	// best match length so far
-
-    /* Stop when cur_match becomes <= limit. To simplify the code,
-     * we prevent matches with the string of window index 0.
-     */
-    var limit = (zip_strstart > zip_MAX_DIST ? zip_strstart - zip_MAX_DIST : zip_NIL);
-
-    var strendp = zip_strstart + zip_MAX_MATCH;
-    var scan_end1 = zip_window[scanp + best_len - 1];
-    var scan_end  = zip_window[scanp + best_len];
-
-    /* Do not waste too much time if we already have a good match: */
-    if(zip_prev_length >= zip_good_match)
-	chain_length >>= 2;
-
-//  Assert(encoder->strstart <= window_size-MIN_LOOKAHEAD, "insufficient lookahead");
-
-    do {
-//    Assert(cur_match < encoder->strstart, "no future");
-	matchp = cur_match;
-
-	/* Skip to next match if the match length cannot increase
-	    * or if the match length is less than 2:
-	*/
-	if(zip_window[matchp + best_len]	!= scan_end  ||
-	   zip_window[matchp + best_len - 1]	!= scan_end1 ||
-	   zip_window[matchp]			!= zip_window[scanp] ||
-	   zip_window[++matchp]			!= zip_window[scanp + 1]) {
-	    continue;
-	}
-
-	/* The check at best_len-1 can be removed because it will be made
-         * again later. (This heuristic is not always a win.)
-         * It is not necessary to compare scan[2] and match[2] since they
-         * are always equal when the other bytes match, given that
-         * the hash keys are equal and that HASH_BITS >= 8.
-         */
-	scanp += 2;
-	matchp++;
-
-	/* We check for insufficient lookahead only every 8th comparison;
-         * the 256th check will be made at strstart+258.
-         */
-	do {
-	} while(zip_window[++scanp] == zip_window[++matchp] &&
-		zip_window[++scanp] == zip_window[++matchp] &&
-		zip_window[++scanp] == zip_window[++matchp] &&
-		zip_window[++scanp] == zip_window[++matchp] &&
-		zip_window[++scanp] == zip_window[++matchp] &&
-		zip_window[++scanp] == zip_window[++matchp] &&
-		zip_window[++scanp] == zip_window[++matchp] &&
-		zip_window[++scanp] == zip_window[++matchp] &&
-		scanp < strendp);
-
-      len = zip_MAX_MATCH - (strendp - scanp);
-      scanp = strendp - zip_MAX_MATCH;
-
-      if(len > best_len) {
-	  zip_match_start = cur_match;
-	  best_len = len;
-	  if(zip_FULL_SEARCH) {
-	      if(len >= zip_MAX_MATCH) break;
-	  } else {
-	      if(len >= zip_nice_match) break;
-	  }
-
-	  scan_end1  = zip_window[scanp + best_len-1];
-	  scan_end   = zip_window[scanp + best_len];
-      }
-    } while((cur_match = zip_prev[cur_match & zip_WMASK]) > limit
-	    && --chain_length != 0);
-
-    return best_len;
-}
-
-/* ==========================================================================
- * Fill the window when the lookahead becomes insufficient.
- * Updates strstart and lookahead, and sets eofile if end of input file.
- * IN assertion: lookahead < MIN_LOOKAHEAD && strstart + lookahead > 0
- * OUT assertions: at least one byte has been read, or eofile is set;
- *    file reads are performed for at least two bytes (required for the
- *    translate_eol option).
- */
-var zip_fill_window = function() {
-    var n, m;
-
-    // Amount of free space at the end of the window.
-    var more = zip_window_size - zip_lookahead - zip_strstart;
-
-    /* If the window is almost full and there is insufficient lookahead,
-     * move the upper half to the lower one to make room in the upper half.
-     */
-    if(more == -1) {
-	/* Very unlikely, but possible on 16 bit machine if strstart == 0
-         * and lookahead == 1 (input done one byte at time)
-         */
-	more--;
-    } else if(zip_strstart >= zip_WSIZE + zip_MAX_DIST) {
-	/* By the IN assertion, the window is not empty so we can't confuse
-         * more == 0 with more == 64K on a 16 bit machine.
-         */
-//	Assert(window_size == (ulg)2*WSIZE, "no sliding with BIG_MEM");
-
-//	System.arraycopy(window, WSIZE, window, 0, WSIZE);
-	for(n = 0; n < zip_WSIZE; n++)
-	    zip_window[n] = zip_window[n + zip_WSIZE];
-      
-	zip_match_start -= zip_WSIZE;
-	zip_strstart    -= zip_WSIZE; /* we now have strstart >= MAX_DIST: */
-	zip_block_start -= zip_WSIZE;
-
-	for(n = 0; n < zip_HASH_SIZE; n++) {
-	    m = zip_head1(n);
-	    zip_head2(n, m >= zip_WSIZE ? m - zip_WSIZE : zip_NIL);
-	}
-	for(n = 0; n < zip_WSIZE; n++) {
-	    /* If n is not on any hash chain, prev[n] is garbage but
-	     * its value will never be used.
-	     */
-	    m = zip_prev[n];
-	    zip_prev[n] = (m >= zip_WSIZE ? m - zip_WSIZE : zip_NIL);
-	}
-	more += zip_WSIZE;
-    }
-    // At this point, more >= 2
-    if(!zip_eofile) {
-	n = zip_read_buff(zip_window, zip_strstart + zip_lookahead, more);
-	if(n <= 0)
-	    zip_eofile = true;
-	else
-	    zip_lookahead += n;
-    }
-}
-
-/* ==========================================================================
- * Processes a new input file and return its compressed length. This
- * function does not perform lazy evaluationof matches and inserts
- * new strings in the dictionary only for unmatched strings or for short
- * matches. It is used only for the fast compression options.
- */
-var zip_deflate_fast = function() {
-    while(zip_lookahead != 0 && zip_qhead == null) {
-	var flush; // set if current block must be flushed
-
-	/* Insert the string window[strstart .. strstart+2] in the
-	 * dictionary, and set hash_head to the head of the hash chain:
-	 */
-	zip_INSERT_STRING();
-
-	/* Find the longest match, discarding those <= prev_length.
-	 * At this point we have always match_length < MIN_MATCH
-	 */
-	if(zip_hash_head != zip_NIL &&
-	   zip_strstart - zip_hash_head <= zip_MAX_DIST) {
-	    /* To simplify the code, we prevent matches with the string
-	     * of window index 0 (in particular we have to avoid a match
-	     * of the string with itself at the start of the input file).
-	     */
-	    zip_match_length = zip_longest_match(zip_hash_head);
-	    /* longest_match() sets match_start */
-	    if(zip_match_length > zip_lookahead)
-		zip_match_length = zip_lookahead;
-	}
-	if(zip_match_length >= zip_MIN_MATCH) {
-//	    check_match(strstart, match_start, match_length);
-
-	    flush = zip_ct_tally(zip_strstart - zip_match_start,
-				 zip_match_length - zip_MIN_MATCH);
-	    zip_lookahead -= zip_match_length;
-
-	    /* Insert new strings in the hash table only if the match length
-	     * is not too large. This saves time but degrades compression.
-	     */
-	    if(zip_match_length <= zip_max_lazy_match) {
-		zip_match_length--; // string at strstart already in hash table
-		do {
-		    zip_strstart++;
-		    zip_INSERT_STRING();
-		    /* strstart never exceeds WSIZE-MAX_MATCH, so there are
-		     * always MIN_MATCH bytes ahead. If lookahead < MIN_MATCH
-		     * these bytes are garbage, but it does not matter since
-		     * the next lookahead bytes will be emitted as literals.
-		     */
-		} while(--zip_match_length != 0);
-		zip_strstart++;
-	    } else {
-		zip_strstart += zip_match_length;
-		zip_match_length = 0;
-		zip_ins_h = zip_window[zip_strstart] & 0xff;
-//		UPDATE_HASH(ins_h, window[strstart + 1]);
-		zip_ins_h = ((zip_ins_h<<zip_H_SHIFT) ^ (zip_window[zip_strstart + 1] & 0xff)) & zip_HASH_MASK;
-
-//#if MIN_MATCH != 3
-//		Call UPDATE_HASH() MIN_MATCH-3 more times
-//#endif
-
-	    }
-	} else {
-	    /* No match, output a literal byte */
-	    flush = zip_ct_tally(0, zip_window[zip_strstart] & 0xff);
-	    zip_lookahead--;
-	    zip_strstart++;
-	}
-	if(flush) {
-	    zip_flush_block(0);
-	    zip_block_start = zip_strstart;
-	}
-
-	/* Make sure that we always have enough lookahead, except
-	 * at the end of the input file. We need MAX_MATCH bytes
-	 * for the next match, plus MIN_MATCH bytes to insert the
-	 * string following the next match.
-	 */
-	while(zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile)
-	    zip_fill_window();
-    }
-}
-
-var zip_deflate_better = function() {
-    /* Process the input block. */
-    while(zip_lookahead != 0 && zip_qhead == null) {
-	/* Insert the string window[strstart .. strstart+2] in the
-	 * dictionary, and set hash_head to the head of the hash chain:
-	 */
-	zip_INSERT_STRING();
-
-	/* Find the longest match, discarding those <= prev_length.
-	 */
-	zip_prev_length = zip_match_length;
-	zip_prev_match = zip_match_start;
-	zip_match_length = zip_MIN_MATCH - 1;
-
-	if(zip_hash_head != zip_NIL &&
-	   zip_prev_length < zip_max_lazy_match &&
-	   zip_strstart - zip_hash_head <= zip_MAX_DIST) {
-	    /* To simplify the code, we prevent matches with the string
-	     * of window index 0 (in particular we have to avoid a match
-	     * of the string with itself at the start of the input file).
-	     */
-	    zip_match_length = zip_longest_match(zip_hash_head);
-	    /* longest_match() sets match_start */
-	    if(zip_match_length > zip_lookahead)
-		zip_match_length = zip_lookahead;
-
-	    /* Ignore a length 3 match if it is too distant: */
-	    if(zip_match_length == zip_MIN_MATCH &&
-	       zip_strstart - zip_match_start > zip_TOO_FAR) {
-		/* If prev_match is also MIN_MATCH, match_start is garbage
-		 * but we will ignore the current match anyway.
-		 */
-		zip_match_length--;
-	    }
-	}
-	/* If there was a match at the previous step and the current
-	 * match is not better, output the previous match:
-	 */
-	if(zip_prev_length >= zip_MIN_MATCH &&
-	   zip_match_length <= zip_prev_length) {
-	    var flush; // set if current block must be flushed
-
-//	    check_match(strstart - 1, prev_match, prev_length);
-	    flush = zip_ct_tally(zip_strstart - 1 - zip_prev_match,
-				 zip_prev_length - zip_MIN_MATCH);
-
-	    /* Insert in hash table all strings up to the end of the match.
-	     * strstart-1 and strstart are already inserted.
-	     */
-	    zip_lookahead -= zip_prev_length - 1;
-	    zip_prev_length -= 2;
-	    do {
-		zip_strstart++;
-		zip_INSERT_STRING();
-		/* strstart never exceeds WSIZE-MAX_MATCH, so there are
-		 * always MIN_MATCH bytes ahead. If lookahead < MIN_MATCH
-		 * these bytes are garbage, but it does not matter since the
-		 * next lookahead bytes will always be emitted as literals.
-		 */
-	    } while(--zip_prev_length != 0);
-	    zip_match_available = 0;
-	    zip_match_length = zip_MIN_MATCH - 1;
-	    zip_strstart++;
-	    if(flush) {
-		zip_flush_block(0);
-		zip_block_start = zip_strstart;
-	    }
-	} else if(zip_match_available != 0) {
-	    /* If there was no match at the previous position, output a
-	     * single literal. If there was a match but the current match
-	     * is longer, truncate the previous match to a single literal.
-	     */
-	    if(zip_ct_tally(0, zip_window[zip_strstart - 1] & 0xff)) {
-		zip_flush_block(0);
-		zip_block_start = zip_strstart;
-	    }
-	    zip_strstart++;
-	    zip_lookahead--;
-	} else {
-	    /* There is no previous match to compare with, wait for
-	     * the next step to decide.
-	     */
-	    zip_match_available = 1;
-	    zip_strstart++;
-	    zip_lookahead--;
-	}
-
-	/* Make sure that we always have enough lookahead, except
-	 * at the end of the input file. We need MAX_MATCH bytes
-	 * for the next match, plus MIN_MATCH bytes to insert the
-	 * string following the next match.
-	 */
-	while(zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile)
-	    zip_fill_window();
-    }
-}
-
-var zip_init_deflate = function() {
-    if(zip_eofile)
-	return;
-    zip_bi_buf = 0;
-    zip_bi_valid = 0;
-    zip_ct_init();
-    zip_lm_init();
-
-    zip_qhead = null;
-    zip_outcnt = 0;
-    zip_outoff = 0;
-
-    if(zip_compr_level <= 3)
-    {
-	zip_prev_length = zip_MIN_MATCH - 1;
-	zip_match_length = 0;
-    }
-    else
-    {
-	zip_match_length = zip_MIN_MATCH - 1;
-	zip_match_available = 0;
-    }
-
-    zip_complete = false;
-}
-
-/* ==========================================================================
- * Same as above, but achieves better compression. We use a lazy
- * evaluation for matches: a match is finally adopted only if there is
- * no better match at the next window position.
- */
-var zip_deflate_internal = function(buff, off, buff_size) {
-    var n;
-
-    if(!zip_initflag)
-    {
-	zip_init_deflate();
-	zip_initflag = true;
-	if(zip_lookahead == 0) { // empty
-	    zip_complete = true;
-	    return 0;
-	}
-    }
-
-    if((n = zip_qcopy(buff, off, buff_size)) == buff_size)
-	return buff_size;
-
-    if(zip_complete)
-	return n;
-
-    if(zip_compr_level <= 3) // optimized for speed
-	zip_deflate_fast();
-    else
-	zip_deflate_better();
-    if(zip_lookahead == 0) {
-	if(zip_match_available != 0)
-	    zip_ct_tally(0, zip_window[zip_strstart - 1] & 0xff);
-	zip_flush_block(1);
-	zip_complete = true;
-    }
-    return n + zip_qcopy(buff, n + off, buff_size - n);
-}
-
-var zip_qcopy = function(buff, off, buff_size) {
-    var n, i, j;
-
-    n = 0;
-    while(zip_qhead != null && n < buff_size)
-    {
-	i = buff_size - n;
-	if(i > zip_qhead.len)
-	    i = zip_qhead.len;
-//      System.arraycopy(qhead.ptr, qhead.off, buff, off + n, i);
-	for(j = 0; j < i; j++)
-	    buff[off + n + j] = zip_qhead.ptr[zip_qhead.off + j];
-	
-	zip_qhead.off += i;
-	zip_qhead.len -= i;
-	n += i;
-	if(zip_qhead.len == 0) {
-	    var p;
-	    p = zip_qhead;
-	    zip_qhead = zip_qhead.next;
-	    zip_reuse_queue(p);
-	}
-    }
-
-    if(n == buff_size)
-	return n;
-
-    if(zip_outoff < zip_outcnt) {
-	i = buff_size - n;
-	if(i > zip_outcnt - zip_outoff)
-	    i = zip_outcnt - zip_outoff;
-	// System.arraycopy(outbuf, outoff, buff, off + n, i);
-	for(j = 0; j < i; j++)
-	    buff[off + n + j] = zip_outbuf[zip_outoff + j];
-	zip_outoff += i;
-	n += i;
-	if(zip_outcnt == zip_outoff)
-	    zip_outcnt = zip_outoff = 0;
-    }
-    return n;
-}
-
-/* ==========================================================================
- * Allocate the match buffer, initialize the various tables and save the
- * location of the internal file attribute (ascii/binary) and method
- * (DEFLATE/STORE).
- */
-var zip_ct_init = function() {
-    var n;	// iterates over tree elements
-    var bits;	// bit counter
-    var length;	// length value
-    var code;	// code value
-    var dist;	// distance index
-
-    if(zip_static_dtree[0].dl != 0) return; // ct_init already called
-
-    zip_l_desc.dyn_tree		= zip_dyn_ltree;
-    zip_l_desc.static_tree	= zip_static_ltree;
-    zip_l_desc.extra_bits	= zip_extra_lbits;
-    zip_l_desc.extra_base	= zip_LITERALS + 1;
-    zip_l_desc.elems		= zip_L_CODES;
-    zip_l_desc.max_length	= zip_MAX_BITS;
-    zip_l_desc.max_code		= 0;
-
-    zip_d_desc.dyn_tree		= zip_dyn_dtree;
-    zip_d_desc.static_tree	= zip_static_dtree;
-    zip_d_desc.extra_bits	= zip_extra_dbits;
-    zip_d_desc.extra_base	= 0;
-    zip_d_desc.elems		= zip_D_CODES;
-    zip_d_desc.max_length	= zip_MAX_BITS;
-    zip_d_desc.max_code		= 0;
-
-    zip_bl_desc.dyn_tree	= zip_bl_tree;
-    zip_bl_desc.static_tree	= null;
-    zip_bl_desc.extra_bits	= zip_extra_blbits;
-    zip_bl_desc.extra_base	= 0;
-    zip_bl_desc.elems		= zip_BL_CODES;
-    zip_bl_desc.max_length	= zip_MAX_BL_BITS;
-    zip_bl_desc.max_code	= 0;
-
-    // Initialize the mapping length (0..255) -> length code (0..28)
-    length = 0;
-    for(code = 0; code < zip_LENGTH_CODES-1; code++) {
-	zip_base_length[code] = length;
-	for(n = 0; n < (1<<zip_extra_lbits[code]); n++)
-	    zip_length_code[length++] = code;
-    }
-    // Assert (length == 256, "ct_init: length != 256");
-
-    /* Note that the length 255 (match length 258) can be represented
-     * in two different ways: code 284 + 5 bits or code 285, so we
-     * overwrite length_code[255] to use the best encoding:
-     */
-    zip_length_code[length-1] = code;
-
-    /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
-    dist = 0;
-    for(code = 0 ; code < 16; code++) {
-	zip_base_dist[code] = dist;
-	for(n = 0; n < (1<<zip_extra_dbits[code]); n++) {
-	    zip_dist_code[dist++] = code;
-	}
-    }
-    // Assert (dist == 256, "ct_init: dist != 256");
-    dist >>= 7; // from now on, all distances are divided by 128
-    for( ; code < zip_D_CODES; code++) {
-	zip_base_dist[code] = dist << 7;
-	for(n = 0; n < (1<<(zip_extra_dbits[code]-7)); n++)
-	    zip_dist_code[256 + dist++] = code;
-    }
-    // Assert (dist == 256, "ct_init: 256+dist != 512");
-
-    // Construct the codes of the static literal tree
-    for(bits = 0; bits <= zip_MAX_BITS; bits++)
-	zip_bl_count[bits] = 0;
-    n = 0;
-    while(n <= 143) { zip_static_ltree[n++].dl = 8; zip_bl_count[8]++; }
-    while(n <= 255) { zip_static_ltree[n++].dl = 9; zip_bl_count[9]++; }
-    while(n <= 279) { zip_static_ltree[n++].dl = 7; zip_bl_count[7]++; }
-    while(n <= 287) { zip_static_ltree[n++].dl = 8; zip_bl_count[8]++; }
-    /* Codes 286 and 287 do not exist, but we must include them in the
-     * tree construction to get a canonical Huffman tree (longest code
-     * all ones)
-     */
-    zip_gen_codes(zip_static_ltree, zip_L_CODES + 1);
-
-    /* The static distance tree is trivial: */
-    for(n = 0; n < zip_D_CODES; n++) {
-	zip_static_dtree[n].dl = 5;
-	zip_static_dtree[n].fc = zip_bi_reverse(n, 5);
-    }
-
-    // Initialize the first block of the first file:
-    zip_init_block();
-}
-
-/* ==========================================================================
- * Initialize a new block.
- */
-var zip_init_block = function() {
-    var n; // iterates over tree elements
-
-    // Initialize the trees.
-    for(n = 0; n < zip_L_CODES;  n++) zip_dyn_ltree[n].fc = 0;
-    for(n = 0; n < zip_D_CODES;  n++) zip_dyn_dtree[n].fc = 0;
-    for(n = 0; n < zip_BL_CODES; n++) zip_bl_tree[n].fc = 0;
-
-    zip_dyn_ltree[zip_END_BLOCK].fc = 1;
-    zip_opt_len = zip_static_len = 0;
-    zip_last_lit = zip_last_dist = zip_last_flags = 0;
-    zip_flags = 0;
-    zip_flag_bit = 1;
-}
-
-/* ==========================================================================
- * Restore the heap property by moving down the tree starting at node k,
- * exchanging a node with the smallest of its two sons if necessary, stopping
- * when the heap property is re-established (each father smaller than its
- * two sons).
- */
-var zip_pqdownheap = function(
-    tree,	// the tree to restore
-    k) {	// node to move down
-    var v = zip_heap[k];
-    var j = k << 1;	// left son of k
-
-    while(j <= zip_heap_len) {
-	// Set j to the smallest of the two sons:
-	if(j < zip_heap_len &&
-	   zip_SMALLER(tree, zip_heap[j + 1], zip_heap[j]))
-	    j++;
-
-	// Exit if v is smaller than both sons
-	if(zip_SMALLER(tree, v, zip_heap[j]))
-	    break;
-
-	// Exchange v with the smallest son
-	zip_heap[k] = zip_heap[j];
-	k = j;
-
-	// And continue down the tree, setting j to the left son of k
-	j <<= 1;
-    }
-    zip_heap[k] = v;
-}
-
-/* ==========================================================================
- * Compute the optimal bit lengths for a tree and update the total bit length
- * for the current block.
- * IN assertion: the fields freq and dad are set, heap[heap_max] and
- *    above are the tree nodes sorted by increasing frequency.
- * OUT assertions: the field len is set to the optimal bit length, the
- *     array bl_count contains the frequencies for each bit length.
- *     The length opt_len is updated; static_len is also updated if stree is
- *     not null.
- */
-var zip_gen_bitlen = function(desc) { // the tree descriptor
-    var tree		= desc.dyn_tree;
-    var extra		= desc.extra_bits;
-    var base		= desc.extra_base;
-    var max_code	= desc.max_code;
-    var max_length	= desc.max_length;
-    var stree		= desc.static_tree;
-    var h;		// heap index
-    var n, m;		// iterate over the tree elements
-    var bits;		// bit length
-    var xbits;		// extra bits
-    var f;		// frequency
-    var overflow = 0;	// number of elements with bit length too large
-
-    for(bits = 0; bits <= zip_MAX_BITS; bits++)
-	zip_bl_count[bits] = 0;
-
-    /* In a first pass, compute the optimal bit lengths (which may
-     * overflow in the case of the bit length tree).
-     */
-    tree[zip_heap[zip_heap_max]].dl = 0; // root of the heap
-
-    for(h = zip_heap_max + 1; h < zip_HEAP_SIZE; h++) {
-	n = zip_heap[h];
-	bits = tree[tree[n].dl].dl + 1;
-	if(bits > max_length) {
-	    bits = max_length;
-	    overflow++;
-	}
-	tree[n].dl = bits;
-	// We overwrite tree[n].dl which is no longer needed
-
-	if(n > max_code)
-	    continue; // not a leaf node
-
-	zip_bl_count[bits]++;
-	xbits = 0;
-	if(n >= base)
-	    xbits = extra[n - base];
-	f = tree[n].fc;
-	zip_opt_len += f * (bits + xbits);
-	if(stree != null)
-	    zip_static_len += f * (stree[n].dl + xbits);
-    }
-    if(overflow == 0)
-	return;
-
-    // This happens for example on obj2 and pic of the Calgary corpus
-
-    // Find the first bit length which could increase:
-    do {
-	bits = max_length - 1;
-	while(zip_bl_count[bits] == 0)
-	    bits--;
-	zip_bl_count[bits]--;		// move one leaf down the tree
-	zip_bl_count[bits + 1] += 2;	// move one overflow item as its brother
-	zip_bl_count[max_length]--;
-	/* The brother of the overflow item also moves one step up,
-	 * but this does not affect bl_count[max_length]
-	 */
-	overflow -= 2;
-    } while(overflow > 0);
-
-    /* Now recompute all bit lengths, scanning in increasing frequency.
-     * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
-     * lengths instead of fixing only the wrong ones. This idea is taken
-     * from 'ar' written by Haruhiko Okumura.)
-     */
-    for(bits = max_length; bits != 0; bits--) {
-	n = zip_bl_count[bits];
-	while(n != 0) {
-	    m = zip_heap[--h];
-	    if(m > max_code)
-		continue;
-	    if(tree[m].dl != bits) {
-		zip_opt_len += (bits - tree[m].dl) * tree[m].fc;
-		tree[m].fc = bits;
-	    }
-	    n--;
-	}
-    }
-}
-
-  /* ==========================================================================
-   * Generate the codes for a given tree and bit counts (which need not be
-   * optimal).
-   * IN assertion: the array bl_count contains the bit length statistics for
-   * the given tree and the field len is set for all tree elements.
-   * OUT assertion: the field code is set for all tree elements of non
-   *     zero code length.
-   */
-var zip_gen_codes = function(tree,	// the tree to decorate
-		   max_code) {	// largest code with non zero frequency
-    var next_code = new Array(zip_MAX_BITS+1); // next code value for each bit length
-    var code = 0;		// running code value
-    var bits;			// bit index
-    var n;			// code index
-
-    /* The distribution counts are first used to generate the code values
-     * without bit reversal.
-     */
-    for(bits = 1; bits <= zip_MAX_BITS; bits++) {
-	code = ((code + zip_bl_count[bits-1]) << 1);
-	next_code[bits] = code;
-    }
-
-    /* Check that the bit counts in bl_count are consistent. The last code
-     * must be all ones.
-     */
-//    Assert (code + encoder->bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
-//	    "inconsistent bit counts");
-//    Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
-
-    for(n = 0; n <= max_code; n++) {
-	var len = tree[n].dl;
-	if(len == 0)
-	    continue;
-	// Now reverse the bits
-	tree[n].fc = zip_bi_reverse(next_code[len]++, len);
-
-//      Tracec(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
-//	  n, (isgraph(n) ? n : ' '), len, tree[n].fc, next_code[len]-1));
-    }
-}
-
-/* ==========================================================================
- * Construct one Huffman tree and assigns the code bit strings and lengths.
- * Update the total bit length for the current block.
- * IN assertion: the field freq is set for all tree elements.
- * OUT assertions: the fields len and code are set to the optimal bit length
- *     and corresponding code. The length opt_len is updated; static_len is
- *     also updated if stree is not null. The field max_code is set.
- */
-var zip_build_tree = function(desc) { // the tree descriptor
-    var tree	= desc.dyn_tree;
-    var stree	= desc.static_tree;
-    var elems	= desc.elems;
-    var n, m;		// iterate over heap elements
-    var max_code = -1;	// largest code with non zero frequency
-    var node = elems;	// next internal node of the tree
-
-    /* Construct the initial heap, with least frequent element in
-     * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
-     * heap[0] is not used.
-     */
-    zip_heap_len = 0;
-    zip_heap_max = zip_HEAP_SIZE;
-
-    for(n = 0; n < elems; n++) {
-	if(tree[n].fc != 0) {
-	    zip_heap[++zip_heap_len] = max_code = n;
-	    zip_depth[n] = 0;
-	} else
-	    tree[n].dl = 0;
-    }
-
-    /* The pkzip format requires that at least one distance code exists,
-     * and that at least one bit should be sent even if there is only one
-     * possible code. So to avoid special checks later on we force at least
-     * two codes of non zero frequency.
-     */
-    while(zip_heap_len < 2) {
-	var xnew = zip_heap[++zip_heap_len] = (max_code < 2 ? ++max_code : 0);
-	tree[xnew].fc = 1;
-	zip_depth[xnew] = 0;
-	zip_opt_len--;
-	if(stree != null)
-	    zip_static_len -= stree[xnew].dl;
-	// new is 0 or 1 so it does not have extra bits
-    }
-    desc.max_code = max_code;
-
-    /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
-     * establish sub-heaps of increasing lengths:
-     */
-    for(n = zip_heap_len >> 1; n >= 1; n--)
-	zip_pqdownheap(tree, n);
-
-    /* Construct the Huffman tree by repeatedly combining the least two
-     * frequent nodes.
-     */
-    do {
-	n = zip_heap[zip_SMALLEST];
-	zip_heap[zip_SMALLEST] = zip_heap[zip_heap_len--];
-	zip_pqdownheap(tree, zip_SMALLEST);
-
-	m = zip_heap[zip_SMALLEST];  // m = node of next least frequency
-
-	// keep the nodes sorted by frequency
-	zip_heap[--zip_heap_max] = n;
-	zip_heap[--zip_heap_max] = m;
-
-	// Create a new node father of n and m
-	tree[node].fc = tree[n].fc + tree[m].fc;
-//	depth[node] = (char)(MAX(depth[n], depth[m]) + 1);
-	if(zip_depth[n] > zip_depth[m] + 1)
-	    zip_depth[node] = zip_depth[n];
-	else
-	    zip_depth[node] = zip_depth[m] + 1;
-	tree[n].dl = tree[m].dl = node;
-
-	// and insert the new node in the heap
-	zip_heap[zip_SMALLEST] = node++;
-	zip_pqdownheap(tree, zip_SMALLEST);
-
-    } while(zip_heap_len >= 2);
-
-    zip_heap[--zip_heap_max] = zip_heap[zip_SMALLEST];
-
-    /* At this point, the fields freq and dad are set. We can now
-     * generate the bit lengths.
-     */
-    zip_gen_bitlen(desc);
-
-    // The field len is now set, we can generate the bit codes
-    zip_gen_codes(tree, max_code);
-}
-
-/* ==========================================================================
- * Scan a literal or distance tree to determine the frequencies of the codes
- * in the bit length tree. Updates opt_len to take into account the repeat
- * counts. (The contribution of the bit length codes will be added later
- * during the construction of bl_tree.)
- */
-var zip_scan_tree = function(tree,// the tree to be scanned
-		       max_code) {  // and its largest code of non zero frequency
-    var n;			// iterates over all tree elements
-    var prevlen = -1;		// last emitted length
-    var curlen;			// length of current code
-    var nextlen = tree[0].dl;	// length of next code
-    var count = 0;		// repeat count of the current code
-    var max_count = 7;		// max repeat count
-    var min_count = 4;		// min repeat count
-
-    if(nextlen == 0) {
-	max_count = 138;
-	min_count = 3;
-    }
-    tree[max_code + 1].dl = 0xffff; // guard
-
-    for(n = 0; n <= max_code; n++) {
-	curlen = nextlen;
-	nextlen = tree[n + 1].dl;
-	if(++count < max_count && curlen == nextlen)
-	    continue;
-	else if(count < min_count)
-	    zip_bl_tree[curlen].fc += count;
-	else if(curlen != 0) {
-	    if(curlen != prevlen)
-		zip_bl_tree[curlen].fc++;
-	    zip_bl_tree[zip_REP_3_6].fc++;
-	} else if(count <= 10)
-	    zip_bl_tree[zip_REPZ_3_10].fc++;
-	else
-	    zip_bl_tree[zip_REPZ_11_138].fc++;
-	count = 0; prevlen = curlen;
-	if(nextlen == 0) {
-	    max_count = 138;
-	    min_count = 3;
-	} else if(curlen == nextlen) {
-	    max_count = 6;
-	    min_count = 3;
-	} else {
-	    max_count = 7;
-	    min_count = 4;
-	}
-    }
-}
-
-  /* ==========================================================================
-   * Send a literal or distance tree in compressed form, using the codes in
-   * bl_tree.
-   */
-var zip_send_tree = function(tree, // the tree to be scanned
-		   max_code) { // and its largest code of non zero frequency
-    var n;			// iterates over all tree elements
-    var prevlen = -1;		// last emitted length
-    var curlen;			// length of current code
-    var nextlen = tree[0].dl;	// length of next code
-    var count = 0;		// repeat count of the current code
-    var max_count = 7;		// max repeat count
-    var min_count = 4;		// min repeat count
-
-    /* tree[max_code+1].dl = -1; */  /* guard already set */
-    if(nextlen == 0) {
-      max_count = 138;
-      min_count = 3;
-    }
-
-    for(n = 0; n <= max_code; n++) {
-	curlen = nextlen;
-	nextlen = tree[n+1].dl;
-	if(++count < max_count && curlen == nextlen) {
-	    continue;
-	} else if(count < min_count) {
-	    do { zip_SEND_CODE(curlen, zip_bl_tree); } while(--count != 0);
-	} else if(curlen != 0) {
-	    if(curlen != prevlen) {
-		zip_SEND_CODE(curlen, zip_bl_tree);
-		count--;
-	    }
-	    // Assert(count >= 3 && count <= 6, " 3_6?");
-	    zip_SEND_CODE(zip_REP_3_6, zip_bl_tree);
-	    zip_send_bits(count - 3, 2);
-	} else if(count <= 10) {
-	    zip_SEND_CODE(zip_REPZ_3_10, zip_bl_tree);
-	    zip_send_bits(count-3, 3);
-	} else {
-	    zip_SEND_CODE(zip_REPZ_11_138, zip_bl_tree);
-	    zip_send_bits(count-11, 7);
-	}
-	count = 0;
-	prevlen = curlen;
-	if(nextlen == 0) {
-	    max_count = 138;
-	    min_count = 3;
-	} else if(curlen == nextlen) {
-	    max_count = 6;
-	    min_count = 3;
-	} else {
-	    max_count = 7;
-	    min_count = 4;
-	}
-    }
-}
-
-/* ==========================================================================
- * Construct the Huffman tree for the bit lengths and return the index in
- * bl_order of the last bit length code to send.
- */
-var zip_build_bl_tree = function() {
-    var max_blindex;  // index of last bit length code of non zero freq
-
-    // Determine the bit length frequencies for literal and distance trees
-    zip_scan_tree(zip_dyn_ltree, zip_l_desc.max_code);
-    zip_scan_tree(zip_dyn_dtree, zip_d_desc.max_code);
-
-    // Build the bit length tree:
-    zip_build_tree(zip_bl_desc);
-    /* opt_len now includes the length of the tree representations, except
-     * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
-     */
-
-    /* Determine the number of bit length codes to send. The pkzip format
-     * requires that at least 4 bit length codes be sent. (appnote.txt says
-     * 3 but the actual value used is 4.)
-     */
-    for(max_blindex = zip_BL_CODES-1; max_blindex >= 3; max_blindex--) {
-	if(zip_bl_tree[zip_bl_order[max_blindex]].dl != 0) break;
-    }
-    /* Update opt_len to include the bit length tree and counts */
-    zip_opt_len += 3*(max_blindex+1) + 5+5+4;
-//    Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
-//	    encoder->opt_len, encoder->static_len));
-
-    return max_blindex;
-}
-
-/* ==========================================================================
- * Send the header for a block using dynamic Huffman trees: the counts, the
- * lengths of the bit length codes, the literal tree and the distance tree.
- * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
- */
-var zip_send_all_trees = function(lcodes, dcodes, blcodes) { // number of codes for each tree
-    var rank; // index in bl_order
-
-//    Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
-//    Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
-//	    "too many codes");
-//    Tracev((stderr, "\nbl counts: "));
-    zip_send_bits(lcodes-257, 5); // not +255 as stated in appnote.txt
-    zip_send_bits(dcodes-1,   5);
-    zip_send_bits(blcodes-4,  4); // not -3 as stated in appnote.txt
-    for(rank = 0; rank < blcodes; rank++) {
-//      Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
-	zip_send_bits(zip_bl_tree[zip_bl_order[rank]].dl, 3);
-    }
-
-    // send the literal tree
-    zip_send_tree(zip_dyn_ltree,lcodes-1);
-
-    // send the distance tree
-    zip_send_tree(zip_dyn_dtree,dcodes-1);
-}
-
-/* ==========================================================================
- * Determine the best encoding for the current block: dynamic trees, static
- * trees or store, and output the encoded block to the zip file.
- */
-var zip_flush_block = function(eof) { // true if this is the last block for a file
-    var opt_lenb, static_lenb; // opt_len and static_len in bytes
-    var max_blindex;	// index of last bit length code of non zero freq
-    var stored_len;	// length of input block
-
-    stored_len = zip_strstart - zip_block_start;
-    zip_flag_buf[zip_last_flags] = zip_flags; // Save the flags for the last 8 items
-
-    // Construct the literal and distance trees
-    zip_build_tree(zip_l_desc);
-//    Tracev((stderr, "\nlit data: dyn %ld, stat %ld",
-//	    encoder->opt_len, encoder->static_len));
-
-    zip_build_tree(zip_d_desc);
-//    Tracev((stderr, "\ndist data: dyn %ld, stat %ld",
-//	    encoder->opt_len, encoder->static_len));
-    /* At this point, opt_len and static_len are the total bit lengths of
-     * the compressed block data, excluding the tree representations.
-     */
-
-    /* Build the bit length tree for the above two trees, and get the index
-     * in bl_order of the last bit length code to send.
-     */
-    max_blindex = zip_build_bl_tree();
-
-    // Determine the best encoding. Compute first the block length in bytes
-    opt_lenb	= (zip_opt_len   +3+7)>>3;
-    static_lenb = (zip_static_len+3+7)>>3;
-
-//    Trace((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u dist %u ",
-//	   opt_lenb, encoder->opt_len,
-//	   static_lenb, encoder->static_len, stored_len,
-//	   encoder->last_lit, encoder->last_dist));
-
-    if(static_lenb <= opt_lenb)
-	opt_lenb = static_lenb;
-    if(stored_len + 4 <= opt_lenb // 4: two words for the lengths
-       && zip_block_start >= 0) {
-	var i;
-
-	/* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
-	 * Otherwise we can't have processed more than WSIZE input bytes since
-	 * the last block flush, because compression would have been
-	 * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
-	 * transform a block into a stored block.
-	 */
-	zip_send_bits((zip_STORED_BLOCK<<1)+eof, 3);  /* send block type */
-	zip_bi_windup();		 /* align on byte boundary */
-	zip_put_short(stored_len);
-	zip_put_short(~stored_len);
-
-      // copy block
-/*
-      p = &window[block_start];
-      for(i = 0; i < stored_len; i++)
-	put_byte(p[i]);
-*/
-	for(i = 0; i < stored_len; i++)
-	    zip_put_byte(zip_window[zip_block_start + i]);
-
-    } else if(static_lenb == opt_lenb) {
-	zip_send_bits((zip_STATIC_TREES<<1)+eof, 3);
-	zip_compress_block(zip_static_ltree, zip_static_dtree);
-    } else {
-	zip_send_bits((zip_DYN_TREES<<1)+eof, 3);
-	zip_send_all_trees(zip_l_desc.max_code+1,
-			   zip_d_desc.max_code+1,
-			   max_blindex+1);
-	zip_compress_block(zip_dyn_ltree, zip_dyn_dtree);
-    }
-
-    zip_init_block();
-
-    if(eof != 0)
-	zip_bi_windup();
-}
-
-/* ==========================================================================
- * Save the match info and tally the frequency counts. Return true if
- * the current block must be flushed.
- */
-var zip_ct_tally = function(
-	dist, // distance of matched string
-	lc) { // match length-MIN_MATCH or unmatched char (if dist==0)
-    zip_l_buf[zip_last_lit++] = lc;
-    if(dist == 0) {
-	// lc is the unmatched char
-	zip_dyn_ltree[lc].fc++;
-    } else {
-	// Here, lc is the match length - MIN_MATCH
-	dist--;		    // dist = match distance - 1
-//      Assert((ush)dist < (ush)MAX_DIST &&
-//	     (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
-//	     (ush)D_CODE(dist) < (ush)D_CODES,  "ct_tally: bad match");
-
-	zip_dyn_ltree[zip_length_code[lc]+zip_LITERALS+1].fc++;
-	zip_dyn_dtree[zip_D_CODE(dist)].fc++;
-
-	zip_d_buf[zip_last_dist++] = dist;
-	zip_flags |= zip_flag_bit;
-    }
-    zip_flag_bit <<= 1;
-
-    // Output the flags if they fill a byte
-    if((zip_last_lit & 7) == 0) {
-	zip_flag_buf[zip_last_flags++] = zip_flags;
-	zip_flags = 0;
-	zip_flag_bit = 1;
-    }
-    // Try to guess if it is profitable to stop the current block here
-    if(zip_compr_level > 2 && (zip_last_lit & 0xfff) == 0) {
-	// Compute an upper bound for the compressed length
-	var out_length = zip_last_lit * 8;
-	var in_length = zip_strstart - zip_block_start;
-	var dcode;
-
-	for(dcode = 0; dcode < zip_D_CODES; dcode++) {
-	    out_length += zip_dyn_dtree[dcode].fc * (5 + zip_extra_dbits[dcode]);
-	}
-	out_length >>= 3;
-//      Trace((stderr,"\nlast_lit %u, last_dist %u, in %ld, out ~%ld(%ld%%) ",
-//	     encoder->last_lit, encoder->last_dist, in_length, out_length,
-//	     100L - out_length*100L/in_length));
-	if(zip_last_dist < parseInt(zip_last_lit/2) &&
-	   out_length < parseInt(in_length/2))
-	    return true;
-    }
-    return (zip_last_lit == zip_LIT_BUFSIZE-1 ||
-	    zip_last_dist == zip_DIST_BUFSIZE);
-    /* We avoid equality with LIT_BUFSIZE because of wraparound at 64K
-     * on 16 bit machines and because stored blocks are restricted to
-     * 64K-1 bytes.
-     */
-}
-
-  /* ==========================================================================
-   * Send the block data compressed using the given Huffman trees
-   */
-var zip_compress_block = function(
-	ltree,	// literal tree
-	dtree) {	// distance tree
-    var dist;		// distance of matched string
-    var lc;		// match length or unmatched char (if dist == 0)
-    var lx = 0;		// running index in l_buf
-    var dx = 0;		// running index in d_buf
-    var fx = 0;		// running index in flag_buf
-    var flag = 0;	// current flags
-    var code;		// the code to send
-    var extra;		// number of extra bits to send
-
-    if(zip_last_lit != 0) do {
-	if((lx & 7) == 0)
-	    flag = zip_flag_buf[fx++];
-	lc = zip_l_buf[lx++] & 0xff;
-	if((flag & 1) == 0) {
-	    zip_SEND_CODE(lc, ltree); /* send a literal byte */
-//	Tracecv(isgraph(lc), (stderr," '%c' ", lc));
-	} else {
-	    // Here, lc is the match length - MIN_MATCH
-	    code = zip_length_code[lc];
-	    zip_SEND_CODE(code+zip_LITERALS+1, ltree); // send the length code
-	    extra = zip_extra_lbits[code];
-	    if(extra != 0) {
-		lc -= zip_base_length[code];
-		zip_send_bits(lc, extra); // send the extra length bits
-	    }
-	    dist = zip_d_buf[dx++];
-	    // Here, dist is the match distance - 1
-	    code = zip_D_CODE(dist);
-//	Assert (code < D_CODES, "bad d_code");
-
-	    zip_SEND_CODE(code, dtree);	  // send the distance code
-	    extra = zip_extra_dbits[code];
-	    if(extra != 0) {
-		dist -= zip_base_dist[code];
-		zip_send_bits(dist, extra);   // send the extra distance bits
-	    }
-	} // literal or match pair ?
-	flag >>= 1;
-    } while(lx < zip_last_lit);
-
-    zip_SEND_CODE(zip_END_BLOCK, ltree);
-}
-
-/* ==========================================================================
- * Send a value on a given number of bits.
- * IN assertion: length <= 16 and value fits in length bits.
- */
-var zip_Buf_size = 16; // bit size of bi_buf
-var zip_send_bits = function(
-	value,	// value to send
-	length) {	// number of bits
-    /* If not enough room in bi_buf, use (valid) bits from bi_buf and
-     * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
-     * unused bits in value.
-     */
-    if(zip_bi_valid > zip_Buf_size - length) {
-	zip_bi_buf |= (value << zip_bi_valid);
-	zip_put_short(zip_bi_buf);
-	zip_bi_buf = (value >> (zip_Buf_size - zip_bi_valid));
-	zip_bi_valid += length - zip_Buf_size;
-    } else {
-	zip_bi_buf |= value << zip_bi_valid;
-	zip_bi_valid += length;
-    }
-}
-
-/* ==========================================================================
- * Reverse the first len bits of a code, using straightforward code (a faster
- * method would use a table)
- * IN assertion: 1 <= len <= 15
- */
-var zip_bi_reverse = function(
-	code,	// the value to invert
-	len) {	// its bit length
-    var res = 0;
-    do {
-	res |= code & 1;
-	code >>= 1;
-	res <<= 1;
-    } while(--len > 0);
-    return res >> 1;
-}
-
-/* ==========================================================================
- * Write out any remaining bits in an incomplete byte.
- */
-var zip_bi_windup = function() {
-    if(zip_bi_valid > 8) {
-	zip_put_short(zip_bi_buf);
-    } else if(zip_bi_valid > 0) {
-	zip_put_byte(zip_bi_buf);
-    }
-    zip_bi_buf = 0;
-    zip_bi_valid = 0;
-}
-
-var zip_qoutbuf = function() {
-    if(zip_outcnt != 0) {
-	var q, i;
-	q = zip_new_queue();
-	if(zip_qhead == null)
-	    zip_qhead = zip_qtail = q;
-	else
-	    zip_qtail = zip_qtail.next = q;
-	q.len = zip_outcnt - zip_outoff;
-//      System.arraycopy(zip_outbuf, zip_outoff, q.ptr, 0, q.len);
-	for(i = 0; i < q.len; i++)
-	    q.ptr[i] = zip_outbuf[zip_outoff + i];
-	zip_outcnt = zip_outoff = 0;
-    }
-}
-
-var zip_deflate = function(str, level) {
-    var i, j;
-
-    zip_deflate_data = str;
-    zip_deflate_pos = 0;
-    if(typeof level == "undefined")
-	level = zip_DEFAULT_LEVEL;
-    zip_deflate_start(level);
-
-    var buff = new Array(1024);
-    var aout = [];
-    while((i = zip_deflate_internal(buff, 0, buff.length)) > 0) {
-	var cbuf = new Array(i);
-	for(j = 0; j < i; j++){
-	    cbuf[j] = String.fromCharCode(buff[j]);
-	}
-	aout[aout.length] = cbuf.join("");
-    }
-    zip_deflate_data = null; // G.C.
-    return aout.join("");
-}
-
-if (! window.RawDeflate) RawDeflate = {};
-RawDeflate.deflate = zip_deflate;
-
-})();

+ 0 - 753
editor/js/libs/rawinflate.js

@@ -1,753 +0,0 @@
-/*
- * $Id: rawinflate.js,v 0.2 2009/03/01 18:32:24 dankogai Exp $
- *
- * original:
- * http://www.onicos.com/staff/iz/amuse/javascript/expert/inflate.txt
- */
-
-(function(){
-
-/* Copyright (C) 1999 Masanao Izumo <[email protected]>
- * Version: 1.0.0.1
- * LastModified: Dec 25 1999
- */
-
-/* Interface:
- * data = zip_inflate(src);
- */
-
-/* constant parameters */
-var zip_WSIZE = 32768;		// Sliding Window size
-var zip_STORED_BLOCK = 0;
-var zip_STATIC_TREES = 1;
-var zip_DYN_TREES    = 2;
-
-/* for inflate */
-var zip_lbits = 9; 		// bits in base literal/length lookup table
-var zip_dbits = 6; 		// bits in base distance lookup table
-var zip_INBUFSIZ = 32768;	// Input buffer size
-var zip_INBUF_EXTRA = 64;	// Extra buffer
-
-/* variables (inflate) */
-var zip_slide;
-var zip_wp;			// current position in slide
-var zip_fixed_tl = null;	// inflate static
-var zip_fixed_td;		// inflate static
-var zip_fixed_bl, fixed_bd;	// inflate static
-var zip_bit_buf;		// bit buffer
-var zip_bit_len;		// bits in bit buffer
-var zip_method;
-var zip_eof;
-var zip_copy_leng;
-var zip_copy_dist;
-var zip_tl, zip_td;	// literal/length and distance decoder tables
-var zip_bl, zip_bd;	// number of bits decoded by tl and td
-
-var zip_inflate_data;
-var zip_inflate_pos;
-
-
-/* constant tables (inflate) */
-var zip_MASK_BITS = new Array(
-    0x0000,
-    0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
-    0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff);
-// Tables for deflate from PKZIP's appnote.txt.
-var zip_cplens = new Array( // Copy lengths for literal codes 257..285
-    3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
-    35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0);
-/* note: see note #13 above about the 258 in this list. */
-var zip_cplext = new Array( // Extra bits for literal codes 257..285
-    0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
-    3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99); // 99==invalid
-var zip_cpdist = new Array( // Copy offsets for distance codes 0..29
-    1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
-    257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
-    8193, 12289, 16385, 24577);
-var zip_cpdext = new Array( // Extra bits for distance codes
-    0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
-    7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
-    12, 12, 13, 13);
-var zip_border = new Array(  // Order of the bit length code lengths
-    16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15);
-/* objects (inflate) */
-
-var zip_HuftList = function() {
-    this.next = null;
-    this.list = null;
-}
-
-var zip_HuftNode = function() {
-    this.e = 0; // number of extra bits or operation
-    this.b = 0; // number of bits in this code or subcode
-
-    // union
-    this.n = 0; // literal, length base, or distance base
-    this.t = null; // (zip_HuftNode) pointer to next level of table
-}
-
-var zip_HuftBuild = function(b,	// code lengths in bits (all assumed <= BMAX)
-		       n,	// number of codes (assumed <= N_MAX)
-		       s,	// number of simple-valued codes (0..s-1)
-		       d,	// list of base values for non-simple codes
-		       e,	// list of extra bits for non-simple codes
-		       mm	// maximum lookup bits
-		   ) {
-    this.BMAX = 16;   // maximum bit length of any code
-    this.N_MAX = 288; // maximum number of codes in any set
-    this.status = 0;	// 0: success, 1: incomplete table, 2: bad input
-    this.root = null;	// (zip_HuftList) starting table
-    this.m = 0;		// maximum lookup bits, returns actual
-
-/* Given a list of code lengths and a maximum table size, make a set of
-   tables to decode that set of codes.	Return zero on success, one if
-   the given code set is incomplete (the tables are still built in this
-   case), two if the input is invalid (all zero length codes or an
-   oversubscribed set of lengths), and three if not enough memory.
-   The code with value 256 is special, and the tables are constructed
-   so that no bits beyond that code are fetched when that code is
-   decoded. */
-    {
-	var a;			// counter for codes of length k
-	var c = new Array(this.BMAX+1);	// bit length count table
-	var el;			// length of EOB code (value 256)
-	var f;			// i repeats in table every f entries
-	var g;			// maximum code length
-	var h;			// table level
-	var i;			// counter, current code
-	var j;			// counter
-	var k;			// number of bits in current code
-	var lx = new Array(this.BMAX+1);	// stack of bits per table
-	var p;			// pointer into c[], b[], or v[]
-	var pidx;		// index of p
-	var q;			// (zip_HuftNode) points to current table
-	var r = new zip_HuftNode(); // table entry for structure assignment
-	var u = new Array(this.BMAX); // zip_HuftNode[BMAX][]  table stack
-	var v = new Array(this.N_MAX); // values in order of bit length
-	var w;
-	var x = new Array(this.BMAX+1);// bit offsets, then code stack
-	var xp;			// pointer into x or c
-	var y;			// number of dummy codes added
-	var z;			// number of entries in current table
-	var o;
-	var tail;		// (zip_HuftList)
-
-	tail = this.root = null;
-	for(i = 0; i < c.length; i++)
-	    c[i] = 0;
-	for(i = 0; i < lx.length; i++)
-	    lx[i] = 0;
-	for(i = 0; i < u.length; i++)
-	    u[i] = null;
-	for(i = 0; i < v.length; i++)
-	    v[i] = 0;
-	for(i = 0; i < x.length; i++)
-	    x[i] = 0;
-
-	// Generate counts for each bit length
-	el = n > 256 ? b[256] : this.BMAX; // set length of EOB code, if any
-	p = b; pidx = 0;
-	i = n;
-	do {
-	    c[p[pidx]]++;	// assume all entries <= BMAX
-	    pidx++;
-	} while(--i > 0);
-	if(c[0] == n) {	// null input--all zero length codes
-	    this.root = null;
-	    this.m = 0;
-	    this.status = 0;
-	    return;
-	}
-
-	// Find minimum and maximum length, bound *m by those
-	for(j = 1; j <= this.BMAX; j++)
-	    if(c[j] != 0)
-		break;
-	k = j;			// minimum code length
-	if(mm < j)
-	    mm = j;
-	for(i = this.BMAX; i != 0; i--)
-	    if(c[i] != 0)
-		break;
-	g = i;			// maximum code length
-	if(mm > i)
-	    mm = i;
-
-	// Adjust last length count to fill out codes, if needed
-	for(y = 1 << j; j < i; j++, y <<= 1)
-	    if((y -= c[j]) < 0) {
-		this.status = 2;	// bad input: more codes than bits
-		this.m = mm;
-		return;
-	    }
-	if((y -= c[i]) < 0) {
-	    this.status = 2;
-	    this.m = mm;
-	    return;
-	}
-	c[i] += y;
-
-	// Generate starting offsets into the value table for each length
-	x[1] = j = 0;
-	p = c;
-	pidx = 1;
-	xp = 2;
-	while(--i > 0)		// note that i == g from above
-	    x[xp++] = (j += p[pidx++]);
-
-	// Make a table of values in order of bit lengths
-	p = b; pidx = 0;
-	i = 0;
-	do {
-	    if((j = p[pidx++]) != 0)
-		v[x[j]++] = i;
-	} while(++i < n);
-	n = x[g];			// set n to length of v
-
-	// Generate the Huffman codes and for each, make the table entries
-	x[0] = i = 0;		// first Huffman code is zero
-	p = v; pidx = 0;		// grab values in bit order
-	h = -1;			// no tables yet--level -1
-	w = lx[0] = 0;		// no bits decoded yet
-	q = null;			// ditto
-	z = 0;			// ditto
-
-	// go through the bit lengths (k already is bits in shortest code)
-	for(; k <= g; k++) {
-	    a = c[k];
-	    while(a-- > 0) {
-		// here i is the Huffman code of length k bits for value p[pidx]
-		// make tables up to required level
-		while(k > w + lx[1 + h]) {
-		    w += lx[1 + h]; // add bits already decoded
-		    h++;
-
-		    // compute minimum size table less than or equal to *m bits
-		    z = (z = g - w) > mm ? mm : z; // upper limit
-		    if((f = 1 << (j = k - w)) > a + 1) { // try a k-w bit table
-			// too few codes for k-w bit table
-			f -= a + 1;	// deduct codes from patterns left
-			xp = k;
-			while(++j < z) { // try smaller tables up to z bits
-			    if((f <<= 1) <= c[++xp])
-				break;	// enough codes to use up j bits
-			    f -= c[xp];	// else deduct codes from patterns
-			}
-		    }
-		    if(w + j > el && w < el)
-			j = el - w;	// make EOB code end at table
-		    z = 1 << j;	// table entries for j-bit table
-		    lx[1 + h] = j; // set table size in stack
-
-		    // allocate and link in new table
-		    q = new Array(z);
-		    for(o = 0; o < z; o++) {
-			q[o] = new zip_HuftNode();
-		    }
-
-		    if(tail == null)
-			tail = this.root = new zip_HuftList();
-		    else
-			tail = tail.next = new zip_HuftList();
-		    tail.next = null;
-		    tail.list = q;
-		    u[h] = q;	// table starts after link
-
-		    /* connect to last table, if there is one */
-		    if(h > 0) {
-			x[h] = i;		// save pattern for backing up
-			r.b = lx[h];	// bits to dump before this table
-			r.e = 16 + j;	// bits in this table
-			r.t = q;		// pointer to this table
-			j = (i & ((1 << w) - 1)) >> (w - lx[h]);
-			u[h-1][j].e = r.e;
-			u[h-1][j].b = r.b;
-			u[h-1][j].n = r.n;
-			u[h-1][j].t = r.t;
-		    }
-		}
-
-		// set up table entry in r
-		r.b = k - w;
-		if(pidx >= n)
-		    r.e = 99;		// out of values--invalid code
-		else if(p[pidx] < s) {
-		    r.e = (p[pidx] < 256 ? 16 : 15); // 256 is end-of-block code
-		    r.n = p[pidx++];	// simple code is just the value
-		} else {
-		    r.e = e[p[pidx] - s];	// non-simple--look up in lists
-		    r.n = d[p[pidx++] - s];
-		}
-
-		// fill code-like entries with r //
-		f = 1 << (k - w);
-		for(j = i >> w; j < z; j += f) {
-		    q[j].e = r.e;
-		    q[j].b = r.b;
-		    q[j].n = r.n;
-		    q[j].t = r.t;
-		}
-
-		// backwards increment the k-bit code i
-		for(j = 1 << (k - 1); (i & j) != 0; j >>= 1)
-		    i ^= j;
-		i ^= j;
-
-		// backup over finished tables
-		while((i & ((1 << w) - 1)) != x[h]) {
-		    w -= lx[h];		// don't need to update q
-		    h--;
-		}
-	    }
-	}
-
-	/* return actual size of base table */
-	this.m = lx[1];
-
-	/* Return true (1) if we were given an incomplete table */
-	this.status = ((y != 0 && g != 1) ? 1 : 0);
-    } /* end of constructor */
-}
-
-
-/* routines (inflate) */
-
-var zip_GET_BYTE = function() {
-    if(zip_inflate_data.length == zip_inflate_pos)
-	return -1;
-    return zip_inflate_data.charCodeAt(zip_inflate_pos++) & 0xff;
-}
-
-var zip_NEEDBITS = function(n) {
-    while(zip_bit_len < n) {
-	zip_bit_buf |= zip_GET_BYTE() << zip_bit_len;
-	zip_bit_len += 8;
-    }
-}
-
-var zip_GETBITS = function(n) {
-    return zip_bit_buf & zip_MASK_BITS[n];
-}
-
-var zip_DUMPBITS = function(n) {
-    zip_bit_buf >>= n;
-    zip_bit_len -= n;
-}
-
-var zip_inflate_codes = function(buff, off, size) {
-    /* inflate (decompress) the codes in a deflated (compressed) block.
-       Return an error code or zero if it all goes ok. */
-    var e;		// table entry flag/number of extra bits
-    var t;		// (zip_HuftNode) pointer to table entry
-    var n;
-
-    if(size == 0)
-      return 0;
-
-    // inflate the coded data
-    n = 0;
-    for(;;) {			// do until end of block
-	zip_NEEDBITS(zip_bl);
-	t = zip_tl.list[zip_GETBITS(zip_bl)];
-	e = t.e;
-	while(e > 16) {
-	    if(e == 99)
-		return -1;
-	    zip_DUMPBITS(t.b);
-	    e -= 16;
-	    zip_NEEDBITS(e);
-	    t = t.t[zip_GETBITS(e)];
-	    e = t.e;
-	}
-	zip_DUMPBITS(t.b);
-
-	if(e == 16) {		// then it's a literal
-	    zip_wp &= zip_WSIZE - 1;
-	    buff[off + n++] = zip_slide[zip_wp++] = t.n;
-	    if(n == size)
-		return size;
-	    continue;
-	}
-
-	// exit if end of block
-	if(e == 15)
-	    break;
-
-	// it's an EOB or a length
-
-	// get length of block to copy
-	zip_NEEDBITS(e);
-	zip_copy_leng = t.n + zip_GETBITS(e);
-	zip_DUMPBITS(e);
-
-	// decode distance of block to copy
-	zip_NEEDBITS(zip_bd);
-	t = zip_td.list[zip_GETBITS(zip_bd)];
-	e = t.e;
-
-	while(e > 16) {
-	    if(e == 99)
-		return -1;
-	    zip_DUMPBITS(t.b);
-	    e -= 16;
-	    zip_NEEDBITS(e);
-	    t = t.t[zip_GETBITS(e)];
-	    e = t.e;
-	}
-	zip_DUMPBITS(t.b);
-	zip_NEEDBITS(e);
-	zip_copy_dist = zip_wp - t.n - zip_GETBITS(e);
-	zip_DUMPBITS(e);
-
-	// do the copy
-	while(zip_copy_leng > 0 && n < size) {
-	    zip_copy_leng--;
-	    zip_copy_dist &= zip_WSIZE - 1;
-	    zip_wp &= zip_WSIZE - 1;
-	    buff[off + n++] = zip_slide[zip_wp++]
-		= zip_slide[zip_copy_dist++];
-	}
-
-	if(n == size)
-	    return size;
-    }
-
-    zip_method = -1; // done
-    return n;
-}
-
-var zip_inflate_stored = function(buff, off, size) {
-    /* "decompress" an inflated type 0 (stored) block. */
-    var n;
-
-    // go to byte boundary
-    n = zip_bit_len & 7;
-    zip_DUMPBITS(n);
-
-    // get the length and its complement
-    zip_NEEDBITS(16);
-    n = zip_GETBITS(16);
-    zip_DUMPBITS(16);
-    zip_NEEDBITS(16);
-    if(n != ((~zip_bit_buf) & 0xffff))
-	return -1;			// error in compressed data
-    zip_DUMPBITS(16);
-
-    // read and output the compressed data
-    zip_copy_leng = n;
-
-    n = 0;
-    while(zip_copy_leng > 0 && n < size) {
-	zip_copy_leng--;
-	zip_wp &= zip_WSIZE - 1;
-	zip_NEEDBITS(8);
-	buff[off + n++] = zip_slide[zip_wp++] =
-	    zip_GETBITS(8);
-	zip_DUMPBITS(8);
-    }
-
-    if(zip_copy_leng == 0)
-      zip_method = -1; // done
-    return n;
-}
-
-var zip_inflate_fixed = function(buff, off, size) {
-    /* decompress an inflated type 1 (fixed Huffman codes) block.  We should
-       either replace this with a custom decoder, or at least precompute the
-       Huffman tables. */
-
-    // if first time, set up tables for fixed blocks
-    if(zip_fixed_tl == null) {
-	var i;			// temporary variable
-	var l = new Array(288);	// length list for huft_build
-	var h;	// zip_HuftBuild
-
-	// literal table
-	for(i = 0; i < 144; i++)
-	    l[i] = 8;
-	for(; i < 256; i++)
-	    l[i] = 9;
-	for(; i < 280; i++)
-	    l[i] = 7;
-	for(; i < 288; i++)	// make a complete, but wrong code set
-	    l[i] = 8;
-	zip_fixed_bl = 7;
-
-	h = new zip_HuftBuild(l, 288, 257, zip_cplens, zip_cplext,
-			      zip_fixed_bl);
-	if(h.status != 0) {
-	    alert("HufBuild error: "+h.status);
-	    return -1;
-	}
-	zip_fixed_tl = h.root;
-	zip_fixed_bl = h.m;
-
-	// distance table
-	for(i = 0; i < 30; i++)	// make an incomplete code set
-	    l[i] = 5;
-	zip_fixed_bd = 5;
-
-	h = new zip_HuftBuild(l, 30, 0, zip_cpdist, zip_cpdext, zip_fixed_bd);
-	if(h.status > 1) {
-	    zip_fixed_tl = null;
-	    alert("HufBuild error: "+h.status);
-	    return -1;
-	}
-	zip_fixed_td = h.root;
-	zip_fixed_bd = h.m;
-    }
-
-    zip_tl = zip_fixed_tl;
-    zip_td = zip_fixed_td;
-    zip_bl = zip_fixed_bl;
-    zip_bd = zip_fixed_bd;
-    return zip_inflate_codes(buff, off, size);
-}
-
-var zip_inflate_dynamic = function(buff, off, size) {
-    // decompress an inflated type 2 (dynamic Huffman codes) block.
-    var i;		// temporary variables
-    var j;
-    var l;		// last length
-    var n;		// number of lengths to get
-    var t;		// (zip_HuftNode) literal/length code table
-    var nb;		// number of bit length codes
-    var nl;		// number of literal/length codes
-    var nd;		// number of distance codes
-    var ll = new Array(286+30); // literal/length and distance code lengths
-    var h;		// (zip_HuftBuild)
-
-    for(i = 0; i < ll.length; i++)
-	ll[i] = 0;
-
-    // read in table lengths
-    zip_NEEDBITS(5);
-    nl = 257 + zip_GETBITS(5);	// number of literal/length codes
-    zip_DUMPBITS(5);
-    zip_NEEDBITS(5);
-    nd = 1 + zip_GETBITS(5);	// number of distance codes
-    zip_DUMPBITS(5);
-    zip_NEEDBITS(4);
-    nb = 4 + zip_GETBITS(4);	// number of bit length codes
-    zip_DUMPBITS(4);
-    if(nl > 286 || nd > 30)
-      return -1;		// bad lengths
-
-    // read in bit-length-code lengths
-    for(j = 0; j < nb; j++)
-    {
-	zip_NEEDBITS(3);
-	ll[zip_border[j]] = zip_GETBITS(3);
-	zip_DUMPBITS(3);
-    }
-    for(; j < 19; j++)
-	ll[zip_border[j]] = 0;
-
-    // build decoding table for trees--single level, 7 bit lookup
-    zip_bl = 7;
-    h = new zip_HuftBuild(ll, 19, 19, null, null, zip_bl);
-    if(h.status != 0)
-	return -1;	// incomplete code set
-
-    zip_tl = h.root;
-    zip_bl = h.m;
-
-    // read in literal and distance code lengths
-    n = nl + nd;
-    i = l = 0;
-    while(i < n) {
-	zip_NEEDBITS(zip_bl);
-	t = zip_tl.list[zip_GETBITS(zip_bl)];
-	j = t.b;
-	zip_DUMPBITS(j);
-	j = t.n;
-	if(j < 16)		// length of code in bits (0..15)
-	    ll[i++] = l = j;	// save last length in l
-	else if(j == 16) {	// repeat last length 3 to 6 times
-	    zip_NEEDBITS(2);
-	    j = 3 + zip_GETBITS(2);
-	    zip_DUMPBITS(2);
-	    if(i + j > n)
-		return -1;
-	    while(j-- > 0)
-		ll[i++] = l;
-	} else if(j == 17) {	// 3 to 10 zero length codes
-	    zip_NEEDBITS(3);
-	    j = 3 + zip_GETBITS(3);
-	    zip_DUMPBITS(3);
-	    if(i + j > n)
-		return -1;
-	    while(j-- > 0)
-		ll[i++] = 0;
-	    l = 0;
-	} else {		// j == 18: 11 to 138 zero length codes
-	    zip_NEEDBITS(7);
-	    j = 11 + zip_GETBITS(7);
-	    zip_DUMPBITS(7);
-	    if(i + j > n)
-		return -1;
-	    while(j-- > 0)
-		ll[i++] = 0;
-	    l = 0;
-	}
-    }
-
-    // build the decoding tables for literal/length and distance codes
-    zip_bl = zip_lbits;
-    h = new zip_HuftBuild(ll, nl, 257, zip_cplens, zip_cplext, zip_bl);
-    if(zip_bl == 0)	// no literals or lengths
-	h.status = 1;
-    if(h.status != 0) {
-	if(h.status == 1)
-	    ;// **incomplete literal tree**
-	return -1;		// incomplete code set
-    }
-    zip_tl = h.root;
-    zip_bl = h.m;
-
-    for(i = 0; i < nd; i++)
-	ll[i] = ll[i + nl];
-    zip_bd = zip_dbits;
-    h = new zip_HuftBuild(ll, nd, 0, zip_cpdist, zip_cpdext, zip_bd);
-    zip_td = h.root;
-    zip_bd = h.m;
-
-    if(zip_bd == 0 && nl > 257) {   // lengths but no distances
-	// **incomplete distance tree**
-	return -1;
-    }
-
-    if(h.status == 1) {
-	;// **incomplete distance tree**
-    }
-    if(h.status != 0)
-	return -1;
-
-    // decompress until an end-of-block code
-    return zip_inflate_codes(buff, off, size);
-}
-
-var zip_inflate_start = function() {
-    var i;
-
-    if(zip_slide == null)
-	zip_slide = new Array(2 * zip_WSIZE);
-    zip_wp = 0;
-    zip_bit_buf = 0;
-    zip_bit_len = 0;
-    zip_method = -1;
-    zip_eof = false;
-    zip_copy_leng = zip_copy_dist = 0;
-    zip_tl = null;
-}
-
-var zip_inflate_internal = function(buff, off, size) {
-    // decompress an inflated entry
-    var n, i;
-
-    n = 0;
-    while(n < size) {
-	if(zip_eof && zip_method == -1)
-	    return n;
-
-	if(zip_copy_leng > 0) {
-	    if(zip_method != zip_STORED_BLOCK) {
-		// STATIC_TREES or DYN_TREES
-		while(zip_copy_leng > 0 && n < size) {
-		    zip_copy_leng--;
-		    zip_copy_dist &= zip_WSIZE - 1;
-		    zip_wp &= zip_WSIZE - 1;
-		    buff[off + n++] = zip_slide[zip_wp++] =
-			zip_slide[zip_copy_dist++];
-		}
-	    } else {
-		while(zip_copy_leng > 0 && n < size) {
-		    zip_copy_leng--;
-		    zip_wp &= zip_WSIZE - 1;
-		    zip_NEEDBITS(8);
-		    buff[off + n++] = zip_slide[zip_wp++] = zip_GETBITS(8);
-		    zip_DUMPBITS(8);
-		}
-		if(zip_copy_leng == 0)
-		    zip_method = -1; // done
-	    }
-	    if(n == size)
-		return n;
-	}
-
-	if(zip_method == -1) {
-	    if(zip_eof)
-		break;
-
-	    // read in last block bit
-	    zip_NEEDBITS(1);
-	    if(zip_GETBITS(1) != 0)
-		zip_eof = true;
-	    zip_DUMPBITS(1);
-
-	    // read in block type
-	    zip_NEEDBITS(2);
-	    zip_method = zip_GETBITS(2);
-	    zip_DUMPBITS(2);
-	    zip_tl = null;
-	    zip_copy_leng = 0;
-	}
-
-	switch(zip_method) {
-	  case 0: // zip_STORED_BLOCK
-	    i = zip_inflate_stored(buff, off + n, size - n);
-	    break;
-
-	  case 1: // zip_STATIC_TREES
-	    if(zip_tl != null)
-		i = zip_inflate_codes(buff, off + n, size - n);
-	    else
-		i = zip_inflate_fixed(buff, off + n, size - n);
-	    break;
-
-	  case 2: // zip_DYN_TREES
-	    if(zip_tl != null)
-		i = zip_inflate_codes(buff, off + n, size - n);
-	    else
-		i = zip_inflate_dynamic(buff, off + n, size - n);
-	    break;
-
-	  default: // error
-	    i = -1;
-	    break;
-	}
-
-	if(i == -1) {
-	    if(zip_eof)
-		return 0;
-	    return -1;
-	}
-	n += i;
-    }
-    return n;
-}
-
-var zip_inflate = function(str) {
-    var i, j;
-
-    zip_inflate_start();
-    zip_inflate_data = str;
-    zip_inflate_pos = 0;
-
-    var buff = new Array(1024);
-    var aout = [];
-    while((i = zip_inflate_internal(buff, 0, buff.length)) > 0) {
-	var cbuf = new Array(i);
-	for(j = 0; j < i; j++){
-	    cbuf[j] = String.fromCharCode(buff[j]);
-	}
-	aout[aout.length] = cbuf.join("");
-    }
-    zip_inflate_data = null; // G.C.
-    return aout.join("");
-}
-
-if (! window.RawDeflate) RawDeflate = {};
-RawDeflate.inflate = zip_inflate;
-
-})();

+ 58 - 35
editor/js/libs/ui.js

@@ -93,9 +93,6 @@ UI.Panel = function () {
 
 	var dom = document.createElement( 'div' );
 	dom.className = 'Panel';
-	dom.style.userSelect = 'none';
-	dom.style.WebkitUserSelect = 'none';
-	dom.style.MozUserSelect = 'none';
 
 	this.dom = dom;
 
@@ -327,15 +324,51 @@ UI.FancySelect = function () {
 
 	var dom = document.createElement( 'div' );
 	dom.className = 'FancySelect';
-	dom.style.background = '#fff';
-	dom.style.border = '1px solid #ccc';
-	dom.style.padding = '0';
-	dom.style.cursor = 'default';
-	dom.style.overflow = 'auto';
+	dom.tabIndex = 0;	// keyup event is ignored without setting tabIndex
+
+	// Broadcast for object selection after arrow navigation
+	var changeEvent = document.createEvent('HTMLEvents');
+	changeEvent.initEvent( 'change', true, true );
+
+	// Prevent native scroll behavior
+	dom.addEventListener( 'keydown', function (event) {
+
+		switch ( event.keyCode ) {
+			case 38: // up
+			case 40: // down
+				event.preventDefault();
+				event.stopPropagation();
+				break;
+		}
+
+	}, false);
+
+	// Keybindings to support arrow navigation
+	dom.addEventListener( 'keyup', function (event) {
+
+		switch ( event.keyCode ) {
+			case 38: // up
+			case 40: // down
+				scope.selectedIndex += ( event.keyCode == 38 ) ? -1 : 1;
+
+				if ( scope.selectedIndex >= 0 && scope.selectedIndex < scope.options.length ) {
+
+					// Highlight selected dom elem and scroll parent if needed
+					scope.setValue( scope.options[ scope.selectedIndex ].value );
+
+					// Invoke object/helper/mesh selection logic
+					scope.dom.dispatchEvent( changeEvent );
+
+				}
+
+				break;
+		}
+	}, false);
 
 	this.dom = dom;
 
 	this.options = [];
+	this.selectedIndex = -1;
 	this.selectedValue = null;
 
 	return this;
@@ -361,9 +394,8 @@ UI.FancySelect.prototype.setOptions = function ( options ) {
 
 	for ( var key in options ) {
 
-		var option = document.createElement( 'div' );
-		option.style.padding = '4px';
-		option.style.whiteSpace = 'nowrap';
+		var option = document.createElement('div');
+		option.className = 'option';
 		option.innerHTML = options[ key ];
 		option.value = key;
 		scope.dom.appendChild( option );
@@ -399,23 +431,29 @@ UI.FancySelect.prototype.setValue = function ( value ) {
 
 		if ( element.value === value ) {
 
-			element.style.backgroundColor = '#f0f0f0';
+			element.classList.add( 'active' );
 
 			// scroll into view
 
-			var y = i * element.clientHeight;
-			var scrollTop = this.dom.scrollTop;
-			var domHeight = this.dom.clientHeight;
+			var y = element.offsetTop - this.dom.offsetTop;
+			var bottomY = y + element.offsetHeight;
+			var minScroll = bottomY - this.dom.offsetHeight;
+
+			if ( this.dom.scrollTop > y ) {
 
-			if ( y < scrollTop || y > scrollTop + domHeight ) {
+				this.dom.scrollTop = y
 
-				this.dom.scrollTop = y;
+			} else if ( this.dom.scrollTop < minScroll ) {
+
+				this.dom.scrollTop = minScroll;
 
 			}
 
+			this.selectedIndex = i;
+
 		} else {
 
-			element.style.backgroundColor = '';
+			element.classList.remove( 'active' );
 
 		}
 
@@ -427,6 +465,7 @@ UI.FancySelect.prototype.setValue = function ( value ) {
 
 };
 
+
 // Checkbox
 
 UI.Checkbox = function ( boolean ) {
@@ -532,12 +571,6 @@ UI.Number = function ( number ) {
 
 	var dom = document.createElement( 'input' );
 	dom.className = 'Number';
-	dom.style.color = '#0080f0';
-	dom.style.fontSize = '12px';
-	dom.style.backgroundColor = 'transparent';
-	dom.style.border = '1px solid transparent';
-	dom.style.padding = '2px';
-	dom.style.cursor = 'col-resize';
 	dom.value = '0.00';
 
 	dom.addEventListener( 'keydown', function ( event ) {
@@ -611,11 +644,7 @@ UI.Number = function ( number ) {
 
 		var number = parseFloat( dom.value );
 
-		if ( isNaN( number ) === false ) {
-
-			dom.value = number;
-
-		}
+		dom.value = isNaN( number ) === false ? number : 0;
 
 	};
 
@@ -692,12 +721,6 @@ UI.Integer = function ( number ) {
 
 	var dom = document.createElement( 'input' );
 	dom.className = 'Number';
-	dom.style.color = '#0080f0';
-	dom.style.fontSize = '12px';
-	dom.style.backgroundColor = 'transparent';
-	dom.style.border = '1px solid transparent';
-	dom.style.padding = '2px';
-	dom.style.cursor = 'col-resize';
 	dom.value = '0.00';
 
 	dom.addEventListener( 'keydown', function ( event ) {

+ 2 - 2
examples/canvas_interactive_cubes.html

@@ -72,7 +72,7 @@
 				}
 
 				var PI2 = Math.PI * 2;
-				particleMaterial = new THREE.ParticleCanvasMaterial( {
+				particleMaterial = new THREE.SpriteCanvasMaterial( {
 
 					color: 0x000000,
 					program: function ( context ) {
@@ -129,7 +129,7 @@
 
 					intersects[ 0 ].object.material.color.setHex( Math.random() * 0xffffff );
 
-					var particle = new THREE.Particle( particleMaterial );
+					var particle = new THREE.Sprite( particleMaterial );
 					particle.position = intersects[ 0 ].point;
 					particle.scale.x = particle.scale.y = 8;
 					scene.add( particle );

+ 2 - 2
examples/canvas_interactive_lines.html

@@ -58,8 +58,8 @@
 
 				}
 
-				sphereInter = new THREE.Particle(
-					new THREE.ParticleCanvasMaterial( {
+				sphereInter = new THREE.Sprite(
+					new THREE.SpriteCanvasMaterial( {
 						color: 0xff0000,
 						program: program }
 					)

+ 1 - 1
examples/canvas_interactive_particles.html

@@ -68,7 +68,7 @@
 
 				for ( var i = 0; i < 100; i ++ ) {
 
-					var particle = new THREE.Particle( new THREE.ParticleCanvasMaterial( { color: Math.random() * 0x808080 + 0x808080, program: programStroke } ) );
+					var particle = new THREE.Sprite( new THREE.SpriteCanvasMaterial( { color: Math.random() * 0x808080 + 0x808080, program: programStroke } ) );
 					particle.position.x = Math.random() * 800 - 400;
 					particle.position.y = Math.random() * 800 - 400;
 					particle.position.z = Math.random() * 800 - 400;

+ 3 - 3
examples/canvas_lights_pointlights.html

@@ -80,15 +80,15 @@
 
 				}
 
-				particle1 = new THREE.Particle( new THREE.ParticleCanvasMaterial( { color: 0xff0040, program: program } ) );
+				particle1 = new THREE.Sprite( new THREE.SpriteCanvasMaterial( { color: 0xff0040, program: program } ) );
 				particle1.scale.x = particle1.scale.y = particle1.scale.z = 0.5;
 				scene.add( particle1 );
 
-				particle2 = new THREE.Particle( new THREE.ParticleCanvasMaterial( { color: 0x0040ff, program: program } ) );
+				particle2 = new THREE.Sprite( new THREE.SpriteCanvasMaterial( { color: 0x0040ff, program: program } ) );
 				particle2.scale.x = particle2.scale.y = particle2.scale.z = 0.5;
 				scene.add( particle2 );
 
-				particle3 = new THREE.Particle( new THREE.ParticleCanvasMaterial( { color: 0x80ff80, program: program } ) );
+				particle3 = new THREE.Sprite( new THREE.SpriteCanvasMaterial( { color: 0x80ff80, program: program } ) );
 				particle3.scale.x = particle3.scale.y = particle3.scale.z = 0.5;
 				scene.add( particle3 );
 

+ 3 - 3
examples/canvas_lights_pointlights_smooth.html

@@ -80,15 +80,15 @@
 
 				}
 
-				particle1 = new THREE.Particle( new THREE.ParticleCanvasMaterial( { color: 0xff0040, program: program } ) );
+				particle1 = new THREE.Sprite( new THREE.SpriteCanvasMaterial( { color: 0xff0040, program: program } ) );
 				particle1.scale.x = particle1.scale.y = particle1.scale.z = 0.5;
 				scene.add( particle1 );
 
-				particle2 = new THREE.Particle( new THREE.ParticleCanvasMaterial( { color: 0x0040ff, program: program } ) );
+				particle2 = new THREE.Sprite( new THREE.SpriteCanvasMaterial( { color: 0x0040ff, program: program } ) );
 				particle2.scale.x = particle2.scale.y = particle2.scale.z = 0.5;
 				scene.add( particle2 );
 
-				particle3 = new THREE.Particle( new THREE.ParticleCanvasMaterial( { color: 0x80ff80, program: program } ) );
+				particle3 = new THREE.Sprite( new THREE.SpriteCanvasMaterial( { color: 0x80ff80, program: program } ) );
 				particle3.scale.x = particle3.scale.y = particle3.scale.z = 0.5;
 				scene.add( particle3 );
 

+ 2 - 2
examples/canvas_lines.html

@@ -56,7 +56,7 @@
 				// particles
 
 				var PI2 = Math.PI * 2;
-				var material = new THREE.ParticleCanvasMaterial( {
+				var material = new THREE.SpriteCanvasMaterial( {
 
 					color: 0xffffff,
 					program: function ( context ) {
@@ -73,7 +73,7 @@
 
 				for ( var i = 0; i < 100; i ++ ) {
 
-					particle = new THREE.Particle( material );
+					particle = new THREE.Sprite( material );
 					particle.position.x = Math.random() * 2 - 1;
 					particle.position.y = Math.random() * 2 - 1;
 					particle.position.z = Math.random() * 2 - 1;

+ 2 - 2
examples/canvas_lines_sphere.html

@@ -59,7 +59,7 @@
 				// particles
 
 				var PI2 = Math.PI * 2;
-				var material = new THREE.ParticleCanvasMaterial( {
+				var material = new THREE.SpriteCanvasMaterial( {
 
 					color: 0xffffff,
 					program: function ( context ) {
@@ -74,7 +74,7 @@
 
 				for ( var i = 0; i < 1000; i ++ ) {
 
-					particle = new THREE.Particle( material );
+					particle = new THREE.Sprite( material );
 					particle.position.x = Math.random() * 2 - 1;
 					particle.position.y = Math.random() * 2 - 1;
 					particle.position.z = Math.random() * 2 - 1;

+ 1 - 1
examples/canvas_materials.html

@@ -116,7 +116,7 @@
 
 				}
 
-				particleLight = new THREE.Particle( new THREE.ParticleCanvasMaterial( { color: 0xffffff, program: program } ) );
+				particleLight = new THREE.Sprite( new THREE.SpriteCanvasMaterial( { color: 0xffffff, program: program } ) );
 				particleLight.scale.x = particleLight.scale.y = particleLight.scale.z = 4;
 				scene.add( particleLight );
 

+ 2 - 2
examples/canvas_materials_video.html

@@ -122,7 +122,7 @@
 				var amounty = 10;
 
 				var PI2 = Math.PI * 2;
-				var material = new THREE.ParticleCanvasMaterial( {
+				var material = new THREE.SpriteCanvasMaterial( {
 
 					color: 0x0808080,
 					program: function ( context ) {
@@ -139,7 +139,7 @@
 
 					for ( var iy = 0; iy < amounty; iy++ ) {
 
-						particle = new THREE.Particle( material );
+						particle = new THREE.Sprite( material );
 						particle.position.x = ix * separation - ( ( amountx * separation ) / 2 );
 						particle.position.y = -153
 						particle.position.z = iy * separation - ( ( amounty * separation ) / 2 );

+ 2 - 2
examples/canvas_particles_floor.html

@@ -48,13 +48,13 @@
 
 				scene = new THREE.Scene();
 
-				var material = new THREE.ParticleBasicMaterial();
+				var material = new THREE.SpriteMaterial();
 
 				for ( var ix = 0; ix < AMOUNTX; ix++ ) {
 
 					for ( var iy = 0; iy < AMOUNTY; iy++ ) {
 
-						particle = new THREE.Particle( material );
+						particle = new THREE.Sprite( material );
 						particle.scale.y = 4;
 						particle.position.x = ix * SEPARATION - ( ( AMOUNTX * SEPARATION ) / 2 );
 						particle.position.z = iy * SEPARATION - ( ( AMOUNTY * SEPARATION ) / 2 );

+ 6 - 1
examples/canvas_particles_random.html

@@ -58,7 +58,12 @@
 
 				for ( var i = 0; i < 1000; i++ ) {
 
-					particle = new THREE.Particle( new THREE.ParticleCanvasMaterial( { color: Math.random() * 0x808008 + 0x808080, program: program } ) );
+					var material = new THREE.SpriteCanvasMaterial( {
+						color: Math.random() * 0x808008 + 0x808080,
+						program: program
+					} );
+
+					particle = new THREE.Sprite( material );
 					particle.position.x = Math.random() * 2000 - 1000;
 					particle.position.y = Math.random() * 2000 - 1000;
 					particle.position.z = Math.random() * 2000 - 1000;

+ 10 - 5
examples/canvas_particles_shapes.html

@@ -168,13 +168,16 @@
 				var setTargetParticle = function() {
 
 					//hearts circleLines
-					var material = new THREE.ParticleCanvasMaterial( {  program: hearts, blending:THREE.AdditiveBlending } );
+					var material = new THREE.SpriteCanvasMaterial( {
+						program: hearts,
+						blending:THREE.AdditiveBlending
+					} );
 
 					material.color.setHSL(hue, 1, 0.75);
 					hue += 0.001;
 					if (hue>1) hue-=1;
 
-					particle = new THREE.Particle( material );
+					particle = new THREE.Sprite( material );
 
 					particle.scale.x = particle.scale.y = Math.random() * 20 +20;
 					particleCloud.add( particle );
@@ -190,9 +193,11 @@
 
 				};
 
-				var onParticleDead = function(particle) {
+				var onParticleDead = function( particle ) {
+
 					particle.target.visible = false;
-					particleCloud.remove(particle.target);
+					particleCloud.remove( particle.target );
+
 				};
 
 				sparksEmitter = new SPARKS.Emitter(new SPARKS.SteadyCounter(160));
@@ -332,7 +337,7 @@
 				emitterpos.y = -pointOnShape.y * 5 + 400;
 
 				// Pretty cool effect if you enable this
-				//particleCloud.rotation.y += 0.05;
+				// particleCloud.rotation.y += 0.05;
 
 				group.rotation.y += ( targetRotation - group.rotation.y ) * 0.05;
 				renderer.render( scene, camera );

+ 7 - 5
examples/canvas_particles_sprites.html

@@ -45,11 +45,14 @@
 
 				scene = new THREE.Scene();
 
-				var material = new THREE.ParticleBasicMaterial( { map: new THREE.Texture( generateSprite() ), blending: THREE.AdditiveBlending } );
+				var material = new THREE.SpriteMaterial( {
+					map: new THREE.Texture( generateSprite() ),
+					blending: THREE.AdditiveBlending
+				} );
 
 				for ( var i = 0; i < 1000; i++ ) {
 
-					particle = new THREE.Particle( material );
+					particle = new THREE.Sprite( material );
 
 					initParticle( particle, i * 10 );
 
@@ -57,9 +60,8 @@
 				}
 
 				renderer = new THREE.CanvasRenderer();
+				renderer.setClearColor( 0x000040 );
 				renderer.setSize( window.innerWidth, window.innerHeight );
-				renderer.sortElements = false;
-				renderer.setClearColor( 0x0000ff, 0.25 );
 				container.appendChild( renderer.domElement );
 
 				stats = new Stats();
@@ -111,7 +113,7 @@
 
 			function initParticle( particle, delay ) {
 
-				var particle = this instanceof THREE.Particle ? this : particle;
+				var particle = this instanceof THREE.Sprite ? this : particle;
 				var delay = delay !== undefined ? delay : 0;
 
 				particle.position.x = 0;

+ 2 - 2
examples/canvas_particles_waves.html

@@ -51,7 +51,7 @@
 				particles = new Array();
 
 				var PI2 = Math.PI * 2;
-				var material = new THREE.ParticleCanvasMaterial( {
+				var material = new THREE.SpriteCanvasMaterial( {
 
 					color: 0xffffff,
 					program: function ( context ) {
@@ -70,7 +70,7 @@
 
 					for ( var iy = 0; iy < AMOUNTY; iy ++ ) {
 
-						particle = particles[ i ++ ] = new THREE.Particle( material );
+						particle = particles[ i ++ ] = new THREE.Sprite( material );
 						particle.position.x = ix * SEPARATION - ( ( AMOUNTX * SEPARATION ) / 2 );
 						particle.position.z = iy * SEPARATION - ( ( AMOUNTY * SEPARATION ) / 2 );
 						scene.add( particle );

+ 12 - 7
examples/canvas_performance.html

@@ -25,7 +25,7 @@
 
 			var camera, scene, renderer;
 
-			var sphere, plane;
+			var light;
 
 			init();
 			animate();
@@ -35,10 +35,12 @@
 				container = document.createElement( 'div' );
 				document.body.appendChild( container );
 
+				scene = new THREE.Scene();
+
 				camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
 				camera.position.set( 0, 1000, 1000 );
+				camera.lookAt( scene.position );
 
-				scene = new THREE.Scene();
 
 				// Grid
 
@@ -69,7 +71,7 @@
 
 				for ( var i = 0; i < 20; i ++ ) {
 
-					sphere = new THREE.Mesh( geometry, material );
+					var sphere = new THREE.Mesh( geometry, material );
 
 					sphere.position.x = ( i % 5 ) * 200 - 400;
 					sphere.position.z = Math.floor( i / 5 ) * 200 - 400;
@@ -87,12 +89,11 @@
 				directionalLight.position.set( 0, 1, 0 );
 				scene.add( directionalLight );
 
-				var pointLight = new THREE.PointLight( 0xff0000, 1, 500 );
-				scene.add( pointLight );
+				light = new THREE.PointLight( 0xff0000, 1, 500 );
+				scene.add( light );
 
 				renderer = new THREE.CanvasRenderer();
 				renderer.setSize( window.innerWidth, window.innerHeight );
-
 				container.appendChild( renderer.domElement );
 
 				stats = new Stats();
@@ -128,7 +129,11 @@
 
 			function render() {
 
-				camera.lookAt( scene.position );
+				var timer = Date.now() * 0.001;
+
+				light.position.x = Math.cos( timer ) * 1000;
+				light.position.y = 500;
+				light.position.z = Math.sin( timer ) * 1000;
 
 				renderer.render( scene, camera );
 

+ 1 - 0
examples/index.html

@@ -169,6 +169,7 @@
 				"webgl_lines_dashed",
 				"webgl_lines_sphere",
 				"webgl_lines_splines",
+				"webgl_loader_assimp2json",
 				"webgl_loader_collada",
 				"webgl_loader_collada_keyframe",
 				"webgl_loader_ctm",

+ 18 - 5
examples/js/controls/EditorControls.js

@@ -12,6 +12,7 @@ THREE.EditorControls = function ( object, domElement ) {
 	// API
 
 	this.enabled = true;
+	this.center = new THREE.Vector3();
 
 	// internals
 
@@ -21,7 +22,7 @@ THREE.EditorControls = function ( object, domElement ) {
 	var STATE = { NONE: -1, ROTATE: 0, ZOOM: 1, PAN: 2 };
 	var state = STATE.NONE;
 
-	var center = new THREE.Vector3();
+	var center = this.center;
 	var normalMatrix = new THREE.Matrix3();
 	var pointer = new THREE.Vector2();
 	var pointerOld = new THREE.Vector2();
@@ -30,9 +31,21 @@ THREE.EditorControls = function ( object, domElement ) {
 
 	var changeEvent = { type: 'change' };
 
-	this.focus = function ( target ) {
+	this.focus = function ( target, frame ) {
+
+		var scale = new THREE.Vector3();
+		target.matrixWorld.decompose( center, new THREE.Quaternion(), scale );
+
+		if ( frame && target.geometry ) {
+
+			scale = ( scale.x + scale.y + scale.z ) / 3;
+			center.add(target.geometry.boundingSphere.center.clone().multiplyScalar( scale ));
+			var radius = target.geometry.boundingSphere.radius * ( scale );
+			var pos = object.position.clone().sub( center ).normalize().multiplyScalar( radius * 2 );
+			object.position.copy( center ).add( pos );
+
+		}
 
-		center.getPositionFromMatrix( target.matrixWorld );
 		object.lookAt( center );
 
 		scope.dispatchEvent( changeEvent );
@@ -121,6 +134,7 @@ THREE.EditorControls = function ( object, domElement ) {
 		domElement.addEventListener( 'mousemove', onMouseMove, false );
 		domElement.addEventListener( 'mouseup', onMouseUp, false );
 		domElement.addEventListener( 'mouseout', onMouseUp, false );
+		domElement.addEventListener( 'dblclick', onMouseUp, false );
 
 	}
 
@@ -155,11 +169,10 @@ THREE.EditorControls = function ( object, domElement ) {
 
 	function onMouseUp( event ) {
 
-		if ( scope.enabled === false ) return;
-
 		domElement.removeEventListener( 'mousemove', onMouseMove, false );
 		domElement.removeEventListener( 'mouseup', onMouseUp, false );
 		domElement.removeEventListener( 'mouseout', onMouseUp, false );
+		domElement.removeEventListener( 'dblclick', onMouseUp, false );
 
 		state = STATE.NONE;
 

+ 1 - 1
examples/js/controls/PathControls.js

@@ -246,7 +246,7 @@ THREE.PathControls = function ( object, domElement ) {
 			particleGeo = createSplineGeometry( spline, 10 ),
 			lineMat = new THREE.LineBasicMaterial( { color: 0xff0000, linewidth: 3 } ),
 			lineObj = new THREE.Line( lineGeo, lineMat ),
-			particleObj = new THREE.ParticleSystem( particleGeo, new THREE.ParticleBasicMaterial( { color: 0xffaa00, size: 3 } ) );
+			particleObj = new THREE.ParticleSystem( particleGeo, new THREE.ParticleSystemMaterial( { color: 0xffaa00, size: 3 } ) );
 
 		lineObj.scale.set( 1, 1, 1 );
 		parent.add( lineObj );

+ 1 - 1
examples/js/controls/PointerLockControls.js

@@ -88,7 +88,7 @@ THREE.PointerLockControls = function ( camera ) {
 				break;
 
 			case 40: // down
-			case 83: // a
+			case 83: // s
 				moveBackward = false;
 				break;
 

+ 295 - 181
examples/js/controls/TransformControls.js

@@ -10,7 +10,7 @@ THREE.TransformGizmoMaterial = function ( parameters ) {
 
 	this.depthTest = false;
 	this.depthWrite = false;
-	this.side = THREE.DoubleSide;
+	this.side = THREE.FrontSide;
 	this.transparent = true;
 
 	this.setValues( parameters );
@@ -19,6 +19,21 @@ THREE.TransformGizmoMaterial = function ( parameters ) {
 
 THREE.TransformGizmoMaterial.prototype = Object.create( THREE.MeshBasicMaterial.prototype );
 
+THREE.TransformGizmoLineMaterial = function ( parameters ) {
+
+	THREE.MeshBasicMaterial.call( this );
+
+	this.depthTest = false;
+	this.depthWrite = false;
+	this.transparent = true;
+	this.linewidth = 1;
+
+	this.setValues( parameters );
+
+}
+
+THREE.TransformGizmoLineMaterial.prototype = Object.create( THREE.LineBasicMaterial.prototype );
+
 THREE.TransformGizmo = function () {
 
 	this.handleGizmos = {
@@ -40,16 +55,19 @@ THREE.TransformGizmo = function () {
 
 	var showPickers = false; //debug
 	var showActivePlane = false; //debug
+	this.activePlane = undefined;
 
 	this.init = function () {
 
 		THREE.Object3D.call( this );
 
 		this.handles = new THREE.Object3D();
+		this.lines = new THREE.Object3D();
 		this.pickers = new THREE.Object3D();
 		this.planes = new THREE.Object3D();
 
 		this.add(this.handles);
+		this.add(this.lines);
 		this.add(this.pickers);
 		this.add(this.planes);
 
@@ -104,6 +122,18 @@ THREE.TransformGizmo = function () {
 
 		}
 
+		if ( this.lineGizmos ) {
+
+			for ( var i in this.lineGizmos ) {
+
+				var line = this.lineGizmos[i][0];
+				line.name = i;
+				this.lines.add( line );
+
+			}
+
+		}
+
 		// reset Transformations
 
 		this.traverse(function (child) {
@@ -124,6 +154,8 @@ THREE.TransformGizmo = function () {
 
 		for ( var j in this.handles.children ) this.handles.children[j].visible = false;
 
+		for ( var j in this.lines.children ) this.lines.children[j].visible = false;
+
 		for ( var j in this.pickers.children ) this.pickers.children[j].visible = false;
 
 		for ( var j in this.planes.children ) this.planes.children[j].visible = false;
@@ -132,31 +164,26 @@ THREE.TransformGizmo = function () {
 
 	this.show = function () {
 
-		for ( var i in this.handles.children ) {
-
-			this.handles.children[i].visible = true;
+		for ( var i in this.handles.children ) this.handles.children[i].visible = true;
 
-		}
-
-		for ( var i in this.pickers.children ) {
+		for ( var i in this.lines.children ) this.lines.children[i].visible = true;
 
-			this.pickers.children[i].visible = showPickers;
-
-		}
+		for ( var i in this.pickers.children ) this.pickers.children[i].visible = showPickers;
 
-		if (this.activePlane) this.activePlane.visible = showActivePlane;
+		if ( this.activePlane !== undefined ) this.activePlane.visible = showActivePlane;
 
 	}
 
 	this.highlight = function ( axis ) {
 
 		var handle;
+		var line;
 
 		for ( var i in this.handleGizmos ) {
 
 			handle = this.handleGizmos[ i ][0];
 
-			if ( handle.material.oldColor ) {
+			if ( handle.material.oldColor !== undefined ) {
 
 				handle.material.color.copy( handle.material.oldColor );
 				handle.material.opacity = handle.material.oldOpacity;
@@ -165,7 +192,7 @@ THREE.TransformGizmo = function () {
 
 		}
 
-		if ( this.handleGizmos[ axis ] ) {
+		if ( this.handleGizmos[ axis ] !== undefined ) {
 		
 			handle = this.handleGizmos[ axis ][0];
 
@@ -177,6 +204,31 @@ THREE.TransformGizmo = function () {
 
 		}
 
+		for ( var i in this.lineGizmos ) {
+
+			line = this.lineGizmos[ i ][0];
+
+			if ( line.material.oldColor !== undefined ) {
+
+				line.material.color.copy( line.material.oldColor );
+				line.material.opacity = line.material.oldOpacity;
+
+			}
+
+		}
+
+		if ( this.lineGizmos[ axis ] !== undefined ) {
+		
+			line = this.lineGizmos[ axis ][0];
+
+			line.material.oldColor = line.material.color.clone();
+			line.material.oldOpacity = line.material.opacity;
+	 
+			line.material.color.setRGB( 1, 1, 0 );
+			line.material.opacity = 1;
+
+		}
+
 	}
 
 	this.init();
@@ -217,11 +269,20 @@ THREE.TransformGizmoTranslate = function () {
 
 	THREE.TransformGizmo.call( this );
 
-	var arrowGeometry = new THREE.CylinderGeometry( 0.005, 0.005, 1, 4, 1, false );
+	var arrowGeometry = new THREE.Geometry();
 	var mesh = new THREE.Mesh( new THREE.CylinderGeometry( 0, 0.05, 0.2, 12, 1, false ) );
 	mesh.position.y = 0.5;
 	THREE.GeometryUtils.merge( arrowGeometry, mesh );
-				
+	
+	var lineXGeometry = new THREE.Geometry();
+	lineXGeometry.vertices.push( new THREE.Vector3( 0, 0, 0 ), new THREE.Vector3( 1, 0, 0 ) );
+
+	var lineYGeometry = new THREE.Geometry();
+	lineYGeometry.vertices.push( new THREE.Vector3( 0, 0, 0 ), new THREE.Vector3( 0, 1, 0 ) );
+
+	var lineZGeometry = new THREE.Geometry();
+	lineZGeometry.vertices.push( new THREE.Vector3( 0, 0, 0 ), new THREE.Vector3( 0, 0, 1 ) );
+
 	this.handleGizmos = {
 
 		X: [
@@ -239,7 +300,9 @@ THREE.TransformGizmoTranslate = function () {
 			new THREE.Vector3( Math.PI/2, 0, 0 )
 		],
 		XYZ: [
-			new THREE.Mesh( new THREE.OctahedronGeometry( 0.1, 0 ), new THREE.TransformGizmoMaterial( { color: 0xffffff, opacity: 0.25 } ) )
+			new THREE.Mesh( new THREE.OctahedronGeometry( 0.1, 0 ), new THREE.TransformGizmoMaterial( { color: 0xffffff, opacity: 0.25 } ) ),
+			new THREE.Vector3( 0, 0, 0 ),
+			new THREE.Vector3( 0, 0, 0 )
 		],
 		XY: [
 			new THREE.Mesh( new THREE.PlaneGeometry( 0.29, 0.29 ), new THREE.TransformGizmoMaterial( { color: 0xffff00, opacity: 0.25 } ) ),
@@ -258,21 +321,52 @@ THREE.TransformGizmoTranslate = function () {
 
 	}
 
+	this.lineGizmos = {
+
+		X: [
+			new THREE.Line( lineXGeometry, new THREE.TransformGizmoLineMaterial( { color: 0xff0000 } ) ),
+		],
+		Y: [
+			new THREE.Line( lineYGeometry, new THREE.TransformGizmoLineMaterial( { color: 0x00ff00 } ) ),
+		],
+		Z: [
+			new THREE.Line( lineZGeometry, new THREE.TransformGizmoLineMaterial( { color: 0x0000ff } ) ),
+		]
+
+	}
+
 	this.pickerGizmos = {
 
 		X: [
-			new THREE.Mesh( new THREE.CylinderGeometry( 0.075, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0xff0000, opacity: 0.25 } ) ),
+			new THREE.Mesh( new THREE.CylinderGeometry( 0.2, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0xff0000, opacity: 0.25 } ) ),
 			new THREE.Vector3( 0.6, 0, 0 ),
 			new THREE.Vector3( 0, 0, -Math.PI/2 )
 		],
 		Y: [
-			new THREE.Mesh( new THREE.CylinderGeometry( 0.075, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0x00ff00, opacity: 0.25 } ) ),
+			new THREE.Mesh( new THREE.CylinderGeometry( 0.2, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0x00ff00, opacity: 0.25 } ) ),
 			new THREE.Vector3( 0, 0.6, 0 )
 		],
 		Z: [
-			new THREE.Mesh( new THREE.CylinderGeometry( 0.075, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0x0000ff, opacity: 0.25 } ) ),
+			new THREE.Mesh( new THREE.CylinderGeometry( 0.2, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0x0000ff, opacity: 0.25 } ) ),
 			new THREE.Vector3( 0, 0, 0.6 ),
 			new THREE.Vector3( Math.PI/2, 0, 0 )
+		],
+		XYZ: [
+			new THREE.Mesh( new THREE.OctahedronGeometry( 0.2, 0 ), new THREE.TransformGizmoMaterial( { color: 0xffffff, opacity: 0.25 } ) )
+		],
+		XY: [
+			new THREE.Mesh( new THREE.PlaneGeometry( 0.4, 0.4 ), new THREE.TransformGizmoMaterial( { color: 0xffff00, opacity: 0.25 } ) ),
+			new THREE.Vector3( 0.2, 0.2, 0 )
+		],
+		YZ: [
+			new THREE.Mesh( new THREE.PlaneGeometry( 0.4, 0.4 ), new THREE.TransformGizmoMaterial( { color: 0x00ffff, opacity: 0.25 } ) ),
+			new THREE.Vector3( 0, 0.2, 0.2 ),
+			new THREE.Vector3( 0, Math.PI/2, 0 )
+		],
+		XZ: [
+			new THREE.Mesh( new THREE.PlaneGeometry( 0.4, 0.4 ), new THREE.TransformGizmoMaterial( { color: 0xff00ff, opacity: 0.25 } ) ),
+			new THREE.Vector3( 0.2, 0, 0.2 ),
+			new THREE.Vector3( -Math.PI/2, 0, 0 )
 		]
 
 	}
@@ -320,51 +414,60 @@ THREE.TransformGizmoRotate = function () {
 
 	THREE.TransformGizmo.call( this );
 
+	var CircleGeometry = function ( radius, facing, arc ) {
+
+			var geometry = new THREE.Geometry();
+			arc = arc ? arc : 1;
+			for ( var i = 0; i <= 64 * arc; ++i ) {
+				if ( facing == 'x' ) geometry.vertices.push( new THREE.Vector3( 0, Math.cos( i / 32 * Math.PI ), Math.sin( i / 32 * Math.PI ) ).multiplyScalar(radius) );
+				if ( facing == 'y' ) geometry.vertices.push( new THREE.Vector3( Math.cos( i / 32 * Math.PI ), 0, Math.sin( i / 32 * Math.PI ) ).multiplyScalar(radius) );
+				if ( facing == 'z' ) geometry.vertices.push( new THREE.Vector3( Math.sin( i / 32 * Math.PI ), Math.cos( i / 32 * Math.PI ), 0 ).multiplyScalar(radius) );
+			}
+
+			return geometry;
+	}
+
 	this.handleGizmos = {
 
 		X: [
-			new THREE.Mesh( new THREE.TorusGeometry( 1, 0.005, 4, 32, Math.PI ), new THREE.TransformGizmoMaterial( { color: 0xff0000 } ) ),
-			new THREE.Vector3( 0, 0, 0 ),
-			new THREE.Vector3( 0, -Math.PI/2, -Math.PI/2 )
+			new THREE.Line( CircleGeometry(1,'x',0.5), new THREE.TransformGizmoLineMaterial( { color: 0xff0000 } ) ),
 		],
 		Y: [
-			new THREE.Mesh( new THREE.TorusGeometry( 1, 0.005, 4, 32, Math.PI ), new THREE.TransformGizmoMaterial( { color: 0x00ff00 } ) ),
-			new THREE.Vector3( 0, 0, 0 ),
-			new THREE.Vector3( Math.PI/2, 0, 0 )
+			new THREE.Line( CircleGeometry(1,'y',0.5), new THREE.TransformGizmoLineMaterial( { color: 0x00ff00 } ) ),
 		],
 		Z: [
-			new THREE.Mesh( new THREE.TorusGeometry( 1, 0.005, 4, 32, Math.PI ), new THREE.TransformGizmoMaterial( { color: 0x0000ff } ) ),
-			new THREE.Vector3( 0, 0, 0 ),
-			new THREE.Vector3( 0, 0, -Math.PI/2 )
+			new THREE.Line( CircleGeometry(1,'z',0.5), new THREE.TransformGizmoLineMaterial( { color: 0x0000ff } ) ),
 		],
 		E: [
-			new THREE.Mesh( new THREE.TorusGeometry( 1.25, 0.005, 4, 64 ), new THREE.TransformGizmoMaterial( { color: 0xffff00, opacity: 0.25 } ) )
+			new THREE.Line( CircleGeometry(1.25,'z',1), new THREE.TransformGizmoLineMaterial( { color: 0xcccc00 } ) ),
 		],
 		XYZE: [
-			new THREE.Mesh( new THREE.TorusGeometry( 1, 0.005, 4, 64 ), new THREE.TransformGizmoMaterial( { color: 0x787878 } ) )
+			new THREE.Line( CircleGeometry(1,'z',1), new THREE.TransformGizmoLineMaterial( { color: 0x787878 } ) ),
 		]
 
 	}
 
+	this.lineGizmos = {}
+
 	this.pickerGizmos = {
 
 		X: [
-			new THREE.Mesh( new THREE.TorusGeometry( 1, 0.05, 4, 12, Math.PI ), new THREE.TransformGizmoMaterial( { color: 0xff0000, opacity: 0.25 } ) ),
+			new THREE.Mesh( new THREE.TorusGeometry( 1, 0.12, 4, 12, Math.PI ), new THREE.TransformGizmoMaterial( { color: 0xff0000, opacity: 0.25 } ) ),
 			new THREE.Vector3( 0, 0, 0 ),
 			new THREE.Vector3( 0, -Math.PI/2, -Math.PI/2 )
 		],
 		Y: [
-			new THREE.Mesh( new THREE.TorusGeometry( 1, 0.05, 4, 12, Math.PI ), new THREE.TransformGizmoMaterial( { color: 0x00ff00, opacity: 0.25 } ) ),
+			new THREE.Mesh( new THREE.TorusGeometry( 1, 0.12, 4, 12, Math.PI ), new THREE.TransformGizmoMaterial( { color: 0x00ff00, opacity: 0.25 } ) ),
 			new THREE.Vector3( 0, 0, 0 ),
 			new THREE.Vector3( Math.PI/2, 0, 0 )
 		],
 		Z: [
-			new THREE.Mesh( new THREE.TorusGeometry( 1, 0.05, 4, 12, Math.PI ), new THREE.TransformGizmoMaterial( { color: 0x0000ff, opacity: 0.25 } ) ),
+			new THREE.Mesh( new THREE.TorusGeometry( 1, 0.12, 4, 12, Math.PI ), new THREE.TransformGizmoMaterial( { color: 0x0000ff, opacity: 0.25 } ) ),
 			new THREE.Vector3( 0, 0, 0 ),
 			new THREE.Vector3( 0, 0, -Math.PI/2 )
 		],
 		E: [
-			new THREE.Mesh( new THREE.TorusGeometry( 1.25, 0.05, 2, 24 ), new THREE.TransformGizmoMaterial( { color: 0xffff00, opacity: 0.25 } ) )
+			new THREE.Mesh( new THREE.TorusGeometry( 1.25, 0.12, 2, 24 ), new THREE.TransformGizmoMaterial( { color: 0xffff00, opacity: 0.25 } ) )
 		],
 		XYZE: [
 			new THREE.Mesh( new THREE.Geometry() ) // TODO
@@ -454,16 +557,22 @@ THREE.TransformGizmoScale = function () {
 
 	THREE.TransformGizmo.call( this );
 
-	var arrowGeometry = new THREE.CylinderGeometry( 0.005, 0.005, 1, 4, 1, false );
+	var arrowGeometry = new THREE.Geometry();
 	var mesh = new THREE.Mesh( new THREE.CubeGeometry( 0.125, 0.125, 0.125 ) );
 	mesh.position.y = 0.5;
 	THREE.GeometryUtils.merge( arrowGeometry, mesh );
 
+	var lineXGeometry = new THREE.Geometry();
+	lineXGeometry.vertices.push( new THREE.Vector3( 0, 0, 0 ), new THREE.Vector3( 1, 0, 0 ) );
+
+	var lineYGeometry = new THREE.Geometry();
+	lineYGeometry.vertices.push( new THREE.Vector3( 0, 0, 0 ), new THREE.Vector3( 0, 1, 0 ) );
+
+	var lineZGeometry = new THREE.Geometry();
+	lineZGeometry.vertices.push( new THREE.Vector3( 0, 0, 0 ), new THREE.Vector3( 0, 0, 1 ) );
+
 	this.handleGizmos = {
 
-		XYZ: [
-			new THREE.Mesh( new THREE.CubeGeometry( 0.125, 0.125, 0.125 ), new THREE.TransformGizmoMaterial( { color: 0xffffff, opacity: 0.25 } ) )
-		],
 		X: [
 			new THREE.Mesh( arrowGeometry, new THREE.TransformGizmoMaterial( { color: 0xff0000 } ) ),
 			new THREE.Vector3( 0.5, 0, 0 ),
@@ -477,6 +586,23 @@ THREE.TransformGizmoScale = function () {
 			new THREE.Mesh( arrowGeometry, new THREE.TransformGizmoMaterial( { color: 0x0000ff } ) ),
 			new THREE.Vector3( 0, 0, 0.5 ),
 			new THREE.Vector3( Math.PI/2, 0, 0 )
+		],
+		XYZ: [
+			new THREE.Mesh( new THREE.CubeGeometry( 0.125, 0.125, 0.125 ), new THREE.TransformGizmoMaterial( { color: 0xffffff, opacity: 0.25 } ) )
+		]
+
+	}
+
+	this.lineGizmos = {
+
+		X: [
+			new THREE.Line( lineXGeometry, new THREE.TransformGizmoLineMaterial( { color: 0xff0000 } ) ),
+		],
+		Y: [
+			new THREE.Line( lineYGeometry, new THREE.TransformGizmoLineMaterial( { color: 0x00ff00 } ) ),
+		],
+		Z: [
+			new THREE.Line( lineZGeometry, new THREE.TransformGizmoLineMaterial( { color: 0x0000ff } ) ),
 		]
 
 	}
@@ -484,21 +610,22 @@ THREE.TransformGizmoScale = function () {
 	this.pickerGizmos = {
 
 		X: [
-			new THREE.Mesh( new THREE.CylinderGeometry( 0.125, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0xff0000, opacity: 0.25 } ) ),
+			new THREE.Mesh( new THREE.CylinderGeometry( 0.2, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0xff0000, opacity: 0.25 } ) ),
 			new THREE.Vector3( 0.6, 0, 0 ),
-			new THREE.Vector3( Math.PI/4, 0, -Math.PI/2 )
+			new THREE.Vector3( 0, 0, -Math.PI/2 )
 		],
 		Y: [
-			new THREE.Mesh( new THREE.CylinderGeometry( 0.125, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0x00ff00, opacity: 0.25 } ) ),
-			new THREE.Vector3( 0, 0.6, 0 ),
-			new THREE.Vector3( 0, Math.PI/4, 0 )
+			new THREE.Mesh( new THREE.CylinderGeometry( 0.2, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0x00ff00, opacity: 0.25 } ) ),
+			new THREE.Vector3( 0, 0.6, 0 )
 		],
 		Z: [
-			new THREE.Mesh( new THREE.CylinderGeometry( 0.125, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0x0000ff, opacity: 0.25 } ) ),
+			new THREE.Mesh( new THREE.CylinderGeometry( 0.2, 0, 1, 4, 1, false ), new THREE.TransformGizmoMaterial( { color: 0x0000ff, opacity: 0.25 } ) ),
 			new THREE.Vector3( 0, 0, 0.6 ),
-			new THREE.Vector3( Math.PI/2, Math.PI/4, 0 )
+			new THREE.Vector3( Math.PI/2, 0, 0 )
+		],
+		XYZ: [
+			new THREE.Mesh( new THREE.CubeGeometry( 0.4, 0.4, 0.4 ), new THREE.TransformGizmoMaterial( { color: 0xffffff, opacity: 0.25 } ) )
 		]
-
 	}
 
 	this.setActivePlane = function ( axis, eye ) {
@@ -556,11 +683,11 @@ THREE.TransformControls = function ( camera, domElement ) {
 	this.gizmo["rotate"].hide();
 	this.gizmo["scale"].hide();
 
-	this.object = false;
-	this.snap = false;
+	this.object = undefined;
+	this.snap = undefined;
 	this.space = "world";
 	this.size = 1;
-	this.axis = false;
+	this.axis = undefined;
 
 	var scope = this;
 	
@@ -634,15 +761,14 @@ THREE.TransformControls = function ( camera, domElement ) {
 	 	this.gizmo["scale"].hide();
 	 	this.gizmo[_mode].show();
 
-	 	scope.dispatchEvent( changeEvent );
 	 	scope.update();
 
 	}
 
 	this.detach = function ( object ) {
 
-		scope.object = false;
-		this.axis = false;
+		scope.object = undefined;
+		this.axis = undefined;
 
 	 	this.gizmo["translate"].hide();
 	 	this.gizmo["rotate"].hide();
@@ -661,8 +787,8 @@ THREE.TransformControls = function ( camera, domElement ) {
 	 	this.gizmo["scale"].hide();	
 	 	this.gizmo[_mode].show();
 
-	 	scope.dispatchEvent( changeEvent );
 		this.update();
+		scope.dispatchEvent( changeEvent );
 
 	}
 
@@ -675,23 +801,22 @@ THREE.TransformControls = function ( camera, domElement ) {
 	this.setSize = function ( size ) {
 
 		scope.size = size;
-	 	scope.dispatchEvent( changeEvent );
 		this.update();
+		scope.dispatchEvent( changeEvent );
 	 	
 	}
 
 	this.setSpace = function ( space ) {
 
 		scope.space = space;
-
-	 	scope.dispatchEvent( changeEvent );
 		this.update();
+		scope.dispatchEvent( changeEvent );
 
 	}
 
 	this.update = function () {
 
-		if ( !scope.object ) return;
+		if ( scope.object === undefined ) return;
 
 		scope.object.updateMatrixWorld();
 		worldPosition.getPositionFromMatrix( scope.object.matrixWorld );
@@ -719,26 +844,25 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 	function onPointerHover( event ) {
 
-		if ( !scope.object || _dragging ) return;
+		if ( scope.object === undefined || _dragging == true ) return;
 
 		event.preventDefault();
-		event.stopPropagation();
 
-		var pointer = event.touches? event.touches[0] : event;
+		var pointer = event.touches ? event.touches[ 0 ] : event;
 
 		var intersect = intersectObjects( pointer, scope.gizmo[_mode].pickers.children );
 
 		if ( intersect ) {
 
 			scope.axis = intersect.object.name;
-			scope.dispatchEvent( changeEvent );
 			scope.update();
+			scope.dispatchEvent( changeEvent );
 
-		} else {
+		} else if ( scope.axis !== undefined ) {
 
-			scope.axis = false;
-			scope.dispatchEvent( changeEvent );
+			scope.axis = undefined;
 			scope.update();
+			scope.dispatchEvent( changeEvent );
 
 		}
 
@@ -746,14 +870,14 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 	function onPointerDown( event ) {
 
-		if ( !scope.object || _dragging ) return;
+		if ( scope.object === undefined || _dragging == true ) return;
 
 		event.preventDefault();
 		event.stopPropagation();
 
-		var pointer = event.touches? event.touches[0] : event;
+		var pointer = event.touches ? event.touches[ 0 ] : event;
 
-		if ( pointer.button === 0 || pointer.button == undefined ) {
+		if ( pointer.button === 0 || pointer.button === undefined ) {
 
 			var intersect = intersectObjects( pointer, scope.gizmo[_mode].pickers.children );
 
@@ -769,20 +893,16 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 				var planeIntersect = intersectObjects( pointer, [scope.gizmo[_mode].activePlane] );
 
-				if ( planeIntersect ) {
-
-					oldPosition.copy( scope.object.position );
-					oldScale.copy( scope.object.scale );
+				oldPosition.copy( scope.object.position );
+				oldScale.copy( scope.object.scale );
 
-					oldRotationMatrix.extractRotation( scope.object.matrix );
-					worldRotationMatrix.extractRotation( scope.object.matrixWorld );
+				oldRotationMatrix.extractRotation( scope.object.matrix );
+				worldRotationMatrix.extractRotation( scope.object.matrixWorld );
 
-					parentRotationMatrix.extractRotation( scope.object.parent.matrixWorld );
-					parentScale.getScaleFromMatrix( tempMatrix.getInverse( scope.object.parent.matrixWorld ) );
+				parentRotationMatrix.extractRotation( scope.object.parent.matrixWorld );
+				parentScale.getScaleFromMatrix( tempMatrix.getInverse( scope.object.parent.matrixWorld ) );
 
-					offset.copy( planeIntersect.point );
-
-				}
+				offset.copy( planeIntersect.point );
 
 			}
 
@@ -794,7 +914,7 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 	function onPointerMove( event ) {
 
-		if ( !scope.object || !scope.axis || !_dragging ) return;
+		if ( scope.object === undefined || scope.axis === undefined || _dragging == false ) return;
 
 		event.preventDefault();
 		event.stopPropagation();
@@ -803,181 +923,175 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 		var planeIntersect = intersectObjects( pointer, [scope.gizmo[_mode].activePlane] );
 
-		if ( planeIntersect ) {
-
-			point.copy( planeIntersect.point );
-
-			if ( _mode == "translate" ) {
+		point.copy( planeIntersect.point );
 
-				point.sub( offset );
-				point.multiply(parentScale);
+		if ( _mode == "translate" ) {
 
-				if ( scope.space == "local" ) {
+			point.sub( offset );
+			point.multiply(parentScale);
 
-					point.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
+			if ( scope.space == "local" ) {
 
-					if ( scope.axis.search("X") == -1 ) point.x = 0;
-					if ( scope.axis.search("Y") == -1 ) point.y = 0;
-					if ( scope.axis.search("Z") == -1 ) point.z = 0;
+				point.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
 
-					point.applyMatrix4( oldRotationMatrix );
+				if ( scope.axis.search("X") == -1 ) point.x = 0;
+				if ( scope.axis.search("Y") == -1 ) point.y = 0;
+				if ( scope.axis.search("Z") == -1 ) point.z = 0;
 
-					scope.object.position.copy( oldPosition );
-					scope.object.position.add( point );
+				point.applyMatrix4( oldRotationMatrix );
 
-				} 
+				scope.object.position.copy( oldPosition );
+				scope.object.position.add( point );
 
-				if ( scope.space == "world" || scope.axis.search("XYZ") != -1 ) {
+			} 
 
-					if ( scope.axis.search("X") == -1 ) point.x = 0;
-					if ( scope.axis.search("Y") == -1 ) point.y = 0;
-					if ( scope.axis.search("Z") == -1 ) point.z = 0;
+			if ( scope.space == "world" || scope.axis.search("XYZ") != -1 ) {
 
-					point.applyMatrix4( tempMatrix.getInverse( parentRotationMatrix ) );
+				if ( scope.axis.search("X") == -1 ) point.x = 0;
+				if ( scope.axis.search("Y") == -1 ) point.y = 0;
+				if ( scope.axis.search("Z") == -1 ) point.z = 0;
 
-					scope.object.position.copy( oldPosition );
-					scope.object.position.add( point );
+				point.applyMatrix4( tempMatrix.getInverse( parentRotationMatrix ) );
 
-					if ( scope.snap ) {
+				scope.object.position.copy( oldPosition );
+				scope.object.position.add( point );
 
-						if ( scope.axis.search("X") != -1 ) scope.object.position.x = Math.round( scope.object.position.x / scope.snap ) * scope.snap;
-						if ( scope.axis.search("Y") != -1 ) scope.object.position.y = Math.round( scope.object.position.y / scope.snap ) * scope.snap;
-						if ( scope.axis.search("Z") != -1 ) scope.object.position.z = Math.round( scope.object.position.z / scope.snap ) * scope.snap;
-					
-					}
+				if ( scope.snap != undefined ) {
 
+					if ( scope.axis.search("X") != -1 ) scope.object.position.x = Math.round( scope.object.position.x / scope.snap ) * scope.snap;
+					if ( scope.axis.search("Y") != -1 ) scope.object.position.y = Math.round( scope.object.position.y / scope.snap ) * scope.snap;
+					if ( scope.axis.search("Z") != -1 ) scope.object.position.z = Math.round( scope.object.position.z / scope.snap ) * scope.snap;
+				
 				}
 
-			} else if ( _mode == "scale" ) {
+			}
 
-				point.sub( offset );
-				point.multiply(parentScale);
+		} else if ( _mode == "scale" ) {
 
-				if ( scope.space == "local" ) {
+			point.sub( offset );
+			point.multiply(parentScale);
 
-					if ( scope.axis == "XYZ") {
+			if ( scope.space == "local" ) {
 
-						scale = 1 + ( ( point.y ) / 50 );
+				if ( scope.axis == "XYZ") {
 
-						scope.object.scale.x = oldScale.x * scale;
-						scope.object.scale.y = oldScale.y * scale;
-						scope.object.scale.z = oldScale.z * scale;
+					scale = 1 + ( ( point.y ) / 50 );
 
-					} else {
+					scope.object.scale.x = oldScale.x * scale;
+					scope.object.scale.y = oldScale.y * scale;
+					scope.object.scale.z = oldScale.z * scale;
 
-						point.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
+				} else {
 
-						if ( scope.axis == "X" ) scope.object.scale.x = oldScale.x * ( 1 + point.x / 50 );
-						if ( scope.axis == "Y" ) scope.object.scale.y = oldScale.y * ( 1 + point.y / 50 );
-						if ( scope.axis == "Z" ) scope.object.scale.z = oldScale.z * ( 1 + point.z / 50 );
+					point.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
 
-					}
+					if ( scope.axis == "X" ) scope.object.scale.x = oldScale.x * ( 1 + point.x / 50 );
+					if ( scope.axis == "Y" ) scope.object.scale.y = oldScale.y * ( 1 + point.y / 50 );
+					if ( scope.axis == "Z" ) scope.object.scale.z = oldScale.z * ( 1 + point.z / 50 );
 
 				}
 
-			} else if ( _mode == "rotate" ) {
+			}
 
-				point.sub( worldPosition );
-				point.multiply(parentScale);
-				tempVector.copy(offset).sub( worldPosition );
-				tempVector.multiply(parentScale);
+		} else if ( _mode == "rotate" ) {
 
-				if ( scope.axis == "E" ) {
+			point.sub( worldPosition );
+			point.multiply(parentScale);
+			tempVector.copy(offset).sub( worldPosition );
+			tempVector.multiply(parentScale);
 
-					point.applyMatrix4( tempMatrix.getInverse( lookAtMatrix ) );
-					tempVector.applyMatrix4( tempMatrix.getInverse( lookAtMatrix ) );
+			if ( scope.axis == "E" ) {
 
-					rotation.set( Math.atan2( point.z, point.y ), Math.atan2( point.x, point.z ), Math.atan2( point.y, point.x ) );
-					offsetRotation.set( Math.atan2( tempVector.z, tempVector.y ), Math.atan2( tempVector.x, tempVector.z ), Math.atan2( tempVector.y, tempVector.x ) );
+				point.applyMatrix4( tempMatrix.getInverse( lookAtMatrix ) );
+				tempVector.applyMatrix4( tempMatrix.getInverse( lookAtMatrix ) );
 
-					tempQuaternion.setFromRotationMatrix( tempMatrix.getInverse( parentRotationMatrix ) );
+				rotation.set( Math.atan2( point.z, point.y ), Math.atan2( point.x, point.z ), Math.atan2( point.y, point.x ) );
+				offsetRotation.set( Math.atan2( tempVector.z, tempVector.y ), Math.atan2( tempVector.x, tempVector.z ), Math.atan2( tempVector.y, tempVector.x ) );
 
-					quaternionE.setFromAxisAngle( eye, rotation.z - offsetRotation.z );
-					quaternionXYZ.setFromRotationMatrix( worldRotationMatrix );
+				tempQuaternion.setFromRotationMatrix( tempMatrix.getInverse( parentRotationMatrix ) );
 
-					tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionE );
-					tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionXYZ );
+				quaternionE.setFromAxisAngle( eye, rotation.z - offsetRotation.z );
+				quaternionXYZ.setFromRotationMatrix( worldRotationMatrix );
 
-					scope.object.quaternion.copy( tempQuaternion );
+				tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionE );
+				tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionXYZ );
 
-				} else if ( scope.axis == "XYZE" ) {
+				scope.object.quaternion.copy( tempQuaternion );
 
-					quaternionE.setFromEuler( point.clone().cross(tempVector).normalize() ); // rotation axis
+			} else if ( scope.axis == "XYZE" ) {
 
-					tempQuaternion.setFromRotationMatrix( tempMatrix.getInverse( parentRotationMatrix ) );
-					quaternionX.setFromAxisAngle( quaternionE, - point.clone().angleTo(tempVector) );
-					quaternionXYZ.setFromRotationMatrix( worldRotationMatrix );
+				quaternionE.setFromEuler( point.clone().cross(tempVector).normalize() ); // rotation axis
 
-					tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionX );
-					tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionXYZ );
+				tempQuaternion.setFromRotationMatrix( tempMatrix.getInverse( parentRotationMatrix ) );
+				quaternionX.setFromAxisAngle( quaternionE, - point.clone().angleTo(tempVector) );
+				quaternionXYZ.setFromRotationMatrix( worldRotationMatrix );
 
-					scope.object.quaternion.copy( tempQuaternion );
+				tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionX );
+				tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionXYZ );
 
-				} else if ( scope.space == "local" ) {
+				scope.object.quaternion.copy( tempQuaternion );
 
-					point.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
+			} else if ( scope.space == "local" ) {
 
-					tempVector.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
+				point.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
 
-					rotation.set( Math.atan2( point.z, point.y ), Math.atan2( point.x, point.z ), Math.atan2( point.y, point.x ) );
-					offsetRotation.set( Math.atan2( tempVector.z, tempVector.y ), Math.atan2( tempVector.x, tempVector.z ), Math.atan2( tempVector.y, tempVector.x ) );
+				tempVector.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
 
-					quaternionXYZ.setFromRotationMatrix( oldRotationMatrix );
-					quaternionX.setFromAxisAngle( unitX, rotation.x - offsetRotation.x );
-					quaternionY.setFromAxisAngle( unitY, rotation.y - offsetRotation.y );
-					quaternionZ.setFromAxisAngle( unitZ, rotation.z - offsetRotation.z );
+				rotation.set( Math.atan2( point.z, point.y ), Math.atan2( point.x, point.z ), Math.atan2( point.y, point.x ) );
+				offsetRotation.set( Math.atan2( tempVector.z, tempVector.y ), Math.atan2( tempVector.x, tempVector.z ), Math.atan2( tempVector.y, tempVector.x ) );
 
-					if ( scope.axis == "X" ) quaternionXYZ.multiplyQuaternions( quaternionXYZ, quaternionX );
-					if ( scope.axis == "Y" ) quaternionXYZ.multiplyQuaternions( quaternionXYZ, quaternionY );
-					if ( scope.axis == "Z" ) quaternionXYZ.multiplyQuaternions( quaternionXYZ, quaternionZ );
+				quaternionXYZ.setFromRotationMatrix( oldRotationMatrix );
+				quaternionX.setFromAxisAngle( unitX, rotation.x - offsetRotation.x );
+				quaternionY.setFromAxisAngle( unitY, rotation.y - offsetRotation.y );
+				quaternionZ.setFromAxisAngle( unitZ, rotation.z - offsetRotation.z );
 
-					scope.object.quaternion.copy( quaternionXYZ );
+				if ( scope.axis == "X" ) quaternionXYZ.multiplyQuaternions( quaternionXYZ, quaternionX );
+				if ( scope.axis == "Y" ) quaternionXYZ.multiplyQuaternions( quaternionXYZ, quaternionY );
+				if ( scope.axis == "Z" ) quaternionXYZ.multiplyQuaternions( quaternionXYZ, quaternionZ );
 
-				} else if ( scope.space == "world" ) {
+				scope.object.quaternion.copy( quaternionXYZ );
 
-					rotation.set( Math.atan2( point.z, point.y ), Math.atan2( point.x, point.z ), Math.atan2( point.y, point.x ) );
-					offsetRotation.set( Math.atan2( tempVector.z, tempVector.y ), Math.atan2( tempVector.x, tempVector.z ), Math.atan2( tempVector.y, tempVector.x ) );
+			} else if ( scope.space == "world" ) {
 
-					tempQuaternion.setFromRotationMatrix( tempMatrix.getInverse( parentRotationMatrix ) );
+				rotation.set( Math.atan2( point.z, point.y ), Math.atan2( point.x, point.z ), Math.atan2( point.y, point.x ) );
+				offsetRotation.set( Math.atan2( tempVector.z, tempVector.y ), Math.atan2( tempVector.x, tempVector.z ), Math.atan2( tempVector.y, tempVector.x ) );
 
-					quaternionX.setFromAxisAngle( unitX, rotation.x - offsetRotation.x );
-					quaternionY.setFromAxisAngle( unitY, rotation.y - offsetRotation.y );
-					quaternionZ.setFromAxisAngle( unitZ, rotation.z - offsetRotation.z );
-					quaternionXYZ.setFromRotationMatrix( worldRotationMatrix );
+				tempQuaternion.setFromRotationMatrix( tempMatrix.getInverse( parentRotationMatrix ) );
 
-					if ( scope.axis == "X" ) tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionX );
-					if ( scope.axis == "Y" ) tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionY );
-					if ( scope.axis == "Z" ) tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionZ );
+				quaternionX.setFromAxisAngle( unitX, rotation.x - offsetRotation.x );
+				quaternionY.setFromAxisAngle( unitY, rotation.y - offsetRotation.y );
+				quaternionZ.setFromAxisAngle( unitZ, rotation.z - offsetRotation.z );
+				quaternionXYZ.setFromRotationMatrix( worldRotationMatrix );
 
-					tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionXYZ );
+				if ( scope.axis == "X" ) tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionX );
+				if ( scope.axis == "Y" ) tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionY );
+				if ( scope.axis == "Z" ) tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionZ );
 
-					scope.object.quaternion.copy( tempQuaternion );
+				tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionXYZ );
 
-				}
+				scope.object.quaternion.copy( tempQuaternion );
 
 			}
 
 		}
 
-		scope.dispatchEvent( changeEvent );
 		scope.update();
+		scope.dispatchEvent( changeEvent );
 
 	}
 
 	function onPointerUp( event ) {
 
-		scope.axis = false;
 		_dragging = false;
-		scope.dispatchEvent( changeEvent );
-		scope.update();
+		onPointerHover( event );
 
 	}
 
 	function intersectObjects( pointer, objects ) {
 
-	    var rect = domElement.getBoundingClientRect();
-	    var x = (pointer.clientX - rect.left) / rect.width;
-	    var y = (pointer.clientY - rect.top) / rect.height;
+		var rect = domElement.getBoundingClientRect();
+		var x = (pointer.clientX - rect.left) / rect.width;
+		var y = (pointer.clientY - rect.top) / rect.height;
 		pointerVector.set( ( x ) * 2 - 1, - ( y ) * 2 + 1, 0.5 );
 
 		projector.unprojectVector( pointerVector, camera );

+ 9 - 1
examples/js/exporters/BufferGeometryExporter.js

@@ -28,10 +28,18 @@ THREE.BufferGeometryExporter.prototype = {
 
 			var attribute = attributes[ key ];
 
+			var array = [], typeArray = attribute.array;
+
+			for ( var i = 0, l = typeArray.length; i < l; i ++ ) {
+
+				array[ i ] = typeArray[ i ];
+
+			}
+
 			output.attributes[ key ] = {
 				itemSize: attribute.itemSize,
 				type: attribute.array.constructor.name,
-				array: Array.apply( [], attribute.array )
+				array: array
 			}
 
 		}

+ 302 - 0
examples/js/loaders/AssimpJSONLoader.js

@@ -0,0 +1,302 @@
+/**
+ * @author Alexander Gessler / http://www.greentoken.de/
+ * https://github.com/acgessler
+ *
+ * Loader for models imported with Open Asset Import Library (http://assimp.sf.net)
+ * through assimp2json (https://github.com/acgessler/assimp2json).
+ *
+ * Supports any input format that assimp supports, including 3ds, obj, dae, blend,
+ * fbx, x, ms3d, lwo (and many more).
+ *
+ * See webgl_loader_assimp2json example.
+ */
+
+THREE.AssimpJSONLoader = function ( manager ) {
+
+	this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
+};
+
+THREE.AssimpJSONLoader.prototype = {
+
+	constructor: THREE.AssimpJSONLoader,
+
+	texturePath : '',
+
+	load: function ( url, onLoad, onProgress, onError, texturePath ) {
+
+		var scope = this;
+
+		this.texturePath = texturePath && ( typeof texturePath === "string" ) ? texturePath : this.extractUrlBase( url );
+
+		var loader = new THREE.XHRLoader( this.manager );
+		loader.setCrossOrigin( this.crossOrigin );
+		loader.load( url, function ( text ) {
+			var scene = scope.parse( JSON.parse( text ) );
+			onLoad( scene );
+		} );
+	},
+
+	setCrossOrigin: function ( value ) {
+		this.crossOrigin = value;
+	},
+
+	extractUrlBase: function ( url ) { // from three/src/loaders/Loader.js
+		var parts = url.split( '/' );
+		parts.pop();
+		return ( parts.length < 1 ? '.' : parts.join( '/' ) ) + '/';
+	},
+
+	parse: function ( json ) {
+		var meshes = this.parseList ( json.meshes, this.parseMesh );
+		var materials = this.parseList ( json.materials, this.parseMaterial );
+		return this.parseObject( json, json.rootnode, meshes, materials );
+	},
+
+	parseList : function(json, handler) {
+		var meshes = new Array(json.length);
+		for(var i = 0; i < json.length; ++i) {
+			meshes[i] = handler.call(this, json[i]);
+		}
+		return meshes;
+	},
+
+	parseMesh : function(json) {
+		var vertex, geometry, i, e, in_data, src;
+
+
+		geometry = new THREE.Geometry();
+
+		// read vertex positions
+		for(in_data = json.vertices, i = 0, e = in_data.length; i < e; ) {
+			geometry.vertices.push( new THREE.Vector3( in_data[ i++ ], in_data[ i++ ], in_data[ i++ ] ) );
+		}
+
+		// read faces
+		var cnt = 0;
+		for(in_data = json.faces, i = 0, e = in_data.length; i < e; ++i) {
+			face = new THREE.Face3();
+			src = in_data[i];
+			face.a = src[0];
+			face.b = src[1];
+			face.c = src[2];
+
+			face.materialIndex = 0; //json.materialindex;
+			geometry.faces.push(face);
+		}
+
+		// read texture coordinates - three.js attaches them to its faces
+		for(i = 0, e = json.texturecoords.length; i < e; ++i) {
+
+			function convertTextureCoords(in_uv, out_faces, out_vertex_uvs) {
+				var i, e, face, a, b, c;
+
+				for(i = 0, e = out_faces.length; i < e; ++i) {
+					face = out_faces[i];
+					a = face.a * 2;
+					b = face.b * 2;
+					c = face.c * 2;
+					out_vertex_uvs.push([
+						new THREE.Vector2( in_uv[ a ], in_uv[ a + 1 ] ),
+						new THREE.Vector2( in_uv[ b ], in_uv[ b + 1 ] ),
+						new THREE.Vector2( in_uv[ c ], in_uv[ c + 1 ] )
+					]);
+				}
+			}
+
+			convertTextureCoords(json.texturecoords[i], geometry.faces, geometry.faceVertexUvs[i]);
+		}
+
+		// read normals - three.js also attaches them to its faces
+		if(json.normals) {
+
+			function convertNormals(in_nor, out_faces) {
+				var i, e, face, a, b, c;
+
+				for(i = 0, e = out_faces.length; i < e; ++i) {
+					face = out_faces[i];
+					a = face.a * 3;
+					b = face.b * 3;
+					c = face.c * 3;
+					face.vertexNormals = [
+						new THREE.Vector3( in_nor[ a ], in_nor[ a + 1 ], in_nor[ a + 2 ] ),
+						new THREE.Vector3( in_nor[ b ], in_nor[ b + 1 ], in_nor[ b + 2 ] ),
+						new THREE.Vector3( in_nor[ c ], in_nor[ c + 1 ], in_nor[ c + 2 ] )
+					];
+				}
+			}
+
+			convertNormals(json.normals, geometry.faces);
+		}
+
+		// read vertex colors - three.js also attaches them to its faces
+		if(json.colors && json.colors[0]) {
+
+			function convertColors(in_color, out_faces) {
+				var i, e, face, a, b, c;
+
+				function makeColor(start) {
+					var col = new THREE.Color( );
+					col.setRGB( arr[0], arr[1], arr[2] );
+					// TODO: what about alpha?
+					return col;
+				}
+
+				for(i = 0, e = out_faces.length; i < e; ++i) {
+					face = out_faces[i];
+					a = face.a * 4;
+					b = face.b * 4;
+					c = face.c * 4;
+					face.vertexColors = [
+						makeColor( a ),
+						makeColor( b ),
+						makeColor( c )
+					];
+				}
+			}
+
+			convertColors(json.colors[0], geometry.faces);
+		}
+
+
+		geometry.computeCentroids();
+		//geometry.computeFaceNormals();
+		//geometry.computeVertexNormals();
+		//geometry.computeTangents();
+		geometry.computeBoundingSphere();
+
+		// TODO: tangents
+		return geometry;
+	},
+
+	parseMaterial : function(json) {
+		var mat = null, 
+		scope = this, i, prop, has_textures = [],
+
+		init_props = {
+			shading : THREE.SmoothShading
+		};
+
+		function toColor(value_arr) {
+			var col = new THREE.Color();
+			col.setRGB(value_arr[0],value_arr[1],value_arr[2]);
+			return col;
+		}
+
+		function defaultTexture() {
+			var im = new Image();
+			im.width = 1;
+			im.height = 1;
+			return new THREE.Texture(im);
+		}
+
+		for (var i in json.properties) {
+			prop = json.properties[i];
+
+			if(prop.key === '$tex.file') {
+				// prop.semantic gives the type of the texture
+				// 1: diffuse
+				// 2: specular mao
+				// 5: height map (bumps)
+				// 6: normal map
+				// more values (i.e. emissive, environment) are known by assimp and may be relevant
+				if(prop.semantic === 1 || prop.semantic === 5 || prop.semantic === 6 || prop.semantic === 2) {
+					(function(semantic) {
+						var loader = new THREE.TextureLoader(scope.manager),
+						keyname;
+
+						if(semantic === 1) {
+							keyname = 'map';
+						}
+						else if(semantic === 5) {
+							keyname = 'bumpMap';
+						}
+						else if(semantic === 6) {
+							keyname = 'normalMap';
+						}
+						else if(semantic === 2) {
+							keyname = 'specularMap';
+						}
+
+						has_textures.push(keyname);
+
+						loader.setCrossOrigin(this.crossOrigin);
+						loader.load(scope.texturePath + '/' + prop.value, function(tex) {
+							if(tex) {
+								// TODO: read texture settings from assimp.
+								// Wrapping is the default, though.
+								tex.wrapS = tex.wrapT = THREE.RepeatWrapping;
+
+								mat[keyname] = tex;
+								mat.needsUpdate = true;
+							}
+						});
+					})(prop.semantic);
+				}
+			}
+			else if(prop.key === '?mat.name') {
+				init_props.name = prop.value;
+			}
+			else if(prop.key === '$clr.diffuse') {
+				init_props.color = toColor(prop.value);
+			}
+			else if(prop.key === '$clr.specular') {
+				init_props.specular = toColor(prop.value);
+			}
+			else if(prop.key === '$clr.ambient') {
+				init_props.ambient = toColor(prop.value);
+			}
+			else if(prop.key === '$clr.emissive') {
+				init_props.emissive = toColor(prop.value);
+			}
+			else if(prop.key === '$mat.shadingm') {
+				// aiShadingMode_Flat
+				if (prop.value === 1) {
+					init_props.shading = THREE.FlatShading;
+				}
+			}
+			else if (prop.key === '$mat.shininess') {
+				init_props.shininess = prop.value;
+			}
+		}
+
+		if(!init_props.ambient) {
+			init_props.ambient = init_props.color;
+		}
+
+		// note: three.js does not like it when a texture is added after the geometry
+		// has been rendered once, see http://stackoverflow.com/questions/16531759/.
+		// for this reason we fill all slots upfront with default textures
+		if(has_textures.length) {
+			for(i = has_textures.length-1; i >= 0; --i) {
+				init_props[has_textures[i]] = defaultTexture();
+			}
+		}
+		
+		mat = new THREE.MeshPhongMaterial( init_props );
+		return mat;
+	},
+
+	parseObject : function(json, node, meshes, materials) {
+		var obj = new THREE.Object3D()
+		,	i
+		,	idx
+		;
+
+		obj.name = node.name || "";
+		obj.matrix = new THREE.Matrix4().fromArray(node.transformation).transpose();
+		obj.matrix.decompose( obj.position, obj.quaternion, obj.scale );
+
+		for(i = 0; node.meshes && i < node.meshes.length; ++i) {
+			idx = node.meshes[i];
+			obj.add(new THREE.Mesh( meshes[idx], materials[json.meshes[idx].materialindex] ));
+		}
+
+		for(i = 0; node.children && i < node.children.length; ++i) {
+			obj.add(this.parseObject(json, node.children[i], meshes, materials));
+		}
+
+		return obj;
+	},
+};
+
+

+ 22 - 36
examples/js/loaders/BabylonLoader.js

@@ -90,16 +90,16 @@ THREE.BabylonLoader.prototype = {
 					break;
 
 				case 2:
-					light = new BABYLON.SpotLight();
+					light = new THREE.SpotLight();
 					break;
 
 				case 3:
-					light = new BABYLON.HemisphericLight();
+					light = new THREE.HemisphereLight();
 					break;
 			}
 
 			light.name = data.name;
-			light.position.set( data.data[ 0 ], data.data[ 1 ], - data.data[ 2 ] );
+			light.position.set( data.position[ 0 ], data.position[ 1 ], - data.position[ 2 ] );
 			light.color.fromArray( data.diffuse );
 			if ( data.intensity ) light.intensity = data.intensity;
 
@@ -126,49 +126,35 @@ THREE.BabylonLoader.prototype = {
 					array: new Uint16Array( data.indices )
 				};
 
-				var strideSize = 0;
-				var positions = [];
-				var normals = [];
+				geometry.attributes.position = {
+					itemSize: 3,
+					array: new Float32Array( data.positions )
+				};
+
+				var positions = geometry.attributes.position.array;
 
-				switch ( data.uvCount ) {
+				for ( var j = 2, jl = positions.length; j < jl; j += 3 ) {
 
-					case 0:
-						strideSize = 6; // [3, 3]
-						break;
-					case 1:
-						strideSize = 8; // [3, 3, 2]
-						break;
-					case 2:
-						strideSize = 10; // [3, 3, 2, 2]
-						break;
+					positions[ j ] = - positions[ j ]; 
 
 				}
 
-				var vertices = data.vertices;
+				geometry.attributes.normal = {
+					itemSize: 3,
+					array: new Float32Array( data.normals )
+				};
+
+				var normals = geometry.attributes.normal.array;
 
-				for ( var j = 0, jl = vertices.length; j < jl; j += strideSize ) {
+				for ( var j = 2, jl = normals.length; j < jl; j += 3 ) {
 
-					positions.push(
-						vertices[ j ],
-						vertices[ j + 1 ],
-						- vertices[ j + 2 ]
-					);
+					normals[ j ] = - normals[ j ]; 
 
-					normals.push( 
-						vertices[ j + 3 ],
-						vertices[ j + 4 ],
-						- vertices[ j + 5 ]
-					);
 				}
 
-				geometry.attributes.position = {
-					itemSize: 3,
-					array: new Float32Array( positions )
-				};
-
-				geometry.attributes.normal = {
-					itemSize: 3,
-					array: new Float32Array( normals )
+				geometry.attributes.uv = {
+					itemSize: 2,
+					array: new Float32Array( data.uvs )
 				};
 
 				var subMeshes = data.subMeshes;

+ 230 - 90
examples/js/loaders/OBJLoader.js

@@ -28,18 +28,6 @@ THREE.OBJLoader.prototype = {
 
 	parse: function ( text ) {
 
-		// fixes
-
-		text = text.replace( /\ \\\r\n/g, '' ); // rhino adds ' \\r\n' some times.
-
-		var replacement = '/f$1$2$4\n/f$2$3$4'; // quads to tris
-		text = text.replace( /f( +\d+)( +\d+)( +\d+)( +\d+)/g, replacement );
-		text = text.replace( /f( +\d+\/\d+)( +\d+\/\d+)( +\d+\/\d+)( +\d+\/\d+)/g, replacement );
-		text = text.replace( /f( +\d+\/\d+\/\d+)( +\d+\/\d+\/\d+)( +\d+\/\d+\/\d+)( +\d+\/\d+\/\d+)/g, replacement );
-		text = text.replace( /f( +\d+\/\/\d+)( +\d+\/\/\d+)( +\d+\/\/\d+)( +\d+\/\/\d+)/g, replacement );
-
-		//
-
 		function vector( x, y, z ) {
 
 			return new THREE.Vector3( x, y, z );
@@ -89,21 +77,21 @@ THREE.OBJLoader.prototype = {
 
 		var uv_pattern = /vt( +[\d|\.|\+|\-|e]+)( +[\d|\.|\+|\-|e]+)/;
 
-		// f vertex vertex vertex
+		// f vertex vertex vertex ...
 
-		var face_pattern1 = /f( +\d+)( +\d+)( +\d+)/;
+		var face_pattern1 = /f( +\d+)( +\d+)( +\d+)( +\d+)?/;
 
-		// f vertex/uv vertex/uv vertex/uv
+		// f vertex/uv vertex/uv vertex/uv ...
 
-		var face_pattern2 = /f( +(\d+)\/(\d+))( +(\d+)\/(\d+))( +(\d+)\/(\d+))/;
+		var face_pattern2 = /f( +(\d+)\/(\d+))( +(\d+)\/(\d+))( +(\d+)\/(\d+))( +(\d+)\/(\d+))?/;
 
-		// f vertex/uv/normal vertex/uv/normal vertex/uv/normal
+		// f vertex/uv/normal vertex/uv/normal vertex/uv/normal ...
 
-		var face_pattern3 = /f( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))/;
+		var face_pattern3 = /f( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))?/;
 
-		// f vertex//normal vertex//normal vertex//normal
+		// f vertex//normal vertex//normal vertex//normal ... 
 
-		var face_pattern4 = /f( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))/;
+		var face_pattern4 = /f( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))?/
 
 		//
 
@@ -151,89 +139,241 @@ THREE.OBJLoader.prototype = {
 
 			} else if ( ( result = face_pattern1.exec( line ) ) !== null ) {
 
-				// ["f 1 2 3", "1", "2", "3"]
+				// ["f 1 2 3", "1", "2", "3", undefined]
 
-				geometry.vertices.push(
-					vertices[ parseInt( result[ 1 ] ) - 1 ],
-					vertices[ parseInt( result[ 2 ] ) - 1 ],
-					vertices[ parseInt( result[ 3 ] ) - 1 ]
-				);
+				 if ( result[ 4 ] === undefined ) {
 
-				geometry.faces.push( face3(
-					verticesCount ++,
-					verticesCount ++,
-					verticesCount ++
-				) );
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 1 ] ) - 1 ],
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 3 ] ) - 1 ]
+					);
 
-			} else if ( ( result = face_pattern2.exec( line ) ) !== null ) {
+					geometry.faces.push( face3(
+						verticesCount ++,
+						verticesCount ++,
+						verticesCount ++
+					) );
 
-				// ["f 1/1 2/2 3/3", " 1/1", "1", "1", " 2/2", "2", "2", " 3/3", "3", "3"]
+				} else {
 
-				geometry.vertices.push(
-					vertices[ parseInt( result[ 2 ] ) - 1 ],
-					vertices[ parseInt( result[ 5 ] ) - 1 ],
-					vertices[ parseInt( result[ 8 ] ) - 1 ]
-				);
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 1 ] ) - 1 ],
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 3 ] ) - 1 ],
+						vertices[ parseInt( result[ 4 ] ) - 1 ]
+					);
 
-				geometry.faces.push( face3(
-					verticesCount ++,
-					verticesCount ++,
-					verticesCount ++
-				) );
+					geometry.faces.push( face3(
+						verticesCount,
+						verticesCount + 1,
+						verticesCount + 3
+					) );
 
-				geometry.faceVertexUvs[ 0 ].push( [
-					uvs[ parseInt( result[ 3 ] ) - 1 ],
-					uvs[ parseInt( result[ 6 ] ) - 1 ],
-					uvs[ parseInt( result[ 9 ] ) - 1 ]
-				] );
+					geometry.faces.push( face3(
+						verticesCount + 1,
+						verticesCount + 2,
+						verticesCount + 3
+					) );
 
-			} else if ( ( result = face_pattern3.exec( line ) ) !== null ) {
+					verticesCount += 4;
 
-				// ["f 1/1/1 2/2/2 3/3/3", " 1/1/1", "1", "1", "1", " 2/2/2", "2", "2", "2", " 3/3/3", "3", "3", "3"]
-
-				geometry.vertices.push(
-					vertices[ parseInt( result[ 2 ] ) - 1 ],
-					vertices[ parseInt( result[ 6 ] ) - 1 ],
-					vertices[ parseInt( result[ 10 ] ) - 1 ]
-				);
-
-				geometry.faces.push( face3(
-					verticesCount ++,
-					verticesCount ++,
-					verticesCount ++,
-					[
-						normals[ parseInt( result[ 4 ] ) - 1 ],
-						normals[ parseInt( result[ 8 ] ) - 1 ],
-						normals[ parseInt( result[ 12 ] ) - 1 ]
-					]
-				) );
+				}
+
+			} else if ( ( result = face_pattern2.exec( line ) ) !== null ) {
 
-				geometry.faceVertexUvs[ 0 ].push( [
-					uvs[ parseInt( result[ 3 ] ) - 1 ],
-					uvs[ parseInt( result[ 7 ] ) - 1 ],
-					uvs[ parseInt( result[ 11 ] ) - 1 ]
-				] );
+				// ["f 1/1 2/2 3/3", " 1/1", "1", "1", " 2/2", "2", "2", " 3/3", "3", "3", undefined, undefined, undefined]
+
+				if ( result[ 10 ] === undefined ) {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 5 ] ) - 1 ],
+						vertices[ parseInt( result[ 8 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount ++,
+						verticesCount ++,
+						verticesCount ++
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 3 ] ) - 1 ],
+						uvs[ parseInt( result[ 6 ] ) - 1 ],
+						uvs[ parseInt( result[ 9 ] ) - 1 ]
+					] );
+
+				} else {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 5 ] ) - 1 ],
+						vertices[ parseInt( result[ 8 ] ) - 1 ],
+						vertices[ parseInt( result[ 11 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount,
+						verticesCount + 1,
+						verticesCount + 3
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 3 ] ) - 1 ],
+						uvs[ parseInt( result[ 6 ] ) - 1 ],
+						uvs[ parseInt( result[ 12 ] ) - 1 ]
+					] );
+
+					geometry.faces.push( face3(
+						verticesCount + 1,
+						verticesCount + 2,
+						verticesCount + 3
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 6 ] ) - 1 ],
+						uvs[ parseInt( result[ 9 ] ) - 1 ],
+						uvs[ parseInt( result[ 12 ] ) - 1 ]
+					] );
+
+					verticesCount += 4;
+
+				}
+
+			} else if ( ( result = face_pattern3.exec( line ) ) !== null ) {
+
+				// ["f 1/1/1 2/2/2 3/3/3", " 1/1/1", "1", "1", "1", " 2/2/2", "2", "2", "2", " 3/3/3", "3", "3", "3", undefined, undefined, undefined, undefined]
+
+				if ( result[ 13 ] === undefined ) {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 6 ] ) - 1 ],
+						vertices[ parseInt( result[ 10 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount ++,
+						verticesCount ++,
+						verticesCount ++,
+						[
+							normals[ parseInt( result[ 4 ] ) - 1 ],
+							normals[ parseInt( result[ 8 ] ) - 1 ],
+							normals[ parseInt( result[ 12 ] ) - 1 ]
+						]
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 3 ] ) - 1 ],
+						uvs[ parseInt( result[ 7 ] ) - 1 ],
+						uvs[ parseInt( result[ 11 ] ) - 1 ]
+					] );
+
+				} else {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 6 ] ) - 1 ],
+						vertices[ parseInt( result[ 10 ] ) - 1 ],
+						vertices[ parseInt( result[ 14 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount,
+						verticesCount + 1,
+						verticesCount + 3,
+						[
+							normals[ parseInt( result[ 4 ] ) - 1 ],
+							normals[ parseInt( result[ 8 ] ) - 1 ],
+							normals[ parseInt( result[ 16 ] ) - 1 ]
+						]
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 3 ] ) - 1 ],
+						uvs[ parseInt( result[ 7 ] ) - 1 ],
+						uvs[ parseInt( result[ 15 ] ) - 1 ]
+					] );
+
+					geometry.faces.push( face3(
+						verticesCount + 1,
+						verticesCount + 2,
+						verticesCount + 3,
+						[
+							normals[ parseInt( result[ 8 ] ) - 1 ],
+							normals[ parseInt( result[ 12 ] ) - 1 ],
+							normals[ parseInt( result[ 16 ] ) - 1 ]
+						]
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 7 ] ) - 1 ],
+						uvs[ parseInt( result[ 11 ] ) - 1 ],
+						uvs[ parseInt( result[ 15 ] ) - 1 ]
+					] );
+
+					verticesCount += 4;
+
+				}
 
 			} else if ( ( result = face_pattern4.exec( line ) ) !== null ) {
 
-				// ["f 1//1 2//2 3//3", " 1//1", "1", "1", " 2//2", "2", "2", " 3//3", "3", "3"]
-
-				geometry.vertices.push(
-					vertices[ parseInt( result[ 2 ] ) - 1 ],
-					vertices[ parseInt( result[ 5 ] ) - 1 ],
-					vertices[ parseInt( result[ 8 ] ) - 1 ]
-				);
-
-				geometry.faces.push( face3(
-					verticesCount ++,
-					verticesCount ++,
-					verticesCount ++,
-					[
-						normals[ parseInt( result[ 3 ] ) - 1 ],
-						normals[ parseInt( result[ 6 ] ) - 1 ],
-						normals[ parseInt( result[ 9 ] ) - 1 ]
-					]
-				) );
+				// ["f 1//1 2//2 3//3", " 1//1", "1", "1", " 2//2", "2", "2", " 3//3", "3", "3", undefined, undefined, undefined]
+
+				if ( result[ 10 ] === undefined ) {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 5 ] ) - 1 ],
+						vertices[ parseInt( result[ 8 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount ++,
+						verticesCount ++,
+						verticesCount ++,
+						[
+							normals[ parseInt( result[ 3 ] ) - 1 ],
+							normals[ parseInt( result[ 6 ] ) - 1 ],
+							normals[ parseInt( result[ 9 ] ) - 1 ]
+						]
+					) );
+
+				} else {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 5 ] ) - 1 ],
+						vertices[ parseInt( result[ 8 ] ) - 1 ],
+						vertices[ parseInt( result[ 11 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount,
+						verticesCount + 1,
+						verticesCount + 3,
+						[
+							normals[ parseInt( result[ 3 ] ) - 1 ],
+							normals[ parseInt( result[ 6 ] ) - 1 ],
+							normals[ parseInt( result[ 12 ] ) - 1 ]
+						]
+					) );
+
+					geometry.faces.push( face3(
+						verticesCount + 1,
+						verticesCount + 2,
+						verticesCount + 3,
+						[
+							normals[ parseInt( result[ 6 ] ) - 1 ],
+							normals[ parseInt( result[ 9 ] ) - 1 ],
+							normals[ parseInt( result[ 12 ] ) - 1 ]
+						]
+					) );
+
+					verticesCount += 4;
+
+				}
 
 			} else if ( /^o /.test( line ) ) {
 

+ 230 - 90
examples/js/loaders/OBJMTLLoader.js

@@ -60,18 +60,6 @@ THREE.OBJMTLLoader.prototype = {
 
 	parse: function ( data, mtllibCallback ) {
 
-		// fixes
-
-		data = data.replace( /\ \\\r\n/g, '' ); // rhino adds ' \\r\n' some times.
-
-		var replacement = '/f$1$2$4\n/f$2$3$4'; // quads to tris
-		data = data.replace( /f( +\d+)( +\d+)( +\d+)( +\d+)/g, replacement );
-		data = data.replace( /f( +\d+\/\d+)( +\d+\/\d+)( +\d+\/\d+)( +\d+\/\d+)/g, replacement );
-		data = data.replace( /f( +\d+\/\d+\/\d+)( +\d+\/\d+\/\d+)( +\d+\/\d+\/\d+)( +\d+\/\d+\/\d+)/g, replacement );
-		data = data.replace( /f( +\d+\/\/\d+)( +\d+\/\/\d+)( +\d+\/\/\d+)( +\d+\/\/\d+)/g, replacement );
-
-		//
-
 		function vector( x, y, z ) {
 
 			return new THREE.Vector3( x, y, z );
@@ -142,23 +130,23 @@ THREE.OBJMTLLoader.prototype = {
 
 		// vt float float
 
-		var uv_pattern = /vt( +[\d|\.|\+|\-|e]+)( +[\d|\.|\+|\-|e]+)/
+		var uv_pattern = /vt( +[\d|\.|\+|\-|e]+)( +[\d|\.|\+|\-|e]+)/;
 
-		// f vertex vertex vertex
+		// f vertex vertex vertex ...
 
-		var face_pattern1 = /f( +\d+)( +\d+)( +\d+)/
+		var face_pattern1 = /f( +\d+)( +\d+)( +\d+)( +\d+)?/;
 
-		// f vertex/uv vertex/uv vertex/uv
+		// f vertex/uv vertex/uv vertex/uv ...
 
-		var face_pattern2 = /f( +(\d+)\/(\d+))( +(\d+)\/(\d+))( +(\d+)\/(\d+))/;
+		var face_pattern2 = /f( +(\d+)\/(\d+))( +(\d+)\/(\d+))( +(\d+)\/(\d+))( +(\d+)\/(\d+))?/;
 
-		// f vertex/uv/normal vertex/uv/normal vertex/uv/normal
+		// f vertex/uv/normal vertex/uv/normal vertex/uv/normal ...
 
-		var face_pattern3 = /f( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))/;
+		var face_pattern3 = /f( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))?/;
 
-		// f vertex//normal vertex//normal vertex//normal
+		// f vertex//normal vertex//normal vertex//normal ... 
 
-		var face_pattern4 = /f( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))/;
+		var face_pattern4 = /f( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))?/
 
 		//
 
@@ -206,89 +194,241 @@ THREE.OBJMTLLoader.prototype = {
 
 			} else if ( ( result = face_pattern1.exec( line ) ) !== null ) {
 
-				// ["f 1 2 3", "1", "2", "3"]
+				// ["f 1 2 3", "1", "2", "3", undefined]
 
-				geometry.vertices.push(
-					vertices[ parseInt( result[ 1 ] ) - 1 ],
-					vertices[ parseInt( result[ 2 ] ) - 1 ],
-					vertices[ parseInt( result[ 3 ] ) - 1 ]
-				);
+				 if ( result[ 4 ] === undefined ) {
 
-				geometry.faces.push( face3(
-					verticesCount ++,
-					verticesCount ++,
-					verticesCount ++
-				) );
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 1 ] ) - 1 ],
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 3 ] ) - 1 ]
+					);
 
-			} else if ( ( result = face_pattern2.exec( line ) ) !== null ) {
+					geometry.faces.push( face3(
+						verticesCount ++,
+						verticesCount ++,
+						verticesCount ++
+					) );
 
-				// ["f 1/1 2/2 3/3", " 1/1", "1", "1", " 2/2", "2", "2", " 3/3", "3", "3"]
+				} else {
 
-				geometry.vertices.push(
-					vertices[ parseInt( result[ 2 ] ) - 1 ],
-					vertices[ parseInt( result[ 5 ] ) - 1 ],
-					vertices[ parseInt( result[ 8 ] ) - 1 ]
-				);
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 1 ] ) - 1 ],
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 3 ] ) - 1 ],
+						vertices[ parseInt( result[ 4 ] ) - 1 ]
+					);
 
-				geometry.faces.push( face3(
-					verticesCount ++,
-					verticesCount ++,
-					verticesCount ++
-				) );
+					geometry.faces.push( face3(
+						verticesCount,
+						verticesCount + 1,
+						verticesCount + 3
+					) );
+
+					geometry.faces.push( face3(
+						verticesCount + 1,
+						verticesCount + 2,
+						verticesCount + 3
+					) );
 
-				geometry.faceVertexUvs[ 0 ].push( [
-					uvs[ parseInt( result[ 3 ] ) - 1 ],
-					uvs[ parseInt( result[ 6 ] ) - 1 ],
-					uvs[ parseInt( result[ 9 ] ) - 1 ]
-				] );
+					verticesCount += 4;
+
+				}
+
+			} else if ( ( result = face_pattern2.exec( line ) ) !== null ) {
+
+				// ["f 1/1 2/2 3/3", " 1/1", "1", "1", " 2/2", "2", "2", " 3/3", "3", "3", undefined, undefined, undefined]
+
+				if ( result[ 10 ] === undefined ) {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 5 ] ) - 1 ],
+						vertices[ parseInt( result[ 8 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount ++,
+						verticesCount ++,
+						verticesCount ++
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 3 ] ) - 1 ],
+						uvs[ parseInt( result[ 6 ] ) - 1 ],
+						uvs[ parseInt( result[ 9 ] ) - 1 ]
+					] );
+
+				} else {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 5 ] ) - 1 ],
+						vertices[ parseInt( result[ 8 ] ) - 1 ],
+						vertices[ parseInt( result[ 11 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount,
+						verticesCount + 1,
+						verticesCount + 3
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 3 ] ) - 1 ],
+						uvs[ parseInt( result[ 6 ] ) - 1 ],
+						uvs[ parseInt( result[ 12 ] ) - 1 ]
+					] );
+
+					geometry.faces.push( face3(
+						verticesCount + 1,
+						verticesCount + 2,
+						verticesCount + 3
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 6 ] ) - 1 ],
+						uvs[ parseInt( result[ 9 ] ) - 1 ],
+						uvs[ parseInt( result[ 12 ] ) - 1 ]
+					] );
+
+					verticesCount += 4;
+
+				}
 
 			} else if ( ( result = face_pattern3.exec( line ) ) !== null ) {
 
-				// ["f 1/1/1 2/2/2 3/3/3", " 1/1/1", "1", "1", "1", " 2/2/2", "2", "2", "2", " 3/3/3", "3", "3", "3"]
-
-				geometry.vertices.push(
-					vertices[ parseInt( result[ 2 ] ) - 1 ],
-					vertices[ parseInt( result[ 6 ] ) - 1 ],
-					vertices[ parseInt( result[ 10 ] ) - 1 ]
-				);
-
-				geometry.faces.push( face3(
-					verticesCount ++,
-					verticesCount ++,
-					verticesCount ++,
-					[
-						normals[ parseInt( result[ 4 ] ) - 1 ],
-						normals[ parseInt( result[ 8 ] ) - 1 ],
-						normals[ parseInt( result[ 12 ] ) - 1 ]
-					]
-				) );
+				// ["f 1/1/1 2/2/2 3/3/3", " 1/1/1", "1", "1", "1", " 2/2/2", "2", "2", "2", " 3/3/3", "3", "3", "3", undefined, undefined, undefined, undefined]
+
+				if ( result[ 13 ] === undefined ) {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 6 ] ) - 1 ],
+						vertices[ parseInt( result[ 10 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount ++,
+						verticesCount ++,
+						verticesCount ++,
+						[
+							normals[ parseInt( result[ 4 ] ) - 1 ],
+							normals[ parseInt( result[ 8 ] ) - 1 ],
+							normals[ parseInt( result[ 12 ] ) - 1 ]
+						]
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 3 ] ) - 1 ],
+						uvs[ parseInt( result[ 7 ] ) - 1 ],
+						uvs[ parseInt( result[ 11 ] ) - 1 ]
+					] );
+
+				} else {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 6 ] ) - 1 ],
+						vertices[ parseInt( result[ 10 ] ) - 1 ],
+						vertices[ parseInt( result[ 14 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount,
+						verticesCount + 1,
+						verticesCount + 3,
+						[
+							normals[ parseInt( result[ 4 ] ) - 1 ],
+							normals[ parseInt( result[ 8 ] ) - 1 ],
+							normals[ parseInt( result[ 16 ] ) - 1 ]
+						]
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 3 ] ) - 1 ],
+						uvs[ parseInt( result[ 7 ] ) - 1 ],
+						uvs[ parseInt( result[ 15 ] ) - 1 ]
+					] );
+
+					geometry.faces.push( face3(
+						verticesCount + 1,
+						verticesCount + 2,
+						verticesCount + 3,
+						[
+							normals[ parseInt( result[ 8 ] ) - 1 ],
+							normals[ parseInt( result[ 12 ] ) - 1 ],
+							normals[ parseInt( result[ 16 ] ) - 1 ]
+						]
+					) );
+
+					geometry.faceVertexUvs[ 0 ].push( [
+						uvs[ parseInt( result[ 7 ] ) - 1 ],
+						uvs[ parseInt( result[ 11 ] ) - 1 ],
+						uvs[ parseInt( result[ 15 ] ) - 1 ]
+					] );
+
+					verticesCount += 4;
 
-				geometry.faceVertexUvs[ 0 ].push( [
-					uvs[ parseInt( result[ 3 ] ) - 1 ],
-					uvs[ parseInt( result[ 7 ] ) - 1 ],
-					uvs[ parseInt( result[ 11 ] ) - 1 ]
-				] );
+				}
 
 			} else if ( ( result = face_pattern4.exec( line ) ) !== null ) {
 
-				// ["f 1//1 2//2 3//3", " 1//1", "1", "1", " 2//2", "2", "2", " 3//3", "3", "3"]
-
-				geometry.vertices.push(
-					vertices[ parseInt( result[ 2 ] ) - 1 ],
-					vertices[ parseInt( result[ 5 ] ) - 1 ],
-					vertices[ parseInt( result[ 8 ] ) - 1 ]
-				);
-
-				geometry.faces.push( face3(
-					verticesCount ++,
-					verticesCount ++,
-					verticesCount ++,
-					[
-						normals[ parseInt( result[ 3 ] ) - 1 ],
-						normals[ parseInt( result[ 6 ] ) - 1 ],
-						normals[ parseInt( result[ 9 ] ) - 1 ]
-					]
-				) );
+				// ["f 1//1 2//2 3//3", " 1//1", "1", "1", " 2//2", "2", "2", " 3//3", "3", "3", undefined, undefined, undefined]
+
+				if ( result[ 10 ] === undefined ) {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 5 ] ) - 1 ],
+						vertices[ parseInt( result[ 8 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount ++,
+						verticesCount ++,
+						verticesCount ++,
+						[
+							normals[ parseInt( result[ 3 ] ) - 1 ],
+							normals[ parseInt( result[ 6 ] ) - 1 ],
+							normals[ parseInt( result[ 9 ] ) - 1 ]
+						]
+					) );
+
+				} else {
+
+					geometry.vertices.push(
+						vertices[ parseInt( result[ 2 ] ) - 1 ],
+						vertices[ parseInt( result[ 5 ] ) - 1 ],
+						vertices[ parseInt( result[ 8 ] ) - 1 ],
+						vertices[ parseInt( result[ 11 ] ) - 1 ]
+					);
+
+					geometry.faces.push( face3(
+						verticesCount,
+						verticesCount + 1,
+						verticesCount + 3,
+						[
+							normals[ parseInt( result[ 3 ] ) - 1 ],
+							normals[ parseInt( result[ 6 ] ) - 1 ],
+							normals[ parseInt( result[ 12 ] ) - 1 ]
+						]
+					) );
+
+					geometry.faces.push( face3(
+						verticesCount + 1,
+						verticesCount + 2,
+						verticesCount + 3,
+						[
+							normals[ parseInt( result[ 6 ] ) - 1 ],
+							normals[ parseInt( result[ 9 ] ) - 1 ],
+							normals[ parseInt( result[ 12 ] ) - 1 ]
+						]
+					) );
+
+					verticesCount += 4;
+
+				}
 
 			} else if ( /^o /.test( line ) ) {
 

+ 148 - 30
examples/js/loaders/VRMLLoader.js

@@ -6,7 +6,7 @@ THREE.VRMLLoader = function () {};
 
 THREE.VRMLLoader.prototype = {
 
-	constructor: THREE.VTKLoader,
+	constructor: THREE.VRMLLoader,
 
 	load: function ( url, callback ) {
 
@@ -52,18 +52,33 @@ THREE.VRMLLoader.prototype = {
 
 				var tree = { 'string': 'Scene', children: [] };
 				var current = tree;
+                var matches;
 
 				for ( var i = 0; i < lines.length; i ++ ) {
 
+                    var comment = '';
+
 					var line = lines[ i ];
 
-					if ( /^#/.exec( line ) ) {
+                    // omit whitespace only lines
+                    if ( null !== ( result = /^\s+?$/g.exec( line ) ) ) {
+                        continue;
+                    }
+
+					if ( /#/.exec( line ) ) {
+
+                        var parts = line.split('#');
 
-						continue;
+                        // discard everything after the #, it is a comment
+                        line = parts[0];
 
-					} else if ( /{/.exec( line ) ) {
+                        // well, let's also keep the comment
+                        comment = parts[1];
+					}
+                    // todo: add collection like coordIndex and colorIndex who are delimited by [ ]
+                    if ( matches = /([^\s]*){1}\s?{/.exec( line ) ) { // first subpattern should match the Node name
 
-						var block = { 'string': line, 'parent': current, 'children': [] };
+						var block = { 'nodeType' : matches[1], 'string': line, 'parent': current, 'children': [],'comment' : comment };
 						current.children.push( block );
 						current = block;
 
@@ -80,20 +95,20 @@ THREE.VRMLLoader.prototype = {
 
 					} else if ( line !== '' ) {
 
-						current.children.push( line );
+                        current.children.push( line );
 
 					}
 
 				}
 
-				return tree;
+                return tree;
 
 			}
 
 			var defines = {};
-			var float_pattern = /( +[\d|\.|\+|\-|e]+)/;
-			var float3_pattern = /( +[\d|\.|\+|\-|e]+),?( +[\d|\.|\+|\-|e]+),?( +[\d|\.|\+|\-|e]+)/;
-			var float4_pattern = /( +[\d|\.|\+|\-|e]+),?( +[\d|\.|\+|\-|e]+),?( +[\d|\.|\+|\-|e]+),?( +[\d|\.|\+|\-|e]+)/;
+			var float_pattern = /\s+([\d|\.|\+|\-|e]+)/;
+			var float3_pattern = /\s+([\d|\.|\+|\-|e]+),?\s+([\d|\.|\+|\-|e]+),?\s+([\d|\.|\+|\-|e]+)/;
+			var float4_pattern = /\s+([\d|\.|\+|\-|e]+),?\s+([\d|\.|\+|\-|e]+),?\s+([\d|\.|\+|\-|e]+),?\s+([\d|\.|\+|\-|e]+)/;
 
 			var parseNode = function ( data, parent ) {
 
@@ -103,16 +118,29 @@ THREE.VRMLLoader.prototype = {
 
 					if ( /USE/.exec( data ) ) {
 
-						if ( /appearance/.exec( data ) ) {
+                        var defineKey = /USE\s+?(\w+)/.exec( data )[ 1 ];
 
-							parent.material = defines[ /USE (\w+)/.exec( data )[ 1 ] ].clone();
+                        if (undefined == defines[defineKey]) {
+                            debugger;
+                            console.warn(defineKey + ' is not defined.');
 
-						} else {
+                        } else {
 
-							var object = defines[ /USE (\w+)/.exec( data )[ 1 ] ].clone();
-							parent.add( object );
+                            if ( /appearance/.exec( data ) && defineKey ) {
 
-						}
+                                parent.material = defines[ defineKey].clone();
+
+                            } else if ( /geometry/.exec( data ) && defineKey ) {
+
+                                parent.geometry = defines[ defineKey].clone();
+
+                            } else if (defineKey){
+                                var object = defines[ defineKey ].clone();
+                                parent.add( object );
+
+                            }
+
+                        }
 
 					}
 
@@ -123,12 +151,11 @@ THREE.VRMLLoader.prototype = {
 				var object = parent;
 
 				if ( /Transform/.exec( data.string ) || /Group/.exec( data.string ) ) {
-
 					object = new THREE.Object3D();
 
 					if ( /DEF/.exec( data.string ) ) {
 
-						object.name = /DEF (\w+)/.exec( data.string )[ 1 ];
+						object.name = /DEF\s+(\w+)/.exec( data.string )[ 1 ];
 						defines[ object.name ] = object;
 
 					}
@@ -151,13 +178,14 @@ THREE.VRMLLoader.prototype = {
 
 							var result = float4_pattern.exec( child );
 
-							object.quaternion.set(
-								parseFloat( result[ 1 ] ),
-								parseFloat( result[ 2 ] ),
-								parseFloat( result[ 3 ] ),
-								parseFloat( result[ 4 ] )
-							);
+                            var quaternion = new THREE.Quaternion();
 
+                            var x =  parseFloat( result[ 1 ] );
+                            var y = parseFloat(result[ 2 ]);
+                            var z = parseFloat(result[ 3 ]);
+                            var w = parseFloat(result[ 4 ]);
+
+                            object.quaternion.setFromAxisAngle( new THREE.Vector3( x, y, z), w );
 						} else if ( /scale/.exec( child ) ) {
 
 							var result = float3_pattern.exec( child );
@@ -179,10 +207,8 @@ THREE.VRMLLoader.prototype = {
 					object = new THREE.Mesh();
 
 					if ( /DEF/.exec( data.string ) ) {
-
 						object.name = /DEF (\w+)/.exec( data.string )[ 1 ];
 						defines[ object.name ] = object;
-
 					}
 
 					parent.add( object );
@@ -257,10 +283,100 @@ THREE.VRMLLoader.prototype = {
 
 					} else if ( /Sphere/.exec( data.string ) ) {
 
-						var result = /radius( +[\d|\.|\+|\-|e]+)/.exec( data.children[ 0 ] );
+						var result = /radius\s+([\d|\.|\+|\-|e]+)/.exec( data.children[ 0 ] );
 
 						parent.geometry = new THREE.SphereGeometry( parseFloat( result[ 1 ] ) );
 
+					} else if ( /IndexedFaceSet/.exec( data.string ) ) {
+
+                        var geometry = new THREE.Geometry();
+
+                        var isRecordingCoordinates = false;
+
+                        for (var i = 0, j = data.children.length; i < j; i++) {
+
+                            var child = data.children[i];
+
+                            var result;
+                            var vec;
+
+                            if ( /Coordinate/.exec (child.string)) {
+
+                                for (var k = 0, l = child.children.length; k < l; k++) {
+
+                                    var point = child.children[k];
+
+                                    if (null != (result = float3_pattern.exec(point))) {
+
+                                        vec = new THREE.Vector3(
+                                            parseFloat(result[1]),
+                                            parseFloat(result[2]),
+                                            parseFloat(result[3])
+                                        );
+
+                                        geometry.vertices.push( vec );
+                                    }
+                                }
+                            }
+
+                            if (/coordIndex/.exec(child)) {
+                                isRecordingCoordinates = true;
+                            }
+
+                            var coordIndex = false;
+                            var points =  [];
+                            var skip = 0;
+                            var regex = /(-?\d+)/g;
+                            // read this: http://math.hws.edu/eck/cs424/notes2013/16_Threejs_Advanced.html
+                            while ( isRecordingCoordinates && null != (coordIndex = regex.exec(child) ) ) {
+                                // parse coordIndex lines
+                                coordIndex = parseInt(coordIndex, 10);
+
+                                points.push(coordIndex);
+
+                                // -1 indicates end of face points
+                                if (coordIndex === -1) {
+                                    // reset the collection
+                                    points = [];
+                                }
+
+                                // vrml support multipoint indexed face sets (more then 3 vertices). You must calculate the composing triangles here
+
+                                skip = points.length -3;
+                                skip = skip < 0 ? 0 : skip;
+
+                                // Face3 only works with triangles, but IndexedFaceSet allows shapes with more then three vertices, build them of triangles
+                                if (points.length >= 3) {
+                                    var face = new THREE.Face3(
+                                        points[0],
+                                        points[skip + 1],
+                                        points[skip + 2],
+                                        null // normal, will be added later
+                                        // todo: pass in the color
+                                    );
+
+                                    geometry.faces.push(face);
+
+                                    }
+
+                            }
+
+                            // stop recording if a ] is encountered after recording was turned on
+                            isRecordingCoordinates = (isRecordingCoordinates && null === (/]/.exec(child) ) );
+
+                        }
+
+                        geometry.computeFaceNormals();
+                        //geometry.computeVertexNormals(); // does not show
+                        geometry.computeBoundingSphere();
+
+                        // see if it's a define
+                        if ( /DEF/.exec( data.string ) ) {
+                            geometry.name = /DEF (\w+)/.exec( data.string )[ 1 ];
+                            defines[ geometry.name ] = geometry;
+                        }
+
+                        parent.geometry = geometry;
 					}
 
 					return;
@@ -274,6 +390,7 @@ THREE.VRMLLoader.prototype = {
 						if ( /Material/.exec( child.string ) ) {
 
 							var material = new THREE.MeshPhongMaterial();
+                            material.side = THREE.DoubleSide;
 
 							for ( var j = 0; j < child.children.length; j ++ ) {
 
@@ -311,9 +428,9 @@ THREE.VRMLLoader.prototype = {
 
 								} else if ( /transparency/.exec( parameter ) ) {
 
-									var result = /( +[\d|\.|\+|\-|e]+)/.exec( parameter );
-
-									material.opacity = parseFloat( result[ 1 ] );
+									var result = /\s+([\d|\.|\+|\-|e]+)/.exec( parameter );
+                                    // transparency is opposite of opacity
+									material.opacity = Math.abs( 1 - parseFloat( result[ 1 ] ) );
 									material.transparent = true;
 
 								}
@@ -323,6 +440,7 @@ THREE.VRMLLoader.prototype = {
 							if ( /DEF/.exec( data.string ) ) {
 
 								material.name = /DEF (\w+)/.exec( data.string )[ 1 ];
+
 								defines[ material.name ] = material;
 
 							}

+ 111 - 74
examples/js/loaders/ctm/CTMLoader.js

@@ -72,7 +72,6 @@ THREE.CTMLoader.prototype.loadParts = function( url, callback, parameters ) {
 	}
 
 	xhr.open( "GET", url, true );
-	if ( xhr.overrideMimeType ) xhr.overrideMimeType( "text/plain; charset=x-user-defined" );
 	xhr.setRequestHeader( "Content-Type", "text/plain" );
 	xhr.send( null );
 
@@ -101,9 +100,9 @@ THREE.CTMLoader.prototype.load = function( url, callback, parameters ) {
 
 			if ( xhr.status === 200 || xhr.status === 0 ) {
 
-				var binaryData = xhr.responseText;
+				var binaryData = new Uint8Array(xhr.response);
 
-				//var s = Date.now();
+				var s = Date.now();
 
 				if ( parameters.useWorker ) {
 
@@ -117,6 +116,9 @@ THREE.CTMLoader.prototype.load = function( url, callback, parameters ) {
 
 							var ctmFile = files[ i ];
 
+                            				var e1 = Date.now();
+                            				// console.log( "CTM data parse time [worker]: " + (e1-s) + " ms" );
+
 							if ( useBuffers ) {
 
 								scope.createModelBuffers( ctmFile, callback );
@@ -127,10 +129,11 @@ THREE.CTMLoader.prototype.load = function( url, callback, parameters ) {
 
 							}
 
+                            				var e = Date.now();
+                            				console.log( "model load time [worker]: " + (e-e1) + " ms, total: " + (e-s));
+
 						}
 
-						//var e = Date.now();
-						//console.log( "CTM data parse time [worker]: " + (e-s) + " ms" );
 
 					};
 
@@ -190,8 +193,9 @@ THREE.CTMLoader.prototype.load = function( url, callback, parameters ) {
 
 	}
 
-	xhr.overrideMimeType( "text/plain; charset=x-user-defined" );
 	xhr.open( "GET", url, true );
+	xhr.responseType = "arraybuffer";
+
 	xhr.send( null );
 
 };
@@ -209,6 +213,7 @@ THREE.CTMLoader.prototype.createModelBuffers = function ( file, callback ) {
 
 		THREE.BufferGeometry.call( this );
 
+		var s = Date.now();
 		// init GL buffers
 
 		var vertexIndexArray = file.body.indices,
@@ -218,97 +223,130 @@ THREE.CTMLoader.prototype.createModelBuffers = function ( file, callback ) {
 		var vertexUvArray, vertexColorArray;
 
 		if ( file.body.uvMaps !== undefined && file.body.uvMaps.length > 0 ) {
-
 			vertexUvArray = file.body.uvMaps[ 0 ].uv;
-
 		}
 
 		if ( file.body.attrMaps !== undefined && file.body.attrMaps.length > 0 && file.body.attrMaps[ 0 ].name === "Color" ) {
-
 			vertexColorArray = file.body.attrMaps[ 0 ].attr;
-
 		}
 
 		// reorder vertices
 		// (needed for buffer splitting, to keep together face vertices)
-
 		if ( reorderVertices ) {
 
-			var newFaces = new Uint32Array( vertexIndexArray.length ),
-				newVertices = new Float32Array( vertexPositionArray.length );
-
-			var newNormals, newUvs, newColors;
-
-			if ( vertexNormalArray ) newNormals = new Float32Array( vertexNormalArray.length );
-			if ( vertexUvArray ) newUvs = new Float32Array( vertexUvArray.length );
-			if ( vertexColorArray ) newColors = new Float32Array( vertexColorArray.length );
-
-			var indexMap = {}, vertexCounter = 0;
+		    	function copyVertexInfo(v, vt) {
 
-			function handleVertex( v ) {
+				var sx = v * 3,
+			    	    sy = v * 3 + 1,
+			    	    sz = v * 3 + 2,
 
-				if ( indexMap[ v ] === undefined ) {
+			    	dx = vt * 3,
+			    	dy = vt * 3 + 1,
+			    	dz = vt * 3 + 2;
 
-					indexMap[ v ] = vertexCounter;
+				newVertices[ dx ] = vertexPositionArray[ sx ];
+				newVertices[ dy ] = vertexPositionArray[ sy ];
+				newVertices[ dz ] = vertexPositionArray[ sz ];
 
-					var sx = v * 3,
-						sy = v * 3 + 1,
-						sz = v * 3 + 2,
-
-						dx = vertexCounter * 3,
-						dy = vertexCounter * 3 + 1,
-						dz = vertexCounter * 3 + 2;
+				if ( vertexNormalArray ) {
+				    newNormals[ dx ] = vertexNormalArray[ sx ];
+				    newNormals[ dy ] = vertexNormalArray[ sy ];
+				    newNormals[ dz ] = vertexNormalArray[ sz ];
+				}
 
-					newVertices[ dx ] = vertexPositionArray[ sx ];
-					newVertices[ dy ] = vertexPositionArray[ sy ];
-					newVertices[ dz ] = vertexPositionArray[ sz ];
+				if ( vertexUvArray ) {
+				    newUvs[ vt * 2 ] 	 = vertexUvArray[ v * 2 ];
+				    newUvs[ vt * 2 + 1 ] = vertexUvArray[ v * 2 + 1 ];
+				}
 
-					if ( vertexNormalArray ) {
+				if ( vertexColorArray ) {
+				    newColors[ vt * 4 ] 	= vertexColorArray[ v * 4 ];
+				    newColors[ vt * 4 + 1 ] = vertexColorArray[ v * 4 + 1 ];
+				    newColors[ vt * 4 + 2 ] = vertexColorArray[ v * 4 + 2 ];
+				    newColors[ vt * 4 + 3 ] = vertexColorArray[ v * 4 + 3 ];
+				}
+		    	}
 
-						newNormals[ dx ] = vertexNormalArray[ sx ];
-						newNormals[ dy ] = vertexNormalArray[ sy ];
-						newNormals[ dz ] = vertexNormalArray[ sz ];
+		    	function handleVertex( v, iMap ) {
 
-					}
+				if ( iMap[ v ] === undefined ) {
 
-					if ( vertexUvArray ) {
+					iMap[ v ] = vertexCounter;
+                    			reverseIndexMap[vertexCounter] = v;
+					vertexCounter += 1;
+				}
+                		return iMap[ v ];
+		    	}
 
-						newUvs[ vertexCounter * 2 ] 	= vertexUvArray[ v * 2 ];
-						newUvs[ vertexCounter * 2 + 1 ] = vertexUvArray[ v * 2 + 1 ];
+			var newFaces = new Uint32Array( vertexIndexArray.length );
+			var indexMap = {}, reverseIndexMap = {}, vertexCounter = 0;
 
-					}
+            		var spawledFaceCount = 0,
+                	    spawledFaceLimit = Math.ceil(vertexIndexArray.length/3000);
+            		var sprawledFaces = new Uint32Array( spawledFaceLimit );  // to store sprawled triangle indices
 
-					if ( vertexColorArray ) {
+			for ( var i = 0; i < vertexIndexArray.length; i += 3 ) {
 
-						newColors[ vertexCounter * 4 ] 	   = vertexColorArray[ v * 4 ];
-						newColors[ vertexCounter * 4 + 1 ] = vertexColorArray[ v * 4 + 1 ];
-						newColors[ vertexCounter * 4 + 2 ] = vertexColorArray[ v * 4 + 2 ];
-						newColors[ vertexCounter * 4 + 3 ] = vertexColorArray[ v * 4 + 3 ];
+				var a = vertexIndexArray[ i ];
+				var b = vertexIndexArray[ i + 1 ];
+				var c = vertexIndexArray[ i + 2 ];
+
+				handleVertex( a, indexMap );
+				handleVertex( b, indexMap );
+				handleVertex( c, indexMap );
+
+				// check for sprawled triangles and put them aside to recreate later
+				if ( Math.abs( indexMap[a] - indexMap[b] ) > 65535 ||
+                     		     Math.abs( indexMap[b] - indexMap[c] ) > 65535 ||
+                     		     Math.abs( indexMap[c] - indexMap[a] ) > 65535 ){
+
+			    		// expand storage when neccessary
+			    		if (spawledFaceCount >= spawledFaceLimit) {
+						console.warn("reached sprawled faces limit: " + spawledFaceCount);
+						spawledFaceLimit *= 2;
+						var tArr = new Uint32Array( spawledFaceLimit );
+						tArr.set(sprawledFaces);
+						sprawledFaces = tArr;
+			    		}
+
+                    			sprawledFaces[ spawledFaceCount ] = i;  // starting index in newFaces
+                    			spawledFaceCount += 1;
+                		}
+                		else {
+
+				    newFaces[ i ] 	  = indexMap[ a ];
+				    newFaces[ i + 1 ] = indexMap[ b ];
+				    newFaces[ i + 2 ] = indexMap[ c ];
+                		}
+			}
+            		// console.log("Number of sprawled faces: " + spawledFaceCount + " current limit: " + spawledFaceLimit +
+                        //	" total: " + vertexIndexArray.length/3 + " vertices: " + vertexCounter);
 
-					}
+			// create dublicate vertices and update sprawled faces
+			var indexMap2 = {},
+			    noov = vertexCounter;   // # of original vertices
 
-					vertexCounter += 1;
+			for (var isf = 0; isf < spawledFaceCount; isf++ ) {
+				var i = sprawledFaces[isf];
 
+				for (var j = 0; j < 3; j++) {
+				    var v = vertexIndexArray[ i + j ];
+				    newFaces[ i + j] = handleVertex(v, indexMap2);   // new vertex
 				}
-
 			}
 
-			var a, b, c;
-
-			for ( var i = 0; i < vertexIndexArray.length; i += 3 ) {
-
-				a = vertexIndexArray[ i ];
-				b = vertexIndexArray[ i + 1 ];
-				c = vertexIndexArray[ i + 2 ];
+			// console.log("Created duplicated vertices: " + (vertexCounter - noov));
 
-				handleVertex( a );
-				handleVertex( b );
-				handleVertex( c );
+			// copy xyz, uv, normals and colors into new arrays
+			var newVertices = new Float32Array( 3*vertexCounter );
+			var newNormals, newUvs, newColors;
 
-				newFaces[ i ] 	  = indexMap[ a ];
-				newFaces[ i + 1 ] = indexMap[ b ];
-				newFaces[ i + 2 ] = indexMap[ c ];
+			if ( vertexNormalArray ) newNormals = new Float32Array( 3*vertexCounter );
+			if ( vertexUvArray ) newUvs = new Float32Array( 2*vertexCounter );
+			if ( vertexColorArray ) newColors = new Float32Array( 4*vertexCounter );
 
+			for (var iv = 0; iv < vertexCounter; iv++) {
+				copyVertexInfo(reverseIndexMap[iv], iv);
 			}
 
 			vertexIndexArray = newFaces;
@@ -317,7 +355,6 @@ THREE.CTMLoader.prototype.createModelBuffers = function ( file, callback ) {
 			if ( vertexNormalArray ) vertexNormalArray = newNormals;
 			if ( vertexUvArray ) vertexUvArray = newUvs;
 			if ( vertexColorArray ) vertexColorArray = newColors;
-
 		}
 
 		// compute offsets
@@ -346,10 +383,10 @@ THREE.CTMLoader.prototype.createModelBuffers = function ( file, callback ) {
 
 				i -= 3;
 
-				for ( var k = start; k < i; ++ k ) {
-
-					indices[ k ] -= minPrev;
+                		if ( minPrev > 0 ) {
 
+				    for ( var k = start; k < i; ++ k )
+					    indices[ k ] -= minPrev;
 				}
 
 				scope.offsets.push( { start: start, count: i - start, index: minPrev } );
@@ -364,20 +401,20 @@ THREE.CTMLoader.prototype.createModelBuffers = function ( file, callback ) {
 
 		}
 
-		for ( var k = start; k < i; ++ k ) {
-
-			indices[ k ] -= minPrev;
+        	if ( minPrev > 0 ) {
 
+		    for ( var k = start; k < i; ++ k )
+			    indices[ k ] -= minPrev;
 		}
-
 		scope.offsets.push( { start: start, count: i - start, index: minPrev } );
 
-		// recast CTM 32-bit indices as 16-bit WebGL indices
+        	// var e = Date.now();
+		// console.log( "Vetex reordering time: " + (e-s) + " ms" );
 
+		// recast CTM 32-bit indices as 16-bit WebGL indices
 		var vertexIndexArray16 = new Uint16Array( vertexIndexArray );
 
 		// attributes
-
 		var attributes = scope.attributes;
 
 		attributes[ "index" ]    = { itemSize: 1, array: vertexIndexArray16, numItems: vertexIndexArray16.length };

+ 30 - 2
examples/js/loaders/ctm/ctm.js

@@ -1,3 +1,30 @@
+/*
+Copyright (c) 2011 Juan Mellado
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+/*
+References:
+- "OpenCTM: The Open Compressed Triangle Mesh file format" by Marcus Geelnard
+  http://openctm.sourceforge.net/
+*/
 
 var CTM = CTM || {};
 
@@ -348,6 +375,7 @@ CTM.restoreIndices = function(indices, len){
   var i = 3;
   if (len > 0){
     indices[2] += indices[0];
+    indices[1] += indices[0];
   }
   for (; i < len; i += 3){
     indices[i] += indices[i - 3];
@@ -564,7 +592,7 @@ CTM.Stream.prototype.TWO_POW_MINUS23 = Math.pow(2, -23);
 CTM.Stream.prototype.TWO_POW_MINUS126 = Math.pow(2, -126);
 
 CTM.Stream.prototype.readByte = function(){
-  return this.data.charCodeAt(this.offset ++) & 0xff;
+  return this.data[this.offset ++] & 0xff;
 };
 
 CTM.Stream.prototype.readInt32 = function(){
@@ -602,7 +630,7 @@ CTM.Stream.prototype.readString = function(){
 
   this.offset += len;
 
-  return this.data.substr(this.offset - len, len);
+  return this.data.subarray(this.offset - len, len);
 };
 
 CTM.Stream.prototype.readArrayInt32 = function(array){

+ 4 - 4
examples/js/renderers/SVGRenderer.js

@@ -126,12 +126,12 @@ THREE.SVGRenderer = function () {
 
 			_elemBox.makeEmpty();
 
-			if ( element instanceof THREE.RenderableParticle ) {
+			if ( element instanceof THREE.RenderableSprite ) {
 
 				_v1 = element;
 				_v1.x *= _svgWidthHalf; _v1.y *= -_svgHeightHalf;
 
-				renderParticle( _v1, element, material );
+				renderSprite( _v1, element, material );
 
 			} else if ( element instanceof THREE.RenderableLine ) {
 
@@ -258,7 +258,7 @@ THREE.SVGRenderer = function () {
 
 	}
 
-	function renderParticle( v1, element, material ) {
+	function renderSprite( v1, element, material ) {
 
 		/*
 		_svgNode = getCircleNode( _circleCount++ );
@@ -266,7 +266,7 @@ THREE.SVGRenderer = function () {
 		_svgNode.setAttribute( 'cy', v1.y );
 		_svgNode.setAttribute( 'r', element.scale.x * _svgWidthHalf );
 
-		if ( material instanceof THREE.ParticleCircleMaterial ) {
+		if ( material instanceof THREE.SpriteSVGMaterial ) {
 
 			_color.r = _ambientLight.r + _directionalLights.r + _pointLights.r;
 			_color.g = _ambientLight.g + _directionalLights.g + _pointLights.g;

+ 6 - 6
examples/misc_controls_fly.html

@@ -206,12 +206,12 @@
 
 				var stars;
 				var starsMaterials = [
-					new THREE.ParticleBasicMaterial( { color: 0x555555, size: 2, sizeAttenuation: false } ),
-					new THREE.ParticleBasicMaterial( { color: 0x555555, size: 1, sizeAttenuation: false } ),
-					new THREE.ParticleBasicMaterial( { color: 0x333333, size: 2, sizeAttenuation: false } ),
-					new THREE.ParticleBasicMaterial( { color: 0x3a3a3a, size: 1, sizeAttenuation: false } ),
-					new THREE.ParticleBasicMaterial( { color: 0x1a1a1a, size: 2, sizeAttenuation: false } ),
-					new THREE.ParticleBasicMaterial( { color: 0x1a1a1a, size: 1, sizeAttenuation: false } )
+					new THREE.ParticleSystemMaterial( { color: 0x555555, size: 2, sizeAttenuation: false } ),
+					new THREE.ParticleSystemMaterial( { color: 0x555555, size: 1, sizeAttenuation: false } ),
+					new THREE.ParticleSystemMaterial( { color: 0x333333, size: 2, sizeAttenuation: false } ),
+					new THREE.ParticleSystemMaterial( { color: 0x3a3a3a, size: 1, sizeAttenuation: false } ),
+					new THREE.ParticleSystemMaterial( { color: 0x1a1a1a, size: 2, sizeAttenuation: false } ),
+					new THREE.ParticleSystemMaterial( { color: 0x1a1a1a, size: 1, sizeAttenuation: false } )
 				];
 
 				for ( i = 10; i < 30; i ++ ) {

BIN
examples/models/assimp/interior/image1.jpg


BIN
examples/models/assimp/interior/image2.jpg


BIN
examples/models/assimp/interior/interior.3ds


+ 2687 - 0
examples/models/assimp/interior/interior.3ds.json

@@ -0,0 +1,2687 @@
+{
+	 "rootnode": {
+		 "name": "<3DSRoot>"
+		,"transformation": [
+			 1
+			,0
+			,0
+			,0
+			,0
+			,1
+			,0
+			,0
+			,0
+			,0
+			,1
+			,0
+			,0
+			,0
+			,0
+			,1
+		]
+		,"children": [
+			{
+				 "name": "Box01"
+				,"transformation": [
+					 -1.20922e-008
+					,0.101437
+					,9.06915e-009
+					,-0.243822
+					,0
+					,-1.20922e-008
+					,0.101437
+					,0.00185142
+					,0.101437
+					,9.06915e-009
+					,0
+					,0.0490567
+					,0
+					,0
+					,0
+					,1
+				]
+				,"meshes": [
+					 0
+				]
+			}
+			,{
+				 "name": "Box02"
+				,"transformation": [
+					 -1.20922e-008
+					,0.101437
+					,9.06915e-009
+					,-0.0708746
+					,0
+					,-1.20922e-008
+					,0.101437
+					,0.00185238
+					,0.101437
+					,9.06915e-009
+					,0
+					,-9.95899
+					,0
+					,0
+					,0
+					,1
+				]
+				,"meshes": [
+					 1
+				]
+			}
+			,{
+				 "name": "Box04"
+				,"transformation": [
+					 0.101437
+					,1.80188e-016
+					,4.43394e-009
+					,9.64867
+					,-4.43394e-009
+					,6.0461e-009
+					,0.101437
+					,0.0018519
+					,-1.80188e-016
+					,-0.101437
+					,6.0461e-009
+					,0.0215668
+					,0
+					,0
+					,0
+					,1
+				]
+				,"meshes": [
+					 3
+				]
+			}
+			,{
+				 "name": "Box05"
+				,"transformation": [
+					 0.0522438
+					,0.0869483
+					,6.0461e-009
+					,4.86169
+					,-6.0461e-009
+					,0
+					,0.101437
+					,0.00185238
+					,0.0869483
+					,-0.0522438
+					,6.0461e-009
+					,-7.55933
+					,0
+					,0
+					,0
+					,1
+				]
+				,"meshes": [
+					 2
+				]
+			}
+			,{
+				 "name": "Box06"
+				,"transformation": [
+					 0.0468383
+					,0.0899755
+					,0
+					,6.39023
+					,-9.06915e-009
+					,6.0461e-009
+					,0.101437
+					,0.00185238
+					,0.0899755
+					,-0.0468383
+					,1.20922e-008
+					,-5.19486
+					,0
+					,0
+					,0
+					,1
+				]
+				,"meshes": [
+					 2
+				]
+			}
+			,{
+				 "name": "Box07"
+				,"transformation": [
+					 0.0723498
+					,0.071098
+					,0
+					,5.66533
+					,-6.0461e-009
+					,0
+					,0.101437
+					,2.0261
+					,0.071098
+					,-0.0723498
+					,0
+					,-6.25246
+					,0
+					,0
+					,0
+					,1
+				]
+				,"meshes": [
+					 2
+				]
+			}
+			,{
+				 "name": "Box08"
+				,"transformation": [
+					 1.20922e-008
+					,-0.101437
+					,0
+					,-0.427656
+					,0
+					,0
+					,0.101437
+					,0.00185095
+					,-0.101437
+					,-1.81383e-008
+					,0
+					,10.0504
+					,0
+					,0
+					,0
+					,1
+				]
+				,"meshes": [
+					 1
+				]
+			}
+			,{
+				 "name": "Box09"
+				,"transformation": [
+					 -0.101437
+					,-1.29215e-008
+					,-3.80372e-010
+					,-10.1472
+					,-3.80372e-010
+					,-1.20922e-008
+					,0.101437
+					,0.00185238
+					,-1.29215e-008
+					,0.101437
+					,6.0461e-009
+					,0.0585555
+					,0
+					,0
+					,0
+					,1
+				]
+				,"meshes": [
+					 4
+				]
+			}
+			,{
+				 "name": "Box10"
+				,"transformation": [
+					 -1.20922e-008
+					,0.101437
+					,9.06915e-009
+					,-0.243822
+					,0
+					,-1.20922e-008
+					,0.101437
+					,10.2303
+					,0.101437
+					,9.06915e-009
+					,0
+					,0.0490569
+					,0
+					,0
+					,0
+					,1
+				]
+				,"meshes": [
+					 0
+				]
+			}
+		]
+	}
+	,"flags": 8
+	,"meshes": [
+		{
+			 "name": "0"
+			,"materialindex": 0
+			,"primitivetypes": 4
+			,"vertices": [
+				 -100.483
+				,99.5169
+				,-1.86265e-009
+				,-100.483
+				,-99.5169
+				,0
+				,100.483
+				,99.5169
+				,-1.86265e-009
+				,100.483
+				,-99.5169
+				,0
+				,100.483
+				,-99.5169
+				,-1.93237
+				,-100.483
+				,-99.5169
+				,-1.93237
+				,100.483
+				,99.5169
+				,-1.93237
+				,-100.483
+				,99.5169
+				,-1.93237
+				,100.483
+				,-99.5169
+				,0
+				,-100.483
+				,-99.5169
+				,0
+				,100.483
+				,-99.5169
+				,-1.93237
+				,-100.483
+				,-99.5169
+				,-1.93237
+				,100.483
+				,99.5169
+				,-1.86265e-009
+				,100.483
+				,-99.5169
+				,0
+				,100.483
+				,99.5169
+				,-1.93237
+				,100.483
+				,-99.5169
+				,-1.93237
+				,-100.483
+				,99.5169
+				,-1.86265e-009
+				,100.483
+				,99.5169
+				,-1.86265e-009
+				,-100.483
+				,99.5169
+				,-1.93237
+				,100.483
+				,99.5169
+				,-1.93237
+				,-100.483
+				,-99.5169
+				,0
+				,-100.483
+				,99.5169
+				,-1.86265e-009
+				,-100.483
+				,-99.5169
+				,-1.93237
+				,-100.483
+				,99.5169
+				,-1.93237
+			]
+			,"normals": [
+				 -3.77254e-013
+				,-1.38133e-013
+				,0.101437
+				,-3.77254e-013
+				,-1.38355e-013
+				,0.101437
+				,-3.77254e-013
+				,-1.38355e-013
+				,0.101437
+				,-3.77254e-013
+				,-1.38355e-013
+				,0.101437
+				,-1.70011e-011
+				,1.41759e-011
+				,-0.101437
+				,2.00728e-011
+				,-2.32577e-011
+				,-0.101437
+				,2.00728e-011
+				,-2.32577e-011
+				,-0.101437
+				,5.71465e-011
+				,-6.06915e-011
+				,-0.101437
+				,1.51153e-009
+				,-0.101437
+				,-3.02305e-009
+				,1.51153e-009
+				,-0.101437
+				,-3.02305e-009
+				,1.51153e-009
+				,-0.101437
+				,-3.02305e-009
+				,1.51153e-009
+				,-0.101437
+				,-3.02305e-009
+				,0.101437
+				,-1.76847e-009
+				,6.0461e-009
+				,0.101437
+				,-1.76847e-009
+				,6.0461e-009
+				,0.101437
+				,-1.76847e-009
+				,6.0461e-009
+				,0.101437
+				,-1.76847e-009
+				,6.0461e-009
+				,3.23392e-009
+				,0.101437
+				,3.02305e-009
+				,3.23392e-009
+				,0.101437
+				,3.02305e-009
+				,3.23392e-009
+				,0.101437
+				,3.02305e-009
+				,3.23392e-009
+				,0.101437
+				,3.02305e-009
+				,-0.101437
+				,-3.02305e-009
+				,4.87481e-007
+				,-0.101437
+				,-6.27291e-010
+				,2.40717e-007
+				,-0.101437
+				,-6.27291e-010
+				,2.40717e-007
+				,-0.101437
+				,1.76847e-009
+				,-6.0461e-009
+			]
+			,"tangents": [
+				 1
+				,1.99309e-007
+				,3.82652e-014
+				,1
+				,1.99309e-007
+				,3.82652e-014
+				,1
+				,1.99309e-007
+				,3.82652e-014
+				,1
+				,2.37272e-007
+				,3.82652e-014
+				,-1
+				,-2.37272e-007
+				,5.88802e-010
+				,-1
+				,-2.37272e-007
+				,5.85041e-010
+				,-1
+				,-2.37272e-007
+				,5.85041e-010
+				,-1
+				,-1.99309e-007
+				,-5.79661e-012
+				,1
+				,1.53324e-010
+				,4.56942e-018
+				,1
+				,1.53324e-010
+				,4.56942e-018
+				,1
+				,1.53324e-010
+				,4.56942e-018
+				,1
+				,1.53324e-010
+				,-5.93181e-010
+				,7.60549e-008
+				,1
+				,-9.35847e-012
+				,7.60549e-008
+				,1
+				,-9.35847e-012
+				,7.60549e-008
+				,1
+				,-9.35847e-012
+				,7.60549e-008
+				,1
+				,-3.63256e-017
+				,-1
+				,3.7901e-008
+				,-1.86516e-018
+				,-1
+				,3.7901e-008
+				,-1.86516e-018
+				,-1
+				,3.7901e-008
+				,-1.86516e-018
+				,-1
+				,3.7901e-008
+				,-1.86516e-018
+				,3.06648e-010
+				,-1
+				,9.35696e-012
+				,6.36304e-011
+				,-1
+				,9.35828e-012
+				,6.36304e-011
+				,-1
+				,9.35828e-012
+				,-3.81171e-008
+				,-1
+				,5.9894e-010
+			]
+			,"bitangents": [
+				 2.39576e-007
+				,-1
+				,9.24813e-012
+				,2.39576e-007
+				,-1
+				,9.24811e-012
+				,2.39576e-007
+				,-1
+				,9.24811e-012
+				,1.62912e-007
+				,-1
+				,9.24811e-012
+				,1.62912e-007
+				,-1
+				,-1.4381e-012
+				,1.62912e-007
+				,-1
+				,2.35905e-012
+				,1.62912e-007
+				,-1
+				,2.35905e-012
+				,2.01244e-007
+				,-1
+				,5.98934e-010
+				,-4.56942e-018
+				,3.06648e-010
+				,-1
+				,-4.56942e-018
+				,3.06648e-010
+				,-1
+				,-4.56942e-018
+				,3.06648e-010
+				,-1
+				,-3.94822e-006
+				,3.06648e-010
+				,-1
+				,6.13297e-010
+				,-1.06923e-017
+				,-1
+				,6.13297e-010
+				,-1.06923e-017
+				,-1
+				,6.13297e-010
+				,-1.06923e-017
+				,-1
+				,6.13297e-010
+				,-1.06923e-017
+				,-1
+				,9.77631e-018
+				,3.06648e-010
+				,-1
+				,9.77631e-018
+				,3.06648e-010
+				,-1
+				,9.77631e-018
+				,3.06648e-010
+				,-1
+				,9.77631e-018
+				,3.06648e-010
+				,-1
+				,-3.95704e-006
+				,-2.62965e-016
+				,-1
+				,-3.93201e-006
+				,1.00227e-016
+				,-1
+				,-3.93201e-006
+				,1.00227e-016
+				,-1
+				,6.13297e-010
+				,-1.06923e-017
+				,-1
+			]
+			,"numuvcomponents": [
+				 2
+			]
+			,"texturecoords": [
+				[
+					 -0.00966144
+					,3.99034
+					,-0.00966239
+					,0.00966239
+					,4.00966
+					,3.99034
+					,4.00966
+					,0.00966144
+					,-0.00966144
+					,0.00966144
+					,4.00966
+					,0.00966239
+					,-0.00966239
+					,3.99034
+					,4.00966
+					,3.99034
+					,4.00966
+					,2.01932
+					,-0.00966239
+					,2.01932
+					,4.00966
+					,1.98068
+					,-0.00966239
+					,1.98068
+					,3.99034
+					,2.01932
+					,0.00966144
+					,2.01932
+					,3.99034
+					,1.98068
+					,0.00966144
+					,1.98068
+					,4.00966
+					,2.01932
+					,-0.00966239
+					,2.01932
+					,4.00966
+					,1.98068
+					,-0.00966239
+					,1.98068
+					,3.99034
+					,2.01932
+					,0.00966144
+					,2.01932
+					,3.99034
+					,1.98068
+					,0.00966144
+					,1.98068
+				]
+			]
+			,"faces": [
+				[
+					 0
+					,1
+					,2
+				]
+				,[
+					 3
+					,2
+					,1
+				]
+				,[
+					 4
+					,5
+					,6
+				]
+				,[
+					 7
+					,6
+					,5
+				]
+				,[
+					 8
+					,9
+					,10
+				]
+				,[
+					 11
+					,10
+					,9
+				]
+				,[
+					 12
+					,13
+					,14
+				]
+				,[
+					 15
+					,14
+					,13
+				]
+				,[
+					 16
+					,17
+					,18
+				]
+				,[
+					 19
+					,18
+					,17
+				]
+				,[
+					 20
+					,21
+					,22
+				]
+				,[
+					 23
+					,22
+					,21
+				]
+			]
+		}
+		,{
+			 "name": "1"
+			,"materialindex": 1
+			,"primitivetypes": 4
+			,"vertices": [
+				 -1.93237
+				,-97.4285
+				,8.19564e-008
+				,-1.93237
+				,93.9098
+				,-7.63685e-008
+				,1.93237
+				,93.9098
+				,-1.30385e-007
+				,1.93236
+				,-97.4285
+				,2.79397e-008
+				,-1.93237
+				,-97.4285
+				,99.5169
+				,1.93237
+				,-97.4285
+				,99.5169
+				,1.93236
+				,93.9098
+				,99.5169
+				,-1.93237
+				,93.9098
+				,99.5169
+				,-1.93237
+				,-97.4285
+				,8.19564e-008
+				,1.93236
+				,-97.4285
+				,2.79397e-008
+				,1.93237
+				,-97.4285
+				,99.5169
+				,-1.93237
+				,-97.4285
+				,99.5169
+				,1.93236
+				,-97.4285
+				,2.79397e-008
+				,1.93237
+				,93.9098
+				,-1.30385e-007
+				,1.93236
+				,93.9098
+				,99.5169
+				,1.93237
+				,-97.4285
+				,99.5169
+				,1.93237
+				,93.9098
+				,-1.30385e-007
+				,-1.93237
+				,93.9098
+				,-7.63685e-008
+				,-1.93237
+				,93.9098
+				,99.5169
+				,1.93236
+				,93.9098
+				,99.5169
+				,-1.93237
+				,93.9098
+				,-7.63685e-008
+				,-1.93237
+				,-97.4285
+				,8.19564e-008
+				,-1.93237
+				,-97.4285
+				,99.5169
+				,-1.93237
+				,93.9098
+				,99.5169
+			]
+			,"normals": [
+				 -1.43508e-009
+				,-8.37691e-011
+				,-0.101437
+				,-1.43508e-009
+				,-8.37691e-011
+				,-0.101437
+				,-1.43508e-009
+				,-8.37691e-011
+				,-0.101437
+				,-1.43508e-009
+				,-8.37691e-011
+				,-0.101437
+				,-3.02305e-009
+				,3.47271e-009
+				,0.101437
+				,-3.02305e-009
+				,3.47271e-009
+				,0.101437
+				,-3.02305e-009
+				,3.47271e-009
+				,0.101437
+				,-3.02305e-009
+				,3.47271e-009
+				,0.101437
+				,1.51153e-009
+				,-0.101437
+				,-3.02305e-009
+				,1.51153e-009
+				,-0.101437
+				,-3.02305e-009
+				,1.51153e-009
+				,-0.101437
+				,-3.02305e-009
+				,1.51153e-009
+				,-0.101437
+				,-3.02305e-009
+				,0.101437
+				,5.30934e-010
+				,1.25458e-009
+				,0.101437
+				,-1.96118e-009
+				,6.0461e-009
+				,0.101437
+				,5.30934e-010
+				,1.25458e-009
+				,0.101437
+				,3.02305e-009
+				,-3.53694e-009
+				,-1.51153e-009
+				,0.101437
+				,3.02305e-009
+				,-1.51153e-009
+				,0.101437
+				,3.02305e-009
+				,-1.51153e-009
+				,0.101437
+				,3.02305e-009
+				,-1.51153e-009
+				,0.101437
+				,3.02305e-009
+				,-0.101437
+				,1.96118e-009
+				,3.53694e-009
+				,-0.101437
+				,1.96118e-009
+				,3.53694e-009
+				,-0.101437
+				,1.96118e-009
+				,3.53694e-009
+				,-0.101437
+				,1.96118e-009
+				,3.53694e-009
+			]
+			,"tangents": [
+				 -1
+				,1.4501e-021
+				,1.39786e-008
+				,-1
+				,1.4501e-021
+				,1.39786e-008
+				,-1
+				,1.4501e-021
+				,1.39786e-008
+				,-1
+				,1.4501e-021
+				,1.39786e-008
+				,1
+				,1.04982e-017
+				,3.06648e-010
+				,1
+				,1.04982e-017
+				,3.06648e-010
+				,1
+				,1.04982e-017
+				,3.06648e-010
+				,1
+				,1.04982e-017
+				,3.06648e-010
+				,1
+				,1.53324e-010
+				,-1.39768e-008
+				,1
+				,1.53324e-010
+				,-1.39768e-008
+				,1
+				,1.53324e-010
+				,-1.39768e-008
+				,1
+				,1.53324e-010
+				,4.56942e-018
+				,3.94097e-008
+				,1
+				,-8.2746e-010
+				,3.96625e-008
+				,1
+				,-8.2746e-010
+				,3.94097e-008
+				,1
+				,-8.2746e-010
+				,-3.97702e-008
+				,1
+				,-3.98739e-008
+				,-1
+				,-1.53324e-010
+				,1.39768e-008
+				,-1
+				,-1.53324e-010
+				,1.39768e-008
+				,-1
+				,-1.53324e-010
+				,1.39768e-008
+				,-1
+				,-1.53324e-010
+				,-4.56942e-018
+				,-3.96625e-008
+				,-1
+				,8.2746e-010
+				,-3.96625e-008
+				,-1
+				,8.2746e-010
+				,-3.96625e-008
+				,-1
+				,8.2746e-010
+				,-1.98936e-010
+				,-1
+				,3.98739e-008
+			]
+			,"bitangents": [
+				 2.09338e-007
+				,-1
+				,8.2744e-010
+				,2.09338e-007
+				,-1
+				,8.2744e-010
+				,2.09338e-007
+				,-1
+				,8.2744e-010
+				,2.09338e-007
+				,-1
+				,8.2744e-010
+				,2.90176e-007
+				,-1
+				,3.98158e-008
+				,2.90176e-007
+				,-1
+				,3.98158e-008
+				,2.90176e-007
+				,-1
+				,3.98158e-008
+				,2.49874e-007
+				,-1
+				,3.98158e-008
+				,-7.74879e-008
+				,3.06648e-010
+				,-1
+				,-7.74879e-008
+				,3.06648e-010
+				,-1
+				,-7.74879e-008
+				,3.06648e-010
+				,-1
+				,-7.74879e-008
+				,3.06648e-010
+				,-1
+				,7.60027e-008
+				,-3.46275e-018
+				,-1
+				,7.64888e-008
+				,3.39378e-018
+				,-1
+				,7.60027e-008
+				,-3.46275e-018
+				,-1
+				,-7.62343e-008
+				,1.28166e-017
+				,-1
+				,-4.56942e-018
+				,3.06648e-010
+				,-1
+				,-4.56942e-018
+				,3.06648e-010
+				,-1
+				,-4.56942e-018
+				,3.06648e-010
+				,-1
+				,7.74879e-008
+				,3.06648e-010
+				,-1
+				,-7.62343e-008
+				,-8.31471e-018
+				,-1
+				,-7.62343e-008
+				,-8.31471e-018
+				,-1
+				,-7.62343e-008
+				,-8.31471e-018
+				,-1
+				,-3.58775e-010
+				,6.93657e-018
+				,-1
+			]
+			,"numuvcomponents": [
+				 2
+			]
+			,"texturecoords": [
+				[
+					 0.519324
+					,-0.509662
+					,0.519323
+					,1.50966
+					,0.480676
+					,1.50966
+					,0.480677
+					,-0.509662
+					,0.480676
+					,-0.509662
+					,0.519323
+					,-0.509662
+					,0.519324
+					,1.50966
+					,0.480677
+					,1.50966
+					,0.480676
+					,0.00241548
+					,0.519323
+					,0.00241548
+					,0.519323
+					,0.997585
+					,0.480676
+					,0.997585
+					,-0.509662
+					,0.00241548
+					,1.50966
+					,0.00241548
+					,1.50966
+					,0.997585
+					,-0.509662
+					,0.997585
+					,0.480676
+					,0.00241548
+					,0.519323
+					,0.00241548
+					,0.519323
+					,0.997585
+					,0.480676
+					,0.997585
+					,-0.509662
+					,0.00241548
+					,1.50966
+					,0.00241548
+					,1.50966
+					,0.997585
+					,-0.509662
+					,0.997585
+				]
+			]
+			,"faces": [
+				[
+					 0
+					,1
+					,2
+				]
+				,[
+					 2
+					,3
+					,0
+				]
+				,[
+					 4
+					,5
+					,6
+				]
+				,[
+					 6
+					,7
+					,4
+				]
+				,[
+					 8
+					,9
+					,10
+				]
+				,[
+					 10
+					,11
+					,8
+				]
+				,[
+					 12
+					,13
+					,14
+				]
+				,[
+					 14
+					,15
+					,12
+				]
+				,[
+					 16
+					,17
+					,18
+				]
+				,[
+					 18
+					,19
+					,16
+				]
+				,[
+					 20
+					,21
+					,22
+				]
+				,[
+					 22
+					,23
+					,20
+				]
+			]
+		}
+		,{
+			 "name": "3"
+			,"materialindex": 2
+			,"primitivetypes": 4
+			,"vertices": [
+				 -9.99999
+				,-9.99999
+				,3.72529e-009
+				,-9.99999
+				,10
+				,1.86265e-009
+				,10
+				,10
+				,1.86265e-009
+				,10
+				,-9.99999
+				,1.86265e-009
+				,-10
+				,-10
+				,20
+				,10
+				,-10
+				,20
+				,10
+				,10
+				,20
+				,-9.99999
+				,10
+				,20
+				,-9.99999
+				,-9.99999
+				,3.72529e-009
+				,10
+				,-9.99999
+				,1.86265e-009
+				,10
+				,-10
+				,20
+				,-10
+				,-10
+				,20
+				,10
+				,-9.99999
+				,1.86265e-009
+				,10
+				,10
+				,1.86265e-009
+				,10
+				,10
+				,20
+				,10
+				,-10
+				,20
+				,10
+				,10
+				,1.86265e-009
+				,-9.99999
+				,10
+				,1.86265e-009
+				,-9.99999
+				,10
+				,20
+				,10
+				,10
+				,20
+				,-9.99999
+				,10
+				,1.86265e-009
+				,-9.99999
+				,-9.99999
+				,3.72529e-009
+				,-10
+				,-10
+				,20
+				,-9.99999
+				,10
+				,20
+			]
+			,"normals": [
+				 -4.3574e-012
+				,-5.33795e-013
+				,-0.101437
+				,-4.36096e-012
+				,-5.29354e-013
+				,-0.101437
+				,-4.3574e-012
+				,-5.33795e-013
+				,-0.101437
+				,-4.3574e-012
+				,-5.33795e-013
+				,-0.101437
+				,5.2823e-010
+				,-4.14386e-009
+				,0.101437
+				,5.28228e-010
+				,-4.14386e-009
+				,0.101437
+				,5.2823e-010
+				,-4.14386e-009
+				,0.101437
+				,5.28232e-010
+				,-4.14386e-009
+				,0.101437
+				,0
+				,-0.101437
+				,-2.30238e-009
+				,3.72529e-009
+				,-0.101437
+				,-8.17843e-009
+				,0
+				,-0.101437
+				,-2.30238e-009
+				,-7.45058e-009
+				,-0.101437
+				,3.57366e-009
+				,0.101437
+				,3.72529e-009
+				,8.20599e-009
+				,0.101437
+				,1.86265e-008
+				,-7.95311e-009
+				,0.101437
+				,3.72529e-009
+				,8.20599e-009
+				,0.101437
+				,-1.11759e-008
+				,2.43651e-008
+				,-1.49012e-008
+				,0.101437
+				,-6.35636e-010
+				,-1.49012e-008
+				,0.101437
+				,-6.35636e-010
+				,-1.49012e-008
+				,0.101437
+				,-6.35636e-010
+				,-1.49012e-008
+				,0.101437
+				,-6.35636e-010
+				,-0.101437
+				,1.11759e-008
+				,-5.26798e-009
+				,-0.101437
+				,-7.45058e-009
+				,-1.84891e-008
+				,-0.101437
+				,1.11759e-008
+				,-5.26798e-009
+				,-0.101437
+				,2.23517e-008
+				,7.95311e-009
+			]
+			,"tangents": [
+				 -1
+				,-5.72777e-007
+				,4.42023e-013
+				,-1
+				,-5.72777e-007
+				,4.42383e-013
+				,-1
+				,-5.72777e-007
+				,4.42023e-013
+				,-1
+				,-2.86388e-007
+				,9.2616e-011
+				,1
+				,2.38657e-007
+				,-5.35818e-011
+				,1
+				,2.38657e-007
+				,-5.35817e-011
+				,1
+				,2.38657e-007
+				,-5.35818e-011
+				,1
+				,6.20127e-007
+				,-5.35818e-011
+				,1
+				,2.17507e-020
+				,-9.31323e-011
+				,1
+				,3.77881e-010
+				,-9.31322e-011
+				,1
+				,2.17507e-020
+				,-9.31323e-011
+				,1
+				,-7.55763e-010
+				,2.66258e-017
+				,-3.77923e-007
+				,1
+				,2.86962e-016
+				,-3.79434e-007
+				,1
+				,-1.59608e-016
+				,-3.77923e-007
+				,1
+				,2.86962e-016
+				,1.13364e-009
+				,1
+				,2.72301e-016
+				,-1
+				,-3.79056e-007
+				,-1.51243e-017
+				,-1
+				,-3.79056e-007
+				,-1.51243e-017
+				,-1
+				,-3.79056e-007
+				,-1.51243e-017
+				,-1
+				,-3.79056e-007
+				,-1.51243e-017
+				,-1.13364e-009
+				,-1
+				,9.31322e-011
+				,7.55763e-010
+				,-1
+				,9.31324e-011
+				,-1.13364e-009
+				,-1
+				,9.31322e-011
+				,-3.79812e-007
+				,-1
+				,-1.2998e-016
+			]
+			,"bitangents": [
+				 2.38657e-007
+				,-1
+				,9.22282e-011
+				,2.38657e-007
+				,-1
+				,9.22277e-011
+				,2.38657e-007
+				,-1
+				,9.22282e-011
+				,5.90295e-007
+				,-1
+				,5.4127e-014
+				,2.86388e-007
+				,-1
+				,-4.2034e-010
+				,2.86388e-007
+				,-1
+				,-4.2034e-010
+				,2.86388e-007
+				,-1
+				,-4.2034e-010
+				,-9.54628e-008
+				,-1
+				,-4.2034e-010
+				,1.90926e-007
+				,3.77778e-007
+				,-1
+				,1.90926e-007
+				,3.78374e-007
+				,-1
+				,1.90926e-007
+				,3.77778e-007
+				,-1
+				,2.86388e-007
+				,3.77182e-007
+				,-1
+				,-9.35538e-008
+				,6.66073e-017
+				,-1
+				,-9.51929e-008
+				,3.20496e-017
+				,-1
+				,-9.35538e-008
+				,6.66073e-017
+				,-1
+				,2.8563e-007
+				,3.81851e-007
+				,-1
+				,9.47171e-018
+				,-6.44768e-011
+				,-1
+				,9.47171e-018
+				,-6.44768e-011
+				,-1
+				,9.47171e-018
+				,-6.44768e-011
+				,-1
+				,-9.54628e-008
+				,-6.4477e-011
+				,-1
+				,3.78079e-007
+				,3.81851e-007
+				,-1
+				,3.7942e-007
+				,3.81851e-007
+				,-1
+				,3.78079e-007
+				,3.81851e-007
+				,-1
+				,-8.06738e-010
+				,1.77766e-016
+				,-1
+			]
+			,"numuvcomponents": [
+				 2
+			]
+			,"texturecoords": [
+				[
+					 0.999501
+					,0.000499606
+					,0.9995
+					,0.999501
+					,0.000499487
+					,0.9995
+					,0.000499696
+					,0.000499368
+					,0.000499487
+					,0.000499606
+					,0.9995
+					,0.000499368
+					,0.999501
+					,0.9995
+					,0.000499696
+					,0.999501
+					,0.000499487
+					,0.000499517
+					,0.9995
+					,0.000499517
+					,0.9995
+					,0.999501
+					,0.000499487
+					,0.999501
+					,0.000499368
+					,0.000499517
+					,0.9995
+					,0.000499517
+					,0.9995
+					,0.999501
+					,0.000499368
+					,0.999501
+					,0.000499487
+					,0.000499517
+					,0.9995
+					,0.000499517
+					,0.9995
+					,0.999501
+					,0.000499487
+					,0.999501
+					,0.000499368
+					,0.000499517
+					,0.9995
+					,0.000499517
+					,0.9995
+					,0.999501
+					,0.000499368
+					,0.999501
+				]
+			]
+			,"faces": [
+				[
+					 0
+					,1
+					,2
+				]
+				,[
+					 2
+					,3
+					,0
+				]
+				,[
+					 4
+					,5
+					,6
+				]
+				,[
+					 6
+					,7
+					,4
+				]
+				,[
+					 8
+					,9
+					,10
+				]
+				,[
+					 10
+					,11
+					,8
+				]
+				,[
+					 12
+					,13
+					,14
+				]
+				,[
+					 14
+					,15
+					,12
+				]
+				,[
+					 16
+					,17
+					,18
+				]
+				,[
+					 18
+					,19
+					,16
+				]
+				,[
+					 20
+					,21
+					,22
+				]
+				,[
+					 22
+					,23
+					,20
+				]
+			]
+		}
+		,{
+			 "name": "2"
+			,"materialindex": 1
+			,"primitivetypes": 4
+			,"vertices": [
+				 -1.93237
+				,-100.745
+				,-1.02445e-007
+				,-1.93237
+				,100.248
+				,-2.98023e-008
+				,1.93236
+				,100.248
+				,1.39698e-007
+				,1.93236
+				,-100.745
+				,6.70552e-008
+				,-1.93237
+				,-100.745
+				,99.5169
+				,1.93236
+				,-100.745
+				,99.5169
+				,1.93236
+				,100.248
+				,99.5169
+				,-1.93237
+				,100.248
+				,99.5169
+				,-1.93237
+				,-100.745
+				,-1.02445e-007
+				,1.93236
+				,-100.745
+				,6.70552e-008
+				,1.93236
+				,-100.745
+				,99.5169
+				,-1.93237
+				,-100.745
+				,99.5169
+				,1.93236
+				,-100.745
+				,6.70552e-008
+				,1.93236
+				,100.248
+				,1.39698e-007
+				,1.93236
+				,100.248
+				,99.5169
+				,1.93236
+				,-100.745
+				,99.5169
+				,1.93236
+				,100.248
+				,1.39698e-007
+				,-1.93237
+				,100.248
+				,-2.98023e-008
+				,-1.93237
+				,100.248
+				,99.5169
+				,1.93236
+				,100.248
+				,99.5169
+				,-1.93237
+				,100.248
+				,-2.98023e-008
+				,-1.93237
+				,-100.745
+				,-1.02445e-007
+				,-1.93237
+				,-100.745
+				,99.5169
+				,-1.93237
+				,100.248
+				,99.5169
+			]
+			,"normals": [
+				 4.43394e-009
+				,3.56648e-011
+				,-0.101437
+				,4.43394e-009
+				,3.56648e-011
+				,-0.101437
+				,4.43394e-009
+				,3.56648e-011
+				,-0.101437
+				,4.43394e-009
+				,3.56648e-011
+				,-0.101437
+				,-4.43394e-009
+				,-2.14222e-009
+				,0.101437
+				,-4.43394e-009
+				,-2.14222e-009
+				,0.101437
+				,-4.43394e-009
+				,-2.14222e-009
+				,0.101437
+				,-4.43394e-009
+				,-2.14222e-009
+				,0.101437
+				,2.387e-016
+				,-0.101437
+				,2.50916e-009
+				,2.387e-016
+				,-0.101437
+				,2.50916e-009
+				,2.387e-016
+				,-0.101437
+				,2.50916e-009
+				,2.387e-016
+				,-0.101437
+				,2.50916e-009
+				,0.101437
+				,2.83063e-016
+				,-5.1491e-009
+				,0.101437
+				,1.83557e-016
+				,-5.1491e-009
+				,0.101437
+				,2.83063e-016
+				,-5.1491e-009
+				,0.101437
+				,3.82569e-016
+				,-5.1491e-009
+				,-2.387e-016
+				,0.101437
+				,-2.50916e-009
+				,-2.387e-016
+				,0.101437
+				,-2.50916e-009
+				,-2.387e-016
+				,0.101437
+				,-2.50916e-009
+				,-2.387e-016
+				,0.101437
+				,-2.50916e-009
+				,-0.101437
+				,-1.80188e-016
+				,-4.43394e-009
+				,-0.101437
+				,-1.80188e-016
+				,-4.43394e-009
+				,-0.101437
+				,-1.80188e-016
+				,-4.43394e-009
+				,-0.101437
+				,-1.80188e-016
+				,-4.43394e-009
+			]
+			,"tangents": [
+				 -1
+				,-5.31936e-022
+				,-4.38569e-008
+				,-1
+				,-5.31936e-022
+				,-4.38569e-008
+				,-1
+				,-5.31936e-022
+				,-4.38569e-008
+				,-1
+				,-5.31936e-022
+				,-4.38569e-008
+				,1
+				,-9.49846e-018
+				,4.49765e-010
+				,1
+				,-9.49846e-018
+				,4.49765e-010
+				,1
+				,-9.49846e-018
+				,4.49765e-010
+				,1
+				,-9.49846e-018
+				,4.49765e-010
+				,1
+				,3.53759e-017
+				,4.38584e-008
+				,1
+				,3.53759e-017
+				,4.38584e-008
+				,1
+				,3.53759e-017
+				,4.38584e-008
+				,1
+				,2.4213e-017
+				,-5.98938e-025
+				,-2.85243e-017
+				,1
+				,3.61421e-010
+				,-1.84307e-017
+				,1
+				,3.61421e-010
+				,-2.85243e-017
+				,1
+				,3.61421e-010
+				,-5.86326e-017
+				,1
+				,-3.79585e-008
+				,-1
+				,-3.53759e-017
+				,-4.38584e-008
+				,-1
+				,-3.53759e-017
+				,-4.38584e-008
+				,-1
+				,-3.53759e-017
+				,-4.38584e-008
+				,-1
+				,-2.4213e-017
+				,5.98938e-025
+				,1.84402e-017
+				,-1
+				,-3.61421e-010
+				,1.84402e-017
+				,-1
+				,-3.61421e-010
+				,1.84402e-017
+				,-1
+				,-3.61421e-010
+				,1.2053e-018
+				,-1
+				,3.79585e-008
+			]
+			,"bitangents": [
+				 2.3724e-007
+				,-1
+				,-3.61309e-010
+				,2.3724e-007
+				,-1
+				,-3.61309e-010
+				,2.3724e-007
+				,-1
+				,-3.61309e-010
+				,2.3724e-007
+				,-1
+				,-3.61309e-010
+				,2.37871e-007
+				,-1
+				,3.73506e-008
+				,2.37871e-007
+				,-1
+				,3.73506e-008
+				,2.37871e-007
+				,-1
+				,3.73506e-008
+				,2.37871e-007
+				,-1
+				,3.73506e-008
+				,-1.25733e-024
+				,-7.613e-008
+				,-1
+				,-1.25733e-024
+				,-7.613e-008
+				,-1
+				,-1.25733e-024
+				,-7.613e-008
+				,-1
+				,7.74879e-008
+				,-7.613e-008
+				,-1
+				,-5.22308e-010
+				,-1.45752e-024
+				,-1
+				,-5.22308e-010
+				,-9.45154e-025
+				,-1
+				,-5.22308e-010
+				,-1.45752e-024
+				,-1
+				,-5.22308e-010
+				,-1.96989e-024
+				,-1
+				,7.74879e-008
+				,-7.613e-008
+				,-1
+				,7.74879e-008
+				,-7.613e-008
+				,-1
+				,7.74879e-008
+				,-7.613e-008
+				,-1
+				,-1.25733e-024
+				,-7.613e-008
+				,-1
+				,7.63252e-008
+				,-6.02302e-025
+				,-1
+				,7.63252e-008
+				,-6.02302e-025
+				,-1
+				,7.63252e-008
+				,-6.02302e-025
+				,-1
+				,7.63252e-008
+				,-6.02303e-025
+				,-1
+			]
+			,"numuvcomponents": [
+				 2
+			]
+			,"texturecoords": [
+				[
+					 0.519324
+					,-0.509662
+					,0.519323
+					,1.50966
+					,0.480676
+					,1.50966
+					,0.480677
+					,-0.509662
+					,0.480676
+					,-0.509662
+					,0.519323
+					,-0.509662
+					,0.519324
+					,1.50966
+					,0.480677
+					,1.50966
+					,0.480676
+					,0.00241548
+					,0.519323
+					,0.00241548
+					,0.519323
+					,0.997585
+					,0.480676
+					,0.997585
+					,-0.509662
+					,0.00241548
+					,1.50966
+					,0.00241548
+					,1.50966
+					,0.997585
+					,-0.509662
+					,0.997585
+					,0.480676
+					,0.00241548
+					,0.519323
+					,0.00241548
+					,0.519323
+					,0.997585
+					,0.480676
+					,0.997585
+					,-0.509662
+					,0.00241548
+					,1.50966
+					,0.00241548
+					,1.50966
+					,0.997585
+					,-0.509662
+					,0.997585
+				]
+			]
+			,"faces": [
+				[
+					 0
+					,1
+					,2
+				]
+				,[
+					 2
+					,3
+					,0
+				]
+				,[
+					 4
+					,5
+					,6
+				]
+				,[
+					 6
+					,7
+					,4
+				]
+				,[
+					 8
+					,9
+					,10
+				]
+				,[
+					 10
+					,11
+					,8
+				]
+				,[
+					 12
+					,13
+					,14
+				]
+				,[
+					 14
+					,15
+					,12
+				]
+				,[
+					 16
+					,17
+					,18
+				]
+				,[
+					 18
+					,19
+					,16
+				]
+				,[
+					 20
+					,21
+					,22
+				]
+				,[
+					 22
+					,23
+					,20
+				]
+			]
+		}
+		,{
+			 "name": "7"
+			,"materialindex": 1
+			,"primitivetypes": 4
+			,"vertices": [
+				 -1.93236
+				,-100.69
+				,-7.45058e-008
+				,-1.93236
+				,100.447
+				,-7.63685e-008
+				,1.93237
+				,100.447
+				,9.31323e-008
+				,1.93237
+				,-100.69
+				,9.49949e-008
+				,-1.93237
+				,-100.69
+				,99.5169
+				,1.93237
+				,-100.69
+				,99.5169
+				,1.93237
+				,100.447
+				,99.5169
+				,-1.93237
+				,100.447
+				,99.5169
+				,-1.93236
+				,-100.69
+				,-7.45058e-008
+				,1.93237
+				,-100.69
+				,9.49949e-008
+				,1.93237
+				,-100.69
+				,99.5169
+				,-1.93237
+				,-100.69
+				,99.5169
+				,1.93237
+				,-100.69
+				,9.49949e-008
+				,1.93237
+				,100.447
+				,9.31323e-008
+				,1.93237
+				,100.447
+				,99.5169
+				,1.93237
+				,-100.69
+				,99.5169
+				,1.93237
+				,100.447
+				,9.31323e-008
+				,-1.93236
+				,100.447
+				,-7.63685e-008
+				,-1.93237
+				,100.447
+				,99.5169
+				,1.93237
+				,100.447
+				,99.5169
+				,-1.93236
+				,100.447
+				,-7.63685e-008
+				,-1.93236
+				,-100.69
+				,-7.45058e-008
+				,-1.93237
+				,-100.69
+				,99.5169
+				,-1.93237
+				,100.447
+				,99.5169
+			]
+			,"normals": [
+				 4.43394e-009
+				,-1.67688e-012
+				,-0.101437
+				,4.43394e-009
+				,-1.67688e-012
+				,-0.101437
+				,4.43394e-009
+				,-1.67688e-012
+				,-0.101437
+				,4.43394e-009
+				,-1.67688e-012
+				,-0.101437
+				,-4.43394e-009
+				,5.67379e-009
+				,0.101437
+				,-4.43394e-009
+				,5.67379e-009
+				,0.101437
+				,-4.43394e-009
+				,5.67379e-009
+				,0.101437
+				,-4.43394e-009
+				,5.67379e-009
+				,0.101437
+				,8.86788e-009
+				,-0.101437
+				,7.07387e-009
+				,8.86788e-009
+				,-0.101437
+				,7.07387e-009
+				,8.86788e-009
+				,-0.101437
+				,7.07387e-009
+				,8.86788e-009
+				,-0.101437
+				,7.07387e-009
+				,0.101437
+				,-6.14966e-010
+				,-5.1491e-009
+				,0.101437
+				,-6.14964e-010
+				,-5.1491e-009
+				,0.101437
+				,-6.14966e-010
+				,-5.1491e-009
+				,0.101437
+				,-6.14965e-010
+				,-5.14909e-009
+				,-8.86788e-009
+				,0.101437
+				,2.50916e-009
+				,-8.86788e-009
+				,0.101437
+				,2.50916e-009
+				,-8.86788e-009
+				,0.101437
+				,2.50916e-009
+				,-8.86788e-009
+				,0.101437
+				,2.50916e-009
+				,-0.101437
+				,6.14964e-010
+				,-4.43394e-009
+				,-0.101437
+				,6.14963e-010
+				,-4.43394e-009
+				,-0.101437
+				,6.14964e-010
+				,-4.43394e-009
+				,-0.101437
+				,6.14965e-010
+				,-4.43394e-009
+			]
+			,"tangents": [
+				 -1
+				,2.5012e-023
+				,-4.38569e-008
+				,-1
+				,2.5012e-023
+				,-4.38569e-008
+				,-1
+				,2.5012e-023
+				,-4.38569e-008
+				,-1
+				,2.5012e-023
+				,-4.38569e-008
+				,1
+				,2.51572e-017
+				,4.49765e-010
+				,1
+				,2.51572e-017
+				,4.49765e-010
+				,1
+				,2.51572e-017
+				,4.49765e-010
+				,1
+				,2.51572e-017
+				,4.49765e-010
+				,1
+				,8.99529e-010
+				,4.38584e-008
+				,1
+				,8.99529e-010
+				,4.38584e-008
+				,1
+				,8.99529e-010
+				,4.38584e-008
+				,1
+				,8.99529e-010
+				,-6.27303e-017
+				,6.23801e-011
+				,1
+				,-9.26059e-012
+				,6.238e-011
+				,1
+				,-9.26059e-012
+				,6.23801e-011
+				,1
+				,-9.26059e-012
+				,3.76035e-008
+				,1
+				,-7.58628e-008
+				,-1
+				,-8.99529e-010
+				,-4.38584e-008
+				,-1
+				,-8.99529e-010
+				,-4.38584e-008
+				,-1
+				,-8.99529e-010
+				,-4.38584e-008
+				,-1
+				,-8.99529e-010
+				,-2.2251e-017
+				,-6.238e-011
+				,-1
+				,9.26059e-012
+				,-6.23799e-011
+				,-1
+				,9.26059e-012
+				,-6.238e-011
+				,-1
+				,9.26059e-012
+				,-6.23801e-011
+				,-1
+				,7.58628e-008
+			]
+			,"bitangents": [
+				 2.37071e-007
+				,-1
+				,9.3458e-012
+				,2.37071e-007
+				,-1
+				,9.3458e-012
+				,2.37071e-007
+				,-1
+				,9.3458e-012
+				,2.37071e-007
+				,-1
+				,9.3458e-012
+				,1.99362e-007
+				,-1
+				,7.56577e-008
+				,1.99362e-007
+				,-1
+				,7.56577e-008
+				,1.99362e-007
+				,-1
+				,7.56577e-008
+				,2.37701e-007
+				,-1
+				,7.56577e-008
+				,-7.51933e-017
+				,-1.52468e-007
+				,-1
+				,-7.51933e-017
+				,-1.52468e-007
+				,-1
+				,-7.51933e-017
+				,-1.52468e-007
+				,-1
+				,7.74879e-008
+				,-1.52468e-007
+				,-1
+				,-7.63978e-008
+				,-1.61581e-018
+				,-1
+				,-7.63978e-008
+				,-1.6158e-018
+				,-1
+				,-7.63978e-008
+				,-1.61581e-018
+				,-1
+				,-5.22307e-010
+				,-1.51861e-007
+				,-1
+				,7.74879e-008
+				,2.54522e-010
+				,-1
+				,7.74879e-008
+				,2.54521e-010
+				,-1
+				,7.74879e-008
+				,2.54522e-010
+				,-1
+				,-7.74879e-008
+				,2.54521e-010
+				,-1
+				,7.63252e-008
+				,-1.51861e-007
+				,-1
+				,7.63252e-008
+				,-1.51861e-007
+				,-1
+				,7.63252e-008
+				,-1.51861e-007
+				,-1
+				,7.63252e-008
+				,2.0556e-018
+				,-1
+			]
+			,"numuvcomponents": [
+				 2
+			]
+			,"texturecoords": [
+				[
+					 0.519324
+					,-0.509662
+					,0.519323
+					,1.50966
+					,0.480676
+					,1.50966
+					,0.480677
+					,-0.509662
+					,0.480676
+					,-0.509662
+					,0.519323
+					,-0.509662
+					,0.519324
+					,1.50966
+					,0.480677
+					,1.50966
+					,0.480676
+					,0.00241548
+					,0.519323
+					,0.00241548
+					,0.519323
+					,0.997585
+					,0.480676
+					,0.997585
+					,-0.509662
+					,0.00241548
+					,1.50966
+					,0.00241548
+					,1.50966
+					,0.997585
+					,-0.509662
+					,0.997585
+					,0.480676
+					,0.00241548
+					,0.519323
+					,0.00241548
+					,0.519323
+					,0.997585
+					,0.480676
+					,0.997585
+					,-0.509662
+					,0.00241548
+					,1.50966
+					,0.00241548
+					,1.50966
+					,0.997585
+					,-0.509662
+					,0.997585
+				]
+			]
+			,"faces": [
+				[
+					 0
+					,1
+					,2
+				]
+				,[
+					 2
+					,3
+					,0
+				]
+				,[
+					 4
+					,5
+					,6
+				]
+				,[
+					 6
+					,7
+					,4
+				]
+				,[
+					 8
+					,9
+					,10
+				]
+				,[
+					 10
+					,11
+					,8
+				]
+				,[
+					 12
+					,13
+					,14
+				]
+				,[
+					 14
+					,15
+					,12
+				]
+				,[
+					 16
+					,17
+					,18
+				]
+				,[
+					 18
+					,19
+					,16
+				]
+				,[
+					 20
+					,21
+					,22
+				]
+				,[
+					 22
+					,23
+					,20
+				]
+			]
+		}
+	]
+	,"materials": [
+		{
+			 "properties": [
+				{
+					 "key": "?mat.name"
+					,"semantic": 0
+					,"index": 0
+					,"type": 3
+					,"value": "2 - Default"
+				}
+				,{
+					 "key": "$clr.ambient"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.588235
+						,0.588235
+						,0.588235
+					]
+				}
+				,{
+					 "key": "$clr.diffuse"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.588235
+						,0.588235
+						,0.588235
+					]
+				}
+				,{
+					 "key": "$clr.specular"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.898039
+						,0.898039
+						,0.898039
+					]
+				}
+				,{
+					 "key": "$clr.emissive"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0
+						,0
+						,0
+					]
+				}
+				,{
+					 "key": "$mat.opacity"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": 1
+				}
+				,{
+					 "key": "$mat.bumpscaling"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": 1
+				}
+				,{
+					 "key": "$mat.shadingm"
+					,"semantic": 0
+					,"index": 0
+					,"type": 4
+					,"value": 2
+				}
+				,{
+					 "key": "$tex.file"
+					,"semantic": 1
+					,"index": 0
+					,"type": 3
+					,"value": "image1.jpg"
+				}
+				,{
+					 "key": "$tex.blend"
+					,"semantic": 1
+					,"index": 0
+					,"type": 1
+					,"value": 1
+				}
+				,{
+					 "key": "$tex.mapmodeu"
+					,"semantic": 1
+					,"index": 0
+					,"type": 4
+					,"value": 0
+				}
+				,{
+					 "key": "$tex.mapmodev"
+					,"semantic": 1
+					,"index": 0
+					,"type": 4
+					,"value": 0
+				}
+				,{
+					 "key": "$tex.uvtrafo"
+					,"semantic": 1
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0
+						,0
+						,1
+						,1
+						,0
+					]
+				}
+			]
+		}
+		,{
+			 "properties": [
+				{
+					 "key": "?mat.name"
+					,"semantic": 0
+					,"index": 0
+					,"type": 3
+					,"value": "1 - Default"
+				}
+				,{
+					 "key": "$clr.ambient"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.588235
+						,0.588235
+						,0.588235
+					]
+				}
+				,{
+					 "key": "$clr.diffuse"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.588235
+						,0.588235
+						,0.588235
+					]
+				}
+				,{
+					 "key": "$clr.specular"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.898039
+						,0.898039
+						,0.898039
+					]
+				}
+				,{
+					 "key": "$clr.emissive"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0
+						,0
+						,0
+					]
+				}
+				,{
+					 "key": "$mat.opacity"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": 1
+				}
+				,{
+					 "key": "$mat.bumpscaling"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": 1
+				}
+				,{
+					 "key": "$mat.shadingm"
+					,"semantic": 0
+					,"index": 0
+					,"type": 4
+					,"value": 2
+				}
+				,{
+					 "key": "$tex.file"
+					,"semantic": 1
+					,"index": 0
+					,"type": 3
+					,"value": "wall.jpg"
+				}
+				,{
+					 "key": "$tex.blend"
+					,"semantic": 1
+					,"index": 0
+					,"type": 1
+					,"value": 1
+				}
+				,{
+					 "key": "$tex.mapmodeu"
+					,"semantic": 1
+					,"index": 0
+					,"type": 4
+					,"value": 0
+				}
+				,{
+					 "key": "$tex.mapmodev"
+					,"semantic": 1
+					,"index": 0
+					,"type": 4
+					,"value": 0
+				}
+				,{
+					 "key": "$tex.uvtrafo"
+					,"semantic": 1
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0
+						,0
+						,1
+						,1
+						,0
+					]
+				}
+			]
+		}
+		,{
+			 "properties": [
+				{
+					 "key": "?mat.name"
+					,"semantic": 0
+					,"index": 0
+					,"type": 3
+					,"value": "3 - Default"
+				}
+				,{
+					 "key": "$clr.ambient"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.588235
+						,0.588235
+						,0.588235
+					]
+				}
+				,{
+					 "key": "$clr.diffuse"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.588235
+						,0.588235
+						,0.588235
+					]
+				}
+				,{
+					 "key": "$clr.specular"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.898039
+						,0.898039
+						,0.898039
+					]
+				}
+				,{
+					 "key": "$clr.emissive"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0
+						,0
+						,0
+					]
+				}
+				,{
+					 "key": "$mat.opacity"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": 1
+				}
+				,{
+					 "key": "$mat.bumpscaling"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": 1
+				}
+				,{
+					 "key": "$mat.shadingm"
+					,"semantic": 0
+					,"index": 0
+					,"type": 4
+					,"value": 2
+				}
+				,{
+					 "key": "$tex.file"
+					,"semantic": 1
+					,"index": 0
+					,"type": 3
+					,"value": "image2.jpg"
+				}
+				,{
+					 "key": "$tex.blend"
+					,"semantic": 1
+					,"index": 0
+					,"type": 1
+					,"value": 1
+				}
+				,{
+					 "key": "$tex.mapmodeu"
+					,"semantic": 1
+					,"index": 0
+					,"type": 4
+					,"value": 0
+				}
+				,{
+					 "key": "$tex.mapmodev"
+					,"semantic": 1
+					,"index": 0
+					,"type": 4
+					,"value": 0
+				}
+				,{
+					 "key": "$tex.uvtrafo"
+					,"semantic": 1
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0
+						,0
+						,1
+						,1
+						,0
+					]
+				}
+			]
+		}
+	]
+}

BIN
examples/models/assimp/interior/wall.jpg


BIN
examples/models/assimp/jeep/jeep1.jpg


BIN
examples/models/assimp/jeep/jeep1.ms3d


+ 42010 - 0
examples/models/assimp/jeep/jeep1.ms3d.json

@@ -0,0 +1,42010 @@
+{
+	 "rootnode": {
+		 "name": "<MS3DRoot>"
+		,"transformation": [
+			 1
+			,0
+			,0
+			,0
+			,0
+			,1
+			,0
+			,0
+			,0
+			,0
+			,1
+			,0
+			,0
+			,0
+			,0
+			,1
+		]
+		,"meshes": [
+			 0
+		]
+	}
+	,"flags": 8
+	,"meshes": [
+		{
+			 "name": ""
+			,"materialindex": 0
+			,"primitivetypes": 4
+			,"vertices": [
+				 5.3674
+				,2.79918
+				,5.58144
+				,5.3674
+				,2.71248
+				,6.01734
+				,5.3674
+				,1.66012
+				,5.58144
+				,3.33216
+				,2.92574
+				,5.58144
+				,3.33216
+				,1.66012
+				,5.58144
+				,3.33216
+				,2.8294
+				,6.06577
+				,5.52924
+				,2.92574
+				,5.58144
+				,5.26276
+				,3.17887
+				,5.58144
+				,5.26276
+				,3.06326
+				,6.16264
+				,5.52924
+				,2.8294
+				,6.06577
+				,3.59863
+				,3.17887
+				,5.58144
+				,3.59863
+				,3.06326
+				,6.16264
+				,5.3674
+				,2.46556
+				,6.38688
+				,3.33216
+				,2.55505
+				,6.47637
+				,5.52924
+				,2.55505
+				,6.47637
+				,5.26276
+				,2.73404
+				,6.65536
+				,3.59863
+				,2.73404
+				,6.65536
+				,5.3674
+				,2.09602
+				,6.63379
+				,3.33216
+				,2.14445
+				,6.75072
+				,5.26276
+				,2.24132
+				,6.98458
+				,5.52924
+				,2.14445
+				,6.75072
+				,3.59863
+				,2.24132
+				,6.98458
+				,5.3674
+				,1.66012
+				,6.7205
+				,3.33216
+				,1.66012
+				,6.84706
+				,5.52924
+				,1.66012
+				,6.84706
+				,5.26276
+				,1.66012
+				,7.10019
+				,3.59863
+				,1.66012
+				,7.10019
+				,5.3674
+				,1.22421
+				,6.63379
+				,3.33216
+				,1.17579
+				,6.75072
+				,5.26276
+				,1.07892
+				,6.98458
+				,5.52924
+				,1.17579
+				,6.75072
+				,3.59863
+				,1.07892
+				,6.98458
+				,5.3674
+				,0.854673
+				,6.38688
+				,3.33216
+				,0.765187
+				,6.47637
+				,5.52924
+				,0.765187
+				,6.47637
+				,5.26276
+				,0.586201
+				,6.65536
+				,3.59863
+				,0.586201
+				,6.65536
+				,5.3674
+				,0.607756
+				,6.01734
+				,3.33216
+				,0.490834
+				,6.06577
+				,5.26276
+				,0.256977
+				,6.16264
+				,5.52924
+				,0.490834
+				,6.06577
+				,3.59863
+				,0.256977
+				,6.16264
+				,5.3674
+				,0.52106
+				,5.58144
+				,3.33216
+				,0.394494
+				,5.58144
+				,5.52924
+				,0.394494
+				,5.58144
+				,5.26276
+				,0.141369
+				,5.58144
+				,3.59863
+				,0.141369
+				,5.58144
+				,5.3674
+				,0.607756
+				,5.14554
+				,3.33216
+				,0.490834
+				,5.09711
+				,5.26276
+				,0.256977
+				,5.00024
+				,5.52924
+				,0.490834
+				,5.09711
+				,3.59863
+				,0.256977
+				,5.00024
+				,5.3674
+				,0.854673
+				,4.776
+				,3.33216
+				,0.765187
+				,4.68651
+				,5.52924
+				,0.765187
+				,4.68651
+				,5.26276
+				,0.586201
+				,4.50752
+				,3.59863
+				,0.586201
+				,4.50752
+				,5.3674
+				,1.22421
+				,4.52909
+				,3.33216
+				,1.17579
+				,4.41216
+				,5.26276
+				,1.07892
+				,4.1783
+				,5.52924
+				,1.17579
+				,4.41216
+				,3.59863
+				,1.07892
+				,4.1783
+				,5.3674
+				,1.66012
+				,4.44238
+				,3.33216
+				,1.66012
+				,4.31581
+				,5.52924
+				,1.66012
+				,4.31581
+				,5.26276
+				,1.66012
+				,4.06269
+				,3.59863
+				,1.66012
+				,4.06269
+				,5.3674
+				,2.09602
+				,4.52909
+				,3.33216
+				,2.14445
+				,4.41216
+				,5.26276
+				,2.24132
+				,4.1783
+				,5.52924
+				,2.14445
+				,4.41216
+				,3.59863
+				,2.24132
+				,4.1783
+				,5.3674
+				,2.46556
+				,4.776
+				,3.33216
+				,2.55505
+				,4.68651
+				,5.52924
+				,2.55505
+				,4.68651
+				,5.26276
+				,2.73404
+				,4.50752
+				,3.59863
+				,2.73404
+				,4.50752
+				,5.3674
+				,2.71248
+				,5.14554
+				,3.33216
+				,2.8294
+				,5.09711
+				,5.26276
+				,3.06326
+				,5.00024
+				,5.52924
+				,2.8294
+				,5.09711
+				,3.59863
+				,3.06326
+				,5.00024
+				,5.26276
+				,3.17887
+				,5.58144
+				,4.4307
+				,3.33074
+				,5.58144
+				,5.26276
+				,3.06326
+				,6.16264
+				,4.4307
+				,3.20358
+				,6.22076
+				,4.4307
+				,3.33074
+				,5.58144
+				,3.59863
+				,3.17887
+				,5.58144
+				,3.59863
+				,3.06326
+				,6.16264
+				,4.4307
+				,3.20358
+				,6.22076
+				,5.26276
+				,3.06326
+				,6.16264
+				,4.4307
+				,3.20358
+				,6.22076
+				,4.4307
+				,2.84143
+				,6.76275
+				,5.26276
+				,2.73404
+				,6.65536
+				,4.4307
+				,3.20358
+				,6.22076
+				,3.59863
+				,3.06326
+				,6.16264
+				,4.4307
+				,2.84143
+				,6.76275
+				,3.59863
+				,2.73404
+				,6.65536
+				,5.26276
+				,2.73404
+				,6.65536
+				,4.4307
+				,2.84143
+				,6.76275
+				,5.26276
+				,2.24132
+				,6.98458
+				,4.4307
+				,2.29944
+				,7.1249
+				,4.4307
+				,2.84143
+				,6.76275
+				,3.59863
+				,2.73404
+				,6.65536
+				,3.59863
+				,2.24132
+				,6.98458
+				,4.4307
+				,2.29944
+				,7.1249
+				,5.26276
+				,2.24132
+				,6.98458
+				,4.4307
+				,2.29944
+				,7.1249
+				,4.4307
+				,1.66012
+				,7.25206
+				,5.26276
+				,1.66012
+				,7.10019
+				,4.4307
+				,2.29944
+				,7.1249
+				,3.59863
+				,2.24132
+				,6.98458
+				,4.4307
+				,1.66012
+				,7.25206
+				,3.59863
+				,1.66012
+				,7.10019
+				,5.26276
+				,1.66012
+				,7.10019
+				,4.4307
+				,1.66012
+				,7.25206
+				,5.26276
+				,1.07892
+				,6.98458
+				,4.4307
+				,1.0208
+				,7.1249
+				,4.4307
+				,1.66012
+				,7.25206
+				,3.59863
+				,1.66012
+				,7.10019
+				,3.59863
+				,1.07892
+				,6.98458
+				,4.4307
+				,1.0208
+				,7.1249
+				,5.26276
+				,1.07892
+				,6.98458
+				,4.4307
+				,1.0208
+				,7.1249
+				,4.4307
+				,0.478809
+				,6.76275
+				,5.26276
+				,0.586201
+				,6.65536
+				,4.4307
+				,1.0208
+				,7.1249
+				,3.59863
+				,1.07892
+				,6.98458
+				,4.4307
+				,0.478809
+				,6.76275
+				,3.59863
+				,0.586201
+				,6.65536
+				,5.26276
+				,0.586201
+				,6.65536
+				,4.4307
+				,0.478809
+				,6.76275
+				,5.26276
+				,0.256977
+				,6.16264
+				,4.4307
+				,0.116663
+				,6.22076
+				,4.4307
+				,0.478809
+				,6.76275
+				,3.59863
+				,0.586201
+				,6.65536
+				,3.59863
+				,0.256977
+				,6.16264
+				,4.4307
+				,0.116663
+				,6.22076
+				,5.26276
+				,0.256977
+				,6.16264
+				,4.4307
+				,0.116663
+				,6.22076
+				,4.4307
+				,-0.0105057
+				,5.58144
+				,5.26276
+				,0.141369
+				,5.58144
+				,4.4307
+				,0.116663
+				,6.22076
+				,3.59863
+				,0.256977
+				,6.16264
+				,4.4307
+				,-0.0105057
+				,5.58144
+				,3.59863
+				,0.141369
+				,5.58144
+				,5.26276
+				,0.141369
+				,5.58144
+				,4.4307
+				,-0.0105057
+				,5.58144
+				,5.26276
+				,0.256977
+				,5.00024
+				,4.4307
+				,0.116663
+				,4.94212
+				,4.4307
+				,-0.0105057
+				,5.58144
+				,3.59863
+				,0.141369
+				,5.58144
+				,3.59863
+				,0.256977
+				,5.00024
+				,4.4307
+				,0.116663
+				,4.94212
+				,5.26276
+				,0.256977
+				,5.00024
+				,4.4307
+				,0.116663
+				,4.94212
+				,4.4307
+				,0.478809
+				,4.40013
+				,5.26276
+				,0.586201
+				,4.50752
+				,4.4307
+				,0.116663
+				,4.94212
+				,3.59863
+				,0.256977
+				,5.00024
+				,4.4307
+				,0.478809
+				,4.40013
+				,3.59863
+				,0.586201
+				,4.50752
+				,5.26276
+				,0.586201
+				,4.50752
+				,4.4307
+				,0.478809
+				,4.40013
+				,5.26276
+				,1.07892
+				,4.1783
+				,4.4307
+				,1.0208
+				,4.03798
+				,4.4307
+				,0.478809
+				,4.40013
+				,3.59863
+				,0.586201
+				,4.50752
+				,3.59863
+				,1.07892
+				,4.1783
+				,4.4307
+				,1.0208
+				,4.03798
+				,5.26276
+				,1.07892
+				,4.1783
+				,4.4307
+				,1.0208
+				,4.03798
+				,4.4307
+				,1.66012
+				,3.91081
+				,5.26276
+				,1.66012
+				,4.06269
+				,4.4307
+				,1.0208
+				,4.03798
+				,3.59863
+				,1.07892
+				,4.1783
+				,4.4307
+				,1.66012
+				,3.91081
+				,3.59863
+				,1.66012
+				,4.06269
+				,5.26276
+				,1.66012
+				,4.06269
+				,4.4307
+				,1.66012
+				,3.91081
+				,5.26276
+				,2.24132
+				,4.1783
+				,4.4307
+				,2.29944
+				,4.03798
+				,4.4307
+				,1.66012
+				,3.91081
+				,3.59863
+				,1.66012
+				,4.06269
+				,3.59863
+				,2.24132
+				,4.1783
+				,4.4307
+				,2.29944
+				,4.03798
+				,5.26276
+				,2.24132
+				,4.1783
+				,4.4307
+				,2.29944
+				,4.03798
+				,4.4307
+				,2.84143
+				,4.40013
+				,5.26276
+				,2.73404
+				,4.50752
+				,4.4307
+				,2.29944
+				,4.03798
+				,3.59863
+				,2.24132
+				,4.1783
+				,4.4307
+				,2.84143
+				,4.40013
+				,3.59863
+				,2.73404
+				,4.50752
+				,5.26276
+				,2.73404
+				,4.50752
+				,4.4307
+				,2.84143
+				,4.40013
+				,5.26276
+				,3.06326
+				,5.00024
+				,4.4307
+				,3.20358
+				,4.94212
+				,4.4307
+				,2.84143
+				,4.40013
+				,3.59863
+				,2.73404
+				,4.50752
+				,3.59863
+				,3.06326
+				,5.00024
+				,4.4307
+				,3.20358
+				,4.94212
+				,5.26276
+				,3.06326
+				,5.00024
+				,4.4307
+				,3.20358
+				,4.94212
+				,4.4307
+				,3.33074
+				,5.58144
+				,5.26276
+				,3.17887
+				,5.58144
+				,4.4307
+				,3.20358
+				,4.94212
+				,3.59863
+				,3.06326
+				,5.00024
+				,4.4307
+				,3.33074
+				,5.58144
+				,3.59863
+				,3.17887
+				,5.58144
+				,-5.3674
+				,1.66012
+				,-5
+				,-5.3674
+				,2.71248
+				,-4.5641
+				,-5.3674
+				,2.79918
+				,-5
+				,-3.33216
+				,2.8294
+				,-4.51567
+				,-3.33216
+				,1.66012
+				,-5
+				,-3.33216
+				,2.92574
+				,-5
+				,-5.26276
+				,3.06326
+				,-4.4188
+				,-5.26276
+				,3.17887
+				,-5
+				,-5.52924
+				,2.92574
+				,-5
+				,-5.52924
+				,2.8294
+				,-4.51567
+				,-3.59863
+				,3.06326
+				,-4.4188
+				,-3.59863
+				,3.17887
+				,-5
+				,-5.3674
+				,2.46556
+				,-4.19456
+				,-3.33216
+				,2.55505
+				,-4.10507
+				,-5.52924
+				,2.55505
+				,-4.10507
+				,-5.26276
+				,2.73404
+				,-3.92608
+				,-3.59863
+				,2.73404
+				,-3.92608
+				,-5.3674
+				,2.09602
+				,-3.94765
+				,-3.33216
+				,2.14445
+				,-3.83072
+				,-5.26276
+				,2.24132
+				,-3.59686
+				,-5.52924
+				,2.14445
+				,-3.83072
+				,-3.59863
+				,2.24132
+				,-3.59686
+				,-5.3674
+				,1.66012
+				,-3.86094
+				,-3.33216
+				,1.66012
+				,-3.73438
+				,-5.52924
+				,1.66012
+				,-3.73438
+				,-5.26276
+				,1.66012
+				,-3.48125
+				,-3.59863
+				,1.66012
+				,-3.48125
+				,-5.3674
+				,1.22421
+				,-3.94765
+				,-3.33216
+				,1.17579
+				,-3.83072
+				,-5.26276
+				,1.07892
+				,-3.59686
+				,-5.52924
+				,1.17579
+				,-3.83072
+				,-3.59863
+				,1.07892
+				,-3.59686
+				,-5.3674
+				,0.854673
+				,-4.19456
+				,-3.33216
+				,0.765187
+				,-4.10507
+				,-5.52924
+				,0.765187
+				,-4.10507
+				,-5.26276
+				,0.586201
+				,-3.92608
+				,-3.59863
+				,0.586201
+				,-3.92608
+				,-5.3674
+				,0.607756
+				,-4.5641
+				,-3.33216
+				,0.490834
+				,-4.51567
+				,-5.26276
+				,0.256977
+				,-4.4188
+				,-5.52924
+				,0.490834
+				,-4.51567
+				,-3.59863
+				,0.256977
+				,-4.4188
+				,-5.3674
+				,0.52106
+				,-5
+				,-3.33216
+				,0.394494
+				,-5
+				,-5.52924
+				,0.394494
+				,-5
+				,-5.26276
+				,0.141369
+				,-5
+				,-3.59863
+				,0.141369
+				,-5
+				,-5.3674
+				,0.607756
+				,-5.4359
+				,-3.33216
+				,0.490834
+				,-5.48433
+				,-5.26276
+				,0.256977
+				,-5.5812
+				,-5.52924
+				,0.490834
+				,-5.48433
+				,-3.59863
+				,0.256977
+				,-5.5812
+				,-5.3674
+				,0.854673
+				,-5.80544
+				,-3.33216
+				,0.765187
+				,-5.89493
+				,-5.52924
+				,0.765187
+				,-5.89493
+				,-5.26276
+				,0.586201
+				,-6.07392
+				,-3.59863
+				,0.586201
+				,-6.07392
+				,-5.3674
+				,1.22421
+				,-6.05235
+				,-3.33216
+				,1.17579
+				,-6.16928
+				,-5.26276
+				,1.07892
+				,-6.40314
+				,-5.52924
+				,1.17579
+				,-6.16928
+				,-3.59863
+				,1.07892
+				,-6.40314
+				,-5.3674
+				,1.66012
+				,-6.13906
+				,-3.33216
+				,1.66012
+				,-6.26563
+				,-5.52924
+				,1.66012
+				,-6.26563
+				,-5.26276
+				,1.66012
+				,-6.51875
+				,-3.59863
+				,1.66012
+				,-6.51875
+				,-5.3674
+				,2.09602
+				,-6.05235
+				,-3.33216
+				,2.14445
+				,-6.16928
+				,-5.26276
+				,2.24132
+				,-6.40314
+				,-5.52924
+				,2.14445
+				,-6.16928
+				,-3.59863
+				,2.24132
+				,-6.40314
+				,-5.3674
+				,2.46556
+				,-5.80544
+				,-3.33216
+				,2.55505
+				,-5.89493
+				,-5.52924
+				,2.55505
+				,-5.89493
+				,-5.26276
+				,2.73404
+				,-6.07392
+				,-3.59863
+				,2.73404
+				,-6.07392
+				,-5.3674
+				,2.71248
+				,-5.4359
+				,-3.33216
+				,2.8294
+				,-5.48433
+				,-5.26276
+				,3.06326
+				,-5.5812
+				,-5.52924
+				,2.8294
+				,-5.48433
+				,-3.59863
+				,3.06326
+				,-5.5812
+				,-5.26276
+				,3.06326
+				,-4.4188
+				,-4.4307
+				,3.33074
+				,-5
+				,-5.26276
+				,3.17887
+				,-5
+				,-4.4307
+				,3.20358
+				,-4.36068
+				,-3.59863
+				,3.06326
+				,-4.4188
+				,-3.59863
+				,3.17887
+				,-5
+				,-4.4307
+				,3.33074
+				,-5
+				,-4.4307
+				,3.20358
+				,-4.36068
+				,-4.4307
+				,2.84143
+				,-3.81869
+				,-4.4307
+				,3.20358
+				,-4.36068
+				,-5.26276
+				,3.06326
+				,-4.4188
+				,-5.26276
+				,2.73404
+				,-3.92608
+				,-4.4307
+				,2.84143
+				,-3.81869
+				,-3.59863
+				,3.06326
+				,-4.4188
+				,-4.4307
+				,3.20358
+				,-4.36068
+				,-3.59863
+				,2.73404
+				,-3.92608
+				,-5.26276
+				,2.24132
+				,-3.59686
+				,-4.4307
+				,2.84143
+				,-3.81869
+				,-5.26276
+				,2.73404
+				,-3.92608
+				,-4.4307
+				,2.29944
+				,-3.45654
+				,-3.59863
+				,2.24132
+				,-3.59686
+				,-3.59863
+				,2.73404
+				,-3.92608
+				,-4.4307
+				,2.84143
+				,-3.81869
+				,-4.4307
+				,2.29944
+				,-3.45654
+				,-4.4307
+				,1.66012
+				,-3.32937
+				,-4.4307
+				,2.29944
+				,-3.45654
+				,-5.26276
+				,2.24132
+				,-3.59686
+				,-5.26276
+				,1.66012
+				,-3.48125
+				,-4.4307
+				,1.66012
+				,-3.32937
+				,-3.59863
+				,2.24132
+				,-3.59686
+				,-4.4307
+				,2.29944
+				,-3.45654
+				,-3.59863
+				,1.66012
+				,-3.48125
+				,-5.26276
+				,1.07892
+				,-3.59686
+				,-4.4307
+				,1.66012
+				,-3.32937
+				,-5.26276
+				,1.66012
+				,-3.48125
+				,-4.4307
+				,1.0208
+				,-3.45654
+				,-3.59863
+				,1.07892
+				,-3.59686
+				,-3.59863
+				,1.66012
+				,-3.48125
+				,-4.4307
+				,1.66012
+				,-3.32937
+				,-4.4307
+				,1.0208
+				,-3.45654
+				,-4.4307
+				,0.478809
+				,-3.81869
+				,-4.4307
+				,1.0208
+				,-3.45654
+				,-5.26276
+				,1.07892
+				,-3.59686
+				,-5.26276
+				,0.586201
+				,-3.92608
+				,-4.4307
+				,0.478809
+				,-3.81869
+				,-3.59863
+				,1.07892
+				,-3.59686
+				,-4.4307
+				,1.0208
+				,-3.45654
+				,-3.59863
+				,0.586201
+				,-3.92608
+				,-5.26276
+				,0.256977
+				,-4.4188
+				,-4.4307
+				,0.478809
+				,-3.81869
+				,-5.26276
+				,0.586201
+				,-3.92608
+				,-4.4307
+				,0.116663
+				,-4.36068
+				,-3.59863
+				,0.256977
+				,-4.4188
+				,-3.59863
+				,0.586201
+				,-3.92608
+				,-4.4307
+				,0.478809
+				,-3.81869
+				,-4.4307
+				,0.116663
+				,-4.36068
+				,-4.4307
+				,-0.0105057
+				,-5
+				,-4.4307
+				,0.116663
+				,-4.36068
+				,-5.26276
+				,0.256977
+				,-4.4188
+				,-5.26276
+				,0.141369
+				,-5
+				,-4.4307
+				,-0.0105057
+				,-5
+				,-3.59863
+				,0.256977
+				,-4.4188
+				,-4.4307
+				,0.116663
+				,-4.36068
+				,-3.59863
+				,0.141369
+				,-5
+				,-5.26276
+				,0.256977
+				,-5.5812
+				,-4.4307
+				,-0.0105057
+				,-5
+				,-5.26276
+				,0.141369
+				,-5
+				,-4.4307
+				,0.116663
+				,-5.63932
+				,-3.59863
+				,0.256977
+				,-5.5812
+				,-3.59863
+				,0.141369
+				,-5
+				,-4.4307
+				,-0.0105057
+				,-5
+				,-4.4307
+				,0.116663
+				,-5.63932
+				,-4.4307
+				,0.478809
+				,-6.18131
+				,-4.4307
+				,0.116663
+				,-5.63932
+				,-5.26276
+				,0.256977
+				,-5.5812
+				,-5.26276
+				,0.586201
+				,-6.07392
+				,-4.4307
+				,0.478809
+				,-6.18131
+				,-3.59863
+				,0.256977
+				,-5.5812
+				,-4.4307
+				,0.116663
+				,-5.63932
+				,-3.59863
+				,0.586201
+				,-6.07392
+				,-5.26276
+				,1.07892
+				,-6.40314
+				,-4.4307
+				,0.478809
+				,-6.18131
+				,-5.26276
+				,0.586201
+				,-6.07392
+				,-4.4307
+				,1.0208
+				,-6.54346
+				,-3.59863
+				,1.07892
+				,-6.40314
+				,-3.59863
+				,0.586201
+				,-6.07392
+				,-4.4307
+				,0.478809
+				,-6.18131
+				,-4.4307
+				,1.0208
+				,-6.54346
+				,-4.4307
+				,1.66012
+				,-6.67063
+				,-4.4307
+				,1.0208
+				,-6.54346
+				,-5.26276
+				,1.07892
+				,-6.40314
+				,-5.26276
+				,1.66012
+				,-6.51875
+				,-4.4307
+				,1.66012
+				,-6.67063
+				,-3.59863
+				,1.07892
+				,-6.40314
+				,-4.4307
+				,1.0208
+				,-6.54346
+				,-3.59863
+				,1.66012
+				,-6.51875
+				,-5.26276
+				,2.24132
+				,-6.40314
+				,-4.4307
+				,1.66012
+				,-6.67063
+				,-5.26276
+				,1.66012
+				,-6.51875
+				,-4.4307
+				,2.29944
+				,-6.54346
+				,-3.59863
+				,2.24132
+				,-6.40314
+				,-3.59863
+				,1.66012
+				,-6.51875
+				,-4.4307
+				,1.66012
+				,-6.67063
+				,-4.4307
+				,2.29944
+				,-6.54346
+				,-4.4307
+				,2.84143
+				,-6.18131
+				,-4.4307
+				,2.29944
+				,-6.54346
+				,-5.26276
+				,2.24132
+				,-6.40314
+				,-5.26276
+				,2.73404
+				,-6.07392
+				,-4.4307
+				,2.84143
+				,-6.18131
+				,-3.59863
+				,2.24132
+				,-6.40314
+				,-4.4307
+				,2.29944
+				,-6.54346
+				,-3.59863
+				,2.73404
+				,-6.07392
+				,-5.26276
+				,3.06326
+				,-5.5812
+				,-4.4307
+				,2.84143
+				,-6.18131
+				,-5.26276
+				,2.73404
+				,-6.07392
+				,-4.4307
+				,3.20358
+				,-5.63932
+				,-3.59863
+				,3.06326
+				,-5.5812
+				,-3.59863
+				,2.73404
+				,-6.07392
+				,-4.4307
+				,2.84143
+				,-6.18131
+				,-4.4307
+				,3.20358
+				,-5.63932
+				,-4.4307
+				,3.33074
+				,-5
+				,-4.4307
+				,3.20358
+				,-5.63932
+				,-5.26276
+				,3.06326
+				,-5.5812
+				,-5.26276
+				,3.17887
+				,-5
+				,-4.4307
+				,3.33074
+				,-5
+				,-3.59863
+				,3.06326
+				,-5.5812
+				,-4.4307
+				,3.20358
+				,-5.63932
+				,-3.59863
+				,3.17887
+				,-5
+				,-5.3674
+				,1.66012
+				,5.58144
+				,-5.3674
+				,2.71248
+				,6.01734
+				,-5.3674
+				,2.79918
+				,5.58144
+				,-3.33216
+				,2.8294
+				,6.06577
+				,-3.33216
+				,1.66012
+				,5.58144
+				,-3.33216
+				,2.92574
+				,5.58144
+				,-5.26276
+				,3.06326
+				,6.16264
+				,-5.26276
+				,3.17887
+				,5.58144
+				,-5.52924
+				,2.92574
+				,5.58144
+				,-5.52924
+				,2.8294
+				,6.06577
+				,-3.59863
+				,3.06326
+				,6.16264
+				,-3.59863
+				,3.17887
+				,5.58144
+				,-5.3674
+				,2.46556
+				,6.38688
+				,-3.33216
+				,2.55505
+				,6.47637
+				,-5.52924
+				,2.55505
+				,6.47637
+				,-5.26276
+				,2.73404
+				,6.65536
+				,-3.59863
+				,2.73404
+				,6.65536
+				,-5.3674
+				,2.09602
+				,6.63379
+				,-3.33216
+				,2.14445
+				,6.75072
+				,-5.26276
+				,2.24132
+				,6.98458
+				,-5.52924
+				,2.14445
+				,6.75072
+				,-3.59863
+				,2.24132
+				,6.98458
+				,-5.3674
+				,1.66012
+				,6.7205
+				,-3.33216
+				,1.66012
+				,6.84706
+				,-5.52924
+				,1.66012
+				,6.84706
+				,-5.26276
+				,1.66012
+				,7.10019
+				,-3.59863
+				,1.66012
+				,7.10019
+				,-5.3674
+				,1.22421
+				,6.63379
+				,-3.33216
+				,1.17579
+				,6.75072
+				,-5.26276
+				,1.07892
+				,6.98458
+				,-5.52924
+				,1.17579
+				,6.75072
+				,-3.59863
+				,1.07892
+				,6.98458
+				,-5.3674
+				,0.854673
+				,6.38688
+				,-3.33216
+				,0.765187
+				,6.47637
+				,-5.52924
+				,0.765187
+				,6.47637
+				,-5.26276
+				,0.586201
+				,6.65536
+				,-3.59863
+				,0.586201
+				,6.65536
+				,-5.3674
+				,0.607756
+				,6.01734
+				,-3.33216
+				,0.490834
+				,6.06577
+				,-5.26276
+				,0.256977
+				,6.16264
+				,-5.52924
+				,0.490834
+				,6.06577
+				,-3.59863
+				,0.256977
+				,6.16264
+				,-5.3674
+				,0.52106
+				,5.58144
+				,-3.33216
+				,0.394494
+				,5.58144
+				,-5.52924
+				,0.394494
+				,5.58144
+				,-5.26276
+				,0.141369
+				,5.58144
+				,-3.59863
+				,0.141369
+				,5.58144
+				,-5.3674
+				,0.607756
+				,5.14554
+				,-3.33216
+				,0.490834
+				,5.09711
+				,-5.26276
+				,0.256977
+				,5.00024
+				,-5.52924
+				,0.490834
+				,5.09711
+				,-3.59863
+				,0.256977
+				,5.00024
+				,-5.3674
+				,0.854673
+				,4.776
+				,-3.33216
+				,0.765187
+				,4.68651
+				,-5.52924
+				,0.765187
+				,4.68651
+				,-5.26276
+				,0.586201
+				,4.50752
+				,-3.59863
+				,0.586201
+				,4.50752
+				,-5.3674
+				,1.22421
+				,4.52909
+				,-3.33216
+				,1.17579
+				,4.41216
+				,-5.26276
+				,1.07892
+				,4.1783
+				,-5.52924
+				,1.17579
+				,4.41216
+				,-3.59863
+				,1.07892
+				,4.1783
+				,-5.3674
+				,1.66012
+				,4.44238
+				,-3.33216
+				,1.66012
+				,4.31581
+				,-5.52924
+				,1.66012
+				,4.31581
+				,-5.26276
+				,1.66012
+				,4.06269
+				,-3.59863
+				,1.66012
+				,4.06269
+				,-5.3674
+				,2.09602
+				,4.52909
+				,-3.33216
+				,2.14445
+				,4.41216
+				,-5.26276
+				,2.24132
+				,4.1783
+				,-5.52924
+				,2.14445
+				,4.41216
+				,-3.59863
+				,2.24132
+				,4.1783
+				,-5.3674
+				,2.46556
+				,4.776
+				,-3.33216
+				,2.55505
+				,4.68651
+				,-5.52924
+				,2.55505
+				,4.68651
+				,-5.26276
+				,2.73404
+				,4.50752
+				,-3.59863
+				,2.73404
+				,4.50752
+				,-5.3674
+				,2.71248
+				,5.14554
+				,-3.33216
+				,2.8294
+				,5.09711
+				,-5.26276
+				,3.06326
+				,5.00024
+				,-5.52924
+				,2.8294
+				,5.09711
+				,-3.59863
+				,3.06326
+				,5.00024
+				,-5.26276
+				,3.06326
+				,6.16264
+				,-4.4307
+				,3.33074
+				,5.58144
+				,-5.26276
+				,3.17887
+				,5.58144
+				,-4.4307
+				,3.20358
+				,6.22076
+				,-3.59863
+				,3.06326
+				,6.16264
+				,-3.59863
+				,3.17887
+				,5.58144
+				,-4.4307
+				,3.33074
+				,5.58144
+				,-4.4307
+				,3.20358
+				,6.22076
+				,-4.4307
+				,2.84143
+				,6.76275
+				,-4.4307
+				,3.20358
+				,6.22076
+				,-5.26276
+				,3.06326
+				,6.16264
+				,-5.26276
+				,2.73404
+				,6.65536
+				,-4.4307
+				,2.84143
+				,6.76275
+				,-3.59863
+				,3.06326
+				,6.16264
+				,-4.4307
+				,3.20358
+				,6.22076
+				,-3.59863
+				,2.73404
+				,6.65536
+				,-5.26276
+				,2.24132
+				,6.98458
+				,-4.4307
+				,2.84143
+				,6.76275
+				,-5.26276
+				,2.73404
+				,6.65536
+				,-4.4307
+				,2.29944
+				,7.1249
+				,-3.59863
+				,2.24132
+				,6.98458
+				,-3.59863
+				,2.73404
+				,6.65536
+				,-4.4307
+				,2.84143
+				,6.76275
+				,-4.4307
+				,2.29944
+				,7.1249
+				,-4.4307
+				,1.66012
+				,7.25206
+				,-4.4307
+				,2.29944
+				,7.1249
+				,-5.26276
+				,2.24132
+				,6.98458
+				,-5.26276
+				,1.66012
+				,7.10019
+				,-4.4307
+				,1.66012
+				,7.25206
+				,-3.59863
+				,2.24132
+				,6.98458
+				,-4.4307
+				,2.29944
+				,7.1249
+				,-3.59863
+				,1.66012
+				,7.10019
+				,-5.26276
+				,1.07892
+				,6.98458
+				,-4.4307
+				,1.66012
+				,7.25206
+				,-5.26276
+				,1.66012
+				,7.10019
+				,-4.4307
+				,1.0208
+				,7.1249
+				,-3.59863
+				,1.07892
+				,6.98458
+				,-3.59863
+				,1.66012
+				,7.10019
+				,-4.4307
+				,1.66012
+				,7.25206
+				,-4.4307
+				,1.0208
+				,7.1249
+				,-4.4307
+				,0.478809
+				,6.76275
+				,-4.4307
+				,1.0208
+				,7.1249
+				,-5.26276
+				,1.07892
+				,6.98458
+				,-5.26276
+				,0.586201
+				,6.65536
+				,-4.4307
+				,0.478809
+				,6.76275
+				,-3.59863
+				,1.07892
+				,6.98458
+				,-4.4307
+				,1.0208
+				,7.1249
+				,-3.59863
+				,0.586201
+				,6.65536
+				,-5.26276
+				,0.256977
+				,6.16264
+				,-4.4307
+				,0.478809
+				,6.76275
+				,-5.26276
+				,0.586201
+				,6.65536
+				,-4.4307
+				,0.116663
+				,6.22076
+				,-3.59863
+				,0.256977
+				,6.16264
+				,-3.59863
+				,0.586201
+				,6.65536
+				,-4.4307
+				,0.478809
+				,6.76275
+				,-4.4307
+				,0.116663
+				,6.22076
+				,-4.4307
+				,-0.0105057
+				,5.58144
+				,-4.4307
+				,0.116663
+				,6.22076
+				,-5.26276
+				,0.256977
+				,6.16264
+				,-5.26276
+				,0.141369
+				,5.58144
+				,-4.4307
+				,-0.0105057
+				,5.58144
+				,-3.59863
+				,0.256977
+				,6.16264
+				,-4.4307
+				,0.116663
+				,6.22076
+				,-3.59863
+				,0.141369
+				,5.58144
+				,-5.26276
+				,0.256977
+				,5.00024
+				,-4.4307
+				,-0.0105057
+				,5.58144
+				,-5.26276
+				,0.141369
+				,5.58144
+				,-4.4307
+				,0.116663
+				,4.94212
+				,-3.59863
+				,0.256977
+				,5.00024
+				,-3.59863
+				,0.141369
+				,5.58144
+				,-4.4307
+				,-0.0105057
+				,5.58144
+				,-4.4307
+				,0.116663
+				,4.94212
+				,-4.4307
+				,0.478809
+				,4.40013
+				,-4.4307
+				,0.116663
+				,4.94212
+				,-5.26276
+				,0.256977
+				,5.00024
+				,-5.26276
+				,0.586201
+				,4.50752
+				,-4.4307
+				,0.478809
+				,4.40013
+				,-3.59863
+				,0.256977
+				,5.00024
+				,-4.4307
+				,0.116663
+				,4.94212
+				,-3.59863
+				,0.586201
+				,4.50752
+				,-5.26276
+				,1.07892
+				,4.1783
+				,-4.4307
+				,0.478809
+				,4.40013
+				,-5.26276
+				,0.586201
+				,4.50752
+				,-4.4307
+				,1.0208
+				,4.03798
+				,-3.59863
+				,1.07892
+				,4.1783
+				,-3.59863
+				,0.586201
+				,4.50752
+				,-4.4307
+				,0.478809
+				,4.40013
+				,-4.4307
+				,1.0208
+				,4.03798
+				,-4.4307
+				,1.66012
+				,3.91081
+				,-4.4307
+				,1.0208
+				,4.03798
+				,-5.26276
+				,1.07892
+				,4.1783
+				,-5.26276
+				,1.66012
+				,4.06269
+				,-4.4307
+				,1.66012
+				,3.91081
+				,-3.59863
+				,1.07892
+				,4.1783
+				,-4.4307
+				,1.0208
+				,4.03798
+				,-3.59863
+				,1.66012
+				,4.06269
+				,-5.26276
+				,2.24132
+				,4.1783
+				,-4.4307
+				,1.66012
+				,3.91081
+				,-5.26276
+				,1.66012
+				,4.06269
+				,-4.4307
+				,2.29944
+				,4.03798
+				,-3.59863
+				,2.24132
+				,4.1783
+				,-3.59863
+				,1.66012
+				,4.06269
+				,-4.4307
+				,1.66012
+				,3.91081
+				,-4.4307
+				,2.29944
+				,4.03798
+				,-4.4307
+				,2.84143
+				,4.40013
+				,-4.4307
+				,2.29944
+				,4.03798
+				,-5.26276
+				,2.24132
+				,4.1783
+				,-5.26276
+				,2.73404
+				,4.50752
+				,-4.4307
+				,2.84143
+				,4.40013
+				,-3.59863
+				,2.24132
+				,4.1783
+				,-4.4307
+				,2.29944
+				,4.03798
+				,-3.59863
+				,2.73404
+				,4.50752
+				,-5.26276
+				,3.06326
+				,5.00024
+				,-4.4307
+				,2.84143
+				,4.40013
+				,-5.26276
+				,2.73404
+				,4.50752
+				,-4.4307
+				,3.20358
+				,4.94212
+				,-3.59863
+				,3.06326
+				,5.00024
+				,-3.59863
+				,2.73404
+				,4.50752
+				,-4.4307
+				,2.84143
+				,4.40013
+				,-4.4307
+				,3.20358
+				,4.94212
+				,-4.4307
+				,3.33074
+				,5.58144
+				,-4.4307
+				,3.20358
+				,4.94212
+				,-5.26276
+				,3.06326
+				,5.00024
+				,-5.26276
+				,3.17887
+				,5.58144
+				,-4.4307
+				,3.33074
+				,5.58144
+				,-3.59863
+				,3.06326
+				,5.00024
+				,-4.4307
+				,3.20358
+				,4.94212
+				,-3.59863
+				,3.17887
+				,5.58144
+				,1.57047
+				,5.64031
+				,-1.49622
+				,1.57047
+				,5.26549
+				,-1.33712
+				,1.44886
+				,4.47065
+				,-3.87612
+				,1.44886
+				,4.36605
+				,-3.83172
+				,1.35471
+				,4.47065
+				,-3.87612
+				,1.35471
+				,4.36605
+				,-3.83172
+				,1.2331
+				,5.64031
+				,-1.49622
+				,1.2331
+				,5.26549
+				,-1.33712
+				,1.35471
+				,4.47065
+				,-3.87612
+				,1.2331
+				,5.64031
+				,-1.49622
+				,1.44886
+				,4.47065
+				,-3.87612
+				,1.57047
+				,5.64031
+				,-1.49622
+				,1.2331
+				,5.26549
+				,-1.33712
+				,1.35471
+				,4.36605
+				,-3.83172
+				,1.57047
+				,5.26549
+				,-1.33712
+				,1.44886
+				,4.36605
+				,-3.83172
+				,1.14686
+				,5.85852
+				,-1.33471
+				,1.14686
+				,5.30763
+				,-1.10087
+				,1.64686
+				,5.85852
+				,-1.33471
+				,1.64686
+				,5.30763
+				,-1.10087
+				,2.09281
+				,5.79411
+				,-1.12728
+				,2.09281
+				,5.5316
+				,-1.01586
+				,2.09281
+				,5.73347
+				,-1.27015
+				,2.09281
+				,5.47096
+				,-1.15873
+				,1.64686
+				,5.74398
+				,-1.60456
+				,1.64686
+				,5.19309
+				,-1.37072
+				,1.14686
+				,5.74398
+				,-1.60456
+				,1.14686
+				,5.19309
+				,-1.37072
+				,0.635642
+				,5.74122
+				,-1.26406
+				,0.635642
+				,5.46936
+				,-1.14866
+				,0.635642
+				,5.79925
+				,-1.12735
+				,0.635642
+				,5.52739
+				,-1.01195
+				,1.14686
+				,5.85852
+				,-1.33471
+				,1.64686
+				,5.85852
+				,-1.33471
+				,1.14686
+				,5.19309
+				,-1.37072
+				,1.64686
+				,5.19309
+				,-1.37072
+				,2.09281
+				,5.79411
+				,-1.12728
+				,2.09281
+				,5.5316
+				,-1.01586
+				,2.09281
+				,5.79411
+				,-1.12728
+				,2.09281
+				,5.5316
+				,-1.01586
+				,1.64686
+				,5.19309
+				,-1.37072
+				,2.09281
+				,5.47096
+				,-1.15873
+				,0.635642
+				,5.79925
+				,-1.12735
+				,0.635642
+				,5.46936
+				,-1.14866
+				,0.635642
+				,5.52739
+				,-1.01195
+				,0.635642
+				,5.79925
+				,-1.12735
+				,-1.44886
+				,4.47065
+				,-3.87612
+				,-1.57047
+				,5.26549
+				,-1.33712
+				,-1.57047
+				,5.64031
+				,-1.49622
+				,-1.44886
+				,4.36605
+				,-3.83172
+				,-1.2331
+				,5.64031
+				,-1.49622
+				,-1.35471
+				,4.36605
+				,-3.83172
+				,-1.35471
+				,4.47065
+				,-3.87612
+				,-1.2331
+				,5.26549
+				,-1.33712
+				,-1.44886
+				,4.47065
+				,-3.87612
+				,-1.2331
+				,5.64031
+				,-1.49622
+				,-1.35471
+				,4.47065
+				,-3.87612
+				,-1.57047
+				,5.64031
+				,-1.49622
+				,-1.57047
+				,5.26549
+				,-1.33712
+				,-1.35471
+				,4.36605
+				,-3.83172
+				,-1.2331
+				,5.26549
+				,-1.33712
+				,-1.44886
+				,4.36605
+				,-3.83172
+				,-1.64686
+				,5.85852
+				,-1.33471
+				,-1.14686
+				,5.30763
+				,-1.10087
+				,-1.14686
+				,5.85852
+				,-1.33471
+				,-1.64686
+				,5.30763
+				,-1.10087
+				,-2.09281
+				,5.73347
+				,-1.27015
+				,-2.09281
+				,5.5316
+				,-1.01586
+				,-2.09281
+				,5.79411
+				,-1.12728
+				,-2.09281
+				,5.47096
+				,-1.15873
+				,-1.14686
+				,5.74398
+				,-1.60456
+				,-1.64686
+				,5.19309
+				,-1.37072
+				,-1.64686
+				,5.74398
+				,-1.60456
+				,-1.14686
+				,5.19309
+				,-1.37072
+				,-0.635642
+				,5.79925
+				,-1.12735
+				,-0.635642
+				,5.46936
+				,-1.14866
+				,-0.635642
+				,5.74122
+				,-1.26406
+				,-0.635642
+				,5.52739
+				,-1.01195
+				,-1.14686
+				,5.85852
+				,-1.33471
+				,-1.64686
+				,5.85852
+				,-1.33471
+				,-1.14686
+				,5.19309
+				,-1.37072
+				,-1.64686
+				,5.19309
+				,-1.37072
+				,-2.09281
+				,5.79411
+				,-1.12728
+				,-2.09281
+				,5.5316
+				,-1.01586
+				,-2.09281
+				,5.73347
+				,-1.27015
+				,-2.09281
+				,5.79411
+				,-1.12728
+				,-1.64686
+				,5.19309
+				,-1.37072
+				,-2.09281
+				,5.47096
+				,-1.15873
+				,-2.09281
+				,5.73347
+				,-1.27015
+				,-0.635642
+				,5.74122
+				,-1.26406
+				,-0.635642
+				,5.46936
+				,-1.14866
+				,-0.635642
+				,5.79925
+				,-1.12735
+				,-0.635642
+				,5.74122
+				,-1.26406
+				,-0.635642
+				,5.79925
+				,-1.12735
+				,3.28145
+				,5.5256
+				,5.3738
+				,4.1697
+				,4.0473
+				,5.3738
+				,3.86047
+				,5.75026
+				,5.25979
+				,4.63989
+				,4.45308
+				,5.25979
+				,3.86047
+				,5.75026
+				,5.25979
+				,4.63989
+				,4.45308
+				,5.25979
+				,3.86047
+				,5.75026
+				,4.3003
+				,4.63989
+				,4.45308
+				,4.3003
+				,3.86047
+				,5.75026
+				,4.3003
+				,4.63989
+				,4.45308
+				,4.3003
+				,3.28145
+				,5.5256
+				,4.1863
+				,4.63989
+				,4.45308
+				,4.3003
+				,4.1697
+				,4.0473
+				,4.1863
+				,3.28145
+				,5.5256
+				,4.1863
+				,3.28145
+				,5.5256
+				,5.3738
+				,3.86047
+				,5.75026
+				,4.3003
+				,3.86047
+				,5.75026
+				,5.25979
+				,4.1697
+				,4.0473
+				,5.3738
+				,4.1697
+				,4.0473
+				,4.1863
+				,4.63989
+				,4.45308
+				,5.25979
+				,4.63989
+				,4.45308
+				,4.3003
+				,2.15556
+				,3.39441
+				,-0.97551
+				,2.15556
+				,4.16003
+				,-1.06926
+				,2.15556
+				,4.44128
+				,-0.88176
+				,2.15556
+				,4.22253
+				,0.368225
+				,2.15556
+				,3.39441
+				,1.64948
+				,2.15556
+				,5.50378
+				,0.961975
+				,2.15556
+				,5.37878
+				,1.46198
+				,0.6
+				,3.39441
+				,-0.97551
+				,0.6
+				,4.16003
+				,-1.06926
+				,2.15556
+				,4.16003
+				,-1.06926
+				,0.6
+				,4.44128
+				,-0.88176
+				,2.15556
+				,4.44128
+				,-0.88176
+				,2.15556
+				,4.44128
+				,-0.88176
+				,0.6
+				,4.44128
+				,-0.88176
+				,0.6
+				,4.22253
+				,0.36824
+				,2.15556
+				,4.22253
+				,0.368225
+				,2.15556
+				,4.22253
+				,0.368225
+				,0.6
+				,4.22253
+				,0.36824
+				,0.6
+				,5.50378
+				,0.96199
+				,2.15556
+				,5.50378
+				,0.961975
+				,2.15556
+				,5.50378
+				,0.961975
+				,0.6
+				,5.50378
+				,0.96199
+				,0.6
+				,5.37878
+				,1.46199
+				,2.15556
+				,5.37878
+				,1.46198
+				,2.15556
+				,5.37878
+				,1.46198
+				,0.6
+				,5.37878
+				,1.46199
+				,0.6
+				,3.39441
+				,1.64949
+				,2.15556
+				,3.39441
+				,1.64948
+				,0.6
+				,4.44128
+				,-0.88176
+				,0.6
+				,4.22253
+				,0.36824
+				,0.6
+				,3.39441
+				,1.64949
+				,0.6
+				,5.37878
+				,1.46199
+				,0.6
+				,5.50378
+				,0.96199
+				,3.01518
+				,4.97158
+				,3.09081
+				,3.01518
+				,6.18587
+				,3.09081
+				,2.92589
+				,4.97158
+				,3.24546
+				,2.92589
+				,6.18586
+				,3.24546
+				,2.74732
+				,6.18586
+				,3.24546
+				,2.74732
+				,4.97158
+				,3.24546
+				,2.65804
+				,4.97158
+				,3.09081
+				,2.65804
+				,6.18587
+				,3.09081
+				,2.65804
+				,4.97158
+				,3.09081
+				,2.65804
+				,6.18587
+				,3.09081
+				,2.74732
+				,6.18586
+				,2.93617
+				,2.74732
+				,4.97157
+				,2.93617
+				,2.92589
+				,4.97157
+				,2.93617
+				,2.92589
+				,6.18586
+				,2.93617
+				,3.01518
+				,6.18587
+				,3.09081
+				,3.01518
+				,4.97158
+				,3.09081
+				,2.77919
+				,6.71412
+				,3.24546
+				,2.86501
+				,6.73873
+				,3.09081
+				,2.60753
+				,6.6649
+				,3.24546
+				,2.5217
+				,6.64029
+				,3.09081
+				,2.60753
+				,6.6649
+				,2.93616
+				,2.5217
+				,6.64029
+				,3.09081
+				,2.77919
+				,6.71413
+				,2.93616
+				,2.86501
+				,6.73873
+				,3.09081
+				,2.55914
+				,7.02218
+				,3.24546
+				,2.61412
+				,7.09253
+				,3.09081
+				,2.44921
+				,6.88147
+				,3.24546
+				,2.39421
+				,6.81111
+				,3.09081
+				,2.44921
+				,6.88147
+				,2.93617
+				,2.39421
+				,6.81111
+				,3.09081
+				,2.55914
+				,7.02219
+				,2.93617
+				,2.61412
+				,7.09253
+				,3.09081
+				,2.28942
+				,7.15433
+				,3.24546
+				,2.30647
+				,7.24197
+				,3.09081
+				,2.25536
+				,6.97905
+				,3.24546
+				,2.23831
+				,6.89137
+				,3.09081
+				,2.25536
+				,6.97905
+				,2.93616
+				,2.23831
+				,6.89137
+				,3.09081
+				,2.28942
+				,7.15433
+				,2.93616
+				,2.30647
+				,7.24197
+				,3.09081
+				,1.98661
+				,7.18344
+				,3.24546
+				,1.98661
+				,7.27268
+				,3.09081
+				,1.98661
+				,7.00489
+				,3.24546
+				,1.98661
+				,6.91558
+				,3.09081
+				,1.98661
+				,7.00489
+				,2.93616
+				,1.98661
+				,6.91558
+				,3.09081
+				,1.98661
+				,7.18344
+				,2.93617
+				,1.98661
+				,7.27268
+				,3.09081
+				,-0.00112091
+				,7.18345
+				,3.24546
+				,1.98661
+				,7.18344
+				,3.24546
+				,1.98661
+				,7.27268
+				,3.09081
+				,-0.00112091
+				,7.27269
+				,3.09081
+				,-0.00112091
+				,7.00489
+				,3.24546
+				,1.98661
+				,7.00489
+				,3.24546
+				,-0.00112091
+				,6.91557
+				,3.09081
+				,1.98661
+				,6.91558
+				,3.09081
+				,-0.00112091
+				,7.0049
+				,2.93616
+				,1.98661
+				,7.00489
+				,2.93616
+				,1.98661
+				,6.91558
+				,3.09081
+				,-0.00112091
+				,6.91557
+				,3.09081
+				,-0.00112091
+				,7.18345
+				,2.93617
+				,1.98661
+				,7.18344
+				,2.93617
+				,-0.00112091
+				,7.27269
+				,3.09081
+				,1.98661
+				,7.27268
+				,3.09081
+				,1.40786
+				,7.11017
+				,-1.88513
+				,1.40786
+				,7.08937
+				,3.10419
+				,1.34143
+				,6.99511
+				,-1.88513
+				,1.34143
+				,6.97431
+				,3.10419
+				,1.34143
+				,6.99511
+				,-1.88513
+				,1.34143
+				,6.97431
+				,3.10419
+				,1.20857
+				,6.97431
+				,3.10419
+				,1.20857
+				,6.99511
+				,-1.88513
+				,1.20857
+				,6.99511
+				,-1.88513
+				,1.20857
+				,6.97431
+				,3.10419
+				,1.14214
+				,7.11017
+				,-1.88513
+				,1.14214
+				,7.08937
+				,3.10419
+				,1.14214
+				,7.11017
+				,-1.88513
+				,1.14214
+				,7.08937
+				,3.10419
+				,1.20857
+				,7.20442
+				,3.10419
+				,1.20857
+				,7.22523
+				,-1.88513
+				,1.20857
+				,7.22523
+				,-1.88513
+				,1.20857
+				,7.20442
+				,3.10419
+				,1.34143
+				,7.22523
+				,-1.88513
+				,1.34143
+				,7.20442
+				,3.10419
+				,1.34143
+				,7.22523
+				,-1.88513
+				,1.34143
+				,7.20442
+				,3.10419
+				,1.40786
+				,7.08937
+				,3.10419
+				,1.40786
+				,7.11017
+				,-1.88513
+				,2.52315
+				,1.65387
+				,-4.08368
+				,3.57579
+				,1.65387
+				,-4.08368
+				,2.52315
+				,2.29555
+				,-4.35369
+				,3.57579
+				,2.29555
+				,-4.35369
+				,3.57579
+				,2.56134
+				,-5.00556
+				,2.52315
+				,2.56134
+				,-5.00556
+				,2.52315
+				,2.29555
+				,-5.65742
+				,3.57579
+				,2.29555
+				,-5.65742
+				,3.57579
+				,1.65387
+				,-5.92743
+				,2.52315
+				,1.65387
+				,-5.92743
+				,2.52315
+				,1.01219
+				,-5.65742
+				,3.57579
+				,1.01219
+				,-5.65742
+				,2.52315
+				,1.01219
+				,-5.65742
+				,3.57579
+				,1.01219
+				,-5.65742
+				,3.57579
+				,0.746398
+				,-5.00556
+				,2.52315
+				,0.746398
+				,-5.00556
+				,2.52315
+				,1.01219
+				,-4.35369
+				,3.57579
+				,1.01219
+				,-4.35369
+				,1.64814
+				,1.65387
+				,-4.70739
+				,1.64814
+				,1.8494
+				,-4.79472
+				,1.64814
+				,1.93039
+				,-5.00556
+				,1.64814
+				,1.8494
+				,-5.2164
+				,1.64814
+				,1.65387
+				,-5.30373
+				,1.64814
+				,1.45834
+				,-5.2164
+				,1.64814
+				,1.45834
+				,-5.2164
+				,1.64814
+				,1.37735
+				,-5.00556
+				,1.64814
+				,1.45834
+				,-4.79472
+				,-0.00112091
+				,1.65387
+				,-4.70738
+				,-0.00112091
+				,1.8494
+				,-4.79472
+				,-0.00112091
+				,1.93039
+				,-5.00555
+				,-0.00112091
+				,1.8494
+				,-5.2164
+				,-0.00112091
+				,1.65387
+				,-5.30373
+				,-0.00112091
+				,1.45834
+				,-5.2164
+				,-0.00112091
+				,1.45834
+				,-5.2164
+				,1.64814
+				,1.45834
+				,-5.2164
+				,1.64814
+				,1.37735
+				,-5.00556
+				,-0.00112091
+				,1.45834
+				,-5.2164
+				,-0.00112091
+				,1.37735
+				,-5.00555
+				,-0.00112091
+				,1.45834
+				,-4.79472
+				,-0.00112091
+				,1.11017
+				,-4.09113
+				,-0.00112091
+				,1.11017
+				,-5.91612
+				,0.99375
+				,1.11017
+				,-5.91612
+				,1.1009
+				,1.22686
+				,-4.09113
+				,1.10089
+				,1.22686
+				,-5.91612
+				,1.49375
+				,1.34941
+				,-5.72404
+				,-0.00112091
+				,1.11017
+				,-4.09113
+				,0.99375
+				,1.11017
+				,-4.09113
+				,-0.00112091
+				,3.47859
+				,-4.09113
+				,1.1009
+				,1.22686
+				,-4.09113
+				,0.99375
+				,2.22859
+				,-4.09113
+				,1.49375
+				,1.34941
+				,-4.28321
+				,1.49375
+				,2.10776
+				,-4.28321
+				,1.57708
+				,3.47859
+				,-4.09113
+				,0.99375
+				,1.11017
+				,-4.09113
+				,1.49375
+				,1.34941
+				,-4.28321
+				,1.49375
+				,2.10776
+				,-5.72404
+				,1.49375
+				,2.10776
+				,-4.28321
+				,0.99375
+				,2.22859
+				,-5.91612
+				,0.99375
+				,2.22859
+				,-4.09113
+				,0.99375
+				,2.22859
+				,-4.09113
+				,0.99375
+				,2.22859
+				,-5.91612
+				,1.57708
+				,3.47859
+				,-5.91612
+				,1.57708
+				,3.47859
+				,-4.09113
+				,-0.00112091
+				,3.47859
+				,-5.91612
+				,0.99375
+				,2.22859
+				,-5.91612
+				,1.10089
+				,1.22686
+				,-5.91612
+				,1.49375
+				,1.34941
+				,-5.72404
+				,1.57708
+				,3.47859
+				,-5.91612
+				,1.77987
+				,3.46628
+				,7.95238
+				,2.06737
+				,3.46628
+				,7.95238
+				,1.92362
+				,3.69856
+				,8.10906
+				,2.21112
+				,3.69856
+				,8.10906
+				,2.35487
+				,3.46628
+				,7.95238
+				,2.21112
+				,3.234
+				,7.79569
+				,1.92362
+				,3.234
+				,7.79569
+				,1.77987
+				,3.46429
+				,5.25238
+				,1.77987
+				,3.46628
+				,7.95238
+				,1.92362
+				,3.71327
+				,5.25238
+				,1.92362
+				,3.69856
+				,8.10906
+				,2.21112
+				,3.69856
+				,8.10906
+				,2.21112
+				,3.71327
+				,5.25238
+				,2.35487
+				,3.46429
+				,5.25238
+				,2.35487
+				,3.46628
+				,7.95238
+				,2.35487
+				,3.46429
+				,5.25238
+				,2.35487
+				,3.46628
+				,7.95238
+				,2.21112
+				,3.234
+				,7.79569
+				,2.21112
+				,3.2153
+				,5.25238
+				,1.92362
+				,3.2153
+				,5.25238
+				,1.92362
+				,3.234
+				,7.79569
+				,1.77987
+				,3.46628
+				,7.95238
+				,1.77987
+				,3.46429
+				,5.25238
+				,2.70328
+				,4.08592
+				,-8.12664
+				,2.69656
+				,3.52342
+				,-8.12664
+				,0.752339
+				,4.08592
+				,-8.12664
+				,0.75906
+				,3.52342
+				,-8.12664
+				,2.69656
+				,4.08592
+				,-6.18914
+				,2.69656
+				,3.52342
+				,-6.18914
+				,2.70328
+				,4.08592
+				,-8.12664
+				,2.69656
+				,3.52342
+				,-8.12664
+				,0.752339
+				,4.08592
+				,-8.12664
+				,0.75906
+				,3.52342
+				,-8.12664
+				,0.75906
+				,4.08592
+				,-6.18914
+				,0.75906
+				,3.52342
+				,-6.18914
+				,0.752339
+				,4.08592
+				,-8.12664
+				,0.75906
+				,4.08592
+				,-6.18914
+				,2.70328
+				,4.08592
+				,-8.12664
+				,2.69656
+				,4.08592
+				,-6.18914
+				,0.75906
+				,3.52342
+				,-6.18914
+				,0.75906
+				,3.52342
+				,-8.12664
+				,2.69656
+				,3.52342
+				,-6.18914
+				,2.69656
+				,3.52342
+				,-8.12664
+				,2.53125
+				,5.01497
+				,7.64841
+				,0
+				,5.01498
+				,8.02341
+				,0
+				,4.10615
+				,7.89073
+				,2.53125
+				,4.10616
+				,7.51572
+				,3.15717
+				,5.00932
+				,7.64841
+				,3.15717
+				,4.54371
+				,7.51572
+				,2.53125
+				,1.87535
+				,-2.97386
+				,-0.00112091
+				,1.87534
+				,-2.97386
+				,-0.00112091
+				,1.87534
+				,-3.16136
+				,2.53125
+				,1.87535
+				,-3.16136
+				,2.53125
+				,1.87535
+				,0.0198975
+				,-0.00112091
+				,1.87534
+				,0.0198903
+				,2.53125
+				,1.87535
+				,2.5199
+				,-0.00112091
+				,1.87534
+				,2.51989
+				,-0.00112091
+				,1.87534
+				,-3.66136
+				,2.53125
+				,1.87535
+				,-3.66136
+				,-0.00112091
+				,1.87534
+				,-4.78636
+				,2.53125
+				,1.87535
+				,-4.78636
+				,-0.00112091
+				,1.87534
+				,-5.81761
+				,2.53125
+				,1.87535
+				,-5.81761
+				,-0.00112091
+				,1.87534
+				,-6.59886
+				,2.19301
+				,1.87535
+				,-6.59886
+				,-0.00112091
+				,1.43397
+				,-7.87386
+				,2.19301
+				,1.43398
+				,-7.37386
+				,2.53125
+				,2.69243
+				,3.46884
+				,-0.00112091
+				,2.69243
+				,3.46884
+				,2.53125
+				,3.14684
+				,6.12253
+				,-0.00112091
+				,3.14684
+				,6.12254
+				,2.53125
+				,4.10616
+				,7.51572
+				,0
+				,4.10615
+				,7.89073
+				,2.19301
+				,1.87535
+				,-8.09261
+				,-0.00112091
+				,1.87534
+				,-8.2505
+				,-0.00112091
+				,2.88189
+				,-8.53681
+				,2.53125
+				,2.8819
+				,-8.37892
+				,2.19301
+				,1.43398
+				,-7.37386
+				,-0.00112091
+				,1.43397
+				,-7.87386
+				,4.38446
+				,3.77171
+				,-2.86449
+				,4.38446
+				,3.73002
+				,0.0210876
+				,4.38446
+				,3.70921
+				,-2.66136
+				,4.38446
+				,3.58799
+				,0.0198975
+				,4.38446
+				,3.5599
+				,2.5199
+				,4.38446
+				,3.62965
+				,2.49609
+				,4.38446
+				,3.97909
+				,-3.66136
+				,4.38446
+				,3.77516
+				,-1.51582
+				,4.38446
+				,3.76748
+				,1.66275
+				,4.38446
+				,3.92503
+				,-2.65868
+				,4.38446
+				,4.10062
+				,-4.23081
+				,4.38446
+				,4.33654
+				,-4.2301
+				,4.38446
+				,3.88531
+				,-5.80244
+				,4.38446
+				,4.12002
+				,-5.87508
+				,4.38446
+				,3.23414
+				,-6.69242
+				,4.38446
+				,3.8866
+				,2.41275
+				,4.38446
+				,3.70337
+				,3.46884
+				,4.38446
+				,3.97501
+				,4.53033
+				,4.38446
+				,3.75227
+				,6.12253
+				,4.38446
+				,3.99131
+				,6.12253
+				,4.38446
+				,3.85549
+				,7.51572
+				,4.38446
+				,3.95328
+				,7.64841
+				,4.38446
+				,3.11302
+				,-6.49854
+				,4.38446
+				,3.70921
+				,-2.66136
+				,3.15717
+				,3.40081
+				,-2.97386
+				,3.15717
+				,3.40081
+				,-3.16136
+				,4.38446
+				,3.77171
+				,-2.86449
+				,4.38446
+				,3.58799
+				,0.0198975
+				,3.15717
+				,3.40081
+				,0.0198975
+				,4.38446
+				,3.5599
+				,2.5199
+				,3.15717
+				,3.40081
+				,2.5199
+				,3.15717
+				,3.40081
+				,-3.66136
+				,4.38446
+				,3.97909
+				,-3.66136
+				,4.38446
+				,3.77516
+				,-1.51582
+				,3.15717
+				,4.37021
+				,-1.51582
+				,3.15717
+				,4.33361
+				,1.66275
+				,4.38446
+				,3.76748
+				,1.66275
+				,4.38446
+				,3.92503
+				,-2.65868
+				,3.15717
+				,5.08381
+				,-2.65868
+				,3.15717
+				,3.40081
+				,-4.78636
+				,4.38446
+				,4.10062
+				,-4.23081
+				,4.38446
+				,4.33654
+				,-4.2301
+				,3.15717
+				,5.10278
+				,-4.2301
+				,3.15717
+				,3.40081
+				,-5.81761
+				,4.38446
+				,3.88531
+				,-5.80244
+				,3.15717
+				,4.95639
+				,-5.87297
+				,4.38446
+				,4.12002
+				,-5.87508
+				,3.15717
+				,4.34588
+				,-7.05154
+				,3.15717
+				,3.40081
+				,-6.59886
+				,4.38446
+				,3.11302
+				,-6.49854
+				,4.38446
+				,3.23414
+				,-6.69242
+				,3.77628
+				,2.95636
+				,-7.52037
+				,3.15717
+				,2.79988
+				,-8.23576
+				,3.15717
+				,3.17468
+				,-7.37386
+				,3.77628
+				,2.95636
+				,-7.52037
+				,3.15717
+				,5.59528
+				,2.99608
+				,4.38446
+				,3.8866
+				,2.41275
+				,4.38446
+				,3.70337
+				,3.46884
+				,3.15717
+				,3.81942
+				,3.46884
+				,3.15717
+				,5.80724
+				,5.11367
+				,4.38446
+				,3.97501
+				,4.53033
+				,4.38446
+				,3.75227
+				,6.12253
+				,3.15717
+				,4.05223
+				,6.12253
+				,3.15717
+				,5.88485
+				,6.70586
+				,4.38446
+				,3.99131
+				,6.12253
+				,4.38446
+				,3.85549
+				,7.51572
+				,3.15717
+				,4.54371
+				,7.51572
+				,4.38446
+				,3.95328
+				,7.64841
+				,3.15717
+				,5.00932
+				,7.64841
+				,4.38446
+				,3.95328
+				,7.64841
+				,4.38446
+				,3.95328
+				,7.64841
+				,3.15717
+				,5.00932
+				,7.64841
+				,4.38446
+				,3.23414
+				,-6.69242
+				,4.38446
+				,3.11302
+				,-6.49854
+				,3.15717
+				,3.40081
+				,-2.97386
+				,2.53125
+				,1.87535
+				,-2.97386
+				,2.53125
+				,1.87535
+				,-3.16136
+				,3.15717
+				,3.40081
+				,-3.16136
+				,3.15717
+				,3.40081
+				,0.0198975
+				,2.53125
+				,1.87535
+				,0.0198975
+				,3.15717
+				,3.40081
+				,2.5199
+				,2.53125
+				,1.87535
+				,2.5199
+				,2.53125
+				,1.87535
+				,-3.66136
+				,3.15717
+				,3.40081
+				,-3.66136
+				,2.53125
+				,1.87535
+				,-4.78636
+				,3.15717
+				,3.40081
+				,-4.78636
+				,2.53125
+				,1.87535
+				,-5.81761
+				,3.15717
+				,3.40081
+				,-5.81761
+				,2.19301
+				,1.87535
+				,-6.59886
+				,3.15717
+				,3.40081
+				,-6.59886
+				,3.15717
+				,2.79988
+				,-8.23576
+				,2.19301
+				,1.87535
+				,-8.09261
+				,2.53125
+				,2.8819
+				,-8.37892
+				,2.19301
+				,1.43398
+				,-7.37386
+				,3.15717
+				,3.17468
+				,-7.37386
+				,2.19301
+				,1.43398
+				,-7.37386
+				,2.19301
+				,1.87535
+				,-8.09261
+				,3.15717
+				,2.79988
+				,-8.23576
+				,3.15717
+				,3.81942
+				,3.46884
+				,2.53125
+				,2.69243
+				,3.46884
+				,3.15717
+				,4.05223
+				,6.12253
+				,2.53125
+				,3.14684
+				,6.12253
+				,3.15717
+				,4.54371
+				,7.51572
+				,2.53125
+				,4.10616
+				,7.51572
+				,1.15459
+				,5.34434
+				,-5.98805
+				,2.53125
+				,4.91165
+				,-5.87297
+				,0
+				,4.93088
+				,-6.07008
+				,0
+				,5.34434
+				,-6.03739
+				,2.53125
+				,5.19737
+				,-4.2301
+				,0
+				,5.19737
+				,-3.51761
+				,-0.00112091
+				,5.21324
+				,-2.65868
+				,2.53125
+				,5.21324
+				,-2.65868
+				,1.15459
+				,5.34434
+				,-5.98805
+				,0
+				,5.34434
+				,-6.03739
+				,0
+				,5.4666
+				,-3.7676
+				,1.15459
+				,5.44737
+				,-4.80095
+				,2.53125
+				,4.19736
+				,-7.05154
+				,-0.00112091
+				,4.19737
+				,-7.61404
+				,0
+				,4.93088
+				,-6.07008
+				,2.53125
+				,4.91165
+				,-5.87297
+				,2.53125
+				,2.8819
+				,-8.37892
+				,-0.00112091
+				,2.88189
+				,-8.53681
+				,3.15717
+				,5.10278
+				,-4.2301
+				,3.15717
+				,5.08381
+				,-2.65868
+				,3.15717
+				,4.95639
+				,-5.87297
+				,3.15717
+				,4.34588
+				,-7.05154
+				,3.15717
+				,2.79988
+				,-8.23576
+				,3.15717
+				,2.79988
+				,-8.23576
+				,0
+				,5.34434
+				,-6.03739
+				,0
+				,4.93088
+				,-6.07008
+				,0
+				,5.19737
+				,-3.51761
+				,0
+				,5.4666
+				,-3.7676
+				,2.53125
+				,3.82039
+				,-1.92372
+				,-0.00112091
+				,3.82038
+				,-1.92372
+				,-0.00112091
+				,3.74895
+				,1.66275
+				,2.53125
+				,3.74895
+				,1.66275
+				,2.53125
+				,5.21324
+				,-2.65868
+				,-0.00112091
+				,5.21324
+				,-2.65868
+				,-0.00112091
+				,5.55054
+				,2.99608
+				,2.53125
+				,5.55054
+				,2.99608
+				,3.15717
+				,4.37021
+				,-1.51582
+				,3.15717
+				,4.33361
+				,1.66275
+				,3.15717
+				,5.08381
+				,-2.65868
+				,3.15717
+				,5.08381
+				,-2.65868
+				,3.15717
+				,5.59528
+				,2.99608
+				,2.53125
+				,5.55054
+				,2.99608
+				,-0.00112091
+				,5.55054
+				,2.99608
+				,-0.00112091
+				,5.91138
+				,5.11366
+				,2.53125
+				,5.91138
+				,5.11367
+				,0
+				,6.06285
+				,6.70587
+				,2.53125
+				,6.06285
+				,6.70586
+				,0
+				,5.01498
+				,8.02341
+				,2.53125
+				,5.01497
+				,7.64841
+				,3.15717
+				,5.59528
+				,2.99608
+				,3.15717
+				,5.80724
+				,5.11367
+				,3.15717
+				,5.88485
+				,6.70586
+				,3.15717
+				,5.00932
+				,7.64841
+				,3.28145
+				,5.5256
+				,6.9363
+				,4.1697
+				,4.0473
+				,6.9363
+				,3.86047
+				,5.75026
+				,6.82229
+				,4.63989
+				,4.45308
+				,6.82229
+				,3.86047
+				,5.75026
+				,6.82229
+				,4.63989
+				,4.45308
+				,6.82229
+				,3.86047
+				,5.75026
+				,5.8628
+				,4.63989
+				,4.45308
+				,5.8628
+				,3.86047
+				,5.75026
+				,5.8628
+				,4.63989
+				,4.45308
+				,5.8628
+				,3.28145
+				,5.5256
+				,5.7488
+				,4.63989
+				,4.45308
+				,5.8628
+				,4.1697
+				,4.0473
+				,5.7488
+				,3.28145
+				,5.5256
+				,5.7488
+				,3.28145
+				,5.5256
+				,6.9363
+				,3.86047
+				,5.75026
+				,5.8628
+				,3.86047
+				,5.75026
+				,6.82229
+				,4.1697
+				,4.0473
+				,6.9363
+				,4.1697
+				,4.0473
+				,5.7488
+				,4.63989
+				,4.45308
+				,6.82229
+				,4.63989
+				,4.45308
+				,5.8628
+				,3.01518
+				,4.98901
+				,-2.96243
+				,3.01518
+				,6.20824
+				,-2.33814
+				,2.92589
+				,4.90294
+				,-2.81899
+				,2.92589
+				,6.12216
+				,-2.19471
+				,2.74732
+				,6.12216
+				,-2.19471
+				,2.74732
+				,4.90294
+				,-2.81899
+				,2.65804
+				,4.98901
+				,-2.96243
+				,2.65804
+				,6.20824
+				,-2.33814
+				,2.65804
+				,4.98901
+				,-2.96243
+				,2.65804
+				,6.20824
+				,-2.33814
+				,2.74732
+				,6.29431
+				,-2.48157
+				,2.74732
+				,5.07508
+				,-3.10586
+				,2.92589
+				,5.07508
+				,-3.10586
+				,2.92589
+				,6.29431
+				,-2.48157
+				,3.01518
+				,6.20824
+				,-2.33814
+				,3.01518
+				,4.98901
+				,-2.96243
+				,2.77919
+				,6.65258
+				,-1.92312
+				,2.86501
+				,6.76336
+				,-2.0539
+				,2.60753
+				,6.60316
+				,-1.94843
+				,2.5217
+				,6.66452
+				,-2.10451
+				,2.60753
+				,6.7753
+				,-2.2353
+				,2.5217
+				,6.66452
+				,-2.10451
+				,2.77919
+				,6.82473
+				,-2.20999
+				,2.86501
+				,6.76336
+				,-2.0539
+				,2.55914
+				,6.96189
+				,-1.76474
+				,2.61412
+				,7.1186
+				,-1.87201
+				,2.44921
+				,6.82061
+				,-1.83709
+				,2.39421
+				,6.83603
+				,-2.01669
+				,2.44921
+				,6.99275
+				,-2.12395
+				,2.39421
+				,6.83603
+				,-2.01669
+				,2.55914
+				,7.13404
+				,-2.05161
+				,2.61412
+				,7.1186
+				,-1.87201
+				,2.28942
+				,7.09457
+				,-1.6968
+				,2.30647
+				,7.26864
+				,-1.79518
+				,2.25536
+				,6.91858
+				,-1.78692
+				,2.23831
+				,6.91662
+				,-1.97543
+				,2.25536
+				,7.09073
+				,-2.07379
+				,2.23831
+				,6.91662
+				,-1.97543
+				,2.28942
+				,7.26672
+				,-1.98367
+				,2.30647
+				,7.26864
+				,-1.79518
+				,1.98661
+				,7.1238
+				,-1.68184
+				,1.98661
+				,7.29948
+				,-1.77939
+				,1.98661
+				,6.94453
+				,-1.77363
+				,1.98661
+				,6.94093
+				,-1.96298
+				,1.98661
+				,7.11667
+				,-2.0605
+				,1.98661
+				,6.94093
+				,-1.96298
+				,1.98661
+				,7.29594
+				,-1.96871
+				,1.98661
+				,7.29948
+				,-1.77939
+				,-0.00112091
+				,7.12382
+				,-1.68183
+				,1.98661
+				,7.1238
+				,-1.68184
+				,1.98661
+				,7.29948
+				,-1.77939
+				,-0.00112091
+				,7.29949
+				,-1.77939
+				,-0.00112091
+				,6.94453
+				,-1.77363
+				,1.98661
+				,6.94453
+				,-1.77363
+				,-0.00112091
+				,6.94091
+				,-1.96299
+				,1.98661
+				,6.94093
+				,-1.96298
+				,-0.00112091
+				,7.11668
+				,-2.0605
+				,1.98661
+				,7.11667
+				,-2.0605
+				,1.98661
+				,6.94093
+				,-1.96298
+				,-0.00112091
+				,6.94091
+				,-1.96299
+				,-0.00112091
+				,7.29596
+				,-1.9687
+				,1.98661
+				,7.29594
+				,-1.96871
+				,-0.00112091
+				,7.29949
+				,-1.77939
+				,1.98661
+				,7.29948
+				,-1.77939
+				,1.09654
+				,3.46628
+				,7.95238
+				,1.38404
+				,3.46628
+				,7.95238
+				,1.24029
+				,3.69856
+				,8.10906
+				,1.52779
+				,3.69856
+				,8.10906
+				,1.67154
+				,3.46628
+				,7.95238
+				,1.52779
+				,3.234
+				,7.79569
+				,1.24029
+				,3.234
+				,7.79569
+				,1.09654
+				,3.46429
+				,5.25238
+				,1.09654
+				,3.46628
+				,7.95238
+				,1.24029
+				,3.71327
+				,5.25238
+				,1.24029
+				,3.69856
+				,8.10906
+				,1.52779
+				,3.69856
+				,8.10906
+				,1.52779
+				,3.71327
+				,5.25238
+				,1.67154
+				,3.46429
+				,5.25238
+				,1.67154
+				,3.46628
+				,7.95238
+				,1.67154
+				,3.46429
+				,5.25238
+				,1.67154
+				,3.46628
+				,7.95238
+				,1.52779
+				,3.234
+				,7.79569
+				,1.52779
+				,3.2153
+				,5.25238
+				,1.24029
+				,3.2153
+				,5.25238
+				,1.24029
+				,3.234
+				,7.79569
+				,1.09654
+				,3.46628
+				,7.95238
+				,1.09654
+				,3.46429
+				,5.25238
+				,0
+				,1.02193
+				,6.13655
+				,-0.00112091
+				,1.02193
+				,4.13605
+				,0.99375
+				,1.02193
+				,4.13605
+				,1.1009
+				,1.13863
+				,6.13655
+				,1.10089
+				,1.13863
+				,4.13605
+				,1.49375
+				,1.26118
+				,4.3466
+				,0
+				,1.02193
+				,6.13655
+				,0.99375
+				,1.02193
+				,6.13655
+				,-0.00112091
+				,3.39035
+				,6.13655
+				,1.1009
+				,1.13863
+				,6.13655
+				,0.99375
+				,2.14035
+				,6.13655
+				,1.49375
+				,1.26118
+				,5.926
+				,1.49375
+				,2.01953
+				,5.926
+				,1.57708
+				,3.39035
+				,6.13655
+				,0.99375
+				,1.02193
+				,6.13655
+				,1.49375
+				,1.26118
+				,5.926
+				,1.49375
+				,2.01953
+				,4.3466
+				,1.49375
+				,2.01953
+				,5.926
+				,0.99375
+				,2.14035
+				,4.13605
+				,0.99375
+				,2.14035
+				,6.13655
+				,0.99375
+				,2.14035
+				,6.13655
+				,0.99375
+				,2.14035
+				,4.13605
+				,1.57708
+				,3.39035
+				,3.46938
+				,1.57708
+				,3.39035
+				,6.13655
+				,-0.00112091
+				,3.39035
+				,3.46938
+				,0.99375
+				,2.14035
+				,4.13605
+				,1.10089
+				,1.13863
+				,4.13605
+				,1.49375
+				,1.26118
+				,4.3466
+				,1.57708
+				,3.39035
+				,3.46938
+				,2.52315
+				,1.65387
+				,6.50281
+				,3.57579
+				,1.65387
+				,6.50281
+				,2.52315
+				,2.29555
+				,6.2328
+				,3.57579
+				,2.29555
+				,6.2328
+				,3.57579
+				,2.56134
+				,5.58093
+				,2.52315
+				,2.56134
+				,5.58093
+				,2.52315
+				,2.29555
+				,4.92907
+				,3.57579
+				,2.29555
+				,4.92907
+				,3.57579
+				,1.65387
+				,4.65906
+				,2.52315
+				,1.65387
+				,4.65906
+				,2.52315
+				,1.01219
+				,4.92907
+				,3.57579
+				,1.01219
+				,4.92907
+				,2.52315
+				,1.01219
+				,4.92907
+				,3.57579
+				,1.01219
+				,4.92907
+				,3.57579
+				,0.746398
+				,5.58093
+				,2.52315
+				,0.746398
+				,5.58093
+				,2.52315
+				,1.01219
+				,6.2328
+				,3.57579
+				,1.01219
+				,6.2328
+				,1.64814
+				,1.65387
+				,5.8791
+				,1.64814
+				,1.8494
+				,5.79177
+				,1.64814
+				,1.93039
+				,5.58093
+				,1.64814
+				,1.8494
+				,5.37009
+				,1.64814
+				,1.65387
+				,5.28276
+				,1.64814
+				,1.45834
+				,5.37009
+				,1.64814
+				,1.45834
+				,5.37009
+				,1.64814
+				,1.37735
+				,5.58093
+				,1.64814
+				,1.45834
+				,5.79177
+				,-0.00112091
+				,1.65387
+				,5.87911
+				,-0.00112091
+				,1.8494
+				,5.79177
+				,-0.00112091
+				,1.93039
+				,5.58094
+				,-0.00112091
+				,1.8494
+				,5.37009
+				,-0.00112091
+				,1.65387
+				,5.28276
+				,-0.00112091
+				,1.45834
+				,5.37009
+				,-0.00112091
+				,1.45834
+				,5.37009
+				,1.64814
+				,1.45834
+				,5.37009
+				,1.64814
+				,1.37735
+				,5.58093
+				,-0.00112091
+				,1.45834
+				,5.37009
+				,-0.00112091
+				,1.37735
+				,5.58094
+				,-0.00112091
+				,1.45834
+				,5.79177
+				,-3.86047
+				,5.75026
+				,5.25979
+				,-4.1697
+				,4.0473
+				,5.3738
+				,-3.28145
+				,5.5256
+				,5.3738
+				,-4.63989
+				,4.45308
+				,5.25979
+				,-3.86047
+				,5.75026
+				,4.3003
+				,-4.63989
+				,4.45308
+				,5.25979
+				,-3.86047
+				,5.75026
+				,5.25979
+				,-4.63989
+				,4.45308
+				,4.3003
+				,-3.28145
+				,5.5256
+				,4.1863
+				,-4.63989
+				,4.45308
+				,4.3003
+				,-3.86047
+				,5.75026
+				,4.3003
+				,-4.1697
+				,4.0473
+				,4.1863
+				,-4.63989
+				,4.45308
+				,4.3003
+				,-3.86047
+				,5.75026
+				,4.3003
+				,-3.28145
+				,5.5256
+				,5.3738
+				,-3.28145
+				,5.5256
+				,4.1863
+				,-3.86047
+				,5.75026
+				,5.25979
+				,-4.63989
+				,4.45308
+				,5.25979
+				,-4.1697
+				,4.0473
+				,4.1863
+				,-4.1697
+				,4.0473
+				,5.3738
+				,-4.63989
+				,4.45308
+				,4.3003
+				,-2.15556
+				,4.44128
+				,-0.88176
+				,-2.15556
+				,4.16003
+				,-1.06926
+				,-2.15556
+				,3.39441
+				,-0.97551
+				,-2.15556
+				,4.22253
+				,0.368225
+				,-2.15556
+				,3.39441
+				,1.64948
+				,-2.15556
+				,5.37878
+				,1.46198
+				,-2.15556
+				,5.50378
+				,0.961975
+				,-0.6
+				,4.16003
+				,-1.06926
+				,-0.6
+				,3.39441
+				,-0.97551
+				,-2.15556
+				,3.39441
+				,-0.97551
+				,-2.15556
+				,4.16003
+				,-1.06926
+				,-0.6
+				,4.44128
+				,-0.88176
+				,-2.15556
+				,4.44128
+				,-0.88176
+				,-0.6
+				,4.22253
+				,0.36824
+				,-0.6
+				,4.44128
+				,-0.88176
+				,-2.15556
+				,4.44128
+				,-0.88176
+				,-2.15556
+				,4.22253
+				,0.368225
+				,-0.6
+				,5.50378
+				,0.96199
+				,-0.6
+				,4.22253
+				,0.36824
+				,-2.15556
+				,4.22253
+				,0.368225
+				,-2.15556
+				,5.50378
+				,0.961975
+				,-0.6
+				,5.37878
+				,1.46199
+				,-0.6
+				,5.50378
+				,0.96199
+				,-2.15556
+				,5.50378
+				,0.961975
+				,-0.6
+				,3.39441
+				,1.64949
+				,-0.6
+				,5.37878
+				,1.46199
+				,-0.6
+				,3.39441
+				,-0.97551
+				,-0.6
+				,4.16003
+				,-1.06926
+				,-0.6
+				,4.44128
+				,-0.88176
+				,-0.6
+				,4.22253
+				,0.36824
+				,-0.6
+				,5.50378
+				,0.96199
+				,-0.6
+				,5.37878
+				,1.46199
+				,-2.92589
+				,4.97158
+				,3.24546
+				,-3.01518
+				,6.18587
+				,3.09081
+				,-3.01518
+				,4.97158
+				,3.09081
+				,-2.92589
+				,6.18586
+				,3.24546
+				,-2.74732
+				,6.18586
+				,3.24546
+				,-2.74732
+				,4.97158
+				,3.24546
+				,-2.65804
+				,4.97158
+				,3.09081
+				,-2.65804
+				,6.18587
+				,3.09081
+				,-2.74732
+				,6.18586
+				,2.93617
+				,-2.65804
+				,6.18587
+				,3.09081
+				,-2.65804
+				,4.97158
+				,3.09081
+				,-2.74732
+				,4.97157
+				,2.93617
+				,-2.92589
+				,4.97157
+				,2.93617
+				,-2.92589
+				,6.18586
+				,2.93617
+				,-3.01518
+				,6.18587
+				,3.09081
+				,-3.01518
+				,4.97158
+				,3.09081
+				,-2.77919
+				,6.71412
+				,3.24546
+				,-2.86501
+				,6.73873
+				,3.09081
+				,-2.60753
+				,6.6649
+				,3.24546
+				,-2.5217
+				,6.64029
+				,3.09081
+				,-2.60753
+				,6.6649
+				,2.93616
+				,-2.5217
+				,6.64029
+				,3.09081
+				,-2.77919
+				,6.71413
+				,2.93616
+				,-2.86501
+				,6.73873
+				,3.09081
+				,-2.55914
+				,7.02218
+				,3.24546
+				,-2.61412
+				,7.09253
+				,3.09081
+				,-2.44921
+				,6.88147
+				,3.24546
+				,-2.39421
+				,6.81111
+				,3.09081
+				,-2.44921
+				,6.88147
+				,2.93617
+				,-2.39421
+				,6.81111
+				,3.09081
+				,-2.55914
+				,7.02219
+				,2.93617
+				,-2.61412
+				,7.09253
+				,3.09081
+				,-2.28942
+				,7.15433
+				,3.24546
+				,-2.30647
+				,7.24197
+				,3.09081
+				,-2.25536
+				,6.97905
+				,3.24546
+				,-2.23831
+				,6.89137
+				,3.09081
+				,-2.25536
+				,6.97905
+				,2.93616
+				,-2.23831
+				,6.89137
+				,3.09081
+				,-2.28942
+				,7.15433
+				,2.93616
+				,-2.30647
+				,7.24197
+				,3.09081
+				,-1.98661
+				,7.18344
+				,3.24546
+				,-1.98661
+				,7.27268
+				,3.09081
+				,-1.98661
+				,7.00489
+				,3.24546
+				,-1.98661
+				,6.91558
+				,3.09081
+				,-1.98661
+				,7.00489
+				,2.93616
+				,-1.98661
+				,6.91558
+				,3.09081
+				,-1.98661
+				,7.18344
+				,2.93617
+				,-1.98661
+				,7.27268
+				,3.09081
+				,-1.98661
+				,7.27268
+				,3.09081
+				,-1.98661
+				,7.18344
+				,3.24546
+				,0.00112091
+				,7.18345
+				,3.24546
+				,0.00112091
+				,7.27269
+				,3.09081
+				,-1.98661
+				,7.00489
+				,3.24546
+				,0.00112091
+				,7.00489
+				,3.24546
+				,-1.98661
+				,6.91558
+				,3.09081
+				,0.00112091
+				,6.91557
+				,3.09081
+				,-1.98661
+				,6.91558
+				,3.09081
+				,-1.98661
+				,7.00489
+				,2.93616
+				,0.00112091
+				,7.0049
+				,2.93616
+				,0.00112091
+				,6.91557
+				,3.09081
+				,-1.98661
+				,7.18344
+				,2.93617
+				,0.00112091
+				,7.18345
+				,2.93617
+				,-1.98661
+				,7.27268
+				,3.09081
+				,0.00112091
+				,7.27269
+				,3.09081
+				,-1.34143
+				,6.99511
+				,-1.88513
+				,-1.40786
+				,7.08937
+				,3.10419
+				,-1.40786
+				,7.11017
+				,-1.88513
+				,-1.34143
+				,6.97431
+				,3.10419
+				,-1.20857
+				,6.97431
+				,3.10419
+				,-1.34143
+				,6.97431
+				,3.10419
+				,-1.34143
+				,6.99511
+				,-1.88513
+				,-1.20857
+				,6.99511
+				,-1.88513
+				,-1.14214
+				,7.11017
+				,-1.88513
+				,-1.20857
+				,6.97431
+				,3.10419
+				,-1.20857
+				,6.99511
+				,-1.88513
+				,-1.14214
+				,7.08937
+				,3.10419
+				,-1.20857
+				,7.20442
+				,3.10419
+				,-1.14214
+				,7.08937
+				,3.10419
+				,-1.14214
+				,7.11017
+				,-1.88513
+				,-1.20857
+				,7.22523
+				,-1.88513
+				,-1.34143
+				,7.22523
+				,-1.88513
+				,-1.20857
+				,7.20442
+				,3.10419
+				,-1.20857
+				,7.22523
+				,-1.88513
+				,-1.34143
+				,7.20442
+				,3.10419
+				,-1.40786
+				,7.08937
+				,3.10419
+				,-1.34143
+				,7.20442
+				,3.10419
+				,-1.34143
+				,7.22523
+				,-1.88513
+				,-1.40786
+				,7.11017
+				,-1.88513
+				,-2.52315
+				,2.29555
+				,-4.35369
+				,-3.57579
+				,1.65387
+				,-4.08368
+				,-2.52315
+				,1.65387
+				,-4.08368
+				,-3.57579
+				,2.29555
+				,-4.35369
+				,-3.57579
+				,2.56134
+				,-5.00556
+				,-2.52315
+				,2.56134
+				,-5.00556
+				,-2.52315
+				,2.29555
+				,-5.65742
+				,-3.57579
+				,2.29555
+				,-5.65742
+				,-3.57579
+				,1.65387
+				,-5.92743
+				,-2.52315
+				,1.65387
+				,-5.92743
+				,-2.52315
+				,1.01219
+				,-5.65742
+				,-3.57579
+				,1.01219
+				,-5.65742
+				,-3.57579
+				,0.746398
+				,-5.00556
+				,-3.57579
+				,1.01219
+				,-5.65742
+				,-2.52315
+				,1.01219
+				,-5.65742
+				,-2.52315
+				,0.746398
+				,-5.00556
+				,-2.52315
+				,1.01219
+				,-4.35369
+				,-3.57579
+				,1.01219
+				,-4.35369
+				,-1.64814
+				,1.65387
+				,-4.70739
+				,-1.64814
+				,1.8494
+				,-4.79472
+				,-1.64814
+				,1.93039
+				,-5.00556
+				,-1.64814
+				,1.8494
+				,-5.2164
+				,-1.64814
+				,1.65387
+				,-5.30373
+				,-1.64814
+				,1.45834
+				,-5.2164
+				,-1.64814
+				,1.45834
+				,-5.2164
+				,-1.64814
+				,1.37735
+				,-5.00556
+				,-1.64814
+				,1.45834
+				,-4.79472
+				,0.00112091
+				,1.65387
+				,-4.70738
+				,0.00112091
+				,1.8494
+				,-4.79472
+				,0.00112091
+				,1.93039
+				,-5.00555
+				,0.00112091
+				,1.8494
+				,-5.2164
+				,0.00112091
+				,1.65387
+				,-5.30373
+				,0.00112091
+				,1.45834
+				,-5.2164
+				,-1.64814
+				,1.37735
+				,-5.00556
+				,-1.64814
+				,1.45834
+				,-5.2164
+				,0.00112091
+				,1.45834
+				,-5.2164
+				,0.00112091
+				,1.37735
+				,-5.00555
+				,0.00112091
+				,1.45834
+				,-5.2164
+				,0.00112091
+				,1.45834
+				,-4.79472
+				,-0.99375
+				,1.11017
+				,-5.91612
+				,0.00112091
+				,1.11017
+				,-5.91612
+				,0.00112091
+				,1.11017
+				,-4.09113
+				,-1.49375
+				,1.34941
+				,-5.72404
+				,-1.10089
+				,1.22686
+				,-5.91612
+				,-1.1009
+				,1.22686
+				,-4.09113
+				,0.00112091
+				,3.47859
+				,-4.09113
+				,-0.99375
+				,1.11017
+				,-4.09113
+				,-0.99375
+				,2.22859
+				,-4.09113
+				,-1.1009
+				,1.22686
+				,-4.09113
+				,-1.49375
+				,2.10776
+				,-4.28321
+				,-1.49375
+				,1.34941
+				,-4.28321
+				,-1.57708
+				,3.47859
+				,-4.09113
+				,-1.10089
+				,1.22686
+				,-5.91612
+				,-0.99375
+				,1.11017
+				,-4.09113
+				,-0.99375
+				,1.11017
+				,-4.09113
+				,-1.49375
+				,1.34941
+				,-4.28321
+				,-1.49375
+				,1.34941
+				,-5.72404
+				,-1.1009
+				,1.22686
+				,-4.09113
+				,-1.49375
+				,2.10776
+				,-5.72404
+				,-0.99375
+				,2.22859
+				,-5.91612
+				,-1.49375
+				,2.10776
+				,-4.28321
+				,-0.99375
+				,2.22859
+				,-4.09113
+				,-1.57708
+				,3.47859
+				,-5.91612
+				,-0.99375
+				,2.22859
+				,-5.91612
+				,-0.99375
+				,2.22859
+				,-4.09113
+				,-1.57708
+				,3.47859
+				,-4.09113
+				,0.00112091
+				,1.11017
+				,-5.91612
+				,-0.99375
+				,1.11017
+				,-5.91612
+				,0.00112091
+				,3.47859
+				,-5.91612
+				,-1.10089
+				,1.22686
+				,-5.91612
+				,-0.99375
+				,2.22859
+				,-5.91612
+				,-1.49375
+				,1.34941
+				,-5.72404
+				,-1.49375
+				,2.10776
+				,-5.72404
+				,-1.57708
+				,3.47859
+				,-5.91612
+				,-1.92362
+				,3.69856
+				,8.10906
+				,-2.06737
+				,3.46628
+				,7.95238
+				,-1.77987
+				,3.46628
+				,7.95238
+				,-2.21112
+				,3.69856
+				,8.10906
+				,-2.35487
+				,3.46628
+				,7.95238
+				,-2.21112
+				,3.234
+				,7.79569
+				,-1.92362
+				,3.234
+				,7.79569
+				,-1.92362
+				,3.71327
+				,5.25238
+				,-1.77987
+				,3.46628
+				,7.95238
+				,-1.77987
+				,3.46429
+				,5.25238
+				,-1.92362
+				,3.69856
+				,8.10906
+				,-2.21112
+				,3.69856
+				,8.10906
+				,-2.21112
+				,3.71327
+				,5.25238
+				,-2.35487
+				,3.46429
+				,5.25238
+				,-2.35487
+				,3.46628
+				,7.95238
+				,-2.21112
+				,3.234
+				,7.79569
+				,-2.35487
+				,3.46628
+				,7.95238
+				,-2.35487
+				,3.46429
+				,5.25238
+				,-2.21112
+				,3.2153
+				,5.25238
+				,-1.92362
+				,3.2153
+				,5.25238
+				,-2.21112
+				,3.234
+				,7.79569
+				,-1.92362
+				,3.234
+				,7.79569
+				,-1.77987
+				,3.46628
+				,7.95238
+				,-1.92362
+				,3.234
+				,7.79569
+				,-1.77987
+				,3.46429
+				,5.25238
+				,-0.752339
+				,4.08592
+				,-8.12664
+				,-2.69656
+				,3.52342
+				,-8.12664
+				,-2.70328
+				,4.08592
+				,-8.12664
+				,-0.75906
+				,3.52342
+				,-8.12664
+				,-2.70328
+				,4.08592
+				,-8.12664
+				,-2.69656
+				,3.52342
+				,-6.18914
+				,-2.69656
+				,4.08592
+				,-6.18914
+				,-2.69656
+				,3.52342
+				,-8.12664
+				,-0.75906
+				,4.08592
+				,-6.18914
+				,-0.75906
+				,3.52342
+				,-8.12664
+				,-0.752339
+				,4.08592
+				,-8.12664
+				,-0.75906
+				,3.52342
+				,-6.18914
+				,-2.70328
+				,4.08592
+				,-8.12664
+				,-0.75906
+				,4.08592
+				,-6.18914
+				,-0.752339
+				,4.08592
+				,-8.12664
+				,-2.69656
+				,4.08592
+				,-6.18914
+				,-2.69656
+				,3.52342
+				,-6.18914
+				,-0.75906
+				,3.52342
+				,-8.12664
+				,-0.75906
+				,3.52342
+				,-6.18914
+				,-2.69656
+				,3.52342
+				,-8.12664
+				,0
+				,4.10615
+				,7.89073
+				,0
+				,5.01498
+				,8.02341
+				,-2.53125
+				,5.01497
+				,7.64841
+				,-2.53125
+				,4.10616
+				,7.51572
+				,-3.15717
+				,5.00932
+				,7.64841
+				,-3.15717
+				,4.54371
+				,7.51572
+				,0.00112091
+				,1.87534
+				,-3.16136
+				,0.00112091
+				,1.87534
+				,-2.97386
+				,-2.53125
+				,1.87535
+				,-2.97386
+				,-2.53125
+				,1.87535
+				,-3.16136
+				,0.00112091
+				,1.87534
+				,0.0198903
+				,-2.53125
+				,1.87535
+				,0.0198975
+				,0.00112091
+				,1.87534
+				,2.51989
+				,-2.53125
+				,1.87535
+				,2.5199
+				,0.00112091
+				,1.87534
+				,-3.66136
+				,-2.53125
+				,1.87535
+				,-3.66136
+				,0.00112091
+				,1.87534
+				,-4.78636
+				,-2.53125
+				,1.87535
+				,-4.78636
+				,0.00112091
+				,1.87534
+				,-5.81761
+				,-2.53125
+				,1.87535
+				,-5.81761
+				,0.00112091
+				,1.87534
+				,-6.59886
+				,-2.19301
+				,1.87535
+				,-6.59886
+				,0.00112091
+				,1.43397
+				,-7.87386
+				,-2.19301
+				,1.43398
+				,-7.37386
+				,0.00112091
+				,2.69243
+				,3.46884
+				,-2.53125
+				,2.69243
+				,3.46884
+				,0.00112091
+				,3.14684
+				,6.12254
+				,-2.53125
+				,3.14684
+				,6.12253
+				,0
+				,4.10615
+				,7.89073
+				,-2.53125
+				,4.10616
+				,7.51572
+				,0.00112091
+				,2.88189
+				,-8.53681
+				,0.00112091
+				,1.87534
+				,-8.2505
+				,-2.19301
+				,1.87535
+				,-8.09261
+				,-2.53125
+				,2.8819
+				,-8.37892
+				,0.00112091
+				,1.43397
+				,-7.87386
+				,-2.19301
+				,1.43398
+				,-7.37386
+				,-4.38446
+				,3.70921
+				,-2.66136
+				,-4.38446
+				,3.73002
+				,0.0210876
+				,-4.38446
+				,3.77171
+				,-2.86449
+				,-4.38446
+				,3.58799
+				,0.0198975
+				,-4.38446
+				,3.5599
+				,2.5199
+				,-4.38446
+				,3.62965
+				,2.49609
+				,-4.38446
+				,3.77516
+				,-1.51582
+				,-4.38446
+				,3.97909
+				,-3.66136
+				,-4.38446
+				,3.76748
+				,1.66275
+				,-4.38446
+				,3.92503
+				,-2.65868
+				,-4.38446
+				,4.33654
+				,-4.2301
+				,-4.38446
+				,4.10062
+				,-4.23081
+				,-4.38446
+				,4.12002
+				,-5.87508
+				,-4.38446
+				,3.88531
+				,-5.80244
+				,-4.38446
+				,3.23414
+				,-6.69242
+				,-4.38446
+				,3.8866
+				,2.41275
+				,-4.38446
+				,3.70337
+				,3.46884
+				,-4.38446
+				,3.97501
+				,4.53033
+				,-4.38446
+				,3.75227
+				,6.12253
+				,-4.38446
+				,3.99131
+				,6.12253
+				,-4.38446
+				,3.85549
+				,7.51572
+				,-4.38446
+				,3.95328
+				,7.64841
+				,-4.38446
+				,3.11302
+				,-6.49854
+				,-3.15717
+				,3.40081
+				,-3.16136
+				,-3.15717
+				,3.40081
+				,-2.97386
+				,-4.38446
+				,3.70921
+				,-2.66136
+				,-4.38446
+				,3.77171
+				,-2.86449
+				,-3.15717
+				,3.40081
+				,0.0198975
+				,-4.38446
+				,3.58799
+				,0.0198975
+				,-3.15717
+				,3.40081
+				,2.5199
+				,-4.38446
+				,3.5599
+				,2.5199
+				,-3.15717
+				,3.40081
+				,-3.66136
+				,-4.38446
+				,3.97909
+				,-3.66136
+				,-3.15717
+				,4.33361
+				,1.66275
+				,-3.15717
+				,4.37021
+				,-1.51582
+				,-4.38446
+				,3.77516
+				,-1.51582
+				,-4.38446
+				,3.76748
+				,1.66275
+				,-3.15717
+				,5.08381
+				,-2.65868
+				,-4.38446
+				,3.92503
+				,-2.65868
+				,-3.15717
+				,3.40081
+				,-4.78636
+				,-4.38446
+				,4.10062
+				,-4.23081
+				,-4.38446
+				,4.33654
+				,-4.2301
+				,-3.15717
+				,5.10278
+				,-4.2301
+				,-3.15717
+				,3.40081
+				,-5.81761
+				,-4.38446
+				,3.88531
+				,-5.80244
+				,-3.15717
+				,4.95639
+				,-5.87297
+				,-4.38446
+				,4.12002
+				,-5.87508
+				,-3.15717
+				,4.34588
+				,-7.05154
+				,-3.15717
+				,3.40081
+				,-6.59886
+				,-4.38446
+				,3.11302
+				,-6.49854
+				,-4.38446
+				,3.23414
+				,-6.69242
+				,-3.15717
+				,2.79988
+				,-8.23576
+				,-3.77628
+				,2.95636
+				,-7.52037
+				,-3.15717
+				,3.17468
+				,-7.37386
+				,-3.77628
+				,2.95636
+				,-7.52037
+				,-3.15717
+				,5.59528
+				,2.99608
+				,-4.38446
+				,3.8866
+				,2.41275
+				,-3.15717
+				,3.81942
+				,3.46884
+				,-4.38446
+				,3.70337
+				,3.46884
+				,-3.15717
+				,5.80724
+				,5.11367
+				,-4.38446
+				,3.97501
+				,4.53033
+				,-3.15717
+				,4.05223
+				,6.12253
+				,-4.38446
+				,3.75227
+				,6.12253
+				,-3.15717
+				,5.88485
+				,6.70586
+				,-4.38446
+				,3.99131
+				,6.12253
+				,-3.15717
+				,4.54371
+				,7.51572
+				,-4.38446
+				,3.85549
+				,7.51572
+				,-3.15717
+				,5.00932
+				,7.64841
+				,-4.38446
+				,3.95328
+				,7.64841
+				,-4.38446
+				,3.95328
+				,7.64841
+				,-3.15717
+				,5.00932
+				,7.64841
+				,-4.38446
+				,3.95328
+				,7.64841
+				,-4.38446
+				,3.11302
+				,-6.49854
+				,-4.38446
+				,3.23414
+				,-6.69242
+				,-2.53125
+				,1.87535
+				,-3.16136
+				,-2.53125
+				,1.87535
+				,-2.97386
+				,-3.15717
+				,3.40081
+				,-2.97386
+				,-3.15717
+				,3.40081
+				,-3.16136
+				,-2.53125
+				,1.87535
+				,0.0198975
+				,-3.15717
+				,3.40081
+				,0.0198975
+				,-2.53125
+				,1.87535
+				,2.5199
+				,-3.15717
+				,3.40081
+				,2.5199
+				,-2.53125
+				,1.87535
+				,-3.66136
+				,-3.15717
+				,3.40081
+				,-3.66136
+				,-2.53125
+				,1.87535
+				,-4.78636
+				,-3.15717
+				,3.40081
+				,-4.78636
+				,-2.53125
+				,1.87535
+				,-5.81761
+				,-3.15717
+				,3.40081
+				,-5.81761
+				,-2.19301
+				,1.87535
+				,-6.59886
+				,-3.15717
+				,3.40081
+				,-6.59886
+				,-2.53125
+				,2.8819
+				,-8.37892
+				,-2.19301
+				,1.87535
+				,-8.09261
+				,-3.15717
+				,2.79988
+				,-8.23576
+				,-2.19301
+				,1.43398
+				,-7.37386
+				,-3.15717
+				,3.17468
+				,-7.37386
+				,-2.19301
+				,1.43398
+				,-7.37386
+				,-3.15717
+				,2.79988
+				,-8.23576
+				,-2.19301
+				,1.87535
+				,-8.09261
+				,-2.53125
+				,2.69243
+				,3.46884
+				,-3.15717
+				,3.81942
+				,3.46884
+				,-2.53125
+				,3.14684
+				,6.12253
+				,-3.15717
+				,4.05223
+				,6.12253
+				,-2.53125
+				,4.10616
+				,7.51572
+				,-3.15717
+				,4.54371
+				,7.51572
+				,0
+				,4.93088
+				,-6.07008
+				,-2.53125
+				,4.91165
+				,-5.87297
+				,-1.15459
+				,5.34434
+				,-5.98805
+				,0
+				,5.34434
+				,-6.03739
+				,0.00112091
+				,5.21324
+				,-2.65868
+				,0
+				,5.19737
+				,-3.51761
+				,-2.53125
+				,5.19737
+				,-4.2301
+				,-2.53125
+				,5.21324
+				,-2.65868
+				,0
+				,5.4666
+				,-3.7676
+				,0
+				,5.34434
+				,-6.03739
+				,-1.15459
+				,5.34434
+				,-5.98805
+				,-1.15459
+				,5.44737
+				,-4.80095
+				,0
+				,4.93088
+				,-6.07008
+				,0.00112091
+				,4.19737
+				,-7.61404
+				,-2.53125
+				,4.19736
+				,-7.05154
+				,-2.53125
+				,4.91165
+				,-5.87297
+				,0.00112091
+				,2.88189
+				,-8.53681
+				,-2.53125
+				,2.8819
+				,-8.37892
+				,-3.15717
+				,5.10278
+				,-4.2301
+				,-3.15717
+				,5.08381
+				,-2.65868
+				,-3.15717
+				,4.95639
+				,-5.87297
+				,-3.15717
+				,4.34588
+				,-7.05154
+				,-3.15717
+				,2.79988
+				,-8.23576
+				,-3.15717
+				,2.79988
+				,-8.23576
+				,0
+				,5.19737
+				,-3.51761
+				,0
+				,4.93088
+				,-6.07008
+				,0
+				,5.34434
+				,-6.03739
+				,0
+				,5.4666
+				,-3.7676
+				,0.00112091
+				,3.74895
+				,1.66275
+				,0.00112091
+				,3.82038
+				,-1.92372
+				,-2.53125
+				,3.82039
+				,-1.92372
+				,-2.53125
+				,3.74895
+				,1.66275
+				,0.00112091
+				,5.21324
+				,-2.65868
+				,-2.53125
+				,5.21324
+				,-2.65868
+				,0.00112091
+				,5.55054
+				,2.99608
+				,-2.53125
+				,5.55054
+				,2.99608
+				,-3.15717
+				,4.37021
+				,-1.51582
+				,-3.15717
+				,4.33361
+				,1.66275
+				,-3.15717
+				,5.08381
+				,-2.65868
+				,-3.15717
+				,5.08381
+				,-2.65868
+				,-3.15717
+				,5.59528
+				,2.99608
+				,0.00112091
+				,5.91138
+				,5.11366
+				,0.00112091
+				,5.55054
+				,2.99608
+				,-2.53125
+				,5.55054
+				,2.99608
+				,-2.53125
+				,5.91138
+				,5.11367
+				,0
+				,6.06285
+				,6.70587
+				,-2.53125
+				,6.06285
+				,6.70586
+				,0
+				,5.01498
+				,8.02341
+				,-2.53125
+				,5.01497
+				,7.64841
+				,-3.15717
+				,5.59528
+				,2.99608
+				,-3.15717
+				,5.80724
+				,5.11367
+				,-3.15717
+				,5.88485
+				,6.70586
+				,-3.15717
+				,5.00932
+				,7.64841
+				,-3.86047
+				,5.75026
+				,6.82229
+				,-4.1697
+				,4.0473
+				,6.9363
+				,-3.28145
+				,5.5256
+				,6.9363
+				,-4.63989
+				,4.45308
+				,6.82229
+				,-3.86047
+				,5.75026
+				,5.8628
+				,-4.63989
+				,4.45308
+				,6.82229
+				,-3.86047
+				,5.75026
+				,6.82229
+				,-4.63989
+				,4.45308
+				,5.8628
+				,-3.28145
+				,5.5256
+				,5.7488
+				,-4.63989
+				,4.45308
+				,5.8628
+				,-3.86047
+				,5.75026
+				,5.8628
+				,-4.1697
+				,4.0473
+				,5.7488
+				,-4.63989
+				,4.45308
+				,5.8628
+				,-3.86047
+				,5.75026
+				,5.8628
+				,-3.28145
+				,5.5256
+				,6.9363
+				,-3.28145
+				,5.5256
+				,5.7488
+				,-3.86047
+				,5.75026
+				,6.82229
+				,-4.63989
+				,4.45308
+				,6.82229
+				,-4.1697
+				,4.0473
+				,5.7488
+				,-4.1697
+				,4.0473
+				,6.9363
+				,-4.63989
+				,4.45308
+				,5.8628
+				,-2.92589
+				,4.90294
+				,-2.81899
+				,-3.01518
+				,6.20824
+				,-2.33814
+				,-3.01518
+				,4.98901
+				,-2.96243
+				,-2.92589
+				,6.12216
+				,-2.19471
+				,-2.74732
+				,6.12216
+				,-2.19471
+				,-2.74732
+				,4.90294
+				,-2.81899
+				,-2.65804
+				,4.98901
+				,-2.96243
+				,-2.65804
+				,6.20824
+				,-2.33814
+				,-2.74732
+				,6.29431
+				,-2.48157
+				,-2.65804
+				,6.20824
+				,-2.33814
+				,-2.65804
+				,4.98901
+				,-2.96243
+				,-2.74732
+				,5.07508
+				,-3.10586
+				,-2.92589
+				,5.07508
+				,-3.10586
+				,-2.92589
+				,6.29431
+				,-2.48157
+				,-3.01518
+				,6.20824
+				,-2.33814
+				,-3.01518
+				,4.98901
+				,-2.96243
+				,-2.77919
+				,6.65258
+				,-1.92312
+				,-2.86501
+				,6.76336
+				,-2.0539
+				,-2.60753
+				,6.60316
+				,-1.94843
+				,-2.5217
+				,6.66452
+				,-2.10451
+				,-2.60753
+				,6.7753
+				,-2.2353
+				,-2.5217
+				,6.66452
+				,-2.10451
+				,-2.77919
+				,6.82473
+				,-2.20999
+				,-2.86501
+				,6.76336
+				,-2.0539
+				,-2.55914
+				,6.96189
+				,-1.76474
+				,-2.61412
+				,7.1186
+				,-1.87201
+				,-2.44921
+				,6.82061
+				,-1.83709
+				,-2.39421
+				,6.83603
+				,-2.01669
+				,-2.44921
+				,6.99275
+				,-2.12395
+				,-2.39421
+				,6.83603
+				,-2.01669
+				,-2.55914
+				,7.13404
+				,-2.05161
+				,-2.61412
+				,7.1186
+				,-1.87201
+				,-2.28942
+				,7.09457
+				,-1.6968
+				,-2.30647
+				,7.26864
+				,-1.79518
+				,-2.25536
+				,6.91858
+				,-1.78692
+				,-2.23831
+				,6.91662
+				,-1.97543
+				,-2.25536
+				,7.09073
+				,-2.07379
+				,-2.23831
+				,6.91662
+				,-1.97543
+				,-2.28942
+				,7.26672
+				,-1.98367
+				,-2.30647
+				,7.26864
+				,-1.79518
+				,-1.98661
+				,7.1238
+				,-1.68184
+				,-1.98661
+				,7.29948
+				,-1.77939
+				,-1.98661
+				,6.94453
+				,-1.77363
+				,-1.98661
+				,6.94093
+				,-1.96298
+				,-1.98661
+				,7.11667
+				,-2.0605
+				,-1.98661
+				,6.94093
+				,-1.96298
+				,-1.98661
+				,7.29594
+				,-1.96871
+				,-1.98661
+				,7.29948
+				,-1.77939
+				,-1.98661
+				,7.29948
+				,-1.77939
+				,-1.98661
+				,7.1238
+				,-1.68184
+				,0.00112091
+				,7.12382
+				,-1.68183
+				,0.00112091
+				,7.29949
+				,-1.77939
+				,-1.98661
+				,6.94453
+				,-1.77363
+				,0.00112091
+				,6.94453
+				,-1.77363
+				,-1.98661
+				,6.94093
+				,-1.96298
+				,0.00112091
+				,6.94091
+				,-1.96299
+				,-1.98661
+				,6.94093
+				,-1.96298
+				,-1.98661
+				,7.11667
+				,-2.0605
+				,0.00112091
+				,7.11668
+				,-2.0605
+				,0.00112091
+				,6.94091
+				,-1.96299
+				,-1.98661
+				,7.29594
+				,-1.96871
+				,0.00112091
+				,7.29596
+				,-1.9687
+				,-1.98661
+				,7.29948
+				,-1.77939
+				,0.00112091
+				,7.29949
+				,-1.77939
+				,-1.24029
+				,3.69856
+				,8.10906
+				,-1.38404
+				,3.46628
+				,7.95238
+				,-1.09654
+				,3.46628
+				,7.95238
+				,-1.52779
+				,3.69856
+				,8.10906
+				,-1.67154
+				,3.46628
+				,7.95238
+				,-1.52779
+				,3.234
+				,7.79569
+				,-1.24029
+				,3.234
+				,7.79569
+				,-1.24029
+				,3.71327
+				,5.25238
+				,-1.09654
+				,3.46628
+				,7.95238
+				,-1.09654
+				,3.46429
+				,5.25238
+				,-1.24029
+				,3.69856
+				,8.10906
+				,-1.52779
+				,3.69856
+				,8.10906
+				,-1.52779
+				,3.71327
+				,5.25238
+				,-1.67154
+				,3.46429
+				,5.25238
+				,-1.67154
+				,3.46628
+				,7.95238
+				,-1.52779
+				,3.234
+				,7.79569
+				,-1.67154
+				,3.46628
+				,7.95238
+				,-1.67154
+				,3.46429
+				,5.25238
+				,-1.52779
+				,3.2153
+				,5.25238
+				,-1.24029
+				,3.2153
+				,5.25238
+				,-1.52779
+				,3.234
+				,7.79569
+				,-1.24029
+				,3.234
+				,7.79569
+				,-1.09654
+				,3.46628
+				,7.95238
+				,-1.24029
+				,3.234
+				,7.79569
+				,-1.09654
+				,3.46429
+				,5.25238
+				,-0.99375
+				,1.02193
+				,4.13605
+				,0.00112091
+				,1.02193
+				,4.13605
+				,-1.49375
+				,1.26118
+				,4.3466
+				,-1.10089
+				,1.13863
+				,4.13605
+				,-1.1009
+				,1.13863
+				,6.13655
+				,0.00112091
+				,3.39035
+				,6.13655
+				,-0.99375
+				,1.02193
+				,6.13655
+				,0
+				,1.02193
+				,6.13655
+				,-0.99375
+				,2.14035
+				,6.13655
+				,-1.1009
+				,1.13863
+				,6.13655
+				,-1.49375
+				,2.01953
+				,5.926
+				,-1.49375
+				,1.26118
+				,5.926
+				,-1.57708
+				,3.39035
+				,6.13655
+				,-1.10089
+				,1.13863
+				,4.13605
+				,-0.99375
+				,1.02193
+				,6.13655
+				,-0.99375
+				,1.02193
+				,6.13655
+				,-1.49375
+				,1.26118
+				,5.926
+				,-1.49375
+				,1.26118
+				,4.3466
+				,-1.1009
+				,1.13863
+				,6.13655
+				,-1.49375
+				,2.01953
+				,4.3466
+				,-0.99375
+				,2.14035
+				,4.13605
+				,-1.49375
+				,2.01953
+				,5.926
+				,-0.99375
+				,2.14035
+				,6.13655
+				,-1.57708
+				,3.39035
+				,3.46938
+				,-0.99375
+				,2.14035
+				,4.13605
+				,-0.99375
+				,2.14035
+				,6.13655
+				,-1.57708
+				,3.39035
+				,6.13655
+				,0.00112091
+				,1.02193
+				,4.13605
+				,-0.99375
+				,1.02193
+				,4.13605
+				,0.00112091
+				,3.39035
+				,3.46938
+				,-1.10089
+				,1.13863
+				,4.13605
+				,-0.99375
+				,2.14035
+				,4.13605
+				,-1.49375
+				,1.26118
+				,4.3466
+				,-1.49375
+				,2.01953
+				,4.3466
+				,-1.57708
+				,3.39035
+				,3.46938
+				,-2.52315
+				,2.29555
+				,6.2328
+				,-3.57579
+				,1.65387
+				,6.50281
+				,-2.52315
+				,1.65387
+				,6.50281
+				,-3.57579
+				,2.29555
+				,6.2328
+				,-3.57579
+				,2.56134
+				,5.58093
+				,-2.52315
+				,2.56134
+				,5.58093
+				,-2.52315
+				,2.29555
+				,4.92907
+				,-3.57579
+				,2.29555
+				,4.92907
+				,-3.57579
+				,1.65387
+				,4.65906
+				,-2.52315
+				,1.65387
+				,4.65906
+				,-2.52315
+				,1.01219
+				,4.92907
+				,-3.57579
+				,1.01219
+				,4.92907
+				,-3.57579
+				,0.746398
+				,5.58093
+				,-3.57579
+				,1.01219
+				,4.92907
+				,-2.52315
+				,1.01219
+				,4.92907
+				,-2.52315
+				,0.746398
+				,5.58093
+				,-2.52315
+				,1.01219
+				,6.2328
+				,-3.57579
+				,1.01219
+				,6.2328
+				,-1.64814
+				,1.65387
+				,5.8791
+				,-1.64814
+				,1.8494
+				,5.79177
+				,-1.64814
+				,1.93039
+				,5.58093
+				,-1.64814
+				,1.8494
+				,5.37009
+				,-1.64814
+				,1.65387
+				,5.28276
+				,-1.64814
+				,1.45834
+				,5.37009
+				,-1.64814
+				,1.45834
+				,5.37009
+				,-1.64814
+				,1.37735
+				,5.58093
+				,-1.64814
+				,1.45834
+				,5.79177
+				,0.00112091
+				,1.65387
+				,5.87911
+				,0.00112091
+				,1.8494
+				,5.79177
+				,0.00112091
+				,1.93039
+				,5.58094
+				,0.00112091
+				,1.8494
+				,5.37009
+				,0.00112091
+				,1.65387
+				,5.28276
+				,0.00112091
+				,1.45834
+				,5.37009
+				,-1.64814
+				,1.37735
+				,5.58093
+				,-1.64814
+				,1.45834
+				,5.37009
+				,0.00112091
+				,1.45834
+				,5.37009
+				,0.00112091
+				,1.37735
+				,5.58094
+				,0.00112091
+				,1.45834
+				,5.37009
+				,0.00112091
+				,1.45834
+				,5.79177
+				,1.26855
+				,7.62908
+				,-1.86968
+				,1.26855
+				,7.1118
+				,-1.86968
+				,2.12297
+				,7.62908
+				,-1.86968
+				,2.12297
+				,7.1118
+				,-1.86968
+				,2.12297
+				,7.62908
+				,-1.86968
+				,2.12297
+				,7.1118
+				,-1.86968
+				,2.12297
+				,7.62908
+				,-2.17578
+				,2.12297
+				,7.1118
+				,-2.17578
+				,1.26855
+				,7.62908
+				,-2.17578
+				,1.26855
+				,7.1118
+				,-2.17578
+				,1.26855
+				,7.62908
+				,-1.86968
+				,1.26855
+				,7.1118
+				,-1.86968
+				,0.205712
+				,7.62908
+				,-1.86968
+				,0.205712
+				,7.1118
+				,-1.86968
+				,1.06013
+				,7.62908
+				,-1.86968
+				,1.06013
+				,7.1118
+				,-1.86968
+				,1.06013
+				,7.62908
+				,-1.86968
+				,1.06013
+				,7.1118
+				,-1.86968
+				,1.06013
+				,7.62908
+				,-2.17578
+				,1.06013
+				,7.1118
+				,-2.17578
+				,0.205712
+				,7.62908
+				,-2.17578
+				,0.205712
+				,7.1118
+				,-2.17578
+				,0.205712
+				,7.62908
+				,-1.86968
+				,0.205712
+				,7.1118
+				,-1.86968
+				,-2.12297
+				,7.62908
+				,-1.86968
+				,-1.26855
+				,7.1118
+				,-1.86968
+				,-1.26855
+				,7.62908
+				,-1.86968
+				,-2.12297
+				,7.1118
+				,-1.86968
+				,-2.12297
+				,7.62908
+				,-2.17578
+				,-2.12297
+				,7.1118
+				,-1.86968
+				,-2.12297
+				,7.62908
+				,-1.86968
+				,-2.12297
+				,7.1118
+				,-2.17578
+				,-1.26855
+				,7.62908
+				,-2.17578
+				,-1.26855
+				,7.1118
+				,-2.17578
+				,-1.26855
+				,7.62908
+				,-1.86968
+				,-1.26855
+				,7.1118
+				,-1.86968
+				,-1.06013
+				,7.62908
+				,-1.86968
+				,-0.205712
+				,7.1118
+				,-1.86968
+				,-0.205712
+				,7.62908
+				,-1.86968
+				,-1.06013
+				,7.1118
+				,-1.86968
+				,-1.06013
+				,7.62908
+				,-2.17578
+				,-1.06013
+				,7.1118
+				,-1.86968
+				,-1.06013
+				,7.62908
+				,-1.86968
+				,-1.06013
+				,7.1118
+				,-2.17578
+				,-0.205712
+				,7.62908
+				,-2.17578
+				,-0.205712
+				,7.1118
+				,-2.17578
+				,-0.205712
+				,7.62908
+				,-1.86968
+				,-0.205712
+				,7.1118
+				,-1.86968
+				,1.83513
+				,4.90408
+				,7.7169
+				,0.980712
+				,4.3868
+				,7.7169
+				,0.980712
+				,4.90408
+				,7.7169
+				,1.83513
+				,4.3868
+				,7.7169
+				,1.83513
+				,4.90408
+				,8.023
+				,1.83513
+				,4.3868
+				,7.7169
+				,1.83513
+				,4.90408
+				,7.7169
+				,1.83513
+				,4.3868
+				,8.023
+				,0.980712
+				,4.90408
+				,8.023
+				,0.980712
+				,4.3868
+				,8.023
+				,0.980712
+				,4.90408
+				,7.7169
+				,0.980712
+				,4.3868
+				,7.7169
+				,-0.980712
+				,4.90408
+				,7.7169
+				,-0.980712
+				,4.3868
+				,7.7169
+				,-1.83513
+				,4.90408
+				,7.7169
+				,-1.83513
+				,4.3868
+				,7.7169
+				,-1.83513
+				,4.90408
+				,7.7169
+				,-1.83513
+				,4.3868
+				,7.7169
+				,-1.83513
+				,4.90408
+				,8.023
+				,-1.83513
+				,4.3868
+				,8.023
+				,-0.980712
+				,4.90408
+				,8.023
+				,-0.980712
+				,4.3868
+				,8.023
+				,-0.980712
+				,4.90408
+				,7.7169
+				,-0.980712
+				,4.3868
+				,7.7169
+				,5.3674
+				,2.79918
+				,-5
+				,5.3674
+				,2.71248
+				,-4.5641
+				,5.3674
+				,1.66012
+				,-5
+				,3.33216
+				,2.92574
+				,-5
+				,3.33216
+				,1.66012
+				,-5
+				,3.33216
+				,2.8294
+				,-4.51567
+				,5.52924
+				,2.92574
+				,-5
+				,5.26276
+				,3.17887
+				,-5
+				,5.26276
+				,3.06326
+				,-4.4188
+				,5.52924
+				,2.8294
+				,-4.51567
+				,3.59863
+				,3.17887
+				,-5
+				,3.59863
+				,3.06326
+				,-4.4188
+				,5.3674
+				,2.46556
+				,-4.19456
+				,3.33216
+				,2.55505
+				,-4.10507
+				,5.52924
+				,2.55505
+				,-4.10507
+				,5.26276
+				,2.73404
+				,-3.92608
+				,3.59863
+				,2.73404
+				,-3.92608
+				,5.3674
+				,2.09602
+				,-3.94765
+				,3.33216
+				,2.14445
+				,-3.83072
+				,5.26276
+				,2.24132
+				,-3.59686
+				,5.52924
+				,2.14445
+				,-3.83072
+				,3.59863
+				,2.24132
+				,-3.59686
+				,5.3674
+				,1.66012
+				,-3.86094
+				,3.33216
+				,1.66012
+				,-3.73438
+				,5.52924
+				,1.66012
+				,-3.73438
+				,5.26276
+				,1.66012
+				,-3.48125
+				,3.59863
+				,1.66012
+				,-3.48125
+				,5.3674
+				,1.22421
+				,-3.94765
+				,3.33216
+				,1.17579
+				,-3.83072
+				,5.26276
+				,1.07892
+				,-3.59686
+				,5.52924
+				,1.17579
+				,-3.83072
+				,3.59863
+				,1.07892
+				,-3.59686
+				,5.3674
+				,0.854673
+				,-4.19456
+				,3.33216
+				,0.765187
+				,-4.10507
+				,5.52924
+				,0.765187
+				,-4.10507
+				,5.26276
+				,0.586201
+				,-3.92608
+				,3.59863
+				,0.586201
+				,-3.92608
+				,5.3674
+				,0.607756
+				,-4.5641
+				,3.33216
+				,0.490834
+				,-4.51567
+				,5.26276
+				,0.256977
+				,-4.4188
+				,5.52924
+				,0.490834
+				,-4.51567
+				,3.59863
+				,0.256977
+				,-4.4188
+				,5.3674
+				,0.52106
+				,-5
+				,3.33216
+				,0.394494
+				,-5
+				,5.52924
+				,0.394494
+				,-5
+				,5.26276
+				,0.141369
+				,-5
+				,3.59863
+				,0.141369
+				,-5
+				,5.3674
+				,0.607756
+				,-5.4359
+				,3.33216
+				,0.490834
+				,-5.48433
+				,5.26276
+				,0.256977
+				,-5.5812
+				,5.52924
+				,0.490834
+				,-5.48433
+				,3.59863
+				,0.256977
+				,-5.5812
+				,5.3674
+				,0.854673
+				,-5.80544
+				,3.33216
+				,0.765187
+				,-5.89493
+				,5.52924
+				,0.765187
+				,-5.89493
+				,5.26276
+				,0.586201
+				,-6.07392
+				,3.59863
+				,0.586201
+				,-6.07392
+				,5.3674
+				,1.22421
+				,-6.05235
+				,3.33216
+				,1.17579
+				,-6.16928
+				,5.26276
+				,1.07892
+				,-6.40314
+				,5.52924
+				,1.17579
+				,-6.16928
+				,3.59863
+				,1.07892
+				,-6.40314
+				,5.3674
+				,1.66012
+				,-6.13906
+				,3.33216
+				,1.66012
+				,-6.26563
+				,5.52924
+				,1.66012
+				,-6.26563
+				,5.26276
+				,1.66012
+				,-6.51875
+				,3.59863
+				,1.66012
+				,-6.51875
+				,5.3674
+				,2.09602
+				,-6.05235
+				,3.33216
+				,2.14445
+				,-6.16928
+				,5.26276
+				,2.24132
+				,-6.40314
+				,5.52924
+				,2.14445
+				,-6.16928
+				,3.59863
+				,2.24132
+				,-6.40314
+				,5.3674
+				,2.46556
+				,-5.80544
+				,3.33216
+				,2.55505
+				,-5.89493
+				,5.52924
+				,2.55505
+				,-5.89493
+				,5.26276
+				,2.73404
+				,-6.07392
+				,3.59863
+				,2.73404
+				,-6.07392
+				,5.3674
+				,2.71248
+				,-5.4359
+				,3.33216
+				,2.8294
+				,-5.48433
+				,5.26276
+				,3.06326
+				,-5.5812
+				,5.52924
+				,2.8294
+				,-5.48433
+				,3.59863
+				,3.06326
+				,-5.5812
+				,5.26276
+				,3.17887
+				,-5
+				,4.4307
+				,3.33074
+				,-5
+				,5.26276
+				,3.06326
+				,-4.4188
+				,4.4307
+				,3.20358
+				,-4.36068
+				,4.4307
+				,3.33074
+				,-5
+				,3.59863
+				,3.17887
+				,-5
+				,3.59863
+				,3.06326
+				,-4.4188
+				,4.4307
+				,3.20358
+				,-4.36068
+				,5.26276
+				,3.06326
+				,-4.4188
+				,4.4307
+				,3.20358
+				,-4.36068
+				,4.4307
+				,2.84143
+				,-3.81869
+				,5.26276
+				,2.73404
+				,-3.92608
+				,4.4307
+				,3.20358
+				,-4.36068
+				,3.59863
+				,3.06326
+				,-4.4188
+				,4.4307
+				,2.84143
+				,-3.81869
+				,3.59863
+				,2.73404
+				,-3.92608
+				,5.26276
+				,2.73404
+				,-3.92608
+				,4.4307
+				,2.84143
+				,-3.81869
+				,5.26276
+				,2.24132
+				,-3.59686
+				,4.4307
+				,2.29944
+				,-3.45654
+				,4.4307
+				,2.84143
+				,-3.81869
+				,3.59863
+				,2.73404
+				,-3.92608
+				,3.59863
+				,2.24132
+				,-3.59686
+				,4.4307
+				,2.29944
+				,-3.45654
+				,5.26276
+				,2.24132
+				,-3.59686
+				,4.4307
+				,2.29944
+				,-3.45654
+				,4.4307
+				,1.66012
+				,-3.32937
+				,5.26276
+				,1.66012
+				,-3.48125
+				,4.4307
+				,2.29944
+				,-3.45654
+				,3.59863
+				,2.24132
+				,-3.59686
+				,4.4307
+				,1.66012
+				,-3.32937
+				,3.59863
+				,1.66012
+				,-3.48125
+				,5.26276
+				,1.66012
+				,-3.48125
+				,4.4307
+				,1.66012
+				,-3.32937
+				,5.26276
+				,1.07892
+				,-3.59686
+				,4.4307
+				,1.0208
+				,-3.45654
+				,4.4307
+				,1.66012
+				,-3.32937
+				,3.59863
+				,1.66012
+				,-3.48125
+				,3.59863
+				,1.07892
+				,-3.59686
+				,4.4307
+				,1.0208
+				,-3.45654
+				,5.26276
+				,1.07892
+				,-3.59686
+				,4.4307
+				,1.0208
+				,-3.45654
+				,4.4307
+				,0.478809
+				,-3.81869
+				,5.26276
+				,0.586201
+				,-3.92608
+				,4.4307
+				,1.0208
+				,-3.45654
+				,3.59863
+				,1.07892
+				,-3.59686
+				,4.4307
+				,0.478809
+				,-3.81869
+				,3.59863
+				,0.586201
+				,-3.92608
+				,5.26276
+				,0.586201
+				,-3.92608
+				,4.4307
+				,0.478809
+				,-3.81869
+				,5.26276
+				,0.256977
+				,-4.4188
+				,4.4307
+				,0.116663
+				,-4.36068
+				,4.4307
+				,0.478809
+				,-3.81869
+				,3.59863
+				,0.586201
+				,-3.92608
+				,3.59863
+				,0.256977
+				,-4.4188
+				,4.4307
+				,0.116663
+				,-4.36068
+				,5.26276
+				,0.256977
+				,-4.4188
+				,4.4307
+				,0.116663
+				,-4.36068
+				,4.4307
+				,-0.0105057
+				,-5
+				,5.26276
+				,0.141369
+				,-5
+				,4.4307
+				,0.116663
+				,-4.36068
+				,3.59863
+				,0.256977
+				,-4.4188
+				,4.4307
+				,-0.0105057
+				,-5
+				,3.59863
+				,0.141369
+				,-5
+				,5.26276
+				,0.141369
+				,-5
+				,4.4307
+				,-0.0105057
+				,-5
+				,5.26276
+				,0.256977
+				,-5.5812
+				,4.4307
+				,0.116663
+				,-5.63932
+				,4.4307
+				,-0.0105057
+				,-5
+				,3.59863
+				,0.141369
+				,-5
+				,3.59863
+				,0.256977
+				,-5.5812
+				,4.4307
+				,0.116663
+				,-5.63932
+				,5.26276
+				,0.256977
+				,-5.5812
+				,4.4307
+				,0.116663
+				,-5.63932
+				,4.4307
+				,0.478809
+				,-6.18131
+				,5.26276
+				,0.586201
+				,-6.07392
+				,4.4307
+				,0.116663
+				,-5.63932
+				,3.59863
+				,0.256977
+				,-5.5812
+				,4.4307
+				,0.478809
+				,-6.18131
+				,3.59863
+				,0.586201
+				,-6.07392
+				,5.26276
+				,0.586201
+				,-6.07392
+				,4.4307
+				,0.478809
+				,-6.18131
+				,5.26276
+				,1.07892
+				,-6.40314
+				,4.4307
+				,1.0208
+				,-6.54346
+				,4.4307
+				,0.478809
+				,-6.18131
+				,3.59863
+				,0.586201
+				,-6.07392
+				,3.59863
+				,1.07892
+				,-6.40314
+				,4.4307
+				,1.0208
+				,-6.54346
+				,5.26276
+				,1.07892
+				,-6.40314
+				,4.4307
+				,1.0208
+				,-6.54346
+				,4.4307
+				,1.66012
+				,-6.67063
+				,5.26276
+				,1.66012
+				,-6.51875
+				,4.4307
+				,1.0208
+				,-6.54346
+				,3.59863
+				,1.07892
+				,-6.40314
+				,4.4307
+				,1.66012
+				,-6.67063
+				,3.59863
+				,1.66012
+				,-6.51875
+				,5.26276
+				,1.66012
+				,-6.51875
+				,4.4307
+				,1.66012
+				,-6.67063
+				,5.26276
+				,2.24132
+				,-6.40314
+				,4.4307
+				,2.29944
+				,-6.54346
+				,4.4307
+				,1.66012
+				,-6.67063
+				,3.59863
+				,1.66012
+				,-6.51875
+				,3.59863
+				,2.24132
+				,-6.40314
+				,4.4307
+				,2.29944
+				,-6.54346
+				,5.26276
+				,2.24132
+				,-6.40314
+				,4.4307
+				,2.29944
+				,-6.54346
+				,4.4307
+				,2.84143
+				,-6.18131
+				,5.26276
+				,2.73404
+				,-6.07392
+				,4.4307
+				,2.29944
+				,-6.54346
+				,3.59863
+				,2.24132
+				,-6.40314
+				,4.4307
+				,2.84143
+				,-6.18131
+				,3.59863
+				,2.73404
+				,-6.07392
+				,5.26276
+				,2.73404
+				,-6.07392
+				,4.4307
+				,2.84143
+				,-6.18131
+				,5.26276
+				,3.06326
+				,-5.5812
+				,4.4307
+				,3.20358
+				,-5.63932
+				,4.4307
+				,2.84143
+				,-6.18131
+				,3.59863
+				,2.73404
+				,-6.07392
+				,3.59863
+				,3.06326
+				,-5.5812
+				,4.4307
+				,3.20358
+				,-5.63932
+				,5.26276
+				,3.06326
+				,-5.5812
+				,4.4307
+				,3.20358
+				,-5.63932
+				,4.4307
+				,3.33074
+				,-5
+				,5.26276
+				,3.17887
+				,-5
+				,4.4307
+				,3.20358
+				,-5.63932
+				,3.59863
+				,3.06326
+				,-5.5812
+				,4.4307
+				,3.33074
+				,-5
+				,3.59863
+				,3.17887
+				,-5
+			]
+			,"normals": [
+				 0.853097
+				,-0.520609
+				,-0.0345183
+				,0.853101
+				,-0.467764
+				,-0.231118
+				,1
+				,0
+				,0
+				,-0.854735
+				,0.519065
+				,1.4012e-007
+				,-1
+				,0
+				,0
+				,-0.91976
+				,0.362606
+				,0.150197
+				,0.992581
+				,0.116804
+				,0.0337532
+				,0.454129
+				,0.890936
+				,2.80027e-007
+				,0.454129
+				,0.823118
+				,0.340946
+				,0.961402
+				,-0.268379
+				,-0.0606564
+				,-0.45413
+				,0.890935
+				,2.83971e-007
+				,-0.45413
+				,0.823117
+				,0.340946
+				,0.853102
+				,-0.343712
+				,-0.392528
+				,-0.854735
+				,0.367035
+				,0.367035
+				,0.992581
+				,0.0587307
+				,0.106462
+				,0.454129
+				,0.629987
+				,0.629987
+				,-0.45413
+				,0.629986
+				,0.629987
+				,0.853101
+				,-0.167336
+				,-0.494183
+				,-0.919759
+				,0.150197
+				,0.362607
+				,0.454128
+				,0.340946
+				,0.823118
+				,0.961404
+				,-0.146879
+				,-0.232654
+				,-0.454129
+				,0.340946
+				,0.823117
+				,0.8531
+				,0.034517
+				,-0.520604
+				,-0.854734
+				,0
+				,0.519066
+				,0.992581
+				,-0.0337527
+				,0.116809
+				,0.454128
+				,0
+				,0.890936
+				,-0.454129
+				,0
+				,0.890936
+				,0.853099
+				,0.231119
+				,-0.467768
+				,-0.919759
+				,-0.150197
+				,0.362607
+				,0.454128
+				,-0.340947
+				,0.823118
+				,0.961402
+				,0.0606552
+				,-0.268377
+				,-0.454129
+				,-0.340946
+				,0.823117
+				,0.853095
+				,0.392537
+				,-0.34372
+				,-0.854734
+				,-0.367035
+				,0.367035
+				,0.992581
+				,-0.106458
+				,0.0587268
+				,0.454128
+				,-0.629987
+				,0.629987
+				,-0.45413
+				,-0.629986
+				,0.629987
+				,0.853096
+				,0.494192
+				,-0.167335
+				,-0.91976
+				,-0.362606
+				,0.150196
+				,0.454128
+				,-0.823118
+				,0.340946
+				,0.961398
+				,0.232674
+				,-0.146889
+				,-0.45413
+				,-0.823117
+				,0.340946
+				,0.853098
+				,0.520607
+				,0.0345189
+				,-0.854735
+				,-0.519065
+				,1.37425e-007
+				,0.992581
+				,-0.116805
+				,-0.0337485
+				,0.454128
+				,-0.890936
+				,2.76083e-007
+				,-0.45413
+				,-0.890936
+				,2.80027e-007
+				,0.853093
+				,0.467778
+				,0.231118
+				,-0.91976
+				,-0.362606
+				,-0.150196
+				,0.454129
+				,-0.823118
+				,-0.340946
+				,0.9614
+				,0.268387
+				,0.0606525
+				,-0.45413
+				,-0.823117
+				,-0.340946
+				,0.853096
+				,0.343719
+				,0.392535
+				,-0.854735
+				,-0.367034
+				,-0.367034
+				,0.992581
+				,-0.0587251
+				,-0.106458
+				,0.454128
+				,-0.629987
+				,-0.629987
+				,-0.45413
+				,-0.629987
+				,-0.629987
+				,0.853099
+				,0.167338
+				,0.494187
+				,-0.91976
+				,-0.150196
+				,-0.362606
+				,0.454129
+				,-0.340947
+				,-0.823117
+				,0.961401
+				,0.146885
+				,0.232664
+				,-0.45413
+				,-0.340946
+				,-0.823117
+				,0.8531
+				,-0.0345193
+				,0.520605
+				,-0.854735
+				,0
+				,-0.519064
+				,0.992581
+				,0.0337517
+				,-0.116805
+				,0.454129
+				,0
+				,-0.890936
+				,-0.45413
+				,0
+				,-0.890935
+				,0.853103
+				,-0.231117
+				,0.467762
+				,-0.91976
+				,0.150196
+				,-0.362606
+				,0.454129
+				,0.340946
+				,-0.823117
+				,0.961403
+				,-0.0606557
+				,0.268376
+				,-0.45413
+				,0.340946
+				,-0.823117
+				,0.853103
+				,-0.392528
+				,0.343712
+				,-0.854735
+				,0.367034
+				,-0.367034
+				,0.992581
+				,0.106462
+				,-0.0587312
+				,0.454129
+				,0.629987
+				,-0.629987
+				,-0.45413
+				,0.629986
+				,-0.629987
+				,0.853099
+				,-0.494187
+				,0.167338
+				,-0.91976
+				,0.362606
+				,-0.150196
+				,0.454129
+				,0.823118
+				,-0.340946
+				,0.961403
+				,-0.232658
+				,0.146881
+				,-0.45413
+				,0.823117
+				,-0.340946
+				,0.454129
+				,0.890936
+				,2.80027e-007
+				,-1.04184e-007
+				,1
+				,1.52417e-007
+				,0.454129
+				,0.823118
+				,0.340946
+				,-1.04184e-007
+				,0.923879
+				,0.382684
+				,-1.04184e-007
+				,1
+				,1.52417e-007
+				,-0.45413
+				,0.890935
+				,2.83971e-007
+				,-0.45413
+				,0.823117
+				,0.340946
+				,-1.04184e-007
+				,0.923879
+				,0.382684
+				,0.454129
+				,0.823118
+				,0.340946
+				,-1.04184e-007
+				,0.923879
+				,0.382684
+				,-1.04184e-007
+				,0.707107
+				,0.707107
+				,0.454129
+				,0.629987
+				,0.629987
+				,-1.04184e-007
+				,0.923879
+				,0.382684
+				,-0.45413
+				,0.823117
+				,0.340946
+				,-1.04184e-007
+				,0.707107
+				,0.707107
+				,-0.45413
+				,0.629986
+				,0.629987
+				,0.454129
+				,0.629987
+				,0.629987
+				,-1.04184e-007
+				,0.707107
+				,0.707107
+				,0.454128
+				,0.340946
+				,0.823118
+				,-1.04184e-007
+				,0.382683
+				,0.92388
+				,-1.04184e-007
+				,0.707107
+				,0.707107
+				,-0.45413
+				,0.629986
+				,0.629987
+				,-0.454129
+				,0.340946
+				,0.823117
+				,-1.04184e-007
+				,0.382683
+				,0.92388
+				,0.454128
+				,0.340946
+				,0.823118
+				,-1.04184e-007
+				,0.382683
+				,0.92388
+				,-1.04184e-007
+				,0
+				,1
+				,0.454128
+				,0
+				,0.890936
+				,-1.04184e-007
+				,0.382683
+				,0.92388
+				,-0.454129
+				,0.340946
+				,0.823117
+				,-1.04184e-007
+				,0
+				,1
+				,-0.454129
+				,0
+				,0.890936
+				,0.454128
+				,0
+				,0.890936
+				,-1.04184e-007
+				,0
+				,1
+				,0.454128
+				,-0.340947
+				,0.823118
+				,-1.00325e-007
+				,-0.382684
+				,0.923879
+				,-1.04184e-007
+				,0
+				,1
+				,-0.454129
+				,0
+				,0.890936
+				,-0.454129
+				,-0.340946
+				,0.823117
+				,-1.00325e-007
+				,-0.382684
+				,0.923879
+				,0.454128
+				,-0.340947
+				,0.823118
+				,-1.00325e-007
+				,-0.382684
+				,0.923879
+				,-1.00325e-007
+				,-0.707107
+				,0.707107
+				,0.454128
+				,-0.629987
+				,0.629987
+				,-1.00325e-007
+				,-0.382684
+				,0.923879
+				,-0.454129
+				,-0.340946
+				,0.823117
+				,-1.00325e-007
+				,-0.707107
+				,0.707107
+				,-0.45413
+				,-0.629986
+				,0.629987
+				,0.454128
+				,-0.629987
+				,0.629987
+				,-1.00325e-007
+				,-0.707107
+				,0.707107
+				,0.454128
+				,-0.823118
+				,0.340946
+				,-1.04184e-007
+				,-0.923879
+				,0.382684
+				,-1.00325e-007
+				,-0.707107
+				,0.707107
+				,-0.45413
+				,-0.629986
+				,0.629987
+				,-0.45413
+				,-0.823117
+				,0.340946
+				,-1.04184e-007
+				,-0.923879
+				,0.382684
+				,0.454128
+				,-0.823118
+				,0.340946
+				,-1.04184e-007
+				,-0.923879
+				,0.382684
+				,-1.06113e-007
+				,-1
+				,1.52417e-007
+				,0.454128
+				,-0.890936
+				,2.76083e-007
+				,-1.04184e-007
+				,-0.923879
+				,0.382684
+				,-0.45413
+				,-0.823117
+				,0.340946
+				,-1.06113e-007
+				,-1
+				,1.52417e-007
+				,-0.45413
+				,-0.890936
+				,2.80027e-007
+				,0.454128
+				,-0.890936
+				,2.76083e-007
+				,-1.06113e-007
+				,-1
+				,1.52417e-007
+				,0.454129
+				,-0.823118
+				,-0.340946
+				,-1.04184e-007
+				,-0.92388
+				,-0.382683
+				,-1.06113e-007
+				,-1
+				,1.52417e-007
+				,-0.45413
+				,-0.890936
+				,2.80027e-007
+				,-0.45413
+				,-0.823117
+				,-0.340946
+				,-1.04184e-007
+				,-0.92388
+				,-0.382683
+				,0.454129
+				,-0.823118
+				,-0.340946
+				,-1.04184e-007
+				,-0.92388
+				,-0.382683
+				,-1.00325e-007
+				,-0.707107
+				,-0.707107
+				,0.454128
+				,-0.629987
+				,-0.629987
+				,-1.04184e-007
+				,-0.92388
+				,-0.382683
+				,-0.45413
+				,-0.823117
+				,-0.340946
+				,-1.00325e-007
+				,-0.707107
+				,-0.707107
+				,-0.45413
+				,-0.629987
+				,-0.629987
+				,0.454128
+				,-0.629987
+				,-0.629987
+				,-1.00325e-007
+				,-0.707107
+				,-0.707107
+				,0.454129
+				,-0.340947
+				,-0.823117
+				,-1.00325e-007
+				,-0.382684
+				,-0.92388
+				,-1.00325e-007
+				,-0.707107
+				,-0.707107
+				,-0.45413
+				,-0.629987
+				,-0.629987
+				,-0.45413
+				,-0.340946
+				,-0.823117
+				,-1.00325e-007
+				,-0.382684
+				,-0.92388
+				,0.454129
+				,-0.340947
+				,-0.823117
+				,-1.00325e-007
+				,-0.382684
+				,-0.92388
+				,-1.04184e-007
+				,0
+				,-1
+				,0.454129
+				,0
+				,-0.890936
+				,-1.00325e-007
+				,-0.382684
+				,-0.92388
+				,-0.45413
+				,-0.340946
+				,-0.823117
+				,-1.04184e-007
+				,0
+				,-1
+				,-0.45413
+				,0
+				,-0.890935
+				,0.454129
+				,0
+				,-0.890936
+				,-1.04184e-007
+				,0
+				,-1
+				,0.454129
+				,0.340946
+				,-0.823117
+				,-1.00325e-007
+				,0.382683
+				,-0.92388
+				,-1.04184e-007
+				,0
+				,-1
+				,-0.45413
+				,0
+				,-0.890935
+				,-0.45413
+				,0.340946
+				,-0.823117
+				,-1.00325e-007
+				,0.382683
+				,-0.92388
+				,0.454129
+				,0.340946
+				,-0.823117
+				,-1.00325e-007
+				,0.382683
+				,-0.92388
+				,-1.02254e-007
+				,0.707107
+				,-0.707107
+				,0.454129
+				,0.629987
+				,-0.629987
+				,-1.00325e-007
+				,0.382683
+				,-0.92388
+				,-0.45413
+				,0.340946
+				,-0.823117
+				,-1.02254e-007
+				,0.707107
+				,-0.707107
+				,-0.45413
+				,0.629986
+				,-0.629987
+				,0.454129
+				,0.629987
+				,-0.629987
+				,-1.02254e-007
+				,0.707107
+				,-0.707107
+				,0.454129
+				,0.823118
+				,-0.340946
+				,-1.04184e-007
+				,0.92388
+				,-0.382683
+				,-1.02254e-007
+				,0.707107
+				,-0.707107
+				,-0.45413
+				,0.629986
+				,-0.629987
+				,-0.45413
+				,0.823117
+				,-0.340946
+				,-1.04184e-007
+				,0.92388
+				,-0.382683
+				,0.454129
+				,0.823118
+				,-0.340946
+				,-1.04184e-007
+				,0.92388
+				,-0.382683
+				,-1.04184e-007
+				,1
+				,1.52417e-007
+				,0.454129
+				,0.890936
+				,2.80027e-007
+				,-1.04184e-007
+				,0.92388
+				,-0.382683
+				,-0.45413
+				,0.823117
+				,-0.340946
+				,-1.04184e-007
+				,1
+				,1.52417e-007
+				,-0.45413
+				,0.890935
+				,2.83971e-007
+				,-1
+				,0
+				,0
+				,-0.853101
+				,-0.467763
+				,-0.231118
+				,-0.853097
+				,-0.520609
+				,-0.0345182
+				,0.91976
+				,0.362606
+				,0.150197
+				,1
+				,0
+				,0
+				,0.854735
+				,0.519065
+				,0
+				,-0.454129
+				,0.823118
+				,0.340947
+				,-0.454129
+				,0.890936
+				,0
+				,-0.992581
+				,0.116804
+				,0.0337531
+				,-0.961402
+				,-0.268378
+				,-0.0606563
+				,0.45413
+				,0.823117
+				,0.340946
+				,0.45413
+				,0.890935
+				,0
+				,-0.853103
+				,-0.343712
+				,-0.392528
+				,0.854735
+				,0.367034
+				,0.367035
+				,-0.992581
+				,0.0587309
+				,0.106462
+				,-0.454129
+				,0.629987
+				,0.629987
+				,0.45413
+				,0.629986
+				,0.629987
+				,-0.853101
+				,-0.167337
+				,-0.494183
+				,0.91976
+				,0.150197
+				,0.362606
+				,-0.454129
+				,0.340947
+				,0.823118
+				,-0.961404
+				,-0.146879
+				,-0.232655
+				,0.45413
+				,0.340946
+				,0.823117
+				,-0.8531
+				,0.034517
+				,-0.520605
+				,0.854735
+				,0
+				,0.519065
+				,-0.992581
+				,-0.0337528
+				,0.116807
+				,-0.454129
+				,0
+				,0.890936
+				,0.45413
+				,0
+				,0.890935
+				,-0.853099
+				,0.231119
+				,-0.467768
+				,0.91976
+				,-0.150197
+				,0.362606
+				,-0.454129
+				,-0.340947
+				,0.823118
+				,-0.961402
+				,0.0606557
+				,-0.268378
+				,0.45413
+				,-0.340947
+				,0.823117
+				,-0.853095
+				,0.392537
+				,-0.34372
+				,0.854735
+				,-0.367035
+				,0.367035
+				,-0.992581
+				,-0.106458
+				,0.0587265
+				,-0.454128
+				,-0.629987
+				,0.629987
+				,0.45413
+				,-0.629987
+				,0.629987
+				,-0.853097
+				,0.494192
+				,-0.167334
+				,0.91976
+				,-0.362606
+				,0.150196
+				,-0.454128
+				,-0.823118
+				,0.340947
+				,-0.961398
+				,0.232674
+				,-0.146889
+				,0.45413
+				,-0.823117
+				,0.340946
+				,-0.853098
+				,0.520607
+				,0.034519
+				,0.854735
+				,-0.519065
+				,0
+				,-0.992581
+				,-0.116805
+				,-0.0337486
+				,-0.454128
+				,-0.890936
+				,0
+				,0.45413
+				,-0.890936
+				,0
+				,-0.853093
+				,0.467778
+				,0.231119
+				,0.91976
+				,-0.362606
+				,-0.150196
+				,-0.454128
+				,-0.823118
+				,-0.340947
+				,-0.9614
+				,0.268386
+				,0.0606523
+				,0.45413
+				,-0.823117
+				,-0.340946
+				,-0.853096
+				,0.343719
+				,0.392535
+				,0.854735
+				,-0.367035
+				,-0.367035
+				,-0.992581
+				,-0.058725
+				,-0.106458
+				,-0.454128
+				,-0.629987
+				,-0.629987
+				,0.45413
+				,-0.629987
+				,-0.629987
+				,-0.853099
+				,0.167337
+				,0.494186
+				,0.91976
+				,-0.150197
+				,-0.362606
+				,-0.454129
+				,-0.340947
+				,-0.823118
+				,-0.961402
+				,0.146884
+				,0.232663
+				,0.45413
+				,-0.340947
+				,-0.823117
+				,-0.853101
+				,-0.0345192
+				,0.520603
+				,0.854735
+				,0
+				,-0.519065
+				,-0.992581
+				,0.0337517
+				,-0.116807
+				,-0.454129
+				,0
+				,-0.890936
+				,0.45413
+				,0
+				,-0.890935
+				,-0.853103
+				,-0.231117
+				,0.467761
+				,0.91976
+				,0.150197
+				,-0.362606
+				,-0.454129
+				,0.340947
+				,-0.823118
+				,-0.961403
+				,-0.0606552
+				,0.268374
+				,0.45413
+				,0.340946
+				,-0.823117
+				,-0.853102
+				,-0.392528
+				,0.343713
+				,0.854735
+				,0.367034
+				,-0.367035
+				,-0.992581
+				,0.106462
+				,-0.0587312
+				,-0.454129
+				,0.629987
+				,-0.629987
+				,0.45413
+				,0.629986
+				,-0.629987
+				,-0.853099
+				,-0.494186
+				,0.167338
+				,0.91976
+				,0.362606
+				,-0.150197
+				,-0.454129
+				,0.823118
+				,-0.340947
+				,-0.961403
+				,-0.232658
+				,0.146881
+				,0.45413
+				,0.823117
+				,-0.340946
+				,-0.454129
+				,0.823118
+				,0.340947
+				,1.04184e-007
+				,1
+				,0
+				,-0.454129
+				,0.890936
+				,0
+				,1.04184e-007
+				,0.92388
+				,0.382683
+				,0.45413
+				,0.823117
+				,0.340946
+				,0.45413
+				,0.890935
+				,0
+				,1.04184e-007
+				,1
+				,0
+				,1.04184e-007
+				,0.92388
+				,0.382683
+				,1.00325e-007
+				,0.707107
+				,0.707107
+				,1.04184e-007
+				,0.92388
+				,0.382683
+				,-0.454129
+				,0.823118
+				,0.340947
+				,-0.454129
+				,0.629987
+				,0.629987
+				,1.00325e-007
+				,0.707107
+				,0.707107
+				,0.45413
+				,0.823117
+				,0.340946
+				,1.04184e-007
+				,0.92388
+				,0.382683
+				,0.45413
+				,0.629986
+				,0.629987
+				,-0.454129
+				,0.340947
+				,0.823118
+				,1.00325e-007
+				,0.707107
+				,0.707107
+				,-0.454129
+				,0.629987
+				,0.629987
+				,1.00325e-007
+				,0.382684
+				,0.92388
+				,0.45413
+				,0.340946
+				,0.823117
+				,0.45413
+				,0.629986
+				,0.629987
+				,1.00325e-007
+				,0.707107
+				,0.707107
+				,1.00325e-007
+				,0.382684
+				,0.92388
+				,1.04184e-007
+				,0
+				,1
+				,1.00325e-007
+				,0.382684
+				,0.92388
+				,-0.454129
+				,0.340947
+				,0.823118
+				,-0.454129
+				,0
+				,0.890936
+				,1.04184e-007
+				,0
+				,1
+				,0.45413
+				,0.340946
+				,0.823117
+				,1.00325e-007
+				,0.382684
+				,0.92388
+				,0.45413
+				,0
+				,0.890935
+				,-0.454129
+				,-0.340947
+				,0.823118
+				,1.04184e-007
+				,0
+				,1
+				,-0.454129
+				,0
+				,0.890936
+				,1.00325e-007
+				,-0.382684
+				,0.923879
+				,0.45413
+				,-0.340947
+				,0.823117
+				,0.45413
+				,0
+				,0.890935
+				,1.04184e-007
+				,0
+				,1
+				,1.00325e-007
+				,-0.382684
+				,0.923879
+				,1.02254e-007
+				,-0.707107
+				,0.707107
+				,1.00325e-007
+				,-0.382684
+				,0.923879
+				,-0.454129
+				,-0.340947
+				,0.823118
+				,-0.454128
+				,-0.629987
+				,0.629987
+				,1.02254e-007
+				,-0.707107
+				,0.707107
+				,0.45413
+				,-0.340947
+				,0.823117
+				,1.00325e-007
+				,-0.382684
+				,0.923879
+				,0.45413
+				,-0.629987
+				,0.629987
+				,-0.454128
+				,-0.823118
+				,0.340947
+				,1.02254e-007
+				,-0.707107
+				,0.707107
+				,-0.454128
+				,-0.629987
+				,0.629987
+				,1.04184e-007
+				,-0.92388
+				,0.382683
+				,0.45413
+				,-0.823117
+				,0.340946
+				,0.45413
+				,-0.629987
+				,0.629987
+				,1.02254e-007
+				,-0.707107
+				,0.707107
+				,1.04184e-007
+				,-0.92388
+				,0.382683
+				,1.08042e-007
+				,-1
+				,0
+				,1.04184e-007
+				,-0.92388
+				,0.382683
+				,-0.454128
+				,-0.823118
+				,0.340947
+				,-0.454128
+				,-0.890936
+				,0
+				,1.08042e-007
+				,-1
+				,0
+				,0.45413
+				,-0.823117
+				,0.340946
+				,1.04184e-007
+				,-0.92388
+				,0.382683
+				,0.45413
+				,-0.890936
+				,0
+				,-0.454128
+				,-0.823118
+				,-0.340947
+				,1.08042e-007
+				,-1
+				,0
+				,-0.454128
+				,-0.890936
+				,0
+				,1.04184e-007
+				,-0.92388
+				,-0.382683
+				,0.45413
+				,-0.823117
+				,-0.340946
+				,0.45413
+				,-0.890936
+				,0
+				,1.08042e-007
+				,-1
+				,0
+				,1.04184e-007
+				,-0.92388
+				,-0.382683
+				,1.02254e-007
+				,-0.707107
+				,-0.707107
+				,1.04184e-007
+				,-0.92388
+				,-0.382683
+				,-0.454128
+				,-0.823118
+				,-0.340947
+				,-0.454128
+				,-0.629987
+				,-0.629987
+				,1.02254e-007
+				,-0.707107
+				,-0.707107
+				,0.45413
+				,-0.823117
+				,-0.340946
+				,1.04184e-007
+				,-0.92388
+				,-0.382683
+				,0.45413
+				,-0.629987
+				,-0.629987
+				,-0.454129
+				,-0.340947
+				,-0.823118
+				,1.02254e-007
+				,-0.707107
+				,-0.707107
+				,-0.454128
+				,-0.629987
+				,-0.629987
+				,1.00325e-007
+				,-0.382684
+				,-0.923879
+				,0.45413
+				,-0.340947
+				,-0.823117
+				,0.45413
+				,-0.629987
+				,-0.629987
+				,1.02254e-007
+				,-0.707107
+				,-0.707107
+				,1.00325e-007
+				,-0.382684
+				,-0.923879
+				,1.04184e-007
+				,0
+				,-1
+				,1.00325e-007
+				,-0.382684
+				,-0.923879
+				,-0.454129
+				,-0.340947
+				,-0.823118
+				,-0.454129
+				,0
+				,-0.890936
+				,1.04184e-007
+				,0
+				,-1
+				,0.45413
+				,-0.340947
+				,-0.823117
+				,1.00325e-007
+				,-0.382684
+				,-0.923879
+				,0.45413
+				,0
+				,-0.890935
+				,-0.454129
+				,0.340947
+				,-0.823118
+				,1.04184e-007
+				,0
+				,-1
+				,-0.454129
+				,0
+				,-0.890936
+				,1.00325e-007
+				,0.382684
+				,-0.92388
+				,0.45413
+				,0.340946
+				,-0.823117
+				,0.45413
+				,0
+				,-0.890935
+				,1.04184e-007
+				,0
+				,-1
+				,1.00325e-007
+				,0.382684
+				,-0.92388
+				,1.00325e-007
+				,0.707107
+				,-0.707107
+				,1.00325e-007
+				,0.382684
+				,-0.92388
+				,-0.454129
+				,0.340947
+				,-0.823118
+				,-0.454129
+				,0.629987
+				,-0.629987
+				,1.00325e-007
+				,0.707107
+				,-0.707107
+				,0.45413
+				,0.340946
+				,-0.823117
+				,1.00325e-007
+				,0.382684
+				,-0.92388
+				,0.45413
+				,0.629986
+				,-0.629987
+				,-0.454129
+				,0.823118
+				,-0.340947
+				,1.00325e-007
+				,0.707107
+				,-0.707107
+				,-0.454129
+				,0.629987
+				,-0.629987
+				,1.04184e-007
+				,0.92388
+				,-0.382683
+				,0.45413
+				,0.823117
+				,-0.340946
+				,0.45413
+				,0.629986
+				,-0.629987
+				,1.00325e-007
+				,0.707107
+				,-0.707107
+				,1.04184e-007
+				,0.92388
+				,-0.382683
+				,1.04184e-007
+				,1
+				,0
+				,1.04184e-007
+				,0.92388
+				,-0.382683
+				,-0.454129
+				,0.823118
+				,-0.340947
+				,-0.454129
+				,0.890936
+				,0
+				,1.04184e-007
+				,1
+				,0
+				,0.45413
+				,0.823117
+				,-0.340946
+				,1.04184e-007
+				,0.92388
+				,-0.382683
+				,0.45413
+				,0.890935
+				,0
+				,-1
+				,0
+				,0
+				,-0.853101
+				,-0.467764
+				,-0.231118
+				,-0.853097
+				,-0.520609
+				,-0.0345183
+				,0.91976
+				,0.362606
+				,0.150197
+				,1
+				,0
+				,0
+				,0.854735
+				,0.519065
+				,1.4012e-007
+				,-0.454129
+				,0.823118
+				,0.340946
+				,-0.454129
+				,0.890936
+				,2.80027e-007
+				,-0.992581
+				,0.116804
+				,0.0337532
+				,-0.961402
+				,-0.268379
+				,-0.0606564
+				,0.45413
+				,0.823117
+				,0.340946
+				,0.45413
+				,0.890935
+				,2.83971e-007
+				,-0.853102
+				,-0.343712
+				,-0.392528
+				,0.854735
+				,0.367035
+				,0.367035
+				,-0.992581
+				,0.0587307
+				,0.106462
+				,-0.454129
+				,0.629987
+				,0.629987
+				,0.45413
+				,0.629986
+				,0.629987
+				,-0.853101
+				,-0.167336
+				,-0.494183
+				,0.919759
+				,0.150197
+				,0.362607
+				,-0.454128
+				,0.340946
+				,0.823118
+				,-0.961404
+				,-0.146879
+				,-0.232654
+				,0.454129
+				,0.340946
+				,0.823117
+				,-0.8531
+				,0.034517
+				,-0.520604
+				,0.854734
+				,0
+				,0.519066
+				,-0.992581
+				,-0.0337527
+				,0.116809
+				,-0.454128
+				,0
+				,0.890936
+				,0.454129
+				,0
+				,0.890936
+				,-0.853099
+				,0.231119
+				,-0.467768
+				,0.919759
+				,-0.150197
+				,0.362607
+				,-0.454128
+				,-0.340947
+				,0.823118
+				,-0.961402
+				,0.0606552
+				,-0.268377
+				,0.454129
+				,-0.340946
+				,0.823117
+				,-0.853095
+				,0.392537
+				,-0.34372
+				,0.854734
+				,-0.367035
+				,0.367035
+				,-0.992581
+				,-0.106458
+				,0.0587268
+				,-0.454128
+				,-0.629987
+				,0.629987
+				,0.45413
+				,-0.629986
+				,0.629987
+				,-0.853096
+				,0.494192
+				,-0.167335
+				,0.91976
+				,-0.362606
+				,0.150196
+				,-0.454128
+				,-0.823118
+				,0.340946
+				,-0.961398
+				,0.232674
+				,-0.146889
+				,0.45413
+				,-0.823117
+				,0.340946
+				,-0.853098
+				,0.520607
+				,0.0345189
+				,0.854735
+				,-0.519065
+				,1.37425e-007
+				,-0.992581
+				,-0.116805
+				,-0.0337485
+				,-0.454128
+				,-0.890936
+				,2.76083e-007
+				,0.45413
+				,-0.890936
+				,2.80027e-007
+				,-0.853093
+				,0.467778
+				,0.231118
+				,0.91976
+				,-0.362606
+				,-0.150196
+				,-0.454129
+				,-0.823118
+				,-0.340946
+				,-0.9614
+				,0.268387
+				,0.0606525
+				,0.45413
+				,-0.823117
+				,-0.340946
+				,-0.853096
+				,0.343719
+				,0.392535
+				,0.854735
+				,-0.367034
+				,-0.367034
+				,-0.992581
+				,-0.0587251
+				,-0.106458
+				,-0.454128
+				,-0.629987
+				,-0.629987
+				,0.45413
+				,-0.629987
+				,-0.629987
+				,-0.853099
+				,0.167338
+				,0.494187
+				,0.91976
+				,-0.150196
+				,-0.362606
+				,-0.454129
+				,-0.340947
+				,-0.823117
+				,-0.961401
+				,0.146885
+				,0.232664
+				,0.45413
+				,-0.340946
+				,-0.823117
+				,-0.8531
+				,-0.0345193
+				,0.520605
+				,0.854735
+				,0
+				,-0.519064
+				,-0.992581
+				,0.0337517
+				,-0.116805
+				,-0.454129
+				,0
+				,-0.890936
+				,0.45413
+				,0
+				,-0.890935
+				,-0.853103
+				,-0.231117
+				,0.467762
+				,0.91976
+				,0.150196
+				,-0.362606
+				,-0.454129
+				,0.340946
+				,-0.823117
+				,-0.961403
+				,-0.0606557
+				,0.268376
+				,0.45413
+				,0.340946
+				,-0.823117
+				,-0.853103
+				,-0.392528
+				,0.343712
+				,0.854735
+				,0.367034
+				,-0.367034
+				,-0.992581
+				,0.106462
+				,-0.0587312
+				,-0.454129
+				,0.629987
+				,-0.629987
+				,0.45413
+				,0.629986
+				,-0.629987
+				,-0.853099
+				,-0.494187
+				,0.167338
+				,0.91976
+				,0.362606
+				,-0.150196
+				,-0.454129
+				,0.823118
+				,-0.340946
+				,-0.961403
+				,-0.232658
+				,0.146881
+				,0.45413
+				,0.823117
+				,-0.340946
+				,-0.454129
+				,0.823118
+				,0.340946
+				,1.04184e-007
+				,1
+				,1.52417e-007
+				,-0.454129
+				,0.890936
+				,2.80027e-007
+				,1.04184e-007
+				,0.923879
+				,0.382684
+				,0.45413
+				,0.823117
+				,0.340946
+				,0.45413
+				,0.890935
+				,2.83971e-007
+				,1.04184e-007
+				,1
+				,1.52417e-007
+				,1.04184e-007
+				,0.923879
+				,0.382684
+				,1.04184e-007
+				,0.707107
+				,0.707107
+				,1.04184e-007
+				,0.923879
+				,0.382684
+				,-0.454129
+				,0.823118
+				,0.340946
+				,-0.454129
+				,0.629987
+				,0.629987
+				,1.04184e-007
+				,0.707107
+				,0.707107
+				,0.45413
+				,0.823117
+				,0.340946
+				,1.04184e-007
+				,0.923879
+				,0.382684
+				,0.45413
+				,0.629986
+				,0.629987
+				,-0.454128
+				,0.340946
+				,0.823118
+				,1.04184e-007
+				,0.707107
+				,0.707107
+				,-0.454129
+				,0.629987
+				,0.629987
+				,1.04184e-007
+				,0.382683
+				,0.92388
+				,0.454129
+				,0.340946
+				,0.823117
+				,0.45413
+				,0.629986
+				,0.629987
+				,1.04184e-007
+				,0.707107
+				,0.707107
+				,1.04184e-007
+				,0.382683
+				,0.92388
+				,1.04184e-007
+				,0
+				,1
+				,1.04184e-007
+				,0.382683
+				,0.92388
+				,-0.454128
+				,0.340946
+				,0.823118
+				,-0.454128
+				,0
+				,0.890936
+				,1.04184e-007
+				,0
+				,1
+				,0.454129
+				,0.340946
+				,0.823117
+				,1.04184e-007
+				,0.382683
+				,0.92388
+				,0.454129
+				,0
+				,0.890936
+				,-0.454128
+				,-0.340947
+				,0.823118
+				,1.04184e-007
+				,0
+				,1
+				,-0.454128
+				,0
+				,0.890936
+				,1.00325e-007
+				,-0.382684
+				,0.923879
+				,0.454129
+				,-0.340946
+				,0.823117
+				,0.454129
+				,0
+				,0.890936
+				,1.04184e-007
+				,0
+				,1
+				,1.00325e-007
+				,-0.382684
+				,0.923879
+				,1.00325e-007
+				,-0.707107
+				,0.707107
+				,1.00325e-007
+				,-0.382684
+				,0.923879
+				,-0.454128
+				,-0.340947
+				,0.823118
+				,-0.454128
+				,-0.629987
+				,0.629987
+				,1.00325e-007
+				,-0.707107
+				,0.707107
+				,0.454129
+				,-0.340946
+				,0.823117
+				,1.00325e-007
+				,-0.382684
+				,0.923879
+				,0.45413
+				,-0.629986
+				,0.629987
+				,-0.454128
+				,-0.823118
+				,0.340946
+				,1.00325e-007
+				,-0.707107
+				,0.707107
+				,-0.454128
+				,-0.629987
+				,0.629987
+				,1.04184e-007
+				,-0.923879
+				,0.382684
+				,0.45413
+				,-0.823117
+				,0.340946
+				,0.45413
+				,-0.629986
+				,0.629987
+				,1.00325e-007
+				,-0.707107
+				,0.707107
+				,1.04184e-007
+				,-0.923879
+				,0.382684
+				,1.06113e-007
+				,-1
+				,1.52417e-007
+				,1.04184e-007
+				,-0.923879
+				,0.382684
+				,-0.454128
+				,-0.823118
+				,0.340946
+				,-0.454128
+				,-0.890936
+				,2.76083e-007
+				,1.06113e-007
+				,-1
+				,1.52417e-007
+				,0.45413
+				,-0.823117
+				,0.340946
+				,1.04184e-007
+				,-0.923879
+				,0.382684
+				,0.45413
+				,-0.890936
+				,2.80027e-007
+				,-0.454129
+				,-0.823118
+				,-0.340946
+				,1.06113e-007
+				,-1
+				,1.52417e-007
+				,-0.454128
+				,-0.890936
+				,2.76083e-007
+				,1.04184e-007
+				,-0.92388
+				,-0.382683
+				,0.45413
+				,-0.823117
+				,-0.340946
+				,0.45413
+				,-0.890936
+				,2.80027e-007
+				,1.06113e-007
+				,-1
+				,1.52417e-007
+				,1.04184e-007
+				,-0.92388
+				,-0.382683
+				,1.00325e-007
+				,-0.707107
+				,-0.707107
+				,1.04184e-007
+				,-0.92388
+				,-0.382683
+				,-0.454129
+				,-0.823118
+				,-0.340946
+				,-0.454128
+				,-0.629987
+				,-0.629987
+				,1.00325e-007
+				,-0.707107
+				,-0.707107
+				,0.45413
+				,-0.823117
+				,-0.340946
+				,1.04184e-007
+				,-0.92388
+				,-0.382683
+				,0.45413
+				,-0.629987
+				,-0.629987
+				,-0.454129
+				,-0.340947
+				,-0.823117
+				,1.00325e-007
+				,-0.707107
+				,-0.707107
+				,-0.454128
+				,-0.629987
+				,-0.629987
+				,1.00325e-007
+				,-0.382684
+				,-0.92388
+				,0.45413
+				,-0.340946
+				,-0.823117
+				,0.45413
+				,-0.629987
+				,-0.629987
+				,1.00325e-007
+				,-0.707107
+				,-0.707107
+				,1.00325e-007
+				,-0.382684
+				,-0.92388
+				,1.04184e-007
+				,0
+				,-1
+				,1.00325e-007
+				,-0.382684
+				,-0.92388
+				,-0.454129
+				,-0.340947
+				,-0.823117
+				,-0.454129
+				,0
+				,-0.890936
+				,1.04184e-007
+				,0
+				,-1
+				,0.45413
+				,-0.340946
+				,-0.823117
+				,1.00325e-007
+				,-0.382684
+				,-0.92388
+				,0.45413
+				,0
+				,-0.890935
+				,-0.454129
+				,0.340946
+				,-0.823117
+				,1.04184e-007
+				,0
+				,-1
+				,-0.454129
+				,0
+				,-0.890936
+				,1.00325e-007
+				,0.382683
+				,-0.92388
+				,0.45413
+				,0.340946
+				,-0.823117
+				,0.45413
+				,0
+				,-0.890935
+				,1.04184e-007
+				,0
+				,-1
+				,1.00325e-007
+				,0.382683
+				,-0.92388
+				,1.02254e-007
+				,0.707107
+				,-0.707107
+				,1.00325e-007
+				,0.382683
+				,-0.92388
+				,-0.454129
+				,0.340946
+				,-0.823117
+				,-0.454129
+				,0.629987
+				,-0.629987
+				,1.02254e-007
+				,0.707107
+				,-0.707107
+				,0.45413
+				,0.340946
+				,-0.823117
+				,1.00325e-007
+				,0.382683
+				,-0.92388
+				,0.45413
+				,0.629986
+				,-0.629987
+				,-0.454129
+				,0.823118
+				,-0.340946
+				,1.02254e-007
+				,0.707107
+				,-0.707107
+				,-0.454129
+				,0.629987
+				,-0.629987
+				,1.04184e-007
+				,0.92388
+				,-0.382683
+				,0.45413
+				,0.823117
+				,-0.340946
+				,0.45413
+				,0.629986
+				,-0.629987
+				,1.02254e-007
+				,0.707107
+				,-0.707107
+				,1.04184e-007
+				,0.92388
+				,-0.382683
+				,1.04184e-007
+				,1
+				,1.52417e-007
+				,1.04184e-007
+				,0.92388
+				,-0.382683
+				,-0.454129
+				,0.823118
+				,-0.340946
+				,-0.454129
+				,0.890936
+				,2.80027e-007
+				,1.04184e-007
+				,1
+				,1.52417e-007
+				,0.45413
+				,0.823117
+				,-0.340946
+				,1.04184e-007
+				,0.92388
+				,-0.382683
+				,0.45413
+				,0.890935
+				,2.83971e-007
+				,0.705467
+				,0.621141
+				,-0.341322
+				,0.705467
+				,-0.677007
+				,0.209709
+				,0.705467
+				,0.621141
+				,-0.341322
+				,0.705467
+				,-0.677007
+				,0.209709
+				,-0.705467
+				,0.621141
+				,-0.341322
+				,-0.705467
+				,-0.677007
+				,0.209709
+				,-0.705467
+				,0.621141
+				,-0.341322
+				,-0.705467
+				,-0.677007
+				,0.209709
+				,-0.705467
+				,0.621141
+				,-0.341322
+				,-0.705467
+				,0.621141
+				,-0.341322
+				,0.705467
+				,0.621141
+				,-0.341322
+				,0.705467
+				,0.621141
+				,-0.341322
+				,-0.705467
+				,-0.677007
+				,0.209709
+				,-0.705467
+				,-0.677007
+				,0.209709
+				,0.705467
+				,-0.677007
+				,0.209709
+				,0.705467
+				,-0.677007
+				,0.209709
+				,0.0881405
+				,0.92773
+				,0.362697
+				,-0.0749899
+				,-0.365697
+				,0.927708
+				,0.0608426
+				,0.923563
+				,0.378589
+				,-0.0813766
+				,-0.382524
+				,0.920355
+				,0.275718
+				,0.736009
+				,0.61828
+				,0.751143
+				,-0.42708
+				,0.503375
+				,0.835658
+				,0.378604
+				,-0.397913
+				,0.795017
+				,-0.480746
+				,-0.369907
+				,0.338016
+				,0.398803
+				,-0.852468
+				,0.304401
+				,-0.885556
+				,-0.3509
+				,-0.245002
+				,0.375557
+				,-0.89383
+				,-0.320398
+				,-0.89276
+				,-0.316741
+				,-0.760775
+				,0.0737597
+				,-0.644811
+				,-0.833618
+				,-0.552225
+				,-0.0113731
+				,-0.714682
+				,0.698376
+				,0.0387337
+				,-0.308052
+				,-0.0591974
+				,0.949526
+				,0.0881405
+				,0.92773
+				,0.362697
+				,0.0608426
+				,0.923563
+				,0.378589
+				,-0.320398
+				,-0.89276
+				,-0.316741
+				,0.304401
+				,-0.885556
+				,-0.3509
+				,0.275718
+				,0.736009
+				,0.61828
+				,0.751143
+				,-0.42708
+				,0.503375
+				,0.275718
+				,0.736009
+				,0.61828
+				,0.751143
+				,-0.42708
+				,0.503375
+				,0.304401
+				,-0.885556
+				,-0.3509
+				,0.795017
+				,-0.480746
+				,-0.369907
+				,-0.714682
+				,0.698376
+				,0.0387337
+				,-0.833618
+				,-0.552225
+				,-0.0113731
+				,-0.308052
+				,-0.0591974
+				,0.949526
+				,-0.714682
+				,0.698376
+				,0.0387337
+				,-0.705467
+				,0.621141
+				,-0.341322
+				,-0.705467
+				,-0.677007
+				,0.209709
+				,-0.705467
+				,0.621141
+				,-0.341322
+				,-0.705467
+				,-0.677007
+				,0.209709
+				,0.705467
+				,0.621141
+				,-0.341322
+				,0.705467
+				,-0.677007
+				,0.209709
+				,0.705467
+				,0.621141
+				,-0.341322
+				,0.705467
+				,-0.677007
+				,0.209709
+				,-0.705467
+				,0.621141
+				,-0.341322
+				,0.705467
+				,0.621141
+				,-0.341322
+				,0.705467
+				,0.621141
+				,-0.341322
+				,-0.705467
+				,0.621141
+				,-0.341322
+				,-0.705467
+				,-0.677007
+				,0.209709
+				,0.705467
+				,-0.677007
+				,0.209709
+				,0.705467
+				,-0.677007
+				,0.209709
+				,-0.705467
+				,-0.677007
+				,0.209709
+				,-0.0608426
+				,0.923563
+				,0.378589
+				,0.0749899
+				,-0.365697
+				,0.927708
+				,-0.0881405
+				,0.92773
+				,0.362697
+				,0.0813766
+				,-0.382524
+				,0.920355
+				,-0.835658
+				,0.378604
+				,-0.397913
+				,-0.751143
+				,-0.42708
+				,0.503375
+				,-0.275718
+				,0.736009
+				,0.61828
+				,-0.795017
+				,-0.480746
+				,-0.369907
+				,0.245002
+				,0.375557
+				,-0.89383
+				,-0.304401
+				,-0.885556
+				,-0.3509
+				,-0.338016
+				,0.398803
+				,-0.852468
+				,0.320398
+				,-0.89276
+				,-0.316741
+				,0.714682
+				,0.698376
+				,0.0387337
+				,0.833618
+				,-0.552225
+				,-0.0113731
+				,0.760775
+				,0.0737597
+				,-0.644811
+				,0.308052
+				,-0.0591974
+				,0.949526
+				,-0.0881405
+				,0.92773
+				,0.362697
+				,-0.0608426
+				,0.923563
+				,0.378589
+				,0.320398
+				,-0.89276
+				,-0.316741
+				,-0.304401
+				,-0.885556
+				,-0.3509
+				,-0.275718
+				,0.736009
+				,0.61828
+				,-0.751143
+				,-0.42708
+				,0.503375
+				,-0.835658
+				,0.378604
+				,-0.397913
+				,-0.275718
+				,0.736009
+				,0.61828
+				,-0.304401
+				,-0.885556
+				,-0.3509
+				,-0.795017
+				,-0.480746
+				,-0.369907
+				,-0.835658
+				,0.378604
+				,-0.397913
+				,0.760775
+				,0.0737597
+				,-0.644811
+				,0.833618
+				,-0.552225
+				,-0.0113731
+				,0.714682
+				,0.698376
+				,0.0387337
+				,0.760775
+				,0.0737597
+				,-0.644811
+				,0.714682
+				,0.698376
+				,0.0387337
+				,-0.250232
+				,0.865327
+				,0.434273
+				,0.427292
+				,-0.251098
+				,0.868546
+				,0.301697
+				,0.609799
+				,0.732887
+				,0.948845
+				,-0.116359
+				,0.293518
+				,0.301697
+				,0.609799
+				,0.732887
+				,0.948845
+				,-0.116359
+				,0.293518
+				,0.342716
+				,0.892408
+				,-0.293518
+				,0.680059
+				,-0.0198999
+				,-0.732887
+				,0.342716
+				,0.892408
+				,-0.293518
+				,0.680059
+				,-0.0198999
+				,-0.732887
+				,-0.0211057
+				,0.495159
+				,-0.868546
+				,0.680059
+				,-0.0198999
+				,-0.732887
+				,0.646562
+				,-0.627187
+				,-0.434273
+				,-0.0211057
+				,0.495159
+				,-0.868546
+				,-0.250232
+				,0.865327
+				,0.434273
+				,0.342716
+				,0.892408
+				,-0.293518
+				,0.301697
+				,0.609799
+				,0.732887
+				,0.427292
+				,-0.251098
+				,0.868546
+				,0.646562
+				,-0.627187
+				,-0.434273
+				,0.948845
+				,-0.116359
+				,0.293518
+				,0.680059
+				,-0.0198999
+				,-0.732887
+				,0.83205
+				,-0.0674189
+				,-0.550588
+				,0.332707
+				,0.328669
+				,-0.883902
+				,0.613951
+				,0.775041
+				,-0.149586
+				,0.852201
+				,0.389021
+				,-0.349881
+				,0.894428
+				,0.0420688
+				,0.445229
+				,0.384857
+				,0.908558
+				,-0.162503
+				,0.622248
+				,0.360366
+				,0.694941
+				,-0.948683
+				,-0.0384348
+				,-0.313883
+				,-0.332709
+				,0.103678
+				,-0.937313
+				,0.332707
+				,0.328669
+				,-0.883902
+				,-0.613952
+				,0.642939
+				,-0.457921
+				,0.613951
+				,0.775041
+				,-0.149586
+				,0.613951
+				,0.775041
+				,-0.149586
+				,-0.613952
+				,0.642939
+				,-0.457921
+				,-0.852202
+				,0.5093
+				,-0.119851
+				,0.852201
+				,0.389021
+				,-0.349881
+				,0.852201
+				,0.389021
+				,-0.349881
+				,-0.852202
+				,0.5093
+				,-0.119851
+				,-0.384867
+				,0.697004
+				,-0.605031
+				,0.384857
+				,0.908558
+				,-0.162503
+				,0.384857
+				,0.908558
+				,-0.162503
+				,-0.384867
+				,0.697004
+				,-0.605031
+				,-0.622243
+				,0.632934
+				,0.46066
+				,0.622248
+				,0.360366
+				,0.694941
+				,0.622248
+				,0.360366
+				,0.694941
+				,-0.622243
+				,0.632934
+				,0.46066
+				,-0.707103
+				,0.0665173
+				,0.703975
+				,0.894428
+				,0.0420688
+				,0.445229
+				,-0.613952
+				,0.642939
+				,-0.457921
+				,-0.852202
+				,0.5093
+				,-0.119851
+				,-0.707103
+				,0.0665173
+				,0.703975
+				,-0.622243
+				,0.632934
+				,0.46066
+				,-0.384867
+				,0.697004
+				,-0.605031
+				,1
+				,-3.65927e-012
+				,-4.68014e-006
+				,0.990029
+				,0.114111
+				,0.0825961
+				,0.500005
+				,-2.72063e-006
+				,0.866023
+				,0.393293
+				,0.0538443
+				,0.917835
+				,-0.561848
+				,-0.0816065
+				,0.823205
+				,-0.5
+				,-3.40079e-006
+				,0.866025
+				,-1
+				,-4.53444e-007
+				,-1.00141e-005
+				,-0.978292
+				,-0.172001
+				,-0.115585
+				,-1
+				,-4.53444e-007
+				,-1.00141e-005
+				,-0.978292
+				,-0.172001
+				,-0.115585
+				,-0.424177
+				,-0.0404165
+				,-0.904677
+				,-0.499996
+				,6.80157e-007
+				,-0.866028
+				,0.499996
+				,4.53437e-007
+				,-0.866028
+				,0.586015
+				,0.106145
+				,-0.803318
+				,0.990029
+				,0.114111
+				,0.0825961
+				,1
+				,-3.65927e-012
+				,-4.68014e-006
+				,0.463939
+				,0.188369
+				,0.865609
+				,0.903291
+				,0.429029
+				,-0.000603461
+				,-0.434929
+				,-0.249205
+				,0.865294
+				,-0.894154
+				,-0.447759
+				,-0.000785258
+				,-0.461353
+				,-0.196404
+				,-0.865205
+				,-0.894154
+				,-0.447759
+				,-0.000785258
+				,0.438772
+				,0.242051
+				,-0.865385
+				,0.903291
+				,0.429029
+				,-0.000603461
+				,0.3529
+				,0.350362
+				,0.867588
+				,0.647045
+				,0.76245
+				,0.00172565
+				,-0.290974
+				,-0.402397
+				,0.867993
+				,-0.646707
+				,-0.762736
+				,-0.00199037
+				,-0.350494
+				,-0.353902
+				,-0.867126
+				,-0.646707
+				,-0.762736
+				,-0.00199037
+				,0.287348
+				,0.404025
+				,-0.868444
+				,0.647045
+				,0.76245
+				,0.00172565
+				,0.164122
+				,0.470607
+				,0.866944
+				,0.271647
+				,0.962396
+				,0.0013418
+				,-0.108193
+				,-0.485199
+				,0.867684
+				,-0.280939
+				,-0.959725
+				,-0.000776519
+				,-0.169415
+				,-0.46838
+				,-0.867132
+				,-0.280939
+				,-0.959725
+				,-0.000776519
+				,0.106464
+				,0.485827
+				,-0.867547
+				,0.271647
+				,0.962396
+				,0.0013418
+				,0.0319424
+				,0.499232
+				,0.865879
+				,0.0478939
+				,0.998852
+				,0.000297822
+				,-0.015974
+				,-0.499594
+				,0.866113
+				,-0.0479518
+				,-0.99885
+				,-0.000332738
+				,-0.031964
+				,-0.499119
+				,-0.865944
+				,-0.0479518
+				,-0.99885
+				,-0.000332738
+				,0.0159745
+				,0.499742
+				,-0.866027
+				,0.0478939
+				,0.998852
+				,0.000297822
+				,2.96649e-006
+				,0.654772
+				,0.755826
+				,0.0319424
+				,0.499232
+				,0.865879
+				,0.0478939
+				,0.998852
+				,0.000297822
+				,3.71177e-006
+				,0.981996
+				,-0.1889
+				,-1.08423e-007
+				,-0.327279
+				,0.944928
+				,-0.015974
+				,-0.499594
+				,0.866113
+				,4.86842e-006
+				,-0.981972
+				,0.189029
+				,-0.0479518
+				,-0.99885
+				,-0.000332738
+				,1.28932e-006
+				,-0.654576
+				,-0.755996
+				,-0.031964
+				,-0.499119
+				,-0.865944
+				,-0.0479518
+				,-0.99885
+				,-0.000332738
+				,4.86842e-006
+				,-0.981972
+				,0.189029
+				,2.40735e-006
+				,0.327407
+				,-0.944883
+				,0.0159745
+				,0.499742
+				,-0.866027
+				,3.71177e-006
+				,0.981996
+				,-0.1889
+				,0.0478939
+				,0.998852
+				,0.000297822
+				,1
+				,-2.7014e-006
+				,-1.12917e-008
+				,1
+				,8.51718e-007
+				,1.69443e-007
+				,0.499999
+				,-0.866019
+				,-0.00360998
+				,0.499998
+				,-0.866019
+				,-0.00360996
+				,0.499999
+				,-0.866019
+				,-0.00360998
+				,0.499998
+				,-0.866019
+				,-0.00360996
+				,-0.499998
+				,-0.866019
+				,-0.00360999
+				,-0.499999
+				,-0.866019
+				,-0.00360996
+				,-0.499999
+				,-0.866019
+				,-0.00360996
+				,-0.499998
+				,-0.866019
+				,-0.00360999
+				,-1
+				,8.51718e-007
+				,1.69443e-007
+				,-1
+				,4.40486e-006
+				,1.84163e-008
+				,-1
+				,8.51718e-007
+				,1.69443e-007
+				,-1
+				,4.40486e-006
+				,1.84163e-008
+				,-0.499997
+				,0.866019
+				,0.00361082
+				,-0.500001
+				,0.866017
+				,0.00361095
+				,-0.500001
+				,0.866017
+				,0.00361095
+				,-0.499997
+				,0.866019
+				,0.00361082
+				,0.499998
+				,0.866019
+				,0.00361082
+				,0.499994
+				,0.866021
+				,0.00361096
+				,0.499998
+				,0.866019
+				,0.00361082
+				,0.499994
+				,0.866021
+				,0.00361096
+				,1
+				,8.51718e-007
+				,1.69443e-007
+				,1
+				,-2.7014e-006
+				,-1.12917e-008
+				,-0.367955
+				,-0.0761971
+				,0.926716
+				,0
+				,3.23333e-008
+				,1
+				,-0.265348
+				,0.650654
+				,0.711505
+				,0
+				,0.711033
+				,0.703159
+				,0
+				,1
+				,2.57476e-007
+				,-0.370305
+				,0.926542
+				,0.0662921
+				,-0.265741
+				,0.722166
+				,-0.638638
+				,0
+				,0.711033
+				,-0.703159
+				,0
+				,3.23333e-008
+				,-1
+				,-0.367954
+				,0.0761933
+				,-0.926717
+				,-0.265347
+				,-0.650652
+				,-0.711507
+				,0
+				,-0.711033
+				,-0.703159
+				,-0.265347
+				,-0.650652
+				,-0.711507
+				,0
+				,-0.711033
+				,-0.703159
+				,0
+				,-1
+				,2.57476e-007
+				,-0.370305
+				,-0.926542
+				,-0.0662905
+				,-0.265743
+				,-0.722165
+				,0.638638
+				,0
+				,-0.711033
+				,0.703159
+				,-0.31145
+				,-0.0163108
+				,0.950123
+				,-0.311386
+				,0.679248
+				,0.664575
+				,-0.30856
+				,0.951172
+				,0.00786251
+				,-0.308173
+				,0.69627
+				,-0.648257
+				,-0.311446
+				,0.0162989
+				,-0.950124
+				,-0.311387
+				,-0.679237
+				,-0.664587
+				,-0.311387
+				,-0.679237
+				,-0.664587
+				,-0.308561
+				,-0.951172
+				,-0.00785359
+				,-0.308173
+				,-0.69627
+				,0.648257
+				,1.39743e-006
+				,0.147265
+				,0.989097
+				,-3.94317e-007
+				,0.812825
+				,0.582508
+				,7.23949e-007
+				,0.991903
+				,-0.127
+				,7.29602e-007
+				,0.624982
+				,-0.780639
+				,8.25512e-007
+				,-0.147255
+				,-0.989099
+				,8.11694e-007
+				,-0.81282
+				,-0.582515
+				,8.11694e-007
+				,-0.81282
+				,-0.582515
+				,-0.311387
+				,-0.679237
+				,-0.664587
+				,-0.308561
+				,-0.951172
+				,-0.00785359
+				,8.11694e-007
+				,-0.81282
+				,-0.582515
+				,2.83281e-007
+				,-0.9919
+				,0.127018
+				,2.04867e-009
+				,-0.625
+				,0.780625
+				,0
+				,-0.894427
+				,0.447214
+				,0
+				,-0.707107
+				,-0.707107
+				,0.180226
+				,-0.654801
+				,-0.733998
+				,0.489821
+				,-0.583377
+				,0.647879
+				,0.579372
+				,-0.509948
+				,-0.635831
+				,0.694157
+				,-0.651324
+				,-0.306469
+				,0
+				,-0.894427
+				,0.447214
+				,0.360448
+				,-0.575609
+				,0.733997
+				,0
+				,0
+				,1
+				,0.489821
+				,-0.583377
+				,0.647879
+				,0.523076
+				,0.0358553
+				,0.851532
+				,0.901897
+				,-0.314565
+				,0.296025
+				,0.644853
+				,0.562006
+				,0.51799
+				,0.640768
+				,-0.299025
+				,0.707107
+				,0.360448
+				,-0.575609
+				,0.733997
+				,0.901897
+				,-0.314565
+				,0.296025
+				,0.82423
+				,0.274109
+				,-0.495489
+				,0.644853
+				,0.562006
+				,0.51799
+				,0.381047
+				,0.34121
+				,-0.85929
+				,0.523076
+				,0.0358553
+				,0.851532
+				,0.523076
+				,0.0358553
+				,0.851532
+				,0.381047
+				,0.34121
+				,-0.85929
+				,0.810515
+				,-0.37824
+				,-0.447214
+				,0.640768
+				,-0.299025
+				,0.707107
+				,0
+				,0
+				,-1
+				,0.381047
+				,0.34121
+				,-0.85929
+				,0.579372
+				,-0.509948
+				,-0.635831
+				,0.694157
+				,-0.651324
+				,-0.306469
+				,0.810515
+				,-0.37824
+				,-0.447214
+				,-0.863225
+				,-0.282098
+				,0.418644
+				,0
+				,-0.559231
+				,0.829012
+				,-0.444609
+				,0.212317
+				,0.870198
+				,0.560481
+				,0.623089
+				,0.545547
+				,0.647743
+				,-0.426056
+				,0.631589
+				,0.358352
+				,-0.865449
+				,0.350116
+				,-0.261906
+				,-0.816291
+				,0.514854
+				,-1
+				,-2.06477e-007
+				,4.43098e-008
+				,-0.863225
+				,-0.282098
+				,0.418644
+				,-0.493676
+				,0.869638
+				,0.00363091
+				,-0.444609
+				,0.212317
+				,0.870198
+				,0.560481
+				,0.623089
+				,0.545547
+				,0.499997
+				,0.866015
+				,0.00445858
+				,0.999998
+				,-4.16758e-007
+				,0.00182103
+				,0.647743
+				,-0.426056
+				,0.631589
+				,0.999998
+				,-4.16758e-007
+				,0.00182103
+				,0.647743
+				,-0.426056
+				,0.631589
+				,0.358352
+				,-0.865449
+				,0.350116
+				,0.499995
+				,-0.866005
+				,0.00636769
+				,-0.492845
+				,-0.8701
+				,0.00544761
+				,-0.261906
+				,-0.816291
+				,0.514854
+				,-0.863225
+				,-0.282098
+				,0.418644
+				,-1
+				,-2.06477e-007
+				,4.43098e-008
+				,0.668683
+				,0.664714
+				,-0.333194
+				,0.407409
+				,-0.412306
+				,-0.814875
+				,-0.409508
+				,0.404646
+				,-0.817658
+				,-0.665139
+				,-0.669138
+				,-0.331428
+				,0.707103
+				,0.707107
+				,0.00245314
+				,0.704983
+				,-0.709223
+				,0.00122293
+				,0.668683
+				,0.664714
+				,-0.333194
+				,0.407409
+				,-0.412306
+				,-0.814875
+				,-0.409508
+				,0.404646
+				,-0.817658
+				,-0.665139
+				,-0.669138
+				,-0.331428
+				,-0.709208
+				,0.704998
+				,0.00123014
+				,-0.707107
+				,-0.707107
+				,0
+				,-0.409508
+				,0.404646
+				,-0.817658
+				,-0.709208
+				,0.704998
+				,0.00123014
+				,0.668683
+				,0.664714
+				,-0.333194
+				,0.707103
+				,0.707107
+				,0.00245314
+				,-0.707107
+				,-0.707107
+				,0
+				,-0.665139
+				,-0.669138
+				,-0.331428
+				,0.704983
+				,-0.709223
+				,0.00122293
+				,0.407409
+				,-0.412306
+				,-0.814875
+				,0.109932
+				,0.301712
+				,0.94704
+				,0
+				,0.486826
+				,0.873499
+				,0
+				,-0.43107
+				,0.902319
+				,0.166187
+				,-0.547738
+				,0.819979
+				,0.118106
+				,0.159625
+				,0.980087
+				,0.0801055
+				,-0.70182
+				,0.707836
+				,0.556955
+				,-0.830543
+				,0
+				,2.82445e-006
+				,-1
+				,0
+				,2.82445e-006
+				,-1
+				,0
+				,0.556955
+				,-0.830543
+				,0
+				,0.556955
+				,-0.830543
+				,0
+				,2.82445e-006
+				,-1
+				,0
+				,0.538401
+				,-0.806279
+				,0.245027
+				,9.98093e-007
+				,-0.887667
+				,0.460485
+				,2.82445e-006
+				,-1
+				,0
+				,0.556955
+				,-0.830543
+				,0
+				,2.82445e-006
+				,-1
+				,0
+				,0.556955
+				,-0.830543
+				,0
+				,2.82445e-006
+				,-1
+				,0
+				,0.548639
+				,-0.832661
+				,-0.0752992
+				,3.18895e-006
+				,-0.993887
+				,0.1104
+				,0.490043
+				,-0.858577
+				,0.150676
+				,0.0239762
+				,-0.999311
+				,0.0283283
+				,0.559846
+				,-0.817331
+				,-0.136172
+				,0.487773
+				,-0.780902
+				,0.390218
+				,-9.99114e-007
+				,-0.940053
+				,0.341028
+				,0.395642
+				,-0.862791
+				,0.314736
+				,0.0239079
+				,-0.911301
+				,0.411046
+				,0.166187
+				,-0.547738
+				,0.819979
+				,0
+				,-0.43107
+				,0.902319
+				,0.387691
+				,-0.598574
+				,-0.701003
+				,0.0970761
+				,-0.617147
+				,-0.780836
+				,0.0655848
+				,0.00329327
+				,-0.997842
+				,0.156688
+				,0.310153
+				,-0.937685
+				,0.559846
+				,-0.817331
+				,-0.136172
+				,0.0239762
+				,-0.999311
+				,0.0283283
+				,0.823668
+				,-0.557629
+				,-0.103061
+				,1
+				,0
+				,0
+				,0.70498
+				,-0.704742
+				,-0.0796332
+				,0.655536
+				,-0.755033
+				,-0.0140547
+				,0.754386
+				,-0.655728
+				,0.0303789
+				,1
+				,0
+				,0
+				,0.898276
+				,-0.434238
+				,-0.0673592
+				,0.890327
+				,0.454797
+				,0.0218428
+				,0.889904
+				,0.432015
+				,-0.146402
+				,0.84312
+				,0.512713
+				,0.162091
+				,0.860165
+				,-0.509928
+				,-0.00944199
+				,0.853562
+				,0.520987
+				,0.00222179
+				,0.798864
+				,-0.569515
+				,0.193569
+				,0.894332
+				,0.398965
+				,-0.202476
+				,0.928533
+				,0.101743
+				,-0.357036
+				,0.950698
+				,0.30853
+				,-0.0313385
+				,0.801653
+				,-0.586522
+				,0.115516
+				,0.956751
+				,0.290742
+				,-0.00983039
+				,0.637809
+				,-0.768826
+				,0.0458956
+				,0.974108
+				,0.226078
+				,0.00164488
+				,0.311924
+				,-0.894668
+				,0.3198
+				,0.641606
+				,0.0593124
+				,0.764738
+				,0.306116
+				,-0.910737
+				,0.277221
+				,0.70498
+				,-0.704742
+				,-0.0796332
+				,0.644331
+				,-0.764702
+				,-0.00822072
+				,0.676081
+				,-0.735039
+				,-0.0512933
+				,0.823668
+				,-0.557629
+				,-0.103061
+				,0.655536
+				,-0.755033
+				,-0.0140547
+				,0.615222
+				,-0.788351
+				,-0.00213144
+				,0.754386
+				,-0.655728
+				,0.0303789
+				,0.583526
+				,-0.799513
+				,0.142397
+				,0.708729
+				,-0.704254
+				,-0.0415815
+				,0.898276
+				,-0.434238
+				,-0.0673592
+				,0.890327
+				,0.454797
+				,0.0218428
+				,-0.127287
+				,0.971722
+				,0.198882
+				,-0.00964467
+				,0.911341
+				,-0.411539
+				,0.889904
+				,0.432015
+				,-0.146402
+				,0.84312
+				,0.512713
+				,0.162091
+				,0.287558
+				,0.877073
+				,0.384777
+				,0.750597
+				,-0.660036
+				,-0.0309251
+				,0.860165
+				,-0.509928
+				,-0.00944199
+				,0.853562
+				,0.520987
+				,0.00222179
+				,0.317809
+				,0.947654
+				,-0.0308062
+				,0.694281
+				,-0.718346
+				,-0.044189
+				,0.798864
+				,-0.569515
+				,0.193569
+				,0.285563
+				,0.930791
+				,-0.228215
+				,0.894332
+				,0.398965
+				,-0.202476
+				,0.310532
+				,0.718717
+				,-0.622106
+				,0.493777
+				,-0.819859
+				,0.289854
+				,0.306116
+				,-0.910737
+				,0.277221
+				,0.928533
+				,0.101743
+				,-0.357036
+				,0.661634
+				,-0.628407
+				,-0.409079
+				,0.49545
+				,-0.0410637
+				,-0.867665
+				,0.348098
+				,-0.909
+				,0.22923
+				,0.661634
+				,-0.628407
+				,-0.409079
+				,0.369968
+				,0.867193
+				,-0.333317
+				,0.950698
+				,0.30853
+				,-0.0313385
+				,0.801653
+				,-0.586522
+				,0.115516
+				,0.449438
+				,-0.863991
+				,0.226992
+				,0.54844
+				,0.833839
+				,-0.0626621
+				,0.956751
+				,0.290742
+				,-0.00983039
+				,0.637809
+				,-0.768826
+				,0.0458956
+				,0.330452
+				,-0.928942
+				,0.166939
+				,0.573954
+				,0.756132
+				,0.31439
+				,0.974108
+				,0.226078
+				,0.00164488
+				,0.311924
+				,-0.894668
+				,0.3198
+				,0.0801055
+				,-0.70182
+				,0.707836
+				,0.641606
+				,0.0593124
+				,0.764738
+				,0.118106
+				,0.159625
+				,0.980087
+				,0.641606
+				,0.0593124
+				,0.764738
+				,0.641606
+				,0.0593124
+				,0.764738
+				,0.118106
+				,0.159625
+				,0.980087
+				,0.928533
+				,0.101743
+				,-0.357036
+				,0.306116
+				,-0.910737
+				,0.277221
+				,0.644331
+				,-0.764702
+				,-0.00822072
+				,0.556955
+				,-0.830543
+				,0
+				,0.556955
+				,-0.830543
+				,0
+				,0.676081
+				,-0.735039
+				,-0.0512933
+				,0.615222
+				,-0.788351
+				,-0.00213144
+				,0.556955
+				,-0.830543
+				,0
+				,0.583526
+				,-0.799513
+				,0.142397
+				,0.538401
+				,-0.806279
+				,0.245027
+				,0.556955
+				,-0.830543
+				,0
+				,0.708729
+				,-0.704254
+				,-0.0415815
+				,0.556955
+				,-0.830543
+				,0
+				,0.750597
+				,-0.660036
+				,-0.0309251
+				,0.548639
+				,-0.832661
+				,-0.0752992
+				,0.694281
+				,-0.718346
+				,-0.044189
+				,0.490043
+				,-0.858577
+				,0.150676
+				,0.493777
+				,-0.819859
+				,0.289854
+				,0.49545
+				,-0.0410637
+				,-0.867665
+				,0.387691
+				,-0.598574
+				,-0.701003
+				,0.156688
+				,0.310153
+				,-0.937685
+				,0.559846
+				,-0.817331
+				,-0.136172
+				,0.348098
+				,-0.909
+				,0.22923
+				,0.559846
+				,-0.817331
+				,-0.136172
+				,0.387691
+				,-0.598574
+				,-0.701003
+				,0.49545
+				,-0.0410637
+				,-0.867665
+				,0.449438
+				,-0.863991
+				,0.226992
+				,0.487773
+				,-0.780902
+				,0.390218
+				,0.330452
+				,-0.928942
+				,0.166939
+				,0.395642
+				,-0.862791
+				,0.314736
+				,0.0801055
+				,-0.70182
+				,0.707836
+				,0.166187
+				,-0.547738
+				,0.819979
+				,0.0978323
+				,0.800769
+				,-0.59093
+				,0.054913
+				,0.881302
+				,-0.469352
+				,0
+				,0.52529
+				,-0.850923
+				,0
+				,0.716196
+				,-0.697899
+				,0.104375
+				,0.993297
+				,0.0496695
+				,0
+				,0.922099
+				,0.386953
+				,-0.00199464
+				,0.944738
+				,0.32782
+				,0.0874581
+				,0.852353
+				,0.515602
+				,0.0978323
+				,0.800769
+				,-0.59093
+				,0
+				,0.716196
+				,-0.697899
+				,0
+				,0.981962
+				,0.189077
+				,0.156012
+				,0.986301
+				,-0.0535787
+				,0.0343635
+				,0.784606
+				,-0.619042
+				,0.102521
+				,0.742202
+				,-0.662288
+				,0
+				,0.52529
+				,-0.850923
+				,0.054913
+				,0.881302
+				,-0.469352
+				,0.156688
+				,0.310153
+				,-0.937685
+				,0.0655848
+				,0.00329327
+				,-0.997842
+				,0.317809
+				,0.947654
+				,-0.0308062
+				,0.287558
+				,0.877073
+				,0.384777
+				,0.285563
+				,0.930791
+				,-0.228215
+				,0.310532
+				,0.718717
+				,-0.622106
+				,0.49545
+				,-0.0410637
+				,-0.867665
+				,0.49545
+				,-0.0410637
+				,-0.867665
+				,0
+				,0.716196
+				,-0.697899
+				,0
+				,0.52529
+				,-0.850923
+				,0
+				,0.922099
+				,0.386953
+				,0
+				,0.981962
+				,0.189077
+				,-0.26382
+				,0.858482
+				,0.439781
+				,-2.53373e-006
+				,0.733988
+				,0.679163
+				,6.13543e-007
+				,0.959276
+				,-0.282471
+				,-0.359397
+				,0.820605
+				,-0.444343
+				,0.0874581
+				,0.852353
+				,0.515602
+				,-0.00199464
+				,0.944738
+				,0.32782
+				,1.61698e-006
+				,0.774727
+				,-0.632296
+				,-0.109825
+				,0.866377
+				,-0.487164
+				,-0.127287
+				,0.971722
+				,0.198882
+				,-0.00964467
+				,0.911341
+				,-0.411539
+				,0.287558
+				,0.877073
+				,0.384777
+				,0.287558
+				,0.877073
+				,0.384777
+				,0.369968
+				,0.867193
+				,-0.333317
+				,-0.109825
+				,0.866377
+				,-0.487164
+				,1.61698e-006
+				,0.774727
+				,-0.632296
+				,1.32905e-006
+				,0.98963
+				,-0.143642
+				,0.0429343
+				,0.991846
+				,-0.119989
+				,0
+				,0.98803
+				,0.15426
+				,0.135145
+				,0.929792
+				,0.342377
+				,0
+				,0.486826
+				,0.873499
+				,0.109932
+				,0.301712
+				,0.94704
+				,0.369968
+				,0.867193
+				,-0.333317
+				,0.54844
+				,0.833839
+				,-0.0626621
+				,0.573954
+				,0.756132
+				,0.31439
+				,0.118106
+				,0.159625
+				,0.980087
+				,-0.250232
+				,0.865327
+				,0.434273
+				,0.427292
+				,-0.251098
+				,0.868546
+				,0.301697
+				,0.609799
+				,0.732887
+				,0.948845
+				,-0.116359
+				,0.293518
+				,0.301697
+				,0.609799
+				,0.732887
+				,0.948845
+				,-0.116359
+				,0.293518
+				,0.342716
+				,0.892408
+				,-0.293518
+				,0.680059
+				,-0.0198999
+				,-0.732887
+				,0.342716
+				,0.892408
+				,-0.293518
+				,0.680059
+				,-0.0198999
+				,-0.732887
+				,-0.0211057
+				,0.495159
+				,-0.868546
+				,0.680059
+				,-0.0198999
+				,-0.732887
+				,0.646562
+				,-0.627187
+				,-0.434273
+				,-0.0211057
+				,0.495159
+				,-0.868546
+				,-0.250232
+				,0.865327
+				,0.434273
+				,0.342716
+				,0.892408
+				,-0.293518
+				,0.301697
+				,0.609799
+				,0.732887
+				,0.427292
+				,-0.251098
+				,0.868546
+				,0.646562
+				,-0.627187
+				,-0.434273
+				,0.948845
+				,-0.116359
+				,0.293518
+				,0.680059
+				,-0.0198999
+				,-0.732887
+				,1
+				,2.93206e-006
+				,-5.72892e-006
+				,0.991424
+				,0.052789
+				,0.119546
+				,0.513955
+				,-0.390961
+				,0.763544
+				,0.402737
+				,-0.373096
+				,0.835824
+				,-0.581696
+				,-0.436238
+				,0.686532
+				,-0.513952
+				,-0.390962
+				,0.763546
+				,-1
+				,4.22909e-006
+				,-8.86377e-006
+				,-0.981365
+				,-0.0834974
+				,-0.173066
+				,-1
+				,4.22909e-006
+				,-8.86377e-006
+				,-0.981365
+				,-0.0834974
+				,-0.173066
+				,-0.434868
+				,0.377403
+				,-0.817592
+				,-0.513946
+				,0.390962
+				,-0.76355
+				,0.513946
+				,0.390961
+				,-0.76355
+				,0.607667
+				,0.4464
+				,-0.656862
+				,0.991424
+				,0.052789
+				,0.119546
+				,1
+				,2.93206e-006
+				,-5.72892e-006
+				,0.474569
+				,-0.240957
+				,0.846596
+				,0.920933
+				,0.336333
+				,0.196882
+				,-0.463712
+				,-0.599929
+				,0.651963
+				,-0.913194
+				,-0.351033
+				,-0.20701
+				,-0.47197
+				,0.234426
+				,-0.849876
+				,-0.913194
+				,-0.351033
+				,-0.20701
+				,0.467111
+				,0.593592
+				,-0.655329
+				,0.920933
+				,0.336333
+				,0.196882
+				,0.363966
+				,-0.110945
+				,0.924781
+				,0.687988
+				,0.625185
+				,0.368533
+				,-0.32233
+				,-0.746837
+				,0.581668
+				,-0.68821
+				,-0.624966
+				,-0.368491
+				,-0.36174
+				,0.107949
+				,-0.926008
+				,-0.68821
+				,-0.624966
+				,-0.368491
+				,0.318233
+				,0.748947
+				,-0.58121
+				,0.687988
+				,0.625185
+				,0.368533
+				,0.17256
+				,-0.00979386
+				,0.98495
+				,0.303062
+				,0.823829
+				,0.479019
+				,-0.123456
+				,-0.832746
+				,0.539716
+				,-0.313037
+				,-0.821266
+				,-0.477001
+				,-0.177998
+				,0.0118203
+				,-0.98396
+				,-0.313037
+				,-0.821266
+				,-0.477001
+				,0.121571
+				,0.833336
+				,-0.539232
+				,0.303062
+				,0.823829
+				,0.479019
+				,0.0338981
+				,0.0160758
+				,0.999296
+				,0.0544514
+				,0.864997
+				,0.498813
+				,-0.0184916
+				,-0.847772
+				,0.530039
+				,-0.0545173
+				,-0.864984
+				,-0.49883
+				,-0.0339196
+				,-0.0159525
+				,-0.999297
+				,-0.0545173
+				,-0.864984
+				,-0.49883
+				,0.0184925
+				,0.84787
+				,-0.529882
+				,0.0544514
+				,0.864997
+				,0.498813
+				,3.21513e-006
+				,0.191634
+				,0.981467
+				,0.0338981
+				,0.0160758
+				,0.999296
+				,0.0544514
+				,0.864997
+				,0.498813
+				,4.90741e-006
+				,0.947702
+				,0.319155
+				,-3.31268e-007
+				,-0.728126
+				,0.685443
+				,-0.0184916
+				,-0.847772
+				,0.530039
+				,5.65996e-006
+				,-0.947753
+				,-0.319005
+				,-0.0545173
+				,-0.864984
+				,-0.49883
+				,1.41282e-006
+				,-0.19139
+				,-0.981514
+				,-0.0339196
+				,-0.0159525
+				,-0.999297
+				,-0.0545173
+				,-0.864984
+				,-0.49883
+				,5.65996e-006
+				,-0.947753
+				,-0.319005
+				,3.29686e-006
+				,0.728227
+				,-0.685337
+				,0.0184925
+				,0.84787
+				,-0.529882
+				,4.90741e-006
+				,0.947702
+				,0.319155
+				,0.0544514
+				,0.864997
+				,0.498813
+				,-0.863225
+				,-0.282098
+				,0.418644
+				,0
+				,-0.559231
+				,0.829012
+				,-0.444609
+				,0.212317
+				,0.870198
+				,0.560481
+				,0.623089
+				,0.545547
+				,0.647743
+				,-0.426056
+				,0.631589
+				,0.358352
+				,-0.865449
+				,0.350116
+				,-0.261906
+				,-0.816291
+				,0.514854
+				,-1
+				,-2.06477e-007
+				,1.51228e-010
+				,-0.863225
+				,-0.282098
+				,0.418644
+				,-0.493676
+				,0.869638
+				,0.0036309
+				,-0.444609
+				,0.212317
+				,0.870198
+				,0.560481
+				,0.623089
+				,0.545547
+				,0.499997
+				,0.866015
+				,0.00445858
+				,0.999998
+				,-3.99393e-007
+				,0.00182101
+				,0.647743
+				,-0.426056
+				,0.631589
+				,0.999998
+				,-3.99393e-007
+				,0.00182101
+				,0.647743
+				,-0.426056
+				,0.631589
+				,0.358352
+				,-0.865449
+				,0.350116
+				,0.499995
+				,-0.866005
+				,0.00636769
+				,-0.492845
+				,-0.8701
+				,0.0054476
+				,-0.261906
+				,-0.816291
+				,0.514854
+				,-0.863225
+				,-0.282098
+				,0.418644
+				,-1
+				,-2.06477e-007
+				,1.51228e-010
+				,0
+				,-0.894427
+				,0.447214
+				,0
+				,-0.797167
+				,-0.603758
+				,0.303473
+				,-0.691578
+				,-0.655457
+				,0.503047
+				,-0.581253
+				,0.639601
+				,0.591326
+				,-0.507329
+				,-0.626858
+				,0.701164
+				,-0.647351
+				,-0.298842
+				,0
+				,-0.894427
+				,0.447214
+				,0.360448
+				,-0.575609
+				,0.733997
+				,0
+				,0
+				,1
+				,0.503047
+				,-0.581253
+				,0.639601
+				,0.528947
+				,0.0365059
+				,0.847869
+				,0.905362
+				,-0.311996
+				,0.28806
+				,0.657534
+				,0.558521
+				,0.50567
+				,0.640768
+				,-0.299025
+				,0.707107
+				,0.360448
+				,-0.575609
+				,0.733997
+				,0.905362
+				,-0.311996
+				,0.28806
+				,0.832584
+				,0.272123
+				,-0.482445
+				,0.657534
+				,0.558521
+				,0.50567
+				,0.523458
+				,0.245644
+				,-0.815874
+				,0.528947
+				,0.0365059
+				,0.847869
+				,0.528947
+				,0.0365059
+				,0.847869
+				,0.523458
+				,0.245644
+				,-0.815874
+				,0.752803
+				,-0.546776
+				,-0.366503
+				,0.640768
+				,-0.299025
+				,0.707107
+				,0.196581
+				,-0.261863
+				,-0.944872
+				,0.523458
+				,0.245644
+				,-0.815874
+				,0.591326
+				,-0.507329
+				,-0.626858
+				,0.701164
+				,-0.647351
+				,-0.298842
+				,0.752803
+				,-0.546776
+				,-0.366503
+				,-0.367955
+				,-0.0761964
+				,0.926716
+				,0
+				,3.23333e-008
+				,1
+				,-0.265348
+				,0.650654
+				,0.711506
+				,0
+				,0.711033
+				,0.703159
+				,0
+				,1
+				,0
+				,-0.370305
+				,0.926542
+				,0.0662918
+				,-0.265741
+				,0.722166
+				,-0.638638
+				,0
+				,0.711033
+				,-0.703159
+				,0
+				,3.23333e-008
+				,-1
+				,-0.367954
+				,0.0761937
+				,-0.926717
+				,-0.265347
+				,-0.650652
+				,-0.711507
+				,0
+				,-0.711033
+				,-0.703159
+				,-0.265347
+				,-0.650652
+				,-0.711507
+				,0
+				,-0.711033
+				,-0.703159
+				,0
+				,-1
+				,0
+				,-0.370305
+				,-0.926542
+				,-0.0662908
+				,-0.265743
+				,-0.722165
+				,0.638638
+				,0
+				,-0.711033
+				,0.703159
+				,-0.311449
+				,-0.0163107
+				,0.950123
+				,-0.311386
+				,0.679247
+				,0.664576
+				,-0.30856
+				,0.951172
+				,0.00786201
+				,-0.308173
+				,0.69627
+				,-0.648257
+				,-0.311446
+				,0.016299
+				,-0.950124
+				,-0.311387
+				,-0.679237
+				,-0.664586
+				,-0.311387
+				,-0.679237
+				,-0.664586
+				,-0.308561
+				,-0.951172
+				,-0.00785409
+				,-0.308173
+				,-0.69627
+				,0.648257
+				,1.77873e-006
+				,0.147264
+				,0.989097
+				,-3.5727e-007
+				,0.812825
+				,0.582507
+				,7.23951e-007
+				,0.991903
+				,-0.127
+				,6.35273e-007
+				,0.624982
+				,-0.780639
+				,6.34866e-007
+				,-0.147255
+				,-0.989098
+				,7.74649e-007
+				,-0.81282
+				,-0.582515
+				,7.74649e-007
+				,-0.81282
+				,-0.582515
+				,-0.311387
+				,-0.679237
+				,-0.664586
+				,-0.308561
+				,-0.951172
+				,-0.00785409
+				,7.74649e-007
+				,-0.81282
+				,-0.582515
+				,2.83281e-007
+				,-0.9919
+				,0.127018
+				,1.90696e-007
+				,-0.624998
+				,0.780626
+				,-0.301697
+				,0.609799
+				,0.732887
+				,-0.427292
+				,-0.251098
+				,0.868546
+				,0.250232
+				,0.865327
+				,0.434273
+				,-0.948845
+				,-0.116359
+				,0.293518
+				,-0.342716
+				,0.892408
+				,-0.293518
+				,-0.948845
+				,-0.116359
+				,0.293518
+				,-0.301697
+				,0.609799
+				,0.732887
+				,-0.680059
+				,-0.0198999
+				,-0.732887
+				,0.0211057
+				,0.495159
+				,-0.868546
+				,-0.680059
+				,-0.0198999
+				,-0.732887
+				,-0.342716
+				,0.892408
+				,-0.293518
+				,-0.646562
+				,-0.627187
+				,-0.434273
+				,-0.680059
+				,-0.0198999
+				,-0.732887
+				,-0.342716
+				,0.892408
+				,-0.293518
+				,0.250232
+				,0.865327
+				,0.434273
+				,0.0211057
+				,0.495159
+				,-0.868546
+				,-0.301697
+				,0.609799
+				,0.732887
+				,-0.948845
+				,-0.116359
+				,0.293518
+				,-0.646562
+				,-0.627187
+				,-0.434273
+				,-0.427292
+				,-0.251098
+				,0.868546
+				,-0.680059
+				,-0.0198999
+				,-0.732887
+				,-0.613951
+				,0.775041
+				,-0.149586
+				,-0.332707
+				,0.328669
+				,-0.883902
+				,-0.83205
+				,-0.0674189
+				,-0.550588
+				,-0.852201
+				,0.389021
+				,-0.349881
+				,-0.894428
+				,0.0420688
+				,0.445229
+				,-0.622248
+				,0.360366
+				,0.694941
+				,-0.384857
+				,0.908558
+				,-0.162503
+				,0.332709
+				,0.103678
+				,-0.937313
+				,0.948683
+				,-0.0384348
+				,-0.313883
+				,-0.83205
+				,-0.0674189
+				,-0.550588
+				,-0.332707
+				,0.328669
+				,-0.883902
+				,0.613952
+				,0.642939
+				,-0.457921
+				,-0.613951
+				,0.775041
+				,-0.149586
+				,0.852202
+				,0.5093
+				,-0.119851
+				,0.613952
+				,0.642939
+				,-0.457921
+				,-0.613951
+				,0.775041
+				,-0.149586
+				,-0.852201
+				,0.389021
+				,-0.349881
+				,0.384867
+				,0.697004
+				,-0.605031
+				,0.852202
+				,0.5093
+				,-0.119851
+				,-0.852201
+				,0.389021
+				,-0.349881
+				,-0.384857
+				,0.908558
+				,-0.162503
+				,0.622243
+				,0.632934
+				,0.46066
+				,0.384867
+				,0.697004
+				,-0.605031
+				,-0.384857
+				,0.908558
+				,-0.162503
+				,0.707103
+				,0.0665173
+				,0.703975
+				,0.622243
+				,0.632934
+				,0.46066
+				,0.948683
+				,-0.0384348
+				,-0.313883
+				,0.332709
+				,0.103678
+				,-0.937313
+				,0.613952
+				,0.642939
+				,-0.457921
+				,0.852202
+				,0.5093
+				,-0.119851
+				,0.384867
+				,0.697004
+				,-0.605031
+				,0.622243
+				,0.632934
+				,0.46066
+				,-0.500005
+				,-2.72063e-006
+				,0.866023
+				,-0.990029
+				,0.114111
+				,0.0825961
+				,-1
+				,-3.65927e-012
+				,-4.68014e-006
+				,-0.393293
+				,0.0538443
+				,0.917835
+				,0.561848
+				,-0.0816065
+				,0.823205
+				,0.5
+				,-3.40079e-006
+				,0.866025
+				,1
+				,-4.53444e-007
+				,-1.00141e-005
+				,0.978292
+				,-0.172001
+				,-0.115585
+				,0.424177
+				,-0.0404165
+				,-0.904677
+				,0.978292
+				,-0.172001
+				,-0.115585
+				,1
+				,-4.53444e-007
+				,-1.00141e-005
+				,0.499996
+				,6.80157e-007
+				,-0.866028
+				,-0.499996
+				,4.53437e-007
+				,-0.866028
+				,-0.586015
+				,0.106145
+				,-0.803318
+				,-0.990029
+				,0.114111
+				,0.0825961
+				,-1
+				,-3.65927e-012
+				,-4.68014e-006
+				,-0.463939
+				,0.188369
+				,0.865609
+				,-0.903291
+				,0.429029
+				,-0.000603461
+				,0.434929
+				,-0.249205
+				,0.865294
+				,0.894154
+				,-0.447759
+				,-0.000785258
+				,0.461353
+				,-0.196404
+				,-0.865205
+				,0.894154
+				,-0.447759
+				,-0.000785258
+				,-0.438772
+				,0.242051
+				,-0.865385
+				,-0.903291
+				,0.429029
+				,-0.000603461
+				,-0.3529
+				,0.350362
+				,0.867588
+				,-0.647045
+				,0.76245
+				,0.00172565
+				,0.290974
+				,-0.402397
+				,0.867993
+				,0.646707
+				,-0.762736
+				,-0.00199037
+				,0.350494
+				,-0.353902
+				,-0.867126
+				,0.646707
+				,-0.762736
+				,-0.00199037
+				,-0.287348
+				,0.404025
+				,-0.868444
+				,-0.647045
+				,0.76245
+				,0.00172565
+				,-0.164122
+				,0.470607
+				,0.866944
+				,-0.271647
+				,0.962396
+				,0.0013418
+				,0.108193
+				,-0.485199
+				,0.867684
+				,0.280939
+				,-0.959725
+				,-0.000776519
+				,0.169415
+				,-0.46838
+				,-0.867132
+				,0.280939
+				,-0.959725
+				,-0.000776519
+				,-0.106464
+				,0.485827
+				,-0.867547
+				,-0.271647
+				,0.962396
+				,0.0013418
+				,-0.0319424
+				,0.499232
+				,0.865879
+				,-0.0478939
+				,0.998852
+				,0.000297822
+				,0.015974
+				,-0.499594
+				,0.866113
+				,0.0479518
+				,-0.99885
+				,-0.000332738
+				,0.031964
+				,-0.499119
+				,-0.865944
+				,0.0479518
+				,-0.99885
+				,-0.000332738
+				,-0.0159745
+				,0.499742
+				,-0.866027
+				,-0.0478939
+				,0.998852
+				,0.000297822
+				,-0.0478939
+				,0.998852
+				,0.000297822
+				,-0.0319424
+				,0.499232
+				,0.865879
+				,-2.96649e-006
+				,0.654772
+				,0.755826
+				,-3.71177e-006
+				,0.981996
+				,-0.1889
+				,0.015974
+				,-0.499594
+				,0.866113
+				,1.08423e-007
+				,-0.327279
+				,0.944928
+				,0.0479518
+				,-0.99885
+				,-0.000332738
+				,-4.86842e-006
+				,-0.981972
+				,0.189029
+				,0.0479518
+				,-0.99885
+				,-0.000332738
+				,0.031964
+				,-0.499119
+				,-0.865944
+				,-1.28932e-006
+				,-0.654576
+				,-0.755996
+				,-4.86842e-006
+				,-0.981972
+				,0.189029
+				,-0.0159745
+				,0.499742
+				,-0.866027
+				,-2.40735e-006
+				,0.327407
+				,-0.944883
+				,-0.0478939
+				,0.998852
+				,0.000297822
+				,-3.71177e-006
+				,0.981996
+				,-0.1889
+				,-0.499999
+				,-0.866019
+				,-0.00360998
+				,-1
+				,8.51718e-007
+				,1.69443e-007
+				,-1
+				,-2.7014e-006
+				,-1.12917e-008
+				,-0.499998
+				,-0.866019
+				,-0.00360996
+				,0.499998
+				,-0.866019
+				,-0.00360999
+				,-0.499998
+				,-0.866019
+				,-0.00360996
+				,-0.499999
+				,-0.866019
+				,-0.00360998
+				,0.499999
+				,-0.866019
+				,-0.00360996
+				,1
+				,8.51718e-007
+				,1.69443e-007
+				,0.499998
+				,-0.866019
+				,-0.00360999
+				,0.499999
+				,-0.866019
+				,-0.00360996
+				,1
+				,4.40486e-006
+				,1.84163e-008
+				,0.499997
+				,0.866019
+				,0.00361082
+				,1
+				,4.40486e-006
+				,1.84163e-008
+				,1
+				,8.51718e-007
+				,1.69443e-007
+				,0.500001
+				,0.866017
+				,0.00361095
+				,-0.499998
+				,0.866019
+				,0.00361082
+				,0.499997
+				,0.866019
+				,0.00361082
+				,0.500001
+				,0.866017
+				,0.00361095
+				,-0.499994
+				,0.866021
+				,0.00361096
+				,-1
+				,8.51718e-007
+				,1.69443e-007
+				,-0.499994
+				,0.866021
+				,0.00361096
+				,-0.499998
+				,0.866019
+				,0.00361082
+				,-1
+				,-2.7014e-006
+				,-1.12917e-008
+				,0.265348
+				,0.650654
+				,0.711505
+				,0
+				,3.23333e-008
+				,1
+				,0.367955
+				,-0.0761971
+				,0.926716
+				,0
+				,0.711033
+				,0.703159
+				,0
+				,1
+				,2.57476e-007
+				,0.370305
+				,0.926542
+				,0.0662921
+				,0.265741
+				,0.722166
+				,-0.638638
+				,0
+				,0.711033
+				,-0.703159
+				,0
+				,3.23333e-008
+				,-1
+				,0.367954
+				,0.0761933
+				,-0.926717
+				,0.265347
+				,-0.650652
+				,-0.711507
+				,0
+				,-0.711033
+				,-0.703159
+				,0
+				,-1
+				,2.57476e-007
+				,0
+				,-0.711033
+				,-0.703159
+				,0.265347
+				,-0.650652
+				,-0.711507
+				,0.370305
+				,-0.926542
+				,-0.0662905
+				,0.265743
+				,-0.722165
+				,0.638638
+				,0
+				,-0.711033
+				,0.703159
+				,0.31145
+				,-0.0163108
+				,0.950123
+				,0.311386
+				,0.679248
+				,0.664575
+				,0.30856
+				,0.951172
+				,0.00786251
+				,0.308173
+				,0.69627
+				,-0.648257
+				,0.311446
+				,0.0162989
+				,-0.950124
+				,0.311387
+				,-0.679237
+				,-0.664587
+				,0.311387
+				,-0.679237
+				,-0.664587
+				,0.308561
+				,-0.951172
+				,-0.00785359
+				,0.308173
+				,-0.69627
+				,0.648257
+				,-1.39743e-006
+				,0.147265
+				,0.989097
+				,3.94317e-007
+				,0.812825
+				,0.582508
+				,-7.23949e-007
+				,0.991903
+				,-0.127
+				,-7.29602e-007
+				,0.624982
+				,-0.780639
+				,-8.25512e-007
+				,-0.147255
+				,-0.989099
+				,-8.11694e-007
+				,-0.81282
+				,-0.582515
+				,0.308561
+				,-0.951172
+				,-0.00785359
+				,0.311387
+				,-0.679237
+				,-0.664587
+				,-8.11694e-007
+				,-0.81282
+				,-0.582515
+				,-2.83281e-007
+				,-0.9919
+				,0.127018
+				,-8.11694e-007
+				,-0.81282
+				,-0.582515
+				,-2.04867e-009
+				,-0.625
+				,0.780625
+				,-0.180226
+				,-0.654801
+				,-0.733998
+				,0
+				,-0.707107
+				,-0.707107
+				,0
+				,-0.894427
+				,0.447214
+				,-0.694157
+				,-0.651324
+				,-0.306469
+				,-0.579372
+				,-0.509948
+				,-0.635831
+				,-0.489821
+				,-0.583377
+				,0.647879
+				,0
+				,0
+				,1
+				,-0.360448
+				,-0.575609
+				,0.733997
+				,-0.523076
+				,0.0358553
+				,0.851532
+				,-0.489821
+				,-0.583377
+				,0.647879
+				,-0.644853
+				,0.562006
+				,0.51799
+				,-0.901897
+				,-0.314565
+				,0.296025
+				,-0.640768
+				,-0.299025
+				,0.707107
+				,-0.579372
+				,-0.509948
+				,-0.635831
+				,-0.360448
+				,-0.575609
+				,0.733997
+				,-0.360448
+				,-0.575609
+				,0.733997
+				,-0.901897
+				,-0.314565
+				,0.296025
+				,-0.694157
+				,-0.651324
+				,-0.306469
+				,-0.489821
+				,-0.583377
+				,0.647879
+				,-0.82423
+				,0.274109
+				,-0.495489
+				,-0.381047
+				,0.34121
+				,-0.85929
+				,-0.644853
+				,0.562006
+				,0.51799
+				,-0.523076
+				,0.0358553
+				,0.851532
+				,-0.810515
+				,-0.37824
+				,-0.447214
+				,-0.381047
+				,0.34121
+				,-0.85929
+				,-0.523076
+				,0.0358553
+				,0.851532
+				,-0.640768
+				,-0.299025
+				,0.707107
+				,0
+				,-0.707107
+				,-0.707107
+				,-0.180226
+				,-0.654801
+				,-0.733998
+				,0
+				,0
+				,-1
+				,-0.579372
+				,-0.509948
+				,-0.635831
+				,-0.381047
+				,0.34121
+				,-0.85929
+				,-0.694157
+				,-0.651324
+				,-0.306469
+				,-0.82423
+				,0.274109
+				,-0.495489
+				,-0.810515
+				,-0.37824
+				,-0.447214
+				,0.444609
+				,0.212317
+				,0.870198
+				,0
+				,-0.559231
+				,0.829012
+				,0.863225
+				,-0.282098
+				,0.418644
+				,-0.560481
+				,0.623089
+				,0.545547
+				,-0.647743
+				,-0.426056
+				,0.631589
+				,-0.358352
+				,-0.865449
+				,0.350116
+				,0.261906
+				,-0.816291
+				,0.514854
+				,0.493676
+				,0.869638
+				,0.00363091
+				,0.863225
+				,-0.282098
+				,0.418644
+				,1
+				,-2.06477e-007
+				,4.43098e-008
+				,0.444609
+				,0.212317
+				,0.870198
+				,-0.560481
+				,0.623089
+				,0.545547
+				,-0.499997
+				,0.866015
+				,0.00445858
+				,-0.999998
+				,-4.16758e-007
+				,0.00182103
+				,-0.647743
+				,-0.426056
+				,0.631589
+				,-0.358352
+				,-0.865449
+				,0.350116
+				,-0.647743
+				,-0.426056
+				,0.631589
+				,-0.999998
+				,-4.16758e-007
+				,0.00182103
+				,-0.499995
+				,-0.866005
+				,0.00636769
+				,0.492845
+				,-0.8701
+				,0.00544761
+				,-0.358352
+				,-0.865449
+				,0.350116
+				,0.261906
+				,-0.816291
+				,0.514854
+				,0.863225
+				,-0.282098
+				,0.418644
+				,0.261906
+				,-0.816291
+				,0.514854
+				,1
+				,-2.06477e-007
+				,4.43098e-008
+				,0.409508
+				,0.404646
+				,-0.817658
+				,-0.407409
+				,-0.412306
+				,-0.814875
+				,-0.668683
+				,0.664714
+				,-0.333194
+				,0.665139
+				,-0.669138
+				,-0.331428
+				,-0.668683
+				,0.664714
+				,-0.333194
+				,-0.704983
+				,-0.709223
+				,0.00122293
+				,-0.707103
+				,0.707107
+				,0.00245314
+				,-0.407409
+				,-0.412306
+				,-0.814875
+				,0.709208
+				,0.704998
+				,0.00123014
+				,0.665139
+				,-0.669138
+				,-0.331428
+				,0.409508
+				,0.404646
+				,-0.817658
+				,0.707107
+				,-0.707107
+				,0
+				,-0.668683
+				,0.664714
+				,-0.333194
+				,0.709208
+				,0.704998
+				,0.00123014
+				,0.409508
+				,0.404646
+				,-0.817658
+				,-0.707103
+				,0.707107
+				,0.00245314
+				,-0.704983
+				,-0.709223
+				,0.00122293
+				,0.665139
+				,-0.669138
+				,-0.331428
+				,0.707107
+				,-0.707107
+				,0
+				,-0.407409
+				,-0.412306
+				,-0.814875
+				,0
+				,-0.43107
+				,0.902319
+				,0
+				,0.486826
+				,0.873499
+				,-0.109932
+				,0.301712
+				,0.94704
+				,-0.166187
+				,-0.547738
+				,0.819979
+				,-0.118106
+				,0.159625
+				,0.980087
+				,-0.0801055
+				,-0.70182
+				,0.707836
+				,-2.82445e-006
+				,-1
+				,0
+				,-2.82445e-006
+				,-1
+				,0
+				,-0.556955
+				,-0.830543
+				,0
+				,-0.556955
+				,-0.830543
+				,0
+				,-2.82445e-006
+				,-1
+				,0
+				,-0.556955
+				,-0.830543
+				,0
+				,-9.98093e-007
+				,-0.887667
+				,0.460485
+				,-0.538401
+				,-0.806279
+				,0.245027
+				,-2.82445e-006
+				,-1
+				,0
+				,-0.556955
+				,-0.830543
+				,0
+				,-2.82445e-006
+				,-1
+				,0
+				,-0.556955
+				,-0.830543
+				,0
+				,-2.82445e-006
+				,-1
+				,0
+				,-0.548639
+				,-0.832661
+				,-0.0752992
+				,-3.18895e-006
+				,-0.993887
+				,0.1104
+				,-0.490043
+				,-0.858577
+				,0.150676
+				,-0.0239762
+				,-0.999311
+				,0.0283283
+				,-0.559846
+				,-0.817331
+				,-0.136172
+				,9.99114e-007
+				,-0.940053
+				,0.341028
+				,-0.487773
+				,-0.780902
+				,0.390218
+				,-0.0239079
+				,-0.911301
+				,0.411046
+				,-0.395642
+				,-0.862791
+				,0.314736
+				,0
+				,-0.43107
+				,0.902319
+				,-0.166187
+				,-0.547738
+				,0.819979
+				,-0.0655848
+				,0.00329327
+				,-0.997842
+				,-0.0970761
+				,-0.617147
+				,-0.780836
+				,-0.387691
+				,-0.598574
+				,-0.701003
+				,-0.156688
+				,0.310153
+				,-0.937685
+				,-0.0239762
+				,-0.999311
+				,0.0283283
+				,-0.559846
+				,-0.817331
+				,-0.136172
+				,-0.70498
+				,-0.704742
+				,-0.0796332
+				,-1
+				,0
+				,0
+				,-0.823668
+				,-0.557629
+				,-0.103061
+				,-0.655536
+				,-0.755033
+				,-0.0140547
+				,-0.754386
+				,-0.655728
+				,0.0303789
+				,-1
+				,0
+				,0
+				,-0.890327
+				,0.454797
+				,0.0218428
+				,-0.898276
+				,-0.434238
+				,-0.0673592
+				,-0.889904
+				,0.432015
+				,-0.146402
+				,-0.84312
+				,0.512713
+				,0.162091
+				,-0.853562
+				,0.520987
+				,0.00222179
+				,-0.860165
+				,-0.509928
+				,-0.00944199
+				,-0.894332
+				,0.398965
+				,-0.202476
+				,-0.798864
+				,-0.569515
+				,0.193569
+				,-0.928533
+				,0.101743
+				,-0.357036
+				,-0.950698
+				,0.30853
+				,-0.0313385
+				,-0.801653
+				,-0.586522
+				,0.115516
+				,-0.956751
+				,0.290742
+				,-0.00983039
+				,-0.637809
+				,-0.768826
+				,0.0458956
+				,-0.974108
+				,0.226078
+				,0.00164488
+				,-0.311924
+				,-0.894668
+				,0.3198
+				,-0.641606
+				,0.0593124
+				,0.764738
+				,-0.306116
+				,-0.910737
+				,0.277221
+				,-0.676081
+				,-0.735039
+				,-0.0512933
+				,-0.644331
+				,-0.764702
+				,-0.00822072
+				,-0.70498
+				,-0.704742
+				,-0.0796332
+				,-0.823668
+				,-0.557629
+				,-0.103061
+				,-0.615222
+				,-0.788351
+				,-0.00213144
+				,-0.655536
+				,-0.755033
+				,-0.0140547
+				,-0.583526
+				,-0.799513
+				,0.142397
+				,-0.754386
+				,-0.655728
+				,0.0303789
+				,-0.708729
+				,-0.704254
+				,-0.0415815
+				,-0.898276
+				,-0.434238
+				,-0.0673592
+				,0.00964467
+				,0.911341
+				,-0.411539
+				,0.127287
+				,0.971722
+				,0.198882
+				,-0.890327
+				,0.454797
+				,0.0218428
+				,-0.889904
+				,0.432015
+				,-0.146402
+				,-0.287558
+				,0.877073
+				,0.384777
+				,-0.84312
+				,0.512713
+				,0.162091
+				,-0.750597
+				,-0.660036
+				,-0.0309251
+				,-0.860165
+				,-0.509928
+				,-0.00944199
+				,-0.853562
+				,0.520987
+				,0.00222179
+				,-0.317809
+				,0.947654
+				,-0.0308062
+				,-0.694281
+				,-0.718346
+				,-0.044189
+				,-0.798864
+				,-0.569515
+				,0.193569
+				,-0.285563
+				,0.930791
+				,-0.228215
+				,-0.894332
+				,0.398965
+				,-0.202476
+				,-0.310532
+				,0.718717
+				,-0.622106
+				,-0.493777
+				,-0.819859
+				,0.289854
+				,-0.306116
+				,-0.910737
+				,0.277221
+				,-0.928533
+				,0.101743
+				,-0.357036
+				,-0.49545
+				,-0.0410637
+				,-0.867665
+				,-0.661634
+				,-0.628407
+				,-0.409079
+				,-0.348098
+				,-0.909
+				,0.22923
+				,-0.661634
+				,-0.628407
+				,-0.409079
+				,-0.369968
+				,0.867193
+				,-0.333317
+				,-0.950698
+				,0.30853
+				,-0.0313385
+				,-0.449438
+				,-0.863991
+				,0.226992
+				,-0.801653
+				,-0.586522
+				,0.115516
+				,-0.54844
+				,0.833839
+				,-0.0626621
+				,-0.956751
+				,0.290742
+				,-0.00983039
+				,-0.330452
+				,-0.928942
+				,0.166939
+				,-0.637809
+				,-0.768826
+				,0.0458956
+				,-0.573954
+				,0.756132
+				,0.31439
+				,-0.974108
+				,0.226078
+				,0.00164488
+				,-0.0801055
+				,-0.70182
+				,0.707836
+				,-0.311924
+				,-0.894668
+				,0.3198
+				,-0.118106
+				,0.159625
+				,0.980087
+				,-0.641606
+				,0.0593124
+				,0.764738
+				,-0.641606
+				,0.0593124
+				,0.764738
+				,-0.118106
+				,0.159625
+				,0.980087
+				,-0.641606
+				,0.0593124
+				,0.764738
+				,-0.306116
+				,-0.910737
+				,0.277221
+				,-0.928533
+				,0.101743
+				,-0.357036
+				,-0.556955
+				,-0.830543
+				,0
+				,-0.556955
+				,-0.830543
+				,0
+				,-0.644331
+				,-0.764702
+				,-0.00822072
+				,-0.676081
+				,-0.735039
+				,-0.0512933
+				,-0.556955
+				,-0.830543
+				,0
+				,-0.615222
+				,-0.788351
+				,-0.00213144
+				,-0.538401
+				,-0.806279
+				,0.245027
+				,-0.583526
+				,-0.799513
+				,0.142397
+				,-0.556955
+				,-0.830543
+				,0
+				,-0.708729
+				,-0.704254
+				,-0.0415815
+				,-0.556955
+				,-0.830543
+				,0
+				,-0.750597
+				,-0.660036
+				,-0.0309251
+				,-0.548639
+				,-0.832661
+				,-0.0752992
+				,-0.694281
+				,-0.718346
+				,-0.044189
+				,-0.490043
+				,-0.858577
+				,0.150676
+				,-0.493777
+				,-0.819859
+				,0.289854
+				,-0.156688
+				,0.310153
+				,-0.937685
+				,-0.387691
+				,-0.598574
+				,-0.701003
+				,-0.49545
+				,-0.0410637
+				,-0.867665
+				,-0.559846
+				,-0.817331
+				,-0.136172
+				,-0.348098
+				,-0.909
+				,0.22923
+				,-0.559846
+				,-0.817331
+				,-0.136172
+				,-0.49545
+				,-0.0410637
+				,-0.867665
+				,-0.387691
+				,-0.598574
+				,-0.701003
+				,-0.487773
+				,-0.780902
+				,0.390218
+				,-0.449438
+				,-0.863991
+				,0.226992
+				,-0.395642
+				,-0.862791
+				,0.314736
+				,-0.330452
+				,-0.928942
+				,0.166939
+				,-0.166187
+				,-0.547738
+				,0.819979
+				,-0.0801055
+				,-0.70182
+				,0.707836
+				,0
+				,0.52529
+				,-0.850923
+				,-0.054913
+				,0.881302
+				,-0.469352
+				,-0.0978323
+				,0.800769
+				,-0.59093
+				,0
+				,0.716196
+				,-0.697899
+				,0.00199464
+				,0.944738
+				,0.32782
+				,0
+				,0.922099
+				,0.386953
+				,-0.104375
+				,0.993297
+				,0.0496695
+				,-0.0874581
+				,0.852353
+				,0.515602
+				,0
+				,0.981962
+				,0.189077
+				,0
+				,0.716196
+				,-0.697899
+				,-0.0978323
+				,0.800769
+				,-0.59093
+				,-0.156012
+				,0.986301
+				,-0.0535787
+				,0
+				,0.52529
+				,-0.850923
+				,-0.102521
+				,0.742202
+				,-0.662288
+				,-0.0343635
+				,0.784606
+				,-0.619042
+				,-0.054913
+				,0.881302
+				,-0.469352
+				,-0.0655848
+				,0.00329327
+				,-0.997842
+				,-0.156688
+				,0.310153
+				,-0.937685
+				,-0.317809
+				,0.947654
+				,-0.0308062
+				,-0.287558
+				,0.877073
+				,0.384777
+				,-0.285563
+				,0.930791
+				,-0.228215
+				,-0.310532
+				,0.718717
+				,-0.622106
+				,-0.49545
+				,-0.0410637
+				,-0.867665
+				,-0.49545
+				,-0.0410637
+				,-0.867665
+				,0
+				,0.922099
+				,0.386953
+				,0
+				,0.52529
+				,-0.850923
+				,0
+				,0.716196
+				,-0.697899
+				,0
+				,0.981962
+				,0.189077
+				,-6.13543e-007
+				,0.959276
+				,-0.282471
+				,2.53373e-006
+				,0.733988
+				,0.679163
+				,0.26382
+				,0.858482
+				,0.439781
+				,0.359397
+				,0.820605
+				,-0.444343
+				,0.00199464
+				,0.944738
+				,0.32782
+				,-0.0874581
+				,0.852353
+				,0.515602
+				,-1.61698e-006
+				,0.774727
+				,-0.632296
+				,0.109825
+				,0.866377
+				,-0.487164
+				,0.127287
+				,0.971722
+				,0.198882
+				,0.00964467
+				,0.911341
+				,-0.411539
+				,-0.287558
+				,0.877073
+				,0.384777
+				,-0.287558
+				,0.877073
+				,0.384777
+				,-0.369968
+				,0.867193
+				,-0.333317
+				,-1.32905e-006
+				,0.98963
+				,-0.143642
+				,-1.61698e-006
+				,0.774727
+				,-0.632296
+				,0.109825
+				,0.866377
+				,-0.487164
+				,-0.0429343
+				,0.991846
+				,-0.119989
+				,0
+				,0.98803
+				,0.15426
+				,-0.135145
+				,0.929792
+				,0.342377
+				,0
+				,0.486826
+				,0.873499
+				,-0.109932
+				,0.301712
+				,0.94704
+				,-0.369968
+				,0.867193
+				,-0.333317
+				,-0.54844
+				,0.833839
+				,-0.0626621
+				,-0.573954
+				,0.756132
+				,0.31439
+				,-0.118106
+				,0.159625
+				,0.980087
+				,-0.301697
+				,0.609799
+				,0.732887
+				,-0.427292
+				,-0.251098
+				,0.868546
+				,0.250232
+				,0.865327
+				,0.434273
+				,-0.948845
+				,-0.116359
+				,0.293518
+				,-0.342716
+				,0.892408
+				,-0.293518
+				,-0.948845
+				,-0.116359
+				,0.293518
+				,-0.301697
+				,0.609799
+				,0.732887
+				,-0.680059
+				,-0.0198999
+				,-0.732887
+				,0.0211057
+				,0.495159
+				,-0.868546
+				,-0.680059
+				,-0.0198999
+				,-0.732887
+				,-0.342716
+				,0.892408
+				,-0.293518
+				,-0.646562
+				,-0.627187
+				,-0.434273
+				,-0.680059
+				,-0.0198999
+				,-0.732887
+				,-0.342716
+				,0.892408
+				,-0.293518
+				,0.250232
+				,0.865327
+				,0.434273
+				,0.0211057
+				,0.495159
+				,-0.868546
+				,-0.301697
+				,0.609799
+				,0.732887
+				,-0.948845
+				,-0.116359
+				,0.293518
+				,-0.646562
+				,-0.627187
+				,-0.434273
+				,-0.427292
+				,-0.251098
+				,0.868546
+				,-0.680059
+				,-0.0198999
+				,-0.732887
+				,-0.513955
+				,-0.390961
+				,0.763544
+				,-0.991424
+				,0.052789
+				,0.119546
+				,-1
+				,2.93206e-006
+				,-5.72892e-006
+				,-0.402737
+				,-0.373096
+				,0.835824
+				,0.581696
+				,-0.436238
+				,0.686532
+				,0.513952
+				,-0.390962
+				,0.763546
+				,1
+				,4.22909e-006
+				,-8.86377e-006
+				,0.981365
+				,-0.0834974
+				,-0.173066
+				,0.434868
+				,0.377403
+				,-0.817592
+				,0.981365
+				,-0.0834974
+				,-0.173066
+				,1
+				,4.22909e-006
+				,-8.86377e-006
+				,0.513946
+				,0.390962
+				,-0.76355
+				,-0.513946
+				,0.390961
+				,-0.76355
+				,-0.607667
+				,0.4464
+				,-0.656862
+				,-0.991424
+				,0.052789
+				,0.119546
+				,-1
+				,2.93206e-006
+				,-5.72892e-006
+				,-0.474569
+				,-0.240957
+				,0.846596
+				,-0.920933
+				,0.336333
+				,0.196882
+				,0.463712
+				,-0.599929
+				,0.651963
+				,0.913194
+				,-0.351033
+				,-0.20701
+				,0.47197
+				,0.234426
+				,-0.849876
+				,0.913194
+				,-0.351033
+				,-0.20701
+				,-0.467111
+				,0.593592
+				,-0.655329
+				,-0.920933
+				,0.336333
+				,0.196882
+				,-0.363966
+				,-0.110945
+				,0.924781
+				,-0.687988
+				,0.625185
+				,0.368533
+				,0.32233
+				,-0.746837
+				,0.581668
+				,0.68821
+				,-0.624966
+				,-0.368491
+				,0.36174
+				,0.107949
+				,-0.926008
+				,0.68821
+				,-0.624966
+				,-0.368491
+				,-0.318233
+				,0.748947
+				,-0.58121
+				,-0.687988
+				,0.625185
+				,0.368533
+				,-0.17256
+				,-0.00979386
+				,0.98495
+				,-0.303062
+				,0.823829
+				,0.479019
+				,0.123456
+				,-0.832746
+				,0.539716
+				,0.313037
+				,-0.821266
+				,-0.477001
+				,0.177998
+				,0.0118203
+				,-0.98396
+				,0.313037
+				,-0.821266
+				,-0.477001
+				,-0.121571
+				,0.833336
+				,-0.539232
+				,-0.303062
+				,0.823829
+				,0.479019
+				,-0.0338981
+				,0.0160758
+				,0.999296
+				,-0.0544514
+				,0.864997
+				,0.498813
+				,0.0184916
+				,-0.847772
+				,0.530039
+				,0.0545173
+				,-0.864984
+				,-0.49883
+				,0.0339196
+				,-0.0159525
+				,-0.999297
+				,0.0545173
+				,-0.864984
+				,-0.49883
+				,-0.0184925
+				,0.84787
+				,-0.529882
+				,-0.0544514
+				,0.864997
+				,0.498813
+				,-0.0544514
+				,0.864997
+				,0.498813
+				,-0.0338981
+				,0.0160758
+				,0.999296
+				,-3.21513e-006
+				,0.191634
+				,0.981467
+				,-4.90741e-006
+				,0.947702
+				,0.319155
+				,0.0184916
+				,-0.847772
+				,0.530039
+				,3.31268e-007
+				,-0.728126
+				,0.685443
+				,0.0545173
+				,-0.864984
+				,-0.49883
+				,-5.65996e-006
+				,-0.947753
+				,-0.319005
+				,0.0545173
+				,-0.864984
+				,-0.49883
+				,0.0339196
+				,-0.0159525
+				,-0.999297
+				,-1.41282e-006
+				,-0.19139
+				,-0.981514
+				,-5.65996e-006
+				,-0.947753
+				,-0.319005
+				,-0.0184925
+				,0.84787
+				,-0.529882
+				,-3.29686e-006
+				,0.728227
+				,-0.685337
+				,-0.0544514
+				,0.864997
+				,0.498813
+				,-4.90741e-006
+				,0.947702
+				,0.319155
+				,0.444609
+				,0.212317
+				,0.870198
+				,0
+				,-0.559231
+				,0.829012
+				,0.863225
+				,-0.282098
+				,0.418644
+				,-0.560481
+				,0.623089
+				,0.545547
+				,-0.647743
+				,-0.426056
+				,0.631589
+				,-0.358352
+				,-0.865449
+				,0.350116
+				,0.261906
+				,-0.816291
+				,0.514854
+				,0.493676
+				,0.869638
+				,0.0036309
+				,0.863225
+				,-0.282098
+				,0.418644
+				,1
+				,-2.06477e-007
+				,1.51228e-010
+				,0.444609
+				,0.212317
+				,0.870198
+				,-0.560481
+				,0.623089
+				,0.545547
+				,-0.499997
+				,0.866015
+				,0.00445858
+				,-0.999998
+				,-3.99393e-007
+				,0.00182101
+				,-0.647743
+				,-0.426056
+				,0.631589
+				,-0.358352
+				,-0.865449
+				,0.350116
+				,-0.647743
+				,-0.426056
+				,0.631589
+				,-0.999998
+				,-3.99393e-007
+				,0.00182101
+				,-0.499995
+				,-0.866005
+				,0.00636769
+				,0.492845
+				,-0.8701
+				,0.0054476
+				,-0.358352
+				,-0.865449
+				,0.350116
+				,0.261906
+				,-0.816291
+				,0.514854
+				,0.863225
+				,-0.282098
+				,0.418644
+				,0.261906
+				,-0.816291
+				,0.514854
+				,1
+				,-2.06477e-007
+				,1.51228e-010
+				,-0.303473
+				,-0.691578
+				,-0.655457
+				,0
+				,-0.797167
+				,-0.603758
+				,-0.701164
+				,-0.647351
+				,-0.298842
+				,-0.591326
+				,-0.507329
+				,-0.626858
+				,-0.503047
+				,-0.581253
+				,0.639601
+				,0
+				,0
+				,1
+				,-0.360448
+				,-0.575609
+				,0.733997
+				,0
+				,-0.894427
+				,0.447214
+				,-0.528947
+				,0.0365059
+				,0.847869
+				,-0.503047
+				,-0.581253
+				,0.639601
+				,-0.657534
+				,0.558521
+				,0.50567
+				,-0.905362
+				,-0.311996
+				,0.28806
+				,-0.640768
+				,-0.299025
+				,0.707107
+				,-0.591326
+				,-0.507329
+				,-0.626858
+				,-0.360448
+				,-0.575609
+				,0.733997
+				,-0.360448
+				,-0.575609
+				,0.733997
+				,-0.905362
+				,-0.311996
+				,0.28806
+				,-0.701164
+				,-0.647351
+				,-0.298842
+				,-0.503047
+				,-0.581253
+				,0.639601
+				,-0.832584
+				,0.272123
+				,-0.482445
+				,-0.523458
+				,0.245644
+				,-0.815874
+				,-0.657534
+				,0.558521
+				,0.50567
+				,-0.528947
+				,0.0365059
+				,0.847869
+				,-0.752803
+				,-0.546776
+				,-0.366503
+				,-0.523458
+				,0.245644
+				,-0.815874
+				,-0.528947
+				,0.0365059
+				,0.847869
+				,-0.640768
+				,-0.299025
+				,0.707107
+				,0
+				,-0.797167
+				,-0.603758
+				,-0.303473
+				,-0.691578
+				,-0.655457
+				,-0.196581
+				,-0.261863
+				,-0.944872
+				,-0.591326
+				,-0.507329
+				,-0.626858
+				,-0.523458
+				,0.245644
+				,-0.815874
+				,-0.701164
+				,-0.647351
+				,-0.298842
+				,-0.832584
+				,0.272123
+				,-0.482445
+				,-0.752803
+				,-0.546776
+				,-0.366503
+				,0.265348
+				,0.650654
+				,0.711506
+				,0
+				,3.23333e-008
+				,1
+				,0.367955
+				,-0.0761964
+				,0.926716
+				,0
+				,0.711033
+				,0.703159
+				,0
+				,1
+				,0
+				,0.370305
+				,0.926542
+				,0.0662918
+				,0.265741
+				,0.722166
+				,-0.638638
+				,0
+				,0.711033
+				,-0.703159
+				,0
+				,3.23333e-008
+				,-1
+				,0.367954
+				,0.0761937
+				,-0.926717
+				,0.265347
+				,-0.650652
+				,-0.711507
+				,0
+				,-0.711033
+				,-0.703159
+				,0
+				,-1
+				,0
+				,0
+				,-0.711033
+				,-0.703159
+				,0.265347
+				,-0.650652
+				,-0.711507
+				,0.370305
+				,-0.926542
+				,-0.0662908
+				,0.265743
+				,-0.722165
+				,0.638638
+				,0
+				,-0.711033
+				,0.703159
+				,0.311449
+				,-0.0163107
+				,0.950123
+				,0.311386
+				,0.679247
+				,0.664576
+				,0.30856
+				,0.951172
+				,0.00786201
+				,0.308173
+				,0.69627
+				,-0.648257
+				,0.311446
+				,0.016299
+				,-0.950124
+				,0.311387
+				,-0.679237
+				,-0.664586
+				,0.311387
+				,-0.679237
+				,-0.664586
+				,0.308561
+				,-0.951172
+				,-0.00785409
+				,0.308173
+				,-0.69627
+				,0.648257
+				,-1.77873e-006
+				,0.147264
+				,0.989097
+				,3.5727e-007
+				,0.812825
+				,0.582507
+				,-7.23951e-007
+				,0.991903
+				,-0.127
+				,-6.35273e-007
+				,0.624982
+				,-0.780639
+				,-6.34866e-007
+				,-0.147255
+				,-0.989098
+				,-7.74649e-007
+				,-0.81282
+				,-0.582515
+				,0.308561
+				,-0.951172
+				,-0.00785409
+				,0.311387
+				,-0.679237
+				,-0.664586
+				,-7.74649e-007
+				,-0.81282
+				,-0.582515
+				,-2.83281e-007
+				,-0.9919
+				,0.127018
+				,-7.74649e-007
+				,-0.81282
+				,-0.582515
+				,-1.90696e-007
+				,-0.624998
+				,0.780626
+				,-0.666667
+				,0.666667
+				,0.333333
+				,-0.408248
+				,-0.408248
+				,0.816497
+				,0.408248
+				,0.408248
+				,0.816497
+				,0.666667
+				,-0.666667
+				,0.333333
+				,0.408248
+				,0.408248
+				,0.816497
+				,0.666667
+				,-0.666667
+				,0.333333
+				,0.666667
+				,0.666667
+				,-0.333333
+				,0.408248
+				,-0.408248
+				,-0.816497
+				,-0.408248
+				,0.408248
+				,-0.816497
+				,-0.666667
+				,-0.666667
+				,-0.333333
+				,-0.666667
+				,0.666667
+				,0.333333
+				,-0.408248
+				,-0.408248
+				,0.816497
+				,-0.666667
+				,0.666667
+				,0.333333
+				,-0.408248
+				,-0.408248
+				,0.816497
+				,0.408248
+				,0.408248
+				,0.816497
+				,0.666667
+				,-0.666667
+				,0.333333
+				,0.408248
+				,0.408248
+				,0.816497
+				,0.666667
+				,-0.666667
+				,0.333333
+				,0.666667
+				,0.666667
+				,-0.333333
+				,0.408248
+				,-0.408248
+				,-0.816497
+				,-0.408248
+				,0.408248
+				,-0.816497
+				,-0.666667
+				,-0.666667
+				,-0.333333
+				,-0.666667
+				,0.666667
+				,0.333333
+				,-0.408248
+				,-0.408248
+				,0.816497
+				,-0.408248
+				,0.408248
+				,0.816497
+				,0.408248
+				,-0.408248
+				,0.816497
+				,0.666667
+				,0.666667
+				,0.333333
+				,-0.666667
+				,-0.666667
+				,0.333333
+				,-0.666667
+				,0.666667
+				,-0.333333
+				,-0.666667
+				,-0.666667
+				,0.333333
+				,-0.408248
+				,0.408248
+				,0.816497
+				,-0.408248
+				,-0.408248
+				,-0.816497
+				,0.408248
+				,0.408248
+				,-0.816497
+				,0.666667
+				,-0.666667
+				,-0.333333
+				,0.666667
+				,0.666667
+				,0.333333
+				,0.408248
+				,-0.408248
+				,0.816497
+				,-0.408248
+				,0.408248
+				,0.816497
+				,0.408248
+				,-0.408248
+				,0.816497
+				,0.666667
+				,0.666667
+				,0.333333
+				,-0.666667
+				,-0.666667
+				,0.333333
+				,-0.666667
+				,0.666667
+				,-0.333333
+				,-0.666667
+				,-0.666667
+				,0.333333
+				,-0.408248
+				,0.408248
+				,0.816497
+				,-0.408248
+				,-0.408248
+				,-0.816497
+				,0.408248
+				,0.408248
+				,-0.816497
+				,0.666667
+				,-0.666667
+				,-0.333333
+				,0.666667
+				,0.666667
+				,0.333333
+				,0.408248
+				,-0.408248
+				,0.816497
+				,0.408248
+				,0.408248
+				,-0.816497
+				,-0.408248
+				,-0.408248
+				,-0.816497
+				,-0.666667
+				,0.666667
+				,-0.333333
+				,0.666667
+				,-0.666667
+				,-0.333333
+				,0.666667
+				,0.666667
+				,0.333333
+				,0.666667
+				,-0.666667
+				,-0.333333
+				,0.408248
+				,0.408248
+				,-0.816497
+				,0.408248
+				,-0.408248
+				,0.816497
+				,-0.408248
+				,0.408248
+				,0.816497
+				,-0.666667
+				,-0.666667
+				,0.333333
+				,-0.666667
+				,0.666667
+				,-0.333333
+				,-0.408248
+				,-0.408248
+				,-0.816497
+				,0.666667
+				,0.666667
+				,-0.333333
+				,0.408248
+				,-0.408248
+				,-0.816497
+				,-0.408248
+				,0.408248
+				,-0.816497
+				,-0.666667
+				,-0.666667
+				,-0.333333
+				,-0.408248
+				,0.408248
+				,-0.816497
+				,-0.666667
+				,-0.666667
+				,-0.333333
+				,-0.666667
+				,0.666667
+				,0.333333
+				,-0.408248
+				,-0.408248
+				,0.816497
+				,0.408248
+				,0.408248
+				,0.816497
+				,0.666667
+				,-0.666667
+				,0.333333
+				,0.666667
+				,0.666667
+				,-0.333333
+				,0.408248
+				,-0.408248
+				,-0.816497
+				,0.853097
+				,-0.520609
+				,-0.0345182
+				,0.853101
+				,-0.467763
+				,-0.231118
+				,1
+				,0
+				,0
+				,-0.854735
+				,0.519065
+				,0
+				,-1
+				,0
+				,0
+				,-0.91976
+				,0.362606
+				,0.150197
+				,0.992581
+				,0.116804
+				,0.0337531
+				,0.454129
+				,0.890936
+				,0
+				,0.454129
+				,0.823118
+				,0.340947
+				,0.961402
+				,-0.268378
+				,-0.0606563
+				,-0.45413
+				,0.890935
+				,0
+				,-0.45413
+				,0.823117
+				,0.340946
+				,0.853103
+				,-0.343712
+				,-0.392528
+				,-0.854735
+				,0.367034
+				,0.367035
+				,0.992581
+				,0.0587309
+				,0.106462
+				,0.454129
+				,0.629987
+				,0.629987
+				,-0.45413
+				,0.629986
+				,0.629987
+				,0.853101
+				,-0.167337
+				,-0.494183
+				,-0.91976
+				,0.150197
+				,0.362606
+				,0.454129
+				,0.340947
+				,0.823118
+				,0.961404
+				,-0.146879
+				,-0.232655
+				,-0.45413
+				,0.340946
+				,0.823117
+				,0.8531
+				,0.034517
+				,-0.520605
+				,-0.854735
+				,0
+				,0.519065
+				,0.992581
+				,-0.0337528
+				,0.116807
+				,0.454129
+				,0
+				,0.890936
+				,-0.45413
+				,0
+				,0.890935
+				,0.853099
+				,0.231119
+				,-0.467768
+				,-0.91976
+				,-0.150197
+				,0.362606
+				,0.454129
+				,-0.340947
+				,0.823118
+				,0.961402
+				,0.0606557
+				,-0.268378
+				,-0.45413
+				,-0.340947
+				,0.823117
+				,0.853095
+				,0.392537
+				,-0.34372
+				,-0.854735
+				,-0.367035
+				,0.367035
+				,0.992581
+				,-0.106458
+				,0.0587265
+				,0.454128
+				,-0.629987
+				,0.629987
+				,-0.45413
+				,-0.629987
+				,0.629987
+				,0.853097
+				,0.494192
+				,-0.167334
+				,-0.91976
+				,-0.362606
+				,0.150196
+				,0.454128
+				,-0.823118
+				,0.340947
+				,0.961398
+				,0.232674
+				,-0.146889
+				,-0.45413
+				,-0.823117
+				,0.340946
+				,0.853098
+				,0.520607
+				,0.034519
+				,-0.854735
+				,-0.519065
+				,0
+				,0.992581
+				,-0.116805
+				,-0.0337486
+				,0.454128
+				,-0.890936
+				,0
+				,-0.45413
+				,-0.890936
+				,0
+				,0.853093
+				,0.467778
+				,0.231119
+				,-0.91976
+				,-0.362606
+				,-0.150196
+				,0.454128
+				,-0.823118
+				,-0.340947
+				,0.9614
+				,0.268386
+				,0.0606523
+				,-0.45413
+				,-0.823117
+				,-0.340946
+				,0.853096
+				,0.343719
+				,0.392535
+				,-0.854735
+				,-0.367035
+				,-0.367035
+				,0.992581
+				,-0.058725
+				,-0.106458
+				,0.454128
+				,-0.629987
+				,-0.629987
+				,-0.45413
+				,-0.629987
+				,-0.629987
+				,0.853099
+				,0.167337
+				,0.494186
+				,-0.91976
+				,-0.150197
+				,-0.362606
+				,0.454129
+				,-0.340947
+				,-0.823118
+				,0.961402
+				,0.146884
+				,0.232663
+				,-0.45413
+				,-0.340947
+				,-0.823117
+				,0.853101
+				,-0.0345192
+				,0.520603
+				,-0.854735
+				,0
+				,-0.519065
+				,0.992581
+				,0.0337517
+				,-0.116807
+				,0.454129
+				,0
+				,-0.890936
+				,-0.45413
+				,0
+				,-0.890935
+				,0.853103
+				,-0.231117
+				,0.467761
+				,-0.91976
+				,0.150197
+				,-0.362606
+				,0.454129
+				,0.340947
+				,-0.823118
+				,0.961403
+				,-0.0606552
+				,0.268374
+				,-0.45413
+				,0.340946
+				,-0.823117
+				,0.853102
+				,-0.392528
+				,0.343713
+				,-0.854735
+				,0.367034
+				,-0.367035
+				,0.992581
+				,0.106462
+				,-0.0587312
+				,0.454129
+				,0.629987
+				,-0.629987
+				,-0.45413
+				,0.629986
+				,-0.629987
+				,0.853099
+				,-0.494186
+				,0.167338
+				,-0.91976
+				,0.362606
+				,-0.150197
+				,0.454129
+				,0.823118
+				,-0.340947
+				,0.961403
+				,-0.232658
+				,0.146881
+				,-0.45413
+				,0.823117
+				,-0.340946
+				,0.454129
+				,0.890936
+				,0
+				,-1.04184e-007
+				,1
+				,0
+				,0.454129
+				,0.823118
+				,0.340947
+				,-1.04184e-007
+				,0.92388
+				,0.382683
+				,-1.04184e-007
+				,1
+				,0
+				,-0.45413
+				,0.890935
+				,0
+				,-0.45413
+				,0.823117
+				,0.340946
+				,-1.04184e-007
+				,0.92388
+				,0.382683
+				,0.454129
+				,0.823118
+				,0.340947
+				,-1.04184e-007
+				,0.92388
+				,0.382683
+				,-1.00325e-007
+				,0.707107
+				,0.707107
+				,0.454129
+				,0.629987
+				,0.629987
+				,-1.04184e-007
+				,0.92388
+				,0.382683
+				,-0.45413
+				,0.823117
+				,0.340946
+				,-1.00325e-007
+				,0.707107
+				,0.707107
+				,-0.45413
+				,0.629986
+				,0.629987
+				,0.454129
+				,0.629987
+				,0.629987
+				,-1.00325e-007
+				,0.707107
+				,0.707107
+				,0.454129
+				,0.340947
+				,0.823118
+				,-1.00325e-007
+				,0.382684
+				,0.92388
+				,-1.00325e-007
+				,0.707107
+				,0.707107
+				,-0.45413
+				,0.629986
+				,0.629987
+				,-0.45413
+				,0.340946
+				,0.823117
+				,-1.00325e-007
+				,0.382684
+				,0.92388
+				,0.454129
+				,0.340947
+				,0.823118
+				,-1.00325e-007
+				,0.382684
+				,0.92388
+				,-1.04184e-007
+				,0
+				,1
+				,0.454129
+				,0
+				,0.890936
+				,-1.00325e-007
+				,0.382684
+				,0.92388
+				,-0.45413
+				,0.340946
+				,0.823117
+				,-1.04184e-007
+				,0
+				,1
+				,-0.45413
+				,0
+				,0.890935
+				,0.454129
+				,0
+				,0.890936
+				,-1.04184e-007
+				,0
+				,1
+				,0.454129
+				,-0.340947
+				,0.823118
+				,-1.00325e-007
+				,-0.382684
+				,0.923879
+				,-1.04184e-007
+				,0
+				,1
+				,-0.45413
+				,0
+				,0.890935
+				,-0.45413
+				,-0.340947
+				,0.823117
+				,-1.00325e-007
+				,-0.382684
+				,0.923879
+				,0.454129
+				,-0.340947
+				,0.823118
+				,-1.00325e-007
+				,-0.382684
+				,0.923879
+				,-1.02254e-007
+				,-0.707107
+				,0.707107
+				,0.454128
+				,-0.629987
+				,0.629987
+				,-1.00325e-007
+				,-0.382684
+				,0.923879
+				,-0.45413
+				,-0.340947
+				,0.823117
+				,-1.02254e-007
+				,-0.707107
+				,0.707107
+				,-0.45413
+				,-0.629987
+				,0.629987
+				,0.454128
+				,-0.629987
+				,0.629987
+				,-1.02254e-007
+				,-0.707107
+				,0.707107
+				,0.454128
+				,-0.823118
+				,0.340947
+				,-1.04184e-007
+				,-0.92388
+				,0.382683
+				,-1.02254e-007
+				,-0.707107
+				,0.707107
+				,-0.45413
+				,-0.629987
+				,0.629987
+				,-0.45413
+				,-0.823117
+				,0.340946
+				,-1.04184e-007
+				,-0.92388
+				,0.382683
+				,0.454128
+				,-0.823118
+				,0.340947
+				,-1.04184e-007
+				,-0.92388
+				,0.382683
+				,-1.08042e-007
+				,-1
+				,0
+				,0.454128
+				,-0.890936
+				,0
+				,-1.04184e-007
+				,-0.92388
+				,0.382683
+				,-0.45413
+				,-0.823117
+				,0.340946
+				,-1.08042e-007
+				,-1
+				,0
+				,-0.45413
+				,-0.890936
+				,0
+				,0.454128
+				,-0.890936
+				,0
+				,-1.08042e-007
+				,-1
+				,0
+				,0.454128
+				,-0.823118
+				,-0.340947
+				,-1.04184e-007
+				,-0.92388
+				,-0.382683
+				,-1.08042e-007
+				,-1
+				,0
+				,-0.45413
+				,-0.890936
+				,0
+				,-0.45413
+				,-0.823117
+				,-0.340946
+				,-1.04184e-007
+				,-0.92388
+				,-0.382683
+				,0.454128
+				,-0.823118
+				,-0.340947
+				,-1.04184e-007
+				,-0.92388
+				,-0.382683
+				,-1.02254e-007
+				,-0.707107
+				,-0.707107
+				,0.454128
+				,-0.629987
+				,-0.629987
+				,-1.04184e-007
+				,-0.92388
+				,-0.382683
+				,-0.45413
+				,-0.823117
+				,-0.340946
+				,-1.02254e-007
+				,-0.707107
+				,-0.707107
+				,-0.45413
+				,-0.629987
+				,-0.629987
+				,0.454128
+				,-0.629987
+				,-0.629987
+				,-1.02254e-007
+				,-0.707107
+				,-0.707107
+				,0.454129
+				,-0.340947
+				,-0.823118
+				,-1.00325e-007
+				,-0.382684
+				,-0.923879
+				,-1.02254e-007
+				,-0.707107
+				,-0.707107
+				,-0.45413
+				,-0.629987
+				,-0.629987
+				,-0.45413
+				,-0.340947
+				,-0.823117
+				,-1.00325e-007
+				,-0.382684
+				,-0.923879
+				,0.454129
+				,-0.340947
+				,-0.823118
+				,-1.00325e-007
+				,-0.382684
+				,-0.923879
+				,-1.04184e-007
+				,0
+				,-1
+				,0.454129
+				,0
+				,-0.890936
+				,-1.00325e-007
+				,-0.382684
+				,-0.923879
+				,-0.45413
+				,-0.340947
+				,-0.823117
+				,-1.04184e-007
+				,0
+				,-1
+				,-0.45413
+				,0
+				,-0.890935
+				,0.454129
+				,0
+				,-0.890936
+				,-1.04184e-007
+				,0
+				,-1
+				,0.454129
+				,0.340947
+				,-0.823118
+				,-1.00325e-007
+				,0.382684
+				,-0.92388
+				,-1.04184e-007
+				,0
+				,-1
+				,-0.45413
+				,0
+				,-0.890935
+				,-0.45413
+				,0.340946
+				,-0.823117
+				,-1.00325e-007
+				,0.382684
+				,-0.92388
+				,0.454129
+				,0.340947
+				,-0.823118
+				,-1.00325e-007
+				,0.382684
+				,-0.92388
+				,-1.00325e-007
+				,0.707107
+				,-0.707107
+				,0.454129
+				,0.629987
+				,-0.629987
+				,-1.00325e-007
+				,0.382684
+				,-0.92388
+				,-0.45413
+				,0.340946
+				,-0.823117
+				,-1.00325e-007
+				,0.707107
+				,-0.707107
+				,-0.45413
+				,0.629986
+				,-0.629987
+				,0.454129
+				,0.629987
+				,-0.629987
+				,-1.00325e-007
+				,0.707107
+				,-0.707107
+				,0.454129
+				,0.823118
+				,-0.340947
+				,-1.04184e-007
+				,0.92388
+				,-0.382683
+				,-1.00325e-007
+				,0.707107
+				,-0.707107
+				,-0.45413
+				,0.629986
+				,-0.629987
+				,-0.45413
+				,0.823117
+				,-0.340946
+				,-1.04184e-007
+				,0.92388
+				,-0.382683
+				,0.454129
+				,0.823118
+				,-0.340947
+				,-1.04184e-007
+				,0.92388
+				,-0.382683
+				,-1.04184e-007
+				,1
+				,0
+				,0.454129
+				,0.890936
+				,0
+				,-1.04184e-007
+				,0.92388
+				,-0.382683
+				,-0.45413
+				,0.823117
+				,-0.340946
+				,-1.04184e-007
+				,1
+				,0
+				,-0.45413
+				,0.890935
+				,0
+			]
+			,"tangents": [
+				 -0.040663
+				,-0.000383586
+				,-0.999173
+				,-0.258808
+				,0.00523812
+				,-0.965914
+				,0
+				,3.57869e-008
+				,-1
+				,-2.18394e-007
+				,-9.1843e-008
+				,-1
+				,0
+				,-4.76878e-008
+				,-1
+				,-0.159762
+				,0.00365147
+				,-0.987149
+				,0.0342898
+				,-0.00258663
+				,-0.999409
+				,0.0552983
+				,-0.0281864
+				,-0.998072
+				,0.414342
+				,0.143659
+				,-0.898712
+				,-0.0602478
+				,0.00976604
+				,-0.998136
+				,-0.055298
+				,-0.0281863
+				,-0.998072
+				,-0.41434
+				,0.143659
+				,-0.898712
+				,-0.411744
+				,0.0185513
+				,-0.911111
+				,-0.388404
+				,0.016836
+				,-0.921335
+				,0.106503
+				,0.0024515
+				,-0.994309
+				,0.709306
+				,0.17223
+				,-0.683536
+				,-0.709305
+				,0.172231
+				,-0.683537
+				,-0.498671
+				,0.0170538
+				,-0.866624
+				,-0.365282
+				,0.010367
+				,-0.930839
+				,0.852957
+				,0.100491
+				,-0.512216
+				,-0.226287
+				,0.058902
+				,-0.972278
+				,-0.852957
+				,0.100491
+				,-0.512217
+				,-0.520791
+				,-0.00404867
+				,-0.853675
+				,-0.519066
+				,1.53965e-007
+				,-0.854734
+				,0.116767
+				,-0.00323018
+				,-0.993154
+				,0.890936
+				,0
+				,-0.454128
+				,-0.890936
+				,0
+				,-0.454129
+				,-0.476485
+				,-0.0201484
+				,-0.878952
+				,-0.365282
+				,-0.010367
+				,-0.930839
+				,0.854508
+				,-0.0947999
+				,-0.510714
+				,-0.266827
+				,-0.0325038
+				,-0.963196
+				,-0.854507
+				,-0.0948002
+				,-0.510715
+				,-0.368075
+				,-0.0141367
+				,-0.929689
+				,-0.388405
+				,-0.0168355
+				,-0.921335
+				,0.0592952
+				,0.00217883
+				,-0.998238
+				,0.731654
+				,-0.139776
+				,-0.667191
+				,-0.731653
+				,-0.139777
+				,-0.667193
+				,-0.191516
+				,-0.0017315
+				,-0.981488
+				,-0.159762
+				,-0.00365032
+				,-0.987149
+				,0.263324
+				,-0.241582
+				,-0.933969
+				,-0.143103
+				,-0.0331642
+				,-0.989152
+				,-0.458106
+				,-0.112487
+				,-0.881751
+				,0.0406642
+				,-0.000384465
+				,-0.999173
+				,-2.64718e-007
+				,1.77027e-007
+				,-1
+				,-0.0335702
+				,0.00349361
+				,-0.99943
+				,0.0330475
+				,0.0168447
+				,-0.999312
+				,-0.0552993
+				,0.028187
+				,-0.998072
+				,0.258811
+				,0.00523932
+				,-0.965914
+				,0.159762
+				,0.00364994
+				,-0.987149
+				,-0.236441
+				,0.257616
+				,-0.936872
+				,0.060244
+				,0.00976536
+				,-0.998136
+				,0.414343
+				,0.143657
+				,-0.898712
+				,0.411752
+				,0.0185537
+				,-0.911107
+				,0.388404
+				,0.0168356
+				,-0.921335
+				,-0.106499
+				,0.00245157
+				,-0.99431
+				,-0.709306
+				,0.17223
+				,-0.683536
+				,0.709305
+				,0.17223
+				,-0.683537
+				,0.498675
+				,0.017055
+				,-0.866621
+				,0.365281
+				,0.0103668
+				,-0.93084
+				,-0.852957
+				,0.10049
+				,-0.512217
+				,0.226296
+				,0.0589057
+				,-0.972276
+				,0.852956
+				,0.100491
+				,-0.512218
+				,0.520792
+				,-0.00404838
+				,-0.853674
+				,0.519064
+				,-1.4181e-007
+				,-0.854735
+				,-0.116762
+				,-0.00322989
+				,-0.993155
+				,-0.890936
+				,0
+				,-0.454129
+				,0.890935
+				,0
+				,-0.45413
+				,0.476479
+				,-0.020147
+				,-0.878955
+				,0.365281
+				,-0.010367
+				,-0.93084
+				,-0.854507
+				,-0.0948012
+				,-0.510715
+				,0.266826
+				,-0.0325031
+				,-0.963196
+				,0.854506
+				,-0.0948015
+				,-0.510717
+				,0.368066
+				,-0.0141348
+				,-0.929692
+				,0.388404
+				,-0.016836
+				,-0.921335
+				,-0.0592997
+				,0.00217925
+				,-0.998238
+				,-0.731653
+				,-0.139777
+				,-0.667192
+				,0.731652
+				,-0.139778
+				,-0.667194
+				,0.191519
+				,-0.00172977
+				,-0.981487
+				,0.159761
+				,-0.00365147
+				,-0.987149
+				,-0.458105
+				,-0.112489
+				,-0.881752
+				,0.143095
+				,-0.033162
+				,-0.989153
+				,0.458104
+				,-0.112489
+				,-0.881752
+				,0.0268145
+				,-0.0136682
+				,0.999547
+				,-2.30261e-009
+				,-1.46002e-007
+				,1
+				,-0.0160933
+				,-0.375042
+				,0.926868
+				,4.14468e-009
+				,-0.382684
+				,0.923879
+				,-2.30261e-009
+				,-1.46002e-007
+				,1
+				,-0.0268146
+				,-0.0136683
+				,0.999547
+				,0.0160933
+				,-0.375042
+				,0.926868
+				,4.14468e-009
+				,-0.382684
+				,0.923879
+				,-0.0160933
+				,-0.375042
+				,0.926868
+				,4.14468e-009
+				,-0.382684
+				,0.923879
+				,2.3026e-009
+				,-0.707107
+				,0.707107
+				,-0.0268147
+				,-0.697122
+				,0.716451
+				,4.14468e-009
+				,-0.382684
+				,0.923879
+				,0.0160933
+				,-0.375042
+				,0.926868
+				,2.3026e-009
+				,-0.707107
+				,0.707107
+				,0.0268147
+				,-0.697122
+				,0.716451
+				,-0.0268147
+				,-0.697122
+				,0.716451
+				,2.3026e-009
+				,-0.707107
+				,0.707107
+				,-0.0160932
+				,-0.92059
+				,0.390199
+				,4.14469e-009
+				,-0.923879
+				,0.382684
+				,2.3026e-009
+				,-0.707107
+				,0.707107
+				,0.0268147
+				,-0.697122
+				,0.716451
+				,0.0160932
+				,-0.92059
+				,0.390199
+				,4.14469e-009
+				,-0.923879
+				,0.382684
+				,-0.0160932
+				,-0.92059
+				,0.390199
+				,4.14469e-009
+				,-0.923879
+				,0.382684
+				,2.3026e-009
+				,-1
+				,0
+				,-0.0268145
+				,-0.999547
+				,0.0136679
+				,4.14469e-009
+				,-0.923879
+				,0.382684
+				,0.0160932
+				,-0.92059
+				,0.390199
+				,2.3026e-009
+				,-1
+				,0
+				,0.0268146
+				,-0.999547
+				,0.013668
+				,-0.0268145
+				,-0.999547
+				,0.0136679
+				,2.3026e-009
+				,-1
+				,0
+				,-0.0160933
+				,-0.926868
+				,-0.375042
+				,3.99119e-009
+				,-0.923879
+				,-0.382684
+				,2.3026e-009
+				,-1
+				,0
+				,0.0268146
+				,-0.999547
+				,0.013668
+				,0.0160933
+				,-0.926868
+				,-0.375042
+				,3.99119e-009
+				,-0.923879
+				,-0.382684
+				,-0.0160933
+				,-0.926868
+				,-0.375042
+				,3.99119e-009
+				,-0.923879
+				,-0.382684
+				,2.21731e-009
+				,-0.707107
+				,-0.707107
+				,-0.0268146
+				,-0.716451
+				,-0.697122
+				,3.99119e-009
+				,-0.923879
+				,-0.382684
+				,0.0160933
+				,-0.926868
+				,-0.375042
+				,2.21731e-009
+				,-0.707107
+				,-0.707107
+				,0.0268146
+				,-0.716451
+				,-0.697121
+				,-0.0268146
+				,-0.716451
+				,-0.697122
+				,2.21731e-009
+				,-0.707107
+				,-0.707107
+				,0.263324
+				,-0.241582
+				,-0.933969
+				,4.1447e-009
+				,-0.382684
+				,-0.923879
+				,2.21731e-009
+				,-0.707107
+				,-0.707107
+				,0.0268146
+				,-0.716451
+				,-0.697121
+				,0.0160934
+				,-0.3902
+				,-0.92059
+				,4.1447e-009
+				,-0.382684
+				,-0.923879
+				,0.263324
+				,-0.241582
+				,-0.933969
+				,4.1447e-009
+				,-0.382684
+				,-0.923879
+				,2.34524e-009
+				,-1.46002e-007
+				,-1
+				,0.0330475
+				,0.0168447
+				,-0.999312
+				,4.1447e-009
+				,-0.382684
+				,-0.923879
+				,0.0160934
+				,-0.3902
+				,-0.92059
+				,2.34524e-009
+				,-1.46002e-007
+				,-1
+				,0.0268145
+				,-0.0136682
+				,-0.999547
+				,0.0330475
+				,0.0168447
+				,-0.999312
+				,2.34524e-009
+				,-1.46002e-007
+				,-1
+				,-0.236441
+				,0.257616
+				,-0.936872
+				,4.14468e-009
+				,0.382683
+				,-0.92388
+				,2.34524e-009
+				,-1.46002e-007
+				,-1
+				,0.0268145
+				,-0.0136682
+				,-0.999547
+				,0.0160934
+				,0.375042
+				,-0.926868
+				,4.14468e-009
+				,0.382683
+				,-0.92388
+				,-0.236441
+				,0.257616
+				,-0.936872
+				,4.14468e-009
+				,0.382683
+				,-0.92388
+				,2.21732e-009
+				,0.707107
+				,-0.707107
+				,-0.0268144
+				,0.697122
+				,-0.716451
+				,4.14468e-009
+				,0.382683
+				,-0.92388
+				,0.0160934
+				,0.375042
+				,-0.926868
+				,2.21732e-009
+				,0.707107
+				,-0.707107
+				,0.0268145
+				,0.697122
+				,-0.716451
+				,-0.0268144
+				,0.697122
+				,-0.716451
+				,2.21732e-009
+				,0.707107
+				,-0.707107
+				,-0.0160934
+				,0.92059
+				,-0.3902
+				,3.9912e-009
+				,0.923879
+				,-0.382684
+				,2.21732e-009
+				,0.707107
+				,-0.707107
+				,0.0268145
+				,0.697122
+				,-0.716451
+				,0.0160934
+				,0.92059
+				,-0.3902
+				,3.9912e-009
+				,0.923879
+				,-0.382684
+				,-0.0160934
+				,0.92059
+				,-0.3902
+				,3.9912e-009
+				,0.923879
+				,-0.382684
+				,2.3026e-009
+				,1
+				,0
+				,-0.0268146
+				,0.999547
+				,-0.0136679
+				,3.9912e-009
+				,0.923879
+				,-0.382684
+				,0.0160934
+				,0.92059
+				,-0.3902
+				,2.3026e-009
+				,1
+				,0
+				,0.0268146
+				,0.999547
+				,-0.013668
+				,-0.0268146
+				,0.999547
+				,-0.0136679
+				,2.3026e-009
+				,1
+				,0
+				,-0.0160933
+				,0.926868
+				,0.375042
+				,3.99119e-009
+				,0.92388
+				,0.382683
+				,2.3026e-009
+				,1
+				,0
+				,0.0268146
+				,0.999547
+				,-0.013668
+				,0.0160933
+				,0.926868
+				,0.375042
+				,3.99119e-009
+				,0.92388
+				,0.382683
+				,-0.0160933
+				,0.926868
+				,0.375042
+				,3.99119e-009
+				,0.92388
+				,0.382683
+				,2.25996e-009
+				,0.707107
+				,0.707107
+				,-0.0268145
+				,0.716451
+				,0.697122
+				,3.99119e-009
+				,0.92388
+				,0.382683
+				,0.0160933
+				,0.926868
+				,0.375042
+				,2.25996e-009
+				,0.707107
+				,0.707107
+				,0.0268146
+				,0.716451
+				,0.697122
+				,-0.0268145
+				,0.716451
+				,0.697122
+				,2.25996e-009
+				,0.707107
+				,0.707107
+				,-0.0160933
+				,0.3902
+				,0.92059
+				,4.14468e-009
+				,0.382683
+				,0.92388
+				,2.25996e-009
+				,0.707107
+				,0.707107
+				,0.0268146
+				,0.716451
+				,0.697122
+				,0.0160934
+				,0.3902
+				,0.92059
+				,4.14468e-009
+				,0.382683
+				,0.92388
+				,-0.0160933
+				,0.3902
+				,0.92059
+				,4.14468e-009
+				,0.382683
+				,0.92388
+				,-2.30261e-009
+				,-1.46002e-007
+				,1
+				,0.0268145
+				,-0.0136682
+				,0.999547
+				,4.14468e-009
+				,0.382683
+				,0.92388
+				,0.0160934
+				,0.3902
+				,0.92059
+				,-2.30261e-009
+				,-1.46002e-007
+				,1
+				,-0.0268146
+				,-0.0136683
+				,0.999547
+				,0
+				,2.77056e-008
+				,-1
+				,0.258809
+				,0.00523812
+				,-0.965914
+				,0.0406628
+				,-0.000383594
+				,-0.999173
+				,0.159762
+				,0.00365148
+				,-0.987149
+				,0
+				,-5.1428e-008
+				,-1
+				,5.07272e-008
+				,-8.86392e-008
+				,-1
+				,-0.414342
+				,0.143659
+				,-0.898712
+				,-0.055298
+				,-0.0281865
+				,-0.998072
+				,-0.0342897
+				,-0.00258663
+				,-0.999409
+				,0.0602476
+				,0.00976604
+				,-0.998136
+				,0.414341
+				,0.143659
+				,-0.898712
+				,0.0552976
+				,-0.0281864
+				,-0.998072
+				,0.411744
+				,0.0185513
+				,-0.911111
+				,0.388404
+				,0.016836
+				,-0.921335
+				,-0.106503
+				,0.00245147
+				,-0.994309
+				,-0.709306
+				,0.17223
+				,-0.683536
+				,0.709305
+				,0.17223
+				,-0.683537
+				,0.498671
+				,0.0170538
+				,-0.866624
+				,0.365281
+				,0.0103669
+				,-0.930839
+				,-0.852957
+				,0.100491
+				,-0.512216
+				,0.226288
+				,0.0589018
+				,-0.972278
+				,0.852956
+				,0.100492
+				,-0.512218
+				,0.520791
+				,-0.00404873
+				,-0.853674
+				,0.519065
+				,1.4181e-007
+				,-0.854735
+				,-0.116765
+				,-0.00323027
+				,-0.993154
+				,-0.890936
+				,0
+				,-0.454129
+				,0.890935
+				,0
+				,-0.45413
+				,0.476485
+				,-0.0201484
+				,-0.878952
+				,0.365281
+				,-0.0103669
+				,-0.930839
+				,-0.854508
+				,-0.0948003
+				,-0.510715
+				,0.266828
+				,-0.032504
+				,-0.963196
+				,0.854507
+				,-0.0948007
+				,-0.510716
+				,0.368075
+				,-0.0141367
+				,-0.929689
+				,0.388405
+				,-0.0168355
+				,-0.921335
+				,-0.0592949
+				,0.00217878
+				,-0.998238
+				,-0.731654
+				,-0.139776
+				,-0.667192
+				,0.731653
+				,-0.139777
+				,-0.667193
+				,0.191515
+				,-0.00173153
+				,-0.981488
+				,0.159762
+				,-0.00365034
+				,-0.987149
+				,-0.263324
+				,-0.241582
+				,-0.933969
+				,0.143103
+				,-0.0331642
+				,-0.989152
+				,0.458106
+				,-0.112487
+				,-0.881751
+				,-0.0406643
+				,-0.000384468
+				,-0.999173
+				,1.08396e-007
+				,1.75142e-007
+				,-1
+				,0.0335703
+				,0.00349361
+				,-0.99943
+				,-0.0330473
+				,0.0168449
+				,-0.999312
+				,0.0552989
+				,0.0281871
+				,-0.998072
+				,-0.258811
+				,0.00523935
+				,-0.965914
+				,-0.159762
+				,0.00364992
+				,-0.987149
+				,0.236441
+				,0.257617
+				,-0.936872
+				,-0.0602438
+				,0.0097654
+				,-0.998136
+				,-0.414343
+				,0.143657
+				,-0.898711
+				,-0.411752
+				,0.0185537
+				,-0.911107
+				,-0.388404
+				,0.0168356
+				,-0.921335
+				,0.106499
+				,0.00245158
+				,-0.99431
+				,0.709307
+				,0.17223
+				,-0.683536
+				,-0.709305
+				,0.17223
+				,-0.683537
+				,-0.498674
+				,0.0170549
+				,-0.866622
+				,-0.365281
+				,0.0103669
+				,-0.930839
+				,0.852957
+				,0.10049
+				,-0.512216
+				,-0.226295
+				,0.0589055
+				,-0.972276
+				,-0.852957
+				,0.100491
+				,-0.512218
+				,-0.52079
+				,-0.00404831
+				,-0.853675
+				,-0.519065
+				,-1.53965e-007
+				,-0.854735
+				,0.116764
+				,-0.00322987
+				,-0.993154
+				,0.890936
+				,0
+				,-0.454129
+				,-0.890935
+				,0
+				,-0.45413
+				,-0.476478
+				,-0.020147
+				,-0.878955
+				,-0.365281
+				,-0.0103671
+				,-0.930839
+				,0.854508
+				,-0.094801
+				,-0.510715
+				,-0.266824
+				,-0.0325028
+				,-0.963197
+				,-0.854507
+				,-0.0948013
+				,-0.510716
+				,-0.368067
+				,-0.0141349
+				,-0.929692
+				,-0.388404
+				,-0.016836
+				,-0.921335
+				,0.0592997
+				,0.00217923
+				,-0.998238
+				,0.731653
+				,-0.139777
+				,-0.667192
+				,-0.731652
+				,-0.139777
+				,-0.667194
+				,-0.191519
+				,-0.00172977
+				,-0.981487
+				,-0.159762
+				,-0.00365147
+				,-0.987149
+				,0.458106
+				,-0.112489
+				,-0.881751
+				,-0.143095
+				,-0.0331621
+				,-0.989153
+				,-0.458104
+				,-0.112489
+				,-0.881752
+				,0.0160933
+				,-0.375042
+				,0.926868
+				,2.30261e-009
+				,0
+				,1
+				,-0.0268145
+				,-0.0136679
+				,0.999547
+				,-4.14468e-009
+				,-0.382684
+				,0.92388
+				,-0.0160934
+				,-0.375042
+				,0.926868
+				,0.0268146
+				,-0.013668
+				,0.999547
+				,2.30261e-009
+				,0
+				,1
+				,-4.14468e-009
+				,-0.382684
+				,0.92388
+				,-2.21733e-009
+				,-0.707107
+				,0.707107
+				,-4.14468e-009
+				,-0.382684
+				,0.92388
+				,0.0160933
+				,-0.375042
+				,0.926868
+				,0.0268145
+				,-0.697122
+				,0.716451
+				,-2.21733e-009
+				,-0.707107
+				,0.707107
+				,-0.0160934
+				,-0.375042
+				,0.926868
+				,-4.14468e-009
+				,-0.382684
+				,0.92388
+				,-0.0268146
+				,-0.697122
+				,0.716451
+				,0.0160933
+				,-0.92059
+				,0.3902
+				,-2.21733e-009
+				,-0.707107
+				,0.707107
+				,0.0268145
+				,-0.697122
+				,0.716451
+				,-3.99117e-009
+				,-0.92388
+				,0.382684
+				,-0.0160933
+				,-0.92059
+				,0.3902
+				,-0.0268146
+				,-0.697122
+				,0.716451
+				,-2.21733e-009
+				,-0.707107
+				,0.707107
+				,-3.99117e-009
+				,-0.92388
+				,0.382684
+				,-2.30261e-009
+				,-1
+				,0
+				,-3.99117e-009
+				,-0.92388
+				,0.382684
+				,0.0160933
+				,-0.92059
+				,0.3902
+				,0.0268145
+				,-0.999547
+				,0.0136679
+				,-2.30261e-009
+				,-1
+				,0
+				,-0.0160933
+				,-0.92059
+				,0.3902
+				,-3.99117e-009
+				,-0.92388
+				,0.382684
+				,-0.0268146
+				,-0.999547
+				,0.013668
+				,0.0160933
+				,-0.926868
+				,-0.375043
+				,-2.30261e-009
+				,-1
+				,0
+				,0.0268145
+				,-0.999547
+				,0.0136679
+				,-3.99117e-009
+				,-0.923879
+				,-0.382684
+				,-0.0160934
+				,-0.926868
+				,-0.375043
+				,-0.0268146
+				,-0.999547
+				,0.013668
+				,-2.30261e-009
+				,-1
+				,0
+				,-3.99117e-009
+				,-0.923879
+				,-0.382684
+				,-2.25996e-009
+				,-0.707107
+				,-0.707107
+				,-3.99117e-009
+				,-0.923879
+				,-0.382684
+				,0.0160933
+				,-0.926868
+				,-0.375043
+				,0.0268144
+				,-0.716451
+				,-0.697122
+				,-2.25996e-009
+				,-0.707107
+				,-0.707107
+				,-0.0160934
+				,-0.926868
+				,-0.375043
+				,-3.99117e-009
+				,-0.923879
+				,-0.382684
+				,-0.0268145
+				,-0.716451
+				,-0.697122
+				,-0.263324
+				,-0.241582
+				,-0.933969
+				,-2.25996e-009
+				,-0.707107
+				,-0.707107
+				,0.0268144
+				,-0.716451
+				,-0.697122
+				,-4.14469e-009
+				,-0.382684
+				,-0.92388
+				,-0.0160934
+				,-0.3902
+				,-0.92059
+				,-0.0268145
+				,-0.716451
+				,-0.697122
+				,-2.25996e-009
+				,-0.707107
+				,-0.707107
+				,-4.14469e-009
+				,-0.382684
+				,-0.92388
+				,-2.38788e-009
+				,0
+				,-1
+				,-4.14469e-009
+				,-0.382684
+				,-0.92388
+				,-0.263324
+				,-0.241582
+				,-0.933969
+				,-0.0330473
+				,0.0168449
+				,-0.999312
+				,-2.38788e-009
+				,0
+				,-1
+				,-0.0160934
+				,-0.3902
+				,-0.92059
+				,-4.14469e-009
+				,-0.382684
+				,-0.92388
+				,-0.0268145
+				,-0.0136679
+				,-0.999547
+				,0.236441
+				,0.257617
+				,-0.936872
+				,-2.38788e-009
+				,0
+				,-1
+				,-0.0330473
+				,0.0168449
+				,-0.999312
+				,-4.14469e-009
+				,0.382684
+				,-0.92388
+				,-0.0160934
+				,0.375042
+				,-0.926868
+				,-0.0268145
+				,-0.0136679
+				,-0.999547
+				,-2.38788e-009
+				,0
+				,-1
+				,-4.14469e-009
+				,0.382684
+				,-0.92388
+				,-2.25996e-009
+				,0.707107
+				,-0.707107
+				,-4.14469e-009
+				,0.382684
+				,-0.92388
+				,0.236441
+				,0.257617
+				,-0.936872
+				,0.0268144
+				,0.697122
+				,-0.716451
+				,-2.25996e-009
+				,0.707107
+				,-0.707107
+				,-0.0160934
+				,0.375042
+				,-0.926868
+				,-4.14469e-009
+				,0.382684
+				,-0.92388
+				,-0.0268145
+				,0.697122
+				,-0.716451
+				,0.0160933
+				,0.92059
+				,-0.3902
+				,-2.25996e-009
+				,0.707107
+				,-0.707107
+				,0.0268144
+				,0.697122
+				,-0.716451
+				,-3.99118e-009
+				,0.923879
+				,-0.382684
+				,-0.0160934
+				,0.920589
+				,-0.3902
+				,-0.0268145
+				,0.697122
+				,-0.716451
+				,-2.25996e-009
+				,0.707107
+				,-0.707107
+				,-3.99118e-009
+				,0.923879
+				,-0.382684
+				,-2.30261e-009
+				,1
+				,0
+				,-3.99118e-009
+				,0.923879
+				,-0.382684
+				,0.0160933
+				,0.92059
+				,-0.3902
+				,0.0268145
+				,0.999547
+				,-0.0136679
+				,-2.30261e-009
+				,1
+				,0
+				,-0.0160934
+				,0.920589
+				,-0.3902
+				,-3.99118e-009
+				,0.923879
+				,-0.382684
+				,-0.0268146
+				,0.999547
+				,-0.013668
+				,0.0160933
+				,0.926868
+				,0.375042
+				,-2.30261e-009
+				,1
+				,0
+				,0.0268145
+				,0.999547
+				,-0.0136679
+				,-3.99117e-009
+				,0.92388
+				,0.382684
+				,-0.0160933
+				,0.926868
+				,0.375042
+				,-0.0268146
+				,0.999547
+				,-0.013668
+				,-2.30261e-009
+				,1
+				,0
+				,-3.99117e-009
+				,0.92388
+				,0.382684
+				,-2.21732e-009
+				,0.707107
+				,0.707107
+				,-3.99117e-009
+				,0.92388
+				,0.382684
+				,0.0160933
+				,0.926868
+				,0.375042
+				,0.0268145
+				,0.716451
+				,0.697122
+				,-2.21732e-009
+				,0.707107
+				,0.707107
+				,-0.0160933
+				,0.926868
+				,0.375042
+				,-3.99117e-009
+				,0.92388
+				,0.382684
+				,-0.0268145
+				,0.716451
+				,0.697122
+				,0.0160933
+				,0.3902
+				,0.92059
+				,-2.21732e-009
+				,0.707107
+				,0.707107
+				,0.0268145
+				,0.716451
+				,0.697122
+				,-4.14468e-009
+				,0.382684
+				,0.92388
+				,-0.0160933
+				,0.3902
+				,0.92059
+				,-0.0268145
+				,0.716451
+				,0.697122
+				,-2.21732e-009
+				,0.707107
+				,0.707107
+				,-4.14468e-009
+				,0.382684
+				,0.92388
+				,2.30261e-009
+				,0
+				,1
+				,-4.14468e-009
+				,0.382684
+				,0.92388
+				,0.0160933
+				,0.3902
+				,0.92059
+				,-0.0268145
+				,-0.0136679
+				,0.999547
+				,2.30261e-009
+				,0
+				,1
+				,-0.0160933
+				,0.3902
+				,0.92059
+				,-4.14468e-009
+				,0.382684
+				,0.92388
+				,0.0268146
+				,-0.013668
+				,0.999547
+				,0
+				,2.77061e-008
+				,-1
+				,0.258808
+				,0.00523808
+				,-0.965914
+				,0.040663
+				,-0.000383602
+				,-0.999173
+				,0.159762
+				,0.00365147
+				,-0.987149
+				,0
+				,-5.1428e-008
+				,-1
+				,2.18928e-007
+				,-9.1843e-008
+				,-1
+				,-0.414342
+				,0.143659
+				,-0.898712
+				,-0.0552983
+				,-0.0281864
+				,-0.998072
+				,-0.0342898
+				,-0.00258663
+				,-0.999409
+				,0.0602478
+				,0.00976604
+				,-0.998136
+				,0.41434
+				,0.143659
+				,-0.898712
+				,0.055298
+				,-0.0281863
+				,-0.998072
+				,0.411744
+				,0.0185513
+				,-0.911111
+				,0.388404
+				,0.016836
+				,-0.921335
+				,-0.106503
+				,0.00245148
+				,-0.994309
+				,-0.709306
+				,0.17223
+				,-0.683536
+				,0.709305
+				,0.172231
+				,-0.683537
+				,0.498671
+				,0.0170538
+				,-0.866624
+				,0.365282
+				,0.010367
+				,-0.930839
+				,-0.852957
+				,0.100491
+				,-0.512216
+				,0.226287
+				,0.058902
+				,-0.972278
+				,0.852957
+				,0.100491
+				,-0.512217
+				,0.520791
+				,-0.00404872
+				,-0.853675
+				,0.519066
+				,1.4181e-007
+				,-0.854734
+				,-0.116767
+				,-0.00323026
+				,-0.993154
+				,-0.890936
+				,0
+				,-0.454128
+				,0.890936
+				,0
+				,-0.454129
+				,0.476485
+				,-0.0201484
+				,-0.878952
+				,0.365282
+				,-0.010367
+				,-0.930839
+				,-0.854508
+				,-0.0947999
+				,-0.510714
+				,0.266827
+				,-0.0325038
+				,-0.963196
+				,0.854507
+				,-0.0948003
+				,-0.510715
+				,0.368075
+				,-0.0141367
+				,-0.929689
+				,0.388405
+				,-0.0168356
+				,-0.921335
+				,-0.0592952
+				,0.00217881
+				,-0.998238
+				,-0.731654
+				,-0.139776
+				,-0.667191
+				,0.731653
+				,-0.139777
+				,-0.667193
+				,0.191516
+				,-0.00173149
+				,-0.981488
+				,0.159762
+				,-0.00365033
+				,-0.987149
+				,-0.263324
+				,-0.241582
+				,-0.933969
+				,0.143103
+				,-0.0331642
+				,-0.989152
+				,0.458106
+				,-0.112487
+				,-0.881751
+				,-0.0406642
+				,-0.000384472
+				,-0.999173
+				,2.69121e-007
+				,1.82618e-007
+				,-1
+				,0.0335702
+				,0.00349361
+				,-0.99943
+				,-0.0330475
+				,0.0168447
+				,-0.999312
+				,0.0552993
+				,0.028187
+				,-0.998072
+				,-0.258811
+				,0.00523936
+				,-0.965914
+				,-0.159762
+				,0.00364993
+				,-0.987149
+				,0.236441
+				,0.257616
+				,-0.936872
+				,-0.060244
+				,0.00976536
+				,-0.998136
+				,-0.414343
+				,0.143657
+				,-0.898712
+				,-0.411752
+				,0.0185537
+				,-0.911107
+				,-0.388404
+				,0.0168356
+				,-0.921335
+				,0.106499
+				,0.00245154
+				,-0.99431
+				,0.709307
+				,0.17223
+				,-0.683536
+				,-0.709305
+				,0.17223
+				,-0.683537
+				,-0.498675
+				,0.017055
+				,-0.866621
+				,-0.365281
+				,0.0103668
+				,-0.93084
+				,0.852957
+				,0.10049
+				,-0.512217
+				,-0.226296
+				,0.0589056
+				,-0.972276
+				,-0.852956
+				,0.100491
+				,-0.512218
+				,-0.520792
+				,-0.00404834
+				,-0.853674
+				,-0.519064
+				,-1.53965e-007
+				,-0.854735
+				,0.116762
+				,-0.00322988
+				,-0.993155
+				,0.890936
+				,0
+				,-0.454129
+				,-0.890935
+				,0
+				,-0.45413
+				,-0.476479
+				,-0.020147
+				,-0.878955
+				,-0.365281
+				,-0.010367
+				,-0.93084
+				,0.854507
+				,-0.0948012
+				,-0.510715
+				,-0.266826
+				,-0.0325031
+				,-0.963196
+				,-0.854506
+				,-0.0948015
+				,-0.510717
+				,-0.368066
+				,-0.0141349
+				,-0.929692
+				,-0.388404
+				,-0.016836
+				,-0.921335
+				,0.0592997
+				,0.00217922
+				,-0.998238
+				,0.731653
+				,-0.139777
+				,-0.667192
+				,-0.731652
+				,-0.139778
+				,-0.667194
+				,-0.191519
+				,-0.00172975
+				,-0.981487
+				,-0.159761
+				,-0.00365147
+				,-0.987149
+				,0.458105
+				,-0.112489
+				,-0.881752
+				,-0.143095
+				,-0.033162
+				,-0.989153
+				,-0.458104
+				,-0.112489
+				,-0.881752
+				,0.0160933
+				,-0.375042
+				,0.926868
+				,2.30261e-009
+				,-1.46002e-007
+				,1
+				,-0.0268145
+				,-0.0136682
+				,0.999547
+				,-4.14468e-009
+				,-0.382684
+				,0.923879
+				,-0.0160933
+				,-0.375042
+				,0.926868
+				,0.0268146
+				,-0.0136683
+				,0.999547
+				,2.30261e-009
+				,-1.46002e-007
+				,1
+				,-4.14468e-009
+				,-0.382684
+				,0.923879
+				,-2.3026e-009
+				,-0.707107
+				,0.707107
+				,-4.14468e-009
+				,-0.382684
+				,0.923879
+				,0.0160933
+				,-0.375042
+				,0.926868
+				,0.0268147
+				,-0.697122
+				,0.716451
+				,-2.3026e-009
+				,-0.707107
+				,0.707107
+				,-0.0160933
+				,-0.375042
+				,0.926868
+				,-4.14468e-009
+				,-0.382684
+				,0.923879
+				,-0.0268147
+				,-0.697122
+				,0.716451
+				,0.0160932
+				,-0.92059
+				,0.390199
+				,-2.3026e-009
+				,-0.707107
+				,0.707107
+				,0.0268147
+				,-0.697122
+				,0.716451
+				,-4.14469e-009
+				,-0.923879
+				,0.382683
+				,-0.0160932
+				,-0.92059
+				,0.390199
+				,-0.0268147
+				,-0.697122
+				,0.716451
+				,-2.3026e-009
+				,-0.707107
+				,0.707107
+				,-4.14469e-009
+				,-0.923879
+				,0.382683
+				,-2.3026e-009
+				,-1
+				,0
+				,-4.14469e-009
+				,-0.923879
+				,0.382683
+				,0.0160932
+				,-0.92059
+				,0.390199
+				,0.0268145
+				,-0.999547
+				,0.0136679
+				,-2.3026e-009
+				,-1
+				,0
+				,-0.0160932
+				,-0.92059
+				,0.390199
+				,-4.14469e-009
+				,-0.923879
+				,0.382683
+				,-0.0268146
+				,-0.999547
+				,0.013668
+				,0.0160933
+				,-0.926868
+				,-0.375042
+				,-2.3026e-009
+				,-1
+				,0
+				,0.0268145
+				,-0.999547
+				,0.0136679
+				,-3.99119e-009
+				,-0.923879
+				,-0.382684
+				,-0.0160933
+				,-0.926868
+				,-0.375042
+				,-0.0268146
+				,-0.999547
+				,0.013668
+				,-2.3026e-009
+				,-1
+				,0
+				,-3.99119e-009
+				,-0.923879
+				,-0.382684
+				,-2.21731e-009
+				,-0.707107
+				,-0.707107
+				,-3.99119e-009
+				,-0.923879
+				,-0.382684
+				,0.0160933
+				,-0.926868
+				,-0.375042
+				,0.0268146
+				,-0.716451
+				,-0.697122
+				,-2.21731e-009
+				,-0.707107
+				,-0.707107
+				,-0.0160933
+				,-0.926868
+				,-0.375042
+				,-3.99119e-009
+				,-0.923879
+				,-0.382684
+				,-0.0268146
+				,-0.716451
+				,-0.697121
+				,-0.263324
+				,-0.241582
+				,-0.933969
+				,-2.21731e-009
+				,-0.707107
+				,-0.707107
+				,0.0268146
+				,-0.716451
+				,-0.697122
+				,-4.1447e-009
+				,-0.382684
+				,-0.923879
+				,-0.0160934
+				,-0.3902
+				,-0.92059
+				,-0.0268146
+				,-0.716451
+				,-0.697121
+				,-2.21731e-009
+				,-0.707107
+				,-0.707107
+				,-4.1447e-009
+				,-0.382684
+				,-0.923879
+				,-2.34524e-009
+				,-1.46002e-007
+				,-1
+				,-4.1447e-009
+				,-0.382684
+				,-0.923879
+				,-0.263324
+				,-0.241582
+				,-0.933969
+				,-0.0330475
+				,0.0168447
+				,-0.999312
+				,-2.34524e-009
+				,-1.46002e-007
+				,-1
+				,-0.0160934
+				,-0.3902
+				,-0.92059
+				,-4.1447e-009
+				,-0.382684
+				,-0.923879
+				,-0.0268145
+				,-0.0136682
+				,-0.999547
+				,0.236441
+				,0.257616
+				,-0.936872
+				,-2.34524e-009
+				,-1.46002e-007
+				,-1
+				,-0.0330475
+				,0.0168447
+				,-0.999312
+				,-4.14468e-009
+				,0.382683
+				,-0.92388
+				,-0.0160934
+				,0.375042
+				,-0.926868
+				,-0.0268145
+				,-0.0136682
+				,-0.999547
+				,-2.34524e-009
+				,-1.46002e-007
+				,-1
+				,-4.14468e-009
+				,0.382683
+				,-0.92388
+				,-2.21732e-009
+				,0.707107
+				,-0.707107
+				,-4.14468e-009
+				,0.382683
+				,-0.92388
+				,0.236441
+				,0.257616
+				,-0.936872
+				,0.0268144
+				,0.697122
+				,-0.716451
+				,-2.21732e-009
+				,0.707107
+				,-0.707107
+				,-0.0160934
+				,0.375042
+				,-0.926868
+				,-4.14468e-009
+				,0.382683
+				,-0.92388
+				,-0.0268145
+				,0.697122
+				,-0.716451
+				,0.0160934
+				,0.92059
+				,-0.3902
+				,-2.21732e-009
+				,0.707107
+				,-0.707107
+				,0.0268144
+				,0.697122
+				,-0.716451
+				,-3.9912e-009
+				,0.923879
+				,-0.382684
+				,-0.0160934
+				,0.92059
+				,-0.3902
+				,-0.0268145
+				,0.697122
+				,-0.716451
+				,-2.21732e-009
+				,0.707107
+				,-0.707107
+				,-3.9912e-009
+				,0.923879
+				,-0.382684
+				,-2.3026e-009
+				,1
+				,0
+				,-3.9912e-009
+				,0.923879
+				,-0.382684
+				,0.0160934
+				,0.92059
+				,-0.3902
+				,0.0268146
+				,0.999547
+				,-0.0136679
+				,-2.3026e-009
+				,1
+				,0
+				,-0.0160934
+				,0.92059
+				,-0.3902
+				,-3.9912e-009
+				,0.923879
+				,-0.382684
+				,-0.0268146
+				,0.999547
+				,-0.013668
+				,0.0160933
+				,0.926868
+				,0.375042
+				,-2.3026e-009
+				,1
+				,0
+				,0.0268146
+				,0.999547
+				,-0.0136679
+				,-3.99119e-009
+				,0.92388
+				,0.382683
+				,-0.0160933
+				,0.926868
+				,0.375042
+				,-0.0268146
+				,0.999547
+				,-0.013668
+				,-2.3026e-009
+				,1
+				,0
+				,-3.99119e-009
+				,0.92388
+				,0.382683
+				,-2.25996e-009
+				,0.707107
+				,0.707107
+				,-3.99119e-009
+				,0.92388
+				,0.382683
+				,0.0160933
+				,0.926868
+				,0.375042
+				,0.0268145
+				,0.716451
+				,0.697122
+				,-2.25996e-009
+				,0.707107
+				,0.707107
+				,-0.0160933
+				,0.926868
+				,0.375042
+				,-3.99119e-009
+				,0.92388
+				,0.382683
+				,-0.0268145
+				,0.716451
+				,0.697122
+				,0.0160933
+				,0.3902
+				,0.92059
+				,-2.25996e-009
+				,0.707107
+				,0.707107
+				,0.0268145
+				,0.716451
+				,0.697122
+				,-4.14468e-009
+				,0.382683
+				,0.92388
+				,-0.0160934
+				,0.3902
+				,0.92059
+				,-0.0268145
+				,0.716451
+				,0.697122
+				,-2.25996e-009
+				,0.707107
+				,0.707107
+				,-4.14468e-009
+				,0.382683
+				,0.92388
+				,2.30261e-009
+				,-1.46002e-007
+				,1
+				,-4.14468e-009
+				,0.382683
+				,0.92388
+				,0.0160933
+				,0.3902
+				,0.92059
+				,-0.0268145
+				,-0.0136682
+				,0.999547
+				,2.30261e-009
+				,-1.46002e-007
+				,1
+				,-0.0160934
+				,0.3902
+				,0.92059
+				,-4.14468e-009
+				,0.382683
+				,0.92388
+				,0.0268146
+				,-0.0136683
+				,0.999547
+				,-0.70793
+				,0.594509
+				,-0.381305
+				,0.670362
+				,0.541335
+				,-0.507515
+				,-0.70793
+				,0.594509
+				,-0.381305
+				,0.670362
+				,0.541335
+				,-0.507514
+				,0.70793
+				,0.59451
+				,-0.381303
+				,-0.670362
+				,0.541335
+				,-0.507514
+				,0.70793
+				,0.59451
+				,-0.381304
+				,-0.670361
+				,0.541334
+				,-0.507516
+				,-0.708743
+				,-0.61827
+				,0.339744
+				,-0.708743
+				,-0.61827
+				,0.339744
+				,-0.708743
+				,0.61827
+				,-0.339744
+				,-0.708743
+				,0.61827
+				,-0.339744
+				,0.708743
+				,-0.673878
+				,0.20874
+				,0.708743
+				,-0.673878
+				,0.20874
+				,0.708743
+				,0.673878
+				,-0.20874
+				,0.708743
+				,0.673878
+				,-0.20874
+				,0.0894402
+				,-0.370014
+				,0.924711
+				,0.00942199
+				,-0.930546
+				,-0.366054
+				,0.06001
+				,-0.38199
+				,0.922216
+				,0.0131886
+				,-0.92375
+				,-0.382769
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.0762166
+				,-0.914406
+				,-0.397558
+				,-0.28081
+				,-0.435437
+				,0.855301
+				,-0.0401044
+				,-0.925064
+				,-0.377688
+				,0.312326
+				,-0.415229
+				,0.854422
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.0855202
+				,0.355722
+				,-0.930671
+				,0.0612322
+				,0.375123
+				,-0.92495
+				,0.267143
+				,0.235642
+				,-0.934402
+				,-0.274
+				,0.271408
+				,-0.922638
+				,0.133547
+				,-0.666305
+				,0.733623
+				,-0.548622
+				,-0.827957
+				,0.116196
+				,0.457961
+				,0.46494
+				,-0.757695
+				,0.233189
+				,-0.54171
+				,-0.807572
+				,-0.274001
+				,0.271408
+				,-0.922638
+				,-0.494732
+				,-0.161046
+				,-0.853993
+				,-0.231812
+				,-0.184249
+				,-0.955152
+				,0.193617
+				,-0.272868
+				,-0.942367
+				,-0.188679
+				,-0.974436
+				,-0.121963
+				,-0.576313
+				,-0.61934
+				,0.533181
+				,0.70793
+				,0.594509
+				,-0.381305
+				,-0.670362
+				,0.541335
+				,-0.507515
+				,0.707931
+				,0.594509
+				,-0.381305
+				,-0.670362
+				,0.541336
+				,-0.507514
+				,-0.70793
+				,0.59451
+				,-0.381303
+				,0.670362
+				,0.541336
+				,-0.507514
+				,-0.707931
+				,0.594511
+				,-0.381302
+				,0.670362
+				,0.541334
+				,-0.507516
+				,-0.708743
+				,-0.61827
+				,0.339744
+				,-0.708743
+				,0.61827
+				,-0.339744
+				,-0.708743
+				,0.61827
+				,-0.339744
+				,-0.708743
+				,-0.61827
+				,0.339744
+				,0.708743
+				,-0.673878
+				,0.20874
+				,0.708743
+				,0.673878
+				,-0.20874
+				,0.708743
+				,0.673878
+				,-0.20874
+				,0.708743
+				,-0.673878
+				,0.20874
+				,-0.06001
+				,-0.38199
+				,0.922216
+				,-0.00942199
+				,-0.930546
+				,-0.366054
+				,-0.0894402
+				,-0.370014
+				,0.924711
+				,-0.0131886
+				,-0.92375
+				,-0.382769
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.0401044
+				,-0.925064
+				,-0.377688
+				,0.28081
+				,-0.435437
+				,0.855301
+				,-0.0762166
+				,-0.914406
+				,-0.397558
+				,-0.312326
+				,-0.415229
+				,0.854422
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.0855202
+				,0.355722
+				,-0.930671
+				,-0.0612322
+				,0.375123
+				,-0.92495
+				,-0.267143
+				,0.235642
+				,-0.934402
+				,0.274
+				,0.271408
+				,-0.922638
+				,-0.133547
+				,-0.666305
+				,0.733623
+				,0.548622
+				,-0.827957
+				,0.116196
+				,0.186975
+				,-0.485107
+				,-0.854232
+				,-0.457961
+				,0.46494
+				,-0.757695
+				,0.274001
+				,0.271408
+				,-0.922638
+				,0.248186
+				,-0.814238
+				,0.524805
+				,-0.487613
+				,-0.844835
+				,0.220199
+				,0.25682
+				,-0.94664
+				,0.194721
+				,-0.486292
+				,-0.74354
+				,0.458987
+				,0.231812
+				,-0.184249
+				,-0.955152
+				,-0.520595
+				,-0.523929
+				,-0.674151
+				,0.576313
+				,-0.61934
+				,0.533181
+				,0.939238
+				,0.325823
+				,-0.108034
+				,0.813652
+				,0.52565
+				,-0.24832
+				,0.816155
+				,0.232159
+				,-0.529143
+				,0.239686
+				,0.870578
+				,-0.429703
+				,0.324995
+				,0.656888
+				,-0.68035
+				,0.291336
+				,-0.0357272
+				,-0.955954
+				,-0.105228
+				,-0.274007
+				,-0.955953
+				,-0.728749
+				,-0.127808
+				,-0.672749
+				,-0.881201
+				,0.19708
+				,-0.429703
+				,-0.728749
+				,-0.127808
+				,-0.672749
+				,-0.872154
+				,-0.433832
+				,-0.226135
+				,-0.535068
+				,-0.696867
+				,-0.477577
+				,-0.744618
+				,-0.64261
+				,-0.180545
+				,0.916967
+				,0.355773
+				,0.180544
+				,0.939238
+				,0.325823
+				,-0.108034
+				,0.918921
+				,-0.253505
+				,0.302192
+				,0.866496
+				,0.145278
+				,-0.477577
+				,0.813652
+				,0.52565
+				,-0.24832
+				,0.690656
+				,0.723009
+				,-0.0159115
+				,0.207575
+				,0.930372
+				,-0.302192
+				,0.535068
+				,0.696867
+				,0.477577
+				,0.552068
+				,0.0040742
+				,0.833789
+				,0.628819
+				,0.621184
+				,0.467673
+				,0.0928835
+				,0.117254
+				,0.988749
+				,0.318286
+				,0.145295
+				,0.936794
+				,-0.444737
+				,-0.020918
+				,0.895417
+				,0.0633831
+				,0.149633
+				,0.986708
+				,-0.601371
+				,-0.348276
+				,0.719067
+				,0.31529
+				,-0.0385742
+				,-0.948211
+				,0.94112
+				,-0.0267278
+				,-0.337016
+				,0.94303
+				,-0.115957
+				,0.311847
+				,0.789343
+				,0.500078
+				,-0.356173
+				,0.789344
+				,-0.602826
+				,0.116346
+				,0.789344
+				,-0.602824
+				,0.116359
+				,0.789343
+				,0.500087
+				,-0.356162
+				,0.523212
+				,0.829547
+				,-0.195195
+				,0.523215
+				,-0.633626
+				,0.569881
+				,0.523215
+				,-0.633639
+				,0.569866
+				,0.523212
+				,0.829538
+				,-0.195231
+				,0.922972
+				,0.290635
+				,-0.252296
+				,0.922976
+				,-0.378847
+				,0.0677481
+				,0.922976
+				,-0.378845
+				,0.0677604
+				,0.922972
+				,0.290641
+				,-0.252289
+				,0.782824
+				,0.5031
+				,0.366165
+				,0.78282
+				,-0.286449
+				,-0.552395
+				,0.78282
+				,-0.286443
+				,-0.552398
+				,0.782824
+				,0.503106
+				,0.366157
+				,0.70711
+				,0.0665175
+				,0.703968
+				,0.447212
+				,-0.084136
+				,-0.890462
+				,0.316248
+				,-0.331179
+				,-0.888993
+				,0.102879
+				,-0.0614834
+				,-0.992792
+				,-0.70088
+				,0.0659316
+				,-0.710225
+				,-0.32295
+				,0.328498
+				,-0.887577
+				,0.292458
+				,-0.529652
+				,-0.796202
+				,-4.66623e-006
+				,-1.0141e-006
+				,-1
+				,0.0891725
+				,-0.0537749
+				,-0.994563
+				,0.866023
+				,-1.32003e-006
+				,-0.500005
+				,0.918952
+				,0.00858595
+				,-0.394276
+				,0.826318
+				,-0.00839817
+				,0.563141
+				,0.866025
+				,-3.16448e-007
+				,0.5
+				,-1.00254e-005
+				,1.41466e-006
+				,1
+				,-0.0946283
+				,-0.125433
+				,0.987579
+				,1.00257e-005
+				,2.35761e-006
+				,-1
+				,0.129765
+				,-0.0735839
+				,-0.988811
+				,0.905328
+				,0.00460623
+				,-0.424688
+				,0.866028
+				,1.79772e-007
+				,-0.499996
+				,0.866028
+				,-8.84776e-007
+				,0.499996
+				,0.808754
+				,-0.0154015
+				,0.587945
+				,-0.0738988
+				,-0.0784591
+				,0.994175
+				,4.6663e-006
+				,-4.6599e-007
+				,1
+				,0.879377
+				,0.0201332
+				,-0.475699
+				,0.112386
+				,-0.237977
+				,-0.964747
+				,0.894525
+				,-0.00938743
+				,0.446918
+				,0.11686
+				,-0.235055
+				,0.964932
+				,0.880175
+				,0.0212998
+				,-0.474171
+				,0.12447
+				,-0.246876
+				,-0.96102
+				,0.892955
+				,-0.00968217
+				,0.450042
+				,0.108324
+				,-0.226708
+				,0.96792
+				,0.918026
+				,0.0495232
+				,-0.393415
+				,0.446873
+				,-0.377399
+				,-0.811095
+				,0.947177
+				,0.00673765
+				,0.320642
+				,0.396054
+				,-0.338033
+				,0.853742
+				,0.91865
+				,0.0503137
+				,-0.391855
+				,0.44484
+				,-0.375047
+				,-0.8133
+				,0.948395
+				,0.00690704
+				,0.317015
+				,0.397279
+				,-0.339077
+				,0.852758
+				,0.975209
+				,0.0548359
+				,-0.214384
+				,0.875951
+				,-0.246669
+				,-0.414565
+				,0.991488
+				,0.0109271
+				,0.129741
+				,0.808012
+				,-0.236965
+				,0.539411
+				,0.973924
+				,0.0551524
+				,-0.22007
+				,0.867902
+				,-0.253714
+				,-0.427054
+				,0.991738
+				,0.0109112
+				,0.127815
+				,0.817742
+				,-0.231552
+				,0.526956
+				,0.997571
+				,0.0377368
+				,-0.0585581
+				,0.985273
+				,-0.0471937
+				,-0.164349
+				,0.999658
+				,0.00994681
+				,0.0241745
+				,0.985249
+				,-0.0473536
+				,0.164447
+				,0.99757
+				,0.0377302
+				,-0.0585698
+				,0.98524
+				,-0.0472436
+				,-0.164531
+				,0.999658
+				,0.00995068
+				,0.0241815
+				,0.985269
+				,-0.0472916
+				,0.164343
+				,-1.2838e-007
+				,-0.755826
+				,0.654772
+				,-2.92895e-005
+				,-0.866321
+				,0.499488
+				,0.0275766
+				,-0.00162034
+				,0.999618
+				,3.21231e-006
+				,0.1889
+				,0.981996
+				,4.69657e-009
+				,-0.944928
+				,-0.327279
+				,-6.88603e-006
+				,-0.866223
+				,-0.499657
+				,-1.68692e-006
+				,-0.189029
+				,-0.981972
+				,0.0276702
+				,-0.000995389
+				,-0.999617
+				,5.58621e-008
+				,-0.755996
+				,0.654576
+				,-2.87907e-005
+				,-0.866386
+				,0.499375
+				,0.0276286
+				,-0.00165941
+				,0.999617
+				,-4.21825e-006
+				,0.189029
+				,0.981972
+				,1.04203e-007
+				,-0.944883
+				,-0.327407
+				,-7.25485e-006
+				,-0.866137
+				,-0.499806
+				,1.28528e-006
+				,-0.1889
+				,-0.981996
+				,0.0276164
+				,-0.00102617
+				,-0.999618
+				,1.12927e-008
+				,6.50157e-009
+				,1
+				,-1.69391e-007
+				,-1.05823e-008
+				,1
+				,0.00361003
+				,-0.00208419
+				,0.999991
+				,0.00360995
+				,-0.0020842
+				,0.999991
+				,0.866026
+				,0.499994
+				,0.00208422
+				,0.866027
+				,0.499994
+				,0.0020842
+				,0.866027
+				,-0.499994
+				,-0.00208421
+				,0.866026
+				,-0.499994
+				,-0.0020842
+				,0.00360994
+				,0.0020842
+				,-0.999991
+				,0.00361
+				,0.00208421
+				,-0.999991
+				,-1.69391e-007
+				,2.06201e-008
+				,-1
+				,-1.84449e-008
+				,4.5788e-009
+				,-1
+				,1.69393e-007
+				,1.48484e-008
+				,1
+				,1.84453e-008
+				,1.7754e-008
+				,1
+				,0.00361065
+				,-0.00208479
+				,0.999991
+				,0.00361096
+				,-0.00208475
+				,0.999991
+				,0.866025
+				,0.499997
+				,0.00208479
+				,0.866027
+				,0.499993
+				,0.00208469
+				,0.866027
+				,-0.499994
+				,-0.00208469
+				,0.866029
+				,-0.49999
+				,-0.00208476
+				,0.00361079
+				,0.00208471
+				,-0.999991
+				,0.00361103
+				,0.00208475
+				,-0.999991
+				,1.69393e-007
+				,-2.21265e-008
+				,-1
+				,-1.12926e-008
+				,4.78852e-010
+				,-1
+				,0.0309835
+				,-0.997088
+				,-0.0696812
+				,0
+				,-1
+				,2.7732e-008
+				,-0.0108945
+				,-0.739935
+				,0.67259
+				,0
+				,-0.703159
+				,0.711033
+				,0
+				,-2.45688e-007
+				,1
+				,-0.0175992
+				,-0.0783506
+				,0.996771
+				,-0.0107913
+				,0.660187
+				,0.751024
+				,0
+				,0.703159
+				,0.711033
+				,0
+				,1
+				,2.7732e-008
+				,-0.0172861
+				,0.995904
+				,0.0887452
+				,-0.0108943
+				,0.739937
+				,-0.672587
+				,0
+				,0.703159
+				,-0.711033
+				,-0.0108943
+				,0.739937
+				,-0.672587
+				,0
+				,0.703159
+				,-0.711033
+				,0
+				,-2.45688e-007
+				,-1
+				,-0.0175992
+				,0.0783489
+				,-0.996771
+				,-0.0107913
+				,-0.660188
+				,-0.751023
+				,0
+				,-0.703159
+				,-0.711033
+				,0.02268
+				,-0.999695
+				,-0.00972735
+				,-0.0131054
+				,-0.702347
+				,0.711714
+				,-0.0123839
+				,-0.0122822
+				,0.999848
+				,-0.0131945
+				,0.678228
+				,0.734733
+				,-0.0139963
+				,0.999666
+				,0.0217367
+				,-0.0131051
+				,0.70236
+				,-0.711702
+				,-0.0131051
+				,0.70236
+				,-0.711702
+				,-0.0123841
+				,0.0122729
+				,-0.999848
+				,-0.0131942
+				,-0.678228
+				,-0.734733
+				,-6.97415e-008
+				,-0.989097
+				,0.147265
+				,-6.38197e-008
+				,-0.582508
+				,0.812825
+				,1.0664e-007
+				,0.127
+				,0.991903
+				,1.18101e-007
+				,0.780639
+				,0.624982
+				,1.48067e-007
+				,0.989099
+				,-0.147255
+				,1.31391e-007
+				,0.582515
+				,-0.81282
+				,1.31391e-007
+				,0.582515
+				,-0.81282
+				,-0.0131051
+				,0.70236
+				,-0.711702
+				,-0.0123841
+				,0.0122729
+				,-0.999848
+				,1.31391e-007
+				,0.582515
+				,-0.81282
+				,4.17275e-008
+				,-0.127018
+				,-0.9919
+				,3.31578e-010
+				,-0.780625
+				,-0.625
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.416602
+				,0.496175
+				,0.761743
+				,0.477287
+				,-0.420094
+				,0.771828
+				,0.223493
+				,-0.209701
+				,0.951881
+				,1
+				,0
+				,0
+				,0.932779
+				,0.222428
+				,-0.283634
+				,1
+				,4.06969e-007
+				,0
+				,0.863405
+				,0.221576
+				,-0.45325
+				,0.852282
+				,-0.018877
+				,-0.522742
+				,0.388652
+				,0.291897
+				,-0.873925
+				,0.721836
+				,-0.225049
+				,-0.654451
+				,0.767734
+				,0.249573
+				,-0.590167
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.279512
+				,0.0974885
+				,0.95518
+				,0.503966
+				,0.0438818
+				,0.862608
+				,-0.390499
+				,-0.34033
+				,0.855387
+				,0.64015
+				,0.573225
+				,0.511489
+				,-0.849538
+				,-0.0582332
+				,0.524303
+				,-0.849538
+				,-0.0582332
+				,0.524303
+				,0.64015
+				,0.573225
+				,0.511489
+				,0.405257
+				,-0.18912
+				,0.894427
+				,-0.640768
+				,0.299025
+				,0.707107
+				,1
+				,3.6175e-007
+				,0
+				,0.924215
+				,-0.11535
+				,0.364034
+				,0.807905
+				,0.256146
+				,0.530734
+				,0.640763
+				,0.365124
+				,0.675357
+				,0.585718
+				,0.523408
+				,0.618853
+				,0.504819
+				,-0.482379
+				,0.715869
+				,1
+				,0
+				,0
+				,0.895725
+				,0.105387
+				,0.431939
+				,0.828167
+				,-0.421689
+				,-0.369211
+				,0.761859
+				,0.362239
+				,-0.536986
+				,0.933587
+				,0.332198
+				,-0.13439
+				,0.965093
+				,-0.221524
+				,0.139721
+				,-4.41571e-008
+				,-0.000739274
+				,-1
+				,-0.398332
+				,-0.128825
+				,-0.90815
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.00182102
+				,-0.0031858
+				,0.999993
+				,-0.527237
+				,0.347745
+				,0.775303
+				,-0.00182102
+				,0.00294379
+				,0.999994
+				,-0.527237
+				,0.347745
+				,0.775303
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.396257
+				,-0.135158
+				,-0.908137
+				,-4.41571e-008
+				,-0.000739283
+				,-1
+				,-0.743548
+				,0.597787
+				,-0.299647
+				,-0.913246
+				,-0.183934
+				,-0.363524
+				,-0.912307
+				,-0.181634
+				,0.367023
+				,-0.74672
+				,0.596033
+				,0.295219
+				,0.00346926
+				,0
+				,-0.999994
+				,0.0020255
+				,0.00028907
+				,-0.999998
+				,-0.235084
+				,-0.236129
+				,-0.942857
+				,-0.572751
+				,0.579636
+				,-0.579636
+				,-0.578621
+				,0.577727
+				,0.575699
+				,-0.232417
+				,-0.236283
+				,0.943479
+				,0.00202193
+				,0.000289124
+				,0.999998
+				,0
+				,0
+				,1
+				,0.912307
+				,0.181634
+				,-0.367023
+				,0.704999
+				,0.709207
+				,0.00123748
+				,0.743548
+				,-0.597787
+				,0.299647
+				,0.707111
+				,-0.707098
+				,-0.00245311
+				,0.707107
+				,-0.707107
+				,0
+				,0.74672
+				,-0.596033
+				,-0.295219
+				,0.709224
+				,0.704982
+				,-0.00121562
+				,0.913246
+				,0.183934
+				,0.363524
+				,0.993768
+				,-0.0510411
+				,-0.0990954
+				,1
+				,0.000320418
+				,-0.000178578
+				,0.997967
+				,-0.0575083
+				,-0.0274738
+				,0.983829
+				,0.0357652
+				,-0.175504
+				,0.986428
+				,-0.132236
+				,-0.0973335
+				,0.987276
+				,-0.0419982
+				,-0.153371
+				,0.830543
+				,0.556955
+				,5.3044e-007
+				,1
+				,2.82445e-006
+				,4.17337e-007
+				,1
+				,2.82445e-006
+				,3.0242e-007
+				,0.830543
+				,0.556955
+				,7.66993e-008
+				,0.830543
+				,0.556955
+				,9.42898e-008
+				,1
+				,2.82445e-006
+				,-8.24994e-008
+				,0.842689
+				,0.515139
+				,-0.156549
+				,1
+				,1.11956e-006
+				,-9.33318e-009
+				,1
+				,2.82445e-006
+				,1.12938e-007
+				,0.830543
+				,0.556955
+				,2.56588e-007
+				,1
+				,2.82445e-006
+				,2.14406e-007
+				,0.830543
+				,0.556955
+				,2.55668e-007
+				,1
+				,2.82445e-006
+				,2.11961e-007
+				,0.836059
+				,0.54641
+				,0.0494127
+				,1
+				,3.20177e-006
+				,-6.11715e-008
+				,0.871677
+				,0.481457
+				,-0.0915289
+				,0.999712
+				,0.0239317
+				,-0.00190884
+				,0.828268
+				,0.547386
+				,0.119753
+				,0.872971
+				,0.436329
+				,-0.218035
+				,1
+				,-1.10043e-006
+				,-1.03653e-007
+				,0.918405
+				,0.371684
+				,-0.135586
+				,0.99968
+				,0.0251831
+				,-0.00231334
+				,0.985106
+				,0.129444
+				,-0.113186
+				,0.997381
+				,0.0652659
+				,0.0311798
+				,-0.918457
+				,-0.315448
+				,-0.238599
+				,-0.992972
+				,-0.00669359
+				,-0.118159
+				,-0.997847
+				,-9.88911e-006
+				,-0.0655852
+				,-0.987458
+				,0.0305527
+				,-0.1549
+				,-0.827203
+				,-0.541779
+				,-0.149033
+				,-0.974722
+				,-0.0296636
+				,-0.221443
+				,0.559844
+				,0.828552
+				,-0.00872992
+				,0
+				,1
+				,6.25899e-007
+				,0.705857
+				,0.708126
+				,-0.0179681
+				,0.755065
+				,0.655638
+				,-0.00397675
+				,0.655941
+				,0.754803
+				,0.00369162
+				,0
+				,1
+				,-1.40878e-006
+				,0.435118
+				,0.900372
+				,-0.00177606
+				,-0.454661
+				,0.890595
+				,-0.0111495
+				,-0.426285
+				,0.901867
+				,0.0701276
+				,-0.503494
+				,0.85856
+				,-0.096789
+				,0.509945
+				,0.860207
+				,-0.000731742
+				,-0.520985
+				,0.853565
+				,-0.00134998
+				,0.585422
+				,0.810069
+				,-0.0326849
+				,-0.389117
+				,0.916966
+				,0.0880983
+				,-0.0689144
+				,0.992236
+				,0.10353
+				,-0.308362
+				,0.951215
+				,0.0101675
+				,0.591386
+				,0.806327
+				,-0.0100185
+				,-0.290726
+				,0.956802
+				,0.00298906
+				,0.7694
+				,0.638725
+				,0.00736961
+				,-0.226078
+				,0.974109
+				,-0.000388176
+				,0.624699
+				,0.446731
+				,0.640455
+				,-0.03811
+				,0.99824
+				,-0.0454488
+				,0.777048
+				,0.407267
+				,0.479928
+				,0.705857
+				,0.708126
+				,-0.0179681
+				,0.764744
+				,0.644321
+				,0.00423865
+				,0.736651
+				,0.675801
+				,0.0252549
+				,0.559844
+				,0.828552
+				,-0.00872992
+				,0.755065
+				,0.655638
+				,-0.00397675
+				,0.788354
+				,0.615221
+				,0.00121186
+				,0.655941
+				,0.754803
+				,0.00369162
+				,0.812017
+				,0.576844
+				,-0.0887654
+				,0.705293
+				,0.708668
+				,0.0187526
+				,0.435118
+				,0.900372
+				,-0.00177606
+				,0.455167
+				,-0.89025
+				,-0.0166657
+				,0.991861
+				,0.125333
+				,0.0224383
+				,0.999946
+				,0.00724259
+				,-0.00739581
+				,0.447415
+				,-0.889189
+				,0.0957192
+				,0.526887
+				,-0.847916
+				,-0.0585537
+				,0.935437
+				,-0.343431
+				,0.0837416
+				,0.660574
+				,0.750674
+				,0.011427
+				,0.509945
+				,0.860207
+				,-0.000731742
+				,0.52099
+				,-0.853563
+				,-0.00088898
+				,0.948091
+				,-0.317997
+				,-0.00126181
+				,0.719424
+				,0.694413
+				,0.0147913
+				,0.585422
+				,0.810069
+				,-0.0326849
+				,0.955489
+				,-0.294937
+				,-0.007325
+				,0.424833
+				,-0.899201
+				,0.104665
+				,0.920386
+				,-0.390933
+				,0.00777883
+				,0.869582
+				,0.464234
+				,-0.168267
+				,0.94728
+				,0.262453
+				,-0.183793
+				,0.185208
+				,-0.960441
+				,0.20797
+				,0.141208
+				,-0.431379
+				,0.891051
+				,0.714563
+				,-0.548679
+				,0.433994
+				,0.935886
+				,0.322808
+				,-0.141113
+				,0.747349
+				,0.508342
+				,0.427853
+				,0.917491
+				,-0.397449
+				,-0.0156682
+				,0.308974
+				,-0.951014
+				,0.0103827
+				,0.591386
+				,0.806327
+				,-0.0100185
+				,0.892567
+				,0.423954
+				,-0.15358
+				,0.83389
+				,-0.550948
+				,-0.0329179
+				,0.290783
+				,-0.956784
+				,0.00300493
+				,0.7694
+				,0.638725
+				,0.00736961
+				,0.941521
+				,0.312103
+				,-0.127005
+				,0.802496
+				,-0.595792
+				,-0.0321219
+				,0.226079
+				,-0.974109
+				,-0.000594702
+				,0.931115
+				,0.220888
+				,-0.290231
+				,0.903328
+				,-0.2491
+				,-0.349211
+				,0.526489
+				,-0.759106
+				,-0.382842
+				,0.986428
+				,-0.132236
+				,-0.0973335
+				,0.366856
+				,-0.899308
+				,-0.238038
+				,0.562649
+				,-0.714006
+				,-0.416678
+				,0.759812
+				,-0.649985
+				,0.0142999
+				,-0.0689144
+				,0.992236
+				,0.10353
+				,0.777048
+				,0.407267
+				,0.479928
+				,-0.764698
+				,-0.644374
+				,0.00429268
+				,-0.830543
+				,-0.556955
+				,0
+				,-0.830543
+				,-0.556955
+				,0
+				,-0.734963
+				,-0.677684
+				,0.0239707
+				,-0.788351
+				,-0.615225
+				,0.00121686
+				,-0.830543
+				,-0.556955
+				,0
+				,-0.797353
+				,-0.597315
+				,-0.0862683
+				,-0.800918
+				,-0.580014
+				,-0.14871
+				,-0.830543
+				,-0.556955
+				,0
+				,-0.704251
+				,-0.709743
+				,0.0172141
+				,-0.830543
+				,-0.556955
+				,0
+				,-0.660067
+				,-0.751132
+				,0.0106532
+				,-0.831806
+				,-0.552703
+				,0.0511714
+				,-0.718413
+				,-0.695404
+				,0.0171949
+				,-0.856939
+				,-0.506168
+				,-0.097211
+				,-0.824748
+				,-0.547188
+				,-0.142744
+				,-0.52249
+				,-0.812064
+				,-0.259918
+				,-0.694764
+				,-0.68954
+				,0.204545
+				,-0.683381
+				,-0.651398
+				,-0.329653
+				,-0.827203
+				,-0.541779
+				,-0.149033
+				,-0.914563
+				,-0.382999
+				,-0.12995
+				,-0.817866
+				,-0.571446
+				,0.0674227
+				,-0.918457
+				,-0.315448
+				,-0.238599
+				,-0.559876
+				,-0.778808
+				,-0.282839
+				,-0.859345
+				,-0.487561
+				,-0.154304
+				,-0.789697
+				,-0.585238
+				,-0.184052
+				,-0.927622
+				,-0.35229
+				,-0.124132
+				,-0.878387
+				,-0.455547
+				,-0.144613
+				,-0.849184
+				,-0.419916
+				,-0.320245
+				,-0.86283
+				,-0.483343
+				,-0.147997
+				,0.99395
+				,-0.048829
+				,0.0983867
+				,0.996382
+				,-0.0178275
+				,0.0830995
+				,0.999537
+				,0.0258919
+				,0.0159835
+				,0.999532
+				,0.0213503
+				,0.0219101
+				,0.990986
+				,-0.10809
+				,0.0791359
+				,0.999998
+				,0.000779112
+				,-0.0018566
+				,0.999998
+				,0.00216411
+				,-0.000152172
+				,0.995324
+				,-0.0960751
+				,-0.0100061
+				,0.989423
+				,-0.142164
+				,-0.0288407
+				,0.999983
+				,0.00402042
+				,0.00412583
+				,0.99991
+				,0.0025338
+				,-0.0131592
+				,0.983185
+				,-0.160274
+				,-0.0875146
+				,0.996483
+				,-0.0742679
+				,-0.0388154
+				,0.987345
+				,-0.156908
+				,-0.0230018
+				,0.98616
+				,-0.141079
+				,-0.0870906
+				,0.99404
+				,-0.0925872
+				,-0.0575508
+				,0.972498
+				,-0.214106
+				,0.0916869
+				,0.993912
+				,-0.0889351
+				,0.0650331
+				,0.948091
+				,-0.317997
+				,-0.00126181
+				,0.935437
+				,-0.343431
+				,0.0837416
+				,0.955489
+				,-0.294937
+				,-0.007325
+				,0.920386
+				,-0.390933
+				,0.00777883
+				,0.714563
+				,-0.548679
+				,0.433994
+				,0.838368
+				,0.283993
+				,0.465281
+				,0
+				,-0.697899
+				,-0.716196
+				,0
+				,-0.850923
+				,-0.52529
+				,1.291e-008
+				,-0.386953
+				,0.922099
+				,1.69318e-008
+				,-0.189077
+				,0.981962
+				,0.960324
+				,0.276512
+				,0.0363171
+				,1
+				,3.54941e-006
+				,-1.05268e-007
+				,1
+				,-6.66899e-007
+				,-9.27443e-008
+				,0.923116
+				,0.382387
+				,-0.0404567
+				,0.995324
+				,-0.0960751
+				,-0.0100061
+				,0.999998
+				,0.00216411
+				,-0.000152172
+				,1
+				,-2.412e-006
+				,-3.98011e-007
+				,0.992324
+				,0.123604
+				,-0.0038891
+				,0.991861
+				,0.125333
+				,0.0224383
+				,0.999946
+				,0.00724259
+				,-0.00739581
+				,0.935437
+				,-0.343431
+				,0.0837416
+				,0.735604
+				,0.0550271
+				,-0.675173
+				,0.917491
+				,-0.397449
+				,-0.0156682
+				,0.992324
+				,0.123604
+				,-0.0038891
+				,1
+				,-2.412e-006
+				,-3.98011e-007
+				,1
+				,-1.36444e-006
+				,-1.47892e-007
+				,0.998542
+				,-0.0465329
+				,-0.0273508
+				,1
+				,2.15221e-008
+				,-1.37849e-007
+				,0.990722
+				,-0.131809
+				,-0.0331124
+				,1
+				,0.000320418
+				,-0.000178578
+				,0.993768
+				,-0.0510411
+				,-0.0990954
+				,0.917491
+				,-0.397449
+				,-0.0156682
+				,0.83389
+				,-0.550948
+				,-0.0329179
+				,0.802496
+				,-0.595792
+				,-0.0321219
+				,0.986428
+				,-0.132236
+				,-0.0973335
+				,0.939238
+				,0.325823
+				,-0.108034
+				,0.813652
+				,0.52565
+				,-0.24832
+				,0.816155
+				,0.232159
+				,-0.529143
+				,0.239686
+				,0.870578
+				,-0.429703
+				,0.324995
+				,0.656888
+				,-0.68035
+				,0.291336
+				,-0.0357272
+				,-0.955954
+				,-0.105228
+				,-0.274007
+				,-0.955953
+				,-0.728749
+				,-0.127808
+				,-0.672748
+				,-0.881201
+				,0.19708
+				,-0.429703
+				,-0.728749
+				,-0.127808
+				,-0.672748
+				,-0.872154
+				,-0.433832
+				,-0.226135
+				,-0.535068
+				,-0.696867
+				,-0.477577
+				,-0.744618
+				,-0.64261
+				,-0.180545
+				,0.916967
+				,0.355773
+				,0.180544
+				,0.939238
+				,0.325823
+				,-0.108034
+				,0.918921
+				,-0.253505
+				,0.302192
+				,0.866496
+				,0.145278
+				,-0.477577
+				,0.813652
+				,0.52565
+				,-0.24832
+				,0.690656
+				,0.723009
+				,-0.0159115
+				,0.207575
+				,0.930372
+				,-0.302192
+				,0.535068
+				,0.696867
+				,0.477577
+				,-6.40677e-006
+				,0.514547
+				,-0.857462
+				,0.0807288
+				,0.471967
+				,-0.877912
+				,0.85708
+				,0.270946
+				,-0.438181
+				,0.913242
+				,0.225221
+				,-0.339506
+				,0.813342
+				,-0.301365
+				,0.497648
+				,0.857591
+				,-0.254681
+				,0.44685
+				,-9.78097e-006
+				,-0.514546
+				,0.857463
+				,-0.0888403
+				,-0.601461
+				,0.793948
+				,9.78127e-006
+				,0.514545
+				,-0.857463
+				,0.117052
+				,0.454501
+				,-0.883022
+				,0.89894
+				,0.235267
+				,-0.369536
+				,0.856911
+				,0.274998
+				,-0.43598
+				,0.857494
+				,-0.258752
+				,0.444692
+				,0.793899
+				,-0.318942
+				,0.517688
+				,-0.068395
+				,-0.569894
+				,0.818867
+				,6.40692e-006
+				,-0.514552
+				,0.857459
+				,0.869955
+				,0.274844
+				,-0.409437
+				,0.0833837
+				,0.323442
+				,-0.942567
+				,0.882691
+				,-0.249425
+				,0.3983
+				,0.0935362
+				,-0.67495
+				,0.731911
+				,0.870708
+				,0.27511
+				,-0.407654
+				,0.0933141
+				,0.314358
+				,-0.944707
+				,0.881142
+				,-0.250932
+				,0.400776
+				,0.0866726
+				,-0.669291
+				,0.737928
+				,0.908848
+				,0.259524
+				,-0.32656
+				,0.388306
+				,0.11189
+				,-0.914712
+				,0.939037
+				,-0.174607
+				,0.296177
+				,0.34626
+				,-0.729264
+				,0.590151
+				,0.909424
+				,0.259445
+				,-0.325017
+				,0.385592
+				,0.115156
+				,-0.915455
+				,0.940484
+				,-0.172305
+				,0.292916
+				,0.347915
+				,-0.729789
+				,0.588527
+				,0.970804
+				,0.170841
+				,-0.168383
+				,0.854899
+				,-0.0129293
+				,-0.518634
+				,0.989894
+				,-0.0651038
+				,0.12598
+				,0.78082
+				,-0.508466
+				,0.363018
+				,0.969363
+				,0.174109
+				,-0.173266
+				,0.845866
+				,-0.0126986
+				,-0.533244
+				,0.990182
+				,-0.0640605
+				,0.124238
+				,0.791492
+				,-0.497549
+				,0.354944
+				,0.99692
+				,0.0702108
+				,-0.034947
+				,0.982677
+				,0.0422041
+				,-0.180458
+				,0.999622
+				,-0.00489406
+				,0.0270462
+				,0.982659
+				,-0.135147
+				,0.126954
+				,0.996919
+				,0.0702115
+				,-0.0349597
+				,0.982639
+				,0.0422481
+				,-0.180652
+				,0.999622
+				,-0.0048911
+				,0.0270597
+				,0.982683
+				,-0.135031
+				,0.126888
+				,-1.51613e-007
+				,-0.981467
+				,0.191634
+				,-3.22793e-005
+				,-0.999871
+				,0.0160862
+				,0.0326337
+				,-0.500829
+				,0.864931
+				,4.47211e-006
+				,-0.319155
+				,0.947702
+				,1.35144e-008
+				,-0.685443
+				,-0.728126
+				,-1.11493e-005
+				,-0.530129
+				,-0.847917
+				,-2.0258e-006
+				,0.319005
+				,-0.947753
+				,0.0327689
+				,0.497754
+				,-0.866699
+				,6.66766e-008
+				,-0.981514
+				,0.19139
+				,-3.17014e-005
+				,-0.999873
+				,0.0159628
+				,0.0326949
+				,-0.500851
+				,0.864916
+				,-5.16401e-006
+				,-0.319005
+				,0.947753
+				,1.34364e-007
+				,-0.685337
+				,-0.728227
+				,-1.15957e-005
+				,-0.529973
+				,-0.848015
+				,1.75534e-006
+				,0.319155
+				,-0.947702
+				,0.0327056
+				,0.497741
+				,-0.866709
+				,0.504819
+				,-0.482379
+				,0.715869
+				,1
+				,0
+				,0
+				,0.895725
+				,0.105387
+				,0.431939
+				,0.828167
+				,-0.421689
+				,-0.369211
+				,0.761859
+				,0.362239
+				,-0.536986
+				,0.933587
+				,0.332198
+				,-0.13439
+				,0.965093
+				,-0.221524
+				,0.139721
+				,1.41488e-012
+				,-0.000739274
+				,-1
+				,-0.398332
+				,-0.128825
+				,-0.908149
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.001821
+				,-0.0031858
+				,0.999993
+				,-0.527237
+				,0.347746
+				,0.775303
+				,-0.001821
+				,0.00294379
+				,0.999994
+				,-0.527237
+				,0.347746
+				,0.775303
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.396257
+				,-0.135158
+				,-0.908137
+				,1.41677e-012
+				,-0.000739283
+				,-1
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.418557
+				,0.483631
+				,0.768707
+				,0.475756
+				,-0.408175
+				,0.779134
+				,0.219572
+				,-0.202719
+				,0.954303
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.932779
+				,0.222428
+				,-0.283634
+				,1
+				,4.06969e-007
+				,0
+				,0.854459
+				,0.223354
+				,-0.469054
+				,0.84865
+				,-0.0193075
+				,-0.528602
+				,0.37638
+				,0.275498
+				,-0.884556
+				,0.704193
+				,-0.216951
+				,-0.676051
+				,0.767734
+				,0.249573
+				,-0.590167
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.272343
+				,0.093852
+				,0.957612
+				,0.490567
+				,0.0421639
+				,0.870383
+				,-0.385401
+				,-0.327366
+				,0.862727
+				,0.738592
+				,0.346601
+				,0.578229
+				,-0.845857
+				,-0.0583779
+				,0.530205
+				,-0.845857
+				,-0.0583779
+				,0.530205
+				,0.738592
+				,0.346601
+				,0.578229
+				,0.296538
+				,-0.215382
+				,0.930417
+				,-0.640768
+				,0.299025
+				,0.707107
+				,0.979704
+				,0.0139322
+				,0.199966
+				,0.850743
+				,-0.0976274
+				,0.516436
+				,0.798141
+				,0.256996
+				,0.544908
+				,0.622361
+				,0.351164
+				,0.699536
+				,0.658246
+				,0.625319
+				,0.419151
+				,0.0309834
+				,-0.997088
+				,-0.0696804
+				,0
+				,-1
+				,2.7732e-008
+				,-0.0108945
+				,-0.739936
+				,0.672589
+				,0
+				,-0.703159
+				,0.711033
+				,0
+				,0
+				,1
+				,-0.0175992
+				,-0.0783502
+				,0.996771
+				,-0.0107912
+				,0.660187
+				,0.751024
+				,0
+				,0.703159
+				,0.711033
+				,0
+				,1
+				,2.7732e-008
+				,-0.0172861
+				,0.995904
+				,0.0887456
+				,-0.0108943
+				,0.739937
+				,-0.672588
+				,0
+				,0.703159
+				,-0.711033
+				,-0.0108943
+				,0.739937
+				,-0.672588
+				,0
+				,0.703159
+				,-0.711033
+				,0
+				,0
+				,-1
+				,-0.0175992
+				,0.0783492
+				,-0.996771
+				,-0.0107913
+				,-0.660188
+				,-0.751023
+				,0
+				,-0.703159
+				,-0.711033
+				,0.0226799
+				,-0.999695
+				,-0.00972728
+				,-0.0131055
+				,-0.702348
+				,0.711713
+				,-0.0123839
+				,-0.0122817
+				,0.999848
+				,-0.0131944
+				,0.678228
+				,0.734733
+				,-0.0139963
+				,0.999666
+				,0.0217368
+				,-0.0131051
+				,0.702359
+				,-0.711702
+				,-0.0131051
+				,0.702359
+				,-0.711702
+				,-0.0123841
+				,0.0122734
+				,-0.999848
+				,-0.0131943
+				,-0.678228
+				,-0.734733
+				,-8.87697e-008
+				,-0.989097
+				,0.147264
+				,-5.78237e-008
+				,-0.582507
+				,0.812825
+				,1.0664e-007
+				,0.127
+				,0.991903
+				,1.02832e-007
+				,0.780639
+				,0.624982
+				,1.13872e-007
+				,0.989098
+				,-0.147255
+				,1.25395e-007
+				,0.582515
+				,-0.81282
+				,1.25395e-007
+				,0.582515
+				,-0.81282
+				,-0.0131051
+				,0.702359
+				,-0.711702
+				,-0.0123841
+				,0.0122734
+				,-0.999848
+				,1.25395e-007
+				,0.582515
+				,-0.81282
+				,4.17274e-008
+				,-0.127018
+				,-0.9919
+				,3.08643e-008
+				,-0.780626
+				,-0.624998
+				,-0.816155
+				,0.232159
+				,-0.529143
+				,-0.813652
+				,0.52565
+				,-0.24832
+				,-0.939238
+				,0.325823
+				,-0.108034
+				,-0.239686
+				,0.870578
+				,-0.429703
+				,0.105228
+				,-0.274007
+				,-0.955953
+				,-0.291336
+				,-0.0357272
+				,-0.955954
+				,-0.324995
+				,0.656888
+				,-0.68035
+				,0.728749
+				,-0.127808
+				,-0.672749
+				,0.872154
+				,-0.433832
+				,-0.226135
+				,0.728749
+				,-0.127808
+				,-0.672749
+				,0.881201
+				,0.19708
+				,-0.429703
+				,0.744618
+				,-0.64261
+				,-0.180545
+				,0.535068
+				,-0.696867
+				,-0.477577
+				,-0.918921
+				,-0.253505
+				,0.302192
+				,-0.939238
+				,0.325823
+				,-0.108034
+				,-0.916967
+				,0.355773
+				,0.180544
+				,-0.866495
+				,0.145278
+				,-0.477577
+				,-0.207575
+				,0.930372
+				,-0.302192
+				,-0.690656
+				,0.723009
+				,-0.0159115
+				,-0.813652
+				,0.52565
+				,-0.24832
+				,-0.535068
+				,0.696867
+				,0.477577
+				,0.0928836
+				,-0.117254
+				,-0.988749
+				,0.628819
+				,-0.621184
+				,-0.467673
+				,0.548789
+				,0.0444676
+				,-0.834777
+				,0.318286
+				,-0.145295
+				,-0.936794
+				,-0.445819
+				,-0.0053511
+				,-0.895107
+				,-0.736061
+				,0.0328791
+				,-0.676116
+				,0.0633831
+				,-0.149633
+				,-0.986708
+				,-0.94303
+				,0.0365785
+				,-0.330692
+				,-0.316228
+				,-0.115304
+				,-0.94165
+				,-0.5547
+				,0.101129
+				,0.825882
+				,-0.94303
+				,-0.115957
+				,0.311847
+				,-0.789343
+				,0.500078
+				,-0.356173
+				,-0.789344
+				,-0.602826
+				,0.116346
+				,-0.523212
+				,0.829547
+				,-0.195195
+				,-0.789343
+				,0.500087
+				,-0.356162
+				,-0.789344
+				,-0.602824
+				,0.116359
+				,-0.523215
+				,-0.633626
+				,0.569881
+				,-0.922972
+				,0.290635
+				,-0.252296
+				,-0.523212
+				,0.829538
+				,-0.195231
+				,-0.523215
+				,-0.633639
+				,0.569866
+				,-0.922976
+				,-0.378847
+				,0.067748
+				,-0.782824
+				,0.5031
+				,0.366166
+				,-0.922972
+				,0.290641
+				,-0.252289
+				,-0.922976
+				,-0.378845
+				,0.0677604
+				,-0.706113
+				,0.0135666
+				,0.707969
+				,-0.782824
+				,0.503106
+				,0.366157
+				,0.313626
+				,-0.0127064
+				,0.949462
+				,0.894872
+				,0.278856
+				,0.348488
+				,0.316248
+				,0.331179
+				,0.888993
+				,0.102879
+				,0.0614834
+				,0.992792
+				,0.292459
+				,0.529652
+				,0.796202
+				,-0.32295
+				,-0.328498
+				,0.887577
+				,-0.866023
+				,-1.31114e-006
+				,-0.500005
+				,-0.0891725
+				,-0.0537749
+				,-0.994563
+				,4.66623e-006
+				,-1.0141e-006
+				,-1
+				,-0.918952
+				,0.00858596
+				,-0.394276
+				,-0.826318
+				,-0.00839808
+				,0.563141
+				,-0.866025
+				,-3.16448e-007
+				,0.5
+				,1.00254e-005
+				,1.64624e-006
+				,1
+				,0.0946284
+				,-0.125433
+				,0.987579
+				,-0.905328
+				,0.00460619
+				,-0.424688
+				,-0.129765
+				,-0.073584
+				,-0.988811
+				,-1.00257e-005
+				,2.25984e-006
+				,-1
+				,-0.866028
+				,1.79772e-007
+				,-0.499996
+				,-0.866028
+				,-8.55446e-007
+				,0.499996
+				,-0.808754
+				,-0.0154015
+				,0.587945
+				,0.0738988
+				,-0.0784591
+				,0.994175
+				,-4.6663e-006
+				,-4.6599e-007
+				,1
+				,-0.879377
+				,0.0201331
+				,-0.475699
+				,-0.112386
+				,-0.237977
+				,-0.964747
+				,-0.894525
+				,-0.00938743
+				,0.446918
+				,-0.11686
+				,-0.235055
+				,0.964932
+				,-0.880175
+				,0.0212998
+				,-0.474171
+				,-0.12447
+				,-0.246876
+				,-0.96102
+				,-0.892955
+				,-0.00968219
+				,0.450042
+				,-0.108324
+				,-0.226708
+				,0.96792
+				,-0.918026
+				,0.0495232
+				,-0.393416
+				,-0.446873
+				,-0.377399
+				,-0.811095
+				,-0.947177
+				,0.00673766
+				,0.320642
+				,-0.396054
+				,-0.338033
+				,0.853742
+				,-0.91865
+				,0.0503137
+				,-0.391855
+				,-0.44484
+				,-0.375047
+				,-0.8133
+				,-0.948395
+				,0.00690703
+				,0.317015
+				,-0.397279
+				,-0.339077
+				,0.852758
+				,-0.975209
+				,0.0548359
+				,-0.214384
+				,-0.875951
+				,-0.246669
+				,-0.414565
+				,-0.991488
+				,0.0109271
+				,0.129741
+				,-0.808012
+				,-0.236965
+				,0.539411
+				,-0.973924
+				,0.0551524
+				,-0.22007
+				,-0.867902
+				,-0.253714
+				,-0.427054
+				,-0.991738
+				,0.0109112
+				,0.127815
+				,-0.817742
+				,-0.231552
+				,0.526956
+				,-0.997571
+				,0.0377368
+				,-0.0585581
+				,-0.985273
+				,-0.0471937
+				,-0.164349
+				,-0.999658
+				,0.00994682
+				,0.0241745
+				,-0.985249
+				,-0.0473536
+				,0.164447
+				,-0.99757
+				,0.0377302
+				,-0.0585698
+				,-0.98524
+				,-0.0472436
+				,-0.164531
+				,-0.999658
+				,0.00995069
+				,0.0241815
+				,-0.985269
+				,-0.0472916
+				,0.164343
+				,-0.0275766
+				,-0.00162034
+				,0.999618
+				,2.92895e-005
+				,-0.866321
+				,0.499488
+				,1.2838e-007
+				,-0.755826
+				,0.654773
+				,-3.21231e-006
+				,0.1889
+				,0.981996
+				,6.88579e-006
+				,-0.866223
+				,-0.499657
+				,-4.69657e-009
+				,-0.944928
+				,-0.327279
+				,-0.0276702
+				,-0.000995389
+				,-0.999617
+				,1.68692e-006
+				,-0.189029
+				,-0.981972
+				,-0.0276286
+				,-0.00165941
+				,0.999617
+				,2.87907e-005
+				,-0.866386
+				,0.499375
+				,-5.58621e-008
+				,-0.755996
+				,0.654576
+				,4.21825e-006
+				,0.189029
+				,0.981972
+				,7.25438e-006
+				,-0.866137
+				,-0.499806
+				,-1.04203e-007
+				,-0.944883
+				,-0.327407
+				,-0.0276164
+				,-0.00102617
+				,-0.999618
+				,-1.28528e-006
+				,-0.1889
+				,-0.981996
+				,-0.00361003
+				,-0.00208419
+				,0.999991
+				,1.69391e-007
+				,-1.04569e-008
+				,1
+				,-1.12927e-008
+				,6.50157e-009
+				,1
+				,-0.00360995
+				,-0.0020842
+				,0.999991
+				,-0.866027
+				,-0.499994
+				,-0.00208421
+				,-0.866027
+				,0.499994
+				,0.0020842
+				,-0.866026
+				,0.499994
+				,0.00208422
+				,-0.866026
+				,-0.499994
+				,-0.0020842
+				,1.69391e-007
+				,2.03692e-008
+				,-1
+				,-0.00361
+				,0.00208421
+				,-0.999991
+				,-0.00360994
+				,0.0020842
+				,-0.999991
+				,1.84449e-008
+				,5.33166e-009
+				,-1
+				,-0.00361065
+				,-0.00208479
+				,0.999991
+				,-1.84453e-008
+				,1.81304e-008
+				,1
+				,-1.69393e-007
+				,1.49739e-008
+				,1
+				,-0.00361096
+				,-0.00208475
+				,0.999991
+				,-0.866027
+				,-0.499994
+				,-0.00208469
+				,-0.866027
+				,0.499993
+				,0.00208469
+				,-0.866025
+				,0.499997
+				,0.00208479
+				,-0.866029
+				,-0.49999
+				,-0.00208476
+				,-1.69393e-007
+				,-2.13737e-008
+				,-1
+				,-0.00361103
+				,0.00208475
+				,-0.999991
+				,-0.00361079
+				,0.00208471
+				,-0.999991
+				,1.12926e-008
+				,2.73737e-009
+				,-1
+				,0.0108945
+				,-0.739935
+				,0.67259
+				,0
+				,-1
+				,2.7732e-008
+				,-0.0309835
+				,-0.997088
+				,-0.0696812
+				,0
+				,-0.703159
+				,0.711033
+				,0
+				,-2.45688e-007
+				,1
+				,0.0175992
+				,-0.0783506
+				,0.996771
+				,0.0107912
+				,0.660187
+				,0.751024
+				,0
+				,0.703159
+				,0.711033
+				,0
+				,1
+				,2.7732e-008
+				,0.0172861
+				,0.995904
+				,0.0887452
+				,0.0108943
+				,0.739937
+				,-0.672587
+				,0
+				,0.703159
+				,-0.711033
+				,0
+				,-2.45688e-007
+				,-1
+				,0
+				,0.703159
+				,-0.711033
+				,0.0108943
+				,0.739937
+				,-0.672587
+				,0.0175992
+				,0.0783489
+				,-0.996771
+				,0.0107913
+				,-0.660188
+				,-0.751023
+				,0
+				,-0.703159
+				,-0.711033
+				,-0.02268
+				,-0.999695
+				,-0.00972736
+				,0.0131054
+				,-0.702347
+				,0.711714
+				,0.0123839
+				,-0.0122822
+				,0.999848
+				,0.0131945
+				,0.678228
+				,0.734733
+				,0.0139963
+				,0.999666
+				,0.0217367
+				,0.0131051
+				,0.70236
+				,-0.711702
+				,0.0131051
+				,0.70236
+				,-0.711702
+				,0.0123841
+				,0.0122729
+				,-0.999848
+				,0.0131942
+				,-0.678228
+				,-0.734733
+				,6.97414e-008
+				,-0.989097
+				,0.147265
+				,6.38197e-008
+				,-0.582508
+				,0.812825
+				,-1.0664e-007
+				,0.127
+				,0.991903
+				,-1.18101e-007
+				,0.780639
+				,0.624982
+				,-1.48067e-007
+				,0.989099
+				,-0.147255
+				,-1.31391e-007
+				,0.582515
+				,-0.81282
+				,0.0123841
+				,0.0122729
+				,-0.999848
+				,0.0131051
+				,0.70236
+				,-0.711702
+				,-1.31391e-007
+				,0.582515
+				,-0.81282
+				,-4.17275e-008
+				,-0.127018
+				,-0.9919
+				,-1.31391e-007
+				,0.582515
+				,-0.81282
+				,-3.31578e-010
+				,-0.780625
+				,-0.625
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.223493
+				,-0.209701
+				,0.951881
+				,-0.477287
+				,-0.420093
+				,0.771828
+				,0.416602
+				,0.496176
+				,0.761743
+				,-1
+				,3.6175e-007
+				,0
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.852282
+				,-0.0188769
+				,-0.522742
+				,-0.863405
+				,0.221576
+				,-0.45325
+				,-0.669139
+				,-0.0876216
+				,-0.737954
+				,-0.341422
+				,0.0993401
+				,-0.934646
+				,-0.767734
+				,0.249573
+				,-0.590167
+				,0.477286
+				,0.420094
+				,-0.771828
+				,-0.389556
+				,-0.622092
+				,-0.679152
+				,0.389554
+				,0.622093
+				,0.679152
+				,-0.279512
+				,-0.0974885
+				,-0.95518
+				,0.223492
+				,0.209701
+				,-0.951881
+				,-0.416603
+				,-0.496174
+				,-0.761743
+				,0.47017
+				,-0.156362
+				,-0.868614
+				,0.64015
+				,-0.573225
+				,-0.511489
+				,-0.390499
+				,0.34033
+				,-0.855387
+				,-0.849538
+				,0.0582332
+				,-0.524303
+				,0.405257
+				,0.18912
+				,-0.894427
+				,0.64015
+				,-0.573225
+				,-0.511489
+				,-0.849538
+				,0.0582332
+				,-0.524303
+				,-0.640768
+				,-0.299025
+				,-0.707107
+				,-1
+				,0
+				,0
+				,-0.983625
+				,0.119978
+				,0.134487
+				,-1
+				,4.06969e-007
+				,0
+				,-0.807905
+				,0.256146
+				,0.530734
+				,-0.924215
+				,-0.11535
+				,0.364034
+				,-0.640763
+				,0.365124
+				,0.675357
+				,-0.549804
+				,-0.178005
+				,0.816106
+				,-0.585718
+				,0.523408
+				,0.618853
+				,-0.895725
+				,0.105387
+				,0.431939
+				,-1
+				,0
+				,0
+				,-0.504819
+				,-0.482379
+				,0.715869
+				,-0.828167
+				,-0.421689
+				,-0.369211
+				,-0.761859
+				,0.362239
+				,-0.536986
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.398332
+				,0.128825
+				,0.90815
+				,-4.41571e-008
+				,0.000739282
+				,1
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.00182102
+				,0.0031858
+				,-0.999993
+				,-0.527237
+				,-0.347745
+				,-0.775303
+				,-0.132834
+				,-0.323941
+				,-0.936706
+				,-0.527237
+				,-0.347745
+				,-0.775303
+				,-0.00182102
+				,-0.00294379
+				,-0.999994
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.396257
+				,0.135158
+				,0.908137
+				,-0.154807
+				,0.491034
+				,0.857275
+				,-4.41571e-008
+				,0.000739274
+				,1
+				,0.912307
+				,-0.181634
+				,0.367023
+				,0.913246
+				,-0.183934
+				,-0.363524
+				,0.743548
+				,0.597787
+				,-0.299647
+				,0.74672
+				,0.596033
+				,0.295219
+				,0.235084
+				,-0.236129
+				,-0.942857
+				,-0.0020255
+				,0.00028907
+				,-0.999998
+				,-0.00346926
+				,0
+				,-0.999994
+				,0.572751
+				,0.579636
+				,-0.579636
+				,-0.00202193
+				,0.000289124
+				,0.999998
+				,0.232417
+				,-0.236283
+				,0.943479
+				,0.578621
+				,0.577727
+				,0.575699
+				,0
+				,0
+				,1
+				,-0.743548
+				,-0.597787
+				,0.299647
+				,-0.704999
+				,0.709207
+				,0.00123748
+				,-0.912307
+				,0.181634
+				,-0.367023
+				,-0.707111
+				,-0.707098
+				,-0.00245311
+				,-0.709224
+				,0.704982
+				,-0.00121562
+				,-0.74672
+				,-0.596033
+				,-0.295219
+				,-0.707107
+				,-0.707107
+				,0
+				,-0.913246
+				,0.183934
+				,0.363524
+				,-0.997967
+				,-0.0575083
+				,-0.0274738
+				,-1
+				,0.000320415
+				,-0.000178581
+				,-0.993768
+				,-0.0510411
+				,-0.0990954
+				,-0.983829
+				,0.0357652
+				,-0.175504
+				,-0.986428
+				,-0.132236
+				,-0.0973335
+				,-0.987276
+				,-0.0419982
+				,-0.153371
+				,-1
+				,2.82445e-006
+				,3.04293e-007
+				,-1
+				,2.82445e-006
+				,4.24779e-007
+				,-0.830543
+				,0.556955
+				,5.39665e-007
+				,-0.830543
+				,0.556955
+				,7.68321e-008
+				,-1
+				,2.82445e-006
+				,-8.40155e-008
+				,-0.830543
+				,0.556955
+				,1.058e-007
+				,-1
+				,1.11515e-006
+				,-1.78259e-008
+				,-0.842689
+				,0.515139
+				,-0.156549
+				,-1
+				,2.82445e-006
+				,1.14856e-007
+				,-0.830543
+				,0.556955
+				,2.5815e-007
+				,-1
+				,2.82445e-006
+				,2.12345e-007
+				,-0.830543
+				,0.556955
+				,2.55209e-007
+				,-1
+				,2.82445e-006
+				,2.09363e-007
+				,-0.836059
+				,0.54641
+				,0.0494127
+				,-1
+				,3.20275e-006
+				,-5.23691e-008
+				,-0.871677
+				,0.481457
+				,-0.0915289
+				,-0.999712
+				,0.0239317
+				,-0.00190882
+				,-0.828268
+				,0.547386
+				,0.119753
+				,-1
+				,-1.10117e-006
+				,-1.05688e-007
+				,-0.872971
+				,0.436329
+				,-0.218035
+				,-0.99968
+				,0.0251831
+				,-0.00231335
+				,-0.918405
+				,0.371684
+				,-0.135586
+				,-0.997381
+				,0.0652659
+				,0.0311798
+				,-0.985106
+				,0.129444
+				,-0.113186
+				,0.997847
+				,-9.89625e-006
+				,-0.0655852
+				,0.992972
+				,-0.00669359
+				,-0.118159
+				,0.918457
+				,-0.315448
+				,-0.238599
+				,0.987458
+				,0.0305527
+				,-0.1549
+				,0.974722
+				,-0.0296636
+				,-0.221443
+				,0.827203
+				,-0.541779
+				,-0.149033
+				,-0.705857
+				,0.708126
+				,-0.0179683
+				,0
+				,1
+				,1.28542e-006
+				,-0.559844
+				,0.828552
+				,-0.00872875
+				,-0.755065
+				,0.655638
+				,-0.00397711
+				,-0.655941
+				,0.754803
+				,0.00369167
+				,0
+				,1
+				,-1.45679e-006
+				,0.454661
+				,0.890595
+				,-0.0111479
+				,-0.435118
+				,0.900372
+				,-0.00177599
+				,0.426285
+				,0.901867
+				,0.0701275
+				,0.503495
+				,0.85856
+				,-0.0967891
+				,0.520985
+				,0.853565
+				,-0.00135007
+				,-0.509945
+				,0.860207
+				,-0.000731756
+				,0.389117
+				,0.916966
+				,0.0880983
+				,-0.585422
+				,0.810069
+				,-0.0326849
+				,0.0689144
+				,0.992236
+				,0.10353
+				,0.308362
+				,0.951215
+				,0.0101676
+				,-0.591386
+				,0.806327
+				,-0.0100184
+				,0.290726
+				,0.956802
+				,0.00298917
+				,-0.7694
+				,0.638725
+				,0.00736961
+				,0.226078
+				,0.974109
+				,-0.000388153
+				,-0.624699
+				,0.446731
+				,0.640455
+				,0.03811
+				,0.99824
+				,-0.0454488
+				,-0.777048
+				,0.407267
+				,0.479928
+				,-0.736651
+				,0.675801
+				,0.0252549
+				,-0.764744
+				,0.644321
+				,0.00423862
+				,-0.705857
+				,0.708126
+				,-0.0179683
+				,-0.559844
+				,0.828552
+				,-0.00872875
+				,-0.788354
+				,0.615221
+				,0.00121186
+				,-0.755065
+				,0.655638
+				,-0.00397711
+				,-0.812017
+				,0.576844
+				,-0.0887654
+				,-0.655941
+				,0.754803
+				,0.00369167
+				,-0.705293
+				,0.708668
+				,0.0187526
+				,-0.435118
+				,0.900372
+				,-0.00177599
+				,-0.999946
+				,0.00724259
+				,-0.00739581
+				,-0.991861
+				,0.125333
+				,0.0224383
+				,-0.455167
+				,-0.89025
+				,-0.0166657
+				,-0.447415
+				,-0.889189
+				,0.0957192
+				,-0.935437
+				,-0.343431
+				,0.0837416
+				,-0.526887
+				,-0.847916
+				,-0.0585537
+				,-0.660574
+				,0.750674
+				,0.011427
+				,-0.509945
+				,0.860207
+				,-0.000731756
+				,-0.52099
+				,-0.853563
+				,-0.000889001
+				,-0.948091
+				,-0.317997
+				,-0.00126181
+				,-0.719424
+				,0.694413
+				,0.0147913
+				,-0.585422
+				,0.810069
+				,-0.0326849
+				,-0.955489
+				,-0.294937
+				,-0.00732502
+				,-0.424833
+				,-0.899201
+				,0.104665
+				,-0.920386
+				,-0.390933
+				,0.00777882
+				,-0.869582
+				,0.464234
+				,-0.168267
+				,-0.94728
+				,0.262453
+				,-0.183793
+				,-0.185208
+				,-0.960441
+				,0.20797
+				,-0.714563
+				,-0.548679
+				,0.433994
+				,-0.141208
+				,-0.431379
+				,0.891051
+				,-0.935886
+				,0.322808
+				,-0.141113
+				,-0.747349
+				,0.508342
+				,0.427853
+				,-0.917491
+				,-0.397449
+				,-0.0156682
+				,-0.308974
+				,-0.951014
+				,0.0103827
+				,-0.892567
+				,0.423954
+				,-0.15358
+				,-0.591386
+				,0.806327
+				,-0.0100184
+				,-0.83389
+				,-0.550948
+				,-0.0329179
+				,-0.290783
+				,-0.956784
+				,0.00300491
+				,-0.941521
+				,0.312103
+				,-0.127005
+				,-0.7694
+				,0.638725
+				,0.00736961
+				,-0.802496
+				,-0.595792
+				,-0.0321219
+				,-0.226079
+				,-0.974109
+				,-0.00059471
+				,-0.903328
+				,-0.2491
+				,-0.349211
+				,-0.931115
+				,0.220888
+				,-0.290231
+				,-0.986428
+				,-0.132236
+				,-0.0973335
+				,-0.526489
+				,-0.759106
+				,-0.382842
+				,-0.366856
+				,-0.899308
+				,-0.238038
+				,-0.759812
+				,-0.649985
+				,0.0142999
+				,-0.562649
+				,-0.714006
+				,-0.416678
+				,-0.777048
+				,0.407267
+				,0.479928
+				,0.0689144
+				,0.992236
+				,0.10353
+				,0.830543
+				,-0.556955
+				,0
+				,0.830543
+				,-0.556955
+				,0
+				,0.764698
+				,-0.644374
+				,0.00429268
+				,0.734963
+				,-0.677684
+				,0.0239707
+				,0.830543
+				,-0.556955
+				,0
+				,0.788351
+				,-0.615225
+				,0.00121686
+				,0.800918
+				,-0.580014
+				,-0.14871
+				,0.797353
+				,-0.597315
+				,-0.0862683
+				,0.830543
+				,-0.556955
+				,0
+				,0.704251
+				,-0.709743
+				,0.0172141
+				,0.830543
+				,-0.556955
+				,0
+				,0.660067
+				,-0.751132
+				,0.0106532
+				,0.831806
+				,-0.552703
+				,0.0511714
+				,0.718413
+				,-0.695404
+				,0.0171949
+				,0.856939
+				,-0.506168
+				,-0.097211
+				,0.824748
+				,-0.547188
+				,-0.142744
+				,0.683381
+				,-0.651398
+				,-0.329653
+				,0.694764
+				,-0.68954
+				,0.204545
+				,0.52249
+				,-0.812064
+				,-0.259918
+				,0.827203
+				,-0.541779
+				,-0.149033
+				,0.914563
+				,-0.382999
+				,-0.12995
+				,0.817866
+				,-0.571446
+				,0.0674227
+				,0.559876
+				,-0.778808
+				,-0.282839
+				,0.918457
+				,-0.315448
+				,-0.238599
+				,0.789697
+				,-0.585238
+				,-0.184052
+				,0.859345
+				,-0.487561
+				,-0.154304
+				,0.878387
+				,-0.455547
+				,-0.144613
+				,0.927622
+				,-0.35229
+				,-0.124132
+				,0.862831
+				,-0.483343
+				,-0.147997
+				,0.849184
+				,-0.419916
+				,-0.320245
+				,-0.999537
+				,0.0258918
+				,0.0159835
+				,-0.996382
+				,-0.0178275
+				,0.0830995
+				,-0.99395
+				,-0.048829
+				,0.0983867
+				,-0.999532
+				,0.0213503
+				,0.0219101
+				,-0.999998
+				,0.00216411
+				,-0.000152182
+				,-0.999998
+				,0.000779111
+				,-0.0018566
+				,-0.990986
+				,-0.10809
+				,0.0791359
+				,-0.995324
+				,-0.0960751
+				,-0.0100061
+				,-0.99991
+				,0.00253381
+				,-0.0131592
+				,-0.999983
+				,0.00402038
+				,0.00412579
+				,-0.989423
+				,-0.142164
+				,-0.0288407
+				,-0.983185
+				,-0.160274
+				,-0.0875146
+				,-0.98616
+				,-0.141079
+				,-0.0870906
+				,-0.987345
+				,-0.156908
+				,-0.0230018
+				,-0.996483
+				,-0.0742679
+				,-0.0388154
+				,-0.99404
+				,-0.0925872
+				,-0.0575508
+				,-0.993912
+				,-0.0889351
+				,0.0650331
+				,-0.972498
+				,-0.214106
+				,0.0916869
+				,-0.948091
+				,-0.317997
+				,-0.00126181
+				,-0.935437
+				,-0.343431
+				,0.0837416
+				,-0.955489
+				,-0.294937
+				,-0.00732502
+				,-0.920386
+				,-0.390933
+				,0.00777882
+				,-0.714563
+				,-0.548679
+				,0.433994
+				,-0.838368
+				,0.283993
+				,0.465281
+				,0
+				,0.386953
+				,-0.922099
+				,0
+				,0.850923
+				,0.52529
+				,0
+				,0.697899
+				,0.716196
+				,0
+				,0.189077
+				,-0.981962
+				,-1
+				,-6.58949e-007
+				,-6.57428e-008
+				,-1
+				,3.53699e-006
+				,-9.18438e-008
+				,-0.960324
+				,0.276512
+				,0.0363171
+				,-0.923116
+				,0.382387
+				,-0.0404567
+				,-0.999998
+				,0.00216411
+				,-0.000152182
+				,-0.995324
+				,-0.0960751
+				,-0.0100061
+				,-1
+				,-2.40393e-006
+				,-3.88114e-007
+				,-0.992324
+				,0.123604
+				,-0.0038891
+				,-0.991861
+				,0.125333
+				,0.0224383
+				,-0.999946
+				,0.00724259
+				,-0.00739581
+				,-0.935437
+				,-0.343431
+				,0.0837416
+				,-0.735604
+				,0.0550272
+				,-0.675173
+				,-0.917491
+				,-0.397449
+				,-0.0156682
+				,-1
+				,-1.36153e-006
+				,-1.27821e-007
+				,-1
+				,-2.40393e-006
+				,-3.88114e-007
+				,-0.992324
+				,0.123604
+				,-0.0038891
+				,-0.998542
+				,-0.0465329
+				,-0.0273508
+				,-1
+				,2.0732e-008
+				,-1.32789e-007
+				,-0.990722
+				,-0.131809
+				,-0.0331123
+				,-1
+				,0.000320415
+				,-0.000178581
+				,-0.993768
+				,-0.0510411
+				,-0.0990954
+				,-0.917491
+				,-0.397449
+				,-0.0156682
+				,-0.83389
+				,-0.550948
+				,-0.0329179
+				,-0.802496
+				,-0.595792
+				,-0.0321219
+				,-0.986428
+				,-0.132236
+				,-0.0973335
+				,-0.816155
+				,0.232159
+				,-0.529143
+				,-0.813652
+				,0.52565
+				,-0.24832
+				,-0.939238
+				,0.325823
+				,-0.108034
+				,-0.239686
+				,0.870578
+				,-0.429703
+				,0.105228
+				,-0.274007
+				,-0.955953
+				,-0.291336
+				,-0.0357272
+				,-0.955954
+				,-0.324995
+				,0.656888
+				,-0.68035
+				,0.728749
+				,-0.127808
+				,-0.672749
+				,0.872154
+				,-0.433832
+				,-0.226135
+				,0.728749
+				,-0.127808
+				,-0.672749
+				,0.881201
+				,0.19708
+				,-0.429703
+				,0.744618
+				,-0.64261
+				,-0.180545
+				,0.535068
+				,-0.696867
+				,-0.477577
+				,-0.918921
+				,-0.253505
+				,0.302192
+				,-0.939238
+				,0.325823
+				,-0.108034
+				,-0.916967
+				,0.355773
+				,0.180544
+				,-0.866495
+				,0.145278
+				,-0.477577
+				,-0.207575
+				,0.930372
+				,-0.302192
+				,-0.690656
+				,0.723009
+				,-0.0159115
+				,-0.813652
+				,0.52565
+				,-0.24832
+				,-0.535068
+				,0.696867
+				,0.477577
+				,-0.85708
+				,0.270946
+				,-0.438181
+				,-0.0807288
+				,0.471967
+				,-0.877912
+				,6.40677e-006
+				,0.514547
+				,-0.857462
+				,-0.913242
+				,0.225221
+				,-0.339506
+				,-0.813342
+				,-0.301365
+				,0.497648
+				,-0.857591
+				,-0.254681
+				,0.44685
+				,9.78097e-006
+				,-0.514546
+				,0.857463
+				,0.0888402
+				,-0.601461
+				,0.793947
+				,-0.89894
+				,0.235268
+				,-0.369536
+				,-0.117052
+				,0.454501
+				,-0.883022
+				,-9.78127e-006
+				,0.514545
+				,-0.857463
+				,-0.856911
+				,0.274998
+				,-0.43598
+				,-0.857494
+				,-0.258752
+				,0.444691
+				,-0.793899
+				,-0.318942
+				,0.517688
+				,0.068395
+				,-0.569894
+				,0.818867
+				,-6.40692e-006
+				,-0.514552
+				,0.857459
+				,-0.869955
+				,0.274844
+				,-0.409437
+				,-0.0833837
+				,0.323442
+				,-0.942567
+				,-0.882691
+				,-0.249425
+				,0.3983
+				,-0.0935362
+				,-0.67495
+				,0.731911
+				,-0.870708
+				,0.27511
+				,-0.407654
+				,-0.0933141
+				,0.314358
+				,-0.944707
+				,-0.881142
+				,-0.250932
+				,0.400776
+				,-0.0866726
+				,-0.669291
+				,0.737928
+				,-0.908848
+				,0.259524
+				,-0.32656
+				,-0.388306
+				,0.11189
+				,-0.914712
+				,-0.939037
+				,-0.174607
+				,0.296177
+				,-0.34626
+				,-0.729264
+				,0.590151
+				,-0.909424
+				,0.259445
+				,-0.325017
+				,-0.385592
+				,0.115156
+				,-0.915455
+				,-0.940484
+				,-0.172305
+				,0.292916
+				,-0.347915
+				,-0.729789
+				,0.588527
+				,-0.970804
+				,0.170841
+				,-0.168383
+				,-0.854899
+				,-0.0129293
+				,-0.518634
+				,-0.989894
+				,-0.0651038
+				,0.12598
+				,-0.78082
+				,-0.508466
+				,0.363018
+				,-0.969363
+				,0.174109
+				,-0.173266
+				,-0.845866
+				,-0.0126986
+				,-0.533244
+				,-0.990182
+				,-0.0640605
+				,0.124238
+				,-0.791492
+				,-0.497549
+				,0.354944
+				,-0.99692
+				,0.0702108
+				,-0.034947
+				,-0.982677
+				,0.0422041
+				,-0.180458
+				,-0.999622
+				,-0.00489406
+				,0.0270462
+				,-0.982659
+				,-0.135147
+				,0.126954
+				,-0.996919
+				,0.0702115
+				,-0.0349597
+				,-0.982639
+				,0.0422481
+				,-0.180652
+				,-0.999622
+				,-0.0048911
+				,0.0270598
+				,-0.982683
+				,-0.135031
+				,0.126888
+				,-0.0326337
+				,-0.500829
+				,0.864931
+				,3.22793e-005
+				,-0.999871
+				,0.0160862
+				,1.51613e-007
+				,-0.981467
+				,0.191634
+				,-4.47211e-006
+				,-0.319155
+				,0.947702
+				,1.11493e-005
+				,-0.530129
+				,-0.847917
+				,-1.35144e-008
+				,-0.685443
+				,-0.728126
+				,-0.0327689
+				,0.497754
+				,-0.866699
+				,2.0258e-006
+				,0.319005
+				,-0.947753
+				,-0.0326949
+				,-0.500851
+				,0.864916
+				,3.17023e-005
+				,-0.999873
+				,0.0159628
+				,-6.66766e-008
+				,-0.981514
+				,0.19139
+				,5.16401e-006
+				,-0.319005
+				,0.947753
+				,1.15952e-005
+				,-0.529973
+				,-0.848015
+				,-1.34364e-007
+				,-0.685337
+				,-0.728227
+				,-0.0327056
+				,0.497741
+				,-0.866709
+				,-1.75534e-006
+				,0.319155
+				,-0.947702
+				,-0.895725
+				,0.105387
+				,0.431939
+				,-1
+				,0
+				,0
+				,-0.504819
+				,-0.482379
+				,0.715869
+				,-0.828167
+				,-0.421689
+				,-0.369211
+				,-0.761859
+				,0.362239
+				,-0.536986
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.398332
+				,0.128825
+				,0.908149
+				,1.41651e-012
+				,0.000739282
+				,1
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.001821
+				,0.0031858
+				,-0.999993
+				,-0.527237
+				,-0.347746
+				,-0.775303
+				,-0.132834
+				,-0.323941
+				,-0.936706
+				,-0.527237
+				,-0.347746
+				,-0.775303
+				,-0.001821
+				,-0.00294379
+				,-0.999994
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.396257
+				,0.135158
+				,0.908137
+				,-0.154807
+				,0.491034
+				,0.857275
+				,1.41486e-012
+				,0.000739274
+				,1
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.219572
+				,-0.202719
+				,0.954303
+				,-0.475757
+				,-0.408175
+				,0.779134
+				,0.418557
+				,0.483631
+				,0.768707
+				,-1
+				,3.6175e-007
+				,0
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-1
+				,0
+				,0
+				,-0.84865
+				,-0.0193074
+				,-0.528602
+				,-0.854459
+				,0.223354
+				,-0.469054
+				,-0.651469
+				,-0.0843326
+				,-0.753973
+				,-0.330731
+				,0.0926065
+				,-0.939171
+				,-0.767734
+				,0.249573
+				,-0.590167
+				,0.475756
+				,0.408175
+				,-0.779134
+				,-0.389556
+				,-0.622092
+				,-0.679152
+				,0.389554
+				,0.622093
+				,0.679152
+				,-0.272343
+				,-0.093852
+				,-0.957612
+				,0.219571
+				,0.20272
+				,-0.954302
+				,-0.418558
+				,-0.48363
+				,-0.768707
+				,0.458573
+				,-0.14988
+				,-0.875926
+				,0.738592
+				,-0.346601
+				,-0.578229
+				,-0.385401
+				,0.327366
+				,-0.862727
+				,-0.845857
+				,0.0583779
+				,-0.530205
+				,0.296538
+				,0.215382
+				,-0.930417
+				,0.738592
+				,-0.346601
+				,-0.578229
+				,-0.845857
+				,0.0583779
+				,-0.530205
+				,-0.640768
+				,-0.299025
+				,-0.707107
+				,-1
+				,0
+				,0
+				,-0.947738
+				,0.147993
+				,0.28265
+				,-0.979704
+				,0.0139322
+				,0.199966
+				,-0.798141
+				,0.256996
+				,0.544908
+				,-0.850743
+				,-0.0976276
+				,0.516436
+				,-0.622361
+				,0.351164
+				,0.699536
+				,-0.535047
+				,-0.169815
+				,0.827579
+				,-0.658246
+				,0.625319
+				,0.419151
+				,0.0108945
+				,-0.739936
+				,0.672589
+				,0
+				,-1
+				,2.7732e-008
+				,-0.0309834
+				,-0.997088
+				,-0.0696804
+				,0
+				,-0.703159
+				,0.711033
+				,0
+				,0
+				,1
+				,0.0175992
+				,-0.0783502
+				,0.996771
+				,0.0107912
+				,0.660187
+				,0.751024
+				,0
+				,0.703159
+				,0.711033
+				,0
+				,1
+				,2.7732e-008
+				,0.0172861
+				,0.995904
+				,0.0887456
+				,0.0108943
+				,0.739937
+				,-0.672588
+				,0
+				,0.703159
+				,-0.711033
+				,0
+				,0
+				,-1
+				,0
+				,0.703159
+				,-0.711033
+				,0.0108943
+				,0.739937
+				,-0.672588
+				,0.0175992
+				,0.0783492
+				,-0.996771
+				,0.0107913
+				,-0.660188
+				,-0.751023
+				,0
+				,-0.703159
+				,-0.711033
+				,-0.0226799
+				,-0.999695
+				,-0.00972728
+				,0.0131055
+				,-0.702348
+				,0.711713
+				,0.0123839
+				,-0.0122817
+				,0.999848
+				,0.0131944
+				,0.678228
+				,0.734733
+				,0.0139963
+				,0.999666
+				,0.0217368
+				,0.0131051
+				,0.702359
+				,-0.711702
+				,0.0131051
+				,0.702359
+				,-0.711702
+				,0.0123841
+				,0.0122734
+				,-0.999848
+				,0.0131943
+				,-0.678228
+				,-0.734733
+				,8.87696e-008
+				,-0.989097
+				,0.147264
+				,5.78237e-008
+				,-0.582507
+				,0.812825
+				,-1.0664e-007
+				,0.127
+				,0.991903
+				,-1.02832e-007
+				,0.780639
+				,0.624982
+				,-1.13872e-007
+				,0.989098
+				,-0.147255
+				,-1.25395e-007
+				,0.582515
+				,-0.81282
+				,0.0123841
+				,0.0122734
+				,-0.999848
+				,0.0131051
+				,0.702359
+				,-0.711702
+				,-1.25395e-007
+				,0.582515
+				,-0.81282
+				,-4.17274e-008
+				,-0.127018
+				,-0.9919
+				,-1.25395e-007
+				,0.582515
+				,-0.81282
+				,-3.08643e-008
+				,-0.780626
+				,-0.624998
+				,0.745356
+				,0.596285
+				,0.298142
+				,0.912871
+				,-0.182574
+				,0.365148
+				,0.912871
+				,-0.182574
+				,-0.365148
+				,0.745356
+				,0.596285
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.912871
+				,0.182574
+				,-0.365148
+				,0.745356
+				,-0.596285
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.745356
+				,0.596285
+				,0.298142
+				,0.912871
+				,-0.182574
+				,0.365148
+				,0.912871
+				,-0.182574
+				,-0.365148
+				,0.745356
+				,0.596285
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.912871
+				,0.182574
+				,-0.365148
+				,0.745356
+				,-0.596285
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.912871
+				,-0.182574
+				,-0.365148
+				,-0.912871
+				,-0.182574
+				,0.365148
+				,-0.745356
+				,0.596285
+				,0.298142
+				,-0.745356
+				,0.596285
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.912871
+				,0.182574
+				,-0.365148
+				,-0.745356
+				,-0.596285
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.912871
+				,-0.182574
+				,-0.365148
+				,-0.912871
+				,-0.182574
+				,0.365148
+				,-0.745356
+				,0.596285
+				,0.298142
+				,-0.745356
+				,0.596285
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.912871
+				,0.182574
+				,-0.365148
+				,-0.745356
+				,-0.596285
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.912871
+				,-0.182574
+				,0.365148
+				,0.912871
+				,-0.182574
+				,-0.365148
+				,0.745356
+				,0.596285
+				,-0.298142
+				,0.745356
+				,0.596285
+				,0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.912871
+				,0.182574
+				,0.365148
+				,0.745356
+				,-0.596285
+				,0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.745356
+				,0.596285
+				,-0.298142
+				,-0.912871
+				,-0.182574
+				,-0.365148
+				,-0.912871
+				,-0.182574
+				,0.365148
+				,-0.745356
+				,0.596285
+				,0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.912871
+				,0.182574
+				,0.365148
+				,-0.745356
+				,-0.596285
+				,0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.0406628
+				,-0.000383572
+				,-0.999173
+				,-0.258808
+				,0.00523817
+				,-0.965914
+				,0
+				,3.57864e-008
+				,-1
+				,-5.60669e-008
+				,-8.86392e-008
+				,-1
+				,0
+				,-4.76878e-008
+				,-1
+				,-0.159762
+				,0.00365147
+				,-0.987149
+				,0.0342897
+				,-0.00258663
+				,-0.999409
+				,0.0552979
+				,-0.0281865
+				,-0.998072
+				,0.414342
+				,0.143659
+				,-0.898712
+				,-0.0602476
+				,0.00976605
+				,-0.998136
+				,-0.0552976
+				,-0.0281864
+				,-0.998072
+				,-0.414341
+				,0.143659
+				,-0.898712
+				,-0.411744
+				,0.0185513
+				,-0.911111
+				,-0.388404
+				,0.016836
+				,-0.921335
+				,0.106503
+				,0.00245149
+				,-0.994309
+				,0.709306
+				,0.17223
+				,-0.683536
+				,-0.709305
+				,0.17223
+				,-0.683537
+				,-0.498671
+				,0.0170538
+				,-0.866624
+				,-0.365281
+				,0.0103669
+				,-0.930839
+				,0.852957
+				,0.100491
+				,-0.512216
+				,-0.226288
+				,0.0589018
+				,-0.972278
+				,-0.852956
+				,0.100492
+				,-0.512218
+				,-0.520791
+				,-0.00404868
+				,-0.853674
+				,-0.519065
+				,1.53965e-007
+				,-0.854735
+				,0.116765
+				,-0.00323019
+				,-0.993154
+				,0.890936
+				,0
+				,-0.454129
+				,-0.890935
+				,0
+				,-0.45413
+				,-0.476485
+				,-0.0201484
+				,-0.878952
+				,-0.365281
+				,-0.0103669
+				,-0.930839
+				,0.854508
+				,-0.0948003
+				,-0.510715
+				,-0.266828
+				,-0.0325039
+				,-0.963196
+				,-0.854507
+				,-0.0948006
+				,-0.510716
+				,-0.368075
+				,-0.0141367
+				,-0.929689
+				,-0.388405
+				,-0.0168355
+				,-0.921335
+				,0.0592949
+				,0.00217879
+				,-0.998238
+				,0.731654
+				,-0.139776
+				,-0.667192
+				,-0.731653
+				,-0.139777
+				,-0.667193
+				,-0.191515
+				,-0.00173153
+				,-0.981488
+				,-0.159762
+				,-0.00365033
+				,-0.987149
+				,0.263324
+				,-0.241582
+				,-0.933969
+				,-0.143103
+				,-0.0331642
+				,-0.989152
+				,-0.458106
+				,-0.112487
+				,-0.881751
+				,0.0406643
+				,-0.000384458
+				,-0.999173
+				,-1.04777e-007
+				,1.723e-007
+				,-1
+				,-0.0335703
+				,0.00349361
+				,-0.99943
+				,0.0330473
+				,0.0168449
+				,-0.999312
+				,-0.055299
+				,0.0281871
+				,-0.998072
+				,0.258811
+				,0.00523932
+				,-0.965914
+				,0.159762
+				,0.00364992
+				,-0.987149
+				,-0.236441
+				,0.257617
+				,-0.936872
+				,0.0602438
+				,0.00976541
+				,-0.998136
+				,0.414343
+				,0.143657
+				,-0.898711
+				,0.411752
+				,0.0185537
+				,-0.911107
+				,0.388404
+				,0.0168357
+				,-0.921335
+				,-0.106499
+				,0.00245161
+				,-0.99431
+				,-0.709307
+				,0.17223
+				,-0.683536
+				,0.709305
+				,0.17223
+				,-0.683537
+				,0.498674
+				,0.0170549
+				,-0.866622
+				,0.365281
+				,0.0103669
+				,-0.930839
+				,-0.852957
+				,0.10049
+				,-0.512216
+				,0.226295
+				,0.0589055
+				,-0.972276
+				,0.852957
+				,0.100491
+				,-0.512218
+				,0.52079
+				,-0.00404834
+				,-0.853675
+				,0.519065
+				,-1.4181e-007
+				,-0.854735
+				,-0.116764
+				,-0.00322988
+				,-0.993154
+				,-0.890936
+				,0
+				,-0.454129
+				,0.890935
+				,0
+				,-0.45413
+				,0.476478
+				,-0.0201469
+				,-0.878955
+				,0.365281
+				,-0.0103671
+				,-0.930839
+				,-0.854508
+				,-0.0948009
+				,-0.510715
+				,0.266824
+				,-0.0325027
+				,-0.963197
+				,0.854507
+				,-0.0948013
+				,-0.510716
+				,0.368067
+				,-0.0141349
+				,-0.929692
+				,0.388404
+				,-0.016836
+				,-0.921335
+				,-0.0592997
+				,0.00217926
+				,-0.998238
+				,-0.731653
+				,-0.139777
+				,-0.667192
+				,0.731652
+				,-0.139777
+				,-0.667194
+				,0.191519
+				,-0.0017298
+				,-0.981487
+				,0.159762
+				,-0.00365147
+				,-0.987149
+				,-0.458106
+				,-0.112489
+				,-0.881751
+				,0.143095
+				,-0.0331621
+				,-0.989153
+				,0.458104
+				,-0.112489
+				,-0.881752
+				,0.0268145
+				,-0.0136679
+				,0.999547
+				,-2.30261e-009
+				,0
+				,1
+				,-0.0160934
+				,-0.375042
+				,0.926868
+				,4.14468e-009
+				,-0.382684
+				,0.92388
+				,-2.30261e-009
+				,0
+				,1
+				,-0.0268146
+				,-0.013668
+				,0.999547
+				,0.0160934
+				,-0.375042
+				,0.926868
+				,4.14468e-009
+				,-0.382684
+				,0.92388
+				,-0.0160934
+				,-0.375042
+				,0.926868
+				,4.14468e-009
+				,-0.382684
+				,0.92388
+				,2.21733e-009
+				,-0.707107
+				,0.707107
+				,-0.0268145
+				,-0.697122
+				,0.716451
+				,4.14468e-009
+				,-0.382684
+				,0.92388
+				,0.0160934
+				,-0.375042
+				,0.926868
+				,2.21733e-009
+				,-0.707107
+				,0.707107
+				,0.0268146
+				,-0.697122
+				,0.716451
+				,-0.0268145
+				,-0.697122
+				,0.716451
+				,2.21733e-009
+				,-0.707107
+				,0.707107
+				,-0.0160933
+				,-0.92059
+				,0.3902
+				,3.99117e-009
+				,-0.92388
+				,0.382683
+				,2.21733e-009
+				,-0.707107
+				,0.707107
+				,0.0268146
+				,-0.697122
+				,0.716451
+				,0.0160933
+				,-0.92059
+				,0.3902
+				,3.99117e-009
+				,-0.92388
+				,0.382683
+				,-0.0160933
+				,-0.92059
+				,0.3902
+				,3.99117e-009
+				,-0.92388
+				,0.382683
+				,2.30261e-009
+				,-1
+				,0
+				,-0.0268145
+				,-0.999547
+				,0.0136679
+				,3.99117e-009
+				,-0.92388
+				,0.382683
+				,0.0160933
+				,-0.92059
+				,0.3902
+				,2.30261e-009
+				,-1
+				,0
+				,0.0268146
+				,-0.999547
+				,0.013668
+				,-0.0268145
+				,-0.999547
+				,0.0136679
+				,2.30261e-009
+				,-1
+				,0
+				,-0.0160933
+				,-0.926868
+				,-0.375043
+				,3.99117e-009
+				,-0.923879
+				,-0.382684
+				,2.30261e-009
+				,-1
+				,0
+				,0.0268146
+				,-0.999547
+				,0.013668
+				,0.0160934
+				,-0.926868
+				,-0.375043
+				,3.99117e-009
+				,-0.923879
+				,-0.382684
+				,-0.0160933
+				,-0.926868
+				,-0.375043
+				,3.99117e-009
+				,-0.923879
+				,-0.382684
+				,2.25996e-009
+				,-0.707107
+				,-0.707107
+				,-0.0268144
+				,-0.716451
+				,-0.697122
+				,3.99117e-009
+				,-0.923879
+				,-0.382684
+				,0.0160934
+				,-0.926868
+				,-0.375043
+				,2.25996e-009
+				,-0.707107
+				,-0.707107
+				,0.0268145
+				,-0.716451
+				,-0.697122
+				,-0.0268144
+				,-0.716451
+				,-0.697122
+				,2.25996e-009
+				,-0.707107
+				,-0.707107
+				,0.263324
+				,-0.241582
+				,-0.933969
+				,4.14469e-009
+				,-0.382684
+				,-0.92388
+				,2.25996e-009
+				,-0.707107
+				,-0.707107
+				,0.0268145
+				,-0.716451
+				,-0.697122
+				,0.0160934
+				,-0.3902
+				,-0.92059
+				,4.14469e-009
+				,-0.382684
+				,-0.92388
+				,0.263324
+				,-0.241582
+				,-0.933969
+				,4.14469e-009
+				,-0.382684
+				,-0.92388
+				,2.38788e-009
+				,0
+				,-1
+				,0.0330473
+				,0.0168449
+				,-0.999312
+				,4.14469e-009
+				,-0.382684
+				,-0.92388
+				,0.0160934
+				,-0.3902
+				,-0.92059
+				,2.38788e-009
+				,0
+				,-1
+				,0.0268145
+				,-0.0136679
+				,-0.999547
+				,0.0330473
+				,0.0168449
+				,-0.999312
+				,2.38788e-009
+				,0
+				,-1
+				,-0.236441
+				,0.257617
+				,-0.936872
+				,4.14469e-009
+				,0.382684
+				,-0.92388
+				,2.38788e-009
+				,0
+				,-1
+				,0.0268145
+				,-0.0136679
+				,-0.999547
+				,0.0160934
+				,0.375042
+				,-0.926868
+				,4.14469e-009
+				,0.382684
+				,-0.92388
+				,-0.236441
+				,0.257617
+				,-0.936872
+				,4.14469e-009
+				,0.382684
+				,-0.92388
+				,2.25996e-009
+				,0.707107
+				,-0.707107
+				,-0.0268144
+				,0.697122
+				,-0.716451
+				,4.14469e-009
+				,0.382684
+				,-0.92388
+				,0.0160934
+				,0.375042
+				,-0.926868
+				,2.25996e-009
+				,0.707107
+				,-0.707107
+				,0.0268145
+				,0.697122
+				,-0.716451
+				,-0.0268144
+				,0.697122
+				,-0.716451
+				,2.25996e-009
+				,0.707107
+				,-0.707107
+				,-0.0160933
+				,0.92059
+				,-0.3902
+				,3.99118e-009
+				,0.923879
+				,-0.382684
+				,2.25996e-009
+				,0.707107
+				,-0.707107
+				,0.0268145
+				,0.697122
+				,-0.716451
+				,0.0160934
+				,0.920589
+				,-0.3902
+				,3.99118e-009
+				,0.923879
+				,-0.382684
+				,-0.0160933
+				,0.92059
+				,-0.3902
+				,3.99118e-009
+				,0.923879
+				,-0.382684
+				,2.30261e-009
+				,1
+				,0
+				,-0.0268145
+				,0.999547
+				,-0.0136679
+				,3.99118e-009
+				,0.923879
+				,-0.382684
+				,0.0160934
+				,0.920589
+				,-0.3902
+				,2.30261e-009
+				,1
+				,0
+				,0.0268146
+				,0.999547
+				,-0.013668
+				,-0.0268145
+				,0.999547
+				,-0.0136679
+				,2.30261e-009
+				,1
+				,0
+				,-0.0160933
+				,0.926868
+				,0.375042
+				,3.99117e-009
+				,0.92388
+				,0.382684
+				,2.30261e-009
+				,1
+				,0
+				,0.0268146
+				,0.999547
+				,-0.013668
+				,0.0160934
+				,0.926868
+				,0.375042
+				,3.99117e-009
+				,0.92388
+				,0.382684
+				,-0.0160933
+				,0.926868
+				,0.375042
+				,3.99117e-009
+				,0.92388
+				,0.382684
+				,2.21732e-009
+				,0.707107
+				,0.707107
+				,-0.0268145
+				,0.716451
+				,0.697122
+				,3.99117e-009
+				,0.92388
+				,0.382684
+				,0.0160934
+				,0.926868
+				,0.375042
+				,2.21732e-009
+				,0.707107
+				,0.707107
+				,0.0268146
+				,0.716451
+				,0.697122
+				,-0.0268145
+				,0.716451
+				,0.697122
+				,2.21732e-009
+				,0.707107
+				,0.707107
+				,-0.0160933
+				,0.3902
+				,0.92059
+				,4.14468e-009
+				,0.382684
+				,0.92388
+				,2.21732e-009
+				,0.707107
+				,0.707107
+				,0.0268146
+				,0.716451
+				,0.697122
+				,0.0160933
+				,0.3902
+				,0.92059
+				,4.14468e-009
+				,0.382684
+				,0.92388
+				,-0.0160933
+				,0.3902
+				,0.92059
+				,4.14468e-009
+				,0.382684
+				,0.92388
+				,-2.30261e-009
+				,0
+				,1
+				,0.0268145
+				,-0.0136679
+				,0.999547
+				,4.14468e-009
+				,0.382684
+				,0.92388
+				,0.0160933
+				,0.3902
+				,0.92059
+				,-2.30261e-009
+				,0
+				,1
+				,-0.0268146
+				,-0.013668
+				,0.999547
+			]
+			,"bitangents": [
+				 -0.520796
+				,-0.853672
+				,0.00404876
+				,-0.476481
+				,-0.878954
+				,0.0201475
+				,0
+				,-1
+				,2.28704e-009
+				,-0.519065
+				,-0.854735
+				,5.76011e-007
+				,0
+				,-1
+				,9.25277e-010
+				,-0.365282
+				,-0.930839
+				,0.0103679
+				,0.116762
+				,-0.993155
+				,0.00323107
+				,0.890936
+				,-0.454129
+				,8.30525e-008
+				,0.854507
+				,-0.510715
+				,0.0948014
+				,-0.266829
+				,-0.963196
+				,0.0325066
+				,-0.890935
+				,-0.45413
+				,8.42227e-008
+				,-0.854507
+				,-0.510716
+				,0.0948018
+				,-0.368066
+				,-0.929692
+				,0.014135
+				,-0.388404
+				,-0.921335
+				,0.0168356
+				,0.0592992
+				,-0.998238
+				,-0.00217942
+				,0.731654
+				,-0.667192
+				,0.139776
+				,-0.731652
+				,-0.667194
+				,0.139777
+				,-0.191517
+				,-0.981488
+				,0.00173126
+				,-0.159762
+				,-0.987149
+				,0.00365135
+				,0.458106
+				,-0.881751
+				,0.112488
+				,-0.143094
+				,-0.989153
+				,0.0331622
+				,-0.458105
+				,-0.881752
+				,0.112488
+				,0.0406609
+				,-0.999173
+				,0.000383066
+				,5.39311e-008
+				,-1
+				,9.0775e-008
+				,-0.0335745
+				,-0.99943
+				,-0.00349344
+				,0.055298
+				,-0.998072
+				,-0.0281865
+				,-0.0552977
+				,-0.998072
+				,-0.0281864
+				,0.25881
+				,-0.965914
+				,-0.00523834
+				,0.159762
+				,-0.987149
+				,-0.00365168
+				,-0.414342
+				,-0.898712
+				,-0.143659
+				,0.0602464
+				,-0.998136
+				,-0.00976645
+				,0.414341
+				,-0.898712
+				,-0.143659
+				,0.411755
+				,-0.911106
+				,-0.0185524
+				,0.388405
+				,-0.921335
+				,-0.0168356
+				,-0.106499
+				,-0.99431
+				,-0.00245124
+				,-0.709307
+				,-0.683536
+				,-0.172229
+				,0.709306
+				,-0.683537
+				,-0.172229
+				,0.49868
+				,-0.866618
+				,-0.0170546
+				,0.365281
+				,-0.930839
+				,-0.0103678
+				,-0.879127
+				,-0.4761
+				,0.021558
+				,0.226305
+				,-0.972273
+				,-0.0589106
+				,0.852956
+				,-0.512218
+				,-0.100492
+				,0.520794
+				,-0.853673
+				,0.00404863
+				,0.519065
+				,-0.854735
+				,-5.71719e-007
+				,-0.116763
+				,-0.993155
+				,0.00322858
+				,-0.890936
+				,-0.454128
+				,-1.60722e-008
+				,0.890935
+				,-0.45413
+				,-8.30528e-008
+				,0.476495
+				,-0.878946
+				,0.0201482
+				,0.365281
+				,-0.930839
+				,0.0103668
+				,-0.879612
+				,-0.475048
+				,-0.0247441
+				,0.266837
+				,-0.963193
+				,0.0325018
+				,0.854507
+				,-0.510716
+				,0.0948004
+				,0.368074
+				,-0.929689
+				,0.0141374
+				,0.388404
+				,-0.921335
+				,0.0168346
+				,-0.0592937
+				,-0.998238
+				,-0.0021808
+				,-0.731654
+				,-0.667192
+				,0.139776
+				,0.731653
+				,-0.667193
+				,0.139777
+				,0.191517
+				,-0.981488
+				,0.00173398
+				,0.159762
+				,-0.987149
+				,0.00364929
+				,-0.458107
+				,-0.881751
+				,0.112487
+				,0.143099
+				,-0.989153
+				,0.0331632
+				,0.458106
+				,-0.881751
+				,0.112487
+				,-0.0406631
+				,-0.999173
+				,0.000382166
+				,-8.65033e-008
+				,-1
+				,1.40968e-007
+				,0.0335734
+				,-0.99943
+				,-0.00349349
+				,-0.0552984
+				,-0.998072
+				,-0.0281868
+				,0.055298
+				,-0.998072
+				,-0.0281867
+				,-0.258806
+				,-0.965915
+				,-0.00524028
+				,-0.159762
+				,-0.987149
+				,-0.00364977
+				,0.414343
+				,-0.898711
+				,-0.143657
+				,-0.0602467
+				,-0.998136
+				,-0.00976724
+				,-0.414342
+				,-0.898712
+				,-0.143657
+				,-0.411744
+				,-0.911111
+				,-0.018553
+				,-0.388404
+				,-0.921335
+				,-0.0168343
+				,0.106502
+				,-0.994309
+				,-0.00244955
+				,0.709306
+				,-0.683536
+				,-0.17223
+				,-0.709305
+				,-0.683537
+				,-0.17223
+				,-0.498675
+				,-0.866621
+				,-0.0170548
+				,-0.365281
+				,-0.930839
+				,-0.010367
+				,0.852957
+				,-0.512216
+				,-0.10049
+				,-0.22629
+				,-0.972277
+				,-0.0589018
+				,-0.852957
+				,-0.512217
+				,-0.100491
+				,-0.890936
+				,0.454129
+				,8.38242e-008
+				,-1
+				,-1.04893e-007
+				,-2.48621e-009
+				,-0.890844
+				,0.425036
+				,0.160445
+				,-1
+				,-1.43853e-007
+				,7.94187e-008
+				,-1
+				,-1.04893e-007
+				,-2.48621e-009
+				,-0.890935
+				,-0.45413
+				,-8.50053e-008
+				,-0.890843
+				,-0.425037
+				,-0.160445
+				,-1
+				,-1.43853e-007
+				,7.94187e-008
+				,-0.890844
+				,0.425036
+				,0.160445
+				,-1
+				,-1.43853e-007
+				,7.94187e-008
+				,-0.99997
+				,0.00548173
+				,-0.00548187
+				,-0.890936
+				,0.321118
+				,0.321117
+				,-1
+				,-1.43853e-007
+				,7.94187e-008
+				,-0.890843
+				,-0.425037
+				,-0.160445
+				,-0.99997
+				,0.00548173
+				,-0.00548187
+				,-0.890935
+				,-0.321119
+				,-0.321118
+				,-0.890936
+				,0.321118
+				,0.321117
+				,-0.99997
+				,0.00548173
+				,-0.00548187
+				,-0.890844
+				,0.187094
+				,0.413997
+				,-1
+				,-6.59327e-008
+				,-8.69114e-008
+				,-0.99997
+				,0.00548173
+				,-0.00548187
+				,-0.890935
+				,-0.321119
+				,-0.321118
+				,-0.890843
+				,-0.187094
+				,-0.413998
+				,-1
+				,-6.59327e-008
+				,-8.69114e-008
+				,-0.890844
+				,0.187094
+				,0.413997
+				,-1
+				,-6.59327e-008
+				,-8.69114e-008
+				,-0.99997
+				,0.00775251
+				,-1.0489e-007
+				,-0.890936
+				,0
+				,0.454128
+				,-1
+				,-6.59327e-008
+				,-8.69114e-008
+				,-0.890843
+				,-0.187094
+				,-0.413998
+				,-0.99997
+				,0.00775251
+				,-1.0489e-007
+				,-0.890936
+				,0
+				,-0.454129
+				,-0.890936
+				,0
+				,0.454128
+				,-0.99997
+				,0.00775251
+				,-1.0489e-007
+				,-0.890844
+				,-0.160444
+				,0.425036
+				,-1
+				,3.11681e-007
+				,2.09782e-008
+				,-0.99997
+				,0.00775251
+				,-1.0489e-007
+				,-0.890936
+				,0
+				,-0.454129
+				,-0.890843
+				,0.160445
+				,-0.425037
+				,-1
+				,3.11681e-007
+				,2.09782e-008
+				,-0.890844
+				,-0.160444
+				,0.425036
+				,-1
+				,3.11681e-007
+				,2.09782e-008
+				,-0.99997
+				,0.00548202
+				,0.00548188
+				,-0.890936
+				,-0.321117
+				,0.321117
+				,-1
+				,3.11681e-007
+				,2.09782e-008
+				,-0.890843
+				,0.160445
+				,-0.425037
+				,-0.99997
+				,0.00548202
+				,0.00548188
+				,-0.890936
+				,0.321118
+				,-0.321118
+				,-0.890936
+				,-0.321117
+				,0.321117
+				,-0.99997
+				,0.00548202
+				,0.00548188
+				,-0.879127
+				,-0.4761
+				,0.021558
+				,-1
+				,1.5584e-007
+				,9.88985e-008
+				,-0.99997
+				,0.00548202
+				,0.00548188
+				,-0.890936
+				,0.321118
+				,-0.321118
+				,-0.890843
+				,0.413998
+				,-0.187095
+				,-1
+				,1.5584e-007
+				,9.88985e-008
+				,-0.879127
+				,-0.4761
+				,0.021558
+				,-1
+				,1.5584e-007
+				,9.88985e-008
+				,-0.99997
+				,1.06553e-007
+				,0.00775257
+				,-0.890936
+				,-0.454128
+				,-1.60722e-008
+				,-1
+				,1.5584e-007
+				,9.88985e-008
+				,-0.890843
+				,0.413998
+				,-0.187095
+				,-0.99997
+				,1.06553e-007
+				,0.00775257
+				,-0.890935
+				,0.45413
+				,-8.38246e-008
+				,-0.890936
+				,-0.454128
+				,-1.60722e-008
+				,-0.99997
+				,1.06553e-007
+				,0.00775257
+				,-0.879612
+				,-0.475048
+				,-0.0247441
+				,-1
+				,3.41061e-013
+				,2.81711e-007
+				,-0.99997
+				,1.06553e-007
+				,0.00775257
+				,-0.890935
+				,0.45413
+				,-8.38246e-008
+				,-0.890843
+				,0.425037
+				,0.160445
+				,-1
+				,3.41061e-013
+				,2.81711e-007
+				,-0.879612
+				,-0.475048
+				,-0.0247441
+				,-1
+				,3.41061e-013
+				,2.81711e-007
+				,-0.99997
+				,-0.00548183
+				,0.00548198
+				,-0.890936
+				,-0.321117
+				,-0.321117
+				,-1
+				,3.41061e-013
+				,2.81711e-007
+				,-0.890843
+				,0.425037
+				,0.160445
+				,-0.99997
+				,-0.00548183
+				,0.00548198
+				,-0.890936
+				,0.321118
+				,0.321118
+				,-0.890936
+				,-0.321117
+				,-0.321117
+				,-0.99997
+				,-0.00548183
+				,0.00548198
+				,-0.890843
+				,-0.187095
+				,-0.413998
+				,-1
+				,-1.49846e-008
+				,1.1688e-007
+				,-0.99997
+				,-0.00548183
+				,0.00548198
+				,-0.890936
+				,0.321118
+				,0.321118
+				,-0.890843
+				,0.187095
+				,0.413999
+				,-1
+				,-1.49846e-008
+				,1.1688e-007
+				,-0.890843
+				,-0.187095
+				,-0.413998
+				,-1
+				,-1.49846e-008
+				,1.1688e-007
+				,-0.99997
+				,-0.00775251
+				,1.0489e-007
+				,-0.890936
+				,0
+				,-0.454129
+				,-1
+				,-1.49846e-008
+				,1.1688e-007
+				,-0.890843
+				,0.187095
+				,0.413999
+				,-0.99997
+				,-0.00775251
+				,1.0489e-007
+				,-0.890935
+				,0
+				,0.45413
+				,-0.890936
+				,0
+				,-0.454129
+				,-0.99997
+				,-0.00775251
+				,1.0489e-007
+				,-0.890843
+				,0.160445
+				,-0.425036
+				,-1
+				,1.04892e-008
+				,1.10887e-007
+				,-0.99997
+				,-0.00775251
+				,1.0489e-007
+				,-0.890935
+				,0
+				,0.45413
+				,-0.890843
+				,-0.160446
+				,0.425037
+				,-1
+				,1.04892e-008
+				,1.10887e-007
+				,-0.890843
+				,0.160445
+				,-0.425036
+				,-1
+				,1.04892e-008
+				,1.10887e-007
+				,-0.99997
+				,-0.00548189
+				,-0.00548174
+				,-0.890936
+				,0.321118
+				,-0.321117
+				,-1
+				,1.04892e-008
+				,1.10887e-007
+				,-0.890843
+				,-0.160446
+				,0.425037
+				,-0.99997
+				,-0.00548189
+				,-0.00548174
+				,-0.890935
+				,-0.321119
+				,0.321118
+				,-0.890936
+				,0.321118
+				,-0.321117
+				,-0.99997
+				,-0.00548189
+				,-0.00548174
+				,-0.890844
+				,0.413998
+				,-0.187093
+				,-1
+				,1.19875e-008
+				,2.96697e-007
+				,-0.99997
+				,-0.00548189
+				,-0.00548174
+				,-0.890935
+				,-0.321119
+				,0.321118
+				,-0.890843
+				,-0.413999
+				,0.187094
+				,-1
+				,1.19875e-008
+				,2.96697e-007
+				,-0.890844
+				,0.413998
+				,-0.187093
+				,-1
+				,1.19875e-008
+				,2.96697e-007
+				,-1
+				,-1.04893e-007
+				,-2.48621e-009
+				,-0.890936
+				,0.454129
+				,8.38242e-008
+				,-1
+				,1.19875e-008
+				,2.96697e-007
+				,-0.890843
+				,-0.413999
+				,0.187094
+				,-1
+				,-1.04893e-007
+				,-2.48621e-009
+				,-0.890935
+				,-0.45413
+				,-8.50053e-008
+				,0
+				,-1
+				,1.69193e-012
+				,0.476481
+				,-0.878954
+				,0.0201464
+				,0.520796
+				,-0.853672
+				,0.00404837
+				,0.365281
+				,-0.930839
+				,0.0103676
+				,0
+				,-1
+				,4.6264e-009
+				,0.519065
+				,-0.854735
+				,2.48577e-007
+				,-0.854508
+				,-0.510715
+				,0.0948013
+				,-0.890936
+				,-0.454129
+				,0
+				,-0.116762
+				,-0.993155
+				,0.00323127
+				,0.266828
+				,-0.963196
+				,0.0325057
+				,0.854507
+				,-0.510716
+				,0.0948016
+				,0.890935
+				,-0.45413
+				,0
+				,0.368066
+				,-0.929692
+				,0.0141346
+				,0.388404
+				,-0.921335
+				,0.0168349
+				,-0.0592994
+				,-0.998238
+				,-0.00218039
+				,-0.731654
+				,-0.667192
+				,0.139776
+				,0.731653
+				,-0.667194
+				,0.139777
+				,0.191517
+				,-0.981488
+				,0.00173174
+				,0.159762
+				,-0.987149
+				,0.00365074
+				,-0.458106
+				,-0.881751
+				,0.112488
+				,0.143094
+				,-0.989153
+				,0.0331615
+				,0.458105
+				,-0.881752
+				,0.112488
+				,-0.040661
+				,-0.999173
+				,0.000383189
+				,-5.39311e-008
+				,-1
+				,8.75712e-008
+				,0.0335746
+				,-0.99943
+				,-0.00349338
+				,-0.0552981
+				,-0.998072
+				,-0.0281866
+				,0.0552977
+				,-0.998072
+				,-0.0281865
+				,-0.25881
+				,-0.965914
+				,-0.00523882
+				,-0.159762
+				,-0.987149
+				,-0.00365107
+				,0.414343
+				,-0.898711
+				,-0.143659
+				,-0.060247
+				,-0.998136
+				,-0.00976635
+				,-0.414342
+				,-0.898712
+				,-0.143659
+				,-0.411755
+				,-0.911106
+				,-0.0185516
+				,-0.388405
+				,-0.921335
+				,-0.016835
+				,0.106499
+				,-0.99431
+				,-0.00245044
+				,0.709307
+				,-0.683536
+				,-0.172229
+				,-0.709305
+				,-0.683537
+				,-0.17223
+				,-0.49868
+				,-0.866619
+				,-0.0170534
+				,-0.365281
+				,-0.930839
+				,-0.0103672
+				,0.879127
+				,-0.4761
+				,0.021558
+				,-0.226305
+				,-0.972273
+				,-0.0589092
+				,-0.852956
+				,-0.512218
+				,-0.100492
+				,-0.520794
+				,-0.853673
+				,0.00404816
+				,-0.519065
+				,-0.854734
+				,-2.56596e-007
+				,0.116763
+				,-0.993155
+				,0.00322929
+				,0.890936
+				,-0.454128
+				,0
+				,-0.890936
+				,-0.45413
+				,0
+				,-0.476495
+				,-0.878946
+				,0.0201483
+				,-0.365281
+				,-0.930839
+				,0.0103676
+				,0.879612
+				,-0.475048
+				,-0.0247439
+				,-0.266837
+				,-0.963193
+				,0.0325029
+				,-0.854507
+				,-0.510716
+				,0.0948013
+				,-0.368074
+				,-0.929689
+				,0.0141382
+				,-0.388404
+				,-0.921335
+				,0.0168355
+				,0.0592934
+				,-0.998238
+				,-0.00217858
+				,0.731654
+				,-0.667192
+				,0.139776
+				,-0.731653
+				,-0.667193
+				,0.139777
+				,-0.191517
+				,-0.981488
+				,0.00173257
+				,-0.159762
+				,-0.987149
+				,0.00365091
+				,0.458107
+				,-0.881751
+				,0.112488
+				,-0.143098
+				,-0.989153
+				,0.0331639
+				,-0.458106
+				,-0.881751
+				,0.112488
+				,0.0406632
+				,-0.999173
+				,0.000382587
+				,8.38334e-008
+				,-1
+				,1.399e-007
+				,-0.0335735
+				,-0.99943
+				,-0.00349352
+				,0.0552983
+				,-0.998072
+				,-0.0281867
+				,-0.0552979
+				,-0.998072
+				,-0.0281866
+				,0.258806
+				,-0.965915
+				,-0.00524032
+				,0.159762
+				,-0.987149
+				,-0.00365109
+				,-0.414343
+				,-0.898711
+				,-0.143658
+				,0.0602462
+				,-0.998136
+				,-0.0097673
+				,0.414342
+				,-0.898712
+				,-0.143658
+				,0.411744
+				,-0.911111
+				,-0.0185533
+				,0.388404
+				,-0.921335
+				,-0.0168355
+				,-0.106503
+				,-0.994309
+				,-0.00245154
+				,-0.709306
+				,-0.683536
+				,-0.17223
+				,0.709305
+				,-0.683538
+				,-0.17223
+				,0.498675
+				,-0.866621
+				,-0.0170543
+				,0.365281
+				,-0.930839
+				,-0.0103677
+				,-0.852957
+				,-0.512216
+				,-0.100491
+				,0.22629
+				,-0.972277
+				,-0.0589034
+				,0.852956
+				,-0.512218
+				,-0.100491
+				,0.890844
+				,0.425036
+				,0.160445
+				,1
+				,-1.04893e-007
+				,0
+				,0.890936
+				,0.454129
+				,0
+				,1
+				,-6.29359e-008
+				,-1.0789e-007
+				,0.890843
+				,-0.425037
+				,-0.160445
+				,0.890935
+				,-0.45413
+				,0
+				,1
+				,-1.04893e-007
+				,0
+				,1
+				,-6.29359e-008
+				,-1.0789e-007
+				,0.99997
+				,0.00548179
+				,-0.00548193
+				,1
+				,-6.29359e-008
+				,-1.0789e-007
+				,0.890844
+				,0.425036
+				,0.160445
+				,0.890936
+				,0.321118
+				,0.321118
+				,0.99997
+				,0.00548179
+				,-0.00548193
+				,0.890843
+				,-0.425037
+				,-0.160445
+				,1
+				,-6.29359e-008
+				,-1.0789e-007
+				,0.890935
+				,-0.321118
+				,-0.321118
+				,0.890844
+				,0.187094
+				,0.413997
+				,0.99997
+				,0.00548179
+				,-0.00548193
+				,0.890936
+				,0.321118
+				,0.321118
+				,1
+				,5.99375e-009
+				,-1.16881e-007
+				,0.890843
+				,-0.187095
+				,-0.413998
+				,0.890935
+				,-0.321118
+				,-0.321118
+				,0.99997
+				,0.00548179
+				,-0.00548193
+				,1
+				,5.99375e-009
+				,-1.16881e-007
+				,0.99997
+				,0.00775251
+				,-1.0489e-007
+				,1
+				,5.99375e-009
+				,-1.16881e-007
+				,0.890844
+				,0.187094
+				,0.413997
+				,0.890936
+				,0
+				,0.454129
+				,0.99997
+				,0.00775251
+				,-1.0489e-007
+				,0.890843
+				,-0.187095
+				,-0.413998
+				,1
+				,5.99375e-009
+				,-1.16881e-007
+				,0.890935
+				,0
+				,-0.45413
+				,0.890844
+				,-0.160444
+				,0.425036
+				,0.99997
+				,0.00775251
+				,-1.0489e-007
+				,0.890936
+				,0
+				,0.454129
+				,1
+				,2.27767e-007
+				,-1.79818e-008
+				,0.890843
+				,0.160445
+				,-0.425037
+				,0.890935
+				,0
+				,-0.45413
+				,0.99997
+				,0.00775251
+				,-1.0489e-007
+				,1
+				,2.27767e-007
+				,-1.79818e-008
+				,0.99997
+				,0.00548196
+				,0.00548181
+				,1
+				,2.27767e-007
+				,-1.79818e-008
+				,0.890844
+				,-0.160444
+				,0.425036
+				,0.890936
+				,-0.321117
+				,0.321117
+				,0.99997
+				,0.00548196
+				,0.00548181
+				,0.890843
+				,0.160445
+				,-0.425037
+				,1
+				,2.27767e-007
+				,-1.79818e-008
+				,0.890936
+				,0.321118
+				,-0.321118
+				,0.879127
+				,-0.4761
+				,0.021558
+				,0.99997
+				,0.00548196
+				,0.00548181
+				,0.890936
+				,-0.321117
+				,0.321117
+				,1
+				,7.49234e-008
+				,-8.99079e-008
+				,0.890843
+				,0.413998
+				,-0.187094
+				,0.890936
+				,0.321118
+				,-0.321118
+				,0.99997
+				,0.00548196
+				,0.00548181
+				,1
+				,7.49234e-008
+				,-8.99079e-008
+				,0.99997
+				,1.0489e-007
+				,0.00775245
+				,1
+				,7.49234e-008
+				,-8.99079e-008
+				,0.879127
+				,-0.4761
+				,0.021558
+				,0.890936
+				,-0.454128
+				,0
+				,0.99997
+				,1.0489e-007
+				,0.00775245
+				,0.890843
+				,0.413998
+				,-0.187094
+				,1
+				,7.49234e-008
+				,-8.99079e-008
+				,0.890936
+				,0.45413
+				,0
+				,0.879612
+				,-0.475048
+				,-0.0247439
+				,0.99997
+				,1.0489e-007
+				,0.00775245
+				,0.890936
+				,-0.454128
+				,0
+				,1
+				,7.19265e-008
+				,8.84094e-008
+				,0.890843
+				,0.425037
+				,0.160445
+				,0.890936
+				,0.45413
+				,0
+				,0.99997
+				,1.0489e-007
+				,0.00775245
+				,1
+				,7.19265e-008
+				,8.84094e-008
+				,0.99997
+				,-0.00548177
+				,0.00548192
+				,1
+				,7.19265e-008
+				,8.84094e-008
+				,0.879612
+				,-0.475048
+				,-0.0247439
+				,0.890936
+				,-0.321117
+				,-0.321117
+				,0.99997
+				,-0.00548177
+				,0.00548192
+				,0.890843
+				,0.425037
+				,0.160445
+				,1
+				,7.19265e-008
+				,8.84094e-008
+				,0.890936
+				,0.321118
+				,0.321118
+				,0.890844
+				,-0.187094
+				,-0.413997
+				,0.99997
+				,-0.00548177
+				,0.00548192
+				,0.890936
+				,-0.321117
+				,-0.321117
+				,1
+				,-1.49837e-009
+				,1.04893e-007
+				,0.890843
+				,0.187095
+				,0.413998
+				,0.890936
+				,0.321118
+				,0.321118
+				,0.99997
+				,-0.00548177
+				,0.00548192
+				,1
+				,-1.49837e-009
+				,1.04893e-007
+				,0.99997
+				,-0.00775251
+				,1.0489e-007
+				,1
+				,-1.49837e-009
+				,1.04893e-007
+				,0.890844
+				,-0.187094
+				,-0.413997
+				,0.890936
+				,0
+				,-0.454129
+				,0.99997
+				,-0.00775251
+				,1.0489e-007
+				,0.890843
+				,0.187095
+				,0.413998
+				,1
+				,-1.49837e-009
+				,1.04893e-007
+				,0.890935
+				,0
+				,0.45413
+				,0.890844
+				,0.160445
+				,-0.425036
+				,0.99997
+				,-0.00775251
+				,1.0489e-007
+				,0.890936
+				,0
+				,-0.454129
+				,1
+				,8.99069e-009
+				,1.16881e-007
+				,0.890843
+				,-0.160445
+				,0.425037
+				,0.890935
+				,0
+				,0.45413
+				,0.99997
+				,-0.00775251
+				,1.0489e-007
+				,1
+				,8.99069e-009
+				,1.16881e-007
+				,0.99997
+				,-0.00548188
+				,-0.00548174
+				,1
+				,8.99069e-009
+				,1.16881e-007
+				,0.890844
+				,0.160445
+				,-0.425036
+				,0.890936
+				,0.321118
+				,-0.321118
+				,0.99997
+				,-0.00548188
+				,-0.00548174
+				,0.890843
+				,-0.160445
+				,0.425037
+				,1
+				,8.99069e-009
+				,1.16881e-007
+				,0.890935
+				,-0.321118
+				,0.321119
+				,0.890844
+				,0.413997
+				,-0.187094
+				,0.99997
+				,-0.00548188
+				,-0.00548174
+				,0.890936
+				,0.321118
+				,-0.321118
+				,1
+				,-5.9939e-008
+				,1.06391e-007
+				,0.890843
+				,-0.413998
+				,0.187094
+				,0.890935
+				,-0.321118
+				,0.321119
+				,0.99997
+				,-0.00548188
+				,-0.00548174
+				,1
+				,-5.9939e-008
+				,1.06391e-007
+				,1
+				,-1.04893e-007
+				,0
+				,1
+				,-5.9939e-008
+				,1.06391e-007
+				,0.890844
+				,0.413997
+				,-0.187094
+				,0.890936
+				,0.454129
+				,0
+				,1
+				,-1.04893e-007
+				,0
+				,0.890843
+				,-0.413998
+				,0.187094
+				,1
+				,-5.9939e-008
+				,1.06391e-007
+				,0.890935
+				,-0.45413
+				,0
+				,0
+				,-1
+				,2.52284e-012
+				,0.476481
+				,-0.878954
+				,0.0201475
+				,0.520796
+				,-0.853672
+				,0.00404876
+				,0.365282
+				,-0.930839
+				,0.0103679
+				,0
+				,-1
+				,-9.2524e-010
+				,0.519065
+				,-0.854735
+				,5.72002e-007
+				,-0.854508
+				,-0.510715
+				,0.0948014
+				,-0.890936
+				,-0.454129
+				,8.30525e-008
+				,-0.116762
+				,-0.993155
+				,0.00323105
+				,0.266829
+				,-0.963196
+				,0.0325065
+				,0.854507
+				,-0.510716
+				,0.0948018
+				,0.890935
+				,-0.45413
+				,8.42227e-008
+				,0.368066
+				,-0.929692
+				,0.014135
+				,0.388404
+				,-0.921335
+				,0.0168356
+				,-0.0592992
+				,-0.998238
+				,-0.0021794
+				,-0.731654
+				,-0.667192
+				,0.139776
+				,0.731652
+				,-0.667194
+				,0.139777
+				,0.191517
+				,-0.981488
+				,0.00173125
+				,0.159762
+				,-0.987149
+				,0.00365135
+				,-0.458106
+				,-0.881751
+				,0.112488
+				,0.143094
+				,-0.989153
+				,0.0331622
+				,0.458105
+				,-0.881752
+				,0.112488
+				,-0.040661
+				,-0.999173
+				,0.000383077
+				,-5.5533e-008
+				,-1
+				,9.0775e-008
+				,0.0335745
+				,-0.99943
+				,-0.00349344
+				,-0.055298
+				,-0.998072
+				,-0.0281865
+				,0.0552977
+				,-0.998072
+				,-0.0281864
+				,-0.25881
+				,-0.965914
+				,-0.00523835
+				,-0.159762
+				,-0.987149
+				,-0.00365167
+				,0.414342
+				,-0.898712
+				,-0.143659
+				,-0.0602464
+				,-0.998136
+				,-0.00976645
+				,-0.414341
+				,-0.898712
+				,-0.143659
+				,-0.411755
+				,-0.911106
+				,-0.0185524
+				,-0.388405
+				,-0.921335
+				,-0.0168356
+				,0.106499
+				,-0.99431
+				,-0.00245126
+				,0.709307
+				,-0.683536
+				,-0.172229
+				,-0.709306
+				,-0.683537
+				,-0.17223
+				,-0.49868
+				,-0.866618
+				,-0.0170546
+				,-0.365281
+				,-0.930839
+				,-0.0103678
+				,0.879127
+				,-0.4761
+				,0.021558
+				,-0.226305
+				,-0.972273
+				,-0.0589106
+				,-0.852956
+				,-0.512218
+				,-0.100492
+				,-0.520794
+				,-0.853673
+				,0.00404862
+				,-0.519065
+				,-0.854735
+				,-5.75728e-007
+				,0.116763
+				,-0.993155
+				,0.00322857
+				,0.890936
+				,-0.454128
+				,-1.60722e-008
+				,-0.890935
+				,-0.45413
+				,-8.30528e-008
+				,-0.476495
+				,-0.878946
+				,0.0201481
+				,-0.365281
+				,-0.930839
+				,0.0103668
+				,0.879612
+				,-0.475048
+				,-0.0247441
+				,-0.266837
+				,-0.963193
+				,0.0325018
+				,-0.854507
+				,-0.510716
+				,0.0948004
+				,-0.368074
+				,-0.929689
+				,0.0141373
+				,-0.388404
+				,-0.921335
+				,0.0168346
+				,0.0592937
+				,-0.998238
+				,-0.00218079
+				,0.731654
+				,-0.667192
+				,0.139776
+				,-0.731653
+				,-0.667193
+				,0.139777
+				,-0.191517
+				,-0.981488
+				,0.00173398
+				,-0.159762
+				,-0.987149
+				,0.00364927
+				,0.458107
+				,-0.881751
+				,0.112487
+				,-0.143099
+				,-0.989153
+				,0.0331632
+				,-0.458106
+				,-0.881751
+				,0.112487
+				,0.0406631
+				,-0.999173
+				,0.000382177
+				,8.32995e-008
+				,-1
+				,1.38832e-007
+				,-0.0335734
+				,-0.99943
+				,-0.0034935
+				,0.0552984
+				,-0.998072
+				,-0.0281868
+				,-0.055298
+				,-0.998072
+				,-0.0281867
+				,0.258806
+				,-0.965915
+				,-0.00524027
+				,0.159762
+				,-0.987149
+				,-0.00364979
+				,-0.414343
+				,-0.898711
+				,-0.143657
+				,0.0602467
+				,-0.998136
+				,-0.00976724
+				,0.414342
+				,-0.898712
+				,-0.143658
+				,0.411744
+				,-0.911111
+				,-0.0185529
+				,0.388404
+				,-0.921335
+				,-0.0168343
+				,-0.106502
+				,-0.994309
+				,-0.00244955
+				,-0.709306
+				,-0.683536
+				,-0.17223
+				,0.709305
+				,-0.683537
+				,-0.17223
+				,0.498675
+				,-0.866621
+				,-0.0170548
+				,0.365281
+				,-0.930839
+				,-0.010367
+				,-0.852957
+				,-0.512216
+				,-0.10049
+				,0.22629
+				,-0.972277
+				,-0.0589018
+				,0.852957
+				,-0.512217
+				,-0.100491
+				,0.890844
+				,0.425036
+				,0.160445
+				,1
+				,-1.04893e-007
+				,-2.48621e-009
+				,0.890936
+				,0.454129
+				,8.38242e-008
+				,1
+				,-1.43853e-007
+				,8.09172e-008
+				,0.890843
+				,-0.425037
+				,-0.160445
+				,0.890935
+				,-0.45413
+				,-8.50053e-008
+				,1
+				,-1.04893e-007
+				,-2.48621e-009
+				,1
+				,-1.43853e-007
+				,8.09172e-008
+				,0.99997
+				,0.00548173
+				,-0.00548187
+				,1
+				,-1.43853e-007
+				,8.09172e-008
+				,0.890844
+				,0.425036
+				,0.160445
+				,0.890936
+				,0.321118
+				,0.321117
+				,0.99997
+				,0.00548173
+				,-0.00548187
+				,0.890843
+				,-0.425037
+				,-0.160445
+				,1
+				,-1.43853e-007
+				,8.09172e-008
+				,0.890935
+				,-0.321119
+				,-0.321118
+				,0.890844
+				,0.187094
+				,0.413997
+				,0.99997
+				,0.00548173
+				,-0.00548187
+				,0.890936
+				,0.321118
+				,0.321117
+				,1
+				,-7.0428e-008
+				,-8.39144e-008
+				,0.890843
+				,-0.187094
+				,-0.413998
+				,0.890935
+				,-0.321119
+				,-0.321118
+				,0.99997
+				,0.00548173
+				,-0.00548187
+				,1
+				,-7.0428e-008
+				,-8.39144e-008
+				,0.99997
+				,0.00775251
+				,-1.0489e-007
+				,1
+				,-7.0428e-008
+				,-8.39144e-008
+				,0.890844
+				,0.187094
+				,0.413997
+				,0.890936
+				,0
+				,0.454128
+				,0.99997
+				,0.00775251
+				,-1.0489e-007
+				,0.890843
+				,-0.187094
+				,-0.413998
+				,1
+				,-7.0428e-008
+				,-8.39144e-008
+				,0.890936
+				,0
+				,-0.454129
+				,0.890844
+				,-0.160444
+				,0.425036
+				,0.99997
+				,0.00775251
+				,-1.0489e-007
+				,0.890936
+				,0
+				,0.454128
+				,1
+				,3.07185e-007
+				,2.09782e-008
+				,0.890843
+				,0.160445
+				,-0.425037
+				,0.890936
+				,0
+				,-0.454129
+				,0.99997
+				,0.00775251
+				,-1.0489e-007
+				,1
+				,3.07185e-007
+				,2.09782e-008
+				,0.99997
+				,0.00548202
+				,0.00548187
+				,1
+				,3.07185e-007
+				,2.09782e-008
+				,0.890844
+				,-0.160444
+				,0.425036
+				,0.890936
+				,-0.321117
+				,0.321117
+				,0.99997
+				,0.00548202
+				,0.00548187
+				,0.890843
+				,0.160445
+				,-0.425037
+				,1
+				,3.07185e-007
+				,2.09782e-008
+				,0.890936
+				,0.321118
+				,-0.321118
+				,0.879127
+				,-0.4761
+				,0.021558
+				,0.99997
+				,0.00548202
+				,0.00548187
+				,0.890936
+				,-0.321117
+				,0.321117
+				,1
+				,1.5584e-007
+				,1.03394e-007
+				,0.890843
+				,0.413998
+				,-0.187095
+				,0.890936
+				,0.321118
+				,-0.321118
+				,0.99997
+				,0.00548202
+				,0.00548187
+				,1
+				,1.5584e-007
+				,1.03394e-007
+				,0.99997
+				,1.06553e-007
+				,0.00775257
+				,1
+				,1.5584e-007
+				,1.03394e-007
+				,0.879127
+				,-0.4761
+				,0.021558
+				,0.890936
+				,-0.454128
+				,-1.60722e-008
+				,0.99997
+				,1.06553e-007
+				,0.00775257
+				,0.890843
+				,0.413998
+				,-0.187095
+				,1
+				,1.5584e-007
+				,1.03394e-007
+				,0.890936
+				,0.45413
+				,-8.38246e-008
+				,0.879612
+				,-0.475048
+				,-0.0247441
+				,0.99997
+				,1.06553e-007
+				,0.00775257
+				,0.890936
+				,-0.454128
+				,-1.60722e-008
+				,1
+				,2.99726e-009
+				,2.80213e-007
+				,0.890843
+				,0.425037
+				,0.160445
+				,0.890936
+				,0.45413
+				,-8.38246e-008
+				,0.99997
+				,1.06553e-007
+				,0.00775257
+				,1
+				,2.99726e-009
+				,2.80213e-007
+				,0.99997
+				,-0.00548183
+				,0.00548198
+				,1
+				,2.99726e-009
+				,2.80213e-007
+				,0.879612
+				,-0.475048
+				,-0.0247441
+				,0.890936
+				,-0.321117
+				,-0.321117
+				,0.99997
+				,-0.00548183
+				,0.00548198
+				,0.890843
+				,0.425037
+				,0.160445
+				,1
+				,2.99726e-009
+				,2.80213e-007
+				,0.890936
+				,0.321118
+				,0.321118
+				,0.890843
+				,-0.187095
+				,-0.413998
+				,0.99997
+				,-0.00548183
+				,0.00548198
+				,0.890936
+				,-0.321117
+				,-0.321117
+				,1
+				,-7.49223e-009
+				,1.10887e-007
+				,0.890843
+				,0.187095
+				,0.413999
+				,0.890936
+				,0.321118
+				,0.321118
+				,0.99997
+				,-0.00548183
+				,0.00548198
+				,1
+				,-7.49223e-009
+				,1.10887e-007
+				,0.99997
+				,-0.00775251
+				,1.0489e-007
+				,1
+				,-7.49223e-009
+				,1.10887e-007
+				,0.890843
+				,-0.187095
+				,-0.413998
+				,0.890936
+				,0
+				,-0.454129
+				,0.99997
+				,-0.00775251
+				,1.0489e-007
+				,0.890843
+				,0.187095
+				,0.413999
+				,1
+				,-7.49223e-009
+				,1.10887e-007
+				,0.890935
+				,0
+				,0.45413
+				,0.890843
+				,0.160445
+				,-0.425036
+				,0.99997
+				,-0.00775251
+				,1.0489e-007
+				,0.890936
+				,0
+				,-0.454129
+				,1
+				,1.6483e-008
+				,1.13884e-007
+				,0.890843
+				,-0.160446
+				,0.425037
+				,0.890935
+				,0
+				,0.45413
+				,0.99997
+				,-0.00775251
+				,1.0489e-007
+				,1
+				,1.6483e-008
+				,1.13884e-007
+				,0.99997
+				,-0.00548189
+				,-0.00548174
+				,1
+				,1.6483e-008
+				,1.13884e-007
+				,0.890843
+				,0.160445
+				,-0.425036
+				,0.890936
+				,0.321118
+				,-0.321117
+				,0.99997
+				,-0.00548189
+				,-0.00548174
+				,0.890843
+				,-0.160446
+				,0.425037
+				,1
+				,1.6483e-008
+				,1.13884e-007
+				,0.890935
+				,-0.321119
+				,0.321118
+				,0.890844
+				,0.413998
+				,-0.187093
+				,0.99997
+				,-0.00548189
+				,-0.00548174
+				,0.890936
+				,0.321118
+				,-0.321117
+				,1
+				,1.19875e-008
+				,2.99694e-007
+				,0.890843
+				,-0.413999
+				,0.187094
+				,0.890935
+				,-0.321119
+				,0.321118
+				,0.99997
+				,-0.00548189
+				,-0.00548174
+				,1
+				,1.19875e-008
+				,2.99694e-007
+				,1
+				,-1.04893e-007
+				,-2.48621e-009
+				,1
+				,1.19875e-008
+				,2.99694e-007
+				,0.890844
+				,0.413998
+				,-0.187093
+				,0.890936
+				,0.454129
+				,8.38242e-008
+				,1
+				,-1.04893e-007
+				,-2.48621e-009
+				,0.890843
+				,-0.413999
+				,0.187094
+				,1
+				,1.19875e-008
+				,2.99694e-007
+				,0.890935
+				,-0.45413
+				,-8.50053e-008
+				,0.068379
+				,0.419691
+				,0.905088
+				,0.0785872
+				,0.368786
+				,0.926187
+				,0.068379
+				,0.419691
+				,0.905088
+				,0.0785871
+				,0.368785
+				,0.926186
+				,-0.0683789
+				,0.419691
+				,0.905088
+				,-0.0785871
+				,0.368786
+				,0.926186
+				,-0.0683789
+				,0.419691
+				,0.905088
+				,-0.0785871
+				,0.368786
+				,0.926186
+				,0.708743
+				,0.61827
+				,-0.339744
+				,0.708743
+				,0.61827
+				,-0.339744
+				,0.708743
+				,-0.61827
+				,0.339744
+				,0.708743
+				,-0.61827
+				,0.339744
+				,0.708743
+				,-0.673878
+				,0.20874
+				,0.708743
+				,-0.673878
+				,0.20874
+				,0.708743
+				,0.673878
+				,-0.20874
+				,0.708743
+				,0.673878
+				,-0.20874
+				,-0.983523
+				,0.0233562
+				,0.179268
+				,-0.995293
+				,-0.0298194
+				,-0.0922077
+				,-0.994145
+				,0.0900013
+				,-0.0597891
+				,-0.996611
+				,0.0423863
+				,-0.0705022
+				,0.216896
+				,0.578988
+				,-0.785958
+				,0.43759
+				,-0.2488
+				,-0.864068
+				,-0.431291
+				,0.00373085
+				,-0.902205
+				,-0.429586
+				,-0.0156904
+				,-0.902889
+				,-0.934945
+				,0.0385318
+				,-0.352694
+				,-0.942772
+				,-0.227459
+				,-0.243811
+				,-0.96488
+				,-0.00433636
+				,0.262655
+				,-0.911581
+				,0.199645
+				,0.359391
+				,-0.645829
+				,0.0122937
+				,0.763383
+				,-0.100898
+				,0.132003
+				,0.986101
+				,0.0277032
+				,-0.0270709
+				,0.99925
+				,0.932465
+				,0.17919
+				,0.313689
+				,-0.986883
+				,0.0318893
+				,0.158258
+				,-0.945839
+				,0.174521
+				,-0.273736
+				,-0.932061
+				,0.356806
+				,-0.0628648
+				,-0.952544
+				,-0.282994
+				,-0.112136
+				,-0.90796
+				,0.41058
+				,-0.0838608
+				,-0.563761
+				,-0.811726
+				,0.152558
+				,-0.767696
+				,0.555687
+				,-0.319148
+				,-0.585053
+				,-0.077485
+				,0.807285
+				,-0.641746
+				,-0.462888
+				,0.611471
+				,-0.0954938
+				,-0.701406
+				,0.706336
+				,-0.492704
+				,-0.541968
+				,0.680818
+				,-0.298235
+				,0.467344
+				,-0.832253
+				,-0.951336
+				,0.0107866
+				,-0.307967
+				,-0.620755
+				,-0.65882
+				,0.424993
+				,-0.068379
+				,0.419691
+				,0.905088
+				,-0.0785871
+				,0.368785
+				,0.926186
+				,-0.068379
+				,0.419691
+				,0.905088
+				,-0.0785871
+				,0.368785
+				,0.926187
+				,0.0683789
+				,0.419691
+				,0.905088
+				,0.0785872
+				,0.368786
+				,0.926186
+				,0.0683788
+				,0.419691
+				,0.905088
+				,0.0785871
+				,0.368786
+				,0.926186
+				,0.708743
+				,0.61827
+				,-0.339744
+				,0.708743
+				,-0.61827
+				,0.339744
+				,0.708743
+				,-0.61827
+				,0.339744
+				,0.708743
+				,0.61827
+				,-0.339744
+				,0.708743
+				,-0.673878
+				,0.20874
+				,0.708743
+				,0.673878
+				,-0.20874
+				,0.708743
+				,0.673878
+				,-0.20874
+				,0.708743
+				,-0.673878
+				,0.20874
+				,0.994145
+				,0.0900013
+				,-0.0597891
+				,0.995293
+				,-0.0298194
+				,-0.0922077
+				,0.983523
+				,0.0233562
+				,0.179268
+				,0.996611
+				,0.0423863
+				,-0.0705022
+				,-0.36245
+				,0.16421
+				,0.917423
+				,0.504598
+				,0.120196
+				,0.854947
+				,0.216896
+				,-0.578988
+				,0.785958
+				,-0.189575
+				,-0.382352
+				,0.904361
+				,0.96488
+				,-0.00433636
+				,0.262655
+				,0.942772
+				,-0.227459
+				,-0.243811
+				,0.934945
+				,0.0385318
+				,-0.352694
+				,0.911581
+				,0.199645
+				,0.359391
+				,0.0277032
+				,0.0270709
+				,-0.99925
+				,0.118473
+				,0.198878
+				,-0.972837
+				,-0.641801
+				,-0.0622252
+				,-0.764342
+				,0.948483
+				,-0.0585825
+				,-0.311366
+				,0.986883
+				,0.0318893
+				,0.158258
+				,0.945839
+				,0.174521
+				,-0.273736
+				,0.932061
+				,0.356806
+				,-0.0628648
+				,0.952544
+				,-0.282994
+				,-0.112136
+				,0.90796
+				,0.41058
+				,-0.0838608
+				,0.563762
+				,-0.811726
+				,0.152558
+				,0.484208
+				,0.165841
+				,-0.859092
+				,0.767696
+				,0.555687
+				,-0.319148
+				,0.641746
+				,-0.462888
+				,0.611471
+				,0.518429
+				,-0.221907
+				,-0.825826
+				,0.489005
+				,0.182961
+				,-0.852877
+				,0.647626
+				,-0.0212846
+				,0.761661
+				,0.357598
+				,0.523894
+				,0.773084
+				,0.492704
+				,-0.541968
+				,0.680818
+				,0.647591
+				,-0.0204639
+				,0.761714
+				,0.620755
+				,-0.65882
+				,0.424993
+				,0.376435
+				,-0.326297
+				,0.86708
+				,0.475114
+				,-0.75496
+				,-0.451998
+				,0.672894
+				,-0.680767
+				,0.289432
+				,-0.0535424
+				,-0.97545
+				,-0.213612
+				,0.672893
+				,-0.680767
+				,0.289432
+				,-0.0535425
+				,-0.97545
+				,-0.213612
+				,0.886408
+				,-0.41067
+				,-0.213612
+				,0.285178
+				,-0.91373
+				,0.289432
+				,0.886408
+				,-0.41067
+				,-0.213612
+				,0.285178
+				,-0.91373
+				,0.289432
+				,0.56188
+				,-0.712689
+				,-0.419959
+				,0.285178
+				,-0.91373
+				,0.289432
+				,-0.0972898
+				,-0.632413
+				,0.768497
+				,-0.0369874
+				,0.867758
+				,0.495609
+				,0.376435
+				,-0.326297
+				,0.86708
+				,0.105228
+				,0.274007
+				,0.955953
+				,-0.324995
+				,-0.656888
+				,0.68035
+				,0.475114
+				,-0.75496
+				,-0.451998
+				,-0.311712
+				,0.302371
+				,-0.900781
+				,0.291336
+				,-0.0357272
+				,-0.955954
+				,-0.732574
+				,0.0214365
+				,-0.68035
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.0434482
+				,-0.941647
+				,-0.333787
+				,-0.179728
+				,-0.678756
+				,-0.712031
+				,0.417039
+				,-0.479392
+				,-0.77218
+				,0.179728
+				,0.0472697
+				,0.98258
+				,-0.417039
+				,0.22834
+				,0.879738
+				,-0.179265
+				,-0.0690195
+				,0.981377
+				,0.384997
+				,-0.0134101
+				,0.922821
+				,0.179266
+				,-0.845334
+				,-0.503263
+				,-0.384994
+				,-0.765518
+				,-0.515521
+				,-0.157142
+				,-0.695438
+				,-0.701194
+				,0.444517
+				,-0.336757
+				,-0.83006
+				,0.157139
+				,0.108995
+				,0.981543
+				,-0.444524
+				,0.434509
+				,0.783327
+				,0.190969
+				,-0.447951
+				,0.873425
+				,-0.450923
+				,-0.560668
+				,0.694493
+				,0.190969
+				,-0.930799
+				,0.311678
+				,-0.450922
+				,-0.770823
+				,0.45
+				,1.44839e-008
+				,-0.995566
+				,0.0940692
+				,0
+				,-0.995566
+				,0.0940691
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,1.6396e-014
+				,-1
+				,7.85376e-007
+				,0.0976033
+				,-0.978464
+				,0.181886
+				,-4.7587e-007
+				,-1
+				,-2.86677e-006
+				,-0.00678098
+				,-0.998087
+				,0.0614579
+				,-0.00918274
+				,-0.994446
+				,-0.104849
+				,-4.24361e-014
+				,-1
+				,-3.9269e-006
+				,4.53467e-007
+				,-1
+				,-2.35651e-006
+				,0.187402
+				,-0.972376
+				,-0.139159
+				,4.53441e-007
+				,-1
+				,2.59386e-007
+				,0.139256
+				,-0.9587
+				,0.247998
+				,-0.00625237
+				,-0.998849
+				,0.0475553
+				,2.0874e-009
+				,-1
+				,-7.86581e-007
+				,2.25751e-008
+				,-1
+				,-5.10549e-007
+				,-0.00744022
+				,-0.990636
+				,-0.136323
+				,0.122105
+				,-0.987541
+				,-0.0992661
+				,1.12098e-014
+				,-1
+				,7.84268e-007
+				,-0.0412873
+				,-0.971471
+				,0.233535
+				,0.338069
+				,-0.710914
+				,0.616693
+				,-0.011539
+				,-0.95932
+				,-0.282085
+				,0.367578
+				,-0.733032
+				,-0.572321
+				,-0.0425017
+				,-0.969178
+				,0.242669
+				,0.343711
+				,-0.687496
+				,0.639697
+				,-0.0120422
+				,-0.961368
+				,-0.275004
+				,0.359886
+				,-0.75848
+				,-0.543314
+				,-0.0412248
+				,-0.920523
+				,0.388507
+				,0.343402
+				,-0.293444
+				,0.892169
+				,0.00672757
+				,-0.908086
+				,-0.418729
+				,0.366398
+				,-0.30837
+				,-0.877873
+				,-0.0411043
+				,-0.919153
+				,0.391751
+				,0.340007
+				,-0.290618
+				,0.894392
+				,0.00689869
+				,-0.907531
+				,-0.419927
+				,0.372315
+				,-0.313985
+				,-0.873381
+				,-0.015669
+				,-0.877507
+				,0.479308
+				,0.154014
+				,-0.0448485
+				,0.98705
+				,0.00758946
+				,-0.873186
+				,-0.487329
+				,0.164712
+				,-0.0474187
+				,-0.985201
+				,-0.0163089
+				,-0.878398
+				,0.477651
+				,0.159387
+				,-0.0474551
+				,0.986075
+				,0.00752302
+				,-0.872874
+				,-0.487887
+				,0.158628
+				,-0.0433993
+				,-0.986384
+				,-0.00924345
+				,-0.866137
+				,0.499722
+				,0.0275777
+				,-0.00162037
+				,0.999618
+				,0.00460346
+				,-0.866251
+				,-0.499588
+				,0.027671
+				,-0.000995395
+				,-0.999617
+				,-0.00924951
+				,-0.866202
+				,0.499609
+				,0.027626
+				,-0.00165926
+				,0.999617
+				,0.0046057
+				,-0.866165
+				,-0.499737
+				,0.0276222
+				,-0.00102645
+				,-0.999618
+				,-1
+				,-1.36587e-006
+				,5.10809e-006
+				,-0.99949
+				,0.0159522
+				,0.0276739
+				,-0.998852
+				,0.0478939
+				,2.2837e-005
+				,-1
+				,3.99381e-006
+				,1.11241e-006
+				,-1
+				,1.5251e-007
+				,-6.19201e-008
+				,-0.999872
+				,0.00798293
+				,-0.0138362
+				,-1
+				,-3.22047e-006
+				,9.02515e-006
+				,-0.99885
+				,0.0479518
+				,2.95517e-005
+				,-1
+				,-8.69434e-007
+				,-9.52667e-007
+				,-0.999489
+				,0.0159603
+				,0.0276942
+				,-0.99885
+				,0.0479518
+				,1.5975e-005
+				,-1
+				,-7.47727e-006
+				,-1.30883e-005
+				,-1
+				,-3.16918e-007
+				,-2.65759e-006
+				,-0.999872
+				,0.00798234
+				,-0.0138372
+				,-1
+				,2.37553e-006
+				,-7.30022e-006
+				,-0.998852
+				,0.0478939
+				,1.14553e-005
+				,3.04998e-011
+				,-0.00416861
+				,0.999991
+				,-1.65891e-007
+				,-0.00416854
+				,0.999991
+				,-4.21933e-008
+				,-0.00416847
+				,0.999991
+				,1.80828e-010
+				,-0.00416841
+				,0.999991
+				,1.39238e-008
+				,-0.00416844
+				,0.999991
+				,0
+				,-0.00416841
+				,0.999991
+				,-1.39238e-008
+				,-0.00416844
+				,0.999991
+				,0
+				,-0.00416841
+				,0.999991
+				,0
+				,-0.00416841
+				,0.999991
+				,1.43457e-008
+				,-0.00416846
+				,0.999991
+				,1.65891e-007
+				,-0.00416848
+				,0.999991
+				,5.40133e-011
+				,-0.00416861
+				,0.999991
+				,1.65891e-007
+				,-0.00416893
+				,0.999991
+				,5.40147e-011
+				,-0.00416861
+				,0.999991
+				,2.06686e-007
+				,-0.00416929
+				,0.999991
+				,-1.80829e-010
+				,-0.00416956
+				,0.999991
+				,-1.80829e-010
+				,-0.00416956
+				,0.999991
+				,-6.88954e-008
+				,-0.00416945
+				,0.999991
+				,6.88955e-008
+				,-0.00416945
+				,0.999991
+				,0
+				,-0.00416956
+				,0.999991
+				,-6.89558e-008
+				,-0.00416937
+				,0.999991
+				,0
+				,-0.00416956
+				,0.999991
+				,-1.6589e-007
+				,-0.00416925
+				,0.999991
+				,3.05005e-011
+				,-0.00416861
+				,0.999991
+				,-0.928935
+				,0.0741801
+				,-0.362737
+				,-1
+				,-9.40514e-007
+				,4.36815e-014
+				,-0.963109
+				,-0.144553
+				,-0.22699
+				,-1
+				,0
+				,0
+				,-1
+				,0
+				,0
+				,-0.927586
+				,-0.365025
+				,-0.0796325
+				,-0.963372
+				,-0.223657
+				,0.147957
+				,-1
+				,0
+				,0
+				,-1
+				,0
+				,0
+				,-0.928935
+				,-0.0741779
+				,0.362736
+				,-0.96311
+				,0.144551
+				,0.226991
+				,-1
+				,0
+				,0
+				,-0.96311
+				,0.144551
+				,0.226991
+				,-1
+				,0
+				,0
+				,-1
+				,-2.56885e-013
+				,-9.3155e-007
+				,-0.927586
+				,0.365025
+				,0.0796344
+				,-0.963372
+				,0.223658
+				,-0.147957
+				,-1
+				,-3.28621e-006
+				,-3.32301e-006
+				,-0.948254
+				,-0.0596412
+				,-0.311861
+				,-0.948962
+				,-0.259129
+				,-0.179785
+				,-0.949292
+				,-0.308453
+				,0.0608337
+				,-0.948625
+				,-0.173557
+				,0.264553
+				,-0.948255
+				,0.0596406
+				,0.311857
+				,-0.948962
+				,0.259129
+				,0.179788
+				,-0.948962
+				,0.259129
+				,0.179788
+				,-0.949292
+				,0.308453
+				,-0.0608341
+				,-0.948625
+				,0.173558
+				,-0.264552
+				,-1
+				,-2.81478e-007
+				,1.45474e-006
+				,-1
+				,7.15951e-008
+				,-7.76833e-007
+				,-1
+				,6.79536e-007
+				,-3.93036e-007
+				,-1
+				,2.42972e-007
+				,-7.40097e-007
+				,-1
+				,-2.89744e-007
+				,-7.91474e-007
+				,-1
+				,-4.74714e-007
+				,-7.31032e-007
+				,-1
+				,-4.74714e-007
+				,-7.31032e-007
+				,-0.948962
+				,0.259129
+				,0.179788
+				,-0.949292
+				,0.308453
+				,-0.0608341
+				,-1
+				,-4.74714e-007
+				,-7.31032e-007
+				,-1
+				,-2.76805e-007
+				,6.86373e-008
+				,-1
+				,3.24191e-007
+				,2.62185e-007
+				,0
+				,0.447214
+				,0.894427
+				,0
+				,-0.707107
+				,0.707107
+				,0.045094
+				,-0.739933
+				,0.671168
+				,-0.416604
+				,0.496174
+				,0.761743
+				,0.477285
+				,-0.420095
+				,0.771828
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0
+				,-0.447214
+				,-0.894427
+				,-0.253724
+				,-0.817725
+				,-0.516671
+				,-0.000377874
+				,-1
+				,0
+				,-0.358208
+				,-0.812176
+				,-0.460497
+				,0.014788
+				,-0.999346
+				,0.0329953
+				,-0.298878
+				,-0.949236
+				,-0.098099
+				,0.429968
+				,-0.827063
+				,0.362069
+				,-0.201662
+				,-0.954245
+				,-0.220793
+				,-0.389556
+				,0.622092
+				,0.679152
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.64015
+				,-0.573225
+				,-0.511489
+				,0.849538
+				,0.0582332
+				,-0.524303
+				,-0.849538
+				,-0.0582332
+				,0.524303
+				,0.64015
+				,0.573225
+				,0.511489
+				,0.405257
+				,-0.18912
+				,0.894427
+				,-0.640768
+				,0.299025
+				,0.707107
+				,-0.000377879
+				,-1
+				,0
+				,0.134769
+				,-0.93998
+				,-0.313489
+				,-0.349667
+				,-0.860175
+				,0.371258
+				,-0.595837
+				,-0.7588
+				,0.263061
+				,-0.331554
+				,-0.925707
+				,0.182039
+				,-0.000220765
+				,-0.829085
+				,-0.559123
+				,2.07438e-007
+				,-0.829012
+				,-0.559231
+				,-0.393391
+				,-0.919077
+				,0.0232479
+				,0.807892
+				,-0.556235
+				,-0.194712
+				,-8.81694e-007
+				,-0.829012
+				,-0.559231
+				,-0.21912
+				,-0.442516
+				,-0.869578
+				,0.110521
+				,-0.555334
+				,-0.82425
+				,-4.41571e-008
+				,-0.000739274
+				,-1
+				,-0.398332
+				,-0.128825
+				,-0.90815
+				,-0.000593292
+				,0.00383837
+				,-0.999992
+				,-0.781175
+				,0.383447
+				,-0.492681
+				,0.362492
+				,0.40771
+				,-0.838076
+				,0
+				,0.00514831
+				,-0.999987
+				,0.00182102
+				,0.0031858
+				,-0.999993
+				,0.527237
+				,-0.347745
+				,-0.775303
+				,-0.00182102
+				,0.00294379
+				,0.999994
+				,-0.527237
+				,0.347745
+				,0.775303
+				,-0.13217
+				,0.324215
+				,0.936705
+				,-1.48986e-009
+				,0.00735275
+				,0.999973
+				,9.89475e-005
+				,0.00620474
+				,0.999981
+				,0.154807
+				,0.491034
+				,0.857275
+				,0.396257
+				,0.135158
+				,0.908137
+				,4.41571e-008
+				,0.000739282
+				,1
+				,0.591718
+				,-0.747079
+				,-0.302891
+				,-0.18785
+				,-0.911039
+				,0.367044
+				,-0.18466
+				,-0.914467
+				,-0.360072
+				,0.602058
+				,-0.743119
+				,0.292061
+				,0.707103
+				,-0.707107
+				,0.00245314
+				,-0.709222
+				,-0.704984
+				,-0.0012206
+				,0.593873
+				,-0.747096
+				,-0.2986
+				,-0.194833
+				,-0.910983
+				,0.363524
+				,-0.17072
+				,-0.914411
+				,-0.367025
+				,0.601011
+				,-0.74313
+				,0.294184
+				,-0.704997
+				,-0.709209
+				,0.00124256
+				,0.707107
+				,-0.707107
+				,0
+				,-0.578621
+				,0.577727
+				,0.575699
+				,0.00144717
+				,-0.00028907
+				,0.999999
+				,0.236912
+				,0.23429
+				,0.942858
+				,-0.00346923
+				,-3.01123e-008
+				,0.999994
+				,0
+				,0
+				,-1
+				,0.233652
+				,0.235057
+				,-0.94348
+				,0.000862149
+				,-0.000867333
+				,-0.999999
+				,-0.572751
+				,0.579636
+				,-0.579636
+				,0.00751858
+				,-0.95304
+				,0.302751
+				,0
+				,-0.873499
+				,0.486826
+				,0
+				,-0.902319
+				,-0.43107
+				,-0.0714406
+				,-0.836045
+				,-0.543991
+				,-0.0105074
+				,-0.986739
+				,0.161974
+				,-0.0439428
+				,-0.711914
+				,-0.70089
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,-0.0541128
+				,0.257088
+				,0.964872
+				,-1.40811e-007
+				,0.460485
+				,0.887667
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0.112093
+				,-0.0159927
+				,0.993569
+				,0.101435
+				,0.109831
+				,0.988761
+				,0.179656
+				,0.26862
+				,0.946344
+				,0.00928401
+				,0.0285578
+				,0.999549
+				,0.34336
+				,0.0792732
+				,0.935852
+				,0.0485403
+				,0.47057
+				,0.881027
+				,-9.95781e-008
+				,0.341028
+				,0.940053
+				,-0.0262054
+				,0.331954
+				,0.942932
+				,-0.00144248
+				,0.411131
+				,0.911575
+				,-0.0786219
+				,0.821535
+				,0.564712
+				,0.000688533
+				,0.902318
+				,0.43107
+				,-0.19477
+				,-0.796505
+				,0.572403
+				,-0.0101894
+				,-0.785117
+				,0.619264
+				,-0.0889155
+				,-0.995997
+				,-0.00913129
+				,-0.265828
+				,-0.901133
+				,-0.342483
+				,-0.221427
+				,-0.305938
+				,0.925944
+				,-0.029743
+				,0.0276108
+				,0.999176
+				,0.0487038
+				,-0.111506
+				,0.99257
+				,0
+				,1.97762e-007
+				,1
+				,0.027699
+				,-0.084837
+				,0.99601
+				,0.00455985
+				,-0.0146535
+				,0.999882
+				,-0.0131139
+				,0.0312149
+				,0.999427
+				,0
+				,-9.33754e-008
+				,1
+				,0.0378945
+				,-0.0761685
+				,0.996375
+				,-0.019452
+				,-0.00993628
+				,0.999761
+				,0.131703
+				,0.0639368
+				,0.989225
+				,-0.138493
+				,-0.0842195
+				,0.986776
+				,0.00349707
+				,-0.0126157
+				,0.999914
+				,-0.00189662
+				,-0.00115723
+				,0.999998
+				,-0.0932494
+				,0.200658
+				,0.975213
+				,0.184911
+				,0.0824887
+				,0.979287
+				,0.366999
+				,-0.106443
+				,0.924111
+				,0.0298082
+				,0.00967327
+				,0.999509
+				,-0.0585932
+				,0.115214
+				,0.991611
+				,0.00940561
+				,0.00285849
+				,0.999952
+				,-0.0166786
+				,0.0457884
+				,0.998812
+				,-0.00160239
+				,-0.000371486
+				,0.999999
+				,-0.105282
+				,0.301973
+				,0.947485
+				,-0.761491
+				,-0.0703961
+				,0.644342
+				,-0.165134
+				,0.235988
+				,0.957622
+				,0.027699
+				,-0.084837
+				,0.99601
+				,-0.000269095
+				,-0.0109763
+				,0.99994
+				,-0.00262008
+				,-0.0720116
+				,0.9974
+				,0.0487038
+				,-0.111506
+				,0.99257
+				,0.00455985
+				,-0.0146535
+				,0.999882
+				,-5.08837e-005
+				,-0.00274336
+				,0.999996
+				,-0.0131139
+				,0.0312149
+				,0.999427
+				,-0.0165575
+				,0.163595
+				,0.986389
+				,-0.00241493
+				,-0.0613622
+				,0.998113
+				,0.0378945
+				,-0.0761685
+				,0.996375
+				,-0.00366731
+				,-0.0408081
+				,0.99916
+				,0.00162364
+				,-0.200309
+				,0.979732
+				,-0.000825477
+				,0.411551
+				,0.911386
+				,0.0419145
+				,0.24215
+				,0.969333
+				,0.0318434
+				,-0.348515
+				,0.936762
+				,0.00302969
+				,-0.402577
+				,0.915381
+				,-0.002882
+				,-0.0500721
+				,0.998741
+				,0.00349707
+				,-0.0126157
+				,0.999914
+				,0.0253632
+				,-0.0458126
+				,0.998628
+				,0.00217587
+				,0.0317617
+				,0.999493
+				,0.0478437
+				,-0.0151964
+				,0.998739
+				,-0.0932494
+				,0.200658
+				,0.975213
+				,0.00599234
+				,0.236392
+				,0.971639
+				,0.0321798
+				,0.394025
+				,0.918536
+				,0.0113091
+				,0.651621
+				,0.758461
+				,-0.0248735
+				,0.319871
+				,0.947134
+				,0.0866838
+				,0.316656
+				,0.944571
+				,0.149011
+				,0.778708
+				,0.609434
+				,0.742056
+				,0.470408
+				,0.477566
+				,0.488554
+				,0.839089
+				,0.239261
+				,0.0383749
+				,0.258135
+				,0.965346
+				,0.393471
+				,-0.173445
+				,0.902828
+				,-0.0131114
+				,0.363612
+				,0.931458
+				,-0.0038073
+				,0.112658
+				,0.993627
+				,-0.0585932
+				,0.115214
+				,0.991611
+				,-0.0093968
+				,0.249515
+				,0.968325
+				,-0.000537778
+				,0.0752893
+				,0.997162
+				,-0.000500418
+				,0.0354369
+				,0.999372
+				,-0.0166786
+				,0.0457884
+				,0.998812
+				,-0.00957175
+				,0.173568
+				,0.984775
+				,-0.0593207
+				,-0.344523
+				,0.936902
+				,-0.00127604
+				,-0.00177759
+				,0.999998
+				,0.00116785
+				,0.336955
+				,0.94152
+				,-0.0114275
+				,0.709425
+				,0.704688
+				,-0.390535
+				,-0.832841
+				,0.392249
+				,-0.0105074
+				,-0.986739
+				,0.161974
+				,-0.757397
+				,-0.108563
+				,0.643867
+				,-0.31269
+				,0.930625
+				,0.190164
+				,-0.0549957
+				,0.986532
+				,-0.154047
+				,0.366999
+				,-0.106443
+				,0.924111
+				,-0.165134
+				,0.235988
+				,0.957622
+				,0.0052971
+				,-0.00628658
+				,0.999966
+				,5.04432e-008
+				,3.38268e-008
+				,1
+				,0
+				,0
+				,1
+				,0.0347242
+				,-0.0377523
+				,0.998684
+				,0.00131136
+				,-0.00168028
+				,0.999998
+				,0
+				,0
+				,1
+				,-0.113022
+				,0.0936855
+				,0.989166
+				,-0.241869
+				,0.130678
+				,0.961469
+				,0
+				,0
+				,1
+				,0.0294955
+				,-0.0293093
+				,0.999135
+				,0
+				,0
+				,1
+				,0.0232234
+				,-0.0204214
+				,0.999522
+				,0.112093
+				,-0.0159927
+				,0.993569
+				,0.0839063
+				,0.0198096
+				,0.996277
+				,0.0247243
+				,0.186474
+				,0.982149
+				,-0.241754
+				,0.190759
+				,0.951402
+				,0.868618
+				,0.0299246
+				,0.494578
+				,0.869311
+				,-0.0155158
+				,0.494022
+				,0.985306
+				,0.0162614
+				,0.170025
+				,-0.221427
+				,-0.305938
+				,0.925944
+				,-0.208408
+				,0.163367
+				,0.964302
+				,0.293651
+				,0.0420359
+				,0.954988
+				,-0.19477
+				,-0.796505
+				,0.572403
+				,-0.111427
+				,-0.993634
+				,-0.016601
+				,-0.319004
+				,0.0821197
+				,0.944189
+				,-0.392216
+				,0.203306
+				,0.897125
+				,-0.172058
+				,0.11462
+				,0.978396
+				,-0.378857
+				,0.158856
+				,0.911719
+				,-0.705755
+				,0.461539
+				,0.537486
+				,-0.881763
+				,0.289715
+				,0.372236
+				,0.127806
+				,-0.598971
+				,-0.790506
+				,0.107136
+				,-0.472548
+				,-0.874769
+				,1.912e-006
+				,-0.850923
+				,-0.52529
+				,0
+				,-0.697899
+				,-0.716196
+				,0.00197712
+				,-0.0501494
+				,0.99874
+				,-0.00142623
+				,-0.386953
+				,0.922098
+				,-0.00061527
+				,-0.327821
+				,0.94474
+				,-0.00798393
+				,-0.516969
+				,0.855967
+				,0.0617016
+				,0.587756
+				,0.806682
+				,0
+				,0.697899
+				,0.716196
+				,-2.12914e-007
+				,-0.189077
+				,0.981962
+				,-0.00104704
+				,0.054408
+				,0.998518
+				,0.00128561
+				,0.619373
+				,0.785096
+				,0.00795702
+				,0.665163
+				,0.746656
+				,0.000520645
+				,0.850923
+				,0.52529
+				,0.00726214
+				,0.469696
+				,0.882798
+				,0.0624906
+				,0.944397
+				,0.322816
+				,0.0455381
+				,0.998943
+				,0.00629
+				,0.00217587
+				,0.0317617
+				,0.999493
+				,0.00302969
+				,-0.402577
+				,0.915381
+				,0.00599234
+				,0.236392
+				,0.971639
+				,0.0113091
+				,0.651621
+				,0.758461
+				,0.488554
+				,0.839089
+				,0.239261
+				,0.33508
+				,0.930605
+				,0.147293
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.0172031
+				,-0.451674
+				,0.892017
+				,6.80049e-007
+				,-0.679163
+				,0.733988
+				,2.9565e-008
+				,0.282471
+				,0.959276
+				,-0.0404551
+				,0.462009
+				,0.885952
+				,-0.00798393
+				,-0.516969
+				,0.855967
+				,-0.00061527
+				,-0.327821
+				,0.94474
+				,-7.94018e-008
+				,0.632296
+				,0.774727
+				,0.00814254
+				,0.490897
+				,0.87118
+				,0.00162364
+				,-0.200309
+				,0.979732
+				,-0.000825477
+				,0.411551
+				,0.911386
+				,0.00302969
+				,-0.402577
+				,0.915381
+				,0.0401104
+				,-0.412421
+				,0.91011
+				,-0.0131114
+				,0.363612
+				,0.931458
+				,0.00814254
+				,0.490897
+				,0.87118
+				,-7.94018e-008
+				,0.632296
+				,0.774727
+				,0.000175404
+				,0.143642
+				,0.98963
+				,-0.000194238
+				,0.120108
+				,0.992761
+				,0.000361616
+				,-0.15426
+				,0.98803
+				,-0.00918028
+				,-0.344357
+				,0.938794
+				,0
+				,-0.873499
+				,0.486826
+				,0.00751858
+				,-0.95304
+				,0.302751
+				,-0.0131114
+				,0.363612
+				,0.931458
+				,-0.000537778
+				,0.0752893
+				,0.997162
+				,-0.0593207
+				,-0.344523
+				,0.936902
+				,-0.0105074
+				,-0.986739
+				,0.161974
+				,0.376435
+				,-0.326297
+				,0.86708
+				,0.475114
+				,-0.75496
+				,-0.451998
+				,0.672894
+				,-0.680767
+				,0.289432
+				,-0.0535424
+				,-0.97545
+				,-0.213612
+				,0.672893
+				,-0.680767
+				,0.289432
+				,-0.0535425
+				,-0.97545
+				,-0.213612
+				,0.886408
+				,-0.41067
+				,-0.213612
+				,0.285178
+				,-0.91373
+				,0.289432
+				,0.886408
+				,-0.41067
+				,-0.213612
+				,0.285178
+				,-0.91373
+				,0.289432
+				,0.56188
+				,-0.712689
+				,-0.419959
+				,0.285178
+				,-0.91373
+				,0.289432
+				,-0.0972898
+				,-0.632413
+				,0.768497
+				,-0.0369874
+				,0.867758
+				,0.495609
+				,0.376435
+				,-0.326297
+				,0.86708
+				,0.105228
+				,0.274007
+				,0.955953
+				,-0.324995
+				,-0.656888
+				,0.68035
+				,0.475114
+				,-0.75496
+				,-0.451998
+				,-0.311712
+				,0.302371
+				,-0.900781
+				,0.291336
+				,-0.0357272
+				,-0.955954
+				,-0.732574
+				,0.0214365
+				,-0.68035
+				,-1.17824e-009
+				,-0.890103
+				,-0.45576
+				,0.0863506
+				,-0.951254
+				,-0.296072
+				,-3.25394e-007
+				,-0.890102
+				,-0.455762
+				,-0.00690504
+				,-0.914366
+				,-0.404829
+				,-0.0116145
+				,-0.839481
+				,-0.543265
+				,0
+				,-0.890101
+				,-0.455762
+				,2.75443e-007
+				,-0.890102
+				,-0.455762
+				,0.168797
+				,-0.804975
+				,-0.568791
+				,2.75427e-007
+				,-0.890103
+				,-0.45576
+				,0.123315
+				,-0.964391
+				,-0.233972
+				,-0.0062414
+				,-0.909179
+				,-0.41636
+				,-1.01367e-008
+				,-0.890102
+				,-0.455761
+				,1.82461e-008
+				,-0.890102
+				,-0.455761
+				,-0.0104442
+				,-0.822519
+				,-0.568641
+				,0.109447
+				,-0.835271
+				,-0.538835
+				,-1.17824e-009
+				,-0.890103
+				,-0.45576
+				,-0.040652
+				,-0.966775
+				,-0.252375
+				,0.304925
+				,-0.936453
+				,0.173426
+				,-0.0181537
+				,-0.729273
+				,-0.683981
+				,0.3499
+				,-0.414959
+				,-0.839869
+				,-0.04185
+				,-0.96887
+				,-0.244008
+				,0.311185
+				,-0.928639
+				,0.201975
+				,-0.0185824
+				,-0.734402
+				,-0.678461
+				,0.34084
+				,-0.450125
+				,-0.825358
+				,-0.0404774
+				,-0.993827
+				,-0.103298
+				,0.344309
+				,-0.728213
+				,0.592586
+				,0.00409827
+				,-0.615558
+				,-0.788081
+				,0.387176
+				,0.113164
+				,-0.915035
+				,-0.0404289
+				,-0.994156
+				,-0.1001
+				,0.341395
+				,-0.727121
+				,0.595604
+				,0.0044418
+				,-0.614254
+				,-0.789096
+				,0.393499
+				,0.105326
+				,-0.913272
+				,-0.015518
+				,-0.999853
+				,-0.00722333
+				,0.17509
+				,-0.542238
+				,0.82178
+				,0.00854592
+				,-0.544748
+				,-0.838556
+				,0.190125
+				,0.437889
+				,-0.878696
+				,-0.0161542
+				,-0.999828
+				,-0.00908857
+				,0.180732
+				,-0.544578
+				,0.819006
+				,0.00849429
+				,-0.544115
+				,-0.838967
+				,0.18337
+				,0.442853
+				,-0.877643
+				,-0.0090645
+				,-0.999825
+				,0.0163918
+				,0.032635
+				,-0.500829
+				,0.864931
+				,0.00552107
+				,-0.530208
+				,-0.84785
+				,0.03277
+				,0.497754
+				,-0.866699
+				,-0.0090701
+				,-0.999827
+				,0.0162688
+				,0.0326919
+				,-0.500851
+				,0.864916
+				,0.00552396
+				,-0.530051
+				,-0.847948
+				,0.0327124
+				,0.497741
+				,-0.866709
+				,-1
+				,-3.47581e-006
+				,3.9545e-006
+				,-0.999425
+				,0.000542307
+				,0.0338938
+				,-0.998516
+				,0.0471658
+				,0.0272091
+				,-1
+				,4.00754e-006
+				,3.47623e-006
+				,-1
+				,4.1005e-007
+				,-4.77067e-008
+				,-0.999829
+				,0.0156802
+				,-0.00980156
+				,-1
+				,-8.26652e-006
+				,6.81703e-006
+				,-0.998513
+				,0.0472193
+				,0.0272484
+				,-1
+				,2.94654e-009
+				,-1.44001e-006
+				,-0.999425
+				,0.000539843
+				,0.0339153
+				,-0.998513
+				,0.0472269
+				,0.0272353
+				,-1
+				,-5.76512e-007
+				,-1.60298e-005
+				,-1
+				,2.13516e-006
+				,-2.5418e-006
+				,-0.999829
+				,0.0156811
+				,-0.00980176
+				,-1
+				,6.95161e-006
+				,-5.26594e-006
+				,-0.998516
+				,0.0471719
+				,0.0271987
+				,-0.000220812
+				,-0.829085
+				,-0.559123
+				,1.74899e-007
+				,-0.829012
+				,-0.559231
+				,-0.393391
+				,-0.919077
+				,0.0232481
+				,0.807892
+				,-0.556235
+				,-0.194712
+				,-8.87842e-007
+				,-0.829012
+				,-0.559231
+				,-0.21912
+				,-0.442516
+				,-0.869578
+				,0.110521
+				,-0.555334
+				,-0.82425
+				,1.41488e-012
+				,-0.000739274
+				,-1
+				,-0.398332
+				,-0.128825
+				,-0.90815
+				,-0.000593273
+				,0.00383836
+				,-0.999992
+				,-0.781174
+				,0.383447
+				,-0.492681
+				,0.362492
+				,0.40771
+				,-0.838076
+				,0
+				,0.00514831
+				,-0.999987
+				,0.001821
+				,0.0031858
+				,-0.999993
+				,0.527237
+				,-0.347746
+				,-0.775303
+				,-0.001821
+				,0.00294379
+				,0.999994
+				,-0.527237
+				,0.347746
+				,0.775303
+				,-0.13217
+				,0.324216
+				,0.936705
+				,-1.09256e-009
+				,0.00735275
+				,0.999973
+				,9.89354e-005
+				,0.00620474
+				,0.999981
+				,0.154807
+				,0.491034
+				,0.857275
+				,0.396257
+				,0.135158
+				,0.908137
+				,-1.41659e-012
+				,0.000739282
+				,1
+				,0.000417634
+				,0.447214
+				,0.894427
+				,0.000468588
+				,-0.603758
+				,0.797167
+				,0.0450911
+				,-0.676704
+				,0.734873
+				,-0.418559
+				,0.483629
+				,0.768707
+				,0.475755
+				,-0.408176
+				,0.779134
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.000685749
+				,-0.447214
+				,-0.894427
+				,-0.253491
+				,-0.817725
+				,-0.516786
+				,-0.000141237
+				,-1
+				,0
+				,-0.366401
+				,-0.81369
+				,-0.451286
+				,0.014956
+				,-0.99932
+				,0.0336964
+				,-0.29731
+				,-0.950083
+				,-0.0945957
+				,0.433887
+				,-0.829404
+				,0.351898
+				,-0.201662
+				,-0.954245
+				,-0.220793
+				,-0.389556
+				,0.622092
+				,0.679152
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.738592
+				,-0.346601
+				,-0.578229
+				,0.845857
+				,0.0583779
+				,-0.530205
+				,-0.845857
+				,-0.0583779
+				,0.530205
+				,0.738592
+				,0.346601
+				,0.578229
+				,0.296538
+				,-0.215382
+				,0.930417
+				,-0.640768
+				,0.299025
+				,0.707107
+				,-0.00253074
+				,-0.963808
+				,0.266584
+				,0.181859
+				,-0.967686
+				,-0.174673
+				,-0.354936
+				,-0.861714
+				,0.362586
+				,-0.595517
+				,-0.762192
+				,0.253815
+				,-0.245964
+				,-0.750116
+				,0.613863
+				,-0.928935
+				,0.07418
+				,-0.362737
+				,-1
+				,-9.40514e-007
+				,4.36815e-014
+				,-0.963109
+				,-0.144553
+				,-0.22699
+				,-1
+				,0
+				,0
+				,-1
+				,0
+				,0
+				,-0.927586
+				,-0.365025
+				,-0.0796323
+				,-0.963372
+				,-0.223657
+				,0.147957
+				,-1
+				,0
+				,0
+				,-1
+				,0
+				,0
+				,-0.928935
+				,-0.074178
+				,0.362736
+				,-0.96311
+				,0.144551
+				,0.226991
+				,-1
+				,0
+				,0
+				,-0.96311
+				,0.144551
+				,0.226991
+				,-1
+				,0
+				,0
+				,-1
+				,0
+				,-9.31549e-007
+				,-0.927586
+				,0.365025
+				,0.0796346
+				,-0.963372
+				,0.223658
+				,-0.147957
+				,-1
+				,-3.28621e-006
+				,-3.32301e-006
+				,-0.948254
+				,-0.0596413
+				,-0.311861
+				,-0.948962
+				,-0.25913
+				,-0.179785
+				,-0.949292
+				,-0.308453
+				,0.060834
+				,-0.948625
+				,-0.173557
+				,0.264553
+				,-0.948255
+				,0.0596406
+				,0.311857
+				,-0.948962
+				,0.259129
+				,0.179788
+				,-0.948962
+				,0.259129
+				,0.179788
+				,-0.949292
+				,0.308453
+				,-0.0608337
+				,-0.948625
+				,0.173558
+				,-0.264552
+				,-1
+				,-2.8854e-007
+				,1.84129e-006
+				,-1
+				,6.69743e-008
+				,-7.06787e-007
+				,-1
+				,7.07126e-007
+				,-1.7757e-007
+				,-1
+				,2.1936e-007
+				,-6.38166e-007
+				,-1
+				,-2.93299e-007
+				,-5.98197e-007
+				,-1
+				,-4.78313e-007
+				,-6.62415e-007
+				,-1
+				,-4.78313e-007
+				,-6.62415e-007
+				,-0.948962
+				,0.259129
+				,0.179788
+				,-0.949292
+				,0.308453
+				,-0.0608337
+				,-1
+				,-4.78313e-007
+				,-6.62415e-007
+				,-1
+				,-2.49759e-007
+				,2.79847e-007
+				,-1
+				,2.76966e-007
+				,4.66036e-007
+				,-0.672894
+				,-0.680767
+				,0.289432
+				,-0.475114
+				,-0.75496
+				,-0.451998
+				,-0.376435
+				,-0.326297
+				,0.86708
+				,0.0535425
+				,-0.97545
+				,-0.213612
+				,-0.886408
+				,-0.41067
+				,-0.213612
+				,0.0535425
+				,-0.97545
+				,-0.213612
+				,-0.672893
+				,-0.680767
+				,0.289432
+				,-0.285178
+				,-0.91373
+				,0.289432
+				,-0.56188
+				,-0.712689
+				,-0.419959
+				,-0.285178
+				,-0.91373
+				,0.289432
+				,-0.886408
+				,-0.41067
+				,-0.213612
+				,0.0972898
+				,-0.632413
+				,0.768497
+				,-0.285178
+				,-0.91373
+				,0.289432
+				,-0.105228
+				,0.274007
+				,0.955953
+				,-0.376435
+				,-0.326297
+				,0.86708
+				,0.0369874
+				,0.867758
+				,0.495609
+				,0.324995
+				,-0.656888
+				,0.68035
+				,-0.291336
+				,-0.0357272
+				,-0.955954
+				,0.311712
+				,0.302371
+				,-0.900781
+				,-0.475114
+				,-0.75496
+				,-0.451998
+				,0.732574
+				,0.0214365
+				,-0.68035
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.0154838
+				,-0.994405
+				,-0.104497
+				,-3.76609e-009
+				,-0.992586
+				,0.121541
+				,-3.96372e-008
+				,-0.992586
+				,0.121541
+				,-0.0434482
+				,-0.941647
+				,-0.333787
+				,0.179728
+				,-0.678756
+				,-0.712031
+				,-0.417039
+				,-0.479392
+				,-0.77218
+				,0.179265
+				,-0.0690195
+				,0.981377
+				,0.417039
+				,0.22834
+				,0.879738
+				,-0.179728
+				,0.0472697
+				,0.98258
+				,-0.384997
+				,-0.0134101
+				,0.922821
+				,0.157142
+				,-0.695438
+				,-0.701194
+				,0.384994
+				,-0.765518
+				,-0.515521
+				,-0.179266
+				,-0.845334
+				,-0.503263
+				,-0.444517
+				,-0.336757
+				,-0.83006
+				,-0.190969
+				,-0.447951
+				,0.873425
+				,0.444524
+				,0.434509
+				,0.783327
+				,-0.157139
+				,0.108995
+				,0.981543
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.450922
+				,-0.770823
+				,0.45
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,4.75921e-007
+				,-1
+				,-2.86674e-006
+				,-0.0976033
+				,-0.978464
+				,0.181886
+				,-1.12101e-014
+				,-1
+				,7.84268e-007
+				,0.00678098
+				,-0.998087
+				,0.0614579
+				,0.00918275
+				,-0.994446
+				,-0.104849
+				,4.01573e-010
+				,-1
+				,-3.92713e-006
+				,-4.53467e-007
+				,-1
+				,-2.35799e-006
+				,-0.187402
+				,-0.972376
+				,-0.139159
+				,0.00625237
+				,-0.998849
+				,0.0475553
+				,-0.139256
+				,-0.9587
+				,0.247998
+				,-4.53441e-007
+				,-1
+				,2.61055e-007
+				,2.12178e-014
+				,-1
+				,-7.85376e-007
+				,-2.2767e-008
+				,-1
+				,-5.10438e-007
+				,0.00744022
+				,-0.990636
+				,-0.136323
+				,-0.122105
+				,-0.987541
+				,-0.0992661
+				,-1.6396e-014
+				,-1
+				,7.85376e-007
+				,0.0412873
+				,-0.971472
+				,0.233535
+				,-0.338069
+				,-0.710914
+				,0.616693
+				,0.0115391
+				,-0.95932
+				,-0.282085
+				,-0.367578
+				,-0.733032
+				,-0.572321
+				,0.0425017
+				,-0.969178
+				,0.242669
+				,-0.343711
+				,-0.687496
+				,0.639697
+				,0.0120422
+				,-0.961368
+				,-0.275003
+				,-0.359886
+				,-0.75848
+				,-0.543314
+				,0.0412248
+				,-0.920523
+				,0.388507
+				,-0.343402
+				,-0.293444
+				,0.892169
+				,-0.00672757
+				,-0.908087
+				,-0.418729
+				,-0.366398
+				,-0.30837
+				,-0.877873
+				,0.0411043
+				,-0.919153
+				,0.391751
+				,-0.340007
+				,-0.290618
+				,0.894392
+				,-0.00689869
+				,-0.907531
+				,-0.419927
+				,-0.372315
+				,-0.313985
+				,-0.873381
+				,0.015669
+				,-0.877507
+				,0.479308
+				,-0.154014
+				,-0.0448485
+				,0.98705
+				,-0.00758947
+				,-0.873186
+				,-0.487329
+				,-0.164712
+				,-0.0474187
+				,-0.985201
+				,0.0163089
+				,-0.878398
+				,0.477651
+				,-0.159387
+				,-0.0474551
+				,0.986075
+				,-0.00752302
+				,-0.872874
+				,-0.487887
+				,-0.158628
+				,-0.0433993
+				,-0.986384
+				,0.00924347
+				,-0.866137
+				,0.499722
+				,-0.0275777
+				,-0.00162037
+				,0.999618
+				,-0.00460349
+				,-0.866251
+				,-0.499588
+				,-0.027671
+				,-0.000995395
+				,-0.999617
+				,0.0092495
+				,-0.866202
+				,0.499609
+				,-0.027626
+				,-0.00165926
+				,0.999617
+				,-0.00460571
+				,-0.866165
+				,-0.499737
+				,-0.0276221
+				,-0.00102645
+				,-0.999618
+				,0.998852
+				,0.0478939
+				,2.28377e-005
+				,0.99949
+				,0.0159522
+				,0.0276739
+				,1
+				,-1.36753e-006
+				,5.10953e-006
+				,1
+				,3.99357e-006
+				,1.11115e-006
+				,0.999872
+				,0.00798293
+				,-0.0138362
+				,1
+				,1.54003e-007
+				,-6.14032e-008
+				,0.99885
+				,0.0479518
+				,2.95514e-005
+				,1
+				,-3.22047e-006
+				,9.0251e-006
+				,0.99885
+				,0.0479518
+				,1.59752e-005
+				,0.999489
+				,0.0159603
+				,0.0276942
+				,1
+				,-8.70488e-007
+				,-9.51755e-007
+				,1
+				,-7.47731e-006
+				,-1.30885e-005
+				,0.999872
+				,0.00798234
+				,-0.0138372
+				,1
+				,-3.15864e-007
+				,-2.65722e-006
+				,0.998852
+				,0.0478939
+				,1.14573e-005
+				,1
+				,2.37574e-006
+				,-7.29914e-006
+				,4.26152e-008
+				,-0.00416847
+				,0.999991
+				,1.65891e-007
+				,-0.00416855
+				,0.999991
+				,-3.04971e-011
+				,-0.00416861
+				,0.999991
+				,0
+				,-0.00416841
+				,0.999991
+				,1.39238e-008
+				,-0.00416844
+				,0.999991
+				,0
+				,-0.00416841
+				,0.999991
+				,-1.39238e-008
+				,-0.00416844
+				,0.999991
+				,0
+				,-0.00416841
+				,0.999991
+				,-1.65891e-007
+				,-0.00416848
+				,0.999991
+				,-1.39841e-008
+				,-0.00416846
+				,0.999991
+				,3.61656e-010
+				,-0.00416841
+				,0.999991
+				,-5.40147e-011
+				,-0.00416861
+				,0.999991
+				,-2.06807e-007
+				,-0.00416929
+				,0.999991
+				,-5.4016e-011
+				,-0.00416861
+				,0.999991
+				,-1.65891e-007
+				,-0.00416893
+				,0.999991
+				,1.80829e-010
+				,-0.00416956
+				,0.999991
+				,-6.88955e-008
+				,-0.00416945
+				,0.999991
+				,6.88954e-008
+				,-0.00416945
+				,0.999991
+				,1.80829e-010
+				,-0.00416956
+				,0.999991
+				,0
+				,-0.00416956
+				,0.999991
+				,1.6589e-007
+				,-0.00416925
+				,0.999991
+				,0
+				,-0.00416956
+				,0.999991
+				,6.88955e-008
+				,-0.00416937
+				,0.999991
+				,-3.04998e-011
+				,-0.00416861
+				,0.999991
+				,0.963109
+				,-0.144553
+				,-0.22699
+				,1
+				,-9.3897e-007
+				,4.36815e-014
+				,0.928935
+				,0.0741801
+				,-0.362737
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,0.927586
+				,-0.365025
+				,-0.0796325
+				,0.963372
+				,-0.223657
+				,0.147957
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,0.928935
+				,-0.0741779
+				,0.362736
+				,0.96311
+				,0.144551
+				,0.226991
+				,1
+				,0
+				,0
+				,1
+				,-2.56885e-013
+				,-9.36472e-007
+				,1
+				,0
+				,0
+				,0.96311
+				,0.144551
+				,0.226991
+				,0.927586
+				,0.365025
+				,0.0796344
+				,0.963372
+				,0.223658
+				,-0.147957
+				,1
+				,-3.29295e-006
+				,-3.32983e-006
+				,0.948254
+				,-0.0596413
+				,-0.311861
+				,0.948962
+				,-0.259129
+				,-0.179785
+				,0.949292
+				,-0.308453
+				,0.0608337
+				,0.948625
+				,-0.173557
+				,0.264553
+				,0.948255
+				,0.0596406
+				,0.311857
+				,0.948962
+				,0.25913
+				,0.179788
+				,0.948962
+				,0.25913
+				,0.179788
+				,0.949292
+				,0.308453
+				,-0.0608341
+				,0.948625
+				,0.173558
+				,-0.264552
+				,1
+				,-2.80179e-007
+				,1.45455e-006
+				,1
+				,7.15551e-008
+				,-7.76777e-007
+				,1
+				,6.79976e-007
+				,-3.89599e-007
+				,1
+				,2.4414e-007
+				,-7.39162e-007
+				,1
+				,-2.89895e-007
+				,-7.91451e-007
+				,1
+				,-4.75189e-007
+				,-7.30368e-007
+				,0.949292
+				,0.308453
+				,-0.0608341
+				,0.948962
+				,0.25913
+				,0.179788
+				,1
+				,-4.75189e-007
+				,-7.30368e-007
+				,1
+				,-2.77171e-007
+				,6.578e-008
+				,1
+				,-4.75189e-007
+				,-7.30368e-007
+				,1
+				,3.2386e-007
+				,2.61919e-007
+				,0.194781
+				,0.707682
+				,-0.679151
+				,0
+				,0.707107
+				,-0.707107
+				,0
+				,-0.447214
+				,-0.894427
+				,-0.223492
+				,-0.209702
+				,0.951881
+				,-0.477285
+				,-0.420096
+				,0.771828
+				,0.416604
+				,0.496174
+				,0.761743
+				,0.000377879
+				,-1
+				,0
+				,0.13015
+				,-0.810231
+				,-0.571478
+				,-0.014788
+				,-0.999346
+				,0.0329953
+				,0.358208
+				,-0.812175
+				,-0.460497
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.201662
+				,-0.954245
+				,-0.220793
+				,0.477286
+				,0.420094
+				,-0.771828
+				,-0.389556
+				,-0.622092
+				,-0.679152
+				,0.389557
+				,0.622091
+				,0.679152
+				,-0.279512
+				,-0.0974885
+				,-0.95518
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.416603
+				,-0.496174
+				,-0.761743
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.64015
+				,0.573225
+				,0.511489
+				,0.390499
+				,-0.34033
+				,0.855387
+				,0.849538
+				,-0.0582332
+				,0.524303
+				,0.405257
+				,0.18912
+				,-0.894427
+				,0.64015
+				,-0.573225
+				,-0.511489
+				,-0.849538
+				,0.0582332
+				,-0.524303
+				,-0.640768
+				,-0.299025
+				,-0.707107
+				,0
+				,-0.707107
+				,0.707107
+				,0.156142
+				,-0.755801
+				,0.635912
+				,0.000377874
+				,-1
+				,0
+				,0.349667
+				,-0.860175
+				,0.371258
+				,-0.134769
+				,-0.93998
+				,-0.313489
+				,0.595837
+				,-0.7588
+				,0.263061
+				,-0.228496
+				,-0.961624
+				,-0.151883
+				,0.331554
+				,-0.925707
+				,0.182039
+				,0.393391
+				,-0.919077
+				,0.0232479
+				,-2.15573e-007
+				,-0.829012
+				,-0.559231
+				,0.000220765
+				,-0.829085
+				,-0.559123
+				,-0.807892
+				,-0.556235
+				,-0.194712
+				,8.71665e-007
+				,-0.829012
+				,-0.559231
+				,0.0803752
+				,-0.40223
+				,-0.912004
+				,-0.0445054
+				,-0.543124
+				,-0.838472
+				,-0.000593291
+				,-0.00383837
+				,0.999992
+				,-0.398332
+				,0.128825
+				,0.90815
+				,-4.41571e-008
+				,0.000739273
+				,1
+				,-0.781175
+				,-0.383447
+				,0.492681
+				,0.362492
+				,-0.40771
+				,0.838076
+				,3.53718e-010
+				,-0.00514831
+				,0.999987
+				,0.00182102
+				,-0.0031858
+				,0.999993
+				,0.527237
+				,0.347745
+				,0.775303
+				,-0.132834
+				,-0.323941
+				,-0.936706
+				,-0.527237
+				,-0.347745
+				,-0.775303
+				,-0.00182102
+				,-0.00294378
+				,-0.999994
+				,-2.97972e-010
+				,-0.00735275
+				,-0.999973
+				,9.89478e-005
+				,-0.00620474
+				,-0.999981
+				,0.0803752
+				,-0.40223
+				,-0.912004
+				,-0.0445054
+				,-0.543124
+				,-0.838472
+				,0.396257
+				,-0.135158
+				,-0.908137
+				,0.154807
+				,-0.491034
+				,-0.857275
+				,4.41571e-008
+				,-0.000739274
+				,-1
+				,0.18466
+				,-0.914467
+				,-0.360072
+				,0.187849
+				,-0.911039
+				,0.367044
+				,-0.591718
+				,-0.747079
+				,-0.302891
+				,-0.602058
+				,-0.743119
+				,0.292061
+				,-0.593873
+				,-0.747096
+				,-0.2986
+				,0.709222
+				,-0.704984
+				,-0.0012206
+				,-0.707103
+				,-0.707107
+				,0.00245314
+				,0.194833
+				,-0.910983
+				,0.363524
+				,0.704997
+				,-0.709209
+				,0.00124256
+				,-0.601011
+				,-0.74313
+				,0.294184
+				,0.17072
+				,-0.914411
+				,-0.367025
+				,-0.707107
+				,-0.707107
+				,0
+				,-0.236912
+				,0.23429
+				,0.942858
+				,-0.00144717
+				,-0.000289069
+				,0.999999
+				,0.578621
+				,0.577727
+				,0.575699
+				,0.00346926
+				,0
+				,0.999994
+				,-0.000862149
+				,-0.000867333
+				,-0.999999
+				,-0.233652
+				,0.235057
+				,-0.94348
+				,0
+				,0
+				,-1
+				,0.572751
+				,0.579636
+				,-0.579636
+				,0
+				,-0.902319
+				,-0.43107
+				,0
+				,-0.873499
+				,0.486826
+				,-0.00751858
+				,-0.95304
+				,0.302751
+				,0.0714406
+				,-0.836045
+				,-0.543991
+				,0.0105074
+				,-0.986739
+				,0.161974
+				,0.0439428
+				,-0.711914
+				,-0.70089
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,1.40811e-007
+				,0.460485
+				,0.887667
+				,0.0541128
+				,0.257088
+				,0.964872
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,1
+				,-0.112093
+				,-0.0159927
+				,0.993569
+				,-0.101435
+				,0.109831
+				,0.988761
+				,-0.179656
+				,0.26862
+				,0.946344
+				,-0.00928401
+				,0.0285578
+				,0.999549
+				,-0.34336
+				,0.0792732
+				,0.935852
+				,9.95781e-008
+				,0.341028
+				,0.940053
+				,-0.0485403
+				,0.47057
+				,0.881027
+				,0.00144246
+				,0.411131
+				,0.911575
+				,0.0262054
+				,0.331954
+				,0.942932
+				,-0.000688597
+				,0.902318
+				,0.43107
+				,0.0786219
+				,0.821535
+				,0.564712
+				,0.0889155
+				,-0.995997
+				,-0.00913129
+				,0.0101894
+				,-0.785117
+				,0.619264
+				,0.19477
+				,-0.796505
+				,0.572403
+				,0.265828
+				,-0.901133
+				,-0.342483
+				,0.029743
+				,0.0276108
+				,0.999176
+				,0.221427
+				,-0.305938
+				,0.925944
+				,-0.027699
+				,-0.084837
+				,0.99601
+				,0
+				,1.98636e-007
+				,1
+				,-0.0487038
+				,-0.111506
+				,0.99257
+				,-0.00455985
+				,-0.0146535
+				,0.999882
+				,0.0131139
+				,0.0312149
+				,0.999427
+				,0
+				,-8.92106e-008
+				,1
+				,0.019452
+				,-0.00993628
+				,0.999761
+				,-0.0378945
+				,-0.0761685
+				,0.996375
+				,-0.131703
+				,0.0639368
+				,0.989225
+				,0.138493
+				,-0.0842195
+				,0.986776
+				,0.00189662
+				,-0.00115724
+				,0.999998
+				,-0.00349707
+				,-0.0126157
+				,0.999914
+				,-0.184911
+				,0.0824887
+				,0.979287
+				,0.0932494
+				,0.200658
+				,0.975213
+				,-0.366999
+				,-0.106443
+				,0.924111
+				,-0.0298082
+				,0.00967327
+				,0.999509
+				,0.0585932
+				,0.115214
+				,0.991611
+				,-0.00940561
+				,0.00285849
+				,0.999952
+				,0.0166786
+				,0.0457884
+				,0.998812
+				,0.00160239
+				,-0.000371487
+				,0.999999
+				,0.105282
+				,0.301974
+				,0.947485
+				,0.761491
+				,-0.0703961
+				,0.644342
+				,0.165134
+				,0.235988
+				,0.957622
+				,0.00262008
+				,-0.0720116
+				,0.9974
+				,0.000269095
+				,-0.0109763
+				,0.99994
+				,-0.027699
+				,-0.084837
+				,0.99601
+				,-0.0487038
+				,-0.111506
+				,0.99257
+				,5.08836e-005
+				,-0.00274336
+				,0.999996
+				,-0.00455985
+				,-0.0146535
+				,0.999882
+				,0.0165575
+				,0.163595
+				,0.986389
+				,0.0131139
+				,0.0312149
+				,0.999427
+				,0.00241493
+				,-0.0613622
+				,0.998113
+				,-0.0378945
+				,-0.0761685
+				,0.996375
+				,0.000825477
+				,0.411551
+				,0.911386
+				,-0.00162364
+				,-0.200309
+				,0.979732
+				,0.00366731
+				,-0.0408081
+				,0.99916
+				,-0.0419145
+				,0.24215
+				,0.969333
+				,-0.00302969
+				,-0.402577
+				,0.915381
+				,-0.0318434
+				,-0.348515
+				,0.936762
+				,0.002882
+				,-0.0500721
+				,0.998741
+				,-0.00349707
+				,-0.0126157
+				,0.999914
+				,-0.0253632
+				,-0.0458127
+				,0.998628
+				,-0.00217587
+				,0.0317617
+				,0.999493
+				,-0.0478437
+				,-0.0151964
+				,0.998739
+				,0.0932494
+				,0.200658
+				,0.975213
+				,-0.00599234
+				,0.236392
+				,0.971639
+				,-0.0321798
+				,0.394025
+				,0.918536
+				,-0.0113092
+				,0.651621
+				,0.758461
+				,0.0248735
+				,0.319871
+				,0.947135
+				,-0.0866838
+				,0.316656
+				,0.944571
+				,-0.149011
+				,0.778708
+				,0.609434
+				,-0.488554
+				,0.839089
+				,0.239261
+				,-0.742056
+				,0.470408
+				,0.477566
+				,-0.0383749
+				,0.258135
+				,0.965346
+				,-0.393471
+				,-0.173445
+				,0.902828
+				,0.0131114
+				,0.363612
+				,0.931458
+				,0.0038073
+				,0.112658
+				,0.993627
+				,0.0093968
+				,0.249515
+				,0.968325
+				,0.0585932
+				,0.115214
+				,0.991611
+				,0.000537778
+				,0.0752893
+				,0.997162
+				,0.000500418
+				,0.0354369
+				,0.999372
+				,0.00957175
+				,0.173568
+				,0.984775
+				,0.0166786
+				,0.0457884
+				,0.998812
+				,0.0593207
+				,-0.344523
+				,0.936902
+				,0.00127604
+				,-0.00177759
+				,0.999998
+				,0.0114275
+				,0.709425
+				,0.704688
+				,-0.00116785
+				,0.336955
+				,0.94152
+				,0.0105074
+				,-0.986739
+				,0.161974
+				,0.390535
+				,-0.832841
+				,0.392249
+				,0.757397
+				,-0.108563
+				,0.643867
+				,0.0549957
+				,0.986532
+				,-0.154047
+				,0.31269
+				,0.930625
+				,0.190164
+				,0.165134
+				,0.235988
+				,0.957622
+				,-0.366999
+				,-0.106443
+				,0.924111
+				,0
+				,0
+				,1
+				,-5.04432e-008
+				,3.38268e-008
+				,1
+				,-0.0052971
+				,-0.00628658
+				,0.999966
+				,-0.0347242
+				,-0.0377523
+				,0.998684
+				,0
+				,0
+				,1
+				,-0.00131136
+				,-0.00168028
+				,0.999998
+				,0.241869
+				,0.130678
+				,0.961469
+				,0.113022
+				,0.0936855
+				,0.989166
+				,0
+				,0
+				,1
+				,-0.0294955
+				,-0.0293093
+				,0.999135
+				,0
+				,0
+				,1
+				,-0.0232234
+				,-0.0204214
+				,0.999522
+				,-0.112093
+				,-0.0159927
+				,0.993569
+				,-0.0839063
+				,0.0198096
+				,0.996277
+				,-0.0247243
+				,0.186474
+				,0.982149
+				,0.241754
+				,0.190759
+				,0.951402
+				,-0.985306
+				,0.0162614
+				,0.170025
+				,-0.869311
+				,-0.0155158
+				,0.494022
+				,-0.868618
+				,0.0299246
+				,0.494578
+				,0.221427
+				,-0.305938
+				,0.925944
+				,0.208408
+				,0.163367
+				,0.964302
+				,-0.293651
+				,0.0420359
+				,0.954988
+				,0.111427
+				,-0.993634
+				,-0.016601
+				,0.19477
+				,-0.796505
+				,0.572403
+				,0.392216
+				,0.203306
+				,0.897125
+				,0.319004
+				,0.0821197
+				,0.944189
+				,0.378857
+				,0.158856
+				,0.911719
+				,0.172058
+				,0.11462
+				,0.978396
+				,0.881763
+				,0.289715
+				,0.372236
+				,0.705755
+				,0.461539
+				,0.537486
+				,-1.82096e-006
+				,-0.850923
+				,-0.52529
+				,-0.107136
+				,-0.472548
+				,-0.874769
+				,-0.127806
+				,-0.598971
+				,-0.790506
+				,0
+				,-0.697899
+				,-0.716196
+				,0.000615315
+				,-0.327821
+				,0.94474
+				,0.00142632
+				,-0.386953
+				,0.922098
+				,-0.0019771
+				,-0.0501494
+				,0.99874
+				,0.00798393
+				,-0.516969
+				,0.855967
+				,2.01085e-007
+				,-0.189077
+				,0.981962
+				,0
+				,0.697899
+				,0.716196
+				,-0.0617016
+				,0.587756
+				,0.806682
+				,0.00104703
+				,0.054408
+				,0.998518
+				,-0.000520678
+				,0.850923
+				,0.52529
+				,-0.00795704
+				,0.665163
+				,0.746656
+				,-0.00128562
+				,0.619373
+				,0.785096
+				,-0.00726214
+				,0.469696
+				,0.882798
+				,-0.0455381
+				,0.998943
+				,0.00629
+				,-0.0624906
+				,0.944397
+				,0.322816
+				,-0.00217587
+				,0.0317617
+				,0.999493
+				,-0.00302969
+				,-0.402577
+				,0.915381
+				,-0.00599234
+				,0.236392
+				,0.971639
+				,-0.0113092
+				,0.651621
+				,0.758461
+				,-0.488554
+				,0.839089
+				,0.239261
+				,-0.33508
+				,0.930605
+				,0.147293
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-2.9565e-008
+				,0.282471
+				,0.959276
+				,-6.80049e-007
+				,-0.679163
+				,0.733988
+				,-0.0172031
+				,-0.451674
+				,0.892017
+				,0.0404551
+				,0.462009
+				,0.885952
+				,0.000615315
+				,-0.327821
+				,0.94474
+				,0.00798393
+				,-0.516969
+				,0.855967
+				,7.94018e-008
+				,0.632296
+				,0.774727
+				,-0.00814254
+				,0.490897
+				,0.87118
+				,-0.00162364
+				,-0.200309
+				,0.979732
+				,0.000825477
+				,0.411551
+				,0.911386
+				,-0.00302969
+				,-0.402577
+				,0.915381
+				,-0.0401104
+				,-0.412421
+				,0.91011
+				,0.0131114
+				,0.363612
+				,0.931458
+				,-0.000175412
+				,0.143642
+				,0.98963
+				,7.94018e-008
+				,0.632296
+				,0.774727
+				,-0.00814254
+				,0.490897
+				,0.87118
+				,0.000194233
+				,0.120108
+				,0.992761
+				,-0.000361633
+				,-0.15426
+				,0.98803
+				,0.00918028
+				,-0.344357
+				,0.938794
+				,0
+				,-0.873499
+				,0.486826
+				,-0.00751858
+				,-0.95304
+				,0.302751
+				,0.0131114
+				,0.363612
+				,0.931458
+				,0.000537778
+				,0.0752893
+				,0.997162
+				,0.0593207
+				,-0.344523
+				,0.936902
+				,0.0105074
+				,-0.986739
+				,0.161974
+				,-0.672894
+				,-0.680767
+				,0.289432
+				,-0.475114
+				,-0.754959
+				,-0.451998
+				,-0.376435
+				,-0.326297
+				,0.86708
+				,0.0535425
+				,-0.97545
+				,-0.213612
+				,-0.886408
+				,-0.41067
+				,-0.213612
+				,0.0535425
+				,-0.97545
+				,-0.213612
+				,-0.672893
+				,-0.680767
+				,0.289432
+				,-0.285178
+				,-0.91373
+				,0.289432
+				,-0.56188
+				,-0.712689
+				,-0.419959
+				,-0.285178
+				,-0.91373
+				,0.289432
+				,-0.886408
+				,-0.41067
+				,-0.213612
+				,0.0972898
+				,-0.632413
+				,0.768497
+				,-0.285178
+				,-0.91373
+				,0.289432
+				,-0.105228
+				,0.274007
+				,0.955953
+				,-0.376435
+				,-0.326297
+				,0.86708
+				,0.0369874
+				,0.867758
+				,0.495609
+				,0.324995
+				,-0.656888
+				,0.68035
+				,-0.291336
+				,-0.0357272
+				,-0.955954
+				,0.311712
+				,0.302371
+				,-0.900781
+				,-0.475114
+				,-0.754959
+				,-0.451998
+				,0.732574
+				,0.0214365
+				,-0.68035
+				,3.25394e-007
+				,-0.890102
+				,-0.455762
+				,-0.0863506
+				,-0.951254
+				,-0.296072
+				,1.17824e-009
+				,-0.890103
+				,-0.45576
+				,0.00690505
+				,-0.914366
+				,-0.404829
+				,0.0116145
+				,-0.839481
+				,-0.543265
+				,0
+				,-0.890101
+				,-0.455762
+				,-2.75443e-007
+				,-0.890102
+				,-0.455762
+				,-0.168797
+				,-0.804975
+				,-0.568791
+				,0.00624141
+				,-0.909178
+				,-0.41636
+				,-0.123315
+				,-0.964391
+				,-0.233972
+				,-2.75427e-007
+				,-0.890103
+				,-0.45576
+				,0
+				,-0.890102
+				,-0.455761
+				,-1.82461e-008
+				,-0.890102
+				,-0.455761
+				,0.0104442
+				,-0.822519
+				,-0.568641
+				,-0.109447
+				,-0.835271
+				,-0.538835
+				,1.17824e-009
+				,-0.890103
+				,-0.45576
+				,0.040652
+				,-0.966775
+				,-0.252375
+				,-0.304925
+				,-0.936453
+				,0.173426
+				,0.0181537
+				,-0.729273
+				,-0.683981
+				,-0.349899
+				,-0.414959
+				,-0.839869
+				,0.04185
+				,-0.96887
+				,-0.244008
+				,-0.311185
+				,-0.928639
+				,0.201975
+				,0.0185824
+				,-0.734402
+				,-0.678461
+				,-0.34084
+				,-0.450125
+				,-0.825358
+				,0.0404774
+				,-0.993827
+				,-0.103298
+				,-0.344309
+				,-0.728213
+				,0.592586
+				,-0.00409827
+				,-0.615558
+				,-0.788081
+				,-0.387176
+				,0.113164
+				,-0.915035
+				,0.0404289
+				,-0.994156
+				,-0.1001
+				,-0.341395
+				,-0.727121
+				,0.595604
+				,-0.00444181
+				,-0.614254
+				,-0.789096
+				,-0.393499
+				,0.105326
+				,-0.913272
+				,0.015518
+				,-0.999853
+				,-0.00722333
+				,-0.17509
+				,-0.542238
+				,0.82178
+				,-0.00854593
+				,-0.544748
+				,-0.838556
+				,-0.190125
+				,0.437889
+				,-0.878696
+				,0.0161542
+				,-0.999828
+				,-0.00908857
+				,-0.180732
+				,-0.544578
+				,0.819006
+				,-0.00849429
+				,-0.544115
+				,-0.838967
+				,-0.18337
+				,0.442853
+				,-0.877643
+				,0.00906452
+				,-0.999825
+				,0.0163918
+				,-0.032635
+				,-0.500829
+				,0.864931
+				,-0.00552109
+				,-0.530208
+				,-0.84785
+				,-0.03277
+				,0.497754
+				,-0.866699
+				,0.0090701
+				,-0.999827
+				,0.0162688
+				,-0.0326919
+				,-0.500851
+				,0.864916
+				,-0.00552397
+				,-0.530051
+				,-0.847948
+				,-0.0327124
+				,0.497741
+				,-0.866709
+				,0.998516
+				,0.0471658
+				,0.0272091
+				,0.999425
+				,0.000542307
+				,0.0338938
+				,1
+				,-3.47459e-006
+				,3.95426e-006
+				,1
+				,4.00763e-006
+				,3.47594e-006
+				,0.999829
+				,0.0156802
+				,-0.00980156
+				,1
+				,4.09259e-007
+				,-4.85469e-008
+				,0.998513
+				,0.0472193
+				,0.0272484
+				,1
+				,-8.26804e-006
+				,6.82152e-006
+				,0.998513
+				,0.0472269
+				,0.0272353
+				,0.999425
+				,0.000539847
+				,0.0339153
+				,1
+				,5.50938e-009
+				,-1.44051e-006
+				,1
+				,-5.76883e-007
+				,-1.60287e-005
+				,0.999829
+				,0.0156811
+				,-0.00980176
+				,1
+				,2.13668e-006
+				,-2.54018e-006
+				,0.998516
+				,0.0471719
+				,0.0271987
+				,1
+				,6.95132e-006
+				,-5.26506e-006
+				,0.393391
+				,-0.919077
+				,0.0232481
+				,-1.83034e-007
+				,-0.829012
+				,-0.559231
+				,0.000220812
+				,-0.829085
+				,-0.559123
+				,-0.807892
+				,-0.556235
+				,-0.194712
+				,8.77812e-007
+				,-0.829012
+				,-0.559231
+				,0.0803752
+				,-0.40223
+				,-0.912004
+				,-0.0445055
+				,-0.543124
+				,-0.838472
+				,-0.000593272
+				,-0.00383836
+				,0.999992
+				,-0.398332
+				,0.128825
+				,0.90815
+				,1.41473e-012
+				,0.000739273
+				,1
+				,-0.781174
+				,-0.383447
+				,0.492681
+				,0.362492
+				,-0.40771
+				,0.838076
+				,2.65289e-010
+				,-0.00514831
+				,0.999987
+				,0.001821
+				,-0.0031858
+				,0.999993
+				,0.527237
+				,0.347746
+				,0.775303
+				,-0.132834
+				,-0.323941
+				,-0.936706
+				,-0.527237
+				,-0.347746
+				,-0.775303
+				,-0.001821
+				,-0.00294378
+				,-0.999994
+				,2.97972e-010
+				,-0.00735275
+				,-0.999973
+				,9.89358e-005
+				,-0.00620474
+				,-0.999981
+				,0.0803752
+				,-0.40223
+				,-0.912004
+				,-0.0445055
+				,-0.543124
+				,-0.838472
+				,0.396257
+				,-0.135158
+				,-0.908137
+				,0.154807
+				,-0.491034
+				,-0.857275
+				,-1.41488e-012
+				,-0.000739274
+				,-1
+				,0.263692
+				,0.600075
+				,-0.755233
+				,0.000702887
+				,0.603758
+				,-0.797167
+				,-0.219571
+				,-0.20272
+				,0.954303
+				,-0.475755
+				,-0.408177
+				,0.779134
+				,0.418559
+				,0.483629
+				,0.768707
+				,0.000141242
+				,-1
+				,0
+				,0.129952
+				,-0.810207
+				,-0.571557
+				,-0.00105827
+				,-0.447213
+				,-0.894427
+				,-0.014956
+				,-0.99932
+				,0.0336964
+				,0.366401
+				,-0.81369
+				,-0.451286
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.201662
+				,-0.954245
+				,-0.220793
+				,0.475756
+				,0.408175
+				,-0.779134
+				,-0.389556
+				,-0.622092
+				,-0.679152
+				,0.389557
+				,0.622091
+				,0.679152
+				,-0.272343
+				,-0.093852
+				,-0.957612
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.418558
+				,-0.48363
+				,-0.768707
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.738592
+				,0.346601
+				,0.578229
+				,0.385401
+				,-0.327366
+				,0.862727
+				,0.845857
+				,-0.0583779
+				,0.530205
+				,0.296539
+				,0.215382
+				,-0.930417
+				,0.738592
+				,-0.346601
+				,-0.578229
+				,-0.845857
+				,0.0583779
+				,-0.530205
+				,-0.640768
+				,-0.299025
+				,-0.707107
+				,0
+				,-0.603758
+				,0.797167
+				,0.230636
+				,-0.720758
+				,0.653694
+				,0.00253074
+				,-0.963808
+				,0.266584
+				,0.354936
+				,-0.861714
+				,0.362586
+				,-0.181859
+				,-0.967686
+				,-0.174673
+				,0.595518
+				,-0.762192
+				,0.253815
+				,-0.22853
+				,-0.962172
+				,-0.148325
+				,0.245964
+				,-0.750116
+				,0.613863
+				,0.963109
+				,-0.144553
+				,-0.22699
+				,1
+				,-9.3897e-007
+				,4.36815e-014
+				,0.928935
+				,0.07418
+				,-0.362737
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,0.927586
+				,-0.365025
+				,-0.0796323
+				,0.963372
+				,-0.223657
+				,0.147957
+				,1
+				,0
+				,0
+				,1
+				,0
+				,0
+				,0.928935
+				,-0.074178
+				,0.362736
+				,0.96311
+				,0.144551
+				,0.226991
+				,1
+				,0
+				,0
+				,1
+				,0
+				,-9.36472e-007
+				,1
+				,0
+				,0
+				,0.96311
+				,0.144551
+				,0.226991
+				,0.927586
+				,0.365025
+				,0.0796346
+				,0.963372
+				,0.223658
+				,-0.147957
+				,1
+				,-3.29295e-006
+				,-3.32983e-006
+				,0.948254
+				,-0.0596413
+				,-0.311861
+				,0.948962
+				,-0.25913
+				,-0.179785
+				,0.949292
+				,-0.308453
+				,0.060834
+				,0.948625
+				,-0.173557
+				,0.264553
+				,0.948255
+				,0.0596406
+				,0.311857
+				,0.948962
+				,0.259129
+				,0.179788
+				,0.948962
+				,0.259129
+				,0.179788
+				,0.949292
+				,0.308453
+				,-0.0608337
+				,0.948625
+				,0.173558
+				,-0.264552
+				,1
+				,-2.86939e-007
+				,1.84105e-006
+				,1
+				,6.74446e-008
+				,-7.07443e-007
+				,1
+				,7.07158e-007
+				,-1.7732e-007
+				,1
+				,2.20451e-007
+				,-6.37293e-007
+				,1
+				,-2.93254e-007
+				,-5.98204e-007
+				,1
+				,-4.79302e-007
+				,-6.61036e-007
+				,0.949292
+				,0.308453
+				,-0.0608337
+				,0.948962
+				,0.259129
+				,0.179788
+				,1
+				,-4.79302e-007
+				,-6.61036e-007
+				,1
+				,-2.49716e-007
+				,2.80182e-007
+				,1
+				,-4.79302e-007
+				,-6.61036e-007
+				,1
+				,2.77065e-007
+				,4.66115e-007
+				,-0.596285
+				,-0.745356
+				,0.298142
+				,0.182574
+				,-0.912871
+				,-0.365148
+				,0.182574
+				,-0.912871
+				,0.365148
+				,-0.596285
+				,-0.745356
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.182574
+				,-0.912871
+				,-0.365148
+				,0.596285
+				,-0.745356
+				,0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.596285
+				,-0.745356
+				,0.298142
+				,0.182574
+				,-0.912871
+				,-0.365148
+				,0.182574
+				,-0.912871
+				,0.365148
+				,-0.596285
+				,-0.745356
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.182574
+				,-0.912871
+				,-0.365148
+				,0.596285
+				,-0.745356
+				,0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.182574
+				,-0.912871
+				,0.365148
+				,-0.182574
+				,-0.912871
+				,-0.365148
+				,0.596285
+				,-0.745356
+				,0.298142
+				,0.596285
+				,-0.745356
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.182574
+				,-0.912871
+				,-0.365148
+				,-0.596285
+				,-0.745356
+				,0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.182574
+				,-0.912871
+				,0.365148
+				,-0.182574
+				,-0.912871
+				,-0.365148
+				,0.596285
+				,-0.745356
+				,0.298142
+				,0.596285
+				,-0.745356
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.182574
+				,-0.912871
+				,-0.365148
+				,-0.596285
+				,-0.745356
+				,0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.182574
+				,-0.912871
+				,-0.365148
+				,0.182574
+				,-0.912871
+				,0.365148
+				,-0.596285
+				,-0.745356
+				,-0.298142
+				,-0.596285
+				,-0.745356
+				,0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.182574
+				,-0.912871
+				,0.365148
+				,0.596285
+				,-0.745356
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.596285
+				,-0.745356
+				,-0.298142
+				,-0.182574
+				,-0.912871
+				,0.365148
+				,-0.182574
+				,-0.912871
+				,-0.365148
+				,0.596285
+				,-0.745356
+				,0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,0.182574
+				,-0.912871
+				,0.365148
+				,-0.596285
+				,-0.745356
+				,-0.298142
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,"NaN"
+				,-0.520796
+				,-0.853672
+				,0.00404836
+				,-0.476481
+				,-0.878954
+				,0.0201464
+				,0
+				,-1
+				,1.14416e-009
+				,-0.519065
+				,-0.854735
+				,2.56596e-007
+				,0
+				,-1
+				,-4.62625e-009
+				,-0.365282
+				,-0.930839
+				,0.0103676
+				,0.116762
+				,-0.993155
+				,0.00323129
+				,0.890936
+				,-0.454129
+				,0
+				,0.854508
+				,-0.510715
+				,0.0948013
+				,-0.266828
+				,-0.963196
+				,0.0325057
+				,-0.890935
+				,-0.45413
+				,0
+				,-0.854507
+				,-0.510716
+				,0.0948016
+				,-0.368066
+				,-0.929692
+				,0.0141346
+				,-0.388404
+				,-0.921335
+				,0.0168349
+				,0.0592994
+				,-0.998238
+				,-0.00218043
+				,0.731654
+				,-0.667192
+				,0.139776
+				,-0.731652
+				,-0.667193
+				,0.139777
+				,-0.191517
+				,-0.981488
+				,0.00173176
+				,-0.159762
+				,-0.987149
+				,0.00365074
+				,0.458106
+				,-0.881751
+				,0.112488
+				,-0.143094
+				,-0.989153
+				,0.0331614
+				,-0.458105
+				,-0.881752
+				,0.112488
+				,0.040661
+				,-0.999173
+				,0.000383196
+				,5.4999e-008
+				,-1
+				,9.1843e-008
+				,-0.0335746
+				,-0.99943
+				,-0.00349338
+				,0.0552981
+				,-0.998072
+				,-0.0281866
+				,-0.0552977
+				,-0.998072
+				,-0.0281865
+				,0.25881
+				,-0.965914
+				,-0.00523883
+				,0.159762
+				,-0.987149
+				,-0.00365109
+				,-0.414343
+				,-0.898711
+				,-0.143659
+				,0.060247
+				,-0.998136
+				,-0.00976635
+				,0.414342
+				,-0.898712
+				,-0.143659
+				,0.411755
+				,-0.911106
+				,-0.0185516
+				,0.388405
+				,-0.921335
+				,-0.016835
+				,-0.106499
+				,-0.99431
+				,-0.00245046
+				,-0.709307
+				,-0.683536
+				,-0.172229
+				,0.709305
+				,-0.683537
+				,-0.17223
+				,0.49868
+				,-0.866619
+				,-0.0170534
+				,0.365281
+				,-0.930839
+				,-0.0103672
+				,-0.879127
+				,-0.4761
+				,0.021558
+				,0.226305
+				,-0.972273
+				,-0.0589092
+				,0.852956
+				,-0.512218
+				,-0.100492
+				,0.520794
+				,-0.853673
+				,0.00404818
+				,0.519065
+				,-0.854735
+				,-2.48577e-007
+				,-0.116763
+				,-0.993155
+				,0.00322929
+				,-0.890936
+				,-0.454128
+				,0
+				,0.890936
+				,-0.45413
+				,0
+				,0.476495
+				,-0.878946
+				,0.0201482
+				,0.365281
+				,-0.930839
+				,0.0103676
+				,-0.879612
+				,-0.475048
+				,-0.0247439
+				,0.266837
+				,-0.963193
+				,0.0325029
+				,0.854507
+				,-0.510716
+				,0.0948013
+				,0.368074
+				,-0.929689
+				,0.0141381
+				,0.388404
+				,-0.921335
+				,0.0168355
+				,-0.0592934
+				,-0.998238
+				,-0.00217865
+				,-0.731654
+				,-0.667192
+				,0.139776
+				,0.731653
+				,-0.667193
+				,0.139777
+				,0.191517
+				,-0.981488
+				,0.00173255
+				,0.159762
+				,-0.987149
+				,0.00365091
+				,-0.458107
+				,-0.881751
+				,0.112488
+				,0.143098
+				,-0.989153
+				,0.0331639
+				,0.458106
+				,-0.881751
+				,0.112488
+				,-0.0406632
+				,-0.999173
+				,0.000382581
+				,-8.49014e-008
+				,-1
+				,1.38832e-007
+				,0.0335735
+				,-0.99943
+				,-0.00349352
+				,-0.0552983
+				,-0.998072
+				,-0.0281867
+				,0.0552979
+				,-0.998072
+				,-0.0281866
+				,-0.258806
+				,-0.965915
+				,-0.00524031
+				,-0.159762
+				,-0.987149
+				,-0.00365109
+				,0.414343
+				,-0.898711
+				,-0.143658
+				,-0.0602461
+				,-0.998136
+				,-0.00976731
+				,-0.414342
+				,-0.898712
+				,-0.143658
+				,-0.411744
+				,-0.911111
+				,-0.0185533
+				,-0.388404
+				,-0.921335
+				,-0.0168355
+				,0.106503
+				,-0.994309
+				,-0.00245155
+				,0.709306
+				,-0.683536
+				,-0.17223
+				,-0.709305
+				,-0.683538
+				,-0.17223
+				,-0.498675
+				,-0.866621
+				,-0.0170543
+				,-0.365281
+				,-0.930839
+				,-0.0103677
+				,0.852957
+				,-0.512216
+				,-0.100491
+				,-0.22629
+				,-0.972277
+				,-0.0589033
+				,-0.852956
+				,-0.512218
+				,-0.100491
+				,-0.890936
+				,0.454129
+				,0
+				,-1
+				,-1.04893e-007
+				,0
+				,-0.890844
+				,0.425036
+				,0.160445
+				,-1
+				,-6.29359e-008
+				,-1.06391e-007
+				,-1
+				,-1.04893e-007
+				,0
+				,-0.890935
+				,-0.45413
+				,0
+				,-0.890843
+				,-0.425037
+				,-0.160445
+				,-1
+				,-6.29359e-008
+				,-1.06391e-007
+				,-0.890844
+				,0.425036
+				,0.160445
+				,-1
+				,-6.29359e-008
+				,-1.06391e-007
+				,-0.99997
+				,0.0054818
+				,-0.00548193
+				,-0.890936
+				,0.321118
+				,0.321118
+				,-1
+				,-6.29359e-008
+				,-1.06391e-007
+				,-0.890843
+				,-0.425037
+				,-0.160445
+				,-0.99997
+				,0.0054818
+				,-0.00548193
+				,-0.890935
+				,-0.321118
+				,-0.321119
+				,-0.890936
+				,0.321118
+				,0.321118
+				,-0.99997
+				,0.0054818
+				,-0.00548193
+				,-0.890844
+				,0.187094
+				,0.413997
+				,-1
+				,1.49846e-008
+				,-1.16881e-007
+				,-0.99997
+				,0.0054818
+				,-0.00548193
+				,-0.890935
+				,-0.321118
+				,-0.321119
+				,-0.890843
+				,-0.187095
+				,-0.413998
+				,-1
+				,1.49846e-008
+				,-1.16881e-007
+				,-0.890844
+				,0.187094
+				,0.413997
+				,-1
+				,1.49846e-008
+				,-1.16881e-007
+				,-0.99997
+				,0.00775251
+				,-1.0489e-007
+				,-0.890936
+				,0
+				,0.454129
+				,-1
+				,1.49846e-008
+				,-1.16881e-007
+				,-0.890843
+				,-0.187095
+				,-0.413998
+				,-0.99997
+				,0.00775251
+				,-1.0489e-007
+				,-0.890935
+				,0
+				,-0.45413
+				,-0.890936
+				,0
+				,0.454129
+				,-0.99997
+				,0.00775251
+				,-1.0489e-007
+				,-0.890844
+				,-0.160445
+				,0.425036
+				,-1
+				,2.27767e-007
+				,-1.49849e-008
+				,-0.99997
+				,0.00775251
+				,-1.0489e-007
+				,-0.890935
+				,0
+				,-0.45413
+				,-0.890843
+				,0.160445
+				,-0.425037
+				,-1
+				,2.27767e-007
+				,-1.49849e-008
+				,-0.890844
+				,-0.160445
+				,0.425036
+				,-1
+				,2.27767e-007
+				,-1.49849e-008
+				,-0.99997
+				,0.00548196
+				,0.00548181
+				,-0.890936
+				,-0.321117
+				,0.321117
+				,-1
+				,2.27767e-007
+				,-1.49849e-008
+				,-0.890843
+				,0.160445
+				,-0.425037
+				,-0.99997
+				,0.00548196
+				,0.00548181
+				,-0.890936
+				,0.321118
+				,-0.321118
+				,-0.890936
+				,-0.321117
+				,0.321117
+				,-0.99997
+				,0.00548196
+				,0.00548181
+				,-0.879127
+				,-0.4761
+				,0.021558
+				,-1
+				,7.49234e-008
+				,-8.99079e-008
+				,-0.99997
+				,0.00548196
+				,0.00548181
+				,-0.890936
+				,0.321118
+				,-0.321118
+				,-0.890843
+				,0.413998
+				,-0.187094
+				,-1
+				,7.49234e-008
+				,-8.99079e-008
+				,-0.879127
+				,-0.4761
+				,0.021558
+				,-1
+				,7.49234e-008
+				,-8.99079e-008
+				,-0.99997
+				,1.0489e-007
+				,0.00775245
+				,-0.890936
+				,-0.454128
+				,0
+				,-1
+				,7.49234e-008
+				,-8.99079e-008
+				,-0.890843
+				,0.413998
+				,-0.187094
+				,-0.99997
+				,1.0489e-007
+				,0.00775245
+				,-0.890936
+				,0.45413
+				,0
+				,-0.890936
+				,-0.454128
+				,0
+				,-0.99997
+				,1.0489e-007
+				,0.00775245
+				,-0.879612
+				,-0.475048
+				,-0.0247439
+				,-1
+				,7.19265e-008
+				,9.29048e-008
+				,-0.99997
+				,1.0489e-007
+				,0.00775245
+				,-0.890936
+				,0.45413
+				,0
+				,-0.890843
+				,0.425037
+				,0.160445
+				,-1
+				,7.19265e-008
+				,9.29048e-008
+				,-0.879612
+				,-0.475048
+				,-0.0247439
+				,-1
+				,7.19265e-008
+				,9.29048e-008
+				,-0.99997
+				,-0.00548177
+				,0.00548192
+				,-0.890936
+				,-0.321117
+				,-0.321117
+				,-1
+				,7.19265e-008
+				,9.29048e-008
+				,-0.890843
+				,0.425037
+				,0.160445
+				,-0.99997
+				,-0.00548177
+				,0.00548192
+				,-0.890936
+				,0.321118
+				,0.321118
+				,-0.890936
+				,-0.321117
+				,-0.321117
+				,-0.99997
+				,-0.00548177
+				,0.00548192
+				,-0.890844
+				,-0.187094
+				,-0.413997
+				,-1
+				,-8.9907e-009
+				,1.10887e-007
+				,-0.99997
+				,-0.00548177
+				,0.00548192
+				,-0.890936
+				,0.321118
+				,0.321118
+				,-0.890843
+				,0.187095
+				,0.413998
+				,-1
+				,-8.9907e-009
+				,1.10887e-007
+				,-0.890844
+				,-0.187094
+				,-0.413997
+				,-1
+				,-8.9907e-009
+				,1.10887e-007
+				,-0.99997
+				,-0.00775251
+				,1.0489e-007
+				,-0.890936
+				,0
+				,-0.454129
+				,-1
+				,-8.9907e-009
+				,1.10887e-007
+				,-0.890843
+				,0.187095
+				,0.413998
+				,-0.99997
+				,-0.00775251
+				,1.0489e-007
+				,-0.890935
+				,0
+				,0.45413
+				,-0.890936
+				,0
+				,-0.454129
+				,-0.99997
+				,-0.00775251
+				,1.0489e-007
+				,-0.890844
+				,0.160445
+				,-0.425036
+				,-1
+				,2.99681e-009
+				,1.13884e-007
+				,-0.99997
+				,-0.00775251
+				,1.0489e-007
+				,-0.890935
+				,0
+				,0.45413
+				,-0.890843
+				,-0.160445
+				,0.425037
+				,-1
+				,2.99681e-009
+				,1.13884e-007
+				,-0.890844
+				,0.160445
+				,-0.425036
+				,-1
+				,2.99681e-009
+				,1.13884e-007
+				,-0.99997
+				,-0.00548188
+				,-0.00548174
+				,-0.890936
+				,0.321118
+				,-0.321118
+				,-1
+				,2.99681e-009
+				,1.13884e-007
+				,-0.890843
+				,-0.160445
+				,0.425037
+				,-0.99997
+				,-0.00548188
+				,-0.00548174
+				,-0.890935
+				,-0.321118
+				,0.321118
+				,-0.890936
+				,0.321118
+				,-0.321118
+				,-0.99997
+				,-0.00548188
+				,-0.00548174
+				,-0.890844
+				,0.413997
+				,-0.187094
+				,-1
+				,-5.9939e-008
+				,1.04893e-007
+				,-0.99997
+				,-0.00548188
+				,-0.00548174
+				,-0.890935
+				,-0.321118
+				,0.321118
+				,-0.890843
+				,-0.413998
+				,0.187094
+				,-1
+				,-5.9939e-008
+				,1.04893e-007
+				,-0.890844
+				,0.413997
+				,-0.187094
+				,-1
+				,-5.9939e-008
+				,1.04893e-007
+				,-1
+				,-1.04893e-007
+				,0
+				,-0.890936
+				,0.454129
+				,0
+				,-1
+				,-5.9939e-008
+				,1.04893e-007
+				,-0.890843
+				,-0.413998
+				,0.187094
+				,-1
+				,-1.04893e-007
+				,0
+				,-0.890935
+				,-0.45413
+				,0
+			]
+			,"numuvcomponents": [
+				 2
+			]
+			,"texturecoords": [
+				[
+					 0.698905
+					,0.252746
+					,0.656802
+					,0.244458
+					,0.698905
+					,0.143875
+					,0.698905
+					,0.264843
+					,0.698905
+					,0.143875
+					,0.652123
+					,0.255634
+					,0.698905
+					,0.264843
+					,0.698905
+					,0.289036
+					,0.642766
+					,0.277986
+					,0.652123
+					,0.255634
+					,0.698905
+					,0.289036
+					,0.642766
+					,0.277986
+					,0.621107
+					,0.220858
+					,0.612463
+					,0.229412
+					,0.612463
+					,0.229412
+					,0.595174
+					,0.246519
+					,0.595174
+					,0.246519
+					,0.597257
+					,0.185538
+					,0.585963
+					,0.190167
+					,0.563374
+					,0.199426
+					,0.585963
+					,0.190167
+					,0.563374
+					,0.199426
+					,0.588882
+					,0.143875
+					,0.576657
+					,0.143875
+					,0.576657
+					,0.143875
+					,0.552208
+					,0.143875
+					,0.552208
+					,0.143875
+					,0.597257
+					,0.102211
+					,0.585963
+					,0.0975826
+					,0.563374
+					,0.0883241
+					,0.585963
+					,0.0975826
+					,0.563374
+					,0.0883241
+					,0.621107
+					,0.0668908
+					,0.612463
+					,0.0583378
+					,0.612463
+					,0.0583378
+					,0.595174
+					,0.0412304
+					,0.595174
+					,0.0412304
+					,0.656802
+					,0.0432907
+					,0.652123
+					,0.0321153
+					,0.642766
+					,0.00976348
+					,0.652123
+					,0.0321153
+					,0.642766
+					,0.00976348
+					,0.698905
+					,0.0350043
+					,0.698905
+					,0.0229071
+					,0.698905
+					,0.0229071
+					,0.698905
+					,-0.00128639
+					,0.698905
+					,-0.00128639
+					,0.741009
+					,0.0432907
+					,0.745687
+					,0.0321153
+					,0.755044
+					,0.00976348
+					,0.745687
+					,0.0321153
+					,0.755044
+					,0.00976348
+					,0.776703
+					,0.0668908
+					,0.785347
+					,0.0583378
+					,0.785347
+					,0.0583378
+					,0.802636
+					,0.0412304
+					,0.802636
+					,0.0412304
+					,0.800553
+					,0.102211
+					,0.811848
+					,0.0975826
+					,0.834436
+					,0.0883241
+					,0.811848
+					,0.0975826
+					,0.834436
+					,0.0883241
+					,0.808928
+					,0.143875
+					,0.821153
+					,0.143875
+					,0.821153
+					,0.143875
+					,0.845603
+					,0.143875
+					,0.845603
+					,0.143875
+					,0.800553
+					,0.185538
+					,0.811848
+					,0.190167
+					,0.834436
+					,0.199426
+					,0.811848
+					,0.190167
+					,0.834436
+					,0.199426
+					,0.776703
+					,0.220858
+					,0.785347
+					,0.229412
+					,0.785347
+					,0.229412
+					,0.802636
+					,0.246519
+					,0.802636
+					,0.246519
+					,0.741009
+					,0.244458
+					,0.745687
+					,0.255634
+					,0.755044
+					,0.277986
+					,0.745687
+					,0.255634
+					,0.755044
+					,0.277986
+					,0.443616
+					,0.222924
+					,0.443616
+					,0.00341809
+					,0.518311
+					,0.222924
+					,0.518311
+					,0.00341809
+					,0.443616
+					,0.223044
+					,0.443616
+					,0.00353873
+					,0.518311
+					,0.00353873
+					,0.518311
+					,0.223044
+					,0.443848
+					,0.222924
+					,0.443848
+					,0.00341809
+					,0.518543
+					,0.00341809
+					,0.518543
+					,0.222924
+					,0.443848
+					,0.223044
+					,0.443848
+					,0.00353873
+					,0.518543
+					,0.223044
+					,0.518543
+					,0.00353873
+					,0.442219
+					,0.222924
+					,0.442219
+					,0.00341809
+					,0.516915
+					,0.222924
+					,0.516915
+					,0.00341809
+					,0.442219
+					,0.223044
+					,0.442219
+					,0.00353873
+					,0.516915
+					,0.00353873
+					,0.516915
+					,0.223044
+					,0.442452
+					,0.222924
+					,0.442452
+					,0.00341809
+					,0.517147
+					,0.00341809
+					,0.517147
+					,0.222924
+					,0.442452
+					,0.223044
+					,0.442452
+					,0.00353873
+					,0.517147
+					,0.223044
+					,0.517147
+					,0.00353873
+					,0.442685
+					,0.222924
+					,0.442685
+					,0.00341809
+					,0.51738
+					,0.222924
+					,0.51738
+					,0.00341809
+					,0.442685
+					,0.223044
+					,0.442685
+					,0.00353873
+					,0.51738
+					,0.00353873
+					,0.51738
+					,0.223044
+					,0.442918
+					,0.222924
+					,0.442918
+					,0.00341809
+					,0.517613
+					,0.00341809
+					,0.517613
+					,0.222924
+					,0.442918
+					,0.223044
+					,0.442918
+					,0.00353873
+					,0.517613
+					,0.223044
+					,0.517613
+					,0.00353873
+					,0.44315
+					,0.222924
+					,0.44315
+					,0.00341809
+					,0.517846
+					,0.222924
+					,0.517846
+					,0.00341809
+					,0.44315
+					,0.223044
+					,0.44315
+					,0.00353873
+					,0.517846
+					,0.00353873
+					,0.517846
+					,0.223044
+					,0.443383
+					,0.222924
+					,0.443383
+					,0.00341809
+					,0.518078
+					,0.00341809
+					,0.518078
+					,0.222924
+					,0.443383
+					,0.223044
+					,0.443383
+					,0.00353873
+					,0.518078
+					,0.223044
+					,0.518078
+					,0.00353873
+					,0.443615
+					,0.222924
+					,0.443615
+					,0.00341809
+					,0.518311
+					,0.222924
+					,0.518311
+					,0.00341809
+					,0.443615
+					,0.223044
+					,0.443615
+					,0.00353873
+					,0.518311
+					,0.00353873
+					,0.518311
+					,0.223044
+					,0.443848
+					,0.222924
+					,0.443848
+					,0.00341809
+					,0.518543
+					,0.00341809
+					,0.518543
+					,0.222924
+					,0.443848
+					,0.223044
+					,0.443848
+					,0.00353873
+					,0.518543
+					,0.223044
+					,0.518543
+					,0.00353873
+					,0.442219
+					,0.222924
+					,0.442219
+					,0.00341809
+					,0.516915
+					,0.222924
+					,0.516915
+					,0.00341809
+					,0.442219
+					,0.223044
+					,0.442219
+					,0.00353873
+					,0.516915
+					,0.00353873
+					,0.516915
+					,0.223044
+					,0.442452
+					,0.222924
+					,0.442452
+					,0.00341809
+					,0.517147
+					,0.00341809
+					,0.517147
+					,0.222924
+					,0.442452
+					,0.223044
+					,0.442452
+					,0.00353873
+					,0.517147
+					,0.223044
+					,0.517147
+					,0.00353873
+					,0.442685
+					,0.222924
+					,0.442685
+					,0.00341809
+					,0.51738
+					,0.222924
+					,0.51738
+					,0.00341809
+					,0.442685
+					,0.223044
+					,0.442685
+					,0.00353873
+					,0.51738
+					,0.00353873
+					,0.51738
+					,0.223044
+					,0.442918
+					,0.222924
+					,0.442918
+					,0.00341809
+					,0.517613
+					,0.00341809
+					,0.517613
+					,0.222924
+					,0.442918
+					,0.223044
+					,0.442918
+					,0.00353873
+					,0.517613
+					,0.223044
+					,0.517613
+					,0.00353873
+					,0.44315
+					,0.222924
+					,0.44315
+					,0.00341809
+					,0.517845
+					,0.222924
+					,0.517845
+					,0.00341809
+					,0.44315
+					,0.223044
+					,0.44315
+					,0.00353873
+					,0.517845
+					,0.00353873
+					,0.517845
+					,0.223044
+					,0.443383
+					,0.222924
+					,0.443383
+					,0.00341809
+					,0.518078
+					,0.00341809
+					,0.518078
+					,0.222924
+					,0.443383
+					,0.223044
+					,0.443383
+					,0.00353873
+					,0.518078
+					,0.223044
+					,0.518078
+					,0.00353873
+					,0.698905
+					,0.143875
+					,0.656802
+					,0.244458
+					,0.698905
+					,0.252746
+					,0.652123
+					,0.255634
+					,0.698905
+					,0.143875
+					,0.698905
+					,0.264843
+					,0.642766
+					,0.277986
+					,0.698905
+					,0.289036
+					,0.698905
+					,0.264843
+					,0.652123
+					,0.255634
+					,0.642766
+					,0.277986
+					,0.698905
+					,0.289036
+					,0.621107
+					,0.220858
+					,0.612463
+					,0.229412
+					,0.612463
+					,0.229412
+					,0.595174
+					,0.246519
+					,0.595174
+					,0.246519
+					,0.597257
+					,0.185538
+					,0.585963
+					,0.190167
+					,0.563374
+					,0.199426
+					,0.585963
+					,0.190167
+					,0.563374
+					,0.199426
+					,0.588882
+					,0.143875
+					,0.576657
+					,0.143875
+					,0.576657
+					,0.143875
+					,0.552208
+					,0.143875
+					,0.552208
+					,0.143875
+					,0.597257
+					,0.102211
+					,0.585963
+					,0.0975826
+					,0.563374
+					,0.0883241
+					,0.585963
+					,0.0975826
+					,0.563374
+					,0.0883241
+					,0.621107
+					,0.0668908
+					,0.612463
+					,0.0583378
+					,0.612463
+					,0.0583378
+					,0.595174
+					,0.0412304
+					,0.595174
+					,0.0412304
+					,0.656802
+					,0.0432907
+					,0.652123
+					,0.0321153
+					,0.642766
+					,0.00976348
+					,0.652123
+					,0.0321153
+					,0.642766
+					,0.00976348
+					,0.698905
+					,0.0350043
+					,0.698905
+					,0.0229071
+					,0.698905
+					,0.0229071
+					,0.698905
+					,-0.00128639
+					,0.698905
+					,-0.00128639
+					,0.741009
+					,0.0432907
+					,0.745687
+					,0.0321153
+					,0.755044
+					,0.00976348
+					,0.745687
+					,0.0321153
+					,0.755044
+					,0.00976348
+					,0.776703
+					,0.0668908
+					,0.785347
+					,0.0583378
+					,0.785347
+					,0.0583378
+					,0.802636
+					,0.0412304
+					,0.802636
+					,0.0412304
+					,0.800553
+					,0.102211
+					,0.811848
+					,0.0975826
+					,0.834436
+					,0.0883241
+					,0.811848
+					,0.0975826
+					,0.834436
+					,0.0883241
+					,0.808928
+					,0.143875
+					,0.821153
+					,0.143875
+					,0.821153
+					,0.143875
+					,0.845603
+					,0.143875
+					,0.845603
+					,0.143875
+					,0.800553
+					,0.185538
+					,0.811848
+					,0.190167
+					,0.834436
+					,0.199426
+					,0.811848
+					,0.190167
+					,0.834436
+					,0.199426
+					,0.776703
+					,0.220858
+					,0.785347
+					,0.229412
+					,0.785347
+					,0.229412
+					,0.802636
+					,0.246519
+					,0.802636
+					,0.246519
+					,0.741009
+					,0.244458
+					,0.745687
+					,0.255634
+					,0.755044
+					,0.277986
+					,0.745687
+					,0.255634
+					,0.755044
+					,0.277986
+					,0.518311
+					,0.222924
+					,0.443616
+					,0.00341809
+					,0.443616
+					,0.222924
+					,0.518311
+					,0.00341809
+					,0.518311
+					,0.00353873
+					,0.443616
+					,0.00353873
+					,0.443616
+					,0.223044
+					,0.518311
+					,0.223044
+					,0.518543
+					,0.00341809
+					,0.443848
+					,0.00341809
+					,0.443848
+					,0.222924
+					,0.518543
+					,0.222924
+					,0.518543
+					,0.223044
+					,0.443848
+					,0.00353873
+					,0.443848
+					,0.223044
+					,0.518543
+					,0.00353873
+					,0.516915
+					,0.222924
+					,0.442219
+					,0.00341809
+					,0.442219
+					,0.222924
+					,0.516915
+					,0.00341809
+					,0.516915
+					,0.00353873
+					,0.442219
+					,0.00353873
+					,0.442219
+					,0.223044
+					,0.516915
+					,0.223044
+					,0.517147
+					,0.00341809
+					,0.442452
+					,0.00341809
+					,0.442452
+					,0.222924
+					,0.517147
+					,0.222924
+					,0.517147
+					,0.223044
+					,0.442452
+					,0.00353873
+					,0.442452
+					,0.223044
+					,0.517147
+					,0.00353873
+					,0.51738
+					,0.222924
+					,0.442685
+					,0.00341809
+					,0.442685
+					,0.222924
+					,0.51738
+					,0.00341809
+					,0.51738
+					,0.00353873
+					,0.442685
+					,0.00353873
+					,0.442685
+					,0.223044
+					,0.51738
+					,0.223044
+					,0.517613
+					,0.00341809
+					,0.442918
+					,0.00341809
+					,0.442918
+					,0.222924
+					,0.517613
+					,0.222924
+					,0.517613
+					,0.223044
+					,0.442918
+					,0.00353873
+					,0.442918
+					,0.223044
+					,0.517613
+					,0.00353873
+					,0.517846
+					,0.222924
+					,0.44315
+					,0.00341809
+					,0.44315
+					,0.222924
+					,0.517846
+					,0.00341809
+					,0.517846
+					,0.00353873
+					,0.44315
+					,0.00353873
+					,0.44315
+					,0.223044
+					,0.517846
+					,0.223044
+					,0.518078
+					,0.00341809
+					,0.443383
+					,0.00341809
+					,0.443383
+					,0.222924
+					,0.518078
+					,0.222924
+					,0.518078
+					,0.223044
+					,0.443383
+					,0.00353873
+					,0.443383
+					,0.223044
+					,0.518078
+					,0.00353873
+					,0.518311
+					,0.222924
+					,0.443615
+					,0.00341809
+					,0.443615
+					,0.222924
+					,0.518311
+					,0.00341809
+					,0.518311
+					,0.00353873
+					,0.443615
+					,0.00353873
+					,0.443615
+					,0.223044
+					,0.518311
+					,0.223044
+					,0.518543
+					,0.00341809
+					,0.443848
+					,0.00341809
+					,0.443848
+					,0.222924
+					,0.518543
+					,0.222924
+					,0.518543
+					,0.223044
+					,0.443848
+					,0.00353873
+					,0.443848
+					,0.223044
+					,0.518543
+					,0.00353873
+					,0.516915
+					,0.222924
+					,0.442219
+					,0.00341809
+					,0.442219
+					,0.222924
+					,0.516915
+					,0.00341809
+					,0.516915
+					,0.00353873
+					,0.442219
+					,0.00353873
+					,0.442219
+					,0.223044
+					,0.516915
+					,0.223044
+					,0.517147
+					,0.00341809
+					,0.442452
+					,0.00341809
+					,0.442452
+					,0.222924
+					,0.517147
+					,0.222924
+					,0.517147
+					,0.223044
+					,0.442452
+					,0.00353873
+					,0.442452
+					,0.223044
+					,0.517147
+					,0.00353873
+					,0.51738
+					,0.222924
+					,0.442685
+					,0.00341809
+					,0.442685
+					,0.222924
+					,0.51738
+					,0.00341809
+					,0.51738
+					,0.00353873
+					,0.442685
+					,0.00353873
+					,0.442685
+					,0.223044
+					,0.51738
+					,0.223044
+					,0.517613
+					,0.00341809
+					,0.442918
+					,0.00341809
+					,0.442918
+					,0.222924
+					,0.517613
+					,0.222924
+					,0.517613
+					,0.223044
+					,0.442918
+					,0.00353873
+					,0.442918
+					,0.223044
+					,0.517613
+					,0.00353873
+					,0.517845
+					,0.222924
+					,0.44315
+					,0.00341809
+					,0.44315
+					,0.222924
+					,0.517845
+					,0.00341809
+					,0.517845
+					,0.00353873
+					,0.44315
+					,0.00353873
+					,0.44315
+					,0.223044
+					,0.517845
+					,0.223044
+					,0.518078
+					,0.00341809
+					,0.443383
+					,0.00341809
+					,0.443383
+					,0.222924
+					,0.518078
+					,0.222924
+					,0.518078
+					,0.223044
+					,0.443383
+					,0.00353873
+					,0.443383
+					,0.223044
+					,0.518078
+					,0.00353873
+					,0.698905
+					,0.143875
+					,0.656802
+					,0.244458
+					,0.698905
+					,0.252746
+					,0.652123
+					,0.255634
+					,0.698905
+					,0.143875
+					,0.698905
+					,0.264843
+					,0.642766
+					,0.277986
+					,0.698905
+					,0.289036
+					,0.698905
+					,0.264843
+					,0.652123
+					,0.255634
+					,0.642766
+					,0.277986
+					,0.698905
+					,0.289036
+					,0.621107
+					,0.220858
+					,0.612463
+					,0.229412
+					,0.612463
+					,0.229412
+					,0.595174
+					,0.246519
+					,0.595174
+					,0.246519
+					,0.597257
+					,0.185538
+					,0.585963
+					,0.190167
+					,0.563374
+					,0.199426
+					,0.585963
+					,0.190167
+					,0.563374
+					,0.199426
+					,0.588882
+					,0.143875
+					,0.576657
+					,0.143875
+					,0.576657
+					,0.143875
+					,0.552208
+					,0.143875
+					,0.552208
+					,0.143875
+					,0.597257
+					,0.102211
+					,0.585963
+					,0.0975826
+					,0.563374
+					,0.0883241
+					,0.585963
+					,0.0975826
+					,0.563374
+					,0.0883241
+					,0.621107
+					,0.0668908
+					,0.612463
+					,0.0583378
+					,0.612463
+					,0.0583378
+					,0.595174
+					,0.0412304
+					,0.595174
+					,0.0412304
+					,0.656802
+					,0.0432907
+					,0.652123
+					,0.0321153
+					,0.642766
+					,0.00976348
+					,0.652123
+					,0.0321153
+					,0.642766
+					,0.00976348
+					,0.698905
+					,0.0350043
+					,0.698905
+					,0.0229071
+					,0.698905
+					,0.0229071
+					,0.698905
+					,-0.00128639
+					,0.698905
+					,-0.00128639
+					,0.741009
+					,0.0432907
+					,0.745687
+					,0.0321153
+					,0.755044
+					,0.00976348
+					,0.745687
+					,0.0321153
+					,0.755044
+					,0.00976348
+					,0.776703
+					,0.0668908
+					,0.785347
+					,0.0583378
+					,0.785347
+					,0.0583378
+					,0.802636
+					,0.0412304
+					,0.802636
+					,0.0412304
+					,0.800553
+					,0.102211
+					,0.811848
+					,0.0975826
+					,0.834436
+					,0.0883241
+					,0.811848
+					,0.0975826
+					,0.834436
+					,0.0883241
+					,0.808928
+					,0.143875
+					,0.821153
+					,0.143875
+					,0.821153
+					,0.143875
+					,0.845603
+					,0.143875
+					,0.845603
+					,0.143875
+					,0.800553
+					,0.185538
+					,0.811848
+					,0.190167
+					,0.834436
+					,0.199426
+					,0.811848
+					,0.190167
+					,0.834436
+					,0.199426
+					,0.776703
+					,0.220858
+					,0.785347
+					,0.229412
+					,0.785347
+					,0.229412
+					,0.802636
+					,0.246519
+					,0.802636
+					,0.246519
+					,0.741009
+					,0.244458
+					,0.745687
+					,0.255634
+					,0.755044
+					,0.277986
+					,0.745687
+					,0.255634
+					,0.755044
+					,0.277986
+					,0.518311
+					,0.222924
+					,0.443616
+					,0.00341809
+					,0.443616
+					,0.222924
+					,0.518311
+					,0.00341809
+					,0.518311
+					,0.00353873
+					,0.443616
+					,0.00353873
+					,0.443616
+					,0.223044
+					,0.518311
+					,0.223044
+					,0.518543
+					,0.00341809
+					,0.443848
+					,0.00341809
+					,0.443848
+					,0.222924
+					,0.518543
+					,0.222924
+					,0.518543
+					,0.223044
+					,0.443848
+					,0.00353873
+					,0.443848
+					,0.223044
+					,0.518543
+					,0.00353873
+					,0.516915
+					,0.222924
+					,0.442219
+					,0.00341809
+					,0.442219
+					,0.222924
+					,0.516915
+					,0.00341809
+					,0.516915
+					,0.00353873
+					,0.442219
+					,0.00353873
+					,0.442219
+					,0.223044
+					,0.516915
+					,0.223044
+					,0.517147
+					,0.00341809
+					,0.442452
+					,0.00341809
+					,0.442452
+					,0.222924
+					,0.517147
+					,0.222924
+					,0.517147
+					,0.223044
+					,0.442452
+					,0.00353873
+					,0.442452
+					,0.223044
+					,0.517147
+					,0.00353873
+					,0.51738
+					,0.222924
+					,0.442685
+					,0.00341809
+					,0.442685
+					,0.222924
+					,0.51738
+					,0.00341809
+					,0.51738
+					,0.00353873
+					,0.442685
+					,0.00353873
+					,0.442685
+					,0.223044
+					,0.51738
+					,0.223044
+					,0.517613
+					,0.00341809
+					,0.442918
+					,0.00341809
+					,0.442918
+					,0.222924
+					,0.517613
+					,0.222924
+					,0.517613
+					,0.223044
+					,0.442918
+					,0.00353873
+					,0.442918
+					,0.223044
+					,0.517613
+					,0.00353873
+					,0.517846
+					,0.222924
+					,0.44315
+					,0.00341809
+					,0.44315
+					,0.222924
+					,0.517846
+					,0.00341809
+					,0.517846
+					,0.00353873
+					,0.44315
+					,0.00353873
+					,0.44315
+					,0.223044
+					,0.517846
+					,0.223044
+					,0.518078
+					,0.00341809
+					,0.443383
+					,0.00341809
+					,0.443383
+					,0.222924
+					,0.518078
+					,0.222924
+					,0.518078
+					,0.223044
+					,0.443383
+					,0.00353873
+					,0.443383
+					,0.223044
+					,0.518078
+					,0.00353873
+					,0.518311
+					,0.222924
+					,0.443615
+					,0.00341809
+					,0.443615
+					,0.222924
+					,0.518311
+					,0.00341809
+					,0.518311
+					,0.00353873
+					,0.443615
+					,0.00353873
+					,0.443615
+					,0.223044
+					,0.518311
+					,0.223044
+					,0.518543
+					,0.00341809
+					,0.443848
+					,0.00341809
+					,0.443848
+					,0.222924
+					,0.518543
+					,0.222924
+					,0.518543
+					,0.223044
+					,0.443848
+					,0.00353873
+					,0.443848
+					,0.223044
+					,0.518543
+					,0.00353873
+					,0.516915
+					,0.222924
+					,0.442219
+					,0.00341809
+					,0.442219
+					,0.222924
+					,0.516915
+					,0.00341809
+					,0.516915
+					,0.00353873
+					,0.442219
+					,0.00353873
+					,0.442219
+					,0.223044
+					,0.516915
+					,0.223044
+					,0.517147
+					,0.00341809
+					,0.442452
+					,0.00341809
+					,0.442452
+					,0.222924
+					,0.517147
+					,0.222924
+					,0.517147
+					,0.223044
+					,0.442452
+					,0.00353873
+					,0.442452
+					,0.223044
+					,0.517147
+					,0.00353873
+					,0.51738
+					,0.222924
+					,0.442685
+					,0.00341809
+					,0.442685
+					,0.222924
+					,0.51738
+					,0.00341809
+					,0.51738
+					,0.00353873
+					,0.442685
+					,0.00353873
+					,0.442685
+					,0.223044
+					,0.51738
+					,0.223044
+					,0.517613
+					,0.00341809
+					,0.442918
+					,0.00341809
+					,0.442918
+					,0.222924
+					,0.517613
+					,0.222924
+					,0.517613
+					,0.223044
+					,0.442918
+					,0.00353873
+					,0.442918
+					,0.223044
+					,0.517613
+					,0.00353873
+					,0.517845
+					,0.222924
+					,0.44315
+					,0.00341809
+					,0.44315
+					,0.222924
+					,0.517845
+					,0.00341809
+					,0.517845
+					,0.00353873
+					,0.44315
+					,0.00353873
+					,0.44315
+					,0.223044
+					,0.517845
+					,0.223044
+					,0.518078
+					,0.00341809
+					,0.443383
+					,0.00341809
+					,0.443383
+					,0.222924
+					,0.518078
+					,0.222924
+					,0.518078
+					,0.223044
+					,0.443383
+					,0.00353873
+					,0.443383
+					,0.223044
+					,0.518078
+					,0.00353873
+					,0.881113
+					,0.00552255
+					,0.839638
+					,0.00910175
+					,0.868919
+					,0.178103
+					,0.857345
+					,0.179102
+					,0.868919
+					,0.178103
+					,0.857345
+					,0.179102
+					,0.881113
+					,0.00552255
+					,0.839638
+					,0.00910175
+					,0.868919
+					,0.178103
+					,0.881113
+					,0.00552255
+					,0.868919
+					,0.178103
+					,0.881113
+					,0.00552255
+					,0.839638
+					,0.00910175
+					,0.857345
+					,0.179102
+					,0.839638
+					,0.00910175
+					,0.857345
+					,0.179102
+					,0.882347
+					,0.117749
+					,0.940844
+					,0.117749
+					,0.882347
+					,0.180999
+					,0.940844
+					,0.180999
+					,0.889187
+					,0.237412
+					,0.917062
+					,0.237412
+					,0.895626
+					,0.237412
+					,0.923501
+					,0.237412
+					,0.89451
+					,0.180999
+					,0.953007
+					,0.180999
+					,0.89451
+					,0.117749
+					,0.953007
+					,0.117749
+					,0.894803
+					,0.0530801
+					,0.923672
+					,0.0530801
+					,0.888641
+					,0.0530801
+					,0.917509
+					,0.0530801
+					,0.882347
+					,0.117749
+					,0.882347
+					,0.180999
+					,0.953007
+					,0.117749
+					,0.953007
+					,0.180999
+					,0.889187
+					,0.237412
+					,0.917062
+					,0.237412
+					,0.889187
+					,0.237412
+					,0.917062
+					,0.237412
+					,0.953007
+					,0.180999
+					,0.923501
+					,0.237412
+					,0.888641
+					,0.0530801
+					,0.923672
+					,0.0530801
+					,0.917509
+					,0.0530801
+					,0.888641
+					,0.0530801
+					,0.868919
+					,0.178103
+					,0.839638
+					,0.00910175
+					,0.881113
+					,0.00552255
+					,0.857345
+					,0.179102
+					,0.881113
+					,0.00552255
+					,0.857345
+					,0.179102
+					,0.868919
+					,0.178103
+					,0.839638
+					,0.00910175
+					,0.868919
+					,0.178103
+					,0.881113
+					,0.00552255
+					,0.868919
+					,0.178103
+					,0.881113
+					,0.00552255
+					,0.839638
+					,0.00910175
+					,0.857345
+					,0.179102
+					,0.839638
+					,0.00910175
+					,0.857345
+					,0.179102
+					,0.882347
+					,0.180999
+					,0.940844
+					,0.117749
+					,0.882347
+					,0.117749
+					,0.940844
+					,0.180999
+					,0.895626
+					,0.237412
+					,0.917062
+					,0.237412
+					,0.889187
+					,0.237412
+					,0.923501
+					,0.237412
+					,0.89451
+					,0.117749
+					,0.953007
+					,0.180999
+					,0.89451
+					,0.180999
+					,0.953007
+					,0.117749
+					,0.888641
+					,0.0530801
+					,0.923672
+					,0.0530801
+					,0.894803
+					,0.0530801
+					,0.917509
+					,0.0530801
+					,0.882347
+					,0.117749
+					,0.882347
+					,0.180999
+					,0.953007
+					,0.117749
+					,0.953007
+					,0.180999
+					,0.889187
+					,0.237412
+					,0.917062
+					,0.237412
+					,0.895626
+					,0.237412
+					,0.889187
+					,0.237412
+					,0.953007
+					,0.180999
+					,0.923501
+					,0.237412
+					,0.895626
+					,0.237412
+					,0.894803
+					,0.0530801
+					,0.923672
+					,0.0530801
+					,0.888641
+					,0.0530801
+					,0.894803
+					,0.0530801
+					,0.888641
+					,0.0530801
+					,0.774877
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.945384
+					,0.949326
+					,0.945384
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.412102
+					,0.00402963
+					,0.412102
+					,0.084874
+					,0.412102
+					,0.114572
+					,0.412102
+					,0.0914736
+					,0.412102
+					,0.00402963
+					,0.412102
+					,0.226764
+					,0.412102
+					,0.213565
+					,0.260028
+					,0.00402963
+					,0.260028
+					,0.0848737
+					,0.412102
+					,0.084874
+					,0.260028
+					,0.114572
+					,0.412102
+					,0.114572
+					,0.412102
+					,0.114572
+					,0.260028
+					,0.114572
+					,0.260028
+					,0.0914732
+					,0.412102
+					,0.0914736
+					,0.412102
+					,0.0914736
+					,0.260028
+					,0.0914732
+					,0.260028
+					,0.226763
+					,0.412102
+					,0.226764
+					,0.412102
+					,0.226764
+					,0.260028
+					,0.226763
+					,0.260028
+					,0.213564
+					,0.412102
+					,0.213565
+					,0.412102
+					,0.213565
+					,0.260028
+					,0.213564
+					,0.260028
+					,0.00402963
+					,0.412102
+					,0.00402963
+					,0.260028
+					,0.114572
+					,0.260028
+					,0.0914732
+					,0.260028
+					,0.00402963
+					,0.260028
+					,0.213564
+					,0.260028
+					,0.226763
+					,0.934784
+					,0.326831
+					,0.934784
+					,0.457182
+					,0.923294
+					,0.326831
+					,0.923294
+					,0.457181
+					,0.900312
+					,0.457181
+					,0.900312
+					,0.326831
+					,0.888821
+					,0.326831
+					,0.888821
+					,0.457182
+					,0.888821
+					,0.326831
+					,0.888821
+					,0.457182
+					,0.900312
+					,0.457181
+					,0.900312
+					,0.326831
+					,0.923294
+					,0.326831
+					,0.923294
+					,0.457181
+					,0.934784
+					,0.457182
+					,0.934784
+					,0.326831
+					,0.904413
+					,0.513888
+					,0.915458
+					,0.51653
+					,0.882322
+					,0.508605
+					,0.871275
+					,0.505963
+					,0.882322
+					,0.508605
+					,0.871275
+					,0.505963
+					,0.904413
+					,0.513889
+					,0.915458
+					,0.51653
+					,0.876093
+					,0.546958
+					,0.883169
+					,0.55451
+					,0.861946
+					,0.531853
+					,0.854868
+					,0.5243
+					,0.861946
+					,0.531853
+					,0.854868
+					,0.5243
+					,0.876093
+					,0.546958
+					,0.883169
+					,0.55451
+					,0.841382
+					,0.561143
+					,0.843576
+					,0.570551
+					,0.836998
+					,0.542327
+					,0.834804
+					,0.532916
+					,0.836998
+					,0.542327
+					,0.834804
+					,0.532916
+					,0.841382
+					,0.561143
+					,0.843576
+					,0.570551
+					,0.802411
+					,0.564268
+					,0.802411
+					,0.573848
+					,0.802411
+					,0.545101
+					,0.802411
+					,0.535515
+					,0.802411
+					,0.545101
+					,0.802411
+					,0.535515
+					,0.802411
+					,0.564268
+					,0.802411
+					,0.573848
+					,0.90039
+					,0.326536
+					,0.900391
+					,0.456899
+					,0.888511
+					,0.456899
+					,0.88851
+					,0.326536
+					,0.92416
+					,0.326536
+					,0.92416
+					,0.456899
+					,0.936051
+					,0.326536
+					,0.936049
+					,0.456899
+					,0.92416
+					,0.326536
+					,0.924161
+					,0.456899
+					,0.936049
+					,0.456899
+					,0.936051
+					,0.326536
+					,0.900389
+					,0.326536
+					,0.900392
+					,0.456899
+					,0.88851
+					,0.326536
+					,0.888511
+					,0.456899
+					,0.850181
+					,0.485973
+					,0.850181
+					,0.480371
+					,0.834052
+					,0.45498
+					,0.834052
+					,0.449378
+					,0.834052
+					,0.45498
+					,0.834052
+					,0.449378
+					,0.801794
+					,0.449378
+					,0.801794
+					,0.45498
+					,0.801794
+					,0.45498
+					,0.801794
+					,0.449378
+					,0.785665
+					,0.485973
+					,0.785665
+					,0.480371
+					,0.785665
+					,0.485973
+					,0.785665
+					,0.480371
+					,0.801794
+					,0.511362
+					,0.801794
+					,0.516966
+					,0.801794
+					,0.516966
+					,0.801794
+					,0.511362
+					,0.834052
+					,0.516966
+					,0.834052
+					,0.511362
+					,0.834052
+					,0.516966
+					,0.834052
+					,0.511362
+					,0.850181
+					,0.480371
+					,0.850181
+					,0.485973
+					,0.897263
+					,0.710387
+					,0.897263
+					,0.762724
+					,0.88181
+					,0.710387
+					,0.88181
+					,0.762724
+					,0.866044
+					,0.762724
+					,0.866044
+					,0.710387
+					,0.850278
+					,0.710387
+					,0.850278
+					,0.762724
+					,0.834825
+					,0.762724
+					,0.834825
+					,0.710387
+					,0.819372
+					,0.710387
+					,0.819372
+					,0.762724
+					,0.944248
+					,0.710387
+					,0.944248
+					,0.762724
+					,0.928482
+					,0.762724
+					,0.928482
+					,0.710387
+					,0.912716
+					,0.710387
+					,0.912716
+					,0.762724
+					,0.897263
+					,0.666883
+					,0.882402
+					,0.666883
+					,0.866044
+					,0.666883
+					,0.849686
+					,0.666883
+					,0.834825
+					,0.666883
+					,0.819964
+					,0.666883
+					,0.94484
+					,0.666883
+					,0.928482
+					,0.666883
+					,0.912124
+					,0.666883
+					,0.897263
+					,0.584536
+					,0.882402
+					,0.584536
+					,0.866044
+					,0.584536
+					,0.849686
+					,0.584536
+					,0.834825
+					,0.584536
+					,0.819965
+					,0.584536
+					,0.944902
+					,0.584536
+					,0.944901
+					,0.666883
+					,0.928543
+					,0.666883
+					,0.944841
+					,0.584536
+					,0.928482
+					,0.584536
+					,0.912124
+					,0.584536
+					,0.740601
+					,0.58462
+					,0.740601
+					,0.58462
+					,0.786603
+					,0.58462
+					,0.791533
+					,0.59326
+					,0.791532
+					,0.59326
+					,0.809605
+					,0.602334
+					,0.740601
+					,0.58462
+					,0.786603
+					,0.58462
+					,0.740601
+					,0.759979
+					,0.791533
+					,0.59326
+					,0.786603
+					,0.667429
+					,0.809605
+					,0.602334
+					,0.809605
+					,0.658483
+					,0.813438
+					,0.759979
+					,0.786603
+					,0.58462
+					,0.809605
+					,0.602334
+					,0.809605
+					,0.658483
+					,0.809605
+					,0.658483
+					,0.786603
+					,0.667429
+					,0.786603
+					,0.667429
+					,0.786603
+					,0.667429
+					,0.786603
+					,0.667429
+					,0.813438
+					,0.759979
+					,0.813438
+					,0.759979
+					,0.740601
+					,0.759979
+					,0.786603
+					,0.667429
+					,0.791532
+					,0.59326
+					,0.809605
+					,0.602334
+					,0.813438
+					,0.759979
+					,0.88398
+					,0.278045
+					,0.913166
+					,0.278045
+					,0.898573
+					,0.306463
+					,0.927758
+					,0.306463
+					,0.942351
+					,0.278045
+					,0.927758
+					,0.249627
+					,0.898573
+					,0.249627
+					,0.802552
+					,0.280318
+					,0.802552
+					,0.280318
+					,0.821754
+					,0.316417
+					,0.821754
+					,0.316417
+					,0.860156
+					,0.316417
+					,0.860156
+					,0.316417
+					,0.879357
+					,0.280318
+					,0.879357
+					,0.280318
+					,0.879357
+					,0.280318
+					,0.879357
+					,0.280318
+					,0.860156
+					,0.24422
+					,0.860156
+					,0.24422
+					,0.821754
+					,0.24422
+					,0.821754
+					,0.24422
+					,0.802552
+					,0.280318
+					,0.802552
+					,0.280318
+					,0.690331
+					,0.37869
+					,0.690331
+					,0.324926
+					,0.879271
+					,0.37869
+					,0.879271
+					,0.324926
+					,0.689568
+					,0.435519
+					,0.689568
+					,0.389436
+					,0.880044
+					,0.435519
+					,0.880044
+					,0.389436
+					,0.689568
+					,0.435519
+					,0.689568
+					,0.389436
+					,0.880044
+					,0.435519
+					,0.880044
+					,0.389436
+					,0.689568
+					,0.435519
+					,0.689568
+					,0.389436
+					,0.880044
+					,0.435519
+					,0.880044
+					,0.389436
+					,0.689568
+					,0.435519
+					,0.689568
+					,0.389436
+					,0.880044
+					,0.435519
+					,0.880044
+					,0.389436
+					,0.200805
+					,0.222353
+					,0.000555187
+					,0.222353
+					,0.000555187
+					,0.150136
+					,0.200805
+					,0.150137
+					,0.251093
+					,0.221904
+					,0.251093
+					,0.184906
+					,0.430837
+					,0.764583
+					,0.252311
+					,0.764583
+					,0.252311
+					,0.773707
+					,0.430837
+					,0.773707
+					,0.430837
+					,0.618906
+					,0.252311
+					,0.618906
+					,0.430837
+					,0.497254
+					,0.252311
+					,0.497255
+					,0.252311
+					,0.798037
+					,0.430837
+					,0.798037
+					,0.252311
+					,0.85278
+					,0.430837
+					,0.85278
+					,0.252311
+					,0.902961
+					,0.430837
+					,0.902961
+					,0.252311
+					,0.940977
+					,0.430837
+					,0.940977
+					,0.252311
+					,1.00302
+					,0.430837
+					,0.978689
+					,0.430837
+					,0.451078
+					,0.252311
+					,0.451078
+					,0.430837
+					,0.321949
+					,0.252311
+					,0.321948
+					,0.430837
+					,0.254156
+					,0.252311
+					,0.235907
+					,-0.000121474
+					,0.0662142
+					,0.250417
+					,0.0662137
+					,0.250417
+					,0.142609
+					,-0.000121474
+					,0.14261
+					,-0.000121474
+					,0.00445557
+					,0.250417
+					,0.00445557
+					,0.958071
+					,0.733892
+					,0.955088
+					,0.533297
+					,0.953598
+					,0.719772
+					,0.944924
+					,0.533379
+					,0.942914
+					,0.359587
+					,0.947905
+					,0.361242
+					,0.972912
+					,0.789288
+					,0.958318
+					,0.640138
+					,0.957768
+					,0.419173
+					,0.969043
+					,0.719585
+					,0.981608
+					,0.828875
+					,0.998491
+					,0.828826
+					,0.9662
+					,0.938129
+					,0.982997
+					,0.943179
+					,0.919602
+					,0.999998
+					,0.966293
+					,0.367036
+					,0.953181
+					,0.29362
+					,0.972619
+					,0.219828
+					,0.95668
+					,0.109144
+					,0.973786
+					,0.109144
+					,0.964066
+					,0.0122942
+					,0.971064
+					,0.00306976
+					,0.910934
+					,0.98652
+					,0.526618
+					,0.734238
+					,0.436489
+					,0.749387
+					,0.436489
+					,0.758476
+					,0.526618
+					,0.744085
+					,0.526618
+					,0.604265
+					,0.436489
+					,0.604265
+					,0.526618
+					,0.483078
+					,0.436489
+					,0.483078
+					,0.436489
+					,0.782713
+					,0.526618
+					,0.782713
+					,0.526618
+					,0.678709
+					,0.436489
+					,0.678709
+					,0.436489
+					,0.524628
+					,0.526618
+					,0.524628
+					,0.526618
+					,0.734108
+					,0.436489
+					,0.734108
+					,0.436489
+					,0.837247
+					,0.526618
+					,0.810317
+					,0.526618
+					,0.810282
+					,0.436489
+					,0.810282
+					,0.436489
+					,0.887236
+					,0.526618
+					,0.886501
+					,0.436489
+					,0.88992
+					,0.526618
+					,0.890022
+					,0.436489
+					,0.947051
+					,0.436489
+					,0.925107
+					,0.526618
+					,0.920244
+					,0.526618
+					,0.929642
+					,0.481954
+					,0.969777
+					,0.441162
+					,0.996667
+					,0.436489
+					,0.962675
+					,0.481954
+					,0.969777
+					,0.436489
+					,0.459995
+					,0.526618
+					,0.488272
+					,0.526618
+					,0.437079
+					,0.436489
+					,0.437079
+					,0.436489
+					,0.357346
+					,0.526618
+					,0.385623
+					,0.526618
+					,0.308442
+					,0.436489
+					,0.308442
+					,0.436489
+					,0.280165
+					,0.526618
+					,0.308442
+					,0.526618
+					,0.240908
+					,0.436489
+					,0.240908
+					,0.526618
+					,0.234476
+					,0.436489
+					,0.234476
+					,0.526618
+					,0.234476
+					,0.526618
+					,0.234476
+					,0.436489
+					,0.234476
+					,0.526618
+					,0.929642
+					,0.526618
+					,0.920244
+					,0.621644
+					,0.742645
+					,0.733876
+					,0.742645
+					,0.733876
+					,0.751677
+					,0.621644
+					,0.751677
+					,0.621644
+					,0.598429
+					,0.733876
+					,0.598429
+					,0.621644
+					,0.477999
+					,0.733876
+					,0.477999
+					,0.733876
+					,0.775763
+					,0.621644
+					,0.775763
+					,0.733876
+					,0.829957
+					,0.621644
+					,0.829957
+					,0.733876
+					,0.879635
+					,0.621644
+					,0.879635
+					,0.733876
+					,0.917269
+					,0.621644
+					,0.917269
+					,0.673644
+					,0.988334
+					,0.733876
+					,0.989226
+					,0.66761
+					,0.99523
+					,0.766348
+					,0.954602
+					,0.638281
+					,0.954602
+					,0.766348
+					,0.954602
+					,0.733876
+					,0.989226
+					,0.673644
+					,0.988334
+					,0.590846
+					,0.432286
+					,0.673761
+					,0.432286
+					,0.573718
+					,0.304453
+					,0.64033
+					,0.304453
+					,0.537558
+					,0.23734
+					,0.56975
+					,0.23734
+					,0.854111
+					,0.996865
+					,0.937655
+					,0.961534
+					,0.784045
+					,0.961535
+					,0.784045
+					,0.996865
+					,0.191293
+					,0.818675
+					,0.000912905
+					,0.788956
+					,0.000912905
+					,0.753128
+					,0.191293
+					,0.753128
+					,0.0877513
+					,0.912057
+					,0.000912905
+					,0.914115
+					,0.000912905
+					,0.791362
+					,0.0877513
+					,0.842487
+					,0.191293
+					,0.936363
+					,0.000912905
+					,0.959826
+					,0.000912905
+					,0.910666
+					,0.191293
+					,0.887203
+					,0.191293
+					,0.991731
+					,0.000912905
+					,0.998317
+					,0.238369
+					,0.818675
+					,0.238369
+					,0.753128
+					,0.238369
+					,0.887203
+					,0.238369
+					,0.936363
+					,0.238369
+					,0.98576
+					,0.238369
+					,0.98576
+					,0.000912905
+					,0.914115
+					,0.000912905
+					,0.910666
+					,0.000912905
+					,0.788956
+					,0.000912905
+					,0.791362
+					,0.193801
+					,0.715195
+					,0.00120509
+					,0.715195
+					,0.00120509
+					,0.536951
+					,0.193801
+					,0.536951
+					,0.193801
+					,0.751721
+					,0.00120509
+					,0.751722
+					,0.00120509
+					,0.470686
+					,0.193801
+					,0.470686
+					,0.241908
+					,0.694923
+					,0.241908
+					,0.536951
+					,0.241908
+					,0.751721
+					,0.241908
+					,0.751721
+					,0.241908
+					,0.470686
+					,0.19682
+					,0.468498
+					,0.001445
+					,0.468498
+					,0.001445
+					,0.368241
+					,0.19682
+					,0.36824
+					,0.001445
+					,0.292857
+					,0.19682
+					,0.292858
+					,0.001445
+					,0.230478
+					,0.19682
+					,0.248233
+					,0.243662
+					,0.466545
+					,0.243662
+					,0.366287
+					,0.243662
+					,0.290905
+					,0.243662
+					,0.24628
+					,0.774877
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.945384
+					,0.949326
+					,0.945384
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.934784
+					,0.326831
+					,0.934784
+					,0.457182
+					,0.923294
+					,0.326831
+					,0.923294
+					,0.457181
+					,0.900312
+					,0.457181
+					,0.900312
+					,0.326831
+					,0.888821
+					,0.326831
+					,0.888821
+					,0.457182
+					,0.888821
+					,0.326831
+					,0.888821
+					,0.457182
+					,0.900312
+					,0.457181
+					,0.900312
+					,0.326831
+					,0.923294
+					,0.326831
+					,0.923294
+					,0.457181
+					,0.934784
+					,0.457182
+					,0.934784
+					,0.326831
+					,0.904413
+					,0.513888
+					,0.915458
+					,0.51653
+					,0.882322
+					,0.508605
+					,0.871275
+					,0.505963
+					,0.882322
+					,0.508605
+					,0.871275
+					,0.505963
+					,0.904413
+					,0.513889
+					,0.915458
+					,0.51653
+					,0.876093
+					,0.546958
+					,0.883169
+					,0.55451
+					,0.861946
+					,0.531853
+					,0.854868
+					,0.5243
+					,0.861946
+					,0.531853
+					,0.854868
+					,0.5243
+					,0.876093
+					,0.546958
+					,0.883169
+					,0.55451
+					,0.841382
+					,0.561143
+					,0.843576
+					,0.570551
+					,0.836998
+					,0.542327
+					,0.834804
+					,0.532916
+					,0.836998
+					,0.542327
+					,0.834804
+					,0.532916
+					,0.841382
+					,0.561143
+					,0.843576
+					,0.570551
+					,0.802411
+					,0.564268
+					,0.802411
+					,0.573848
+					,0.802411
+					,0.545101
+					,0.802411
+					,0.535515
+					,0.802411
+					,0.545101
+					,0.802411
+					,0.535515
+					,0.802411
+					,0.564268
+					,0.802411
+					,0.573848
+					,0.90039
+					,0.326536
+					,0.900391
+					,0.456899
+					,0.888511
+					,0.456899
+					,0.88851
+					,0.326536
+					,0.92416
+					,0.326536
+					,0.92416
+					,0.456899
+					,0.936051
+					,0.326536
+					,0.936049
+					,0.456899
+					,0.92416
+					,0.326536
+					,0.924161
+					,0.456899
+					,0.936049
+					,0.456899
+					,0.936051
+					,0.326536
+					,0.900389
+					,0.326536
+					,0.900392
+					,0.456899
+					,0.88851
+					,0.326536
+					,0.888511
+					,0.456899
+					,0.88398
+					,0.278045
+					,0.913166
+					,0.278045
+					,0.898573
+					,0.306463
+					,0.927758
+					,0.306463
+					,0.942351
+					,0.278045
+					,0.927758
+					,0.249627
+					,0.898573
+					,0.249627
+					,0.802552
+					,0.280318
+					,0.802552
+					,0.280318
+					,0.821754
+					,0.316417
+					,0.821754
+					,0.316417
+					,0.860156
+					,0.316417
+					,0.860156
+					,0.316417
+					,0.879357
+					,0.280318
+					,0.879357
+					,0.280318
+					,0.879357
+					,0.280318
+					,0.879357
+					,0.280318
+					,0.860156
+					,0.24422
+					,0.860156
+					,0.24422
+					,0.821754
+					,0.24422
+					,0.821754
+					,0.24422
+					,0.802552
+					,0.280318
+					,0.802552
+					,0.280318
+					,0.740601
+					,0.58462
+					,0.740601
+					,0.58462
+					,0.786603
+					,0.58462
+					,0.791533
+					,0.59326
+					,0.791532
+					,0.59326
+					,0.809605
+					,0.602334
+					,0.740601
+					,0.58462
+					,0.786603
+					,0.58462
+					,0.740601
+					,0.759979
+					,0.791533
+					,0.59326
+					,0.786603
+					,0.667429
+					,0.809605
+					,0.602334
+					,0.809605
+					,0.658483
+					,0.813438
+					,0.759979
+					,0.786603
+					,0.58462
+					,0.809605
+					,0.602334
+					,0.809605
+					,0.658483
+					,0.809605
+					,0.658483
+					,0.786603
+					,0.667429
+					,0.786603
+					,0.667429
+					,0.786603
+					,0.667429
+					,0.786603
+					,0.667429
+					,0.813438
+					,0.759979
+					,0.813438
+					,0.759979
+					,0.740601
+					,0.759979
+					,0.786603
+					,0.667429
+					,0.791532
+					,0.59326
+					,0.809605
+					,0.602334
+					,0.813438
+					,0.759979
+					,0.897263
+					,0.710387
+					,0.897263
+					,0.762724
+					,0.88181
+					,0.710387
+					,0.88181
+					,0.762724
+					,0.866044
+					,0.762724
+					,0.866044
+					,0.710387
+					,0.850278
+					,0.710387
+					,0.850278
+					,0.762724
+					,0.834825
+					,0.762724
+					,0.834825
+					,0.710387
+					,0.819372
+					,0.710387
+					,0.819372
+					,0.762724
+					,0.944248
+					,0.710387
+					,0.944248
+					,0.762724
+					,0.928482
+					,0.762724
+					,0.928482
+					,0.710387
+					,0.912716
+					,0.710387
+					,0.912716
+					,0.762724
+					,0.897263
+					,0.666883
+					,0.882402
+					,0.666883
+					,0.866044
+					,0.666883
+					,0.849686
+					,0.666883
+					,0.834825
+					,0.666883
+					,0.819964
+					,0.666883
+					,0.94484
+					,0.666883
+					,0.928482
+					,0.666883
+					,0.912124
+					,0.666883
+					,0.897263
+					,0.584536
+					,0.882402
+					,0.584536
+					,0.866044
+					,0.584536
+					,0.849686
+					,0.584536
+					,0.834825
+					,0.584536
+					,0.819965
+					,0.584536
+					,0.944902
+					,0.584536
+					,0.944901
+					,0.666883
+					,0.928543
+					,0.666883
+					,0.944841
+					,0.584536
+					,0.928482
+					,0.584536
+					,0.912124
+					,0.584536
+					,0.835329
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.945384
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.945384
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.412102
+					,0.114572
+					,0.412102
+					,0.084874
+					,0.412102
+					,0.00402963
+					,0.412102
+					,0.0914736
+					,0.412102
+					,0.00402963
+					,0.412102
+					,0.213565
+					,0.412102
+					,0.226764
+					,0.260028
+					,0.0848737
+					,0.260028
+					,0.00402963
+					,0.412102
+					,0.00402963
+					,0.412102
+					,0.084874
+					,0.260028
+					,0.114572
+					,0.412102
+					,0.114572
+					,0.260028
+					,0.0914732
+					,0.260028
+					,0.114572
+					,0.412102
+					,0.114572
+					,0.412102
+					,0.0914736
+					,0.260028
+					,0.226763
+					,0.260028
+					,0.0914732
+					,0.412102
+					,0.0914736
+					,0.412102
+					,0.226764
+					,0.260028
+					,0.213564
+					,0.260028
+					,0.226763
+					,0.412102
+					,0.226764
+					,0.260028
+					,0.00402963
+					,0.260028
+					,0.213564
+					,0.260028
+					,0.00402963
+					,0.260028
+					,0.0848737
+					,0.260028
+					,0.114572
+					,0.260028
+					,0.0914732
+					,0.260028
+					,0.226763
+					,0.260028
+					,0.213564
+					,0.923294
+					,0.326831
+					,0.934784
+					,0.457182
+					,0.934784
+					,0.326831
+					,0.923294
+					,0.457181
+					,0.900312
+					,0.457181
+					,0.900312
+					,0.326831
+					,0.888821
+					,0.326831
+					,0.888821
+					,0.457182
+					,0.900312
+					,0.457181
+					,0.888821
+					,0.457182
+					,0.888821
+					,0.326831
+					,0.900312
+					,0.326831
+					,0.923294
+					,0.326831
+					,0.923294
+					,0.457181
+					,0.934784
+					,0.457182
+					,0.934784
+					,0.326831
+					,0.904413
+					,0.513888
+					,0.915458
+					,0.51653
+					,0.882322
+					,0.508605
+					,0.871275
+					,0.505963
+					,0.882322
+					,0.508605
+					,0.871275
+					,0.505963
+					,0.904413
+					,0.513889
+					,0.915458
+					,0.51653
+					,0.876093
+					,0.546958
+					,0.883169
+					,0.55451
+					,0.861946
+					,0.531853
+					,0.854868
+					,0.5243
+					,0.861946
+					,0.531853
+					,0.854868
+					,0.5243
+					,0.876093
+					,0.546958
+					,0.883169
+					,0.55451
+					,0.841382
+					,0.561143
+					,0.843576
+					,0.570551
+					,0.836998
+					,0.542327
+					,0.834804
+					,0.532916
+					,0.836998
+					,0.542327
+					,0.834804
+					,0.532916
+					,0.841382
+					,0.561143
+					,0.843576
+					,0.570551
+					,0.802411
+					,0.564268
+					,0.802411
+					,0.573848
+					,0.802411
+					,0.545101
+					,0.802411
+					,0.535515
+					,0.802411
+					,0.545101
+					,0.802411
+					,0.535515
+					,0.802411
+					,0.564268
+					,0.802411
+					,0.573848
+					,0.888511
+					,0.456899
+					,0.900391
+					,0.456899
+					,0.90039
+					,0.326536
+					,0.88851
+					,0.326536
+					,0.92416
+					,0.456899
+					,0.92416
+					,0.326536
+					,0.936049
+					,0.456899
+					,0.936051
+					,0.326536
+					,0.936049
+					,0.456899
+					,0.924161
+					,0.456899
+					,0.92416
+					,0.326536
+					,0.936051
+					,0.326536
+					,0.900392
+					,0.456899
+					,0.900389
+					,0.326536
+					,0.888511
+					,0.456899
+					,0.88851
+					,0.326536
+					,0.834052
+					,0.45498
+					,0.850181
+					,0.480371
+					,0.850181
+					,0.485973
+					,0.834052
+					,0.449378
+					,0.801794
+					,0.449378
+					,0.834052
+					,0.449378
+					,0.834052
+					,0.45498
+					,0.801794
+					,0.45498
+					,0.785665
+					,0.485973
+					,0.801794
+					,0.449378
+					,0.801794
+					,0.45498
+					,0.785665
+					,0.480371
+					,0.801794
+					,0.511362
+					,0.785665
+					,0.480371
+					,0.785665
+					,0.485973
+					,0.801794
+					,0.516966
+					,0.834052
+					,0.516966
+					,0.801794
+					,0.511362
+					,0.801794
+					,0.516966
+					,0.834052
+					,0.511362
+					,0.850181
+					,0.480371
+					,0.834052
+					,0.511362
+					,0.834052
+					,0.516966
+					,0.850181
+					,0.485973
+					,0.88181
+					,0.710387
+					,0.897263
+					,0.762724
+					,0.897263
+					,0.710387
+					,0.88181
+					,0.762724
+					,0.866044
+					,0.762724
+					,0.866044
+					,0.710387
+					,0.850278
+					,0.710387
+					,0.850278
+					,0.762724
+					,0.834825
+					,0.762724
+					,0.834825
+					,0.710387
+					,0.819372
+					,0.710387
+					,0.819372
+					,0.762724
+					,0.928482
+					,0.762724
+					,0.944248
+					,0.762724
+					,0.944248
+					,0.710387
+					,0.928482
+					,0.710387
+					,0.912716
+					,0.710387
+					,0.912716
+					,0.762724
+					,0.897263
+					,0.666883
+					,0.882402
+					,0.666883
+					,0.866044
+					,0.666883
+					,0.849686
+					,0.666883
+					,0.834825
+					,0.666883
+					,0.819964
+					,0.666883
+					,0.94484
+					,0.666883
+					,0.928482
+					,0.666883
+					,0.912124
+					,0.666883
+					,0.897263
+					,0.584536
+					,0.882402
+					,0.584536
+					,0.866044
+					,0.584536
+					,0.849686
+					,0.584536
+					,0.834825
+					,0.584536
+					,0.819965
+					,0.584536
+					,0.928543
+					,0.666883
+					,0.944901
+					,0.666883
+					,0.944902
+					,0.584536
+					,0.928482
+					,0.584536
+					,0.944841
+					,0.584536
+					,0.912124
+					,0.584536
+					,0.786603
+					,0.58462
+					,0.740601
+					,0.58462
+					,0.740601
+					,0.58462
+					,0.809605
+					,0.602334
+					,0.791532
+					,0.59326
+					,0.791533
+					,0.59326
+					,0.740601
+					,0.759979
+					,0.786603
+					,0.58462
+					,0.786603
+					,0.667429
+					,0.791533
+					,0.59326
+					,0.809605
+					,0.658483
+					,0.809605
+					,0.602334
+					,0.813438
+					,0.759979
+					,0.791532
+					,0.59326
+					,0.786603
+					,0.58462
+					,0.786603
+					,0.58462
+					,0.809605
+					,0.602334
+					,0.809605
+					,0.602334
+					,0.791533
+					,0.59326
+					,0.809605
+					,0.658483
+					,0.786603
+					,0.667429
+					,0.809605
+					,0.658483
+					,0.786603
+					,0.667429
+					,0.813438
+					,0.759979
+					,0.786603
+					,0.667429
+					,0.786603
+					,0.667429
+					,0.813438
+					,0.759979
+					,0.740601
+					,0.58462
+					,0.786603
+					,0.58462
+					,0.740601
+					,0.759979
+					,0.791532
+					,0.59326
+					,0.786603
+					,0.667429
+					,0.809605
+					,0.602334
+					,0.809605
+					,0.658483
+					,0.813438
+					,0.759979
+					,0.898573
+					,0.306463
+					,0.913166
+					,0.278045
+					,0.88398
+					,0.278045
+					,0.927758
+					,0.306463
+					,0.942351
+					,0.278045
+					,0.927758
+					,0.249627
+					,0.898573
+					,0.249627
+					,0.821754
+					,0.316417
+					,0.802552
+					,0.280318
+					,0.802552
+					,0.280318
+					,0.821754
+					,0.316417
+					,0.860156
+					,0.316417
+					,0.860156
+					,0.316417
+					,0.879357
+					,0.280318
+					,0.879357
+					,0.280318
+					,0.860156
+					,0.24422
+					,0.879357
+					,0.280318
+					,0.879357
+					,0.280318
+					,0.860156
+					,0.24422
+					,0.821754
+					,0.24422
+					,0.860156
+					,0.24422
+					,0.821754
+					,0.24422
+					,0.802552
+					,0.280318
+					,0.821754
+					,0.24422
+					,0.802552
+					,0.280318
+					,0.879271
+					,0.37869
+					,0.690331
+					,0.324926
+					,0.690331
+					,0.37869
+					,0.879271
+					,0.324926
+					,0.880044
+					,0.435519
+					,0.689568
+					,0.389436
+					,0.689568
+					,0.435519
+					,0.880044
+					,0.389436
+					,0.880044
+					,0.435519
+					,0.689568
+					,0.389436
+					,0.689568
+					,0.435519
+					,0.880044
+					,0.389436
+					,0.880044
+					,0.435519
+					,0.689568
+					,0.389436
+					,0.689568
+					,0.435519
+					,0.880044
+					,0.389436
+					,0.880044
+					,0.435519
+					,0.689568
+					,0.389436
+					,0.689568
+					,0.435519
+					,0.880044
+					,0.389436
+					,0.000555187
+					,0.150136
+					,0.000555187
+					,0.222353
+					,0.200805
+					,0.222353
+					,0.200805
+					,0.150137
+					,0.251093
+					,0.221904
+					,0.251093
+					,0.184906
+					,0.252311
+					,0.773707
+					,0.252311
+					,0.764583
+					,0.430837
+					,0.764583
+					,0.430837
+					,0.773707
+					,0.252311
+					,0.618906
+					,0.430837
+					,0.618906
+					,0.252311
+					,0.497255
+					,0.430837
+					,0.497254
+					,0.252311
+					,0.798037
+					,0.430837
+					,0.798037
+					,0.252311
+					,0.85278
+					,0.430837
+					,0.85278
+					,0.252311
+					,0.902961
+					,0.430837
+					,0.902961
+					,0.252311
+					,0.940977
+					,0.430837
+					,0.940977
+					,0.252311
+					,1.00302
+					,0.430837
+					,0.978689
+					,0.252311
+					,0.451078
+					,0.430837
+					,0.451078
+					,0.252311
+					,0.321948
+					,0.430837
+					,0.321949
+					,0.252311
+					,0.235907
+					,0.430837
+					,0.254156
+					,0.250417
+					,0.142609
+					,0.250417
+					,0.0662137
+					,-0.000121474
+					,0.0662142
+					,-0.000121474
+					,0.14261
+					,0.250417
+					,0.00445557
+					,-0.000121474
+					,0.00445557
+					,0.953598
+					,0.719772
+					,0.955088
+					,0.533297
+					,0.958071
+					,0.733892
+					,0.944924
+					,0.533379
+					,0.942914
+					,0.359587
+					,0.947905
+					,0.361242
+					,0.958318
+					,0.640138
+					,0.972912
+					,0.789288
+					,0.957768
+					,0.419173
+					,0.969043
+					,0.719585
+					,0.998491
+					,0.828826
+					,0.981608
+					,0.828875
+					,0.982997
+					,0.943179
+					,0.9662
+					,0.938129
+					,0.919602
+					,0.999998
+					,0.966293
+					,0.367036
+					,0.953181
+					,0.29362
+					,0.972619
+					,0.219828
+					,0.95668
+					,0.109144
+					,0.973786
+					,0.109144
+					,0.964066
+					,0.0122942
+					,0.971064
+					,0.00306976
+					,0.910934
+					,0.98652
+					,0.436489
+					,0.758476
+					,0.436489
+					,0.749387
+					,0.526618
+					,0.734238
+					,0.526618
+					,0.744085
+					,0.436489
+					,0.604265
+					,0.526618
+					,0.604265
+					,0.436489
+					,0.483078
+					,0.526618
+					,0.483078
+					,0.436489
+					,0.782713
+					,0.526618
+					,0.782713
+					,0.436489
+					,0.524628
+					,0.436489
+					,0.678709
+					,0.526618
+					,0.678709
+					,0.526618
+					,0.524628
+					,0.436489
+					,0.734108
+					,0.526618
+					,0.734108
+					,0.436489
+					,0.837247
+					,0.526618
+					,0.810317
+					,0.526618
+					,0.810282
+					,0.436489
+					,0.810282
+					,0.436489
+					,0.887236
+					,0.526618
+					,0.886501
+					,0.436489
+					,0.88992
+					,0.526618
+					,0.890022
+					,0.436489
+					,0.947051
+					,0.436489
+					,0.925107
+					,0.526618
+					,0.920244
+					,0.526618
+					,0.929642
+					,0.441162
+					,0.996667
+					,0.481954
+					,0.969777
+					,0.436489
+					,0.962675
+					,0.481954
+					,0.969777
+					,0.436489
+					,0.459995
+					,0.526618
+					,0.488272
+					,0.436489
+					,0.437079
+					,0.526618
+					,0.437079
+					,0.436489
+					,0.357346
+					,0.526618
+					,0.385623
+					,0.436489
+					,0.308442
+					,0.526618
+					,0.308442
+					,0.436489
+					,0.280165
+					,0.526618
+					,0.308442
+					,0.436489
+					,0.240908
+					,0.526618
+					,0.240908
+					,0.436489
+					,0.234476
+					,0.526618
+					,0.234476
+					,0.526618
+					,0.234476
+					,0.436489
+					,0.234476
+					,0.526618
+					,0.234476
+					,0.526618
+					,0.920244
+					,0.526618
+					,0.929642
+					,0.733876
+					,0.751677
+					,0.733876
+					,0.742645
+					,0.621644
+					,0.742645
+					,0.621644
+					,0.751677
+					,0.733876
+					,0.598429
+					,0.621644
+					,0.598429
+					,0.733876
+					,0.477999
+					,0.621644
+					,0.477999
+					,0.733876
+					,0.775763
+					,0.621644
+					,0.775763
+					,0.733876
+					,0.829957
+					,0.621644
+					,0.829957
+					,0.733876
+					,0.879635
+					,0.621644
+					,0.879635
+					,0.733876
+					,0.917269
+					,0.621644
+					,0.917269
+					,0.66761
+					,0.99523
+					,0.733876
+					,0.989226
+					,0.673644
+					,0.988334
+					,0.766348
+					,0.954602
+					,0.638281
+					,0.954602
+					,0.766348
+					,0.954602
+					,0.673644
+					,0.988334
+					,0.733876
+					,0.989226
+					,0.673761
+					,0.432286
+					,0.590846
+					,0.432286
+					,0.64033
+					,0.304453
+					,0.573718
+					,0.304453
+					,0.56975
+					,0.23734
+					,0.537558
+					,0.23734
+					,0.784045
+					,0.961535
+					,0.937655
+					,0.961534
+					,0.854111
+					,0.996865
+					,0.784045
+					,0.996865
+					,0.000912905
+					,0.753128
+					,0.000912905
+					,0.788956
+					,0.191293
+					,0.818675
+					,0.191293
+					,0.753128
+					,0.000912905
+					,0.791362
+					,0.000912905
+					,0.914115
+					,0.0877513
+					,0.912057
+					,0.0877513
+					,0.842487
+					,0.000912905
+					,0.910666
+					,0.000912905
+					,0.959826
+					,0.191293
+					,0.936363
+					,0.191293
+					,0.887203
+					,0.000912905
+					,0.998317
+					,0.191293
+					,0.991731
+					,0.238369
+					,0.818675
+					,0.238369
+					,0.753128
+					,0.238369
+					,0.887203
+					,0.238369
+					,0.936363
+					,0.238369
+					,0.98576
+					,0.238369
+					,0.98576
+					,0.000912905
+					,0.788956
+					,0.000912905
+					,0.910666
+					,0.000912905
+					,0.914115
+					,0.000912905
+					,0.791362
+					,0.00120509
+					,0.536951
+					,0.00120509
+					,0.715195
+					,0.193801
+					,0.715195
+					,0.193801
+					,0.536951
+					,0.00120509
+					,0.751722
+					,0.193801
+					,0.751721
+					,0.00120509
+					,0.470686
+					,0.193801
+					,0.470686
+					,0.241908
+					,0.694923
+					,0.241908
+					,0.536951
+					,0.241908
+					,0.751721
+					,0.241908
+					,0.751721
+					,0.241908
+					,0.470686
+					,0.001445
+					,0.368241
+					,0.001445
+					,0.468498
+					,0.19682
+					,0.468498
+					,0.19682
+					,0.36824
+					,0.001445
+					,0.292857
+					,0.19682
+					,0.292858
+					,0.001445
+					,0.230478
+					,0.19682
+					,0.248233
+					,0.243662
+					,0.466545
+					,0.243662
+					,0.366287
+					,0.243662
+					,0.290905
+					,0.243662
+					,0.24628
+					,0.835329
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.945384
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.945384
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.774877
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.835329
+					,0.949326
+					,0.774877
+					,0.771139
+					,0.774877
+					,0.949326
+					,0.835329
+					,0.771139
+					,0.923294
+					,0.326831
+					,0.934784
+					,0.457182
+					,0.934784
+					,0.326831
+					,0.923294
+					,0.457181
+					,0.900312
+					,0.457181
+					,0.900312
+					,0.326831
+					,0.888821
+					,0.326831
+					,0.888821
+					,0.457182
+					,0.900312
+					,0.457181
+					,0.888821
+					,0.457182
+					,0.888821
+					,0.326831
+					,0.900312
+					,0.326831
+					,0.923294
+					,0.326831
+					,0.923294
+					,0.457181
+					,0.934784
+					,0.457182
+					,0.934784
+					,0.326831
+					,0.904413
+					,0.513888
+					,0.915458
+					,0.51653
+					,0.882322
+					,0.508605
+					,0.871275
+					,0.505963
+					,0.882322
+					,0.508605
+					,0.871275
+					,0.505963
+					,0.904413
+					,0.513889
+					,0.915458
+					,0.51653
+					,0.876093
+					,0.546958
+					,0.883169
+					,0.55451
+					,0.861946
+					,0.531853
+					,0.854868
+					,0.5243
+					,0.861946
+					,0.531853
+					,0.854868
+					,0.5243
+					,0.876093
+					,0.546958
+					,0.883169
+					,0.55451
+					,0.841382
+					,0.561143
+					,0.843576
+					,0.570551
+					,0.836998
+					,0.542327
+					,0.834804
+					,0.532916
+					,0.836998
+					,0.542327
+					,0.834804
+					,0.532916
+					,0.841382
+					,0.561143
+					,0.843576
+					,0.570551
+					,0.802411
+					,0.564268
+					,0.802411
+					,0.573848
+					,0.802411
+					,0.545101
+					,0.802411
+					,0.535515
+					,0.802411
+					,0.545101
+					,0.802411
+					,0.535515
+					,0.802411
+					,0.564268
+					,0.802411
+					,0.573848
+					,0.888511
+					,0.456899
+					,0.900391
+					,0.456899
+					,0.90039
+					,0.326536
+					,0.88851
+					,0.326536
+					,0.92416
+					,0.456899
+					,0.92416
+					,0.326536
+					,0.936049
+					,0.456899
+					,0.936051
+					,0.326536
+					,0.936049
+					,0.456899
+					,0.924161
+					,0.456899
+					,0.92416
+					,0.326536
+					,0.936051
+					,0.326536
+					,0.900392
+					,0.456899
+					,0.900389
+					,0.326536
+					,0.888511
+					,0.456899
+					,0.88851
+					,0.326536
+					,0.898573
+					,0.306463
+					,0.913166
+					,0.278045
+					,0.88398
+					,0.278045
+					,0.927758
+					,0.306463
+					,0.942351
+					,0.278045
+					,0.927758
+					,0.249627
+					,0.898573
+					,0.249627
+					,0.821754
+					,0.316417
+					,0.802552
+					,0.280318
+					,0.802552
+					,0.280318
+					,0.821754
+					,0.316417
+					,0.860156
+					,0.316417
+					,0.860156
+					,0.316417
+					,0.879357
+					,0.280318
+					,0.879357
+					,0.280318
+					,0.860156
+					,0.24422
+					,0.879357
+					,0.280318
+					,0.879357
+					,0.280318
+					,0.860156
+					,0.24422
+					,0.821754
+					,0.24422
+					,0.860156
+					,0.24422
+					,0.821754
+					,0.24422
+					,0.802552
+					,0.280318
+					,0.821754
+					,0.24422
+					,0.802552
+					,0.280318
+					,0.786603
+					,0.58462
+					,0.740601
+					,0.58462
+					,0.809605
+					,0.602334
+					,0.791532
+					,0.59326
+					,0.791533
+					,0.59326
+					,0.740601
+					,0.759979
+					,0.786603
+					,0.58462
+					,0.740601
+					,0.58462
+					,0.786603
+					,0.667429
+					,0.791533
+					,0.59326
+					,0.809605
+					,0.658483
+					,0.809605
+					,0.602334
+					,0.813438
+					,0.759979
+					,0.791532
+					,0.59326
+					,0.786603
+					,0.58462
+					,0.786603
+					,0.58462
+					,0.809605
+					,0.602334
+					,0.809605
+					,0.602334
+					,0.791533
+					,0.59326
+					,0.809605
+					,0.658483
+					,0.786603
+					,0.667429
+					,0.809605
+					,0.658483
+					,0.786603
+					,0.667429
+					,0.813438
+					,0.759979
+					,0.786603
+					,0.667429
+					,0.786603
+					,0.667429
+					,0.813438
+					,0.759979
+					,0.740601
+					,0.58462
+					,0.786603
+					,0.58462
+					,0.740601
+					,0.759979
+					,0.791532
+					,0.59326
+					,0.786603
+					,0.667429
+					,0.809605
+					,0.602334
+					,0.809605
+					,0.658483
+					,0.813438
+					,0.759979
+					,0.88181
+					,0.710387
+					,0.897263
+					,0.762724
+					,0.897263
+					,0.710387
+					,0.88181
+					,0.762724
+					,0.866044
+					,0.762724
+					,0.866044
+					,0.710387
+					,0.850278
+					,0.710387
+					,0.850278
+					,0.762724
+					,0.834825
+					,0.762724
+					,0.834825
+					,0.710387
+					,0.819372
+					,0.710387
+					,0.819372
+					,0.762724
+					,0.928482
+					,0.762724
+					,0.944248
+					,0.762724
+					,0.944248
+					,0.710387
+					,0.928482
+					,0.710387
+					,0.912716
+					,0.710387
+					,0.912716
+					,0.762724
+					,0.897263
+					,0.666883
+					,0.882402
+					,0.666883
+					,0.866044
+					,0.666883
+					,0.849686
+					,0.666883
+					,0.834825
+					,0.666883
+					,0.819964
+					,0.666883
+					,0.94484
+					,0.666883
+					,0.928482
+					,0.666883
+					,0.912124
+					,0.666883
+					,0.897263
+					,0.584536
+					,0.882402
+					,0.584536
+					,0.866044
+					,0.584536
+					,0.849686
+					,0.584536
+					,0.834825
+					,0.584536
+					,0.819965
+					,0.584536
+					,0.928543
+					,0.666883
+					,0.944901
+					,0.666883
+					,0.944902
+					,0.584536
+					,0.928482
+					,0.584536
+					,0.944841
+					,0.584536
+					,0.912124
+					,0.584536
+					,0.528035
+					,0.0748031
+					,0.528035
+					,0.049881
+					,0.549842
+					,0.0748031
+					,0.549842
+					,0.049881
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.528035
+					,0.0748031
+					,0.528035
+					,0.049881
+					,0.549842
+					,0.0748031
+					,0.549842
+					,0.049881
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.549842
+					,0.0748031
+					,0.528035
+					,0.049881
+					,0.528035
+					,0.0748031
+					,0.549842
+					,0.049881
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.549842
+					,0.0748031
+					,0.528035
+					,0.049881
+					,0.528035
+					,0.0748031
+					,0.549842
+					,0.049881
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.549842
+					,0.0748031
+					,0.528035
+					,0.049881
+					,0.528035
+					,0.0748031
+					,0.549842
+					,0.049881
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.528035
+					,0.0748031
+					,0.528035
+					,0.049881
+					,0.549842
+					,0.0748031
+					,0.549842
+					,0.049881
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.588696
+					,0.0374125
+					,0.588696
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.52016
+					,0.0374125
+					,0.52016
+					,0.00158685
+					,0.698905
+					,0.252746
+					,0.656802
+					,0.244458
+					,0.698905
+					,0.143875
+					,0.698905
+					,0.264843
+					,0.698905
+					,0.143875
+					,0.652123
+					,0.255634
+					,0.698905
+					,0.264843
+					,0.698905
+					,0.289036
+					,0.642766
+					,0.277986
+					,0.652123
+					,0.255634
+					,0.698905
+					,0.289036
+					,0.642766
+					,0.277986
+					,0.621107
+					,0.220858
+					,0.612463
+					,0.229412
+					,0.612463
+					,0.229412
+					,0.595174
+					,0.246519
+					,0.595174
+					,0.246519
+					,0.597257
+					,0.185538
+					,0.585963
+					,0.190167
+					,0.563374
+					,0.199426
+					,0.585963
+					,0.190167
+					,0.563374
+					,0.199426
+					,0.588882
+					,0.143875
+					,0.576657
+					,0.143875
+					,0.576657
+					,0.143875
+					,0.552208
+					,0.143875
+					,0.552208
+					,0.143875
+					,0.597257
+					,0.102211
+					,0.585963
+					,0.0975826
+					,0.563374
+					,0.0883241
+					,0.585963
+					,0.0975826
+					,0.563374
+					,0.0883241
+					,0.621107
+					,0.0668908
+					,0.612463
+					,0.0583378
+					,0.612463
+					,0.0583378
+					,0.595174
+					,0.0412304
+					,0.595174
+					,0.0412304
+					,0.656802
+					,0.0432907
+					,0.652123
+					,0.0321153
+					,0.642766
+					,0.00976348
+					,0.652123
+					,0.0321153
+					,0.642766
+					,0.00976348
+					,0.698905
+					,0.0350043
+					,0.698905
+					,0.0229071
+					,0.698905
+					,0.0229071
+					,0.698905
+					,-0.00128639
+					,0.698905
+					,-0.00128639
+					,0.741009
+					,0.0432907
+					,0.745687
+					,0.0321153
+					,0.755044
+					,0.00976348
+					,0.745687
+					,0.0321153
+					,0.755044
+					,0.00976348
+					,0.776703
+					,0.0668908
+					,0.785347
+					,0.0583378
+					,0.785347
+					,0.0583378
+					,0.802636
+					,0.0412304
+					,0.802636
+					,0.0412304
+					,0.800553
+					,0.102211
+					,0.811848
+					,0.0975826
+					,0.834436
+					,0.0883241
+					,0.811848
+					,0.0975826
+					,0.834436
+					,0.0883241
+					,0.808928
+					,0.143875
+					,0.821153
+					,0.143875
+					,0.821153
+					,0.143875
+					,0.845603
+					,0.143875
+					,0.845603
+					,0.143875
+					,0.800553
+					,0.185538
+					,0.811848
+					,0.190167
+					,0.834436
+					,0.199426
+					,0.811848
+					,0.190167
+					,0.834436
+					,0.199426
+					,0.776703
+					,0.220858
+					,0.785347
+					,0.229412
+					,0.785347
+					,0.229412
+					,0.802636
+					,0.246519
+					,0.802636
+					,0.246519
+					,0.741009
+					,0.244458
+					,0.745687
+					,0.255634
+					,0.755044
+					,0.277986
+					,0.745687
+					,0.255634
+					,0.755044
+					,0.277986
+					,0.443616
+					,0.222924
+					,0.443616
+					,0.00341809
+					,0.518311
+					,0.222924
+					,0.518311
+					,0.00341809
+					,0.443616
+					,0.223044
+					,0.443616
+					,0.00353873
+					,0.518311
+					,0.00353873
+					,0.518311
+					,0.223044
+					,0.443848
+					,0.222924
+					,0.443848
+					,0.00341809
+					,0.518543
+					,0.00341809
+					,0.518543
+					,0.222924
+					,0.443848
+					,0.223044
+					,0.443848
+					,0.00353873
+					,0.518543
+					,0.223044
+					,0.518543
+					,0.00353873
+					,0.442219
+					,0.222924
+					,0.442219
+					,0.00341809
+					,0.516915
+					,0.222924
+					,0.516915
+					,0.00341809
+					,0.442219
+					,0.223044
+					,0.442219
+					,0.00353873
+					,0.516915
+					,0.00353873
+					,0.516915
+					,0.223044
+					,0.442452
+					,0.222924
+					,0.442452
+					,0.00341809
+					,0.517147
+					,0.00341809
+					,0.517147
+					,0.222924
+					,0.442452
+					,0.223044
+					,0.442452
+					,0.00353873
+					,0.517147
+					,0.223044
+					,0.517147
+					,0.00353873
+					,0.442685
+					,0.222924
+					,0.442685
+					,0.00341809
+					,0.51738
+					,0.222924
+					,0.51738
+					,0.00341809
+					,0.442685
+					,0.223044
+					,0.442685
+					,0.00353873
+					,0.51738
+					,0.00353873
+					,0.51738
+					,0.223044
+					,0.442918
+					,0.222924
+					,0.442918
+					,0.00341809
+					,0.517613
+					,0.00341809
+					,0.517613
+					,0.222924
+					,0.442918
+					,0.223044
+					,0.442918
+					,0.00353873
+					,0.517613
+					,0.223044
+					,0.517613
+					,0.00353873
+					,0.44315
+					,0.222924
+					,0.44315
+					,0.00341809
+					,0.517846
+					,0.222924
+					,0.517846
+					,0.00341809
+					,0.44315
+					,0.223044
+					,0.44315
+					,0.00353873
+					,0.517846
+					,0.00353873
+					,0.517846
+					,0.223044
+					,0.443383
+					,0.222924
+					,0.443383
+					,0.00341809
+					,0.518078
+					,0.00341809
+					,0.518078
+					,0.222924
+					,0.443383
+					,0.223044
+					,0.443383
+					,0.00353873
+					,0.518078
+					,0.223044
+					,0.518078
+					,0.00353873
+					,0.443615
+					,0.222924
+					,0.443615
+					,0.00341809
+					,0.518311
+					,0.222924
+					,0.518311
+					,0.00341809
+					,0.443615
+					,0.223044
+					,0.443615
+					,0.00353873
+					,0.518311
+					,0.00353873
+					,0.518311
+					,0.223044
+					,0.443848
+					,0.222924
+					,0.443848
+					,0.00341809
+					,0.518543
+					,0.00341809
+					,0.518543
+					,0.222924
+					,0.443848
+					,0.223044
+					,0.443848
+					,0.00353873
+					,0.518543
+					,0.223044
+					,0.518543
+					,0.00353873
+					,0.442219
+					,0.222924
+					,0.442219
+					,0.00341809
+					,0.516915
+					,0.222924
+					,0.516915
+					,0.00341809
+					,0.442219
+					,0.223044
+					,0.442219
+					,0.00353873
+					,0.516915
+					,0.00353873
+					,0.516915
+					,0.223044
+					,0.442452
+					,0.222924
+					,0.442452
+					,0.00341809
+					,0.517147
+					,0.00341809
+					,0.517147
+					,0.222924
+					,0.442452
+					,0.223044
+					,0.442452
+					,0.00353873
+					,0.517147
+					,0.223044
+					,0.517147
+					,0.00353873
+					,0.442685
+					,0.222924
+					,0.442685
+					,0.00341809
+					,0.51738
+					,0.222924
+					,0.51738
+					,0.00341809
+					,0.442685
+					,0.223044
+					,0.442685
+					,0.00353873
+					,0.51738
+					,0.00353873
+					,0.51738
+					,0.223044
+					,0.442918
+					,0.222924
+					,0.442918
+					,0.00341809
+					,0.517613
+					,0.00341809
+					,0.517613
+					,0.222924
+					,0.442918
+					,0.223044
+					,0.442918
+					,0.00353873
+					,0.517613
+					,0.223044
+					,0.517613
+					,0.00353873
+					,0.44315
+					,0.222924
+					,0.44315
+					,0.00341809
+					,0.517845
+					,0.222924
+					,0.517845
+					,0.00341809
+					,0.44315
+					,0.223044
+					,0.44315
+					,0.00353873
+					,0.517845
+					,0.00353873
+					,0.517845
+					,0.223044
+					,0.443383
+					,0.222924
+					,0.443383
+					,0.00341809
+					,0.518078
+					,0.00341809
+					,0.518078
+					,0.222924
+					,0.443383
+					,0.223044
+					,0.443383
+					,0.00353873
+					,0.518078
+					,0.223044
+					,0.518078
+					,0.00353873
+				]
+			]
+			,"faces": [
+				[
+					 0
+					,1
+					,2
+				]
+				,[
+					 77
+					,0
+					,2
+				]
+				,[
+					 0
+					,6
+					,9
+				]
+				,[
+					 0
+					,9
+					,1
+				]
+				,[
+					 77
+					,6
+					,0
+				]
+				,[
+					 1
+					,12
+					,2
+				]
+				,[
+					 1
+					,9
+					,14
+				]
+				,[
+					 1
+					,14
+					,12
+				]
+				,[
+					 6
+					,8
+					,9
+				]
+				,[
+					 9
+					,8
+					,14
+				]
+				,[
+					 8
+					,15
+					,14
+				]
+				,[
+					 14
+					,15
+					,19
+				]
+				,[
+					 14
+					,19
+					,20
+				]
+				,[
+					 12
+					,14
+					,20
+				]
+				,[
+					 12
+					,17
+					,2
+				]
+				,[
+					 12
+					,20
+					,17
+				]
+				,[
+					 20
+					,19
+					,24
+				]
+				,[
+					 17
+					,20
+					,24
+				]
+				,[
+					 19
+					,25
+					,24
+				]
+				,[
+					 24
+					,25
+					,29
+				]
+				,[
+					 24
+					,29
+					,30
+				]
+				,[
+					 17
+					,24
+					,22
+				]
+				,[
+					 22
+					,24
+					,30
+				]
+				,[
+					 17
+					,22
+					,2
+				]
+				,[
+					 22
+					,27
+					,2
+				]
+				,[
+					 22
+					,30
+					,27
+				]
+				,[
+					 30
+					,29
+					,34
+				]
+				,[
+					 27
+					,30
+					,34
+				]
+				,[
+					 29
+					,35
+					,34
+				]
+				,[
+					 34
+					,35
+					,39
+				]
+				,[
+					 34
+					,39
+					,40
+				]
+				,[
+					 27
+					,34
+					,32
+				]
+				,[
+					 32
+					,34
+					,40
+				]
+				,[
+					 27
+					,32
+					,2
+				]
+				,[
+					 32
+					,37
+					,2
+				]
+				,[
+					 32
+					,40
+					,37
+				]
+				,[
+					 40
+					,39
+					,44
+				]
+				,[
+					 37
+					,40
+					,44
+				]
+				,[
+					 39
+					,45
+					,44
+				]
+				,[
+					 44
+					,45
+					,49
+				]
+				,[
+					 44
+					,49
+					,50
+				]
+				,[
+					 37
+					,44
+					,42
+				]
+				,[
+					 42
+					,44
+					,50
+				]
+				,[
+					 37
+					,42
+					,2
+				]
+				,[
+					 42
+					,47
+					,2
+				]
+				,[
+					 42
+					,50
+					,47
+				]
+				,[
+					 50
+					,49
+					,54
+				]
+				,[
+					 47
+					,50
+					,54
+				]
+				,[
+					 49
+					,55
+					,54
+				]
+				,[
+					 54
+					,55
+					,59
+				]
+				,[
+					 54
+					,59
+					,60
+				]
+				,[
+					 47
+					,54
+					,52
+				]
+				,[
+					 52
+					,54
+					,60
+				]
+				,[
+					 47
+					,52
+					,2
+				]
+				,[
+					 52
+					,57
+					,2
+				]
+				,[
+					 52
+					,60
+					,57
+				]
+				,[
+					 60
+					,59
+					,64
+				]
+				,[
+					 57
+					,60
+					,64
+				]
+				,[
+					 59
+					,65
+					,64
+				]
+				,[
+					 64
+					,65
+					,69
+				]
+				,[
+					 64
+					,69
+					,70
+				]
+				,[
+					 57
+					,64
+					,62
+				]
+				,[
+					 62
+					,64
+					,70
+				]
+				,[
+					 57
+					,62
+					,2
+				]
+				,[
+					 62
+					,67
+					,2
+				]
+				,[
+					 62
+					,70
+					,67
+				]
+				,[
+					 70
+					,69
+					,74
+				]
+				,[
+					 67
+					,70
+					,74
+				]
+				,[
+					 69
+					,75
+					,74
+				]
+				,[
+					 74
+					,75
+					,79
+				]
+				,[
+					 74
+					,79
+					,80
+				]
+				,[
+					 67
+					,74
+					,72
+				]
+				,[
+					 72
+					,74
+					,80
+				]
+				,[
+					 67
+					,72
+					,2
+				]
+				,[
+					 72
+					,77
+					,2
+				]
+				,[
+					 72
+					,80
+					,77
+				]
+				,[
+					 80
+					,79
+					,6
+				]
+				,[
+					 77
+					,80
+					,6
+				]
+				,[
+					 79
+					,7
+					,6
+				]
+				,[
+					 6
+					,7
+					,8
+				]
+				,[
+					 3
+					,4
+					,5
+				]
+				,[
+					 10
+					,3
+					,11
+				]
+				,[
+					 3
+					,5
+					,11
+				]
+				,[
+					 78
+					,4
+					,3
+				]
+				,[
+					 81
+					,78
+					,3
+				]
+				,[
+					 81
+					,3
+					,10
+				]
+				,[
+					 5
+					,4
+					,13
+				]
+				,[
+					 11
+					,5
+					,13
+				]
+				,[
+					 11
+					,13
+					,16
+				]
+				,[
+					 13
+					,4
+					,18
+				]
+				,[
+					 16
+					,13
+					,21
+				]
+				,[
+					 13
+					,18
+					,21
+				]
+				,[
+					 18
+					,4
+					,23
+				]
+				,[
+					 21
+					,18
+					,23
+				]
+				,[
+					 21
+					,23
+					,26
+				]
+				,[
+					 23
+					,4
+					,28
+				]
+				,[
+					 26
+					,23
+					,31
+				]
+				,[
+					 23
+					,28
+					,31
+				]
+				,[
+					 28
+					,4
+					,33
+				]
+				,[
+					 31
+					,28
+					,33
+				]
+				,[
+					 31
+					,33
+					,36
+				]
+				,[
+					 33
+					,4
+					,38
+				]
+				,[
+					 36
+					,33
+					,41
+				]
+				,[
+					 33
+					,38
+					,41
+				]
+				,[
+					 38
+					,4
+					,43
+				]
+				,[
+					 41
+					,38
+					,43
+				]
+				,[
+					 41
+					,43
+					,46
+				]
+				,[
+					 43
+					,4
+					,48
+				]
+				,[
+					 46
+					,43
+					,51
+				]
+				,[
+					 43
+					,48
+					,51
+				]
+				,[
+					 48
+					,4
+					,53
+				]
+				,[
+					 51
+					,48
+					,53
+				]
+				,[
+					 51
+					,53
+					,56
+				]
+				,[
+					 53
+					,4
+					,58
+				]
+				,[
+					 56
+					,53
+					,61
+				]
+				,[
+					 53
+					,58
+					,61
+				]
+				,[
+					 58
+					,4
+					,63
+				]
+				,[
+					 61
+					,58
+					,63
+				]
+				,[
+					 61
+					,63
+					,66
+				]
+				,[
+					 63
+					,4
+					,68
+				]
+				,[
+					 66
+					,63
+					,71
+				]
+				,[
+					 63
+					,68
+					,71
+				]
+				,[
+					 68
+					,4
+					,73
+				]
+				,[
+					 73
+					,4
+					,78
+				]
+				,[
+					 71
+					,68
+					,73
+				]
+				,[
+					 71
+					,73
+					,76
+				]
+				,[
+					 76
+					,73
+					,81
+				]
+				,[
+					 73
+					,78
+					,81
+				]
+				,[
+					 82
+					,83
+					,84
+				]
+				,[
+					 83
+					,85
+					,84
+				]
+				,[
+					 86
+					,87
+					,88
+				]
+				,[
+					 86
+					,88
+					,89
+				]
+				,[
+					 90
+					,91
+					,92
+				]
+				,[
+					 90
+					,92
+					,93
+				]
+				,[
+					 94
+					,95
+					,96
+				]
+				,[
+					 95
+					,97
+					,96
+				]
+				,[
+					 98
+					,99
+					,100
+				]
+				,[
+					 99
+					,101
+					,100
+				]
+				,[
+					 102
+					,103
+					,104
+				]
+				,[
+					 102
+					,104
+					,105
+				]
+				,[
+					 106
+					,107
+					,108
+				]
+				,[
+					 106
+					,108
+					,109
+				]
+				,[
+					 110
+					,111
+					,112
+				]
+				,[
+					 111
+					,113
+					,112
+				]
+				,[
+					 114
+					,115
+					,116
+				]
+				,[
+					 115
+					,117
+					,116
+				]
+				,[
+					 118
+					,119
+					,120
+				]
+				,[
+					 118
+					,120
+					,121
+				]
+				,[
+					 122
+					,123
+					,124
+				]
+				,[
+					 122
+					,124
+					,125
+				]
+				,[
+					 126
+					,127
+					,128
+				]
+				,[
+					 127
+					,129
+					,128
+				]
+				,[
+					 130
+					,131
+					,132
+				]
+				,[
+					 131
+					,133
+					,132
+				]
+				,[
+					 134
+					,135
+					,136
+				]
+				,[
+					 134
+					,136
+					,137
+				]
+				,[
+					 138
+					,139
+					,140
+				]
+				,[
+					 138
+					,140
+					,141
+				]
+				,[
+					 142
+					,143
+					,144
+				]
+				,[
+					 143
+					,145
+					,144
+				]
+				,[
+					 146
+					,147
+					,148
+				]
+				,[
+					 147
+					,149
+					,148
+				]
+				,[
+					 150
+					,151
+					,152
+				]
+				,[
+					 150
+					,152
+					,153
+				]
+				,[
+					 154
+					,155
+					,156
+				]
+				,[
+					 154
+					,156
+					,157
+				]
+				,[
+					 158
+					,159
+					,160
+				]
+				,[
+					 159
+					,161
+					,160
+				]
+				,[
+					 162
+					,163
+					,164
+				]
+				,[
+					 163
+					,165
+					,164
+				]
+				,[
+					 166
+					,167
+					,168
+				]
+				,[
+					 166
+					,168
+					,169
+				]
+				,[
+					 170
+					,171
+					,172
+				]
+				,[
+					 170
+					,172
+					,173
+				]
+				,[
+					 174
+					,175
+					,176
+				]
+				,[
+					 175
+					,177
+					,176
+				]
+				,[
+					 178
+					,179
+					,180
+				]
+				,[
+					 179
+					,181
+					,180
+				]
+				,[
+					 182
+					,183
+					,184
+				]
+				,[
+					 182
+					,184
+					,185
+				]
+				,[
+					 186
+					,187
+					,188
+				]
+				,[
+					 186
+					,188
+					,189
+				]
+				,[
+					 190
+					,191
+					,192
+				]
+				,[
+					 191
+					,193
+					,192
+				]
+				,[
+					 194
+					,195
+					,196
+				]
+				,[
+					 195
+					,197
+					,196
+				]
+				,[
+					 198
+					,199
+					,200
+				]
+				,[
+					 198
+					,200
+					,201
+				]
+				,[
+					 202
+					,203
+					,204
+				]
+				,[
+					 202
+					,204
+					,205
+				]
+				,[
+					 206
+					,207
+					,208
+				]
+				,[
+					 207
+					,209
+					,208
+				]
+				,[
+					 210
+					,211
+					,212
+				]
+				,[
+					 210
+					,222
+					,211
+				]
+				,[
+					 210
+					,227
+					,222
+				]
+				,[
+					 210
+					,232
+					,227
+				]
+				,[
+					 210
+					,237
+					,232
+				]
+				,[
+					 210
+					,242
+					,237
+				]
+				,[
+					 210
+					,247
+					,242
+				]
+				,[
+					 210
+					,252
+					,247
+				]
+				,[
+					 210
+					,257
+					,252
+				]
+				,[
+					 210
+					,262
+					,257
+				]
+				,[
+					 210
+					,267
+					,262
+				]
+				,[
+					 210
+					,272
+					,267
+				]
+				,[
+					 210
+					,277
+					,272
+				]
+				,[
+					 210
+					,282
+					,277
+				]
+				,[
+					 210
+					,287
+					,282
+				]
+				,[
+					 210
+					,212
+					,287
+				]
+				,[
+					 272
+					,274
+					,267
+				]
+				,[
+					 280
+					,274
+					,272
+				]
+				,[
+					 277
+					,280
+					,272
+				]
+				,[
+					 284
+					,280
+					,277
+				]
+				,[
+					 282
+					,284
+					,277
+				]
+				,[
+					 290
+					,284
+					,282
+				]
+				,[
+					 287
+					,290
+					,282
+				]
+				,[
+					 218
+					,290
+					,287
+				]
+				,[
+					 212
+					,218
+					,287
+				]
+				,[
+					 219
+					,218
+					,212
+				]
+				,[
+					 211
+					,219
+					,212
+				]
+				,[
+					 216
+					,217
+					,218
+				]
+				,[
+					 219
+					,216
+					,218
+				]
+				,[
+					 218
+					,289
+					,290
+				]
+				,[
+					 218
+					,217
+					,289
+				]
+				,[
+					 290
+					,289
+					,284
+				]
+				,[
+					 289
+					,285
+					,284
+				]
+				,[
+					 284
+					,285
+					,279
+				]
+				,[
+					 284
+					,279
+					,280
+				]
+				,[
+					 279
+					,275
+					,274
+				]
+				,[
+					 280
+					,279
+					,274
+				]
+				,[
+					 274
+					,275
+					,269
+				]
+				,[
+					 274
+					,269
+					,270
+				]
+				,[
+					 274
+					,270
+					,267
+				]
+				,[
+					 269
+					,265
+					,264
+				]
+				,[
+					 270
+					,269
+					,264
+				]
+				,[
+					 270
+					,264
+					,262
+				]
+				,[
+					 267
+					,270
+					,262
+				]
+				,[
+					 264
+					,259
+					,260
+				]
+				,[
+					 264
+					,265
+					,259
+				]
+				,[
+					 264
+					,260
+					,257
+				]
+				,[
+					 262
+					,264
+					,257
+				]
+				,[
+					 259
+					,255
+					,254
+				]
+				,[
+					 260
+					,259
+					,254
+				]
+				,[
+					 260
+					,254
+					,252
+				]
+				,[
+					 257
+					,260
+					,252
+				]
+				,[
+					 254
+					,249
+					,250
+				]
+				,[
+					 254
+					,255
+					,249
+				]
+				,[
+					 254
+					,250
+					,247
+				]
+				,[
+					 252
+					,254
+					,247
+				]
+				,[
+					 249
+					,245
+					,244
+				]
+				,[
+					 250
+					,249
+					,244
+				]
+				,[
+					 250
+					,244
+					,242
+				]
+				,[
+					 247
+					,250
+					,242
+				]
+				,[
+					 244
+					,239
+					,240
+				]
+				,[
+					 244
+					,245
+					,239
+				]
+				,[
+					 244
+					,240
+					,237
+				]
+				,[
+					 242
+					,244
+					,237
+				]
+				,[
+					 239
+					,235
+					,234
+				]
+				,[
+					 240
+					,239
+					,234
+				]
+				,[
+					 240
+					,234
+					,232
+				]
+				,[
+					 237
+					,240
+					,232
+				]
+				,[
+					 234
+					,229
+					,230
+				]
+				,[
+					 234
+					,235
+					,229
+				]
+				,[
+					 234
+					,230
+					,227
+				]
+				,[
+					 232
+					,234
+					,227
+				]
+				,[
+					 229
+					,225
+					,224
+				]
+				,[
+					 230
+					,229
+					,224
+				]
+				,[
+					 230
+					,224
+					,222
+				]
+				,[
+					 227
+					,230
+					,222
+				]
+				,[
+					 224
+					,216
+					,219
+				]
+				,[
+					 224
+					,225
+					,216
+				]
+				,[
+					 224
+					,219
+					,211
+				]
+				,[
+					 222
+					,224
+					,211
+				]
+				,[
+					 213
+					,214
+					,215
+				]
+				,[
+					 220
+					,213
+					,215
+				]
+				,[
+					 223
+					,214
+					,213
+				]
+				,[
+					 223
+					,213
+					,220
+				]
+				,[
+					 220
+					,215
+					,221
+				]
+				,[
+					 215
+					,214
+					,288
+				]
+				,[
+					 215
+					,288
+					,291
+				]
+				,[
+					 221
+					,215
+					,291
+				]
+				,[
+					 226
+					,223
+					,220
+				]
+				,[
+					 228
+					,214
+					,223
+				]
+				,[
+					 231
+					,223
+					,226
+				]
+				,[
+					 231
+					,228
+					,223
+				]
+				,[
+					 233
+					,214
+					,228
+				]
+				,[
+					 233
+					,228
+					,231
+				]
+				,[
+					 236
+					,233
+					,231
+				]
+				,[
+					 238
+					,214
+					,233
+				]
+				,[
+					 241
+					,233
+					,236
+				]
+				,[
+					 241
+					,238
+					,233
+				]
+				,[
+					 243
+					,214
+					,238
+				]
+				,[
+					 243
+					,238
+					,241
+				]
+				,[
+					 246
+					,243
+					,241
+				]
+				,[
+					 248
+					,214
+					,243
+				]
+				,[
+					 251
+					,243
+					,246
+				]
+				,[
+					 251
+					,248
+					,243
+				]
+				,[
+					 253
+					,214
+					,248
+				]
+				,[
+					 253
+					,248
+					,251
+				]
+				,[
+					 256
+					,253
+					,251
+				]
+				,[
+					 258
+					,214
+					,253
+				]
+				,[
+					 261
+					,253
+					,256
+				]
+				,[
+					 261
+					,258
+					,253
+				]
+				,[
+					 263
+					,214
+					,258
+				]
+				,[
+					 263
+					,258
+					,261
+				]
+				,[
+					 266
+					,263
+					,261
+				]
+				,[
+					 268
+					,214
+					,263
+				]
+				,[
+					 271
+					,263
+					,266
+				]
+				,[
+					 271
+					,268
+					,263
+				]
+				,[
+					 273
+					,214
+					,268
+				]
+				,[
+					 273
+					,268
+					,271
+				]
+				,[
+					 278
+					,214
+					,273
+				]
+				,[
+					 283
+					,214
+					,278
+				]
+				,[
+					 288
+					,214
+					,283
+				]
+				,[
+					 276
+					,273
+					,271
+				]
+				,[
+					 281
+					,273
+					,276
+				]
+				,[
+					 281
+					,278
+					,273
+				]
+				,[
+					 283
+					,278
+					,281
+				]
+				,[
+					 286
+					,283
+					,281
+				]
+				,[
+					 291
+					,283
+					,286
+				]
+				,[
+					 291
+					,288
+					,283
+				]
+				,[
+					 292
+					,293
+					,294
+				]
+				,[
+					 292
+					,295
+					,293
+				]
+				,[
+					 296
+					,297
+					,298
+				]
+				,[
+					 299
+					,296
+					,298
+				]
+				,[
+					 300
+					,301
+					,302
+				]
+				,[
+					 303
+					,300
+					,302
+				]
+				,[
+					 304
+					,305
+					,306
+				]
+				,[
+					 304
+					,307
+					,305
+				]
+				,[
+					 308
+					,309
+					,310
+				]
+				,[
+					 308
+					,311
+					,309
+				]
+				,[
+					 312
+					,313
+					,314
+				]
+				,[
+					 315
+					,312
+					,314
+				]
+				,[
+					 316
+					,317
+					,318
+				]
+				,[
+					 319
+					,316
+					,318
+				]
+				,[
+					 320
+					,321
+					,322
+				]
+				,[
+					 320
+					,323
+					,321
+				]
+				,[
+					 324
+					,325
+					,326
+				]
+				,[
+					 324
+					,327
+					,325
+				]
+				,[
+					 328
+					,329
+					,330
+				]
+				,[
+					 331
+					,328
+					,330
+				]
+				,[
+					 332
+					,333
+					,334
+				]
+				,[
+					 335
+					,332
+					,334
+				]
+				,[
+					 336
+					,337
+					,338
+				]
+				,[
+					 336
+					,339
+					,337
+				]
+				,[
+					 340
+					,341
+					,342
+				]
+				,[
+					 340
+					,343
+					,341
+				]
+				,[
+					 344
+					,345
+					,346
+				]
+				,[
+					 347
+					,344
+					,346
+				]
+				,[
+					 348
+					,349
+					,350
+				]
+				,[
+					 351
+					,348
+					,350
+				]
+				,[
+					 352
+					,353
+					,354
+				]
+				,[
+					 352
+					,355
+					,353
+				]
+				,[
+					 356
+					,357
+					,358
+				]
+				,[
+					 356
+					,359
+					,357
+				]
+				,[
+					 360
+					,361
+					,362
+				]
+				,[
+					 363
+					,360
+					,362
+				]
+				,[
+					 364
+					,365
+					,366
+				]
+				,[
+					 367
+					,364
+					,366
+				]
+				,[
+					 368
+					,369
+					,370
+				]
+				,[
+					 368
+					,371
+					,369
+				]
+				,[
+					 372
+					,373
+					,374
+				]
+				,[
+					 372
+					,375
+					,373
+				]
+				,[
+					 376
+					,377
+					,378
+				]
+				,[
+					 379
+					,376
+					,378
+				]
+				,[
+					 380
+					,381
+					,382
+				]
+				,[
+					 383
+					,380
+					,382
+				]
+				,[
+					 384
+					,385
+					,386
+				]
+				,[
+					 384
+					,387
+					,385
+				]
+				,[
+					 388
+					,389
+					,390
+				]
+				,[
+					 388
+					,391
+					,389
+				]
+				,[
+					 392
+					,393
+					,394
+				]
+				,[
+					 395
+					,392
+					,394
+				]
+				,[
+					 396
+					,397
+					,398
+				]
+				,[
+					 399
+					,396
+					,398
+				]
+				,[
+					 400
+					,401
+					,402
+				]
+				,[
+					 400
+					,403
+					,401
+				]
+				,[
+					 404
+					,405
+					,406
+				]
+				,[
+					 404
+					,407
+					,405
+				]
+				,[
+					 408
+					,409
+					,410
+				]
+				,[
+					 411
+					,408
+					,410
+				]
+				,[
+					 412
+					,413
+					,414
+				]
+				,[
+					 415
+					,412
+					,414
+				]
+				,[
+					 416
+					,417
+					,418
+				]
+				,[
+					 416
+					,419
+					,417
+				]
+				,[
+					 420
+					,421
+					,422
+				]
+				,[
+					 420
+					,432
+					,421
+				]
+				,[
+					 420
+					,437
+					,432
+				]
+				,[
+					 420
+					,442
+					,437
+				]
+				,[
+					 420
+					,447
+					,442
+				]
+				,[
+					 420
+					,452
+					,447
+				]
+				,[
+					 420
+					,457
+					,452
+				]
+				,[
+					 420
+					,462
+					,457
+				]
+				,[
+					 420
+					,467
+					,462
+				]
+				,[
+					 420
+					,472
+					,467
+				]
+				,[
+					 420
+					,477
+					,472
+				]
+				,[
+					 420
+					,482
+					,477
+				]
+				,[
+					 420
+					,487
+					,482
+				]
+				,[
+					 420
+					,492
+					,487
+				]
+				,[
+					 420
+					,497
+					,492
+				]
+				,[
+					 420
+					,422
+					,497
+				]
+				,[
+					 482
+					,484
+					,477
+				]
+				,[
+					 490
+					,484
+					,482
+				]
+				,[
+					 487
+					,490
+					,482
+				]
+				,[
+					 494
+					,490
+					,487
+				]
+				,[
+					 492
+					,494
+					,487
+				]
+				,[
+					 500
+					,494
+					,492
+				]
+				,[
+					 497
+					,500
+					,492
+				]
+				,[
+					 428
+					,500
+					,497
+				]
+				,[
+					 422
+					,428
+					,497
+				]
+				,[
+					 429
+					,428
+					,422
+				]
+				,[
+					 421
+					,429
+					,422
+				]
+				,[
+					 426
+					,427
+					,428
+				]
+				,[
+					 429
+					,426
+					,428
+				]
+				,[
+					 428
+					,499
+					,500
+				]
+				,[
+					 428
+					,427
+					,499
+				]
+				,[
+					 500
+					,499
+					,494
+				]
+				,[
+					 499
+					,495
+					,494
+				]
+				,[
+					 494
+					,495
+					,489
+				]
+				,[
+					 494
+					,489
+					,490
+				]
+				,[
+					 489
+					,485
+					,484
+				]
+				,[
+					 490
+					,489
+					,484
+				]
+				,[
+					 484
+					,485
+					,479
+				]
+				,[
+					 484
+					,479
+					,480
+				]
+				,[
+					 484
+					,480
+					,477
+				]
+				,[
+					 479
+					,475
+					,474
+				]
+				,[
+					 480
+					,479
+					,474
+				]
+				,[
+					 480
+					,474
+					,472
+				]
+				,[
+					 477
+					,480
+					,472
+				]
+				,[
+					 474
+					,469
+					,470
+				]
+				,[
+					 474
+					,475
+					,469
+				]
+				,[
+					 474
+					,470
+					,467
+				]
+				,[
+					 472
+					,474
+					,467
+				]
+				,[
+					 469
+					,465
+					,464
+				]
+				,[
+					 470
+					,469
+					,464
+				]
+				,[
+					 470
+					,464
+					,462
+				]
+				,[
+					 467
+					,470
+					,462
+				]
+				,[
+					 464
+					,459
+					,460
+				]
+				,[
+					 464
+					,465
+					,459
+				]
+				,[
+					 464
+					,460
+					,457
+				]
+				,[
+					 462
+					,464
+					,457
+				]
+				,[
+					 459
+					,455
+					,454
+				]
+				,[
+					 460
+					,459
+					,454
+				]
+				,[
+					 460
+					,454
+					,452
+				]
+				,[
+					 457
+					,460
+					,452
+				]
+				,[
+					 454
+					,449
+					,450
+				]
+				,[
+					 454
+					,455
+					,449
+				]
+				,[
+					 454
+					,450
+					,447
+				]
+				,[
+					 452
+					,454
+					,447
+				]
+				,[
+					 449
+					,445
+					,444
+				]
+				,[
+					 450
+					,449
+					,444
+				]
+				,[
+					 450
+					,444
+					,442
+				]
+				,[
+					 447
+					,450
+					,442
+				]
+				,[
+					 444
+					,439
+					,440
+				]
+				,[
+					 444
+					,445
+					,439
+				]
+				,[
+					 444
+					,440
+					,437
+				]
+				,[
+					 442
+					,444
+					,437
+				]
+				,[
+					 439
+					,435
+					,434
+				]
+				,[
+					 440
+					,439
+					,434
+				]
+				,[
+					 440
+					,434
+					,432
+				]
+				,[
+					 437
+					,440
+					,432
+				]
+				,[
+					 434
+					,426
+					,429
+				]
+				,[
+					 434
+					,435
+					,426
+				]
+				,[
+					 434
+					,429
+					,421
+				]
+				,[
+					 432
+					,434
+					,421
+				]
+				,[
+					 423
+					,424
+					,425
+				]
+				,[
+					 430
+					,423
+					,425
+				]
+				,[
+					 433
+					,424
+					,423
+				]
+				,[
+					 433
+					,423
+					,430
+				]
+				,[
+					 430
+					,425
+					,431
+				]
+				,[
+					 425
+					,424
+					,498
+				]
+				,[
+					 425
+					,498
+					,501
+				]
+				,[
+					 431
+					,425
+					,501
+				]
+				,[
+					 436
+					,433
+					,430
+				]
+				,[
+					 438
+					,424
+					,433
+				]
+				,[
+					 441
+					,433
+					,436
+				]
+				,[
+					 441
+					,438
+					,433
+				]
+				,[
+					 443
+					,424
+					,438
+				]
+				,[
+					 443
+					,438
+					,441
+				]
+				,[
+					 446
+					,443
+					,441
+				]
+				,[
+					 448
+					,424
+					,443
+				]
+				,[
+					 451
+					,443
+					,446
+				]
+				,[
+					 451
+					,448
+					,443
+				]
+				,[
+					 453
+					,424
+					,448
+				]
+				,[
+					 453
+					,448
+					,451
+				]
+				,[
+					 456
+					,453
+					,451
+				]
+				,[
+					 458
+					,424
+					,453
+				]
+				,[
+					 461
+					,453
+					,456
+				]
+				,[
+					 461
+					,458
+					,453
+				]
+				,[
+					 463
+					,424
+					,458
+				]
+				,[
+					 463
+					,458
+					,461
+				]
+				,[
+					 466
+					,463
+					,461
+				]
+				,[
+					 468
+					,424
+					,463
+				]
+				,[
+					 471
+					,463
+					,466
+				]
+				,[
+					 471
+					,468
+					,463
+				]
+				,[
+					 473
+					,424
+					,468
+				]
+				,[
+					 473
+					,468
+					,471
+				]
+				,[
+					 476
+					,473
+					,471
+				]
+				,[
+					 478
+					,424
+					,473
+				]
+				,[
+					 481
+					,473
+					,476
+				]
+				,[
+					 481
+					,478
+					,473
+				]
+				,[
+					 483
+					,424
+					,478
+				]
+				,[
+					 483
+					,478
+					,481
+				]
+				,[
+					 488
+					,424
+					,483
+				]
+				,[
+					 493
+					,424
+					,488
+				]
+				,[
+					 498
+					,424
+					,493
+				]
+				,[
+					 486
+					,483
+					,481
+				]
+				,[
+					 491
+					,483
+					,486
+				]
+				,[
+					 491
+					,488
+					,483
+				]
+				,[
+					 493
+					,488
+					,491
+				]
+				,[
+					 496
+					,493
+					,491
+				]
+				,[
+					 501
+					,493
+					,496
+				]
+				,[
+					 501
+					,498
+					,493
+				]
+				,[
+					 502
+					,503
+					,504
+				]
+				,[
+					 502
+					,505
+					,503
+				]
+				,[
+					 506
+					,507
+					,508
+				]
+				,[
+					 509
+					,506
+					,508
+				]
+				,[
+					 510
+					,511
+					,512
+				]
+				,[
+					 513
+					,510
+					,512
+				]
+				,[
+					 514
+					,515
+					,516
+				]
+				,[
+					 514
+					,517
+					,515
+				]
+				,[
+					 518
+					,519
+					,520
+				]
+				,[
+					 518
+					,521
+					,519
+				]
+				,[
+					 522
+					,523
+					,524
+				]
+				,[
+					 525
+					,522
+					,524
+				]
+				,[
+					 526
+					,527
+					,528
+				]
+				,[
+					 529
+					,526
+					,528
+				]
+				,[
+					 530
+					,531
+					,532
+				]
+				,[
+					 530
+					,533
+					,531
+				]
+				,[
+					 534
+					,535
+					,536
+				]
+				,[
+					 534
+					,537
+					,535
+				]
+				,[
+					 538
+					,539
+					,540
+				]
+				,[
+					 541
+					,538
+					,540
+				]
+				,[
+					 542
+					,543
+					,544
+				]
+				,[
+					 545
+					,542
+					,544
+				]
+				,[
+					 546
+					,547
+					,548
+				]
+				,[
+					 546
+					,549
+					,547
+				]
+				,[
+					 550
+					,551
+					,552
+				]
+				,[
+					 550
+					,553
+					,551
+				]
+				,[
+					 554
+					,555
+					,556
+				]
+				,[
+					 557
+					,554
+					,556
+				]
+				,[
+					 558
+					,559
+					,560
+				]
+				,[
+					 561
+					,558
+					,560
+				]
+				,[
+					 562
+					,563
+					,564
+				]
+				,[
+					 562
+					,565
+					,563
+				]
+				,[
+					 566
+					,567
+					,568
+				]
+				,[
+					 566
+					,569
+					,567
+				]
+				,[
+					 570
+					,571
+					,572
+				]
+				,[
+					 573
+					,570
+					,572
+				]
+				,[
+					 574
+					,575
+					,576
+				]
+				,[
+					 577
+					,574
+					,576
+				]
+				,[
+					 578
+					,579
+					,580
+				]
+				,[
+					 578
+					,581
+					,579
+				]
+				,[
+					 582
+					,583
+					,584
+				]
+				,[
+					 582
+					,585
+					,583
+				]
+				,[
+					 586
+					,587
+					,588
+				]
+				,[
+					 589
+					,586
+					,588
+				]
+				,[
+					 590
+					,591
+					,592
+				]
+				,[
+					 593
+					,590
+					,592
+				]
+				,[
+					 594
+					,595
+					,596
+				]
+				,[
+					 594
+					,597
+					,595
+				]
+				,[
+					 598
+					,599
+					,600
+				]
+				,[
+					 598
+					,601
+					,599
+				]
+				,[
+					 602
+					,603
+					,604
+				]
+				,[
+					 605
+					,602
+					,604
+				]
+				,[
+					 606
+					,607
+					,608
+				]
+				,[
+					 609
+					,606
+					,608
+				]
+				,[
+					 610
+					,611
+					,612
+				]
+				,[
+					 610
+					,613
+					,611
+				]
+				,[
+					 614
+					,615
+					,616
+				]
+				,[
+					 614
+					,617
+					,615
+				]
+				,[
+					 618
+					,619
+					,620
+				]
+				,[
+					 621
+					,618
+					,620
+				]
+				,[
+					 622
+					,623
+					,624
+				]
+				,[
+					 625
+					,622
+					,624
+				]
+				,[
+					 626
+					,627
+					,628
+				]
+				,[
+					 626
+					,629
+					,627
+				]
+				,[
+					 630
+					,631
+					,632
+				]
+				,[
+					 631
+					,633
+					,632
+				]
+				,[
+					 634
+					,635
+					,636
+				]
+				,[
+					 635
+					,637
+					,636
+				]
+				,[
+					 638
+					,639
+					,640
+				]
+				,[
+					 639
+					,641
+					,640
+				]
+				,[
+					 642
+					,643
+					,644
+				]
+				,[
+					 643
+					,645
+					,644
+				]
+				,[
+					 646
+					,647
+					,648
+				]
+				,[
+					 674
+					,647
+					,646
+				]
+				,[
+					 674
+					,646
+					,675
+				]
+				,[
+					 647
+					,649
+					,648
+				]
+				,[
+					 647
+					,664
+					,649
+				]
+				,[
+					 673
+					,664
+					,647
+				]
+				,[
+					 673
+					,647
+					,674
+				]
+				,[
+					 666
+					,648
+					,649
+				]
+				,[
+					 664
+					,665
+					,649
+				]
+				,[
+					 666
+					,649
+					,667
+				]
+				,[
+					 669
+					,649
+					,670
+				]
+				,[
+					 669
+					,670
+					,671
+				]
+				,[
+					 650
+					,651
+					,652
+				]
+				,[
+					 651
+					,653
+					,652
+				]
+				,[
+					 652
+					,654
+					,663
+				]
+				,[
+					 652
+					,663
+					,668
+				]
+				,[
+					 653
+					,654
+					,652
+				]
+				,[
+					 653
+					,655
+					,654
+				]
+				,[
+					 654
+					,655
+					,656
+				]
+				,[
+					 656
+					,662
+					,654
+				]
+				,[
+					 662
+					,663
+					,654
+				]
+				,[
+					 655
+					,657
+					,656
+				]
+				,[
+					 658
+					,656
+					,657
+				]
+				,[
+					 672
+					,662
+					,656
+				]
+				,[
+					 672
+					,656
+					,658
+				]
+				,[
+					 658
+					,657
+					,659
+				]
+				,[
+					 658
+					,659
+					,660
+				]
+				,[
+					 659
+					,661
+					,660
+				]
+				,[
+					 676
+					,677
+					,678
+				]
+				,[
+					 676
+					,679
+					,677
+				]
+				,[
+					 680
+					,681
+					,682
+				]
+				,[
+					 680
+					,683
+					,681
+				]
+				,[
+					 684
+					,685
+					,686
+				]
+				,[
+					 684
+					,687
+					,685
+				]
+				,[
+					 688
+					,689
+					,690
+				]
+				,[
+					 688
+					,691
+					,689
+				]
+				,[
+					 692
+					,693
+					,694
+				]
+				,[
+					 692
+					,695
+					,693
+				]
+				,[
+					 695
+					,692
+					,712
+				]
+				,[
+					 695
+					,710
+					,693
+				]
+				,[
+					 693
+					,710
+					,705
+				]
+				,[
+					 707
+					,693
+					,705
+				]
+				,[
+					 694
+					,693
+					,707
+				]
+				,[
+					 723
+					,694
+					,707
+				]
+				,[
+					 704
+					,707
+					,705
+				]
+				,[
+					 704
+					,705
+					,706
+				]
+				,[
+					 695
+					,711
+					,710
+				]
+				,[
+					 713
+					,695
+					,712
+				]
+				,[
+					 716
+					,695
+					,697
+				]
+				,[
+					 699
+					,716
+					,697
+				]
+				,[
+					 696
+					,697
+					,698
+				]
+				,[
+					 696
+					,699
+					,697
+				]
+				,[
+					 700
+					,701
+					,702
+				]
+				,[
+					 700
+					,703
+					,701
+				]
+				,[
+					 702
+					,708
+					,700
+				]
+				,[
+					 703
+					,700
+					,719
+				]
+				,[
+					 700
+					,708
+					,721
+				]
+				,[
+					 722
+					,700
+					,721
+				]
+				,[
+					 702
+					,701
+					,717
+				]
+				,[
+					 718
+					,702
+					,717
+				]
+				,[
+					 702
+					,709
+					,708
+				]
+				,[
+					 709
+					,702
+					,714
+				]
+				,[
+					 715
+					,709
+					,714
+				]
+				,[
+					 720
+					,703
+					,719
+				]
+				,[
+					 724
+					,725
+					,726
+				]
+				,[
+					 725
+					,727
+					,726
+				]
+				,[
+					 728
+					,729
+					,730
+				]
+				,[
+					 729
+					,731
+					,730
+				]
+				,[
+					 732
+					,733
+					,734
+				]
+				,[
+					 735
+					,736
+					,734
+				]
+				,[
+					 737
+					,738
+					,739
+				]
+				,[
+					 738
+					,740
+					,739
+				]
+				,[
+					 741
+					,742
+					,743
+				]
+				,[
+					 742
+					,744
+					,743
+				]
+				,[
+					 745
+					,746
+					,747
+				]
+				,[
+					 747
+					,748
+					,745
+				]
+				,[
+					 748
+					,749
+					,745
+				]
+				,[
+					 745
+					,752
+					,753
+				]
+				,[
+					 745
+					,753
+					,754
+				]
+				,[
+					 748
+					,750
+					,751
+				]
+				,[
+					 751
+					,749
+					,748
+				]
+				,[
+					 754
+					,753
+					,755
+				]
+				,[
+					 754
+					,755
+					,756
+				]
+				,[
+					 773
+					,753
+					,752
+				]
+				,[
+					 752
+					,774
+					,773
+				]
+				,[
+					 752
+					,775
+					,774
+				]
+				,[
+					 776
+					,777
+					,774
+				]
+				,[
+					 774
+					,775
+					,776
+				]
+				,[
+					 757
+					,758
+					,759
+				]
+				,[
+					 757
+					,759
+					,760
+				]
+				,[
+					 761
+					,762
+					,763
+				]
+				,[
+					 761
+					,763
+					,764
+				]
+				,[
+					 765
+					,766
+					,767
+				]
+				,[
+					 765
+					,767
+					,768
+				]
+				,[
+					 769
+					,770
+					,771
+				]
+				,[
+					 769
+					,771
+					,772
+				]
+				,[
+					 778
+					,779
+					,780
+				]
+				,[
+					 779
+					,781
+					,780
+				]
+				,[
+					 794
+					,781
+					,779
+				]
+				,[
+					 794
+					,779
+					,795
+				]
+				,[
+					 780
+					,781
+					,782
+				]
+				,[
+					 780
+					,782
+					,783
+				]
+				,[
+					 796
+					,782
+					,781
+				]
+				,[
+					 796
+					,781
+					,794
+				]
+				,[
+					 802
+					,794
+					,795
+				]
+				,[
+					 804
+					,796
+					,794
+				]
+				,[
+					 804
+					,794
+					,802
+				]
+				,[
+					 802
+					,795
+					,803
+				]
+				,[
+					 810
+					,802
+					,803
+				]
+				,[
+					 812
+					,804
+					,802
+				]
+				,[
+					 812
+					,802
+					,810
+				]
+				,[
+					 805
+					,796
+					,804
+				]
+				,[
+					 813
+					,805
+					,804
+				]
+				,[
+					 813
+					,804
+					,812
+				]
+				,[
+					 797
+					,782
+					,796
+				]
+				,[
+					 805
+					,797
+					,796
+				]
+				,[
+					 797
+					,785
+					,782
+				]
+				,[
+					 782
+					,785
+					,784
+				]
+				,[
+					 783
+					,782
+					,784
+				]
+				,[
+					 820
+					,812
+					,810
+				]
+				,[
+					 821
+					,813
+					,812
+				]
+				,[
+					 821
+					,812
+					,820
+				]
+				,[
+					 820
+					,810
+					,818
+				]
+				,[
+					 818
+					,810
+					,811
+				]
+				,[
+					 818
+					,811
+					,819
+				]
+				,[
+					 810
+					,803
+					,811
+				]
+				,[
+					 786
+					,787
+					,788
+				]
+				,[
+					 786
+					,788
+					,789
+				]
+				,[
+					 798
+					,788
+					,787
+				]
+				,[
+					 798
+					,787
+					,799
+				]
+				,[
+					 789
+					,788
+					,790
+				]
+				,[
+					 788
+					,791
+					,790
+				]
+				,[
+					 800
+					,791
+					,788
+				]
+				,[
+					 800
+					,788
+					,798
+				]
+				,[
+					 806
+					,798
+					,799
+				]
+				,[
+					 808
+					,800
+					,798
+				]
+				,[
+					 808
+					,798
+					,806
+				]
+				,[
+					 806
+					,799
+					,807
+				]
+				,[
+					 814
+					,806
+					,807
+				]
+				,[
+					 816
+					,808
+					,806
+				]
+				,[
+					 816
+					,806
+					,814
+				]
+				,[
+					 809
+					,800
+					,808
+				]
+				,[
+					 817
+					,809
+					,808
+				]
+				,[
+					 817
+					,808
+					,816
+				]
+				,[
+					 801
+					,791
+					,800
+				]
+				,[
+					 809
+					,801
+					,800
+				]
+				,[
+					 801
+					,792
+					,791
+				]
+				,[
+					 790
+					,791
+					,792
+				]
+				,[
+					 790
+					,792
+					,793
+				]
+				,[
+					 824
+					,816
+					,814
+				]
+				,[
+					 825
+					,817
+					,816
+				]
+				,[
+					 825
+					,816
+					,824
+				]
+				,[
+					 824
+					,814
+					,822
+				]
+				,[
+					 822
+					,814
+					,815
+				]
+				,[
+					 822
+					,815
+					,823
+				]
+				,[
+					 814
+					,807
+					,815
+				]
+				,[
+					 826
+					,827
+					,828
+				]
+				,[
+					 826
+					,828
+					,829
+				]
+				,[
+					 830
+					,827
+					,826
+				]
+				,[
+					 830
+					,831
+					,827
+				]
+				,[
+					 832
+					,831
+					,830
+				]
+				,[
+					 832
+					,833
+					,831
+				]
+				,[
+					 834
+					,835
+					,836
+				]
+				,[
+					 834
+					,836
+					,837
+				]
+				,[
+					 838
+					,835
+					,834
+				]
+				,[
+					 838
+					,839
+					,835
+				]
+				,[
+					 840
+					,839
+					,838
+				]
+				,[
+					 840
+					,841
+					,839
+				]
+				,[
+					 842
+					,843
+					,844
+				]
+				,[
+					 843
+					,845
+					,844
+				]
+				,[
+					 846
+					,847
+					,848
+				]
+				,[
+					 846
+					,848
+					,849
+				]
+				,[
+					 850
+					,851
+					,852
+				]
+				,[
+					 851
+					,853
+					,852
+				]
+				,[
+					 854
+					,855
+					,856
+				]
+				,[
+					 854
+					,856
+					,857
+				]
+				,[
+					 858
+					,859
+					,860
+				]
+				,[
+					 859
+					,861
+					,860
+				]
+				,[
+					 862
+					,863
+					,864
+				]
+				,[
+					 862
+					,864
+					,865
+				]
+				,[
+					 866
+					,867
+					,868
+				]
+				,[
+					 882
+					,867
+					,866
+				]
+				,[
+					 884
+					,866
+					,868
+				]
+				,[
+					 892
+					,882
+					,866
+				]
+				,[
+					 892
+					,866
+					,884
+				]
+				,[
+					 867
+					,869
+					,868
+				]
+				,[
+					 882
+					,883
+					,867
+				]
+				,[
+					 868
+					,869
+					,870
+				]
+				,[
+					 868
+					,870
+					,871
+				]
+				,[
+					 871
+					,870
+					,872
+				]
+				,[
+					 870
+					,873
+					,872
+				]
+				,[
+					 885
+					,868
+					,871
+				]
+				,[
+					 885
+					,871
+					,886
+				]
+				,[
+					 886
+					,871
+					,872
+				]
+				,[
+					 872
+					,873
+					,874
+				]
+				,[
+					 872
+					,874
+					,875
+				]
+				,[
+					 886
+					,872
+					,887
+				]
+				,[
+					 887
+					,872
+					,875
+				]
+				,[
+					 894
+					,885
+					,886
+				]
+				,[
+					 894
+					,886
+					,895
+				]
+				,[
+					 895
+					,886
+					,887
+				]
+				,[
+					 887
+					,875
+					,888
+				]
+				,[
+					 895
+					,887
+					,896
+				]
+				,[
+					 896
+					,887
+					,888
+				]
+				,[
+					 875
+					,874
+					,876
+				]
+				,[
+					 888
+					,875
+					,876
+				]
+				,[
+					 874
+					,877
+					,876
+				]
+				,[
+					 888
+					,876
+					,889
+				]
+				,[
+					 896
+					,888
+					,897
+				]
+				,[
+					 897
+					,888
+					,889
+				]
+				,[
+					 897
+					,889
+					,898
+				]
+				,[
+					 893
+					,885
+					,894
+				]
+				,[
+					 893
+					,884
+					,885
+				]
+				,[
+					 904
+					,884
+					,893
+				]
+				,[
+					 884
+					,868
+					,885
+				]
+				,[
+					 904
+					,892
+					,884
+				]
+				,[
+					 903
+					,892
+					,904
+				]
+				,[
+					 891
+					,882
+					,892
+				]
+				,[
+					 903
+					,891
+					,892
+				]
+				,[
+					 902
+					,891
+					,903
+				]
+				,[
+					 890
+					,881
+					,891
+				]
+				,[
+					 891
+					,881
+					,882
+				]
+				,[
+					 881
+					,880
+					,882
+				]
+				,[
+					 880
+					,883
+					,882
+				]
+				,[
+					 878
+					,880
+					,881
+				]
+				,[
+					 890
+					,878
+					,881
+				]
+				,[
+					 878
+					,879
+					,880
+				]
+				,[
+					 899
+					,900
+					,901
+				]
+				,[
+					 905
+					,906
+					,907
+				]
+				,[
+					 905
+					,907
+					,919
+				]
+				,[
+					 929
+					,907
+					,906
+				]
+				,[
+					 919
+					,907
+					,909
+				]
+				,[
+					 930
+					,931
+					,907
+				]
+				,[
+					 907
+					,929
+					,930
+				]
+				,[
+					 919
+					,909
+					,908
+				]
+				,[
+					 908
+					,909
+					,910
+				]
+				,[
+					 908
+					,910
+					,920
+				]
+				,[
+					 920
+					,910
+					,921
+				]
+				,[
+					 920
+					,921
+					,922
+				]
+				,[
+					 922
+					,921
+					,923
+				]
+				,[
+					 921
+					,932
+					,931
+				]
+				,[
+					 931
+					,930
+					,921
+				]
+				,[
+					 929
+					,933
+					,930
+				]
+				,[
+					 922
+					,923
+					,924
+				]
+				,[
+					 911
+					,912
+					,913
+				]
+				,[
+					 912
+					,914
+					,915
+				]
+				,[
+					 915
+					,913
+					,912
+				]
+				,[
+					 915
+					,918
+					,913
+				]
+				,[
+					 917
+					,915
+					,914
+				]
+				,[
+					 914
+					,916
+					,917
+				]
+				,[
+					 925
+					,926
+					,927
+				]
+				,[
+					 925
+					,927
+					,928
+				]
+				,[
+					 934
+					,935
+					,936
+				]
+				,[
+					 940
+					,935
+					,934
+				]
+				,[
+					 936
+					,935
+					,937
+				]
+				,[
+					 937
+					,935
+					,938
+				]
+				,[
+					 938
+					,935
+					,939
+				]
+				,[
+					 939
+					,935
+					,940
+				]
+				,[
+					 941
+					,942
+					,943
+				]
+				,[
+					 942
+					,944
+					,943
+				]
+				,[
+					 943
+					,944
+					,945
+				]
+				,[
+					 943
+					,945
+					,946
+				]
+				,[
+					 946
+					,945
+					,947
+				]
+				,[
+					 945
+					,948
+					,947
+				]
+				,[
+					 949
+					,950
+					,951
+				]
+				,[
+					 949
+					,951
+					,952
+				]
+				,[
+					 952
+					,951
+					,953
+				]
+				,[
+					 951
+					,954
+					,953
+				]
+				,[
+					 953
+					,954
+					,955
+				]
+				,[
+					 953
+					,955
+					,956
+				]
+				,[
+					 957
+					,958
+					,959
+				]
+				,[
+					 958
+					,960
+					,959
+				]
+				,[
+					 961
+					,962
+					,963
+				]
+				,[
+					 962
+					,964
+					,963
+				]
+				,[
+					 965
+					,966
+					,967
+				]
+				,[
+					 966
+					,968
+					,967
+				]
+				,[
+					 969
+					,970
+					,971
+				]
+				,[
+					 970
+					,972
+					,971
+				]
+				,[
+					 973
+					,974
+					,975
+				]
+				,[
+					 974
+					,976
+					,975
+				]
+				,[
+					 977
+					,978
+					,979
+				]
+				,[
+					 977
+					,979
+					,980
+				]
+				,[
+					 981
+					,977
+					,980
+				]
+				,[
+					 981
+					,980
+					,982
+				]
+				,[
+					 983
+					,984
+					,985
+				]
+				,[
+					 983
+					,985
+					,986
+				]
+				,[
+					 987
+					,984
+					,983
+				]
+				,[
+					 987
+					,988
+					,984
+				]
+				,[
+					 989
+					,988
+					,987
+				]
+				,[
+					 989
+					,990
+					,988
+				]
+				,[
+					 1001
+					,990
+					,989
+				]
+				,[
+					 1001
+					,1002
+					,990
+				]
+				,[
+					 1003
+					,1002
+					,1001
+				]
+				,[
+					 1003
+					,1004
+					,1002
+				]
+				,[
+					 1005
+					,1004
+					,1003
+				]
+				,[
+					 1005
+					,1006
+					,1004
+				]
+				,[
+					 986
+					,985
+					,991
+				]
+				,[
+					 986
+					,991
+					,992
+				]
+				,[
+					 992
+					,991
+					,993
+				]
+				,[
+					 992
+					,993
+					,994
+				]
+				,[
+					 994
+					,993
+					,995
+				]
+				,[
+					 994
+					,995
+					,996
+				]
+				,[
+					 996
+					,995
+					,997
+				]
+				,[
+					 996
+					,997
+					,998
+				]
+				,[
+					 998
+					,997
+					,999
+				]
+				,[
+					 998
+					,999
+					,1000
+				]
+				,[
+					 1007
+					,1008
+					,1009
+				]
+				,[
+					 1007
+					,1009
+					,1010
+				]
+				,[
+					 1011
+					,1008
+					,1007
+				]
+				,[
+					 1011
+					,1012
+					,1008
+				]
+				,[
+					 1013
+					,1014
+					,1015
+				]
+				,[
+					 1013
+					,1019
+					,1020
+				]
+				,[
+					 1020
+					,1014
+					,1013
+				]
+				,[
+					 1014
+					,1016
+					,1015
+				]
+				,[
+					 1014
+					,1017
+					,1016
+				]
+				,[
+					 1014
+					,1018
+					,1017
+				]
+				,[
+					 1021
+					,1014
+					,1020
+				]
+				,[
+					 1018
+					,1014
+					,1021
+				]
+				,[
+					 1022
+					,1020
+					,1019
+				]
+				,[
+					 1019
+					,1023
+					,1024
+				]
+				,[
+					 1024
+					,1022
+					,1019
+				]
+				,[
+					 1023
+					,1025
+					,1026
+				]
+				,[
+					 1023
+					,1026
+					,1024
+				]
+				,[
+					 1025
+					,1027
+					,1026
+				]
+				,[
+					 1035
+					,1027
+					,1025
+				]
+				,[
+					 1021
+					,1028
+					,1018
+				]
+				,[
+					 1018
+					,1028
+					,1029
+				]
+				,[
+					 1029
+					,1028
+					,1030
+				]
+				,[
+					 1029
+					,1017
+					,1018
+				]
+				,[
+					 1031
+					,1029
+					,1030
+				]
+				,[
+					 1031
+					,1030
+					,1032
+				]
+				,[
+					 1033
+					,1031
+					,1032
+				]
+				,[
+					 1032
+					,1034
+					,1033
+				]
+				,[
+					 1036
+					,1037
+					,1038
+				]
+				,[
+					 1036
+					,1038
+					,1039
+				]
+				,[
+					 1040
+					,1037
+					,1036
+				]
+				,[
+					 1040
+					,1041
+					,1037
+				]
+				,[
+					 1042
+					,1041
+					,1040
+				]
+				,[
+					 1042
+					,1043
+					,1041
+				]
+				,[
+					 1070
+					,1043
+					,1042
+				]
+				,[
+					 1070
+					,1071
+					,1043
+				]
+				,[
+					 1074
+					,1071
+					,1070
+				]
+				,[
+					 1074
+					,1075
+					,1071
+				]
+				,[
+					 1078
+					,1075
+					,1074
+				]
+				,[
+					 1078
+					,1079
+					,1075
+				]
+				,[
+					 1083
+					,1079
+					,1078
+				]
+				,[
+					 1083
+					,1084
+					,1079
+				]
+				,[
+					 1039
+					,1038
+					,1044
+				]
+				,[
+					 1039
+					,1044
+					,1045
+				]
+				,[
+					 1045
+					,1044
+					,1052
+				]
+				,[
+					 1045
+					,1052
+					,1053
+				]
+				,[
+					 1053
+					,1052
+					,1056
+				]
+				,[
+					 1053
+					,1056
+					,1057
+				]
+				,[
+					 1057
+					,1056
+					,1061
+				]
+				,[
+					 1057
+					,1061
+					,1062
+				]
+				,[
+					 1062
+					,1061
+					,1066
+				]
+				,[
+					 1062
+					,1066
+					,1067
+				]
+				,[
+					 1067
+					,1066
+					,1065
+				]
+				,[
+					 1067
+					,1085
+					,1086
+				]
+				,[
+					 1064
+					,1065
+					,1060
+				]
+				,[
+					 1064
+					,1060
+					,1063
+				]
+				,[
+					 1059
+					,1060
+					,1058
+				]
+				,[
+					 1059
+					,1063
+					,1060
+				]
+				,[
+					 1059
+					,1058
+					,1054
+				]
+				,[
+					 1054
+					,1058
+					,1055
+				]
+				,[
+					 1050
+					,1054
+					,1051
+				]
+				,[
+					 1054
+					,1055
+					,1051
+				]
+				,[
+					 1050
+					,1051
+					,1047
+				]
+				,[
+					 1050
+					,1047
+					,1046
+				]
+				,[
+					 1046
+					,1047
+					,1048
+				]
+				,[
+					 1046
+					,1048
+					,1049
+				]
+				,[
+					 1049
+					,1048
+					,1068
+				]
+				,[
+					 1049
+					,1068
+					,1069
+				]
+				,[
+					 1069
+					,1068
+					,1072
+				]
+				,[
+					 1069
+					,1072
+					,1073
+				]
+				,[
+					 1073
+					,1072
+					,1076
+				]
+				,[
+					 1073
+					,1076
+					,1077
+				]
+				,[
+					 1080
+					,1076
+					,1081
+				]
+				,[
+					 1077
+					,1076
+					,1082
+				]
+				,[
+					 1087
+					,1088
+					,1089
+				]
+				,[
+					 1087
+					,1089
+					,1090
+				]
+				,[
+					 1091
+					,1088
+					,1087
+				]
+				,[
+					 1091
+					,1092
+					,1088
+				]
+				,[
+					 1093
+					,1092
+					,1091
+				]
+				,[
+					 1093
+					,1094
+					,1092
+				]
+				,[
+					 1111
+					,1094
+					,1093
+				]
+				,[
+					 1111
+					,1112
+					,1094
+				]
+				,[
+					 1113
+					,1112
+					,1111
+				]
+				,[
+					 1113
+					,1114
+					,1112
+				]
+				,[
+					 1115
+					,1114
+					,1113
+				]
+				,[
+					 1115
+					,1116
+					,1114
+				]
+				,[
+					 1090
+					,1089
+					,1095
+				]
+				,[
+					 1090
+					,1095
+					,1096
+				]
+				,[
+					 1096
+					,1095
+					,1097
+				]
+				,[
+					 1096
+					,1097
+					,1098
+				]
+				,[
+					 1098
+					,1097
+					,1099
+				]
+				,[
+					 1098
+					,1099
+					,1100
+				]
+				,[
+					 1100
+					,1099
+					,1101
+				]
+				,[
+					 1100
+					,1101
+					,1102
+				]
+				,[
+					 1102
+					,1101
+					,1106
+				]
+				,[
+					 1102
+					,1106
+					,1107
+				]
+				,[
+					 1107
+					,1108
+					,1104
+				]
+				,[
+					 1107
+					,1109
+					,1110
+				]
+				,[
+					 1103
+					,1104
+					,1105
+				]
+				,[
+					 1117
+					,1118
+					,1119
+				]
+				,[
+					 1117
+					,1119
+					,1120
+				]
+				,[
+					 1121
+					,1122
+					,1123
+				]
+				,[
+					 1121
+					,1123
+					,1124
+				]
+				,[
+					 1135
+					,1121
+					,1124
+				]
+				,[
+					 1137
+					,1132
+					,1121
+				]
+				,[
+					 1137
+					,1121
+					,1135
+				]
+				,[
+					 1144
+					,1143
+					,1121
+				]
+				,[
+					 1127
+					,1121
+					,1128
+				]
+				,[
+					 1128
+					,1121
+					,1132
+				]
+				,[
+					 1135
+					,1124
+					,1136
+				]
+				,[
+					 1129
+					,1131
+					,1132
+				]
+				,[
+					 1138
+					,1129
+					,1132
+				]
+				,[
+					 1138
+					,1132
+					,1137
+				]
+				,[
+					 1128
+					,1132
+					,1125
+				]
+				,[
+					 1125
+					,1127
+					,1128
+				]
+				,[
+					 1125
+					,1126
+					,1127
+				]
+				,[
+					 1140
+					,1129
+					,1138
+				]
+				,[
+					 1129
+					,1130
+					,1131
+				]
+				,[
+					 1133
+					,1130
+					,1129
+				]
+				,[
+					 1139
+					,1133
+					,1129
+				]
+				,[
+					 1133
+					,1134
+					,1130
+				]
+				,[
+					 1141
+					,1142
+					,1143
+				]
+				,[
+					 1141
+					,1143
+					,1144
+				]
+				,[
+					 1752
+					,1143
+					,1144
+				]
+				,[
+					 1750
+					,1751
+					,1752
+				]
+				,[
+					 1753
+					,1750
+					,1752
+				]
+				,[
+					 1753
+					,1752
+					,1764
+				]
+				,[
+					 1752
+					,1761
+					,1766
+				]
+				,[
+					 1764
+					,1752
+					,1766
+				]
+				,[
+					 1757
+					,1752
+					,1754
+				]
+				,[
+					 1761
+					,1752
+					,1757
+				]
+				,[
+					 1765
+					,1753
+					,1764
+				]
+				,[
+					 1757
+					,1754
+					,1756
+				]
+				,[
+					 1756
+					,1761
+					,1757
+				]
+				,[
+					 1761
+					,1758
+					,1760
+				]
+				,[
+					 1761
+					,1760
+					,1767
+				]
+				,[
+					 1766
+					,1761
+					,1767
+				]
+				,[
+					 1758
+					,1759
+					,1760
+				]
+				,[
+					 1760
+					,1759
+					,1763
+				]
+				,[
+					 1760
+					,1763
+					,1768
+				]
+				,[
+					 1767
+					,1760
+					,1769
+				]
+				,[
+					 1759
+					,1762
+					,1763
+				]
+				,[
+					 1754
+					,1755
+					,1756
+				]
+				,[
+					 1145
+					,1146
+					,1147
+				]
+				,[
+					 1145
+					,1147
+					,1148
+				]
+				,[
+					 1149
+					,1146
+					,1145
+				]
+				,[
+					 1153
+					,1145
+					,1148
+				]
+				,[
+					 1155
+					,1149
+					,1145
+				]
+				,[
+					 1156
+					,1145
+					,1153
+				]
+				,[
+					 1149
+					,1150
+					,1146
+				]
+				,[
+					 1153
+					,1148
+					,1154
+				]
+				,[
+					 1154
+					,1148
+					,1152
+				]
+				,[
+					 1154
+					,1152
+					,1157
+				]
+				,[
+					 1148
+					,1151
+					,1152
+				]
+				,[
+					 1148
+					,1147
+					,1151
+				]
+				,[
+					 1158
+					,1159
+					,1160
+				]
+				,[
+					 1158
+					,1160
+					,1161
+				]
+				,[
+					 1166
+					,1158
+					,1161
+				]
+				,[
+					 1161
+					,1160
+					,1162
+				]
+				,[
+					 1161
+					,1162
+					,1163
+				]
+				,[
+					 1166
+					,1161
+					,1167
+				]
+				,[
+					 1167
+					,1161
+					,1163
+				]
+				,[
+					 1163
+					,1162
+					,1164
+				]
+				,[
+					 1163
+					,1164
+					,1165
+				]
+				,[
+					 1167
+					,1163
+					,1168
+				]
+				,[
+					 1168
+					,1163
+					,1165
+				]
+				,[
+					 1168
+					,1165
+					,1169
+				]
+				,[
+					 1170
+					,1171
+					,1172
+				]
+				,[
+					 1171
+					,1173
+					,1172
+				]
+				,[
+					 1174
+					,1175
+					,1176
+				]
+				,[
+					 1175
+					,1177
+					,1176
+				]
+				,[
+					 1178
+					,1179
+					,1180
+				]
+				,[
+					 1181
+					,1182
+					,1180
+				]
+				,[
+					 1183
+					,1184
+					,1185
+				]
+				,[
+					 1184
+					,1186
+					,1185
+				]
+				,[
+					 1187
+					,1188
+					,1189
+				]
+				,[
+					 1188
+					,1190
+					,1189
+				]
+				,[
+					 1191
+					,1192
+					,1193
+				]
+				,[
+					 1192
+					,1194
+					,1193
+				]
+				,[
+					 1207
+					,1194
+					,1192
+				]
+				,[
+					 1207
+					,1192
+					,1208
+				]
+				,[
+					 1193
+					,1194
+					,1195
+				]
+				,[
+					 1193
+					,1195
+					,1196
+				]
+				,[
+					 1209
+					,1195
+					,1194
+				]
+				,[
+					 1209
+					,1194
+					,1207
+				]
+				,[
+					 1215
+					,1207
+					,1208
+				]
+				,[
+					 1217
+					,1209
+					,1207
+				]
+				,[
+					 1217
+					,1207
+					,1215
+				]
+				,[
+					 1215
+					,1208
+					,1216
+				]
+				,[
+					 1223
+					,1215
+					,1216
+				]
+				,[
+					 1225
+					,1217
+					,1215
+				]
+				,[
+					 1225
+					,1215
+					,1223
+				]
+				,[
+					 1218
+					,1209
+					,1217
+				]
+				,[
+					 1226
+					,1218
+					,1217
+				]
+				,[
+					 1226
+					,1217
+					,1225
+				]
+				,[
+					 1210
+					,1195
+					,1209
+				]
+				,[
+					 1218
+					,1210
+					,1209
+				]
+				,[
+					 1210
+					,1198
+					,1195
+				]
+				,[
+					 1195
+					,1198
+					,1197
+				]
+				,[
+					 1196
+					,1195
+					,1197
+				]
+				,[
+					 1233
+					,1225
+					,1223
+				]
+				,[
+					 1234
+					,1226
+					,1225
+				]
+				,[
+					 1234
+					,1225
+					,1233
+				]
+				,[
+					 1233
+					,1223
+					,1231
+				]
+				,[
+					 1231
+					,1223
+					,1224
+				]
+				,[
+					 1231
+					,1224
+					,1232
+				]
+				,[
+					 1223
+					,1216
+					,1224
+				]
+				,[
+					 1199
+					,1200
+					,1201
+				]
+				,[
+					 1199
+					,1201
+					,1202
+				]
+				,[
+					 1211
+					,1201
+					,1200
+				]
+				,[
+					 1211
+					,1200
+					,1212
+				]
+				,[
+					 1202
+					,1201
+					,1203
+				]
+				,[
+					 1201
+					,1204
+					,1203
+				]
+				,[
+					 1213
+					,1204
+					,1201
+				]
+				,[
+					 1213
+					,1201
+					,1211
+				]
+				,[
+					 1219
+					,1211
+					,1212
+				]
+				,[
+					 1221
+					,1213
+					,1211
+				]
+				,[
+					 1221
+					,1211
+					,1219
+				]
+				,[
+					 1219
+					,1212
+					,1220
+				]
+				,[
+					 1227
+					,1219
+					,1220
+				]
+				,[
+					 1229
+					,1221
+					,1219
+				]
+				,[
+					 1229
+					,1219
+					,1227
+				]
+				,[
+					 1222
+					,1213
+					,1221
+				]
+				,[
+					 1230
+					,1222
+					,1221
+				]
+				,[
+					 1230
+					,1221
+					,1229
+				]
+				,[
+					 1214
+					,1204
+					,1213
+				]
+				,[
+					 1222
+					,1214
+					,1213
+				]
+				,[
+					 1214
+					,1205
+					,1204
+				]
+				,[
+					 1203
+					,1204
+					,1205
+				]
+				,[
+					 1203
+					,1205
+					,1206
+				]
+				,[
+					 1237
+					,1229
+					,1227
+				]
+				,[
+					 1238
+					,1230
+					,1229
+				]
+				,[
+					 1238
+					,1229
+					,1237
+				]
+				,[
+					 1237
+					,1227
+					,1235
+				]
+				,[
+					 1235
+					,1227
+					,1228
+				]
+				,[
+					 1235
+					,1228
+					,1236
+				]
+				,[
+					 1227
+					,1220
+					,1228
+				]
+				,[
+					 1239
+					,1240
+					,1241
+				]
+				,[
+					 1239
+					,1241
+					,1242
+				]
+				,[
+					 1243
+					,1240
+					,1239
+				]
+				,[
+					 1243
+					,1244
+					,1240
+				]
+				,[
+					 1245
+					,1244
+					,1243
+				]
+				,[
+					 1245
+					,1246
+					,1244
+				]
+				,[
+					 1247
+					,1248
+					,1249
+				]
+				,[
+					 1247
+					,1249
+					,1250
+				]
+				,[
+					 1251
+					,1248
+					,1247
+				]
+				,[
+					 1251
+					,1252
+					,1248
+				]
+				,[
+					 1253
+					,1252
+					,1251
+				]
+				,[
+					 1253
+					,1254
+					,1252
+				]
+				,[
+					 1255
+					,1256
+					,1257
+				]
+				,[
+					 1261
+					,1256
+					,1255
+				]
+				,[
+					 1257
+					,1256
+					,1258
+				]
+				,[
+					 1258
+					,1256
+					,1259
+				]
+				,[
+					 1259
+					,1256
+					,1260
+				]
+				,[
+					 1260
+					,1256
+					,1261
+				]
+				,[
+					 1262
+					,1263
+					,1264
+				]
+				,[
+					 1263
+					,1265
+					,1264
+				]
+				,[
+					 1264
+					,1265
+					,1266
+				]
+				,[
+					 1264
+					,1266
+					,1267
+				]
+				,[
+					 1267
+					,1266
+					,1268
+				]
+				,[
+					 1266
+					,1269
+					,1268
+				]
+				,[
+					 1270
+					,1271
+					,1272
+				]
+				,[
+					 1270
+					,1272
+					,1273
+				]
+				,[
+					 1273
+					,1272
+					,1274
+				]
+				,[
+					 1272
+					,1275
+					,1274
+				]
+				,[
+					 1274
+					,1275
+					,1276
+				]
+				,[
+					 1274
+					,1276
+					,1277
+				]
+				,[
+					 1278
+					,1279
+					,1280
+				]
+				,[
+					 1278
+					,1280
+					,1292
+				]
+				,[
+					 1302
+					,1280
+					,1279
+				]
+				,[
+					 1292
+					,1280
+					,1282
+				]
+				,[
+					 1303
+					,1304
+					,1280
+				]
+				,[
+					 1280
+					,1302
+					,1303
+				]
+				,[
+					 1292
+					,1282
+					,1281
+				]
+				,[
+					 1281
+					,1282
+					,1283
+				]
+				,[
+					 1281
+					,1283
+					,1293
+				]
+				,[
+					 1293
+					,1283
+					,1294
+				]
+				,[
+					 1293
+					,1294
+					,1295
+				]
+				,[
+					 1295
+					,1294
+					,1296
+				]
+				,[
+					 1294
+					,1305
+					,1304
+				]
+				,[
+					 1304
+					,1303
+					,1294
+				]
+				,[
+					 1302
+					,1306
+					,1303
+				]
+				,[
+					 1295
+					,1296
+					,1297
+				]
+				,[
+					 1284
+					,1285
+					,1286
+				]
+				,[
+					 1909
+					,1910
+					,1284
+				]
+				,[
+					 1915
+					,1909
+					,1284
+				]
+				,[
+					 1285
+					,1287
+					,1288
+				]
+				,[
+					 1288
+					,1286
+					,1285
+				]
+				,[
+					 1288
+					,1291
+					,1286
+				]
+				,[
+					 1290
+					,1288
+					,1287
+				]
+				,[
+					 1287
+					,1289
+					,1290
+				]
+				,[
+					 1922
+					,1909
+					,1923
+				]
+				,[
+					 1914
+					,1915
+					,1916
+				]
+				,[
+					 1917
+					,1918
+					,1915
+				]
+				,[
+					 1915
+					,1914
+					,1917
+				]
+				,[
+					 1914
+					,1921
+					,1917
+				]
+				,[
+					 1918
+					,1917
+					,1919
+				]
+				,[
+					 1919
+					,1920
+					,1918
+				]
+				,[
+					 1919
+					,1928
+					,1920
+				]
+				,[
+					 1928
+					,1926
+					,1920
+				]
+				,[
+					 1929
+					,1928
+					,1930
+				]
+				,[
+					 1931
+					,1929
+					,1930
+				]
+				,[
+					 1925
+					,1926
+					,1927
+				]
+				,[
+					 1298
+					,1299
+					,1300
+				]
+				,[
+					 1298
+					,1300
+					,1301
+				]
+				,[
+					 1307
+					,1308
+					,1309
+				]
+				,[
+					 1323
+					,1308
+					,1307
+				]
+				,[
+					 1325
+					,1307
+					,1309
+				]
+				,[
+					 1333
+					,1323
+					,1307
+				]
+				,[
+					 1333
+					,1307
+					,1325
+				]
+				,[
+					 1308
+					,1310
+					,1309
+				]
+				,[
+					 1323
+					,1324
+					,1308
+				]
+				,[
+					 1309
+					,1310
+					,1311
+				]
+				,[
+					 1309
+					,1311
+					,1312
+				]
+				,[
+					 1312
+					,1311
+					,1313
+				]
+				,[
+					 1311
+					,1314
+					,1313
+				]
+				,[
+					 1326
+					,1309
+					,1312
+				]
+				,[
+					 1326
+					,1312
+					,1327
+				]
+				,[
+					 1327
+					,1312
+					,1313
+				]
+				,[
+					 1313
+					,1314
+					,1315
+				]
+				,[
+					 1313
+					,1315
+					,1316
+				]
+				,[
+					 1327
+					,1313
+					,1328
+				]
+				,[
+					 1328
+					,1313
+					,1316
+				]
+				,[
+					 1335
+					,1326
+					,1327
+				]
+				,[
+					 1335
+					,1327
+					,1336
+				]
+				,[
+					 1336
+					,1327
+					,1328
+				]
+				,[
+					 1328
+					,1316
+					,1329
+				]
+				,[
+					 1336
+					,1328
+					,1337
+				]
+				,[
+					 1337
+					,1328
+					,1329
+				]
+				,[
+					 1316
+					,1315
+					,1317
+				]
+				,[
+					 1329
+					,1316
+					,1317
+				]
+				,[
+					 1315
+					,1318
+					,1317
+				]
+				,[
+					 1329
+					,1317
+					,1330
+				]
+				,[
+					 1337
+					,1329
+					,1338
+				]
+				,[
+					 1338
+					,1329
+					,1330
+				]
+				,[
+					 1338
+					,1330
+					,1339
+				]
+				,[
+					 1334
+					,1326
+					,1335
+				]
+				,[
+					 1334
+					,1325
+					,1326
+				]
+				,[
+					 1345
+					,1325
+					,1334
+				]
+				,[
+					 1325
+					,1309
+					,1326
+				]
+				,[
+					 1345
+					,1333
+					,1325
+				]
+				,[
+					 1344
+					,1333
+					,1345
+				]
+				,[
+					 1332
+					,1323
+					,1333
+				]
+				,[
+					 1344
+					,1332
+					,1333
+				]
+				,[
+					 1343
+					,1332
+					,1344
+				]
+				,[
+					 1331
+					,1322
+					,1332
+				]
+				,[
+					 1332
+					,1322
+					,1323
+				]
+				,[
+					 1322
+					,1321
+					,1323
+				]
+				,[
+					 1321
+					,1324
+					,1323
+				]
+				,[
+					 1319
+					,1321
+					,1322
+				]
+				,[
+					 1331
+					,1319
+					,1322
+				]
+				,[
+					 1319
+					,1320
+					,1321
+				]
+				,[
+					 1340
+					,1341
+					,1342
+				]
+				,[
+					 1346
+					,1347
+					,1348
+				]
+				,[
+					 1346
+					,1349
+					,1347
+				]
+				,[
+					 1350
+					,1351
+					,1352
+				]
+				,[
+					 1350
+					,1353
+					,1351
+				]
+				,[
+					 1354
+					,1355
+					,1356
+				]
+				,[
+					 1354
+					,1357
+					,1358
+				]
+				,[
+					 1359
+					,1360
+					,1361
+				]
+				,[
+					 1359
+					,1362
+					,1360
+				]
+				,[
+					 1363
+					,1364
+					,1365
+				]
+				,[
+					 1363
+					,1366
+					,1364
+				]
+				,[
+					 1367
+					,1368
+					,1369
+				]
+				,[
+					 1369
+					,1370
+					,1367
+				]
+				,[
+					 1369
+					,1371
+					,1370
+				]
+				,[
+					 1372
+					,1373
+					,1370
+				]
+				,[
+					 1370
+					,1371
+					,1372
+				]
+				,[
+					 1371
+					,1391
+					,1372
+				]
+				,[
+					 1372
+					,1388
+					,1390
+				]
+				,[
+					 1391
+					,1392
+					,1372
+				]
+				,[
+					 1396
+					,1391
+					,1393
+				]
+				,[
+					 1398
+					,1391
+					,1396
+				]
+				,[
+					 1395
+					,1396
+					,1393
+				]
+				,[
+					 1396
+					,1397
+					,1398
+				]
+				,[
+					 1393
+					,1394
+					,1395
+				]
+				,[
+					 1388
+					,1389
+					,1390
+				]
+				,[
+					 1374
+					,1375
+					,1376
+				]
+				,[
+					 1377
+					,1374
+					,1376
+				]
+				,[
+					 1378
+					,1374
+					,1377
+				]
+				,[
+					 1379
+					,1378
+					,1377
+				]
+				,[
+					 1380
+					,1381
+					,1382
+				]
+				,[
+					 1383
+					,1380
+					,1382
+				]
+				,[
+					 1384
+					,1385
+					,1386
+				]
+				,[
+					 1387
+					,1384
+					,1386
+				]
+				,[
+					 1399
+					,1400
+					,1401
+				]
+				,[
+					 1399
+					,1402
+					,1400
+				]
+				,[
+					 1403
+					,1402
+					,1399
+				]
+				,[
+					 1404
+					,1403
+					,1399
+				]
+				,[
+					 1400
+					,1402
+					,1415
+				]
+				,[
+					 1416
+					,1400
+					,1415
+				]
+				,[
+					 1402
+					,1403
+					,1417
+				]
+				,[
+					 1415
+					,1402
+					,1417
+				]
+				,[
+					 1416
+					,1415
+					,1423
+				]
+				,[
+					 1415
+					,1417
+					,1425
+				]
+				,[
+					 1423
+					,1415
+					,1425
+				]
+				,[
+					 1424
+					,1416
+					,1423
+				]
+				,[
+					 1424
+					,1423
+					,1431
+				]
+				,[
+					 1423
+					,1425
+					,1433
+				]
+				,[
+					 1431
+					,1423
+					,1433
+				]
+				,[
+					 1425
+					,1417
+					,1426
+				]
+				,[
+					 1425
+					,1426
+					,1434
+				]
+				,[
+					 1433
+					,1425
+					,1434
+				]
+				,[
+					 1417
+					,1403
+					,1418
+				]
+				,[
+					 1417
+					,1418
+					,1426
+				]
+				,[
+					 1403
+					,1406
+					,1418
+				]
+				,[
+					 1405
+					,1403
+					,1404
+				]
+				,[
+					 1405
+					,1406
+					,1403
+				]
+				,[
+					 1433
+					,1434
+					,1442
+				]
+				,[
+					 1441
+					,1433
+					,1442
+				]
+				,[
+					 1431
+					,1433
+					,1441
+				]
+				,[
+					 1439
+					,1431
+					,1441
+				]
+				,[
+					 1432
+					,1431
+					,1439
+				]
+				,[
+					 1440
+					,1432
+					,1439
+				]
+				,[
+					 1432
+					,1424
+					,1431
+				]
+				,[
+					 1407
+					,1408
+					,1409
+				]
+				,[
+					 1410
+					,1407
+					,1409
+				]
+				,[
+					 1411
+					,1407
+					,1410
+				]
+				,[
+					 1411
+					,1412
+					,1407
+				]
+				,[
+					 1408
+					,1407
+					,1419
+				]
+				,[
+					 1407
+					,1412
+					,1421
+				]
+				,[
+					 1419
+					,1407
+					,1421
+				]
+				,[
+					 1420
+					,1408
+					,1419
+				]
+				,[
+					 1420
+					,1419
+					,1427
+				]
+				,[
+					 1419
+					,1421
+					,1429
+				]
+				,[
+					 1427
+					,1419
+					,1429
+				]
+				,[
+					 1421
+					,1412
+					,1422
+				]
+				,[
+					 1421
+					,1422
+					,1430
+				]
+				,[
+					 1429
+					,1421
+					,1430
+				]
+				,[
+					 1413
+					,1412
+					,1411
+				]
+				,[
+					 1412
+					,1413
+					,1422
+				]
+				,[
+					 1414
+					,1413
+					,1411
+				]
+				,[
+					 1429
+					,1430
+					,1438
+				]
+				,[
+					 1427
+					,1429
+					,1437
+				]
+				,[
+					 1437
+					,1429
+					,1438
+				]
+				,[
+					 1437
+					,1438
+					,1446
+				]
+				,[
+					 1435
+					,1427
+					,1437
+				]
+				,[
+					 1435
+					,1437
+					,1445
+				]
+				,[
+					 1445
+					,1437
+					,1446
+				]
+				,[
+					 1428
+					,1427
+					,1435
+				]
+				,[
+					 1436
+					,1428
+					,1435
+				]
+				,[
+					 1436
+					,1435
+					,1443
+				]
+				,[
+					 1443
+					,1435
+					,1445
+				]
+				,[
+					 1428
+					,1420
+					,1427
+				]
+				,[
+					 1444
+					,1436
+					,1443
+				]
+				,[
+					 1447
+					,1448
+					,1449
+				]
+				,[
+					 1450
+					,1447
+					,1449
+				]
+				,[
+					 1448
+					,1451
+					,1452
+				]
+				,[
+					 1449
+					,1448
+					,1452
+				]
+				,[
+					 1451
+					,1453
+					,1454
+				]
+				,[
+					 1452
+					,1451
+					,1454
+				]
+				,[
+					 1455
+					,1456
+					,1457
+				]
+				,[
+					 1458
+					,1455
+					,1457
+				]
+				,[
+					 1456
+					,1459
+					,1460
+				]
+				,[
+					 1457
+					,1456
+					,1460
+				]
+				,[
+					 1459
+					,1461
+					,1462
+				]
+				,[
+					 1460
+					,1459
+					,1462
+				]
+				,[
+					 1463
+					,1464
+					,1465
+				]
+				,[
+					 1463
+					,1466
+					,1464
+				]
+				,[
+					 1467
+					,1468
+					,1469
+				]
+				,[
+					 1470
+					,1467
+					,1469
+				]
+				,[
+					 1471
+					,1472
+					,1473
+				]
+				,[
+					 1471
+					,1474
+					,1472
+				]
+				,[
+					 1475
+					,1476
+					,1477
+				]
+				,[
+					 1478
+					,1475
+					,1477
+				]
+				,[
+					 1479
+					,1480
+					,1481
+				]
+				,[
+					 1479
+					,1482
+					,1480
+				]
+				,[
+					 1483
+					,1484
+					,1485
+				]
+				,[
+					 1486
+					,1483
+					,1485
+				]
+				,[
+					 1487
+					,1488
+					,1489
+				]
+				,[
+					 1487
+					,1490
+					,1488
+				]
+				,[
+					 1491
+					,1490
+					,1487
+				]
+				,[
+					 1492
+					,1491
+					,1487
+				]
+				,[
+					 1487
+					,1489
+					,1505
+				]
+				,[
+					 1506
+					,1487
+					,1505
+				]
+				,[
+					 1492
+					,1487
+					,1506
+				]
+				,[
+					 1488
+					,1504
+					,1503
+				]
+				,[
+					 1489
+					,1488
+					,1503
+				]
+				,[
+					 1489
+					,1503
+					,1513
+				]
+				,[
+					 1505
+					,1489
+					,1513
+				]
+				,[
+					 1506
+					,1505
+					,1514
+				]
+				,[
+					 1505
+					,1513
+					,1525
+				]
+				,[
+					 1514
+					,1505
+					,1525
+				]
+				,[
+					 1507
+					,1492
+					,1506
+				]
+				,[
+					 1515
+					,1506
+					,1514
+				]
+				,[
+					 1507
+					,1506
+					,1515
+				]
+				,[
+					 1493
+					,1492
+					,1507
+				]
+				,[
+					 1508
+					,1493
+					,1507
+				]
+				,[
+					 1516
+					,1507
+					,1515
+				]
+				,[
+					 1508
+					,1507
+					,1516
+				]
+				,[
+					 1496
+					,1493
+					,1508
+				]
+				,[
+					 1509
+					,1496
+					,1508
+				]
+				,[
+					 1517
+					,1508
+					,1516
+				]
+				,[
+					 1509
+					,1508
+					,1517
+				]
+				,[
+					 1496
+					,1495
+					,1493
+				]
+				,[
+					 1497
+					,1495
+					,1496
+				]
+				,[
+					 1497
+					,1496
+					,1509
+				]
+				,[
+					 1510
+					,1497
+					,1509
+				]
+				,[
+					 1518
+					,1509
+					,1517
+				]
+				,[
+					 1510
+					,1509
+					,1518
+				]
+				,[
+					 1497
+					,1498
+					,1495
+				]
+				,[
+					 1495
+					,1494
+					,1493
+				]
+				,[
+					 1493
+					,1494
+					,1491
+				]
+				,[
+					 1493
+					,1491
+					,1492
+				]
+				,[
+					 1519
+					,1510
+					,1518
+				]
+				,[
+					 1525
+					,1513
+					,1523
+				]
+				,[
+					 1513
+					,1503
+					,1512
+				]
+				,[
+					 1513
+					,1512
+					,1523
+				]
+				,[
+					 1523
+					,1512
+					,1524
+				]
+				,[
+					 1512
+					,1502
+					,1511
+				]
+				,[
+					 1503
+					,1502
+					,1512
+				]
+				,[
+					 1503
+					,1499
+					,1502
+				]
+				,[
+					 1503
+					,1504
+					,1499
+				]
+				,[
+					 1502
+					,1499
+					,1501
+				]
+				,[
+					 1502
+					,1501
+					,1511
+				]
+				,[
+					 1499
+					,1500
+					,1501
+				]
+				,[
+					 1520
+					,1521
+					,1522
+				]
+				,[
+					 1526
+					,1527
+					,1528
+				]
+				,[
+					 1533
+					,1526
+					,1528
+				]
+				,[
+					 1539
+					,1526
+					,1540
+				]
+				,[
+					 1532
+					,1533
+					,1528
+				]
+				,[
+					 1534
+					,1535
+					,1533
+				]
+				,[
+					 1533
+					,1532
+					,1534
+				]
+				,[
+					 1532
+					,1538
+					,1534
+				]
+				,[
+					 1535
+					,1534
+					,1536
+				]
+				,[
+					 1536
+					,1537
+					,1535
+				]
+				,[
+					 1536
+					,1545
+					,1537
+				]
+				,[
+					 1545
+					,1543
+					,1537
+				]
+				,[
+					 1546
+					,1545
+					,1547
+				]
+				,[
+					 1548
+					,1546
+					,1547
+				]
+				,[
+					 1542
+					,1543
+					,1544
+				]
+				,[
+					 1529
+					,1530
+					,1531
+				]
+				,[
+					 1531
+					,1530
+					,1541
+				]
+				,[
+					 1549
+					,1550
+					,1551
+				]
+				,[
+					 1552
+					,1549
+					,1551
+				]
+				,[
+					 1553
+					,1554
+					,1555
+				]
+				,[
+					 1554
+					,1556
+					,1557
+				]
+				,[
+					 1557
+					,1555
+					,1554
+				]
+				,[
+					 1557
+					,1560
+					,1555
+				]
+				,[
+					 1559
+					,1557
+					,1556
+				]
+				,[
+					 1556
+					,1558
+					,1559
+				]
+				,[
+					 1561
+					,1562
+					,1563
+				]
+				,[
+					 1564
+					,1562
+					,1561
+				]
+				,[
+					 1565
+					,1562
+					,1564
+				]
+				,[
+					 1566
+					,1562
+					,1565
+				]
+				,[
+					 1567
+					,1562
+					,1566
+				]
+				,[
+					 1563
+					,1562
+					,1567
+				]
+				,[
+					 1568
+					,1569
+					,1570
+				]
+				,[
+					 1568
+					,1571
+					,1569
+				]
+				,[
+					 1572
+					,1571
+					,1568
+				]
+				,[
+					 1573
+					,1572
+					,1568
+				]
+				,[
+					 1574
+					,1572
+					,1573
+				]
+				,[
+					 1574
+					,1575
+					,1572
+				]
+				,[
+					 1576
+					,1577
+					,1578
+				]
+				,[
+					 1579
+					,1576
+					,1578
+				]
+				,[
+					 1580
+					,1581
+					,1579
+				]
+				,[
+					 1580
+					,1582
+					,1581
+				]
+				,[
+					 1583
+					,1584
+					,1580
+				]
+				,[
+					 1585
+					,1583
+					,1580
+				]
+				,[
+					 1586
+					,1587
+					,1588
+				]
+				,[
+					 1586
+					,1589
+					,1587
+				]
+				,[
+					 1590
+					,1591
+					,1592
+				]
+				,[
+					 1590
+					,1593
+					,1591
+				]
+				,[
+					 1594
+					,1595
+					,1596
+				]
+				,[
+					 1594
+					,1597
+					,1595
+				]
+				,[
+					 1598
+					,1599
+					,1600
+				]
+				,[
+					 1598
+					,1601
+					,1599
+				]
+				,[
+					 1602
+					,1603
+					,1604
+				]
+				,[
+					 1602
+					,1605
+					,1603
+				]
+				,[
+					 1606
+					,1607
+					,1608
+				]
+				,[
+					 1609
+					,1606
+					,1608
+				]
+				,[
+					 1609
+					,1608
+					,1610
+				]
+				,[
+					 1611
+					,1609
+					,1610
+				]
+				,[
+					 1612
+					,1613
+					,1614
+				]
+				,[
+					 1615
+					,1612
+					,1614
+				]
+				,[
+					 1620
+					,1612
+					,1615
+				]
+				,[
+					 1613
+					,1616
+					,1617
+				]
+				,[
+					 1614
+					,1613
+					,1617
+				]
+				,[
+					 1616
+					,1618
+					,1619
+				]
+				,[
+					 1617
+					,1616
+					,1619
+				]
+				,[
+					 1618
+					,1630
+					,1631
+				]
+				,[
+					 1619
+					,1618
+					,1631
+				]
+				,[
+					 1630
+					,1632
+					,1633
+				]
+				,[
+					 1631
+					,1630
+					,1633
+				]
+				,[
+					 1632
+					,1634
+					,1635
+				]
+				,[
+					 1633
+					,1632
+					,1635
+				]
+				,[
+					 1621
+					,1620
+					,1615
+				]
+				,[
+					 1622
+					,1620
+					,1621
+				]
+				,[
+					 1623
+					,1622
+					,1621
+				]
+				,[
+					 1624
+					,1622
+					,1623
+				]
+				,[
+					 1625
+					,1624
+					,1623
+				]
+				,[
+					 1626
+					,1624
+					,1625
+				]
+				,[
+					 1627
+					,1626
+					,1625
+				]
+				,[
+					 1628
+					,1626
+					,1627
+				]
+				,[
+					 1629
+					,1628
+					,1627
+				]
+				,[
+					 1636
+					,1637
+					,1638
+				]
+				,[
+					 1639
+					,1636
+					,1638
+				]
+				,[
+					 1637
+					,1640
+					,1641
+				]
+				,[
+					 1638
+					,1637
+					,1641
+				]
+				,[
+					 1642
+					,1643
+					,1644
+				]
+				,[
+					 1642
+					,1645
+					,1643
+				]
+				,[
+					 1648
+					,1649
+					,1644
+				]
+				,[
+					 1644
+					,1643
+					,1648
+				]
+				,[
+					 1648
+					,1643
+					,1650
+				]
+				,[
+					 1649
+					,1648
+					,1651
+				]
+				,[
+					 1652
+					,1653
+					,1649
+				]
+				,[
+					 1649
+					,1651
+					,1652
+				]
+				,[
+					 1652
+					,1654
+					,1653
+				]
+				,[
+					 1654
+					,1655
+					,1653
+				]
+				,[
+					 1654
+					,1656
+					,1655
+				]
+				,[
+					 1655
+					,1656
+					,1664
+				]
+				,[
+					 1650
+					,1643
+					,1647
+				]
+				,[
+					 1647
+					,1657
+					,1650
+				]
+				,[
+					 1645
+					,1646
+					,1643
+				]
+				,[
+					 1646
+					,1647
+					,1643
+				]
+				,[
+					 1658
+					,1657
+					,1647
+				]
+				,[
+					 1647
+					,1646
+					,1658
+				]
+				,[
+					 1659
+					,1657
+					,1658
+				]
+				,[
+					 1659
+					,1658
+					,1660
+				]
+				,[
+					 1661
+					,1659
+					,1660
+				]
+				,[
+					 1661
+					,1660
+					,1662
+				]
+				,[
+					 1662
+					,1663
+					,1661
+				]
+				,[
+					 1665
+					,1666
+					,1667
+				]
+				,[
+					 1668
+					,1665
+					,1667
+				]
+				,[
+					 1673
+					,1665
+					,1668
+				]
+				,[
+					 1666
+					,1669
+					,1670
+				]
+				,[
+					 1667
+					,1666
+					,1670
+				]
+				,[
+					 1669
+					,1671
+					,1672
+				]
+				,[
+					 1670
+					,1669
+					,1672
+				]
+				,[
+					 1671
+					,1699
+					,1700
+				]
+				,[
+					 1672
+					,1671
+					,1700
+				]
+				,[
+					 1699
+					,1703
+					,1704
+				]
+				,[
+					 1700
+					,1699
+					,1704
+				]
+				,[
+					 1703
+					,1707
+					,1708
+				]
+				,[
+					 1704
+					,1703
+					,1708
+				]
+				,[
+					 1707
+					,1712
+					,1713
+				]
+				,[
+					 1708
+					,1707
+					,1713
+				]
+				,[
+					 1674
+					,1673
+					,1668
+				]
+				,[
+					 1681
+					,1673
+					,1674
+				]
+				,[
+					 1682
+					,1681
+					,1674
+				]
+				,[
+					 1685
+					,1681
+					,1682
+				]
+				,[
+					 1686
+					,1685
+					,1682
+				]
+				,[
+					 1690
+					,1685
+					,1686
+				]
+				,[
+					 1691
+					,1690
+					,1686
+				]
+				,[
+					 1695
+					,1690
+					,1691
+				]
+				,[
+					 1696
+					,1695
+					,1691
+				]
+				,[
+					 1693
+					,1695
+					,1696
+				]
+				,[
+					 1714
+					,1715
+					,1696
+				]
+				,[
+					 1689
+					,1693
+					,1694
+				]
+				,[
+					 1687
+					,1689
+					,1688
+				]
+				,[
+					 1689
+					,1692
+					,1688
+				]
+				,[
+					 1692
+					,1689
+					,1694
+				]
+				,[
+					 1684
+					,1687
+					,1683
+				]
+				,[
+					 1683
+					,1687
+					,1688
+				]
+				,[
+					 1679
+					,1684
+					,1683
+				]
+				,[
+					 1679
+					,1683
+					,1680
+				]
+				,[
+					 1676
+					,1679
+					,1680
+				]
+				,[
+					 1677
+					,1676
+					,1680
+				]
+				,[
+					 1675
+					,1676
+					,1677
+				]
+				,[
+					 1678
+					,1675
+					,1677
+				]
+				,[
+					 1697
+					,1675
+					,1678
+				]
+				,[
+					 1698
+					,1697
+					,1678
+				]
+				,[
+					 1701
+					,1697
+					,1698
+				]
+				,[
+					 1702
+					,1701
+					,1698
+				]
+				,[
+					 1705
+					,1701
+					,1702
+				]
+				,[
+					 1706
+					,1705
+					,1702
+				]
+				,[
+					 1709
+					,1705
+					,1710
+				]
+				,[
+					 1711
+					,1705
+					,1706
+				]
+				,[
+					 1716
+					,1717
+					,1718
+				]
+				,[
+					 1719
+					,1716
+					,1718
+				]
+				,[
+					 1724
+					,1716
+					,1719
+				]
+				,[
+					 1717
+					,1720
+					,1721
+				]
+				,[
+					 1718
+					,1717
+					,1721
+				]
+				,[
+					 1720
+					,1722
+					,1723
+				]
+				,[
+					 1721
+					,1720
+					,1723
+				]
+				,[
+					 1722
+					,1740
+					,1741
+				]
+				,[
+					 1723
+					,1722
+					,1741
+				]
+				,[
+					 1740
+					,1742
+					,1743
+				]
+				,[
+					 1741
+					,1740
+					,1743
+				]
+				,[
+					 1742
+					,1744
+					,1745
+				]
+				,[
+					 1743
+					,1742
+					,1745
+				]
+				,[
+					 1725
+					,1724
+					,1719
+				]
+				,[
+					 1726
+					,1724
+					,1725
+				]
+				,[
+					 1727
+					,1726
+					,1725
+				]
+				,[
+					 1728
+					,1726
+					,1727
+				]
+				,[
+					 1729
+					,1728
+					,1727
+				]
+				,[
+					 1730
+					,1728
+					,1729
+				]
+				,[
+					 1731
+					,1730
+					,1729
+				]
+				,[
+					 1735
+					,1730
+					,1731
+				]
+				,[
+					 1736
+					,1735
+					,1731
+				]
+				,[
+					 1733
+					,1737
+					,1736
+				]
+				,[
+					 1738
+					,1739
+					,1736
+				]
+				,[
+					 1732
+					,1733
+					,1734
+				]
+				,[
+					 1746
+					,1747
+					,1748
+				]
+				,[
+					 1749
+					,1746
+					,1748
+				]
+				,[
+					 1770
+					,1771
+					,1772
+				]
+				,[
+					 1773
+					,1770
+					,1772
+				]
+				,[
+					 1774
+					,1775
+					,1776
+				]
+				,[
+					 1777
+					,1774
+					,1776
+				]
+				,[
+					 1780
+					,1774
+					,1777
+				]
+				,[
+					 1775
+					,1778
+					,1779
+				]
+				,[
+					 1776
+					,1775
+					,1779
+				]
+				,[
+					 1777
+					,1776
+					,1782
+				]
+				,[
+					 1776
+					,1779
+					,1784
+				]
+				,[
+					 1782
+					,1776
+					,1785
+				]
+				,[
+					 1783
+					,1777
+					,1782
+				]
+				,[
+					 1781
+					,1780
+					,1777
+				]
+				,[
+					 1781
+					,1777
+					,1783
+				]
+				,[
+					 1786
+					,1781
+					,1783
+				]
+				,[
+					 1787
+					,1788
+					,1789
+				]
+				,[
+					 1790
+					,1787
+					,1789
+				]
+				,[
+					 1791
+					,1787
+					,1790
+				]
+				,[
+					 1790
+					,1789
+					,1795
+				]
+				,[
+					 1792
+					,1791
+					,1790
+				]
+				,[
+					 1796
+					,1790
+					,1795
+				]
+				,[
+					 1792
+					,1790
+					,1796
+				]
+				,[
+					 1793
+					,1791
+					,1792
+				]
+				,[
+					 1794
+					,1793
+					,1792
+				]
+				,[
+					 1797
+					,1792
+					,1796
+				]
+				,[
+					 1794
+					,1792
+					,1797
+				]
+				,[
+					 1798
+					,1794
+					,1797
+				]
+				,[
+					 1799
+					,1800
+					,1801
+				]
+				,[
+					 1799
+					,1802
+					,1800
+				]
+				,[
+					 1803
+					,1804
+					,1805
+				]
+				,[
+					 1803
+					,1806
+					,1804
+				]
+				,[
+					 1807
+					,1808
+					,1809
+				]
+				,[
+					 1807
+					,1810
+					,1811
+				]
+				,[
+					 1812
+					,1813
+					,1814
+				]
+				,[
+					 1812
+					,1815
+					,1813
+				]
+				,[
+					 1816
+					,1817
+					,1818
+				]
+				,[
+					 1816
+					,1819
+					,1817
+				]
+				,[
+					 1820
+					,1821
+					,1822
+				]
+				,[
+					 1820
+					,1823
+					,1821
+				]
+				,[
+					 1824
+					,1823
+					,1820
+				]
+				,[
+					 1825
+					,1824
+					,1820
+				]
+				,[
+					 1821
+					,1823
+					,1836
+				]
+				,[
+					 1837
+					,1821
+					,1836
+				]
+				,[
+					 1823
+					,1824
+					,1838
+				]
+				,[
+					 1836
+					,1823
+					,1838
+				]
+				,[
+					 1837
+					,1836
+					,1844
+				]
+				,[
+					 1836
+					,1838
+					,1846
+				]
+				,[
+					 1844
+					,1836
+					,1846
+				]
+				,[
+					 1845
+					,1837
+					,1844
+				]
+				,[
+					 1845
+					,1844
+					,1852
+				]
+				,[
+					 1844
+					,1846
+					,1854
+				]
+				,[
+					 1852
+					,1844
+					,1854
+				]
+				,[
+					 1846
+					,1838
+					,1847
+				]
+				,[
+					 1846
+					,1847
+					,1855
+				]
+				,[
+					 1854
+					,1846
+					,1855
+				]
+				,[
+					 1838
+					,1824
+					,1839
+				]
+				,[
+					 1838
+					,1839
+					,1847
+				]
+				,[
+					 1824
+					,1827
+					,1839
+				]
+				,[
+					 1826
+					,1824
+					,1825
+				]
+				,[
+					 1826
+					,1827
+					,1824
+				]
+				,[
+					 1854
+					,1855
+					,1863
+				]
+				,[
+					 1862
+					,1854
+					,1863
+				]
+				,[
+					 1852
+					,1854
+					,1862
+				]
+				,[
+					 1860
+					,1852
+					,1862
+				]
+				,[
+					 1853
+					,1852
+					,1860
+				]
+				,[
+					 1861
+					,1853
+					,1860
+				]
+				,[
+					 1853
+					,1845
+					,1852
+				]
+				,[
+					 1828
+					,1829
+					,1830
+				]
+				,[
+					 1831
+					,1828
+					,1830
+				]
+				,[
+					 1832
+					,1828
+					,1831
+				]
+				,[
+					 1832
+					,1833
+					,1828
+				]
+				,[
+					 1829
+					,1828
+					,1840
+				]
+				,[
+					 1828
+					,1833
+					,1842
+				]
+				,[
+					 1840
+					,1828
+					,1842
+				]
+				,[
+					 1841
+					,1829
+					,1840
+				]
+				,[
+					 1841
+					,1840
+					,1848
+				]
+				,[
+					 1840
+					,1842
+					,1850
+				]
+				,[
+					 1848
+					,1840
+					,1850
+				]
+				,[
+					 1842
+					,1833
+					,1843
+				]
+				,[
+					 1842
+					,1843
+					,1851
+				]
+				,[
+					 1850
+					,1842
+					,1851
+				]
+				,[
+					 1834
+					,1833
+					,1832
+				]
+				,[
+					 1833
+					,1834
+					,1843
+				]
+				,[
+					 1835
+					,1834
+					,1832
+				]
+				,[
+					 1850
+					,1851
+					,1859
+				]
+				,[
+					 1848
+					,1850
+					,1858
+				]
+				,[
+					 1858
+					,1850
+					,1859
+				]
+				,[
+					 1858
+					,1859
+					,1867
+				]
+				,[
+					 1856
+					,1848
+					,1858
+				]
+				,[
+					 1856
+					,1858
+					,1866
+				]
+				,[
+					 1866
+					,1858
+					,1867
+				]
+				,[
+					 1849
+					,1848
+					,1856
+				]
+				,[
+					 1857
+					,1849
+					,1856
+				]
+				,[
+					 1857
+					,1856
+					,1864
+				]
+				,[
+					 1864
+					,1856
+					,1866
+				]
+				,[
+					 1849
+					,1841
+					,1848
+				]
+				,[
+					 1865
+					,1857
+					,1864
+				]
+				,[
+					 1868
+					,1869
+					,1870
+				]
+				,[
+					 1871
+					,1868
+					,1870
+				]
+				,[
+					 1869
+					,1872
+					,1873
+				]
+				,[
+					 1870
+					,1869
+					,1873
+				]
+				,[
+					 1872
+					,1874
+					,1875
+				]
+				,[
+					 1873
+					,1872
+					,1875
+				]
+				,[
+					 1876
+					,1877
+					,1878
+				]
+				,[
+					 1879
+					,1876
+					,1878
+				]
+				,[
+					 1877
+					,1880
+					,1881
+				]
+				,[
+					 1878
+					,1877
+					,1881
+				]
+				,[
+					 1880
+					,1882
+					,1883
+				]
+				,[
+					 1881
+					,1880
+					,1883
+				]
+				,[
+					 1884
+					,1885
+					,1886
+				]
+				,[
+					 1887
+					,1885
+					,1884
+				]
+				,[
+					 1888
+					,1885
+					,1887
+				]
+				,[
+					 1889
+					,1885
+					,1888
+				]
+				,[
+					 1890
+					,1885
+					,1889
+				]
+				,[
+					 1886
+					,1885
+					,1890
+				]
+				,[
+					 1891
+					,1892
+					,1893
+				]
+				,[
+					 1891
+					,1894
+					,1892
+				]
+				,[
+					 1895
+					,1894
+					,1891
+				]
+				,[
+					 1896
+					,1895
+					,1891
+				]
+				,[
+					 1897
+					,1895
+					,1896
+				]
+				,[
+					 1897
+					,1898
+					,1895
+				]
+				,[
+					 1899
+					,1900
+					,1901
+				]
+				,[
+					 1902
+					,1899
+					,1901
+				]
+				,[
+					 1903
+					,1904
+					,1902
+				]
+				,[
+					 1903
+					,1905
+					,1904
+				]
+				,[
+					 1906
+					,1907
+					,1903
+				]
+				,[
+					 1908
+					,1906
+					,1903
+				]
+				,[
+					 1911
+					,1912
+					,1913
+				]
+				,[
+					 1913
+					,1912
+					,1924
+				]
+				,[
+					 1932
+					,1933
+					,1934
+				]
+				,[
+					 1935
+					,1932
+					,1934
+				]
+				,[
+					 1936
+					,1937
+					,1938
+				]
+				,[
+					 1937
+					,1939
+					,1940
+				]
+				,[
+					 1940
+					,1938
+					,1937
+				]
+				,[
+					 1940
+					,1943
+					,1938
+				]
+				,[
+					 1942
+					,1940
+					,1939
+				]
+				,[
+					 1939
+					,1941
+					,1942
+				]
+				,[
+					 1944
+					,1945
+					,1946
+				]
+				,[
+					 1944
+					,1947
+					,1945
+				]
+				,[
+					 1948
+					,1947
+					,1944
+				]
+				,[
+					 1949
+					,1948
+					,1944
+				]
+				,[
+					 1944
+					,1946
+					,1962
+				]
+				,[
+					 1963
+					,1944
+					,1962
+				]
+				,[
+					 1949
+					,1944
+					,1963
+				]
+				,[
+					 1945
+					,1961
+					,1960
+				]
+				,[
+					 1946
+					,1945
+					,1960
+				]
+				,[
+					 1946
+					,1960
+					,1970
+				]
+				,[
+					 1962
+					,1946
+					,1970
+				]
+				,[
+					 1963
+					,1962
+					,1971
+				]
+				,[
+					 1962
+					,1970
+					,1982
+				]
+				,[
+					 1971
+					,1962
+					,1982
+				]
+				,[
+					 1964
+					,1949
+					,1963
+				]
+				,[
+					 1972
+					,1963
+					,1971
+				]
+				,[
+					 1964
+					,1963
+					,1972
+				]
+				,[
+					 1950
+					,1949
+					,1964
+				]
+				,[
+					 1965
+					,1950
+					,1964
+				]
+				,[
+					 1973
+					,1964
+					,1972
+				]
+				,[
+					 1965
+					,1964
+					,1973
+				]
+				,[
+					 1953
+					,1950
+					,1965
+				]
+				,[
+					 1966
+					,1953
+					,1965
+				]
+				,[
+					 1974
+					,1965
+					,1973
+				]
+				,[
+					 1966
+					,1965
+					,1974
+				]
+				,[
+					 1953
+					,1952
+					,1950
+				]
+				,[
+					 1954
+					,1952
+					,1953
+				]
+				,[
+					 1954
+					,1953
+					,1966
+				]
+				,[
+					 1967
+					,1954
+					,1966
+				]
+				,[
+					 1975
+					,1966
+					,1974
+				]
+				,[
+					 1967
+					,1966
+					,1975
+				]
+				,[
+					 1954
+					,1955
+					,1952
+				]
+				,[
+					 1952
+					,1951
+					,1950
+				]
+				,[
+					 1950
+					,1951
+					,1948
+				]
+				,[
+					 1950
+					,1948
+					,1949
+				]
+				,[
+					 1976
+					,1967
+					,1975
+				]
+				,[
+					 1982
+					,1970
+					,1980
+				]
+				,[
+					 1970
+					,1960
+					,1969
+				]
+				,[
+					 1970
+					,1969
+					,1980
+				]
+				,[
+					 1980
+					,1969
+					,1981
+				]
+				,[
+					 1969
+					,1959
+					,1968
+				]
+				,[
+					 1960
+					,1959
+					,1969
+				]
+				,[
+					 1960
+					,1956
+					,1959
+				]
+				,[
+					 1960
+					,1961
+					,1956
+				]
+				,[
+					 1959
+					,1956
+					,1958
+				]
+				,[
+					 1959
+					,1958
+					,1968
+				]
+				,[
+					 1956
+					,1957
+					,1958
+				]
+				,[
+					 1977
+					,1978
+					,1979
+				]
+				,[
+					 1983
+					,1984
+					,1985
+				]
+				,[
+					 1984
+					,1986
+					,1985
+				]
+				,[
+					 1987
+					,1988
+					,1989
+				]
+				,[
+					 1993
+					,1987
+					,1989
+				]
+				,[
+					 1988
+					,1990
+					,1989
+				]
+				,[
+					 1994
+					,1992
+					,1988
+				]
+				,[
+					 1992
+					,1990
+					,1988
+				]
+				,[
+					 1989
+					,1990
+					,1991
+				]
+				,[
+					 1991
+					,1993
+					,1989
+				]
+				,[
+					 1991
+					,1992
+					,1993
+				]
+				,[
+					 1992
+					,1994
+					,1993
+				]
+				,[
+					 1990
+					,1992
+					,1991
+				]
+				,[
+					 1995
+					,1996
+					,1997
+				]
+				,[
+					 1996
+					,1998
+					,1997
+				]
+				,[
+					 1999
+					,2000
+					,2001
+				]
+				,[
+					 2005
+					,1999
+					,2001
+				]
+				,[
+					 2000
+					,2002
+					,2001
+				]
+				,[
+					 2006
+					,2004
+					,2000
+				]
+				,[
+					 2004
+					,2002
+					,2000
+				]
+				,[
+					 2001
+					,2002
+					,2003
+				]
+				,[
+					 2003
+					,2005
+					,2001
+				]
+				,[
+					 2003
+					,2004
+					,2005
+				]
+				,[
+					 2004
+					,2006
+					,2005
+				]
+				,[
+					 2002
+					,2004
+					,2003
+				]
+				,[
+					 2007
+					,2008
+					,2009
+				]
+				,[
+					 2007
+					,2010
+					,2008
+				]
+				,[
+					 2011
+					,2012
+					,2013
+				]
+				,[
+					 2011
+					,2014
+					,2012
+				]
+				,[
+					 2015
+					,2014
+					,2011
+				]
+				,[
+					 2011
+					,2017
+					,2015
+				]
+				,[
+					 2011
+					,2013
+					,2017
+				]
+				,[
+					 2012
+					,2016
+					,2018
+				]
+				,[
+					 2012
+					,2014
+					,2016
+				]
+				,[
+					 2015
+					,2016
+					,2014
+				]
+				,[
+					 2017
+					,2016
+					,2015
+				]
+				,[
+					 2017
+					,2018
+					,2016
+				]
+				,[
+					 2019
+					,2020
+					,2021
+				]
+				,[
+					 2019
+					,2022
+					,2020
+				]
+				,[
+					 2023
+					,2024
+					,2025
+				]
+				,[
+					 2023
+					,2026
+					,2024
+				]
+				,[
+					 2027
+					,2026
+					,2023
+				]
+				,[
+					 2023
+					,2029
+					,2027
+				]
+				,[
+					 2023
+					,2025
+					,2029
+				]
+				,[
+					 2024
+					,2028
+					,2030
+				]
+				,[
+					 2024
+					,2026
+					,2028
+				]
+				,[
+					 2027
+					,2028
+					,2026
+				]
+				,[
+					 2029
+					,2028
+					,2027
+				]
+				,[
+					 2029
+					,2030
+					,2028
+				]
+				,[
+					 2031
+					,2032
+					,2033
+				]
+				,[
+					 2031
+					,2034
+					,2032
+				]
+				,[
+					 2035
+					,2036
+					,2037
+				]
+				,[
+					 2035
+					,2038
+					,2036
+				]
+				,[
+					 2039
+					,2038
+					,2035
+				]
+				,[
+					 2035
+					,2041
+					,2039
+				]
+				,[
+					 2035
+					,2037
+					,2041
+				]
+				,[
+					 2036
+					,2040
+					,2042
+				]
+				,[
+					 2036
+					,2038
+					,2040
+				]
+				,[
+					 2039
+					,2040
+					,2038
+				]
+				,[
+					 2041
+					,2040
+					,2039
+				]
+				,[
+					 2041
+					,2042
+					,2040
+				]
+				,[
+					 2043
+					,2044
+					,2045
+				]
+				,[
+					 2044
+					,2046
+					,2045
+				]
+				,[
+					 2047
+					,2048
+					,2049
+				]
+				,[
+					 2053
+					,2047
+					,2049
+				]
+				,[
+					 2048
+					,2050
+					,2049
+				]
+				,[
+					 2054
+					,2052
+					,2048
+				]
+				,[
+					 2052
+					,2050
+					,2048
+				]
+				,[
+					 2049
+					,2050
+					,2051
+				]
+				,[
+					 2051
+					,2053
+					,2049
+				]
+				,[
+					 2051
+					,2052
+					,2053
+				]
+				,[
+					 2052
+					,2054
+					,2053
+				]
+				,[
+					 2050
+					,2052
+					,2051
+				]
+				,[
+					 2055
+					,2056
+					,2057
+				]
+				,[
+					 2132
+					,2055
+					,2057
+				]
+				,[
+					 2055
+					,2061
+					,2064
+				]
+				,[
+					 2055
+					,2064
+					,2056
+				]
+				,[
+					 2132
+					,2061
+					,2055
+				]
+				,[
+					 2056
+					,2067
+					,2057
+				]
+				,[
+					 2056
+					,2064
+					,2069
+				]
+				,[
+					 2056
+					,2069
+					,2067
+				]
+				,[
+					 2061
+					,2063
+					,2064
+				]
+				,[
+					 2064
+					,2063
+					,2069
+				]
+				,[
+					 2063
+					,2070
+					,2069
+				]
+				,[
+					 2069
+					,2070
+					,2074
+				]
+				,[
+					 2069
+					,2074
+					,2075
+				]
+				,[
+					 2067
+					,2069
+					,2075
+				]
+				,[
+					 2067
+					,2072
+					,2057
+				]
+				,[
+					 2067
+					,2075
+					,2072
+				]
+				,[
+					 2075
+					,2074
+					,2079
+				]
+				,[
+					 2072
+					,2075
+					,2079
+				]
+				,[
+					 2074
+					,2080
+					,2079
+				]
+				,[
+					 2079
+					,2080
+					,2084
+				]
+				,[
+					 2079
+					,2084
+					,2085
+				]
+				,[
+					 2072
+					,2079
+					,2077
+				]
+				,[
+					 2077
+					,2079
+					,2085
+				]
+				,[
+					 2072
+					,2077
+					,2057
+				]
+				,[
+					 2077
+					,2082
+					,2057
+				]
+				,[
+					 2077
+					,2085
+					,2082
+				]
+				,[
+					 2085
+					,2084
+					,2089
+				]
+				,[
+					 2082
+					,2085
+					,2089
+				]
+				,[
+					 2084
+					,2090
+					,2089
+				]
+				,[
+					 2089
+					,2090
+					,2094
+				]
+				,[
+					 2089
+					,2094
+					,2095
+				]
+				,[
+					 2082
+					,2089
+					,2087
+				]
+				,[
+					 2087
+					,2089
+					,2095
+				]
+				,[
+					 2082
+					,2087
+					,2057
+				]
+				,[
+					 2087
+					,2092
+					,2057
+				]
+				,[
+					 2087
+					,2095
+					,2092
+				]
+				,[
+					 2095
+					,2094
+					,2099
+				]
+				,[
+					 2092
+					,2095
+					,2099
+				]
+				,[
+					 2094
+					,2100
+					,2099
+				]
+				,[
+					 2099
+					,2100
+					,2104
+				]
+				,[
+					 2099
+					,2104
+					,2105
+				]
+				,[
+					 2092
+					,2099
+					,2097
+				]
+				,[
+					 2097
+					,2099
+					,2105
+				]
+				,[
+					 2092
+					,2097
+					,2057
+				]
+				,[
+					 2097
+					,2102
+					,2057
+				]
+				,[
+					 2097
+					,2105
+					,2102
+				]
+				,[
+					 2105
+					,2104
+					,2109
+				]
+				,[
+					 2102
+					,2105
+					,2109
+				]
+				,[
+					 2104
+					,2110
+					,2109
+				]
+				,[
+					 2109
+					,2110
+					,2114
+				]
+				,[
+					 2109
+					,2114
+					,2115
+				]
+				,[
+					 2102
+					,2109
+					,2107
+				]
+				,[
+					 2107
+					,2109
+					,2115
+				]
+				,[
+					 2102
+					,2107
+					,2057
+				]
+				,[
+					 2107
+					,2112
+					,2057
+				]
+				,[
+					 2107
+					,2115
+					,2112
+				]
+				,[
+					 2115
+					,2114
+					,2119
+				]
+				,[
+					 2112
+					,2115
+					,2119
+				]
+				,[
+					 2114
+					,2120
+					,2119
+				]
+				,[
+					 2119
+					,2120
+					,2124
+				]
+				,[
+					 2119
+					,2124
+					,2125
+				]
+				,[
+					 2112
+					,2119
+					,2117
+				]
+				,[
+					 2117
+					,2119
+					,2125
+				]
+				,[
+					 2112
+					,2117
+					,2057
+				]
+				,[
+					 2117
+					,2122
+					,2057
+				]
+				,[
+					 2117
+					,2125
+					,2122
+				]
+				,[
+					 2125
+					,2124
+					,2129
+				]
+				,[
+					 2122
+					,2125
+					,2129
+				]
+				,[
+					 2124
+					,2130
+					,2129
+				]
+				,[
+					 2129
+					,2130
+					,2134
+				]
+				,[
+					 2129
+					,2134
+					,2135
+				]
+				,[
+					 2122
+					,2129
+					,2127
+				]
+				,[
+					 2127
+					,2129
+					,2135
+				]
+				,[
+					 2122
+					,2127
+					,2057
+				]
+				,[
+					 2127
+					,2132
+					,2057
+				]
+				,[
+					 2127
+					,2135
+					,2132
+				]
+				,[
+					 2135
+					,2134
+					,2061
+				]
+				,[
+					 2132
+					,2135
+					,2061
+				]
+				,[
+					 2134
+					,2062
+					,2061
+				]
+				,[
+					 2061
+					,2062
+					,2063
+				]
+				,[
+					 2058
+					,2059
+					,2060
+				]
+				,[
+					 2065
+					,2058
+					,2066
+				]
+				,[
+					 2058
+					,2060
+					,2066
+				]
+				,[
+					 2133
+					,2059
+					,2058
+				]
+				,[
+					 2136
+					,2133
+					,2058
+				]
+				,[
+					 2136
+					,2058
+					,2065
+				]
+				,[
+					 2060
+					,2059
+					,2068
+				]
+				,[
+					 2066
+					,2060
+					,2068
+				]
+				,[
+					 2066
+					,2068
+					,2071
+				]
+				,[
+					 2068
+					,2059
+					,2073
+				]
+				,[
+					 2071
+					,2068
+					,2076
+				]
+				,[
+					 2068
+					,2073
+					,2076
+				]
+				,[
+					 2073
+					,2059
+					,2078
+				]
+				,[
+					 2076
+					,2073
+					,2078
+				]
+				,[
+					 2076
+					,2078
+					,2081
+				]
+				,[
+					 2078
+					,2059
+					,2083
+				]
+				,[
+					 2081
+					,2078
+					,2086
+				]
+				,[
+					 2078
+					,2083
+					,2086
+				]
+				,[
+					 2083
+					,2059
+					,2088
+				]
+				,[
+					 2086
+					,2083
+					,2088
+				]
+				,[
+					 2086
+					,2088
+					,2091
+				]
+				,[
+					 2088
+					,2059
+					,2093
+				]
+				,[
+					 2091
+					,2088
+					,2096
+				]
+				,[
+					 2088
+					,2093
+					,2096
+				]
+				,[
+					 2093
+					,2059
+					,2098
+				]
+				,[
+					 2096
+					,2093
+					,2098
+				]
+				,[
+					 2096
+					,2098
+					,2101
+				]
+				,[
+					 2098
+					,2059
+					,2103
+				]
+				,[
+					 2101
+					,2098
+					,2106
+				]
+				,[
+					 2098
+					,2103
+					,2106
+				]
+				,[
+					 2103
+					,2059
+					,2108
+				]
+				,[
+					 2106
+					,2103
+					,2108
+				]
+				,[
+					 2106
+					,2108
+					,2111
+				]
+				,[
+					 2108
+					,2059
+					,2113
+				]
+				,[
+					 2111
+					,2108
+					,2116
+				]
+				,[
+					 2108
+					,2113
+					,2116
+				]
+				,[
+					 2113
+					,2059
+					,2118
+				]
+				,[
+					 2116
+					,2113
+					,2118
+				]
+				,[
+					 2116
+					,2118
+					,2121
+				]
+				,[
+					 2118
+					,2059
+					,2123
+				]
+				,[
+					 2121
+					,2118
+					,2126
+				]
+				,[
+					 2118
+					,2123
+					,2126
+				]
+				,[
+					 2123
+					,2059
+					,2128
+				]
+				,[
+					 2128
+					,2059
+					,2133
+				]
+				,[
+					 2126
+					,2123
+					,2128
+				]
+				,[
+					 2126
+					,2128
+					,2131
+				]
+				,[
+					 2131
+					,2128
+					,2136
+				]
+				,[
+					 2128
+					,2133
+					,2136
+				]
+				,[
+					 2137
+					,2138
+					,2139
+				]
+				,[
+					 2138
+					,2140
+					,2139
+				]
+				,[
+					 2141
+					,2142
+					,2143
+				]
+				,[
+					 2141
+					,2143
+					,2144
+				]
+				,[
+					 2145
+					,2146
+					,2147
+				]
+				,[
+					 2145
+					,2147
+					,2148
+				]
+				,[
+					 2149
+					,2150
+					,2151
+				]
+				,[
+					 2150
+					,2152
+					,2151
+				]
+				,[
+					 2153
+					,2154
+					,2155
+				]
+				,[
+					 2154
+					,2156
+					,2155
+				]
+				,[
+					 2157
+					,2158
+					,2159
+				]
+				,[
+					 2157
+					,2159
+					,2160
+				]
+				,[
+					 2161
+					,2162
+					,2163
+				]
+				,[
+					 2161
+					,2163
+					,2164
+				]
+				,[
+					 2165
+					,2166
+					,2167
+				]
+				,[
+					 2166
+					,2168
+					,2167
+				]
+				,[
+					 2169
+					,2170
+					,2171
+				]
+				,[
+					 2170
+					,2172
+					,2171
+				]
+				,[
+					 2173
+					,2174
+					,2175
+				]
+				,[
+					 2173
+					,2175
+					,2176
+				]
+				,[
+					 2177
+					,2178
+					,2179
+				]
+				,[
+					 2177
+					,2179
+					,2180
+				]
+				,[
+					 2181
+					,2182
+					,2183
+				]
+				,[
+					 2182
+					,2184
+					,2183
+				]
+				,[
+					 2185
+					,2186
+					,2187
+				]
+				,[
+					 2186
+					,2188
+					,2187
+				]
+				,[
+					 2189
+					,2190
+					,2191
+				]
+				,[
+					 2189
+					,2191
+					,2192
+				]
+				,[
+					 2193
+					,2194
+					,2195
+				]
+				,[
+					 2193
+					,2195
+					,2196
+				]
+				,[
+					 2197
+					,2198
+					,2199
+				]
+				,[
+					 2198
+					,2200
+					,2199
+				]
+				,[
+					 2201
+					,2202
+					,2203
+				]
+				,[
+					 2202
+					,2204
+					,2203
+				]
+				,[
+					 2205
+					,2206
+					,2207
+				]
+				,[
+					 2205
+					,2207
+					,2208
+				]
+				,[
+					 2209
+					,2210
+					,2211
+				]
+				,[
+					 2209
+					,2211
+					,2212
+				]
+				,[
+					 2213
+					,2214
+					,2215
+				]
+				,[
+					 2214
+					,2216
+					,2215
+				]
+				,[
+					 2217
+					,2218
+					,2219
+				]
+				,[
+					 2218
+					,2220
+					,2219
+				]
+				,[
+					 2221
+					,2222
+					,2223
+				]
+				,[
+					 2221
+					,2223
+					,2224
+				]
+				,[
+					 2225
+					,2226
+					,2227
+				]
+				,[
+					 2225
+					,2227
+					,2228
+				]
+				,[
+					 2229
+					,2230
+					,2231
+				]
+				,[
+					 2230
+					,2232
+					,2231
+				]
+				,[
+					 2233
+					,2234
+					,2235
+				]
+				,[
+					 2234
+					,2236
+					,2235
+				]
+				,[
+					 2237
+					,2238
+					,2239
+				]
+				,[
+					 2237
+					,2239
+					,2240
+				]
+				,[
+					 2241
+					,2242
+					,2243
+				]
+				,[
+					 2241
+					,2243
+					,2244
+				]
+				,[
+					 2245
+					,2246
+					,2247
+				]
+				,[
+					 2246
+					,2248
+					,2247
+				]
+				,[
+					 2249
+					,2250
+					,2251
+				]
+				,[
+					 2250
+					,2252
+					,2251
+				]
+				,[
+					 2253
+					,2254
+					,2255
+				]
+				,[
+					 2253
+					,2255
+					,2256
+				]
+				,[
+					 2257
+					,2258
+					,2259
+				]
+				,[
+					 2257
+					,2259
+					,2260
+				]
+				,[
+					 2261
+					,2262
+					,2263
+				]
+				,[
+					 2262
+					,2264
+					,2263
+				]
+			]
+		}
+	]
+	,"materials": [
+		{
+			 "properties": [
+				{
+					 "key": "$tex.file"
+					,"semantic": 1
+					,"index": 0
+					,"type": 3
+					,"value": ".\\jeep1.jpg"
+				}
+				,{
+					 "key": "?mat.name"
+					,"semantic": 0
+					,"index": 0
+					,"type": 3
+					,"value": "Material01"
+				}
+				,{
+					 "key": "$clr.ambient"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.2
+						,0.2
+						,0.2
+						,1
+					]
+				}
+				,{
+					 "key": "$clr.diffuse"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.8
+						,0.8
+						,0.8
+						,1
+					]
+				}
+				,{
+					 "key": "$clr.specular"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0
+						,0
+						,0
+						,1
+					]
+				}
+				,{
+					 "key": "$clr.emissive"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": [
+						 0.345098
+						,0.345098
+						,0.345098
+						,1
+					]
+				}
+				,{
+					 "key": "$mat.shininess"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": 25
+				}
+				,{
+					 "key": "$mat.opacity"
+					,"semantic": 0
+					,"index": 0
+					,"type": 1
+					,"value": 1
+				}
+				,{
+					 "key": "$mat.shadingm"
+					,"semantic": 0
+					,"index": 0
+					,"type": 4
+					,"value": 3
+				}
+			]
+		}
+	]
+}

+ 15 - 0
examples/models/assimp/jeep/jeep1.readme.txt

@@ -0,0 +1,15 @@
+Jeep designed, modelled and skinned by me, Psionic
+
+FREE for use however you like, credits are appreciated!!!
+
+It was modelled in Milkshape 3D and includes the MS3D files oriented for X or B3D format (BlitzBasic 3D), its 2032 polys with a 512x512 jpg texture map. There are two skin variations plus a UV template to help out if you want to create your own skin variations.
+
+I'd love to see a few screenshots of it being used in-game so feel free to stop by my site and maybe drop by my forums and show us all what your doing with it!!!!!!!
+
+Check out more of my work at:-
+
+http://xu1productions.com/3dstudio/index.html  -  3D Game Resources
+
+http://www.psionicdesign.com  -  My Main 2D/3D Digital Art site
+
+Psionic 2002

+ 5183 - 0
examples/models/vrml/house.wrl

@@ -0,0 +1,5183 @@
+#VRML V2.0 utf8
+
+
+Group {
+children[
+DirectionalLight {
+  ambientIntensity  0 
+  color             1 1 0.9
+  direction         0.5 -1.5 -1
+  intensity         1.8 
+  on                TRUE 
+}
+
+DirectionalLight {
+  ambientIntensity  0 
+  color             1 1 0.9
+  direction         -0.5 1 0
+  intensity        1 
+  on                TRUE 
+}
+
+NavigationInfo {
+  
+  avatarSize       [ 0.2, 1.4, 0.5 ]
+
+  headlight        FALSE
+ 
+  
+}
+
+
+
+
+DirectionalLight {
+  ambientIntensity  0 
+  color             0.6 0.6 0.8
+  direction         -1 0.5 2
+  intensity         1 
+  on                TRUE 
+}
+
+Background {
+  groundAngle  [ 1.5 1.6 ]
+  groundColor  [ 0.2 0.6 0.3, 0.4 0.4 0.35, 0.3 0.5 0.6  ]
+  backUrl      []
+  bottomUrl    []
+  frontUrl     []
+  leftUrl      []
+  rightUrl     []
+  topUrl       []
+  skyAngle     [ 1.5 ]
+  skyColor     [ 0.5 0.7 1,	0.7 1 0.9 ]
+  
+}
+
+Viewpoint {
+	fieldOfView    1
+	jump           TRUE
+	orientation     0 1 0 -0.5
+	position       -4 2 10
+
+	description    "Entry"
+}
+
+Viewpoint {
+	fieldOfView    1
+	jump           TRUE
+	orientation    0 0 1  0
+	position       3.5 1.7 13
+
+	description    "Vooraanzicht"
+}
+
+Viewpoint {
+	fieldOfView    1
+	jump           TRUE
+	orientation    0 0 1  0
+	position       2.5 1.5 -4.5
+
+	description    "Woonkamer"
+}
+
+Viewpoint {
+	fieldOfView    1
+	jump           TRUE
+	orientation    0 0 1  0
+	position       1.5 1.5 -1.7
+
+	description    "Keuken"
+}
+
+
+
+Viewpoint {
+	fieldOfView    1
+	jump           TRUE
+	orientation    0 1 0  3.1415927
+	position       2.5 2.5 -20
+
+	description    "Achteraanzicht"
+}
+
+Viewpoint {
+	fieldOfView    1
+	jump           TRUE
+	orientation    1 0 0  -1.5707963
+	position       2.5 20 -4.5
+
+	description    "Bovenaanzicht"
+}
+
+
+
+
+
+# beneden/beneden.wrl
+
+
+
+
+DEF vloer Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.5 0.3
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0.14	0	-0.14,
+						5.54	0	-0.14,
+						5.54	0	-8.86,
+						0.14	0	-8.86,
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+	0, 1, 2, 3, -1,
+	0, 3, 2, 1, -1,
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+DEF drempelvoor Transform {
+children[
+	Shape {
+		appearance 	Appearance {
+			material 	Material {
+	ambientIntensity  0.2
+	diffuseColor      0.4 0.4 0.4
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+					}	
+				}
+		geometry 	Box {
+	size	1.23 0.04 0.30
+				}
+
+	}
+ ]
+translation		3.805	0.02 -0.14
+}
+
+DEF drempelachter Transform {
+children[
+	Shape {
+		appearance 	Appearance {
+			material 	Material {
+	ambientIntensity  0.2
+	diffuseColor      0.4 0.4 0.4
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+					}	
+				}
+		geometry 	Box {
+	size	1.05 0.04 0.30
+				}
+
+	}
+ ]
+translation		1.725	0.02 -8.86
+}
+
+
+DEF stukmuur1 Transform {
+children[
+	Shape {
+	appearance DEF wandkleur Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.9 0.7
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+		geometry 	Box {
+	size	0.70 2.70 0.07
+				}
+
+	}
+ ]
+translation		0.63	1.35 -3.395
+}
+
+DEF stukmuur2 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	1.41 2.70 0.07
+				}
+
+	}
+ ]
+translation		2.485	1.35 -3.395
+}
+
+
+DEF stukmuur3 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.43 2.70 0.07
+				}
+
+	}
+ ]
+translation		4.205	1.35 -3.395
+}
+
+DEF stukmuur4 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	1.06 2.8 0.07
+				}
+
+	}
+ ]
+translation		4.87	1.4 -4.395
+}
+
+DEF stukmuur5 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.07 2.70 2.28
+				}
+
+	}
+ ]
+translation		3.155	1.35 -1.42
+}
+
+DEF stukmuur6 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.98 2.8 0.07
+				}
+
+	}
+ ]
+translation		4.91	1.4 -2.325
+}
+
+DEF stukmuur7 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.98 2.70 0.07
+				}
+
+	}
+ ]
+translation		4.91	1.35 -1.515
+}
+
+
+DEF stukmuur8 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.07 2.70 0.4
+				}
+
+	}
+ ]
+translation		4.455	1.35 -0.48
+}
+
+DEF stukmuur9 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.07 2.70 0.74
+				}
+
+	}
+ ]
+translation		4.7	1.35 -1.92
+}
+
+
+
+# binmuur.wrl
+
+
+
+
+Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.9 0.7
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0.28	0	-0.28, #0 linkerbenedenhoek voorgevel
+						5.40	0	-0.28,
+						5.40	5.40	-0.28,
+						0.28	5.40	-0.28, #3 linkerbovenhoek voorgevel
+
+						3.19	0	-0.28, #4 voordeur
+						4.42	0	-0.28,
+						4.42	2.30	-0.28,
+						3.19	2.30	-0.28, #7 voordeur
+
+						4.84	1.60	-0.28, #toiletraam-8
+						5.04	1.60	-0.28,
+						5.04	2.30	-0.28,
+						4.84	2.30	-0.28, 
+
+						2.60	0.90	-0.28, #keukenraam-12
+						2.60	2.30	-0.28,
+						0.60	2.30	-0.28,
+						0.60	0.90	-0.28,
+
+						0.60	3.60	-0.28, #bovenraam-16
+						1.50	3.60	-0.28,
+						1.50	5.0	-0.28,
+						4.42	5.0	-0.28,
+						4.42	5.40	-0.28, 
+						0.60	5.40	-0.28,
+
+						0.28	8.55	-3.15, #linkergevel-22
+						0.28	2.70	-8.72,
+						0.28	0	-8.72,
+
+						5.40	8.55	-3.15, #rechtergevel-25
+						5.40	5.40	-6.30,
+						5.40	5.40	-8.72,
+						5.40	0	-8.72,
+
+						2.25	0	-8.72, #achtergevel-29
+						2.25	0.6	-8.72,
+						4.8	0.6	-8.72,
+						4.8	5.40	-8.72,
+						1.2	0	-8.72,
+						1.2	2.70	-8.72,
+
+
+						3.19	0	-0.14, #diepte van de voordeur-35
+						4.42	0	-0.14,
+						4.42	2.30	-0.14,
+						3.19	2.30	-0.14, #diepte van de voordeur-38
+
+						2.60	0.90	-0.14, # diepte van het keukenraam-39
+						2.60	2.30	-0.14,
+						0.60	2.30	-0.14,
+						0.60	0.90	-0.14,
+
+						4.84	1.60	-0.14, #diepte van het toiletraam-43
+						5.04	1.60	-0.14,
+						5.04	2.30	-0.14,
+						4.84	2.30	-0.14, 
+
+						0.60	3.60	-0.14, #diepte van het bovenraam-47
+						1.50	3.60	-0.14,
+						1.50	5.0	-0.14,
+						4.42	5.0	-0.14,
+						4.42	5.40	-0.14, 
+						0.60	5.40	-0.14, #52
+
+						2.25	0	-8.86, #diepte van de achtergevel-53
+						2.25	0.6	-8.86,
+						4.8	0.6	-8.86,
+						4.8	5.40	-8.86,
+						1.2	0	-8.86,
+						1.2	2.70	-8.86,	#58
+
+						0.28	5.40	0,	#59 hoekpunt voor dakvorm zolder
+						5.40	5.40	0,
+						0.28	5.40	-6.30, #61
+						0.28	2.70	-9.0,  #62 hoekpunt voor dakvorm 1e verdieping
+
+						0.28	2.7	-0.28, #63 extra punten voor segmentering beneden
+						0.14	2.7	-0.14,
+
+						5.4	2.7	-0.28, #65
+						5.54	2.7	-0.14, #
+
+						0.28	2.7	-8.72, #67
+						0.14	2.7	-8.86, #
+
+						5.4	2.7	-8.72, #69
+						5.54	2.7	-8.86, #
+
+						1.2	2.7	-8.72, #71
+						1.2	2.7	-8.86, #
+
+						4.8	2.7	-8.72, #73
+						4.8	2.7	-8.86, #
+						
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+		0, 4, 12, 15, -1,
+		0, 15, 12, 4, -1,
+
+		0, 15, 14, 63, -1,
+		0, 63, 14, 15, -1,
+
+		14, 13, 65, 63, -1,
+		
+		4, 12, 13, 7, -1,
+
+		13, 7, 6, 65, -1,
+
+		6, 11, 10, 65, -1,
+
+		5, 8, 11, 6, -1,
+
+		5, 8, 9, 1, -1,
+
+		1, 9, 10, 65, -1,
+
+		0, 63, 67, 24, -1,
+
+		67, 24, 33, 71, -1,
+
+		28, 29, 30, 31, -1,
+
+		28, 31, 73, 69, -1,
+
+		28, 69, 65, 1, -1,
+
+		63, 65, 66, 64, -1,
+
+		65, 69, 70, 66, -1,
+
+		63, 67, 68, 64, -1,
+
+		69, 73, 74, 70, -1,
+
+		67, 71, 72, 68, -1,
+
+		5, 6, 37, 36, -1,
+
+		6, 7, 38, 37, -1,
+
+		4, 35, 38, 7, -1,
+
+		12, 39, 40, 13, -1,
+
+		13, 40, 41, 14, -1, 
+
+		14, 41, 42, 15, -1,
+
+		15, 42, 39, 12, -1, 
+
+		8, 43, 44, 9, -1,
+
+
+		9, 44, 45, 10, -1,
+
+
+		10, 45, 46, 11, -1,
+
+
+		11, 46, 43, 8, -1,
+
+
+		29, 53, 54, 30, -1,
+
+
+		30, 54, 55, 31, -1, 
+
+
+		31, 55, 74, 73, -1,
+
+
+		33, 57, 72, 71, -1,
+
+
+
+
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             FALSE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+#benodigde tijd tot hier 2 uur(kale buitenkant van het huis )
+
+# /binmuur.wrl
+
+# buitmuur.wrl
+
+
+
+
+Transform {
+	children [
+		Shape {
+appearance DEF steen Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.8 0.4 0.3
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0	    0	    0, # 0 linkerbenedenhoek voorgevel
+						5.68	0	    0,
+						5.68	5.40	0, # 2
+						0	    5.40	0, # 3 linkerbovenhoek voorgevel
+
+						3.19	0	    0, #voordeur
+						4.42	0	    0,
+						4.42	2.30	0, # 6
+						3.19	2.30	0, # 7 voordeur
+
+						4.84	1.60	0, #toiletraam-8
+						5.04	1.60	0,
+						5.04	2.30	0, # 10
+						4.84	2.30	0, 
+
+						2.60	0.90	0, #keukenraam-12
+						2.60	2.30	0, # 13
+						0.60	2.30	0,
+						0.60	0.90	0,
+
+						0.60	3.60	0, #bovenraam-16
+						1.50	3.60	0,
+						1.50	5.0	    0,
+						4.42	5.0	    0,
+						4.42	5.40	0, 
+						0.60	5.40	0,
+
+						0	8.555	-3.15, #linkergevel-22
+						0	2.7	-9.0,
+						0	0	-9.0,
+
+						5.68	8.555	-3.15, #rechtergevel-25
+						5.68	5.40	-6.3,
+						5.68	5.40	-9,
+						5.68	0	-9.0,
+
+						2.25	0	-9.0, #achtergevel-29
+						2.25	0.6	-9.0,
+						4.8	0.6	-9.0,
+						4.8	5.40	-9.0,
+						1.2	0	-9.0,
+						1.2	2.7	-9,
+
+
+						3.19	0	-0.14, #diepte van de voordeur-35
+						4.42	0	-0.14,
+						4.42	2.30	-0.14,
+						3.19	2.30	-0.14, #diepte van de voordeur-38
+
+						2.60	0.90	-0.14, # diepte van het keukenraam-39
+						2.60	2.30	-0.14,
+						0.60	2.30	-0.14,
+						0.60	0.90	-0.14,
+
+						4.84	1.60	-0.14, #diepte van het toiletraam-43
+						5.04	1.60	-0.14,
+						5.04	2.30	-0.14,
+						4.84	2.30	-0.14, 
+
+						0.60	3.60	-0.14, #diepte van het bovenraam-47
+						1.50	3.60	-0.14,
+						1.50	5.0	-0.14,
+						4.42	5.0	-0.14,
+						4.42	5.40	-0.14, 
+						0.60	5.40	-0.14, #52
+
+						2.25	0	-8.86, #diepte van de achtergevel-53
+						2.25	0.6	-8.86,
+						4.8	0.6	-8.86,
+						4.8	5.40	-8.86,
+						1.2	0	-8.86,
+						1.2	2.7	-8.86,	#58
+
+						0	2.7	0, #59 extra punten voor segmentering beneden
+						0.14	2.7	-0.14,
+
+						5.68	2.7	0, #61
+						5.54	2.7	-0.14, #
+
+						0	2.7	-9, #63
+						0.14	2.7	-8.86, #
+
+						5.68	2.7	-9, #65
+						5.54	2.7	-8.86, #
+
+						1.2	2.7	-9, #67
+						1.2	2.7	-8.86, #
+
+						4.8	2.7	-9, #69
+						4.8	2.7	-8.86, #
+
+
+
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+		0, 4, 12, 15, -1,
+
+		0, 15, 14, 59, -1,
+
+		14, 13, 61, 59,-1,
+
+
+		4, 7, 13, 12, -1,
+
+        13, 11, 61, -1,
+
+		11, 10, 61, -1,
+
+		9, 1, 61, 10, -1, 
+
+		5, 1, 9, 8, -1,
+
+		5, 8, 11, 6, -1,
+
+
+		0, 59, 63, 24, -1,
+
+		1, 28, 65, 61, -1,
+
+		28, 29, 30, 31, -1,
+
+		28, 31, 69, 65, -1,
+
+		33, 24, 63, 67, -1,
+
+		5, 6, 37, 36, -1,
+
+		6, 7, 38, 37, -1,
+
+		4, 35, 38, 7, -1,
+
+		12, 13, 40, 39, -1,
+
+		13, 14, 41, 40, -1,
+
+		15, 42, 41, 14, -1,
+
+		12, 39, 42, 15, -1
+
+		8, 9, 44, 43, -1,
+
+		9, 10 , 45, 44, -1,
+
+		10, 11, 46, 45, -1,
+
+		11, 8, 43, 46, -1,
+
+		29, 53, 54, 30, -1,
+
+		30, 54, 55, 31, -1, 
+
+		31, 55, 70, 69, -1,
+
+		33, 67, 68, 57, -1,
+
+		59, 61, 62, 60, -1,
+
+		59, 60, 64, 63, -1,
+
+		61, 65, 66, 62, -1,
+
+		65, 69, 70, 66, -1,
+
+		64, 68, 67, 63, -1,
+
+
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             FALSE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+Transform{#schuurtje
+children [
+
+DEF schuurvloer Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.5 0.3
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0.1	0	-0.1,
+						2.1	0	-0.1,
+						2.1	0	-3.1,
+						0.1	0	-3.1,
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+	0, 1, 2, 3, -1,
+	
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             FALSE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+Transform {
+children [
+Shape {
+appearance USE steen
+geometry Box {	size	2.2	2.6	0.1	}
+}
+]
+translation 1.1 1.3 -0.05
+}
+
+Transform{
+children [
+Shape {
+appearance USE steen
+geometry Box {	size	2.2	2.6	0.1	}
+}
+]
+translation	1.1	1.3	-3.15
+}
+
+Transform{
+children [
+Shape {
+appearance USE steen
+geometry Box {	size	0.1	2.6	1.3	}
+}
+]
+translation		0.05	1.3	-0.75
+}
+
+Transform{
+children [
+Shape {
+appearance USE steen
+geometry Box {	size	0.1	2.6	0.75	}
+}
+]
+translation		0.05	1.3	-2.725
+}
+
+Transform{
+children [
+Shape {
+appearance USE steen
+geometry Box {	size	0.1	2.6	3	}
+}
+]
+translation		2.15	1.3	-1.6
+}
+
+Transform{
+children [
+Shape {
+appearance DEF blauw Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.3 0.4 0.7
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+geometry Box {	size	0.05	0.44	0.85	}
+}
+]
+translation		0.05	2.38	-1.875
+}
+
+Transform{#drempel van schuurdeur
+children [
+
+Transform{#deurpost
+children [
+
+DEF deurpost Shape {
+		appearance 	DEF grijs Appearance {
+			material 	Material {
+	ambientIntensity  0.2
+	diffuseColor      0.4 0.4 0.4
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+					}	
+				}
+		geometry 	Box {
+	size	0.05 2.56 0.05
+				}
+	}
+]
+translation 0 1.3 0.45
+}
+
+Transform{#deurpost
+children [
+
+Shape {
+		appearance USE grijs
+		geometry 	Box {
+	size	0.05 0.05 0.85
+				}
+	}
+]
+translation 0 2.135 0
+}
+
+
+Transform{#deurpost
+children [
+
+USE deurpost
+]
+translation 0 1.3 -0.45
+}
+
+Shape {
+		appearance 	USE grijs
+		geometry 	Box {
+	size	0.1 0.04 0.95
+				}
+
+	}
+]
+translation		0.05	0.02	-1.875
+}
+
+
+]
+translation 3.48	0	7.8
+}
+
+# /buitmuur.wrl
+
+
+# trapbeneden.wrl
+
+
+
+
+DEF trapbeneden Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material          Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.5 0.3
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry DEF trap IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+	-0.2	0	1, #0
+	0	0.2	1,
+	0	0.2	0,
+	-0.2	0	0, #3
+
+	0.28	0.4	1, #4
+	0.6	0.6	1,
+	0.98	0.8	1,
+	0.98	1	0.45, #7
+
+	0.98	1.2	0.25, #8
+	0.98	1.4	0, 
+	0.98	1.6	-0.25, 
+	0.98	1.8	-0.45, #11
+
+	0.98	2.0	-1, #12
+	0.6	2.2	-1,
+	0.28	2.4	-1,
+	0	2.6	-1, #15
+
+	0	0.6	0, #16
+	0	0.8	0,
+	0	1	0, #18
+	0	1.2	0, #19
+
+	0	1.4	0, #20
+	0	1.6	0,
+	0	1.8	0, #22
+	0	2	0, #23
+
+	0	2.2	0, #24
+	0	2.4	0, 
+	0	2.6	0,  
+	0	2.8	0,  #27
+
+	-0.2	0.2	1, #28
+	0	0.4	1,
+	0	0.4	0,
+	-0.2	0.2	0, #31
+
+	0.28	0.6	1, #32
+	0.6	0.8	1,
+	0.98	1	1,
+	0.98	1.2	0.45, #35
+
+	0.98	1.4	0.25, #36
+	0.98	1.6	0, 
+	0.98	1.8	-0.25, 
+	0.98	2	-0.45, #39
+
+	0.98	2.2	-1, #40
+	0.6	2.4	-1,
+	0.28	2.6	-1,
+	0	2.8	-1, #43
+
+	0	0	1,
+	0	0	0, #45
+	0	0.4	0, #46
+
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+
+	28, 1, 2, 31, -1, #1e_treevlak
+	29, 4, 46, -1, #2e
+	32, 5, 16, -1,
+	33, 6, 17, -1,
+	34, 7, 18, -1, 
+	35, 8, 19, -1, 
+	36, 9, 20, -1, 
+	37, 10, 21, -1,
+	38, 11, 22, -1,
+	39, 12, 23, -1,
+	40, 13, 24, -1,
+	41, 14, 25, -1,
+	42, 15, 26, -1, #13e_treevlak
+
+	0, 28, 31, 3, -1, #voor_en_zijvlakken_van_de_eerste_tree
+	0, 44, 1, 28, -1,
+	3, 31, 2, 45, -1,
+
+	2, 1, 29, 30, -1, #alle_voorvlakken
+	46, 4, 32, 16, -1,
+	16, 5, 33, 17, -1,
+	17, 6, 34, 18, -1,
+	18, 7, 35, 19, -1, 
+	19, 8, 36, 20, -1,
+	20, 9, 37, 21, -1,
+	21, 10, 38, 22, -1,
+	22, 11, 39, 23, -1,
+	23, 12, 40, 24, -1,
+	24, 13, 41, 25, -1,
+	25, 14, 42, 26, -1,
+	26, 15, 43, 27, -1,
+
+
+	
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             FALSE
+				texCoordIndex     []
+			}
+		}
+	]
+translation 4.42	0	-3.36
+}
+
+
+
+
+
+# /trapbeneden.wrl
+
+# deuren.wrl
+
+
+
+Transform {
+children [
+DEF deurgroep Group {#DEURKEUKENWOONKAMER
+children[
+#dwarslat boven de deur
+DEF dwarslat Transform {
+	children [
+		Shape {
+appearance DEF kozijn Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.95 0.95 0.9
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry Box { size	0.8 0.05 0.05 }
+}
+
+]
+translation	0 2.035 0
+}
+
+
+
+
+DEF ruitje Transform {
+	children [
+		Shape {
+appearance DEF glas Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.6 0.6 0.9
+	emissiveColor     0 0 0
+	shininess         0.8
+	specularColor     1 1 1 
+	transparency      0.7
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry Box { size	0.8 0.64 0.01 }
+}
+
+]
+translation	0 2.38 0
+}#ruit boven de deur
+
+#deur
+DEF deur Transform {
+center -0.4 0 0
+	children [
+
+
+
+DEF klikopdeur TouchSensor {}
+  DEF TimeSource TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as:
+  DEF Deuropen OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 -1, 0 1 0 -2, 0 1 0 -2, 0 1 0 -1, 0 1 0 0 ]
+  }
+
+
+
+# ../boven/deurklink.wrl
+
+
+
+
+
+DEF deurklink Transform {
+	children [
+	    DEF enehelft	Shape {
+            appearance DEF aluminium Appearance {
+                material         Material {
+                ambientIntensity  0.2
+                diffuseColor      0.4 0.4 0.5
+                emissiveColor     0 0 0
+                shininess         0.8
+                specularColor     0.4 0.4 0.5
+                }
+                texture           NULL
+                textureTransform  NULL
+            }
+		    geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {
+					point [
+                        -0.015	0.02	0, #0
+                        0.015		0.02	0,
+                        0.02		-0.02	0,
+                        -0.02		-0.02	0, #3
+
+                        -0.01		-0.015	0.06, #4
+                        0.01		-0.015	0.06,
+                        -0.01		0.015		0.03,
+                        0.01		0.015		0.03,
+
+                        0.005		0.1		0.035, #8
+                        -0.005	0.1		0.035,
+                        -0.005	0.1		0.055,
+                        0.005		0.1		0.055,
+
+
+
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+	
+2, 3, 4, 5, -1,
+2, 5, 4, 3, -1,
+
+4, 5, 11, 10, -1, 
+4, 10, 11, 5, -1,
+
+0, 1, 7, 6, -1, 
+0, 6, 7, 1, -1,
+
+6, 7, 8, 9, -1, 
+6, 9, 8, 7, -1,
+
+8, 9, 10, 11, -1, 
+8, 11, 10, 9, -1,
+
+0, 6, 4, 3, -1,
+0, 3, 4, 6, -1,
+
+6, 9, 10, 4, -1, 
+6, 4, 10, 9, -1,
+
+1, 2, 5, 7, -1,
+1, 7, 5, 2, -1,
+
+7, 5, 11, 8, -1,
+7, 8, 11, 5, -1,
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				#texCoordIndex     []
+			}
+		}#enehelft
+
+	Transform {
+		children [
+
+			USE enehelft
+		]
+	rotation 0 1 0 3.1415927
+	translation	0 0 -0.07
+	}
+	Transform {
+
+		children [
+		DEF vlakdeel Shape {
+			appearance USE aluminium
+			geometry Box { size 0.18 0.07 0.01 }
+		}#shape
+		]
+	translation -0.03 0 -0.005
+	}
+
+	Transform {
+
+		children [
+		USE vlakdeel 
+		]
+	translation -0.03 0 -0.065
+	}
+
+
+
+	]
+
+translation 0.35 0 0.035
+rotation 0 0 1 1.5707963
+}#deurklink
+
+
+
+# /../boven/deurklink.wrl
+
+DEF deurvorm Shape {
+	appearance DEF deurkleur Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.8 0.8 0.8
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry Box { size	0.8 2 0.05 }
+}
+
+]
+translation	0 1.005 0
+}
+
+
+
+
+
+]
+}#deurgroep
+
+]
+translation 1.38 0 -3.395
+}
+#ROUTE klikopdeur.touchTime TO TimeSource.startTime
+#ROUTE TimeSource.fraction_changed TO Deuropen.set_fraction
+#ROUTE Deuropen.value_changed TO deur.rotation
+
+
+#deur2
+Transform {
+children[ 	USE dwarslat
+		USE ruitje
+
+#deur
+DEF deurkeukengang Transform {
+center -0.4 0 0
+	children [
+
+
+
+	DEF klikopdeur2 TouchSensor {}
+  DEF TimeSource2 TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as:
+   DEF Deuropen2 OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 -1, 0 1 0 -2, 0 1 0 -2, 0 1 0 -1, 0 1 0 0 ]
+  }
+USE deurklink
+USE deurvorm
+]
+translation	0 1.005 0
+}
+		
+]
+translation 3.155 0 -2.96
+rotation 0 1 0 1.5707963
+}
+
+#ROUTE klikopdeur2.touchTime TO TimeSource2.startTime
+#ROUTE TimeSource2.fraction_changed TO Deuropen2.set_fraction
+#ROUTE Deuropen2.value_changed TO deurkeukengang.rotation
+
+
+#deur3
+Transform {
+children[ 	USE dwarslat
+		USE ruitje
+#deur
+DEF deurwoonkamergang Transform {
+center -0.4 0 0
+	children [
+
+
+
+	DEF klikopdeur3 TouchSensor {}
+  DEF TimeSource3 TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as: deze deur draait tegengesteld aan de andere
+   DEF Deuropen3 OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 1, 0 1 0 2, 0 1 0 2, 0 1 0 1, 0 1 0 0 ]
+  }
+USE deurklink
+USE deurvorm
+]
+translation	0 1.005 0
+}
+		
+]
+translation 3.59 0 -3.395
+rotation 0 1 0 0
+}#deur3
+
+#ROUTE klikopdeur3.touchTime TO TimeSource3.startTime
+#ROUTE TimeSource3.fraction_changed TO Deuropen3.set_fraction
+#ROUTE Deuropen3.value_changed TO deurwoonkamergang.rotation
+
+
+#deur4
+Transform {
+children[ DEF dwarslatafw Transform {
+	children [
+		Shape {
+appearance USE kozijn
+			geometry Box { size	0.93 0.05 0.05 }
+}
+
+]
+translation	0 2.035 0
+}
+
+
+
+
+DEF ruitjeafw Transform {
+	children [
+		Shape {
+appearance USE kozijn 
+			geometry Box { size	0.93 0.64 0.01 }
+}
+
+]
+translation	0 2.38 0
+}#ruit boven de deur#deur
+DEF deurwoonkamertrapkast Transform {
+center -0.4 0 0
+	children [
+
+
+
+	DEF klikopdeur4 TouchSensor {}
+  DEF TimeSource4 TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as:
+   DEF Deuropen4 OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 -1, 0 1 0 -2, 0 1 0 -2, 0 1 0 -1, 0 1 0 0 ]
+  }
+USE deurklink
+Shape { #afwijkende deurmaat
+	appearance USE deurkleur 
+			geometry Box { size	0.93 2 0.05 }
+}
+]
+translation	0 1.005 0
+}
+		
+]
+translation 4.395 0 -3.895
+rotation 0 1 0 -1.5707963
+}#deur4
+
+#ROUTE klikopdeur4.touchTime TO TimeSource4.startTime
+#ROUTE TimeSource4.fraction_changed TO Deuropen4.set_fraction
+#ROUTE Deuropen4.value_changed TO deurwoonkamertrapkast.rotation
+
+
+
+#deur5
+Transform {
+children[ DEF dwarslatafw2 Transform {
+	children [
+		Shape {
+appearance USE kozijn
+			geometry Box { size	0.74 0.05 0.05 }
+}
+
+]
+translation	0 2.035 0
+}
+
+
+
+
+DEF ruitjeafw2 Transform {
+	children [
+		Shape {
+appearance USE kozijn 
+			geometry Box { size	0.74 0.64 0.01 }
+}
+
+]
+translation	0 2.38 0
+}#ruit boven de deur#deur
+
+DEF deurgangmeterkast Transform {
+center -0.4 0 0
+	children [
+
+
+
+	DEF klikopdeur5 TouchSensor {}
+  DEF TimeSource5 TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as:
+   DEF Deuropen5 OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 -0.7, 0 1 0 -1.5, 0 1 0 -1.5, 0 1 0 -0.7, 0 1 0 0 ]
+  }
+DEF deurklinkafw Transform {
+	children [
+	USE enehelft
+	Transform {
+		children [
+
+			USE enehelft
+		]
+	rotation 0 1 0 3.1415927
+	translation	0 0 -0.07
+	}
+	Transform {
+
+		children [
+		DEF vlakdeel Shape {
+			appearance USE aluminium
+			geometry Box { size 0.18 0.07 0.01 }
+		}#shape
+		]
+	translation -0.03 0 -0.005
+	}
+
+	Transform {
+
+		children [
+		USE vlakdeel 
+		]
+	translation -0.03 0 -0.065
+	}
+
+
+
+	]
+
+translation 0.32 0 0.035
+rotation 0 0 1 1.5707963
+}#deurklink
+Shape { #afwijkende deurmaat
+	appearance USE deurkleur 
+			geometry Box { size	0.74 2 0.05 }
+}
+]
+translation	0 1.005 0
+}
+		
+]
+translation 4.455 0 -1.92
+rotation 0 1 0 -1.5707963
+}#deur5
+
+#ROUTE klikopdeur5.touchTime TO TimeSource5.startTime
+#ROUTE TimeSource5.fraction_changed TO Deuropen5.set_fraction
+#ROUTE Deuropen5.value_changed TO deurgangmeterkast.rotation
+
+
+#deur6
+Transform {
+children[ 	USE dwarslat
+		USE ruitje
+#deur
+DEF deurtoiletgang Transform {
+center -0.4 0 0
+	children [
+
+
+
+	DEF klikopdeur6 TouchSensor {}
+  DEF TimeSource6 TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as: 
+   DEF Deuropen6 OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 -1, 0 1 0 -2, 0 1 0 -2, 0 1 0 -1, 0 1 0 0 ]
+  }
+USE deurklink
+USE deurvorm
+]
+translation	0 1.005 0
+}
+		
+]
+translation 4.455 0 -1.08
+rotation 0 1 0 -1.5707963
+}#deur6
+
+#ROUTE klikopdeur6.touchTime TO TimeSource6.startTime
+#ROUTE TimeSource6.fraction_changed TO Deuropen6.set_fraction
+#ROUTE Deuropen6.value_changed TO deurtoiletgang.rotation
+
+
+# voordeur.wrl
+
+
+
+
+DEF voordeur Transform {
+center 1.11 0 0 
+	children [
+
+		Shape {
+appearance DEF deurkleur Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.8 0.8 0.8
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+
+	0	0	0.025, #0
+	1.11	0	0.025, #
+	1.11	2.19	0.025, #
+	0	2.19	0.025, #3
+				
+	0.71	0.49	0.025, #4
+	0.91	0.49	0.025, #
+	0.91	1.99	0.025, #
+	0.71	1.99	0.025, #7
+
+	0	0	-0.025, #8
+	1.11	0	-0.025, #
+	1.11	2.19	-0.025, #
+	0	2.19	-0.025, #11
+				
+	0.71	0.49	-0.025, #12
+	0.91	0.49	-0.025, #
+	0.91	1.99	-0.025, #
+	0.71	1.99	-0.025, #15
+	]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+	
+	0, 1, 5, 4, -1, 
+
+	1, 2, 6, 5, -1,
+
+	6, 2, 3, 7, -1,
+
+	0, 4, 7, 3, -1, 
+
+
+	1, 0, 8, 9, -1,
+
+	3, 2, 10, 11, -1,
+
+	0, 3, 11, 8, -1,
+
+	2, 1, 9, 10, -1,
+
+
+	5, 6, 14, 13, -1,
+
+	4, 5, 13, 12, -1,
+
+	6, 7, 15, 14, -1,
+
+	7, 4, 12, 15, -1,
+
+	
+	9, 8, 12, 13, -1,
+	
+	10, 9, 13, 14, -1,
+
+	11, 10, 14, 15, -1, 
+
+	12, 8, 11, 15, -1,
+
+
+
+
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				texCoordIndex     []
+			}
+		}
+
+DEF klikopvoordeur TouchSensor {}
+  DEF TimeSourcevoor TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as:
+  DEF VoorDeuropen OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 -0.7, 0 1 0 -1.5, 0 1 0 -1.5, 0 1 0 -0.7, 0 1 0 0 ]
+  }
+
+DEF deurgreep Transform{
+children[
+		Shape {
+	appearance DEF aluminium Appearance {
+		material         Material {
+		ambientIntensity  0.2
+		diffuseColor      0.4 0.4 0.4
+		emissiveColor     0 0 0
+		shininess         0.8
+		specularColor     0.9 0.9 0.9
+		transparency      0
+		}
+		texture           NULL
+		textureTransform  NULL
+		}
+			geometry Box { size	0.2	0.2	0.004	}
+}
+
+]
+translation	0.15	0.9	0.067
+}
+
+
+DEF steunblokje Transform{
+children[
+		Shape {
+	appearance DEF aluminium Appearance {
+		material         Material {
+		ambientIntensity  0.2
+		diffuseColor      0.4 0.4 0.4
+		emissiveColor     0 0 0
+		shininess         0.8
+		specularColor     0.9 0.9 0.9
+		transparency      0
+		}
+		texture           NULL
+		textureTransform  NULL
+		}
+			geometry Box { size	0.14	0.14	0.04	}
+}
+
+]
+translation	0.15	0.9	0.045
+}
+
+DEF ruitjeindeur Transform{
+children[
+		Shape {
+	appearance DEF glas Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.6 0.6 0.9
+	emissiveColor     0 0 0
+	shininess         0.8
+	specularColor     1 1 1 
+	transparency      0.7
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry Box { size	0.2	1.5	0.01	}
+}
+
+]
+translation	0.81	1.24	0
+}
+
+	]
+translation 3.25	0.05	-0.14
+}
+
+#ROUTE klikopvoordeur.touchTime TO TimeSourcevoor.startTime
+#ROUTE TimeSourcevoor.fraction_changed TO VoorDeuropen.set_fraction
+#ROUTE VoorDeuropen.value_changed TO voordeur.rotation
+
+# /voordeur.wrl
+
+# achterdeur.wrl
+
+
+
+#bevat ook schuurdeur
+
+
+DEF achterdeur Transform {
+center 0 0 0 
+	children [
+
+
+		Shape {
+appearance DEF deurkleur Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.8 0.8 0.8
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry DEF deurInd IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+
+	0.93	0	-0.025, #0
+	0	0	-0.025, #
+	0	2.09	-0.025, #
+	0.93	2.09	-0.025, #3
+
+	0.765	0.6	-0.025, #4
+	0.165	0.6	-0.025, #
+	0.165	1.9	-0.025, #
+	0.765	1.9	-0.025, #7
+
+	0.93	0	0.025, #0
+	0	0	0.025, #
+	0	2.09	0.025, #
+	0.93	2.09	0.025, #3
+
+	0.765	0.6	0.025, #4
+	0.165	0.6	0.025, #
+	0.165	1.9	0.025, #
+	0.765	1.9	0.025, #7
+
+	]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+	
+	0, 1, 5, 4, -1, 
+
+	1, 2, 6, 5, -1,
+
+	6, 2, 3, 7, -1,
+
+	0, 4, 7, 3, -1, 
+
+
+	1, 0, 8, 9, -1,
+
+	3, 2, 10, 11, -1,
+
+	0, 3, 11, 8, -1,
+
+	2, 1, 9, 10, -1,
+
+
+	5, 6, 14, 13, -1,
+
+	4, 5, 13, 12, -1,
+
+	6, 7, 15, 14, -1,
+
+	7, 4, 12, 15, -1,
+
+	
+	9, 8, 12, 13, -1,
+	
+	10, 9, 13, 14, -1,
+
+	11, 10, 14, 15, -1, 
+
+	12, 8, 11, 15, -1,
+
+
+
+
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				texCoordIndex     []
+			}
+		}
+
+DEF klikopachterdeur TouchSensor {}
+  DEF TimeSourceachter TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as:
+  DEF achterDeuropen OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 0.7, 0 1 0 1.5, 0 1 0 1.5, 0 1 0 0.7, 0 1 0 0 ]
+  }
+
+
+
+Transform {
+    # ../boven/deurklink.wrl
+
+
+
+
+
+DEF deurklink Transform {
+	children [
+	    DEF enehelft	Shape {
+            appearance DEF aluminium Appearance {
+                material         Material {
+                ambientIntensity  0.2
+                diffuseColor      0.4 0.4 0.5
+                emissiveColor     0 0 0
+                shininess         0.8
+                specularColor     0.4 0.4 0.5
+                }
+                texture           NULL
+                textureTransform  NULL
+            }
+		    geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {
+					point [
+                        -0.015	0.02	0, #0
+                        0.015		0.02	0,
+                        0.02		-0.02	0,
+                        -0.02		-0.02	0, #3
+
+                        -0.01		-0.015	0.06, #4
+                        0.01		-0.015	0.06,
+                        -0.01		0.015		0.03,
+                        0.01		0.015		0.03,
+
+                        0.005		0.1		0.035, #8
+                        -0.005	0.1		0.035,
+                        -0.005	0.1		0.055,
+                        0.005		0.1		0.055,
+
+
+
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+	
+2, 3, 4, 5, -1,
+2, 5, 4, 3, -1,
+
+4, 5, 11, 10, -1, 
+4, 10, 11, 5, -1,
+
+0, 1, 7, 6, -1, 
+0, 6, 7, 1, -1,
+
+6, 7, 8, 9, -1, 
+6, 9, 8, 7, -1,
+
+8, 9, 10, 11, -1, 
+8, 11, 10, 9, -1,
+
+0, 6, 4, 3, -1,
+0, 3, 4, 6, -1,
+
+6, 9, 10, 4, -1, 
+6, 4, 10, 9, -1,
+
+1, 2, 5, 7, -1,
+1, 7, 5, 2, -1,
+
+7, 5, 11, 8, -1,
+7, 8, 11, 5, -1,
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				#texCoordIndex     []
+			}
+		}#enehelft
+
+	Transform {
+		children [
+
+			USE enehelft
+		]
+	rotation 0 1 0 3.1415927
+	translation	0 0 -0.07
+	}
+	Transform {
+
+		children [
+		DEF vlakdeel Shape {
+			appearance USE aluminium
+			geometry Box { size 0.18 0.07 0.01 }
+		}#shape
+		]
+	translation -0.03 0 -0.005
+	}
+
+	Transform {
+
+		children [
+		USE vlakdeel 
+		]
+	translation -0.03 0 -0.065
+	}
+
+
+
+	]
+
+translation 0.35 0 0.035
+rotation 0 0 1 1.5707963
+}#deurklink
+
+
+
+# /../boven/deurklink.wrl
+    translation 0.50 1 0
+}
+
+
+
+
+DEF ruitindeur Transform{
+children[
+		Shape {
+	appearance DEF glas Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.6 0.6 0.9
+	emissiveColor     0 0 0
+	shininess         0.8
+	specularColor     1 1 1 
+	transparency      0.7
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry Box { size	0.6	1.3	0.01	}
+}
+
+]
+translation	0.465	1.25	0
+}
+
+	]
+translation 1.26	0.05	-8.86
+}
+
+#ROUTE klikopachterdeur.touchTime TO TimeSourceachter.startTime
+#ROUTE TimeSourceachter.fraction_changed TO achterDeuropen.set_fraction
+#ROUTE achterDeuropen.value_changed TO achterdeur.rotation
+
+#schuurdeur
+DEF schuurdeur Transform {
+children [
+
+DEF klikopschuurdeur TouchSensor {}
+  DEF TimeSourceschuur TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as:
+  DEF schuurDeuropen OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 1.5707963, 0 1 0 2.4, 0 1 0 3.4, 0 1 0 3.4, 0 1 0 2.4, 0 1 0 1.5707963 ]
+  }
+
+Transform{
+    children[
+        Shape{
+            appearance 	USE deurkleur
+            geometry	USE deurInd
+        }
+    ]
+    scale 0.9139785	1	1   #maakt de deur op maat
+}
+
+USE ruitindeur
+
+Transform {
+    children USE deurklink
+    translation 0.43 1 0
+}
+
+
+]
+translation 3.53	0.05	6.35
+rotation 0 1 0 1.5707963
+}
+
+#ROUTE klikopschuurdeur.touchTime TO TimeSourceschuur.startTime
+#ROUTE TimeSourceschuur.fraction_changed TO schuurDeuropen.set_fraction
+#ROUTE schuurDeuropen.value_changed TO schuurdeur.rotation
+
+# /achterdeur.wrl
+
+
+
+
+# /deuren.wrl
+
+# ramen.wrl
+
+
+
+
+Transform {
+	children [
+		Shape {
+appearance DEF kozijn Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.95 0.95 0.9
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry Box { size	0.05 1.3 0.05 }
+}
+
+]
+translation	0.625 1.6 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 1.3 0.05 }
+}
+
+]
+translation	2.575 1.6 -0.14
+}
+
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 1.3 0.05 }
+}
+
+]
+translation	1.475 1.6 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 1.3 0.05 }
+}
+
+]
+translation	1.725 1.6 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	2 0.05 0.05 }
+}
+
+]
+translation	1.6 0.925 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	2 0.05 0.05 }
+}
+
+]
+translation	1.6 2.275 -0.14
+}
+
+#einde keukenraam
+
+#begin toiletraam
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 0.7 0.05 }
+}
+
+]
+translation	4.865 1.95 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 0.7 0.05 }
+}
+
+]
+translation	5.015 1.95 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.1 0.05 0.05 }
+}
+
+]
+translation	4.94 1.625 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.1 0.05 0.05 }
+}
+
+]
+translation	4.94 2.275 -0.14
+}
+
+#einde toiletraam
+#voordeur posten
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 2.26 0.05 }
+}
+
+]
+translation	3.215 1.17 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 2.26 0.05 }
+}
+
+]
+translation	4.395 1.17 -0.14
+}
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	1.13 0.05 0.05 }
+}
+
+]
+translation	3.805 2.275 -0.14
+}
+#einde deurposten
+#begin kozijnen achter
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 2.1 0.05 }
+}
+
+]
+translation	3.215 1.65 -8.86
+}
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 2.1 0.05 }
+}
+
+]
+translation	4.775	1.65 -8.86
+}
+
+Transform {
+	children [
+		Shape {
+appearance		DEF blauw Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.3 0.4 0.7
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+
+geometry	Box { size	1.51 0.5 0.05 }
+}
+
+]
+translation	3.995 2.45 -8.86
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	1.51 0.05 0.05 }
+}
+
+]
+translation	3.995 0.625 -8.86
+}#1
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	1.51 0.05 0.05 }
+}
+
+]
+translation	3.995 2.175 -8.86
+}#2
+
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.94 0.05 0.05 }
+}
+
+]
+translation	2.72 0.625 -8.86
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	1.99 0.05 0.05 }
+}
+
+]
+translation	2.195 2.675 -8.86
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	1 0.05 0.05 }
+}
+
+]
+translation	1.725 2.175 -8.86
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 2.61 0.05 }
+}
+
+]
+translation	1.225 1.345 -8.86
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 2.61 0.05 }
+}
+
+]
+translation	2.225 1.345 -8.86
+}
+
+
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 1.5 0.05 }
+}
+
+]
+translation	3.565 1.4 -8.86
+}
+
+#einde ramen achter
+
+
+
+# /ramen.wrl
+
+# ruiten.wrl
+
+
+
+
+#begin vensterglas
+
+Transform {
+	children [
+		Shape {
+appearance DEF glas Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.6 0.6 0.9
+	emissiveColor     0 0 0
+	shininess         0.8
+	specularColor     1 1 1 
+	transparency      0.7
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry Box { size	0.94 2 0.01 }
+}
+
+]
+translation	2.72 1.65 -8.86
+}#ruit 5 achter
+
+#ruit1 keuken
+Transform {
+	children [
+		Shape {
+appearance USE glas
+geometry Box { size	0.8 1.3 0.01 }
+}
+
+]
+translation	1.05 1.6 -0.14
+}#ruit 1 keuken
+
+#ruit3 keuken
+Transform {
+	children [
+		Shape {
+appearance USE glas
+			geometry Box { size	0.8 1.3 0.01 }
+}
+
+]
+translation	2.15 1.6 -0.14
+}#ruit 3 keuken
+
+#ruit2 keuken
+Transform {
+	children [
+		Shape {
+appearance USE glas
+			geometry Box { size	0.2 1.3 0.01 }
+}
+
+]
+translation	1.6 1.6 -0.14
+}#ruit 2 keuken
+
+
+#toiletruit
+Transform {
+	children [
+		Shape {
+appearance USE glas
+			geometry Box { size	0.1 0.6 0.01 }
+}
+
+]
+translation	4.94 1.95 -0.14
+}#ruit van toiletraam
+
+#ramen achter
+
+
+
+
+Transform {
+	children [
+		Shape {
+appearance USE glas
+			geometry Box { size	1.16 1.5 0.01 }
+}
+
+]
+translation	4.17 1.4 -8.86
+}#ruit 3 achter
+
+Transform {
+	children [
+		Shape {
+appearance USE glas
+			geometry Box { size	0.3 1.5 0.01 }
+}
+
+]
+translation	3.39 1.4 -8.86
+}#ruit 4 achter
+
+Transform {
+	children [
+		Shape {
+appearance USE glas
+			geometry Box { size	0.95 0.45 0.01 }
+}
+
+]
+translation	1.725 2.425 -8.86
+}#ruit 6 achter
+
+# /ruiten.wrl
+
+
+# /beneden/beneden.wrl
+
+
+DEF boven Transform {
+children[
+
+Transform {
+children[
+
+Transform {
+children[
+	Shape {
+appearance DEF groen Appearance {
+	material         Material {
+	ambientIntensity  1
+	diffuseColor      0 1 0
+	emissiveColor     0 1 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry DEF pijl IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0 0 0,
+						0.2 0.2 0,
+						0.2 -0.2 0,
+						
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [	0,1,2,-1, 
+				]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             FALSE
+				texCoordIndex     []
+			}
+}#shape
+]
+rotation 0 1 0 3.1415927
+}
+
+DEF schuifboven TouchSensor {}
+]
+translation 0.15 2.95 0.3
+}
+
+Transform {
+children[
+
+	Shape {
+appearance DEF rood Appearance {
+	material         Material {
+	ambientIntensity  1
+	diffuseColor      1 0 0
+	emissiveColor     1 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+
+geometry USE pijl
+}
+
+DEF schuifboven2 TouchSensor {}
+]
+
+translation 5.48 2.95 0.3
+}
+
+# boven/boven.wrl
+
+
+
+
+Viewpoint {
+	fieldOfView    1
+	jump           TRUE
+	orientation    1 0 0  0
+	position       2.5 3.75 -2.5
+
+	description    "Ouderslaapkamer"
+}
+
+Viewpoint {
+	fieldOfView    1
+	jump           TRUE
+	orientation    1 0 0  0
+	position       2.5 3.75 -5
+
+	description    "Tweede slaapkamer"
+}
+
+Viewpoint {
+	fieldOfView    1
+	jump           TRUE
+	orientation    1 0 0  0
+	position       4.5 3.75 -7
+
+	description    "Kinderkamer"
+}
+
+Viewpoint {
+	fieldOfView    1
+	jump           TRUE
+	orientation    1 0 0  0
+	position       4.5 3.75 -1.5
+
+	description    "Badkamer"
+}
+
+
+
+#dak van schuur
+
+Transform {
+children [
+Shape {
+appearance  DEF appdak Appearance {
+	 material          Material {
+  	ambientIntensity  0
+  	diffuseColor      0.2 0.2 0.2
+  	emissiveColor     0 0 0
+  	shininess         0
+  	specularColor     0 0 0 
+  	transparency      0
+			  }
+
+  texture           ImageTexture {
+  			  url     [""]
+  			  repeatS TRUE
+  			  repeatT TRUE
+ 			  }
+}
+
+geometry Box { size 2.24 0.04 3.24	}
+}
+]
+translation 4.6 2.62 6.2
+}
+
+
+DEF plafond Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      1 1 1
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0.14	2.70	-0.14,
+						5.54	2.70	-0.14,
+						5.54	2.70	-8.86,
+						0.14	2.70	-8.86,
+
+						5.54	2.70	-2.36, #-4
+						5.54	2.70	-4.36,
+						4.42	2.70	-4.36,
+						4.42	2.70	-2.36,
+
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+		0, 1, 4, 7, -1, 
+		0, 7, 4, 1, -1, 
+
+		0, 7, 6, 3, -1,
+		0, 3, 6, 7, -1, 
+
+		5, 2, 3, 6, -1, 
+		5, 6, 3, 2, -1,
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+
+DEF vloerboven Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.5 0.3
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0.14	2.80	-0.14,
+						5.54	2.80	-0.14,
+						5.54	2.80	-8.86,
+						0.14	2.80	-8.86,
+
+						5.54	2.80	-2.36, #-4
+						5.54	2.8	-4.36,
+						4.42	2.8	-4.36,
+						4.42	2.8	-2.36,
+
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+		0, 1, 4, 7, -1, 
+		0, 7, 4, 1, -1, 
+
+		0, 7, 6, 3, -1,
+		0, 3, 6, 7, -1, 
+
+		5, 2, 3, 6, -1, 
+		5, 6, 3, 2, -1,
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+
+
+DEF stukmuur1 Transform {
+children[
+	Shape {
+	appearance DEF wandkleur Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.9 0.7
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+		geometry 	Box {
+	size	2.84 2.50 0.07
+				}
+
+	}
+ ]
+translation		1.7	4.05 -4.565
+}
+
+DEF stukmuur2 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.07 2.50 0.7
+				}
+
+	}
+ ]
+translation		3.155	4.05 -4.28
+}
+
+
+DEF stukmuur3 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.07 2.68 3.57
+				}
+
+	}
+ ]
+translation		3.155	4.05 -7.215
+}
+
+DEF stukmuur4 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.07 2.50 2.85
+				}
+
+	}
+ ]
+translation		3.155	4.05 -1.705
+}
+
+DEF stukmuur5 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.42 2.50 0.07
+				}
+
+	}
+ ]
+translation		3.4	4.05 -2.325
+}
+
+DEF stukmuur6 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.98 2.50 0.07
+				}
+
+	}
+ ]
+translation		4.91	4.05 -2.325
+}
+
+DEF stukmuur7 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	1.34 2.50 0.07
+				}
+
+	}
+ ]
+translation		4.73	4.05 -4.395
+}
+
+
+DEF stukmuur8 Transform {
+children[
+	Shape {
+	appearance USE wandkleur
+		geometry 	Box {
+	size	0.07 2.50 1.2
+				}
+
+	}
+ ]
+translation		4.025	4.05 -4.96
+}
+
+DEF vulstukvoortrap Transform {
+	children [
+		Shape {
+appearance USE wandkleur
+
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						4.42	2.7	-2.36,
+						4.42	2.7	-3.36,
+						4.42	2.8	-3.36,
+						4.42	2.8	-2.36,
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+	0, 1, 2, 3, -1,
+	0, 3, 2, 1, -1,
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+
+DEF paalvoortrap Transform {
+children[
+Shape {
+appearance 	USE wandkleur
+geometry	Box { size	0.07	2.50	0.07	}
+}
+]
+translation 4.385	4.05	-3.36
+}
+
+# deuren.wrl
+
+
+
+
+
+#Deuren boven
+
+#deur7
+Transform {
+children[ 
+
+#dwarslat boven de deur
+DEF dwarslat Transform {
+	children [
+		Shape {
+appearance DEF kozijn Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.95 0.95 0.9
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry Box { size	0.8 0.05 0.05 }
+}
+
+]
+translation	0 2.035 0
+}
+
+
+
+DEF ruitjeboven Transform {
+	children [
+		Shape {
+appearance DEF glas Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.6 0.6 0.9
+	emissiveColor     0 0 0
+	shininess         0.8
+	specularColor     1 1 1 
+	transparency      0.7
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry Box { size	0.8 0.44 0.01 }
+}
+
+]
+translation	0 2.28 0
+}#ruit boven de deur
+
+#deur
+DEF deuroudersgang Transform {
+center -0.4 0 0
+	children [
+
+
+
+	DEF klikopdeur7 TouchSensor {}
+  DEF TimeSource7 TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as:
+   DEF Deuropen7 OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 -1, 0 1 0 -2, 0 1 0 -2, 0 1 0 -1, 0 1 0 0 ]
+  }
+
+
+DEF deurklink # deurklink.wrl
+
+
+
+
+
+DEF deurklink Transform {
+	children [
+	    DEF enehelft	Shape {
+            appearance DEF aluminium Appearance {
+                material         Material {
+                ambientIntensity  0.2
+                diffuseColor      0.4 0.4 0.5
+                emissiveColor     0 0 0
+                shininess         0.8
+                specularColor     0.4 0.4 0.5
+                }
+                texture           NULL
+                textureTransform  NULL
+            }
+		    geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {
+					point [
+                        -0.015	0.02	0, #0
+                        0.015		0.02	0,
+                        0.02		-0.02	0,
+                        -0.02		-0.02	0, #3
+
+                        -0.01		-0.015	0.06, #4
+                        0.01		-0.015	0.06,
+                        -0.01		0.015		0.03,
+                        0.01		0.015		0.03,
+
+                        0.005		0.1		0.035, #8
+                        -0.005	0.1		0.035,
+                        -0.005	0.1		0.055,
+                        0.005		0.1		0.055,
+
+
+
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+	
+2, 3, 4, 5, -1,
+2, 5, 4, 3, -1,
+
+4, 5, 11, 10, -1, 
+4, 10, 11, 5, -1,
+
+0, 1, 7, 6, -1, 
+0, 6, 7, 1, -1,
+
+6, 7, 8, 9, -1, 
+6, 9, 8, 7, -1,
+
+8, 9, 10, 11, -1, 
+8, 11, 10, 9, -1,
+
+0, 6, 4, 3, -1,
+0, 3, 4, 6, -1,
+
+6, 9, 10, 4, -1, 
+6, 4, 10, 9, -1,
+
+1, 2, 5, 7, -1,
+1, 7, 5, 2, -1,
+
+7, 5, 11, 8, -1,
+7, 8, 11, 5, -1,
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				#texCoordIndex     []
+			}
+		}#enehelft
+
+	Transform {
+		children [
+
+			USE enehelft
+		]
+	rotation 0 1 0 3.1415927
+	translation	0 0 -0.07
+	}
+	Transform {
+
+		children [
+		DEF vlakdeel Shape {
+			appearance USE aluminium
+			geometry Box { size 0.18 0.07 0.01 }
+		}#shape
+		]
+	translation -0.03 0 -0.005
+	}
+
+	Transform {
+
+		children [
+		USE vlakdeel 
+		]
+	translation -0.03 0 -0.065
+	}
+
+
+
+	]
+
+translation 0.35 0 0.035
+rotation 0 0 1 1.5707963
+}#deurklink
+
+
+
+# /deurklink.wrl
+
+
+DEF deurvorm Shape {
+	appearance DEF deurkleur Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.8 0.8 0.8
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry Box { size	0.8 2 0.05 }
+}]
+translation	0 1.005 0
+}
+		
+]
+translation 3.155 2.8 -3.53
+rotation 0 1 0 1.5707963
+}
+
+#ROUTE klikopdeur7.touchTime TO TimeSource7.startTime
+#ROUTE TimeSource7.fraction_changed TO Deuropen7.set_fraction
+#ROUTE Deuropen7.value_changed TO deuroudersgang.rotation
+
+#deur8
+Transform {
+children[ 	USE dwarslat
+		USE ruitjeboven 
+
+#deur
+DEF deurtweedeslaapkamergang Transform {
+center -0.4 0 0
+	children [
+
+
+
+	DEF klikopdeur8 TouchSensor {}
+  DEF TimeSource8 TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as:
+   DEF Deuropen8 OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 -1, 0 1 0 -2, 0 1 0 -2, 0 1 0 -1, 0 1 0 0 ]
+  }
+USE deurklink
+USE deurvorm
+]
+translation	0 1.005 0
+}
+		
+]
+translation 3.155 2.8 -5.03
+rotation 0 1 0 -1.5707963
+}
+
+#ROUTE klikopdeur8.touchTime TO TimeSource8.startTime
+#ROUTE TimeSource8.fraction_changed TO Deuropen8.set_fraction
+#ROUTE Deuropen8.value_changed TO deurtweedeslaapkamergang.rotation
+
+
+#deur9
+Transform {
+children[ 	USE dwarslat
+		USE ruitjeboven 
+
+#deur
+DEF deurkinderkamergang Transform {
+center -0.4 0 0
+	children [
+
+
+
+	DEF klikopdeur9 TouchSensor {}
+  DEF TimeSource9 TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as:
+   DEF Deuropen9 OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 -1, 0 1 0 -2, 0 1 0 -2, 0 1 0 -1, 0 1 0 0 ]
+  }
+USE deurklink
+USE deurvorm
+]
+translation	0 1.005 0
+}
+		
+]
+translation 3.59 2.8 -5.465
+rotation 0 1 0 3.1415927
+}
+
+#ROUTE klikopdeur9.touchTime TO TimeSource9.startTime
+#ROUTE TimeSource9.fraction_changed TO Deuropen9.set_fraction
+#ROUTE Deuropen9.value_changed TO deurkinderkamergang.rotation
+
+
+#deur10
+Transform {
+children[ 	USE dwarslat
+		USE ruitjeboven 
+
+#deur
+DEF deurbadkamergang Transform {
+center -0.4 0 0
+	children [
+
+
+
+	DEF klikopdeur10 TouchSensor {}
+  DEF TimeSource10 TimeSensor { cycleInterval 20.0 } # Run once for 20 sec.
+  # Animeer het openzwaaien van de deur rond de Y as:
+   DEF Deuropen10 OrientationInterpolator {
+       key      [ 0,      0.025,	0.05,	0.95,	0.975,       1.0 ]
+       keyValue [ 0 1 0 0, 0 1 0 -1, 0 1 0 -2, 0 1 0 -2, 0 1 0 -1, 0 1 0 0 ]
+  }
+USE deurklink
+USE deurvorm
+]
+translation	0 1.005 0
+}
+		
+]
+translation 4.01 2.8 -2.325
+rotation 0 1 0 0
+}
+
+
+
+#ROUTE klikopdeur10.touchTime TO TimeSource10.startTime
+#ROUTE TimeSource10.fraction_changed TO Deuropen10.set_fraction
+#ROUTE Deuropen10.value_changed TO deurbadkamergang.rotation
+
+
+# /deuren.wrl
+
+# trapboven.wrl
+
+
+
+
+
+
+
+
+DEF trapboven Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material          Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.5 0.3
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry DEF trap2 IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+	-0.2	0	1, #0
+	0	0.2	1,
+	0	0.2	0,
+	-0.2	0	0, #3
+
+	0.28	0.4	1, #4
+	0.6	0.6	1,
+	0.98	0.8	1,
+	0.98	1	0.45, #7
+
+	0.98	1.2	0.25, #8
+	0.98	1.4	0, 
+	0.98	1.6	-0.25, 
+	0.98	1.8	-0.45, #11
+
+	0.98	2.0	-1, #12
+	0.6	2.2	-1,
+	0.28	2.4	-1,
+	0	2.6	-1, #15
+
+	0	0.6	0, #16
+	0	0.8	0,
+	0	1	0, #18
+	0	1.2	0, #19
+
+	0	1.4	0, #20
+	0	1.6	0,
+	0	1.8	0, #22
+	0	2	0, #23
+
+	0	2.2	0, #24
+	0	2.4	0, 
+	0	2.6	0,  
+	0	2.8	0,  #27
+
+	-0.2	0.2	1, #28
+	0	0.4	1,
+	0	0.4	0,
+	-0.2	0.2	0, #31
+
+	0.28	0.6	1, #32
+	0.6	0.8	1,
+	0.98	1	1,
+	0.98	1.2	0.45, #35
+
+	0.98	1.4	0.25, #36
+	0.98	1.6	0, 
+	0.98	1.8	-0.25, 
+	0.98	2	-0.45, #39
+
+	0.98	2.2	-1, #40
+	0.6	2.4	-1,
+	0.28	2.6	-1,
+	0	2.8	-1, #43
+
+	0	0	1,
+	0	0	0, #45
+	0	0.4	0, #46
+
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+
+	28, 1, 2, 31, -1, #1e_treevlak
+	29, 4, 46, -1, #2e
+	32, 5, 16, -1,
+	33, 6, 17, -1,
+	34, 7, 18, -1, 
+	35, 8, 19, -1, 
+	36, 9, 20, -1, 
+	37, 10, 21, -1,
+	38, 11, 22, -1,
+	39, 12, 23, -1,
+	40, 13, 24, -1,
+	41, 14, 25, -1,
+	42, 15, 26, -1, #13e_treevlak
+
+#	0, 28, 31, 3, -1, #voor_en_zijvlakken_van_de_eerste_tree_komt_boven_niet_voor
+#	0, 44, 1, 28, -1,
+#	3, 31, 2, 45, -1,
+
+	2, 1, 29, 30, -1, #alle_voorvlakken
+	46, 4, 32, 16, -1,
+	16, 5, 33, 17, -1,
+	17, 6, 34, 18, -1,
+	18, 7, 35, 19, -1, 
+	19, 8, 36, 20, -1,
+	20, 9, 37, 21, -1,
+	21, 10, 38, 22, -1,
+	22, 11, 39, 23, -1,
+	23, 12, 40, 24, -1,
+	24, 13, 41, 25, -1,
+	25, 14, 42, 26, -1,
+	26, 15, 43, 27, -1,
+
+
+	
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             FALSE
+				texCoordIndex     []
+			}
+		}
+	]
+translation 4.42	2.6	-3.36
+}
+
+
+# /trapboven.wrl
+
+# buitmuur.wrl
+
+
+
+
+Transform {
+	children [
+		Shape {
+appearance DEF steen Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.8 0.4 0.3
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0	0	0, #linkerbenedenhoek voorgevel
+						5.68	0	0,
+						5.68	5.40	0,
+						0	5.40	0, #linkerbovenhoek voorgevel
+
+						3.19	0	0, #voordeur
+						4.42	0	0,
+						4.42	2.30	0,
+						3.19	2.30	0, #voordeur
+
+						4.84	1.60	0, #toiletraam-8
+						5.04	1.60	0,
+						5.04	2.30	0,
+						4.84	2.30	0, 
+
+						2.60	0.90	0, #keukenraam-12
+						2.60	2.30	0,
+						0.60	2.30	0,
+						0.60	0.90	0,
+
+						0.60	3.60	0, #bovenraam-16
+						1.50	3.60	0,
+						1.50	5.0	0,
+						4.42	5.0	0,
+						4.42	5.40	0, 
+						0.60	5.40	0,
+
+						0	8.555	-3.15, #linkergevel-22
+						0	2.7	-9.0,
+						0	0	-9.0,
+
+						5.68	8.555	-3.15, #rechtergevel-25
+						5.68	5.40	-6.3,
+						5.68	5.40	-9,
+						5.68	0	-9.0,
+
+						2.25	0	-9.0, #achtergevel-29
+						2.25	0.6	-9.0,
+						4.8	0.6	-9.0,
+						4.8	5.40	-9.0,
+						1.2	0	-9.0,
+						1.2	2.7	-9,
+
+
+						3.19	0	-0.14, #diepte van de voordeur-35
+						4.42	0	-0.14,
+						4.42	2.30	-0.14,
+						3.19	2.30	-0.14, #diepte van de voordeur-38
+
+						2.60	0.90	-0.14, # diepte van het keukenraam-39
+						2.60	2.30	-0.14,
+						0.60	2.30	-0.14,
+						0.60	0.90	-0.14,
+
+						4.84	1.60	-0.14, #diepte van het toiletraam-43
+						5.04	1.60	-0.14,
+						5.04	2.30	-0.14,
+						4.84	2.30	-0.14, 
+
+						0.60	3.60	-0.14, #diepte van het bovenraam-47
+						1.50	3.60	-0.14,
+						1.50	5.0	-0.14,
+						4.42	5.0	-0.14,
+						4.42	5.40	-0.14, 
+						0.60	5.40	-0.14, #52
+
+						2.25	0	-8.86, #diepte van de achtergevel-53
+						2.25	0.6	-8.86,
+						4.8	0.6	-8.86,
+						4.8	5.40	-8.86,
+						1.2	0	-8.86,
+						1.2	2.7	-8.86,	#58
+
+						0	2.7	0, #59 extra punten voor segmentering beneden
+						0.14	2.7	-0.14,
+
+						5.68	2.7	0, #61
+						5.54	2.7	-0.14, #
+
+						0	2.7	-9, #63
+						0.14	2.7	-8.86, #
+
+						5.68	2.7	-9, #65
+						5.54	2.7	-8.86, #
+
+						1.2	2.7	-9, #67
+						1.2	2.7	-8.86, #
+
+						4.8	2.7	-9, #69
+						4.8	2.7	-8.86, #
+
+						0.14	5.4	-0.14, #71
+						5.54	5.4	-0.14, #72
+						5.54	5.4	-8.86, #73
+						0.14	2.7	-9, #74
+						0.14	5.4	-6.3, #75
+						0	5.4	-6.3, #76
+
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+		16, 21, 3, 59, -1,
+
+		19, 2, 20, -1,
+
+		2, 19, 61, -1,
+
+		65, 27, 2, 61, -1, 
+
+		59, 3, 76, 23, -1,
+
+		17, 48, 47, 16, -1,
+
+		18, 49, 48, 17, -1,
+
+		19, 50, 49, 18, -1,
+
+		20, 51, 50, 19, -1,
+
+		16, 47, 52, 21, -1,
+
+		3, 21, 52, 71, -1, 
+
+		20, 2, 72, 51, -1,
+
+		2, 27, 73, 72, -1,
+
+		27, 32, 56, 73, -1,
+
+		63, 64, 75, 76, -1,
+
+		3, 76, 75, 71, -1,
+
+		#27, 32, 69, 65, -1,
+		27, 65, 69, 32, -1,
+
+		32, 69, 70, 56, -1,
+
+		59, 17, 16, -1,
+
+		59, 61, 17, -1,
+
+		17, 61 , 18. -1,
+
+		18, 61, 19, -1,
+
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             FALSE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+
+# /buitmuur.wrl
+
+# binmuur.wrl
+
+
+
+
+Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.9 0.7
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0.28	0	-0.28, #0 linkerbenedenhoek voorgevel
+						5.40	0	-0.28,
+						5.40	5.40	-0.28,
+						0.28	5.40	-0.28, #3 linkerbovenhoek voorgevel
+
+						3.19	0	-0.28, #4 voordeur
+						4.42	0	-0.28,
+						4.42	2.30	-0.28,
+						3.19	2.30	-0.28, #7 voordeur
+
+						4.84	1.60	-0.28, #toiletraam-8
+						5.04	1.60	-0.28,
+						5.04	2.30	-0.28,
+						4.84	2.30	-0.28, 
+
+						2.60	0.90	-0.28, #keukenraam-12
+						2.60	2.30	-0.28,
+						0.60	2.30	-0.28,
+						0.60	0.90	-0.28,
+
+						0.60	3.60	-0.28, #bovenraam-16
+						1.50	3.60	-0.28,
+						1.50	5.0	-0.28,
+						4.42	5.0	-0.28,
+						4.42	5.40	-0.28, 
+						0.60	5.40	-0.28,
+
+						0.28	8.55	-3.15, #linkergevel-22
+						0.28	2.70	-8.72,
+						0.28	0	-8.72,
+
+						5.40	8.55	-3.15, #rechtergevel-25
+						5.40	5.40	-6.30,
+						5.40	5.40	-8.72,
+						5.40	0	-8.72,
+
+						2.25	0	-8.72, #achtergevel-29
+						2.25	0.6	-8.72,
+						4.8	0.6	-8.72,
+						4.8	5.40	-8.72,
+						1.2	0	-8.72,
+						1.2	2.70	-8.72,
+
+
+						3.19	0	-0.14, #diepte van de voordeur-35
+						4.42	0	-0.14,
+						4.42	2.30	-0.14,
+						3.19	2.30	-0.14, #diepte van de voordeur-38
+
+						2.60	0.90	-0.14, # diepte van het keukenraam-39
+						2.60	2.30	-0.14,
+						0.60	2.30	-0.14,
+						0.60	0.90	-0.14,
+
+						4.84	1.60	-0.14, #diepte van het toiletraam-43
+						5.04	1.60	-0.14,
+						5.04	2.30	-0.14,
+						4.84	2.30	-0.14, 
+
+						0.60	3.60	-0.14, #diepte van het bovenraam-47
+						1.50	3.60	-0.14,
+						1.50	5.0	-0.14,
+						4.42	5.0	-0.14,
+						4.42	5.40	-0.14, 
+						0.60	5.40	-0.14, #52
+
+						2.25	0	-8.86, #diepte van de achtergevel-53
+						2.25	0.6	-8.86,
+						4.8	0.6	-8.86,
+						4.8	5.40	-8.86,
+						1.2	0	-8.86,
+						1.2	2.70	-8.86,	#58
+
+						0.28	5.40	0,	#59 hoekpunt voor dakvorm zolder
+						5.40	5.40	0,
+						0.28	5.40	-6.30, #61
+						0.28	2.70	-9.0,  #62 hoekpunt voor dakvorm 1e verdieping
+
+						0.28	2.7	-0.28, #63 extra punten voor segmentering boven
+						0.14	2.7	-0.14,
+
+						5.4	2.7	-0.28, #65
+						5.54	2.7	-0.14, #
+
+						0.28	2.7	-8.72, #67
+						0.14	2.7	-8.86, #
+
+						5.4	2.7	-8.72, #69
+						5.54	2.7	-8.86, #
+
+						1.2	2.7	-8.72, #71
+						1.2	2.7	-8.86, #
+
+						4.8	2.7	-8.72, #73
+						4.8	2.7	-8.86, #
+
+						0.14	5.4	-0.14, #75
+						5.54	5.4	-0.14, #76
+						5.54	5.4	-8.86, #77
+						0.14	2.7	-9, #78
+						0.14	5.4	-6.3, #79
+
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+
+
+
+		16, 21, 3, 63, -1,
+
+		19, 2, 20, -1,
+
+		63, 16, 17, 65, -1,
+
+		17, 18, 19, 65, -1,
+
+		2, 19, 65, -1,
+
+		69, 27, 2, 65, -1, 
+
+		63, 3, 61, 62, -1,
+
+		16, 47, 48, 17, -1,
+
+		17, 48, 49, 18, -1,
+
+		18, 49, 50, 19, -1, 
+
+		19, 50, 51, 20, -1, 
+
+		21, 52, 47, 16, -1,
+
+		73, 74, 56, 32, -1,
+
+		69, 73, 32, 27, -1,
+
+		3, 21, 52, 75 -1,
+
+		20, 2, 76, 51, -1,
+
+		3, 61, 79, 75, -1,
+
+		2, 27, 77, 76, -1,
+
+		62, 61, 79, 78, -1,
+
+		27, 32, 56, 77, -1,
+
+
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             FALSE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+
+# /binmuur.wrl
+
+# ramen.wrl
+
+
+
+
+
+
+#begin bovenraam
+
+Transform {
+	children [
+		Shape {
+appearance DEF kozijn Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.95 0.95 0.9
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+
+geometry	Box { size	3.82 0.05 0.05 }
+}
+
+]
+translation	2.51 5.025 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	3.82 0.1 0.05 }
+}
+
+]
+translation	2.51 5.35 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 1.8 0.05 }
+}
+
+]
+translation	0.625 4.5 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 1.8 0.05 }
+}
+
+]
+translation	1.475 4.5 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 0.25 0.05 }
+}
+
+]
+translation	4.395 5.175 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance DEF blauw Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.3 0.4 0.7
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+
+geometry	Box { size	0.9 0.25 0.05 }
+}
+
+]
+translation	3.05 5.175 -0.14
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.9 0.05 0.05 }
+}
+
+]
+translation	1.05 3.625 -0.14
+}
+
+#einde bovenraam
+#begin kozijnen achter
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 2.4 0.05 }
+}
+
+]
+translation	3.215 3.9 -8.86
+}
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 2.4 0.05 }
+}
+
+]
+translation	4.775 3.9 -8.86
+}
+Transform {
+	children [
+		Shape {
+appearance	USE blauw 
+geometry	Box { size	1.61 0.3 0.05 }
+}
+
+]
+translation	3.995 5.25 -8.86
+}
+Transform {
+	children [
+		Shape {
+appearance	USE blauw 
+geometry	Box { size	1.51 0.8 0.05 }
+}
+
+]
+translation	3.995 3.1 -8.86
+}
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	1.51 0.05 0.05 }
+}
+
+]
+translation	3.995 3.525 -8.86
+}#3
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	1.51 0.05 0.05 }
+}
+
+]
+translation	3.995 5.075 -8.86
+}#4
+
+
+
+
+
+
+
+Transform {
+	children [
+		Shape {
+appearance	USE kozijn 
+geometry	Box { size	0.05 1.5 0.05 }
+}
+
+]
+translation	3.565 4.3 -8.86
+}
+
+
+
+#einde ramen achter
+
+
+
+# /ramen.wrl
+
+# ruiten.wrl
+
+
+
+
+
+
+#bovenruiten
+Transform {
+	children [
+		Shape {
+appearance DEF glas Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.6 0.6 0.9
+	emissiveColor     0 0 0
+	shininess         0.8
+	specularColor     1 1 1 
+	transparency      0.7
+}	texture           NULL
+	textureTransform  NULL
+}
+
+			geometry Box { size	0.8 1.35 0.01 }
+}
+
+]
+translation	1.05 4.325 -0.14
+}#ruit 1 boven
+
+Transform {
+	children [
+		Shape {
+appearance USE glas
+			geometry Box { size	0.8 0.3 0.01 }
+}
+
+]
+translation	1.05 5.2 -0.14
+}#ruit 2 boven
+
+Transform {
+	children [
+		Shape {
+appearance USE glas
+			geometry Box { size	1.1 0.3 0.01 }
+}
+
+]
+translation	2.05 5.2 -0.14
+}#ruit 3 boven
+
+Transform {
+	children [
+		Shape {
+appearance USE glas
+			geometry Box { size	0.85 0.3 0.01 }
+}
+
+]
+translation	3.935 5.2 -0.14
+}#ruit 4 boven
+
+
+
+#ramen achter
+Transform {
+	children [
+		Shape {
+appearance USE glas
+			geometry Box { size	1.16 1.5 0.01 }
+}
+
+]
+translation	4.17 4.3 -8.86
+}#ruit 1 achter
+
+Transform {
+	children [
+		Shape {
+appearance USE glas
+			geometry Box { size	0.3 1.5 0.01 }
+}
+
+]
+translation	3.39 4.3 -8.86
+}#ruit 2 achter
+
+
+
+# /ruiten.wrl
+
+# /boven/boven.wrl
+
+
+
+DEF zolder Transform {
+children[
+
+Transform {
+children[
+
+Transform{
+children[
+	Shape {
+appearance USE groen
+geometry USE pijl
+}
+]
+rotation 0 1 0 3.1415927
+}
+
+DEF schuifzolder TouchSensor {}
+]
+translation 0.15 5.4 0.3
+}
+
+Transform {
+children[
+
+	Shape {
+appearance USE rood
+geometry USE pijl
+}
+
+DEF schuifzolder2 TouchSensor {}
+]
+translation 5.48 5.4 0.3
+}
+
+DEF dak Transform {
+children [
+# dak/dak.wrl
+
+
+
+
+Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.3 0.4 0.5
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+					0	5.4	0, #dakranden-0
+					5.68	5.4	0,
+					5.68	8.55	-3.15,
+					0	8.55	-3.15,
+					0	2.7	-9,
+					3.12	2.7	-9,
+					3.12	5.4	-6.30,
+					5.68	5.4	-6.30, #7
+
+					1.5	3.7	-8, #dakraam1-8
+					2.3	3.7	-8,
+					2.3	4.7	-7,
+					1.5	4.7	-7,
+
+					4.1	7.3	-1.9,  #dakraam2-12
+					3.5	7.3	-1.9, 
+					3.5	7.7	-2.3, 
+					4.1	7.7	-2.3, #15
+
+					0	5.44	0.04, #dikte van dakranden-16
+					5.68	5.44	0.04,
+					5.68	8.6065685	-3.15,
+					0	8.6065685	-3.15,
+					0	2.74	-9.04,
+					3.12	2.74	-9.04,
+					3.12	5.44	-6.34,
+					5.68	5.44	-6.34, #23	
+
+					1.5	3.74	-8.04, #dikte van het dakraam1-24
+					2.3	3.74	-8.04,
+					2.3	4.74	-7.04,
+					1.5	4.74	-7.04, #27	
+
+					4.1	7.34	-1.86,  #dikte van het dakraam2-28
+					3.5	7.34	-1.86, 
+					3.5	7.74	-2.26,
+					4.1	7.74	-2.26, #31
+			
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+
+
+	0, 13, 14, 3, -1,
+	0, 3, 14, 13, -1,
+
+	16, 29, 30, 19, -1,
+	16, 19, 30, 29, -1,
+
+	0, 1, 12, 13, -1, 
+	0, 13, 12, 1, -1,
+
+	16, 17, 28, 29, -1,
+	16, 29, 28, 17, -1,
+
+	1, 12, 15, 2, -1, 
+	1, 2, 15, 12, -1,
+
+	17, 28, 31, 18, -1,
+	17, 18, 31, 28, -1,
+
+	15, 2, 3, 14, -1, 
+	15, 14, 3, 2, -1,
+
+	31, 18, 19, 30, -1,
+	31, 30, 19, 18, -1,
+	
+	4, 8, 11, 3, -1, 
+	4, 3, 11, 8, -1, 
+
+	20, 24, 27, 19, -1,
+	20, 19, 27, 24, -1,
+
+	5, 4, 8, 9, -1, 
+	5, 9, 8, 4, -1, 
+
+	21, 20, 24, 25, -1,
+	21, 25, 24, 20, -1, 
+
+	5, 9, 10, 6, -1,
+	5, 6, 10, 9, -1,
+
+	21, 25, 26, 22, -1,
+	21, 22, 26, 25, -1,
+
+	7, 6, 2, -1, 
+	7, 2, 6, -1,
+
+	23, 22, 18, -1,
+	23, 18, 22, -1,
+
+	6, 10, 11, 3, 2, -1,
+	6, 2, 3, 11, 10, -1,
+
+	22, 26, 18, -1,
+	22, 18, 26, -1,
+
+	26, 27, 19, -1,
+	26, 19, 27, -1, 
+
+	26, 19, 18, -1,
+	26, 18, 19, -1,
+
+	0, 1, 17, 16, -1,
+	0, 16, 17, 1, -1,
+
+	1, 2, 18, 17, -1,
+	1, 17, 18, 2, -1, 
+
+	3, 0, 16, 19, -1, 
+	3, 19, 16, 0, -1,
+
+	2, 7, 23, 18, -1,
+	2, 18, 23, 7, -1, 
+
+	7, 6, 22, 23, -1, 
+	7, 23, 22, 6, -1,
+
+	5, 6, 22, 21, -1, 
+	5, 21, 22, 6, -1,
+
+	5, 4, 20, 21, -1,
+	5, 21, 20, 4, -1,
+
+	4, 3, 19, 20, -1, 
+	4, 20, 19, 3, -1,
+
+	9, 8, 24, 25, -1,
+	9, 25, 24, 8, -1,
+
+	8, 11, 27, 24, -1,
+	8, 24, 27, 11, -1,
+
+	10, 11, 27, 26, -1,
+	10, 26, 27, 11, -1,
+
+	9, 10, 26, 25, -1, 
+	9, 25, 26, 10, -1,
+
+	12, 13, 29, 28, -1,
+	12, 28, 29, 13, -1,
+
+	12, 15, 31, 28, -1, 
+	12, 28, 31, 15, -1,
+
+	14, 15, 31, 30, -1, 
+	14, 30, 31, 15, -1,
+
+	13, 14, 30, 29, -1,
+	13, 29, 30, 14, -1,
+
+
+
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+#schoorsteen
+
+Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.1 0.1 0.1
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0.3 0.3 0.3
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+		4.8	8	-2.6,
+		5.3	8	-2.6,
+		5.3	8.4	-3.0,
+		4.8	8.4	-3.0,
+
+		4.9	9.4	-2.65,
+		5.2	9.4	-2.65,
+		5.2	9.4	-2.95,	
+		4.9	9.4	-2.95, ]
+	}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+		0, 1, 5, 4, -1, 
+		0, 4, 5, 1, -1, 
+
+		1, 2, 6, 5, -1, 
+		1, 5, 6, 2, -1,
+
+		2, 3, 7, 6, -1,
+		2, 6, 7, 3, -1,
+
+		0, 3, 7, 4, -1,
+		0, 4, 7, 3, -1, 
+
+		4, 5, 6, 7, -1, 
+		4, 7, 6, 5, -1,
+
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+
+
+
+
+# /dak/dak.wrl
+
+Transform {
+children[
+
+
+Transform{
+children[
+
+	Shape {
+appearance USE groen
+geometry USE pijl
+}
+
+]
+rotation 0 1 0 3.1415927
+}
+
+DEF schuifdak TouchSensor {}
+
+]
+translation 0.15 6 0.3
+}
+
+
+Transform {
+children[
+
+	Shape {
+appearance USE rood
+geometry USE pijl
+}
+
+DEF schuifdak2 TouchSensor {}
+]
+translation 5.48 6 0.3
+}
+
+DEF tijd1 TimeSensor {
+	cycleInterval 4
+	enabled       TRUE
+	loop          FALSE
+	startTime     0
+	stopTime      0
+}
+
+DEF plaats1 PositionInterpolator {
+	key           [0, 1]
+	keyValue      [0 0 0 ,6 0 0]
+}
+
+DEF tijd1a TimeSensor {
+	cycleInterval 4
+	enabled       TRUE
+	loop          FALSE
+	startTime     0
+	stopTime      0
+}
+
+DEF plaats1a PositionInterpolator {
+	key           [0, 1]
+	keyValue      [6 0 0 ,0 0 0]
+}
+
+
+
+]
+}#dak
+
+# zolder/zolder.wrl
+
+
+
+Viewpoint {
+	fieldOfView    1
+	jump           TRUE
+	orientation    1 0 0  0
+	position       2.5 7 -3.15
+
+	description    "op zolder"
+}
+
+#kleine platte dakje
+
+Transform {
+children [
+Shape {
+appearance DEF appdak Appearance {
+	 material          Material {
+  	ambientIntensity  0
+  	diffuseColor      0.2 0.2 0.2
+  	emissiveColor     0 0 0
+  	shininess         0
+  	specularColor     0 0 0 
+  	transparency      0
+			  }
+
+  texture           ImageTexture {
+  			  url     [""]
+  			  repeatS TRUE
+  			  repeatT TRUE
+ 			  }
+}
+geometry Box { size 2.6 0.04 2.74	}
+}
+]
+translation 4.39 5.40 -7.67
+}
+
+
+DEF zoldervloer Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material          Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.5 0.3
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0.14	5.40	0,
+						5.54	5.40	0,
+						5.54	5.40	-6.30,
+						0.14	5.40	-6.30,
+
+						5.54	5.40	-2.36, #-4
+						5.54	5.40	-4.36,
+						4.42	5.40	-4.36,
+						4.42	5.40	-2.36,
+
+
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+		0, 1, 4, 7, -1, 
+		0, 7, 4, 1, -1, 
+
+		0, 7, 6, 3, -1,
+		0, 3, 6, 7, -1, 
+
+		5, 2, 3, 6, -1, 
+		5, 6, 3, 2, -1,
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+DEF plafondboven Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      1 1 1 
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0.14	5.30	-0.14,
+						5.54	5.30	-0.14,
+						5.54	5.30	-8.86,
+						3.19	5.30	-8.86,
+
+						5.54	5.30	-2.36, #-4
+						5.54	5.30	-4.36,
+						4.42	5.30	-4.36,
+						4.42	5.30	-2.36,
+
+						3.19	5.30	-6.40,
+						0.14	5.30	-6.40,
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+		0, 1, 4, 7, -1, 
+		0, 7, 4, 1, -1, 
+
+		0, 7, 6, 8, 9, -1,
+		0, 9, 8, 6, 7, -1, 
+
+		5, 2, 3, 8, 6, -1, 
+		5, 6, 8, 3, 2, -1,
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             TRUE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+
+DEF vulstukvoortrap Transform {
+	children [
+		Shape {
+appearance DEF wandkleur Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.9 0.7
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+
+
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						4.42	5.3	-2.36, #0
+						4.42	5.3	-3.36, 
+						4.42	5.4	-3.36,
+						4.42	5.4	-2.36, #3
+
+						5.4	5.3	-2.36, #4
+						5.4	5.4	-2.36,
+
+						5.4	5.3	-4.36, #6
+						5.4	5.4	-4.36,
+						4.42	5.3	-4.36, #8
+						4.42	5.4	-4.36,
+				
+				
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+	0, 1, 2, 3, -1,
+	0, 3, 2, 1, -1,
+	0, 3, 5, 4, -1,
+	9, 8, 6, 7, -1,
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             FALSE
+				texCoordIndex     []
+			}
+		}
+
+]
+}
+
+# ballustrade.wrl
+
+
+
+Transform {
+children[
+
+DEF spijlen Group {
+children [
+Transform{
+children [
+DEF spijl Shape {
+appearance DEF kozijn Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.95 0.95 0.9
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+geometry  Cylinder {
+				bottom  FALSE
+				height  0.8
+				radius  0.015
+				side    TRUE
+				top     FALSE
+			}
+}
+]
+translation -0.025	0.4	0.05
+}
+
+Transform{
+children USE spijl
+translation -0.025	0.4	0.15
+}
+Transform{
+children USE spijl
+translation -0.025	0.4	0.25
+}
+Transform{
+children USE spijl
+translation -0.025	0.4	0.35
+}
+Transform{
+children USE spijl
+translation -0.025	0.4	0.45
+}
+Transform{
+children USE spijl
+translation -0.025	0.4	0.55
+}
+Transform{
+children USE spijl
+translation -0.025	0.4	0.65
+}
+Transform{
+children USE spijl
+translation -0.025	0.4	0.75
+}
+Transform{
+children USE spijl
+translation -0.025	0.4	0.85
+}
+Transform{
+children USE spijl
+translation -0.025	0.4	0.95
+}
+
+]
+}#spijlengroup
+
+Transform{
+translation 0 0 1
+rotation 0 1 0 1.5707963
+children USE spijlen
+}
+
+Transform{
+children [
+Shape {
+appearance USE  kozijn
+geometry  Box { size 0.05	0.03	1.05	}
+}
+]
+translation -0.025	0.815	0.525
+}
+
+Transform{
+children [
+Shape {
+appearance USE  kozijn
+geometry  Box { size 1	0.03	0.05	}
+}
+]
+translation 0.5	0.815	1.025
+}
+
+
+]
+translation	4.42	5.4	-3.36
+}
+
+# /ballustrade.wrl
+
+# binmuur.wrl
+
+
+
+
+Transform {
+	children [
+		Shape {
+appearance Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      1 0.9 0.7
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0.28	0	-0.28, #0 linkerbenedenhoek voorgevel
+						5.40	0	-0.28,
+						5.40	5.40	-0.28,
+						0.28	5.40	-0.28, #3 linkerbovenhoek voorgevel
+
+						3.19	0	-0.28, #4 voordeur
+						4.42	0	-0.28,
+						4.42	2.30	-0.28,
+						3.19	2.30	-0.28, #7 voordeur
+
+						4.84	1.60	-0.28, #toiletraam-8
+						5.04	1.60	-0.28,
+						5.04	2.30	-0.28,
+						4.84	2.30	-0.28, 
+
+						2.60	0.90	-0.28, #keukenraam-12
+						2.60	2.30	-0.28,
+						0.60	2.30	-0.28,
+						0.60	0.90	-0.28,
+
+						0.60	3.60	-0.28, #bovenraam-16
+						1.50	3.60	-0.28,
+						1.50	5.0	-0.28,
+						4.42	5.0	-0.28,
+						4.42	5.40	-0.28, 
+						0.60	5.40	-0.28,
+
+						0.28	8.55	-3.15, #linkergevel-22
+						0.28	2.70	-8.72,
+						0.28	0	-8.72,
+
+						5.40	8.55	-3.15, #rechtergevel-25
+						5.40	5.40	-6.30,
+						5.40	5.40	-8.72,
+						5.40	0	-8.72,
+
+						2.25	0	-8.72, #achtergevel-29
+						2.25	0.6	-8.72,
+						4.8	0.6	-8.72,
+						4.8	5.40	-8.72,
+						1.2	0	-8.72,
+						1.2	2.70	-8.72,
+
+
+						3.19	0	-0.14, #diepte van de voordeur-35
+						4.42	0	-0.14,
+						4.42	2.30	-0.14,
+						3.19	2.30	-0.14, #diepte van de voordeur-38
+
+						2.60	0.90	-0.14, # diepte van het keukenraam-39
+						2.60	2.30	-0.14,
+						0.60	2.30	-0.14,
+						0.60	0.90	-0.14,
+
+						4.84	1.60	-0.14, #diepte van het toiletraam-43
+						5.04	1.60	-0.14,
+						5.04	2.30	-0.14,
+						4.84	2.30	-0.14, 
+
+						0.60	3.60	-0.14, #diepte van het bovenraam-47
+						1.50	3.60	-0.14,
+						1.50	5.0	-0.14,
+						4.42	5.0	-0.14,
+						4.42	5.40	-0.14, 
+						0.60	5.40	-0.14, #52
+
+						2.25	0	-8.86, #diepte van de achtergevel-53
+						2.25	0.6	-8.86,
+						4.8	0.6	-8.86,
+						4.8	5.40	-8.86,
+						1.2	0	-8.86,
+						1.2	2.70	-8.86,	#58
+
+						0.28	5.40	0,	#59 hoekpunt voor dakvorm zolder
+						5.40	5.40	0,
+						0.28	5.40	-6.30, #61
+						0.28	2.70	-9.0,  #62 hoekpunt voor dakvorm 1e verdieping
+
+						0.14	5.40	0,	#63 extra punten voor segmentering
+						5.54	5.40	0,
+						0.14	5.40	-6.30, 
+						5.54	5.40	-6.3,  #66
+						5.54	8.55	-3.15, #rechtergevel-67
+						0.14	8.55	-3.15, #linkergevel-68
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+	
+		59, 22, 61, -1,
+		60, 25, 26, -1,
+
+		59, 63, 68, 22, -1,
+		68, 22, 61, 65, -1,
+
+		60, 64, 67, 25, -1, 
+		25, 67, 66, 26, -1,
+
+		
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             FALSE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+
+# /binmuur.wrl
+
+# buitmuur.wrl
+
+
+
+
+Transform {
+	children [
+		Shape {
+appearance DEF steen Appearance {
+	material         Material {
+	ambientIntensity  0.2
+	diffuseColor      0.8 0.4 0.3
+	emissiveColor     0 0 0
+	shininess         0.1
+	specularColor     0 0 0
+	transparency      0
+}	texture           NULL
+	textureTransform  NULL
+}
+			geometry IndexedFaceSet {
+				color             NULL
+				coord  Coordinate {	#default NULL
+					point [
+						0	0	0, #linkerbenedenhoek voorgevel
+						5.68	0	0,
+						5.68	5.40	0,
+						0	5.40	0, #linkerbovenhoek voorgevel
+
+						3.19	0	0, #voordeur
+						4.42	0	0,
+						4.42	2.30	0,
+						3.19	2.30	0, #voordeur
+
+						4.84	1.60	0, #toiletraam-8
+						5.04	1.60	0,
+						5.04	2.30	0,
+						4.84	2.30	0, 
+
+						2.60	0.90	0, #keukenraam-12
+						2.60	2.30	0,
+						0.60	2.30	0,
+						0.60	0.90	0,
+
+						0.60	3.60	0, #bovenraam-16
+						1.50	3.60	0,
+						1.50	5.0	0,
+						4.42	5.0	0,
+						4.42	5.40	0, 
+						0.60	5.40	0,
+
+						0	8.555	-3.15, #linkergevel-22
+						0	2.7	-9.0,
+						0	0	-9.0,
+
+						5.68	8.555	-3.15, #rechtergevel-25
+						5.68	5.40	-6.3,
+						5.68	5.40	-9,
+						5.68	0	-9.0,
+
+						2.25	0	-9.0, #achtergevel-29
+						2.25	0.6	-9.0,
+						4.8	0.6	-9.0,
+						4.8	5.40	-9.0,
+						1.2	0	-9.0,
+						1.2	2.7	-9,
+
+
+						3.19	0	-0.14, #diepte van de voordeur-35
+						4.42	0	-0.14,
+						4.42	2.30	-0.14,
+						3.19	2.30	-0.14, #diepte van de voordeur-38
+
+						2.60	0.90	-0.14, # diepte van het keukenraam-39
+						2.60	2.30	-0.14,
+						0.60	2.30	-0.14,
+						0.60	0.90	-0.14,
+
+						4.84	1.60	-0.14, #diepte van het toiletraam-43
+						5.04	1.60	-0.14,
+						5.04	2.30	-0.14,
+						4.84	2.30	-0.14, 
+
+						0.60	3.60	-0.14, #diepte van het bovenraam-47
+						1.50	3.60	-0.14,
+						1.50	5.0	-0.14,
+						4.42	5.0	-0.14,
+						4.42	5.40	-0.14, 
+						0.60	5.40	-0.14, #52
+
+						2.25	0	-8.86, #diepte van de achtergevel-53
+						2.25	0.6	-8.86,
+						4.8	0.6	-8.86,
+						4.8	5.40	-8.86,
+						1.2	0	-8.86,
+						1.2	2.7	-8.86,	#58
+
+						0.14	5.40	0,	#59 extra punten voor segmentering
+						5.54	5.40	0,
+						0.14	5.40	-6.30, 
+						5.54	5.40	-6.3,  #62
+						5.54	8.55	-3.15, #rechtergevel-63
+						0.14	8.55	-3.15, #linkergevel-64
+						0 	5.4	-6.3,
+					]
+				}
+				normal            NULL
+				texCoord          NULL
+				ccw               TRUE
+				colorIndex        []
+				colorPerVertex    TRUE
+				convex            TRUE
+				coordIndex  [
+	3, 22, 65, -1,
+	2, 26, 25, -1,
+
+	3, 59, 64, 22, -1,
+	61, 65, 22, 64, -1,
+
+	60, 2, 25, 63, -1,
+	63, 25, 26, 62, -1,
+
+
+]     #default []
+				creaseAngle       0
+				normalIndex       []
+				normalPerVertex   TRUE
+				solid             FALSE
+				texCoordIndex     []
+			}
+		}
+	]
+}
+
+
+
+# /buitmuur.wrl
+
+# /zolder/zolder.wrl
+
+DEF tijd2 TimeSensor {
+	cycleInterval 4
+	enabled       TRUE
+	loop          FALSE
+	startTime     0
+	stopTime      0
+}
+
+DEF plaats2 PositionInterpolator {
+	key           [0, 1]
+	keyValue      [0 0 0 ,6 0 0]
+}
+
+DEF tijd2a TimeSensor {
+	cycleInterval 4
+	enabled       TRUE
+	loop          FALSE
+	startTime     0
+	stopTime      0
+}
+
+DEF plaats2a PositionInterpolator {
+	key           [0, 1]
+	keyValue      [6 0 0 ,0 0 0]
+}
+
+
+
+]
+}#zolder
+
+DEF tijd3 TimeSensor {
+	cycleInterval 4
+	enabled       TRUE
+	loop          FALSE
+	startTime     0
+	stopTime      0
+}
+
+DEF plaats3 PositionInterpolator {
+	key           [0, 1]
+	keyValue      [0 0 0 ,6 0 0]
+}
+
+DEF tijd3a TimeSensor {
+	cycleInterval 4
+	enabled       TRUE
+	loop          FALSE
+	startTime     0
+	stopTime      0
+}
+
+DEF plaats3a PositionInterpolator {
+	key           [0, 1]
+	keyValue      [6 0 0 ,0 0 0]
+}
+
+
+]
+}#boven
+
+
+
+]
+}
+
+#ROUTE schuifdak.touchTime TO tijd1.startTime
+#ROUTE tijd1.fraction_changed TO plaats1.set_fraction
+#ROUTE plaats1.value_changed TO dak.translation
+
+#ROUTE schuifzolder.touchTime TO tijd2.startTime
+#ROUTE tijd2.fraction_changed TO plaats2.set_fraction
+#ROUTE plaats2.value_changed TO zolder.translation
+
+#ROUTE schuifboven.touchTime TO tijd3.startTime
+#ROUTE tijd3.fraction_changed TO plaats3.set_fraction
+#ROUTE plaats3.value_changed TO boven.translation
+
+#ROUTE schuifdak2.touchTime TO tijd1a.startTime
+#ROUTE tijd1a.fraction_changed TO plaats1a.set_fraction
+#ROUTE plaats1a.value_changed TO dak.translation
+
+#ROUTE schuifzolder2.touchTime TO tijd2a.startTime
+#ROUTE tijd2a.fraction_changed TO plaats2a.set_fraction
+#ROUTE plaats2a.value_changed TO zolder.translation
+
+#ROUTE schuifboven2.touchTime TO tijd3a.startTime
+#ROUTE tijd3a.fraction_changed TO plaats3a.set_fraction
+#ROUTE plaats3a.value_changed TO boven.translation
+

+ 5 - 18
examples/webgl_buffergeometry.html

@@ -81,24 +81,11 @@
 				var triangles = 160000;
 
 				var geometry = new THREE.BufferGeometry();
-				geometry.attributes = {
-					index: {
-						itemSize: 1,
-						array: new Uint16Array( triangles * 3 )
-					},
-					position: {
-						itemSize: 3,
-						array: new Float32Array( triangles * 3 * 3 )
-					},
-					normal: {
-						itemSize: 3,
-						array: new Float32Array( triangles * 3 * 3 )
-					},
-					color: {
-						itemSize: 3,
-						array: new Float32Array( triangles * 3 * 3 )
-					}
-				}
+
+				geometry.addAttribute( 'index', Uint16Array, triangles * 3, 1 );
+				geometry.addAttribute( 'position', Float32Array, triangles * 3, 3 );
+				geometry.addAttribute( 'normal', Float32Array, triangles * 3, 3 );
+				geometry.addAttribute( 'color', Float32Array, triangles * 3, 3 );
 
 				// break geometry into
 				// chunks of 21,845 triangles (3 unique vertices per triangle)

+ 5 - 19
examples/webgl_buffergeometry_custom_attributes_particles.html

@@ -136,25 +136,11 @@
 			var radius = 200;
 
 			geometry = new THREE.BufferGeometry();
-			// geometry.dynamic = true;
-			geometry.attributes = {
-
-				position: {
-					itemSize: 3,
-					array: new Float32Array( particles * 3 )
-				},
-				customColor: {
-					itemSize: 3,
-					array: new Float32Array( particles * 3 )
-				},
-				size: {
-					itemSize: 1,
-					array: new Float32Array( particles ),
-					dynamic: true
-				},
-
-			}
 
+			geometry.addAttribute( 'position', Float32Array, particles, 3 );
+			geometry.addAttribute( 'customColor', Float32Array, particles, 3 );
+			geometry.addAttribute( 'size', Float32Array, particles, 1 );
+			geometry.attributes.size.dynamic = true;
 
 			values_size = geometry.attributes.size.array;
 			var positions = geometry.attributes.position.array;
@@ -162,7 +148,7 @@
 
 			sphere = new THREE.ParticleSystem( geometry, shaderMaterial );
 
-			//sphere.sortParticles = true;
+			// sphere.sortParticles = true;
 
 			var color = new THREE.Color( 0xffaa00 );;
 

+ 2 - 10
examples/webgl_buffergeometry_lines.html

@@ -69,16 +69,8 @@
 				var geometry = new THREE.BufferGeometry();
 				var material = new THREE.LineBasicMaterial({ vertexColors: true });
 
-				geometry.attributes = {
-					position: {
-						itemSize: 3,
-						array: new Float32Array(segments * 3)
-					},
-					color: {
-						itemSize: 3,
-						array: new Float32Array(segments * 3)
-					}
-				};
+				geometry.addAttribute( 'position', Float32Array, segments, 3 );
+				geometry.addAttribute( 'color', Float32Array, segments, 3 );
 
 				var positions = geometry.attributes.position.array;
 				var colors = geometry.attributes.color.array;

+ 3 - 13
examples/webgl_buffergeometry_particles.html

@@ -68,19 +68,9 @@
 				var particles = 500000;
 
 				var geometry = new THREE.BufferGeometry();
-				geometry.attributes = {
-
-					position: {
-						itemSize: 3,
-						array: new Float32Array( particles * 3 )
-					},
-					color: {
-						itemSize: 3,
-						array: new Float32Array( particles * 3 )
-					}
-
-				}
 
+				geometry.addAttribute( 'position', Float32Array, particles, 3 );
+				geometry.addAttribute( 'color', Float32Array, particles, 3 );
 
 				var positions = geometry.attributes.position.array;
 				var colors = geometry.attributes.color.array;
@@ -119,7 +109,7 @@
 
 				//
 
-				var material = new THREE.ParticleBasicMaterial( { size: 15, vertexColors: true } );
+				var material = new THREE.ParticleSystemMaterial( { size: 15, vertexColors: true } );
 
 				particleSystem = new THREE.ParticleSystem( geometry, material );
 				scene.add( particleSystem );

+ 1 - 1
examples/webgl_camera.html

@@ -130,7 +130,7 @@
 
 				}
 
-				var particles = new THREE.ParticleSystem( geometry, new THREE.ParticleBasicMaterial( { color: 0x888888 } ) );
+				var particles = new THREE.ParticleSystem( geometry, new THREE.ParticleSystemMaterial( { color: 0x888888 } ) );
 				scene.add( particles );
 
 				//

+ 6 - 6
examples/webgl_geometry_extrude_shapes.html

@@ -28,7 +28,7 @@
 
 			var camera, scene, renderer;
 
-			var text, plane;
+			var group, text, plane;
 
 			var targetRotation = 0;
 			var targetRotationOnMouseDown = 0;
@@ -64,9 +64,9 @@
 				light.position.set( 0, 0, 1 );
 				scene.add( light );
 
-				parent = new THREE.Object3D();
-				parent.position.y = 50;
-				scene.add( parent );
+				group = new THREE.Object3D();
+				group.position.y = 50;
+				scene.add( group );
 
 				function addGeometry( geometry, color, x, y, z, rx, ry, rz, s ) {
 
@@ -80,7 +80,7 @@
 
 					if ( geometry.debug ) mesh.add( geometry.debug );
 
-					parent.add( mesh );
+					group.add( mesh );
 
 				}
 
@@ -322,7 +322,7 @@
 
 		function render() {
 
-			parent.rotation.y += ( targetRotation - parent.rotation.y ) * 0.05;
+			group.rotation.y += ( targetRotation - group.rotation.y ) * 0.05;
 			renderer.render( scene, camera );
 
 		}

+ 2 - 2
examples/webgl_geometry_shapes.html

@@ -111,7 +111,7 @@
 					// vertices from real points
 
 					var pgeo = points.clone();
-					var particles = new THREE.ParticleSystem( pgeo, new THREE.ParticleBasicMaterial( { color: color, size: 2, opacity: 0.75 } ) );
+					var particles = new THREE.ParticleSystem( pgeo, new THREE.ParticleSystemMaterial( { color: color, size: 2, opacity: 0.75 } ) );
 					particles.position.set( x, y, z + 75 );
 					particles.rotation.set( rx, ry, rz );
 					particles.scale.set( s, s, s );
@@ -128,7 +128,7 @@
 					// equidistance sampled points
 
 					var pgeo = spacedPoints.clone();
-					var particles2 = new THREE.ParticleSystem( pgeo, new THREE.ParticleBasicMaterial( { color: color, size: 2, opacity: 0.5 } ) );
+					var particles2 = new THREE.ParticleSystem( pgeo, new THREE.ParticleSystemMaterial( { color: color, size: 2, opacity: 0.5 } ) );
 					particles2.position.set( x, y, z + 125 );
 					particles2.rotation.set( rx, ry, rz );
 					particles2.scale.set( s, s, s );

+ 186 - 0
examples/webgl_loader_assimp2json.html

@@ -0,0 +1,186 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<title>three.js webgl - Open Asset Import Library (assimp) / assimp2json</title>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
+		<style>
+			body {
+				font-family: Monospace;
+				background-color: #000000;
+				margin: 0px;
+				overflow: hidden;
+			}
+
+			#info {
+				color: #fff;
+				position: absolute;
+				top: 10px;
+				width: 100%;
+				text-align: center;
+				z-index: 100;
+				display:block;
+
+			}
+
+			a { color: red }
+
+			#stats { position: absolute; top:0; left: 0 }
+			#stats #fps { background: transparent !important }
+			#stats #fps #fpsText { color: #aaa !important }
+			#stats #fps #fpsGraph { display: none }
+		</style>
+	</head>
+
+	<body>
+		<div id="info">
+			<a href="http://threejs.org" target="_blank">three.js</a> -
+			Jeep by Psionic, interior from
+			<a href="http://assimp.sf.net" target="_blank">Assimp</a>
+		</div>
+
+		<script src="../build/three.min.js"></script>
+
+		<script src="js/loaders/AssimpJSONLoader.js"></script>
+
+		<script src="js/Detector.js"></script>
+		<script src="js/libs/stats.min.js"></script>
+
+		<script>
+
+			if ( ! Detector.webgl ) {
+				Detector.addGetWebGLMessage();
+			}
+
+			/* 
+
+			Simple demo for loading json files generated by assimp2json 
+			https://github.com/acgessler/assimp2json
+
+			assimp2json uses assimp (http://assimp.sf.net) to import 40+ 3D file
+			formats, including 3ds, obj, dae, blend, fbx, x, ms3d, lwo (and many
+			more).
+
+			TODOs:
+			  - assimp supports skeletal animations and assimp2son exports
+			    them. This demo currently doesn't read them.
+			  - not all material properties supported by assimp are currently
+			    mapped to THREE.js
+
+			The sample files for this demo originate in assimp's repository,
+			and were converted using assimp2json 2.0. The interior file was
+			slightly edited to adjust for lower-case texture names.
+
+			*/
+
+			var container, stats;
+			var camera, scene, renderer, objects;
+			var clock = new THREE.Clock();
+
+			// init scene
+			init();
+
+			// Load jeep model using the AssimpJSONLoader
+			var loader1 = new THREE.AssimpJSONLoader();
+			loader1.load( 'models/assimp/jeep/jeep1.ms3d.json', function ( assimpjson ) {
+
+				assimpjson.scale.x = assimpjson.scale.y = assimpjson.scale.z = 0.2;
+				assimpjson.updateMatrix();
+
+				scene.add(assimpjson);
+			} );
+
+
+			// load interior model
+			var loader2 = new THREE.AssimpJSONLoader();
+			loader2.load( 'models/assimp/interior/interior.3ds.json', function ( assimpjson ) {
+
+				assimpjson.scale.x = assimpjson.scale.y = assimpjson.scale.z = 1;
+				assimpjson.updateMatrix();
+
+				scene.add( assimpjson );
+
+			} );
+
+			animate();
+
+
+			//
+
+			function init() {
+
+				container = document.createElement( 'div' );
+				document.body.appendChild( container );
+
+				camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 1, 2000 );
+				camera.position.set( 2, 4, 5 );
+
+				scene = new THREE.Scene();
+				scene.fog = new THREE.FogExp2( 0x000000, 0.035 );
+
+				// Lights
+				scene.add( new THREE.AmbientLight( 0xcccccc ) );
+
+				var directionalLight = new THREE.DirectionalLight(/*Math.random() * 0xffffff*/0xeeeeee );
+				directionalLight.position.x = Math.random() - 0.5;
+				directionalLight.position.y = Math.random() - 0.5;
+				directionalLight.position.z = Math.random() - 0.5;
+				directionalLight.position.normalize();
+				scene.add( directionalLight );
+
+				// Renderer
+				renderer = new THREE.WebGLRenderer();
+				renderer.setSize( window.innerWidth, window.innerHeight );
+
+				container.appendChild( renderer.domElement );
+
+				// Stats
+				stats = new Stats();
+				container.appendChild( stats.domElement );
+
+				// Events
+				window.addEventListener( 'resize', onWindowResize, false );
+
+			}
+
+			//
+
+			function onWindowResize( event ) {
+
+				renderer.setSize( window.innerWidth, window.innerHeight );
+
+				camera.aspect = window.innerWidth / window.innerHeight;
+				camera.updateProjectionMatrix();
+
+			}
+
+			//
+
+			var t = 0;
+			function animate() {
+
+				requestAnimationFrame( animate );
+
+				render();
+				stats.update();
+			}
+
+			//
+
+			function render() {
+
+				var timer = Date.now() * 0.0005;
+
+				camera.position.x = Math.cos( timer ) * 10;
+				camera.position.y = 4;
+				camera.position.z = Math.sin( timer ) * 10;
+
+				camera.lookAt( scene.position );
+
+				renderer.render( scene, camera );
+
+			}
+
+		</script>
+	</body>
+</html>

+ 2 - 4
examples/webgl_loader_vrml.html

@@ -83,15 +83,13 @@
 				camera.add( dirLight );
 				camera.add( dirLight.target );
 
-				var material = new THREE.MeshLambertMaterial( { color:0xffffff, side: THREE.DoubleSide } );
-
 				var loader = new THREE.VRMLLoader();
 				loader.addEventListener( 'load', function ( event ) {
 
-					scene = event.content;
+					scene.add(event.content);
 
 				} );
-				loader.load( "models/vrml/simple.wrl" );
+				loader.load( "models/vrml/house.wrl" );
 
 				// renderer
 

+ 11 - 67
examples/webgl_materials_wireframe.html

@@ -17,8 +17,8 @@
 
 		<script type="x-shader/x-vertex" id="vertexShader">
 
-			attribute vec4 center;
-			varying vec4 vCenter;
+			attribute vec3 center;
+			varying vec3 vCenter;
 
 			void main() {
 
@@ -33,7 +33,7 @@
 
 			#extension GL_OES_standard_derivatives : enable
 
-			varying vec4 vCenter;
+			varying vec3 vCenter;
 
 			float edgeFactorTri() {
 
@@ -43,37 +43,10 @@
 
 			}
 
-			float edgeFactorQuad1() {
-
-				vec2 d = fwidth( vCenter.xy );
-				vec2 a2 = smoothstep( vec2( 0.0 ), d * 1.5, vCenter.xy );
-
-				return min( a2.x, a2.y );
-
-			}
-
-			float edgeFactorQuad2() {
-
-				vec2 d = fwidth( 1.0 - vCenter.xy );
-				vec2 a2 = smoothstep( vec2( 0.0 ), d * 1.5, 1.0 - vCenter.xy );
-
-				return min( a2.x, a2.y );
-			}
-
 			void main() {
 
-				if ( vCenter.w == 0.0 ) {
-
-					gl_FragColor.rgb = mix( vec3( 1.0 ), vec3( 0.2 ), edgeFactorTri() );
-
-				} else {
-
-					gl_FragColor.rgb = mix( vec3( 1.0 ), vec3( 0.2 ), min( edgeFactorQuad1(), edgeFactorQuad2() ) );
-
-				}
-
+				gl_FragColor.rgb = mix( vec3( 1.0 ), vec3( 0.2 ), edgeFactorTri() );
 				gl_FragColor.a = 1.0;
-
 			}
 
 		</script>
@@ -81,7 +54,7 @@
 		<script>
 
 			var camera, scene, renderer;
-			var meshTris, meshQuads, meshLines, meshMixed;
+			var meshTris, meshLines, meshMixed;
 
 			init();
 			animate();
@@ -96,17 +69,14 @@
 				var size = 150;
 
 				var geometryLines = new THREE.CubeGeometry( size, size, size );
-				var geometryQuads = new THREE.CubeGeometry( size, size, size );
 				var geometryTris = new THREE.CubeGeometry( size, size, size );
 
-				THREE.GeometryUtils.triangulateQuads( geometryTris );
-
 				// wireframe using gl.LINES
 
 				var materialLines = new THREE.MeshBasicMaterial( { wireframe: true } );
 
 				meshLines = new THREE.Mesh( geometryLines, materialLines );
-				meshLines.position.x = 0;
+				meshLines.position.x = -150;
 				scene.add( meshLines );
 
 				//
@@ -114,22 +84,9 @@
 				var vertexShader = document.getElementById( 'vertexShader' ).textContent;
 				var fragmentShader = document.getElementById( 'fragmentShader' ).textContent;
 
-				// wireframe using gl.TRIANGLES (interpreted as quads)
-
-				var attributesQuads = { center: { type: 'v4', boundTo: 'faceVertices', value: [] } };
-				var valuesQuads = attributesQuads.center.value;
-
-				setupAttributes( geometryQuads, valuesQuads );
-
-				var materialQuads = new THREE.ShaderMaterial( { uniforms: {}, attributes: attributesQuads, vertexShader: vertexShader, fragmentShader: fragmentShader } );
-
-				meshQuads = new THREE.Mesh( geometryQuads, materialQuads );
-				meshQuads.position.x = 300;
-				scene.add( meshQuads );
-
 				// wireframe using gl.TRIANGLES (interpreted as triangles)
 
-				var attributesTris = { center: { type: 'v4', boundTo: 'faceVertices', value: [] } };
+				var attributesTris = { center: { type: 'v3', boundTo: 'faceVertices', value: [] } };
 				var valuesTris = attributesTris.center.value;
 
 				setupAttributes( geometryTris, valuesTris );
@@ -137,14 +94,14 @@
 				var materialTris = new THREE.ShaderMaterial( { uniforms: {}, attributes: attributesTris, vertexShader: vertexShader, fragmentShader: fragmentShader } );
 
 				meshTris = new THREE.Mesh( geometryTris, materialTris );
-				meshTris.position.x = -300;
+				meshTris.position.x = 150;
 				scene.add( meshTris );
 
 				// wireframe using gl.TRIANGLES (mixed triangles and quads)
 
 				var mixedGeometry = new THREE.SphereGeometry( size / 2, 32, 16 );
 
-				var attributesMixed = { center: { type: 'v4', boundTo: 'faceVertices', value: [] } };
+				var attributesMixed = { center: { type: 'v3', boundTo: 'faceVertices', value: [] } };
 				var valuesMixed = attributesMixed.center.value;
 
 				setupAttributes( mixedGeometry, valuesMixed );
@@ -152,7 +109,7 @@
 				var materialMixed = new THREE.ShaderMaterial( { uniforms: {}, attributes: attributesMixed, vertexShader: vertexShader, fragmentShader: fragmentShader } );
 
 				meshMixed = new THREE.Mesh( mixedGeometry, materialMixed );
-				meshMixed.position.x = 0;
+				meshMixed.position.x = -150;
 				scene.add( meshMixed );
 
 
@@ -172,17 +129,7 @@
 
 				for( var f = 0; f < geometry.faces.length; f ++ ) {
 
-					var face = geometry.faces[ f ];
-
-					if ( face instanceof THREE.Face3 ) {
-
-						values[ f ] = [ new THREE.Vector4( 1, 0, 0, 0 ), new THREE.Vector4( 0, 1, 0, 0 ), new THREE.Vector4( 0, 0, 1, 0 ) ];
-
-					} else {
-
-						values[ f ] = [ new THREE.Vector4( 1, 0, 0, 1 ), new THREE.Vector4( 1, 1, 0, 1 ), new THREE.Vector4( 0, 1, 0, 1 ), new THREE.Vector4( 0, 0, 0, 1 ) ];
-
-					}
+					values[ f ] = [ new THREE.Vector3( 1, 0, 0 ), new THREE.Vector3( 0, 1, 0 ), new THREE.Vector3( 0, 0, 1 ) ];
 
 				}
 
@@ -204,9 +151,6 @@
 				meshLines.rotation.x += 0.005;
 				meshLines.rotation.y += 0.01;
 
-				meshQuads.rotation.x += 0.005;
-				meshQuads.rotation.y += 0.01;
-
 				meshTris.rotation.x += 0.005;
 				meshTris.rotation.y += 0.01;
 

+ 9 - 3
examples/webgl_panorama_equirectangular.html

@@ -60,13 +60,19 @@
 
 				scene = new THREE.Scene();
 
-				mesh = new THREE.Mesh( new THREE.SphereGeometry( 500, 60, 40 ), new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'textures/2294472375_24a3b8ef46_o.jpg' ) } ) );
-				mesh.scale.x = -1;
+				var geometry = new THREE.SphereGeometry( 500, 60, 40 );
+				geometry.applyMatrix( new THREE.Matrix4().makeScale( -1, 1, 1 ) );
+
+				var material = new THREE.MeshBasicMaterial( {
+					map: THREE.ImageUtils.loadTexture( 'textures/2294472375_24a3b8ef46_o.jpg' )
+				} );
+
+				mesh = new THREE.Mesh( geometry, material );
+				
 				scene.add( mesh );
 
 				renderer = new THREE.WebGLRenderer();
 				renderer.setSize( window.innerWidth, window.innerHeight );
-
 				container.appendChild( renderer.domElement );
 
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );

+ 1 - 1
examples/webgl_particles_billboards.html

@@ -81,7 +81,7 @@
 
 				}
 
-				material = new THREE.ParticleBasicMaterial( { size: 35, sizeAttenuation: false, map: sprite, transparent: true } );
+				material = new THREE.ParticleSystemMaterial( { size: 35, sizeAttenuation: false, map: sprite, transparent: true } );
 				material.color.setHSL( 1.0, 0.3, 0.7 );
 
 				particles = new THREE.ParticleSystem( geometry, material );

+ 1 - 1
examples/webgl_particles_billboards_colors.html

@@ -86,7 +86,7 @@
 
 				geometry.colors = colors;
 
-				material = new THREE.ParticleBasicMaterial( { size: 85, map: sprite, vertexColors: true, transparent: true } );
+				material = new THREE.ParticleSystemMaterial( { size: 85, map: sprite, vertexColors: true, transparent: true } );
 				material.color.setHSL( 1.0, 0.2, 0.7 );
 
 				particles = new THREE.ParticleSystem( geometry, material );

Some files were not shown because too many files changed in this diff