Working with polyhedrons

classic Classic list List threaded Threaded
28 messages Options
12
ds
Reply | Threaded
Open this post in threaded view
|

Working with polyhedrons

ds
I have been fiddling around with a bolt that is a series of polyhedrons that make up the shape. I haven't done a lot of work with polyhedrons, and subsequently ran into a problem that I haven't experienced before. While I am not totally satisfied with it yet, the image below shows an issue that I am not familiar with. The top bolt on the right end shows the end of the bolt prior to treatment. The lower bolt shows an attempt to taper the end by differencing an inverted cone. You can see in one sense, it works just fine, because the end tapers off. However, the polyhedrons that are partially differenced are losing some faces and so there is a jagged effect.

If we can ignore for the moment the wisdom of doing threads in the first place, is there a rule of thumb associated with polyhedrons and differencing that I might use as a guideline?

Thanks for any help you can give me.

Don Smiley



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

Peter Falke
Hard to say without looking at the code.
How did you make your threats?
Maybe the tip of the cone is clipping some control points that span the thread?

Oh, something to try: include the threads in a render() command before you difference the cone.

Maybe it is only a display problem with F5, see if F6 works correctly.
If yes, you may increase the convexity variable in some place (lin_extrude?)

By the way, I always wondered why difference() does not require a convexity parameter:
Creating an object with a hole should require convexity=2 to display correctly, doesn`t it?

Sincerely,

TakeItAndRun



2014-07-03 20:17 GMT+02:00 ds <[hidden email]>:
I have been fiddling around with a bolt that is a series of polyhedrons that make up the shape. I haven't done a lot of work with polyhedrons, and subsequently ran into a problem that I haven't experienced before. While I am not totally satisfied with it yet, the image below shows an issue that I am not familiar with. The top bolt on the right end shows the end of the bolt prior to treatment. The lower bolt shows an attempt to taper the end by differencing an inverted cone. You can see in one sense, it works just fine, because the end tapers off. However, the polyhedrons that are partially differenced are losing some faces and so there is a jagged effect.

If we can ignore for the moment the wisdom of doing threads in the first place, is there a rule of thumb associated with polyhedrons and differencing that I might use as a guideline?

Thanks for any help you can give me.

Don Smiley



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566



--
[hidden email]

P.S. Falls meine E-Mail kürzer ausfällt als Dir angenehm ist:
Ich probiere gerade aus kurze Antworten statt gar keine Antworten zu schreiben.
Wenn Du gerne mehr lesen möchtest, dann lass es mich bitte wissen.

P.S. In case my e-mail is shorter than you enjoy:
I am currently trying short replies instead of no replies at all.
Please let me know, if you like to read more.

Enjoy!

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
ds
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

ds
It is a little early to inflict the code on others, hence my more general question about issues rather than waste someone's time digging through bad code.

Actually, F6 does not yet work. My polyhedrons are a series of small joints and there well may be some overlapping or odd gaps. my thought process was to try to fix any errors seen in using F5, and then move to F6.

However, since all the polyhedrons were unioned together, I had assumed that difference would work, but perhaps that is not the case.

Thanks for thinking about the problem.

Don

On 07/03/2014 11:48 AM, Peter Falke wrote:
Hard to say without looking at the code.
How did you make your threats?
Maybe the tip of the cone is clipping some control points that span the thread?

Oh, something to try: include the threads in a render() command before you difference the cone.

Maybe it is only a display problem with F5, see if F6 works correctly.
If yes, you may increase the convexity variable in some place (lin_extrude?)

By the way, I always wondered why difference() does not require a convexity parameter:
Creating an object with a hole should require convexity=2 to display correctly, doesn`t it?

Sincerely,

TakeItAndRun



2014-07-03 20:17 GMT+02:00 ds <[hidden email]>:
I have been fiddling around with a bolt that is a series of polyhedrons that make up the shape. I haven't done a lot of work with polyhedrons, and subsequently ran into a problem that I haven't experienced before. While I am not totally satisfied with it yet, the image below shows an issue that I am not familiar with. The top bolt on the right end shows the end of the bolt prior to treatment. The lower bolt shows an attempt to taper the end by differencing an inverted cone. You can see in one sense, it works just fine, because the end tapers off. However, the polyhedrons that are partially differenced are losing some faces and so there is a jagged effect.

If we can ignore for the moment the wisdom of doing threads in the first place, is there a rule of thumb associated with polyhedrons and differencing that I might use as a guideline?

Thanks for any help you can give me.

Don Smiley



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566



--
[hidden email]

P.S. Falls meine E-Mail kürzer ausfällt als Dir angenehm ist:
Ich probiere gerade aus kurze Antworten statt gar keine Antworten zu schreiben.
Wenn Du gerne mehr lesen möchtest, dann lass es mich bitte wissen.

P.S. In case my e-mail is shorter than you enjoy:
I am currently trying short replies instead of no replies at all.
Please let me know, if you like to read more.

Enjoy!


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

Doug Mcnutt
In reply to this post by ds
At 11:17 -0700 7/3/14, ds wrote, and I snipped the picture:
>I have been fiddling around with a bolt that is a series of polyhedrons that make up the shape. I haven't done a lot of work with polyhedrons, and subsequently ran into a problem that I haven't experienced before. While I am not totally satisfied with it yet, the image below shows an issue that I am not familiar with. The top bolt on the right end shows the end of the bolt prior to treatment. The lower bolt shows an attempt to taper the end by differencing an inverted cone. You can see in one sense, it works just fine, because the end tapers off. However, the polyhedrons that are partially differenced are losing some faces and so there is a jagged effect.
>
>If we can ignore for the moment the wisdom of doing threads in the first place, is there a rule of thumb associated with polyhedrons and differencing that I might use as a guideline?

I'm just an interested visitor here but I am very interested in the use of rational numbers and problems with transcendental numbers like pi and integer divisions of 2*pi around a circle. Why don't binary computers use circle fractions as in a mariner's compass?

As your polyhedra and other items get  twisted around and subtracted from each other you are probably adding a value to a variable that represents a rotation in a plane and a linear offset along an axis perpendicular to that plane. OpenSCAD is almost surely creating a rotation matrix from the angles which involves computing sines and cosines.

But it's quite impossible to cut a circle into, say 40 from a guess about your picture, equal parts and get perfect sines and cosines.  Two times pi over 40 is not exactly representable either as a rational or as a floating double. When the sines and cosines are figured with "standard" techniques the sum of their squares is not exactly 1. Now making up a rotation matrix which will have rows like (cos(a), sin(a), 0) you should get an orthonormal matrix where the dot product of each vector with itself is 1 and with any other row is zero.

I have been playing with an alternative way to get the sines and cosines.  It involves choosing an octant of a circle and computing only sines of angles less than 45 degrees. After that the cosines are figured as the square root of 1 minus sin squared and magic is applied to get the signs right in all octants. One call produces the pair of results which could be approximated as rationals having the same divisor. When those are used to prepare rotation matrices they could be truly orthonormal.

Rotations that occur once in a while do not seem to be a problem. It's repeating rotations where I would expect difficulty. Those screws look a bit like what I have in mind. It would be interesting to see how the pictures vary when the number of polyhedra in a circle changes. Somebody must use iteration around a circle when the conical object is introduced. That could introduce another splitting number for the number of rotations to make up a full circle. Should both rotations have the same count of parts?

Using floating point preparation of a dual sin/cosine operation is trivial. With rationals, it's more difficult. Understanding what it means in an environment that handles adjustment of points in 3D space so that they remain on a simple grid makes it really painful. I think about it at night.
--

       Fe++
    //      \
Fe++          Fe++
  |           ||
Fe++          Fe++
   \\        /
       Fe++
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

szabi
In reply to this post by ds
With the assumption of 1 OpenSCAD unit corresponding to 1 mm, for almost all situations "double" precision should be enough for any real application and the errors coming from the irrational nature of pi or sqrt(2) unnoticable, even with several 1000 rotations applied.

An exception is with "coplanar" -- or due to rounding nearly coplanar -- faces, I guess.

Szelp, André Szabolcs

+43 (650) 79 22 400


On Thu, Jul 3, 2014 at 9:53 PM, Doug Mcnutt <[hidden email]> wrote:
At 11:17 -0700 7/3/14, ds wrote, and I snipped the picture:
>I have been fiddling around with a bolt that is a series of polyhedrons that make up the shape. I haven't done a lot of work with polyhedrons, and subsequently ran into a problem that I haven't experienced before. While I am not totally satisfied with it yet, the image below shows an issue that I am not familiar with. The top bolt on the right end shows the end of the bolt prior to treatment. The lower bolt shows an attempt to taper the end by differencing an inverted cone. You can see in one sense, it works just fine, because the end tapers off. However, the polyhedrons that are partially differenced are losing some faces and so there is a jagged effect.
>
>If we can ignore for the moment the wisdom of doing threads in the first place, is there a rule of thumb associated with polyhedrons and differencing that I might use as a guideline?

I'm just an interested visitor here but I am very interested in the use of rational numbers and problems with transcendental numbers like pi and integer divisions of 2*pi around a circle. Why don't binary computers use circle fractions as in a mariner's compass?

As your polyhedra and other items get  twisted around and subtracted from each other you are probably adding a value to a variable that represents a rotation in a plane and a linear offset along an axis perpendicular to that plane. OpenSCAD is almost surely creating a rotation matrix from the angles which involves computing sines and cosines.

But it's quite impossible to cut a circle into, say 40 from a guess about your picture, equal parts and get perfect sines and cosines.  Two times pi over 40 is not exactly representable either as a rational or as a floating double. When the sines and cosines are figured with "standard" techniques the sum of their squares is not exactly 1. Now making up a rotation matrix which will have rows like (cos(a), sin(a), 0) you should get an orthonormal matrix where the dot product of each vector with itself is 1 and with any other row is zero.

I have been playing with an alternative way to get the sines and cosines.  It involves choosing an octant of a circle and computing only sines of angles less than 45 degrees. After that the cosines are figured as the square root of 1 minus sin squared and magic is applied to get the signs right in all octants. One call produces the pair of results which could be approximated as rationals having the same divisor. When those are used to prepare rotation matrices they could be truly orthonormal.

Rotations that occur once in a while do not seem to be a problem. It's repeating rotations where I would expect difficulty. Those screws look a bit like what I have in mind. It would be interesting to see how the pictures vary when the number of polyhedra in a circle changes. Somebody must use iteration around a circle when the conical object is introduced. That could introduce another splitting number for the number of rotations to make up a full circle. Should both rotations have the same count of parts?

Using floating point preparation of a dual sin/cosine operation is trivial. With rationals, it's more difficult. Understanding what it means in an environment that handles adjustment of points in 3D space so that they remain on a simple grid makes it really painful. I think about it at night.
--

       Fe++
    //      \
Fe++          Fe++
  |           ||
Fe++          Fe++
   \\        /
       Fe++
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

Peter Falke
In reply to this post by ds
We do like to look at code, here. So dont feel shy :-)
And I personally learn a lot by looking at other peoples code.

But if you`re looking for general rules, I´d say:
Regularly look at F6 and always fix problems with it first.

Some problems (like non-manifold) only occur with F6 when the 3D structure is calculated.

F5 does not actually calculate a 3d object, it does a clever 2D projection of the basic primitives (cube,cylinder,sphere) that looks like a 3D picture to our eye.

Sincerely,
TakeItAndRun


2014-07-03 21:53 GMT+02:00 Doug Mcnutt <[hidden email]>:
At 11:17 -0700 7/3/14, ds wrote, and I snipped the picture:
>I have been fiddling around with a bolt that is a series of polyhedrons that make up the shape. I haven't done a lot of work with polyhedrons, and subsequently ran into a problem that I haven't experienced before. While I am not totally satisfied with it yet, the image below shows an issue that I am not familiar with. The top bolt on the right end shows the end of the bolt prior to treatment. The lower bolt shows an attempt to taper the end by differencing an inverted cone. You can see in one sense, it works just fine, because the end tapers off. However, the polyhedrons that are partially differenced are losing some faces and so there is a jagged effect.
>
>If we can ignore for the moment the wisdom of doing threads in the first place, is there a rule of thumb associated with polyhedrons and differencing that I might use as a guideline?

I'm just an interested visitor here but I am very interested in the use of rational numbers and problems with transcendental numbers like pi and integer divisions of 2*pi around a circle. Why don't binary computers use circle fractions as in a mariner's compass?

As your polyhedra and other items get  twisted around and subtracted from each other you are probably adding a value to a variable that represents a rotation in a plane and a linear offset along an axis perpendicular to that plane. OpenSCAD is almost surely creating a rotation matrix from the angles which involves computing sines and cosines.

But it's quite impossible to cut a circle into, say 40 from a guess about your picture, equal parts and get perfect sines and cosines.  Two times pi over 40 is not exactly representable either as a rational or as a floating double. When the sines and cosines are figured with "standard" techniques the sum of their squares is not exactly 1. Now making up a rotation matrix which will have rows like (cos(a), sin(a), 0) you should get an orthonormal matrix where the dot product of each vector with itself is 1 and with any other row is zero.

I have been playing with an alternative way to get the sines and cosines.  It involves choosing an octant of a circle and computing only sines of angles less than 45 degrees. After that the cosines are figured as the square root of 1 minus sin squared and magic is applied to get the signs right in all octants. One call produces the pair of results which could be approximated as rationals having the same divisor. When those are used to prepare rotation matrices they could be truly orthonormal.

Rotations that occur once in a while do not seem to be a problem. It's repeating rotations where I would expect difficulty. Those screws look a bit like what I have in mind. It would be interesting to see how the pictures vary when the number of polyhedra in a circle changes. Somebody must use iteration around a circle when the conical object is introduced. That could introduce another splitting number for the number of rotations to make up a full circle. Should both rotations have the same count of parts?

Using floating point preparation of a dual sin/cosine operation is trivial. With rationals, it's more difficult. Understanding what it means in an environment that handles adjustment of points in 3D space so that they remain on a simple grid makes it really painful. I think about it at night.
--

       Fe++
    //      \
Fe++          Fe++
  |           ||
Fe++          Fe++
   \\        /
       Fe++
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566



--
[hidden email]

P.S. Falls meine E-Mail kürzer ausfällt als Dir angenehm ist:
Ich probiere gerade aus kurze Antworten statt gar keine Antworten zu schreiben.
Wenn Du gerne mehr lesen möchtest, dann lass es mich bitte wissen.

P.S. In case my e-mail is shorter than you enjoy:
I am currently trying short replies instead of no replies at all.
Please let me know, if you like to read more.

Enjoy!

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

Marius Kintel
Another trick is to slim down your design until you can reproduce it with one or two polyhedrons. That would also help us a lot if you happened to find a bug.

 -Marius
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
ds
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

ds
Marius,

My assumption has been that the bugs are in my code rather than yours.  
I will see if I can cook up a small sample and be back later.

Don Smiley



On 07/03/2014 01:32 PM, Marius Kintel wrote:
> Another trick is to slim down your design until you can reproduce it with one or two polyhedrons. That would also help us a lot if you happened to find a bug.
>
>   -Marius
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad
> http://openscad.org - https://flattr.com/thing/121566

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

doug.moen
In reply to this post by ds
Doug said: "I am very interested in the use of rational numbers and
problems with transcendental numbers like pi and integer divisions of
2*pi around a circle. Why don't binary computers use circle fractions
as in a mariner's compass?"

If you're not already aware of this, check out:
http://en.wikipedia.org/wiki/Rational_trigonometry

However, I think the real problem with OpenSCAD is not the use of
transcendental numbers, but the fact that spheres, cylinders and cones
are represented by crude polyhedral approximations. When you build up
complex geometry by scaling, intersecting and differencing these
approximations, the errors accumulate, and the resulting meshes can
look really nasty.

It would be much better if we could find a way to represent these
curved objects using exact mathematical representations, rather than
polyhedral approximations.

The "implicit function" representation is one way to achieve this.
However, the ImplicitCAD project ran into problems. Their algorithm
for tesselating an object (to create an STL file) is very slow, and
produces bad looking meshes. A proposed solution to this problem is to
not use STL files as an intermediate object representation for 3D
printing. Instead, the slicer works directly on the implicit function
representation.

I think it's hard to justify the benefits of moving to an alternate 3D
printer toolchain if this is the only benefit. However, I've also been
reading about the MIT "OpenFab" project, and they've provided a much
more compelling reason to replace the toolchain. They have written
software to print multimaterial objects with continuously variable
material properties, with some pretty amazing results, and STL
absolutely sucks for this application: the files are monstrously huge
and take forever to generate and slice. Multimaterial 3D printing is
now cheap and easy to get into, but the software just doesn't exist
right now for pushing the hardware to its limits. The OpenFab 3D
printing architecture is a good fit for the requirements of an
"implicit function" version of OpenSCAD.

On 3 July 2014 15:53, Doug Mcnutt <[hidden email]> wrote:

> At 11:17 -0700 7/3/14, ds wrote, and I snipped the picture:
>>I have been fiddling around with a bolt that is a series of polyhedrons that make up the shape. I haven't done a lot of work with polyhedrons, and subsequently ran into a problem that I haven't experienced before. While I am not totally satisfied with it yet, the image below shows an issue that I am not familiar with. The top bolt on the right end shows the end of the bolt prior to treatment. The lower bolt shows an attempt to taper the end by differencing an inverted cone. You can see in one sense, it works just fine, because the end tapers off. However, the polyhedrons that are partially differenced are losing some faces and so there is a jagged effect.
>>
>>If we can ignore for the moment the wisdom of doing threads in the first place, is there a rule of thumb associated with polyhedrons and differencing that I might use as a guideline?
>
> I'm just an interested visitor here but I am very interested in the use of rational numbers and problems with transcendental numbers like pi and integer divisions of 2*pi around a circle. Why don't binary computers use circle fractions as in a mariner's compass?
>
> As your polyhedra and other items get  twisted around and subtracted from each other you are probably adding a value to a variable that represents a rotation in a plane and a linear offset along an axis perpendicular to that plane. OpenSCAD is almost surely creating a rotation matrix from the angles which involves computing sines and cosines.
>
> But it's quite impossible to cut a circle into, say 40 from a guess about your picture, equal parts and get perfect sines and cosines.  Two times pi over 40 is not exactly representable either as a rational or as a floating double. When the sines and cosines are figured with "standard" techniques the sum of their squares is not exactly 1. Now making up a rotation matrix which will have rows like (cos(a), sin(a), 0) you should get an orthonormal matrix where the dot product of each vector with itself is 1 and with any other row is zero.
>
> I have been playing with an alternative way to get the sines and cosines.  It involves choosing an octant of a circle and computing only sines of angles less than 45 degrees. After that the cosines are figured as the square root of 1 minus sin squared and magic is applied to get the signs right in all octants. One call produces the pair of results which could be approximated as rationals having the same divisor. When those are used to prepare rotation matrices they could be truly orthonormal.
>
> Rotations that occur once in a while do not seem to be a problem. It's repeating rotations where I would expect difficulty. Those screws look a bit like what I have in mind. It would be interesting to see how the pictures vary when the number of polyhedra in a circle changes. Somebody must use iteration around a circle when the conical object is introduced. That could introduce another splitting number for the number of rotations to make up a full circle. Should both rotations have the same count of parts?
>
> Using floating point preparation of a dual sin/cosine operation is trivial. With rationals, it's more difficult. Understanding what it means in an environment that handles adjustment of points in 3D space so that they remain on a simple grid makes it really painful. I think about it at night.
> --
>
>        Fe++
>     //      \
> Fe++          Fe++
>   |           ||
> Fe++          Fe++
>    \\        /
>        Fe++
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad
> http://openscad.org - https://flattr.com/thing/121566
>
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
tp3
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

tp3
doug.moen wrote
I think it's hard to justify the benefits of moving to an alternate 3D printer toolchain if this is the only benefit. However, I've also been reading about the MIT "OpenFab" project, and they've provided a much more compelling reason to replace the toolchain. They have written software to print multimaterial objects with continuously variable material properties, with some pretty amazing results, and STL absolutely sucks for this application: the files are monstrously huge and take forever to generate and slice. Multimaterial 3D printing is now cheap and easy to get into, but the software just doesn't exist right now for pushing the hardware to its limits. The OpenFab 3D printing architecture is a good fit for the requirements of an "implicit function" version of OpenSCAD.
Up to now that is still just a huge number of references to "Open" and some slides. It does sound quite interesting, but one of the slides does not make be very hopeful.

"Open sourcing the OpenFab API (BSD license) / Binary release of the fabricator and compiler"

Maybe I'm misreading that, but that sounds only the API will be BSD license, the actual code doing stuff will be just binary release.
-- Torsten
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

doug.moen
I've skimmed a bunch of the OpenFab papers, including the original
thesis, but I missed that. However, I've already concluded that they
won't be open sourcing anything. So we start from scratch and create
an open source project.

The basic idea is one that the ImplicitCad project has perhaps already
had. Instead of creating a device independent STL file as an
intermediate step between the modeller and the slicer, you instead
create a software pipeline where data flows in two directions between
the modeller and the slicer/gcode generator. There is a standardized
API that connects the two (I'm thinking it should be a network
protocol), and you voxelize the model one slice at a time. The API
allows for multiple modelling engines and multiple gcode generators to
talk to one another. The dataflow pipeline approach means you don't to
keep more than one slice in memory at a time. Also, you get rid of the
big pause while you wait for the slicer to run before the printer can
start.

The other idea that OpenFab has is that there is a function that maps
(x, y, z) onto a material type, and this function is queried when the
model is being voxelized. There are a lot of specific details about
how they implement this (fablets) that we might not be interested in
exactly duplicating.

On 3 July 2014 17:14, tp3 <[hidden email]> wrote:

> doug.moen wrote
>> I think it's hard to justify the benefits of moving to an alternate 3D
>> printer toolchain if this is the only benefit. However, I've also been
>> reading about the MIT "OpenFab" project, and they've provided a much more
>> compelling reason to replace the toolchain. They have written software to
>> print multimaterial objects with continuously variable material
>> properties, with some pretty amazing results, and STL absolutely sucks for
>> this application: the files are monstrously huge and take forever to
>> generate and slice. Multimaterial 3D printing is now cheap and easy to get
>> into, but the software just doesn't exist right now for pushing the
>> hardware to its limits. The OpenFab 3D printing architecture is a good fit
>> for the requirements of an "implicit function" version of OpenSCAD.
>
> Up to now that is still just a huge number of references to "Open" and some
> slides. It does sound quite interesting, but one of the slides does not make
> be very hopeful.
>
> "Open sourcing the OpenFab API (BSD license) / Binary release of the
> fabricator and compiler"
>
> Maybe I'm misreading that, but that sounds only the API will be BSD license,
> the actual code doing stuff will be just binary release.
>
>
>
>
> -----
> -- Torsten
> --
> View this message in context: http://forum.openscad.org/Working-with-polyhedrons-tp8946p8955.html
> Sent from the OpenSCAD mailing list archive at Nabble.com.
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad
> http://openscad.org - https://flattr.com/thing/121566
>
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

MichaelAtOz
Administrator
Peter Falke wrote
We do like to look at code, here. So dont feel shy :-)
...
Regularly look at F6 and always fix problems with it first.
+1


doug.moen wrote
Multimaterial 3D printing is now cheap and easy to get into
What's your definition of 'cheap' & what machine(s) are examples?
Admin - email* me if you need anything,
or if I've done something stupid...
* click on my MichaelAtOz label, there is a link to email me.

Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent possible under law, I have waived all copyright and related or neighbouring rights to this work.
Obviously inclusion of works of previous authors is not included in the above.


The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ time is running out!
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

doug.moen
>> Multimaterial 3D printing is now cheap and easy to get into

> What's your definition of 'cheap' & what machine(s) are examples?

You can get a decent quality dual printhead FDM printer, preassembled,
for $1000 in Canada, less if you build it yourself. PLA + NinjaFlex
are an interesting combination of materials; I've seen some
interesting demos of this at my makerspace (Kwartzlab). One of our
members is selling a 5 head FDM printer (google RoVa3D).

Even with only one printhead, there is interesting work that can be
done in printing objects made of metamaterials, where you generate a
complex repeating structure at the limits of the printer's resolution
to create some interesting material properties.

On 3 July 2014 18:31, MichaelAtOz <[hidden email]> wrote:

> Peter Falke wrote
>> We do like to look at code, here. So dont feel shy :-)
>> ...
>> Regularly look at F6 and always fix problems with it first.
>
> +1
>
>
>
> doug.moen wrote
>> Multimaterial 3D printing is now cheap and easy to get into
>
> What's your definition of 'cheap' & what machine(s) are examples?
>
>
>
>
> --
> View this message in context: http://forum.openscad.org/Working-with-polyhedrons-tp8946p8957.html
> Sent from the OpenSCAD mailing list archive at Nabble.com.
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad
> http://openscad.org - https://flattr.com/thing/121566
>
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

runsun
In reply to this post by doug.moen
@doug.moen:

Thank you very much for introducing this :

If you're not already aware of this, check out:
http://en.wikipedia.org/wiki/Rational_trigonometry


$ Runsun Pan, PhD
$ libs: scadx, doctest, faces(git), offline doc(git), runscad.py(2,git), editor of choice: CudaText ( OpenSCAD lexer); $ Tips; $ Snippets
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

szabi
In reply to this post by doug.moen
I definitel like the implicit function representation, as put forward earlier.

Szelp, André Szabolcs

+43 (650) 79 22 400


On Thu, Jul 3, 2014 at 10:44 PM, doug moen <[hidden email]> wrote:
Doug said: "I am very interested in the use of rational numbers and
problems with transcendental numbers like pi and integer divisions of
2*pi around a circle. Why don't binary computers use circle fractions
as in a mariner's compass?"

If you're not already aware of this, check out:
http://en.wikipedia.org/wiki/Rational_trigonometry

However, I think the real problem with OpenSCAD is not the use of
transcendental numbers, but the fact that spheres, cylinders and cones
are represented by crude polyhedral approximations. When you build up
complex geometry by scaling, intersecting and differencing these
approximations, the errors accumulate, and the resulting meshes can
look really nasty.

It would be much better if we could find a way to represent these
curved objects using exact mathematical representations, rather than
polyhedral approximations.

The "implicit function" representation is one way to achieve this.
However, the ImplicitCAD project ran into problems. Their algorithm
for tesselating an object (to create an STL file) is very slow, and
produces bad looking meshes. A proposed solution to this problem is to
not use STL files as an intermediate object representation for 3D
printing. Instead, the slicer works directly on the implicit function
representation.

I think it's hard to justify the benefits of moving to an alternate 3D
printer toolchain if this is the only benefit. However, I've also been
reading about the MIT "OpenFab" project, and they've provided a much
more compelling reason to replace the toolchain. They have written
software to print multimaterial objects with continuously variable
material properties, with some pretty amazing results, and STL
absolutely sucks for this application: the files are monstrously huge
and take forever to generate and slice. Multimaterial 3D printing is
now cheap and easy to get into, but the software just doesn't exist
right now for pushing the hardware to its limits. The OpenFab 3D
printing architecture is a good fit for the requirements of an
"implicit function" version of OpenSCAD.

On 3 July 2014 15:53, Doug Mcnutt <[hidden email]> wrote:
> At 11:17 -0700 7/3/14, ds wrote, and I snipped the picture:
>>I have been fiddling around with a bolt that is a series of polyhedrons that make up the shape. I haven't done a lot of work with polyhedrons, and subsequently ran into a problem that I haven't experienced before. While I am not totally satisfied with it yet, the image below shows an issue that I am not familiar with. The top bolt on the right end shows the end of the bolt prior to treatment. The lower bolt shows an attempt to taper the end by differencing an inverted cone. You can see in one sense, it works just fine, because the end tapers off. However, the polyhedrons that are partially differenced are losing some faces and so there is a jagged effect.
>>
>>If we can ignore for the moment the wisdom of doing threads in the first place, is there a rule of thumb associated with polyhedrons and differencing that I might use as a guideline?
>
> I'm just an interested visitor here but I am very interested in the use of rational numbers and problems with transcendental numbers like pi and integer divisions of 2*pi around a circle. Why don't binary computers use circle fractions as in a mariner's compass?
>
> As your polyhedra and other items get  twisted around and subtracted from each other you are probably adding a value to a variable that represents a rotation in a plane and a linear offset along an axis perpendicular to that plane. OpenSCAD is almost surely creating a rotation matrix from the angles which involves computing sines and cosines.
>
> But it's quite impossible to cut a circle into, say 40 from a guess about your picture, equal parts and get perfect sines and cosines.  Two times pi over 40 is not exactly representable either as a rational or as a floating double. When the sines and cosines are figured with "standard" techniques the sum of their squares is not exactly 1. Now making up a rotation matrix which will have rows like (cos(a), sin(a), 0) you should get an orthonormal matrix where the dot product of each vector with itself is 1 and with any other row is zero.
>
> I have been playing with an alternative way to get the sines and cosines.  It involves choosing an octant of a circle and computing only sines of angles less than 45 degrees. After that the cosines are figured as the square root of 1 minus sin squared and magic is applied to get the signs right in all octants. One call produces the pair of results which could be approximated as rationals having the same divisor. When those are used to prepare rotation matrices they could be truly orthonormal.
>
> Rotations that occur once in a while do not seem to be a problem. It's repeating rotations where I would expect difficulty. Those screws look a bit like what I have in mind. It would be interesting to see how the pictures vary when the number of polyhedra in a circle changes. Somebody must use iteration around a circle when the conical object is introduced. That could introduce another splitting number for the number of rotations to make up a full circle. Should both rotations have the same count of parts?
>
> Using floating point preparation of a dual sin/cosine operation is trivial. With rationals, it's more difficult. Understanding what it means in an environment that handles adjustment of points in 3D space so that they remain on a simple grid makes it really painful. I think about it at night.
> --
>
>        Fe++
>     //      \
> Fe++          Fe++
>   |           ||
> Fe++          Fe++
>    \\        /
>        Fe++
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad
> http://openscad.org - https://flattr.com/thing/121566
>
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
tp3
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

tp3
In reply to this post by doug.moen
doug.moen wrote
The dataflow pipeline approach means you don't to keep more than one slice in memory at a time. Also, you get rid of the big pause while you wait for the slicer to run before the printer can start.
Who will generate support structures then? A slicer that is just looking at single slices has no way to generate any useful support structure. Lots of other features like "combine infill layers" or "spiralize" are impossible when looking at a single layer. I think it's possible to get those back with a pipeline step that caches something like the last 2 or 3 layers and then post processes the data.
I guess the main point is: Writing a slicer that is doing a good job *in general* is very hard. Looking at the two main open source slicers that are mostly one man projects, they are doing an impressive job.
-- Torsten
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

doug.moen
The current 3D printing pipeline uses an STL file as the interface
between the modelling program and the slicer. The slicer is a complex
program that, broadly speaking, is responsible for:

 1. Assembling geometric information from multiple sources, and
specifying the final detailed geometry of the material that is to be
printed. These sources are: the STL file, parameters for generating
support material, parameters for specifying the interior of the object
(hull thickness, infill percentage, infill pattern), and so on.

 2. Planning the movements of the printheads and the extruders.
Generating gcode, etc.

I want to have more flexibility in the assembly process.
 * Models don't have to be polygon meshes, they can be implicit functions.
 * I can combine a 3D model (like the Yoda head) with a procedurally
generated solid 3D texture (eg, marble or agate) that is written by
somebody else and maybe distributed on Thingiverse. Then print this on
a 2 colour FDM printer.
 * I can replace the standard internal structure of a printed 3D model
(hull + honeycomb infill) with a procedurally generated internal
structure, like a high resolution octet lattice, or the sponge
structure shown the OpenFab papers. I can specify these 'metamaterial'
structures in a high level OpenSCAD-like language.

But I don't want to make slicers even more complicated in the process
of supporting this extra flexibility. Maybe we should split the slicer
into two parts: separate the assembler (#1) from the planner/printer
driver (#2), so that these are separate components, possibly written
by different authors, communicating with each other using a
standardized interface.

The slicing would happen at the interface between the assembler and
the printer driver.

The assembler would not be entirely device independent. It would need
to receive device parameters from the printer driver, such as the
layer height and the number of materials/printheads supported. And
this device information can be made available to scripts that
procedural generate finely detailed internal structures, like the
marble 'solid texture' script, or the octet lattice script.

How would 'spiralize' be implemented? In Cura, the Spiralize option
disables infill. With the above architecture, maybe Spiralize is an
option in the device driver that takes each layer provided by the
assembler, computes the outline of the object at that layer, then
converts a series of outlines into a spiral path. Like what Torsten
suggested.

Support structures belong in the assembler. There is more than one
support structure algorithm, and this architecture ought to make it
possible for someone to implement a new support generation algorithm
and distribute it on Thingiverse or whatever.

Doug Moen.

On 4 July 2014 04:21, tp3 <[hidden email]> wrote:

> doug.moen wrote
>> The dataflow pipeline approach means you don't to keep more than one slice
>> in memory at a time. Also, you get rid of the big pause while you wait for
>> the slicer to run before the printer can start.
>
> Who will generate support structures then? A slicer that is just looking at
> single slices has no way to generate any useful support structure. Lots of
> other features like "combine infill layers" or "spiralize" are impossible
> when looking at a single layer. I think it's possible to get those back with
> a pipeline step that caches something like the last 2 or 3 layers and then
> post processes the data.
> I guess the main point is: Writing a slicer that is doing a good job *in
> general* is very hard. Looking at the two main open source slicers that are
> mostly one man projects, they are doing an impressive job.
>
>
>
> -----
> -- Torsten
> --
> View this message in context: http://forum.openscad.org/Working-with-polyhedrons-tp8946p8961.html
> Sent from the OpenSCAD mailing list archive at Nabble.com.
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad
> http://openscad.org - https://flattr.com/thing/121566
>
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
ds
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

ds
In reply to this post by ds
Ok, I have had a chance to reflect on my wayward life, and I made some
changes
to my approach and thought I would show you my results.

First of all, I concluded that making up a series of polyhedrons like
little
segments on a thread was inherently wasteful, because each segment was
backed
up directly against the previous one. That meant that OpenScad was
computing
two faces per segment that were touching each other. Then, segments were
all
being unioned together anyway. So, making one large polyhedron that
represented
the threading seemed like a smarter way to go.

Then, having concluded that my original approach of computing one little
polyhedron segment in a module repeatedly was ineffective, I wanted to
generate
lists of points and faces that represent the full polyhedron. While it
may be
technically possible to do this using OpenScad, I concluded that it
would be
much easier for me to write in another language and then just plop the
completed polyhedron threading into OpenScad.

Note that I didn't worry about the thread profile, I was trying to just get
something that spiraled cleanly.

And, listening to suggestions that I load up the code, I include here a
short
version. This version looks odd with F5, but straightens out with F6

It consists of a polyhedron thread unioned with a cylinder core. Then,
one end
has an inverted cone differenced from it to simulate a chamfer at the
end of
the screw.

Code from here down:

$fn=48;

difference() {

   union() {

     polyhedron(
       points=[
         [4.0, 0.0, 1.54],
         [4.0, 0.0, 0.3733],
         [6.0, 0.0, 1.54],
         [6.0, 0.0, 0.3733],
         [3.9658, 0.5221, 1.6025],
         [3.9658, 0.5221, 0.4358],
         [5.9487, 0.7832, 1.6025],
         [5.9487, 0.7832, 0.4358],
         [3.8637, 1.0353, 1.665],
         [3.8637, 1.0353, 0.4983],
         [5.7956, 1.5529, 1.665],
         [5.7956, 1.5529, 0.4983],
         [3.6955, 1.5307, 1.7275],
         [3.6955, 1.5307, 0.5608],
         [5.5433, 2.2961, 1.7275],
         [5.5433, 2.2961, 0.5608],
         [3.4641, 2.0, 1.79],
         [3.4641, 2.0, 0.6233],
         [5.1962, 3.0, 1.79],
         [5.1962, 3.0, 0.6233],
         [3.1734, 2.435, 1.8525],
         [3.1734, 2.435, 0.6858],
         [4.7601, 3.6526, 1.8525],
         [4.7601, 3.6526, 0.6858],
         [2.8284, 2.8284, 1.915],
         [2.8284, 2.8284, 0.7483],
         [4.2426, 4.2426, 1.915],
         [4.2426, 4.2426, 0.7483],
         [2.435, 3.1734, 1.9775],
         [2.435, 3.1734, 0.8108],
         [3.6526, 4.7601, 1.9775],
         [3.6526, 4.7601, 0.8108],
         [2.0, 3.4641, 2.04],
         [2.0, 3.4641, 0.8733],
         [3.0, 5.1962, 2.04],
         [3.0, 5.1962, 0.8733],
         [1.5307, 3.6955, 2.1025],
         [1.5307, 3.6955, 0.9358],
         [2.2961, 5.5433, 2.1025],
         [2.2961, 5.5433, 0.9358],
         [1.0353, 3.8637, 2.165],
         [1.0353, 3.8637, 0.9983],
         [1.5529, 5.7956, 2.165],
         [1.5529, 5.7956, 0.9983],
         [0.5221, 3.9658, 2.2275],
         [0.5221, 3.9658, 1.0608],
         [0.7832, 5.9487, 2.2275],
         [0.7832, 5.9487, 1.0608],
         [0.0, 4.0, 2.29],
         [0.0, 4.0, 1.1233],
         [0.0, 6.0, 2.29],
         [0.0, 6.0, 1.1233],
         [-0.5221, 3.9658, 2.3525],
         [-0.5221, 3.9658, 1.1858],
         [-0.7832, 5.9487, 2.3525],
         [-0.7832, 5.9487, 1.1858],
         [-1.0353, 3.8637, 2.415],
         [-1.0353, 3.8637, 1.2483],
         [-1.5529, 5.7956, 2.415],
         [-1.5529, 5.7956, 1.2483],
         [-1.5307, 3.6955, 2.4775],
         [-1.5307, 3.6955, 1.3108],
         [-2.2961, 5.5433, 2.4775],
         [-2.2961, 5.5433, 1.3108],
         [-2.0, 3.4641, 2.54],
         [-2.0, 3.4641, 1.3733],
         [-3.0, 5.1962, 2.54],
         [-3.0, 5.1962, 1.3733],
         [-2.435, 3.1734, 2.6025],
         [-2.435, 3.1734, 1.4358],
         [-3.6526, 4.7601, 2.6025],
         [-3.6526, 4.7601, 1.4358],
         [-2.8284, 2.8284, 2.665],
         [-2.8284, 2.8284, 1.4983],
         [-4.2426, 4.2426, 2.665],
         [-4.2426, 4.2426, 1.4983],
         [-3.1734, 2.435, 2.7275],
         [-3.1734, 2.435, 1.5608],
         [-4.7601, 3.6526, 2.7275],
         [-4.7601, 3.6526, 1.5608],
         [-3.4641, 2.0, 2.79],
         [-3.4641, 2.0, 1.6233],
         [-5.1962, 3.0, 2.79],
         [-5.1962, 3.0, 1.6233],
         [-3.6955, 1.5307, 2.8525],
         [-3.6955, 1.5307, 1.6858],
         [-5.5433, 2.2961, 2.8525],
         [-5.5433, 2.2961, 1.6858],
         [-3.8637, 1.0353, 2.915],
         [-3.8637, 1.0353, 1.7483],
         [-5.7956, 1.5529, 2.915],
         [-5.7956, 1.5529, 1.7483],
         [-3.9658, 0.5221, 2.9775],
         [-3.9658, 0.5221, 1.8108],
         [-5.9487, 0.7832, 2.9775],
         [-5.9487, 0.7832, 1.8108],
         [-4.0, 0.0, 3.04],
         [-4.0, 0.0, 1.8733],
         [-6.0, 0.0, 3.04],
         [-6.0, 0.0, 1.8733],
         [-3.9658, -0.5221, 3.1025],
         [-3.9658, -0.5221, 1.9358],
         [-5.9487, -0.7832, 3.1025],
         [-5.9487, -0.7832, 1.9358],
         [-3.8637, -1.0353, 3.165],
         [-3.8637, -1.0353, 1.9983],
         [-5.7956, -1.5529, 3.165],
         [-5.7956, -1.5529, 1.9983],
         [-3.6955, -1.5307, 3.2275],
         [-3.6955, -1.5307, 2.0608],
         [-5.5433, -2.2961, 3.2275],
         [-5.5433, -2.2961, 2.0608],
         [-3.4641, -2.0, 3.29],
         [-3.4641, -2.0, 2.1233],
         [-5.1962, -3.0, 3.29],
         [-5.1962, -3.0, 2.1233],
         [-3.1734, -2.435, 3.3525],
         [-3.1734, -2.435, 2.1858],
         [-4.7601, -3.6526, 3.3525],
         [-4.7601, -3.6526, 2.1858],
         [-2.8284, -2.8284, 3.415],
         [-2.8284, -2.8284, 2.2483],
         [-4.2426, -4.2426, 3.415],
         [-4.2426, -4.2426, 2.2483],
         [-2.435, -3.1734, 3.4775],
         [-2.435, -3.1734, 2.3108],
         [-3.6526, -4.7601, 3.4775],
         [-3.6526, -4.7601, 2.3108],
         [-2.0, -3.4641, 3.54],
         [-2.0, -3.4641, 2.3733],
         [-3.0, -5.1962, 3.54],
         [-3.0, -5.1962, 2.3733],
         [-1.5307, -3.6955, 3.6025],
         [-1.5307, -3.6955, 2.4358],
         [-2.2961, -5.5433, 3.6025],
         [-2.2961, -5.5433, 2.4358],
         [-1.0353, -3.8637, 3.665],
         [-1.0353, -3.8637, 2.4983],
         [-1.5529, -5.7956, 3.665],
         [-1.5529, -5.7956, 2.4983],
         [-0.5221, -3.9658, 3.7275],
         [-0.5221, -3.9658, 2.5608],
         [-0.7832, -5.9487, 3.7275],
         [-0.7832, -5.9487, 2.5608],
         [-0.0, -4.0, 3.79],
         [-0.0, -4.0, 2.6233],
         [-0.0, -6.0, 3.79],
         [-0.0, -6.0, 2.6233],
         [0.5221, -3.9658, 3.8525],
         [0.5221, -3.9658, 2.6858],
         [0.7832, -5.9487, 3.8525],
         [0.7832, -5.9487, 2.6858],
         [1.0353, -3.8637, 3.915],
         [1.0353, -3.8637, 2.7483],
         [1.5529, -5.7956, 3.915],
         [1.5529, -5.7956, 2.7483],
         [1.5307, -3.6955, 3.9775],
         [1.5307, -3.6955, 2.8108],
         [2.2961, -5.5433, 3.9775],
         [2.2961, -5.5433, 2.8108],
         [2.0, -3.4641, 4.04],
         [2.0, -3.4641, 2.8733],
         [3.0, -5.1962, 4.04],
         [3.0, -5.1962, 2.8733],
         [2.435, -3.1734, 4.1025],
         [2.435, -3.1734, 2.9358],
         [3.6526, -4.7601, 4.1025],
         [3.6526, -4.7601, 2.9358],
         [2.8284, -2.8284, 4.165],
         [2.8284, -2.8284, 2.9983],
         [4.2426, -4.2426, 4.165],
         [4.2426, -4.2426, 2.9983],
         [3.1734, -2.435, 4.2275],
         [3.1734, -2.435, 3.0608],
         [4.7601, -3.6526, 4.2275],
         [4.7601, -3.6526, 3.0608],
         [3.4641, -2.0, 4.29],
         [3.4641, -2.0, 3.1233],
         [5.1962, -3.0, 4.29],
         [5.1962, -3.0, 3.1233],
         [3.6955, -1.5307, 4.3525],
         [3.6955, -1.5307, 3.1858],
         [5.5433, -2.2961, 4.3525],
         [5.5433, -2.2961, 3.1858],
         [3.8637, -1.0353, 4.415],
         [3.8637, -1.0353, 3.2483],
         [5.7956, -1.5529, 4.415],
         [5.7956, -1.5529, 3.2483],
         [3.9658, -0.5221, 4.4775],
         [3.9658, -0.5221, 3.3108],
         [5.9487, -0.7832, 4.4775],
         [5.9487, -0.7832, 3.3108],
         [4.0, -0.0, 4.54],
         [4.0, -0.0, 3.3733],
         [6.0, -0.0, 4.54],
         [6.0, -0.0, 3.3733],
         [3.9658, 0.5221, 4.6025],
         [3.9658, 0.5221, 3.4358],
         [5.9487, 0.7832, 4.6025],
         [5.9487, 0.7832, 3.4358],
         [3.8637, 1.0353, 4.665],
         [3.8637, 1.0353, 3.4983],
         [5.7956, 1.5529, 4.665],
         [5.7956, 1.5529, 3.4983],
         [3.6955, 1.5307, 4.7275],
         [3.6955, 1.5307, 3.5608],
         [5.5433, 2.2961, 4.7275],
         [5.5433, 2.2961, 3.5608],
         [3.4641, 2.0, 4.79],
         [3.4641, 2.0, 3.6233],
         [5.1962, 3.0, 4.79],
         [5.1962, 3.0, 3.6233],
         [3.1734, 2.435, 4.8525],
         [3.1734, 2.435, 3.6858],
         [4.7601, 3.6526, 4.8525],
         [4.7601, 3.6526, 3.6858],
         [2.8284, 2.8284, 4.915],
         [2.8284, 2.8284, 3.7483],
         [4.2426, 4.2426, 4.915],
         [4.2426, 4.2426, 3.7483],
         [2.435, 3.1734, 4.9775],
         [2.435, 3.1734, 3.8108],
         [3.6526, 4.7601, 4.9775],
         [3.6526, 4.7601, 3.8108],
         [2.0, 3.4641, 5.04],
         [2.0, 3.4641, 3.8733],
         [3.0, 5.1962, 5.04],
         [3.0, 5.1962, 3.8733],
         [1.5307, 3.6955, 5.1025],
         [1.5307, 3.6955, 3.9358],
         [2.2961, 5.5433, 5.1025],
         [2.2961, 5.5433, 3.9358],
         [1.0353, 3.8637, 5.165],
         [1.0353, 3.8637, 3.9983],
         [1.5529, 5.7956, 5.165],
         [1.5529, 5.7956, 3.9983],
         [0.5221, 3.9658, 5.2275],
         [0.5221, 3.9658, 4.0608],
         [0.7832, 5.9487, 5.2275],
         [0.7832, 5.9487, 4.0608],
         [0.0, 4.0, 5.29],
         [0.0, 4.0, 4.1233],
         [0.0, 6.0, 5.29],
         [0.0, 6.0, 4.1233],
         [-0.5221, 3.9658, 5.3525],
         [-0.5221, 3.9658, 4.1858],
         [-0.7832, 5.9487, 5.3525],
         [-0.7832, 5.9487, 4.1858],
         [-1.0353, 3.8637, 5.415],
         [-1.0353, 3.8637, 4.2483],
         [-1.5529, 5.7956, 5.415],
         [-1.5529, 5.7956, 4.2483],
         [-1.5307, 3.6955, 5.4775],
         [-1.5307, 3.6955, 4.3108],
         [-2.2961, 5.5433, 5.4775],
         [-2.2961, 5.5433, 4.3108],
         [-2.0, 3.4641, 5.54],
         [-2.0, 3.4641, 4.3733],
         [-3.0, 5.1962, 5.54],
         [-3.0, 5.1962, 4.3733],
         [-2.435, 3.1734, 5.6025],
         [-2.435, 3.1734, 4.4358],
         [-3.6526, 4.7601, 5.6025],
         [-3.6526, 4.7601, 4.4358],
         [-2.8284, 2.8284, 5.665],
         [-2.8284, 2.8284, 4.4983],
         [-4.2426, 4.2426, 5.665],
         [-4.2426, 4.2426, 4.4983],
         [-3.1734, 2.435, 5.7275],
         [-3.1734, 2.435, 4.5608],
         [-4.7601, 3.6526, 5.7275],
         [-4.7601, 3.6526, 4.5608],
         [-3.4641, 2.0, 5.79],
         [-3.4641, 2.0, 4.6233],
         [-5.1962, 3.0, 5.79],
         [-5.1962, 3.0, 4.6233],
         [-3.6955, 1.5307, 5.8525],
         [-3.6955, 1.5307, 4.6858],
         [-5.5433, 2.2961, 5.8525],
         [-5.5433, 2.2961, 4.6858],
         [-3.8637, 1.0353, 5.915],
         [-3.8637, 1.0353, 4.7483],
         [-5.7956, 1.5529, 5.915],
         [-5.7956, 1.5529, 4.7483],
         [-3.9658, 0.5221, 5.9775],
         [-3.9658, 0.5221, 4.8108],
         [-5.9487, 0.7832, 5.9775],
         [-5.9487, 0.7832, 4.8108],
         [-4.0, 0.0, 6.04],
         [-4.0, 0.0, 4.8733],
         [-6.0, 0.0, 6.04],
         [-6.0, 0.0, 4.8733],
         [-3.9658, -0.5221, 6.1025],
         [-3.9658, -0.5221, 4.9358],
         [-5.9487, -0.7832, 6.1025],
         [-5.9487, -0.7832, 4.9358],
         [-3.8637, -1.0353, 6.165],
         [-3.8637, -1.0353, 4.9983],
         [-5.7956, -1.5529, 6.165],
         [-5.7956, -1.5529, 4.9983],
         [-3.6955, -1.5307, 6.2275],
         [-3.6955, -1.5307, 5.0608],
         [-5.5433, -2.2961, 6.2275],
         [-5.5433, -2.2961, 5.0608],
         [-3.4641, -2.0, 6.29],
         [-3.4641, -2.0, 5.1233],
         [-5.1962, -3.0, 6.29],
         [-5.1962, -3.0, 5.1233],
         [-3.1734, -2.435, 6.3525],
         [-3.1734, -2.435, 5.1858],
         [-4.7601, -3.6526, 6.3525],
         [-4.7601, -3.6526, 5.1858],
         [-2.8284, -2.8284, 6.415],
         [-2.8284, -2.8284, 5.2483],
         [-4.2426, -4.2426, 6.415],
         [-4.2426, -4.2426, 5.2483],
         [-2.435, -3.1734, 6.4775],
         [-2.435, -3.1734, 5.3108],
         [-3.6526, -4.7601, 6.4775],
         [-3.6526, -4.7601, 5.3108],
         [-2.0, -3.4641, 6.54],
         [-2.0, -3.4641, 5.3733],
         [-3.0, -5.1962, 6.54],
         [-3.0, -5.1962, 5.3733],
         [-1.5307, -3.6955, 6.6025],
         [-1.5307, -3.6955, 5.4358],
         [-2.2961, -5.5433, 6.6025],
         [-2.2961, -5.5433, 5.4358],
         [-1.0353, -3.8637, 6.665],
         [-1.0353, -3.8637, 5.4983],
         [-1.5529, -5.7956, 6.665],
         [-1.5529, -5.7956, 5.4983],
         [-0.5221, -3.9658, 6.7275],
         [-0.5221, -3.9658, 5.5608],
         [-0.7832, -5.9487, 6.7275],
         [-0.7832, -5.9487, 5.5608],
         [-0.0, -4.0, 6.79],
         [-0.0, -4.0, 5.6233],
         [-0.0, -6.0, 6.79],
         [-0.0, -6.0, 5.6233],
         [0.5221, -3.9658, 6.8525],
         [0.5221, -3.9658, 5.6858],
         [0.7832, -5.9487, 6.8525],
         [0.7832, -5.9487, 5.6858],
         [1.0353, -3.8637, 6.915],
         [1.0353, -3.8637, 5.7483],
         [1.5529, -5.7956, 6.915],
         [1.5529, -5.7956, 5.7483],
         [1.5307, -3.6955, 6.9775],
         [1.5307, -3.6955, 5.8108],
         [2.2961, -5.5433, 6.9775],
         [2.2961, -5.5433, 5.8108],
         [2.0, -3.4641, 7.04],
         [2.0, -3.4641, 5.8733],
         [3.0, -5.1962, 7.04],
         [3.0, -5.1962, 5.8733],
         [2.435, -3.1734, 7.1025],
         [2.435, -3.1734, 5.9358],
         [3.6526, -4.7601, 7.1025],
         [3.6526, -4.7601, 5.9358],
         [2.8284, -2.8284, 7.165],
         [2.8284, -2.8284, 5.9983],
         [4.2426, -4.2426, 7.165],
         [4.2426, -4.2426, 5.9983],
         [3.1734, -2.435, 7.2275],
         [3.1734, -2.435, 6.0608],
         [4.7601, -3.6526, 7.2275],
         [4.7601, -3.6526, 6.0608],
         [3.4641, -2.0, 7.29],
         [3.4641, -2.0, 6.1233],
         [5.1962, -3.0, 7.29],
         [5.1962, -3.0, 6.1233],
         [3.6955, -1.5307, 7.3525],
         [3.6955, -1.5307, 6.1858],
         [5.5433, -2.2961, 7.3525],
         [5.5433, -2.2961, 6.1858],
         [3.8637, -1.0353, 7.415],
         [3.8637, -1.0353, 6.2483],
         [5.7956, -1.5529, 7.415],
         [5.7956, -1.5529, 6.2483],
         [3.9658, -0.5221, 7.4775],
         [3.9658, -0.5221, 6.3108],
         [5.9487, -0.7832, 7.4775],
         [5.9487, -0.7832, 6.3108],
         [4.0, -0.0, 7.54],
         [4.0, -0.0, 6.3733],
         [6.0, -0.0, 7.54],
         [6.0, -0.0, 6.3733],
         [3.9658, 0.5221, 7.6025],
         [3.9658, 0.5221, 6.4358],
         [5.9487, 0.7832, 7.6025],
         [5.9487, 0.7832, 6.4358],
         [3.8637, 1.0353, 7.665],
         [3.8637, 1.0353, 6.4983],
         [5.7956, 1.5529, 7.665],
         [5.7956, 1.5529, 6.4983],
         [3.6955, 1.5307, 7.7275],
         [3.6955, 1.5307, 6.5608],
         [5.5433, 2.2961, 7.7275],
         [5.5433, 2.2961, 6.5608],
         [3.4641, 2.0, 7.79],
         [3.4641, 2.0, 6.6233],
         [5.1962, 3.0, 7.79],
         [5.1962, 3.0, 6.6233],
         [3.1734, 2.435, 7.8525],
         [3.1734, 2.435, 6.6858],
         [4.7601, 3.6526, 7.8525],
         [4.7601, 3.6526, 6.6858],
         [2.8284, 2.8284, 7.915],
         [2.8284, 2.8284, 6.7483],
         [4.2426, 4.2426, 7.915],
         [4.2426, 4.2426, 6.7483],
         [2.435, 3.1734, 7.9775],
         [2.435, 3.1734, 6.8108],
         [3.6526, 4.7601, 7.9775],
         [3.6526, 4.7601, 6.8108],
         [2.0, 3.4641, 8.04],
         [2.0, 3.4641, 6.8733],
         [3.0, 5.1962, 8.04],
         [3.0, 5.1962, 6.8733],
         [1.5307, 3.6955, 8.1025],
         [1.5307, 3.6955, 6.9358],
         [2.2961, 5.5433, 8.1025],
         [2.2961, 5.5433, 6.9358],
         [1.0353, 3.8637, 8.165],
         [1.0353, 3.8637, 6.9983],
         [1.5529, 5.7956, 8.165],
         [1.5529, 5.7956, 6.9983],
         [0.5221, 3.9658, 8.2275],
         [0.5221, 3.9658, 7.0608],
         [0.7832, 5.9487, 8.2275],
         [0.7832, 5.9487, 7.0608],
         [0.0, 4.0, 8.29],
         [0.0, 4.0, 7.1233],
         [0.0, 6.0, 8.29],
         [0.0, 6.0, 7.1233],
         [-0.5221, 3.9658, 8.3525],
         [-0.5221, 3.9658, 7.1858],
         [-0.7832, 5.9487, 8.3525],
         [-0.7832, 5.9487, 7.1858],
         [-1.0353, 3.8637, 8.415],
         [-1.0353, 3.8637, 7.2483],
         [-1.5529, 5.7956, 8.415],
         [-1.5529, 5.7956, 7.2483],
         [-1.5307, 3.6955, 8.4775],
         [-1.5307, 3.6955, 7.3108],
         [-2.2961, 5.5433, 8.4775],
         [-2.2961, 5.5433, 7.3108],
         [-2.0, 3.4641, 8.54],
         [-2.0, 3.4641, 7.3733],
         [-3.0, 5.1962, 8.54],
         [-3.0, 5.1962, 7.3733],
         [-2.435, 3.1734, 8.6025],
         [-2.435, 3.1734, 7.4358],
         [-3.6526, 4.7601, 8.6025],
         [-3.6526, 4.7601, 7.4358],
         [-2.8284, 2.8284, 8.665],
         [-2.8284, 2.8284, 7.4983],
         [-4.2426, 4.2426, 8.665],
         [-4.2426, 4.2426, 7.4983],
         [-3.1734, 2.435, 8.7275],
         [-3.1734, 2.435, 7.5608],
         [-4.7601, 3.6526, 8.7275],
         [-4.7601, 3.6526, 7.5608],
         [-3.4641, 2.0, 8.79],
         [-3.4641, 2.0, 7.6233],
         [-5.1962, 3.0, 8.79],
         [-5.1962, 3.0, 7.6233],
         [-3.6955, 1.5307, 8.8525],
         [-3.6955, 1.5307, 7.6858],
         [-5.5433, 2.2961, 8.8525],
         [-5.5433, 2.2961, 7.6858],
         [-3.8637, 1.0353, 8.915],
         [-3.8637, 1.0353, 7.7483],
         [-5.7956, 1.5529, 8.915],
         [-5.7956, 1.5529, 7.7483],
         [-3.9658, 0.5221, 8.9775],
         [-3.9658, 0.5221, 7.8108],
         [-5.9487, 0.7832, 8.9775],
         [-5.9487, 0.7832, 7.8108],
         [-4.0, 0.0, 9.04],
         [-4.0, 0.0, 7.8733],
         [-6.0, 0.0, 9.04],
         [-6.0, 0.0, 7.8733],
         [-3.9658, -0.5221, 9.1025],
         [-3.9658, -0.5221, 7.9358],
         [-5.9487, -0.7832, 9.1025],
         [-5.9487, -0.7832, 7.9358],
         [-3.8637, -1.0353, 9.165],
         [-3.8637, -1.0353, 7.9983],
         [-5.7956, -1.5529, 9.165],
         [-5.7956, -1.5529, 7.9983],
         [-3.6955, -1.5307, 9.2275],
         [-3.6955, -1.5307, 8.0608],
         [-5.5433, -2.2961, 9.2275],
         [-5.5433, -2.2961, 8.0608],
         [-3.4641, -2.0, 9.29],
         [-3.4641, -2.0, 8.1233],
         [-5.1962, -3.0, 9.29],
         [-5.1962, -3.0, 8.1233],
         [-3.1734, -2.435, 9.3525],
         [-3.1734, -2.435, 8.1858],
         [-4.7601, -3.6526, 9.3525],
         [-4.7601, -3.6526, 8.1858],
         [-2.8284, -2.8284, 9.415],
         [-2.8284, -2.8284, 8.2483],
         [-4.2426, -4.2426, 9.415],
         [-4.2426, -4.2426, 8.2483],
         [-2.435, -3.1734, 9.4775],
         [-2.435, -3.1734, 8.3108],
         [-3.6526, -4.7601, 9.4775],
         [-3.6526, -4.7601, 8.3108],
         [-2.0, -3.4641, 9.54],
         [-2.0, -3.4641, 8.3733],
         [-3.0, -5.1962, 9.54],
         [-3.0, -5.1962, 8.3733],
         [-1.5307, -3.6955, 9.6025],
         [-1.5307, -3.6955, 8.4358],
         [-2.2961, -5.5433, 9.6025],
         [-2.2961, -5.5433, 8.4358],
         [-1.0353, -3.8637, 9.665],
         [-1.0353, -3.8637, 8.4983],
         [-1.5529, -5.7956, 9.665],
         [-1.5529, -5.7956, 8.4983],
         [-0.5221, -3.9658, 9.7275],
         [-0.5221, -3.9658, 8.5608],
         [-0.7832, -5.9487, 9.7275],
         [-0.7832, -5.9487, 8.5608],
         [-0.0, -4.0, 9.79],
         [-0.0, -4.0, 8.6233],
         [-0.0, -6.0, 9.79],
         [-0.0, -6.0, 8.6233],
         [0.5221, -3.9658, 9.8525],
         [0.5221, -3.9658, 8.6858],
         [0.7832, -5.9487, 9.8525],
         [0.7832, -5.9487, 8.6858],
         [1.0353, -3.8637, 9.915],
         [1.0353, -3.8637, 8.7483],
         [1.5529, -5.7956, 9.915],
         [1.5529, -5.7956, 8.7483],
         [1.5307, -3.6955, 9.9775],
         [1.5307, -3.6955, 8.8108],
         [2.2961, -5.5433, 9.9775],
         [2.2961, -5.5433, 8.8108],
         [2.0, -3.4641, 10.04],
         [2.0, -3.4641, 8.8733],
         [3.0, -5.1962, 10.04],
         [3.0, -5.1962, 8.8733],
         [2.435, -3.1734, 10.1025],
         [2.435, -3.1734, 8.9358],
         [3.6526, -4.7601, 10.1025],
         [3.6526, -4.7601, 8.9358],
         [2.8284, -2.8284, 10.165],
         [2.8284, -2.8284, 8.9983],
         [4.2426, -4.2426, 10.165],
         [4.2426, -4.2426, 8.9983],
         [3.1734, -2.435, 10.2275],
         [3.1734, -2.435, 9.0608],
         [4.7601, -3.6526, 10.2275],
         [4.7601, -3.6526, 9.0608],
         [3.4641, -2.0, 10.29],
         [3.4641, -2.0, 9.1233],
         [5.1962, -3.0, 10.29],
         [5.1962, -3.0, 9.1233],
         [3.6955, -1.5307, 10.3525],
         [3.6955, -1.5307, 9.1858],
         [5.5433, -2.2961, 10.3525],
         [5.5433, -2.2961, 9.1858],
         [3.8637, -1.0353, 10.415],
         [3.8637, -1.0353, 9.2483],
         [5.7956, -1.5529, 10.415],
         [5.7956, -1.5529, 9.2483],
         [3.9658, -0.5221, 10.4775],
         [3.9658, -0.5221, 9.3108],
         [5.9487, -0.7832, 10.4775],
         [5.9487, -0.7832, 9.3108],
         [4.0, -0.0, 10.54],
         [4.0, -0.0, 9.3733],
         [6.0, -0.0, 10.54],
         [6.0, -0.0, 9.3733],
         [3.9658, 0.5221, 10.6025],
         [3.9658, 0.5221, 9.4358],
         [5.9487, 0.7832, 10.6025],
         [5.9487, 0.7832, 9.4358],
         [3.8637, 1.0353, 10.665],
         [3.8637, 1.0353, 9.4983],
         [5.7956, 1.5529, 10.665],
         [5.7956, 1.5529, 9.4983],
         [3.6955, 1.5307, 10.7275],
         [3.6955, 1.5307, 9.5608],
         [5.5433, 2.2961, 10.7275],
         [5.5433, 2.2961, 9.5608],
         [3.4641, 2.0, 10.79],
         [3.4641, 2.0, 9.6233],
         [5.1962, 3.0, 10.79],
         [5.1962, 3.0, 9.6233],
         [3.1734, 2.435, 10.8525],
         [3.1734, 2.435, 9.6858],
         [4.7601, 3.6526, 10.8525],
         [4.7601, 3.6526, 9.6858],
         [2.8284, 2.8284, 10.915],
         [2.8284, 2.8284, 9.7483],
         [4.2426, 4.2426, 10.915],
         [4.2426, 4.2426, 9.7483],
         [2.435, 3.1734, 10.9775],
         [2.435, 3.1734, 9.8108],
         [3.6526, 4.7601, 10.9775],
         [3.6526, 4.7601, 9.8108],
         [2.0, 3.4641, 11.04],
         [2.0, 3.4641, 9.8733],
         [3.0, 5.1962, 11.04],
         [3.0, 5.1962, 9.8733],
         [1.5307, 3.6955, 11.1025],
         [1.5307, 3.6955, 9.9358],
         [2.2961, 5.5433, 11.1025],
         [2.2961, 5.5433, 9.9358],
         [1.0353, 3.8637, 11.165],
         [1.0353, 3.8637, 9.9983],
         [1.5529, 5.7956, 11.165],
         [1.5529, 5.7956, 9.9983],
         [0.5221, 3.9658, 11.2275],
         [0.5221, 3.9658, 10.0608],
         [0.7832, 5.9487, 11.2275],
         [0.7832, 5.9487, 10.0608],
         [-0.0, 4.0, 11.29],
         [-0.0, 4.0, 10.1233],
         [-0.0, 6.0, 11.29],
         [-0.0, 6.0, 10.1233],
         [-0.5221, 3.9658, 11.3525],
         [-0.5221, 3.9658, 10.1858],
         [-0.7832, 5.9487, 11.3525],
         [-0.7832, 5.9487, 10.1858],
         [-1.0353, 3.8637, 11.415],
         [-1.0353, 3.8637, 10.2483],
         [-1.5529, 5.7956, 11.415],
         [-1.5529, 5.7956, 10.2483],
         [-1.5307, 3.6955, 11.4775],
         [-1.5307, 3.6955, 10.3108],
         [-2.2961, 5.5433, 11.4775],
         [-2.2961, 5.5433, 10.3108],
         [-2.0, 3.4641, 11.54],
         [-2.0, 3.4641, 10.3733],
         [-3.0, 5.1962, 11.54],
         [-3.0, 5.1962, 10.3733],
         [-2.435, 3.1734, 11.6025],
         [-2.435, 3.1734, 10.4358],
         [-3.6526, 4.7601, 11.6025],
         [-3.6526, 4.7601, 10.4358],
         [-2.8284, 2.8284, 11.665],
         [-2.8284, 2.8284, 10.4983],
         [-4.2426, 4.2426, 11.665],
         [-4.2426, 4.2426, 10.4983],
         [-3.1734, 2.435, 11.7275],
         [-3.1734, 2.435, 10.5608],
         [-4.7601, 3.6526, 11.7275],
         [-4.7601, 3.6526, 10.5608],
         [-3.4641, 2.0, 11.79],
         [-3.4641, 2.0, 10.6233],
         [-5.1962, 3.0, 11.79],
         [-5.1962, 3.0, 10.6233],
         [-3.6955, 1.5307, 11.8525],
         [-3.6955, 1.5307, 10.6858],
         [-5.5433, 2.2961, 11.8525],
         [-5.5433, 2.2961, 10.6858],
         [-3.8637, 1.0353, 11.915],
         [-3.8637, 1.0353, 10.7483],
         [-5.7956, 1.5529, 11.915],
         [-5.7956, 1.5529, 10.7483],
         [-3.9658, 0.5221, 11.9775],
         [-3.9658, 0.5221, 10.8108],
         [-5.9487, 0.7832, 11.9775],
         [-5.9487, 0.7832, 10.8108],
         [-4.0, 0.0, 12.04],
         [-4.0, 0.0, 10.8733],
         [-6.0, 0.0, 12.04],
         [-6.0, 0.0, 10.8733],
         [-3.9658, -0.5221, 12.1025],
         [-3.9658, -0.5221, 10.9358],
         [-5.9487, -0.7832, 12.1025],
         [-5.9487, -0.7832, 10.9358],
         [-3.8637, -1.0353, 12.165],
         [-3.8637, -1.0353, 10.9983],
         [-5.7956, -1.5529, 12.165],
         [-5.7956, -1.5529, 10.9983],
         [-3.6955, -1.5307, 12.2275],
         [-3.6955, -1.5307, 11.0608],
         [-5.5433, -2.2961, 12.2275],
         [-5.5433, -2.2961, 11.0608],
         [-3.4641, -2.0, 12.29],
         [-3.4641, -2.0, 11.1233],
         [-5.1962, -3.0, 12.29],
         [-5.1962, -3.0, 11.1233],
         [-3.1734, -2.435, 12.3525],
         [-3.1734, -2.435, 11.1858],
         [-4.7601, -3.6526, 12.3525],
         [-4.7601, -3.6526, 11.1858],
         [-2.8284, -2.8284, 12.415],
         [-2.8284, -2.8284, 11.2483],
         [-4.2426, -4.2426, 12.415],
         [-4.2426, -4.2426, 11.2483],
         [-2.435, -3.1734, 12.4775],
         [-2.435, -3.1734, 11.3108],
         [-3.6526, -4.7601, 12.4775],
         [-3.6526, -4.7601, 11.3108],
         [-2.0, -3.4641, 12.54],
         [-2.0, -3.4641, 11.3733],
         [-3.0, -5.1962, 12.54],
         [-3.0, -5.1962, 11.3733],
         [-1.5307, -3.6955, 12.6025],
         [-1.5307, -3.6955, 11.4358],
         [-2.2961, -5.5433, 12.6025],
         [-2.2961, -5.5433, 11.4358],
         [-1.0353, -3.8637, 12.665],
         [-1.0353, -3.8637, 11.4983],
         [-1.5529, -5.7956, 12.665],
         [-1.5529, -5.7956, 11.4983],
         [-0.5221, -3.9658, 12.7275],
         [-0.5221, -3.9658, 11.5608],
         [-0.7832, -5.9487, 12.7275],
         [-0.7832, -5.9487, 11.5608],
         [-0.0, -4.0, 12.79],
         [-0.0, -4.0, 11.6233],
         [-0.0, -6.0, 12.79],
         [-0.0, -6.0, 11.6233],
         [0.5221, -3.9658, 12.8525],
         [0.5221, -3.9658, 11.6858],
         [0.7832, -5.9487, 12.8525],
         [0.7832, -5.9487, 11.6858],
         [1.0353, -3.8637, 12.915],
         [1.0353, -3.8637, 11.7483],
         [1.5529, -5.7956, 12.915],
         [1.5529, -5.7956, 11.7483],
         [1.5307, -3.6955, 12.9775],
         [1.5307, -3.6955, 11.8108],
         [2.2961, -5.5433, 12.9775],
         [2.2961, -5.5433, 11.8108],
         [2.0, -3.4641, 13.04],
         [2.0, -3.4641, 11.8733],
         [3.0, -5.1962, 13.04],
         [3.0, -5.1962, 11.8733],
         [2.435, -3.1734, 13.1025],
         [2.435, -3.1734, 11.9358],
         [3.6526, -4.7601, 13.1025],
         [3.6526, -4.7601, 11.9358],
         [2.8284, -2.8284, 13.165],
         [2.8284, -2.8284, 11.9983],
         [4.2426, -4.2426, 13.165],
         [4.2426, -4.2426, 11.9983],
         [3.1734, -2.435, 13.2275],
         [3.1734, -2.435, 12.0608],
         [4.7601, -3.6526, 13.2275],
         [4.7601, -3.6526, 12.0608],
         [3.4641, -2.0, 13.29],
         [3.4641, -2.0, 12.1233],
         [5.1962, -3.0, 13.29],
         [5.1962, -3.0, 12.1233],
         [3.6955, -1.5307, 13.3525],
         [3.6955, -1.5307, 12.1858],
         [5.5433, -2.2961, 13.3525],
         [5.5433, -2.2961, 12.1858],
         [3.8637, -1.0353, 13.415],
         [3.8637, -1.0353, 12.2483],
         [5.7956, -1.5529, 13.415],
         [5.7956, -1.5529, 12.2483],
         [3.9658, -0.5221, 13.4775],
         [3.9658, -0.5221, 12.3108],
         [5.9487, -0.7832, 13.4775],
         [5.9487, -0.7832, 12.3108],
         [4.0, -0.0, 13.54],
         [4.0, -0.0, 12.3733],
         [6.0, -0.0, 13.54],
         [6.0, -0.0, 12.3733],
         [3.9658, 0.5221, 13.6025],
         [3.9658, 0.5221, 12.4358],
         [5.9487, 0.7832, 13.6025],
         [5.9487, 0.7832, 12.4358],
         [3.8637, 1.0353, 13.665],
         [3.8637, 1.0353, 12.4983],
         [5.7956, 1.5529, 13.665],
         [5.7956, 1.5529, 12.4983],
         [3.6955, 1.5307, 13.7275],
         [3.6955, 1.5307, 12.5608],
         [5.5433, 2.2961, 13.7275],
         [5.5433, 2.2961, 12.5608],
         [3.4641, 2.0, 13.79],
         [3.4641, 2.0, 12.6233],
         [5.1962, 3.0, 13.79],
         [5.1962, 3.0, 12.6233],
         [3.1734, 2.435, 13.8525],
         [3.1734, 2.435, 12.6858],
         [4.7601, 3.6526, 13.8525],
         [4.7601, 3.6526, 12.6858],
         [2.8284, 2.8284, 13.915],
         [2.8284, 2.8284, 12.7483],
         [4.2426, 4.2426, 13.915],
         [4.2426, 4.2426, 12.7483],
         [2.435, 3.1734, 13.9775],
         [2.435, 3.1734, 12.8108],
         [3.6526, 4.7601, 13.9775],
         [3.6526, 4.7601, 12.8108],
         [2.0, 3.4641, 14.04],
         [2.0, 3.4641, 12.8733],
         [3.0, 5.1962, 14.04],
         [3.0, 5.1962, 12.8733],
         [1.5307, 3.6955, 14.1025],
         [1.5307, 3.6955, 12.9358],
         [2.2961, 5.5433, 14.1025],
         [2.2961, 5.5433, 12.9358],
         [1.0353, 3.8637, 14.165],
         [1.0353, 3.8637, 12.9983],
         [1.5529, 5.7956, 14.165],
         [1.5529, 5.7956, 12.9983],
         [0.5221, 3.9658, 14.2275],
         [0.5221, 3.9658, 13.0608],
         [0.7832, 5.9487, 14.2275],
         [0.7832, 5.9487, 13.0608],
         [-0.0, 4.0, 14.29],
         [-0.0, 4.0, 13.1233],
         [-0.0, 6.0, 14.29],
         [-0.0, 6.0, 13.1233],
         [-0.5221, 3.9658, 14.3525],
         [-0.5221, 3.9658, 13.1858],
         [-0.7832, 5.9487, 14.3525],
         [-0.7832, 5.9487, 13.1858],
         [-1.0353, 3.8637, 14.415],
         [-1.0353, 3.8637, 13.2483],
         [-1.5529, 5.7956, 14.415],
         [-1.5529, 5.7956, 13.2483],
         [-1.5307, 3.6955, 14.4775],
         [-1.5307, 3.6955, 13.3108],
         [-2.2961, 5.5433, 14.4775],
         [-2.2961, 5.5433, 13.3108],
         [-2.0, 3.4641, 14.54],
         [-2.0, 3.4641, 13.3733],
         [-3.0, 5.1962, 14.54],
         [-3.0, 5.1962, 13.3733],
         [-2.435, 3.1734, 14.6025],
         [-2.435, 3.1734, 13.4358],
         [-3.6526, 4.7601, 14.6025],
         [-3.6526, 4.7601, 13.4358],
         [-2.8284, 2.8284, 14.665],
         [-2.8284, 2.8284, 13.4983],
         [-4.2426, 4.2426, 14.665],
         [-4.2426, 4.2426, 13.4983],
         [-3.1734, 2.435, 14.7275],
         [-3.1734, 2.435, 13.5608],
         [-4.7601, 3.6526, 14.7275],
         [-4.7601, 3.6526, 13.5608],
         [-3.4641, 2.0, 14.79],
         [-3.4641, 2.0, 13.6233],
         [-5.1962, 3.0, 14.79],
         [-5.1962, 3.0, 13.6233],
         [-3.6955, 1.5307, 14.8525],
         [-3.6955, 1.5307, 13.6858],
         [-5.5433, 2.2961, 14.8525],
         [-5.5433, 2.2961, 13.6858],
         [-3.8637, 1.0353, 14.915],
         [-3.8637, 1.0353, 13.7483],
         [-5.7956, 1.5529, 14.915],
         [-5.7956, 1.5529, 13.7483],
         [-3.9658, 0.5221, 14.9775],
         [-3.9658, 0.5221, 13.8108],
         [-5.9487, 0.7832, 14.9775],
         [-5.9487, 0.7832, 13.8108],
         [-4.0, 0.0, 15.04],
         [-4.0, 0.0, 13.8733],
         [-6.0, 0.0, 15.04],
         [-6.0, 0.0, 13.8733],
         [-3.9658, -0.5221, 15.1025],
         [-3.9658, -0.5221, 13.9358],
         [-5.9487, -0.7832, 15.1025],
         [-5.9487, -0.7832, 13.9358],
         [-3.8637, -1.0353, 15.165],
         [-3.8637, -1.0353, 13.9983],
         [-5.7956, -1.5529, 15.165],
         [-5.7956, -1.5529, 13.9983],
         [-3.6955, -1.5307, 15.2275],
         [-3.6955, -1.5307, 14.0608],
         [-5.5433, -2.2961, 15.2275],
         [-5.5433, -2.2961, 14.0608],
         [-3.4641, -2.0, 15.29],
         [-3.4641, -2.0, 14.1233],
         [-5.1962, -3.0, 15.29],
         [-5.1962, -3.0, 14.1233],
         [-3.1734, -2.435, 15.3525],
         [-3.1734, -2.435, 14.1858],
         [-4.7601, -3.6526, 15.3525],
         [-4.7601, -3.6526, 14.1858],
         [-2.8284, -2.8284, 15.415],
         [-2.8284, -2.8284, 14.2483],
         [-4.2426, -4.2426, 15.415],
         [-4.2426, -4.2426, 14.2483],
         [-2.435, -3.1734, 15.4775],
         [-2.435, -3.1734, 14.3108],
         [-3.6526, -4.7601, 15.4775],
         [-3.6526, -4.7601, 14.3108],
         [-2.0, -3.4641, 15.54],
         [-2.0, -3.4641, 14.3733],
         [-3.0, -5.1962, 15.54],
         [-3.0, -5.1962, 14.3733],
         [-1.5307, -3.6955, 15.6025],
         [-1.5307, -3.6955, 14.4358],
         [-2.2961, -5.5433, 15.6025],
         [-2.2961, -5.5433, 14.4358],
         [-1.0353, -3.8637, 15.665],
         [-1.0353, -3.8637, 14.4983],
         [-1.5529, -5.7956, 15.665],
         [-1.5529, -5.7956, 14.4983],
         [-0.5221, -3.9658, 15.7275],
         [-0.5221, -3.9658, 14.5608],
         [-0.7832, -5.9487, 15.7275],
         [-0.7832, -5.9487, 14.5608],
         [-0.0, -4.0, 15.79],
         [-0.0, -4.0, 14.6233],
         [-0.0, -6.0, 15.79],
         [-0.0, -6.0, 14.6233],
         [0.5221, -3.9658, 15.8525],
         [0.5221, -3.9658, 14.6858],
         [0.7832, -5.9487, 15.8525],
         [0.7832, -5.9487, 14.6858],
         [1.0353, -3.8637, 15.915],
         [1.0353, -3.8637, 14.7483],
         [1.5529, -5.7956, 15.915],
         [1.5529, -5.7956, 14.7483],
         [1.5307, -3.6955, 15.9775],
         [1.5307, -3.6955, 14.8108],
         [2.2961, -5.5433, 15.9775],
         [2.2961, -5.5433, 14.8108],
         [2.0, -3.4641, 16.04],
         [2.0, -3.4641, 14.8733],
         [3.0, -5.1962, 16.04],
         [3.0, -5.1962, 14.8733],
         [2.435, -3.1734, 16.1025],
         [2.435, -3.1734, 14.9358],
         [3.6526, -4.7601, 16.1025],
         [3.6526, -4.7601, 14.9358],
         [2.8284, -2.8284, 16.165],
         [2.8284, -2.8284, 14.9983],
         [4.2426, -4.2426, 16.165],
         [4.2426, -4.2426, 14.9983],
         [3.1734, -2.435, 16.2275],
         [3.1734, -2.435, 15.0608],
         [4.7601, -3.6526, 16.2275],
         [4.7601, -3.6526, 15.0608],
         [3.4641, -2.0, 16.29],
         [3.4641, -2.0, 15.1233],
         [5.1962, -3.0, 16.29],
         [5.1962, -3.0, 15.1233],
         [3.6955, -1.5307, 16.3525],
         [3.6955, -1.5307, 15.1858],
         [5.5433, -2.2961, 16.3525],
         [5.5433, -2.2961, 15.1858],
         [3.8637, -1.0353, 16.415],
         [3.8637, -1.0353, 15.2483],
         [5.7956, -1.5529, 16.415],
         [5.7956, -1.5529, 15.2483],
         [3.9658, -0.5221, 16.4775],
         [3.9658, -0.5221, 15.3108],
         [5.9487, -0.7832, 16.4775],
         [5.9487, -0.7832, 15.3108],
         [4.0, -0.0, 16.54],
         [4.0, -0.0, 15.3733],
         [6.0, -0.0, 16.54],
         [6.0, -0.0, 15.3733],
         [3.9658, 0.5221, 16.6025],
         [3.9658, 0.5221, 15.4358],
         [5.9487, 0.7832, 16.6025],
         [5.9487, 0.7832, 15.4358],
         [3.8637, 1.0353, 16.665],
         [3.8637, 1.0353, 15.4983],
         [5.7956, 1.5529, 16.665],
         [5.7956, 1.5529, 15.4983],
         [3.6955, 1.5307, 16.7275],
         [3.6955, 1.5307, 15.5608],
         [5.5433, 2.2961, 16.7275],
         [5.5433, 2.2961, 15.5608],
         [3.4641, 2.0, 16.79],
         [3.4641, 2.0, 15.6233],
         [5.1962, 3.0, 16.79],
         [5.1962, 3.0, 15.6233],
         [3.1734, 2.435, 16.8525],
         [3.1734, 2.435, 15.6858],
         [4.7601, 3.6526, 16.8525],
         [4.7601, 3.6526, 15.6858],
         [2.8284, 2.8284, 16.915],
         [2.8284, 2.8284, 15.7483],
         [4.2426, 4.2426, 16.915],
         [4.2426, 4.2426, 15.7483],
         [2.435, 3.1734, 16.9775],
         [2.435, 3.1734, 15.8108],
         [3.6526, 4.7601, 16.9775],
         [3.6526, 4.7601, 15.8108],
         [2.0, 3.4641, 17.04],
         [2.0, 3.4641, 15.8733],
         [3.0, 5.1962, 17.04],
         [3.0, 5.1962, 15.8733],
         [1.5307, 3.6955, 17.1025],
         [1.5307, 3.6955, 15.9358],
         [2.2961, 5.5433, 17.1025],
         [2.2961, 5.5433, 15.9358],
         [1.0353, 3.8637, 17.165],
         [1.0353, 3.8637, 15.9983],
         [1.5529, 5.7956, 17.165],
         [1.5529, 5.7956, 15.9983],
         [0.5221, 3.9658, 17.2275],
         [0.5221, 3.9658, 16.0608],
         [0.7832, 5.9487, 17.2275],
         [0.7832, 5.9487, 16.0608],
         [-0.0, 4.0, 17.29],
         [-0.0, 4.0, 16.1233],
         [-0.0, 6.0, 17.29],
         [-0.0, 6.0, 16.1233],
         [-0.5221, 3.9658, 17.3525],
         [-0.5221, 3.9658, 16.1858],
         [-0.7832, 5.9487, 17.3525],
         [-0.7832, 5.9487, 16.1858],
         [-1.0353, 3.8637, 17.415],
         [-1.0353, 3.8637, 16.2483],
         [-1.5529, 5.7956, 17.415],
         [-1.5529, 5.7956, 16.2483],
         [-1.5307, 3.6955, 17.4775],
         [-1.5307, 3.6955, 16.3108],
         [-2.2961, 5.5433, 17.4775],
         [-2.2961, 5.5433, 16.3108],
         [-2.0, 3.4641, 17.54],
         [-2.0, 3.4641, 16.3733],
         [-3.0, 5.1962, 17.54],
         [-3.0, 5.1962, 16.3733],
         [-2.435, 3.1734, 17.6025],
         [-2.435, 3.1734, 16.4358],
         [-3.6526, 4.7601, 17.6025],
         [-3.6526, 4.7601, 16.4358],
         [-2.8284, 2.8284, 17.665],
         [-2.8284, 2.8284, 16.4983],
         [-4.2426, 4.2426, 17.665],
         [-4.2426, 4.2426, 16.4983],
         [-3.1734, 2.435, 17.7275],
         [-3.1734, 2.435, 16.5608],
         [-4.7601, 3.6526, 17.7275],
         [-4.7601, 3.6526, 16.5608],
         [-3.4641, 2.0, 17.79],
         [-3.4641, 2.0, 16.6233],
         [-5.1962, 3.0, 17.79],
         [-5.1962, 3.0, 16.6233],
         [-3.6955, 1.5307, 17.8525],
         [-3.6955, 1.5307, 16.6858],
         [-5.5433, 2.2961, 17.8525],
         [-5.5433, 2.2961, 16.6858],
         [-3.8637, 1.0353, 17.915],
         [-3.8637, 1.0353, 16.7483],
         [-5.7956, 1.5529, 17.915],
         [-5.7956, 1.5529, 16.7483],
         [-3.9658, 0.5221, 17.9775],
         [-3.9658, 0.5221, 16.8108],
         [-5.9487, 0.7832, 17.9775],
         [-5.9487, 0.7832, 16.8108],
         [-4.0, 0.0, 18.04],
         [-4.0, 0.0, 16.8733],
         [-6.0, 0.0, 18.04],
         [-6.0, 0.0, 16.8733],
         [-3.9658, -0.5221, 18.1025],
         [-3.9658, -0.5221, 16.9358],
         [-5.9487, -0.7832, 18.1025],
         [-5.9487, -0.7832, 16.9358],
         [-3.8637, -1.0353, 18.165],
         [-3.8637, -1.0353, 16.9983],
         [-5.7956, -1.5529, 18.165],
         [-5.7956, -1.5529, 16.9983],
         [-3.6955, -1.5307, 18.2275],
         [-3.6955, -1.5307, 17.0608],
         [-5.5433, -2.2961, 18.2275],
         [-5.5433, -2.2961, 17.0608],
         [-3.4641, -2.0, 18.29],
         [-3.4641, -2.0, 17.1233],
         [-5.1962, -3.0, 18.29],
         [-5.1962, -3.0, 17.1233],
         [-3.1734, -2.435, 18.3525],
         [-3.1734, -2.435, 17.1858],
         [-4.7601, -3.6526, 18.3525],
         [-4.7601, -3.6526, 17.1858],
         [-2.8284, -2.8284, 18.415],
         [-2.8284, -2.8284, 17.2483],
         [-4.2426, -4.2426, 18.415],
         [-4.2426, -4.2426, 17.2483],
         [-2.435, -3.1734, 18.4775],
         [-2.435, -3.1734, 17.3108],
         [-3.6526, -4.7601, 18.4775],
         [-3.6526, -4.7601, 17.3108],
         [-2.0, -3.4641, 18.54],
         [-2.0, -3.4641, 17.3733],
         [-3.0, -5.1962, 18.54],
         [-3.0, -5.1962, 17.3733],
         [-1.5307, -3.6955, 18.6025],
         [-1.5307, -3.6955, 17.4358],
         [-2.2961, -5.5433, 18.6025],
         [-2.2961, -5.5433, 17.4358],
         [-1.0353, -3.8637, 18.665],
         [-1.0353, -3.8637, 17.4983],
         [-1.5529, -5.7956, 18.665],
         [-1.5529, -5.7956, 17.4983],
         [-0.5221, -3.9658, 18.7275],
         [-0.5221, -3.9658, 17.5608],
         [-0.7832, -5.9487, 18.7275],
         [-0.7832, -5.9487, 17.5608],
         [-0.0, -4.0, 18.79],
         [-0.0, -4.0, 17.6233],
         [-0.0, -6.0, 18.79],
         [-0.0, -6.0, 17.6233],
         [0.5221, -3.9658, 18.8525],
         [0.5221, -3.9658, 17.6858],
         [0.7832, -5.9487, 18.8525],
         [0.7832, -5.9487, 17.6858],
         [1.0353, -3.8637, 18.915],
         [1.0353, -3.8637, 17.7483],
         [1.5529, -5.7956, 18.915],
         [1.5529, -5.7956, 17.7483],
         [1.5307, -3.6955, 18.9775],
         [1.5307, -3.6955, 17.8108],
         [2.2961, -5.5433, 18.9775],
         [2.2961, -5.5433, 17.8108],
         [2.0, -3.4641, 19.04],
         [2.0, -3.4641, 17.8733],
         [3.0, -5.1962, 19.04],
         [3.0, -5.1962, 17.8733],
         [2.435, -3.1734, 19.1025],
         [2.435, -3.1734, 17.9358],
         [3.6526, -4.7601, 19.1025],
         [3.6526, -4.7601, 17.9358],
         [2.8284, -2.8284, 19.165],
         [2.8284, -2.8284, 17.9983],
         [4.2426, -4.2426, 19.165],
         [4.2426, -4.2426, 17.9983],
         [3.1734, -2.435, 19.2275],
         [3.1734, -2.435, 18.0608],
         [4.7601, -3.6526, 19.2275],
         [4.7601, -3.6526, 18.0608],
         [3.4641, -2.0, 19.29],
         [3.4641, -2.0, 18.1233],
         [5.1962, -3.0, 19.29],
         [5.1962, -3.0, 18.1233],
         [3.6955, -1.5307, 19.3525],
         [3.6955, -1.5307, 18.1858],
         [5.5433, -2.2961, 19.3525],
         [5.5433, -2.2961, 18.1858],
         [3.8637, -1.0353, 19.415],
         [3.8637, -1.0353, 18.2483],
         [5.7956, -1.5529, 19.415],
         [5.7956, -1.5529, 18.2483],
         [3.9658, -0.5221, 19.4775],
         [3.9658, -0.5221, 18.3108],
         [5.9487, -0.7832, 19.4775],
         [5.9487, -0.7832, 18.3108],
         [4.0, -0.0, 19.54],
         [4.0, -0.0, 18.3733],
         [6.0, -0.0, 19.54],
         [6.0, -0.0, 18.3733],
         [3.9658, 0.5221, 19.6025],
         [3.9658, 0.5221, 18.4358],
         [5.9487, 0.7832, 19.6025],
         [5.9487, 0.7832, 18.4358],
         [3.8637, 1.0353, 19.665],
         [3.8637, 1.0353, 18.4983],
         [5.7956, 1.5529, 19.665],
         [5.7956, 1.5529, 18.4983],
         [3.6955, 1.5307, 19.7275],
         [3.6955, 1.5307, 18.5608],
         [5.5433, 2.2961, 19.7275],
         [5.5433, 2.2961, 18.5608],
         [3.4641, 2.0, 19.79],
         [3.4641, 2.0, 18.6233],
         [5.1962, 3.0, 19.79],
         [5.1962, 3.0, 18.6233],
         [3.1734, 2.435, 19.8525],
         [3.1734, 2.435, 18.6858],
         [4.7601, 3.6526, 19.8525],
         [4.7601, 3.6526, 18.6858],
         [2.8284, 2.8284, 19.915],
         [2.8284, 2.8284, 18.7483],
         [4.2426, 4.2426, 19.915],
         [4.2426, 4.2426, 18.7483],
         [2.435, 3.1734, 19.9775],
         [2.435, 3.1734, 18.8108],
         [3.6526, 4.7601, 19.9775],
         [3.6526, 4.7601, 18.8108],
         [2.0, 3.4641, 20.04],
         [2.0, 3.4641, 18.8733],
         [3.0, 5.1962, 20.04],
         [3.0, 5.1962, 18.8733],
         [1.5307, 3.6955, 20.1025],
         [1.5307, 3.6955, 18.9358],
         [2.2961, 5.5433, 20.1025],
         [2.2961, 5.5433, 18.9358],
         [1.0353, 3.8637, 20.165],
         [1.0353, 3.8637, 18.9983],
         [1.5529, 5.7956, 20.165],
         [1.5529, 5.7956, 18.9983],
         [0.5221, 3.9658, 20.2275],
         [0.5221, 3.9658, 19.0608],
         [0.7832, 5.9487, 20.2275],
         [0.7832, 5.9487, 19.0608],
         [-0.0, 4.0, 20.29],
         [-0.0, 4.0, 19.1233],
         [-0.0, 6.0, 20.29],
         [-0.0, 6.0, 19.1233],
         [-0.5221, 3.9658, 20.3525],
         [-0.5221, 3.9658, 19.1858],
         [-0.7832, 5.9487, 20.3525],
         [-0.7832, 5.9487, 19.1858],
         [-1.0353, 3.8637, 20.415],
         [-1.0353, 3.8637, 19.2483],
         [-1.5529, 5.7956, 20.415],
         [-1.5529, 5.7956, 19.2483],
         [-1.5307, 3.6955, 20.4775],
         [-1.5307, 3.6955, 19.3108],
         [-2.2961, 5.5433, 20.4775],
         [-2.2961, 5.5433, 19.3108],
         [-2.0, 3.4641, 20.54],
         [-2.0, 3.4641, 19.3733],
         [-3.0, 5.1962, 20.54],
         [-3.0, 5.1962, 19.3733],
         [-2.435, 3.1734, 20.6025],
         [-2.435, 3.1734, 19.4358],
         [-3.6526, 4.7601, 20.6025],
         [-3.6526, 4.7601, 19.4358],
         [-2.8284, 2.8284, 20.665],
         [-2.8284, 2.8284, 19.4983],
         [-4.2426, 4.2426, 20.665],
         [-4.2426, 4.2426, 19.4983],
         [-3.1734, 2.435, 20.7275],
         [-3.1734, 2.435, 19.5608],
         [-4.7601, 3.6526, 20.7275],
         [-4.7601, 3.6526, 19.5608],
         [-3.4641, 2.0, 20.79],
         [-3.4641, 2.0, 19.6233],
         [-5.1962, 3.0, 20.79],
         [-5.1962, 3.0, 19.6233],
         [-3.6955, 1.5307, 20.8525],
         [-3.6955, 1.5307, 19.6858],
         [-5.5433, 2.2961, 20.8525],
         [-5.5433, 2.2961, 19.6858],
         [-3.8637, 1.0353, 20.915],
         [-3.8637, 1.0353, 19.7483],
         [-5.7956, 1.5529, 20.915],
         [-5.7956, 1.5529, 19.7483],
         [-3.9658, 0.5221, 20.9775],
         [-3.9658, 0.5221, 19.8108],
         [-5.9487, 0.7832, 20.9775],
         [-5.9487, 0.7832, 19.8108],
         [-4.0, -0.0, 21.04],
         [-4.0, -0.0, 19.8733],
         [-6.0, -0.0, 21.04],
         [-6.0, -0.0, 19.8733],
         [-3.9658, -0.5221, 21.1025],
         [-3.9658, -0.5221, 19.9358],
         [-5.9487, -0.7832, 21.1025],
         [-5.9487, -0.7832, 19.9358],
         [-3.8637, -1.0353, 21.165],
         [-3.8637, -1.0353, 19.9983],
         [-5.7956, -1.5529, 21.165],
         [-5.7956, -1.5529, 19.9983],
         [-3.6955, -1.5307, 21.2275],
         [-3.6955, -1.5307, 20.0608],
         [-5.5433, -2.2961, 21.2275],
         [-5.5433, -2.2961, 20.0608],
         [-3.4641, -2.0, 21.29],
         [-3.4641, -2.0, 20.1233],
         [-5.1962, -3.0, 21.29],
         [-5.1962, -3.0, 20.1233],
         [-3.1734, -2.435, 21.3525],
         [-3.1734, -2.435, 20.1858],
         [-4.7601, -3.6526, 21.3525],
         [-4.7601, -3.6526, 20.1858],
         [-2.8284, -2.8284, 21.415],
         [-2.8284, -2.8284, 20.2483],
         [-4.2426, -4.2426, 21.415],
         [-4.2426, -4.2426, 20.2483],
         [-2.435, -3.1734, 21.4775],
         [-2.435, -3.1734, 20.3108],
         [-3.6526, -4.7601, 21.4775],
         [-3.6526, -4.7601, 20.3108],
         [-2.0, -3.4641, 21.54],
         [-2.0, -3.4641, 20.3733],
         [-3.0, -5.1962, 21.54],
         [-3.0, -5.1962, 20.3733],
         [-1.5307, -3.6955, 21.6025],
         [-1.5307, -3.6955, 20.4358],
         [-2.2961, -5.5433, 21.6025],
         [-2.2961, -5.5433, 20.4358],
         [-1.0353, -3.8637, 21.665],
         [-1.0353, -3.8637, 20.4983],
         [-1.5529, -5.7956, 21.665],
         [-1.5529, -5.7956, 20.4983],
         [-0.5221, -3.9658, 21.7275],
         [-0.5221, -3.9658, 20.5608],
         [-0.7832, -5.9487, 21.7275],
         [-0.7832, -5.9487, 20.5608],
         [-0.0, -4.0, 21.79],
         [-0.0, -4.0, 20.6233],
         [-0.0, -6.0, 21.79],
         [-0.0, -6.0, 20.6233],
         [0.5221, -3.9658, 21.8525],
         [0.5221, -3.9658, 20.6858],
         [0.7832, -5.9487, 21.8525],
         [0.7832, -5.9487, 20.6858],
         [1.0353, -3.8637, 21.915],
         [1.0353, -3.8637, 20.7483],
         [1.5529, -5.7956, 21.915],
         [1.5529, -5.7956, 20.7483],
         [1.5307, -3.6955, 21.9775],
         [1.5307, -3.6955, 20.8108],
         [2.2961, -5.5433, 21.9775],
         [2.2961, -5.5433, 20.8108],
         [2.0, -3.4641, 22.04],
         [2.0, -3.4641, 20.8733],
         [3.0, -5.1962, 22.04],
         [3.0, -5.1962, 20.8733],
         [2.435, -3.1734, 22.1025],
         [2.435, -3.1734, 20.9358],
         [3.6526, -4.7601, 22.1025],
         [3.6526, -4.7601, 20.9358],
         [2.8284, -2.8284, 22.165],
         [2.8284, -2.8284, 20.9983],
         [4.2426, -4.2426, 22.165],
         [4.2426, -4.2426, 20.9983],
         [3.1734, -2.435, 22.2275],
         [3.1734, -2.435, 21.0608],
         [4.7601, -3.6526, 22.2275],
         [4.7601, -3.6526, 21.0608],
         [3.4641, -2.0, 22.29],
         [3.4641, -2.0, 21.1233],
         [5.1962, -3.0, 22.29],
         [5.1962, -3.0, 21.1233],
         [3.6955, -1.5307, 22.3525],
         [3.6955, -1.5307, 21.1858],
         [5.5433, -2.2961, 22.3525],
         [5.5433, -2.2961, 21.1858],
         [3.8637, -1.0353, 22.415],
         [3.8637, -1.0353, 21.2483],
         [5.7956, -1.5529, 22.415],
         [5.7956, -1.5529, 21.2483],
         [3.9658, -0.5221, 22.4775],
         [3.9658, -0.5221, 21.3108],
         [5.9487, -0.7832, 22.4775],
         [5.9487, -0.7832, 21.3108],
         [4.0, -0.0, 22.54],
         [4.0, -0.0, 21.3733],
         [6.0, -0.0, 22.54],
         [6.0, -0.0, 21.3733],
         [3.9658, 0.5221, 22.6025],
         [3.9658, 0.5221, 21.4358],
         [5.9487, 0.7832, 22.6025],
         [5.9487, 0.7832, 21.4358],
         [3.8637, 1.0353, 22.665],
         [3.8637, 1.0353, 21.4983],
         [5.7956, 1.5529, 22.665],
         [5.7956, 1.5529, 21.4983],
         [3.6955, 1.5307, 22.7275],
         [3.6955, 1.5307, 21.5608],
         [5.5433, 2.2961, 22.7275],
         [5.5433, 2.2961, 21.5608],
         [3.4641, 2.0, 22.79],
         [3.4641, 2.0, 21.6233],
         [5.1962, 3.0, 22.79],
         [5.1962, 3.0, 21.6233],
         [3.1734, 2.435, 22.8525],
         [3.1734, 2.435, 21.6858],
         [4.7601, 3.6526, 22.8525],
         [4.7601, 3.6526, 21.6858],
         [2.8284, 2.8284, 22.915],
         [2.8284, 2.8284, 21.7483],
         [4.2426, 4.2426, 22.915],
         [4.2426, 4.2426, 21.7483],
         [2.435, 3.1734, 22.9775],
         [2.435, 3.1734, 21.8108],
         [3.6526, 4.7601, 22.9775],
         [3.6526, 4.7601, 21.8108],
         [2.0, 3.4641, 23.04],
         [2.0, 3.4641, 21.8733],
         [3.0, 5.1962, 23.04],
         [3.0, 5.1962, 21.8733],
         [1.5307, 3.6955, 23.1025],
         [1.5307, 3.6955, 21.9358],
         [2.2961, 5.5433, 23.1025],
         [2.2961, 5.5433, 21.9358],
         [1.0353, 3.8637, 23.165],
         [1.0353, 3.8637, 21.9983],
         [1.5529, 5.7956, 23.165],
         [1.5529, 5.7956, 21.9983],
         [0.5221, 3.9658, 23.2275],
         [0.5221, 3.9658, 22.0608],
         [0.7832, 5.9487, 23.2275],
         [0.7832, 5.9487, 22.0608],
         [-0.0, 4.0, 23.29],
         [-0.0, 4.0, 22.1233],
         [-0.0, 6.0, 23.29],
         [-0.0, 6.0, 22.1233],
         [-0.5221, 3.9658, 23.3525],
         [-0.5221, 3.9658, 22.1858],
         [-0.7832, 5.9487, 23.3525],
         [-0.7832, 5.9487, 22.1858],
         [-1.0353, 3.8637, 23.415],
         [-1.0353, 3.8637, 22.2483],
         [-1.5529, 5.7956, 23.415],
         [-1.5529, 5.7956, 22.2483],
         [-1.5307, 3.6955, 23.4775],
         [-1.5307, 3.6955, 22.3108],
         [-2.2961, 5.5433, 23.4775],
         [-2.2961, 5.5433, 22.3108],
         [-2.0, 3.4641, 23.54],
         [-2.0, 3.4641, 22.3733],
         [-3.0, 5.1962, 23.54],
         [-3.0, 5.1962, 22.3733],
         [-2.435, 3.1734, 23.6025],
         [-2.435, 3.1734, 22.4358],
         [-3.6526, 4.7601, 23.6025],
         [-3.6526, 4.7601, 22.4358],
         [-2.8284, 2.8284, 23.665],
         [-2.8284, 2.8284, 22.4983],
         [-4.2426, 4.2426, 23.665],
         [-4.2426, 4.2426, 22.4983],
         [-3.1734, 2.435, 23.7275],
         [-3.1734, 2.435, 22.5608],
         [-4.7601, 3.6526, 23.7275],
         [-4.7601, 3.6526, 22.5608],
         [-3.4641, 2.0, 23.79],
         [-3.4641, 2.0, 22.6233],
         [-5.1962, 3.0, 23.79],
         [-5.1962, 3.0, 22.6233],
         [-3.6955, 1.5307, 23.8525],
         [-3.6955, 1.5307, 22.6858],
         [-5.5433, 2.2961, 23.8525],
         [-5.5433, 2.2961, 22.6858],
         [-3.8637, 1.0353, 23.915],
         [-3.8637, 1.0353, 22.7483],
         [-5.7956, 1.5529, 23.915],
         [-5.7956, 1.5529, 22.7483],
         [-3.9658, 0.5221, 23.9775],
         [-3.9658, 0.5221, 22.8108],
         [-5.9487, 0.7832, 23.9775],
         [-5.9487, 0.7832, 22.8108],
         [-4.0, 0.0, 24.04],
         [-4.0, 0.0, 22.8733],
         [-6.0, 0.0, 24.04],
         [-6.0, 0.0, 22.8733],
         [-3.9658, -0.5221, 24.1025],
         [-3.9658, -0.5221, 22.9358],
         [-5.9487, -0.7832, 24.1025],
         [-5.9487, -0.7832, 22.9358],
         [-3.8637, -1.0353, 24.165],
         [-3.8637, -1.0353, 22.9983],
         [-5.7956, -1.5529, 24.165],
         [-5.7956, -1.5529, 22.9983],
         [-3.6955, -1.5307, 24.2275],
         [-3.6955, -1.5307, 23.0608],
         [-5.5433, -2.2961, 24.2275],
         [-5.5433, -2.2961, 23.0608],
         [-3.4641, -2.0, 24.29],
         [-3.4641, -2.0, 23.1233],
         [-5.1962, -3.0, 24.29],
         [-5.1962, -3.0, 23.1233],
         [-3.1734, -2.435, 24.3525],
         [-3.1734, -2.435, 23.1858],
         [-4.7601, -3.6526, 24.3525],
         [-4.7601, -3.6526, 23.1858],
         [-2.8284, -2.8284, 24.415],
         [-2.8284, -2.8284, 23.2483],
         [-4.2426, -4.2426, 24.415],
         [-4.2426, -4.2426, 23.2483],
         [-2.435, -3.1734, 24.4775],
         [-2.435, -3.1734, 23.3108],
         [-3.6526, -4.7601, 24.4775],
         [-3.6526, -4.7601, 23.3108],
         [-2.0, -3.4641, 24.54],
         [-2.0, -3.4641, 23.3733],
         [-3.0, -5.1962, 24.54],
         [-3.0, -5.1962, 23.3733],
         [-1.5307, -3.6955, 24.6025],
         [-1.5307, -3.6955, 23.4358],
         [-2.2961, -5.5433, 24.6025],
         [-2.2961, -5.5433, 23.4358],
         [-1.0353, -3.8637, 24.665],
         [-1.0353, -3.8637, 23.4983],
         [-1.5529, -5.7956, 24.665],
         [-1.5529, -5.7956, 23.4983],
         [-0.5221, -3.9658, 24.7275],
         [-0.5221, -3.9658, 23.5608],
         [-0.7832, -5.9487, 24.7275],
         [-0.7832, -5.9487, 23.5608],
         [-0.0, -4.0, 24.79],
         [-0.0, -4.0, 23.6233],
         [-0.0, -6.0, 24.79],
         [-0.0, -6.0, 23.6233],
         [0.5221, -3.9658, 24.8525],
         [0.5221, -3.9658, 23.6858],
         [0.7832, -5.9487, 24.8525],
         [0.7832, -5.9487, 23.6858],
         [1.0353, -3.8637, 24.915],
         [1.0353, -3.8637, 23.7483],
         [1.5529, -5.7956, 24.915],
         [1.5529, -5.7956, 23.7483],
         [1.5307, -3.6955, 24.9775],
         [1.5307, -3.6955, 23.8108],
         [2.2961, -5.5433, 24.9775],
         [2.2961, -5.5433, 23.8108],
         [2.0, -3.4641, 25.04],
         [2.0, -3.4641, 23.8733],
         [3.0, -5.1962, 25.04],
         [3.0, -5.1962, 23.8733],
         [2.435, -3.1734, 25.1025],
         [2.435, -3.1734, 23.9358],
         [3.6526, -4.7601, 25.1025],
         [3.6526, -4.7601, 23.9358],
         [2.8284, -2.8284, 25.165],
         [2.8284, -2.8284, 23.9983],
         [4.2426, -4.2426, 25.165],
         [4.2426, -4.2426, 23.9983],
         [3.1734, -2.435, 25.2275],
         [3.1734, -2.435, 24.0608],
         [4.7601, -3.6526, 25.2275],
         [4.7601, -3.6526, 24.0608],
         [3.4641, -2.0, 25.29],
         [3.4641, -2.0, 24.1233],
         [5.1962, -3.0, 25.29],
         [5.1962, -3.0, 24.1233],
         [3.6955, -1.5307, 25.3525],
         [3.6955, -1.5307, 24.1858],
         [5.5433, -2.2961, 25.3525],
         [5.5433, -2.2961, 24.1858],
         [3.8637, -1.0353, 25.415],
         [3.8637, -1.0353, 24.2483],
         [5.7956, -1.5529, 25.415],
         [5.7956, -1.5529, 24.2483],
         [3.9658, -0.5221, 25.4775],
         [3.9658, -0.5221, 24.3108],
         [5.9487, -0.7832, 25.4775],
         [5.9487, -0.7832, 24.3108],
         [4.0, -0.0, 25.54],
         [4.0, -0.0, 24.3733],
         [6.0, -0.0, 25.54],
         [6.0, -0.0, 24.3733],
         [3.9658, 0.5221, 25.6025],
         [3.9658, 0.5221, 24.4358],
         [5.9487, 0.7832, 25.6025],
         [5.9487, 0.7832, 24.4358],
         [3.8637, 1.0353, 25.665],
         [3.8637, 1.0353, 24.4983],
         [5.7956, 1.5529, 25.665],
         [5.7956, 1.5529, 24.4983],
         [3.6955, 1.5307, 25.7275],
         [3.6955, 1.5307, 24.5608],
         [5.5433, 2.2961, 25.7275],
         [5.5433, 2.2961, 24.5608],
         [3.4641, 2.0, 25.79],
         [3.4641, 2.0, 24.6233],
         [5.1962, 3.0, 25.79],
         [5.1962, 3.0, 24.6233],
         [3.1734, 2.435, 25.8525],
         [3.1734, 2.435, 24.6858],
         [4.7601, 3.6526, 25.8525],
         [4.7601, 3.6526, 24.6858],
         [2.8284, 2.8284, 25.915],
         [2.8284, 2.8284, 24.7483],
         [4.2426, 4.2426, 25.915],
         [4.2426, 4.2426, 24.7483],
         [2.435, 3.1734, 25.9775],
         [2.435, 3.1734, 24.8108],
         [3.6526, 4.7601, 25.9775],
         [3.6526, 4.7601, 24.8108],
         [2.0, 3.4641, 26.04],
         [2.0, 3.4641, 24.8733],
         [3.0, 5.1962, 26.04],
         [3.0, 5.1962, 24.8733],
         [1.5307, 3.6955, 26.1025],
         [1.5307, 3.6955, 24.9358],
         [2.2961, 5.5433, 26.1025],
         [2.2961, 5.5433, 24.9358],
         [1.0353, 3.8637, 26.165],
         [1.0353, 3.8637, 24.9983],
         [1.5529, 5.7956, 26.165],
         [1.5529, 5.7956, 24.9983],
         [0.5221, 3.9658, 26.2275],
         [0.5221, 3.9658, 25.0608],
         [0.7832, 5.9487, 26.2275],
         [0.7832, 5.9487, 25.0608],
         [0.0, 4.0, 26.29],
         [0.0, 4.0, 25.1233],
         [0.0, 6.0, 26.29],
         [0.0, 6.0, 25.1233],
         [-0.5221, 3.9658, 26.3525],
         [-0.5221, 3.9658, 25.1858],
         [-0.7832, 5.9487, 26.3525],
         [-0.7832, 5.9487, 25.1858],
         [-1.0353, 3.8637, 26.415],
         [-1.0353, 3.8637, 25.2483],
         [-1.5529, 5.7956, 26.415],
         [-1.5529, 5.7956, 25.2483],
         [-1.5307, 3.6955, 26.4775],
         [-1.5307, 3.6955, 25.3108],
         [-2.2961, 5.5433, 26.4775],
         [-2.2961, 5.5433, 25.3108]],
           faces = [[0, 1, 3, 2],
         [1596, 1598, 1599, 1597],
         [0, 2, 6, 4],
         [1, 5, 7, 3],
         [4, 6, 10, 8],
         [5, 9, 11, 7],
         [8, 10, 14, 12],
         [9, 13, 15, 11],
         [12, 14, 18, 16],
         [13, 17, 19, 15],
         [16, 18, 22, 20],
         [17, 21, 23, 19],
         [20, 22, 26, 24],
         [21, 25, 27, 23],
         [24, 26, 30, 28],
         [25, 29, 31, 27],
         [28, 30, 34, 32],
         [29, 33, 35, 31],
         [32, 34, 38, 36],
         [33, 37, 39, 35],
         [36, 38, 42, 40],
         [37, 41, 43, 39],
         [40, 42, 46, 44],
         [41, 45, 47, 43],
         [44, 46, 50, 48],
         [45, 49, 51, 47],
         [48, 50, 54, 52],
         [49, 53, 55, 51],
         [52, 54, 58, 56],
         [53, 57, 59, 55],
         [56, 58, 62, 60],
         [57, 61, 63, 59],
         [60, 62, 66, 64],
         [61, 65, 67, 63],
         [64, 66, 70, 68],
         [65, 69, 71, 67],
         [68, 70, 74, 72],
         [69, 73, 75, 71],
         [72, 74, 78, 76],
         [73, 77, 79, 75],
         [76, 78, 82, 80],
         [77, 81, 83, 79],
         [80, 82, 86, 84],
         [81, 85, 87, 83],
         [84, 86, 90, 88],
         [85, 89, 91, 87],
         [88, 90, 94, 92],
         [89, 93, 95, 91],
         [92, 94, 98, 96],
         [93, 97, 99, 95],
         [96, 98, 102, 100],
         [97, 101, 103, 99],
         [100, 102, 106, 104],
         [101, 105, 107, 103],
         [104, 106, 110, 108],
         [105, 109, 111, 107],
         [108, 110, 114, 112],
         [109, 113, 115, 111],
         [112, 114, 118, 116],
         [113, 117, 119, 115],
         [116, 118, 122, 120],
         [117, 121, 123, 119],
         [120, 122, 126, 124],
         [121, 125, 127, 123],
         [124, 126, 130, 128],
         [125, 129, 131, 127],
         [128, 130, 134, 132],
         [129, 133, 135, 131],
         [132, 134, 138, 136],
         [133, 137, 139, 135],
         [136, 138, 142, 140],
         [137, 141, 143, 139],
         [140, 142, 146, 144],
         [141, 145, 147, 143],
         [144, 146, 150, 148],
         [145, 149, 151, 147],
         [148, 150, 154, 152],
         [149, 153, 155, 151],
         [152, 154, 158, 156],
         [153, 157, 159, 155],
         [156, 158, 162, 160],
         [157, 161, 163, 159],
         [160, 162, 166, 164],
         [161, 165, 167, 163],
         [164, 166, 170, 168],
         [165, 169, 171, 167],
         [168, 170, 174, 172],
         [169, 173, 175, 171],
         [172, 174, 178, 176],
         [173, 177, 179, 175],
         [176, 178, 182, 180],
         [177, 181, 183, 179],
         [180, 182, 186, 184],
         [181, 185, 187, 183],
         [184, 186, 190, 188],
         [185, 189, 191, 187],
         [188, 190, 194, 192],
         [189, 193, 195, 191],
         [192, 194, 198, 196],
         [193, 197, 199, 195],
         [196, 198, 202, 200],
         [197, 201, 203, 199],
         [200, 202, 206, 204],
         [201, 205, 207, 203],
         [204, 206, 210, 208],
         [205, 209, 211, 207],
         [208, 210, 214, 212],
         [209, 213, 215, 211],
         [212, 214, 218, 216],
         [213, 217, 219, 215],
         [216, 218, 222, 220],
         [217, 221, 223, 219],
         [220, 222, 226, 224],
         [221, 225, 227, 223],
         [224, 226, 230, 228],
         [225, 229, 231, 227],
         [228, 230, 234, 232],
         [229, 233, 235, 231],
         [232, 234, 238, 236],
         [233, 237, 239, 235],
         [236, 238, 242, 240],
         [237, 241, 243, 239],
         [240, 242, 246, 244],
         [241, 245, 247, 243],
         [244, 246, 250, 248],
         [245, 249, 251, 247],
         [248, 250, 254, 252],
         [249, 253, 255, 251],
         [252, 254, 258, 256],
         [253, 257, 259, 255],
         [256, 258, 262, 260],
         [257, 261, 263, 259],
         [260, 262, 266, 264],
         [261, 265, 267, 263],
         [264, 266, 270, 268],
         [265, 269, 271, 267],
         [268, 270, 274, 272],
         [269, 273, 275, 271],
         [272, 274, 278, 276],
         [273, 277, 279, 275],
         [276, 278, 282, 280],
         [277, 281, 283, 279],
         [280, 282, 286, 284],
         [281, 285, 287, 283],
         [284, 286, 290, 288],
         [285, 289, 291, 287],
         [288, 290, 294, 292],
         [289, 293, 295, 291],
         [292, 294, 298, 296],
         [293, 297, 299, 295],
         [296, 298, 302, 300],
         [297, 301, 303, 299],
         [300, 302, 306, 304],
         [301, 305, 307, 303],
         [304, 306, 310, 308],
         [305, 309, 311, 307],
         [308, 310, 314, 312],
         [309, 313, 315, 311],
         [312, 314, 318, 316],
         [313, 317, 319, 315],
         [316, 318, 322, 320],
         [317, 321, 323, 319],
         [320, 322, 326, 324],
         [321, 325, 327, 323],
         [324, 326, 330, 328],
         [325, 329, 331, 327],
         [328, 330, 334, 332],
         [329, 333, 335, 331],
         [332, 334, 338, 336],
         [333, 337, 339, 335],
         [336, 338, 342, 340],
         [337, 341, 343, 339],
         [340, 342, 346, 344],
         [341, 345, 347, 343],
         [344, 346, 350, 348],
         [345, 349, 351, 347],
         [348, 350, 354, 352],
         [349, 353, 355, 351],
         [352, 354, 358, 356],
         [353, 357, 359, 355],
         [356, 358, 362, 360],
         [357, 361, 363, 359],
         [360, 362, 366, 364],
         [361, 365, 367, 363],
         [364, 366, 370, 368],
         [365, 369, 371, 367],
         [368, 370, 374, 372],
         [369, 373, 375, 371],
         [372, 374, 378, 376],
         [373, 377, 379, 375],
         [376, 378, 382, 380],
         [377, 381, 383, 379],
         [380, 382, 386, 384],
         [381, 385, 387, 383],
         [384, 386, 390, 388],
         [385, 389, 391, 387],
         [388, 390, 394, 392],
         [389, 393, 395, 391],
         [392, 394, 398, 396],
         [393, 397, 399, 395],
         [396, 398, 402, 400],
         [397, 401, 403, 399],
         [400, 402, 406, 404],
         [401, 405, 407, 403],
         [404, 406, 410, 408],
         [405, 409, 411, 407],
         [408, 410, 414, 412],
         [409, 413, 415, 411],
         [412, 414, 418, 416],
         [413, 417, 419, 415],
         [416, 418, 422, 420],
         [417, 421, 423, 419],
         [420, 422, 426, 424],
         [421, 425, 427, 423],
         [424, 426, 430, 428],
         [425, 429, 431, 427],
         [428, 430, 434, 432],
         [429, 433, 435, 431],
         [432, 434, 438, 436],
         [433, 437, 439, 435],
         [436, 438, 442, 440],
         [437, 441, 443, 439],
         [440, 442, 446, 444],
         [441, 445, 447, 443],
         [444, 446, 450, 448],
         [445, 449, 451, 447],
         [448, 450, 454, 452],
         [449, 453, 455, 451],
         [452, 454, 458, 456],
         [453, 457, 459, 455],
         [456, 458, 462, 460],
         [457, 461, 463, 459],
         [460, 462, 466, 464],
         [461, 465, 467, 463],
         [464, 466, 470, 468],
         [465, 469, 471, 467],
         [468, 470, 474, 472],
         [469, 473, 475, 471],
         [472, 474, 478, 476],
         [473, 477, 479, 475],
         [476, 478, 482, 480],
         [477, 481, 483, 479],
         [480, 482, 486, 484],
         [481, 485, 487, 483],
         [484, 486, 490, 488],
         [485, 489, 491, 487],
         [488, 490, 494, 492],
         [489, 493, 495, 491],
         [492, 494, 498, 496],
         [493, 497, 499, 495],
         [496, 498, 502, 500],
         [497, 501, 503, 499],
         [500, 502, 506, 504],
         [501, 505, 507, 503],
         [504, 506, 510, 508],
         [505, 509, 511, 507],
         [508, 510, 514, 512],
         [509, 513, 515, 511],
         [512, 514, 518, 516],
         [513, 517, 519, 515],
         [516, 518, 522, 520],
         [517, 521, 523, 519],
         [520, 522, 526, 524],
         [521, 525, 527, 523],
         [524, 526, 530, 528],
         [525, 529, 531, 527],
         [528, 530, 534, 532],
         [529, 533, 535, 531],
         [532, 534, 538, 536],
         [533, 537, 539, 535],
         [536, 538, 542, 540],
         [537, 541, 543, 539],
         [540, 542, 546, 544],
         [541, 545, 547, 543],
         [544, 546, 550, 548],
         [545, 549, 551, 547],
         [548, 550, 554, 552],
         [549, 553, 555, 551],
         [552, 554, 558, 556],
         [553, 557, 559, 555],
         [556, 558, 562, 560],
         [557, 561, 563, 559],
         [560, 562, 566, 564],
         [561, 565, 567, 563],
         [564, 566, 570, 568],
         [565, 569, 571, 567],
         [568, 570, 574, 572],
         [569, 573, 575, 571],
         [572, 574, 578, 576],
         [573, 577, 579, 575],
         [576, 578, 582, 580],
         [577, 581, 583, 579],
         [580, 582, 586, 584],
         [581, 585, 587, 583],
         [584, 586, 590, 588],
         [585, 589, 591, 587],
         [588, 590, 594, 592],
         [589, 593, 595, 591],
         [592, 594, 598, 596],
         [593, 597, 599, 595],
         [596, 598, 602, 600],
         [597, 601, 603, 599],
         [600, 602, 606, 604],
         [601, 605, 607, 603],
         [604, 606, 610, 608],
         [605, 609, 611, 607],
         [608, 610, 614, 612],
         [609, 613, 615, 611],
         [612, 614, 618, 616],
         [613, 617, 619, 615],
         [616, 618, 622, 620],
         [617, 621, 623, 619],
         [620, 622, 626, 624],
         [621, 625, 627, 623],
         [624, 626, 630, 628],
         [625, 629, 631, 627],
         [628, 630, 634, 632],
         [629, 633, 635, 631],
         [632, 634, 638, 636],
         [633, 637, 639, 635],
         [636, 638, 642, 640],
         [637, 641, 643, 639],
         [640, 642, 646, 644],
         [641, 645, 647, 643],
         [644, 646, 650, 648],
         [645, 649, 651, 647],
         [648, 650, 654, 652],
         [649, 653, 655, 651],
         [652, 654, 658, 656],
         [653, 657, 659, 655],
         [656, 658, 662, 660],
         [657, 661, 663, 659],
         [660, 662, 666, 664],
         [661, 665, 667, 663],
         [664, 666, 670, 668],
         [665, 669, 671, 667],
         [668, 670, 674, 672],
         [669, 673, 675, 671],
         [672, 674, 678, 676],
         [673, 677, 679, 675],
         [676, 678, 682, 680],
         [677, 681, 683, 679],
         [680, 682, 686, 684],
         [681, 685, 687, 683],
         [684, 686, 690, 688],
         [685, 689, 691, 687],
         [688, 690, 694, 692],
         [689, 693, 695, 691],
         [692, 694, 698, 696],
         [693, 697, 699, 695],
         [696, 698, 702, 700],
         [697, 701, 703, 699],
         [700, 702, 706, 704],
         [701, 705, 707, 703],
         [704, 706, 710, 708],
         [705, 709, 711, 707],
         [708, 710, 714, 712],
         [709, 713, 715, 711],
         [712, 714, 718, 716],
         [713, 717, 719, 715],
         [716, 718, 722, 720],
         [717, 721, 723, 719],
         [720, 722, 726, 724],
         [721, 725, 727, 723],
         [724, 726, 730, 728],
         [725, 729, 731, 727],
         [728, 730, 734, 732],
         [729, 733, 735, 731],
         [732, 734, 738, 736],
         [733, 737, 739, 735],
         [736, 738, 742, 740],
         [737, 741, 743, 739],
         [740, 742, 746, 744],
         [741, 745, 747, 743],
         [744, 746, 750, 748],
         [745, 749, 751, 747],
         [748, 750, 754, 752],
         [749, 753, 755, 751],
         [752, 754, 758, 756],
         [753, 757, 759, 755],
         [756, 758, 762, 760],
         [757, 761, 763, 759],
         [760, 762, 766, 764],
         [761, 765, 767, 763],
         [764, 766, 770, 768],
         [765, 769, 771, 767],
         [768, 770, 774, 772],
         [769, 773, 775, 771],
         [772, 774, 778, 776],
         [773, 777, 779, 775],
         [776, 778, 782, 780],
         [777, 781, 783, 779],
         [780, 782, 786, 784],
         [781, 785, 787, 783],
         [784, 786, 790, 788],
         [785, 789, 791, 787],
         [788, 790, 794, 792],
         [789, 793, 795, 791],
         [792, 794, 798, 796],
         [793, 797, 799, 795],
         [796, 798, 802, 800],
         [797, 801, 803, 799],
         [800, 802, 806, 804],
         [801, 805, 807, 803],
         [804, 806, 810, 808],
         [805, 809, 811, 807],
         [808, 810, 814, 812],
         [809, 813, 815, 811],
         [812, 814, 818, 816],
         [813, 817, 819, 815],
         [816, 818, 822, 820],
         [817, 821, 823, 819],
         [820, 822, 826, 824],
         [821, 825, 827, 823],
         [824, 826, 830, 828],
         [825, 829, 831, 827],
         [828, 830, 834, 832],
         [829, 833, 835, 831],
         [832, 834, 838, 836],
         [833, 837, 839, 835],
         [836, 838, 842, 840],
         [837, 841, 843, 839],
         [840, 842, 846, 844],
         [841, 845, 847, 843],
         [844, 846, 850, 848],
         [845, 849, 851, 847],
         [848, 850, 854, 852],
         [849, 853, 855, 851],
         [852, 854, 858, 856],
         [853, 857, 859, 855],
         [856, 858, 862, 860],
         [857, 861, 863, 859],
         [860, 862, 866, 864],
         [861, 865, 867, 863],
         [864, 866, 870, 868],
         [865, 869, 871, 867],
         [868, 870, 874, 872],
         [869, 873, 875, 871],
         [872, 874, 878, 876],
         [873, 877, 879, 875],
         [876, 878, 882, 880],
         [877, 881, 883, 879],
         [880, 882, 886, 884],
         [881, 885, 887, 883],
         [884, 886, 890, 888],
         [885, 889, 891, 887],
         [888, 890, 894, 892],
         [889, 893, 895, 891],
         [892, 894, 898, 896],
         [893, 897, 899, 895],
         [896, 898, 902, 900],
         [897, 901, 903, 899],
         [900, 902, 906, 904],
         [901, 905, 907, 903],
         [904, 906, 910, 908],
         [905, 909, 911, 907],
         [908, 910, 914, 912],
         [909, 913, 915, 911],
         [912, 914, 918, 916],
         [913, 917, 919, 915],
         [916, 918, 922, 920],
         [917, 921, 923, 919],
         [920, 922, 926, 924],
         [921, 925, 927, 923],
         [924, 926, 930, 928],
         [925, 929, 931, 927],
         [928, 930, 934, 932],
         [929, 933, 935, 931],
         [932, 934, 938, 936],
         [933, 937, 939, 935],
         [936, 938, 942, 940],
         [937, 941, 943, 939],
         [940, 942, 946, 944],
         [941, 945, 947, 943],
         [944, 946, 950, 948],
         [945, 949, 951, 947],
         [948, 950, 954, 952],
         [949, 953, 955, 951],
         [952, 954, 958, 956],
         [953, 957, 959, 955],
         [956, 958, 962, 960],
         [957, 961, 963, 959],
         [960, 962, 966, 964],
         [961, 965, 967, 963],
         [964, 966, 970, 968],
         [965, 969, 971, 967],
         [968, 970, 974, 972],
         [969, 973, 975, 971],
         [972, 974, 978, 976],
         [973, 977, 979, 975],
         [976, 978, 982, 980],
         [977, 981, 983, 979],
         [980, 982, 986, 984],
         [981, 985, 987, 983],
         [984, 986, 990, 988],
         [985, 989, 991, 987],
         [988, 990, 994, 992],
         [989, 993, 995, 991],
         [992, 994, 998, 996],
         [993, 997, 999, 995],
         [996, 998, 1002, 1000],
         [997, 1001, 1003, 999],
         [1000, 1002, 1006, 1004],
         [1001, 1005, 1007, 1003],
         [1004, 1006, 1010, 1008],
         [1005, 1009, 1011, 1007],
         [1008, 1010, 1014, 1012],
         [1009, 1013, 1015, 1011],
         [1012, 1014, 1018, 1016],
         [1013, 1017, 1019, 1015],
         [1016, 1018, 1022, 1020],
         [1017, 1021, 1023, 1019],
         [1020, 1022, 1026, 1024],
         [1021, 1025, 1027, 1023],
         [1024, 1026, 1030, 1028],
         [1025, 1029, 1031, 1027],
         [1028, 1030, 1034, 1032],
         [1029, 1033, 1035, 1031],
         [1032, 1034, 1038, 1036],
         [1033, 1037, 1039, 1035],
         [1036, 1038, 1042, 1040],
         [1037, 1041, 1043, 1039],
         [1040, 1042, 1046, 1044],
         [1041, 1045, 1047, 1043],
         [1044, 1046, 1050, 1048],
         [1045, 1049, 1051, 1047],
         [1048, 1050, 1054, 1052],
         [1049, 1053, 1055, 1051],
         [1052, 1054, 1058, 1056],
         [1053, 1057, 1059, 1055],
         [1056, 1058, 1062, 1060],
         [1057, 1061, 1063, 1059],
         [1060, 1062, 1066, 1064],
         [1061, 1065, 1067, 1063],
         [1064, 1066, 1070, 1068],
         [1065, 1069, 1071, 1067],
         [1068, 1070, 1074, 1072],
         [1069, 1073, 1075, 1071],
         [1072, 1074, 1078, 1076],
         [1073, 1077, 1079, 1075],
         [1076, 1078, 1082, 1080],
         [1077, 1081, 1083, 1079],
         [1080, 1082, 1086, 1084],
         [1081, 1085, 1087, 1083],
         [1084, 1086, 1090, 1088],
         [1085, 1089, 1091, 1087],
         [1088, 1090, 1094, 1092],
         [1089, 1093, 1095, 1091],
         [1092, 1094, 1098, 1096],
         [1093, 1097, 1099, 1095],
         [1096, 1098, 1102, 1100],
         [1097, 1101, 1103, 1099],
         [1100, 1102, 1106, 1104],
         [1101, 1105, 1107, 1103],
         [1104, 1106, 1110, 1108],
         [1105, 1109, 1111, 1107],
         [1108, 1110, 1114, 1112],
         [1109, 1113, 1115, 1111],
         [1112, 1114, 1118, 1116],
         [1113, 1117, 1119, 1115],
         [1116, 1118, 1122, 1120],
         [1117, 1121, 1123, 1119],
         [1120, 1122, 1126, 1124],
         [1121, 1125, 1127, 1123],
         [1124, 1126, 1130, 1128],
         [1125, 1129, 1131, 1127],
         [1128, 1130, 1134, 1132],
         [1129, 1133, 1135, 1131],
         [1132, 1134, 1138, 1136],
         [1133, 1137, 1139, 1135],
         [1136, 1138, 1142, 1140],
         [1137, 1141, 1143, 1139],
         [1140, 1142, 1146, 1144],
         [1141, 1145, 1147, 1143],
         [1144, 1146, 1150, 1148],
         [1145, 1149, 1151, 1147],
         [1148, 1150, 1154, 1152],
         [1149, 1153, 1155, 1151],
         [1152, 1154, 1158, 1156],
         [1153, 1157, 1159, 1155],
         [1156, 1158, 1162, 1160],
         [1157, 1161, 1163, 1159],
         [1160, 1162, 1166, 1164],
         [1161, 1165, 1167, 1163],
         [1164, 1166, 1170, 1168],
         [1165, 1169, 1171, 1167],
         [1168, 1170, 1174, 1172],
         [1169, 1173, 1175, 1171],
         [1172, 1174, 1178, 1176],
         [1173, 1177, 1179, 1175],
         [1176, 1178, 1182, 1180],
         [1177, 1181, 1183, 1179],
         [1180, 1182, 1186, 1184],
         [1181, 1185, 1187, 1183],
         [1184, 1186, 1190, 1188],
         [1185, 1189, 1191, 1187],
         [1188, 1190, 1194, 1192],
         [1189, 1193, 1195, 1191],
         [1192, 1194, 1198, 1196],
         [1193, 1197, 1199, 1195],
         [1196, 1198, 1202, 1200],
         [1197, 1201, 1203, 1199],
         [1200, 1202, 1206, 1204],
         [1201, 1205, 1207, 1203],
         [1204, 1206, 1210, 1208],
         [1205, 1209, 1211, 1207],
         [1208, 1210, 1214, 1212],
         [1209, 1213, 1215, 1211],
         [1212, 1214, 1218, 1216],
         [1213, 1217, 1219, 1215],
         [1216, 1218, 1222, 1220],
         [1217, 1221, 1223, 1219],
         [1220, 1222, 1226, 1224],
         [1221, 1225, 1227, 1223],
         [1224, 1226, 1230, 1228],
         [1225, 1229, 1231, 1227],
         [1228, 1230, 1234, 1232],
         [1229, 1233, 1235, 1231],
         [1232, 1234, 1238, 1236],
         [1233, 1237, 1239, 1235],
         [1236, 1238, 1242, 1240],
         [1237, 1241, 1243, 1239],
         [1240, 1242, 1246, 1244],
         [1241, 1245, 1247, 1243],
         [1244, 1246, 1250, 1248],
         [1245, 1249, 1251, 1247],
         [1248, 1250, 1254, 1252],
         [1249, 1253, 1255, 1251],
         [1252, 1254, 1258, 1256],
         [1253, 1257, 1259, 1255],
         [1256, 1258, 1262, 1260],
         [1257, 1261, 1263, 1259],
         [1260, 1262, 1266, 1264],
         [1261, 1265, 1267, 1263],
         [1264, 1266, 1270, 1268],
         [1265, 1269, 1271, 1267],
         [1268, 1270, 1274, 1272],
         [1269, 1273, 1275, 1271],
         [1272, 1274, 1278, 1276],
         [1273, 1277, 1279, 1275],
         [1276, 1278, 1282, 1280],
         [1277, 1281, 1283, 1279],
         [1280, 1282, 1286, 1284],
         [1281, 1285, 1287, 1283],
         [1284, 1286, 1290, 1288],
         [1285, 1289, 1291, 1287],
         [1288, 1290, 1294, 1292],
         [1289, 1293, 1295, 1291],
         [1292, 1294, 1298, 1296],
         [1293, 1297, 1299, 1295],
         [1296, 1298, 1302, 1300],
         [1297, 1301, 1303, 1299],
         [1300, 1302, 1306, 1304],
         [1301, 1305, 1307, 1303],
         [1304, 1306, 1310, 1308],
         [1305, 1309, 1311, 1307],
         [1308, 1310, 1314, 1312],
         [1309, 1313, 1315, 1311],
         [1312, 1314, 1318, 1316],
         [1313, 1317, 1319, 1315],
         [1316, 1318, 1322, 1320],
         [1317, 1321, 1323, 1319],
         [1320, 1322, 1326, 1324],
         [1321, 1325, 1327, 1323],
         [1324, 1326, 1330, 1328],
         [1325, 1329, 1331, 1327],
         [1328, 1330, 1334, 1332],
         [1329, 1333, 1335, 1331],
         [1332, 1334, 1338, 1336],
         [1333, 1337, 1339, 1335],
         [1336, 1338, 1342, 1340],
         [1337, 1341, 1343, 1339],
         [1340, 1342, 1346, 1344],
         [1341, 1345, 1347, 1343],
         [1344, 1346, 1350, 1348],
         [1345, 1349, 1351, 1347],
         [1348, 1350, 1354, 1352],
         [1349, 1353, 1355, 1351],
         [1352, 1354, 1358, 1356],
         [1353, 1357, 1359, 1355],
         [1356, 1358, 1362, 1360],
         [1357, 1361, 1363, 1359],
         [1360, 1362, 1366, 1364],
         [1361, 1365, 1367, 1363],
         [1364, 1366, 1370, 1368],
         [1365, 1369, 1371, 1367],
         [1368, 1370, 1374, 1372],
         [1369, 1373, 1375, 1371],
         [1372, 1374, 1378, 1376],
         [1373, 1377, 1379, 1375],
         [1376, 1378, 1382, 1380],
         [1377, 1381, 1383, 1379],
         [1380, 1382, 1386, 1384],
         [1381, 1385, 1387, 1383],
         [1384, 1386, 1390, 1388],
         [1385, 1389, 1391, 1387],
         [1388, 1390, 1394, 1392],
         [1389, 1393, 1395, 1391],
         [1392, 1394, 1398, 1396],
         [1393, 1397, 1399, 1395],
         [1396, 1398, 1402, 1400],
         [1397, 1401, 1403, 1399],
         [1400, 1402, 1406, 1404],
         [1401, 1405, 1407, 1403],
         [1404, 1406, 1410, 1408],
         [1405, 1409, 1411, 1407],
         [1408, 1410, 1414, 1412],
         [1409, 1413, 1415, 1411],
         [1412, 1414, 1418, 1416],
         [1413, 1417, 1419, 1415],
         [1416, 1418, 1422, 1420],
         [1417, 1421, 1423, 1419],
         [1420, 1422, 1426, 1424],
         [1421, 1425, 1427, 1423],
         [1424, 1426, 1430, 1428],
         [1425, 1429, 1431, 1427],
         [1428, 1430, 1434, 1432],
         [1429, 1433, 1435, 1431],
         [1432, 1434, 1438, 1436],
         [1433, 1437, 1439, 1435],
         [1436, 1438, 1442, 1440],
         [1437, 1441, 1443, 1439],
         [1440, 1442, 1446, 1444],
         [1441, 1445, 1447, 1443],
         [1444, 1446, 1450, 1448],
         [1445, 1449, 1451, 1447],
         [1448, 1450, 1454, 1452],
         [1449, 1453, 1455, 1451],
         [1452, 1454, 1458, 1456],
         [1453, 1457, 1459, 1455],
         [1456, 1458, 1462, 1460],
         [1457, 1461, 1463, 1459],
         [1460, 1462, 1466, 1464],
         [1461, 1465, 1467, 1463],
         [1464, 1466, 1470, 1468],
         [1465, 1469, 1471, 1467],
         [1468, 1470, 1474, 1472],
         [1469, 1473, 1475, 1471],
         [1472, 1474, 1478, 1476],
         [1473, 1477, 1479, 1475],
         [1476, 1478, 1482, 1480],
         [1477, 1481, 1483, 1479],
         [1480, 1482, 1486, 1484],
         [1481, 1485, 1487, 1483],
         [1484, 1486, 1490, 1488],
         [1485, 1489, 1491, 1487],
         [1488, 1490, 1494, 1492],
         [1489, 1493, 1495, 1491],
         [1492, 1494, 1498, 1496],
         [1493, 1497, 1499, 1495],
         [1496, 1498, 1502, 1500],
         [1497, 1501, 1503, 1499],
         [1500, 1502, 1506, 1504],
         [1501, 1505, 1507, 1503],
         [1504, 1506, 1510, 1508],
         [1505, 1509, 1511, 1507],
         [1508, 1510, 1514, 1512],
         [1509, 1513, 1515, 1511],
         [1512, 1514, 1518, 1516],
         [1513, 1517, 1519, 1515],
         [1516, 1518, 1522, 1520],
         [1517, 1521, 1523, 1519],
         [1520, 1522, 1526, 1524],
         [1521, 1525, 1527, 1523],
         [1524, 1526, 1530, 1528],
         [1525, 1529, 1531, 1527],
         [1528, 1530, 1534, 1532],
         [1529, 1533, 1535, 1531],
         [1532, 1534, 1538, 1536],
         [1533, 1537, 1539, 1535],
         [1536, 1538, 1542, 1540],
         [1537, 1541, 1543, 1539],
         [1540, 1542, 1546, 1544],
         [1541, 1545, 1547, 1543],
         [1544, 1546, 1550, 1548],
         [1545, 1549, 1551, 1547],
         [1548, 1550, 1554, 1552],
         [1549, 1553, 1555, 1551],
         [1552, 1554, 1558, 1556],
         [1553, 1557, 1559, 1555],
         [1556, 1558, 1562, 1560],
         [1557, 1561, 1563, 1559],
         [1560, 1562, 1566, 1564],
         [1561, 1565, 1567, 1563],
         [1564, 1566, 1570, 1568],
         [1565, 1569, 1571, 1567],
         [1568, 1570, 1574, 1572],
         [1569, 1573, 1575, 1571],
         [1572, 1574, 1578, 1576],
         [1573, 1577, 1579, 1575],
         [1576, 1578, 1582, 1580],
         [1577, 1581, 1583, 1579],
         [1580, 1582, 1586, 1584],
         [1581, 1585, 1587, 1583],
         [1584, 1586, 1590, 1588],
         [1585, 1589, 1591, 1587],
         [1588, 1590, 1594, 1592],
         [1589, 1593, 1595, 1591],
         [1592, 1594, 1598, 1596],
         [1593, 1597, 1599, 1595],
         [2, 3, 7, 6],
         [6, 7, 11, 10],
         [10, 11, 15, 14],
         [14, 15, 19, 18],
         [18, 19, 23, 22],
         [22, 23, 27, 26],
         [26, 27, 31, 30],
         [30, 31, 35, 34],
         [34, 35, 39, 38],
         [38, 39, 43, 42],
         [42, 43, 47, 46],
         [46, 47, 51, 50],
         [50, 51, 55, 54],
         [54, 55, 59, 58],
         [58, 59, 63, 62],
         [62, 63, 67, 66],
         [66, 67, 71, 70],
         [70, 71, 75, 74],
         [74, 75, 79, 78],
         [78, 79, 83, 82],
         [82, 83, 87, 86],
         [86, 87, 91, 90],
         [90, 91, 95, 94],
         [94, 95, 99, 98],
         [98, 99, 103, 102],
         [102, 103, 107, 106],
         [106, 107, 111, 110],
         [110, 111, 115, 114],
         [114, 115, 119, 118],
         [118, 119, 123, 122],
         [122, 123, 127, 126],
         [126, 127, 131, 130],
         [130, 131, 135, 134],
         [134, 135, 139, 138],
         [138, 139, 143, 142],
         [142, 143, 147, 146],
         [146, 147, 151, 150],
         [150, 151, 155, 154],
         [154, 155, 159, 158],
         [158, 159, 163, 162],
         [162, 163, 167, 166],
         [166, 167, 171, 170],
         [170, 171, 175, 174],
         [174, 175, 179, 178],
         [178, 179, 183, 182],
         [182, 183, 187, 186],
         [186, 187, 191, 190],
         [190, 191, 195, 194],
         [194, 195, 199, 198],
         [198, 199, 203, 202],
         [202, 203, 207, 206],
         [206, 207, 211, 210],
         [210, 211, 215, 214],
         [214, 215, 219, 218],
         [218, 219, 223, 222],
         [222, 223, 227, 226],
         [226, 227, 231, 230],
         [230, 231, 235, 234],
         [234, 235, 239, 238],
         [238, 239, 243, 242],
         [242, 243, 247, 246],
         [246, 247, 251, 250],
         [250, 251, 255, 254],
         [254, 255, 259, 258],
         [258, 259, 263, 262],
         [262, 263, 267, 266],
         [266, 267, 271, 270],
         [270, 271, 275, 274],
         [274, 275, 279, 278],
         [278, 279, 283, 282],
         [282, 283, 287, 286],
         [286, 287, 291, 290],
         [290, 291, 295, 294],
         [294, 295, 299, 298],
         [298, 299, 303, 302],
         [302, 303, 307, 306],
         [306, 307, 311, 310],
         [310, 311, 315, 314],
         [314, 315, 319, 318],
         [318, 319, 323, 322],
         [322, 323, 327, 326],
         [326, 327, 331, 330],
         [330, 331, 335, 334],
         [334, 335, 339, 338],
         [338, 339, 343, 342],
         [342, 343, 347, 346],
         [346, 347, 351, 350],
         [350, 351, 355, 354],
         [354, 355, 359, 358],
         [358, 359, 363, 362],
         [362, 363, 367, 366],
         [366, 367, 371, 370],
         [370, 371, 375, 374],
         [374, 375, 379, 378],
         [378, 379, 383, 382],
         [382, 383, 387, 386],
         [386, 387, 391, 390],
         [390, 391, 395, 394],
         [394, 395, 399, 398],
         [398, 399, 403, 402],
         [402, 403, 407, 406],
         [406, 407, 411, 410],
         [410, 411, 415, 414],
         [414, 415, 419, 418],
         [418, 419, 423, 422],
         [422, 423, 427, 426],
         [426, 427, 431, 430],
         [430, 431, 435, 434],
         [434, 435, 439, 438],
         [438, 439, 443, 442],
         [442, 443, 447, 446],
         [446, 447, 451, 450],
         [450, 451, 455, 454],
         [454, 455, 459, 458],
         [458, 459, 463, 462],
         [462, 463, 467, 466],
         [466, 467, 471, 470],
         [470, 471, 475, 474],
         [474, 475, 479, 478],
         [478, 479, 483, 482],
         [482, 483, 487, 486],
         [486, 487, 491, 490],
         [490, 491, 495, 494],
         [494, 495, 499, 498],
         [498, 499, 503, 502],
         [502, 503, 507, 506],
         [506, 507, 511, 510],
         [510, 511, 515, 514],
         [514, 515, 519, 518],
         [518, 519, 523, 522],
         [522, 523, 527, 526],
         [526, 527, 531, 530],
         [530, 531, 535, 534],
         [534, 535, 539, 538],
         [538, 539, 543, 542],
         [542, 543, 547, 546],
         [546, 547, 551, 550],
         [550, 551, 555, 554],
         [554, 555, 559, 558],
         [558, 559, 563, 562],
         [562, 563, 567, 566],
         [566, 567, 571, 570],
         [570, 571, 575, 574],
         [574, 575, 579, 578],
         [578, 579, 583, 582],
         [582, 583, 587, 586],
         [586, 587, 591, 590],
         [590, 591, 595, 594],
         [594, 595, 599, 598],
         [598, 599, 603, 602],
         [602, 603, 607, 606],
         [606, 607, 611, 610],
         [610, 611, 615, 614],
         [614, 615, 619, 618],
         [618, 619, 623, 622],
         [622, 623, 627, 626],
         [626, 627, 631, 630],
         [630, 631, 635, 634],
         [634, 635, 639, 638],
         [638, 639, 643, 642],
         [642, 643, 647, 646],
         [646, 647, 651, 650],
         [650, 651, 655, 654],
         [654, 655, 659, 658],
         [658, 659, 663, 662],
         [662, 663, 667, 666],
         [666, 667, 671, 670],
         [670, 671, 675, 674],
         [674, 675, 679, 678],
         [678, 679, 683, 682],
         [682, 683, 687, 686],
         [686, 687, 691, 690],
         [690, 691, 695, 694],
         [694, 695, 699, 698],
         [698, 699, 703, 702],
         [702, 703, 707, 706],
         [706, 707, 711, 710],
         [710, 711, 715, 714],
         [714, 715, 719, 718],
         [718, 719, 723, 722],
         [722, 723, 727, 726],
         [726, 727, 731, 730],
         [730, 731, 735, 734],
         [734, 735, 739, 738],
         [738, 739, 743, 742],
         [742, 743, 747, 746],
         [746, 747, 751, 750],
         [750, 751, 755, 754],
         [754, 755, 759, 758],
         [758, 759, 763, 762],
         [762, 763, 767, 766],
         [766, 767, 771, 770],
         [770, 771, 775, 774],
         [774, 775, 779, 778],
         [778, 779, 783, 782],
         [782, 783, 787, 786],
         [786, 787, 791, 790],
         [790, 791, 795, 794],
         [794, 795, 799, 798],
         [798, 799, 803, 802],
         [802, 803, 807, 806],
         [806, 807, 811, 810],
         [810, 811, 815, 814],
         [814, 815, 819, 818],
         [818, 819, 823, 822],
         [822, 823, 827, 826],
         [826, 827, 831, 830],
         [830, 831, 835, 834],
         [834, 835, 839, 838],
         [838, 839, 843, 842],
         [842, 843, 847, 846],
         [846, 847, 851, 850],
         [850, 851, 855, 854],
         [854, 855, 859, 858],
         [858, 859, 863, 862],
         [862, 863, 867, 866],
         [866, 867, 871, 870],
         [870, 871, 875, 874],
         [874, 875, 879, 878],
         [878, 879, 883, 882],
         [882, 883, 887, 886],
         [886, 887, 891, 890],
         [890, 891, 895, 894],
         [894, 895, 899, 898],
         [898, 899, 903, 902],
         [902, 903, 907, 906],
         [906, 907, 911, 910],
         [910, 911, 915, 914],
         [914, 915, 919, 918],
         [918, 919, 923, 922],
         [922, 923, 927, 926],
         [926, 927, 931, 930],
         [930, 931, 935, 934],
         [934, 935, 939, 938],
         [938, 939, 943, 942],
         [942, 943, 947, 946],
         [946, 947, 951, 950],
         [950, 951, 955, 954],
         [954, 955, 959, 958],
         [958, 959, 963, 962],
         [962, 963, 967, 966],
         [966, 967, 971, 970],
         [970, 971, 975, 974],
         [974, 975, 979, 978],
         [978, 979, 983, 982],
         [982, 983, 987, 986],
         [986, 987, 991, 990],
         [990, 991, 995, 994],
         [994, 995, 999, 998],
         [998, 999, 1003, 1002],
         [1002, 1003, 1007, 1006],
         [1006, 1007, 1011, 1010],
         [1010, 1011, 1015, 1014],
         [1014, 1015, 1019, 1018],
         [1018, 1019, 1023, 1022],
         [1022, 1023, 1027, 1026],
         [1026, 1027, 1031, 1030],
         [1030, 1031, 1035, 1034],
         [1034, 1035, 1039, 1038],
         [1038, 1039, 1043, 1042],
         [1042, 1043, 1047, 1046],
         [1046, 1047, 1051, 1050],
         [1050, 1051, 1055, 1054],
         [1054, 1055, 1059, 1058],
         [1058, 1059, 1063, 1062],
         [1062, 1063, 1067, 1066],
         [1066, 1067, 1071, 1070],
         [1070, 1071, 1075, 1074],
         [1074, 1075, 1079, 1078],
         [1078, 1079, 1083, 1082],
         [1082, 1083, 1087, 1086],
         [1086, 1087, 1091, 1090],
         [1090, 1091, 1095, 1094],
         [1094, 1095, 1099, 1098],
         [1098, 1099, 1103, 1102],
         [1102, 1103, 1107, 1106],
         [1106, 1107, 1111, 1110],
         [1110, 1111, 1115, 1114],
         [1114, 1115, 1119, 1118],
         [1118, 1119, 1123, 1122],
         [1122, 1123, 1127, 1126],
         [1126, 1127, 1131, 1130],
         [1130, 1131, 1135, 1134],
         [1134, 1135, 1139, 1138],
         [1138, 1139, 1143, 1142],
         [1142, 1143, 1147, 1146],
         [1146, 1147, 1151, 1150],
         [1150, 1151, 1155, 1154],
         [1154, 1155, 1159, 1158],
         [1158, 1159, 1163, 1162],
         [1162, 1163, 1167, 1166],
         [1166, 1167, 1171, 1170],
         [1170, 1171, 1175, 1174],
         [1174, 1175, 1179, 1178],
         [1178, 1179, 1183, 1182],
         [1182, 1183, 1187, 1186],
         [1186, 1187, 1191, 1190],
         [1190, 1191, 1195, 1194],
         [1194, 1195, 1199, 1198],
         [1198, 1199, 1203, 1202],
         [1202, 1203, 1207, 1206],
         [1206, 1207, 1211, 1210],
         [1210, 1211, 1215, 1214],
         [1214, 1215, 1219, 1218],
         [1218, 1219, 1223, 1222],
         [1222, 1223, 1227, 1226],
         [1226, 1227, 1231, 1230],
         [1230, 1231, 1235, 1234],
         [1234, 1235, 1239, 1238],
         [1238, 1239, 1243, 1242],
         [1242, 1243, 1247, 1246],
         [1246, 1247, 1251, 1250],
         [1250, 1251, 1255, 1254],
         [1254, 1255, 1259, 1258],
         [1258, 1259, 1263, 1262],
         [1262, 1263, 1267, 1266],
         [1266, 1267, 1271, 1270],
         [1270, 1271, 1275, 1274],
         [1274, 1275, 1279, 1278],
         [1278, 1279, 1283, 1282],
         [1282, 1283, 1287, 1286],
         [1286, 1287, 1291, 1290],
         [1290, 1291, 1295, 1294],
         [1294, 1295, 1299, 1298],
         [1298, 1299, 1303, 1302],
         [1302, 1303, 1307, 1306],
         [1306, 1307, 1311, 1310],
         [1310, 1311, 1315, 1314],
         [1314, 1315, 1319, 1318],
         [1318, 1319, 1323, 1322],
         [1322, 1323, 1327, 1326],
         [1326, 1327, 1331, 1330],
         [1330, 1331, 1335, 1334],
         [1334, 1335, 1339, 1338],
         [1338, 1339, 1343, 1342],
         [1342, 1343, 1347, 1346],
         [1346, 1347, 1351, 1350],
         [1350, 1351, 1355, 1354],
         [1354, 1355, 1359, 1358],
         [1358, 1359, 1363, 1362],
         [1362, 1363, 1367, 1366],
         [1366, 1367, 1371, 1370],
         [1370, 1371, 1375, 1374],
         [1374, 1375, 1379, 1378],
         [1378, 1379, 1383, 1382],
         [1382, 1383, 1387, 1386],
         [1386, 1387, 1391, 1390],
         [1390, 1391, 1395, 1394],
         [1394, 1395, 1399, 1398],
         [1398, 1399, 1403, 1402],
         [1402, 1403, 1407, 1406],
         [1406, 1407, 1411, 1410],
         [1410, 1411, 1415, 1414],
         [1414, 1415, 1419, 1418],
         [1418, 1419, 1423, 1422],
         [1422, 1423, 1427, 1426],
         [1426, 1427, 1431, 1430],
         [1430, 1431, 1435, 1434],
         [1434, 1435, 1439, 1438],
         [1438, 1439, 1443, 1442],
         [1442, 1443, 1447, 1446],
         [1446, 1447, 1451, 1450],
         [1450, 1451, 1455, 1454],
         [1454, 1455, 1459, 1458],
         [1458, 1459, 1463, 1462],
         [1462, 1463, 1467, 1466],
         [1466, 1467, 1471, 1470],
         [1470, 1471, 1475, 1474],
         [1474, 1475, 1479, 1478],
         [1478, 1479, 1483, 1482],
         [1482, 1483, 1487, 1486],
         [1486, 1487, 1491, 1490],
         [1490, 1491, 1495, 1494],
         [1494, 1495, 1499, 1498],
         [1498, 1499, 1503, 1502],
         [1502, 1503, 1507, 1506],
         [1506, 1507, 1511, 1510],
         [1510, 1511, 1515, 1514],
         [1514, 1515, 1519, 1518],
         [1518, 1519, 1523, 1522],
         [1522, 1523, 1527, 1526],
         [1526, 1527, 1531, 1530],
         [1530, 1531, 1535, 1534],
         [1534, 1535, 1539, 1538],
         [1538, 1539, 1543, 1542],
         [1542, 1543, 1547, 1546],
         [1546, 1547, 1551, 1550],
         [1550, 1551, 1555, 1554],
         [1554, 1555, 1559, 1558],
         [1558, 1559, 1563, 1562],
         [1562, 1563, 1567, 1566],
         [1566, 1567, 1571, 1570],
         [1570, 1571, 1575, 1574],
         [1574, 1575, 1579, 1578],
         [1578, 1579, 1583, 1582],
         [1582, 1583, 1587, 1586],
         [1586, 1587, 1591, 1590],
         [1590, 1591, 1595, 1594],
         [1594, 1595, 1599, 1598],
         [0, 4, 5, 1],
         [4, 8, 9, 5],
         [8, 12, 13, 9],
         [12, 16, 17, 13],
         [16, 20, 21, 17],
         [20, 24, 25, 21],
         [24, 28, 29, 25],
         [28, 32, 33, 29],
         [32, 36, 37, 33],
         [36, 40, 41, 37],
         [40, 44, 45, 41],
         [44, 48, 49, 45],
         [48, 52, 53, 49],
         [52, 56, 57, 53],
         [56, 60, 61, 57],
         [60, 64, 65, 61],
         [64, 68, 69, 65],
         [68, 72, 73, 69],
         [72, 76, 77, 73],
         [76, 80, 81, 77],
         [80, 84, 85, 81],
         [84, 88, 89, 85],
         [88, 92, 93, 89],
         [92, 96, 97, 93],
         [96, 100, 101, 97],
         [100, 104, 105, 101],
         [104, 108, 109, 105],
         [108, 112, 113, 109],
         [112, 116, 117, 113],
         [116, 120, 121, 117],
         [120, 124, 125, 121],
         [124, 128, 129, 125],
         [128, 132, 133, 129],
         [132, 136, 137, 133],
         [136, 140, 141, 137],
         [140, 144, 145, 141],
         [144, 148, 149, 145],
         [148, 152, 153, 149],
         [152, 156, 157, 153],
         [156, 160, 161, 157],
         [160, 164, 165, 161],
         [164, 168, 169, 165],
         [168, 172, 173, 169],
         [172, 176, 177, 173],
         [176, 180, 181, 177],
         [180, 184, 185, 181],
         [184, 188, 189, 185],
         [188, 192, 193, 189],
         [192, 196, 197, 193],
         [196, 200, 201, 197],
         [200, 204, 205, 201],
         [204, 208, 209, 205],
         [208, 212, 213, 209],
         [212, 216, 217, 213],
         [216, 220, 221, 217],
         [220, 224, 225, 221],
         [224, 228, 229, 225],
         [228, 232, 233, 229],
         [232, 236, 237, 233],
         [236, 240, 241, 237],
         [240, 244, 245, 241],
         [244, 248, 249, 245],
         [248, 252, 253, 249],
         [252, 256, 257, 253],
         [256, 260, 261, 257],
         [260, 264, 265, 261],
         [264, 268, 269, 265],
         [268, 272, 273, 269],
         [272, 276, 277, 273],
         [276, 280, 281, 277],
         [280, 284, 285, 281],
         [284, 288, 289, 285],
         [288, 292, 293, 289],
         [292, 296, 297, 293],
         [296, 300, 301, 297],
         [300, 304, 305, 301],
         [304, 308, 309, 305],
         [308, 312, 313, 309],
         [312, 316, 317, 313],
         [316, 320, 321, 317],
         [320, 324, 325, 321],
         [324, 328, 329, 325],
         [328, 332, 333, 329],
         [332, 336, 337, 333],
         [336, 340, 341, 337],
         [340, 344, 345, 341],
         [344, 348, 349, 345],
         [348, 352, 353, 349],
         [352, 356, 357, 353],
         [356, 360, 361, 357],
         [360, 364, 365, 361],
         [364, 368, 369, 365],
         [368, 372, 373, 369],
         [372, 376, 377, 373],
         [376, 380, 381, 377],
         [380, 384, 385, 381],
         [384, 388, 389, 385],
         [388, 392, 393, 389],
         [392, 396, 397, 393],
         [396, 400, 401, 397],
         [400, 404, 405, 401],
         [404, 408, 409, 405],
         [408, 412, 413, 409],
         [412, 416, 417, 413],
         [416, 420, 421, 417],
         [420, 424, 425, 421],
         [424, 428, 429, 425],
         [428, 432, 433, 429],
         [432, 436, 437, 433],
         [436, 440, 441, 437],
         [440, 444, 445, 441],
         [444, 448, 449, 445],
         [448, 452, 453, 449],
         [452, 456, 457, 453],
         [456, 460, 461, 457],
         [460, 464, 465, 461],
         [464, 468, 469, 465],
         [468, 472, 473, 469],
         [472, 476, 477, 473],
         [476, 480, 481, 477],
         [480, 484, 485, 481],
         [484, 488, 489, 485],
         [488, 492, 493, 489],
         [492, 496, 497, 493],
         [496, 500, 501, 497],
         [500, 504, 505, 501],
         [504, 508, 509, 505],
         [508, 512, 513, 509],
         [512, 516, 517, 513],
         [516, 520, 521, 517],
         [520, 524, 525, 521],
         [524, 528, 529, 525],
         [528, 532, 533, 529],
         [532, 536, 537, 533],
         [536, 540, 541, 537],
         [540, 544, 545, 541],
         [544, 548, 549, 545],
         [548, 552, 553, 549],
         [552, 556, 557, 553],
         [556, 560, 561, 557],
         [560, 564, 565, 561],
         [564, 568, 569, 565],
         [568, 572, 573, 569],
         [572, 576, 577, 573],
         [576, 580, 581, 577],
         [580, 584, 585, 581],
         [584, 588, 589, 585],
         [588, 592, 593, 589],
         [592, 596, 597, 593],
         [596, 600, 601, 597],
         [600, 604, 605, 601],
         [604, 608, 609, 605],
         [608, 612, 613, 609],
         [612, 616, 617, 613],
         [616, 620, 621, 617],
         [620, 624, 625, 621],
         [624, 628, 629, 625],
         [628, 632, 633, 629],
         [632, 636, 637, 633],
         [636, 640, 641, 637],
         [640, 644, 645, 641],
         [644, 648, 649, 645],
         [648, 652, 653, 649],
         [652, 656, 657, 653],
         [656, 660, 661, 657],
         [660, 664, 665, 661],
         [664, 668, 669, 665],
         [668, 672, 673, 669],
         [672, 676, 677, 673],
         [676, 680, 681, 677],
         [680, 684, 685, 681],
         [684, 688, 689, 685],
         [688, 692, 693, 689],
         [692, 696, 697, 693],
         [696, 700, 701, 697],
         [700, 704, 705, 701],
         [704, 708, 709, 705],
         [708, 712, 713, 709],
         [712, 716, 717, 713],
         [716, 720, 721, 717],
         [720, 724, 725, 721],
         [724, 728, 729, 725],
         [728, 732, 733, 729],
         [732, 736, 737, 733],
         [736, 740, 741, 737],
         [740, 744, 745, 741],
         [744, 748, 749, 745],
         [748, 752, 753, 749],
         [752, 756, 757, 753],
         [756, 760, 761, 757],
         [760, 764, 765, 761],
         [764, 768, 769, 765],
         [768, 772, 773, 769],
         [772, 776, 777, 773],
         [776, 780, 781, 777],
         [780, 784, 785, 781],
         [784, 788, 789, 785],
         [788, 792, 793, 789],
         [792, 796, 797, 793],
         [796, 800, 801, 797],
         [800, 804, 805, 801],
         [804, 808, 809, 805],
         [808, 812, 813, 809],
         [812, 816, 817, 813],
         [816, 820, 821, 817],
         [820, 824, 825, 821],
         [824, 828, 829, 825],
         [828, 832, 833, 829],
         [832, 836, 837, 833],
         [836, 840, 841, 837],
         [840, 844, 845, 841],
         [844, 848, 849, 845],
         [848, 852, 853, 849],
         [852, 856, 857, 853],
         [856, 860, 861, 857],
         [860, 864, 865, 861],
         [864, 868, 869, 865],
         [868, 872, 873, 869],
         [872, 876, 877, 873],
         [876, 880, 881, 877],
         [880, 884, 885, 881],
         [884, 888, 889, 885],
         [888, 892, 893, 889],
         [892, 896, 897, 893],
         [896, 900, 901, 897],
         [900, 904, 905, 901],
         [904, 908, 909, 905],
         [908, 912, 913, 909],
         [912, 916, 917, 913],
         [916, 920, 921, 917],
         [920, 924, 925, 921],
         [924, 928, 929, 925],
         [928, 932, 933, 929],
         [932, 936, 937, 933],
         [936, 940, 941, 937],
         [940, 944, 945, 941],
         [944, 948, 949, 945],
         [948, 952, 953, 949],
         [952, 956, 957, 953],
         [956, 960, 961, 957],
         [960, 964, 965, 961],
         [964, 968, 969, 965],
         [968, 972, 973, 969],
         [972, 976, 977, 973],
         [976, 980, 981, 977],
         [980, 984, 985, 981],
         [984, 988, 989, 985],
         [988, 992, 993, 989],
         [992, 996, 997, 993],
         [996, 1000, 1001, 997],
         [1000, 1004, 1005, 1001],
         [1004, 1008, 1009, 1005],
         [1008, 1012, 1013, 1009],
         [1012, 1016, 1017, 1013],
         [1016, 1020, 1021, 1017],
         [1020, 1024, 1025, 1021],
         [1024, 1028, 1029, 1025],
         [1028, 1032, 1033, 1029],
         [1032, 1036, 1037, 1033],
         [1036, 1040, 1041, 1037],
         [1040, 1044, 1045, 1041],
         [1044, 1048, 1049, 1045],
         [1048, 1052, 1053, 1049],
         [1052, 1056, 1057, 1053],
         [1056, 1060, 1061, 1057],
         [1060, 1064, 1065, 1061],
         [1064, 1068, 1069, 1065],
         [1068, 1072, 1073, 1069],
         [1072, 1076, 1077, 1073],
         [1076, 1080, 1081, 1077],
         [1080, 1084, 1085, 1081],
         [1084, 1088, 1089, 1085],
         [1088, 1092, 1093, 1089],
         [1092, 1096, 1097, 1093],
         [1096, 1100, 1101, 1097],
         [1100, 1104, 1105, 1101],
         [1104, 1108, 1109, 1105],
         [1108, 1112, 1113, 1109],
         [1112, 1116, 1117, 1113],
         [1116, 1120, 1121, 1117],
         [1120, 1124, 1125, 1121],
         [1124, 1128, 1129, 1125],
         [1128, 1132, 1133, 1129],
         [1132, 1136, 1137, 1133],
         [1136, 1140, 1141, 1137],
         [1140, 1144, 1145, 1141],
         [1144, 1148, 1149, 1145],
         [1148, 1152, 1153, 1149],
         [1152, 1156, 1157, 1153],
         [1156, 1160, 1161, 1157],
         [1160, 1164, 1165, 1161],
         [1164, 1168, 1169, 1165],
         [1168, 1172, 1173, 1169],
         [1172, 1176, 1177, 1173],
         [1176, 1180, 1181, 1177],
         [1180, 1184, 1185, 1181],
         [1184, 1188, 1189, 1185],
         [1188, 1192, 1193, 1189],
         [1192, 1196, 1197, 1193],
         [1196, 1200, 1201, 1197],
         [1200, 1204, 1205, 1201],
         [1204, 1208, 1209, 1205],
         [1208, 1212, 1213, 1209],
         [1212, 1216, 1217, 1213],
         [1216, 1220, 1221, 1217],
         [1220, 1224, 1225, 1221],
         [1224, 1228, 1229, 1225],
         [1228, 1232, 1233, 1229],
         [1232, 1236, 1237, 1233],
         [1236, 1240, 1241, 1237],
         [1240, 1244, 1245, 1241],
         [1244, 1248, 1249, 1245],
         [1248, 1252, 1253, 1249],
         [1252, 1256, 1257, 1253],
         [1256, 1260, 1261, 1257],
         [1260, 1264, 1265, 1261],
         [1264, 1268, 1269, 1265],
         [1268, 1272, 1273, 1269],
         [1272, 1276, 1277, 1273],
         [1276, 1280, 1281, 1277],
         [1280, 1284, 1285, 1281],
         [1284, 1288, 1289, 1285],
         [1288, 1292, 1293, 1289],
         [1292, 1296, 1297, 1293],
         [1296, 1300, 1301, 1297],
         [1300, 1304, 1305, 1301],
         [1304, 1308, 1309, 1305],
         [1308, 1312, 1313, 1309],
         [1312, 1316, 1317, 1313],
         [1316, 1320, 1321, 1317],
         [1320, 1324, 1325, 1321],
         [1324, 1328, 1329, 1325],
         [1328, 1332, 1333, 1329],
         [1332, 1336, 1337, 1333],
         [1336, 1340, 1341, 1337],
         [1340, 1344, 1345, 1341],
         [1344, 1348, 1349, 1345],
         [1348, 1352, 1353, 1349],
         [1352, 1356, 1357, 1353],
         [1356, 1360, 1361, 1357],
         [1360, 1364, 1365, 1361],
         [1364, 1368, 1369, 1365],
         [1368, 1372, 1373, 1369],
         [1372, 1376, 1377, 1373],
         [1376, 1380, 1381, 1377],
         [1380, 1384, 1385, 1381],
         [1384, 1388, 1389, 1385],
         [1388, 1392, 1393, 1389],
         [1392, 1396, 1397, 1393],
         [1396, 1400, 1401, 1397],
         [1400, 1404, 1405, 1401],
         [1404, 1408, 1409, 1405],
         [1408, 1412, 1413, 1409],
         [1412, 1416, 1417, 1413],
         [1416, 1420, 1421, 1417],
         [1420, 1424, 1425, 1421],
         [1424, 1428, 1429, 1425],
         [1428, 1432, 1433, 1429],
         [1432, 1436, 1437, 1433],
         [1436, 1440, 1441, 1437],
         [1440, 1444, 1445, 1441],
         [1444, 1448, 1449, 1445],
         [1448, 1452, 1453, 1449],
         [1452, 1456, 1457, 1453],
         [1456, 1460, 1461, 1457],
         [1460, 1464, 1465, 1461],
         [1464, 1468, 1469, 1465],
         [1468, 1472, 1473, 1469],
         [1472, 1476, 1477, 1473],
         [1476, 1480, 1481, 1477],
         [1480, 1484, 1485, 1481],
         [1484, 1488, 1489, 1485],
         [1488, 1492, 1493, 1489],
         [1492, 1496, 1497, 1493],
         [1496, 1500, 1501, 1497],
         [1500, 1504, 1505, 1501],
         [1504, 1508, 1509, 1505],
         [1508, 1512, 1513, 1509],
         [1512, 1516, 1517, 1513],
         [1516, 1520, 1521, 1517],
         [1520, 1524, 1525, 1521],
         [1524, 1528, 1529, 1525],
         [1528, 1532, 1533, 1529],
         [1532, 1536, 1537, 1533],
         [1536, 1540, 1541, 1537],
         [1540, 1544, 1545, 1541],
         [1544, 1548, 1549, 1545],
         [1548, 1552, 1553, 1549],
         [1552, 1556, 1557, 1553],
         [1556, 1560, 1561, 1557],
         [1560, 1564, 1565, 1561],
         [1564, 1568, 1569, 1565],
         [1568, 1572, 1573, 1569],
         [1572, 1576, 1577, 1573],
         [1576, 1580, 1581, 1577],
         [1580, 1584, 1585, 1581],
         [1584, 1588, 1589, 1585],
         [1588, 1592, 1593, 1589],
         [1592, 1596, 1597, 1593]],
       convexity=10
     );

     cylinder(r=4, h=30.0);
   }

   // inverted cone
   translate([0, 0, 3.0])
   difference() {
     cylinder(r=7.2, h=6, center=true);
     cylinder(r1=2.0, r2=6, h=6.12, center=true);
   }
}
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

doug.moen
That long list of points in the polyhedron call is rather brutal to
read. Why don't you share the code that you used to generate it? That
would be more interesting.

Doug.
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
ds
Reply | Threaded
Open this post in threaded view
|

Re: Working with polyhedrons

ds
I assumed that people would just cut and paste into OpenScad, basically
one step. What I think is interesting about the code I posted are the
changes it makes from F5 to F6.

I need to get the generative code cleaned up a bit, and I then I can
post it.

Don

On 07/05/2014 06:19 PM, doug moen wrote:

> That long list of points in the polyhedron call is rather brutal to
> read. Why don't you share the code that you used to generate it? That
> would be more interesting.
>
> Doug.
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad
> http://openscad.org - https://flattr.com/thing/121566

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
12