FeedGaraxy - forked from: CBC NET
マウスの左右移動で全体の回転速度を調節できるよ(´・ω・)
回転周期が最も遅いリング(item要素)が選択状態になるよ(´・ω・)
そのままクリックすると飛ぶよ(´・ω・)
※回転速度が遅すぎて別にストロボ効果使ってなかった件(´・ω・)
/**
* Copyright AtuyL ( http://wonderfl.net/user/AtuyL )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/3TF0
*/
// forked from Event's CBC NET
/*
マウスの左右移動で全体の回転速度を調節できるよ(´・ω・)
回転周期が最も遅いリング(item要素)が選択状態になるよ(´・ω・)
そのままクリックすると飛ぶよ(´・ω・)
※回転速度が遅すぎて別にストロボ効果使ってなかった件(´・ω・)
*/
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageQuality;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.geom.Matrix;
import flash.net.navigateToURL;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
[SWF(backgroundColor=0x000000)]
public class Main extends Sprite{
private const RSS:String = "http://assets.wonderfl.net/static/assets/session5/cbcnet_feed.xml";
private var feed:Feed;
public function Main():void{
this.stage.scaleMode = StageScaleMode.NO_SCALE;
this.stage.align = StageAlign.TOP_LEFT;
this.stage.quality = StageQuality.BEST;
BitmapTextField.stage = this.stage;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
var self:Object = this;
loader.addEventListener(Event.COMPLETE,function(event:Event):void{
event.currentTarget.removeEventListener(event.type,arguments.callee);
self.initialize(loader.data);
});
var request:URLRequest = new URLRequest(RSS);
loader.load(request);
}
private function initialize(data:*):void{
this.feed = (
data is String ? new Feed(new XML(data)) :
data is XML ? new Feed(data) :
data is Feed ? data as Feed : null
);
this.disc = new Disc;
this.currentIndex = -1;
this.loadNextItem();
}
private var disc:Disc;
private var scene3d:Scene3D;
private var viewport3d:Viewport3D;
private var renderer:BasicRenderEngine;
private var camera3d:Camera3D;
private var disc3d:Disc3D;
private var texture:BitmapData;
public function init3D():void{
this.camera3d = new Camera3D;
this.scene3d = new Scene3D;
this.viewport3d = new Viewport3D(512,512,true);
this.addChild(this.viewport3d);
this.disc3d = new Disc3D();
this.disc3d.scale = 2;
this.texture = new BitmapData(2048,2048,false,0x0);
this.disc3d.material = new BitmapMaterial(this.texture,false);
this.scene3d.addChild(this.disc3d);
this.camera3d.target = DisplayObject3D.ZERO;
this.camera3d.z = -250;
this.camera3d.y = 250;
this.camera3d.fov = 45;
this.renderer = new BasicRenderEngine;
}
private function enter_frame(event:Event):void{
this.disc.speed = (this.stage.mouseX / this.stage.stageWidth - 0.5) * 2.0;
this.disc.update();
var m:Matrix = new Matrix;
m.scale(1,2048/this.disc.height);
this.texture.draw(this.disc,m);
this.renderer.renderScene(this.scene3d,this.camera3d,this.viewport3d);
if(this.disc.currentTrack){
if(this.currentBitmap) this.removeChild(this.currentBitmap);
this.currentBitmap = new Bitmap(this.disc.currentTrack.originalBitmapData.clone());
this.currentBitmap.x = (this.stage.stageWidth - this.currentBitmap.width) >> 1;
this.currentBitmap.y = this.stage.stageHeight * 0.2;
this.addChild(this.currentBitmap);
this.url = this.disc.currentTrack.item.link;
this.buttonMode = true;
}else{
this.removeChild(this.currentBitmap);
this.currentBitmap = null;
this.url = null;
this.buttonMode = false;
}
}
private var currentIndex:int;
private var currentTrack:Track;
private var currentBitmap:Bitmap;
private function loadNextItem(event:Event = null):void{
if(event) event.currentTarget.removeEventListener(event.type,arguments.callee);
this.currentIndex++;
if(this.currentIndex >= this.feed.items.length){
this.start();
}else{
var item:Item = this.feed.items[this.currentIndex];
this.currentTrack = new Track(item);
this.currentTrack.addEventListener(Event.COMPLETE,this.appendTrack);
this.currentTrack.addEventListener(Event.COMPLETE,this.loadNextItem);
}
}
private function appendTrack(event:Event = null):void{
if(event) event.currentTarget.removeEventListener(event.type,arguments.callee);
this.disc.addTrack(this.currentTrack);
}
private function start():void{
this.currentTrack = null;
this.init3D();
this.stage.addEventListener(Event.ENTER_FRAME,this.enter_frame);
this.stage.addEventListener(Event.RESIZE,this.resize);
this.stage.addEventListener(MouseEvent.CLICK,this.click);
this.resize();
}
private var url:String;
private function click(event:Event):void{
if(this.buttonMode){
navigateToURL(new URLRequest(this.url),"_blank");
}
}
private function resize(event:Event = null):void{
this.disc.resizeTo(this.stage.stageWidth,this.stage.stageHeight);
}
}
}
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.PixelSnapping;
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.Event;
import flash.filters.BlurFilter;
import flash.geom.Matrix;
import flash.net.URLRequest;
import flash.system.LoaderContext;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import org.papervision3d.core.geom.*;
import org.papervision3d.core.geom.renderables.Triangle3D;
import org.papervision3d.core.geom.renderables.Vertex3D;
import org.papervision3d.core.math.NumberUV;
import org.papervision3d.core.proto.*;
internal class Disc extends Sprite{
private var _mask:Sprite;
public function Disc(){
super();
this.mouseChildren = false;
this.mouseEnabled = false;
this.trackList = [];
this.opaqueBackground = 0x0;
}
private var trackList:Array;
private var length:int;
public function addTrack(track:Track):void{
var height:Number = this.height;
track.y = height + this.length * 2;
this.addChild(track);
this.length = this.trackList.push(track);
}
private var _speed:Number;
public function set speed(value:Number):void{
this._speed = value;
}
private var loopThreshold:Number;
public var currentTrack:Track;
public function update():void{
var minMove:Number = Infinity;
this.currentTrack = null;
var index:int;
var offset:Number = 100 / this.trackList.length;
for each(var track:Track in this.trackList){
track.enabled = false;
var speedOffset:Number = index++ * offset;
var offsetX:Number = speedOffset + 100 * this._speed;
var x:Number = track.x + offsetX;
var moveValue:Number = Math.sin(offsetX / this.loopThreshold * Math.PI);
moveValue = moveValue < 0 ? -moveValue : moveValue;
if(minMove > moveValue){
currentTrack = track;
minMove = minMove > moveValue ? moveValue : minMove;
}
if(x > this.loopThreshold){
x -= (x / this.loopThreshold >> 0) * this.loopThreshold;
}else if(x < -this.loopThreshold){
x += (x / -this.loopThreshold >> 0) * this.loopThreshold;
}
track.x = x;
}
if(currentTrack){
currentTrack.enabled = true;
}
}
public function resizeTo(width:Number,height:Number):void{
var width:Number = 2048;
this.loopThreshold = width;
for each(var track:Track in this.trackList){
track.resizeTo(width,height);
}
this.update();
}
}
internal class Track extends Sprite{
public var item:Item;
private var original:Sprite;
public function Track(item:Item){
this.mouseChildren = false;
this.mouseEnabled = false;
this.original = new Sprite;
this.item = item;
this.appendTitle();
this.appendDate();
this.appendDescription();
if(this.item.image){
this.appendImage();
}else{
this.attachClones();
}
}
public function set enabled(value:Boolean):void{
if(value){
this.opaqueBackground = 0xFF9900;
}else{
this.opaqueBackground = 0x0;
}
}
private var title:DisplayObject;
public function appendTitle():void{
var height:Number = this.original.height;
this.title = this.original.addChild(new BitmapTextField(this.item.title));
this.title.y = height;
}
private var date:DisplayObject;
public function appendDate():void{
var height:Number = this.original.height;
this.date = this.original.addChild(new BitmapTextField(this.item.pubDate.toLocaleDateString()));
this.date.y = height;
}
private var description:DisplayObject;
public function appendDescription():void{
var height:Number = this.original.height;
this.description = this.original.addChild(new BitmapTextField(this.item.description));
this.description.y = height;
}
private var loader:Loader;
public function appendImage():void{
var request:URLRequest = new URLRequest(this.item.image);
loader = new Loader();
loader.cacheAsBitmap = true;
loader.load(request,new LoaderContext(true));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(event:Event):void{
event.currentTarget.removeEventListener(event.type,arguments.callee);
attachClones();
});
}
private var center:ItemBitmap;
private var left:ItemBitmap;
private var right:ItemBitmap;
public var originalBitmapData:BitmapData;
private function attachClones():void{
if(this.loader){
var h:Number = this.original.height;
var scale:Number = h / this.loader.height;
this.loader.scaleX = scale;
this.loader.scaleY = scale;
this.original.addChild(this.loader);
var paddingX:Number = this.loader.width;
this.title.x = paddingX;
this.date.x = paddingX;
this.description.x = paddingX;
}
var width:Number = this.original.width;
var height:Number = this.original.height;
this.originalBitmapData = new BitmapData(width,height,true,0x0);
this.originalBitmapData.draw(this.original);
this.center = new ItemBitmap(this.originalBitmapData);
this.left = new ItemBitmap(this.originalBitmapData);
this.right = new ItemBitmap(this.originalBitmapData);
this.addChild(this.center);
this.addChild(this.left);
this.addChild(this.right);
this.dispatchEvent(new Event(Event.COMPLETE));
}
public function resizeTo(width:Number,height:Number):void{
this.left.x = -width;
this.center.x = 0;
this.right.x = width;
}
}
internal class ItemBitmap extends Bitmap{
public function ItemBitmap(bitmapData:BitmapData){
super(bitmapData);
}
}
internal class Feed{
public var channel:Channel;
public var items:Vector.<Item>;
public function Feed(xml:XML){
var channelList:XMLList = xml.channel;
try{
var channel:XML = xml.channel[0];
this.channel = new Channel(channel);
var itemList:XMLList = channel.item;
this.items = new Vector.<Item>;
for each(var item:XML in itemList){
this.items.push(new Item(item));
}
}catch(e:Error){
trace(e);
}
}
}
internal class Channel{
public var title:String;
public var link:String;
public var language:String;
public var description:String;
public var copyright:String;
public var lastBuildDate:Date;
public function Channel(xml:XML){
var children:XMLList = xml.children();
for each(var child:XML in children){
var name:String = child.name();
var has:Boolean = this.hasOwnProperty(name);
if(!has) continue;
// hasProperties ----------------
if(name === "lastBuildDate"){
this.lastBuildDate = new Date(
Date.parse(
child.toString().replace(/^Web/,"Wed")
)
);
}else{
this[name] = child.toString();
}
}
}
}
internal class ItemList{
private var keys:Array = [];
private var data:Array = [];
private var key:String;
public function ItemList(key:String){
this.key = key;
}
public function addItem(item:Item):void{
var keyData:Object = item[this.key];
for each(var name:String in keyData){
var keyIndex:int = this.keys.indexOf(name);
if(keyIndex < 0){
keyIndex = this.keys.length;
this.keys.push(name);
this.data.push([item]);
}else{
this.data[keyIndex].push(item);
}
}
}
public function getItems(keyData:String):Array{
var keyIndex:int = this.keys.indexOf(keyData);
return keyIndex < 0 ? null : this.data[keyIndex];
}
public function getKeys():Array{
return this.keys.concat();
}
}
// singleton
internal const categories:ItemList = new ItemList("category");
internal const tags:ItemList = new ItemList("tag");
internal class Item{
public var title:String;
public var link:String;
public var guid:String;
public var pubDate:Date;
public var category:Array;
public var tag:Array;
public var description:String;
public var image:String;
public function Item(xml:XML){
var children:XMLList = xml.children();
for each(var child:XML in children){
var name:String = child.name();
var has:Boolean = this.hasOwnProperty(name);
if(!has) continue;
// hasProperties ----------------
if(name === "pubDate"){
this.pubDate = new Date(
Date.parse(
child.toString().replace(/^Web/,"Wed")
)
);
}else if(name === "category"){
this.category = child.toString().toUpperCase().replace(/\s/g,"").split(",");
categories.addItem(this);
}else if(name === "tag"){
this.tag = child.toString().toUpperCase().replace(/\s/g,"").split(",");
tags.addItem(this);
}else{
this[name] = child.toString();
}
}
}
}
internal class BitmapTextField extends Bitmap{
public static var stage:Stage;
private var field:TextField;
public function BitmapTextField(text:String = null,width:int = 2048){
super(null,PixelSnapping.NEVER,true);
this.field = new TextField;
this.field.width = width;
this.field.wordWrap = true;
this.field.autoSize = TextFieldAutoSize.LEFT;
this.field.embedFonts = false;
if(text) this.text = text;
}
public function set text(value:String):void{
this.field.text = value;
var format:TextFormat = new TextFormat;
format.size = 24;
format.font = "_ゴシック";
format.color = 0xFFFFFF;
this.field.setTextFormat(format);
var quality:String = BitmapTextField.stage.quality;
BitmapTextField.stage.quality = flash.display.StageQuality.BEST;
var buffer:Bitmap = new Bitmap(new BitmapData(field.width,field.height,true,0x0));
buffer.bitmapData.draw(field);
buffer.smoothing = true;
var m:Matrix = new Matrix;
m.scale(0.5,0.5);
var bitmapData:BitmapData = new BitmapData(buffer.width * 0.5,buffer.height * 0.5,true,0x0);
bitmapData.draw(buffer,m,null,null,null,true);
this.bitmapData = bitmapData;
BitmapTextField.stage.quality = quality;
}
}
internal class Disc3D extends TriangleMesh3D{
public var verts :Array;
public var faceAr:Array;
public var uvs :Array;
private function v(x:Number,y:Number,z:Number):void{verts.push(new Vertex3D(x,y,z));}
private function uv(u:Number,v:Number):void{uvs.push(new NumberUV(u,v));}
private function f(vn0:int, vn1:int, vn2:int, uvn0:int, uvn1:int,uvn2:int):void{faceAr.push( new Triangle3D( this, [verts[vn0],verts[vn1],verts[vn2] ], null, [uvs[uvn0],uvs[uvn1],uvs[uvn2]] ) );}
public function Disc3D( material:MaterialObject3D=null )
{
super( material, new Array(), new Array(), null );
verts = this.geometry.vertices;
faceAr= this.geometry.faces;
uvs =new Array();
v(200.0,0.0,-6.7481e-006);
v(196.157,0.0,39.0181);
v(184.776,0.0,76.5367);
v(166.294,0.0,111.114);
v(141.421,0.0,141.421);
v(111.114,0.0,166.294);
v(76.5367,0.0,184.776);
v(39.018,0.0,196.157);
v(1.19167e-005,0.0,200.0);
v(-39.0181,0.0,196.157);
v(-76.5367,0.0,184.776);
v(-111.114,0.0,166.294);
v(-141.421,0.0,141.421);
v(-166.294,0.0,111.114);
v(-184.776,0.0,76.5366);
v(-196.157,0.0,39.018);
v(-200.0,0.0,-6.77833e-005);
v(-196.157,0.0,-39.0182);
v(-184.776,0.0,-76.5368);
v(-166.294,0.0,-111.114);
v(-141.421,0.0,-141.421);
v(-111.114,0.0,-166.294);
v(-76.5366,0.0,-184.776);
v(-39.0179,0.0,-196.157);
v(0.000164505,0.0,-200.0);
v(39.0183,0.0,-196.157);
v(76.5369,0.0,-184.776);
v(111.114,0.0,-166.294);
v(141.421,0.0,-141.421);
v(166.294,0.0,-111.114);
v(184.776,0.0,-76.5364);
v(196.157,0.0,-39.0178);
v(187.5,0.0,-6.7481e-006);
v(183.897,0.0,36.5794);
v(173.227,0.0,71.7531);
v(155.901,0.0,104.169);
v(132.583,0.0,132.583);
v(104.169,0.0,155.901);
v(71.7531,0.0,173.227);
v(36.5794,0.0,183.897);
v(1.19167e-005,0.0,187.5);
v(-36.5794,0.0,183.897);
v(-71.7531,0.0,173.227);
v(-104.169,0.0,155.901);
v(-132.583,0.0,132.583);
v(-155.901,0.0,104.169);
v(-173.227,0.0,71.7531);
v(-183.897,0.0,36.5794);
v(-187.5,0.0,-6.77833e-005);
v(-183.897,0.0,-36.5795);
v(-173.227,0.0,-71.7532);
v(-155.9,0.0,-104.17);
v(-132.582,0.0,-132.583);
v(-104.169,0.0,-155.901);
v(-71.753,0.0,-173.227);
v(-36.5793,0.0,-183.897);
v(0.000164505,0.0,-187.5);
v(36.5796,0.0,-183.897);
v(71.7533,0.0,-173.227);
v(104.17,0.0,-155.9);
v(132.583,0.0,-132.582);
v(155.901,0.0,-104.169);
v(173.227,0.0,-71.7529);
v(183.897,0.0,-36.5792);
v(175.0,0.0,-6.7481e-006);
v(171.637,0.0,34.1408);
v(161.679,0.0,66.9696);
v(145.507,0.0,97.2248);
v(123.744,0.0,123.744);
v(97.2248,0.0,145.507);
v(66.9696,0.0,161.679);
v(34.1408,0.0,171.637);
v(1.19167e-005,0.0,175.0);
v(-34.1408,0.0,171.637);
v(-66.9696,0.0,161.679);
v(-97.2248,0.0,145.507);
v(-123.744,0.0,123.744);
v(-145.507,0.0,97.2248);
v(-161.679,0.0,66.9696);
v(-171.637,0.0,34.1407);
v(-175.0,0.0,-6.77833e-005);
v(-171.637,0.0,-34.1409);
v(-161.679,0.0,-66.9697);
v(-145.507,0.0,-97.2249);
v(-123.744,0.0,-123.744);
v(-97.2247,0.0,-145.507);
v(-66.9695,0.0,-161.679);
v(-34.1407,0.0,-171.637);
v(0.000149246,0.0,-175.0);
v(34.141,0.0,-171.637);
v(66.9698,0.0,-161.679);
v(97.2249,0.0,-145.507);
v(123.744,0.0,-123.744);
v(145.507,0.0,-97.2246);
v(161.679,0.0,-66.9694);
v(171.637,0.0,-34.1405);
v(162.5,0.0,-6.7481e-006);
v(159.378,0.0,31.7022);
v(150.13,0.0,62.186);
v(135.114,0.0,90.2801);
v(114.905,0.0,114.905);
v(90.2801,0.0,135.114);
v(62.186,0.0,150.13);
v(31.7021,0.0,159.378);
v(1.19167e-005,0.0,162.5);
v(-31.7022,0.0,159.378);
v(-62.186,0.0,150.13);
v(-90.2802,0.0,135.114);
v(-114.905,0.0,114.905);
v(-135.114,0.0,90.2802);
v(-150.13,0.0,62.186);
v(-159.378,0.0,31.7021);
v(-162.5,0.0,-5.25245e-005);
v(-159.378,0.0,-31.7023);
v(-150.13,0.0,-62.1861);
v(-135.114,0.0,-90.2803);
v(-114.905,0.0,-114.905);
v(-90.2801,0.0,-135.114);
v(-62.186,0.0,-150.13);
v(-31.7021,0.0,-159.378);
v(0.000164505,0.0,-162.5);
v(31.7024,0.0,-159.378);
v(62.1862,0.0,-150.13);
v(90.2803,0.0,-135.114);
v(114.905,0.0,-114.905);
v(135.114,0.0,-90.28);
v(150.131,0.0,-62.1858);
v(159.378,0.0,-31.7019);
v(150.0,0.0,-6.7481e-006);
v(147.118,0.0,29.2635);
v(138.582,0.0,57.4025);
v(124.72,0.0,83.3355);
v(106.066,0.0,106.066);
v(83.3355,0.0,124.72);
v(57.4025,0.0,138.582);
v(29.2635,0.0,147.118);
v(-1.86009e-005,0.0,150.0);
v(-29.2636,0.0,147.118);
v(-57.4025,0.0,138.582);
v(-83.3355,0.0,124.72);
v(-106.066,0.0,106.066);
v(-124.72,0.0,83.3355);
v(-138.582,0.0,57.4025);
v(-147.118,0.0,29.2635);
v(-150.0,0.0,-5.25245e-005);
v(-147.118,0.0,-29.2636);
v(-138.582,0.0,-57.4026);
v(-124.72,0.0,-83.3356);
v(-106.066,0.0,-106.066);
v(-83.3355,0.0,-124.721);
v(-57.4024,0.0,-138.582);
v(-29.2634,0.0,-147.118);
v(0.000118728,0.0,-150.0);
v(29.2637,0.0,-147.118);
v(57.4026,0.0,-138.582);
v(83.3357,0.0,-124.72);
v(106.066,0.0,-106.066);
v(124.721,0.0,-83.3354);
v(138.582,0.0,-57.4023);
v(147.118,0.0,-29.2633);
v(137.5,0.0,-6.7481e-006);
v(134.858,0.0,26.8249);
v(127.033,0.0,52.619);
v(114.327,0.0,76.3909);
v(97.2272,0.0,97.2272);
v(76.3909,0.0,114.327);
v(52.619,0.0,127.033);
v(26.8249,0.0,134.858);
v(-1.86009e-005,0.0,137.5);
v(-26.8249,0.0,134.858);
v(-52.619,0.0,127.033);
v(-76.3909,0.0,114.327);
v(-97.2272,0.0,97.2272);
v(-114.327,0.0,76.3909);
v(-127.033,0.0,52.6189);
v(-134.858,0.0,26.8249);
v(-137.5,0.0,-3.72657e-005);
v(-134.858,0.0,-26.825);
v(-127.033,0.0,-52.619);
v(-114.327,0.0,-76.391);
v(-97.2271,0.0,-97.2272);
v(-76.3908,0.0,-114.327);
v(-52.6189,0.0,-127.033);
v(-26.8248,0.0,-134.858);
v(0.000118728,0.0,-137.5);
v(26.825,0.0,-134.858);
v(52.6191,0.0,-127.033);
v(76.391,0.0,-114.327);
v(97.2273,0.0,-97.2271);
v(114.327,0.0,-76.3908);
v(127.033,0.0,-52.6188);
v(134.858,0.0,-26.8247);
v(125.0,0.0,-6.7481e-006);
v(122.598,0.0,24.3863);
v(115.485,0.0,47.8354);
v(103.934,0.0,69.4463);
v(88.3883,0.0,88.3883);
v(69.4463,0.0,103.934);
v(47.8354,0.0,115.485);
v(24.3863,0.0,122.598);
v(-1.86009e-005,0.0,125.0);
v(-24.3863,0.0,122.598);
v(-47.8354,0.0,115.485);
v(-69.4463,0.0,103.934);
v(-88.3884,0.0,88.3883);
v(-103.934,0.0,69.4463);
v(-115.485,0.0,47.8354);
v(-122.598,0.0,24.3863);
v(-125.0,0.0,-3.72657e-005);
v(-122.598,0.0,-24.3864);
v(-115.485,0.0,-47.8355);
v(-103.934,0.0,-69.4463);
v(-88.3883,0.0,-88.3884);
v(-69.4462,0.0,-103.934);
v(-47.8354,0.0,-115.485);
v(-24.3862,0.0,-122.598);
v(0.000103469,0.0,-125.0);
v(24.3864,0.0,-122.598);
v(47.8355,0.0,-115.485);
v(69.4464,0.0,-103.934);
v(88.3884,0.0,-88.3882);
v(103.934,0.0,-69.4461);
v(115.485,0.0,-47.8353);
v(122.598,0.0,-24.3861);
v(112.5,0.0,-6.7481e-006);
v(110.338,0.0,21.9477);
v(103.936,0.0,43.0519);
v(93.5403,0.0,62.5016);
v(79.5495,0.0,79.5495);
v(62.5016,0.0,93.5403);
v(43.0519,0.0,103.936);
v(21.9476,0.0,110.338);
v(-1.86009e-005,0.0,112.5);
v(-21.9477,0.0,110.338);
v(-43.0519,0.0,103.936);
v(-62.5017,0.0,93.5403);
v(-79.5495,0.0,79.5495);
v(-93.5404,0.0,62.5016);
v(-103.936,0.0,43.0519);
v(-110.338,0.0,21.9476);
v(-112.5,0.0,-3.72657e-005);
v(-110.338,0.0,-21.9477);
v(-103.936,0.0,-43.0519);
v(-93.5403,0.0,-62.5017);
v(-79.5495,0.0,-79.5496);
v(-62.5016,0.0,-93.5404);
v(-43.0518,0.0,-103.936);
v(-21.9476,0.0,-110.338);
v(0.000103469,0.0,-112.5);
v(21.9478,0.0,-110.338);
v(43.052,0.0,-103.936);
v(62.5018,0.0,-93.5403);
v(79.5496,0.0,-79.5494);
v(93.5404,0.0,-62.5015);
v(103.936,0.0,-43.0517);
v(110.338,0.0,-21.9475);
v(100.0,0.0,-6.7481e-006);
v(98.0785,0.0,19.509);
v(92.3879,0.0,38.2683);
v(83.1469,0.0,55.557);
v(70.7107,0.0,70.7107);
v(55.557,0.0,83.1469);
v(38.2683,0.0,92.388);
v(19.509,0.0,98.0785);
v(-1.86009e-005,0.0,100.0);
v(-19.509,0.0,98.0785);
v(-38.2683,0.0,92.388);
v(-55.557,0.0,83.1469);
v(-70.7107,0.0,70.7107);
v(-83.147,0.0,55.557);
v(-92.388,0.0,38.2683);
v(-98.0785,0.0,19.509);
v(-100.0,0.0,-3.72657e-005);
v(-98.0785,0.0,-19.5091);
v(-92.388,0.0,-38.2684);
v(-83.1469,0.0,-55.5571);
v(-70.7107,0.0,-70.7107);
v(-55.557,0.0,-83.147);
v(-38.2683,0.0,-92.388);
v(-19.509,0.0,-98.0785);
v(7.29518e-005,0.0,-100.0);
v(19.5091,0.0,-98.0785);
v(38.2684,0.0,-92.3879);
v(55.5571,0.0,-83.1469);
v(70.7107,0.0,-70.7106);
v(83.147,0.0,-55.5569);
v(92.388,0.0,-38.2682);
v(98.0785,0.0,-19.5089);
v(87.5,0.0,-6.7481e-006);
v(85.8187,0.0,17.0704);
v(80.8395,0.0,33.4848);
v(72.7536,0.0,48.6124);
v(61.8718,0.0,61.8718);
v(48.6124,0.0,72.7536);
v(33.4848,0.0,80.8395);
v(17.0704,0.0,85.8187);
v(-1.86009e-005,0.0,87.5);
v(-17.0704,0.0,85.8187);
v(-33.4848,0.0,80.8395);
v(-48.6124,0.0,72.7536);
v(-61.8719,0.0,61.8718);
v(-72.7536,0.0,48.6124);
v(-80.8395,0.0,33.4848);
v(-85.8187,0.0,17.0704);
v(-87.5,0.0,-2.20069e-005);
v(-85.8187,0.0,-17.0704);
v(-80.8395,0.0,-33.4848);
v(-72.7536,0.0,-48.6124);
v(-61.8718,0.0,-61.8719);
v(-48.6124,0.0,-72.7536);
v(-33.4847,0.0,-80.8395);
v(-17.0703,0.0,-85.8187);
v(7.29518e-005,0.0,-87.5);
v(17.0705,0.0,-85.8187);
v(33.4849,0.0,-80.8394);
v(48.6125,0.0,-72.7535);
v(61.8719,0.0,-61.8718);
v(72.7536,0.0,-48.6123);
v(80.8395,0.0,-33.4847);
v(85.8187,0.0,-17.0703);
v(75.0,0.0,-6.7481e-006);
v(73.5589,0.0,14.6318);
v(69.291,0.0,28.7013);
v(62.3602,0.0,41.6678);
v(53.033,0.0,53.033);
v(41.6678,0.0,62.3602);
v(28.7012,0.0,69.291);
v(14.6318,0.0,73.5589);
v(-1.86009e-005,0.0,75.0);
v(-14.6318,0.0,73.5589);
v(-28.7013,0.0,69.291);
v(-41.6678,0.0,62.3602);
v(-53.033,0.0,53.033);
v(-62.3602,0.0,41.6678);
v(-69.291,0.0,28.7013);
v(-73.5589,0.0,14.6317);
v(-75.0,0.0,-2.20069e-005);
v(-73.5589,0.0,-14.6318);
v(-69.291,0.0,-28.7013);
v(-62.3602,0.0,-41.6678);
v(-53.033,0.0,-53.033);
v(-41.6677,0.0,-62.3603);
v(-28.7012,0.0,-69.291);
v(-14.6317,0.0,-73.5589);
v(5.7693e-005,0.0,-75.0);
v(14.6318,0.0,-73.5589);
v(28.7013,0.0,-69.2909);
v(41.6678,0.0,-62.3602);
v(53.033,0.0,-53.033);
v(62.3603,0.0,-41.6677);
v(69.291,0.0,-28.7012);
v(73.5589,0.0,-14.6317);
v(62.5,0.0,-6.7481e-006);
v(61.2991,0.0,12.1932);
v(57.7424,0.0,23.9177);
v(51.9668,0.0,34.7231);
v(44.1941,0.0,44.1942);
v(34.7231,0.0,51.9669);
v(23.9177,0.0,57.7425);
v(12.1931,0.0,61.2991);
v(-1.86009e-005,0.0,62.5);
v(-12.1932,0.0,61.2991);
v(-23.9177,0.0,57.7425);
v(-34.7232,0.0,51.9669);
v(-44.1942,0.0,44.1942);
v(-51.9669,0.0,34.7231);
v(-57.7425,0.0,23.9177);
v(-61.2991,0.0,12.1931);
v(-62.5,0.0,-2.20069e-005);
v(-61.2991,0.0,-12.1932);
v(-57.7425,0.0,-23.9177);
v(-51.9668,0.0,-34.7232);
v(-44.1942,0.0,-44.1942);
v(-34.7231,0.0,-51.9669);
v(-23.9177,0.0,-57.7425);
v(-12.1931,0.0,-61.2991);
v(5.7693e-005,0.0,-62.5);
v(12.1932,0.0,-61.2991);
v(23.9178,0.0,-57.7425);
v(34.7232,0.0,-51.9668);
v(44.1942,0.0,-44.1941);
v(51.9669,0.0,-34.7231);
v(57.7425,0.0,-23.9176);
v(61.2991,0.0,-12.193);
v(50.0,0.0,-6.7481e-006);
v(49.0393,0.0,9.75451);
v(46.194,0.0,19.1342);
v(41.5735,0.0,27.7785);
v(35.3553,0.0,35.3553);
v(27.7785,0.0,41.5735);
v(19.1342,0.0,46.194);
v(9.7545,0.0,49.0393);
v(-1.86009e-005,0.0,50.0);
v(-9.75453,0.0,49.0393);
v(-19.1342,0.0,46.194);
v(-27.7785,0.0,41.5735);
v(-35.3554,0.0,35.3553);
v(-41.5735,0.0,27.7785);
v(-46.194,0.0,19.1342);
v(-49.0393,0.0,9.75451);
v(-50.0,0.0,-3.72657e-005);
v(-49.0393,0.0,-9.75454);
v(-46.194,0.0,-19.1342);
v(-41.5735,0.0,-27.7785);
v(-35.3553,0.0,-35.3554);
v(-27.7785,0.0,-41.5735);
v(-19.1342,0.0,-46.194);
v(-9.7545,0.0,-49.0393);
v(2.71755e-005,0.0,-50.0);
v(9.75457,0.0,-49.0393);
v(19.1342,0.0,-46.194);
v(27.7786,0.0,-41.5735);
v(35.3554,0.0,-35.3553);
v(41.5735,0.0,-27.7785);
v(46.194,0.0,-19.1341);
v(49.0393,0.0,-9.75445);
v(37.5,0.0,-6.7481e-006);
v(36.7794,0.0,7.3159);
v(34.6455,0.0,14.3506);
v(31.1801,0.0,20.8339);
v(26.5165,0.0,26.5165);
v(20.8339,0.0,31.1801);
v(14.3506,0.0,34.6455);
v(7.31588,0.0,36.7794);
v(-1.86009e-005,0.0,37.5);
v(-7.31589,0.0,36.7794);
v(-14.3506,0.0,34.6455);
v(-20.8339,0.0,31.1801);
v(-26.5165,0.0,26.5165);
v(-31.1801,0.0,20.8339);
v(-34.6455,0.0,14.3506);
v(-36.7795,0.0,7.31587);
v(-37.5,0.0,-3.72657e-005);
v(-36.7795,0.0,-7.31591);
v(-34.6455,0.0,-14.3507);
v(-31.1801,0.0,-20.8339);
v(-26.5165,0.0,-26.5165);
v(-20.8339,0.0,-31.1801);
v(-14.3506,0.0,-34.6455);
v(-7.31588,0.0,-36.7795);
v(2.71755e-005,0.0,-37.5);
v(7.3159,0.0,-36.7794);
v(14.3507,0.0,-34.6455);
v(20.8339,0.0,-31.1801);
v(26.5165,0.0,-26.5165);
v(31.1801,0.0,-20.8338);
v(34.6455,0.0,-14.3506);
v(36.7794,0.0,-7.31583);
v(25.0,0.0,-6.7481e-006);
v(24.5196,0.0,4.87728);
v(23.097,0.0,9.56709);
v(20.7867,0.0,13.8893);
v(17.6776,0.0,17.6777);
v(13.8892,0.0,20.7867);
v(9.56707,0.0,23.097);
v(4.87727,0.0,24.5196);
v(-1.86009e-005,0.0,25.0);
v(-4.87728,0.0,24.5196);
v(-9.5671,0.0,23.097);
v(-13.8893,0.0,20.7867);
v(-17.6777,0.0,17.6777);
v(-20.7868,0.0,13.8893);
v(-23.097,0.0,9.56707);
v(-24.5197,0.0,4.87725);
v(-25.0,0.0,-3.72657e-005);
v(-24.5197,0.0,-4.87726);
v(-23.097,0.0,-9.5671);
v(-20.7868,0.0,-13.8893);
v(-17.6777,0.0,-17.6777);
v(-13.8893,0.0,-20.7868);
v(-9.5671,0.0,-23.097);
v(-4.87725,0.0,-24.5196);
v(1.19167e-005,0.0,-25.0);
v(4.87729,0.0,-24.5196);
v(9.56711,0.0,-23.097);
v(13.8892,0.0,-20.7867);
v(17.6777,0.0,-17.6776);
v(20.7867,0.0,-13.8892);
v(23.097,0.0,-9.56705);
v(24.5196,0.0,-4.87723);
uv(0.750044,0.0);
uv(0.781289,0.0);
uv(0.812533,0.0);
uv(0.843778,0.0);
uv(0.875022,0.0);
uv(0.906267,0.0);
uv(0.937511,0.0);
uv(0.968756,0.0);
uv(1.0,0.0);
uv(0.0314208,0.0);
uv(0.0626653,0.0);
uv(0.0939098,0.0);
uv(0.125154,0.0);
uv(0.156399,0.0);
uv(0.187643,0.0);
uv(0.218888,0.0);
uv(0.250132,0.0);
uv(0.281377,0.0);
uv(0.312621,0.0);
uv(0.343866,0.0);
uv(0.37511,0.0);
uv(0.406355,0.0);
uv(0.437599,0.0);
uv(0.468844,0.0);
uv(0.500088,0.0);
uv(0.531333,0.0);
uv(0.562577,0.0);
uv(0.593822,0.0);
uv(0.625066,0.0);
uv(0.656311,0.0);
uv(0.687555,0.0);
uv(0.7188,0.0);
uv(0.750044,0.0713183);
uv(0.781289,0.0713183);
uv(0.812533,0.0713183);
uv(0.843778,0.0713183);
uv(0.875022,0.0713183);
uv(0.906267,0.0713183);
uv(0.937511,0.0713183);
uv(0.968756,0.0713183);
uv(1.0,0.0713183);
uv(0.0314208,0.0713183);
uv(0.0626653,0.0713183);
uv(0.0939098,0.0713183);
uv(0.125154,0.0713183);
uv(0.156399,0.0713183);
uv(0.187643,0.0713183);
uv(0.218888,0.0713183);
uv(0.250132,0.0713183);
uv(0.281377,0.0713183);
uv(0.312621,0.0713183);
uv(0.343866,0.0713183);
uv(0.37511,0.0713183);
uv(0.406355,0.0713183);
uv(0.437599,0.0713183);
uv(0.468844,0.0713183);
uv(0.500088,0.0713183);
uv(0.531333,0.0713183);
uv(0.562577,0.0713183);
uv(0.593822,0.0713183);
uv(0.625066,0.0713183);
uv(0.656311,0.0713183);
uv(0.687555,0.0713183);
uv(0.7188,0.0713183);
uv(0.750044,0.142637);
uv(0.781289,0.142637);
uv(0.812533,0.142637);
uv(0.843778,0.142637);
uv(0.875022,0.142637);
uv(0.906267,0.142637);
uv(0.937511,0.142637);
uv(0.968756,0.142637);
uv(1.0,0.142637);
uv(0.0314208,0.142637);
uv(0.0626653,0.142637);
uv(0.0939098,0.142637);
uv(0.125154,0.142637);
uv(0.156399,0.142637);
uv(0.187643,0.142637);
uv(0.218888,0.142637);
uv(0.250132,0.142637);
uv(0.281377,0.142637);
uv(0.312621,0.142637);
uv(0.343866,0.142637);
uv(0.37511,0.142637);
uv(0.406355,0.142637);
uv(0.437599,0.142637);
uv(0.468844,0.142637);
uv(0.500088,0.142637);
uv(0.531333,0.142637);
uv(0.562577,0.142637);
uv(0.593822,0.142637);
uv(0.625066,0.142637);
uv(0.656311,0.142637);
uv(0.687555,0.142637);
uv(0.7188,0.142637);
uv(0.750044,0.213955);
uv(0.781289,0.213955);
uv(0.812533,0.213955);
uv(0.843778,0.213955);
uv(0.875022,0.213955);
uv(0.906267,0.213955);
uv(0.937511,0.213955);
uv(0.968756,0.213955);
uv(1.0,0.213955);
uv(0.0314208,0.213955);
uv(0.0626653,0.213955);
uv(0.0939098,0.213955);
uv(0.125154,0.213955);
uv(0.156399,0.213955);
uv(0.187643,0.213955);
uv(0.218888,0.213955);
uv(0.250132,0.213955);
uv(0.281377,0.213955);
uv(0.312621,0.213955);
uv(0.343866,0.213955);
uv(0.37511,0.213955);
uv(0.406355,0.213955);
uv(0.437599,0.213955);
uv(0.468844,0.213955);
uv(0.500088,0.213955);
uv(0.531333,0.213955);
uv(0.562577,0.213955);
uv(0.593822,0.213955);
uv(0.625066,0.213955);
uv(0.656311,0.213955);
uv(0.687555,0.213955);
uv(0.7188,0.213955);
uv(0.750044,0.285273);
uv(0.781289,0.285273);
uv(0.812533,0.285273);
uv(0.843778,0.285273);
uv(0.875022,0.285273);
uv(0.906267,0.285273);
uv(0.937511,0.285273);
uv(0.968756,0.285273);
uv(1.0,0.285273);
uv(0.0314208,0.285273);
uv(0.0626653,0.285273);
uv(0.0939098,0.285273);
uv(0.125154,0.285273);
uv(0.156399,0.285273);
uv(0.187643,0.285273);
uv(0.218888,0.285273);
uv(0.250132,0.285273);
uv(0.281377,0.285273);
uv(0.312621,0.285273);
uv(0.343866,0.285273);
uv(0.37511,0.285273);
uv(0.406355,0.285273);
uv(0.437599,0.285273);
uv(0.468844,0.285273);
uv(0.500088,0.285273);
uv(0.531333,0.285273);
uv(0.562577,0.285273);
uv(0.593822,0.285273);
uv(0.625066,0.285273);
uv(0.656311,0.285273);
uv(0.687555,0.285273);
uv(0.7188,0.285273);
uv(0.750044,0.356592);
uv(0.781289,0.356592);
uv(0.812533,0.356592);
uv(0.843778,0.356592);
uv(0.875022,0.356592);
uv(0.906267,0.356592);
uv(0.937511,0.356592);
uv(0.968756,0.356592);
uv(1.0,0.356592);
uv(0.0314208,0.356592);
uv(0.0626653,0.356592);
uv(0.0939098,0.356592);
uv(0.125154,0.356592);
uv(0.156399,0.356592);
uv(0.187643,0.356592);
uv(0.218888,0.356592);
uv(0.250132,0.356592);
uv(0.281377,0.356592);
uv(0.312621,0.356592);
uv(0.343866,0.356592);
uv(0.37511,0.356592);
uv(0.406355,0.356592);
uv(0.437599,0.356592);
uv(0.468844,0.356592);
uv(0.500088,0.356592);
uv(0.531333,0.356592);
uv(0.562577,0.356592);
uv(0.593822,0.356592);
uv(0.625066,0.356592);
uv(0.656311,0.356592);
uv(0.687555,0.356592);
uv(0.7188,0.356592);
uv(0.750044,0.42791);
uv(0.781289,0.42791);
uv(0.812533,0.42791);
uv(0.843778,0.42791);
uv(0.875022,0.42791);
uv(0.906267,0.42791);
uv(0.937511,0.42791);
uv(0.968756,0.42791);
uv(1.0,0.42791);
uv(0.0314208,0.42791);
uv(0.0626653,0.42791);
uv(0.0939098,0.42791);
uv(0.125154,0.42791);
uv(0.156399,0.42791);
uv(0.187643,0.42791);
uv(0.218888,0.42791);
uv(0.250132,0.42791);
uv(0.281377,0.42791);
uv(0.312621,0.42791);
uv(0.343866,0.42791);
uv(0.37511,0.42791);
uv(0.406355,0.42791);
uv(0.437599,0.42791);
uv(0.468844,0.42791);
uv(0.500088,0.42791);
uv(0.531333,0.42791);
uv(0.562577,0.42791);
uv(0.593822,0.42791);
uv(0.625066,0.42791);
uv(0.656311,0.42791);
uv(0.687555,0.42791);
uv(0.7188,0.42791);
uv(0.750044,0.499228);
uv(0.781289,0.499228);
uv(0.812533,0.499228);
uv(0.843778,0.499228);
uv(0.875022,0.499228);
uv(0.906267,0.499228);
uv(0.937511,0.499228);
uv(0.968756,0.499228);
uv(1.0,0.499228);
uv(0.0314208,0.499228);
uv(0.0626653,0.499228);
uv(0.0939098,0.499228);
uv(0.125154,0.499228);
uv(0.156399,0.499228);
uv(0.187643,0.499228);
uv(0.218888,0.499228);
uv(0.250132,0.499228);
uv(0.281377,0.499228);
uv(0.312621,0.499228);
uv(0.343866,0.499228);
uv(0.37511,0.499228);
uv(0.406355,0.499228);
uv(0.437599,0.499228);
uv(0.468844,0.499228);
uv(0.500088,0.499228);
uv(0.531333,0.499228);
uv(0.562577,0.499228);
uv(0.593822,0.499228);
uv(0.625066,0.499228);
uv(0.656311,0.499228);
uv(0.687555,0.499228);
uv(0.7188,0.499228);
uv(0.750044,0.570547);
uv(0.781289,0.570547);
uv(0.812533,0.570547);
uv(0.843778,0.570547);
uv(0.875022,0.570547);
uv(0.906267,0.570547);
uv(0.937511,0.570547);
uv(0.968756,0.570547);
uv(1.0,0.570547);
uv(0.0314208,0.570547);
uv(0.0626653,0.570547);
uv(0.0939098,0.570547);
uv(0.125154,0.570547);
uv(0.156399,0.570547);
uv(0.187643,0.570547);
uv(0.218888,0.570547);
uv(0.250132,0.570547);
uv(0.281377,0.570547);
uv(0.312621,0.570547);
uv(0.343866,0.570547);
uv(0.37511,0.570547);
uv(0.406355,0.570547);
uv(0.437599,0.570547);
uv(0.468844,0.570547);
uv(0.500088,0.570547);
uv(0.531333,0.570547);
uv(0.562577,0.570547);
uv(0.593822,0.570547);
uv(0.625066,0.570547);
uv(0.656311,0.570547);
uv(0.687555,0.570547);
uv(0.7188,0.570547);
uv(0.750044,0.641865);
uv(0.781289,0.641865);
uv(0.812533,0.641865);
uv(0.843778,0.641865);
uv(0.875022,0.641865);
uv(0.906267,0.641865);
uv(0.937511,0.641865);
uv(0.968756,0.641865);
uv(1.0,0.641865);
uv(0.0314208,0.641865);
uv(0.0626653,0.641865);
uv(0.0939098,0.641865);
uv(0.125154,0.641865);
uv(0.156399,0.641865);
uv(0.187643,0.641865);
uv(0.218888,0.641865);
uv(0.250132,0.641865);
uv(0.281377,0.641865);
uv(0.312621,0.641865);
uv(0.343866,0.641865);
uv(0.37511,0.641865);
uv(0.406355,0.641865);
uv(0.437599,0.641865);
uv(0.468844,0.641865);
uv(0.500088,0.641865);
uv(0.531333,0.641865);
uv(0.562577,0.641865);
uv(0.593822,0.641865);
uv(0.625066,0.641865);
uv(0.656311,0.641865);
uv(0.687555,0.641865);
uv(0.7188,0.641865);
uv(0.750044,0.713183);
uv(0.781289,0.713183);
uv(0.812533,0.713183);
uv(0.843778,0.713183);
uv(0.875022,0.713183);
uv(0.906267,0.713183);
uv(0.937511,0.713183);
uv(0.968756,0.713183);
uv(1.0,0.713183);
uv(0.0314208,0.713183);
uv(0.0626653,0.713183);
uv(0.0939098,0.713183);
uv(0.125154,0.713183);
uv(0.156399,0.713183);
uv(0.187643,0.713183);
uv(0.218888,0.713183);
uv(0.250132,0.713183);
uv(0.281377,0.713183);
uv(0.312621,0.713183);
uv(0.343866,0.713183);
uv(0.37511,0.713183);
uv(0.406355,0.713183);
uv(0.437599,0.713183);
uv(0.468844,0.713183);
uv(0.500088,0.713183);
uv(0.531333,0.713183);
uv(0.562577,0.713183);
uv(0.593822,0.713183);
uv(0.625066,0.713183);
uv(0.656311,0.713183);
uv(0.687555,0.713183);
uv(0.7188,0.713183);
uv(0.750044,0.784502);
uv(0.781289,0.784502);
uv(0.812533,0.784502);
uv(0.843778,0.784502);
uv(0.875022,0.784502);
uv(0.906267,0.784502);
uv(0.937511,0.784502);
uv(0.968756,0.784502);
uv(1.0,0.784502);
uv(0.0314208,0.784502);
uv(0.0626653,0.784502);
uv(0.0939098,0.784502);
uv(0.125154,0.784502);
uv(0.156399,0.784502);
uv(0.187643,0.784502);
uv(0.218888,0.784502);
uv(0.250132,0.784502);
uv(0.281377,0.784502);
uv(0.312621,0.784502);
uv(0.343866,0.784502);
uv(0.37511,0.784502);
uv(0.406355,0.784502);
uv(0.437599,0.784502);
uv(0.468844,0.784502);
uv(0.500088,0.784502);
uv(0.531333,0.784502);
uv(0.562577,0.784502);
uv(0.593822,0.784502);
uv(0.625066,0.784502);
uv(0.656311,0.784502);
uv(0.687555,0.784502);
uv(0.7188,0.784502);
uv(0.750044,0.85582);
uv(0.781289,0.85582);
uv(0.812533,0.85582);
uv(0.843778,0.85582);
uv(0.875022,0.85582);
uv(0.906267,0.85582);
uv(0.937511,0.85582);
uv(0.968756,0.85582);
uv(1.0,0.85582);
uv(0.0314208,0.85582);
uv(0.0626653,0.85582);
uv(0.0939098,0.85582);
uv(0.125154,0.85582);
uv(0.156399,0.85582);
uv(0.187643,0.85582);
uv(0.218888,0.85582);
uv(0.250132,0.85582);
uv(0.281377,0.85582);
uv(0.312621,0.85582);
uv(0.343866,0.85582);
uv(0.37511,0.85582);
uv(0.406355,0.85582);
uv(0.437599,0.85582);
uv(0.468844,0.85582);
uv(0.500088,0.85582);
uv(0.531333,0.85582);
uv(0.562577,0.85582);
uv(0.593822,0.85582);
uv(0.625066,0.85582);
uv(0.656311,0.85582);
uv(0.687555,0.85582);
uv(0.7188,0.85582);
uv(0.750044,0.927138);
uv(0.781289,0.927138);
uv(0.812533,0.927138);
uv(0.843778,0.927138);
uv(0.875022,0.927138);
uv(0.906267,0.927138);
uv(0.937511,0.927138);
uv(0.968756,0.927138);
uv(1.0,0.927138);
uv(0.0314208,0.927138);
uv(0.0626653,0.927138);
uv(0.0939098,0.927138);
uv(0.125154,0.927138);
uv(0.156399,0.927138);
uv(0.187643,0.927138);
uv(0.218888,0.927138);
uv(0.250132,0.927138);
uv(0.281377,0.927138);
uv(0.312621,0.927138);
uv(0.343866,0.927138);
uv(0.37511,0.927138);
uv(0.406355,0.927138);
uv(0.437599,0.927138);
uv(0.468844,0.927138);
uv(0.500088,0.927138);
uv(0.531333,0.927138);
uv(0.562577,0.927138);
uv(0.593822,0.927138);
uv(0.625066,0.927138);
uv(0.656311,0.927138);
uv(0.687555,0.927138);
uv(0.7188,0.927138);
uv(0.750044,0.998457);
uv(0.781289,0.998457);
uv(0.812533,0.998457);
uv(0.843778,0.998457);
uv(0.875022,0.998457);
uv(0.906267,0.998457);
uv(0.937511,0.998457);
uv(0.968756,0.998457);
uv(1.0,0.998457);
uv(0.0314208,0.998457);
uv(0.0626653,0.998457);
uv(0.0939098,0.998457);
uv(0.125154,0.998457);
uv(0.156399,0.998457);
uv(0.187643,0.998457);
uv(0.218888,0.998457);
uv(0.250132,0.998457);
uv(0.281377,0.998457);
uv(0.312621,0.998457);
uv(0.343866,0.998457);
uv(0.37511,0.998457);
uv(0.406355,0.998457);
uv(0.437599,0.998457);
uv(0.468844,0.998457);
uv(0.500088,0.998457);
uv(0.531333,0.998457);
uv(0.562577,0.998457);
uv(0.593822,0.998457);
uv(0.625066,0.998457);
uv(0.656311,0.998457);
uv(0.687555,0.998457);
uv(0.7188,0.998457);
uv(0.000176267,0.0);
uv(0.000176327,0.0713183);
uv(0.000176327,0.0713183);
uv(0.000176327,0.142637);
uv(0.000176327,0.142637);
uv(0.000176267,0.213955);
uv(0.000176267,0.213955);
uv(0.000176267,0.285273);
uv(0.000176267,0.285273);
uv(0.000176267,0.356592);
uv(0.000176267,0.356592);
uv(0.000176327,0.42791);
uv(0.000176327,0.42791);
uv(0.000176327,0.499228);
uv(0.000176327,0.499228);
uv(0.000176267,0.570547);
uv(0.000176267,0.570547);
uv(0.000176327,0.641865);
uv(0.000176327,0.641865);
uv(0.000176267,0.713183);
uv(0.000176267,0.713183);
uv(0.000176327,0.784502);
uv(0.000176327,0.784502);
uv(0.000176267,0.85582);
uv(0.000176267,0.85582);
uv(0.000176267,0.927138);
uv(0.000176267,0.927138);
uv(0.000176267,0.998457);
f(0,1,33,0,1,33);
f(33,32,0,33,32,0);
f(1,2,34,1,2,34);
f(34,33,1,34,33,1);
f(2,3,35,2,3,35);
f(35,34,2,35,34,2);
f(3,4,36,3,4,36);
f(36,35,3,36,35,3);
f(4,5,37,4,5,37);
f(37,36,4,37,36,4);
f(5,6,38,5,6,38);
f(38,37,5,38,37,5);
f(6,7,39,6,7,39);
f(39,38,6,39,38,6);
f(7,8,40,7,8,40);
f(40,39,7,40,39,7);
f(8,9,41,480,9,41);
f(41,40,8,41,481,480);
f(9,10,42,9,10,42);
f(42,41,9,42,41,9);
f(10,11,43,10,11,43);
f(43,42,10,43,42,10);
f(11,12,44,11,12,44);
f(44,43,11,44,43,11);
f(12,13,45,12,13,45);
f(45,44,12,45,44,12);
f(13,14,46,13,14,46);
f(46,45,13,46,45,13);
f(14,15,47,14,15,47);
f(47,46,14,47,46,14);
f(15,16,48,15,16,48);
f(48,47,15,48,47,15);
f(16,17,49,16,17,49);
f(49,48,16,49,48,16);
f(17,18,50,17,18,50);
f(50,49,17,50,49,17);
f(18,19,51,18,19,51);
f(51,50,18,51,50,18);
f(19,20,52,19,20,52);
f(52,51,19,52,51,19);
f(20,21,53,20,21,53);
f(53,52,20,53,52,20);
f(21,22,54,21,22,54);
f(54,53,21,54,53,21);
f(22,23,55,22,23,55);
f(55,54,22,55,54,22);
f(23,24,56,23,24,56);
f(56,55,23,56,55,23);
f(24,25,57,24,25,57);
f(57,56,24,57,56,24);
f(25,26,58,25,26,58);
f(58,57,25,58,57,25);
f(26,27,59,26,27,59);
f(59,58,26,59,58,26);
f(27,28,60,27,28,60);
f(60,59,27,60,59,27);
f(28,29,61,28,29,61);
f(61,60,28,61,60,28);
f(29,30,62,29,30,62);
f(62,61,29,62,61,29);
f(30,31,63,30,31,63);
f(63,62,30,63,62,30);
f(31,0,32,31,0,32);
f(32,63,31,32,63,31);
f(32,33,65,32,33,65);
f(65,64,32,65,64,32);
f(33,34,66,33,34,66);
f(66,65,33,66,65,33);
f(34,35,67,34,35,67);
f(67,66,34,67,66,34);
f(35,36,68,35,36,68);
f(68,67,35,68,67,35);
f(36,37,69,36,37,69);
f(69,68,36,69,68,36);
f(37,38,70,37,38,70);
f(70,69,37,70,69,37);
f(38,39,71,38,39,71);
f(71,70,38,71,70,38);
f(39,40,72,39,40,72);
f(72,71,39,72,71,39);
f(40,41,73,482,41,73);
f(73,72,40,73,483,482);
f(41,42,74,41,42,74);
f(74,73,41,74,73,41);
f(42,43,75,42,43,75);
f(75,74,42,75,74,42);
f(43,44,76,43,44,76);
f(76,75,43,76,75,43);
f(44,45,77,44,45,77);
f(77,76,44,77,76,44);
f(45,46,78,45,46,78);
f(78,77,45,78,77,45);
f(46,47,79,46,47,79);
f(79,78,46,79,78,46);
f(47,48,80,47,48,80);
f(80,79,47,80,79,47);
f(48,49,81,48,49,81);
f(81,80,48,81,80,48);
f(49,50,82,49,50,82);
f(82,81,49,82,81,49);
f(50,51,83,50,51,83);
f(83,82,50,83,82,50);
f(51,52,84,51,52,84);
f(84,83,51,84,83,51);
f(52,53,85,52,53,85);
f(85,84,52,85,84,52);
f(53,54,86,53,54,86);
f(86,85,53,86,85,53);
f(54,55,87,54,55,87);
f(87,86,54,87,86,54);
f(55,56,88,55,56,88);
f(88,87,55,88,87,55);
f(56,57,89,56,57,89);
f(89,88,56,89,88,56);
f(57,58,90,57,58,90);
f(90,89,57,90,89,57);
f(58,59,91,58,59,91);
f(91,90,58,91,90,58);
f(59,60,92,59,60,92);
f(92,91,59,92,91,59);
f(60,61,93,60,61,93);
f(93,92,60,93,92,60);
f(61,62,94,61,62,94);
f(94,93,61,94,93,61);
f(62,63,95,62,63,95);
f(95,94,62,95,94,62);
f(63,32,64,63,32,64);
f(64,95,63,64,95,63);
f(64,65,97,64,65,97);
f(97,96,64,97,96,64);
f(65,66,98,65,66,98);
f(98,97,65,98,97,65);
f(66,67,99,66,67,99);
f(99,98,66,99,98,66);
f(67,68,100,67,68,100);
f(100,99,67,100,99,67);
f(68,69,101,68,69,101);
f(101,100,68,101,100,68);
f(69,70,102,69,70,102);
f(102,101,69,102,101,69);
f(70,71,103,70,71,103);
f(103,102,70,103,102,70);
f(71,72,104,71,72,104);
f(104,103,71,104,103,71);
f(72,73,105,484,73,105);
f(105,104,72,105,485,484);
f(73,74,106,73,74,106);
f(106,105,73,106,105,73);
f(74,75,107,74,75,107);
f(107,106,74,107,106,74);
f(75,76,108,75,76,108);
f(108,107,75,108,107,75);
f(76,77,109,76,77,109);
f(109,108,76,109,108,76);
f(77,78,110,77,78,110);
f(110,109,77,110,109,77);
f(78,79,111,78,79,111);
f(111,110,78,111,110,78);
f(79,80,112,79,80,112);
f(112,111,79,112,111,79);
f(80,81,113,80,81,113);
f(113,112,80,113,112,80);
f(81,82,114,81,82,114);
f(114,113,81,114,113,81);
f(82,83,115,82,83,115);
f(115,114,82,115,114,82);
f(83,84,116,83,84,116);
f(116,115,83,116,115,83);
f(84,85,117,84,85,117);
f(117,116,84,117,116,84);
f(85,86,118,85,86,118);
f(118,117,85,118,117,85);
f(86,87,119,86,87,119);
f(119,118,86,119,118,86);
f(87,88,120,87,88,120);
f(120,119,87,120,119,87);
f(88,89,121,88,89,121);
f(121,120,88,121,120,88);
f(89,90,122,89,90,122);
f(122,121,89,122,121,89);
f(90,91,123,90,91,123);
f(123,122,90,123,122,90);
f(91,92,124,91,92,124);
f(124,123,91,124,123,91);
f(92,93,125,92,93,125);
f(125,124,92,125,124,92);
f(93,94,126,93,94,126);
f(126,125,93,126,125,93);
f(94,95,127,94,95,127);
f(127,126,94,127,126,94);
f(95,64,96,95,64,96);
f(96,127,95,96,127,95);
f(96,97,129,96,97,129);
f(129,128,96,129,128,96);
f(97,98,130,97,98,130);
f(130,129,97,130,129,97);
f(98,99,131,98,99,131);
f(131,130,98,131,130,98);
f(99,100,132,99,100,132);
f(132,131,99,132,131,99);
f(100,101,133,100,101,133);
f(133,132,100,133,132,100);
f(101,102,134,101,102,134);
f(134,133,101,134,133,101);
f(102,103,135,102,103,135);
f(135,134,102,135,134,102);
f(103,104,136,103,104,136);
f(136,135,103,136,135,103);
f(104,105,137,486,105,137);
f(137,136,104,137,487,486);
f(105,106,138,105,106,138);
f(138,137,105,138,137,105);
f(106,107,139,106,107,139);
f(139,138,106,139,138,106);
f(107,108,140,107,108,140);
f(140,139,107,140,139,107);
f(108,109,141,108,109,141);
f(141,140,108,141,140,108);
f(109,110,142,109,110,142);
f(142,141,109,142,141,109);
f(110,111,143,110,111,143);
f(143,142,110,143,142,110);
f(111,112,144,111,112,144);
f(144,143,111,144,143,111);
f(112,113,145,112,113,145);
f(145,144,112,145,144,112);
f(113,114,146,113,114,146);
f(146,145,113,146,145,113);
f(114,115,147,114,115,147);
f(147,146,114,147,146,114);
f(115,116,148,115,116,148);
f(148,147,115,148,147,115);
f(116,117,149,116,117,149);
f(149,148,116,149,148,116);
f(117,118,150,117,118,150);
f(150,149,117,150,149,117);
f(118,119,151,118,119,151);
f(151,150,118,151,150,118);
f(119,120,152,119,120,152);
f(152,151,119,152,151,119);
f(120,121,153,120,121,153);
f(153,152,120,153,152,120);
f(121,122,154,121,122,154);
f(154,153,121,154,153,121);
f(122,123,155,122,123,155);
f(155,154,122,155,154,122);
f(123,124,156,123,124,156);
f(156,155,123,156,155,123);
f(124,125,157,124,125,157);
f(157,156,124,157,156,124);
f(125,126,158,125,126,158);
f(158,157,125,158,157,125);
f(126,127,159,126,127,159);
f(159,158,126,159,158,126);
f(127,96,128,127,96,128);
f(128,159,127,128,159,127);
f(128,129,161,128,129,161);
f(161,160,128,161,160,128);
f(129,130,162,129,130,162);
f(162,161,129,162,161,129);
f(130,131,163,130,131,163);
f(163,162,130,163,162,130);
f(131,132,164,131,132,164);
f(164,163,131,164,163,131);
f(132,133,165,132,133,165);
f(165,164,132,165,164,132);
f(133,134,166,133,134,166);
f(166,165,133,166,165,133);
f(134,135,167,134,135,167);
f(167,166,134,167,166,134);
f(135,136,168,135,136,168);
f(168,167,135,168,167,135);
f(136,137,169,488,137,169);
f(169,168,136,169,489,488);
f(137,138,170,137,138,170);
f(170,169,137,170,169,137);
f(138,139,171,138,139,171);
f(171,170,138,171,170,138);
f(139,140,172,139,140,172);
f(172,171,139,172,171,139);
f(140,141,173,140,141,173);
f(173,172,140,173,172,140);
f(141,142,174,141,142,174);
f(174,173,141,174,173,141);
f(142,143,175,142,143,175);
f(175,174,142,175,174,142);
f(143,144,176,143,144,176);
f(176,175,143,176,175,143);
f(144,145,177,144,145,177);
f(177,176,144,177,176,144);
f(145,146,178,145,146,178);
f(178,177,145,178,177,145);
f(146,147,179,146,147,179);
f(179,178,146,179,178,146);
f(147,148,180,147,148,180);
f(180,179,147,180,179,147);
f(148,149,181,148,149,181);
f(181,180,148,181,180,148);
f(149,150,182,149,150,182);
f(182,181,149,182,181,149);
f(150,151,183,150,151,183);
f(183,182,150,183,182,150);
f(151,152,184,151,152,184);
f(184,183,151,184,183,151);
f(152,153,185,152,153,185);
f(185,184,152,185,184,152);
f(153,154,186,153,154,186);
f(186,185,153,186,185,153);
f(154,155,187,154,155,187);
f(187,186,154,187,186,154);
f(155,156,188,155,156,188);
f(188,187,155,188,187,155);
f(156,157,189,156,157,189);
f(189,188,156,189,188,156);
f(157,158,190,157,158,190);
f(190,189,157,190,189,157);
f(158,159,191,158,159,191);
f(191,190,158,191,190,158);
f(159,128,160,159,128,160);
f(160,191,159,160,191,159);
f(160,161,193,160,161,193);
f(193,192,160,193,192,160);
f(161,162,194,161,162,194);
f(194,193,161,194,193,161);
f(162,163,195,162,163,195);
f(195,194,162,195,194,162);
f(163,164,196,163,164,196);
f(196,195,163,196,195,163);
f(164,165,197,164,165,197);
f(197,196,164,197,196,164);
f(165,166,198,165,166,198);
f(198,197,165,198,197,165);
f(166,167,199,166,167,199);
f(199,198,166,199,198,166);
f(167,168,200,167,168,200);
f(200,199,167,200,199,167);
f(168,169,201,490,169,201);
f(201,200,168,201,491,490);
f(169,170,202,169,170,202);
f(202,201,169,202,201,169);
f(170,171,203,170,171,203);
f(203,202,170,203,202,170);
f(171,172,204,171,172,204);
f(204,203,171,204,203,171);
f(172,173,205,172,173,205);
f(205,204,172,205,204,172);
f(173,174,206,173,174,206);
f(206,205,173,206,205,173);
f(174,175,207,174,175,207);
f(207,206,174,207,206,174);
f(175,176,208,175,176,208);
f(208,207,175,208,207,175);
f(176,177,209,176,177,209);
f(209,208,176,209,208,176);
f(177,178,210,177,178,210);
f(210,209,177,210,209,177);
f(178,179,211,178,179,211);
f(211,210,178,211,210,178);
f(179,180,212,179,180,212);
f(212,211,179,212,211,179);
f(180,181,213,180,181,213);
f(213,212,180,213,212,180);
f(181,182,214,181,182,214);
f(214,213,181,214,213,181);
f(182,183,215,182,183,215);
f(215,214,182,215,214,182);
f(183,184,216,183,184,216);
f(216,215,183,216,215,183);
f(184,185,217,184,185,217);
f(217,216,184,217,216,184);
f(185,186,218,185,186,218);
f(218,217,185,218,217,185);
f(186,187,219,186,187,219);
f(219,218,186,219,218,186);
f(187,188,220,187,188,220);
f(220,219,187,220,219,187);
f(188,189,221,188,189,221);
f(221,220,188,221,220,188);
f(189,190,222,189,190,222);
f(222,221,189,222,221,189);
f(190,191,223,190,191,223);
f(223,222,190,223,222,190);
f(191,160,192,191,160,192);
f(192,223,191,192,223,191);
f(192,193,225,192,193,225);
f(225,224,192,225,224,192);
f(193,194,226,193,194,226);
f(226,225,193,226,225,193);
f(194,195,227,194,195,227);
f(227,226,194,227,226,194);
f(195,196,228,195,196,228);
f(228,227,195,228,227,195);
f(196,197,229,196,197,229);
f(229,228,196,229,228,196);
f(197,198,230,197,198,230);
f(230,229,197,230,229,197);
f(198,199,231,198,199,231);
f(231,230,198,231,230,198);
f(199,200,232,199,200,232);
f(232,231,199,232,231,199);
f(200,201,233,492,201,233);
f(233,232,200,233,493,492);
f(201,202,234,201,202,234);
f(234,233,201,234,233,201);
f(202,203,235,202,203,235);
f(235,234,202,235,234,202);
f(203,204,236,203,204,236);
f(236,235,203,236,235,203);
f(204,205,237,204,205,237);
f(237,236,204,237,236,204);
f(205,206,238,205,206,238);
f(238,237,205,238,237,205);
f(206,207,239,206,207,239);
f(239,238,206,239,238,206);
f(207,208,240,207,208,240);
f(240,239,207,240,239,207);
f(208,209,241,208,209,241);
f(241,240,208,241,240,208);
f(209,210,242,209,210,242);
f(242,241,209,242,241,209);
f(210,211,243,210,211,243);
f(243,242,210,243,242,210);
f(211,212,244,211,212,244);
f(244,243,211,244,243,211);
f(212,213,245,212,213,245);
f(245,244,212,245,244,212);
f(213,214,246,213,214,246);
f(246,245,213,246,245,213);
f(214,215,247,214,215,247);
f(247,246,214,247,246,214);
f(215,216,248,215,216,248);
f(248,247,215,248,247,215);
f(216,217,249,216,217,249);
f(249,248,216,249,248,216);
f(217,218,250,217,218,250);
f(250,249,217,250,249,217);
f(218,219,251,218,219,251);
f(251,250,218,251,250,218);
f(219,220,252,219,220,252);
f(252,251,219,252,251,219);
f(220,221,253,220,221,253);
f(253,252,220,253,252,220);
f(221,222,254,221,222,254);
f(254,253,221,254,253,221);
f(222,223,255,222,223,255);
f(255,254,222,255,254,222);
f(223,192,224,223,192,224);
f(224,255,223,224,255,223);
f(224,225,257,224,225,257);
f(257,256,224,257,256,224);
f(225,226,258,225,226,258);
f(258,257,225,258,257,225);
f(226,227,259,226,227,259);
f(259,258,226,259,258,226);
f(227,228,260,227,228,260);
f(260,259,227,260,259,227);
f(228,229,261,228,229,261);
f(261,260,228,261,260,228);
f(229,230,262,229,230,262);
f(262,261,229,262,261,229);
f(230,231,263,230,231,263);
f(263,262,230,263,262,230);
f(231,232,264,231,232,264);
f(264,263,231,264,263,231);
f(232,233,265,494,233,265);
f(265,264,232,265,495,494);
f(233,234,266,233,234,266);
f(266,265,233,266,265,233);
f(234,235,267,234,235,267);
f(267,266,234,267,266,234);
f(235,236,268,235,236,268);
f(268,267,235,268,267,235);
f(236,237,269,236,237,269);
f(269,268,236,269,268,236);
f(237,238,270,237,238,270);
f(270,269,237,270,269,237);
f(238,239,271,238,239,271);
f(271,270,238,271,270,238);
f(239,240,272,239,240,272);
f(272,271,239,272,271,239);
f(240,241,273,240,241,273);
f(273,272,240,273,272,240);
f(241,242,274,241,242,274);
f(274,273,241,274,273,241);
f(242,243,275,242,243,275);
f(275,274,242,275,274,242);
f(243,244,276,243,244,276);
f(276,275,243,276,275,243);
f(244,245,277,244,245,277);
f(277,276,244,277,276,244);
f(245,246,278,245,246,278);
f(278,277,245,278,277,245);
f(246,247,279,246,247,279);
f(279,278,246,279,278,246);
f(247,248,280,247,248,280);
f(280,279,247,280,279,247);
f(248,249,281,248,249,281);
f(281,280,248,281,280,248);
f(249,250,282,249,250,282);
f(282,281,249,282,281,249);
f(250,251,283,250,251,283);
f(283,282,250,283,282,250);
f(251,252,284,251,252,284);
f(284,283,251,284,283,251);
f(252,253,285,252,253,285);
f(285,284,252,285,284,252);
f(253,254,286,253,254,286);
f(286,285,253,286,285,253);
f(254,255,287,254,255,287);
f(287,286,254,287,286,254);
f(255,224,256,255,224,256);
f(256,287,255,256,287,255);
f(256,257,289,256,257,289);
f(289,288,256,289,288,256);
f(257,258,290,257,258,290);
f(290,289,257,290,289,257);
f(258,259,291,258,259,291);
f(291,290,258,291,290,258);
f(259,260,292,259,260,292);
f(292,291,259,292,291,259);
f(260,261,293,260,261,293);
f(293,292,260,293,292,260);
f(261,262,294,261,262,294);
f(294,293,261,294,293,261);
f(262,263,295,262,263,295);
f(295,294,262,295,294,262);
f(263,264,296,263,264,296);
f(296,295,263,296,295,263);
f(264,265,297,496,265,297);
f(297,296,264,297,497,496);
f(265,266,298,265,266,298);
f(298,297,265,298,297,265);
f(266,267,299,266,267,299);
f(299,298,266,299,298,266);
f(267,268,300,267,268,300);
f(300,299,267,300,299,267);
f(268,269,301,268,269,301);
f(301,300,268,301,300,268);
f(269,270,302,269,270,302);
f(302,301,269,302,301,269);
f(270,271,303,270,271,303);
f(303,302,270,303,302,270);
f(271,272,304,271,272,304);
f(304,303,271,304,303,271);
f(272,273,305,272,273,305);
f(305,304,272,305,304,272);
f(273,274,306,273,274,306);
f(306,305,273,306,305,273);
f(274,275,307,274,275,307);
f(307,306,274,307,306,274);
f(275,276,308,275,276,308);
f(308,307,275,308,307,275);
f(276,277,309,276,277,309);
f(309,308,276,309,308,276);
f(277,278,310,277,278,310);
f(310,309,277,310,309,277);
f(278,279,311,278,279,311);
f(311,310,278,311,310,278);
f(279,280,312,279,280,312);
f(312,311,279,312,311,279);
f(280,281,313,280,281,313);
f(313,312,280,313,312,280);
f(281,282,314,281,282,314);
f(314,313,281,314,313,281);
f(282,283,315,282,283,315);
f(315,314,282,315,314,282);
f(283,284,316,283,284,316);
f(316,315,283,316,315,283);
f(284,285,317,284,285,317);
f(317,316,284,317,316,284);
f(285,286,318,285,286,318);
f(318,317,285,318,317,285);
f(286,287,319,286,287,319);
f(319,318,286,319,318,286);
f(287,256,288,287,256,288);
f(288,319,287,288,319,287);
f(288,289,321,288,289,321);
f(321,320,288,321,320,288);
f(289,290,322,289,290,322);
f(322,321,289,322,321,289);
f(290,291,323,290,291,323);
f(323,322,290,323,322,290);
f(291,292,324,291,292,324);
f(324,323,291,324,323,291);
f(292,293,325,292,293,325);
f(325,324,292,325,324,292);
f(293,294,326,293,294,326);
f(326,325,293,326,325,293);
f(294,295,327,294,295,327);
f(327,326,294,327,326,294);
f(295,296,328,295,296,328);
f(328,327,295,328,327,295);
f(296,297,329,498,297,329);
f(329,328,296,329,499,498);
f(297,298,330,297,298,330);
f(330,329,297,330,329,297);
f(298,299,331,298,299,331);
f(331,330,298,331,330,298);
f(299,300,332,299,300,332);
f(332,331,299,332,331,299);
f(300,301,333,300,301,333);
f(333,332,300,333,332,300);
f(301,302,334,301,302,334);
f(334,333,301,334,333,301);
f(302,303,335,302,303,335);
f(335,334,302,335,334,302);
f(303,304,336,303,304,336);
f(336,335,303,336,335,303);
f(304,305,337,304,305,337);
f(337,336,304,337,336,304);
f(305,306,338,305,306,338);
f(338,337,305,338,337,305);
f(306,307,339,306,307,339);
f(339,338,306,339,338,306);
f(307,308,340,307,308,340);
f(340,339,307,340,339,307);
f(308,309,341,308,309,341);
f(341,340,308,341,340,308);
f(309,310,342,309,310,342);
f(342,341,309,342,341,309);
f(310,311,343,310,311,343);
f(343,342,310,343,342,310);
f(311,312,344,311,312,344);
f(344,343,311,344,343,311);
f(312,313,345,312,313,345);
f(345,344,312,345,344,312);
f(313,314,346,313,314,346);
f(346,345,313,346,345,313);
f(314,315,347,314,315,347);
f(347,346,314,347,346,314);
f(315,316,348,315,316,348);
f(348,347,315,348,347,315);
f(316,317,349,316,317,349);
f(349,348,316,349,348,316);
f(317,318,350,317,318,350);
f(350,349,317,350,349,317);
f(318,319,351,318,319,351);
f(351,350,318,351,350,318);
f(319,288,320,319,288,320);
f(320,351,319,320,351,319);
f(320,321,353,320,321,353);
f(353,352,320,353,352,320);
f(321,322,354,321,322,354);
f(354,353,321,354,353,321);
f(322,323,355,322,323,355);
f(355,354,322,355,354,322);
f(323,324,356,323,324,356);
f(356,355,323,356,355,323);
f(324,325,357,324,325,357);
f(357,356,324,357,356,324);
f(325,326,358,325,326,358);
f(358,357,325,358,357,325);
f(326,327,359,326,327,359);
f(359,358,326,359,358,326);
f(327,328,360,327,328,360);
f(360,359,327,360,359,327);
f(328,329,361,500,329,361);
f(361,360,328,361,501,500);
f(329,330,362,329,330,362);
f(362,361,329,362,361,329);
f(330,331,363,330,331,363);
f(363,362,330,363,362,330);
f(331,332,364,331,332,364);
f(364,363,331,364,363,331);
f(332,333,365,332,333,365);
f(365,364,332,365,364,332);
f(333,334,366,333,334,366);
f(366,365,333,366,365,333);
f(334,335,367,334,335,367);
f(367,366,334,367,366,334);
f(335,336,368,335,336,368);
f(368,367,335,368,367,335);
f(336,337,369,336,337,369);
f(369,368,336,369,368,336);
f(337,338,370,337,338,370);
f(370,369,337,370,369,337);
f(338,339,371,338,339,371);
f(371,370,338,371,370,338);
f(339,340,372,339,340,372);
f(372,371,339,372,371,339);
f(340,341,373,340,341,373);
f(373,372,340,373,372,340);
f(341,342,374,341,342,374);
f(374,373,341,374,373,341);
f(342,343,375,342,343,375);
f(375,374,342,375,374,342);
f(343,344,376,343,344,376);
f(376,375,343,376,375,343);
f(344,345,377,344,345,377);
f(377,376,344,377,376,344);
f(345,346,378,345,346,378);
f(378,377,345,378,377,345);
f(346,347,379,346,347,379);
f(379,378,346,379,378,346);
f(347,348,380,347,348,380);
f(380,379,347,380,379,347);
f(348,349,381,348,349,381);
f(381,380,348,381,380,348);
f(349,350,382,349,350,382);
f(382,381,349,382,381,349);
f(350,351,383,350,351,383);
f(383,382,350,383,382,350);
f(351,320,352,351,320,352);
f(352,383,351,352,383,351);
f(352,353,385,352,353,385);
f(385,384,352,385,384,352);
f(353,354,386,353,354,386);
f(386,385,353,386,385,353);
f(354,355,387,354,355,387);
f(387,386,354,387,386,354);
f(355,356,388,355,356,388);
f(388,387,355,388,387,355);
f(356,357,389,356,357,389);
f(389,388,356,389,388,356);
f(357,358,390,357,358,390);
f(390,389,357,390,389,357);
f(358,359,391,358,359,391);
f(391,390,358,391,390,358);
f(359,360,392,359,360,392);
f(392,391,359,392,391,359);
f(360,361,393,502,361,393);
f(393,392,360,393,503,502);
f(361,362,394,361,362,394);
f(394,393,361,394,393,361);
f(362,363,395,362,363,395);
f(395,394,362,395,394,362);
f(363,364,396,363,364,396);
f(396,395,363,396,395,363);
f(364,365,397,364,365,397);
f(397,396,364,397,396,364);
f(365,366,398,365,366,398);
f(398,397,365,398,397,365);
f(366,367,399,366,367,399);
f(399,398,366,399,398,366);
f(367,368,400,367,368,400);
f(400,399,367,400,399,367);
f(368,369,401,368,369,401);
f(401,400,368,401,400,368);
f(369,370,402,369,370,402);
f(402,401,369,402,401,369);
f(370,371,403,370,371,403);
f(403,402,370,403,402,370);
f(371,372,404,371,372,404);
f(404,403,371,404,403,371);
f(372,373,405,372,373,405);
f(405,404,372,405,404,372);
f(373,374,406,373,374,406);
f(406,405,373,406,405,373);
f(374,375,407,374,375,407);
f(407,406,374,407,406,374);
f(375,376,408,375,376,408);
f(408,407,375,408,407,375);
f(376,377,409,376,377,409);
f(409,408,376,409,408,376);
f(377,378,410,377,378,410);
f(410,409,377,410,409,377);
f(378,379,411,378,379,411);
f(411,410,378,411,410,378);
f(379,380,412,379,380,412);
f(412,411,379,412,411,379);
f(380,381,413,380,381,413);
f(413,412,380,413,412,380);
f(381,382,414,381,382,414);
f(414,413,381,414,413,381);
f(382,383,415,382,383,415);
f(415,414,382,415,414,382);
f(383,352,384,383,352,384);
f(384,415,383,384,415,383);
f(384,385,417,384,385,417);
f(417,416,384,417,416,384);
f(385,386,418,385,386,418);
f(418,417,385,418,417,385);
f(386,387,419,386,387,419);
f(419,418,386,419,418,386);
f(387,388,420,387,388,420);
f(420,419,387,420,419,387);
f(388,389,421,388,389,421);
f(421,420,388,421,420,388);
f(389,390,422,389,390,422);
f(422,421,389,422,421,389);
f(390,391,423,390,391,423);
f(423,422,390,423,422,390);
f(391,392,424,391,392,424);
f(424,423,391,424,423,391);
f(392,393,425,504,393,425);
f(425,424,392,425,505,504);
f(393,394,426,393,394,426);
f(426,425,393,426,425,393);
f(394,395,427,394,395,427);
f(427,426,394,427,426,394);
f(395,396,428,395,396,428);
f(428,427,395,428,427,395);
f(396,397,429,396,397,429);
f(429,428,396,429,428,396);
f(397,398,430,397,398,430);
f(430,429,397,430,429,397);
f(398,399,431,398,399,431);
f(431,430,398,431,430,398);
f(399,400,432,399,400,432);
f(432,431,399,432,431,399);
f(400,401,433,400,401,433);
f(433,432,400,433,432,400);
f(401,402,434,401,402,434);
f(434,433,401,434,433,401);
f(402,403,435,402,403,435);
f(435,434,402,435,434,402);
f(403,404,436,403,404,436);
f(436,435,403,436,435,403);
f(404,405,437,404,405,437);
f(437,436,404,437,436,404);
f(405,406,438,405,406,438);
f(438,437,405,438,437,405);
f(406,407,439,406,407,439);
f(439,438,406,439,438,406);
f(407,408,440,407,408,440);
f(440,439,407,440,439,407);
f(408,409,441,408,409,441);
f(441,440,408,441,440,408);
f(409,410,442,409,410,442);
f(442,441,409,442,441,409);
f(410,411,443,410,411,443);
f(443,442,410,443,442,410);
f(411,412,444,411,412,444);
f(444,443,411,444,443,411);
f(412,413,445,412,413,445);
f(445,444,412,445,444,412);
f(413,414,446,413,414,446);
f(446,445,413,446,445,413);
f(414,415,447,414,415,447);
f(447,446,414,447,446,414);
f(415,384,416,415,384,416);
f(416,447,415,416,447,415);
f(416,417,449,416,417,449);
f(449,448,416,449,448,416);
f(417,418,450,417,418,450);
f(450,449,417,450,449,417);
f(418,419,451,418,419,451);
f(451,450,418,451,450,418);
f(419,420,452,419,420,452);
f(452,451,419,452,451,419);
f(420,421,453,420,421,453);
f(453,452,420,453,452,420);
f(421,422,454,421,422,454);
f(454,453,421,454,453,421);
f(422,423,455,422,423,455);
f(455,454,422,455,454,422);
f(423,424,456,423,424,456);
f(456,455,423,456,455,423);
f(424,425,457,506,425,457);
f(457,456,424,457,507,506);
f(425,426,458,425,426,458);
f(458,457,425,458,457,425);
f(426,427,459,426,427,459);
f(459,458,426,459,458,426);
f(427,428,460,427,428,460);
f(460,459,427,460,459,427);
f(428,429,461,428,429,461);
f(461,460,428,461,460,428);
f(429,430,462,429,430,462);
f(462,461,429,462,461,429);
f(430,431,463,430,431,463);
f(463,462,430,463,462,430);
f(431,432,464,431,432,464);
f(464,463,431,464,463,431);
f(432,433,465,432,433,465);
f(465,464,432,465,464,432);
f(433,434,466,433,434,466);
f(466,465,433,466,465,433);
f(434,435,467,434,435,467);
f(467,466,434,467,466,434);
f(435,436,468,435,436,468);
f(468,467,435,468,467,435);
f(436,437,469,436,437,469);
f(469,468,436,469,468,436);
f(437,438,470,437,438,470);
f(470,469,437,470,469,437);
f(438,439,471,438,439,471);
f(471,470,438,471,470,438);
f(439,440,472,439,440,472);
f(472,471,439,472,471,439);
f(440,441,473,440,441,473);
f(473,472,440,473,472,440);
f(441,442,474,441,442,474);
f(474,473,441,474,473,441);
f(442,443,475,442,443,475);
f(475,474,442,475,474,442);
f(443,444,476,443,444,476);
f(476,475,443,476,475,443);
f(444,445,477,444,445,477);
f(477,476,444,477,476,444);
f(445,446,478,445,446,478);
f(478,477,445,478,477,445);
f(446,447,479,446,447,479);
f(479,478,446,479,478,446);
f(447,416,448,447,416,448);
f(448,479,447,448,479,447);
this.geometry.ready = true;
this.x = 0.0;
this.y = 0.0;
this.z = 0.0;
}
}