From 56132ed9bbcc1b4d4ac8ff5d672be45be13ad1ed Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Tue, 3 Feb 2015 21:14:37 +0100 Subject: [PATCH 01/16] Regression test suite: make Python files 2.7 backwards-compatible to ease use on Windows where oftentimes only one is easily accessible. Drop deprecated logic to locate assimp binary, we now require the binary to use to be specified in the command line. --- test/regression/gen_db.py | 29 +++++++++++---- test/regression/run.py | 38 ++++++++++++++----- test/regression/utils.py | 77 ++++----------------------------------- 3 files changed, 59 insertions(+), 85 deletions(-) diff --git a/test/regression/gen_db.py b/test/regression/gen_db.py index ef10a298d..d405af9db 100644 --- a/test/regression/gen_db.py +++ b/test/regression/gen_db.py @@ -40,8 +40,15 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # --------------------------------------------------------------------------- -"""Generate the regression database db.zip from the files in the -/test/models directory. Older databases are overwritten with no prompt. +""" +Generate the regression database db.zip from the files in the /test/models +directory. Older databases are overwritten with no prompt but can be restored +using Git as needed. + +Use --help for usage. + +On Windows, use ``py run.py `` to make sure command line parameters +are forwarded to the script. """ import sys @@ -52,9 +59,14 @@ import zipfile import settings import utils -usage = """gen_db [-i=...] [-e=...] [-p] [-n] +usage = """gen_db [assimp_binary] [-i=...] [-e=...] [-p] [-n] + +The assimp_cmd (or assimp) binary to use is specified by the first +command line argument and defaults to ``assimp``. + +To build, set ``ASSIMP_BUILD_ASSIMP_TOOLS=ON`` in CMake. If generating +configs for an IDE, make sure to build the assimp_cmd project. -(lists of file extensions are comma delimited, i.e. `3ds,lwo,x`) -i,--include: List of file extensions to update dumps for. If omitted, all file extensions are updated except those in `exclude`. @@ -66,6 +78,8 @@ usage = """gen_db [-i=...] [-e=...] [-p] [-n] Dont' change anything. -n,--nozip: Don't pack to ZIP archive. Keep all dumps in individual files. + +(lists of file extensions are comma delimited, i.e. `3ds,lwo,x`) """ # ------------------------------------------------------------------------------- @@ -87,7 +101,7 @@ def process_dir(d, outfile, file_filter): outf = os.path.join(os.getcwd(), settings.database_name, utils.hashing(fullp, pp)) - cmd = [utils.assimp_bin_path,"dump",fullp,outf,"-b","-s","-l"] + pp.split() + cmd = [ assimp_bin_path, "dump", fullp, outf, "-b", "-s", "-l" ] + pp.split() outfile.write("assimp dump "+"-"*80+"\n") outfile.flush() if subprocess.call(cmd, stdout=outfile, stderr=outfile, shell=False): @@ -158,7 +172,8 @@ def gen_db(ext_list,outfile): # ------------------------------------------------------------------------------- if __name__ == "__main__": - utils.find_assimp_or_die() + assimp_bin_path = sys.argv[1] if len(sys.argv) > 1 else 'assimp' + def clean(f): f = f.strip("* \'") return "."+f if f[:1] != '.' else f @@ -184,7 +199,7 @@ if __name__ == "__main__": outfile = open(os.path.join("..", "results", "gen_regression_db_output.txt"), "w") if ext_list is None: - (ext_list, err) = subprocess.Popen([utils.assimp_bin_path, "listext"], + (ext_list, err) = subprocess.Popen([assimp_bin_path, "listext"], stdout=subprocess.PIPE).communicate() ext_list = str(ext_list).lower().split(";") diff --git a/test/regression/run.py b/test/regression/run.py index 6d776b362..427f48d47 100644 --- a/test/regression/run.py +++ b/test/regression/run.py @@ -41,8 +41,16 @@ # --------------------------------------------------------------------------- """ -Run the regression test suite using the settings from settings.py. +Run the regression test suite using settings from settings.py. +The assimp_cmd (or assimp) binary to use is specified by the first +command line argument and defaults to ``assimp``. + +To build, set ``ASSIMP_BUILD_ASSIMP_TOOLS=ON`` in CMake. If generating +configs for an IDE, make sure to build the assimp_cmd project. + +On Windows, use ``py run.py `` to make sure the command +line parameter is forwarded to the script. """ import sys @@ -124,8 +132,11 @@ class results: def report_results(self): """Write results to ../results/run_regression_suite_failures.txt""" + count_success = len(self.success) + count_fail = len(self.failures) + percent_good = float(count_success) / (count_success + count_fail) print("\n" + ('='*60) + "\n" + "SUCCESS: {0}\nFAILURE: {1}\nPercentage good: {2}".format( - len(self.success), len(self.failures), len(self.success)/(len(self.success)+len(self.failures)) ) + + count_success, count_fail, percent_good) + "\n" + ('='*60) + "\n") with open(os.path.join('..', 'results',outfilename_failur), "wt") as f: @@ -138,7 +149,7 @@ class results: + " for more details\n\n") # ------------------------------------------------------------------------------- -def mkoutputdir_andgetpath(fullpath, myhash, app): +def prepare_output_dir(fullpath, myhash, app): outfile = os.path.join(settings.results, "tmp", os.path.split(fullpath)[1] + "_" + myhash) try: os.mkdir(outfile) @@ -167,13 +178,16 @@ def process_dir(d, outfile_results, zipin, result): for pppreset in settings.pp_configs_to_test: filehash = utils.hashing(fullpath, pppreset) failure = False + try: input_expected = zipin.open(filehash, "r").read() # empty dump files indicate 'expected import failure' if not len(input_expected): failure = True except KeyError: - #print("Didn't find "+fullpath+" (Hash is "+filehash+") in database") + # TODO(acgessler): Keep track of this and report as error in the end. + print("Didn't find "+fullpath+" (Hash is "+filehash+") in database. Outdated "+\ + "regression database? Use gen_db.zip to re-generate.") continue # Ignore extensions via settings.py configured list @@ -184,13 +198,18 @@ def process_dir(d, outfile_results, zipin, result): print("-"*60 + "\n " + os.path.realpath(fullpath) + " pp: " + pppreset) - outfile_actual = mkoutputdir_andgetpath(fullpath, filehash, "ACTUAL") - outfile_expect = mkoutputdir_andgetpath(fullpath, filehash, "EXPECT") + outfile_actual = prepare_output_dir(fullpath, filehash, "ACTUAL") + outfile_expect = prepare_output_dir(fullpath, filehash, "EXPECT") outfile_results.write("assimp dump "+"-"*80+"\n") outfile_results.flush() - command = [utils.assimp_bin_path,"dump",fullpath,outfile_actual,"-b","-s","-l"]+pppreset.split() + command = [assimp_bin_path, + "dump", + fullpath, outfile_actual, "-b", "-s", "-l" ] +\ + pppreset.split() + r = subprocess.call(command, **shellparams) + print(r) if r and not failure: result.fail(fullpath, outfile_expect, pppreset, IMPORT_FAILURE, r) @@ -216,7 +235,7 @@ def process_dir(d, outfile_results, zipin, result): outfile_results.write("assimp cmpdump "+"-"*80+"\n") outfile_results.flush() - command = [utils.assimp_bin_path,'cmpdump',outfile_actual,outfile_expect] + command = [ assimp_bin_path, 'cmpdump', outfile_actual, outfile_expect ] if subprocess.call(command, **shellparams) != 0: result.fail(fullpath, outfile_expect, pppreset, DATABASE_VALUE_MISMATCH) continue @@ -235,7 +254,6 @@ def del_folder_with_contents(folder): # ------------------------------------------------------------------------------- def run_test(): - utils.find_assimp_or_die() tmp_target_path = os.path.join(settings.results, "tmp") try: os.mkdir(tmp_target_path) @@ -261,6 +279,8 @@ def run_test(): # ------------------------------------------------------------------------------- if __name__ == "__main__": + assimp_bin_path = sys.argv[1] if len(sys.argv) > 1 else 'assimp' + print('Using assimp binary: ' + assimp_bin_path) run_test() # vim: ai ts=4 sts=4 et sw=4 diff --git a/test/regression/utils.py b/test/regression/utils.py index 73c8336ca..8e358e9b0 100644 --- a/test/regression/utils.py +++ b/test/regression/utils.py @@ -40,7 +40,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # --------------------------------------------------------------------------- -"""Shared stuff for the gen_db and run scripts """ +"""Shared stuff for the gen_db and run scripts""" # ------------------------------------------------------------------------------- def hashing(file,pp): @@ -51,75 +51,14 @@ def hashing(file,pp): and platforms, so we implement the hashing manually. """ - def myhash(instring): - # sdbm hash - res = 0 - for t in instring: - res = (ord(t) + (res<<6) + (res<<16) - res) % 2**32 - return res + file = file.replace('\\','/')+":"+pp + # SDBM hash + res = 0 + for t in file: + res = (ord(t) + (res<<6) + (res<<16) - res) % 2**32 - return hex(myhash(file.replace('\\','/')+":"+pp)) + # Python 2.7 normalization: strip 'L' suffix. + return hex(res).rstrip('L') -assimp_bin_path = None -# ------------------------------------------------------------------------------- -def find_assimp_or_die(): - """Find assimp_cmd's binary for the current platform. - - The path to the binary is stored in assimp_bin_path, the process - is aborted if it can't be found. - - """ - - import os - import platform - import sys - - def locate_file(f_list): - for f in f_list: - try: - fl = open(f,"rb") - except IOError: - continue - fl.close() - return f - return None - - global assimp_bin_path - if os.name == "nt": - search_x86 = [ - os.path.join("assimp.exe"), - os.path.join("..","..","bin","assimpcmd_release-dll_Win32","assimp.exe"), - os.path.join("..","..","bin","x86","assimp"), - os.path.join("..","..","bin","Release","assimp.exe") - ] - if platform.machine() == "x86": - search = search_x86 - else: # amd64, hopefully - search = [ - os.path.join("..","..","bin","assimpcmd_release-dll_x64","assimp.exe"), - os.path.join("..","..","bin","x64","assimp") - ] - # x64 platform does not guarantee a x64 build. Also look for x86 as last paths. - search += search_x86 - - assimp_bin_path = locate_file(search) - if assimp_bin_path is None: - print("Can't locate assimp_cmd binary") - print("Looked in", search) - sys.exit(-5) - - print("Located assimp/assimp_cmd binary from", assimp_bin_path) - elif os.name == "posix": - #search = [os.path.join("..","..","bin","gcc","assimp"), - # os.path.join("/usr","local","bin",'assimp')] - assimp_bin_path = "assimp" - print("Taking system-wide assimp binary") - else: - print("Unsupported operating system") - sys.exit(-5) - -if __name__ == '__main__': - find_assimp_or_die() - # vim: ai ts=4 sts=4 et sw=4 From b2ea487bda3152134baf9d7cc3a94699e34c86fd Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Tue, 3 Feb 2015 21:16:16 +0100 Subject: [PATCH 02/16] Regression test suite: Test files in proper lexicographic order instead of relying on OS directory iteration order. This ensures failures are listed in the same order. --- test/regression/run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/regression/run.py b/test/regression/run.py index 427f48d47..73172cf04 100644 --- a/test/regression/run.py +++ b/test/regression/run.py @@ -165,7 +165,7 @@ def process_dir(d, outfile_results, zipin, result): shellparams = {'stdout':outfile_results, 'stderr':outfile_results, 'shell':False} print("Processing directory " + d) - for f in os.listdir(d): + for f in sorted(os.listdir(d)): fullpath = os.path.join(d, f) if os.path.isdir(fullpath) and not f == ".svn": process_dir(fullpath, outfile_results, zipin, result) From aae0f7e7b1bb5eef5db518c1a1f250fde79708c1 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 15 Feb 2015 22:12:19 +0100 Subject: [PATCH 03/16] 3DSExporter: export materials first, then meshes. Our own importer requires this. --- code/3DSExporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/3DSExporter.cpp b/code/3DSExporter.cpp index 8ad367058..de47bc064 100644 --- a/code/3DSExporter.cpp +++ b/code/3DSExporter.cpp @@ -188,8 +188,8 @@ Discreet3DSExporter:: Discreet3DSExporter(boost::shared_ptr outfile, c { ChunkWriter chunk(writer, Discreet3DS::CHUNK_OBJMESH); - WriteMeshes(); WriteMaterials(); + WriteMeshes(); { ChunkWriter chunk(writer, Discreet3DS::CHUNK_MASTER_SCALE); From ce1302cd716194255d51c01237eaa429d9acbb51 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 15 Feb 2015 22:20:34 +0100 Subject: [PATCH 04/16] Fix VC12 warning "empty but controlled statement found". --- code/ColladaParser.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/ColladaParser.cpp b/code/ColladaParser.cpp index 9e68c9332..353c50812 100644 --- a/code/ColladaParser.cpp +++ b/code/ColladaParser.cpp @@ -1950,9 +1950,11 @@ void ColladaParser::ReadIndexData( Mesh* pMesh) } } - // small sanity check - if (primType != Prim_TriFans && primType != Prim_TriStrips) - ai_assert(actualPrimitives == numPrimitives); +#ifdef ASSIMP_BUILD_DEBUG + if (primType != Prim_TriFans && primType != Prim_TriStrips) { + ai_assert(actualPrimitives == numPrimitives) + } +#endif // only when we're done reading all

tags (and thus know the final vertex count) can we commit the submesh subgroup.mNumFaces = actualPrimitives; From 51b790c482075c370a1f59ad031767703e976b2c Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 15 Feb 2015 22:25:04 +0100 Subject: [PATCH 05/16] ColladaLoader: format. --- code/ColladaLoader.cpp | 390 ++++++++++++++++++++--------------------- 1 file changed, 195 insertions(+), 195 deletions(-) diff --git a/code/ColladaLoader.cpp b/code/ColladaLoader.cpp index 5771bc7af..2f3942689 100644 --- a/code/ColladaLoader.cpp +++ b/code/ColladaLoader.cpp @@ -73,7 +73,7 @@ static const aiImporterDesc desc = { // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer ColladaLoader::ColladaLoader() -: noSkeletonMesh(), ignoreUpDirection(false), mNodeNameCounter() + : noSkeletonMesh(), ignoreUpDirection(false), mNodeNameCounter() {} // ------------------------------------------------------------------------------------------------ @@ -87,16 +87,16 @@ bool ColladaLoader::CanRead( const std::string& pFile, IOSystem* pIOHandler, boo { // check file extension std::string extension = GetExtension(pFile); - + if( extension == "dae") return true; // XML - too generic, we need to open the file and search for typical keywords if( extension == "xml" || !extension.length() || checkSig) { /* If CanRead() is called in order to check whether we - * support a specific file extension in general pIOHandler - * might be NULL and it's our duty to return true here. - */ + * support a specific file extension in general pIOHandler + * might be NULL and it's our duty to return true here. + */ if (!pIOHandler)return true; const char* tokens[] = {"collada"}; return SearchFileHeaderForToken(pIOHandler,pFile,tokens,1); @@ -157,26 +157,26 @@ void ColladaLoader::InternReadFile( const std::string& pFile, aiScene* pScene, I // ... then fill the materials with the now adjusted settings FillMaterials(parser, pScene); - // Apply unitsize scale calculation - pScene->mRootNode->mTransformation *= aiMatrix4x4(parser.mUnitSize, 0, 0, 0, - 0, parser.mUnitSize, 0, 0, - 0, 0, parser.mUnitSize, 0, - 0, 0, 0, 1); - if( !ignoreUpDirection ) { - // Convert to Y_UP, if different orientation + // Apply unitsize scale calculation + pScene->mRootNode->mTransformation *= aiMatrix4x4(parser.mUnitSize, 0, 0, 0, + 0, parser.mUnitSize, 0, 0, + 0, 0, parser.mUnitSize, 0, + 0, 0, 0, 1); + if( !ignoreUpDirection ) { + // Convert to Y_UP, if different orientation if( parser.mUpDirection == ColladaParser::UP_X) pScene->mRootNode->mTransformation *= aiMatrix4x4( - 0, -1, 0, 0, - 1, 0, 0, 0, - 0, 0, 1, 0, - 0, 0, 0, 1); + 0, -1, 0, 0, + 1, 0, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1); else if( parser.mUpDirection == ColladaParser::UP_Z) pScene->mRootNode->mTransformation *= aiMatrix4x4( - 1, 0, 0, 0, - 0, 0, 1, 0, - 0, -1, 0, 0, - 0, 0, 0, 1); - } + 1, 0, 0, 0, + 0, 0, 1, 0, + 0, -1, 0, 0, + 0, 0, 0, 1); + } // store all meshes StoreSceneMeshes( pScene); @@ -195,7 +195,7 @@ void ColladaLoader::InternReadFile( const std::string& pFile, aiScene* pScene, I // If no meshes have been loaded, it's probably just an animated skeleton. if (!pScene->mNumMeshes) { - + if (!noSkeletonMesh) { SkeletonMeshBuilder hero(pScene); } @@ -251,14 +251,14 @@ aiNode* ColladaLoader::BuildHierarchy( const ColladaParser& pParser, const Colla // ------------------------------------------------------------------------------------------------ // Resolve node instances void ColladaLoader::ResolveNodeInstances( const ColladaParser& pParser, const Collada::Node* pNode, - std::vector& resolved) + std::vector& resolved) { // reserve enough storage resolved.reserve(pNode->mNodeInstances.size()); // ... and iterate through all nodes to be instanced as children of pNode for (std::vector::const_iterator it = pNode->mNodeInstances.begin(), - end = pNode->mNodeInstances.end(); it != end; ++it) + end = pNode->mNodeInstances.end(); it != end; ++it) { // find the corresponding node in the library const ColladaParser::NodeLibrary::const_iterator itt = pParser.mNodeLibrary.find((*it).mNode); @@ -272,7 +272,7 @@ void ColladaLoader::ResolveNodeInstances( const ColladaParser& pParser, const Co } if (!nd) DefaultLogger::get()->error("Collada: Unable to resolve reference to instanced node " + (*it).mNode); - + else { // attach this node to the list of children resolved.push_back(nd); @@ -283,7 +283,7 @@ void ColladaLoader::ResolveNodeInstances( const ColladaParser& pParser, const Co // ------------------------------------------------------------------------------------------------ // Resolve UV channels void ColladaLoader::ApplyVertexToEffectSemanticMapping(Collada::Sampler& sampler, - const Collada::SemanticMappingTable& table) + const Collada::SemanticMappingTable& table) { std::map::const_iterator it = table.mMap.find(sampler.mUVChannel); if (it != table.mMap.end()) { @@ -308,7 +308,7 @@ void ColladaLoader::BuildLightsForNode( const ColladaParser& pParser, const Coll continue; } const Collada::Light* srcLight = &srcLightIt->second; - + // now fill our ai data structure aiLight* out = new aiLight(); out->mName = pTarget->mName; @@ -326,7 +326,7 @@ void ColladaLoader::BuildLightsForNode( const ColladaParser& pParser, const Coll // convert falloff angle and falloff exponent in our representation, if given if (out->mType == aiLightSource_SPOT) { - + out->mAngleInnerCone = AI_DEG_TO_RAD( srcLight->mFalloffAngle ); // ... some extension magic. @@ -387,7 +387,7 @@ void ColladaLoader::BuildCamerasForNode( const ColladaParser& pParser, const Col // ... but for the rest some values are optional // and we need to compute the others in any combination. - if (srcCamera->mAspect != 10e10f) + if (srcCamera->mAspect != 10e10f) out->mAspect = srcCamera->mAspect; if (srcCamera->mHorFov != 10e10f) { @@ -395,12 +395,12 @@ void ColladaLoader::BuildCamerasForNode( const ColladaParser& pParser, const Col if (srcCamera->mVerFov != 10e10f && srcCamera->mAspect == 10e10f) { out->mAspect = tan(AI_DEG_TO_RAD(srcCamera->mHorFov)) / - tan(AI_DEG_TO_RAD(srcCamera->mVerFov)); + tan(AI_DEG_TO_RAD(srcCamera->mVerFov)); } } else if (srcCamera->mAspect != 10e10f && srcCamera->mVerFov != 10e10f) { out->mHorizontalFOV = 2.0f * AI_RAD_TO_DEG(atan(srcCamera->mAspect * - tan(AI_DEG_TO_RAD(srcCamera->mVerFov) * 0.5f))); + tan(AI_DEG_TO_RAD(srcCamera->mVerFov) * 0.5f))); } // Collada uses degrees, we use radians @@ -518,11 +518,11 @@ void ColladaLoader::BuildMeshesForNode( const ColladaParser& pParser, const Coll // assign the material index dstMesh->mMaterialIndex = matIdx; - if(dstMesh->mName.length == 0) - { - dstMesh->mName = mid.mMeshOrController; - } - } + if(dstMesh->mName.length == 0) + { + dstMesh->mName = mid.mMeshOrController; + } + } } } @@ -538,11 +538,11 @@ void ColladaLoader::BuildMeshesForNode( const ColladaParser& pParser, const Coll // ------------------------------------------------------------------------------------------------ // Creates a mesh for the given ColladaMesh face subset and returns the newly created mesh aiMesh* ColladaLoader::CreateMesh( const ColladaParser& pParser, const Collada::Mesh* pSrcMesh, const Collada::SubMesh& pSubMesh, - const Collada::Controller* pSrcController, size_t pStartVertex, size_t pStartFace) + const Collada::Controller* pSrcController, size_t pStartVertex, size_t pStartFace) { aiMesh* dstMesh = new aiMesh; - - dstMesh->mName = pSrcMesh->mName; + + dstMesh->mName = pSrcMesh->mName; // count the vertices addressed by its faces const size_t numVertices = std::accumulate( pSrcMesh->mFaceSize.begin() + pStartFace, @@ -589,7 +589,7 @@ aiMesh* ColladaLoader::CreateMesh( const ColladaParser& pParser, const Collada:: dstMesh->mTextureCoords[real] = new aiVector3D[numVertices]; for( size_t b = 0; b < numVertices; ++b) dstMesh->mTextureCoords[real][b] = pSrcMesh->mTexCoords[a][pStartVertex+b]; - + dstMesh->mNumUVComponents[real] = pSrcMesh->mNumUVComponents[a]; ++real; } @@ -624,8 +624,8 @@ aiMesh* ColladaLoader::CreateMesh( const ColladaParser& pParser, const Collada:: if( pSrcController) { // refuse if the vertex count does not match -// if( pSrcController->mWeightCounts.size() != dstMesh->mNumVertices) -// throw DeadlyImportError( "Joint Controller vertex count does not match mesh vertex count"); + // if( pSrcController->mWeightCounts.size() != dstMesh->mNumVertices) + // throw DeadlyImportError( "Joint Controller vertex count does not match mesh vertex count"); // resolve references - joint names const Collada::Accessor& jointNamesAcc = pParser.ResolveLibraryReference( pParser.mAccessorLibrary, pSrcController->mJointNameSource); @@ -937,7 +937,7 @@ void ColladaLoader::CreateAnimation( aiScene* pScene, const ColladaParser& pPars // find the collada node corresponding to the aiNode const Collada::Node* srcNode = FindNode( pParser.mRootNode, nodeName); -// ai_assert( srcNode != NULL); + // ai_assert( srcNode != NULL); if( !srcNode) continue; @@ -990,7 +990,7 @@ void ColladaLoader::CreateAnimation( aiScene* pScene, const ColladaParser& pPars { entry.mTransformId = srcChannel.mTarget.substr(slashPos + 1, bracketPos - slashPos - 1); std::string subElement = srcChannel.mTarget.substr(bracketPos); - + if (subElement == "(0)(0)") entry.mSubElement = 0; else if (subElement == "(1)(0)") @@ -1058,134 +1058,134 @@ void ColladaLoader::CreateAnimation( aiScene* pScene, const ColladaParser& pPars if( e.mTimeAccessor->mCount != e.mValueAccessor->mCount) throw DeadlyImportError( boost::str( boost::format( "Time count / value count mismatch in animation channel \"%s\".") % e.mChannel->mTarget)); - if( e.mTimeAccessor->mCount > 0 ) - { - // find bounding times - startTime = std::min( startTime, ReadFloat( *e.mTimeAccessor, *e.mTimeData, 0, 0)); - endTime = std::max( endTime, ReadFloat( *e.mTimeAccessor, *e.mTimeData, e.mTimeAccessor->mCount-1, 0)); - } + if( e.mTimeAccessor->mCount > 0 ) + { + // find bounding times + startTime = std::min( startTime, ReadFloat( *e.mTimeAccessor, *e.mTimeData, 0, 0)); + endTime = std::max( endTime, ReadFloat( *e.mTimeAccessor, *e.mTimeData, e.mTimeAccessor->mCount-1, 0)); + } } - std::vector resultTrafos; - if( !entries.empty() && entries.front().mTimeAccessor->mCount > 0 ) - { - // create a local transformation chain of the node's transforms - std::vector transforms = srcNode->mTransforms; + std::vector resultTrafos; + if( !entries.empty() && entries.front().mTimeAccessor->mCount > 0 ) + { + // create a local transformation chain of the node's transforms + std::vector transforms = srcNode->mTransforms; - // now for every unique point in time, find or interpolate the key values for that time - // and apply them to the transform chain. Then the node's present transformation can be calculated. - float time = startTime; - while( 1) - { - for( std::vector::iterator it = entries.begin(); it != entries.end(); ++it) - { - Collada::ChannelEntry& e = *it; + // now for every unique point in time, find or interpolate the key values for that time + // and apply them to the transform chain. Then the node's present transformation can be calculated. + float time = startTime; + while( 1) + { + for( std::vector::iterator it = entries.begin(); it != entries.end(); ++it) + { + Collada::ChannelEntry& e = *it; - // find the keyframe behind the current point in time - size_t pos = 0; - float postTime = 0.f; - while( 1) - { - if( pos >= e.mTimeAccessor->mCount) - break; - postTime = ReadFloat( *e.mTimeAccessor, *e.mTimeData, pos, 0); - if( postTime >= time) - break; - ++pos; - } + // find the keyframe behind the current point in time + size_t pos = 0; + float postTime = 0.f; + while( 1) + { + if( pos >= e.mTimeAccessor->mCount) + break; + postTime = ReadFloat( *e.mTimeAccessor, *e.mTimeData, pos, 0); + if( postTime >= time) + break; + ++pos; + } - pos = std::min( pos, e.mTimeAccessor->mCount-1); + pos = std::min( pos, e.mTimeAccessor->mCount-1); - // read values from there - float temp[16]; - for( size_t c = 0; c < e.mValueAccessor->mSize; ++c) - temp[c] = ReadFloat( *e.mValueAccessor, *e.mValueData, pos, c); + // read values from there + float temp[16]; + for( size_t c = 0; c < e.mValueAccessor->mSize; ++c) + temp[c] = ReadFloat( *e.mValueAccessor, *e.mValueData, pos, c); - // if not exactly at the key time, interpolate with previous value set - if( postTime > time && pos > 0) - { - float preTime = ReadFloat( *e.mTimeAccessor, *e.mTimeData, pos-1, 0); - float factor = (time - postTime) / (preTime - postTime); + // if not exactly at the key time, interpolate with previous value set + if( postTime > time && pos > 0) + { + float preTime = ReadFloat( *e.mTimeAccessor, *e.mTimeData, pos-1, 0); + float factor = (time - postTime) / (preTime - postTime); - for( size_t c = 0; c < e.mValueAccessor->mSize; ++c) - { - float v = ReadFloat( *e.mValueAccessor, *e.mValueData, pos-1, c); - temp[c] += (v - temp[c]) * factor; - } - } + for( size_t c = 0; c < e.mValueAccessor->mSize; ++c) + { + float v = ReadFloat( *e.mValueAccessor, *e.mValueData, pos-1, c); + temp[c] += (v - temp[c]) * factor; + } + } - // Apply values to current transformation - std::copy( temp, temp + e.mValueAccessor->mSize, transforms[e.mTransformIndex].f + e.mSubElement); - } + // Apply values to current transformation + std::copy( temp, temp + e.mValueAccessor->mSize, transforms[e.mTransformIndex].f + e.mSubElement); + } - // Calculate resulting transformation - aiMatrix4x4 mat = pParser.CalculateResultTransform( transforms); + // Calculate resulting transformation + aiMatrix4x4 mat = pParser.CalculateResultTransform( transforms); - // out of lazyness: we store the time in matrix.d4 - mat.d4 = time; - resultTrafos.push_back( mat); + // out of lazyness: we store the time in matrix.d4 + mat.d4 = time; + resultTrafos.push_back( mat); - // find next point in time to evaluate. That's the closest frame larger than the current in any channel - float nextTime = 1e20f; - for( std::vector::iterator it = entries.begin(); it != entries.end(); ++it) - { - Collada::ChannelEntry& e = *it; + // find next point in time to evaluate. That's the closest frame larger than the current in any channel + float nextTime = 1e20f; + for( std::vector::iterator it = entries.begin(); it != entries.end(); ++it) + { + Collada::ChannelEntry& e = *it; - // find the next time value larger than the current - size_t pos = 0; - while( pos < e.mTimeAccessor->mCount) - { - float t = ReadFloat( *e.mTimeAccessor, *e.mTimeData, pos, 0); - if( t > time) - { - nextTime = std::min( nextTime, t); - break; - } - ++pos; - } - } + // find the next time value larger than the current + size_t pos = 0; + while( pos < e.mTimeAccessor->mCount) + { + float t = ReadFloat( *e.mTimeAccessor, *e.mTimeData, pos, 0); + if( t > time) + { + nextTime = std::min( nextTime, t); + break; + } + ++pos; + } + } - // no more keys on any channel after the current time -> we're done - if( nextTime > 1e19) - break; + // no more keys on any channel after the current time -> we're done + if( nextTime > 1e19) + break; - // else construct next keyframe at this following time point - time = nextTime; - } - } + // else construct next keyframe at this following time point + time = nextTime; + } + } // there should be some keyframes, but we aren't that fixated on valid input data -// ai_assert( resultTrafos.size() > 0); + // ai_assert( resultTrafos.size() > 0); // build an animation channel for the given node out of these trafo keys - if( !resultTrafos.empty() ) - { - aiNodeAnim* dstAnim = new aiNodeAnim; - dstAnim->mNodeName = nodeName; - dstAnim->mNumPositionKeys = resultTrafos.size(); - dstAnim->mNumRotationKeys= resultTrafos.size(); - dstAnim->mNumScalingKeys = resultTrafos.size(); - dstAnim->mPositionKeys = new aiVectorKey[resultTrafos.size()]; - dstAnim->mRotationKeys = new aiQuatKey[resultTrafos.size()]; - dstAnim->mScalingKeys = new aiVectorKey[resultTrafos.size()]; + if( !resultTrafos.empty() ) + { + aiNodeAnim* dstAnim = new aiNodeAnim; + dstAnim->mNodeName = nodeName; + dstAnim->mNumPositionKeys = resultTrafos.size(); + dstAnim->mNumRotationKeys= resultTrafos.size(); + dstAnim->mNumScalingKeys = resultTrafos.size(); + dstAnim->mPositionKeys = new aiVectorKey[resultTrafos.size()]; + dstAnim->mRotationKeys = new aiQuatKey[resultTrafos.size()]; + dstAnim->mScalingKeys = new aiVectorKey[resultTrafos.size()]; - for( size_t a = 0; a < resultTrafos.size(); ++a) - { - aiMatrix4x4 mat = resultTrafos[a]; - double time = double( mat.d4); // remember? time is stored in mat.d4 - mat.d4 = 1.0f; + for( size_t a = 0; a < resultTrafos.size(); ++a) + { + aiMatrix4x4 mat = resultTrafos[a]; + double time = double( mat.d4); // remember? time is stored in mat.d4 + mat.d4 = 1.0f; - dstAnim->mPositionKeys[a].mTime = time; - dstAnim->mRotationKeys[a].mTime = time; - dstAnim->mScalingKeys[a].mTime = time; - mat.Decompose( dstAnim->mScalingKeys[a].mValue, dstAnim->mRotationKeys[a].mValue, dstAnim->mPositionKeys[a].mValue); - } + dstAnim->mPositionKeys[a].mTime = time; + dstAnim->mRotationKeys[a].mTime = time; + dstAnim->mScalingKeys[a].mTime = time; + mat.Decompose( dstAnim->mScalingKeys[a].mValue, dstAnim->mRotationKeys[a].mValue, dstAnim->mPositionKeys[a].mValue); + } - anims.push_back( dstAnim); - } else - { - DefaultLogger::get()->warn( "Collada loader: found empty animation channel, ignored. Please check your exporter."); - } + anims.push_back( dstAnim); + } else + { + DefaultLogger::get()->warn( "Collada loader: found empty animation channel, ignored. Please check your exporter."); + } } if( !anims.empty()) @@ -1210,9 +1210,9 @@ void ColladaLoader::CreateAnimation( aiScene* pScene, const ColladaParser& pPars // ------------------------------------------------------------------------------------------------ // Add a texture to a material structure void ColladaLoader::AddTexture ( aiMaterial& mat, const ColladaParser& pParser, - const Collada::Effect& effect, - const Collada::Sampler& sampler, - aiTextureType type, unsigned int idx) + const Collada::Effect& effect, + const Collada::Sampler& sampler, + aiTextureType type, unsigned int idx) { // first of all, basic file name const aiString name = FindFilenameForEffectTexture( pParser, effect, sampler.mName ); @@ -1339,8 +1339,8 @@ void ColladaLoader::FillMaterials( const ColladaParser& pParser, aiScene* /*pSce // add textures, if given if( !effect.mTexAmbient.mName.empty()) - /* It is merely a lightmap */ - AddTexture( mat, pParser, effect, effect.mTexAmbient, aiTextureType_LIGHTMAP); + /* It is merely a lightmap */ + AddTexture( mat, pParser, effect, effect.mTexAmbient, aiTextureType_LIGHTMAP); if( !effect.mTexEmissive.mName.empty()) AddTexture( mat, pParser, effect, effect.mTexEmissive, aiTextureType_EMISSIVE); @@ -1411,7 +1411,7 @@ void ColladaLoader::BuildMaterials( ColladaParser& pParser, aiScene* /*pScene*/) // ------------------------------------------------------------------------------------------------ // Resolves the texture name for the given effect texture entry aiString ColladaLoader::FindFilenameForEffectTexture( const ColladaParser& pParser, - const Collada::Effect& pEffect, const std::string& pName) + const Collada::Effect& pEffect, const std::string& pName) { // recurse through the param references until we end up at an image std::string name = pName; @@ -1488,35 +1488,35 @@ void ColladaLoader::ConvertPath (aiString& ss) ss.data[ss.length] = '\0'; } - // Maxon Cinema Collada Export writes "file:///C:\andsoon" with three slashes... - // I need to filter it without destroying linux paths starting with "/somewhere" - if( ss.data[0] == '/' && isalpha( ss.data[1]) && ss.data[2] == ':' ) - { - ss.length--; - memmove( ss.data, ss.data+1, ss.length); - ss.data[ss.length] = 0; - } + // Maxon Cinema Collada Export writes "file:///C:\andsoon" with three slashes... + // I need to filter it without destroying linux paths starting with "/somewhere" + if( ss.data[0] == '/' && isalpha( ss.data[1]) && ss.data[2] == ':' ) + { + ss.length--; + memmove( ss.data, ss.data+1, ss.length); + ss.data[ss.length] = 0; + } - // find and convert all %xy special chars - char* out = ss.data; - for( const char* it = ss.data; it != ss.data + ss.length; /**/ ) - { - if( *it == '%' && (it + 3) < ss.data + ss.length ) - { - // separate the number to avoid dragging in chars from behind into the parsing - char mychar[3] = { it[1], it[2], 0 }; - size_t nbr = strtoul16( mychar); - it += 3; - *out++ = (char)(nbr & 0xFF); - } else - { - *out++ = *it++; - } - } + // find and convert all %xy special chars + char* out = ss.data; + for( const char* it = ss.data; it != ss.data + ss.length; /**/ ) + { + if( *it == '%' && (it + 3) < ss.data + ss.length ) + { + // separate the number to avoid dragging in chars from behind into the parsing + char mychar[3] = { it[1], it[2], 0 }; + size_t nbr = strtoul16( mychar); + it += 3; + *out++ = (char)(nbr & 0xFF); + } else + { + *out++ = *it++; + } + } - // adjust length and terminator of the shortened string - *out = 0; - ss.length = (ptrdiff_t) (out - ss.data); + // adjust length and terminator of the shortened string + *out = 0; + ss.length = (ptrdiff_t) (out - ss.data); } // ------------------------------------------------------------------------------------------------ @@ -1569,17 +1569,17 @@ const Collada::Node* ColladaLoader::FindNode( const Collada::Node* pNode, const // Finds a node in the collada scene by the given SID const Collada::Node* ColladaLoader::FindNodeBySID( const Collada::Node* pNode, const std::string& pSID) const { - if( pNode->mSID == pSID) - return pNode; + if( pNode->mSID == pSID) + return pNode; - for( size_t a = 0; a < pNode->mChildren.size(); ++a) - { - const Collada::Node* node = FindNodeBySID( pNode->mChildren[a], pSID); - if( node) - return node; - } + for( size_t a = 0; a < pNode->mChildren.size(); ++a) + { + const Collada::Node* node = FindNodeBySID( pNode->mChildren[a], pSID); + if( node) + return node; + } - return NULL; + return NULL; } // ------------------------------------------------------------------------------------------------ @@ -1593,12 +1593,12 @@ std::string ColladaLoader::FindNameForNode( const Collada::Node* pNode) else if (!pNode->mID.empty()) return pNode->mID; else if (!pNode->mSID.empty()) - return pNode->mSID; - else + return pNode->mSID; + else { // No need to worry. Unnamed nodes are no problem at all, except // if cameras or lights need to be assigned to them. - return boost::str( boost::format( "$ColladaAutoName$_%d") % mNodeNameCounter++); + return boost::str( boost::format( "$ColladaAutoName$_%d") % mNodeNameCounter++); } } From ff4e1d9446716a676874a68b00769ddeec8a1a8f Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sat, 14 Mar 2015 19:57:13 +0100 Subject: [PATCH 06/16] Sub-sample axis-angle channels if the delta between two consecutive key-frame angles is >= 180 degrees. Fixes #458. --- code/ColladaLoader.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/code/ColladaLoader.cpp b/code/ColladaLoader.cpp index 2f3942689..a11d94ec3 100644 --- a/code/ColladaLoader.cpp +++ b/code/ColladaLoader.cpp @@ -1143,6 +1143,26 @@ void ColladaLoader::CreateAnimation( aiScene* pScene, const ColladaParser& pPars } ++pos; } + + // https://github.com/assimp/assimp/issues/458 + // Sub-sample axis-angle channels if the delta between two consecutive + // key-frame angles is >= 180 degrees. + if (transforms[e.mTransformIndex].mType == Collada::TF_ROTATE && e.mSubElement == 3 && pos > 0 && pos < e.mTimeAccessor->mCount) { + float cur_key_angle = ReadFloat( *e.mValueAccessor, *e.mValueData, pos, 0); + float last_key_angle = ReadFloat( *e.mValueAccessor, *e.mValueData, pos - 1, 0); + float cur_key_time = ReadFloat( *e.mTimeAccessor, *e.mTimeData, pos, 0); + float last_key_time = ReadFloat( *e.mTimeAccessor, *e.mTimeData, pos - 1, 0); + + float last_eval_angle = last_key_angle + (cur_key_angle - last_key_angle) * (time - last_key_time) / (cur_key_time - last_key_time); + float delta = std::fabs(cur_key_angle-last_eval_angle); + if (delta >= 180.0f) { + int subSampleCount = static_cast(std::floorf(delta / 90.0f)); + if (cur_key_time != time) { + float nextSampleTime = time + (cur_key_time - time) / subSampleCount; + nextTime = std::min( nextTime, nextSampleTime); + } + } + } } // no more keys on any channel after the current time -> we're done From 3080c26a6063945f825ed503d83501ef42b3f255 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sat, 14 Mar 2015 19:57:43 +0100 Subject: [PATCH 07/16] Add test files for previously fixed #458. --- ...anims_with_full_rotations_between_keys.fbx | Bin 0 -> 368592 bytes ...anims_with_full_rotations_between_keys.DAE | 7569 +++++++++++++++++ 2 files changed, 7569 insertions(+) create mode 100644 test/models-nonbsd/FBX/2013_BINARY/anims_with_full_rotations_between_keys.fbx create mode 100644 test/models/Collada/anims_with_full_rotations_between_keys.DAE diff --git a/test/models-nonbsd/FBX/2013_BINARY/anims_with_full_rotations_between_keys.fbx b/test/models-nonbsd/FBX/2013_BINARY/anims_with_full_rotations_between_keys.fbx new file mode 100644 index 0000000000000000000000000000000000000000..e65b9e8f0d8bd6f5f2b2bf6443883efcef085e08 GIT binary patch literal 368592 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 + + FBX COLLADA exporter2015-02-03T10:29:10Z2015-02-03T10:29:10ZZ_UP + + + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+ + + + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +-0.500000 0.500000 0.000000 +0.500000 0.500000 0.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 -0.500000 0.000000 +0.500000 -0.500000 0.000000 +0.500000 -0.500000 1.000000 +-0.500000 -0.500000 1.000000 +0.500000 -0.500000 0.000000 +0.500000 0.500000 0.000000 +0.500000 0.500000 1.000000 +0.500000 -0.500000 1.000000 +0.500000 0.500000 0.000000 +-0.500000 0.500000 0.000000 +-0.500000 0.500000 1.000000 +0.500000 0.500000 1.000000 +-0.500000 0.500000 0.000000 +-0.500000 -0.500000 0.000000 +-0.500000 -0.500000 1.000000 +-0.500000 0.500000 1.000000 + + + + + + + + + + + +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 -1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 0.000000 1.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +0.000000 -1.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +1.000000 0.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +0.000000 1.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 +-1.000000 0.000000 0.000000 + + + + + + + + + + + +1.000000 0.000000 +0.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +0.000000 1.000000 +1.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 +0.000000 0.000000 +1.000000 0.000000 +1.000000 1.000000 +0.000000 1.000000 + + + + + + + + + + + + + + 4 4 4 4 4 4

0 2 3 1 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

+
+
+ + + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + 0.033333 11.9666670.000000 0.000000LINEAR LINEAR + 0.033333 11.966667-0.000000 -0.000000LINEAR LINEAR + 0.033333 11.9666671080.000000 1440.000000LINEAR LINEAR + + + + 0 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185947 0.000000 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185947 1.891823 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185946 3.783642 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185944 5.675461 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185942 7.567280 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185939 9.459099 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185935 11.350918 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185931 13.242737 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185927 15.134556 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185922 17.026375 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185916 18.918194 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185910 20.810013 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185903 22.701832 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185895 24.593651 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185887 26.485470 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185879 28.377289 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185870 30.269108 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185860 32.160927 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185850 34.052746 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185839 35.944565 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185827 37.836384 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185815 39.728203 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185803 41.620022 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185790 43.511841 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185776 45.403660 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185762 47.295479 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185747 49.187302 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185731 51.079117 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185715 52.970940 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185699 54.862755 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185682 56.754578 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185664 58.646393 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185646 60.538216 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185627 62.430031 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185607 64.321854 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185587 66.213669 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185567 68.105492 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185546 69.997307 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185524 71.889122 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185502 73.780952 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185479 75.672768 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185456 77.564583 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185432 79.456398 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185407 81.348228 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185382 83.240044 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185356 85.131859 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185330 87.023674 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185303 88.915504 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185276 90.807320 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185248 92.699135 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185219 94.590950 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185190 96.482780 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185160 98.374596 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185130 100.266403 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185099 102.158218 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185068 104.050034 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185036 105.941849 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.185003 107.833664 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.184970 109.725479 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.184936 111.617294 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.184902 113.509109 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.184867 115.400925 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.184832 117.292740 0.0000000.000000 0.000000 0.000000 0.0000001.0000000 0 1 0.0000030 1 0 -0.0000001 0 0 0.0000000.184796 119.184555 0.0000000.000000 0.000000 0.000000 0.0000001.000000 + 30.0000000.00000011.966667 + + + + + + From 741b070c7e412ab10888d3de4f5679396d732673 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 15 Mar 2015 00:48:16 +0100 Subject: [PATCH 08/16] Add blender 2.71 default scene as test file. --- test/models/BLEND/BlenderDefault_271.blend | Bin 0 -> 484168 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/models/BLEND/BlenderDefault_271.blend diff --git a/test/models/BLEND/BlenderDefault_271.blend b/test/models/BLEND/BlenderDefault_271.blend new file mode 100644 index 0000000000000000000000000000000000000000..bbf04c2a0a35c78e162aad2f91a2c22cc7b9cfef GIT binary patch literal 484168 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˜Xnk*y{mg*xE>?bDE`{i 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 R9%PRwS1s00BlymL{{uz187BY$ literal 0 HcmV?d00001 From 94fd8c9c167659b60580b55d3f7a09365163ffc3 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 15 Mar 2015 00:48:51 +0100 Subject: [PATCH 09/16] Remove old batch script to run unit tests. --- test/RunSingleUnitTestSuite.bat | 33 ------------ test/RunUnitTestSuite.bat | 94 --------------------------------- 2 files changed, 127 deletions(-) delete mode 100644 test/RunSingleUnitTestSuite.bat delete mode 100644 test/RunUnitTestSuite.bat diff --git a/test/RunSingleUnitTestSuite.bat b/test/RunSingleUnitTestSuite.bat deleted file mode 100644 index 4a6a8998a..000000000 --- a/test/RunSingleUnitTestSuite.bat +++ /dev/null @@ -1,33 +0,0 @@ - -rem ------------------------------------------------------------------------------ -rem Tiny script to execute a single unit test suite. -rem -rem Usage: -rem SET OUTDIR= -rem SET BINDIR= -rem -rem CALL RunSingleUnitTestSuite -rem -rem Post: -rem FIRSTUTNA - if the test wasn't found, receives the test name -rem FIRSTUTFAILUR - if the test failed, receives the test name -rem -rem ------------------------------------------------------------------------------ -IF NOT EXIST %BINDIR%\%1\unit.exe ( - - echo NOT AVAILABLE. Please rebuild this configuration - echo Unable to find %BINDIR%\%1\unit.exe > %OUTDIR%%2 - SET FIRSTUTNA=%2 -) ELSE ( - - %BINDIR%\%1\unit.exe > %OUTDIR%%2 - IF errorlevel == 0 ( - echo SUCCESS - ) ELSE ( - echo FAILURE, check output file: %2 - SET FIRSTUTFAILURE=%2 - ) -) - -echo. -echo. \ No newline at end of file diff --git a/test/RunUnitTestSuite.bat b/test/RunUnitTestSuite.bat deleted file mode 100644 index 269e8e93d..000000000 --- a/test/RunUnitTestSuite.bat +++ /dev/null @@ -1,94 +0,0 @@ -rem ------------------------------------------------------------------------------ -rem Tiny script to execute Assimp's fully unit test suite for all configurations -rem -rem Usage: call RunUnitTestSuite -rem ------------------------------------------------------------------------------ - -rem Setup the console environment -set errorlevel=0 -color 4e -cls - -@echo off - -rem Setup target architecture -SET ARCHEXT=x64 -IF %PROCESSOR_ARCHITECTURE% == x86 ( - SET ARCHEXT=win32 -) - -rem Setup standard paths from here -SET OUTDIR=results\ -SET BINDIR=..\bin\ -SET FIRSTUTFAILURE=nil -SET FIRSTUTNA=nil - -echo #===================================================================== -echo # Open Asset Import Library - Unittests -echo #===================================================================== -echo # -echo # Executes the Assimp library unit test suite for the following -echo # build configurations (if available): -echo # -echo # Release -echo # Release -st -echo # Release -noboost -echo # Release -dll -echo # -echo # Debug -echo # Debug -st -echo # Debug -noboost -echo # Debug -dll -echo ====================================================================== -echo. -echo. - - -echo assimp-core release -echo ********************************************************************** -call RunSingleUnitTestSuite unit_release_%ARCHEXT% release.txt - -echo assimp-core release -st -echo ********************************************************************** -call RunSingleUnitTestSuite unit_release-st_%ARCHEXT% release-st.txt - -echo assimp-core release -noboost -echo ********************************************************************** -call RunSingleUnitTestSuite unit_release-noboost-st_%ARCHEXT% release-st-noboost.txt - -echo assimp-core release -dll -echo ********************************************************************** -call RunSingleUnitTestSuite unit_release-dll_%ARCHEXT% release-dll.txt - -echo assimp-core debug -echo ********************************************************************** -call RunSingleUnitTestSuite unit_debug_%ARCHEXT% debug.txt - -echo assimp-core debug -st -echo ********************************************************************** -call RunSingleUnitTestSuite unit_debug-st_%ARCHEXT% debug-st.txt - -echo assimp-core debug -noboost -echo ********************************************************************** -call RunSingleUnitTestSuite unit_debug-noboost-st_%ARCHEXT% debug-st-noboost.txt - -echo assimp-core debug -dll -echo ********************************************************************** -call RunSingleUnitTestSuite unit_debug-dll_%ARCHEXT% debug-dll.txt - - -echo ====================================================================== -IF %FIRSTUTNA% == nil ( - echo All test configs have been found. -) ELSE ( - echo One or more test configs are not available. -) - -IF %FIRSTUTFAILURE% == nil ( - echo All tests have been successful. -) ELSE ( - echo One or more tests failed. -) -echo. - -pause \ No newline at end of file From e976cc211702446011a21c5fbade0490c4923163 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 15 Mar 2015 01:02:18 +0100 Subject: [PATCH 10/16] Reduce garbage errors during regression checks. --- test/regression/run.py | 2 +- test/regression/settings.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/regression/run.py b/test/regression/run.py index 73172cf04..1c73c227c 100644 --- a/test/regression/run.py +++ b/test/regression/run.py @@ -171,7 +171,7 @@ def process_dir(d, outfile_results, zipin, result): process_dir(fullpath, outfile_results, zipin, result) continue - if f in settings.files_to_ignore: + if f in settings.files_to_ignore or os.path.splitext(f)[1] in settings.exclude_extensions: print("Ignoring " + f) continue diff --git a/test/regression/settings.py b/test/regression/settings.py index b8cd28683..eca2e79fd 100644 --- a/test/regression/settings.py +++ b/test/regression/settings.py @@ -62,7 +62,7 @@ files_to_ignore = ["pond.0.ply"] exclude_extensions = [ ".lws", ".assbin", ".assxml", ".txt", ".md", ".jpeg", ".jpg", ".png", ".gif", ".tga", ".bmp", - ".skeleton", ".skeleton.xml" + ".skeleton", ".skeleton.xml", ".license" ] # ------------------------------------------------------------------------------- From 1c64c590f213b61c0e5f9cbd99bd87c14c6b33cf Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 15 Mar 2015 01:26:15 +0100 Subject: [PATCH 11/16] Blender importer: always sort sets of objects by their name. Previously we accidentally ordered pointers to objects by their memory address, which was non-deterministic and caused regression tests to be flaky. --- code/BlenderIntermediate.h | 18 +++++++++++++++++- code/BlenderLoader.cpp | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/code/BlenderIntermediate.h b/code/BlenderIntermediate.h index 4804d9251..05f80f33b 100644 --- a/code/BlenderIntermediate.h +++ b/code/BlenderIntermediate.h @@ -118,6 +118,16 @@ namespace Blender { #ifdef _MSC_VER # pragma warning(disable:4351) #endif + + struct ObjectCompare { + bool operator() (const Object* left, const Object* right) const { + return strcmp(left->id.name, right->id.name) == -1; + } + }; + + // When keeping objects in sets, sort them by their name. + typedef std::set ObjectSet; + // -------------------------------------------------------------------- /** ConversionData acts as intermediate storage location for * the various ConvertXXX routines in BlenderImporter.*/ @@ -130,7 +140,13 @@ namespace Blender { , db(db) {} - std::set objects; + struct ObjectCompare { + bool operator() (const Object* left, const Object* right) const { + return strcmp(left->id.name, right->id.name) == -1; + } + }; + + ObjectSet objects; TempArray meshes; TempArray cameras; diff --git a/code/BlenderLoader.cpp b/code/BlenderLoader.cpp index dc88ab840..33175b05c 100644 --- a/code/BlenderLoader.cpp +++ b/code/BlenderLoader.cpp @@ -1044,7 +1044,7 @@ aiLight* BlenderImporter::ConvertLight(const Scene& /*in*/, const Object* obj, c aiNode* BlenderImporter::ConvertNode(const Scene& in, const Object* obj, ConversionData& conv_data, const aiMatrix4x4& parentTransform) { std::deque children; - for(std::set::iterator it = conv_data.objects.begin(); it != conv_data.objects.end() ;) { + for(ObjectSet::iterator it = conv_data.objects.begin(); it != conv_data.objects.end() ;) { const Object* object = *it; if (object->parent == obj) { children.push_back(object); From dc441d09e532b1ff957633800692d69b9b1f94d1 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 15 Mar 2015 14:42:28 +0100 Subject: [PATCH 12/16] Blender importer: fix accidental use of uninitialized fields in the default material. IMHO C++03+ guarantees zero initialization here, so it may be a MSVC-specific issue. --- code/BlenderLoader.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/code/BlenderLoader.cpp b/code/BlenderLoader.cpp index 33175b05c..80a5a0187 100644 --- a/code/BlenderLoader.cpp +++ b/code/BlenderLoader.cpp @@ -559,24 +559,26 @@ void BlenderImporter::BuildMaterials(ConversionData& conv_data) if (mesh->mMaterialIndex == static_cast( -1 )) { if (index == static_cast( -1 )) { - - // ok, we need to add a dedicated default material for some poor material-less meshes + // Setup a default material. boost::shared_ptr p(new Material()); + ai_assert(::strlen(AI_DEFAULT_MATERIAL_NAME) < sizeof(p->id.name)-2); strcpy( p->id.name+2, AI_DEFAULT_MATERIAL_NAME ); + // Note: MSVC11 does not zero-initialize Material here, although it should. + // Thus all relevant fields should be explicitly initialized. We cannot add + // a default constructor to Material since the DNA codegen does not support + // parsing it. p->r = p->g = p->b = 0.6f; p->specr = p->specg = p->specb = 0.6f; p->ambr = p->ambg = p->ambb = 0.0f; p->mirr = p->mirg = p->mirb = 0.0f; p->emit = 0.f; p->alpha = 0.f; - - // XXX add more / or add default c'tor to Material + p->har = 0; index = static_cast( conv_data.materials_raw.size() ); conv_data.materials_raw.push_back(p); - - LogInfo("Adding default material ..."); + LogInfo("Adding default material"); } mesh->mMaterialIndex = index; } @@ -591,6 +593,7 @@ void BlenderImporter::BuildMaterials(ConversionData& conv_data) aiMaterial* mout = new aiMaterial(); conv_data.materials->push_back(mout); + // For any new material field handled here, the default material above must be updated with an appropriate default value. // set material name aiString name = aiString(mat->id.name+2); // skip over the name prefix 'MA' @@ -1049,7 +1052,7 @@ aiNode* BlenderImporter::ConvertNode(const Scene& in, const Object* obj, Convers if (object->parent == obj) { children.push_back(object); - conv_data.objects.erase(it++); + it = conv_data.objects.erase(it); continue; } ++it; From 3554301afec3b6d3583676fe43f91b5832bfecfb Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 15 Mar 2015 14:42:56 +0100 Subject: [PATCH 13/16] Better regression test logging. --- test/regression/run.py | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/test/regression/run.py b/test/regression/run.py index 1c73c227c..1898fb962 100644 --- a/test/regression/run.py +++ b/test/regression/run.py @@ -167,7 +167,7 @@ def process_dir(d, outfile_results, zipin, result): print("Processing directory " + d) for f in sorted(os.listdir(d)): fullpath = os.path.join(d, f) - if os.path.isdir(fullpath) and not f == ".svn": + if os.path.isdir(fullpath) and not f[:1] == '.': process_dir(fullpath, outfile_results, zipin, result) continue @@ -190,32 +190,26 @@ def process_dir(d, outfile_results, zipin, result): "regression database? Use gen_db.zip to re-generate.") continue - # Ignore extensions via settings.py configured list - # todo: Fix for multi dot extensions like .skeleton.xml - ext = os.path.splitext(fullpath)[1].lower() - if ext != "" and ext in settings.exclude_extensions: - continue - print("-"*60 + "\n " + os.path.realpath(fullpath) + " pp: " + pppreset) outfile_actual = prepare_output_dir(fullpath, filehash, "ACTUAL") outfile_expect = prepare_output_dir(fullpath, filehash, "EXPECT") outfile_results.write("assimp dump "+"-"*80+"\n") outfile_results.flush() - command = [assimp_bin_path, "dump", fullpath, outfile_actual, "-b", "-s", "-l" ] +\ pppreset.split() - r = subprocess.call(command, **shellparams) - print(r) + outfile_results.flush() if r and not failure: result.fail(fullpath, outfile_expect, pppreset, IMPORT_FAILURE, r) + outfile_results.write("Failed to import\n") continue elif failure and not r: result.fail(fullpath, outfile_expect, pppreset, EXPECTED_FAILURE_NOT_MET) + outfile_results.write("Expected import to fail\n") continue with open(outfile_expect, "wb") as s: @@ -227,21 +221,24 @@ def process_dir(d, outfile_results, zipin, result): except IOError: continue + outfile_results.write("Expected data length: {0}\n".format(len(input_expected))) + outfile_results.write("Actual data length: {0}\n".format(len(input_actual))) + failed = False if len(input_expected) != len(input_actual): result.fail(fullpath, outfile_expect, pppreset, DATABASE_LENGTH_MISMATCH, len(input_expected), len(input_actual)) - continue + # Still compare the dumps to see what the difference is + failed = True outfile_results.write("assimp cmpdump "+"-"*80+"\n") outfile_results.flush() - command = [ assimp_bin_path, 'cmpdump', outfile_actual, outfile_expect ] if subprocess.call(command, **shellparams) != 0: - result.fail(fullpath, outfile_expect, pppreset, DATABASE_VALUE_MISMATCH) + if not failed: + result.fail(fullpath, outfile_expect, pppreset, DATABASE_VALUE_MISMATCH) continue - result.ok(fullpath, pppreset, COMPARE_SUCCESS, - len(input_expected)) + result.ok(fullpath, pppreset, COMPARE_SUCCESS, len(input_expected)) # ------------------------------------------------------------------------------- def del_folder_with_contents(folder): From 09c15331c437318c7e64ee060231fb77270443a8 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 15 Mar 2015 21:01:34 +0100 Subject: [PATCH 14/16] Improve error reporting during dump diffing. --- tools/assimp_cmd/CompareDump.cpp | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/tools/assimp_cmd/CompareDump.cpp b/tools/assimp_cmd/CompareDump.cpp index 33db0eb3d..5027a1fc4 100644 --- a/tools/assimp_cmd/CompareDump.cpp +++ b/tools/assimp_cmd/CompareDump.cpp @@ -257,16 +257,32 @@ private: /* read from both streams simult.*/ template void read(T& filla,T& fille) { if(1 != fread(&filla,sizeof(T),1,actual)) { - throw compare_fails_exception("Unexpected EOF reading ACTUAL"); + EOFActual(); } if(1 != fread(&fille,sizeof(T),1,expect)) { - throw compare_fails_exception("Unexpected EOF reading EXPECT"); + EOFExpect(); } } - private: + void EOFActual() { + std::stringstream ss; + throw compare_fails_exception((ss + << "Unexpected EOF reading ACTUAL.\nCurrent position in scene hierarchy is " + << print_hierarchy(),ss.str().c_str() + )); + } + + void EOFExpect() { + std::stringstream ss; + throw compare_fails_exception((ss + << "Unexpected EOF reading EXPECT.\nCurrent position in scene hierarchy is " + << print_hierarchy(),ss.str().c_str() + )); + } + + FILE *const actual, *const expect; typedef std::map PerChunkCounter; @@ -290,10 +306,10 @@ template <> void comparer_context :: read(aiString& filla,aiString& fi read(lena,lene); if(lena && 1 != fread(&filla.data,lena,1,actual)) { - throw compare_fails_exception("Unexpected EOF reading ACTUAL"); + EOFActual(); } if(lene && 1 != fread(&fille.data,lene,1,expect)) { - throw compare_fails_exception("Unexpected EOF reading ACTUAL"); + EOFExpect(); } fille.data[fille.length=static_cast(lene)] = '\0'; @@ -487,7 +503,7 @@ private: res|=fread(&actual.second,4,1,ctx.get_actual()) <<3u; if(res!=0xf) { - ctx.failure("I/OError reading chunk head, dumps are not well-defined",""); + ctx.failure("IO Error reading chunk head, dumps are malformed",""); } if (current.first != actual.first) { @@ -504,7 +520,7 @@ private: if (current.first != actual.first) { std::stringstream ss; ctx.failure((ss - <<"Chunk lenghts do not match. EXPECT: " + <<"Chunk lengths do not match. EXPECT: " < Date: Sun, 15 Mar 2015 23:31:58 +0100 Subject: [PATCH 15/16] Fix build after mis-merge. --- code/ColladaParser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ColladaParser.cpp b/code/ColladaParser.cpp index 19d269682..22d620f55 100644 --- a/code/ColladaParser.cpp +++ b/code/ColladaParser.cpp @@ -1984,7 +1984,7 @@ void ColladaParser::ReadIndexData( Mesh* pMesh) #ifdef ASSIMP_BUILD_DEBUG if (primType != Prim_TriFans && primType != Prim_TriStrips) { - ai_assert(actualPrimitives == numPrimitives) + ai_assert(actualPrimitives == numPrimitives); } #endif From 7ee5eaafc60b78584ee4c7c8f283671b2d6b0f17 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 15 Mar 2015 23:40:29 +0100 Subject: [PATCH 16/16] Fix compile: set::erase() returns void prior to C++11. --- code/BlenderLoader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/BlenderLoader.cpp b/code/BlenderLoader.cpp index 80a5a0187..c9419b400 100644 --- a/code/BlenderLoader.cpp +++ b/code/BlenderLoader.cpp @@ -1052,7 +1052,7 @@ aiNode* BlenderImporter::ConvertNode(const Scene& in, const Object* obj, Convers if (object->parent == obj) { children.push_back(object); - it = conv_data.objects.erase(it); + conv_data.objects.erase(it++); continue; } ++it;