added basic serialization for several constraints including btPoint2PointConstraint, btHingeConstraint, btSliderConstraint, btConeTwistConstraint, btGeneric6DofConstraint

(no motor support or advanced settings yet)
added btStaticPlaneShape serialization
Added toggle in cmake for BenchmarksDemo to enable/disable graphics rendering
This commit is contained in:
erwin.coumans
2010-01-27 02:13:56 +00:00
parent 7003823bed
commit 00f58e5a91
38 changed files with 1873 additions and 342 deletions

View File

@@ -58,7 +58,42 @@ public:
//debugging
virtual const char* getName()const {return "STATICPLANE";}
virtual int calculateSerializeBufferSize() const;
///fills the dataBuffer and returns the struct name (and 0 on failure)
virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;
};
struct btStaticPlaneShapeData
{
btCollisionShapeData m_collisionShapeData;
btVector3FloatData m_localScaling;
btVector3FloatData m_planeNormal;
float m_planeConstant;
char m_pad[4];
};
SIMD_FORCE_INLINE int btStaticPlaneShape::calculateSerializeBufferSize() const
{
return sizeof(btStaticPlaneShapeData);
}
///fills the dataBuffer and returns the struct name (and 0 on failure)
SIMD_FORCE_INLINE const char* btStaticPlaneShape::serialize(void* dataBuffer, btSerializer* serializer) const
{
btStaticPlaneShapeData* planeData = (btStaticPlaneShapeData*) dataBuffer;
btCollisionShape::serialize(&planeData->m_collisionShapeData,serializer);
m_localScaling.serializeFloat(planeData->m_localScaling);
m_planeNormal.serializeFloat(planeData->m_planeNormal);
planeData->m_planeConstant = float(m_planeConstant);
return "btStaticPlaneShapeData";
}
#endif //STATIC_PLANE_SHAPE_H

View File

@@ -99,6 +99,20 @@ public:
btScalar m_maxMotorImpulse;
btVector3 m_accMotorImpulse;
protected:
void init();
void computeConeLimitInfo(const btQuaternion& qCone, // in
btScalar& swingAngle, btVector3& vSwingAxis, btScalar& swingLimit); // all outs
void computeTwistLimitInfo(const btQuaternion& qTwist, // in
btScalar& twistAngle, btVector3& vTwistAxis); // all outs
void adjustSwingAxisToUseEllipseNormal(btVector3& vSwingAxis) const;
public:
btConeTwistConstraint(btRigidBody& rbA,btRigidBody& rbB,const btTransform& rbAFrame, const btTransform& rbBFrame);
@@ -243,17 +257,61 @@ public:
btVector3 GetPointForAngle(btScalar fAngleInRadians, btScalar fLength) const;
virtual int calculateSerializeBufferSize() const;
protected:
void init();
///fills the dataBuffer and returns the struct name (and 0 on failure)
virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;
void computeConeLimitInfo(const btQuaternion& qCone, // in
btScalar& swingAngle, btVector3& vSwingAxis, btScalar& swingLimit); // all outs
void computeTwistLimitInfo(const btQuaternion& qTwist, // in
btScalar& twistAngle, btVector3& vTwistAxis); // all outs
void adjustSwingAxisToUseEllipseNormal(btVector3& vSwingAxis) const;
};
struct btConeTwistConstraintData
{
btTypedConstraintData m_typeConstraintData;
btTransformFloatData m_rbAFrame;
btTransformFloatData m_rbBFrame;
//limits
float m_swingSpan1;
float m_swingSpan2;
float m_twistSpan;
float m_limitSoftness;
float m_biasFactor;
float m_relaxationFactor;
float m_damping;
char m_pad[4];
};
SIMD_FORCE_INLINE int btConeTwistConstraint::calculateSerializeBufferSize() const
{
return sizeof(btConeTwistConstraintData);
}
///fills the dataBuffer and returns the struct name (and 0 on failure)
SIMD_FORCE_INLINE const char* btConeTwistConstraint::serialize(void* dataBuffer, btSerializer* serializer) const
{
btConeTwistConstraintData* cone = (btConeTwistConstraintData*) dataBuffer;
btTypedConstraint::serialize(&cone->m_typeConstraintData,serializer);
m_rbAFrame.serializeFloat(cone->m_rbAFrame);
m_rbBFrame.serializeFloat(cone->m_rbBFrame);
cone->m_swingSpan1 = float(m_swingSpan1);
cone->m_swingSpan2 = float(m_swingSpan2);
cone->m_twistSpan = float(m_twistSpan);
cone->m_limitSoftness = float(m_limitSoftness);
cone->m_biasFactor = float(m_biasFactor);
cone->m_relaxationFactor = float(m_relaxationFactor);
cone->m_damping = float(m_damping);
return "btConeTwistConstraintData";
}
#endif //CONETWISTCONSTRAINT_H

View File

@@ -498,7 +498,64 @@ public:
// access for UseFrameOffset
bool getUseFrameOffset() { return m_useOffsetForConstraintFrame; }
void setUseFrameOffset(bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; }
virtual int calculateSerializeBufferSize() const;
///fills the dataBuffer and returns the struct name (and 0 on failure)
virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;
};
struct btGeneric6DofConstraintData
{
btTypedConstraintData m_typeConstraintData;
btTransformFloatData m_rbAFrame; // constraint axii. Assumes z is hinge axis.
btTransformFloatData m_rbBFrame;
btVector3FloatData m_linearUpperLimit;
btVector3FloatData m_linearLowerLimit;
btVector3FloatData m_angularUpperLimit;
btVector3FloatData m_angularLowerLimit;
int m_useLinearReferenceFrameA;
int m_useOffsetForConstraintFrame;
};
SIMD_FORCE_INLINE int btGeneric6DofConstraint::calculateSerializeBufferSize() const
{
return sizeof(btGeneric6DofConstraintData);
}
///fills the dataBuffer and returns the struct name (and 0 on failure)
SIMD_FORCE_INLINE const char* btGeneric6DofConstraint::serialize(void* dataBuffer, btSerializer* serializer) const
{
btGeneric6DofConstraintData* dof = (btGeneric6DofConstraintData*)dataBuffer;
btTypedConstraint::serialize(&dof->m_typeConstraintData,serializer);
m_frameInA.serializeFloat(dof->m_rbAFrame);
m_frameInB.serializeFloat(dof->m_rbBFrame);
int i;
for (i=0;i<3;i++)
{
dof->m_angularLowerLimit.m_floats[i] = m_angularLimits[i].m_loLimit;
dof->m_angularUpperLimit.m_floats[i] = m_angularLimits[i].m_hiLimit;
dof->m_linearLowerLimit.m_floats[i] = m_linearLimits.m_lowerLimit[i];
dof->m_linearUpperLimit.m_floats[i] = m_linearLimits.m_upperLimit[i];
}
dof->m_useLinearReferenceFrameA = m_useLinearReferenceFrameA? 1 : 0;
dof->m_useOffsetForConstraintFrame = m_useOffsetForConstraintFrame ? 1 : 0;
return "btGeneric6DofConstraintData";
}
#endif //GENERIC_6DOF_CONSTRAINT_H

View File

@@ -24,6 +24,15 @@ subject to the following restrictions:
class btRigidBody;
#ifdef BT_USE_DOUBLE_PRECISION
#define btHingeConstraintData btHingeConstraintDoubleData
#define btHingeConstraintDataName "btHingeConstraintDoubleData"
#else
#define btHingeConstraintData btHingeConstraintFloatData
#define btHingeConstraintDataName "btHingeConstraintFloatData"
#endif //BT_USE_DOUBLE_PRECISION
/// hinge constraint between two rigidbodies each with a pivotpoint that descibes the axis location in local space
/// axis defines the orientation of the hinge axis
ATTRIBUTE_ALIGNED16(class) btHingeConstraint : public btTypedConstraint
@@ -222,6 +231,83 @@ public:
// access for UseFrameOffset
bool getUseFrameOffset() { return m_useOffsetForConstraintFrame; }
void setUseFrameOffset(bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; }
virtual int calculateSerializeBufferSize() const;
///fills the dataBuffer and returns the struct name (and 0 on failure)
virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;
};
struct btHingeConstraintDoubleData
{
btTypedConstraintData m_typeConstraintData;
btTransformDoubleData m_rbAFrame; // constraint axii. Assumes z is hinge axis.
btTransformDoubleData m_rbBFrame;
int m_useReferenceFrameA;
int m_angularOnly;
int m_enableAngularMotor;
float m_motorTargetVelocity;
float m_maxMotorImpulse;
float m_lowerLimit;
float m_upperLimit;
float m_limitSoftness;
float m_biasFactor;
float m_relaxationFactor;
};
struct btHingeConstraintFloatData
{
btTypedConstraintData m_typeConstraintData;
btTransformFloatData m_rbAFrame; // constraint axii. Assumes z is hinge axis.
btTransformFloatData m_rbBFrame;
int m_useReferenceFrameA;
int m_angularOnly;
int m_enableAngularMotor;
float m_motorTargetVelocity;
float m_maxMotorImpulse;
float m_lowerLimit;
float m_upperLimit;
float m_limitSoftness;
float m_biasFactor;
float m_relaxationFactor;
};
SIMD_FORCE_INLINE int btHingeConstraint::calculateSerializeBufferSize() const
{
return sizeof(btHingeConstraintData);
}
///fills the dataBuffer and returns the struct name (and 0 on failure)
SIMD_FORCE_INLINE const char* btHingeConstraint::serialize(void* dataBuffer, btSerializer* serializer) const
{
btHingeConstraintData* hingeData = (btHingeConstraintData*)dataBuffer;
btTypedConstraint::serialize(&hingeData->m_typeConstraintData,serializer);
m_rbAFrame.serialize(hingeData->m_rbAFrame);
m_rbBFrame.serialize(hingeData->m_rbBFrame);
hingeData->m_angularOnly = m_angularOnly;
hingeData->m_enableAngularMotor = m_enableAngularMotor;
hingeData->m_maxMotorImpulse = float(m_maxMotorImpulse);
hingeData->m_motorTargetVelocity = float(m_motorTargetVelocity);
hingeData->m_useReferenceFrameA = m_useReferenceFrameA;
hingeData->m_lowerLimit = float(m_lowerLimit);
hingeData->m_upperLimit = float(m_upperLimit);
hingeData->m_limitSoftness = float(m_limitSoftness);
hingeData->m_biasFactor = float(m_biasFactor);
hingeData->m_relaxationFactor = float(m_relaxationFactor);
return btHingeConstraintDataName;
}
#endif //HINGECONSTRAINT_H

View File

@@ -22,6 +22,15 @@ subject to the following restrictions:
class btRigidBody;
#ifdef BT_USE_DOUBLE_PRECISION
#define btPoint2PointConstraintData btPoint2PointConstraintDoubleData
#define btPoint2PointConstraintDataName "btPoint2PointConstraintDoubleData"
#else
#define btPoint2PointConstraintData btPoint2PointConstraintFloatData
#define btPoint2PointConstraintDataName "btPoint2PointConstraintFloatData"
#endif //BT_USE_DOUBLE_PRECISION
struct btConstraintSetting
{
btConstraintSetting() :
@@ -95,7 +104,45 @@ public:
return m_pivotInB;
}
virtual int calculateSerializeBufferSize() const;
///fills the dataBuffer and returns the struct name (and 0 on failure)
virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;
};
struct btPoint2PointConstraintFloatData
{
btTypedConstraintData m_typeConstraintData;
btVector3FloatData m_pivotInA;
btVector3FloatData m_pivotInB;
};
struct btPoint2PointConstraintDoubleData
{
btTypedConstraintData m_typeConstraintData;
btVector3DoubleData m_pivotInA;
btVector3DoubleData m_pivotInB;
};
SIMD_FORCE_INLINE int btPoint2PointConstraint::calculateSerializeBufferSize() const
{
return sizeof(btPoint2PointConstraintData);
}
///fills the dataBuffer and returns the struct name (and 0 on failure)
SIMD_FORCE_INLINE const char* btPoint2PointConstraint::serialize(void* dataBuffer, btSerializer* serializer) const
{
btPoint2PointConstraintData* p2pData = (btPoint2PointConstraintData*)dataBuffer;
btTypedConstraint::serialize(&p2pData->m_typeConstraintData,serializer);
m_pivotInA.serialize(p2pData->m_pivotInA);
m_pivotInB.serialize(p2pData->m_pivotInB);
return btPoint2PointConstraintDataName;
}
#endif //POINT2POINTCONSTRAINT_H

View File

@@ -230,8 +230,60 @@ public:
// access for UseFrameOffset
bool getUseFrameOffset() { return m_useOffsetForConstraintFrame; }
void setUseFrameOffset(bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; }
virtual int calculateSerializeBufferSize() const;
///fills the dataBuffer and returns the struct name (and 0 on failure)
virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;
};
struct btSliderConstraintData
{
btTypedConstraintData m_typeConstraintData;
btTransformFloatData m_rbAFrame; // constraint axii. Assumes z is hinge axis.
btTransformFloatData m_rbBFrame;
float m_linearUpperLimit;
float m_linearLowerLimit;
float m_angularUpperLimit;
float m_angularLowerLimit;
int m_useLinearReferenceFrameA;
int m_useOffsetForConstraintFrame;
};
SIMD_FORCE_INLINE int btSliderConstraint::calculateSerializeBufferSize() const
{
return sizeof(btSliderConstraintData);
}
///fills the dataBuffer and returns the struct name (and 0 on failure)
SIMD_FORCE_INLINE const char* btSliderConstraint::serialize(void* dataBuffer, btSerializer* serializer) const
{
btSliderConstraintData* sliderData = (btSliderConstraintData*) dataBuffer;
btTypedConstraint::serialize(&sliderData->m_typeConstraintData,serializer);
m_frameInA.serializeFloat(sliderData->m_rbAFrame);
m_frameInB.serializeFloat(sliderData->m_rbBFrame);
sliderData->m_linearUpperLimit = float(m_upperLinLimit);
sliderData->m_linearLowerLimit = float(m_lowerLinLimit);
sliderData->m_angularUpperLimit = float(m_upperAngLimit);
sliderData->m_angularLowerLimit = float(m_lowerAngLimit);
sliderData->m_useLinearReferenceFrameA = m_useLinearReferenceFrameA;
sliderData->m_useOffsetForConstraintFrame = m_useOffsetForConstraintFrame;
return "btSliderConstraintData";
}
#endif //SLIDER_CONSTRAINT_H

View File

@@ -113,4 +113,37 @@ btScalar btTypedConstraint::getMotorFactor(btScalar pos, btScalar lowLim, btScal
return lim_fact;
}
///fills the dataBuffer and returns the struct name (and 0 on failure)
const char* btTypedConstraint::serialize(void* dataBuffer, btSerializer* serializer) const
{
btTypedConstraintData* tcd = (btTypedConstraintData*) dataBuffer;
tcd->m_rbA = (btRigidBodyData*)&m_rbA;
tcd->m_rbB = (btRigidBodyData*)&m_rbB;
m_appliedAngularImpulseA.serializeFloat(tcd->m_appliedAngularImpulseA);
m_appliedAngularImpulseB.serializeFloat(tcd->m_appliedAngularImpulseB);
m_appliedLinearImpulse.serializeFloat(tcd->m_appliedLinearImpulse);
tcd->m_objectType = m_objectType;
tcd->m_needsFeedback = m_needsFeedback;
tcd->m_userConstraintId =m_userConstraintId;
tcd->m_userConstraintType =m_userConstraintType;
tcd->m_appliedImpulse = float(m_appliedImpulse);
tcd->m_dbgDrawSize = float(m_dbgDrawSize );
tcd->m_disableCollisionsBetweenLinkedBodies = false;
int i;
for (i=0;i<m_rbA.getNumConstraintRefs();i++)
if (m_rbA.getConstraintRef(i) == this)
tcd->m_disableCollisionsBetweenLinkedBodies = true;
for (i=0;i<m_rbB.getNumConstraintRefs();i++)
if (m_rbB.getConstraintRef(i) == this)
tcd->m_disableCollisionsBetweenLinkedBodies = true;
return "btTypedConstraintData";
}

View File

@@ -1,6 +1,6 @@
/*
Bullet Continuous Collision Detection and Physics Library
Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/
Copyright (c) 2003-2010 Erwin Coumans http://continuousphysics.com/Bullet/
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
@@ -21,6 +21,7 @@ class btRigidBody;
#include "btSolverConstraint.h"
#include "BulletCollision/NarrowPhaseCollision/btPersistentManifold.h"
struct btSolverBody;
class btSerializer;
enum btTypedConstraintType
{
@@ -248,6 +249,11 @@ public:
return m_dbgDrawSize;
}
virtual int calculateSerializeBufferSize() const;
///fills the dataBuffer and returns the struct name (and 0 on failure)
virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;
};
// returns angle in range [-SIMD_2_PI, SIMD_2_PI], closest to one of the limits
@@ -277,4 +283,33 @@ SIMD_FORCE_INLINE btScalar btAdjustAngleToLimits(btScalar angleInRadians, btScal
}
struct btTypedConstraintData
{
btRigidBodyData *m_rbA;
btRigidBodyData *m_rbB;
btVector3FloatData m_appliedLinearImpulse;
btVector3FloatData m_appliedAngularImpulseA;
btVector3FloatData m_appliedAngularImpulseB;
int m_objectType;
int m_userConstraintType;
int m_userConstraintId;
int m_needsFeedback;
float m_appliedImpulse;
float m_dbgDrawSize;
int m_disableCollisionsBetweenLinkedBodies;
char m_pad[4];
};
SIMD_FORCE_INLINE int btTypedConstraint::calculateSerializeBufferSize() const
{
return sizeof(btTypedConstraintData);
}
#endif //TYPED_CONSTRAINT_H

View File

@@ -1094,6 +1094,15 @@ void btDiscreteDynamicsWorld::serializeRigidBodies(btSerializer* serializer)
serializer->finalizeChunk(chunk,structType,BT_RIGIDBODY_CODE,colObj);
}
}
for (i=0;i<m_constraints.size();i++)
{
btTypedConstraint* constraint = m_constraints[i];
int size = constraint->calculateSerializeBufferSize();
btChunk* chunk = serializer->allocate(size,1);
const char* structType = constraint->serialize(chunk->m_oldPtr,serializer);
serializer->finalizeChunk(chunk,structType,BT_CONSTRAINT_CODE,constraint);
}
}

View File

@@ -1,5 +1,5 @@
unsigned char sBulletDNAstr64[]= {
83,68,78,65,78,65,77,69,92,0,0,0,109,95,115,105,122,101,0,109,
83,68,78,65,78,65,77,69,-122,0,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,
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,
@@ -9,153 +9,221 @@ unsigned char sBulletDNAstr64[]= {
109,95,117,115,101,114,80,111,105,110,116,101,114,0,109,95,115,104,97,112,
101,84,121,112,101,0,109,95,112,97,100,100,105,110,103,91,52,93,0,109,
95,99,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,0,
109,95,108,111,99,97,108,83,99,97,108,105,110,103,0,109,95,105,109,112,
108,105,99,105,116,83,104,97,112,101,68,105,109,101,110,115,105,111,110,115,
0,109,95,99,111,108,108,105,115,105,111,110,77,97,114,103,105,110,0,109,
95,112,97,100,100,105,110,103,0,109,95,112,111,115,0,109,95,114,97,100,
105,117,115,0,109,95,99,111,110,118,101,120,73,110,116,101,114,110,97,108,
83,104,97,112,101,68,97,116,97,0,42,109,95,108,111,99,97,108,80,111,
115,105,116,105,111,110,65,114,114,97,121,80,116,114,0,109,95,108,111,99,
97,108,80,111,115,105,116,105,111,110,65,114,114,97,121,83,105,122,101,0,
109,95,118,97,108,117,101,0,105,110,116,0,42,109,95,118,101,114,116,105,
99,101,115,51,102,0,42,109,95,118,101,114,116,105,99,101,115,51,100,0,
42,109,95,105,110,100,105,99,101,115,51,50,0,42,109,95,105,110,100,105,
99,101,115,49,54,0,109,95,110,117,109,84,114,105,97,110,103,108,101,115,
0,109,95,110,117,109,86,101,114,116,105,99,101,115,0,42,109,95,109,101,
115,104,80,97,114,116,115,80,116,114,0,109,95,115,99,97,108,105,110,103,
0,109,95,110,117,109,77,101,115,104,80,97,114,116,115,0,109,95,109,101,
115,104,73,110,116,101,114,102,97,99,101,0,109,95,116,114,97,110,115,102,
111,114,109,0,42,109,95,99,104,105,108,100,83,104,97,112,101,0,109,95,
99,104,105,108,100,83,104,97,112,101,84,121,112,101,0,109,95,99,104,105,
108,100,77,97,114,103,105,110,0,42,109,95,99,104,105,108,100,83,104,97,
112,101,80,116,114,0,109,95,110,117,109,67,104,105,108,100,83,104,97,112,
101,115,0,109,95,117,112,65,120,105,115,0,42,109,95,117,110,115,99,97,
108,101,100,80,111,105,110,116,115,70,108,111,97,116,80,116,114,0,42,109,
95,117,110,115,99,97,108,101,100,80,111,105,110,116,115,68,111,117,98,108,
101,80,116,114,0,109,95,110,117,109,85,110,115,99,97,108,101,100,80,111,
105,110,116,115,0,109,95,112,97,100,100,105,110,103,51,91,52,93,0,42,
109,95,98,114,111,97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,
109,95,99,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,
114,111,111,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,
109,95,117,115,101,114,79,98,106,101,99,116,80,111,105,110,116,101,114,0,
109,95,119,111,114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,105,
110,116,101,114,112,111,108,97,116,105,111,110,87,111,114,108,100,84,114,97,
110,115,102,111,114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,105,
111,110,76,105,110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,105,
110,116,101,114,112,111,108,97,116,105,111,110,65,110,103,117,108,97,114,86,
101,108,111,99,105,116,121,0,109,95,97,110,105,115,111,116,114,111,112,105,
99,70,114,105,99,116,105,111,110,0,109,95,99,111,110,116,97,99,116,80,
114,111,99,101,115,115,105,110,103,84,104,114,101,115,104,111,108,100,0,109,
95,100,101,97,99,116,105,118,97,116,105,111,110,84,105,109,101,0,109,95,
102,114,105,99,116,105,111,110,0,109,95,114,101,115,116,105,116,117,116,105,
111,110,0,109,95,104,105,116,70,114,97,99,116,105,111,110,0,109,95,99,
99,100,83,119,101,112,116,83,112,104,101,114,101,82,97,100,105,117,115,0,
109,95,99,99,100,77,111,116,105,111,110,84,104,114,101,115,104,111,108,100,
0,109,95,104,97,115,65,110,105,115,111,116,114,111,112,105,99,70,114,105,
99,116,105,111,110,0,109,95,99,111,108,108,105,115,105,111,110,70,108,97,
103,115,0,109,95,105,115,108,97,110,100,84,97,103,49,0,109,95,99,111,
109,112,97,110,105,111,110,73,100,0,109,95,97,99,116,105,118,97,116,105,
111,110,83,116,97,116,101,49,0,109,95,105,110,116,101,114,110,97,108,84,
121,112,101,0,109,95,99,104,101,99,107,67,111,108,108,105,100,101,87,105,
116,104,0,109,95,99,111,108,108,105,115,105,111,110,79,98,106,101,99,116,
68,97,116,97,0,109,95,105,110,118,73,110,101,114,116,105,97,84,101,110,
115,111,114,87,111,114,108,100,0,109,95,108,105,110,101,97,114,86,101,108,
111,99,105,116,121,0,109,95,97,110,103,117,108,97,114,86,101,108,111,99,
105,116,121,0,109,95,97,110,103,117,108,97,114,70,97,99,116,111,114,0,
109,95,108,105,110,101,97,114,70,97,99,116,111,114,0,109,95,103,114,97,
118,105,116,121,0,109,95,103,114,97,118,105,116,121,95,97,99,99,101,108,
101,114,97,116,105,111,110,0,109,95,105,110,118,73,110,101,114,116,105,97,
76,111,99,97,108,0,109,95,116,111,116,97,108,70,111,114,99,101,0,109,
95,116,111,116,97,108,84,111,114,113,117,101,0,109,95,105,110,118,101,114,
115,101,77,97,115,115,0,109,95,108,105,110,101,97,114,68,97,109,112,105,
110,103,0,109,95,97,110,103,117,108,97,114,68,97,109,112,105,110,103,0,
109,95,97,100,100,105,116,105,111,110,97,108,68,97,109,112,105,110,103,70,
97,99,116,111,114,0,109,95,97,100,100,105,116,105,111,110,97,108,76,105,
110,101,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,
83,113,114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,
108,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,
109,95,108,111,99,97,108,83,99,97,108,105,110,103,0,109,95,112,108,97,
110,101,78,111,114,109,97,108,0,109,95,112,108,97,110,101,67,111,110,115,
116,97,110,116,0,109,95,112,97,100,91,52,93,0,109,95,105,109,112,108,
105,99,105,116,83,104,97,112,101,68,105,109,101,110,115,105,111,110,115,0,
109,95,99,111,108,108,105,115,105,111,110,77,97,114,103,105,110,0,109,95,
112,97,100,100,105,110,103,0,109,95,112,111,115,0,109,95,114,97,100,105,
117,115,0,109,95,99,111,110,118,101,120,73,110,116,101,114,110,97,108,83,
104,97,112,101,68,97,116,97,0,42,109,95,108,111,99,97,108,80,111,115,
105,116,105,111,110,65,114,114,97,121,80,116,114,0,109,95,108,111,99,97,
108,80,111,115,105,116,105,111,110,65,114,114,97,121,83,105,122,101,0,109,
95,118,97,108,117,101,0,105,110,116,0,42,109,95,118,101,114,116,105,99,
101,115,51,102,0,42,109,95,118,101,114,116,105,99,101,115,51,100,0,42,
109,95,105,110,100,105,99,101,115,51,50,0,42,109,95,105,110,100,105,99,
101,115,49,54,0,109,95,110,117,109,84,114,105,97,110,103,108,101,115,0,
109,95,110,117,109,86,101,114,116,105,99,101,115,0,42,109,95,109,101,115,
104,80,97,114,116,115,80,116,114,0,109,95,115,99,97,108,105,110,103,0,
109,95,110,117,109,77,101,115,104,80,97,114,116,115,0,109,95,109,101,115,
104,73,110,116,101,114,102,97,99,101,0,109,95,116,114,97,110,115,102,111,
114,109,0,42,109,95,99,104,105,108,100,83,104,97,112,101,0,109,95,99,
104,105,108,100,83,104,97,112,101,84,121,112,101,0,109,95,99,104,105,108,
100,77,97,114,103,105,110,0,42,109,95,99,104,105,108,100,83,104,97,112,
101,80,116,114,0,109,95,110,117,109,67,104,105,108,100,83,104,97,112,101,
115,0,109,95,117,112,65,120,105,115,0,42,109,95,117,110,115,99,97,108,
101,100,80,111,105,110,116,115,70,108,111,97,116,80,116,114,0,42,109,95,
117,110,115,99,97,108,101,100,80,111,105,110,116,115,68,111,117,98,108,101,
80,116,114,0,109,95,110,117,109,85,110,115,99,97,108,101,100,80,111,105,
110,116,115,0,109,95,112,97,100,100,105,110,103,51,91,52,93,0,42,109,
95,98,114,111,97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,109,
95,99,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,114,
111,111,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,
95,117,115,101,114,79,98,106,101,99,116,80,111,105,110,116,101,114,0,109,
95,119,111,114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,105,110,
116,101,114,112,111,108,97,116,105,111,110,87,111,114,108,100,84,114,97,110,
115,102,111,114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,105,111,
110,76,105,110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,105,110,
116,101,114,112,111,108,97,116,105,111,110,65,110,103,117,108,97,114,86,101,
108,111,99,105,116,121,0,109,95,97,110,105,115,111,116,114,111,112,105,99,
70,114,105,99,116,105,111,110,0,109,95,99,111,110,116,97,99,116,80,114,
111,99,101,115,115,105,110,103,84,104,114,101,115,104,111,108,100,0,109,95,
100,101,97,99,116,105,118,97,116,105,111,110,84,105,109,101,0,109,95,102,
114,105,99,116,105,111,110,0,109,95,114,101,115,116,105,116,117,116,105,111,
110,0,109,95,104,105,116,70,114,97,99,116,105,111,110,0,109,95,99,99,
100,83,119,101,112,116,83,112,104,101,114,101,82,97,100,105,117,115,0,109,
95,99,99,100,77,111,116,105,111,110,84,104,114,101,115,104,111,108,100,0,
109,95,104,97,115,65,110,105,115,111,116,114,111,112,105,99,70,114,105,99,
116,105,111,110,0,109,95,99,111,108,108,105,115,105,111,110,70,108,97,103,
115,0,109,95,105,115,108,97,110,100,84,97,103,49,0,109,95,99,111,109,
112,97,110,105,111,110,73,100,0,109,95,97,99,116,105,118,97,116,105,111,
110,83,116,97,116,101,49,0,109,95,105,110,116,101,114,110,97,108,84,121,
112,101,0,109,95,99,104,101,99,107,67,111,108,108,105,100,101,87,105,116,
104,0,109,95,99,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68,
97,116,97,0,109,95,105,110,118,73,110,101,114,116,105,97,84,101,110,115,
111,114,87,111,114,108,100,0,109,95,108,105,110,101,97,114,86,101,108,111,
99,105,116,121,0,109,95,97,110,103,117,108,97,114,86,101,108,111,99,105,
116,121,0,109,95,97,110,103,117,108,97,114,70,97,99,116,111,114,0,109,
95,108,105,110,101,97,114,70,97,99,116,111,114,0,109,95,103,114,97,118,
105,116,121,0,109,95,103,114,97,118,105,116,121,95,97,99,99,101,108,101,
114,97,116,105,111,110,0,109,95,105,110,118,73,110,101,114,116,105,97,76,
111,99,97,108,0,109,95,116,111,116,97,108,70,111,114,99,101,0,109,95,
116,111,116,97,108,84,111,114,113,117,101,0,109,95,105,110,118,101,114,115,
101,77,97,115,115,0,109,95,108,105,110,101,97,114,68,97,109,112,105,110,
103,0,109,95,97,110,103,117,108,97,114,68,97,109,112,105,110,103,0,109,
95,97,100,100,105,116,105,111,110,97,108,68,97,109,112,105,110,103,70,97,
99,116,111,114,0,109,95,97,100,100,105,116,105,111,110,97,108,76,105,110,
101,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,
113,114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108,
97,114,68,97,109,112,105,110,103,70,97,99,116,111,114,0,109,95,108,105,
110,101,97,114,83,108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,
100,0,109,95,97,110,103,117,108,97,114,83,108,101,101,112,105,110,103,84,
104,114,101,115,104,111,108,100,0,109,95,97,100,100,105,116,105,111,110,97,
108,68,97,109,112,105,110,103,0,0,0,0,84,89,80,69,37,0,0,0,
99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116,0,117,115,104,
111,114,116,0,105,110,116,0,108,111,110,103,0,117,108,111,110,103,0,102,
108,111,97,116,0,100,111,117,98,108,101,0,118,111,105,100,0,80,111,105,
110,116,101,114,65,114,114,97,121,0,98,116,80,104,121,115,105,99,115,83,
121,115,116,101,109,0,76,105,115,116,66,97,115,101,0,98,116,86,101,99,
116,111,114,51,70,108,111,97,116,68,97,116,97,0,98,116,86,101,99,116,
111,114,51,68,111,117,98,108,101,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,116,77,97,116,
114,105,120,51,120,51,68,111,117,98,108,101,68,97,116,97,0,98,116,84,
114,97,110,115,102,111,114,109,70,108,111,97,116,68,97,116,97,0,98,116,
84,114,97,110,115,102,111,114,109,68,111,117,98,108,101,68,97,116,97,0,
98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,
0,98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,
112,101,68,97,116,97,0,98,116,80,111,115,105,116,105,111,110,65,110,100,
82,97,100,105,117,115,0,98,116,77,117,108,116,105,83,112,104,101,114,101,
83,104,97,112,101,68,97,116,97,0,98,116,73,110,116,73,110,100,101,120,
68,97,116,97,0,98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,
68,97,116,97,0,98,116,77,101,115,104,80,97,114,116,68,97,116,97,0,
98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,
97,99,101,68,97,116,97,0,98,116,84,114,105,97,110,103,108,101,77,101,
115,104,83,104,97,112,101,68,97,116,97,0,98,116,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,67,
111,109,112,111,117,110,100,83,104,97,112,101,68,97,116,97,0,98,116,67,
121,108,105,110,100,101,114,83,104,97,112,101,68,97,116,97,0,98,116,67,
97,112,115,117,108,101,83,104,97,112,101,68,97,116,97,0,98,116,67,111,
110,118,101,120,72,117,108,108,83,104,97,112,101,68,97,116,97,0,98,116,
67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68,111,117,98,108,
101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,
101,99,116,70,108,111,97,116,68,97,116,97,0,98,116,82,105,103,105,100,
66,111,100,121,70,108,111,97,116,68,97,116,97,0,98,116,82,105,103,105,
100,66,111,100,121,68,111,117,98,108,101,68,97,116,97,0,84,76,69,78,
1,0,1,0,2,0,2,0,4,0,4,0,4,0,4,0,8,0,0,0,
16,0,48,0,16,0,16,0,32,0,48,0,96,0,64,0,-128,0,16,0,
56,0,20,0,72,0,4,0,4,0,40,0,32,0,56,0,80,0,32,0,
64,0,64,0,80,0,-40,1,8,1,-16,1,-88,3,0,0,83,84,82,67,
27,0,0,0,10,0,3,0,4,0,0,0,4,0,1,0,9,0,2,0,
11,0,3,0,10,0,3,0,10,0,4,0,10,0,5,0,12,0,2,0,
9,0,6,0,9,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,9,0,16,0,1,0,14,0,9,0,
17,0,2,0,15,0,10,0,13,0,11,0,18,0,2,0,16,0,10,0,
14,0,11,0,19,0,3,0,9,0,12,0,4,0,13,0,0,0,14,0,
20,0,5,0,19,0,15,0,13,0,16,0,13,0,17,0,7,0,18,0,
4,0,19,0,21,0,2,0,13,0,20,0,7,0,21,0,22,0,4,0,
20,0,22,0,21,0,23,0,4,0,24,0,0,0,14,0,23,0,1,0,
4,0,25,0,24,0,2,0,2,0,26,0,2,0,25,0,25,0,6,0,
13,0,27,0,14,0,28,0,23,0,29,0,24,0,30,0,4,0,31,0,
4,0,32,0,26,0,4,0,25,0,33,0,13,0,34,0,4,0,35,0,
0,0,14,0,27,0,4,0,19,0,15,0,26,0,36,0,7,0,18,0,
0,0,14,0,28,0,4,0,17,0,37,0,19,0,38,0,4,0,39,0,
7,0,40,0,29,0,4,0,19,0,15,0,28,0,41,0,4,0,42,0,
7,0,18,0,30,0,3,0,20,0,22,0,4,0,43,0,0,0,14,0,
31,0,3,0,20,0,22,0,4,0,43,0,0,0,14,0,32,0,5,0,
20,0,22,0,13,0,44,0,14,0,45,0,4,0,46,0,0,0,47,0,
33,0,24,0,9,0,48,0,9,0,49,0,19,0,50,0,9,0,51,0,
18,0,52,0,18,0,53,0,14,0,54,0,14,0,55,0,14,0,56,0,
8,0,57,0,8,0,58,0,8,0,59,0,8,0,60,0,8,0,61,0,
8,0,62,0,8,0,63,0,4,0,64,0,4,0,65,0,4,0,66,0,
4,0,67,0,4,0,68,0,4,0,69,0,4,0,70,0,0,0,14,0,
34,0,23,0,9,0,48,0,9,0,49,0,19,0,50,0,9,0,51,0,
17,0,52,0,17,0,53,0,13,0,54,0,13,0,55,0,13,0,56,0,
7,0,57,0,7,0,58,0,7,0,59,0,7,0,60,0,7,0,61,0,
7,0,62,0,7,0,63,0,4,0,64,0,4,0,65,0,4,0,66,0,
4,0,67,0,4,0,68,0,4,0,69,0,4,0,70,0,35,0,21,0,
34,0,71,0,15,0,72,0,13,0,73,0,13,0,74,0,13,0,75,0,
13,0,76,0,13,0,77,0,13,0,78,0,13,0,79,0,13,0,80,0,
13,0,81,0,7,0,82,0,7,0,83,0,7,0,84,0,7,0,85,0,
7,0,86,0,7,0,87,0,7,0,88,0,7,0,89,0,7,0,90,0,
4,0,91,0,36,0,22,0,33,0,71,0,16,0,72,0,14,0,73,0,
14,0,74,0,14,0,75,0,14,0,76,0,14,0,77,0,14,0,78,0,
14,0,79,0,14,0,80,0,14,0,81,0,8,0,82,0,8,0,83,0,
8,0,84,0,8,0,85,0,8,0,86,0,8,0,87,0,8,0,88,0,
8,0,89,0,8,0,90,0,4,0,91,0,0,0,14,0,};
97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,113,
114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108,97,
114,68,97,109,112,105,110,103,70,97,99,116,111,114,0,109,95,108,105,110,
101,97,114,83,108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,100,
0,109,95,97,110,103,117,108,97,114,83,108,101,101,112,105,110,103,84,104,
114,101,115,104,111,108,100,0,109,95,97,100,100,105,116,105,111,110,97,108,
68,97,109,112,105,110,103,0,109,95,110,117,109,67,111,110,115,116,114,97,
105,110,116,82,111,119,115,0,110,117,98,0,42,109,95,114,98,65,0,42,
109,95,114,98,66,0,109,95,97,112,112,108,105,101,100,76,105,110,101,97,
114,73,109,112,117,108,115,101,0,109,95,97,112,112,108,105,101,100,65,110,
103,117,108,97,114,73,109,112,117,108,115,101,65,0,109,95,97,112,112,108,
105,101,100,65,110,103,117,108,97,114,73,109,112,117,108,115,101,66,0,109,
95,111,98,106,101,99,116,84,121,112,101,0,109,95,117,115,101,114,67,111,
110,115,116,114,97,105,110,116,84,121,112,101,0,109,95,117,115,101,114,67,
111,110,115,116,114,97,105,110,116,73,100,0,109,95,110,101,101,100,115,70,
101,101,100,98,97,99,107,0,109,95,97,112,112,108,105,101,100,73,109,112,
117,108,115,101,0,109,95,100,98,103,68,114,97,119,83,105,122,101,0,109,
95,100,105,115,97,98,108,101,67,111,108,108,105,115,105,111,110,115,66,101,
116,119,101,101,110,76,105,110,107,101,100,66,111,100,105,101,115,0,109,95,
116,121,112,101,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,109,
95,112,105,118,111,116,73,110,65,0,109,95,112,105,118,111,116,73,110,66,
0,109,95,114,98,65,70,114,97,109,101,0,109,95,114,98,66,70,114,97,
109,101,0,109,95,117,115,101,82,101,102,101,114,101,110,99,101,70,114,97,
109,101,65,0,109,95,97,110,103,117,108,97,114,79,110,108,121,0,109,95,
101,110,97,98,108,101,65,110,103,117,108,97,114,77,111,116,111,114,0,109,
95,109,111,116,111,114,84,97,114,103,101,116,86,101,108,111,99,105,116,121,
0,109,95,109,97,120,77,111,116,111,114,73,109,112,117,108,115,101,0,109,
95,108,111,119,101,114,76,105,109,105,116,0,109,95,117,112,112,101,114,76,
105,109,105,116,0,109,95,108,105,109,105,116,83,111,102,116,110,101,115,115,
0,109,95,98,105,97,115,70,97,99,116,111,114,0,109,95,114,101,108,97,
120,97,116,105,111,110,70,97,99,116,111,114,0,109,95,115,119,105,110,103,
83,112,97,110,49,0,109,95,115,119,105,110,103,83,112,97,110,50,0,109,
95,116,119,105,115,116,83,112,97,110,0,109,95,100,97,109,112,105,110,103,
0,109,95,108,105,110,101,97,114,85,112,112,101,114,76,105,109,105,116,0,
109,95,108,105,110,101,97,114,76,111,119,101,114,76,105,109,105,116,0,109,
95,97,110,103,117,108,97,114,85,112,112,101,114,76,105,109,105,116,0,109,
95,97,110,103,117,108,97,114,76,111,119,101,114,76,105,109,105,116,0,109,
95,117,115,101,76,105,110,101,97,114,82,101,102,101,114,101,110,99,101,70,
114,97,109,101,65,0,109,95,117,115,101,79,102,102,115,101,116,70,111,114,
67,111,110,115,116,114,97,105,110,116,70,114,97,109,101,0,84,89,80,69,
48,0,0,0,99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116,
0,117,115,104,111,114,116,0,105,110,116,0,108,111,110,103,0,117,108,111,
110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,118,111,105,100,
0,80,111,105,110,116,101,114,65,114,114,97,121,0,98,116,80,104,121,115,
105,99,115,83,121,115,116,101,109,0,76,105,115,116,66,97,115,101,0,98,
116,86,101,99,116,111,114,51,70,108,111,97,116,68,97,116,97,0,98,116,
86,101,99,116,111,114,51,68,111,117,98,108,101,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,
116,77,97,116,114,105,120,51,120,51,68,111,117,98,108,101,68,97,116,97,
0,98,116,84,114,97,110,115,102,111,114,109,70,108,111,97,116,68,97,116,
97,0,98,116,84,114,97,110,115,102,111,114,109,68,111,117,98,108,101,68,
97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,
68,97,116,97,0,98,116,83,116,97,116,105,99,80,108,97,110,101,83,104,
97,112,101,68,97,116,97,0,98,116,67,111,110,118,101,120,73,110,116,101,
114,110,97,108,83,104,97,112,101,68,97,116,97,0,98,116,80,111,115,105,
116,105,111,110,65,110,100,82,97,100,105,117,115,0,98,116,77,117,108,116,
105,83,112,104,101,114,101,83,104,97,112,101,68,97,116,97,0,98,116,73,
110,116,73,110,100,101,120,68,97,116,97,0,98,116,83,104,111,114,116,73,
110,116,73,110,100,101,120,68,97,116,97,0,98,116,77,101,115,104,80,97,
114,116,68,97,116,97,0,98,116,83,116,114,105,100,105,110,103,77,101,115,
104,73,110,116,101,114,102,97,99,101,68,97,116,97,0,98,116,84,114,105,
97,110,103,108,101,77,101,115,104,83,104,97,112,101,68,97,116,97,0,98,
116,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,67,111,109,112,111,117,110,100,83,104,97,112,101,68,
97,116,97,0,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,68,
97,116,97,0,98,116,67,97,112,115,117,108,101,83,104,97,112,101,68,97,
116,97,0,98,116,67,111,110,118,101,120,72,117,108,108,83,104,97,112,101,
68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,
99,116,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,105,
115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,0,
98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,97,
0,98,116,82,105,103,105,100,66,111,100,121,68,111,117,98,108,101,68,97,
116,97,0,98,116,67,111,110,115,116,114,97,105,110,116,73,110,102,111,49,
0,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,68,97,
116,97,0,98,116,82,105,103,105,100,66,111,100,121,68,97,116,97,0,98,
116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,
110,116,70,108,111,97,116,68,97,116,97,0,98,116,80,111,105,110,116,50,
80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,68,111,117,98,108,
101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115,116,114,97,
105,110,116,68,111,117,98,108,101,68,97,116,97,0,98,116,72,105,110,103,
101,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,97,
0,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,105,
110,116,68,97,116,97,0,98,116,71,101,110,101,114,105,99,54,68,111,102,
67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116,83,108,105,
100,101,114,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,0,0,
84,76,69,78,1,0,1,0,2,0,2,0,4,0,4,0,4,0,4,0,
8,0,0,0,16,0,48,0,16,0,16,0,32,0,48,0,96,0,64,0,
-128,0,16,0,56,0,56,0,20,0,72,0,4,0,4,0,40,0,32,0,
56,0,80,0,32,0,64,0,64,0,80,0,-40,1,8,1,-16,1,-88,3,
8,0,96,0,0,0,-128,0,-96,0,-120,1,8,1,0,1,40,1,-8,0,
83,84,82,67,37,0,0,0,10,0,3,0,4,0,0,0,4,0,1,0,
9,0,2,0,11,0,3,0,10,0,3,0,10,0,4,0,10,0,5,0,
12,0,2,0,9,0,6,0,9,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,9,0,16,0,1,0,
14,0,9,0,17,0,2,0,15,0,10,0,13,0,11,0,18,0,2,0,
16,0,10,0,14,0,11,0,19,0,3,0,9,0,12,0,4,0,13,0,
0,0,14,0,20,0,5,0,19,0,15,0,13,0,16,0,13,0,17,0,
7,0,18,0,0,0,19,0,21,0,5,0,19,0,15,0,13,0,16,0,
13,0,20,0,7,0,21,0,4,0,22,0,22,0,2,0,13,0,23,0,
7,0,24,0,23,0,4,0,21,0,25,0,22,0,26,0,4,0,27,0,
0,0,14,0,24,0,1,0,4,0,28,0,25,0,2,0,2,0,29,0,
2,0,28,0,26,0,6,0,13,0,30,0,14,0,31,0,24,0,32,0,
25,0,33,0,4,0,34,0,4,0,35,0,27,0,4,0,26,0,36,0,
13,0,37,0,4,0,38,0,0,0,14,0,28,0,4,0,19,0,15,0,
27,0,39,0,7,0,21,0,0,0,14,0,29,0,4,0,17,0,40,0,
19,0,41,0,4,0,42,0,7,0,43,0,30,0,4,0,19,0,15,0,
29,0,44,0,4,0,45,0,7,0,21,0,31,0,3,0,21,0,25,0,
4,0,46,0,0,0,14,0,32,0,3,0,21,0,25,0,4,0,46,0,
0,0,14,0,33,0,5,0,21,0,25,0,13,0,47,0,14,0,48,0,
4,0,49,0,0,0,50,0,34,0,24,0,9,0,51,0,9,0,52,0,
19,0,53,0,9,0,54,0,18,0,55,0,18,0,56,0,14,0,57,0,
14,0,58,0,14,0,59,0,8,0,60,0,8,0,61,0,8,0,62,0,
8,0,63,0,8,0,64,0,8,0,65,0,8,0,66,0,4,0,67,0,
4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0,
4,0,73,0,0,0,14,0,35,0,23,0,9,0,51,0,9,0,52,0,
19,0,53,0,9,0,54,0,17,0,55,0,17,0,56,0,13,0,57,0,
13,0,58,0,13,0,59,0,7,0,60,0,7,0,61,0,7,0,62,0,
7,0,63,0,7,0,64,0,7,0,65,0,7,0,66,0,4,0,67,0,
4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0,
4,0,73,0,36,0,21,0,35,0,74,0,15,0,75,0,13,0,76,0,
13,0,77,0,13,0,78,0,13,0,79,0,13,0,80,0,13,0,81,0,
13,0,82,0,13,0,83,0,13,0,84,0,7,0,85,0,7,0,86,0,
7,0,87,0,7,0,88,0,7,0,89,0,7,0,90,0,7,0,91,0,
7,0,92,0,7,0,93,0,4,0,94,0,37,0,22,0,34,0,74,0,
16,0,75,0,14,0,76,0,14,0,77,0,14,0,78,0,14,0,79,0,
14,0,80,0,14,0,81,0,14,0,82,0,14,0,83,0,14,0,84,0,
8,0,85,0,8,0,86,0,8,0,87,0,8,0,88,0,8,0,89,0,
8,0,90,0,8,0,91,0,8,0,92,0,8,0,93,0,4,0,94,0,
0,0,14,0,38,0,2,0,4,0,95,0,4,0,96,0,39,0,13,0,
40,0,97,0,40,0,98,0,13,0,99,0,13,0,100,0,13,0,101,0,
4,0,102,0,4,0,103,0,4,0,104,0,4,0,105,0,7,0,106,0,
7,0,107,0,4,0,108,0,0,0,19,0,41,0,3,0,39,0,109,0,
13,0,110,0,13,0,111,0,42,0,3,0,39,0,109,0,14,0,110,0,
14,0,111,0,43,0,13,0,39,0,109,0,18,0,112,0,18,0,113,0,
4,0,114,0,4,0,115,0,4,0,116,0,7,0,117,0,7,0,118,0,
7,0,119,0,7,0,120,0,7,0,121,0,7,0,122,0,7,0,123,0,
44,0,13,0,39,0,109,0,17,0,112,0,17,0,113,0,4,0,114,0,
4,0,115,0,4,0,116,0,7,0,117,0,7,0,118,0,7,0,119,0,
7,0,120,0,7,0,121,0,7,0,122,0,7,0,123,0,45,0,11,0,
39,0,109,0,17,0,112,0,17,0,113,0,7,0,124,0,7,0,125,0,
7,0,126,0,7,0,121,0,7,0,122,0,7,0,123,0,7,0,127,0,
0,0,19,0,46,0,9,0,39,0,109,0,17,0,112,0,17,0,113,0,
13,0,-128,0,13,0,-127,0,13,0,-126,0,13,0,-125,0,4,0,-124,0,
4,0,-123,0,47,0,9,0,39,0,109,0,17,0,112,0,17,0,113,0,
7,0,-128,0,7,0,-127,0,7,0,-126,0,7,0,-125,0,4,0,-124,0,
4,0,-123,0,};
int sBulletDNAlen64= sizeof(sBulletDNAstr64);
unsigned char sBulletDNAstr[]= {
83,68,78,65,78,65,77,69,92,0,0,0,109,95,115,105,122,101,0,109,
83,68,78,65,78,65,77,69,-122,0,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,
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,
@@ -165,147 +233,216 @@ unsigned char sBulletDNAstr[]= {
109,95,117,115,101,114,80,111,105,110,116,101,114,0,109,95,115,104,97,112,
101,84,121,112,101,0,109,95,112,97,100,100,105,110,103,91,52,93,0,109,
95,99,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,0,
109,95,108,111,99,97,108,83,99,97,108,105,110,103,0,109,95,105,109,112,
108,105,99,105,116,83,104,97,112,101,68,105,109,101,110,115,105,111,110,115,
0,109,95,99,111,108,108,105,115,105,111,110,77,97,114,103,105,110,0,109,
95,112,97,100,100,105,110,103,0,109,95,112,111,115,0,109,95,114,97,100,
105,117,115,0,109,95,99,111,110,118,101,120,73,110,116,101,114,110,97,108,
83,104,97,112,101,68,97,116,97,0,42,109,95,108,111,99,97,108,80,111,
115,105,116,105,111,110,65,114,114,97,121,80,116,114,0,109,95,108,111,99,
97,108,80,111,115,105,116,105,111,110,65,114,114,97,121,83,105,122,101,0,
109,95,118,97,108,117,101,0,105,110,116,0,42,109,95,118,101,114,116,105,
99,101,115,51,102,0,42,109,95,118,101,114,116,105,99,101,115,51,100,0,
42,109,95,105,110,100,105,99,101,115,51,50,0,42,109,95,105,110,100,105,
99,101,115,49,54,0,109,95,110,117,109,84,114,105,97,110,103,108,101,115,
0,109,95,110,117,109,86,101,114,116,105,99,101,115,0,42,109,95,109,101,
115,104,80,97,114,116,115,80,116,114,0,109,95,115,99,97,108,105,110,103,
0,109,95,110,117,109,77,101,115,104,80,97,114,116,115,0,109,95,109,101,
115,104,73,110,116,101,114,102,97,99,101,0,109,95,116,114,97,110,115,102,
111,114,109,0,42,109,95,99,104,105,108,100,83,104,97,112,101,0,109,95,
99,104,105,108,100,83,104,97,112,101,84,121,112,101,0,109,95,99,104,105,
108,100,77,97,114,103,105,110,0,42,109,95,99,104,105,108,100,83,104,97,
112,101,80,116,114,0,109,95,110,117,109,67,104,105,108,100,83,104,97,112,
101,115,0,109,95,117,112,65,120,105,115,0,42,109,95,117,110,115,99,97,
108,101,100,80,111,105,110,116,115,70,108,111,97,116,80,116,114,0,42,109,
95,117,110,115,99,97,108,101,100,80,111,105,110,116,115,68,111,117,98,108,
101,80,116,114,0,109,95,110,117,109,85,110,115,99,97,108,101,100,80,111,
105,110,116,115,0,109,95,112,97,100,100,105,110,103,51,91,52,93,0,42,
109,95,98,114,111,97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,
109,95,99,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,
114,111,111,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,
109,95,117,115,101,114,79,98,106,101,99,116,80,111,105,110,116,101,114,0,
109,95,119,111,114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,105,
110,116,101,114,112,111,108,97,116,105,111,110,87,111,114,108,100,84,114,97,
110,115,102,111,114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,105,
111,110,76,105,110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,105,
110,116,101,114,112,111,108,97,116,105,111,110,65,110,103,117,108,97,114,86,
101,108,111,99,105,116,121,0,109,95,97,110,105,115,111,116,114,111,112,105,
99,70,114,105,99,116,105,111,110,0,109,95,99,111,110,116,97,99,116,80,
114,111,99,101,115,115,105,110,103,84,104,114,101,115,104,111,108,100,0,109,
95,100,101,97,99,116,105,118,97,116,105,111,110,84,105,109,101,0,109,95,
102,114,105,99,116,105,111,110,0,109,95,114,101,115,116,105,116,117,116,105,
111,110,0,109,95,104,105,116,70,114,97,99,116,105,111,110,0,109,95,99,
99,100,83,119,101,112,116,83,112,104,101,114,101,82,97,100,105,117,115,0,
109,95,99,99,100,77,111,116,105,111,110,84,104,114,101,115,104,111,108,100,
0,109,95,104,97,115,65,110,105,115,111,116,114,111,112,105,99,70,114,105,
99,116,105,111,110,0,109,95,99,111,108,108,105,115,105,111,110,70,108,97,
103,115,0,109,95,105,115,108,97,110,100,84,97,103,49,0,109,95,99,111,
109,112,97,110,105,111,110,73,100,0,109,95,97,99,116,105,118,97,116,105,
111,110,83,116,97,116,101,49,0,109,95,105,110,116,101,114,110,97,108,84,
121,112,101,0,109,95,99,104,101,99,107,67,111,108,108,105,100,101,87,105,
116,104,0,109,95,99,111,108,108,105,115,105,111,110,79,98,106,101,99,116,
68,97,116,97,0,109,95,105,110,118,73,110,101,114,116,105,97,84,101,110,
115,111,114,87,111,114,108,100,0,109,95,108,105,110,101,97,114,86,101,108,
111,99,105,116,121,0,109,95,97,110,103,117,108,97,114,86,101,108,111,99,
105,116,121,0,109,95,97,110,103,117,108,97,114,70,97,99,116,111,114,0,
109,95,108,105,110,101,97,114,70,97,99,116,111,114,0,109,95,103,114,97,
118,105,116,121,0,109,95,103,114,97,118,105,116,121,95,97,99,99,101,108,
101,114,97,116,105,111,110,0,109,95,105,110,118,73,110,101,114,116,105,97,
76,111,99,97,108,0,109,95,116,111,116,97,108,70,111,114,99,101,0,109,
95,116,111,116,97,108,84,111,114,113,117,101,0,109,95,105,110,118,101,114,
115,101,77,97,115,115,0,109,95,108,105,110,101,97,114,68,97,109,112,105,
110,103,0,109,95,97,110,103,117,108,97,114,68,97,109,112,105,110,103,0,
109,95,97,100,100,105,116,105,111,110,97,108,68,97,109,112,105,110,103,70,
97,99,116,111,114,0,109,95,97,100,100,105,116,105,111,110,97,108,76,105,
110,101,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,
83,113,114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,
108,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,
109,95,108,111,99,97,108,83,99,97,108,105,110,103,0,109,95,112,108,97,
110,101,78,111,114,109,97,108,0,109,95,112,108,97,110,101,67,111,110,115,
116,97,110,116,0,109,95,112,97,100,91,52,93,0,109,95,105,109,112,108,
105,99,105,116,83,104,97,112,101,68,105,109,101,110,115,105,111,110,115,0,
109,95,99,111,108,108,105,115,105,111,110,77,97,114,103,105,110,0,109,95,
112,97,100,100,105,110,103,0,109,95,112,111,115,0,109,95,114,97,100,105,
117,115,0,109,95,99,111,110,118,101,120,73,110,116,101,114,110,97,108,83,
104,97,112,101,68,97,116,97,0,42,109,95,108,111,99,97,108,80,111,115,
105,116,105,111,110,65,114,114,97,121,80,116,114,0,109,95,108,111,99,97,
108,80,111,115,105,116,105,111,110,65,114,114,97,121,83,105,122,101,0,109,
95,118,97,108,117,101,0,105,110,116,0,42,109,95,118,101,114,116,105,99,
101,115,51,102,0,42,109,95,118,101,114,116,105,99,101,115,51,100,0,42,
109,95,105,110,100,105,99,101,115,51,50,0,42,109,95,105,110,100,105,99,
101,115,49,54,0,109,95,110,117,109,84,114,105,97,110,103,108,101,115,0,
109,95,110,117,109,86,101,114,116,105,99,101,115,0,42,109,95,109,101,115,
104,80,97,114,116,115,80,116,114,0,109,95,115,99,97,108,105,110,103,0,
109,95,110,117,109,77,101,115,104,80,97,114,116,115,0,109,95,109,101,115,
104,73,110,116,101,114,102,97,99,101,0,109,95,116,114,97,110,115,102,111,
114,109,0,42,109,95,99,104,105,108,100,83,104,97,112,101,0,109,95,99,
104,105,108,100,83,104,97,112,101,84,121,112,101,0,109,95,99,104,105,108,
100,77,97,114,103,105,110,0,42,109,95,99,104,105,108,100,83,104,97,112,
101,80,116,114,0,109,95,110,117,109,67,104,105,108,100,83,104,97,112,101,
115,0,109,95,117,112,65,120,105,115,0,42,109,95,117,110,115,99,97,108,
101,100,80,111,105,110,116,115,70,108,111,97,116,80,116,114,0,42,109,95,
117,110,115,99,97,108,101,100,80,111,105,110,116,115,68,111,117,98,108,101,
80,116,114,0,109,95,110,117,109,85,110,115,99,97,108,101,100,80,111,105,
110,116,115,0,109,95,112,97,100,100,105,110,103,51,91,52,93,0,42,109,
95,98,114,111,97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,109,
95,99,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,114,
111,111,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,
95,117,115,101,114,79,98,106,101,99,116,80,111,105,110,116,101,114,0,109,
95,119,111,114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,105,110,
116,101,114,112,111,108,97,116,105,111,110,87,111,114,108,100,84,114,97,110,
115,102,111,114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,105,111,
110,76,105,110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,105,110,
116,101,114,112,111,108,97,116,105,111,110,65,110,103,117,108,97,114,86,101,
108,111,99,105,116,121,0,109,95,97,110,105,115,111,116,114,111,112,105,99,
70,114,105,99,116,105,111,110,0,109,95,99,111,110,116,97,99,116,80,114,
111,99,101,115,115,105,110,103,84,104,114,101,115,104,111,108,100,0,109,95,
100,101,97,99,116,105,118,97,116,105,111,110,84,105,109,101,0,109,95,102,
114,105,99,116,105,111,110,0,109,95,114,101,115,116,105,116,117,116,105,111,
110,0,109,95,104,105,116,70,114,97,99,116,105,111,110,0,109,95,99,99,
100,83,119,101,112,116,83,112,104,101,114,101,82,97,100,105,117,115,0,109,
95,99,99,100,77,111,116,105,111,110,84,104,114,101,115,104,111,108,100,0,
109,95,104,97,115,65,110,105,115,111,116,114,111,112,105,99,70,114,105,99,
116,105,111,110,0,109,95,99,111,108,108,105,115,105,111,110,70,108,97,103,
115,0,109,95,105,115,108,97,110,100,84,97,103,49,0,109,95,99,111,109,
112,97,110,105,111,110,73,100,0,109,95,97,99,116,105,118,97,116,105,111,
110,83,116,97,116,101,49,0,109,95,105,110,116,101,114,110,97,108,84,121,
112,101,0,109,95,99,104,101,99,107,67,111,108,108,105,100,101,87,105,116,
104,0,109,95,99,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68,
97,116,97,0,109,95,105,110,118,73,110,101,114,116,105,97,84,101,110,115,
111,114,87,111,114,108,100,0,109,95,108,105,110,101,97,114,86,101,108,111,
99,105,116,121,0,109,95,97,110,103,117,108,97,114,86,101,108,111,99,105,
116,121,0,109,95,97,110,103,117,108,97,114,70,97,99,116,111,114,0,109,
95,108,105,110,101,97,114,70,97,99,116,111,114,0,109,95,103,114,97,118,
105,116,121,0,109,95,103,114,97,118,105,116,121,95,97,99,99,101,108,101,
114,97,116,105,111,110,0,109,95,105,110,118,73,110,101,114,116,105,97,76,
111,99,97,108,0,109,95,116,111,116,97,108,70,111,114,99,101,0,109,95,
116,111,116,97,108,84,111,114,113,117,101,0,109,95,105,110,118,101,114,115,
101,77,97,115,115,0,109,95,108,105,110,101,97,114,68,97,109,112,105,110,
103,0,109,95,97,110,103,117,108,97,114,68,97,109,112,105,110,103,0,109,
95,97,100,100,105,116,105,111,110,97,108,68,97,109,112,105,110,103,70,97,
99,116,111,114,0,109,95,97,100,100,105,116,105,111,110,97,108,76,105,110,
101,97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,
113,114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108,
97,114,68,97,109,112,105,110,103,70,97,99,116,111,114,0,109,95,108,105,
110,101,97,114,83,108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,
100,0,109,95,97,110,103,117,108,97,114,83,108,101,101,112,105,110,103,84,
104,114,101,115,104,111,108,100,0,109,95,97,100,100,105,116,105,111,110,97,
108,68,97,109,112,105,110,103,0,0,0,0,84,89,80,69,37,0,0,0,
99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116,0,117,115,104,
111,114,116,0,105,110,116,0,108,111,110,103,0,117,108,111,110,103,0,102,
108,111,97,116,0,100,111,117,98,108,101,0,118,111,105,100,0,80,111,105,
110,116,101,114,65,114,114,97,121,0,98,116,80,104,121,115,105,99,115,83,
121,115,116,101,109,0,76,105,115,116,66,97,115,101,0,98,116,86,101,99,
116,111,114,51,70,108,111,97,116,68,97,116,97,0,98,116,86,101,99,116,
111,114,51,68,111,117,98,108,101,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,116,77,97,116,
114,105,120,51,120,51,68,111,117,98,108,101,68,97,116,97,0,98,116,84,
114,97,110,115,102,111,114,109,70,108,111,97,116,68,97,116,97,0,98,116,
84,114,97,110,115,102,111,114,109,68,111,117,98,108,101,68,97,116,97,0,
98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,
0,98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,
112,101,68,97,116,97,0,98,116,80,111,115,105,116,105,111,110,65,110,100,
82,97,100,105,117,115,0,98,116,77,117,108,116,105,83,112,104,101,114,101,
83,104,97,112,101,68,97,116,97,0,98,116,73,110,116,73,110,100,101,120,
68,97,116,97,0,98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,
68,97,116,97,0,98,116,77,101,115,104,80,97,114,116,68,97,116,97,0,
98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,
97,99,101,68,97,116,97,0,98,116,84,114,105,97,110,103,108,101,77,101,
115,104,83,104,97,112,101,68,97,116,97,0,98,116,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,67,
111,109,112,111,117,110,100,83,104,97,112,101,68,97,116,97,0,98,116,67,
121,108,105,110,100,101,114,83,104,97,112,101,68,97,116,97,0,98,116,67,
97,112,115,117,108,101,83,104,97,112,101,68,97,116,97,0,98,116,67,111,
110,118,101,120,72,117,108,108,83,104,97,112,101,68,97,116,97,0,98,116,
67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,68,111,117,98,108,
101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,
101,99,116,70,108,111,97,116,68,97,116,97,0,98,116,82,105,103,105,100,
66,111,100,121,70,108,111,97,116,68,97,116,97,0,98,116,82,105,103,105,
100,66,111,100,121,68,111,117,98,108,101,68,97,116,97,0,84,76,69,78,
1,0,1,0,2,0,2,0,4,0,4,0,4,0,4,0,8,0,0,0,
12,0,36,0,8,0,16,0,32,0,48,0,96,0,64,0,-128,0,12,0,
52,0,20,0,64,0,4,0,4,0,24,0,28,0,48,0,76,0,24,0,
60,0,60,0,68,0,-56,1,-8,0,-32,1,-104,3,0,0,83,84,82,67,
27,0,0,0,10,0,3,0,4,0,0,0,4,0,1,0,9,0,2,0,
11,0,3,0,10,0,3,0,10,0,4,0,10,0,5,0,12,0,2,0,
9,0,6,0,9,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,9,0,16,0,1,0,14,0,9,0,
17,0,2,0,15,0,10,0,13,0,11,0,18,0,2,0,16,0,10,0,
14,0,11,0,19,0,3,0,9,0,12,0,4,0,13,0,0,0,14,0,
20,0,5,0,19,0,15,0,13,0,16,0,13,0,17,0,7,0,18,0,
4,0,19,0,21,0,2,0,13,0,20,0,7,0,21,0,22,0,4,0,
20,0,22,0,21,0,23,0,4,0,24,0,0,0,14,0,23,0,1,0,
4,0,25,0,24,0,2,0,2,0,26,0,2,0,25,0,25,0,6,0,
13,0,27,0,14,0,28,0,23,0,29,0,24,0,30,0,4,0,31,0,
4,0,32,0,26,0,4,0,25,0,33,0,13,0,34,0,4,0,35,0,
0,0,14,0,27,0,4,0,19,0,15,0,26,0,36,0,7,0,18,0,
0,0,14,0,28,0,4,0,17,0,37,0,19,0,38,0,4,0,39,0,
7,0,40,0,29,0,4,0,19,0,15,0,28,0,41,0,4,0,42,0,
7,0,18,0,30,0,3,0,20,0,22,0,4,0,43,0,0,0,14,0,
31,0,3,0,20,0,22,0,4,0,43,0,0,0,14,0,32,0,5,0,
20,0,22,0,13,0,44,0,14,0,45,0,4,0,46,0,0,0,47,0,
33,0,24,0,9,0,48,0,9,0,49,0,19,0,50,0,9,0,51,0,
18,0,52,0,18,0,53,0,14,0,54,0,14,0,55,0,14,0,56,0,
8,0,57,0,8,0,58,0,8,0,59,0,8,0,60,0,8,0,61,0,
8,0,62,0,8,0,63,0,4,0,64,0,4,0,65,0,4,0,66,0,
4,0,67,0,4,0,68,0,4,0,69,0,4,0,70,0,0,0,14,0,
34,0,23,0,9,0,48,0,9,0,49,0,19,0,50,0,9,0,51,0,
17,0,52,0,17,0,53,0,13,0,54,0,13,0,55,0,13,0,56,0,
7,0,57,0,7,0,58,0,7,0,59,0,7,0,60,0,7,0,61,0,
7,0,62,0,7,0,63,0,4,0,64,0,4,0,65,0,4,0,66,0,
4,0,67,0,4,0,68,0,4,0,69,0,4,0,70,0,35,0,21,0,
34,0,71,0,15,0,72,0,13,0,73,0,13,0,74,0,13,0,75,0,
13,0,76,0,13,0,77,0,13,0,78,0,13,0,79,0,13,0,80,0,
13,0,81,0,7,0,82,0,7,0,83,0,7,0,84,0,7,0,85,0,
7,0,86,0,7,0,87,0,7,0,88,0,7,0,89,0,7,0,90,0,
4,0,91,0,36,0,22,0,33,0,71,0,16,0,72,0,14,0,73,0,
14,0,74,0,14,0,75,0,14,0,76,0,14,0,77,0,14,0,78,0,
14,0,79,0,14,0,80,0,14,0,81,0,8,0,82,0,8,0,83,0,
8,0,84,0,8,0,85,0,8,0,86,0,8,0,87,0,8,0,88,0,
8,0,89,0,8,0,90,0,4,0,91,0,0,0,14,0,};
97,114,68,97,109,112,105,110,103,84,104,114,101,115,104,111,108,100,83,113,
114,0,109,95,97,100,100,105,116,105,111,110,97,108,65,110,103,117,108,97,
114,68,97,109,112,105,110,103,70,97,99,116,111,114,0,109,95,108,105,110,
101,97,114,83,108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,100,
0,109,95,97,110,103,117,108,97,114,83,108,101,101,112,105,110,103,84,104,
114,101,115,104,111,108,100,0,109,95,97,100,100,105,116,105,111,110,97,108,
68,97,109,112,105,110,103,0,109,95,110,117,109,67,111,110,115,116,114,97,
105,110,116,82,111,119,115,0,110,117,98,0,42,109,95,114,98,65,0,42,
109,95,114,98,66,0,109,95,97,112,112,108,105,101,100,76,105,110,101,97,
114,73,109,112,117,108,115,101,0,109,95,97,112,112,108,105,101,100,65,110,
103,117,108,97,114,73,109,112,117,108,115,101,65,0,109,95,97,112,112,108,
105,101,100,65,110,103,117,108,97,114,73,109,112,117,108,115,101,66,0,109,
95,111,98,106,101,99,116,84,121,112,101,0,109,95,117,115,101,114,67,111,
110,115,116,114,97,105,110,116,84,121,112,101,0,109,95,117,115,101,114,67,
111,110,115,116,114,97,105,110,116,73,100,0,109,95,110,101,101,100,115,70,
101,101,100,98,97,99,107,0,109,95,97,112,112,108,105,101,100,73,109,112,
117,108,115,101,0,109,95,100,98,103,68,114,97,119,83,105,122,101,0,109,
95,100,105,115,97,98,108,101,67,111,108,108,105,115,105,111,110,115,66,101,
116,119,101,101,110,76,105,110,107,101,100,66,111,100,105,101,115,0,109,95,
116,121,112,101,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,109,
95,112,105,118,111,116,73,110,65,0,109,95,112,105,118,111,116,73,110,66,
0,109,95,114,98,65,70,114,97,109,101,0,109,95,114,98,66,70,114,97,
109,101,0,109,95,117,115,101,82,101,102,101,114,101,110,99,101,70,114,97,
109,101,65,0,109,95,97,110,103,117,108,97,114,79,110,108,121,0,109,95,
101,110,97,98,108,101,65,110,103,117,108,97,114,77,111,116,111,114,0,109,
95,109,111,116,111,114,84,97,114,103,101,116,86,101,108,111,99,105,116,121,
0,109,95,109,97,120,77,111,116,111,114,73,109,112,117,108,115,101,0,109,
95,108,111,119,101,114,76,105,109,105,116,0,109,95,117,112,112,101,114,76,
105,109,105,116,0,109,95,108,105,109,105,116,83,111,102,116,110,101,115,115,
0,109,95,98,105,97,115,70,97,99,116,111,114,0,109,95,114,101,108,97,
120,97,116,105,111,110,70,97,99,116,111,114,0,109,95,115,119,105,110,103,
83,112,97,110,49,0,109,95,115,119,105,110,103,83,112,97,110,50,0,109,
95,116,119,105,115,116,83,112,97,110,0,109,95,100,97,109,112,105,110,103,
0,109,95,108,105,110,101,97,114,85,112,112,101,114,76,105,109,105,116,0,
109,95,108,105,110,101,97,114,76,111,119,101,114,76,105,109,105,116,0,109,
95,97,110,103,117,108,97,114,85,112,112,101,114,76,105,109,105,116,0,109,
95,97,110,103,117,108,97,114,76,111,119,101,114,76,105,109,105,116,0,109,
95,117,115,101,76,105,110,101,97,114,82,101,102,101,114,101,110,99,101,70,
114,97,109,101,65,0,109,95,117,115,101,79,102,102,115,101,116,70,111,114,
67,111,110,115,116,114,97,105,110,116,70,114,97,109,101,0,84,89,80,69,
48,0,0,0,99,104,97,114,0,117,99,104,97,114,0,115,104,111,114,116,
0,117,115,104,111,114,116,0,105,110,116,0,108,111,110,103,0,117,108,111,
110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,118,111,105,100,
0,80,111,105,110,116,101,114,65,114,114,97,121,0,98,116,80,104,121,115,
105,99,115,83,121,115,116,101,109,0,76,105,115,116,66,97,115,101,0,98,
116,86,101,99,116,111,114,51,70,108,111,97,116,68,97,116,97,0,98,116,
86,101,99,116,111,114,51,68,111,117,98,108,101,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,
116,77,97,116,114,105,120,51,120,51,68,111,117,98,108,101,68,97,116,97,
0,98,116,84,114,97,110,115,102,111,114,109,70,108,111,97,116,68,97,116,
97,0,98,116,84,114,97,110,115,102,111,114,109,68,111,117,98,108,101,68,
97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,
68,97,116,97,0,98,116,83,116,97,116,105,99,80,108,97,110,101,83,104,
97,112,101,68,97,116,97,0,98,116,67,111,110,118,101,120,73,110,116,101,
114,110,97,108,83,104,97,112,101,68,97,116,97,0,98,116,80,111,115,105,
116,105,111,110,65,110,100,82,97,100,105,117,115,0,98,116,77,117,108,116,
105,83,112,104,101,114,101,83,104,97,112,101,68,97,116,97,0,98,116,73,
110,116,73,110,100,101,120,68,97,116,97,0,98,116,83,104,111,114,116,73,
110,116,73,110,100,101,120,68,97,116,97,0,98,116,77,101,115,104,80,97,
114,116,68,97,116,97,0,98,116,83,116,114,105,100,105,110,103,77,101,115,
104,73,110,116,101,114,102,97,99,101,68,97,116,97,0,98,116,84,114,105,
97,110,103,108,101,77,101,115,104,83,104,97,112,101,68,97,116,97,0,98,
116,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,67,111,109,112,111,117,110,100,83,104,97,112,101,68,
97,116,97,0,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,68,
97,116,97,0,98,116,67,97,112,115,117,108,101,83,104,97,112,101,68,97,
116,97,0,98,116,67,111,110,118,101,120,72,117,108,108,83,104,97,112,101,
68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,
99,116,68,111,117,98,108,101,68,97,116,97,0,98,116,67,111,108,108,105,
115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,0,
98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,97,
0,98,116,82,105,103,105,100,66,111,100,121,68,111,117,98,108,101,68,97,
116,97,0,98,116,67,111,110,115,116,114,97,105,110,116,73,110,102,111,49,
0,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,68,97,
116,97,0,98,116,82,105,103,105,100,66,111,100,121,68,97,116,97,0,98,
116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,
110,116,70,108,111,97,116,68,97,116,97,0,98,116,80,111,105,110,116,50,
80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,68,111,117,98,108,
101,68,97,116,97,0,98,116,72,105,110,103,101,67,111,110,115,116,114,97,
105,110,116,68,111,117,98,108,101,68,97,116,97,0,98,116,72,105,110,103,
101,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,97,
0,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,105,
110,116,68,97,116,97,0,98,116,71,101,110,101,114,105,99,54,68,111,102,
67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,98,116,83,108,105,
100,101,114,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,0,0,
84,76,69,78,1,0,1,0,2,0,2,0,4,0,4,0,4,0,4,0,
8,0,0,0,12,0,36,0,8,0,16,0,32,0,48,0,96,0,64,0,
-128,0,12,0,52,0,52,0,20,0,64,0,4,0,4,0,24,0,28,0,
48,0,76,0,24,0,60,0,60,0,68,0,-56,1,-8,0,-32,1,-104,3,
8,0,88,0,0,0,120,0,-104,0,-128,1,0,1,-8,0,32,1,-16,0,
83,84,82,67,37,0,0,0,10,0,3,0,4,0,0,0,4,0,1,0,
9,0,2,0,11,0,3,0,10,0,3,0,10,0,4,0,10,0,5,0,
12,0,2,0,9,0,6,0,9,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,9,0,16,0,1,0,
14,0,9,0,17,0,2,0,15,0,10,0,13,0,11,0,18,0,2,0,
16,0,10,0,14,0,11,0,19,0,3,0,9,0,12,0,4,0,13,0,
0,0,14,0,20,0,5,0,19,0,15,0,13,0,16,0,13,0,17,0,
7,0,18,0,0,0,19,0,21,0,5,0,19,0,15,0,13,0,16,0,
13,0,20,0,7,0,21,0,4,0,22,0,22,0,2,0,13,0,23,0,
7,0,24,0,23,0,4,0,21,0,25,0,22,0,26,0,4,0,27,0,
0,0,14,0,24,0,1,0,4,0,28,0,25,0,2,0,2,0,29,0,
2,0,28,0,26,0,6,0,13,0,30,0,14,0,31,0,24,0,32,0,
25,0,33,0,4,0,34,0,4,0,35,0,27,0,4,0,26,0,36,0,
13,0,37,0,4,0,38,0,0,0,14,0,28,0,4,0,19,0,15,0,
27,0,39,0,7,0,21,0,0,0,14,0,29,0,4,0,17,0,40,0,
19,0,41,0,4,0,42,0,7,0,43,0,30,0,4,0,19,0,15,0,
29,0,44,0,4,0,45,0,7,0,21,0,31,0,3,0,21,0,25,0,
4,0,46,0,0,0,14,0,32,0,3,0,21,0,25,0,4,0,46,0,
0,0,14,0,33,0,5,0,21,0,25,0,13,0,47,0,14,0,48,0,
4,0,49,0,0,0,50,0,34,0,24,0,9,0,51,0,9,0,52,0,
19,0,53,0,9,0,54,0,18,0,55,0,18,0,56,0,14,0,57,0,
14,0,58,0,14,0,59,0,8,0,60,0,8,0,61,0,8,0,62,0,
8,0,63,0,8,0,64,0,8,0,65,0,8,0,66,0,4,0,67,0,
4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0,
4,0,73,0,0,0,14,0,35,0,23,0,9,0,51,0,9,0,52,0,
19,0,53,0,9,0,54,0,17,0,55,0,17,0,56,0,13,0,57,0,
13,0,58,0,13,0,59,0,7,0,60,0,7,0,61,0,7,0,62,0,
7,0,63,0,7,0,64,0,7,0,65,0,7,0,66,0,4,0,67,0,
4,0,68,0,4,0,69,0,4,0,70,0,4,0,71,0,4,0,72,0,
4,0,73,0,36,0,21,0,35,0,74,0,15,0,75,0,13,0,76,0,
13,0,77,0,13,0,78,0,13,0,79,0,13,0,80,0,13,0,81,0,
13,0,82,0,13,0,83,0,13,0,84,0,7,0,85,0,7,0,86,0,
7,0,87,0,7,0,88,0,7,0,89,0,7,0,90,0,7,0,91,0,
7,0,92,0,7,0,93,0,4,0,94,0,37,0,22,0,34,0,74,0,
16,0,75,0,14,0,76,0,14,0,77,0,14,0,78,0,14,0,79,0,
14,0,80,0,14,0,81,0,14,0,82,0,14,0,83,0,14,0,84,0,
8,0,85,0,8,0,86,0,8,0,87,0,8,0,88,0,8,0,89,0,
8,0,90,0,8,0,91,0,8,0,92,0,8,0,93,0,4,0,94,0,
0,0,14,0,38,0,2,0,4,0,95,0,4,0,96,0,39,0,13,0,
40,0,97,0,40,0,98,0,13,0,99,0,13,0,100,0,13,0,101,0,
4,0,102,0,4,0,103,0,4,0,104,0,4,0,105,0,7,0,106,0,
7,0,107,0,4,0,108,0,0,0,19,0,41,0,3,0,39,0,109,0,
13,0,110,0,13,0,111,0,42,0,3,0,39,0,109,0,14,0,110,0,
14,0,111,0,43,0,13,0,39,0,109,0,18,0,112,0,18,0,113,0,
4,0,114,0,4,0,115,0,4,0,116,0,7,0,117,0,7,0,118,0,
7,0,119,0,7,0,120,0,7,0,121,0,7,0,122,0,7,0,123,0,
44,0,13,0,39,0,109,0,17,0,112,0,17,0,113,0,4,0,114,0,
4,0,115,0,4,0,116,0,7,0,117,0,7,0,118,0,7,0,119,0,
7,0,120,0,7,0,121,0,7,0,122,0,7,0,123,0,45,0,11,0,
39,0,109,0,17,0,112,0,17,0,113,0,7,0,124,0,7,0,125,0,
7,0,126,0,7,0,121,0,7,0,122,0,7,0,123,0,7,0,127,0,
0,0,19,0,46,0,9,0,39,0,109,0,17,0,112,0,17,0,113,0,
13,0,-128,0,13,0,-127,0,13,0,-126,0,13,0,-125,0,4,0,-124,0,
4,0,-123,0,47,0,9,0,39,0,109,0,17,0,112,0,17,0,113,0,
7,0,-128,0,7,0,-127,0,7,0,-126,0,7,0,-125,0,4,0,-124,0,
4,0,-123,0,};
int sBulletDNAlen= sizeof(sBulletDNAstr);

View File

@@ -72,6 +72,7 @@ public:
#define BT_COLLISIONOBJECT_CODE MAKE_ID('C','O','B','J')
#define BT_RIGIDBODY_CODE MAKE_ID('R','B','D','Y')
#define BT_CONSTRAINT_CODE MAKE_ID('C','O','N','S')
#define BT_BOXSHAPE_CODE MAKE_ID('B','O','X','S')
#define BT_SHAPE_CODE MAKE_ID('S','H','A','P')
#define BT_ARRAY_CODE MAKE_ID('A','R','A','Y')
@@ -268,18 +269,18 @@ public:
if (VOID_IS_8)
{
//#if _WIN64
#if _WIN64
initDNA((const char*)sBulletDNAstr64,sBulletDNAlen64);
//#else
// btAssert(0);
//#endif
#else
btAssert(0);
#endif
} else
{
//#ifndef _WIN64
#ifndef _WIN64
initDNA((const char*)sBulletDNAstr,sBulletDNAlen);
//#else
// btAssert(0);
//#endif
#else
btAssert(0);
#endif
}
}