mirror of
https://github.com/bulletphysics/bullet3
synced 2025-01-10 09:20:10 +00:00
Improved BulletSoftBody serialization, added cluster support. Joints and copying data from GPU back to softbody are the main todo.
Updated the Bullet/Demos/SerializeDemo to load .bullet files with the softbody data. BulletSoftBody should use getWorldTransform and not getInterpolationWorldTransform Fix btBulletWorldImporter so that it creates a copy of the index/vertex data, this prevents crashes when deleting the .bullet file with triangle meshes.
This commit is contained in:
parent
032c6bfe2c
commit
6173a30bce
@ -15,7 +15,7 @@ subject to the following restrictions:
|
|||||||
|
|
||||||
|
|
||||||
#define TEST_SERIALIZATION 1
|
#define TEST_SERIALIZATION 1
|
||||||
//#define DESERIALIZE_SOFT_BODIES 1
|
//#undef DESERIALIZE_SOFT_BODIES
|
||||||
|
|
||||||
#ifdef BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
|
#ifdef BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
|
||||||
#define CREATE_NEW_BULLETFILE 1
|
#define CREATE_NEW_BULLETFILE 1
|
||||||
@ -49,7 +49,9 @@ subject to the following restrictions:
|
|||||||
#include <stdio.h> //printf debugging
|
#include <stdio.h> //printf debugging
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef DESERIALIZE_SOFT_BODIES
|
#ifdef DESERIALIZE_SOFT_BODIES
|
||||||
|
#include "BulletSoftBody/btSoftBodyHelpers.h"
|
||||||
#include "BulletSoftBody/btSoftRigidDynamicsWorld.h"
|
#include "BulletSoftBody/btSoftRigidDynamicsWorld.h"
|
||||||
#include "BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h"
|
#include "BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h"
|
||||||
#endif
|
#endif
|
||||||
@ -65,6 +67,7 @@ void SerializeDemo::clientMoveAndDisplay()
|
|||||||
///step the simulation
|
///step the simulation
|
||||||
if (m_dynamicsWorld)
|
if (m_dynamicsWorld)
|
||||||
{
|
{
|
||||||
|
|
||||||
m_dynamicsWorld->stepSimulation(ms / 1000000.f);
|
m_dynamicsWorld->stepSimulation(ms / 1000000.f);
|
||||||
//optional but useful: debug drawing
|
//optional but useful: debug drawing
|
||||||
m_dynamicsWorld->debugDrawWorld();
|
m_dynamicsWorld->debugDrawWorld();
|
||||||
@ -114,12 +117,15 @@ void SerializeDemo::setupEmptyDynamicsWorld()
|
|||||||
|
|
||||||
m_broadphase = new btDbvtBroadphase();
|
m_broadphase = new btDbvtBroadphase();
|
||||||
|
|
||||||
|
|
||||||
///the default constraint solver. For parallel processing you can use a different solver (see Extras/BulletMultiThreaded)
|
///the default constraint solver. For parallel processing you can use a different solver (see Extras/BulletMultiThreaded)
|
||||||
btSequentialImpulseConstraintSolver* sol = new btSequentialImpulseConstraintSolver;
|
btSequentialImpulseConstraintSolver* sol = new btSequentialImpulseConstraintSolver;
|
||||||
m_solver = sol;
|
m_solver = sol;
|
||||||
|
|
||||||
#ifdef DESERIALIZE_SOFT_BODIES
|
#ifdef DESERIALIZE_SOFT_BODIES
|
||||||
m_dynamicsWorld = new btSoftRigidDynamicsWorld(m_dispatcher,m_broadphase,m_solver,m_collisionConfiguration);
|
btSoftRigidDynamicsWorld* world = new btSoftRigidDynamicsWorld(m_dispatcher,m_broadphase,m_solver,m_collisionConfiguration);
|
||||||
|
m_dynamicsWorld = world;
|
||||||
|
//world->setDrawFlags(world->getDrawFlags()^fDrawFlags::Clusters);
|
||||||
#else
|
#else
|
||||||
m_dynamicsWorld = new btDiscreteDynamicsWorld(m_dispatcher,m_broadphase,m_solver,m_collisionConfiguration);
|
m_dynamicsWorld = new btDiscreteDynamicsWorld(m_dispatcher,m_broadphase,m_solver,m_collisionConfiguration);
|
||||||
#endif //DESERIALIZE_SOFT_BODIES
|
#endif //DESERIALIZE_SOFT_BODIES
|
||||||
@ -130,8 +136,6 @@ void SerializeDemo::setupEmptyDynamicsWorld()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
btAlignedObjectArray<btVector3> vtx;
|
|
||||||
btAlignedObjectArray<btScalar> masses;
|
|
||||||
|
|
||||||
#ifdef DESERIALIZE_SOFT_BODIES
|
#ifdef DESERIALIZE_SOFT_BODIES
|
||||||
#include "BulletSoftBody/btSoftBodyData.h"
|
#include "BulletSoftBody/btSoftBodyData.h"
|
||||||
@ -139,6 +143,11 @@ class MySoftBulletWorldImporter : public btBulletWorldImporter
|
|||||||
{
|
{
|
||||||
|
|
||||||
btSoftRigidDynamicsWorld* m_softRigidWorld;
|
btSoftRigidDynamicsWorld* m_softRigidWorld;
|
||||||
|
|
||||||
|
btHashMap<btHashPtr,btSoftBody::Material*> m_materialMap;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
MySoftBulletWorldImporter(btSoftRigidDynamicsWorld* world)
|
MySoftBulletWorldImporter(btSoftRigidDynamicsWorld* world)
|
||||||
@ -148,6 +157,11 @@ public:
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual ~MySoftBulletWorldImporter()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
virtual bool convertAllObjects( bParse::btBulletFile* bulletFile2)
|
virtual bool convertAllObjects( bParse::btBulletFile* bulletFile2)
|
||||||
{
|
{
|
||||||
bool result = btBulletWorldImporter::convertAllObjects(bulletFile2);
|
bool result = btBulletWorldImporter::convertAllObjects(bulletFile2);
|
||||||
@ -158,84 +172,109 @@ public:
|
|||||||
if (bulletFile2->getFlags() & bParse::FD_DOUBLE_PRECISION)
|
if (bulletFile2->getFlags() & bParse::FD_DOUBLE_PRECISION)
|
||||||
{
|
{
|
||||||
btAssert(0); //not yet
|
btAssert(0); //not yet
|
||||||
//btSoftBodyFloatData* colObjData = (btSoftBodyFloatData*)bulletFile2->m_softBodies[i];
|
//btSoftBodyFloatData* softBodyData = (btSoftBodyFloatData*)bulletFile2->m_softBodies[i];
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
btSoftBodyFloatData* colObjData = (btSoftBodyFloatData*)bulletFile2->m_softBodies[i];
|
btSoftBodyFloatData* softBodyData = (btSoftBodyFloatData*)bulletFile2->m_softBodies[i];
|
||||||
int i;
|
int i;
|
||||||
int numNodes = colObjData->m_numNodes;
|
int numNodes = softBodyData->m_numNodes;
|
||||||
|
|
||||||
for (i=0;i<colObjData->m_numLinks;i++)
|
|
||||||
|
btSoftBody* psb=new btSoftBody(&m_softRigidWorld->getWorldInfo());
|
||||||
|
|
||||||
|
//materials
|
||||||
|
for (i=0;i<softBodyData->m_numMaterials;i++)
|
||||||
{
|
{
|
||||||
SoftBodyLinkData& link = colObjData->m_links[i];
|
SoftBodyMaterialData* matData = softBodyData->m_materials[i];
|
||||||
|
btSoftBody::Material** matPtr = m_materialMap.find(matData);
|
||||||
|
btSoftBody::Material* mat = 0;
|
||||||
|
if (matPtr&& *matPtr)
|
||||||
|
{
|
||||||
|
mat = *matPtr;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
mat = psb->appendMaterial();
|
||||||
|
mat->m_flags = matData->m_flags;
|
||||||
|
mat->m_kAST = matData->m_angularStiffness;
|
||||||
|
mat->m_kLST = matData->m_linearStiffness;
|
||||||
|
mat->m_kVST = matData->m_volumeStiffness;
|
||||||
|
m_materialMap.insert(matData,mat);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
vtx.resize(numNodes);
|
|
||||||
masses.resize(numNodes);
|
|
||||||
|
|
||||||
for (i=0;i<numNodes;i++)
|
for (i=0;i<numNodes;i++)
|
||||||
{
|
{
|
||||||
SoftBodyNodeData& node = colObjData->m_nodes[i];
|
SoftBodyNodeData& nodeData = softBodyData->m_nodes[i];
|
||||||
vtx[i].deSerializeFloat(node.m_position);
|
btVector3 position;
|
||||||
masses[i] = node.m_inverseMass? 1./node.m_inverseMass : 0.f;
|
position.deSerializeFloat(nodeData.m_position);
|
||||||
}
|
btScalar mass = nodeData.m_inverseMass? 1./nodeData.m_inverseMass : 0.f;
|
||||||
|
psb->appendNode(position,mass);
|
||||||
|
btSoftBody::Node* node = &psb->m_nodes[psb->m_nodes.size()-1];
|
||||||
|
node->m_area = nodeData.m_area;
|
||||||
|
node->m_battach = nodeData.m_attach;
|
||||||
|
node->m_f.deSerializeFloat(nodeData.m_accumulatedForce);
|
||||||
|
node->m_im = nodeData.m_inverseMass;
|
||||||
|
|
||||||
btSoftBody* psb=new btSoftBody(&m_softRigidWorld->getWorldInfo(),numNodes,&vtx[0],&masses[0]);
|
btSoftBody::Material** matPtr = m_materialMap.find(nodeData.m_material);
|
||||||
|
if (matPtr && *matPtr)
|
||||||
#if 0
|
|
||||||
for (i=0;i<numNodes;i++)
|
|
||||||
{
|
{
|
||||||
SoftBodyNodeData& node = colObjData->m_nodes[i];
|
node->m_material = *matPtr;
|
||||||
if (!node.m_inverseMass)
|
} else
|
||||||
{
|
{
|
||||||
btScalar mass = node.m_inverseMass? 1.f/node.m_inverseMass : 0;
|
printf("no mat?\n");
|
||||||
psb->setMass(i,mass);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
node->m_n.deSerializeFloat(nodeData.m_normal);
|
||||||
|
node->m_q = node->m_x;
|
||||||
|
node->m_v.deSerializeFloat(nodeData.m_velocity);
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
for (i=0;i<softBodyData->m_numLinks;i++)
|
||||||
for (i=0;i<colObjData->m_numLinks;i++)
|
|
||||||
{
|
{
|
||||||
SoftBodyLinkData& link = colObjData->m_links[i];
|
SoftBodyLinkData& linkData = softBodyData->m_links[i];
|
||||||
psb->appendLink(link.m_nodeIndices[0],link.m_nodeIndices[1]);
|
btSoftBody::Material** matPtr = m_materialMap.find(linkData.m_material);
|
||||||
}
|
if (matPtr && *matPtr)
|
||||||
|
|
||||||
for (i=0;i<colObjData->m_numFaces;i++)
|
|
||||||
{
|
{
|
||||||
SoftBodyFaceData& face = colObjData->m_faces[i];
|
psb->appendLink(linkData.m_nodeIndices[0],linkData.m_nodeIndices[1],*matPtr);
|
||||||
psb->appendFace(face.m_nodeIndices[0],face.m_nodeIndices[1],face.m_nodeIndices[2]);
|
} else
|
||||||
|
{
|
||||||
|
psb->appendLink(linkData.m_nodeIndices[0],linkData.m_nodeIndices[1]);
|
||||||
|
}
|
||||||
|
btSoftBody::Link* link = &psb->m_links[psb->m_links.size()-1];
|
||||||
|
link->m_bbending = linkData.m_bbending;
|
||||||
|
link->m_c0 = linkData.m_c0;
|
||||||
|
link->m_c1 = linkData.m_c1;
|
||||||
|
link->m_c2 = linkData.m_c2;
|
||||||
|
link->m_c3.deSerializeFloat(linkData.m_c3);
|
||||||
|
link->m_rl = linkData.m_restLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i=0;i<softBodyData->m_numFaces;i++)
|
||||||
|
{
|
||||||
|
SoftBodyFaceData& faceData = softBodyData->m_faces[i];
|
||||||
|
btSoftBody::Material** matPtr = m_materialMap.find(faceData.m_material);
|
||||||
|
if (matPtr && *matPtr)
|
||||||
|
{
|
||||||
|
psb->appendFace(faceData.m_nodeIndices[0],faceData.m_nodeIndices[1],faceData.m_nodeIndices[2],*matPtr);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
psb->appendFace(faceData.m_nodeIndices[0],faceData.m_nodeIndices[1],faceData.m_nodeIndices[2]);
|
||||||
|
}
|
||||||
|
btSoftBody::Face* face = &psb->m_faces[psb->m_faces.size()-1];
|
||||||
|
face->m_normal.deSerializeFloat(faceData.m_normal);
|
||||||
|
face->m_ra = faceData.m_restArea;
|
||||||
|
}
|
||||||
|
|
||||||
// psb->randomizeConstraints();
|
|
||||||
|
|
||||||
|
|
||||||
//psb->updateNormals();
|
|
||||||
//psb->updateBounds();
|
|
||||||
//psb->updateConstants();
|
|
||||||
|
|
||||||
|
|
||||||
psb->m_cfg.piterations=colObjData->m_config.m_positionIterations;
|
|
||||||
psb->m_cfg.diterations=colObjData->m_config.m_driftIterations;
|
|
||||||
psb->m_cfg.citerations=colObjData->m_config.m_clusterIterations;
|
|
||||||
psb->m_cfg.viterations=colObjData->m_config.m_velocityIterations;
|
|
||||||
|
|
||||||
|
|
||||||
//psb->setTotalMass(0.1);
|
|
||||||
psb->m_cfg.aeromodel = (btSoftBody::eAeroModel::_)colObjData->m_config.m_aeroModel;
|
|
||||||
psb->m_cfg.kLF = colObjData->m_config.m_lift;
|
|
||||||
psb->m_cfg.kDG = colObjData->m_config.m_drag;
|
|
||||||
//psb->addForce(btVector3(0,2,0),0);
|
|
||||||
|
|
||||||
|
|
||||||
//anchors
|
//anchors
|
||||||
for (i=0;i<colObjData->m_numAnchors;i++)
|
for (i=0;i<softBodyData->m_numAnchors;i++)
|
||||||
{
|
{
|
||||||
btCollisionObject** colAptr = m_bodyMap.find(colObjData->m_anchors[i].m_rigidBody);
|
btCollisionObject** colAptr = m_bodyMap.find(softBodyData->m_anchors[i].m_rigidBody);
|
||||||
if (colAptr && *colAptr)
|
if (colAptr && *colAptr)
|
||||||
{
|
{
|
||||||
btRigidBody* body = btRigidBody::upcast(*colAptr);
|
btRigidBody* body = btRigidBody::upcast(*colAptr);
|
||||||
@ -243,13 +282,131 @@ public:
|
|||||||
{
|
{
|
||||||
bool disableCollision = false;
|
bool disableCollision = false;
|
||||||
btVector3 localPivot;
|
btVector3 localPivot;
|
||||||
localPivot.deSerializeFloat(colObjData->m_anchors[i].m_localFrame);
|
localPivot.deSerializeFloat(softBodyData->m_anchors[i].m_localFrame);
|
||||||
psb->appendAnchor(colObjData->m_anchors[i].m_nodeIndex,body,localPivot, disableCollision);
|
psb->appendAnchor(softBodyData->m_anchors[i].m_nodeIndex,body,localPivot, disableCollision);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (softBodyData->m_pose)
|
||||||
|
{
|
||||||
|
psb->m_pose.m_aqq.deSerializeFloat( softBodyData->m_pose->m_aqq);
|
||||||
|
psb->m_pose.m_bframe = softBodyData->m_pose->m_bframe;
|
||||||
|
psb->m_pose.m_bvolume = softBodyData->m_pose->m_bvolume;
|
||||||
|
psb->m_pose.m_com.deSerializeFloat(softBodyData->m_pose->m_com);
|
||||||
|
|
||||||
|
psb->m_pose.m_pos.resize(softBodyData->m_pose->m_numPositions);
|
||||||
|
for (i=0;i<softBodyData->m_pose->m_numPositions;i++)
|
||||||
|
{
|
||||||
|
psb->m_pose.m_pos[i].deSerializeFloat(softBodyData->m_pose->m_positions[i]);
|
||||||
|
}
|
||||||
|
psb->m_pose.m_rot.deSerializeFloat(softBodyData->m_pose->m_rot);
|
||||||
|
psb->m_pose.m_scl.deSerializeFloat(softBodyData->m_pose->m_scale);
|
||||||
|
psb->m_pose.m_wgh.resize(softBodyData->m_pose->m_numWeigts);
|
||||||
|
for (i=0;i<softBodyData->m_pose->m_numWeigts;i++)
|
||||||
|
{
|
||||||
|
psb->m_pose.m_wgh[i] = softBodyData->m_pose->m_weights[i];
|
||||||
|
}
|
||||||
|
psb->m_pose.m_volume = softBodyData->m_pose->m_restVolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
psb->m_cfg.piterations=softBodyData->m_config.m_positionIterations;
|
||||||
|
psb->m_cfg.diterations=softBodyData->m_config.m_driftIterations;
|
||||||
|
psb->m_cfg.citerations=softBodyData->m_config.m_clusterIterations;
|
||||||
|
psb->m_cfg.viterations=softBodyData->m_config.m_velocityIterations;
|
||||||
|
|
||||||
|
//psb->setTotalMass(0.1);
|
||||||
|
psb->m_cfg.aeromodel = (btSoftBody::eAeroModel::_)softBodyData->m_config.m_aeroModel;
|
||||||
|
psb->m_cfg.kLF = softBodyData->m_config.m_lift;
|
||||||
|
psb->m_cfg.kDG = softBodyData->m_config.m_drag;
|
||||||
|
psb->m_cfg.kMT = softBodyData->m_config.m_poseMatch;
|
||||||
|
psb->m_cfg.collisions = softBodyData->m_config.m_collisionFlags;
|
||||||
|
psb->m_cfg.kDF = softBodyData->m_config.m_dynamicFriction;
|
||||||
|
psb->m_cfg.kDP = softBodyData->m_config.m_damping;
|
||||||
|
psb->m_cfg.kPR = softBodyData->m_config.m_pressure;
|
||||||
|
psb->m_cfg.kVC = softBodyData->m_config.m_volume;
|
||||||
|
psb->m_cfg.kAHR = softBodyData->m_config.m_anchorHardness;
|
||||||
|
psb->m_cfg.kKHR = softBodyData->m_config.m_kineticContactHardness;
|
||||||
|
psb->m_cfg.kSHR = softBodyData->m_config.m_softContactHardness;
|
||||||
|
psb->m_cfg.kSRHR_CL = softBodyData->m_config.m_softRigidClusterHardness;
|
||||||
|
psb->m_cfg.kSKHR_CL = softBodyData->m_config.m_softKineticClusterHardness;
|
||||||
|
psb->m_cfg.kSSHR_CL = softBodyData->m_config.m_softSoftClusterHardness;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// pm->m_kLST = 1;
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
//clusters
|
||||||
|
if (softBodyData->m_numClusters)
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
psb->m_clusters.resize(softBodyData->m_numClusters);
|
||||||
|
for (i=0;i<softBodyData->m_numClusters;i++)
|
||||||
|
{
|
||||||
|
psb->m_clusters[i] = new(btAlignedAlloc(sizeof(btSoftBody::Cluster),16)) btSoftBody::Cluster();
|
||||||
|
psb->m_clusters[i]->m_adamping = softBodyData->m_clusters[i].m_adamping;
|
||||||
|
psb->m_clusters[i]->m_av.deSerializeFloat(softBodyData->m_clusters[i].m_av);
|
||||||
|
psb->m_clusters[i]->m_clusterIndex = softBodyData->m_clusters[i].m_clusterIndex;
|
||||||
|
psb->m_clusters[i]->m_collide = softBodyData->m_clusters[i].m_collide;
|
||||||
|
psb->m_clusters[i]->m_com.deSerializeFloat(softBodyData->m_clusters[i].m_com);
|
||||||
|
psb->m_clusters[i]->m_containsAnchor = softBodyData->m_clusters[i].m_containsAnchor;
|
||||||
|
psb->m_clusters[i]->m_dimpulses[0].deSerializeFloat(softBodyData->m_clusters[i].m_dimpulses[0]);
|
||||||
|
psb->m_clusters[i]->m_dimpulses[1].deSerializeFloat(softBodyData->m_clusters[i].m_dimpulses[1]);
|
||||||
|
|
||||||
|
psb->m_clusters[i]->m_framerefs.resize(softBodyData->m_clusters[i].m_numFrameRefs);
|
||||||
|
for (j=0;j<softBodyData->m_clusters[i].m_numFrameRefs;j++)
|
||||||
|
{
|
||||||
|
psb->m_clusters[i]->m_framerefs[j].deSerializeFloat(softBodyData->m_clusters[i].m_framerefs[j]);
|
||||||
|
}
|
||||||
|
psb->m_clusters[i]->m_nodes.resize(softBodyData->m_clusters[i].m_numNodes);
|
||||||
|
for (j=0;j<softBodyData->m_clusters[i].m_numNodes;j++)
|
||||||
|
{
|
||||||
|
int nodeIndex = softBodyData->m_clusters[i].m_nodeIndices[j];
|
||||||
|
psb->m_clusters[i]->m_nodes[j] = &psb->m_nodes[nodeIndex];
|
||||||
|
}
|
||||||
|
|
||||||
|
psb->m_clusters[i]->m_masses.resize(softBodyData->m_clusters[i].m_numMasses);
|
||||||
|
for (j=0;j<softBodyData->m_clusters[i].m_numMasses;j++)
|
||||||
|
{
|
||||||
|
psb->m_clusters[i]->m_masses[j] = softBodyData->m_clusters[i].m_masses[j];
|
||||||
|
}
|
||||||
|
psb->m_clusters[i]->m_framexform.deSerializeFloat(softBodyData->m_clusters[i].m_framexform);
|
||||||
|
psb->m_clusters[i]->m_idmass = softBodyData->m_clusters[i].m_idmass;
|
||||||
|
psb->m_clusters[i]->m_imass = softBodyData->m_clusters[i].m_imass;
|
||||||
|
psb->m_clusters[i]->m_invwi.deSerializeFloat(softBodyData->m_clusters[i].m_invwi);
|
||||||
|
psb->m_clusters[i]->m_ldamping = softBodyData->m_clusters[i].m_ldamping;
|
||||||
|
psb->m_clusters[i]->m_locii.deSerializeFloat(softBodyData->m_clusters[i].m_locii);
|
||||||
|
psb->m_clusters[i]->m_lv.deSerializeFloat(softBodyData->m_clusters[i].m_lv);
|
||||||
|
psb->m_clusters[i]->m_matching = softBodyData->m_clusters[i].m_matching;
|
||||||
|
psb->m_clusters[i]->m_maxSelfCollisionImpulse = 0;//softBodyData->m_clusters[i].m_maxSelfCollisionImpulse;
|
||||||
|
psb->m_clusters[i]->m_ndamping = softBodyData->m_clusters[i].m_ndamping;
|
||||||
|
psb->m_clusters[i]->m_ndimpulses = softBodyData->m_clusters[i].m_ndimpulses;
|
||||||
|
psb->m_clusters[i]->m_nvimpulses = softBodyData->m_clusters[i].m_nvimpulses;
|
||||||
|
psb->m_clusters[i]->m_selfCollisionImpulseFactor = softBodyData->m_clusters[i].m_selfCollisionImpulseFactor;
|
||||||
|
psb->m_clusters[i]->m_vimpulses[0].deSerializeFloat(softBodyData->m_clusters[i].m_vimpulses[0]);
|
||||||
|
psb->m_clusters[i]->m_vimpulses[1].deSerializeFloat(softBodyData->m_clusters[i].m_vimpulses[1]);
|
||||||
|
|
||||||
|
}
|
||||||
|
//psb->initializeClusters();
|
||||||
|
//psb->updateClusters();
|
||||||
|
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
|
||||||
|
psb->m_cfg.piterations = 2;
|
||||||
|
psb->m_cfg.collisions = btSoftBody::fCollision::CL_SS+ btSoftBody::fCollision::CL_RS;
|
||||||
|
//psb->setTotalMass(50,true);
|
||||||
|
//psb->generateClusters(64);
|
||||||
|
//psb->m_cfg.kDF=1;
|
||||||
|
psb->generateClusters(8);
|
||||||
|
|
||||||
|
|
||||||
|
#endif //
|
||||||
|
|
||||||
|
|
||||||
m_softRigidWorld->getWorldInfo().m_dispatcher = m_softRigidWorld->getDispatcher();
|
m_softRigidWorld->getWorldInfo().m_dispatcher = m_softRigidWorld->getDispatcher();
|
||||||
|
|
||||||
m_softRigidWorld->addSoftBody(psb);
|
m_softRigidWorld->addSoftBody(psb);
|
||||||
|
|
||||||
|
|
||||||
@ -279,7 +436,7 @@ void SerializeDemo::initPhysics()
|
|||||||
#endif //DESERIALIZE_SOFT_BODIES
|
#endif //DESERIALIZE_SOFT_BODIES
|
||||||
// fileLoader->setVerboseMode(true);
|
// fileLoader->setVerboseMode(true);
|
||||||
|
|
||||||
if (!fileLoader->loadFile("testFile.bullet"))
|
if (!fileLoader->loadFile("../SoftDemo/testFile.bullet"))
|
||||||
{
|
{
|
||||||
///create a few basic rigid bodies and save them to testFile.bullet
|
///create a few basic rigid bodies and save them to testFile.bullet
|
||||||
btCollisionShape* groundShape = new btBoxShape(btVector3(btScalar(50.),btScalar(50.),btScalar(50.)));
|
btCollisionShape* groundShape = new btBoxShape(btVector3(btScalar(50.),btScalar(50.),btScalar(50.)));
|
||||||
|
@ -52,8 +52,8 @@ static btRigidBody* staticBody = 0;
|
|||||||
static float waveheight = 5.f;
|
static float waveheight = 5.f;
|
||||||
|
|
||||||
const float TRIANGLE_SIZE=8.f;
|
const float TRIANGLE_SIZE=8.f;
|
||||||
|
unsigned current_demo=23;
|
||||||
#define DEMO_MODE_TIMEOUT 500.f
|
#define DEMO_MODE_TIMEOUT 15.f //15 seconds for each demo
|
||||||
|
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
@ -769,6 +769,7 @@ static void Init_Torus(SoftDemo* pdemo)
|
|||||||
pdemo->getSoftDynamicsWorld()->addSoftBody(psb);
|
pdemo->getSoftDynamicsWorld()->addSoftBody(psb);
|
||||||
pdemo->m_cutting=true;
|
pdemo->m_cutting=true;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -1255,7 +1256,7 @@ static void Init_TetraCube(SoftDemo* pdemo)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned current_demo=19;
|
|
||||||
|
|
||||||
/* Init */
|
/* Init */
|
||||||
void (*demofncs[])(SoftDemo*)=
|
void (*demofncs[])(SoftDemo*)=
|
||||||
@ -1329,10 +1330,6 @@ void SoftDemo::clientResetScene()
|
|||||||
delete obj;
|
delete obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_softBodyWorldInfo.m_sparsesdf.Reset();
|
|
||||||
|
|
||||||
current_demo=current_demo%(sizeof(demofncs)/sizeof(demofncs[0]));
|
|
||||||
|
|
||||||
|
|
||||||
//create ground object
|
//create ground object
|
||||||
btTransform tr;
|
btTransform tr;
|
||||||
@ -1352,6 +1349,13 @@ void SoftDemo::clientResetScene()
|
|||||||
|
|
||||||
m_dynamicsWorld->addCollisionObject(newOb);
|
m_dynamicsWorld->addCollisionObject(newOb);
|
||||||
|
|
||||||
|
m_softBodyWorldInfo.m_sparsesdf.Reset();
|
||||||
|
|
||||||
|
current_demo=current_demo%(sizeof(demofncs)/sizeof(demofncs[0]));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
motorcontrol.goal = 0;
|
motorcontrol.goal = 0;
|
||||||
motorcontrol.maxtorque = 0;
|
motorcontrol.maxtorque = 0;
|
||||||
|
|
||||||
|
@ -65,6 +65,28 @@ void btBulletWorldImporter::deleteAllData()
|
|||||||
}
|
}
|
||||||
m_allocatedNames.clear();
|
m_allocatedNames.clear();
|
||||||
|
|
||||||
|
|
||||||
|
for (i=0;i<m_indexArrays.size();i++)
|
||||||
|
{
|
||||||
|
btAlignedFree(m_indexArrays[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i=0;i<m_shortIndexArrays.size();i++)
|
||||||
|
{
|
||||||
|
btAlignedFree(m_shortIndexArrays[i]);
|
||||||
|
|
||||||
|
}
|
||||||
|
for (i=0;i<m_floatVertexArrays.size();i++)
|
||||||
|
{
|
||||||
|
btAlignedFree(m_floatVertexArrays[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i=0;i<m_doubleVertexArrays.size();i++)
|
||||||
|
{
|
||||||
|
btAlignedFree(m_doubleVertexArrays[i]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -100,23 +122,51 @@ btTriangleIndexVertexArray* btBulletWorldImporter::createMeshInterface(btStridin
|
|||||||
for (int i=0;i<meshData.m_numMeshParts;i++)
|
for (int i=0;i<meshData.m_numMeshParts;i++)
|
||||||
{
|
{
|
||||||
btIndexedMesh meshPart;
|
btIndexedMesh meshPart;
|
||||||
|
meshPart.m_numTriangles = meshData.m_meshPartsPtr[i].m_numTriangles;
|
||||||
|
meshPart.m_numVertices = meshData.m_meshPartsPtr[i].m_numVertices;
|
||||||
|
|
||||||
|
|
||||||
if (meshData.m_meshPartsPtr[i].m_indices32)
|
if (meshData.m_meshPartsPtr[i].m_indices32)
|
||||||
{
|
{
|
||||||
meshPart.m_indexType = PHY_INTEGER;
|
meshPart.m_indexType = PHY_INTEGER;
|
||||||
meshPart.m_triangleIndexStride = 3*sizeof(int);
|
meshPart.m_triangleIndexStride = 3*sizeof(int);
|
||||||
meshPart.m_triangleIndexBase = (const unsigned char*)meshData.m_meshPartsPtr[i].m_indices32;
|
int* indexArray = (int*)btAlignedAlloc(sizeof(int)*3*meshPart.m_numTriangles,16);
|
||||||
|
m_indexArrays.push_back(indexArray);
|
||||||
|
for (int j=0;j<3*meshPart.m_numTriangles;j++)
|
||||||
|
{
|
||||||
|
indexArray[j] = meshData.m_meshPartsPtr[i].m_indices32[j].m_value;
|
||||||
|
}
|
||||||
|
meshPart.m_triangleIndexBase = (const unsigned char*)indexArray;
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
meshPart.m_indexType = PHY_SHORT;
|
meshPart.m_indexType = PHY_SHORT;
|
||||||
if (meshData.m_meshPartsPtr[i].m_3indices16)
|
if (meshData.m_meshPartsPtr[i].m_3indices16)
|
||||||
{
|
{
|
||||||
meshPart.m_triangleIndexStride = sizeof(btShortIntIndexTripletData);
|
meshPart.m_triangleIndexStride = sizeof(btShortIntIndexTripletData);
|
||||||
meshPart.m_triangleIndexBase = (const unsigned char*)meshData.m_meshPartsPtr[i].m_3indices16;
|
|
||||||
|
short int* indexArray = (short int*)btAlignedAlloc(sizeof(short int)*3*meshPart.m_numTriangles,16);
|
||||||
|
m_shortIndexArrays.push_back(indexArray);
|
||||||
|
|
||||||
|
for (int j=0;j<meshPart.m_numTriangles;j++)
|
||||||
|
{
|
||||||
|
indexArray[3*j] = meshData.m_meshPartsPtr[i].m_3indices16[j].m_values[0];
|
||||||
|
indexArray[3*j+1] = meshData.m_meshPartsPtr[i].m_3indices16[j].m_values[1];
|
||||||
|
indexArray[3*j+2] = meshData.m_meshPartsPtr[i].m_3indices16[j].m_values[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
meshPart.m_triangleIndexBase = (const unsigned char*)indexArray;
|
||||||
}
|
}
|
||||||
if (meshData.m_meshPartsPtr[i].m_indices16)
|
if (meshData.m_meshPartsPtr[i].m_indices16)
|
||||||
{
|
{
|
||||||
meshPart.m_triangleIndexStride = 3*sizeof(short int);
|
meshPart.m_triangleIndexStride = 3*sizeof(short int);
|
||||||
meshPart.m_triangleIndexBase = (const unsigned char*)meshData.m_meshPartsPtr[i].m_indices16;
|
short int* indexArray = (short int*)btAlignedAlloc(sizeof(short int)*3*meshPart.m_numTriangles,16);
|
||||||
|
m_shortIndexArrays.push_back(indexArray);
|
||||||
|
for (int j=0;j<3*meshPart.m_numTriangles;j++)
|
||||||
|
{
|
||||||
|
indexArray[j] = meshData.m_meshPartsPtr[i].m_indices16[j].m_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
meshPart.m_triangleIndexBase = (const unsigned char*)indexArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -125,15 +175,35 @@ btTriangleIndexVertexArray* btBulletWorldImporter::createMeshInterface(btStridin
|
|||||||
{
|
{
|
||||||
meshPart.m_vertexType = PHY_FLOAT;
|
meshPart.m_vertexType = PHY_FLOAT;
|
||||||
meshPart.m_vertexStride = sizeof(btVector3FloatData);
|
meshPart.m_vertexStride = sizeof(btVector3FloatData);
|
||||||
meshPart.m_vertexBase = (const unsigned char*)meshData.m_meshPartsPtr[i].m_vertices3f;
|
btVector3FloatData* vertices = (btVector3FloatData*) btAlignedAlloc(sizeof(btVector3FloatData)*meshPart.m_numVertices,16);
|
||||||
|
m_floatVertexArrays.push_back(vertices);
|
||||||
|
|
||||||
|
for (int j=0;j<meshPart.m_numVertices;j++)
|
||||||
|
{
|
||||||
|
vertices[j].m_floats[0] = meshData.m_meshPartsPtr[i].m_vertices3f[j].m_floats[0];
|
||||||
|
vertices[j].m_floats[1] = meshData.m_meshPartsPtr[i].m_vertices3f[j].m_floats[1];
|
||||||
|
vertices[j].m_floats[2] = meshData.m_meshPartsPtr[i].m_vertices3f[j].m_floats[2];
|
||||||
|
vertices[j].m_floats[3] = meshData.m_meshPartsPtr[i].m_vertices3f[j].m_floats[3];
|
||||||
|
}
|
||||||
|
meshPart.m_vertexBase = (const unsigned char*)vertices;
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
meshPart.m_vertexType = PHY_DOUBLE;
|
meshPart.m_vertexType = PHY_DOUBLE;
|
||||||
meshPart.m_vertexStride = sizeof(btVector3DoubleData);
|
meshPart.m_vertexStride = sizeof(btVector3DoubleData);
|
||||||
meshPart.m_vertexBase = (const unsigned char*)meshData.m_meshPartsPtr[i].m_vertices3d;
|
|
||||||
|
|
||||||
|
btVector3DoubleData* vertices = (btVector3DoubleData*) btAlignedAlloc(sizeof(btVector3DoubleData)*meshPart.m_numVertices,16);
|
||||||
|
m_doubleVertexArrays.push_back(vertices);
|
||||||
|
|
||||||
|
for (int j=0;j<meshPart.m_numVertices;j++)
|
||||||
|
{
|
||||||
|
vertices[j].m_floats[0] = meshData.m_meshPartsPtr[i].m_vertices3d[j].m_floats[0];
|
||||||
|
vertices[j].m_floats[1] = meshData.m_meshPartsPtr[i].m_vertices3d[j].m_floats[1];
|
||||||
|
vertices[j].m_floats[2] = meshData.m_meshPartsPtr[i].m_vertices3d[j].m_floats[2];
|
||||||
|
vertices[j].m_floats[3] = meshData.m_meshPartsPtr[i].m_vertices3d[j].m_floats[3];
|
||||||
|
}
|
||||||
|
meshPart.m_vertexBase = (const unsigned char*)vertices;
|
||||||
}
|
}
|
||||||
meshPart.m_numTriangles = meshData.m_meshPartsPtr[i].m_numTriangles;
|
|
||||||
meshPart.m_numVertices = meshData.m_meshPartsPtr[i].m_numVertices;
|
|
||||||
|
|
||||||
if (meshPart.m_triangleIndexBase && meshPart.m_vertexBase)
|
if (meshPart.m_triangleIndexBase && meshPart.m_vertexBase)
|
||||||
{
|
{
|
||||||
@ -433,6 +503,10 @@ btCollisionShape* btBulletWorldImporter::convertCollisionShape( btCollisionShap
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case SOFTBODY_SHAPE_PROXYTYPE:
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
printf("unsupported shape type (%d)\n",shapeData->m_shapeType);
|
printf("unsupported shape type (%d)\n",shapeData->m_shapeType);
|
||||||
|
@ -72,6 +72,12 @@ protected:
|
|||||||
btAlignedObjectArray<btTriangleIndexVertexArray*> m_allocatedTriangleIndexArrays;
|
btAlignedObjectArray<btTriangleIndexVertexArray*> m_allocatedTriangleIndexArrays;
|
||||||
btAlignedObjectArray<char*> m_allocatedNames;
|
btAlignedObjectArray<char*> m_allocatedNames;
|
||||||
|
|
||||||
|
btAlignedObjectArray<int*> m_indexArrays;
|
||||||
|
btAlignedObjectArray<short int*> m_shortIndexArrays;
|
||||||
|
btAlignedObjectArray<btVector3FloatData*> m_floatVertexArrays;
|
||||||
|
btAlignedObjectArray<btVector3DoubleData*> m_doubleVertexArrays;
|
||||||
|
|
||||||
|
|
||||||
btHashMap<btHashPtr,btOptimizedBvh*> m_bvhMap;
|
btHashMap<btHashPtr,btOptimizedBvh*> m_bvhMap;
|
||||||
btHashMap<btHashPtr,btTriangleInfoMap*> m_timMap;
|
btHashMap<btHashPtr,btTriangleInfoMap*> m_timMap;
|
||||||
|
|
||||||
@ -83,9 +89,10 @@ protected:
|
|||||||
btHashMap<btHashPtr,btCollisionShape*> m_shapeMap;
|
btHashMap<btHashPtr,btCollisionShape*> m_shapeMap;
|
||||||
btHashMap<btHashPtr,btCollisionObject*> m_bodyMap;
|
btHashMap<btHashPtr,btCollisionObject*> m_bodyMap;
|
||||||
|
|
||||||
|
|
||||||
//methods
|
//methods
|
||||||
|
|
||||||
btTriangleIndexVertexArray* createMeshInterface(btStridingMeshInterfaceData& meshData);
|
|
||||||
|
|
||||||
static btRigidBody& getFixedBody();
|
static btRigidBody& getFixedBody();
|
||||||
|
|
||||||
@ -163,6 +170,7 @@ public:
|
|||||||
virtual btGImpactMeshShape* createGimpactShape(btStridingMeshInterface* trimesh);
|
virtual btGImpactMeshShape* createGimpactShape(btStridingMeshInterface* trimesh);
|
||||||
virtual class btConvexHullShape* createConvexHullShape();
|
virtual class btConvexHullShape* createConvexHullShape();
|
||||||
virtual class btCompoundShape* createCompoundShape();
|
virtual class btCompoundShape* createCompoundShape();
|
||||||
|
virtual btTriangleIndexVertexArray* createMeshInterface(btStridingMeshInterfaceData& meshData);
|
||||||
|
|
||||||
///acceleration and connectivity structures
|
///acceleration and connectivity structures
|
||||||
virtual btOptimizedBvh* createOptimizedBvh();
|
virtual btOptimizedBvh* createOptimizedBvh();
|
||||||
|
@ -24,6 +24,42 @@ btSoftBody::btSoftBody(btSoftBodyWorldInfo* worldInfo,int node_count, const btV
|
|||||||
:m_worldInfo(worldInfo)
|
:m_worldInfo(worldInfo)
|
||||||
{
|
{
|
||||||
/* Init */
|
/* Init */
|
||||||
|
initDefaults();
|
||||||
|
|
||||||
|
/* Default material */
|
||||||
|
Material* pm=appendMaterial();
|
||||||
|
pm->m_kLST = 1;
|
||||||
|
pm->m_kAST = 1;
|
||||||
|
pm->m_kVST = 1;
|
||||||
|
pm->m_flags = fMaterial::Default;
|
||||||
|
|
||||||
|
/* Nodes */
|
||||||
|
const btScalar margin=getCollisionShape()->getMargin();
|
||||||
|
m_nodes.resize(node_count);
|
||||||
|
for(int i=0,ni=node_count;i<ni;++i)
|
||||||
|
{
|
||||||
|
Node& n=m_nodes[i];
|
||||||
|
ZeroInitialize(n);
|
||||||
|
n.m_x = x?*x++:btVector3(0,0,0);
|
||||||
|
n.m_q = n.m_x;
|
||||||
|
n.m_im = m?*m++:1;
|
||||||
|
n.m_im = n.m_im>0?1/n.m_im:0;
|
||||||
|
n.m_leaf = m_ndbvt.insert(btDbvtVolume::FromCR(n.m_x,margin),&n);
|
||||||
|
n.m_material= pm;
|
||||||
|
}
|
||||||
|
updateBounds();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
btSoftBody::btSoftBody(btSoftBodyWorldInfo* worldInfo)
|
||||||
|
:m_worldInfo(worldInfo)
|
||||||
|
{
|
||||||
|
initDefaults();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void btSoftBody::initDefaults()
|
||||||
|
{
|
||||||
m_internalType = CO_SOFT_BODY;
|
m_internalType = CO_SOFT_BODY;
|
||||||
m_cfg.aeromodel = eAeroModel::V_Point;
|
m_cfg.aeromodel = eAeroModel::V_Point;
|
||||||
m_cfg.kVCF = 1;
|
m_cfg.kVCF = 1;
|
||||||
@ -64,35 +100,16 @@ btSoftBody::btSoftBody(btSoftBodyWorldInfo* worldInfo,int node_count, const btV
|
|||||||
m_bounds[1] = btVector3(0,0,0);
|
m_bounds[1] = btVector3(0,0,0);
|
||||||
m_worldTransform.setIdentity();
|
m_worldTransform.setIdentity();
|
||||||
setSolver(eSolverPresets::Positions);
|
setSolver(eSolverPresets::Positions);
|
||||||
/* Default material */
|
|
||||||
Material* pm=appendMaterial();
|
|
||||||
pm->m_kLST = 1;
|
|
||||||
pm->m_kAST = 1;
|
|
||||||
pm->m_kVST = 1;
|
|
||||||
pm->m_flags = fMaterial::Default;
|
|
||||||
/* Collision shape */
|
/* Collision shape */
|
||||||
///for now, create a collision shape internally
|
///for now, create a collision shape internally
|
||||||
m_collisionShape = new btSoftBodyCollisionShape(this);
|
m_collisionShape = new btSoftBodyCollisionShape(this);
|
||||||
m_collisionShape->setMargin(0.25);
|
m_collisionShape->setMargin(0.25);
|
||||||
/* Nodes */
|
|
||||||
const btScalar margin=getCollisionShape()->getMargin();
|
|
||||||
m_nodes.resize(node_count);
|
|
||||||
for(int i=0,ni=node_count;i<ni;++i)
|
|
||||||
{
|
|
||||||
Node& n=m_nodes[i];
|
|
||||||
ZeroInitialize(n);
|
|
||||||
n.m_x = x?*x++:btVector3(0,0,0);
|
|
||||||
n.m_q = n.m_x;
|
|
||||||
n.m_im = m?*m++:1;
|
|
||||||
n.m_im = n.m_im>0?1/n.m_im:0;
|
|
||||||
n.m_leaf = m_ndbvt.insert(btDbvtVolume::FromCR(n.m_x,margin),&n);
|
|
||||||
n.m_material= pm;
|
|
||||||
}
|
|
||||||
updateBounds();
|
|
||||||
|
|
||||||
m_initialWorldTransform.setIdentity();
|
m_initialWorldTransform.setIdentity();
|
||||||
|
|
||||||
m_windVelocity = btVector3(0,0,0);
|
m_windVelocity = btVector3(0,0,0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -3016,6 +3033,7 @@ const char* btSoftBody::serialize(void* dataBuffer, class btSerializer* serializ
|
|||||||
|
|
||||||
btCollisionObject::serialize(&sbd->m_collisionObjectData, serializer);
|
btCollisionObject::serialize(&sbd->m_collisionObjectData, serializer);
|
||||||
|
|
||||||
|
btHashMap<btHashPtr,int> m_nodeIndexMap;
|
||||||
|
|
||||||
sbd->m_numMaterials = m_materials.size();
|
sbd->m_numMaterials = m_materials.size();
|
||||||
sbd->m_materials = sbd->m_numMaterials? (SoftBodyMaterialData**) serializer->getUniquePointer((void*)&m_materials): 0;
|
sbd->m_materials = sbd->m_numMaterials? (SoftBodyMaterialData**) serializer->getUniquePointer((void*)&m_materials): 0;
|
||||||
@ -3068,6 +3086,7 @@ const char* btSoftBody::serialize(void* dataBuffer, class btSerializer* serializ
|
|||||||
m_nodes[i].m_x.serializeFloat(memPtr->m_position);
|
m_nodes[i].m_x.serializeFloat(memPtr->m_position);
|
||||||
m_nodes[i].m_q.serializeFloat(memPtr->m_previousPosition);
|
m_nodes[i].m_q.serializeFloat(memPtr->m_previousPosition);
|
||||||
m_nodes[i].m_v.serializeFloat(memPtr->m_velocity);
|
m_nodes[i].m_v.serializeFloat(memPtr->m_velocity);
|
||||||
|
m_nodeIndexMap.insert(&m_nodes[i],i);
|
||||||
}
|
}
|
||||||
serializer->finalizeChunk(chunk,"SoftBodyNodeData",BT_SBNODE_CODE,(void*) &m_nodes[0]);
|
serializer->finalizeChunk(chunk,"SoftBodyNodeData",BT_SBNODE_CODE,(void*) &m_nodes[0]);
|
||||||
}
|
}
|
||||||
@ -3167,7 +3186,7 @@ const char* btSoftBody::serialize(void* dataBuffer, class btSerializer* serializ
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sbd->m_config.m_dynamicFriction = m_cfg.kDF;
|
||||||
sbd->m_config.m_baumgarte = m_cfg.kVCF;
|
sbd->m_config.m_baumgarte = m_cfg.kVCF;
|
||||||
sbd->m_config.m_pressure = m_cfg.kPR;
|
sbd->m_config.m_pressure = m_cfg.kPR;
|
||||||
sbd->m_config.m_aeroModel = this->m_cfg.aeromodel;
|
sbd->m_config.m_aeroModel = this->m_cfg.aeromodel;
|
||||||
@ -3195,9 +3214,148 @@ const char* btSoftBody::serialize(void* dataBuffer, class btSerializer* serializ
|
|||||||
sbd->m_config.m_softKineticClusterImpulseSplit = m_cfg.kSK_SPLT_CL;
|
sbd->m_config.m_softKineticClusterImpulseSplit = m_cfg.kSK_SPLT_CL;
|
||||||
sbd->m_config.m_softSoftClusterImpulseSplit = m_cfg.kSS_SPLT_CL;
|
sbd->m_config.m_softSoftClusterImpulseSplit = m_cfg.kSS_SPLT_CL;
|
||||||
|
|
||||||
|
//pose for shape matching
|
||||||
|
{
|
||||||
|
sbd->m_pose = (SoftBodyPoseData*)serializer->getUniquePointer((void*)&m_pose);
|
||||||
|
|
||||||
//not yet
|
int sz = sizeof(SoftBodyPoseData);
|
||||||
sbd->m_pose = 0;
|
btChunk* chunk = serializer->allocate(sz,1);
|
||||||
|
SoftBodyPoseData* memPtr = (SoftBodyPoseData*)chunk->m_oldPtr;
|
||||||
|
|
||||||
|
m_pose.m_aqq.serializeFloat(memPtr->m_aqq);
|
||||||
|
memPtr->m_bframe = m_pose.m_bframe;
|
||||||
|
memPtr->m_bvolume = m_pose.m_bvolume;
|
||||||
|
m_pose.m_com.serializeFloat(memPtr->m_com);
|
||||||
|
|
||||||
|
memPtr->m_numPositions = m_pose.m_pos.size();
|
||||||
|
memPtr->m_positions = memPtr->m_numPositions ? (btVector3FloatData*)serializer->getUniquePointer((void*)&m_pose.m_pos[0]): 0;
|
||||||
|
if (memPtr->m_numPositions)
|
||||||
|
{
|
||||||
|
int numElem = memPtr->m_numPositions;
|
||||||
|
int sz = sizeof(btVector3Data);
|
||||||
|
btChunk* chunk = serializer->allocate(sz,numElem);
|
||||||
|
btVector3FloatData* memPtr = (btVector3FloatData*)chunk->m_oldPtr;
|
||||||
|
for (int i=0;i<numElem;i++,memPtr++)
|
||||||
|
{
|
||||||
|
m_pose.m_pos[i].serializeFloat(*memPtr);
|
||||||
|
}
|
||||||
|
serializer->finalizeChunk(chunk,"btVector3FloatData",BT_ARRAY_CODE,(void*)&m_pose.m_pos[0]);
|
||||||
|
}
|
||||||
|
memPtr->m_restVolume = m_pose.m_volume;
|
||||||
|
m_pose.m_rot.serializeFloat(memPtr->m_rot);
|
||||||
|
m_pose.m_scl.serializeFloat(memPtr->m_scale);
|
||||||
|
|
||||||
|
memPtr->m_numWeigts = m_pose.m_wgh.size();
|
||||||
|
memPtr->m_weights = memPtr->m_numWeigts? (float*) serializer->getUniquePointer((void*) &m_pose.m_wgh[0]) : 0;
|
||||||
|
if (memPtr->m_numWeigts)
|
||||||
|
{
|
||||||
|
|
||||||
|
int numElem = memPtr->m_numWeigts;
|
||||||
|
int sz = sizeof(float);
|
||||||
|
btChunk* chunk = serializer->allocate(sz,numElem);
|
||||||
|
float* memPtr = (float*) chunk->m_oldPtr;
|
||||||
|
for (int i=0;i<numElem;i++,memPtr++)
|
||||||
|
{
|
||||||
|
*memPtr = m_pose.m_wgh[i];
|
||||||
|
}
|
||||||
|
serializer->finalizeChunk(chunk,"float",BT_ARRAY_CODE,(void*)&m_pose.m_wgh[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
serializer->finalizeChunk(chunk,"SoftBodyPoseData",BT_ARRAY_CODE,(void*)&m_pose);
|
||||||
|
}
|
||||||
|
|
||||||
|
//clusters for convex-cluster collision detection
|
||||||
|
|
||||||
|
sbd->m_numClusters = m_clusters.size();
|
||||||
|
sbd->m_clusters = sbd->m_numClusters? (SoftBodyClusterData*) serializer->getUniquePointer((void*)&m_clusters[0]) : 0;
|
||||||
|
if (sbd->m_numClusters)
|
||||||
|
{
|
||||||
|
int numElem = sbd->m_numClusters;
|
||||||
|
int sz = sizeof(SoftBodyClusterData);
|
||||||
|
btChunk* chunk = serializer->allocate(sz,numElem);
|
||||||
|
SoftBodyClusterData* memPtr = (SoftBodyClusterData*) chunk->m_oldPtr;
|
||||||
|
for (int i=0;i<numElem;i++,memPtr++)
|
||||||
|
{
|
||||||
|
memPtr->m_adamping= m_clusters[i]->m_adamping;
|
||||||
|
m_clusters[i]->m_av.serializeFloat(memPtr->m_av);
|
||||||
|
memPtr->m_clusterIndex = m_clusters[i]->m_clusterIndex;
|
||||||
|
memPtr->m_collide = m_clusters[i]->m_collide;
|
||||||
|
m_clusters[i]->m_com.serializeFloat(memPtr->m_com);
|
||||||
|
memPtr->m_containsAnchor = m_clusters[i]->m_containsAnchor;
|
||||||
|
m_clusters[i]->m_dimpulses[0].serializeFloat(memPtr->m_dimpulses[0]);
|
||||||
|
m_clusters[i]->m_dimpulses[1].serializeFloat(memPtr->m_dimpulses[1]);
|
||||||
|
m_clusters[i]->m_framexform.serializeFloat(memPtr->m_framexform);
|
||||||
|
memPtr->m_idmass = m_clusters[i]->m_idmass;
|
||||||
|
memPtr->m_imass = m_clusters[i]->m_imass;
|
||||||
|
m_clusters[i]->m_invwi.serializeFloat(memPtr->m_invwi);
|
||||||
|
memPtr->m_ldamping = m_clusters[i]->m_ldamping;
|
||||||
|
m_clusters[i]->m_locii.serializeFloat(memPtr->m_locii);
|
||||||
|
m_clusters[i]->m_lv.serializeFloat(memPtr->m_lv);
|
||||||
|
memPtr->m_matching = m_clusters[i]->m_matching;
|
||||||
|
memPtr->m_maxSelfCollisionImpulse = m_clusters[i]->m_maxSelfCollisionImpulse;
|
||||||
|
memPtr->m_ndamping = m_clusters[i]->m_ndamping;
|
||||||
|
memPtr->m_ldamping = m_clusters[i]->m_ldamping;
|
||||||
|
memPtr->m_adamping = m_clusters[i]->m_adamping;
|
||||||
|
memPtr->m_selfCollisionImpulseFactor = m_clusters[i]->m_selfCollisionImpulseFactor;
|
||||||
|
|
||||||
|
memPtr->m_numFrameRefs = m_clusters[i]->m_framerefs.size();
|
||||||
|
memPtr->m_numMasses = m_clusters[i]->m_masses.size();
|
||||||
|
memPtr->m_numNodes = m_clusters[i]->m_nodes.size();
|
||||||
|
|
||||||
|
memPtr->m_nvimpulses = m_clusters[i]->m_nvimpulses;
|
||||||
|
m_clusters[i]->m_vimpulses[0].serializeFloat(memPtr->m_vimpulses[0]);
|
||||||
|
m_clusters[i]->m_vimpulses[1].serializeFloat(memPtr->m_vimpulses[1]);
|
||||||
|
memPtr->m_ndimpulses = m_clusters[i]->m_ndimpulses;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
memPtr->m_framerefs = memPtr->m_numFrameRefs? (btVector3FloatData*)serializer->getUniquePointer((void*)&m_clusters[i]->m_framerefs[0]) : 0;
|
||||||
|
if (memPtr->m_framerefs)
|
||||||
|
{
|
||||||
|
int numElem = memPtr->m_numFrameRefs;
|
||||||
|
int sz = sizeof(btVector3FloatData);
|
||||||
|
btChunk* chunk = serializer->allocate(sz,numElem);
|
||||||
|
btVector3FloatData* memPtr = (btVector3FloatData*) chunk->m_oldPtr;
|
||||||
|
for (int j=0;j<numElem;j++,memPtr++)
|
||||||
|
{
|
||||||
|
m_clusters[i]->m_framerefs[j].serializeFloat(*memPtr);
|
||||||
|
}
|
||||||
|
serializer->finalizeChunk(chunk,"btVector3FloatData",BT_ARRAY_CODE,(void*)&m_clusters[i]->m_framerefs[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
memPtr->m_masses = memPtr->m_numMasses ? (float*) serializer->getUniquePointer((void*)&m_clusters[i]->m_masses[0]): 0;
|
||||||
|
if (memPtr->m_masses)
|
||||||
|
{
|
||||||
|
int numElem = memPtr->m_numMasses;
|
||||||
|
int sz = sizeof(float);
|
||||||
|
btChunk* chunk = serializer->allocate(sz,numElem);
|
||||||
|
float* memPtr = (float*) chunk->m_oldPtr;
|
||||||
|
for (int j=0;j<numElem;j++,memPtr++)
|
||||||
|
{
|
||||||
|
*memPtr = m_clusters[i]->m_masses[j];
|
||||||
|
}
|
||||||
|
serializer->finalizeChunk(chunk,"float",BT_ARRAY_CODE,(void*)&m_clusters[i]->m_masses[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
memPtr->m_nodeIndices = memPtr->m_numNodes ? (int*) serializer->getUniquePointer((void*) &m_clusters[i]->m_nodes) : 0;
|
||||||
|
if (memPtr->m_nodeIndices )
|
||||||
|
{
|
||||||
|
int numElem = memPtr->m_numMasses;
|
||||||
|
int sz = sizeof(int);
|
||||||
|
btChunk* chunk = serializer->allocate(sz,numElem);
|
||||||
|
int* memPtr = (int*) chunk->m_oldPtr;
|
||||||
|
for (int j=0;j<numElem;j++,memPtr++)
|
||||||
|
{
|
||||||
|
int* indexPtr = m_nodeIndexMap.find(m_clusters[i]->m_nodes[j]);
|
||||||
|
btAssert(indexPtr);
|
||||||
|
*memPtr = *indexPtr;
|
||||||
|
}
|
||||||
|
serializer->finalizeChunk(chunk,"int",BT_ARRAY_CODE,(void*)&m_clusters[i]->m_nodes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
serializer->finalizeChunk(chunk,"SoftBodyClusterData",BT_ARRAY_CODE,(void*)&m_clusters[0]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return btSoftBodyDataName;
|
return btSoftBodyDataName;
|
||||||
}
|
}
|
||||||
|
@ -396,7 +396,7 @@ public:
|
|||||||
const btTransform& xform() const
|
const btTransform& xform() const
|
||||||
{
|
{
|
||||||
static const btTransform identity=btTransform::getIdentity();
|
static const btTransform identity=btTransform::getIdentity();
|
||||||
if(m_collisionObject) return(m_collisionObject->getInterpolationWorldTransform());
|
if(m_collisionObject) return(m_collisionObject->getWorldTransform());
|
||||||
if(m_soft) return(m_soft->m_framexform);
|
if(m_soft) return(m_soft->m_framexform);
|
||||||
return(identity);
|
return(identity);
|
||||||
}
|
}
|
||||||
@ -665,9 +665,13 @@ public:
|
|||||||
//
|
//
|
||||||
|
|
||||||
/* ctor */
|
/* ctor */
|
||||||
btSoftBody( btSoftBodyWorldInfo* worldInfo,int node_count,
|
btSoftBody( btSoftBodyWorldInfo* worldInfo,int node_count, const btVector3* x, const btScalar* m);
|
||||||
const btVector3* x,
|
|
||||||
const btScalar* m);
|
/* ctor */
|
||||||
|
btSoftBody( btSoftBodyWorldInfo* worldInfo);
|
||||||
|
|
||||||
|
void initDefaults();
|
||||||
|
|
||||||
/* dtor */
|
/* dtor */
|
||||||
virtual ~btSoftBody();
|
virtual ~btSoftBody();
|
||||||
/* Check for existing link */
|
/* Check for existing link */
|
||||||
|
@ -121,18 +121,52 @@ struct SoftBodyPoseData
|
|||||||
btMatrix3x3FloatData m_rot; // Rotation
|
btMatrix3x3FloatData m_rot; // Rotation
|
||||||
btMatrix3x3FloatData m_scale; // Scale
|
btMatrix3x3FloatData m_scale; // Scale
|
||||||
btMatrix3x3FloatData m_aqq; // Base scaling
|
btMatrix3x3FloatData m_aqq; // Base scaling
|
||||||
btVector3FloatData m_positions; // Reference positions
|
|
||||||
btVector3FloatData m_com; // COM
|
btVector3FloatData m_com; // COM
|
||||||
|
|
||||||
|
btVector3FloatData *m_positions; // Reference positions
|
||||||
|
float *m_weights; // Weights
|
||||||
|
int m_numPositions;
|
||||||
|
int m_numWeigts;
|
||||||
|
|
||||||
int m_bvolume; // Is valid
|
int m_bvolume; // Is valid
|
||||||
int m_bframe; // Is frame
|
int m_bframe; // Is frame
|
||||||
float m_restVolume; // Rest volume
|
float m_restVolume; // Rest volume
|
||||||
int m_numPositions;
|
|
||||||
float *m_weights; // Weights
|
|
||||||
int m_numWeigts;
|
|
||||||
int m_pad;
|
int m_pad;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct SoftBodyClusterData
|
||||||
|
{
|
||||||
|
btTransformFloatData m_framexform;
|
||||||
|
btMatrix3x3FloatData m_locii;
|
||||||
|
btMatrix3x3FloatData m_invwi;
|
||||||
|
btVector3FloatData m_com;
|
||||||
|
btVector3FloatData m_vimpulses[2];
|
||||||
|
btVector3FloatData m_dimpulses[2];
|
||||||
|
btVector3FloatData m_lv;
|
||||||
|
btVector3FloatData m_av;
|
||||||
|
|
||||||
|
btVector3FloatData *m_framerefs;
|
||||||
|
int *m_nodeIndices;
|
||||||
|
float *m_masses;
|
||||||
|
|
||||||
|
int m_numFrameRefs;
|
||||||
|
int m_numNodes;
|
||||||
|
int m_numMasses;
|
||||||
|
|
||||||
|
float m_idmass;
|
||||||
|
float m_imass;
|
||||||
|
int m_nvimpulses;
|
||||||
|
int m_ndimpulses;
|
||||||
|
float m_ndamping;
|
||||||
|
float m_ldamping;
|
||||||
|
float m_adamping;
|
||||||
|
float m_matching;
|
||||||
|
float m_maxSelfCollisionImpulse;
|
||||||
|
float m_selfCollisionImpulseFactor;
|
||||||
|
int m_containsAnchor;
|
||||||
|
int m_collide;
|
||||||
|
int m_clusterIndex;
|
||||||
|
};
|
||||||
|
|
||||||
///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
|
///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
|
||||||
struct btSoftBodyFloatData
|
struct btSoftBodyFloatData
|
||||||
@ -146,6 +180,7 @@ struct btSoftBodyFloatData
|
|||||||
SoftBodyFaceData *m_faces;
|
SoftBodyFaceData *m_faces;
|
||||||
SoftBodyTetraData *m_tetrahedra;
|
SoftBodyTetraData *m_tetrahedra;
|
||||||
SoftRigidAnchorData *m_anchors;
|
SoftRigidAnchorData *m_anchors;
|
||||||
|
SoftBodyClusterData *m_clusters;
|
||||||
|
|
||||||
int m_numMaterials;
|
int m_numMaterials;
|
||||||
int m_numNodes;
|
int m_numNodes;
|
||||||
@ -153,6 +188,8 @@ struct btSoftBodyFloatData
|
|||||||
int m_numFaces;
|
int m_numFaces;
|
||||||
int m_numTetrahedra;
|
int m_numTetrahedra;
|
||||||
int m_numAnchors;
|
int m_numAnchors;
|
||||||
|
int m_numClusters;
|
||||||
|
int m_pad;
|
||||||
|
|
||||||
SoftBodyConfigData m_config;
|
SoftBodyConfigData m_config;
|
||||||
};
|
};
|
||||||
|
@ -733,7 +733,7 @@ struct btSoftColliders
|
|||||||
|
|
||||||
btGjkEpaSolver2::sResults res;
|
btGjkEpaSolver2::sResults res;
|
||||||
if(btGjkEpaSolver2::SignedDistance( &cshape,btTransform::getIdentity(),
|
if(btGjkEpaSolver2::SignedDistance( &cshape,btTransform::getIdentity(),
|
||||||
rshape,m_colObj->getInterpolationWorldTransform(),
|
rshape,m_colObj->getWorldTransform(),
|
||||||
btVector3(1,0,0),res))
|
btVector3(1,0,0),res))
|
||||||
{
|
{
|
||||||
btSoftBody::CJoint joint;
|
btSoftBody::CJoint joint;
|
||||||
@ -766,7 +766,7 @@ struct btSoftColliders
|
|||||||
btVector3 maxs;
|
btVector3 maxs;
|
||||||
|
|
||||||
ATTRIBUTE_ALIGNED16(btDbvtVolume) volume;
|
ATTRIBUTE_ALIGNED16(btDbvtVolume) volume;
|
||||||
colOb->getCollisionShape()->getAabb(colOb->getInterpolationWorldTransform(),mins,maxs);
|
colOb->getCollisionShape()->getAabb(colOb->getWorldTransform(),mins,maxs);
|
||||||
volume=btDbvtVolume::FromMM(mins,maxs);
|
volume=btDbvtVolume::FromMM(mins,maxs);
|
||||||
volume.Expand(btVector3(1,1,1)*m_margin);
|
volume.Expand(btVector3(1,1,1)*m_margin);
|
||||||
ps->m_cdbvt.collideTV(ps->m_cdbvt.m_root,volume,*this);
|
ps->m_cdbvt.collideTV(ps->m_cdbvt.m_root,volume,*this);
|
||||||
@ -849,7 +849,7 @@ struct btSoftColliders
|
|||||||
const btScalar ms=ima+imb;
|
const btScalar ms=ima+imb;
|
||||||
if(ms>0)
|
if(ms>0)
|
||||||
{
|
{
|
||||||
const btTransform& wtr=m_rigidBody?m_rigidBody->getInterpolationWorldTransform() : m_colObj1->getWorldTransform();
|
const btTransform& wtr=m_rigidBody?m_rigidBody->getWorldTransform() : m_colObj1->getWorldTransform();
|
||||||
static const btMatrix3x3 iwiStatic(0,0,0,0,0,0,0,0,0);
|
static const btMatrix3x3 iwiStatic(0,0,0,0,0,0,0,0,0);
|
||||||
const btMatrix3x3& iwi=m_rigidBody?m_rigidBody->getInvInertiaTensorWorld() : iwiStatic;
|
const btMatrix3x3& iwi=m_rigidBody?m_rigidBody->getInvInertiaTensorWorld() : iwiStatic;
|
||||||
const btVector3 ra=n.m_x-wtr.getOrigin();
|
const btVector3 ra=n.m_x-wtr.getOrigin();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
unsigned char sBulletDNAstr[]= {
|
unsigned char sBulletDNAstr[]= {
|
||||||
83,68,78,65,78,65,77,69,-4,0,0,0,109,95,115,105,122,101,0,109,
|
83,68,78,65,78,65,77,69,23,1,0,0,109,95,115,105,122,101,0,109,
|
||||||
95,99,97,112,97,99,105,116,121,0,42,109,95,100,97,116,97,0,109,95,
|
95,99,97,112,97,99,105,116,121,0,42,109,95,100,97,116,97,0,109,95,
|
||||||
99,111,108,108,105,115,105,111,110,83,104,97,112,101,115,0,109,95,99,111,
|
99,111,108,108,105,115,105,111,110,83,104,97,112,101,115,0,109,95,99,111,
|
||||||
108,108,105,115,105,111,110,79,98,106,101,99,116,115,0,109,95,99,111,110,
|
108,108,105,115,105,111,110,79,98,106,101,99,116,115,0,109,95,99,111,110,
|
||||||
@ -189,186 +189,211 @@ unsigned char sBulletDNAstr[]= {
|
|||||||
105,116,105,111,110,73,116,101,114,97,116,105,111,110,115,0,109,95,100,114,
|
105,116,105,111,110,73,116,101,114,97,116,105,111,110,115,0,109,95,100,114,
|
||||||
105,102,116,73,116,101,114,97,116,105,111,110,115,0,109,95,99,108,117,115,
|
105,102,116,73,116,101,114,97,116,105,111,110,115,0,109,95,99,108,117,115,
|
||||||
116,101,114,73,116,101,114,97,116,105,111,110,115,0,109,95,114,111,116,0,
|
116,101,114,73,116,101,114,97,116,105,111,110,115,0,109,95,114,111,116,0,
|
||||||
109,95,115,99,97,108,101,0,109,95,97,113,113,0,109,95,112,111,115,105,
|
109,95,115,99,97,108,101,0,109,95,97,113,113,0,109,95,99,111,109,0,
|
||||||
116,105,111,110,115,0,109,95,99,111,109,0,109,95,98,118,111,108,117,109,
|
42,109,95,112,111,115,105,116,105,111,110,115,0,42,109,95,119,101,105,103,
|
||||||
101,0,109,95,98,102,114,97,109,101,0,109,95,110,117,109,80,111,115,105,
|
104,116,115,0,109,95,110,117,109,80,111,115,105,116,105,111,110,115,0,109,
|
||||||
116,105,111,110,115,0,42,109,95,119,101,105,103,104,116,115,0,109,95,110,
|
95,110,117,109,87,101,105,103,116,115,0,109,95,98,118,111,108,117,109,101,
|
||||||
117,109,87,101,105,103,116,115,0,42,109,95,112,111,115,101,0,42,42,109,
|
0,109,95,98,102,114,97,109,101,0,109,95,102,114,97,109,101,120,102,111,
|
||||||
95,109,97,116,101,114,105,97,108,115,0,42,109,95,110,111,100,101,115,0,
|
114,109,0,109,95,108,111,99,105,105,0,109,95,105,110,118,119,105,0,109,
|
||||||
42,109,95,108,105,110,107,115,0,42,109,95,102,97,99,101,115,0,42,109,
|
95,118,105,109,112,117,108,115,101,115,91,50,93,0,109,95,100,105,109,112,
|
||||||
95,116,101,116,114,97,104,101,100,114,97,0,42,109,95,97,110,99,104,111,
|
117,108,115,101,115,91,50,93,0,109,95,108,118,0,109,95,97,118,0,42,
|
||||||
114,115,0,109,95,110,117,109,77,97,116,101,114,105,97,108,115,0,109,95,
|
109,95,102,114,97,109,101,114,101,102,115,0,42,109,95,110,111,100,101,73,
|
||||||
110,117,109,78,111,100,101,115,0,109,95,110,117,109,76,105,110,107,115,0,
|
110,100,105,99,101,115,0,42,109,95,109,97,115,115,101,115,0,109,95,110,
|
||||||
109,95,110,117,109,70,97,99,101,115,0,109,95,110,117,109,84,101,116,114,
|
117,109,70,114,97,109,101,82,101,102,115,0,109,95,110,117,109,78,111,100,
|
||||||
97,104,101,100,114,97,0,109,95,110,117,109,65,110,99,104,111,114,115,0,
|
101,115,0,109,95,110,117,109,77,97,115,115,101,115,0,109,95,105,100,109,
|
||||||
109,95,99,111,110,102,105,103,0,0,0,0,84,89,80,69,67,0,0,0,
|
97,115,115,0,109,95,105,109,97,115,115,0,109,95,110,118,105,109,112,117,
|
||||||
99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116,0,117,115,104,
|
108,115,101,115,0,109,95,110,100,105,109,112,117,108,115,101,115,0,109,95,
|
||||||
111,114,116,0,105,110,116,0,108,111,110,103,0,117,108,111,110,103,0,102,
|
110,100,97,109,112,105,110,103,0,109,95,108,100,97,109,112,105,110,103,0,
|
||||||
108,111,97,116,0,100,111,117,98,108,101,0,118,111,105,100,0,80,111,105,
|
109,95,97,100,97,109,112,105,110,103,0,109,95,109,97,116,99,104,105,110,
|
||||||
110,116,101,114,65,114,114,97,121,0,98,116,80,104,121,115,105,99,115,83,
|
103,0,109,95,109,97,120,83,101,108,102,67,111,108,108,105,115,105,111,110,
|
||||||
121,115,116,101,109,0,76,105,115,116,66,97,115,101,0,98,116,86,101,99,
|
73,109,112,117,108,115,101,0,109,95,115,101,108,102,67,111,108,108,105,115,
|
||||||
116,111,114,51,70,108,111,97,116,68,97,116,97,0,98,116,86,101,99,116,
|
105,111,110,73,109,112,117,108,115,101,70,97,99,116,111,114,0,109,95,99,
|
||||||
111,114,51,68,111,117,98,108,101,68,97,116,97,0,98,116,77,97,116,114,
|
111,110,116,97,105,110,115,65,110,99,104,111,114,0,109,95,99,111,108,108,
|
||||||
105,120,51,120,51,70,108,111,97,116,68,97,116,97,0,98,116,77,97,116,
|
105,100,101,0,109,95,99,108,117,115,116,101,114,73,110,100,101,120,0,42,
|
||||||
114,105,120,51,120,51,68,111,117,98,108,101,68,97,116,97,0,98,116,84,
|
109,95,112,111,115,101,0,42,42,109,95,109,97,116,101,114,105,97,108,115,
|
||||||
114,97,110,115,102,111,114,109,70,108,111,97,116,68,97,116,97,0,98,116,
|
0,42,109,95,110,111,100,101,115,0,42,109,95,108,105,110,107,115,0,42,
|
||||||
84,114,97,110,115,102,111,114,109,68,111,117,98,108,101,68,97,116,97,0,
|
109,95,102,97,99,101,115,0,42,109,95,116,101,116,114,97,104,101,100,114,
|
||||||
98,116,66,118,104,83,117,98,116,114,101,101,73,110,102,111,68,97,116,97,
|
97,0,42,109,95,97,110,99,104,111,114,115,0,42,109,95,99,108,117,115,
|
||||||
0,98,116,79,112,116,105,109,105,122,101,100,66,118,104,78,111,100,101,70,
|
116,101,114,115,0,109,95,110,117,109,77,97,116,101,114,105,97,108,115,0,
|
||||||
108,111,97,116,68,97,116,97,0,98,116,79,112,116,105,109,105,122,101,100,
|
109,95,110,117,109,76,105,110,107,115,0,109,95,110,117,109,70,97,99,101,
|
||||||
66,118,104,78,111,100,101,68,111,117,98,108,101,68,97,116,97,0,98,116,
|
115,0,109,95,110,117,109,84,101,116,114,97,104,101,100,114,97,0,109,95,
|
||||||
81,117,97,110,116,105,122,101,100,66,118,104,78,111,100,101,68,97,116,97,
|
110,117,109,65,110,99,104,111,114,115,0,109,95,110,117,109,67,108,117,115,
|
||||||
0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,70,108,111,97,116,
|
116,101,114,115,0,109,95,99,111,110,102,105,103,0,0,0,84,89,80,69,
|
||||||
68,97,116,97,0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,68,
|
68,0,0,0,99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116,
|
||||||
111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,
|
0,117,115,104,111,114,116,0,105,110,116,0,108,111,110,103,0,117,108,111,
|
||||||
110,83,104,97,112,101,68,97,116,97,0,98,116,83,116,97,116,105,99,80,
|
110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,118,111,105,100,
|
||||||
108,97,110,101,83,104,97,112,101,68,97,116,97,0,98,116,67,111,110,118,
|
0,80,111,105,110,116,101,114,65,114,114,97,121,0,98,116,80,104,121,115,
|
||||||
101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,97,116,97,0,
|
105,99,115,83,121,115,116,101,109,0,76,105,115,116,66,97,115,101,0,98,
|
||||||
98,116,80,111,115,105,116,105,111,110,65,110,100,82,97,100,105,117,115,0,
|
116,86,101,99,116,111,114,51,70,108,111,97,116,68,97,116,97,0,98,116,
|
||||||
98,116,77,117,108,116,105,83,112,104,101,114,101,83,104,97,112,101,68,97,
|
86,101,99,116,111,114,51,68,111,117,98,108,101,68,97,116,97,0,98,116,
|
||||||
116,97,0,98,116,73,110,116,73,110,100,101,120,68,97,116,97,0,98,116,
|
77,97,116,114,105,120,51,120,51,70,108,111,97,116,68,97,116,97,0,98,
|
||||||
83,104,111,114,116,73,110,116,73,110,100,101,120,68,97,116,97,0,98,116,
|
116,77,97,116,114,105,120,51,120,51,68,111,117,98,108,101,68,97,116,97,
|
||||||
83,104,111,114,116,73,110,116,73,110,100,101,120,84,114,105,112,108,101,116,
|
0,98,116,84,114,97,110,115,102,111,114,109,70,108,111,97,116,68,97,116,
|
||||||
68,97,116,97,0,98,116,77,101,115,104,80,97,114,116,68,97,116,97,0,
|
97,0,98,116,84,114,97,110,115,102,111,114,109,68,111,117,98,108,101,68,
|
||||||
98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,
|
97,116,97,0,98,116,66,118,104,83,117,98,116,114,101,101,73,110,102,111,
|
||||||
97,99,101,68,97,116,97,0,98,116,84,114,105,97,110,103,108,101,77,101,
|
68,97,116,97,0,98,116,79,112,116,105,109,105,122,101,100,66,118,104,78,
|
||||||
115,104,83,104,97,112,101,68,97,116,97,0,98,116,84,114,105,97,110,103,
|
111,100,101,70,108,111,97,116,68,97,116,97,0,98,116,79,112,116,105,109,
|
||||||
108,101,73,110,102,111,77,97,112,68,97,116,97,0,98,116,67,111,109,112,
|
105,122,101,100,66,118,104,78,111,100,101,68,111,117,98,108,101,68,97,116,
|
||||||
111,117,110,100,83,104,97,112,101,67,104,105,108,100,68,97,116,97,0,98,
|
97,0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,78,111,100,101,
|
||||||
116,67,111,109,112,111,117,110,100,83,104,97,112,101,68,97,116,97,0,98,
|
68,97,116,97,0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,70,
|
||||||
116,67,121,108,105,110,100,101,114,83,104,97,112,101,68,97,116,97,0,98,
|
108,111,97,116,68,97,116,97,0,98,116,81,117,97,110,116,105,122,101,100,
|
||||||
116,67,97,112,115,117,108,101,83,104,97,112,101,68,97,116,97,0,98,116,
|
66,118,104,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,
|
||||||
84,114,105,97,110,103,108,101,73,110,102,111,68,97,116,97,0,98,116,71,
|
105,115,105,111,110,83,104,97,112,101,68,97,116,97,0,98,116,83,116,97,
|
||||||
73,109,112,97,99,116,77,101,115,104,83,104,97,112,101,68,97,116,97,0,
|
116,105,99,80,108,97,110,101,83,104,97,112,101,68,97,116,97,0,98,116,
|
||||||
98,116,67,111,110,118,101,120,72,117,108,108,83,104,97,112,101,68,97,116,
|
67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,
|
||||||
97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68,
|
97,116,97,0,98,116,80,111,115,105,116,105,111,110,65,110,100,82,97,100,
|
||||||
111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,
|
105,117,115,0,98,116,77,117,108,116,105,83,112,104,101,114,101,83,104,97,
|
||||||
110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,0,98,116,82,
|
112,101,68,97,116,97,0,98,116,73,110,116,73,110,100,101,120,68,97,116,
|
||||||
105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,97,0,98,116,
|
97,0,98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,68,97,116,
|
||||||
82,105,103,105,100,66,111,100,121,68,111,117,98,108,101,68,97,116,97,0,
|
97,0,98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,84,114,105,
|
||||||
98,116,67,111,110,115,116,114,97,105,110,116,73,110,102,111,49,0,98,116,
|
112,108,101,116,68,97,116,97,0,98,116,77,101,115,104,80,97,114,116,68,
|
||||||
84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,
|
97,116,97,0,98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,
|
||||||
98,116,82,105,103,105,100,66,111,100,121,68,97,116,97,0,98,116,80,111,
|
116,101,114,102,97,99,101,68,97,116,97,0,98,116,84,114,105,97,110,103,
|
||||||
105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,70,
|
108,101,77,101,115,104,83,104,97,112,101,68,97,116,97,0,98,116,84,114,
|
||||||
108,111,97,116,68,97,116,97,0,98,116,80,111,105,110,116,50,80,111,105,
|
105,97,110,103,108,101,73,110,102,111,77,97,112,68,97,116,97,0,98,116,
|
||||||
110,116,67,111,110,115,116,114,97,105,110,116,68,111,117,98,108,101,68,97,
|
67,111,109,112,111,117,110,100,83,104,97,112,101,67,104,105,108,100,68,97,
|
||||||
116,97,0,98,116,72,105,110,103,101,67,111,110,115,116,114,97,105,110,116,
|
116,97,0,98,116,67,111,109,112,111,117,110,100,83,104,97,112,101,68,97,
|
||||||
68,111,117,98,108,101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,
|
116,97,0,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,68,97,
|
||||||
110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,97,0,98,116,
|
116,97,0,98,116,67,97,112,115,117,108,101,83,104,97,112,101,68,97,116,
|
||||||
67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,105,110,116,68,
|
97,0,98,116,84,114,105,97,110,103,108,101,73,110,102,111,68,97,116,97,
|
||||||
97,116,97,0,98,116,71,101,110,101,114,105,99,54,68,111,102,67,111,110,
|
0,98,116,71,73,109,112,97,99,116,77,101,115,104,83,104,97,112,101,68,
|
||||||
115,116,114,97,105,110,116,68,97,116,97,0,98,116,83,108,105,100,101,114,
|
97,116,97,0,98,116,67,111,110,118,101,120,72,117,108,108,83,104,97,112,
|
||||||
67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,83,111,102,116,66,
|
101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,
|
||||||
111,100,121,77,97,116,101,114,105,97,108,68,97,116,97,0,83,111,102,116,
|
101,99,116,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,
|
||||||
66,111,100,121,78,111,100,101,68,97,116,97,0,83,111,102,116,66,111,100,
|
105,115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,
|
||||||
121,76,105,110,107,68,97,116,97,0,83,111,102,116,66,111,100,121,70,97,
|
0,98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,
|
||||||
99,101,68,97,116,97,0,83,111,102,116,66,111,100,121,84,101,116,114,97,
|
97,0,98,116,82,105,103,105,100,66,111,100,121,68,111,117,98,108,101,68,
|
||||||
68,97,116,97,0,83,111,102,116,82,105,103,105,100,65,110,99,104,111,114,
|
97,116,97,0,98,116,67,111,110,115,116,114,97,105,110,116,73,110,102,111,
|
||||||
68,97,116,97,0,83,111,102,116,66,111,100,121,67,111,110,102,105,103,68,
|
49,0,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,68,
|
||||||
97,116,97,0,83,111,102,116,66,111,100,121,80,111,115,101,68,97,116,97,
|
97,116,97,0,98,116,82,105,103,105,100,66,111,100,121,68,97,116,97,0,
|
||||||
0,98,116,83,111,102,116,66,111,100,121,70,108,111,97,116,68,97,116,97,
|
98,116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,
|
||||||
0,0,0,0,84,76,69,78,1,0,1,0,2,0,2,0,4,0,4,0,
|
105,110,116,70,108,111,97,116,68,97,116,97,0,98,116,80,111,105,110,116,
|
||||||
4,0,4,0,8,0,0,0,12,0,36,0,8,0,16,0,32,0,48,0,
|
50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,68,111,117,98,
|
||||||
96,0,64,0,-128,0,20,0,48,0,80,0,16,0,84,0,-124,0,12,0,
|
108,101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115,116,114,
|
||||||
52,0,52,0,20,0,64,0,4,0,4,0,8,0,28,0,28,0,60,0,
|
97,105,110,116,68,111,117,98,108,101,68,97,116,97,0,98,116,72,105,110,
|
||||||
56,0,76,0,24,0,60,0,60,0,16,0,64,0,68,0,-56,1,-8,0,
|
103,101,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,
|
||||||
-32,1,-104,3,8,0,44,0,0,0,76,0,108,0,84,1,-44,0,-52,0,
|
97,0,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,
|
||||||
-12,0,-60,0,16,0,100,0,52,0,36,0,100,0,92,0,104,0,-52,0,
|
105,110,116,68,97,116,97,0,98,116,71,101,110,101,114,105,99,54,68,111,
|
||||||
-108,1,0,0,83,84,82,67,56,0,0,0,10,0,3,0,4,0,0,0,
|
102,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116,83,108,
|
||||||
4,0,1,0,9,0,2,0,11,0,3,0,10,0,3,0,10,0,4,0,
|
105,100,101,114,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,83,
|
||||||
10,0,5,0,12,0,2,0,9,0,6,0,9,0,7,0,13,0,1,0,
|
111,102,116,66,111,100,121,77,97,116,101,114,105,97,108,68,97,116,97,0,
|
||||||
7,0,8,0,14,0,1,0,8,0,8,0,15,0,1,0,13,0,9,0,
|
83,111,102,116,66,111,100,121,78,111,100,101,68,97,116,97,0,83,111,102,
|
||||||
16,0,1,0,14,0,9,0,17,0,2,0,15,0,10,0,13,0,11,0,
|
116,66,111,100,121,76,105,110,107,68,97,116,97,0,83,111,102,116,66,111,
|
||||||
18,0,2,0,16,0,10,0,14,0,11,0,19,0,4,0,4,0,12,0,
|
100,121,70,97,99,101,68,97,116,97,0,83,111,102,116,66,111,100,121,84,
|
||||||
4,0,13,0,2,0,14,0,2,0,15,0,20,0,6,0,13,0,16,0,
|
101,116,114,97,68,97,116,97,0,83,111,102,116,82,105,103,105,100,65,110,
|
||||||
13,0,17,0,4,0,18,0,4,0,19,0,4,0,20,0,0,0,21,0,
|
99,104,111,114,68,97,116,97,0,83,111,102,116,66,111,100,121,67,111,110,
|
||||||
21,0,6,0,14,0,16,0,14,0,17,0,4,0,18,0,4,0,19,0,
|
102,105,103,68,97,116,97,0,83,111,102,116,66,111,100,121,80,111,115,101,
|
||||||
4,0,20,0,0,0,21,0,22,0,3,0,2,0,14,0,2,0,15,0,
|
68,97,116,97,0,83,111,102,116,66,111,100,121,67,108,117,115,116,101,114,
|
||||||
4,0,22,0,23,0,12,0,13,0,23,0,13,0,24,0,13,0,25,0,
|
68,97,116,97,0,98,116,83,111,102,116,66,111,100,121,70,108,111,97,116,
|
||||||
4,0,26,0,4,0,27,0,4,0,28,0,4,0,29,0,20,0,30,0,
|
68,97,116,97,0,0,0,0,84,76,69,78,1,0,1,0,2,0,2,0,
|
||||||
22,0,31,0,19,0,32,0,4,0,33,0,4,0,34,0,24,0,12,0,
|
4,0,4,0,4,0,4,0,8,0,0,0,12,0,36,0,8,0,16,0,
|
||||||
14,0,23,0,14,0,24,0,14,0,25,0,4,0,26,0,4,0,27,0,
|
32,0,48,0,96,0,64,0,-128,0,20,0,48,0,80,0,16,0,84,0,
|
||||||
4,0,28,0,4,0,29,0,21,0,30,0,22,0,31,0,4,0,33,0,
|
-124,0,12,0,52,0,52,0,20,0,64,0,4,0,4,0,8,0,28,0,
|
||||||
4,0,34,0,19,0,32,0,25,0,3,0,0,0,35,0,4,0,36,0,
|
28,0,60,0,56,0,76,0,24,0,60,0,60,0,16,0,64,0,68,0,
|
||||||
0,0,37,0,26,0,5,0,25,0,38,0,13,0,39,0,13,0,40,0,
|
-56,1,-8,0,-32,1,-104,3,8,0,44,0,0,0,76,0,108,0,84,1,
|
||||||
7,0,41,0,0,0,21,0,27,0,5,0,25,0,38,0,13,0,39,0,
|
-44,0,-52,0,-12,0,-60,0,16,0,100,0,52,0,36,0,100,0,92,0,
|
||||||
13,0,42,0,7,0,43,0,4,0,44,0,28,0,2,0,13,0,45,0,
|
104,0,-64,0,92,1,-96,1,83,84,82,67,57,0,0,0,10,0,3,0,
|
||||||
7,0,46,0,29,0,4,0,27,0,47,0,28,0,48,0,4,0,49,0,
|
4,0,0,0,4,0,1,0,9,0,2,0,11,0,3,0,10,0,3,0,
|
||||||
0,0,37,0,30,0,1,0,4,0,50,0,31,0,2,0,2,0,50,0,
|
10,0,4,0,10,0,5,0,12,0,2,0,9,0,6,0,9,0,7,0,
|
||||||
0,0,51,0,32,0,2,0,2,0,52,0,0,0,51,0,33,0,7,0,
|
13,0,1,0,7,0,8,0,14,0,1,0,8,0,8,0,15,0,1,0,
|
||||||
13,0,53,0,14,0,54,0,30,0,55,0,32,0,56,0,31,0,57,0,
|
13,0,9,0,16,0,1,0,14,0,9,0,17,0,2,0,15,0,10,0,
|
||||||
4,0,58,0,4,0,59,0,34,0,4,0,33,0,60,0,13,0,61,0,
|
13,0,11,0,18,0,2,0,16,0,10,0,14,0,11,0,19,0,4,0,
|
||||||
4,0,62,0,0,0,37,0,35,0,7,0,25,0,38,0,34,0,63,0,
|
4,0,12,0,4,0,13,0,2,0,14,0,2,0,15,0,20,0,6,0,
|
||||||
23,0,64,0,24,0,65,0,36,0,66,0,7,0,43,0,0,0,67,0,
|
13,0,16,0,13,0,17,0,4,0,18,0,4,0,19,0,4,0,20,0,
|
||||||
37,0,4,0,17,0,68,0,25,0,69,0,4,0,70,0,7,0,71,0,
|
0,0,21,0,21,0,6,0,14,0,16,0,14,0,17,0,4,0,18,0,
|
||||||
38,0,4,0,25,0,38,0,37,0,72,0,4,0,73,0,7,0,43,0,
|
4,0,19,0,4,0,20,0,0,0,21,0,22,0,3,0,2,0,14,0,
|
||||||
39,0,3,0,27,0,47,0,4,0,74,0,0,0,37,0,40,0,3,0,
|
2,0,15,0,4,0,22,0,23,0,12,0,13,0,23,0,13,0,24,0,
|
||||||
27,0,47,0,4,0,74,0,0,0,37,0,41,0,4,0,4,0,75,0,
|
13,0,25,0,4,0,26,0,4,0,27,0,4,0,28,0,4,0,29,0,
|
||||||
7,0,76,0,7,0,77,0,7,0,78,0,36,0,14,0,4,0,79,0,
|
20,0,30,0,22,0,31,0,19,0,32,0,4,0,33,0,4,0,34,0,
|
||||||
4,0,80,0,41,0,81,0,4,0,82,0,7,0,83,0,7,0,84,0,
|
24,0,12,0,14,0,23,0,14,0,24,0,14,0,25,0,4,0,26,0,
|
||||||
7,0,85,0,7,0,86,0,7,0,87,0,4,0,88,0,4,0,89,0,
|
4,0,27,0,4,0,28,0,4,0,29,0,21,0,30,0,22,0,31,0,
|
||||||
4,0,90,0,4,0,91,0,0,0,37,0,42,0,5,0,25,0,38,0,
|
4,0,33,0,4,0,34,0,19,0,32,0,25,0,3,0,0,0,35,0,
|
||||||
34,0,63,0,13,0,39,0,7,0,43,0,4,0,92,0,43,0,5,0,
|
4,0,36,0,0,0,37,0,26,0,5,0,25,0,38,0,13,0,39,0,
|
||||||
27,0,47,0,13,0,93,0,14,0,94,0,4,0,95,0,0,0,96,0,
|
13,0,40,0,7,0,41,0,0,0,21,0,27,0,5,0,25,0,38,0,
|
||||||
44,0,24,0,9,0,97,0,9,0,98,0,25,0,99,0,0,0,35,0,
|
13,0,39,0,13,0,42,0,7,0,43,0,4,0,44,0,28,0,2,0,
|
||||||
18,0,100,0,18,0,101,0,14,0,102,0,14,0,103,0,14,0,104,0,
|
13,0,45,0,7,0,46,0,29,0,4,0,27,0,47,0,28,0,48,0,
|
||||||
8,0,105,0,8,0,106,0,8,0,107,0,8,0,108,0,8,0,109,0,
|
4,0,49,0,0,0,37,0,30,0,1,0,4,0,50,0,31,0,2,0,
|
||||||
8,0,110,0,8,0,111,0,4,0,112,0,4,0,113,0,4,0,114,0,
|
2,0,50,0,0,0,51,0,32,0,2,0,2,0,52,0,0,0,51,0,
|
||||||
4,0,115,0,4,0,116,0,4,0,117,0,4,0,118,0,0,0,37,0,
|
33,0,7,0,13,0,53,0,14,0,54,0,30,0,55,0,32,0,56,0,
|
||||||
45,0,23,0,9,0,97,0,9,0,98,0,25,0,99,0,0,0,35,0,
|
31,0,57,0,4,0,58,0,4,0,59,0,34,0,4,0,33,0,60,0,
|
||||||
17,0,100,0,17,0,101,0,13,0,102,0,13,0,103,0,13,0,104,0,
|
13,0,61,0,4,0,62,0,0,0,37,0,35,0,7,0,25,0,38,0,
|
||||||
7,0,105,0,7,0,106,0,7,0,107,0,7,0,108,0,7,0,109,0,
|
34,0,63,0,23,0,64,0,24,0,65,0,36,0,66,0,7,0,43,0,
|
||||||
7,0,110,0,7,0,111,0,4,0,112,0,4,0,113,0,4,0,114,0,
|
0,0,67,0,37,0,4,0,17,0,68,0,25,0,69,0,4,0,70,0,
|
||||||
4,0,115,0,4,0,116,0,4,0,117,0,4,0,118,0,46,0,21,0,
|
7,0,71,0,38,0,4,0,25,0,38,0,37,0,72,0,4,0,73,0,
|
||||||
45,0,119,0,15,0,120,0,13,0,121,0,13,0,122,0,13,0,123,0,
|
7,0,43,0,39,0,3,0,27,0,47,0,4,0,74,0,0,0,37,0,
|
||||||
13,0,124,0,13,0,125,0,13,0,126,0,13,0,127,0,13,0,-128,0,
|
40,0,3,0,27,0,47,0,4,0,74,0,0,0,37,0,41,0,4,0,
|
||||||
13,0,-127,0,7,0,-126,0,7,0,-125,0,7,0,-124,0,7,0,-123,0,
|
4,0,75,0,7,0,76,0,7,0,77,0,7,0,78,0,36,0,14,0,
|
||||||
7,0,-122,0,7,0,-121,0,7,0,-120,0,7,0,-119,0,7,0,-118,0,
|
4,0,79,0,4,0,80,0,41,0,81,0,4,0,82,0,7,0,83,0,
|
||||||
4,0,-117,0,47,0,22,0,44,0,119,0,16,0,120,0,14,0,121,0,
|
7,0,84,0,7,0,85,0,7,0,86,0,7,0,87,0,4,0,88,0,
|
||||||
14,0,122,0,14,0,123,0,14,0,124,0,14,0,125,0,14,0,126,0,
|
4,0,89,0,4,0,90,0,4,0,91,0,0,0,37,0,42,0,5,0,
|
||||||
14,0,127,0,14,0,-128,0,14,0,-127,0,8,0,-126,0,8,0,-125,0,
|
25,0,38,0,34,0,63,0,13,0,39,0,7,0,43,0,4,0,92,0,
|
||||||
8,0,-124,0,8,0,-123,0,8,0,-122,0,8,0,-121,0,8,0,-120,0,
|
43,0,5,0,27,0,47,0,13,0,93,0,14,0,94,0,4,0,95,0,
|
||||||
8,0,-119,0,8,0,-118,0,4,0,-117,0,0,0,37,0,48,0,2,0,
|
0,0,96,0,44,0,24,0,9,0,97,0,9,0,98,0,25,0,99,0,
|
||||||
4,0,-116,0,4,0,-115,0,49,0,11,0,50,0,-114,0,50,0,-113,0,
|
0,0,35,0,18,0,100,0,18,0,101,0,14,0,102,0,14,0,103,0,
|
||||||
0,0,35,0,4,0,-112,0,4,0,-111,0,4,0,-110,0,4,0,-109,0,
|
14,0,104,0,8,0,105,0,8,0,106,0,8,0,107,0,8,0,108,0,
|
||||||
7,0,-108,0,7,0,-107,0,4,0,-106,0,0,0,-105,0,51,0,3,0,
|
8,0,109,0,8,0,110,0,8,0,111,0,4,0,112,0,4,0,113,0,
|
||||||
49,0,-104,0,13,0,-103,0,13,0,-102,0,52,0,3,0,49,0,-104,0,
|
4,0,114,0,4,0,115,0,4,0,116,0,4,0,117,0,4,0,118,0,
|
||||||
14,0,-103,0,14,0,-102,0,53,0,13,0,49,0,-104,0,18,0,-101,0,
|
0,0,37,0,45,0,23,0,9,0,97,0,9,0,98,0,25,0,99,0,
|
||||||
18,0,-100,0,4,0,-99,0,4,0,-98,0,4,0,-97,0,7,0,-96,0,
|
0,0,35,0,17,0,100,0,17,0,101,0,13,0,102,0,13,0,103,0,
|
||||||
|
13,0,104,0,7,0,105,0,7,0,106,0,7,0,107,0,7,0,108,0,
|
||||||
|
7,0,109,0,7,0,110,0,7,0,111,0,4,0,112,0,4,0,113,0,
|
||||||
|
4,0,114,0,4,0,115,0,4,0,116,0,4,0,117,0,4,0,118,0,
|
||||||
|
46,0,21,0,45,0,119,0,15,0,120,0,13,0,121,0,13,0,122,0,
|
||||||
|
13,0,123,0,13,0,124,0,13,0,125,0,13,0,126,0,13,0,127,0,
|
||||||
|
13,0,-128,0,13,0,-127,0,7,0,-126,0,7,0,-125,0,7,0,-124,0,
|
||||||
|
7,0,-123,0,7,0,-122,0,7,0,-121,0,7,0,-120,0,7,0,-119,0,
|
||||||
|
7,0,-118,0,4,0,-117,0,47,0,22,0,44,0,119,0,16,0,120,0,
|
||||||
|
14,0,121,0,14,0,122,0,14,0,123,0,14,0,124,0,14,0,125,0,
|
||||||
|
14,0,126,0,14,0,127,0,14,0,-128,0,14,0,-127,0,8,0,-126,0,
|
||||||
|
8,0,-125,0,8,0,-124,0,8,0,-123,0,8,0,-122,0,8,0,-121,0,
|
||||||
|
8,0,-120,0,8,0,-119,0,8,0,-118,0,4,0,-117,0,0,0,37,0,
|
||||||
|
48,0,2,0,4,0,-116,0,4,0,-115,0,49,0,11,0,50,0,-114,0,
|
||||||
|
50,0,-113,0,0,0,35,0,4,0,-112,0,4,0,-111,0,4,0,-110,0,
|
||||||
|
4,0,-109,0,7,0,-108,0,7,0,-107,0,4,0,-106,0,0,0,-105,0,
|
||||||
|
51,0,3,0,49,0,-104,0,13,0,-103,0,13,0,-102,0,52,0,3,0,
|
||||||
|
49,0,-104,0,14,0,-103,0,14,0,-102,0,53,0,13,0,49,0,-104,0,
|
||||||
|
18,0,-101,0,18,0,-100,0,4,0,-99,0,4,0,-98,0,4,0,-97,0,
|
||||||
|
7,0,-96,0,7,0,-95,0,7,0,-94,0,7,0,-93,0,7,0,-92,0,
|
||||||
|
7,0,-91,0,7,0,-90,0,54,0,13,0,49,0,-104,0,17,0,-101,0,
|
||||||
|
17,0,-100,0,4,0,-99,0,4,0,-98,0,4,0,-97,0,7,0,-96,0,
|
||||||
7,0,-95,0,7,0,-94,0,7,0,-93,0,7,0,-92,0,7,0,-91,0,
|
7,0,-95,0,7,0,-94,0,7,0,-93,0,7,0,-92,0,7,0,-91,0,
|
||||||
7,0,-90,0,54,0,13,0,49,0,-104,0,17,0,-101,0,17,0,-100,0,
|
7,0,-90,0,55,0,11,0,49,0,-104,0,17,0,-101,0,17,0,-100,0,
|
||||||
4,0,-99,0,4,0,-98,0,4,0,-97,0,7,0,-96,0,7,0,-95,0,
|
7,0,-89,0,7,0,-88,0,7,0,-87,0,7,0,-92,0,7,0,-91,0,
|
||||||
7,0,-94,0,7,0,-93,0,7,0,-92,0,7,0,-91,0,7,0,-90,0,
|
7,0,-90,0,7,0,-86,0,0,0,21,0,56,0,9,0,49,0,-104,0,
|
||||||
55,0,11,0,49,0,-104,0,17,0,-101,0,17,0,-100,0,7,0,-89,0,
|
17,0,-101,0,17,0,-100,0,13,0,-85,0,13,0,-84,0,13,0,-83,0,
|
||||||
7,0,-88,0,7,0,-87,0,7,0,-92,0,7,0,-91,0,7,0,-90,0,
|
13,0,-82,0,4,0,-81,0,4,0,-80,0,57,0,9,0,49,0,-104,0,
|
||||||
7,0,-86,0,0,0,21,0,56,0,9,0,49,0,-104,0,17,0,-101,0,
|
17,0,-101,0,17,0,-100,0,7,0,-85,0,7,0,-84,0,7,0,-83,0,
|
||||||
17,0,-100,0,13,0,-85,0,13,0,-84,0,13,0,-83,0,13,0,-82,0,
|
7,0,-82,0,4,0,-81,0,4,0,-80,0,58,0,4,0,7,0,-79,0,
|
||||||
4,0,-81,0,4,0,-80,0,57,0,9,0,49,0,-104,0,17,0,-101,0,
|
7,0,-78,0,7,0,-77,0,4,0,75,0,59,0,10,0,58,0,-76,0,
|
||||||
17,0,-100,0,7,0,-85,0,7,0,-84,0,7,0,-83,0,7,0,-82,0,
|
13,0,-75,0,13,0,-74,0,13,0,-73,0,13,0,-72,0,13,0,-71,0,
|
||||||
4,0,-81,0,4,0,-80,0,58,0,4,0,7,0,-79,0,7,0,-78,0,
|
7,0,-126,0,7,0,-70,0,4,0,-69,0,4,0,-68,0,60,0,9,0,
|
||||||
7,0,-77,0,4,0,75,0,59,0,10,0,58,0,-76,0,13,0,-75,0,
|
58,0,-76,0,4,0,-67,0,13,0,-66,0,7,0,-65,0,4,0,-64,0,
|
||||||
13,0,-74,0,13,0,-73,0,13,0,-72,0,13,0,-71,0,7,0,-126,0,
|
7,0,-63,0,7,0,-62,0,7,0,-61,0,4,0,-68,0,61,0,4,0,
|
||||||
7,0,-70,0,4,0,-69,0,4,0,-68,0,60,0,9,0,58,0,-76,0,
|
13,0,-71,0,58,0,-76,0,4,0,-60,0,7,0,-59,0,62,0,7,0,
|
||||||
4,0,-67,0,13,0,-66,0,7,0,-65,0,4,0,-64,0,7,0,-63,0,
|
13,0,-58,0,58,0,-76,0,4,0,-57,0,7,0,-56,0,7,0,-62,0,
|
||||||
7,0,-62,0,7,0,-61,0,4,0,-68,0,61,0,4,0,13,0,-71,0,
|
7,0,-61,0,4,0,-68,0,63,0,6,0,15,0,-63,0,13,0,-62,0,
|
||||||
58,0,-76,0,4,0,-60,0,7,0,-59,0,62,0,7,0,13,0,-58,0,
|
13,0,-55,0,50,0,-54,0,4,0,-53,0,7,0,-61,0,64,0,26,0,
|
||||||
58,0,-76,0,4,0,-57,0,7,0,-56,0,7,0,-62,0,7,0,-61,0,
|
4,0,-52,0,7,0,-51,0,7,0,-86,0,7,0,-50,0,7,0,-49,0,
|
||||||
4,0,-68,0,63,0,6,0,15,0,-63,0,13,0,-62,0,13,0,-55,0,
|
7,0,-48,0,7,0,-47,0,7,0,-46,0,7,0,-45,0,7,0,-44,0,
|
||||||
50,0,-54,0,4,0,-53,0,7,0,-61,0,64,0,26,0,4,0,-52,0,
|
7,0,-43,0,7,0,-42,0,7,0,-41,0,7,0,-40,0,7,0,-39,0,
|
||||||
7,0,-51,0,7,0,-86,0,7,0,-50,0,7,0,-49,0,7,0,-48,0,
|
7,0,-38,0,7,0,-37,0,7,0,-36,0,7,0,-35,0,7,0,-34,0,
|
||||||
7,0,-47,0,7,0,-46,0,7,0,-45,0,7,0,-44,0,7,0,-43,0,
|
7,0,-33,0,4,0,-32,0,4,0,-31,0,4,0,-30,0,4,0,-29,0,
|
||||||
7,0,-42,0,7,0,-41,0,7,0,-40,0,7,0,-39,0,7,0,-38,0,
|
4,0,113,0,65,0,12,0,15,0,-28,0,15,0,-27,0,15,0,-26,0,
|
||||||
7,0,-37,0,7,0,-36,0,7,0,-35,0,7,0,-34,0,7,0,-33,0,
|
13,0,-25,0,13,0,-24,0,7,0,-23,0,4,0,-22,0,4,0,-21,0,
|
||||||
4,0,-32,0,4,0,-31,0,4,0,-30,0,4,0,-29,0,4,0,113,0,
|
4,0,-20,0,4,0,-19,0,7,0,-56,0,4,0,-68,0,66,0,27,0,
|
||||||
65,0,12,0,15,0,-28,0,15,0,-27,0,15,0,-26,0,13,0,-25,0,
|
17,0,-18,0,15,0,-17,0,15,0,-16,0,13,0,-25,0,13,0,-15,0,
|
||||||
13,0,-24,0,4,0,-23,0,4,0,-22,0,7,0,-56,0,4,0,-21,0,
|
13,0,-14,0,13,0,-13,0,13,0,-12,0,13,0,-11,0,4,0,-10,0,
|
||||||
7,0,-20,0,4,0,-19,0,4,0,-68,0,66,0,15,0,45,0,119,0,
|
7,0,-9,0,4,0,-8,0,4,0,-7,0,4,0,-6,0,7,0,-5,0,
|
||||||
65,0,-18,0,58,0,-17,0,59,0,-16,0,60,0,-15,0,61,0,-14,0,
|
7,0,-4,0,4,0,-3,0,4,0,-2,0,7,0,-1,0,7,0,0,1,
|
||||||
62,0,-13,0,63,0,-12,0,4,0,-11,0,4,0,-10,0,4,0,-9,0,
|
7,0,1,1,7,0,2,1,7,0,3,1,7,0,4,1,4,0,5,1,
|
||||||
4,0,-8,0,4,0,-7,0,4,0,-6,0,64,0,-5,0,};
|
4,0,6,1,4,0,7,1,67,0,18,0,45,0,119,0,65,0,8,1,
|
||||||
|
58,0,9,1,59,0,10,1,60,0,11,1,61,0,12,1,62,0,13,1,
|
||||||
|
63,0,14,1,66,0,15,1,4,0,16,1,4,0,-7,0,4,0,17,1,
|
||||||
|
4,0,18,1,4,0,19,1,4,0,20,1,4,0,21,1,4,0,-68,0,
|
||||||
|
64,0,22,1,};
|
||||||
int sBulletDNAlen= sizeof(sBulletDNAstr);
|
int sBulletDNAlen= sizeof(sBulletDNAstr);
|
||||||
unsigned char sBulletDNAstr64[]= {
|
unsigned char sBulletDNAstr64[]= {
|
||||||
83,68,78,65,78,65,77,69,-4,0,0,0,109,95,115,105,122,101,0,109,
|
83,68,78,65,78,65,77,69,23,1,0,0,109,95,115,105,122,101,0,109,
|
||||||
95,99,97,112,97,99,105,116,121,0,42,109,95,100,97,116,97,0,109,95,
|
95,99,97,112,97,99,105,116,121,0,42,109,95,100,97,116,97,0,109,95,
|
||||||
99,111,108,108,105,115,105,111,110,83,104,97,112,101,115,0,109,95,99,111,
|
99,111,108,108,105,115,105,111,110,83,104,97,112,101,115,0,109,95,99,111,
|
||||||
108,108,105,115,105,111,110,79,98,106,101,99,116,115,0,109,95,99,111,110,
|
108,108,105,115,105,111,110,79,98,106,101,99,116,115,0,109,95,99,111,110,
|
||||||
@ -558,181 +583,206 @@ unsigned char sBulletDNAstr64[]= {
|
|||||||
105,116,105,111,110,73,116,101,114,97,116,105,111,110,115,0,109,95,100,114,
|
105,116,105,111,110,73,116,101,114,97,116,105,111,110,115,0,109,95,100,114,
|
||||||
105,102,116,73,116,101,114,97,116,105,111,110,115,0,109,95,99,108,117,115,
|
105,102,116,73,116,101,114,97,116,105,111,110,115,0,109,95,99,108,117,115,
|
||||||
116,101,114,73,116,101,114,97,116,105,111,110,115,0,109,95,114,111,116,0,
|
116,101,114,73,116,101,114,97,116,105,111,110,115,0,109,95,114,111,116,0,
|
||||||
109,95,115,99,97,108,101,0,109,95,97,113,113,0,109,95,112,111,115,105,
|
109,95,115,99,97,108,101,0,109,95,97,113,113,0,109,95,99,111,109,0,
|
||||||
116,105,111,110,115,0,109,95,99,111,109,0,109,95,98,118,111,108,117,109,
|
42,109,95,112,111,115,105,116,105,111,110,115,0,42,109,95,119,101,105,103,
|
||||||
101,0,109,95,98,102,114,97,109,101,0,109,95,110,117,109,80,111,115,105,
|
104,116,115,0,109,95,110,117,109,80,111,115,105,116,105,111,110,115,0,109,
|
||||||
116,105,111,110,115,0,42,109,95,119,101,105,103,104,116,115,0,109,95,110,
|
95,110,117,109,87,101,105,103,116,115,0,109,95,98,118,111,108,117,109,101,
|
||||||
117,109,87,101,105,103,116,115,0,42,109,95,112,111,115,101,0,42,42,109,
|
0,109,95,98,102,114,97,109,101,0,109,95,102,114,97,109,101,120,102,111,
|
||||||
95,109,97,116,101,114,105,97,108,115,0,42,109,95,110,111,100,101,115,0,
|
114,109,0,109,95,108,111,99,105,105,0,109,95,105,110,118,119,105,0,109,
|
||||||
42,109,95,108,105,110,107,115,0,42,109,95,102,97,99,101,115,0,42,109,
|
95,118,105,109,112,117,108,115,101,115,91,50,93,0,109,95,100,105,109,112,
|
||||||
95,116,101,116,114,97,104,101,100,114,97,0,42,109,95,97,110,99,104,111,
|
117,108,115,101,115,91,50,93,0,109,95,108,118,0,109,95,97,118,0,42,
|
||||||
114,115,0,109,95,110,117,109,77,97,116,101,114,105,97,108,115,0,109,95,
|
109,95,102,114,97,109,101,114,101,102,115,0,42,109,95,110,111,100,101,73,
|
||||||
110,117,109,78,111,100,101,115,0,109,95,110,117,109,76,105,110,107,115,0,
|
110,100,105,99,101,115,0,42,109,95,109,97,115,115,101,115,0,109,95,110,
|
||||||
109,95,110,117,109,70,97,99,101,115,0,109,95,110,117,109,84,101,116,114,
|
117,109,70,114,97,109,101,82,101,102,115,0,109,95,110,117,109,78,111,100,
|
||||||
97,104,101,100,114,97,0,109,95,110,117,109,65,110,99,104,111,114,115,0,
|
101,115,0,109,95,110,117,109,77,97,115,115,101,115,0,109,95,105,100,109,
|
||||||
109,95,99,111,110,102,105,103,0,0,0,0,84,89,80,69,67,0,0,0,
|
97,115,115,0,109,95,105,109,97,115,115,0,109,95,110,118,105,109,112,117,
|
||||||
99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116,0,117,115,104,
|
108,115,101,115,0,109,95,110,100,105,109,112,117,108,115,101,115,0,109,95,
|
||||||
111,114,116,0,105,110,116,0,108,111,110,103,0,117,108,111,110,103,0,102,
|
110,100,97,109,112,105,110,103,0,109,95,108,100,97,109,112,105,110,103,0,
|
||||||
108,111,97,116,0,100,111,117,98,108,101,0,118,111,105,100,0,80,111,105,
|
109,95,97,100,97,109,112,105,110,103,0,109,95,109,97,116,99,104,105,110,
|
||||||
110,116,101,114,65,114,114,97,121,0,98,116,80,104,121,115,105,99,115,83,
|
103,0,109,95,109,97,120,83,101,108,102,67,111,108,108,105,115,105,111,110,
|
||||||
121,115,116,101,109,0,76,105,115,116,66,97,115,101,0,98,116,86,101,99,
|
73,109,112,117,108,115,101,0,109,95,115,101,108,102,67,111,108,108,105,115,
|
||||||
116,111,114,51,70,108,111,97,116,68,97,116,97,0,98,116,86,101,99,116,
|
105,111,110,73,109,112,117,108,115,101,70,97,99,116,111,114,0,109,95,99,
|
||||||
111,114,51,68,111,117,98,108,101,68,97,116,97,0,98,116,77,97,116,114,
|
111,110,116,97,105,110,115,65,110,99,104,111,114,0,109,95,99,111,108,108,
|
||||||
105,120,51,120,51,70,108,111,97,116,68,97,116,97,0,98,116,77,97,116,
|
105,100,101,0,109,95,99,108,117,115,116,101,114,73,110,100,101,120,0,42,
|
||||||
114,105,120,51,120,51,68,111,117,98,108,101,68,97,116,97,0,98,116,84,
|
109,95,112,111,115,101,0,42,42,109,95,109,97,116,101,114,105,97,108,115,
|
||||||
114,97,110,115,102,111,114,109,70,108,111,97,116,68,97,116,97,0,98,116,
|
0,42,109,95,110,111,100,101,115,0,42,109,95,108,105,110,107,115,0,42,
|
||||||
84,114,97,110,115,102,111,114,109,68,111,117,98,108,101,68,97,116,97,0,
|
109,95,102,97,99,101,115,0,42,109,95,116,101,116,114,97,104,101,100,114,
|
||||||
98,116,66,118,104,83,117,98,116,114,101,101,73,110,102,111,68,97,116,97,
|
97,0,42,109,95,97,110,99,104,111,114,115,0,42,109,95,99,108,117,115,
|
||||||
0,98,116,79,112,116,105,109,105,122,101,100,66,118,104,78,111,100,101,70,
|
116,101,114,115,0,109,95,110,117,109,77,97,116,101,114,105,97,108,115,0,
|
||||||
108,111,97,116,68,97,116,97,0,98,116,79,112,116,105,109,105,122,101,100,
|
109,95,110,117,109,76,105,110,107,115,0,109,95,110,117,109,70,97,99,101,
|
||||||
66,118,104,78,111,100,101,68,111,117,98,108,101,68,97,116,97,0,98,116,
|
115,0,109,95,110,117,109,84,101,116,114,97,104,101,100,114,97,0,109,95,
|
||||||
81,117,97,110,116,105,122,101,100,66,118,104,78,111,100,101,68,97,116,97,
|
110,117,109,65,110,99,104,111,114,115,0,109,95,110,117,109,67,108,117,115,
|
||||||
0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,70,108,111,97,116,
|
116,101,114,115,0,109,95,99,111,110,102,105,103,0,0,0,84,89,80,69,
|
||||||
68,97,116,97,0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,68,
|
68,0,0,0,99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116,
|
||||||
111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,
|
0,117,115,104,111,114,116,0,105,110,116,0,108,111,110,103,0,117,108,111,
|
||||||
110,83,104,97,112,101,68,97,116,97,0,98,116,83,116,97,116,105,99,80,
|
110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,118,111,105,100,
|
||||||
108,97,110,101,83,104,97,112,101,68,97,116,97,0,98,116,67,111,110,118,
|
0,80,111,105,110,116,101,114,65,114,114,97,121,0,98,116,80,104,121,115,
|
||||||
101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,97,116,97,0,
|
105,99,115,83,121,115,116,101,109,0,76,105,115,116,66,97,115,101,0,98,
|
||||||
98,116,80,111,115,105,116,105,111,110,65,110,100,82,97,100,105,117,115,0,
|
116,86,101,99,116,111,114,51,70,108,111,97,116,68,97,116,97,0,98,116,
|
||||||
98,116,77,117,108,116,105,83,112,104,101,114,101,83,104,97,112,101,68,97,
|
86,101,99,116,111,114,51,68,111,117,98,108,101,68,97,116,97,0,98,116,
|
||||||
116,97,0,98,116,73,110,116,73,110,100,101,120,68,97,116,97,0,98,116,
|
77,97,116,114,105,120,51,120,51,70,108,111,97,116,68,97,116,97,0,98,
|
||||||
83,104,111,114,116,73,110,116,73,110,100,101,120,68,97,116,97,0,98,116,
|
116,77,97,116,114,105,120,51,120,51,68,111,117,98,108,101,68,97,116,97,
|
||||||
83,104,111,114,116,73,110,116,73,110,100,101,120,84,114,105,112,108,101,116,
|
0,98,116,84,114,97,110,115,102,111,114,109,70,108,111,97,116,68,97,116,
|
||||||
68,97,116,97,0,98,116,77,101,115,104,80,97,114,116,68,97,116,97,0,
|
97,0,98,116,84,114,97,110,115,102,111,114,109,68,111,117,98,108,101,68,
|
||||||
98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,
|
97,116,97,0,98,116,66,118,104,83,117,98,116,114,101,101,73,110,102,111,
|
||||||
97,99,101,68,97,116,97,0,98,116,84,114,105,97,110,103,108,101,77,101,
|
68,97,116,97,0,98,116,79,112,116,105,109,105,122,101,100,66,118,104,78,
|
||||||
115,104,83,104,97,112,101,68,97,116,97,0,98,116,84,114,105,97,110,103,
|
111,100,101,70,108,111,97,116,68,97,116,97,0,98,116,79,112,116,105,109,
|
||||||
108,101,73,110,102,111,77,97,112,68,97,116,97,0,98,116,67,111,109,112,
|
105,122,101,100,66,118,104,78,111,100,101,68,111,117,98,108,101,68,97,116,
|
||||||
111,117,110,100,83,104,97,112,101,67,104,105,108,100,68,97,116,97,0,98,
|
97,0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,78,111,100,101,
|
||||||
116,67,111,109,112,111,117,110,100,83,104,97,112,101,68,97,116,97,0,98,
|
68,97,116,97,0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,70,
|
||||||
116,67,121,108,105,110,100,101,114,83,104,97,112,101,68,97,116,97,0,98,
|
108,111,97,116,68,97,116,97,0,98,116,81,117,97,110,116,105,122,101,100,
|
||||||
116,67,97,112,115,117,108,101,83,104,97,112,101,68,97,116,97,0,98,116,
|
66,118,104,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,
|
||||||
84,114,105,97,110,103,108,101,73,110,102,111,68,97,116,97,0,98,116,71,
|
105,115,105,111,110,83,104,97,112,101,68,97,116,97,0,98,116,83,116,97,
|
||||||
73,109,112,97,99,116,77,101,115,104,83,104,97,112,101,68,97,116,97,0,
|
116,105,99,80,108,97,110,101,83,104,97,112,101,68,97,116,97,0,98,116,
|
||||||
98,116,67,111,110,118,101,120,72,117,108,108,83,104,97,112,101,68,97,116,
|
67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,
|
||||||
97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68,
|
97,116,97,0,98,116,80,111,115,105,116,105,111,110,65,110,100,82,97,100,
|
||||||
111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,
|
105,117,115,0,98,116,77,117,108,116,105,83,112,104,101,114,101,83,104,97,
|
||||||
110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,0,98,116,82,
|
112,101,68,97,116,97,0,98,116,73,110,116,73,110,100,101,120,68,97,116,
|
||||||
105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,97,0,98,116,
|
97,0,98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,68,97,116,
|
||||||
82,105,103,105,100,66,111,100,121,68,111,117,98,108,101,68,97,116,97,0,
|
97,0,98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,84,114,105,
|
||||||
98,116,67,111,110,115,116,114,97,105,110,116,73,110,102,111,49,0,98,116,
|
112,108,101,116,68,97,116,97,0,98,116,77,101,115,104,80,97,114,116,68,
|
||||||
84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,
|
97,116,97,0,98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,
|
||||||
98,116,82,105,103,105,100,66,111,100,121,68,97,116,97,0,98,116,80,111,
|
116,101,114,102,97,99,101,68,97,116,97,0,98,116,84,114,105,97,110,103,
|
||||||
105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,70,
|
108,101,77,101,115,104,83,104,97,112,101,68,97,116,97,0,98,116,84,114,
|
||||||
108,111,97,116,68,97,116,97,0,98,116,80,111,105,110,116,50,80,111,105,
|
105,97,110,103,108,101,73,110,102,111,77,97,112,68,97,116,97,0,98,116,
|
||||||
110,116,67,111,110,115,116,114,97,105,110,116,68,111,117,98,108,101,68,97,
|
67,111,109,112,111,117,110,100,83,104,97,112,101,67,104,105,108,100,68,97,
|
||||||
116,97,0,98,116,72,105,110,103,101,67,111,110,115,116,114,97,105,110,116,
|
116,97,0,98,116,67,111,109,112,111,117,110,100,83,104,97,112,101,68,97,
|
||||||
68,111,117,98,108,101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,
|
116,97,0,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,68,97,
|
||||||
110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,97,0,98,116,
|
116,97,0,98,116,67,97,112,115,117,108,101,83,104,97,112,101,68,97,116,
|
||||||
67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,105,110,116,68,
|
97,0,98,116,84,114,105,97,110,103,108,101,73,110,102,111,68,97,116,97,
|
||||||
97,116,97,0,98,116,71,101,110,101,114,105,99,54,68,111,102,67,111,110,
|
0,98,116,71,73,109,112,97,99,116,77,101,115,104,83,104,97,112,101,68,
|
||||||
115,116,114,97,105,110,116,68,97,116,97,0,98,116,83,108,105,100,101,114,
|
97,116,97,0,98,116,67,111,110,118,101,120,72,117,108,108,83,104,97,112,
|
||||||
67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,83,111,102,116,66,
|
101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,
|
||||||
111,100,121,77,97,116,101,114,105,97,108,68,97,116,97,0,83,111,102,116,
|
101,99,116,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,
|
||||||
66,111,100,121,78,111,100,101,68,97,116,97,0,83,111,102,116,66,111,100,
|
105,115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,
|
||||||
121,76,105,110,107,68,97,116,97,0,83,111,102,116,66,111,100,121,70,97,
|
0,98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,
|
||||||
99,101,68,97,116,97,0,83,111,102,116,66,111,100,121,84,101,116,114,97,
|
97,0,98,116,82,105,103,105,100,66,111,100,121,68,111,117,98,108,101,68,
|
||||||
68,97,116,97,0,83,111,102,116,82,105,103,105,100,65,110,99,104,111,114,
|
97,116,97,0,98,116,67,111,110,115,116,114,97,105,110,116,73,110,102,111,
|
||||||
68,97,116,97,0,83,111,102,116,66,111,100,121,67,111,110,102,105,103,68,
|
49,0,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,68,
|
||||||
97,116,97,0,83,111,102,116,66,111,100,121,80,111,115,101,68,97,116,97,
|
97,116,97,0,98,116,82,105,103,105,100,66,111,100,121,68,97,116,97,0,
|
||||||
0,98,116,83,111,102,116,66,111,100,121,70,108,111,97,116,68,97,116,97,
|
98,116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,
|
||||||
0,0,0,0,84,76,69,78,1,0,1,0,2,0,2,0,4,0,4,0,
|
105,110,116,70,108,111,97,116,68,97,116,97,0,98,116,80,111,105,110,116,
|
||||||
4,0,4,0,8,0,0,0,16,0,48,0,16,0,16,0,32,0,48,0,
|
50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,68,111,117,98,
|
||||||
96,0,64,0,-128,0,20,0,48,0,80,0,16,0,96,0,-112,0,16,0,
|
108,101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115,116,114,
|
||||||
56,0,56,0,20,0,72,0,4,0,4,0,8,0,48,0,32,0,80,0,
|
97,105,110,116,68,111,117,98,108,101,68,97,116,97,0,98,116,72,105,110,
|
||||||
72,0,80,0,32,0,64,0,64,0,16,0,72,0,80,0,-40,1,8,1,
|
103,101,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,
|
||||||
-16,1,-88,3,8,0,56,0,0,0,88,0,120,0,96,1,-32,0,-40,0,
|
97,0,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,
|
||||||
0,1,-48,0,16,0,104,0,56,0,40,0,104,0,96,0,104,0,-48,0,
|
105,110,116,68,97,116,97,0,98,116,71,101,110,101,114,105,99,54,68,111,
|
||||||
-64,1,0,0,83,84,82,67,56,0,0,0,10,0,3,0,4,0,0,0,
|
102,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116,83,108,
|
||||||
4,0,1,0,9,0,2,0,11,0,3,0,10,0,3,0,10,0,4,0,
|
105,100,101,114,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,83,
|
||||||
10,0,5,0,12,0,2,0,9,0,6,0,9,0,7,0,13,0,1,0,
|
111,102,116,66,111,100,121,77,97,116,101,114,105,97,108,68,97,116,97,0,
|
||||||
7,0,8,0,14,0,1,0,8,0,8,0,15,0,1,0,13,0,9,0,
|
83,111,102,116,66,111,100,121,78,111,100,101,68,97,116,97,0,83,111,102,
|
||||||
16,0,1,0,14,0,9,0,17,0,2,0,15,0,10,0,13,0,11,0,
|
116,66,111,100,121,76,105,110,107,68,97,116,97,0,83,111,102,116,66,111,
|
||||||
18,0,2,0,16,0,10,0,14,0,11,0,19,0,4,0,4,0,12,0,
|
100,121,70,97,99,101,68,97,116,97,0,83,111,102,116,66,111,100,121,84,
|
||||||
4,0,13,0,2,0,14,0,2,0,15,0,20,0,6,0,13,0,16,0,
|
101,116,114,97,68,97,116,97,0,83,111,102,116,82,105,103,105,100,65,110,
|
||||||
13,0,17,0,4,0,18,0,4,0,19,0,4,0,20,0,0,0,21,0,
|
99,104,111,114,68,97,116,97,0,83,111,102,116,66,111,100,121,67,111,110,
|
||||||
21,0,6,0,14,0,16,0,14,0,17,0,4,0,18,0,4,0,19,0,
|
102,105,103,68,97,116,97,0,83,111,102,116,66,111,100,121,80,111,115,101,
|
||||||
4,0,20,0,0,0,21,0,22,0,3,0,2,0,14,0,2,0,15,0,
|
68,97,116,97,0,83,111,102,116,66,111,100,121,67,108,117,115,116,101,114,
|
||||||
4,0,22,0,23,0,12,0,13,0,23,0,13,0,24,0,13,0,25,0,
|
68,97,116,97,0,98,116,83,111,102,116,66,111,100,121,70,108,111,97,116,
|
||||||
4,0,26,0,4,0,27,0,4,0,28,0,4,0,29,0,20,0,30,0,
|
68,97,116,97,0,0,0,0,84,76,69,78,1,0,1,0,2,0,2,0,
|
||||||
22,0,31,0,19,0,32,0,4,0,33,0,4,0,34,0,24,0,12,0,
|
4,0,4,0,4,0,4,0,8,0,0,0,16,0,48,0,16,0,16,0,
|
||||||
14,0,23,0,14,0,24,0,14,0,25,0,4,0,26,0,4,0,27,0,
|
32,0,48,0,96,0,64,0,-128,0,20,0,48,0,80,0,16,0,96,0,
|
||||||
4,0,28,0,4,0,29,0,21,0,30,0,22,0,31,0,4,0,33,0,
|
-112,0,16,0,56,0,56,0,20,0,72,0,4,0,4,0,8,0,48,0,
|
||||||
4,0,34,0,19,0,32,0,25,0,3,0,0,0,35,0,4,0,36,0,
|
32,0,80,0,72,0,80,0,32,0,64,0,64,0,16,0,72,0,80,0,
|
||||||
0,0,37,0,26,0,5,0,25,0,38,0,13,0,39,0,13,0,40,0,
|
-40,1,8,1,-16,1,-88,3,8,0,56,0,0,0,88,0,120,0,96,1,
|
||||||
7,0,41,0,0,0,21,0,27,0,5,0,25,0,38,0,13,0,39,0,
|
-32,0,-40,0,0,1,-48,0,16,0,104,0,56,0,40,0,104,0,96,0,
|
||||||
13,0,42,0,7,0,43,0,4,0,44,0,28,0,2,0,13,0,45,0,
|
104,0,-56,0,104,1,-48,1,83,84,82,67,57,0,0,0,10,0,3,0,
|
||||||
7,0,46,0,29,0,4,0,27,0,47,0,28,0,48,0,4,0,49,0,
|
4,0,0,0,4,0,1,0,9,0,2,0,11,0,3,0,10,0,3,0,
|
||||||
0,0,37,0,30,0,1,0,4,0,50,0,31,0,2,0,2,0,50,0,
|
10,0,4,0,10,0,5,0,12,0,2,0,9,0,6,0,9,0,7,0,
|
||||||
0,0,51,0,32,0,2,0,2,0,52,0,0,0,51,0,33,0,7,0,
|
13,0,1,0,7,0,8,0,14,0,1,0,8,0,8,0,15,0,1,0,
|
||||||
13,0,53,0,14,0,54,0,30,0,55,0,32,0,56,0,31,0,57,0,
|
13,0,9,0,16,0,1,0,14,0,9,0,17,0,2,0,15,0,10,0,
|
||||||
4,0,58,0,4,0,59,0,34,0,4,0,33,0,60,0,13,0,61,0,
|
13,0,11,0,18,0,2,0,16,0,10,0,14,0,11,0,19,0,4,0,
|
||||||
4,0,62,0,0,0,37,0,35,0,7,0,25,0,38,0,34,0,63,0,
|
4,0,12,0,4,0,13,0,2,0,14,0,2,0,15,0,20,0,6,0,
|
||||||
23,0,64,0,24,0,65,0,36,0,66,0,7,0,43,0,0,0,67,0,
|
13,0,16,0,13,0,17,0,4,0,18,0,4,0,19,0,4,0,20,0,
|
||||||
37,0,4,0,17,0,68,0,25,0,69,0,4,0,70,0,7,0,71,0,
|
0,0,21,0,21,0,6,0,14,0,16,0,14,0,17,0,4,0,18,0,
|
||||||
38,0,4,0,25,0,38,0,37,0,72,0,4,0,73,0,7,0,43,0,
|
4,0,19,0,4,0,20,0,0,0,21,0,22,0,3,0,2,0,14,0,
|
||||||
39,0,3,0,27,0,47,0,4,0,74,0,0,0,37,0,40,0,3,0,
|
2,0,15,0,4,0,22,0,23,0,12,0,13,0,23,0,13,0,24,0,
|
||||||
27,0,47,0,4,0,74,0,0,0,37,0,41,0,4,0,4,0,75,0,
|
13,0,25,0,4,0,26,0,4,0,27,0,4,0,28,0,4,0,29,0,
|
||||||
7,0,76,0,7,0,77,0,7,0,78,0,36,0,14,0,4,0,79,0,
|
20,0,30,0,22,0,31,0,19,0,32,0,4,0,33,0,4,0,34,0,
|
||||||
4,0,80,0,41,0,81,0,4,0,82,0,7,0,83,0,7,0,84,0,
|
24,0,12,0,14,0,23,0,14,0,24,0,14,0,25,0,4,0,26,0,
|
||||||
7,0,85,0,7,0,86,0,7,0,87,0,4,0,88,0,4,0,89,0,
|
4,0,27,0,4,0,28,0,4,0,29,0,21,0,30,0,22,0,31,0,
|
||||||
4,0,90,0,4,0,91,0,0,0,37,0,42,0,5,0,25,0,38,0,
|
4,0,33,0,4,0,34,0,19,0,32,0,25,0,3,0,0,0,35,0,
|
||||||
34,0,63,0,13,0,39,0,7,0,43,0,4,0,92,0,43,0,5,0,
|
4,0,36,0,0,0,37,0,26,0,5,0,25,0,38,0,13,0,39,0,
|
||||||
27,0,47,0,13,0,93,0,14,0,94,0,4,0,95,0,0,0,96,0,
|
13,0,40,0,7,0,41,0,0,0,21,0,27,0,5,0,25,0,38,0,
|
||||||
44,0,24,0,9,0,97,0,9,0,98,0,25,0,99,0,0,0,35,0,
|
13,0,39,0,13,0,42,0,7,0,43,0,4,0,44,0,28,0,2,0,
|
||||||
18,0,100,0,18,0,101,0,14,0,102,0,14,0,103,0,14,0,104,0,
|
13,0,45,0,7,0,46,0,29,0,4,0,27,0,47,0,28,0,48,0,
|
||||||
8,0,105,0,8,0,106,0,8,0,107,0,8,0,108,0,8,0,109,0,
|
4,0,49,0,0,0,37,0,30,0,1,0,4,0,50,0,31,0,2,0,
|
||||||
8,0,110,0,8,0,111,0,4,0,112,0,4,0,113,0,4,0,114,0,
|
2,0,50,0,0,0,51,0,32,0,2,0,2,0,52,0,0,0,51,0,
|
||||||
4,0,115,0,4,0,116,0,4,0,117,0,4,0,118,0,0,0,37,0,
|
33,0,7,0,13,0,53,0,14,0,54,0,30,0,55,0,32,0,56,0,
|
||||||
45,0,23,0,9,0,97,0,9,0,98,0,25,0,99,0,0,0,35,0,
|
31,0,57,0,4,0,58,0,4,0,59,0,34,0,4,0,33,0,60,0,
|
||||||
17,0,100,0,17,0,101,0,13,0,102,0,13,0,103,0,13,0,104,0,
|
13,0,61,0,4,0,62,0,0,0,37,0,35,0,7,0,25,0,38,0,
|
||||||
7,0,105,0,7,0,106,0,7,0,107,0,7,0,108,0,7,0,109,0,
|
34,0,63,0,23,0,64,0,24,0,65,0,36,0,66,0,7,0,43,0,
|
||||||
7,0,110,0,7,0,111,0,4,0,112,0,4,0,113,0,4,0,114,0,
|
0,0,67,0,37,0,4,0,17,0,68,0,25,0,69,0,4,0,70,0,
|
||||||
4,0,115,0,4,0,116,0,4,0,117,0,4,0,118,0,46,0,21,0,
|
7,0,71,0,38,0,4,0,25,0,38,0,37,0,72,0,4,0,73,0,
|
||||||
45,0,119,0,15,0,120,0,13,0,121,0,13,0,122,0,13,0,123,0,
|
7,0,43,0,39,0,3,0,27,0,47,0,4,0,74,0,0,0,37,0,
|
||||||
13,0,124,0,13,0,125,0,13,0,126,0,13,0,127,0,13,0,-128,0,
|
40,0,3,0,27,0,47,0,4,0,74,0,0,0,37,0,41,0,4,0,
|
||||||
13,0,-127,0,7,0,-126,0,7,0,-125,0,7,0,-124,0,7,0,-123,0,
|
4,0,75,0,7,0,76,0,7,0,77,0,7,0,78,0,36,0,14,0,
|
||||||
7,0,-122,0,7,0,-121,0,7,0,-120,0,7,0,-119,0,7,0,-118,0,
|
4,0,79,0,4,0,80,0,41,0,81,0,4,0,82,0,7,0,83,0,
|
||||||
4,0,-117,0,47,0,22,0,44,0,119,0,16,0,120,0,14,0,121,0,
|
7,0,84,0,7,0,85,0,7,0,86,0,7,0,87,0,4,0,88,0,
|
||||||
14,0,122,0,14,0,123,0,14,0,124,0,14,0,125,0,14,0,126,0,
|
4,0,89,0,4,0,90,0,4,0,91,0,0,0,37,0,42,0,5,0,
|
||||||
14,0,127,0,14,0,-128,0,14,0,-127,0,8,0,-126,0,8,0,-125,0,
|
25,0,38,0,34,0,63,0,13,0,39,0,7,0,43,0,4,0,92,0,
|
||||||
8,0,-124,0,8,0,-123,0,8,0,-122,0,8,0,-121,0,8,0,-120,0,
|
43,0,5,0,27,0,47,0,13,0,93,0,14,0,94,0,4,0,95,0,
|
||||||
8,0,-119,0,8,0,-118,0,4,0,-117,0,0,0,37,0,48,0,2,0,
|
0,0,96,0,44,0,24,0,9,0,97,0,9,0,98,0,25,0,99,0,
|
||||||
4,0,-116,0,4,0,-115,0,49,0,11,0,50,0,-114,0,50,0,-113,0,
|
0,0,35,0,18,0,100,0,18,0,101,0,14,0,102,0,14,0,103,0,
|
||||||
0,0,35,0,4,0,-112,0,4,0,-111,0,4,0,-110,0,4,0,-109,0,
|
14,0,104,0,8,0,105,0,8,0,106,0,8,0,107,0,8,0,108,0,
|
||||||
7,0,-108,0,7,0,-107,0,4,0,-106,0,0,0,-105,0,51,0,3,0,
|
8,0,109,0,8,0,110,0,8,0,111,0,4,0,112,0,4,0,113,0,
|
||||||
49,0,-104,0,13,0,-103,0,13,0,-102,0,52,0,3,0,49,0,-104,0,
|
4,0,114,0,4,0,115,0,4,0,116,0,4,0,117,0,4,0,118,0,
|
||||||
14,0,-103,0,14,0,-102,0,53,0,13,0,49,0,-104,0,18,0,-101,0,
|
0,0,37,0,45,0,23,0,9,0,97,0,9,0,98,0,25,0,99,0,
|
||||||
18,0,-100,0,4,0,-99,0,4,0,-98,0,4,0,-97,0,7,0,-96,0,
|
0,0,35,0,17,0,100,0,17,0,101,0,13,0,102,0,13,0,103,0,
|
||||||
|
13,0,104,0,7,0,105,0,7,0,106,0,7,0,107,0,7,0,108,0,
|
||||||
|
7,0,109,0,7,0,110,0,7,0,111,0,4,0,112,0,4,0,113,0,
|
||||||
|
4,0,114,0,4,0,115,0,4,0,116,0,4,0,117,0,4,0,118,0,
|
||||||
|
46,0,21,0,45,0,119,0,15,0,120,0,13,0,121,0,13,0,122,0,
|
||||||
|
13,0,123,0,13,0,124,0,13,0,125,0,13,0,126,0,13,0,127,0,
|
||||||
|
13,0,-128,0,13,0,-127,0,7,0,-126,0,7,0,-125,0,7,0,-124,0,
|
||||||
|
7,0,-123,0,7,0,-122,0,7,0,-121,0,7,0,-120,0,7,0,-119,0,
|
||||||
|
7,0,-118,0,4,0,-117,0,47,0,22,0,44,0,119,0,16,0,120,0,
|
||||||
|
14,0,121,0,14,0,122,0,14,0,123,0,14,0,124,0,14,0,125,0,
|
||||||
|
14,0,126,0,14,0,127,0,14,0,-128,0,14,0,-127,0,8,0,-126,0,
|
||||||
|
8,0,-125,0,8,0,-124,0,8,0,-123,0,8,0,-122,0,8,0,-121,0,
|
||||||
|
8,0,-120,0,8,0,-119,0,8,0,-118,0,4,0,-117,0,0,0,37,0,
|
||||||
|
48,0,2,0,4,0,-116,0,4,0,-115,0,49,0,11,0,50,0,-114,0,
|
||||||
|
50,0,-113,0,0,0,35,0,4,0,-112,0,4,0,-111,0,4,0,-110,0,
|
||||||
|
4,0,-109,0,7,0,-108,0,7,0,-107,0,4,0,-106,0,0,0,-105,0,
|
||||||
|
51,0,3,0,49,0,-104,0,13,0,-103,0,13,0,-102,0,52,0,3,0,
|
||||||
|
49,0,-104,0,14,0,-103,0,14,0,-102,0,53,0,13,0,49,0,-104,0,
|
||||||
|
18,0,-101,0,18,0,-100,0,4,0,-99,0,4,0,-98,0,4,0,-97,0,
|
||||||
|
7,0,-96,0,7,0,-95,0,7,0,-94,0,7,0,-93,0,7,0,-92,0,
|
||||||
|
7,0,-91,0,7,0,-90,0,54,0,13,0,49,0,-104,0,17,0,-101,0,
|
||||||
|
17,0,-100,0,4,0,-99,0,4,0,-98,0,4,0,-97,0,7,0,-96,0,
|
||||||
7,0,-95,0,7,0,-94,0,7,0,-93,0,7,0,-92,0,7,0,-91,0,
|
7,0,-95,0,7,0,-94,0,7,0,-93,0,7,0,-92,0,7,0,-91,0,
|
||||||
7,0,-90,0,54,0,13,0,49,0,-104,0,17,0,-101,0,17,0,-100,0,
|
7,0,-90,0,55,0,11,0,49,0,-104,0,17,0,-101,0,17,0,-100,0,
|
||||||
4,0,-99,0,4,0,-98,0,4,0,-97,0,7,0,-96,0,7,0,-95,0,
|
7,0,-89,0,7,0,-88,0,7,0,-87,0,7,0,-92,0,7,0,-91,0,
|
||||||
7,0,-94,0,7,0,-93,0,7,0,-92,0,7,0,-91,0,7,0,-90,0,
|
7,0,-90,0,7,0,-86,0,0,0,21,0,56,0,9,0,49,0,-104,0,
|
||||||
55,0,11,0,49,0,-104,0,17,0,-101,0,17,0,-100,0,7,0,-89,0,
|
17,0,-101,0,17,0,-100,0,13,0,-85,0,13,0,-84,0,13,0,-83,0,
|
||||||
7,0,-88,0,7,0,-87,0,7,0,-92,0,7,0,-91,0,7,0,-90,0,
|
13,0,-82,0,4,0,-81,0,4,0,-80,0,57,0,9,0,49,0,-104,0,
|
||||||
7,0,-86,0,0,0,21,0,56,0,9,0,49,0,-104,0,17,0,-101,0,
|
17,0,-101,0,17,0,-100,0,7,0,-85,0,7,0,-84,0,7,0,-83,0,
|
||||||
17,0,-100,0,13,0,-85,0,13,0,-84,0,13,0,-83,0,13,0,-82,0,
|
7,0,-82,0,4,0,-81,0,4,0,-80,0,58,0,4,0,7,0,-79,0,
|
||||||
4,0,-81,0,4,0,-80,0,57,0,9,0,49,0,-104,0,17,0,-101,0,
|
7,0,-78,0,7,0,-77,0,4,0,75,0,59,0,10,0,58,0,-76,0,
|
||||||
17,0,-100,0,7,0,-85,0,7,0,-84,0,7,0,-83,0,7,0,-82,0,
|
13,0,-75,0,13,0,-74,0,13,0,-73,0,13,0,-72,0,13,0,-71,0,
|
||||||
4,0,-81,0,4,0,-80,0,58,0,4,0,7,0,-79,0,7,0,-78,0,
|
7,0,-126,0,7,0,-70,0,4,0,-69,0,4,0,-68,0,60,0,9,0,
|
||||||
7,0,-77,0,4,0,75,0,59,0,10,0,58,0,-76,0,13,0,-75,0,
|
58,0,-76,0,4,0,-67,0,13,0,-66,0,7,0,-65,0,4,0,-64,0,
|
||||||
13,0,-74,0,13,0,-73,0,13,0,-72,0,13,0,-71,0,7,0,-126,0,
|
7,0,-63,0,7,0,-62,0,7,0,-61,0,4,0,-68,0,61,0,4,0,
|
||||||
7,0,-70,0,4,0,-69,0,4,0,-68,0,60,0,9,0,58,0,-76,0,
|
13,0,-71,0,58,0,-76,0,4,0,-60,0,7,0,-59,0,62,0,7,0,
|
||||||
4,0,-67,0,13,0,-66,0,7,0,-65,0,4,0,-64,0,7,0,-63,0,
|
13,0,-58,0,58,0,-76,0,4,0,-57,0,7,0,-56,0,7,0,-62,0,
|
||||||
7,0,-62,0,7,0,-61,0,4,0,-68,0,61,0,4,0,13,0,-71,0,
|
7,0,-61,0,4,0,-68,0,63,0,6,0,15,0,-63,0,13,0,-62,0,
|
||||||
58,0,-76,0,4,0,-60,0,7,0,-59,0,62,0,7,0,13,0,-58,0,
|
13,0,-55,0,50,0,-54,0,4,0,-53,0,7,0,-61,0,64,0,26,0,
|
||||||
58,0,-76,0,4,0,-57,0,7,0,-56,0,7,0,-62,0,7,0,-61,0,
|
4,0,-52,0,7,0,-51,0,7,0,-86,0,7,0,-50,0,7,0,-49,0,
|
||||||
4,0,-68,0,63,0,6,0,15,0,-63,0,13,0,-62,0,13,0,-55,0,
|
7,0,-48,0,7,0,-47,0,7,0,-46,0,7,0,-45,0,7,0,-44,0,
|
||||||
50,0,-54,0,4,0,-53,0,7,0,-61,0,64,0,26,0,4,0,-52,0,
|
7,0,-43,0,7,0,-42,0,7,0,-41,0,7,0,-40,0,7,0,-39,0,
|
||||||
7,0,-51,0,7,0,-86,0,7,0,-50,0,7,0,-49,0,7,0,-48,0,
|
7,0,-38,0,7,0,-37,0,7,0,-36,0,7,0,-35,0,7,0,-34,0,
|
||||||
7,0,-47,0,7,0,-46,0,7,0,-45,0,7,0,-44,0,7,0,-43,0,
|
7,0,-33,0,4,0,-32,0,4,0,-31,0,4,0,-30,0,4,0,-29,0,
|
||||||
7,0,-42,0,7,0,-41,0,7,0,-40,0,7,0,-39,0,7,0,-38,0,
|
4,0,113,0,65,0,12,0,15,0,-28,0,15,0,-27,0,15,0,-26,0,
|
||||||
7,0,-37,0,7,0,-36,0,7,0,-35,0,7,0,-34,0,7,0,-33,0,
|
13,0,-25,0,13,0,-24,0,7,0,-23,0,4,0,-22,0,4,0,-21,0,
|
||||||
4,0,-32,0,4,0,-31,0,4,0,-30,0,4,0,-29,0,4,0,113,0,
|
4,0,-20,0,4,0,-19,0,7,0,-56,0,4,0,-68,0,66,0,27,0,
|
||||||
65,0,12,0,15,0,-28,0,15,0,-27,0,15,0,-26,0,13,0,-25,0,
|
17,0,-18,0,15,0,-17,0,15,0,-16,0,13,0,-25,0,13,0,-15,0,
|
||||||
13,0,-24,0,4,0,-23,0,4,0,-22,0,7,0,-56,0,4,0,-21,0,
|
13,0,-14,0,13,0,-13,0,13,0,-12,0,13,0,-11,0,4,0,-10,0,
|
||||||
7,0,-20,0,4,0,-19,0,4,0,-68,0,66,0,15,0,45,0,119,0,
|
7,0,-9,0,4,0,-8,0,4,0,-7,0,4,0,-6,0,7,0,-5,0,
|
||||||
65,0,-18,0,58,0,-17,0,59,0,-16,0,60,0,-15,0,61,0,-14,0,
|
7,0,-4,0,4,0,-3,0,4,0,-2,0,7,0,-1,0,7,0,0,1,
|
||||||
62,0,-13,0,63,0,-12,0,4,0,-11,0,4,0,-10,0,4,0,-9,0,
|
7,0,1,1,7,0,2,1,7,0,3,1,7,0,4,1,4,0,5,1,
|
||||||
4,0,-8,0,4,0,-7,0,4,0,-6,0,64,0,-5,0,};
|
4,0,6,1,4,0,7,1,67,0,18,0,45,0,119,0,65,0,8,1,
|
||||||
|
58,0,9,1,59,0,10,1,60,0,11,1,61,0,12,1,62,0,13,1,
|
||||||
|
63,0,14,1,66,0,15,1,4,0,16,1,4,0,-7,0,4,0,17,1,
|
||||||
|
4,0,18,1,4,0,19,1,4,0,20,1,4,0,21,1,4,0,-68,0,
|
||||||
|
64,0,22,1,};
|
||||||
int sBulletDNAlen64= sizeof(sBulletDNAstr64);
|
int sBulletDNAlen64= sizeof(sBulletDNAstr64);
|
||||||
|
Loading…
Reference in New Issue
Block a user