Merge lp:esys-particle/esys-particle-win into lp:esys-particle

Proposed by Li Zhiyong
Status: Rejected
Rejected by: Dion Weatherley
Proposed branch: lp:esys-particle/esys-particle-win
Merge into: lp:esys-particle
Diff against target: 154343 lines (+148681/-0)
1113 files modified
trunk/AUTHORS (+33/-0)
trunk/CMakeLists.txt (+89/-0)
trunk/COPYING (+11/-0)
trunk/COPYRIGHT (+11/-0)
trunk/ChangeLog (+15/-0)
trunk/Config/Cpp.am (+14/-0)
trunk/Config/Python.am (+45/-0)
trunk/Config/ax_boost_base.m4 (+219/-0)
trunk/Config/ax_boost_filesystem.m4 (+112/-0)
trunk/Config/ax_boost_python.m4 (+91/-0)
trunk/Config/cppunit.m4 (+80/-0)
trunk/Config/pkg.m4 (+58/-0)
trunk/Config/python.m4 (+193/-0)
trunk/Config/rules.am (+58/-0)
trunk/Doc/FileFormat.ps (+2861/-0)
trunk/Doc/FileFormat.tex (+144/-0)
trunk/Doc/FileFormat.txt (+11/-0)
trunk/Doc/Manual/distutils.sty (+33/-0)
trunk/Doc/Manual/dump-file.tex (+2/-0)
trunk/Doc/Manual/fancyhdr.sty (+329/-0)
trunk/Doc/Manual/fncychap.sty (+433/-0)
trunk/Doc/Manual/geo-file.tex (+135/-0)
trunk/Doc/Manual/howto.cls (+107/-0)
trunk/Doc/Manual/ltxmarkup.sty (+40/-0)
trunk/Doc/Manual/manual.cls (+153/-0)
trunk/Doc/Manual/pypaper.sty (+18/-0)
trunk/Doc/Manual/python.ist (+11/-0)
trunk/Doc/Manual/python.sty (+1309/-0)
trunk/Doc/Manual/underscore.sty (+232/-0)
trunk/Doc/Manual/userman.tex (+1009/-0)
trunk/Doc/Refman/refman.tex (+676/-0)
trunk/Doxyfile (+1428/-0)
trunk/Fields/CMakeLists.txt (+158/-0)
trunk/Fields/CheckedScalarInteractionFieldSlave.h (+49/-0)
trunk/Fields/CheckedScalarInteractionFieldSlave.hpp (+186/-0)
trunk/Fields/CheckedScalarInteractionFieldSlaveTagged.h (+48/-0)
trunk/Fields/CheckedScalarInteractionFieldSlaveTagged.hpp (+120/-0)
trunk/Fields/CheckedVectorInteractionFieldSlave.h (+48/-0)
trunk/Fields/FieldMaster.cpp (+154/-0)
trunk/Fields/FieldMaster.h (+79/-0)
trunk/Fields/FieldSlave.cpp (+18/-0)
trunk/Fields/FieldSlave.h (+40/-0)
trunk/Fields/Fields_dll.h (+14/-0)
trunk/Fields/InteractionFieldMaster.cpp (+513/-0)
trunk/Fields/InteractionFieldMaster.h (+75/-0)
trunk/Fields/InteractionFieldSlave.h (+52/-0)
trunk/Fields/InteractionFieldSlave.hpp (+49/-0)
trunk/Fields/Makefile.am (+81/-0)
trunk/Fields/MaxTrigger.cpp (+51/-0)
trunk/Fields/MaxTrigger.h (+45/-0)
trunk/Fields/ParticleFieldMaster.cpp (+621/-0)
trunk/Fields/ParticleFieldMaster.h (+90/-0)
trunk/Fields/ScalarInteractionFieldSlave.h (+49/-0)
trunk/Fields/ScalarInteractionFieldSlave.hpp (+137/-0)
trunk/Fields/ScalarInteractionFieldSlaveTagged.h (+48/-0)
trunk/Fields/ScalarInteractionFieldSlaveTagged.hpp (+104/-0)
trunk/Fields/ScalarParticleDistributionMaster.cpp (+119/-0)
trunk/Fields/ScalarParticleDistributionMaster.h (+49/-0)
trunk/Fields/ScalarParticleFieldSlave.h (+50/-0)
trunk/Fields/ScalarParticleFieldSlave.hpp (+125/-0)
trunk/Fields/ScalarParticleFieldSlaveTagged.h (+48/-0)
trunk/Fields/ScalarParticleFieldSlaveTagged.hpp (+129/-0)
trunk/Fields/ScalarTriangleFieldMaster.cpp (+156/-0)
trunk/Fields/ScalarTriangleFieldMaster.h (+53/-0)
trunk/Fields/ScalarTriangleFieldSlave.cpp (+72/-0)
trunk/Fields/ScalarTriangleFieldSlave.h (+56/-0)
trunk/Fields/TriggeredVectorParticleFieldMaster.cpp (+122/-0)
trunk/Fields/TriggeredVectorParticleFieldMaster.h (+50/-0)
trunk/Fields/VectorEdge2DFieldSlave.cpp (+78/-0)
trunk/Fields/VectorEdge2DFieldSlave.h (+54/-0)
trunk/Fields/VectorInteractionFieldMaster.cpp (+414/-0)
trunk/Fields/VectorInteractionFieldMaster.h (+74/-0)
trunk/Fields/VectorInteractionFieldSlave.h (+50/-0)
trunk/Fields/VectorInteractionFieldSlave.hpp (+127/-0)
trunk/Fields/VectorParticleFieldSlave.h (+46/-0)
trunk/Fields/VectorParticleFieldSlave.hpp (+55/-0)
trunk/Fields/VectorParticleFieldSlaveTagged.h (+45/-0)
trunk/Fields/VectorParticleFieldSlaveTagged.hpp (+64/-0)
trunk/Fields/VectorTriangleFieldMaster.cpp (+156/-0)
trunk/Fields/VectorTriangleFieldMaster.h (+54/-0)
trunk/Fields/VectorTriangleFieldSlave.cpp (+72/-0)
trunk/Fields/VectorTriangleFieldSlave.h (+55/-0)
trunk/Fields/VectorWallFieldSlave.h (+40/-0)
trunk/Fields/VectorWallFieldSlave.hpp (+50/-0)
trunk/Fields/WallFieldMaster.cpp (+177/-0)
trunk/Fields/WallFieldMaster.h (+50/-0)
trunk/Fields/WallFieldSlave.cpp (+35/-0)
trunk/Fields/WallFieldSlave.h (+44/-0)
trunk/Fields/field_const.h (+39/-0)
trunk/Foundation/BoundingBox.cpp (+14/-0)
trunk/Foundation/BoundingBox.h (+58/-0)
trunk/Foundation/BoundingBox.hpp (+89/-0)
trunk/Foundation/BoundingSphere.cpp (+15/-0)
trunk/Foundation/BoundingSphere.h (+63/-0)
trunk/Foundation/BoundingSphere.hpp (+92/-0)
trunk/Foundation/CMakeLists.txt (+139/-0)
trunk/Foundation/Counter.cpp (+134/-0)
trunk/Foundation/Counter.h (+82/-0)
trunk/Foundation/Error.h (+35/-0)
trunk/Foundation/Foundation_dll.h (+14/-0)
trunk/Foundation/Functional.h (+83/-0)
trunk/Foundation/Makefile.am (+68/-0)
trunk/Foundation/Matrix3.cpp (+236/-0)
trunk/Foundation/Matrix3.h (+103/-0)
trunk/Foundation/Matrix3.hpp (+326/-0)
trunk/Foundation/PathSearcher.cpp (+60/-0)
trunk/Foundation/PathSearcher.h (+42/-0)
trunk/Foundation/PathUtil.cpp (+63/-0)
trunk/Foundation/PathUtil.h (+24/-0)
trunk/Foundation/Quaternion.cpp (+320/-0)
trunk/Foundation/Quaternion.h (+112/-0)
trunk/Foundation/Quaternion.hpp (+322/-0)
trunk/Foundation/RingBuffer.h (+42/-0)
trunk/Foundation/RingBuffer.hpp (+40/-0)
trunk/Foundation/Rng.cpp (+25/-0)
trunk/Foundation/Rng.h (+86/-0)
trunk/Foundation/Rng.hpp (+52/-0)
trunk/Foundation/Runnable.cpp (+22/-0)
trunk/Foundation/Runnable.h (+32/-0)
trunk/Foundation/StlIterator.h (+126/-0)
trunk/Foundation/StringUtil.cpp (+14/-0)
trunk/Foundation/StringUtil.h (+200/-0)
trunk/Foundation/Timer.cpp (+285/-0)
trunk/Foundation/Timer.h (+125/-0)
trunk/Foundation/console.cpp (+425/-0)
trunk/Foundation/console.h (+158/-0)
trunk/Foundation/cube_eq.cpp (+96/-0)
trunk/Foundation/cube_eq.h (+44/-0)
trunk/Foundation/quadtuple.h (+51/-0)
trunk/Foundation/quintuple.h (+51/-0)
trunk/Foundation/realdist.cpp (+94/-0)
trunk/Foundation/realdist.h (+40/-0)
trunk/Foundation/t_list.h (+118/-0)
trunk/Foundation/t_list.hpp (+338/-0)
trunk/Foundation/triplet.h (+50/-0)
trunk/Foundation/vec3.cpp (+33/-0)
trunk/Foundation/vec3.h (+145/-0)
trunk/Foundation/vec3.hpp (+326/-0)
trunk/Geometry/AEdge.cpp (+92/-0)
trunk/Geometry/AEdge.h (+43/-0)
trunk/Geometry/ARandomAssembly.cpp (+244/-0)
trunk/Geometry/ARandomAssembly.h (+73/-0)
trunk/Geometry/BasicInteraction.cpp (+39/-0)
trunk/Geometry/BasicInteraction.h (+86/-0)
trunk/Geometry/BlockGenerator.cpp (+154/-0)
trunk/Geometry/BlockGenerator.h (+94/-0)
trunk/Geometry/BoxPacker.cpp (+14/-0)
trunk/Geometry/BoxPacker.h (+79/-0)
trunk/Geometry/BoxPacker.hpp (+158/-0)
trunk/Geometry/CMakeLists.txt (+256/-0)
trunk/Geometry/CMakeLists.txt.bk08202011 (+258/-0)
trunk/Geometry/CircleBoxVolCalculator.cpp (+21/-0)
trunk/Geometry/CircleBoxVolCalculator.h (+49/-0)
trunk/Geometry/CircularNeighbourTable.cpp (+21/-0)
trunk/Geometry/CircularNeighbourTable.h (+118/-0)
trunk/Geometry/CircularNeighbourTable.hpp (+322/-0)
trunk/Geometry/ClosePackBlock.cpp (+15/-0)
trunk/Geometry/ClosePackBlock.h (+89/-0)
trunk/Geometry/ClosePackBlock.hpp (+119/-0)
trunk/Geometry/ClosePackIterator.cpp (+35/-0)
trunk/Geometry/ClosePackIterator.h (+129/-0)
trunk/Geometry/ClosePackIterator.hpp (+196/-0)
trunk/Geometry/ClosePackOrientation.h (+38/-0)
trunk/Geometry/Corner.cpp (+122/-0)
trunk/Geometry/Corner.h (+64/-0)
trunk/Geometry/Corner2D.cpp (+130/-0)
trunk/Geometry/Corner2D.h (+57/-0)
trunk/Geometry/CubicBlock.cpp (+15/-0)
trunk/Geometry/CubicBlock.h (+44/-0)
trunk/Geometry/CubicBlock.hpp (+35/-0)
trunk/Geometry/CubicBlockIterator.cpp (+21/-0)
trunk/Geometry/CubicBlockIterator.h (+62/-0)
trunk/Geometry/CubicBlockIterator.hpp (+109/-0)
trunk/Geometry/CubicBoxPacker.cpp (+14/-0)
trunk/Geometry/CubicBoxPacker.h (+81/-0)
trunk/Geometry/CubicBoxPacker.hpp (+126/-0)
trunk/Geometry/DistConnections.cpp (+14/-0)
trunk/Geometry/DistConnections.h (+165/-0)
trunk/Geometry/DistConnections.hpp (+275/-0)
trunk/Geometry/Edge.cpp (+189/-0)
trunk/Geometry/Edge.h (+58/-0)
trunk/Geometry/Edge2D.cpp (+164/-0)
trunk/Geometry/Edge2D.h (+79/-0)
trunk/Geometry/FaultedBlock2d.cpp (+251/-0)
trunk/Geometry/FaultedBlock2d.h (+55/-0)
trunk/Geometry/GeometryInfo.cpp (+333/-0)
trunk/Geometry/GeometryInfo.h (+128/-0)
trunk/Geometry/Geometry_dll.h (+14/-0)
trunk/Geometry/GougeBlock3D.cpp (+888/-0)
trunk/Geometry/GougeBlock3D.h (+288/-0)
trunk/Geometry/GougeConfig.cpp (+14/-0)
trunk/Geometry/GougeConfig.h (+520/-0)
trunk/Geometry/GougeConfig.hpp (+1153/-0)
trunk/Geometry/Grain.cpp (+14/-0)
trunk/Geometry/Grain.h (+64/-0)
trunk/Geometry/Grain.hpp (+90/-0)
trunk/Geometry/GrainCollection.cpp (+14/-0)
trunk/Geometry/GrainCollection.h (+162/-0)
trunk/Geometry/GrainCollection.hpp (+154/-0)
trunk/Geometry/GrainRandomBoxPacker.cpp (+14/-0)
trunk/Geometry/GrainRandomBoxPacker.h (+121/-0)
trunk/Geometry/GrainRandomBoxPacker.hpp (+217/-0)
trunk/Geometry/GranularGougeBlock3D.cpp (+193/-0)
trunk/Geometry/GranularGougeBlock3D.h (+68/-0)
trunk/Geometry/GridIterator.cpp (+52/-0)
trunk/Geometry/GridIterator.h (+286/-0)
trunk/Geometry/HexagBlock.cpp (+15/-0)
trunk/Geometry/HexagBlock.h (+43/-0)
trunk/Geometry/HexagBlock.hpp (+35/-0)
trunk/Geometry/HexagBlockIterator.cpp (+21/-0)
trunk/Geometry/HexagBlockIterator.h (+62/-0)
trunk/Geometry/HexagBlockIterator.hpp (+79/-0)
trunk/Geometry/IntersectionVolCalculator.cpp (+22/-0)
trunk/Geometry/IntersectionVolCalculator.h (+238/-0)
trunk/Geometry/IntersectionVolCalculator.hpp (+1188/-0)
trunk/Geometry/LayeredBlock.cpp (+45/-0)
trunk/Geometry/LayeredBlock.h (+45/-0)
trunk/Geometry/Line.cpp (+33/-0)
trunk/Geometry/Line.h (+41/-0)
trunk/Geometry/LineSegment.cpp (+84/-0)
trunk/Geometry/LineSegment.h (+43/-0)
trunk/Geometry/Makefile.am (+75/-0)
trunk/Geometry/NeighbourTable.cpp (+21/-0)
trunk/Geometry/NeighbourTable.h (+118/-0)
trunk/Geometry/NeighbourTable.hpp (+327/-0)
trunk/Geometry/Packer.cpp (+14/-0)
trunk/Geometry/Packer.h (+98/-0)
trunk/Geometry/Packer.hpp (+156/-0)
trunk/Geometry/PackerGenerators.cpp (+14/-0)
trunk/Geometry/PackerGenerators.h (+180/-0)
trunk/Geometry/PackerGenerators.hpp (+209/-0)
trunk/Geometry/PaddedBlock3D.cpp (+247/-0)
trunk/Geometry/PaddedBlock3D.h (+44/-0)
trunk/Geometry/ParticleCollection.cpp (+15/-0)
trunk/Geometry/ParticleCollection.h (+169/-0)
trunk/Geometry/ParticleCollection.hpp (+154/-0)
trunk/Geometry/ParticleComparer.cpp (+14/-0)
trunk/Geometry/ParticleComparer.h (+40/-0)
trunk/Geometry/ParticleComparer.hpp (+47/-0)
trunk/Geometry/ParticleFitter.cpp (+22/-0)
trunk/Geometry/ParticleFitter.h (+514/-0)
trunk/Geometry/ParticleGenerator.cpp (+60/-0)
trunk/Geometry/ParticleGenerator.h (+56/-0)
trunk/Geometry/Plane.cpp (+100/-0)
trunk/Geometry/Plane.h (+66/-0)
trunk/Geometry/PointCloud.cpp (+109/-0)
trunk/Geometry/PointCloud.h (+48/-0)
trunk/Geometry/RandomAssembly2D.cpp (+230/-0)
trunk/Geometry/RandomAssembly2D.h (+62/-0)
trunk/Geometry/RandomAssembly3D.cpp (+247/-0)
trunk/Geometry/RandomAssembly3D.h (+62/-0)
trunk/Geometry/RandomBlock.cpp (+247/-0)
trunk/Geometry/RandomBlock.h (+62/-0)
trunk/Geometry/RandomBlock3D.cpp (+269/-0)
trunk/Geometry/RandomBlock3D.h (+66/-0)
trunk/Geometry/RandomBlockGenerator.cpp (+229/-0)
trunk/Geometry/RandomBlockGenerator.h (+86/-0)
trunk/Geometry/RandomBoxPacker.cpp (+14/-0)
trunk/Geometry/RandomBoxPacker.h (+190/-0)
trunk/Geometry/RandomBoxPacker.hpp (+501/-0)
trunk/Geometry/RandomSpherePacker.cpp (+14/-0)
trunk/Geometry/RandomSpherePacker.h (+179/-0)
trunk/Geometry/RandomSpherePacker.hpp (+412/-0)
trunk/Geometry/RectPatch.cpp (+103/-0)
trunk/Geometry/RectPatch.h (+39/-0)
trunk/Geometry/RegularBlockGenerator.cpp (+53/-0)
trunk/Geometry/RegularBlockGenerator.h (+53/-0)
trunk/Geometry/RoughPaddedBlock3d.cpp (+229/-0)
trunk/Geometry/RoughPaddedBlock3d.h (+56/-0)
trunk/Geometry/SimpleBlock.cpp (+15/-0)
trunk/Geometry/SimpleBlock.h (+95/-0)
trunk/Geometry/SimpleBlock.hpp (+134/-0)
trunk/Geometry/SimpleNTable.cpp (+250/-0)
trunk/Geometry/SimpleNTable.h (+86/-0)
trunk/Geometry/SimpleNTable3D.cpp (+248/-0)
trunk/Geometry/SimpleNTable3D.h (+81/-0)
trunk/Geometry/SimpleParticle.cpp (+17/-0)
trunk/Geometry/SimpleParticle.h (+79/-0)
trunk/Geometry/SimpleParticle.hpp (+128/-0)
trunk/Geometry/SimpleParticleData.cpp (+180/-0)
trunk/Geometry/SimpleParticleData.h (+92/-0)
trunk/Geometry/SimpleParticleData.hpp (+195/-0)
trunk/Geometry/SphAggGougeBlock.cpp (+266/-0)
trunk/Geometry/SphAggGougeBlock.h (+86/-0)
trunk/Geometry/SphAggGougeBlock.hpp (+50/-0)
trunk/Geometry/Sphere.h (+40/-0)
trunk/Geometry/Sphere2d.cpp (+239/-0)
trunk/Geometry/Sphere2d.h (+43/-0)
trunk/Geometry/Sphere3d.cpp (+210/-0)
trunk/Geometry/Sphere3d.h (+39/-0)
trunk/Geometry/SphereBlockGenerator.cpp (+351/-0)
trunk/Geometry/SphereBlockGenerator.h (+75/-0)
trunk/Geometry/SphereBoxVolCalculator.cpp (+21/-0)
trunk/Geometry/SphereBoxVolCalculator.h (+49/-0)
trunk/Geometry/SphereFitter.cpp (+14/-0)
trunk/Geometry/SphereFitter.h (+749/-0)
trunk/Geometry/SphereFitter.hpp (+19/-0)
trunk/Geometry/SphereNeighbours.cpp (+14/-0)
trunk/Geometry/SphereNeighbours.h (+153/-0)
trunk/Geometry/SphereNeighbours.hpp (+276/-0)
trunk/Geometry/SplitBlock.cpp (+94/-0)
trunk/Geometry/SplitBlock.h (+40/-0)
trunk/Geometry/SplitBlock3D.cpp (+158/-0)
trunk/Geometry/SplitBlock3D.h (+42/-0)
trunk/Geometry/Triangle.cpp (+317/-0)
trunk/Geometry/Triangle.h (+98/-0)
trunk/Geometry/Vec3L.cpp (+21/-0)
trunk/Geometry/Vec3L.h (+165/-0)
trunk/Geometry/VtkXmlWriter.cpp (+346/-0)
trunk/Geometry/vtkxmlwriter.h (+100/-0)
trunk/INSTALL (+15/-0)
trunk/MainBE/CMakeLists.txt (+54/-0)
trunk/MainBE/Makefile.am (+36/-0)
trunk/MainBE/Worker.cpp (+83/-0)
trunk/MainBE/version.h (+21/-0)
trunk/Makefile.am (+22/-0)
trunk/Model/ABCDamping.h (+50/-0)
trunk/Model/ABCDamping.hpp (+96/-0)
trunk/Model/ABCDampingIGP.cpp (+63/-0)
trunk/Model/ABCDampingIGP.h (+45/-0)
trunk/Model/AdhesiveFriction.cpp (+124/-0)
trunk/Model/AdhesiveFriction.h (+66/-0)
trunk/Model/BCorner2DInteraction.cpp (+140/-0)
trunk/Model/BCorner2DInteraction.h (+63/-0)
trunk/Model/BEdge2DInteraction.cpp (+116/-0)
trunk/Model/BEdge2DInteraction.h (+68/-0)
trunk/Model/BMesh2DIP.h (+74/-0)
trunk/Model/BMesh2DInteraction.h (+35/-0)
trunk/Model/BMesh2DInteractionCpData.cpp (+63/-0)
trunk/Model/BMesh2DInteractionCpData.h (+57/-0)
trunk/Model/BTriMeshIP.cpp (+91/-0)
trunk/Model/BTriMeshIP.h (+89/-0)
trunk/Model/BTriMeshInteraction.h (+32/-0)
trunk/Model/BTriMeshInteractionCpData.cpp (+80/-0)
trunk/Model/BTriMeshInteractionCpData.h (+43/-0)
trunk/Model/BTriangleInteraction.cpp (+116/-0)
trunk/Model/BTriangleInteraction.h (+69/-0)
trunk/Model/BWallInteraction.cpp (+15/-0)
trunk/Model/BWallInteraction.h (+46/-0)
trunk/Model/BWallInteraction.hpp (+62/-0)
trunk/Model/BWallInteractionGroup.cpp (+67/-0)
trunk/Model/BWallInteractionGroup.h (+91/-0)
trunk/Model/BWallInteractionGroup.hpp (+197/-0)
trunk/Model/BasicParticle.cpp (+46/-0)
trunk/Model/BasicParticle.h (+81/-0)
trunk/Model/BodyForceGroup.cpp (+63/-0)
trunk/Model/BodyForceGroup.h (+119/-0)
trunk/Model/BodyForceGroup.hpp (+66/-0)
trunk/Model/BondedInteraction.cpp (+311/-0)
trunk/Model/BondedInteraction.h (+128/-0)
trunk/Model/BondedInteractionCpData.cpp (+100/-0)
trunk/Model/BondedInteractionCpData.h (+69/-0)
trunk/Model/CMakeLists.txt (+360/-0)
trunk/Model/CMakeLists.txt.bk (+397/-0)
trunk/Model/CappedBondedInteraction.cpp (+189/-0)
trunk/Model/CappedBondedInteraction.h (+93/-0)
trunk/Model/Damping.h (+88/-0)
trunk/Model/Damping.hpp (+225/-0)
trunk/Model/DampingIGP.cpp (+75/-0)
trunk/Model/DampingIGP.h (+63/-0)
trunk/Model/ECorner2DInteraction.cpp (+60/-0)
trunk/Model/ECorner2DInteraction.h (+50/-0)
trunk/Model/ECornerInteraction.cpp (+67/-0)
trunk/Model/ECornerInteraction.h (+51/-0)
trunk/Model/EEdge2DInteraction.cpp (+65/-0)
trunk/Model/EEdge2DInteraction.h (+49/-0)
trunk/Model/EEdgeInteraction.cpp (+74/-0)
trunk/Model/EEdgeInteraction.h (+49/-0)
trunk/Model/EMesh2DInteraction.h (+27/-0)
trunk/Model/ETriMeshIP.h (+72/-0)
trunk/Model/ETriMeshInteraction.h (+30/-0)
trunk/Model/ETriangleInteraction.cpp (+69/-0)
trunk/Model/ETriangleInteraction.h (+52/-0)
trunk/Model/EWallInteraction.cpp (+15/-0)
trunk/Model/EWallInteraction.h (+47/-0)
trunk/Model/EWallInteraction.hpp (+112/-0)
trunk/Model/EWallInteractionGroup.cpp (+62/-0)
trunk/Model/EWallInteractionGroup.h (+84/-0)
trunk/Model/EWallInteractionGroup.hpp (+165/-0)
trunk/Model/ElasticInteraction.cpp (+171/-0)
trunk/Model/ElasticInteraction.h (+86/-0)
trunk/Model/ElasticInteractionGroup.cpp (+33/-0)
trunk/Model/ElasticInteractionGroup.h (+60/-0)
trunk/Model/ElasticInteractionGroup.hpp (+139/-0)
trunk/Model/FractalFriction.cpp (+218/-0)
trunk/Model/FractalFriction.h (+78/-0)
trunk/Model/FrictionInteraction.cpp (+669/-0)
trunk/Model/FrictionInteraction.h (+123/-0)
trunk/Model/HertzianElasticInteraction.cpp (+137/-0)
trunk/Model/HertzianElasticInteraction.h (+74/-0)
trunk/Model/HertzianViscoElasticFrictionInteraction.cpp (+745/-0)
trunk/Model/HertzianViscoElasticFrictionInteraction.h (+154/-0)
trunk/Model/HertzianViscoElasticInteraction.cpp (+182/-0)
trunk/Model/HertzianViscoElasticInteraction.h (+86/-0)
trunk/Model/IGParam.cpp (+31/-0)
trunk/Model/IGParam.h (+53/-0)
trunk/Model/Interaction.cpp (+97/-0)
trunk/Model/Interaction.h (+118/-0)
trunk/Model/InteractionGroup.h (+73/-0)
trunk/Model/InteractionGroup.hpp (+17/-0)
trunk/Model/InteractionParam.cpp (+35/-0)
trunk/Model/InteractionParam.h (+46/-0)
trunk/Model/LinearDashpotInteraction.cpp (+133/-0)
trunk/Model/LinearDashpotInteraction.h (+74/-0)
trunk/Model/LocalDamping.h (+81/-0)
trunk/Model/LocalDamping.hpp (+218/-0)
trunk/Model/LocalDampingIGP.cpp (+66/-0)
trunk/Model/LocalDampingIGP.h (+55/-0)
trunk/Model/Makefile.am (+185/-0)
trunk/Model/Mesh2D.cpp (+251/-0)
trunk/Model/Mesh2D.h (+85/-0)
trunk/Model/Mesh2D.hpp (+51/-0)
trunk/Model/MeshData.cpp (+119/-0)
trunk/Model/MeshData.h (+54/-0)
trunk/Model/MeshData2D.cpp (+95/-0)
trunk/Model/MeshData2D.h (+53/-0)
trunk/Model/Particle.cpp (+499/-0)
trunk/Model/Particle.h (+193/-0)
trunk/Model/RotBondedInteraction.cpp (+684/-0)
trunk/Model/RotBondedInteraction.h (+174/-0)
trunk/Model/RotDamping.h (+84/-0)
trunk/Model/RotDamping.hpp (+185/-0)
trunk/Model/RotElasticInteraction.cpp (+188/-0)
trunk/Model/RotElasticInteraction.h (+91/-0)
trunk/Model/RotElasticInteractionGroup.cpp (+50/-0)
trunk/Model/RotElasticInteractionGroup.h (+59/-0)
trunk/Model/RotElasticInteractionGroup.hpp (+131/-0)
trunk/Model/RotFricInteraction.cpp (+580/-0)
trunk/Model/RotFricInteraction.h (+154/-0)
trunk/Model/RotLocalDamping.h (+81/-0)
trunk/Model/RotLocalDamping.hpp (+218/-0)
trunk/Model/RotPairInteraction.cpp (+70/-0)
trunk/Model/RotPairInteraction.h (+73/-0)
trunk/Model/RotParticle.cpp (+502/-0)
trunk/Model/RotParticle.h (+241/-0)
trunk/Model/RotParticleVi.cpp (+598/-0)
trunk/Model/RotParticleVi.h (+246/-0)
trunk/Model/RotThermBondedInteraction.cpp (+1005/-0)
trunk/Model/RotThermBondedInteraction.h (+160/-0)
trunk/Model/RotThermElasticInteraction.cpp (+244/-0)
trunk/Model/RotThermElasticInteraction.h (+106/-0)
trunk/Model/RotThermElasticInteractionGroup.cpp (+55/-0)
trunk/Model/RotThermElasticInteractionGroup.h (+54/-0)
trunk/Model/RotThermElasticInteractionGroup.hpp (+139/-0)
trunk/Model/RotThermFricInteraction.cpp (+541/-0)
trunk/Model/RotThermFricInteraction.h (+139/-0)
trunk/Model/RotThermPairInteraction.cpp (+69/-0)
trunk/Model/RotThermPairInteraction.h (+64/-0)
trunk/Model/RotThermParticle.cpp (+579/-0)
trunk/Model/RotThermParticle.h (+242/-0)
trunk/Model/ShortBondedInteraction.cpp (+139/-0)
trunk/Model/ShortBondedInteraction.h (+68/-0)
trunk/Model/ShortBondedInteractionCpData.cpp (+74/-0)
trunk/Model/ShortBondedInteractionCpData.h (+45/-0)
trunk/Model/SoftBWallInteraction.cpp (+15/-0)
trunk/Model/SoftBWallInteraction.h (+44/-0)
trunk/Model/SoftBWallInteraction.hpp (+73/-0)
trunk/Model/SoftBWallInteractionGroup.cpp (+84/-0)
trunk/Model/SoftBWallInteractionGroup.h (+86/-0)
trunk/Model/SoftBWallInteractionGroup.hpp (+88/-0)
trunk/Model/TempPartStore.h (+72/-0)
trunk/Model/TempPartStore.hpp (+109/-0)
trunk/Model/ThermParticle.cpp (+76/-0)
trunk/Model/ThermParticle.h (+110/-0)
trunk/Model/TriMesh.cpp (+322/-0)
trunk/Model/TriMesh.h (+99/-0)
trunk/Model/TriMesh.hpp (+51/-0)
trunk/Model/VWFrictionInteraction.cpp (+230/-0)
trunk/Model/VWFrictionInteraction.h (+64/-0)
trunk/Model/ViscWallIG.cpp (+65/-0)
trunk/Model/ViscWallIG.h (+90/-0)
trunk/Model/ViscWallIG.hpp (+183/-0)
trunk/Model/ViscWallInteraction.cpp (+15/-0)
trunk/Model/ViscWallInteraction.h (+45/-0)
trunk/Model/ViscWallInteraction.hpp (+68/-0)
trunk/Model/Wall.cpp (+144/-0)
trunk/Model/Wall.h (+88/-0)
trunk/Model/WallIG.h (+77/-0)
trunk/Model/WallInteraction.cpp (+15/-0)
trunk/Model/WallInteraction.h (+56/-0)
trunk/Model/WallInteraction.hpp (+39/-0)
trunk/Model/brokenEWallInteractionGroup.h (+83/-0)
trunk/Model/brokenEWallInteractionGroup.hpp (+143/-0)
trunk/NEWS (+15/-0)
trunk/Parallel/ASubLattice.cpp (+42/-0)
trunk/Parallel/ASubLattice.h (+166/-0)
trunk/Parallel/BMesh2D_cmd.cpp (+32/-0)
trunk/Parallel/BMesh2D_cmd.h (+35/-0)
trunk/Parallel/BroadCast_cmd.cpp (+48/-0)
trunk/Parallel/BroadCast_cmd.h (+86/-0)
trunk/Parallel/BroadCast_cmd.hpp (+30/-0)
trunk/Parallel/CMakeLists.txt (+200/-0)
trunk/Parallel/CMakeLists.txt.bk (+235/-0)
trunk/Parallel/CheckPointController.cpp (+434/-0)
trunk/Parallel/CheckPointController.h (+215/-0)
trunk/Parallel/CheckPointInfo.cpp (+167/-0)
trunk/Parallel/CheckPointInfo.h (+67/-0)
trunk/Parallel/CheckPointLoader.cpp (+21/-0)
trunk/Parallel/CheckPointLoader.h (+131/-0)
trunk/Parallel/CheckPointParams.cpp (+63/-0)
trunk/Parallel/CheckPointParams.h (+65/-0)
trunk/Parallel/CheckPointable.cpp (+33/-0)
trunk/Parallel/CheckPointable.h (+43/-0)
trunk/Parallel/CheckPointer.cpp (+117/-0)
trunk/Parallel/CheckPointer.h (+71/-0)
trunk/Parallel/GeometryReader.cpp (+291/-0)
trunk/Parallel/GeometryReader.h (+232/-0)
trunk/Parallel/GetRef_cmd.cpp (+38/-0)
trunk/Parallel/GetRef_cmd.h (+46/-0)
trunk/Parallel/IterativeReader.h (+130/-0)
trunk/Parallel/IterativeReader.hpp (+122/-0)
trunk/Parallel/LatticeMaster.cpp (+3303/-0)
trunk/Parallel/LatticeMaster.h (+605/-0)
trunk/Parallel/LatticeMaster.hpp (+317/-0)
trunk/Parallel/LatticeParam.cpp (+69/-0)
trunk/Parallel/LatticeParam.h (+59/-0)
trunk/Parallel/Makefile.am (+113/-0)
trunk/Parallel/Mesh2DReader.cpp (+138/-0)
trunk/Parallel/Mesh2DReader.h (+89/-0)
trunk/Parallel/Mesh2DReaderImpl.cpp (+60/-0)
trunk/Parallel/Mesh2DReaderImpl.h (+63/-0)
trunk/Parallel/MeshReader.cpp (+127/-0)
trunk/Parallel/MeshReader.h (+89/-0)
trunk/Parallel/MeshReaderImpl.cpp (+61/-0)
trunk/Parallel/MeshReaderImpl.h (+63/-0)
trunk/Parallel/MpiInfo.cpp (+39/-0)
trunk/Parallel/MpiInfo.h (+47/-0)
trunk/Parallel/MpiWrap.h (+30/-0)
trunk/Parallel/ParallelModel_dll.h (+14/-0)
trunk/Parallel/RankAndComm.h (+43/-0)
trunk/Parallel/RotSubLattice.h (+46/-0)
trunk/Parallel/RotSubLattice.hpp (+252/-0)
trunk/Parallel/SubLattice.cpp (+13/-0)
trunk/Parallel/SubLattice.h (+260/-0)
trunk/Parallel/SubLattice.hpp (+3166/-0)
trunk/Parallel/SubLatticeControler.cpp (+661/-0)
trunk/Parallel/SubLatticeControler.h (+96/-0)
trunk/Parallel/mpi_tag_defs.h (+35/-0)
trunk/Parallel/mpia2abuf.cpp (+111/-0)
trunk/Parallel/mpia2abuf.h (+52/-0)
trunk/Parallel/mpibarrier.cpp (+48/-0)
trunk/Parallel/mpibarrier.h (+46/-0)
trunk/Parallel/mpibuf.cpp (+205/-0)
trunk/Parallel/mpibuf.h (+115/-0)
trunk/Parallel/mpicmdbuf.cpp (+55/-0)
trunk/Parallel/mpicmdbuf.h (+47/-0)
trunk/Parallel/mpisgbuf.cpp (+318/-0)
trunk/Parallel/mpisgbuf.h (+147/-0)
trunk/Parallel/mpisgvbuf.cpp (+414/-0)
trunk/Parallel/mpisgvbuf.h (+98/-0)
trunk/Parallel/mpivbuf.cpp (+270/-0)
trunk/Parallel/mpivbuf.h (+70/-0)
trunk/Parallel/shake_mpi_defs.h (+18/-0)
trunk/Parallel/slave_main.cpp (+26/-0)
trunk/Parallel/sublattice_cmd.h (+113/-0)
trunk/Parallel/vec3_mpi.cpp (+27/-0)
trunk/Parallel/vec3_mpi.h (+29/-0)
trunk/Parallel/vecpack.cpp (+45/-0)
trunk/ParallelModel/CMakeLists.txt (+234/-0)
trunk/Python/BoostPythonUtil/CMakeLists.txt (+47/-0)
trunk/Python/BoostPythonUtil/ListConverter.cpp (+15/-0)
trunk/Python/BoostPythonUtil/ListConverter.h (+100/-0)
trunk/Python/BoostPythonUtil/Makefile.am (+23/-0)
trunk/Python/BoostPythonUtil/PythonIterIterator.h (+49/-0)
trunk/Python/BoostPythonUtil/PythonIterIterator.hpp (+64/-0)
trunk/Python/BoostPythonUtil/Util.h (+38/-0)
trunk/Python/CMakeLists.txt (+117/-0)
trunk/Python/Makefile.am (+60/-0)
trunk/Python/MpiPython/CMakeLists.txt (+61/-0)
trunk/Python/MpiPython/Makefile.am (+40/-0)
trunk/Python/MpiPython/MpiPythonMain.cpp (+67/-0)
trunk/Python/MpiPython/lamexecLsm (+33/-0)
trunk/Python/MpiPython/lsmpython (+24/-0)
trunk/Python/MpiPython/mptrunLsm (+24/-0)
trunk/Python/MpiPython/mptrunLsmFile (+22/-0)
trunk/Python/epydoc/CMakeLists.txt (+73/-0)
trunk/Python/epydoc/Makefile.am (+62/-0)
trunk/Python/epydoc/accessBlue.css (+99/-0)
trunk/Python/esys/CMakeLists.txt (+29/-0)
trunk/Python/esys/Makefile.am (+19/-0)
trunk/Python/esys/__init__.py (+13/-0)
trunk/Python/esys/lsm/BondInteractionGroupPy.cpp (+125/-0)
trunk/Python/esys/lsm/BondInteractionGroupPy.h (+71/-0)
trunk/Python/esys/lsm/BondedMesh2DPrmsPy.cpp (+129/-0)
trunk/Python/esys/lsm/BondedMesh2DPrmsPy.h (+64/-0)
trunk/Python/esys/lsm/BondedTriMeshPrmsPy.cpp (+127/-0)
trunk/Python/esys/lsm/BondedTriMeshPrmsPy.h (+70/-0)
trunk/Python/esys/lsm/CMakeLists.txt (+187/-0)
trunk/Python/esys/lsm/CMakeLists.txt.bk08202011 (+182/-0)
trunk/Python/esys/lsm/CheckPointParamsPy.cpp (+118/-0)
trunk/Python/esys/lsm/CheckPointParamsPy.h (+58/-0)
trunk/Python/esys/lsm/ElasticMesh2DPrmsPy.cpp (+99/-0)
trunk/Python/esys/lsm/ElasticMesh2DPrmsPy.h (+57/-0)
trunk/Python/esys/lsm/ElasticTriMeshPrmsPy.cpp (+67/-0)
trunk/Python/esys/lsm/ElasticTriMeshPrmsPy.h (+44/-0)
trunk/Python/esys/lsm/ExportModuleLsm.cpp (+46/-0)
trunk/Python/esys/lsm/FieldSaverPrmsPy.cpp (+138/-0)
trunk/Python/esys/lsm/FieldSaverPrmsPy.h (+83/-0)
trunk/Python/esys/lsm/InteractionFieldSaverPrmsPy.cpp (+383/-0)
trunk/Python/esys/lsm/InteractionFieldSaverPrmsPy.h (+133/-0)
trunk/Python/esys/lsm/InteractionGroupPy.cpp (+62/-0)
trunk/Python/esys/lsm/InteractionGroupPy.h (+64/-0)
trunk/Python/esys/lsm/InteractionParamsPy.cpp (+1697/-0)
trunk/Python/esys/lsm/InteractionParamsPy.h (+486/-0)
trunk/Python/esys/lsm/LmParticleAdder.cpp (+14/-0)
trunk/Python/esys/lsm/LmParticleAdder.h (+39/-0)
trunk/Python/esys/lsm/LmParticleAdder.hpp (+150/-0)
trunk/Python/esys/lsm/Logging.py (+30/-0)
trunk/Python/esys/lsm/LsmMpiPy.cpp (+2705/-0)
trunk/Python/esys/lsm/LsmMpiPy.h (+364/-0)
trunk/Python/esys/lsm/Makefile.am (+101/-0)
trunk/Python/esys/lsm/MeshBuildParamsPy.cpp (+84/-0)
trunk/Python/esys/lsm/MeshBuildParamsPy.h (+54/-0)
trunk/Python/esys/lsm/ParticleFieldSaverPrmsPy.cpp (+281/-0)
trunk/Python/esys/lsm/ParticleFieldSaverPrmsPy.h (+118/-0)
trunk/Python/esys/lsm/ParticleIdPairPy.cpp (+136/-0)
trunk/Python/esys/lsm/ParticleIdPairPy.h (+58/-0)
trunk/Python/esys/lsm/ParticleIdPairSetPy.cpp (+39/-0)
trunk/Python/esys/lsm/ParticleIdPairSetPy.h (+29/-0)
trunk/Python/esys/lsm/ParticleIdPairVectorPy.cpp (+39/-0)
trunk/Python/esys/lsm/ParticleIdPairVectorPy.h (+29/-0)
trunk/Python/esys/lsm/ParticlePy.cpp (+146/-0)
trunk/Python/esys/lsm/ParticlePy.h (+55/-0)
trunk/Python/esys/lsm/RotParticlePy.cpp (+197/-0)
trunk/Python/esys/lsm/RotParticlePy.h (+79/-0)
trunk/Python/esys/lsm/RotParticleViPy.cpp (+255/-0)
trunk/Python/esys/lsm/RotParticleViPy.h (+93/-0)
trunk/Python/esys/lsm/RotThermalParticlePy.cpp (+273/-0)
trunk/Python/esys/lsm/RotThermalParticlePy.h (+89/-0)
trunk/Python/esys/lsm/RunnablePy.cpp (+71/-0)
trunk/Python/esys/lsm/RunnablePy.h (+32/-0)
trunk/Python/esys/lsm/TriggerPrmsPy.cpp (+47/-0)
trunk/Python/esys/lsm/TriggerPrmsPy.h (+39/-0)
trunk/Python/esys/lsm/WallFieldSaverPrmsPy.cpp (+362/-0)
trunk/Python/esys/lsm/WallFieldSaverPrmsPy.h (+115/-0)
trunk/Python/esys/lsm/WallPrmsPy.cpp (+212/-0)
trunk/Python/esys/lsm/WallPrmsPy.h (+86/-0)
trunk/Python/esys/lsm/__init__.py (+61/-0)
trunk/Python/esys/lsm/benchmarks/BondedBlock.py (+143/-0)
trunk/Python/esys/lsm/benchmarks/CMakeLists.txt (+37/-0)
trunk/Python/esys/lsm/benchmarks/Gravity.py (+141/-0)
trunk/Python/esys/lsm/benchmarks/Makefile.am (+23/-0)
trunk/Python/esys/lsm/benchmarks/Util.py (+211/-0)
trunk/Python/esys/lsm/benchmarks/__init__.py (+18/-0)
trunk/Python/esys/lsm/benchmarks/compress/CMakeLists.txt (+30/-0)
trunk/Python/esys/lsm/benchmarks/compress/Makefile.am (+19/-0)
trunk/Python/esys/lsm/benchmarks/compress/__init__.py (+15/-0)
trunk/Python/esys/lsm/benchmarks/compress/compbench.py (+89/-0)
trunk/Python/esys/lsm/benchmarks/gouge2d/CMakeLists.txt (+30/-0)
trunk/Python/esys/lsm/benchmarks/gouge2d/Makefile.am (+19/-0)
trunk/Python/esys/lsm/benchmarks/gouge2d/__init__.py (+12/-0)
trunk/Python/esys/lsm/benchmarks/gouge2d/gengouge.sh (+8/-0)
trunk/Python/esys/lsm/benchmarks/gouge2d/gouge2dbench.py (+122/-0)
trunk/Python/esys/lsm/doc/CMakeLists.txt (+35/-0)
trunk/Python/esys/lsm/doc/GravityTut.py (+314/-0)
trunk/Python/esys/lsm/doc/InitialConfigTut.py (+380/-0)
trunk/Python/esys/lsm/doc/Installation.py (+110/-0)
trunk/Python/esys/lsm/doc/Makefile.am (+24/-0)
trunk/Python/esys/lsm/doc/Overview.py (+155/-0)
trunk/Python/esys/lsm/doc/Util.py (+46/-0)
trunk/Python/esys/lsm/doc/VisualisationTut.py (+210/-0)
trunk/Python/esys/lsm/doc/__init__.py (+17/-0)
trunk/Python/esys/lsm/examples/CMakeLists.txt (+36/-0)
trunk/Python/esys/lsm/examples/DisplacementPlotter.py (+206/-0)
trunk/Python/esys/lsm/examples/Makefile.am (+22/-0)
trunk/Python/esys/lsm/examples/Wave2d.py (+328/-0)
trunk/Python/esys/lsm/examples/__init__.py (+253/-0)
trunk/Python/esys/lsm/examples/simple/CMakeLists.txt (+29/-0)
trunk/Python/esys/lsm/examples/simple/Makefile.am (+18/-0)
trunk/Python/esys/lsm/examples/simple/__init__.py (+15/-0)
trunk/Python/esys/lsm/examples/simple/compress3d.py (+98/-0)
trunk/Python/esys/lsm/examples/waveprop/CMakeLists.txt (+32/-0)
trunk/Python/esys/lsm/examples/waveprop/FixedLidWaveSim.py (+59/-0)
trunk/Python/esys/lsm/examples/waveprop/Makefile.am (+21/-0)
trunk/Python/esys/lsm/examples/waveprop/OptionParser.py (+291/-0)
trunk/Python/esys/lsm/examples/waveprop/WaveSim.py (+590/-0)
trunk/Python/esys/lsm/examples/waveprop/__init__.py (+17/-0)
trunk/Python/esys/lsm/geometry/CMakeLists.txt (+78/-0)
trunk/Python/esys/lsm/geometry/CubicBlockPy.cpp (+121/-0)
trunk/Python/esys/lsm/geometry/CubicBlockPy.h (+49/-0)
trunk/Python/esys/lsm/geometry/DistConnectionsPy.cpp (+295/-0)
trunk/Python/esys/lsm/geometry/DistConnectionsPy.h (+27/-0)
trunk/Python/esys/lsm/geometry/ExportModuleGeometry.cpp (+49/-0)
trunk/Python/esys/lsm/geometry/GeometryPy_dll.h (+14/-0)
trunk/Python/esys/lsm/geometry/GougeConfigPrmsPy.cpp (+129/-0)
trunk/Python/esys/lsm/geometry/GougeConfigPrmsPy.h (+76/-0)
trunk/Python/esys/lsm/geometry/GougeConfigPy.cpp (+147/-0)
trunk/Python/esys/lsm/geometry/GougeConfigPy.h (+71/-0)
trunk/Python/esys/lsm/geometry/GrainCollectionPy.cpp (+99/-0)
trunk/Python/esys/lsm/geometry/GrainCollectionPy.h (+57/-0)
trunk/Python/esys/lsm/geometry/GrainPy.cpp (+100/-0)
trunk/Python/esys/lsm/geometry/GrainPy.h (+56/-0)
trunk/Python/esys/lsm/geometry/HexagBlockPy.cpp (+98/-0)
trunk/Python/esys/lsm/geometry/HexagBlockPy.h (+49/-0)
trunk/Python/esys/lsm/geometry/IteratorPy.cpp (+16/-0)
trunk/Python/esys/lsm/geometry/IteratorPy.h (+54/-0)
trunk/Python/esys/lsm/geometry/IteratorPy.hpp (+67/-0)
trunk/Python/esys/lsm/geometry/Makefile.am (+45/-0)
trunk/Python/esys/lsm/geometry/MiscPy.cpp (+190/-0)
trunk/Python/esys/lsm/geometry/MiscPy.h (+27/-0)
trunk/Python/esys/lsm/geometry/PackerPy.cpp (+753/-0)
trunk/Python/esys/lsm/geometry/PackerPy.h (+223/-0)
trunk/Python/esys/lsm/geometry/ParticleCollectionPy.cpp (+218/-0)
trunk/Python/esys/lsm/geometry/ParticleCollectionPy.h (+63/-0)
trunk/Python/esys/lsm/geometry/SimpleBlockPy.cpp (+84/-0)
trunk/Python/esys/lsm/geometry/SimpleBlockPy.h (+43/-0)
trunk/Python/esys/lsm/geometry/SimpleSphereCollectionPy.cpp (+217/-0)
trunk/Python/esys/lsm/geometry/SimpleSphereCollectionPy.h (+62/-0)
trunk/Python/esys/lsm/geometry/SimpleSphereNeighboursPy.cpp (+155/-0)
trunk/Python/esys/lsm/geometry/SimpleSphereNeighboursPy.h (+26/-0)
trunk/Python/esys/lsm/geometry/SimpleSpherePy.cpp (+347/-0)
trunk/Python/esys/lsm/geometry/SimpleSpherePy.h (+63/-0)
trunk/Python/esys/lsm/geometry/SingleParticleGrainGen.py (+54/-0)
trunk/Python/esys/lsm/geometry/SphericalGrainGen.py (+272/-0)
trunk/Python/esys/lsm/geometry/TaggedIdConnectionPy.cpp (+71/-0)
trunk/Python/esys/lsm/geometry/TaggedIdConnectionPy.h (+36/-0)
trunk/Python/esys/lsm/geometry/__init__.py (+27/-0)
trunk/Python/esys/lsm/lsm_dll.h (+14/-0)
trunk/Python/esys/lsm/sim/CMakeLists.txt (+57/-0)
trunk/Python/esys/lsm/sim/ExportModuleWavePropagation.cpp (+20/-0)
trunk/Python/esys/lsm/sim/Makefile.am (+45/-0)
trunk/Python/esys/lsm/sim/WavePropagation.py (+785/-0)
trunk/Python/esys/lsm/sim/WavePropagationPy.cpp (+146/-0)
trunk/Python/esys/lsm/sim/WavePropagationPy.h (+25/-0)
trunk/Python/esys/lsm/sim/__init__.py (+14/-0)
trunk/Python/esys/lsm/sim/coupled/CMakeLists.txt (+51/-0)
trunk/Python/esys/lsm/sim/coupled/DxToVtkConverter.py (+91/-0)
trunk/Python/esys/lsm/sim/coupled/ExportModuleLsmEscript.cpp (+20/-0)
trunk/Python/esys/lsm/sim/coupled/LsmMpiEscriptPy.cpp (+50/-0)
trunk/Python/esys/lsm/sim/coupled/LsmMpiEscriptPy.h (+25/-0)
trunk/Python/esys/lsm/sim/coupled/Makefile.am (+40/-0)
trunk/Python/esys/lsm/sim/coupled/MeshToVtkConverter.py (+320/-0)
trunk/Python/esys/lsm/sim/coupled/SimpleGouge.py (+356/-0)
trunk/Python/esys/lsm/sim/coupled/SimpleGougeConfig.py (+174/-0)
trunk/Python/esys/lsm/sim/coupled/__init__.py (+16/-0)
trunk/Python/esys/lsm/tools/CMakeLists.txt (+44/-0)
trunk/Python/esys/lsm/tools/ExportModuleTools.cpp (+20/-0)
trunk/Python/esys/lsm/tools/MacroFrictionCalculatorPy.cpp (+287/-0)
trunk/Python/esys/lsm/tools/MacroFrictionCalculatorPy.h (+25/-0)
trunk/Python/esys/lsm/tools/Makefile.am (+33/-0)
trunk/Python/esys/lsm/tools/__init__.py (+14/-0)
trunk/Python/esys/lsm/util/BoundingBoxPy.cpp (+198/-0)
trunk/Python/esys/lsm/util/BoundingBoxPy.h (+66/-0)
trunk/Python/esys/lsm/util/BoundingSpherePy.cpp (+161/-0)
trunk/Python/esys/lsm/util/BoundingSpherePy.h (+57/-0)
trunk/Python/esys/lsm/util/CMakeLists.txt (+134/-0)
trunk/Python/esys/lsm/util/CMakeLists.txt.08202011 (+129/-0)
trunk/Python/esys/lsm/util/ExportModuleUtil.cpp (+26/-0)
trunk/Python/esys/lsm/util/FileUtil.py (+27/-0)
trunk/Python/esys/lsm/util/InstallInfo.tmpl (+50/-0)
trunk/Python/esys/lsm/util/Makefile.am (+94/-0)
trunk/Python/esys/lsm/util/OptParse.py (+195/-0)
trunk/Python/esys/lsm/util/PathSearcher.py (+39/-0)
trunk/Python/esys/lsm/util/Process.py (+170/-0)
trunk/Python/esys/lsm/util/QuaternionPy.cpp (+254/-0)
trunk/Python/esys/lsm/util/QuaternionPy.h (+79/-0)
trunk/Python/esys/lsm/util/RngPy.cpp (+55/-0)
trunk/Python/esys/lsm/util/RngPy.h (+27/-0)
trunk/Python/esys/lsm/util/SetPy.cpp (+15/-0)
trunk/Python/esys/lsm/util/SetPy.h (+66/-0)
trunk/Python/esys/lsm/util/SetPy.hpp (+184/-0)
trunk/Python/esys/lsm/util/Vec3Py.cpp (+278/-0)
trunk/Python/esys/lsm/util/Vec3Py.h (+80/-0)
trunk/Python/esys/lsm/util/VectorPy.cpp (+15/-0)
trunk/Python/esys/lsm/util/VectorPy.h (+67/-0)
trunk/Python/esys/lsm/util/VectorPy.hpp (+156/-0)
trunk/Python/esys/lsm/util/__init__.py (+18/-0)
trunk/Python/esys/lsm/util/util_dll.h (+14/-0)
trunk/Python/esys/lsm/vis/CMakeLists.txt (+43/-0)
trunk/Python/esys/lsm/vis/Makefile.am (+28/-0)
trunk/Python/esys/lsm/vis/__init__.py (+22/-0)
trunk/Python/esys/lsm/vis/core/Arrow.py (+76/-0)
trunk/Python/esys/lsm/vis/core/ArrowExtractor.py (+64/-0)
trunk/Python/esys/lsm/vis/core/Box.py (+42/-0)
trunk/Python/esys/lsm/vis/core/CMakeLists.txt (+52/-0)
trunk/Python/esys/lsm/vis/core/Camera.py (+100/-0)
trunk/Python/esys/lsm/vis/core/Capsule.py (+140/-0)
trunk/Python/esys/lsm/vis/core/Color.py (+247/-0)
trunk/Python/esys/lsm/vis/core/Cone.py (+112/-0)
trunk/Python/esys/lsm/vis/core/Cylinder.py (+91/-0)
trunk/Python/esys/lsm/vis/core/CylinderExtractor.py (+123/-0)
trunk/Python/esys/lsm/vis/core/EdgeData.py (+51/-0)
trunk/Python/esys/lsm/vis/core/EdgeExtractor.py (+84/-0)
trunk/Python/esys/lsm/vis/core/Exception.py (+71/-0)
trunk/Python/esys/lsm/vis/core/Extractor.py (+23/-0)
trunk/Python/esys/lsm/vis/core/GlyphData.py (+45/-0)
trunk/Python/esys/lsm/vis/core/ImageFormat.py (+95/-0)
trunk/Python/esys/lsm/vis/core/Makefile.am (+41/-0)
trunk/Python/esys/lsm/vis/core/Modifier.py (+44/-0)
trunk/Python/esys/lsm/vis/core/PointExtractor.py (+39/-0)
trunk/Python/esys/lsm/vis/core/Scene.py (+142/-0)
trunk/Python/esys/lsm/vis/core/Sphere.py (+39/-0)
trunk/Python/esys/lsm/vis/core/SphereExtractor.py (+61/-0)
trunk/Python/esys/lsm/vis/core/SurfaceData.py (+49/-0)
trunk/Python/esys/lsm/vis/core/TriangulatedSurface.py (+31/-0)
trunk/Python/esys/lsm/vis/core/__init__.py (+40/-0)
trunk/Python/esys/lsm/vis/povray/Arrow.py (+53/-0)
trunk/Python/esys/lsm/vis/povray/ArrowExtractor.py (+56/-0)
trunk/Python/esys/lsm/vis/povray/Box.py (+44/-0)
trunk/Python/esys/lsm/vis/povray/CMakeLists.txt (+50/-0)
trunk/Python/esys/lsm/vis/povray/Camera.py (+97/-0)
trunk/Python/esys/lsm/vis/povray/Capsule.py (+94/-0)
trunk/Python/esys/lsm/vis/povray/Color.py (+49/-0)
trunk/Python/esys/lsm/vis/povray/Cone.py (+90/-0)
trunk/Python/esys/lsm/vis/povray/Csg.py (+51/-0)
trunk/Python/esys/lsm/vis/povray/Cylinder.py (+78/-0)
trunk/Python/esys/lsm/vis/povray/CylinderExtractor.py (+88/-0)
trunk/Python/esys/lsm/vis/povray/EdgeData.py (+19/-0)
trunk/Python/esys/lsm/vis/povray/EdgeExtractor.py (+65/-0)
trunk/Python/esys/lsm/vis/povray/GlyphData.py (+43/-0)
trunk/Python/esys/lsm/vis/povray/Makefile.am (+39/-0)
trunk/Python/esys/lsm/vis/povray/Modifier.py (+134/-0)
trunk/Python/esys/lsm/vis/povray/Object.py (+76/-0)
trunk/Python/esys/lsm/vis/povray/PovRenderer.py (+256/-0)
trunk/Python/esys/lsm/vis/povray/Scene.py (+142/-0)
trunk/Python/esys/lsm/vis/povray/Sphere.py (+30/-0)
trunk/Python/esys/lsm/vis/povray/SphereExtractor.py (+51/-0)
trunk/Python/esys/lsm/vis/povray/TriangulatedSurface.py (+37/-0)
trunk/Python/esys/lsm/vis/povray/__init__.py (+39/-0)
trunk/Python/esys/lsm/vis/vtk/Arrow.py (+78/-0)
trunk/Python/esys/lsm/vis/vtk/ArrowExtractor.py (+52/-0)
trunk/Python/esys/lsm/vis/vtk/Box.py (+72/-0)
trunk/Python/esys/lsm/vis/vtk/CMakeLists.txt (+50/-0)
trunk/Python/esys/lsm/vis/vtk/Camera.py (+51/-0)
trunk/Python/esys/lsm/vis/vtk/Color.py (+46/-0)
trunk/Python/esys/lsm/vis/vtk/Cone.py (+52/-0)
trunk/Python/esys/lsm/vis/vtk/Cylinder.py (+82/-0)
trunk/Python/esys/lsm/vis/vtk/CylinderExtractor.py (+81/-0)
trunk/Python/esys/lsm/vis/vtk/EdgeData.py (+61/-0)
trunk/Python/esys/lsm/vis/vtk/EdgeExtractor.py (+93/-0)
trunk/Python/esys/lsm/vis/vtk/GlyphData.py (+22/-0)
trunk/Python/esys/lsm/vis/vtk/GlyphExtractor.py (+79/-0)
trunk/Python/esys/lsm/vis/vtk/Makefile.am (+39/-0)
trunk/Python/esys/lsm/vis/vtk/Modifier.py (+35/-0)
trunk/Python/esys/lsm/vis/vtk/PointExtractor.py (+27/-0)
trunk/Python/esys/lsm/vis/vtk/Scene.py (+180/-0)
trunk/Python/esys/lsm/vis/vtk/Sphere.py (+52/-0)
trunk/Python/esys/lsm/vis/vtk/SphereExtractor.py (+44/-0)
trunk/Python/esys/lsm/vis/vtk/SurfaceData.py (+51/-0)
trunk/Python/esys/lsm/vis/vtk/TriangulatedSurface.py (+59/-0)
trunk/Python/esys/lsm/vis/vtk/Util.py (+35/-0)
trunk/Python/esys/lsm/vis/vtk/__init__.py (+35/-0)
trunk/README (+40/-0)
trunk/Tools/CMakeLists.txt (+45/-0)
trunk/Tools/ExtractFractures/CMakeLists.txt (+64/-0)
trunk/Tools/ExtractFractures/FitPlane.cpp (+29/-0)
trunk/Tools/ExtractFractures/FitPlane.h (+27/-0)
trunk/Tools/ExtractFractures/Makefile.am (+36/-0)
trunk/Tools/ExtractFractures/frac_dist.cpp (+65/-0)
trunk/Tools/ExtractFractures/frac_dist.h (+40/-0)
trunk/Tools/ExtractFractures/fracframe.cpp (+504/-0)
trunk/Tools/ExtractFractures/fracframe.h (+62/-0)
trunk/Tools/ExtractFractures/fracwriter.cpp (+284/-0)
trunk/Tools/ExtractFractures/fracwriter.h (+60/-0)
trunk/Tools/ExtractFractures/main.cpp (+231/-0)
trunk/Tools/ExtractGrains/CMakeLists.txt (+71/-0)
trunk/Tools/ExtractGrains/Frac.cpp (+424/-0)
trunk/Tools/ExtractGrains/Frac.h (+50/-0)
trunk/Tools/ExtractGrains/Makefile.am (+40/-0)
trunk/Tools/ExtractGrains/Triangle2d.cpp (+70/-0)
trunk/Tools/ExtractGrains/Triangle2d.h (+32/-0)
trunk/Tools/ExtractGrains/Tritest.cpp (+26/-0)
trunk/Tools/ExtractGrains/graph.cpp (+1274/-0)
trunk/Tools/ExtractGrains/graph.h (+126/-0)
trunk/Tools/ExtractGrains/main.cpp (+537/-0)
trunk/Tools/ExtractGrains/probdist.cpp (+160/-0)
trunk/Tools/ExtractGrains/probdist.h (+40/-0)
trunk/Tools/ExtractGrains/readSnap.cpp (+412/-0)
trunk/Tools/ExtractGrains/readSnap.h (+30/-0)
trunk/Tools/ExtractProfile/CMakeLists.txt (+50/-0)
trunk/Tools/ExtractProfile/Makefile.am (+31/-0)
trunk/Tools/ExtractProfile/main.cpp (+173/-0)
trunk/Tools/ExtractProfile/read.cpp (+644/-0)
trunk/Tools/ExtractProfile/read.h (+26/-0)
trunk/Tools/ExtractStrain/CMakeLists.txt (+59/-0)
trunk/Tools/ExtractStrain/DataExtractor.cpp (+253/-0)
trunk/Tools/ExtractStrain/DataExtractor.h (+37/-0)
trunk/Tools/ExtractStrain/DataParticle.cpp (+24/-0)
trunk/Tools/ExtractStrain/DataParticle.h (+49/-0)
trunk/Tools/ExtractStrain/Makefile.am (+34/-0)
trunk/Tools/ExtractStrain/SnapFileHelp.cpp (+84/-0)
trunk/Tools/ExtractStrain/SnapFileHelp.h (+21/-0)
trunk/Tools/ExtractStrain/main.cpp (+98/-0)
trunk/Tools/ForceChains/CMakeLists.txt (+59/-0)
trunk/Tools/ForceChains/Makefile.am (+34/-0)
trunk/Tools/ForceChains/main.cpp (+76/-0)
trunk/Tools/ForceChains/vtk.cpp (+160/-0)
trunk/Tools/ForceChains/vtk.h (+18/-0)
trunk/Tools/ForceChains/vvf.cpp (+96/-0)
trunk/Tools/ForceChains/vvf.h (+18/-0)
trunk/Tools/MacroFrictionCalculator/CMakeLists.txt (+73/-0)
trunk/Tools/MacroFrictionCalculator/LinearWindowAverager.cpp (+21/-0)
trunk/Tools/MacroFrictionCalculator/LinearWindowAverager.h (+87/-0)
trunk/Tools/MacroFrictionCalculator/MacroFrictionCalculator.cpp (+21/-0)
trunk/Tools/MacroFrictionCalculator/MacroFrictionCalculator.h (+75/-0)
trunk/Tools/MacroFrictionCalculator/Main.cpp (+81/-0)
trunk/Tools/MacroFrictionCalculator/Makefile.am (+33/-0)
trunk/Tools/MacroFrictionCalculator/WallForceReader.cpp (+21/-0)
trunk/Tools/MacroFrictionCalculator/WallForceReader.h (+171/-0)
trunk/Tools/MacroFrictionCalculator/WallForcesToFrictionConverter.cpp (+121/-0)
trunk/Tools/MacroFrictionCalculator/WallForcesToFrictionConverter.h (+48/-0)
trunk/Tools/Makefile.am (+22/-0)
trunk/Tools/StressCalculator/CMakeLists.txt (+96/-0)
trunk/Tools/StressCalculator/CartesianGrid.cpp (+15/-0)
trunk/Tools/StressCalculator/CartesianGrid.h (+516/-0)
trunk/Tools/StressCalculator/Contact.cpp (+25/-0)
trunk/Tools/StressCalculator/Contact.h (+242/-0)
trunk/Tools/StressCalculator/ContactCollection.cpp (+14/-0)
trunk/Tools/StressCalculator/ContactCollection.h (+138/-0)
trunk/Tools/StressCalculator/EigenvalueCalculator.cpp (+23/-0)
trunk/Tools/StressCalculator/EigenvalueCalculator.h (+215/-0)
trunk/Tools/StressCalculator/GaussianGridder.cpp (+22/-0)
trunk/Tools/StressCalculator/GaussianGridder.h (+75/-0)
trunk/Tools/StressCalculator/InteractionToStressConverter.cpp (+543/-0)
trunk/Tools/StressCalculator/InteractionToStressConverter.h (+168/-0)
trunk/Tools/StressCalculator/Main.cpp (+145/-0)
trunk/Tools/StressCalculator/Makefile.am (+32/-0)
trunk/Tools/StressCalculator/Raw2InteractionReader.cpp (+14/-0)
trunk/Tools/StressCalculator/Raw2InteractionReader.h (+58/-0)
trunk/Tools/StressCalculator/StressCalculator_dll.h (+14/-0)
trunk/Tools/StressCalculator/StressTensor.h (+104/-0)
trunk/Tools/StressCalculator/StressTensorCalculator.cpp (+14/-0)
trunk/Tools/StressCalculator/StressTensorCalculator.h (+107/-0)
trunk/Tools/StressCalculator/StressTensorCollection.cpp (+14/-0)
trunk/Tools/StressCalculator/StressTensorCollection.h (+75/-0)
trunk/Tools/StressCalculator/Vec3Comparer.h (+76/-0)
trunk/Tools/StressCalculator/VtkDataArray.h (+80/-0)
trunk/Tools/StressCalculator/VtkDataType.h (+187/-0)
trunk/Tools/StressCalculator/VtkDataTypeTuple.cpp (+14/-0)
trunk/Tools/StressCalculator/VtkDataTypeTuple.h (+151/-0)
trunk/Tools/StressCalculator/VtkPiece.cpp (+14/-0)
trunk/Tools/StressCalculator/VtkPiece.h (+135/-0)
trunk/Tools/StressCalculator/VtkStructuredGrid.cpp (+14/-0)
trunk/Tools/StressCalculator/VtkStructuredGrid.h (+157/-0)
trunk/Tools/StressCalculator/VtkUnstructuredGrid.cpp (+14/-0)
trunk/Tools/StressCalculator/VtkUnstructuredGrid.h (+108/-0)
trunk/Tools/dump2geo/CMakeLists.txt (+50/-0)
trunk/Tools/dump2geo/Makefile.am (+30/-0)
trunk/Tools/dump2geo/frame_geo.cpp (+411/-0)
trunk/Tools/dump2geo/frame_geo.h (+31/-0)
trunk/Tools/dump2geo/main.cpp (+138/-0)
trunk/Tools/dump2pov/CMakeLists.txt (+72/-0)
trunk/Tools/dump2pov/Makefile.am (+39/-0)
trunk/Tools/dump2pov/README (+38/-0)
trunk/Tools/dump2pov/campos.cpp (+68/-0)
trunk/Tools/dump2pov/campos.h (+39/-0)
trunk/Tools/dump2pov/colormap.cpp (+36/-0)
trunk/Tools/dump2pov/colormap.h (+30/-0)
trunk/Tools/dump2pov/colormap3.cpp (+41/-0)
trunk/Tools/dump2pov/colormap3.h (+34/-0)
trunk/Tools/dump2pov/frame.cpp (+574/-0)
trunk/Tools/dump2pov/frame.h (+32/-0)
trunk/Tools/dump2pov/geocolormap.cpp (+66/-0)
trunk/Tools/dump2pov/geocolormap.h (+35/-0)
trunk/Tools/dump2pov/main.cpp (+261/-0)
trunk/Tools/dump2pov/mesh.cpp (+76/-0)
trunk/Tools/dump2pov/mesh.h (+21/-0)
trunk/Tools/dump2silo/CMakeLists.txt (+52/-0)
trunk/Tools/dump2silo/Makefile.am (+30/-0)
trunk/Tools/dump2silo/frame_silo.cpp (+514/-0)
trunk/Tools/dump2silo/frame_silo.h (+25/-0)
trunk/Tools/dump2silo/main.cpp (+128/-0)
trunk/Tools/dump2vtk/CMakeLists.txt (+50/-0)
trunk/Tools/dump2vtk/Makefile.am (+30/-0)
trunk/Tools/dump2vtk/frame_vtk.cpp (+1000/-0)
trunk/Tools/dump2vtk/frame_vtk.h (+28/-0)
trunk/Tools/dump2vtk/main.cpp (+181/-0)
trunk/Tools/mesh2pov/CMakeLists.txt (+46/-0)
trunk/Tools/mesh2pov/Makefile.am (+27/-0)
trunk/Tools/mesh2pov/main.cpp (+123/-0)
trunk/Tools/pfcconvert/CMakeLists.txt (+50/-0)
trunk/Tools/pfcconvert/Makefile.am (+30/-0)
trunk/Tools/pfcconvert/main.cpp (+100/-0)
trunk/Tools/pfcconvert/pfcc.cpp (+153/-0)
trunk/Tools/pfcconvert/pfcc.h (+26/-0)
trunk/Tools/rotextract/CMakeLists.txt (+57/-0)
trunk/Tools/rotextract/Makefile.am (+32/-0)
trunk/Tools/rotextract/gvmap.cpp (+129/-0)
trunk/Tools/rotextract/gvmap.h (+64/-0)
trunk/Tools/rotextract/main.cpp (+128/-0)
trunk/Tools/rotextract/rextract.cpp (+162/-0)
trunk/Tools/rotextract/rextract.h (+52/-0)
trunk/Tools/slip2vtk/CMakeLists.txt (+50/-0)
trunk/Tools/slip2vtk/Makefile.am (+30/-0)
trunk/Tools/slip2vtk/main.cpp (+245/-0)
trunk/Tools/slip2vtk/slip2vtk2d.cpp (+1196/-0)
trunk/Tools/slip2vtk/slip2vtk2d.h (+43/-0)
trunk/am2cmake.ru (+1091/-0)
trunk/autogen.sh (+10/-0)
trunk/buildvs2005/mkvs8.bat (+1/-0)
trunk/buildvs2008/mkvs9.bat (+1/-0)
trunk/buildvs2010/mkvs10.bat (+1/-0)
trunk/configure.ac (+411/-0)
trunk/example/bingle.py (+98/-0)
trunk/example/hosts.txt (+1/-0)
trunk/example/testrun.bat (+2/-0)
trunk/ntable/CMakeLists.txt (+30/-0)
trunk/ntable/Makefile.am (+18/-0)
trunk/ntable/src/CMakeLists.txt (+70/-0)
trunk/ntable/src/Makefile.am (+36/-0)
trunk/ntable/src/dslice.cpp (+41/-0)
trunk/ntable/src/dslice.h (+43/-0)
trunk/ntable/src/handle.h (+45/-0)
trunk/ntable/src/handle.hpp (+55/-0)
trunk/ntable/src/handle_exception.h (+23/-0)
trunk/ntable/src/nt_block.h (+74/-0)
trunk/ntable/src/nt_block.hpp (+211/-0)
trunk/ntable/src/nt_slab.h (+83/-0)
trunk/ntable/src/nt_slab.hpp (+235/-0)
trunk/ntable/src/ntable.h (+182/-0)
trunk/ntable/src/ntable.hpp (+760/-0)
trunk/ntable/src/ntb_iter.h (+71/-0)
trunk/ntable/src/ntb_iter.hpp (+143/-0)
trunk/ntable/src/nts_iter.h (+76/-0)
trunk/ntable/src/nts_iter.hpp (+144/-0)
trunk/ntable/test/test_main2.cpp (+145/-0)
trunk/ntable/util/BasicParticle.cpp (+27/-0)
trunk/ntable/util/BasicParticle.h (+51/-0)
trunk/ntable/util/Error.h (+33/-0)
trunk/ntable/util/vec3.cpp (+246/-0)
trunk/ntable/util/vec3.h (+139/-0)
trunk/pis/CMakeLists.txt (+71/-0)
trunk/pis/Makefile.am (+27/-0)
trunk/pis/mesh2d_pis.h (+57/-0)
trunk/pis/mesh2d_pis.hpp (+68/-0)
trunk/pis/mesh2d_pis_eb.h (+93/-0)
trunk/pis/mesh2d_pis_eb.hpp (+493/-0)
trunk/pis/mesh2d_pis_ne.h (+61/-0)
trunk/pis/mesh2d_pis_ne.hpp (+148/-0)
trunk/pis/pi_storage.cpp (+15/-0)
trunk/pis/pi_storage.h (+151/-0)
trunk/pis/pi_storage.hpp (+338/-0)
trunk/pis/pi_storage_e.h (+72/-0)
trunk/pis/pi_storage_e.hpp (+268/-0)
trunk/pis/pi_storage_eb.h (+50/-0)
trunk/pis/pi_storage_eb.hpp (+171/-0)
trunk/pis/pi_storage_ed.h (+57/-0)
trunk/pis/pi_storage_ed.hpp (+250/-0)
trunk/pis/pi_storage_ed_t.h (+45/-0)
trunk/pis/pi_storage_ed_t.hpp (+143/-0)
trunk/pis/pi_storage_ne.h (+54/-0)
trunk/pis/pi_storage_ne.hpp (+147/-0)
trunk/pis/pi_storage_ne_t.h (+45/-0)
trunk/pis/pi_storage_ne_t.hpp (+123/-0)
trunk/pis/pi_storage_single.h (+46/-0)
trunk/pis/pi_storage_single.hpp (+82/-0)
trunk/pis/pis_dll.h (+14/-0)
trunk/pis/trimesh_pis.h (+46/-0)
trunk/pis/trimesh_pis.hpp (+57/-0)
trunk/pis/trimesh_pis_eb.h (+62/-0)
trunk/pis/trimesh_pis_eb.hpp (+342/-0)
trunk/pis/trimesh_pis_ne.h (+64/-0)
trunk/pis/trimesh_pis_ne.hpp (+180/-0)
trunk/ppa/CMakeLists.txt (+32/-0)
trunk/ppa/Makefile.am (+18/-0)
trunk/ppa/ppa_lst (+16/-0)
trunk/ppa/src/CMakeLists.txt (+44/-0)
trunk/ppa/src/Makefile.am (+25/-0)
trunk/ppa/src/app_array.cpp (+33/-0)
trunk/ppa/src/float_cast.h (+107/-0)
trunk/ppa/src/fp_cast_test.c (+264/-0)
trunk/ppa/src/pp_array.h (+225/-0)
trunk/ppa/src/pp_array.hpp (+1100/-0)
trunk/ppa/test/test.cpp (+60/-0)
trunk/ppa/util/partpack.cpp (+37/-0)
trunk/tml/CMakeLists.txt (+34/-0)
trunk/tml/Doxyfile (+1101/-0)
trunk/tml/Makefile.am (+18/-0)
trunk/tml/comm/CMakeLists.txt (+54/-0)
trunk/tml/comm/Makefile.am (+24/-0)
trunk/tml/comm/cart_comm.cpp (+214/-0)
trunk/tml/comm/cart_comm.h (+67/-0)
trunk/tml/comm/cart_comm.hpp (+137/-0)
trunk/tml/comm/comm.cpp (+180/-0)
trunk/tml/comm/comm.h (+139/-0)
trunk/tml/comm/comm.hpp (+463/-0)
trunk/tml/comm/comm_coll.hpp (+587/-0)
trunk/tml/comm/comm_dll.h (+14/-0)
trunk/tml/comm/comm_world.cpp (+19/-0)
trunk/tml/comm/comm_world.h (+38/-0)
trunk/tml/message/CMakeLists.txt (+49/-0)
trunk/tml/message/Makefile.am (+21/-0)
trunk/tml/message/message.h (+41/-0)
trunk/tml/message/message_dll.h (+14/-0)
trunk/tml/message/multi_message_slab.cpp (+148/-0)
trunk/tml/message/multi_message_slab.h (+58/-0)
trunk/tml/message/pack.cpp (+73/-0)
trunk/tml/message/pack.h (+48/-0)
trunk/tml/message/pack.hpp (+26/-0)
trunk/tml/message/packed_message.cpp (+221/-0)
trunk/tml/message/packed_message.h (+69/-0)
trunk/tml/message/packed_message_interface.h (+52/-0)
trunk/tml/message/packed_multi_message.cpp (+266/-0)
trunk/tml/message/packed_multi_message.h (+79/-0)
trunk/tml/test/tesp_sc.cpp (+51/-0)
trunk/tml/test/test.cpp (+99/-0)
trunk/tml/test/test.rpo (+130/-0)
trunk/tml/test/test_cart.cpp (+156/-0)
trunk/tml/test/test_cart.h (+22/-0)
trunk/tml/test/test_cart_old.cpp (+60/-0)
trunk/tml/test/test_comm.cpp (+453/-0)
trunk/tml/test/test_comm.h (+21/-0)
trunk/tml/test/test_pack.cpp (+316/-0)
trunk/tml/test/test_pack.h (+22/-0)
trunk/tml/test/test_sc.cpp (+232/-0)
trunk/tml/test/test_sc.h (+21/-0)
trunk/tml/tml_list (+19/-0)
trunk/tml/type/CMakeLists.txt (+41/-0)
trunk/tml/type/Makefile.am (+20/-0)
trunk/tml/type/gettype.cpp (+62/-0)
trunk/tml/type/gettype.h (+124/-0)
trunk/tml/type/gettype.hpp (+124/-0)
trunk/tml/type/type_dll.h (+14/-0)
To merge this branch: bzr merge lp:esys-particle/esys-particle-win
Reviewer Review Type Date Requested Status
Dion Weatherley Disapprove
Review via email: mp+162941@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Dion Weatherley (d-weatherley) wrote :

The Windows port of ESyS-Particle is still experimental and not yet approved for merging with the main development trunk. Further benchmarking and validation testing is required prior to consideration for incorporation in the trunk.

review: Disapprove
Revision history for this message
Anton Gladky (gladky-anton) wrote :

Hi Dion,

is it possible to merge CMakeLists.txt files from windows-branch? I
started to write it myself, but then found windows-port with the same
files. I think it would be good, if we merge only those files.

But it is up to you, of course.

Anton

PS Actually, esys-particle is available in main archive of new released
Debian Wheezy.
http://packages.qa.debian.org/e/esys-particle.html

2013/5/8 Dion Weatherley <email address hidden>:
> The proposal to merge lp:esys-particle/esys-particle-win into lp:esys-particle has been updated.
>
> Status: Needs review => Rejected
>
> For more details, see:
> https://code.launchpad.net/~esys-p-dev/esys-particle/esys-particle-win/+merge/162941
> --
> https://code.launchpad.net/~esys-p-dev/esys-particle/esys-particle-win/+merge/162941
> You are subscribed to branch lp:esys-particle.

Revision history for this message
Feng Chen (fchen3-gmail) wrote :

Hi, All:

0. Personally I do not think there will be much difference between the windows and Linux version, the major differences are some platform dependent calls.
1. Can we call for volunteers to make comparisons of results between the windows version and Linux version?
2. Parallel version in windows version might work..., at least for the direct shear test in ESyS-Particle manual
3. We might start to work on this merge-migration since this will quickly benefit entire group of ESyS-Particle users/developers
4. Can we make a list-to-do for necessary steps in order to do the migration?

Feng

Revision history for this message
Anton Gladky (gladky-anton) wrote :

Hi

2013/5/8 Feng Chen <email address hidden>:
> 0. Personally I do not think there will be much difference between the windows and Linux version, the major differences are some platform dependent calls.

Linux version is not functional yet. I did not finish that. So, if
Windows-one works, we can use it.

Anton

Revision history for this message
Feng Chen (fchen3-gmail) wrote :

Hi, Anton:

Do you mean CMake only? I believe use CMake in the Linux version should not be very different from the windows version.

Feng

Revision history for this message
Anton Gladky (gladky-anton) wrote :

2013/5/8 Feng Chen <email address hidden>

> Do you mean CMake only? I believe use CMake in the Linux version should
> not be very different from the windows version.
>
Yes, but linux-version of cmake for esys-particle is not ready yet.

Anton

Revision history for this message
Dion Weatherley (d-weatherley) wrote :

Hi Feng and Anton,

Just to be clear, I am very supportive of merging of the two branches but feel it should be done carefully and systematically. Here are a few of my thoughts:

> 0. [...] the major differences are some platform dependent calls.

Feng, could you please provide a list/description of the changes you had to make to the core trunk source code, aside from the switch to CMake build system?

> 1. Can we call for volunteers to make comparisons of results between the windows version and Linux version?
> 2. Parallel version in windows version might work...

Certainly would be nice to have someone do systematic comparisons and testing. Any volunteers or suggestions on who may have time for this?

> 4. Can we make a list-to-do for necessary steps in order to do the migration?

This is a good starting point. Top of the list would be to ascertain whether the esys-particle-win CMake build system will work under linux. Perhaps someone could try building esys-particle-win on ubuntu and see how far we get?

I've created a Blueprint for this merge discussion:
https://blueprints.launchpad.net/esys-particle/+spec/esys-p-win-merge
Let's move our discussions to there and start populating a to-do list under "Work Items".

Cheers,

Dion

Unmerged revisions

8. By Feng Chen

Modified BuildInstructions.docx and BuildInstructions.pdf in section 2.3.1, added screenshot for "Open Visual Studio Command Prompt" (Figure 2)

7. By Feng Chen

fix cmake command, minor change in CMakeLists.txt for VS2010 solution file generation

6. By Feng Chen <email address hidden> <email address hidden>

update build instructions

5. By Feng Chen

change to NMake Makefiles

4. By Feng Chen

Updated BuildInstructions.pdf, removed ReleaseNotes, this file is the same file as in the gengeo-win

3. By Feng Chen

first comit

2. By Feng Chen

first release of esys-particle-win

1. By Feng Chen

test

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'trunk'
2=== added file 'trunk/AUTHORS'
3--- trunk/AUTHORS 1970-01-01 00:00:00 +0000
4+++ trunk/AUTHORS 2013-05-08 08:43:26 +0000
5@@ -0,0 +1,33 @@
6+#############################################################
7+## ##
8+## Copyright (c) 2003-2011 by The University of Queensland ##
9+## Earth Systems Science Computational Centre (ESSCC) ##
10+## http://www.uq.edu.au/esscc ##
11+## ##
12+## Primary Business: Brisbane, Queensland, Australia ##
13+## Licensed under the Open Software License version 3.0 ##
14+## http://www.opensource.org/licenses/osl-3.0.php ##
15+## ##
16+#############################################################
17+
18+ESyS-Particle is a community Open Source Software project.
19+
20+ESyS-Particle software contributors include:
21+
22+S. Abe (2000-)
23+C. Altinay (2008-)
24+V. Boros (2009-)
25+F. Chen (2010)
26+M. Griffa (2011)
27+W. Hancock (2008-)
28+L. Heredia (2009)
29+S. Latham (2005-2007)
30+P. Mora (1994-)
31+W. Pettersson (2008-2011)
32+D. Place (1994-2002)
33+P. Richeri (2009)
34+G. Tancredi (2009)
35+Y. Wang (2002-2008)
36+D. Weatherley (2007-)
37+
38+For further information about ESyS-Particle authors, email d.weatherley@uq.edu.au
39
40=== added file 'trunk/BuildInstructions.pdf'
41Binary files trunk/BuildInstructions.pdf 1970-01-01 00:00:00 +0000 and trunk/BuildInstructions.pdf 2013-05-08 08:43:26 +0000 differ
42=== added file 'trunk/CMakeLists.txt'
43--- trunk/CMakeLists.txt 1970-01-01 00:00:00 +0000
44+++ trunk/CMakeLists.txt 2013-05-08 08:43:26 +0000
45@@ -0,0 +1,89 @@
46+cmake_minimum_required(VERSION 2.6)
47+
48+project(ESyS-Particle-v2.1)
49+
50+set(CMAKE_BUILD_TYPE Release)
51+
52+# set(TOP_SRC_DIR "C:/SVWork/DEMDev/ESyS-Particle-2.1_vc9")
53+set(TOP_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
54+# set(TOP_BUILD_DIR ${TOP_SRC_DIR}/build)
55+set(TOP_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
56+
57+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${TOP_BUILD_DIR}/output)
58+set(LIBRARY_OUTPUT_PATH ${TOP_BUILD_DIR}/lib)
59+set(EXECUTABLE_OUTPUT_PATH ${TOP_BUILD_DIR}/exe)
60+
61+set(OMPI_INCLUDES "C:/Program Files (x86)/OpenMPI_v1.5.3-win32/include")
62+set(OMPI_LIB_PATH "C:/Program Files (x86)/OpenMPI_v1.5.3-win32/lib")
63+set(OMPI_CORE_LIBS "libmpi.lib" "libmpi_cxx.lib" "libopen-pal.lib" "libopen-rte.lib")
64+
65+# set(PYTHON_INCLUDES "C:/Python27/include")
66+# set(PYTHON_LIB_PATH "C:/Python27/libs")
67+
68+set(PYTHON_INCLUDES "C:/Python-2.7.2/Include" "C:/Python-2.7.2/PC")
69+set(PYTHON_LIB_PATH "C:/Python-2.7.2/PCbuild")
70+
71+set(BOOST_INCLUDES "C:/Program Files (x86)/boost/boost_1_47")
72+set(BOOST_LIB_PATH "C:/Program Files (x86)/boost/boost_1_47/lib")
73+
74+SET(ESYS_INCLUDES
75+ ${TOP_SRC_DIR}/Foundation
76+ ${TOP_SRC_DIR}/Geometry
77+ ${TOP_SRC_DIR}/Parallel
78+ ${TOP_SRC_DIR}/Model
79+ ${TOP_SRC_DIR}/pis
80+ )
81+SET(ESYS_LIB_PATH )
82+
83+cmake_policy(SET CMP0015 OLD)
84+
85+ADD_DEFINITIONS(-DWIN32 -DWINDOWS)
86+ADD_DEFINITIONS(-DNOMINMAX -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS)
87+ADD_DEFINITIONS(-wd4251 -wd4244 -wd4800 -wd4305 -wd4819 -wd4101)
88+ADD_DEFINITIONS(-DOMPI_IMPORTS -DOPAL_IMPORTS -DORTE_IMPORTS)
89+
90+include_directories(${TOP_SRC_DIR} ${OMPI_INCLUDES} ${BOOST_INCLUDES} ${ESYS_INCLUDES} ${PYTHON_INCLUDES})
91+link_directories(${OMPI_LIB_PATH} ${BOOST_LIB_PATH} ${ESYS_LIB_PATH} ${PYTHON_LIB_PATH})
92+
93+add_subdirectory(Foundation)
94+add_subdirectory(Geometry)
95+add_subdirectory(tml)
96+add_subdirectory(ntable)
97+add_subdirectory(ppa)
98+add_subdirectory(pis)
99+add_subdirectory(Fields)
100+add_subdirectory(ParallelModel)
101+add_subdirectory(MainBE)
102+add_subdirectory(Python)
103+add_subdirectory(Tools)
104+
105+
106+########### install files ###############
107+
108+
109+
110+
111+#original Makefile.am contents follow:
112+
113+##############################################################
114+### ##
115+### Copyright (c) 2003-2011 by The University of Queensland ##
116+### Earth Systems Science Computational Centre (ESSCC) ##
117+### http://www.uq.edu.au/esscc ##
118+### ##
119+### Primary Business: Brisbane, Queensland, Australia ##
120+### Licensed under the Open Software License version 3.0 ##
121+### http://www.opensource.org/licenses/osl-3.0.php ##
122+### ##
123+##############################################################
124+#
125+###
126+#
127+#include $(top_srcdir)/Config/Cpp.am
128+#
129+#SUBDIRS = libltdl Foundation ntable tml ppa pis Geometry Model Fields Parallel MainBE Tools Python
130+#
131+#ACLOCAL_AMFLAGS = -I Config
132+#
133+#EXTRA_DIST = Config/pkg.m4 Config/cppunit.m4 Config/libtool.m4
134+#
135
136=== added file 'trunk/COPYING'
137--- trunk/COPYING 1970-01-01 00:00:00 +0000
138+++ trunk/COPYING 2013-05-08 08:43:26 +0000
139@@ -0,0 +1,11 @@
140+#############################################################
141+## ##
142+## Copyright (c) 2003-2011 by The University of Queensland ##
143+## Earth Systems Science Computational Centre (ESSCC) ##
144+## http://www.uq.edu.au/esscc ##
145+## ##
146+## Primary Business: Brisbane, Queensland, Australia ##
147+## Licensed under the Open Software License version 3.0 ##
148+## http://www.opensource.org/licenses/osl-3.0.php ##
149+## ##
150+#############################################################
151
152=== added file 'trunk/COPYRIGHT'
153--- trunk/COPYRIGHT 1970-01-01 00:00:00 +0000
154+++ trunk/COPYRIGHT 2013-05-08 08:43:26 +0000
155@@ -0,0 +1,11 @@
156+#############################################################
157+## ##
158+## Copyright (c) 2003-2011 by The University of Queensland ##
159+## Earth Systems Science Computational Centre (ESSCC) ##
160+## http://www.uq.edu.au/esscc ##
161+## ##
162+## Primary Business: Brisbane, Queensland, Australia ##
163+## Licensed under the Open Software License version 3.0 ##
164+## http://www.opensource.org/licenses/osl-3.0.php ##
165+## ##
166+#############################################################
167
168=== added file 'trunk/ChangeLog'
169--- trunk/ChangeLog 1970-01-01 00:00:00 +0000
170+++ trunk/ChangeLog 2013-05-08 08:43:26 +0000
171@@ -0,0 +1,15 @@
172+#############################################################
173+## ##
174+## Copyright (c) 2003-2011 by The University of Queensland ##
175+## Earth Systems Science Computational Centre (ESSCC) ##
176+## http://www.uq.edu.au/esscc ##
177+## ##
178+## Primary Business: Brisbane, Queensland, Australia ##
179+## Licensed under the Open Software License version 3.0 ##
180+## http://www.opensource.org/licenses/osl-3.0.php ##
181+## ##
182+#############################################################
183+
184+For information on source code changes, please visit the
185+ESyS-Particle SVN repository browser:
186+https://svn.esscc.uq.edu.au/listing.php?repname=esys3++(contains+Esys-particle)&path=%2Flsm%2F&rev=0&sc=0
187
188=== added directory 'trunk/Config'
189=== added file 'trunk/Config/Cpp.am'
190--- trunk/Config/Cpp.am 1970-01-01 00:00:00 +0000
191+++ trunk/Config/Cpp.am 2013-05-08 08:43:26 +0000
192@@ -0,0 +1,14 @@
193+#############################################################
194+## ##
195+## Copyright (c) 2003-2011 by The University of Queensland ##
196+## Earth Systems Science Computational Centre (ESSCC) ##
197+## http://www.uq.edu.au/esscc ##
198+## ##
199+## Primary Business: Brisbane, Queensland, Australia ##
200+## Licensed under the Open Software License version 3.0 ##
201+## http://www.opensource.org/licenses/osl-3.0.php ##
202+## ##
203+#############################################################
204+
205+AM_CPPFLAGS = "-I$(top_srcdir)" $(BOOST_CPPFLAGS)
206+AM_LDFLAGS = -release $(PACKAGE_VERSION)
207\ No newline at end of file
208
209=== added file 'trunk/Config/Python.am'
210--- trunk/Config/Python.am 1970-01-01 00:00:00 +0000
211+++ trunk/Config/Python.am 2013-05-08 08:43:26 +0000
212@@ -0,0 +1,45 @@
213+#############################################################
214+## ##
215+## Copyright (c) 2003-2011 by The University of Queensland ##
216+## Earth Systems Science Computational Centre (ESSCC) ##
217+## http://www.uq.edu.au/esscc ##
218+## ##
219+## Primary Business: Brisbane, Queensland, Australia ##
220+## Licensed under the Open Software License version 3.0 ##
221+## http://www.opensource.org/licenses/osl-3.0.php ##
222+## ##
223+#############################################################
224+
225+##
226+#
227+# Begin $(top_srcdir)/Config/Python.am
228+#
229+##
230+include $(top_srcdir)/Config/Cpp.am
231+
232+lsmdatadocdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)
233+pythonapidocdir = $(lsmdatadocdir)/pythonapi
234+
235+esysdir = $(pythondir)/esys
236+lsmdir = $(esysdir)/lsm
237+
238+lsmdocdir = $(lsmdir)/doc
239+lsmbenchmarksdir = $(lsmdir)/benchmarks
240+lsmbenchmarkscompressdir = $(lsmbenchmarksdir)/compress
241+lsmbenchmarksgouge2ddir = $(lsmbenchmarksdir)/gouge2d
242+lsmexamplesdir = $(lsmdir)/examples
243+lsmexamplessimpledir = $(lsmexamplesdir)/simple
244+lsmexampleswavepropdir= $(lsmexamplesdir)/waveprop
245+lsmtoolsdir = $(lsmdir)/tools
246+lsmutildir = $(lsmdir)/util
247+lsmgeometrydir = $(lsmdir)/geometry
248+lsmsimdir = $(lsmdir)/sim
249+lsmsimcoupleddir = $(lsmsimdir)/coupled
250+lsmvisdir = $(lsmdir)/vis
251+lsmviscoredir = $(lsmvisdir)/core
252+lsmvisvtkdir = $(lsmvisdir)/vtk
253+lsmvispovraydir = $(lsmvisdir)/povray
254+
255+PYTHON_DLL_EXT = .so
256+
257+AM_CPPFLAGS += $(PYTHON_CPPFLAGS)
258
259=== added file 'trunk/Config/ax_boost_base.m4'
260--- trunk/Config/ax_boost_base.m4 1970-01-01 00:00:00 +0000
261+++ trunk/Config/ax_boost_base.m4 2013-05-08 08:43:26 +0000
262@@ -0,0 +1,219 @@
263+# ===========================================================================
264+# http://www.nongnu.org/autoconf-archive/ax_boost_base.html
265+# ===========================================================================
266+#
267+# SYNOPSIS
268+#
269+# AX_BOOST_BASE([MINIMUM-VERSION])
270+#
271+# DESCRIPTION
272+#
273+# Test for the Boost C++ libraries of a particular version (or newer)
274+#
275+# If no path to the installed boost library is given the macro searchs
276+# under /usr, /usr/local, /opt and /opt/local and evaluates the
277+# $BOOST_ROOT environment variable. Further documentation is available at
278+# <http://randspringer.de/boost/index.html>.
279+#
280+# This macro calls:
281+#
282+# AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS)
283+#
284+# And sets:
285+#
286+# HAVE_BOOST
287+#
288+# LICENSE
289+#
290+# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
291+#
292+# Copying and distribution of this file, with or without modification, are
293+# permitted in any medium without royalty provided the copyright notice
294+# and this notice are preserved.
295+
296+AC_DEFUN([AX_BOOST_BASE],
297+[
298+AC_ARG_WITH([boost],
299+ AS_HELP_STRING([--with-boost@<:@=DIR@:>@], [use boost (default is yes) - it is possible to specify the root directory for boost (optional)]),
300+ [
301+ if test "$withval" = "no"; then
302+ want_boost="no"
303+ elif test "$withval" = "yes"; then
304+ want_boost="yes"
305+ ac_boost_path=""
306+ else
307+ want_boost="yes"
308+ ac_boost_path="$withval"
309+ fi
310+ ],
311+ [want_boost="yes"])
312+
313+
314+AC_ARG_WITH([boost-libdir],
315+ AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
316+ [Force given directory for boost libraries. Note that this will overwrite library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]),
317+ [
318+ if test -d $withval
319+ then
320+ ac_boost_lib_path="$withval"
321+ else
322+ AC_MSG_ERROR(--with-boost-libdir expected directory name)
323+ fi
324+ ],
325+ [ac_boost_lib_path=""]
326+)
327+
328+if test "x$want_boost" = "xyes"; then
329+ boost_lib_version_req=ifelse([$1], ,1.20.0,$1)
330+ boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
331+ boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'`
332+ boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
333+ boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
334+ if test "x$boost_lib_version_req_sub_minor" = "x" ; then
335+ boost_lib_version_req_sub_minor="0"
336+ fi
337+ WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
338+ AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
339+ succeeded=no
340+
341+ dnl first we check the system location for boost libraries
342+ dnl this location ist chosen if boost libraries are installed with the --layout=system option
343+ dnl or if you install boost with RPM
344+ if test "$ac_boost_path" != ""; then
345+ BOOST_LDFLAGS="-L$ac_boost_path/lib"
346+ BOOST_CPPFLAGS="-I$ac_boost_path/include"
347+ else
348+ for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
349+ if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
350+ BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib"
351+ BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
352+ break;
353+ fi
354+ done
355+ fi
356+
357+ dnl overwrite ld flags if we have required special directory with
358+ dnl --with-boost-libdir parameter
359+ if test "$ac_boost_lib_path" != ""; then
360+ BOOST_LDFLAGS="-L$ac_boost_lib_path"
361+ fi
362+
363+ CPPFLAGS_SAVED="$CPPFLAGS"
364+ CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
365+ export CPPFLAGS
366+
367+ LDFLAGS_SAVED="$LDFLAGS"
368+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
369+ export LDFLAGS
370+
371+ AC_LANG_PUSH(C++)
372+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
373+ @%:@include <boost/version.hpp>
374+ ]], [[
375+ #if BOOST_VERSION >= $WANT_BOOST_VERSION
376+ // Everything is okay
377+ #else
378+ # error Boost version is too old
379+ #endif
380+ ]])],[
381+ AC_MSG_RESULT(yes)
382+ succeeded=yes
383+ found_system=yes
384+ ],[
385+ ])
386+ AC_LANG_POP([C++])
387+
388+
389+
390+ dnl if we found no boost with system layout we search for boost libraries
391+ dnl built and installed without the --layout=system option or for a staged(not installed) version
392+ if test "x$succeeded" != "xyes"; then
393+ _version=0
394+ if test "$ac_boost_path" != ""; then
395+ if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
396+ for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
397+ _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
398+ V_CHECK=`expr $_version_tmp \> $_version`
399+ if test "$V_CHECK" = "1" ; then
400+ _version=$_version_tmp
401+ fi
402+ VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
403+ BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
404+ done
405+ fi
406+ else
407+ for ac_boost_path in /usr /usr/local /opt /opt/local ; do
408+ if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
409+ for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
410+ _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
411+ V_CHECK=`expr $_version_tmp \> $_version`
412+ if test "$V_CHECK" = "1" ; then
413+ _version=$_version_tmp
414+ best_path=$ac_boost_path
415+ fi
416+ done
417+ fi
418+ done
419+
420+ VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
421+ BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
422+ if test "$ac_boost_lib_path" = ""
423+ then
424+ BOOST_LDFLAGS="-L$best_path/lib"
425+ fi
426+
427+ if test "x$BOOST_ROOT" != "x"; then
428+ if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/lib" && test -r "$BOOST_ROOT/stage/lib"; then
429+ version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
430+ stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
431+ stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
432+ V_CHECK=`expr $stage_version_shorten \>\= $_version`
433+ if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then
434+ AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
435+ BOOST_CPPFLAGS="-I$BOOST_ROOT"
436+ BOOST_LDFLAGS="-L$BOOST_ROOT/stage/lib"
437+ fi
438+ fi
439+ fi
440+ fi
441+
442+ CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
443+ export CPPFLAGS
444+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
445+ export LDFLAGS
446+
447+ AC_LANG_PUSH(C++)
448+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
449+ @%:@include <boost/version.hpp>
450+ ]], [[
451+ #if BOOST_VERSION >= $WANT_BOOST_VERSION
452+ // Everything is okay
453+ #else
454+ # error Boost version is too old
455+ #endif
456+ ]])],[
457+ AC_MSG_RESULT(yes)
458+ succeeded=yes
459+ found_system=yes
460+ ],[
461+ ])
462+ AC_LANG_POP([C++])
463+ fi
464+
465+ if test "$succeeded" != "yes" ; then
466+ if test "$_version" = "0" ; then
467+ AC_MSG_ERROR([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
468+ else
469+ AC_MSG_NOTICE([Your boost libraries seem too old (version $_version).])
470+ fi
471+ else
472+ AC_SUBST(BOOST_CPPFLAGS)
473+ AC_SUBST(BOOST_LDFLAGS)
474+ AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
475+ fi
476+
477+ CPPFLAGS="$CPPFLAGS_SAVED"
478+ LDFLAGS="$LDFLAGS_SAVED"
479+fi
480+
481+])
482
483=== added file 'trunk/Config/ax_boost_filesystem.m4'
484--- trunk/Config/ax_boost_filesystem.m4 1970-01-01 00:00:00 +0000
485+++ trunk/Config/ax_boost_filesystem.m4 2013-05-08 08:43:26 +0000
486@@ -0,0 +1,112 @@
487+# ===========================================================================
488+# http://www.nongnu.org/autoconf-archive/ax_boost_filesystem.html
489+# ===========================================================================
490+#
491+# SYNOPSIS
492+#
493+# AX_BOOST_FILESYSTEM
494+#
495+# DESCRIPTION
496+#
497+# Test for Filesystem library from the Boost C++ libraries. The macro
498+# requires a preceding call to AX_BOOST_BASE. Further documentation is
499+# available at <http://randspringer.de/boost/index.html>.
500+#
501+# This macro calls:
502+#
503+# AC_SUBST(BOOST_FILESYSTEM_LIB)
504+#
505+# And sets:
506+#
507+# HAVE_BOOST_FILESYSTEM
508+#
509+# LICENSE
510+#
511+# Copyright (c) 2009 Thomas Porschberg <thomas@randspringer.de>
512+# Copyright (c) 2009 Michael Tindal
513+# Copyright (c) 2009 Roman Rybalko <libtorrent@romanr.info>
514+#
515+# Copying and distribution of this file, with or without modification, are
516+# permitted in any medium without royalty provided the copyright notice
517+# and this notice are preserved.
518+
519+AC_DEFUN([AX_BOOST_FILESYSTEM],
520+[
521+ AC_ARG_WITH([boost-filesystem],
522+ AS_HELP_STRING([--with-boost-filesystem@<:@=special-lib@:>@],
523+ [use the Filesystem library from boost - it is possible to specify a certain library for the linker
524+ e.g. --with-boost-filesystem=boost_filesystem-gcc-mt ]),
525+ [
526+ if test "$withval" = "no"; then
527+ want_boost="no"
528+ elif test "$withval" = "yes"; then
529+ want_boost="yes"
530+ ax_boost_user_filesystem_lib=""
531+ else
532+ want_boost="yes"
533+ ax_boost_user_filesystem_lib="$withval"
534+ fi
535+ ],
536+ [want_boost="yes"]
537+ )
538+
539+ if test "x$want_boost" = "xyes"; then
540+ AC_REQUIRE([AC_PROG_CC])
541+ CPPFLAGS_SAVED="$CPPFLAGS"
542+ CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
543+ #export CPPFLAGS
544+
545+ LDFLAGS_SAVED="$LDFLAGS"
546+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
547+ #export LDFLAGS
548+
549+ LIBS_SAVED=$LIBS
550+ LIBS="$LIBS $BOOST_SYSTEM_LIB"
551+ #export LIBS
552+
553+ AC_CACHE_CHECK(whether the Boost::Filesystem library is available,
554+ ax_cv_boost_filesystem,
555+ [AC_LANG_PUSH([C++])
556+ AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[@%:@include <boost/filesystem/path.hpp>]],
557+ [[using namespace boost::filesystem;
558+ path my_path( "foo/bar/data.txt" );
559+ return 0;]]),
560+ ax_cv_boost_filesystem=yes, ax_cv_boost_filesystem=no)
561+ AC_LANG_POP([C++])
562+ ])
563+ if test "x$ax_cv_boost_filesystem" = "xyes"; then
564+ AC_DEFINE(HAVE_BOOST_FILESYSTEM,,[define if the Boost::Filesystem library is available])
565+ BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
566+ if test "x$ax_boost_user_filesystem_lib" = "x"; then
567+ for libextension in `ls $BOOSTLIBDIR/libboost_filesystem*.{so,dylib,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_filesystem.*\)\.so.*$;\1;' -e 's;^lib\(boost_filesystem.*\)\.a*$;\1;' -e 's;^lib\(boost_filesystem.*\)\.dylib$;\1;'` ; do
568+ ax_lib=${libextension}
569+ AC_CHECK_LIB($ax_lib, __cxa_atexit,
570+ [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
571+ [link_filesystem="no"])
572+ done
573+ if test "x$link_program_options" != "xyes"; then
574+ for libextension in `ls $BOOSTLIBDIR/boost_filesystem*.{dll,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_filesystem.*\)\.dll.*$;\1;' -e 's;^\(boost_filesystem.*\)\.a*$;\1;'` ; do
575+ ax_lib=${libextension}
576+ AC_CHECK_LIB($ax_lib, __cxa_atexit,
577+ [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
578+ [link_filesystem="no"])
579+ done
580+ fi
581+ else
582+ for ax_lib in $ax_boost_user_filesystem_lib boost_filesystem-$ax_boost_user_filesystem_lib; do
583+ AC_CHECK_LIB($ax_lib, __cxa_atexit,
584+ [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
585+ [link_filesystem="no"])
586+ done
587+
588+ fi
589+ if test "x$link_filesystem" != "xyes"; then
590+ AC_MSG_ERROR(Could not link against $ax_lib !)
591+ fi
592+ fi
593+
594+ CPPFLAGS="$CPPFLAGS_SAVED"
595+ LDFLAGS="$LDFLAGS_SAVED"
596+ LIBS="$LIBS_SAVED"
597+ fi
598+])
599
600=== added file 'trunk/Config/ax_boost_python.m4'
601--- trunk/Config/ax_boost_python.m4 1970-01-01 00:00:00 +0000
602+++ trunk/Config/ax_boost_python.m4 2013-05-08 08:43:26 +0000
603@@ -0,0 +1,91 @@
604+# ===========================================================================
605+# http://autoconf-archive.cryp.to/ax_boost_python.html
606+# ===========================================================================
607+#
608+# SYNOPSIS
609+#
610+# AX_BOOST_PYTHON
611+#
612+# DESCRIPTION
613+#
614+# This macro checks to see if the Boost.Python library is installed. It
615+# also attempts to guess the currect library name using several attempts.
616+# It tries to build the library name using a user supplied name or suffix
617+# and then just the raw library.
618+#
619+# If the library is found, HAVE_BOOST_PYTHON is defined and
620+# BOOST_PYTHON_LIB is set to the name of the library.
621+#
622+# This macro calls AC_SUBST(BOOST_PYTHON_LIB).
623+#
624+# In order to ensure that the Python headers are specified on the include
625+# path, this macro requires AX_PYTHON to be called.
626+#
627+# LAST MODIFICATION
628+#
629+# 2008-04-12
630+#
631+# COPYLEFT
632+#
633+# Copyright (c) 2008 Michael Tindal
634+#
635+# This program is free software; you can redistribute it and/or modify it
636+# under the terms of the GNU General Public License as published by the
637+# Free Software Foundation; either version 2 of the License, or (at your
638+# option) any later version.
639+#
640+# This program is distributed in the hope that it will be useful, but
641+# WITHOUT ANY WARRANTY; without even the implied warranty of
642+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
643+# Public License for more details.
644+#
645+# You should have received a copy of the GNU General Public License along
646+# with this program. If not, see <http://www.gnu.org/licenses/>.
647+#
648+# As a special exception, the respective Autoconf Macro's copyright owner
649+# gives unlimited permission to copy, distribute and modify the configure
650+# scripts that are the output of Autoconf when processing the Macro. You
651+# need not follow the terms of the GNU General Public License when using
652+# or distributing such scripts, even though portions of the text of the
653+# Macro appear in them. The GNU General Public License (GPL) does govern
654+# all other use of the material that constitutes the Autoconf Macro.
655+#
656+# This special exception to the GPL applies to versions of the Autoconf
657+# Macro released by the Autoconf Macro Archive. When you make and
658+# distribute a modified version of the Autoconf Macro, you may extend this
659+# special exception to the GPL to apply to your modified version as well.
660+
661+AC_DEFUN([AX_BOOST_PYTHON],
662+[AC_CACHE_CHECK(whether the Boost::Python library is available,
663+ac_cv_boost_python,
664+[AC_LANG_SAVE
665+ AC_LANG_CPLUSPLUS
666+ CPPFLAGS_SAVE=$CPPFLAGS
667+ CPPFLAGS="$BOOST_CPPFLAGS $PYTHON_CPPFLAGS $CPPFLAGS"
668+ if test x$PYTHON_INCLUDE_DIR != x; then
669+ CPPFLAGS=-I$PYTHON_INCLUDE_DIR $CPPFLAGS
670+ fi
671+ AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[
672+ #include <boost/python/module.hpp>
673+ using namespace boost::python;
674+ BOOST_PYTHON_MODULE(test) { throw "Boost::Python test."; }]],
675+ [[return 0;]]),
676+ ac_cv_boost_python=yes, ac_cv_boost_python=no)
677+ AC_LANG_RESTORE
678+ CPPFLAGS=$CPPFLAGS_SAVE
679+])
680+if test "$ac_cv_boost_python" = "yes"; then
681+ AC_DEFINE(HAVE_BOOST_PYTHON,,[define if the Boost::Python library is available])
682+ ax_python_lib=boost_python
683+ AC_ARG_WITH([boost-python],AS_HELP_STRING([--with-boost-python],[specify the boost python library or suffix to use]),
684+ [if test "x$with_boost_python" != "xno"; then
685+ ax_python_lib=$with_boost_python
686+ ax_boost_python_lib=boost_python-$with_boost_python
687+ fi])
688+ LDFLAGS="$BOOST_LDFLAGS $LDFLAGS"
689+ for ax_lib in $ax_python_lib $ax_boost_python_lib boost_python boost_python-mt; do
690+ AC_CHECK_LIB($ax_lib, __cxa_atexit, [BOOST_PYTHON_LIB=-l$ax_lib break])
691+ done
692+ AC_SUBST(BOOST_PYTHON_LIB)
693+fi
694+])dnl
695
696=== added file 'trunk/Config/cppunit.m4'
697--- trunk/Config/cppunit.m4 1970-01-01 00:00:00 +0000
698+++ trunk/Config/cppunit.m4 2013-05-08 08:43:26 +0000
699@@ -0,0 +1,80 @@
700+dnl
701+dnl AM_PATH_CPPUNIT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
702+dnl
703+AC_DEFUN([AM_PATH_CPPUNIT],
704+[
705+
706+AC_ARG_WITH(cppunit-prefix,[ --with-cppunit-prefix=PFX Prefix where CppUnit is installed (optional)],
707+ cppunit_config_prefix="$withval", cppunit_config_prefix="")
708+AC_ARG_WITH(cppunit-exec-prefix,[ --with-cppunit-exec-prefix=PFX Exec prefix where CppUnit is installed (optional)],
709+ cppunit_config_exec_prefix="$withval", cppunit_config_exec_prefix="")
710+
711+ if test x$cppunit_config_exec_prefix != x ; then
712+ cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix"
713+ if test x${CPPUNIT_CONFIG+set} != xset ; then
714+ CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config
715+ fi
716+ fi
717+ if test x$cppunit_config_prefix != x ; then
718+ cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix"
719+ if test x${CPPUNIT_CONFIG+set} != xset ; then
720+ CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config
721+ fi
722+ fi
723+
724+ AC_PATH_PROG(CPPUNIT_CONFIG, cppunit-config, no)
725+ cppunit_version_min=$1
726+
727+ AC_MSG_CHECKING(for Cppunit - version >= $cppunit_version_min)
728+ no_cppunit=""
729+ if test "$CPPUNIT_CONFIG" = "no" ; then
730+ no_cppunit=yes
731+ else
732+ CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags`
733+ CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs`
734+ cppunit_version=`$CPPUNIT_CONFIG --version`
735+
736+ cppunit_major_version=`echo $cppunit_version | \
737+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
738+ cppunit_minor_version=`echo $cppunit_version | \
739+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
740+ cppunit_micro_version=`echo $cppunit_version | \
741+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
742+
743+ cppunit_major_min=`echo $cppunit_version_min | \
744+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
745+ cppunit_minor_min=`echo $cppunit_version_min | \
746+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
747+ cppunit_micro_min=`echo $cppunit_version_min | \
748+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
749+
750+ cppunit_version_proper=`expr \
751+ $cppunit_major_version \> $cppunit_major_min \| \
752+ $cppunit_major_version \= $cppunit_major_min \& \
753+ $cppunit_minor_version \> $cppunit_minor_min \| \
754+ $cppunit_major_version \= $cppunit_major_min \& \
755+ $cppunit_minor_version \= $cppunit_minor_min \& \
756+ $cppunit_micro_version \>= $cppunit_micro_min `
757+
758+ if test "$cppunit_version_proper" = "1" ; then
759+ AC_MSG_RESULT([$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version])
760+ else
761+ AC_MSG_RESULT(no)
762+ no_cppunit=yes
763+ fi
764+ fi
765+
766+ if test "x$no_cppunit" = x ; then
767+ ifelse([$2], , :, [$2])
768+ else
769+ CPPUNIT_CFLAGS=""
770+ CPPUNIT_LIBS=""
771+ ifelse([$3], , :, [$3])
772+ fi
773+
774+ AC_SUBST(CPPUNIT_CFLAGS)
775+ AC_SUBST(CPPUNIT_LIBS)
776+])
777+
778+
779+
780
781=== added file 'trunk/Config/pkg.m4'
782--- trunk/Config/pkg.m4 1970-01-01 00:00:00 +0000
783+++ trunk/Config/pkg.m4 2013-05-08 08:43:26 +0000
784@@ -0,0 +1,58 @@
785+
786+dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
787+dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
788+dnl also defines GSTUFF_PKG_ERRORS on error
789+
790+AC_DEFUN([PKG_CHECK_MODULES], [
791+ succeeded=no
792+
793+ if test -z "$PKG_CONFIG"; then
794+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
795+ fi
796+
797+ if test "$PKG_CONFIG" = "no" ; then
798+ echo "*** The pkg-config script could not be found. Make sure it is"
799+ echo "*** in your path, or set the PKG_CONFIG environment variable"
800+ echo "*** to the full path to pkg-config."
801+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
802+ else
803+ PKG_CONFIG_MIN_VERSION=0.6.0
804+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
805+ AC_MSG_CHECKING(for $2)
806+
807+ if $PKG_CONFIG --exists "$2" ; then
808+ AC_MSG_RESULT(yes)
809+ succeeded=yes
810+
811+ AC_MSG_CHECKING($1_CFLAGS)
812+ $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
813+ AC_MSG_RESULT($$1_CFLAGS)
814+
815+ AC_MSG_CHECKING($1_LIBS)
816+ $1_LIBS=`$PKG_CONFIG --libs "$2"`
817+ AC_MSG_RESULT($$1_LIBS)
818+ else
819+ $1_CFLAGS=""
820+ $1_LIBS=""
821+ ## If we have a custom action on failure, don't print errors, but
822+ ## do set a variable so people can do so.
823+ $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
824+ ifelse([$4], ,echo $$1_PKG_ERRORS,)
825+ fi
826+
827+ AC_SUBST($1_CFLAGS)
828+ AC_SUBST($1_LIBS)
829+ else
830+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
831+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
832+ fi
833+ fi
834+
835+ if test $succeeded = yes; then
836+ ifelse([$3], , :, [$3])
837+ else
838+ ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
839+ fi
840+])
841+
842+
843
844=== added file 'trunk/Config/python.m4'
845--- trunk/Config/python.m4 1970-01-01 00:00:00 +0000
846+++ trunk/Config/python.m4 2013-05-08 08:43:26 +0000
847@@ -0,0 +1,193 @@
848+## ------------------------ -*- Autoconf -*-
849+## Python file handling
850+## From Andrew Dalke
851+## Updated by James Henstridge
852+## ------------------------
853+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009
854+# Free Software Foundation, Inc.
855+#
856+# This file is free software; the Free Software Foundation
857+# gives unlimited permission to copy and/or distribute it,
858+# with or without modifications, as long as this notice is preserved.
859+
860+# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
861+# ---------------------------------------------------------------------------
862+# Adds support for distributing Python modules and packages. To
863+# install modules, copy them to $(pythondir), using the python_PYTHON
864+# automake variable. To install a package with the same name as the
865+# automake package, install to $(pkgpythondir), or use the
866+# pkgpython_PYTHON automake variable.
867+#
868+# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
869+# locations to install python extension modules (shared libraries).
870+# Another macro is required to find the appropriate flags to compile
871+# extension modules.
872+#
873+# If your package is configured with a different prefix to python,
874+# users will have to add the install directory to the PYTHONPATH
875+# environment variable, or create a .pth file (see the python
876+# documentation for details).
877+#
878+# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
879+# cause an error if the version of python installed on the system
880+# doesn't meet the requirement. MINIMUM-VERSION should consist of
881+# numbers and dots only.
882+AC_DEFUN([AM_PATH_PYTHON],
883+ [
884+ dnl Find a Python interpreter. Python versions prior to 2.0 are not
885+ dnl supported. (2.0 was released on October 16, 2000).
886+ m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
887+ [python python2 python3 python3.0 python2.6 python2.5 python2.4 python2.3 python2.2 dnl
888+python2.1 python2.0])
889+
890+ m4_if([$1],[],[
891+ dnl No version check is needed.
892+ # Find any Python interpreter.
893+ if test -z "$PYTHON"; then
894+ AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
895+ fi
896+ am_display_PYTHON=python
897+ ], [
898+ dnl A version check is needed.
899+ if test -n "$PYTHON"; then
900+ # If the user set $PYTHON, use it and don't search something else.
901+ AC_MSG_CHECKING([whether $PYTHON version >= $1])
902+ AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
903+ [AC_MSG_RESULT(yes)],
904+ [AC_MSG_ERROR(too old)])
905+ am_display_PYTHON=$PYTHON
906+ else
907+ # Otherwise, try each interpreter until we find one that satisfies
908+ # VERSION.
909+ AC_CACHE_CHECK([for a Python interpreter with version >= $1],
910+ [am_cv_pathless_PYTHON],[
911+ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
912+ test "$am_cv_pathless_PYTHON" = none && break
913+ AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
914+ done])
915+ # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
916+ if test "$am_cv_pathless_PYTHON" = none; then
917+ PYTHON=:
918+ else
919+ AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
920+ fi
921+ am_display_PYTHON=$am_cv_pathless_PYTHON
922+ fi
923+ ])
924+
925+ if test "$PYTHON" = :; then
926+ dnl Run any user-specified action, or abort.
927+ m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
928+ else
929+
930+ dnl Query Python for its version number. Getting [:3] seems to be
931+ dnl the best way to do this; it's what "site.py" does in the standard
932+ dnl library.
933+
934+ AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
935+ [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
936+ AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
937+
938+ dnl Use the values of $prefix and $exec_prefix for the corresponding
939+ dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
940+ dnl distinct variables so they can be overridden if need be. However,
941+ dnl general consensus is that you shouldn't need this ability.
942+
943+ AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
944+ AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
945+
946+ dnl At times (like when building shared libraries) you may want
947+ dnl to know which OS platform Python thinks this is.
948+
949+ AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
950+ [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
951+ AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
952+
953+
954+ dnl Set up 4 directories:
955+
956+ dnl pythondir -- where to install python scripts. This is the
957+ dnl site-packages directory, not the python standard library
958+ dnl directory like in previous automake betas. This behavior
959+ dnl is more consistent with lispdir.m4 for example.
960+ dnl Query distutils for this directory. distutils does not exist in
961+ dnl Python 1.5, so we fall back to the hardcoded directory if it
962+ dnl doesn't work.
963+ AC_CACHE_CHECK([for $am_display_PYTHON script directory],
964+ [am_cv_python_pythondir],
965+ [if test "x$prefix" = xNONE
966+ then
967+ am_py_prefix=$ac_default_prefix
968+ else
969+ am_py_prefix=$prefix
970+ fi
971+ am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
972+ echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
973+ case $am_cv_python_pythondir in
974+ $am_py_prefix*)
975+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
976+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
977+ ;;
978+ esac
979+ ])
980+ AC_SUBST([pythondir], [$am_cv_python_pythondir])
981+
982+ dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
983+ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
984+ dnl more consistent with the rest of automake.
985+
986+ AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
987+
988+ dnl pyexecdir -- directory for installing python extension modules
989+ dnl (shared libraries)
990+ dnl Query distutils for this directory. distutils does not exist in
991+ dnl Python 1.5, so we fall back to the hardcoded directory if it
992+ dnl doesn't work.
993+ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
994+ [am_cv_python_pyexecdir],
995+ [if test "x$exec_prefix" = xNONE
996+ then
997+ am_py_exec_prefix=$am_py_prefix
998+ else
999+ am_py_exec_prefix=$exec_prefix
1000+ fi
1001+ am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
1002+ echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
1003+ case $am_cv_python_pyexecdir in
1004+ $am_py_exec_prefix*)
1005+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
1006+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
1007+ ;;
1008+ esac
1009+ ])
1010+ AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
1011+
1012+ dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
1013+
1014+ AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
1015+
1016+ dnl Run any user-specified action.
1017+ $2
1018+ fi
1019+
1020+])
1021+
1022+
1023+# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
1024+# ---------------------------------------------------------------------------
1025+# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
1026+# Run ACTION-IF-FALSE otherwise.
1027+# This test uses sys.hexversion instead of the string equivalent (first
1028+# word of sys.version), in order to cope with versions such as 2.2c1.
1029+# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
1030+AC_DEFUN([AM_PYTHON_CHECK_VERSION],
1031+ [prog="import sys
1032+# split strings by '.' and convert to numeric. Append some zeros
1033+# because we need at least 4 digits for the hex conversion.
1034+# map returns an iterator in Python 3.0 and a list in 2.x
1035+minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
1036+minverhex = 0
1037+# xrange is not present in Python 3.0 and range returns an iterator
1038+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
1039+sys.exit(sys.hexversion < minverhex)"
1040+ AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
1041
1042=== added file 'trunk/Config/rules.am'
1043--- trunk/Config/rules.am 1970-01-01 00:00:00 +0000
1044+++ trunk/Config/rules.am 2013-05-08 08:43:26 +0000
1045@@ -0,0 +1,58 @@
1046+#############################################################
1047+## ##
1048+## Copyright (c) 2003-2011 by The University of Queensland ##
1049+## Earth Systems Science Computational Centre (ESSCC) ##
1050+## http://www.uq.edu.au/esscc ##
1051+## ##
1052+## Primary Business: Brisbane, Queensland, Australia ##
1053+## Licensed under the Open Software License version 3.0 ##
1054+## http://www.opensource.org/licenses/osl-3.0.php ##
1055+## ##
1056+#############################################################
1057+
1058+##
1059+#
1060+# Begin $(top_srcdir)/Config/rules.am
1061+#
1062+
1063+if TAU_PROFILING
1064+ include $(TAU_MAKEFILE)
1065+ AM_MAKEFLAGS = -r CC="$(TAU_CC)" CXX="$(TAU_CXX)" CPPFLAGS="$(TAU_DEFS) $(TAU_INCLUDE) $(TAU_MPI_INCLUDE)"
1066+
1067+ PDTPARSE = $(PDTDIR)/$(CONFIG_ARCH)/bin/cxxparse
1068+ TAUINSTR = $(TAU_PREFIX_INSTALL_DIR)/$(CONFIG_ARCH)/bin/tau_instrumentor
1069+
1070+ EXTRA_LD_LIBS = $(TAU_LDFLAGS) $(TAU_MPI_LIBS) $(TAU_LIBS) -lpfm
1071+
1072+#
1073+# Prevent intermediate instrumented files from automatically
1074+# being deleted.
1075+#
1076+.SECONDARY: .inst_cpp .pdb
1077+
1078+#
1079+# Cancel implicit rules
1080+#
1081+%.o: %.cpp
1082+
1083+%.o:%.inst_cpp
1084+ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
1085+ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
1086+
1087+%.inst_cpp: %.pdb
1088+ $(TAUINSTR) $*.pdb $*.cpp -o $@
1089+
1090+%.pdb: %.cpp
1091+ $(PDTPARSE) $< -I. $(CPPFLAGS) $(AM_CPPFLAGS)
1092+
1093+else
1094+ AM_MAKEFLAGS =
1095+ EXTRA_LD_LIBS =
1096+endif
1097+
1098+CLEANFILES = *.inst_cpp *.pdb
1099+
1100+#
1101+# End $(top_srcdir)/Config/rules.am
1102+#
1103+##
1104
1105=== added directory 'trunk/Doc'
1106=== added file 'trunk/Doc/FileFormat.pdf'
1107Binary files trunk/Doc/FileFormat.pdf 1970-01-01 00:00:00 +0000 and trunk/Doc/FileFormat.pdf 2013-05-08 08:43:26 +0000 differ
1108=== added file 'trunk/Doc/FileFormat.ps'
1109--- trunk/Doc/FileFormat.ps 1970-01-01 00:00:00 +0000
1110+++ trunk/Doc/FileFormat.ps 2013-05-08 08:43:26 +0000
1111@@ -0,0 +1,2861 @@
1112+%!PS-Adobe-2.0
1113+%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
1114+%%Title: FileFormat.dvi
1115+%%Pages: 4
1116+%%PageOrder: Ascend
1117+%%BoundingBox: 0 0 596 842
1118+%%DocumentFonts: CMR17 CMR12 CMBX12 CMR10 CMTI10 CMBX10 CMSY10 CMR7 CMR6
1119+%%+ CMR8 CMTT10 CMSS10 CMMI10
1120+%%DocumentPaperSizes: a4
1121+%%EndComments
1122+%DVIPSWebPage: (www.radicaleye.com)
1123+%DVIPSCommandLine: dvips FileFormat
1124+%DVIPSParameters: dpi=600, compressed
1125+%DVIPSSource: TeX output 2004.11.08:1214
1126+%%BeginProcSet: texc.pro
1127+%!
1128+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
1129+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
1130+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
1131+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
1132+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
1133+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
1134+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
1135+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
1136+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
1137+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
1138+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
1139+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
1140+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
1141+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
1142+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
1143+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
1144+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1145+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
1146+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
1147+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
1148+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
1149+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
1150+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
1151+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
1152+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
1153+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
1154+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
1155+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
1156+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
1157+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
1158+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1159+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
1160+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
1161+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
1162+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
1163+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
1164+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
1165+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
1166+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1167+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
1168+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
1169+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
1170+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
1171+(LaserWriter 16/600)]{A length product length le{A length product exch 0
1172+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
1173+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
1174+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
1175+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
1176+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
1177+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
1178+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
1179+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
1180+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
1181+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
1182+
1183+%%EndProcSet
1184+%%BeginProcSet: f7b6d320.enc
1185+% Thomas Esser, Dec 2002. public domain
1186+%
1187+% Encoding for:
1188+% cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
1189+% cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
1190+% cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
1191+% cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
1192+%
1193+/TeXf7b6d320Encoding [
1194+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
1195+/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
1196+/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
1197+/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
1198+/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
1199+/period /slash /zero /one /two /three /four /five /six /seven /eight
1200+/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
1201+/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
1202+/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
1203+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
1204+/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
1205+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1206+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1207+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1208+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
1209+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
1210+/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
1211+/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
1212+/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
1213+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1214+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1215+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1216+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1217+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1218+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1219+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1220+] def
1221+
1222+%%EndProcSet
1223+%%BeginProcSet: 74afc74c.enc
1224+% Thomas Esser, Dec 2002. public domain
1225+%
1226+% Encoding for:
1227+% cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10
1228+%
1229+/TeX74afc74cEncoding [
1230+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
1231+/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
1232+/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
1233+/suppress /exclam /quotedblright /numbersign /sterling /percent
1234+/ampersand /quoteright /parenleft /parenright /asterisk /plus /comma
1235+/hyphen /period /slash /zero /one /two /three /four /five /six /seven
1236+/eight /nine /colon /semicolon /exclamdown /equal /questiondown /question
1237+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
1238+/X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
1239+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
1240+/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
1241+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1242+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1243+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1244+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
1245+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
1246+/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
1247+/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
1248+/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
1249+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1250+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1251+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1252+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1253+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1254+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1255+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1256+] def
1257+
1258+%%EndProcSet
1259+%%BeginProcSet: bbad153f.enc
1260+% Thomas Esser, Dec 2002. public domain
1261+%
1262+% Encoding for:
1263+% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
1264+%
1265+/TeXbbad153fEncoding [
1266+/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
1267+/plusminus /minusplus /circleplus /circleminus /circlemultiply
1268+/circledivide /circledot /circlecopyrt /openbullet /bullet
1269+/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
1270+/greaterequal /precedesequal /followsequal /similar /approxequal
1271+/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
1272+/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
1273+/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
1274+/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
1275+/prime /infinity /element /owner /triangle /triangleinv /negationslash
1276+/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
1277+/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
1278+/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
1279+/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
1280+/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
1281+/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
1282+/backslash /wreathproduct /radical /coproduct /nabla /integral
1283+/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
1284+/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
1285+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1286+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1287+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1288+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1289+/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
1290+/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
1291+/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
1292+/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
1293+/lessequal /greaterequal /precedesequal /followsequal /similar
1294+/approxequal /propersubset /propersuperset /lessmuch /greatermuch
1295+/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
1296+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1297+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1298+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1299+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1300+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1301+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1302+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1303+] def
1304+
1305+%%EndProcSet
1306+%%BeginProcSet: 09fbbfac.enc
1307+% Thomas Esser, Dec 2002. public domain
1308+%
1309+% Encoding for:
1310+% cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9
1311+/TeX09fbbfacEncoding [
1312+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
1313+/Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown
1314+/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla
1315+/germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam
1316+/quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft
1317+/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
1318+/two /three /four /five /six /seven /eight /nine /colon /semicolon /less
1319+/equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
1320+/O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright
1321+/asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l
1322+/m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright
1323+/asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef
1324+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1325+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1326+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1327+/.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi
1328+/Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown
1329+/quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute
1330+/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
1331+/OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef
1332+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1333+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1334+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1335+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1336+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1337+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1338+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1339+] def
1340+
1341+%%EndProcSet
1342+%%BeginProcSet: aae443f0.enc
1343+% Thomas Esser, Dec 2002. public domain
1344+%
1345+% Encoding for:
1346+% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
1347+%
1348+/TeXaae443f0Encoding [
1349+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
1350+/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa
1351+/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi
1352+/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf
1353+/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft
1354+/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle
1355+/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle
1356+/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash
1357+/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N
1358+/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow
1359+/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p
1360+/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector
1361+/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1362+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1363+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1364+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1365+/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
1366+/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta
1367+/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon
1368+/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1369+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1370+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1371+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1372+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1373+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1374+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1375+/.notdef /.notdef /.notdef /.notdef /.notdef
1376+] def
1377+
1378+%%EndProcSet
1379+%%BeginProcSet: texps.pro
1380+%!
1381+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
1382+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
1383+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
1384+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
1385+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
1386+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
1387+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
1388+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
1389+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
1390+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
1391+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
1392+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
1393+end
1394+
1395+%%EndProcSet
1396+%%BeginFont: CMMI10
1397+%!PS-AdobeFont-1.1: CMMI10 1.100
1398+%%CreationDate: 1996 Jul 23 07:53:57
1399+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
1400+11 dict begin
1401+/FontInfo 7 dict dup begin
1402+/version (1.100) readonly def
1403+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1404+/FullName (CMMI10) readonly def
1405+/FamilyName (Computer Modern) readonly def
1406+/Weight (Medium) readonly def
1407+/ItalicAngle -14.04 def
1408+/isFixedPitch false def
1409+end readonly def
1410+/FontName /CMMI10 def
1411+/PaintType 0 def
1412+/FontType 1 def
1413+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1414+/Encoding 256 array
1415+0 1 255 {1 index exch /.notdef put} for
1416+dup 0 /.notdef put
1417+readonly def
1418+/FontBBox{-32 -250 1048 750}readonly def
1419+/UniqueID 5087385 def
1420+currentdict end
1421+currentfile eexec
1422+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
1423+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
1424+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
1425+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
1426+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
1427+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
1428+9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
1429+990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
1430+6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
1431+DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
1432+59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
1433+D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
1434+8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
1435+6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
1436+1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
1437+03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
1438+95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
1439+74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
1440+3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
1441+47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
1442+AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
1443+42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
1444+40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
1445+B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
1446+95601766730045C2D9F29DC2BFEBDE5E7720CC7D82522855B154A338B97295BF
1447+C94D357B94E5EE165165F83EAC02B88B573631B8D41DF206F7D0D338F76845F6
1448+254C471585F53C741E6688418E5AC9F925118BA1FF52986F752794737CFCBA41
1449+D679150DDEA6E48FECD336FA584A3024B278B6F3E83BD95C2747B110E60F8457
1450+83A0BC821CBC5D23D195C312191509F373F508982B45805E370437AAF029511E
1451+36054CDEBC869477682E06298EFDF6CD99C517A6D45BC1002BFCF6B919E44E49
1452+1C50C65E3E0273F272E1D084B6DC6C88C65FC406A3545F13475FFA00B9A84E1D
1453+92E99123DE992A8A9FABD0375F2052D369D85D04138B6758859FA901A94C5DD7
1454+78EF4DEC089465D275053BF37A37D21EEAD9CA46CBE5C73CB63E5500FA005DFD
1455+CAF646BBCD7D6E8C09BB7EBB0B4D23356A556726E6FAC52A0000A5A5812E8D24
1456+B51C00FDC41828DAED369259ED5027406C3533AB886A784A00DC4088A9D56F6A
1457+8ED9B6B9775A8DF332D6A05F5B25461F9E9FF1A244D536F82C347A476F4AD34D
1458+A6A90FC709E11D41631EACDD4B4DC17ADF72BCE6CFBDB32F50A8682848C7643E
1459+78D1E4CCDDF12C9D6B21F528AAA261DCBBDA5F7DC9DFFBE44A3441D3DDC9F268
1460+1BA42BA2A4A6E5CD2DCC4D7483CE62665CB2F395746B780BB4949C5847FB4642
1461+7CF6922B91BA4670C10A38B5D06A9FDB62E3D506A9E80A3999E816034152F426
1462+73983F1FDCA9CD3B3FFE8DDC2906959BB52AB45C4AC938EE5E7075A9189208CA
1463+05897D8388815CB19E351C4BE70B718D1C17E6E8A206B35BF7A5F8B4EA998F57
1464+42F7AC30D2198CBC98FA46683787E4C6CC19432446F7193A7B567F0DA9587615
1465+BC04BC64010CF75D87F87EA43A67BC9D9707837A8E45CB2F8D05B521D4D951FA
1466+6CF862A208777757CE3278AFE313AE55E93990D6E82F313D6C5132122D273A79
1467+F27AF9C135C97EBB9F4B0256414AA9957660ACBE13BA23CEFCC4516A30FBAE68
1468+F5CBFB4BA04E2A35AF5A739BF6F9E67883031E993D20E4A06FC93FDBD207BDBF
1469+DDA804D84A4B50FACA94FF039E5AFB369F446CF408EC600D35E05BDC24553593
1470+9933315ED4C7DEF9B08C690B51C11CF9424C4E650CD9A80CFDC769E1D6393185
1471+91D81E59A1D6186593EEB3BF355FFE11951C89AB97CD48F45BAC70DFF7B73DF7
1472+A18131DC0A58B947DE6F20B64C910FAE0BC25A1CD91947117FA04B0B6ABADD22
1473+40B72B7DD1B1E970A65017DA3B766A23E16615B6B0BA21420C22026CB9AFF945
1474+05DB6C097F7358DDC1F0257DDA77FB5E387FCDF2D811430A19286E66024827CB
1475+86A6205419B8204BE9C5602665BF425063A984F5AFC894C3BB3C5101E169386F
1476+FBE308C4D1CF1B95DF6EA59D7CDBC65FE47F368B0DB77CED24FF6A0534A822C1
1477+1A4443054942155C63344D9716644FCFFD13945C82008BFF8FCEB41DF35F9A94
1478+161E0C1C8CCAEDDDEB3E7DAE11268B4C56161B36769430DA076FE370894EB365
1479+EF5BD178B262D1029B70EA7EF95BECE9405A774BF8B5576D5040AABF5A51224C
1480+014428956667A98AE64008A6B25C2C3D427B8AE46DB8020F184F1DE273791052
1481+E968593534A5B60BC147353311159A020C8BEE417A4AC360C30BEEAB07A91221
1482+365C8E2704BB45FCECFA4E2598098358BF4AEAFF659D
1483+0000000000000000000000000000000000000000000000000000000000000000
1484+0000000000000000000000000000000000000000000000000000000000000000
1485+0000000000000000000000000000000000000000000000000000000000000000
1486+0000000000000000000000000000000000000000000000000000000000000000
1487+0000000000000000000000000000000000000000000000000000000000000000
1488+0000000000000000000000000000000000000000000000000000000000000000
1489+0000000000000000000000000000000000000000000000000000000000000000
1490+0000000000000000000000000000000000000000000000000000000000000000
1491+cleartomark
1492+%%EndFont
1493+%%BeginFont: CMSS10
1494+%!PS-AdobeFont-1.1: CMSS10 1.0
1495+%%CreationDate: 1991 Aug 20 17:33:34
1496+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
1497+11 dict begin
1498+/FontInfo 7 dict dup begin
1499+/version (1.0) readonly def
1500+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1501+/FullName (CMSS10) readonly def
1502+/FamilyName (Computer Modern) readonly def
1503+/Weight (Medium) readonly def
1504+/ItalicAngle 0 def
1505+/isFixedPitch false def
1506+end readonly def
1507+/FontName /CMSS10 def
1508+/PaintType 0 def
1509+/FontType 1 def
1510+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1511+/Encoding 256 array
1512+0 1 255 {1 index exch /.notdef put} for
1513+dup 0 /.notdef put
1514+readonly def
1515+/FontBBox{-61 -250 999 759}readonly def
1516+/UniqueID 5000803 def
1517+currentdict end
1518+currentfile eexec
1519+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1520+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
1521+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1522+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1523+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
1524+2BDBF16FBC7512FAA308A093FE5CF7158F1163BDCEEA888D07B439DBD4E8B4C9
1525+D198C03874B5E6F8FBF4922065A92BC3E66D05DE53971CB1424510E892442858
1526+D69CE1F76E4DA76C87C763A4B2FE36321E54B1328C9155B8ED6361855A151723
1527+3386AEA3D042B8D89C8C0E9A33E5DF3B466F7BB8C2C8A4ED4CDAFF55FC6D3EE6
1528+0AF2CEBFC1AC3A6E6692F8BB81F82D86BAE85016AD62FCB05467082C2E5AD348
1529+44D1439C2B59F65590E57CA0DE481A7A34E79931B1513C4C30156170409A4BB8
1530+46D412D1DAF88AD30722F12DBCA1CCC6B4BCC28D06B0D29149DDEC520C8FBA13
1531+6B82E2E1790F00B216282FF122EF0D47B70A1B29514DDF7C0435ED238C14BDF5
1532+6DA243117FBEF7398F97EB95597707ED63C6797EBA1B46EA19ABB1DABDA171B3
1533+16CD500F5D64CBFBE4F9CBC3E66A34427D3C4D0C432710289381F9BFD91B4FF4
1534+1E3A896C3EEA2F3105C218877D6C0C6B763760FA364D00065E1CAE9DCB5676ED
1535+286A9ED0D1C946DCA6A2A670EE0936FB4706CC62E234CFEED34AA615C48D2872
1536+A087F30990C85E64BA68F3D5C117123467DB411C9F2D6F6858CC70C1E352C477
1537+713097321B4C4FD4C5CDE305415F998E7245908EEDE6E056A736EA77BD8C639C
1538+3A79FFD0B74B3D28F0494A115F2841CF8A8827AB5608F96FD8998A5F40FB3DFE
1539+3AA0C7696DE4E1D18DC0D6E84B943175FC38FFC42A9C0CBB13A908978C98BFE5
1540+034F88480F32B9DEB2FD228FF6CB0B89B045AB02020C82E3F5716DC640613185
1541+9F597CE262729BC52132F43922B9E28BB71A30AC8709634561B22D13C4FAFE0A
1542+12C4451969226B220038AD8DDA990A4E2CAD53DBEAB698898BBD3046234EB4EA
1543+901287E71CB41296C431383AB85F18882F65BE36923F6C0FD6FAD87F09D5BE9D
1544+FB4E76FC098BB56B9FA6662C66CDC5BED18E80C5E7D9ED01318BA6F3914779F7
1545+206692193CE70BD497874C3D464D357C2BE915C103FF36C4C252EA481F5A24EC
1546+FCDF6EB221E0DBB142B63FD9828D38C0C1E60AA28F109656DE29FCD2D82132DF
1547+918D09FAAC4BD551DCDD2E50629EB4744B3BB81997CFBD61D16DB0CA8EFED062
1548+A1ABC00933B900560868255518877EEE5DB9C1A6745E4F1EC92E1D6DF0E28D7E
1549+7A6ED8E9075D10EAD709940544B6BF290580AA0B050D916CA3F298818EB4A6DF
1550+12B100FF4FA827972CCA77EDF5C5E6778B5AA66CE5ED14F27945D59CD3B02BB8
1551+EB51D7D94CF965202AD6B85D512052BDE36ED558A1A044E06D28F8BF674AAD70
1552+96BC6892E57D4469CF9A3FBDE80E5C468BA5839FC219CEB4AE6FC58CCF3F5864
1553+93C77528ABCDC20D040874C3D3DDB64D2C2C8F18A47C36BAF28289E802E8DC7A
1554+B443510C280A1395F9A7E0AE368E3EA938CEDC2A67455FDE9457CE16DCC5F911
1555+D63375A22C2435B055C559D079770AF3432F04C2334D472D58241D4F55763A14
1556+BF8BE099F9C4B94BED133FD9126572DDF7AA512D79F61606A9895992F06590F4
1557+6627B4976FD35AD007A7FFBD6B70DEE8F17643228DFBEE32978B158CF7144F9D
1558+CAE548C5B26450CD3D14BD2D53484F82CCEE842FE2101ACA459C431C0106DE9A
1559+C8A1E3FF47D9C14EDA9463C57EEF83B191FC8E1B4862EE97E34362EB40A334B6
1560+2252549F904D0EC5FBDB8642BFFD9469D502F97EA64DC6F1B3CB4A612E25BBE7
1561+D9988FC467F33529C56856CC9ADC79601595329AE6859FEE2FB3D9EBDBCFAC31
1562+4E3A3DF1930381634C3A3832077A48BD8C8DFDAD74858AA64F7DD0B72BE20934
1563+432B31EE1CCB3E1D080D30959C5C57B6D0EBA5CD0B1BEA563BC2C4DCC70C2C2D
1564+016AFC8DD74097868DD3A8694F5BD9ED85D63E7F7B448672DFF678AD1050B3C4
1565+20E1A5659D4DE36D58FEBC27AA6B0EE1B773BDDAA225A857DE146D9D34615E33
1566+F753319631204D0032B414F67583E17F226B40BF5D70B8B20FA98824641CC288
1567+8A9F6F721C3F4D417D8069496E6486B27193E24D9C19E4EE7E3BB19618E23C3D
1568+B51B402D8335D55CAA0A23FA5A3F8BD09CC010AB80C942A0B6DFDA9801860250
1569+79A43EAAA9A954C15ABA53AC5842E7C5CDF0446319ABA75DF4502D4927A46AE7
1570+E432EAEE37C426676E249684B0E83676A67B60E7DCA937A099B945042E6D238F
1571+8EB7ACA1B5C60E846E1E335C478F9FD6F7CA30089C24E41C6E681A9BE52215AD
1572+C688689BEBA5829936CD769F1A20AD64034040E4CF1C9AE2ACCB6DE788AC656F
1573+62ABCE10939174EE543E20C0017BF71132F6FA8357390B79A7502F2D501120A0
1574+5799E7E7CD46583651B7C7E0BE62511CD0863654859A70F7602CB5A96ABDC86E
1575+1A5593A54ABF4960815F806542158BA2FA347393C4F789F36D65A08A39182081
1576+468D253A745618C7C457C9BB963BE91FF1F290688D550FC89B770B50B611B334
1577+C248B9DD5BEE3033D6E0DB2EF23480DB5CEB46B98A90E65189CDA1D26E412167
1578+17B6147733260C199A4F744FEA70BBAAB563706D0764DF77FAF990C344EBFFF0
1579+D2F883B640FA5F2CC575496E9710C22EADE117A49E01C3F3CE3A1666E32F71CA
1580+CF1040132C63CF192396CD762F93DD6E67C4BC61C96E0CA8F2DCFBB34053A07A
1581+D498C532A39778FADBF02B8771C6E1D042F32166CBAA6C6E3637864473DA9C12
1582+97E9CA2287D19C7485E5ABE6A6FBBF1EF40FF6A16C8864E9D6D1F60F8D33C6FD
1583+EBB87C61206C524B0B21101CA7D33E4AD9F46B775F5AD6AD60D43CE6E107DE89
1584+481FD3BB275794BE152052D5035619ACBBAEE78C7F7EF3705ED2931D37CCCA34
1585+F89ACF0BAC3D48621E1E39DA05F0CE9DB1422C1FCFECA345C408207B4E8F4AA9
1586+5A689B3D69EC4B3E3686B48EECC7C96B1BBC25A086C4CA753D29071782735FC0
1587+6CE0733A743141FE820A8883B531D39E85F63D8B8FB8E7145FAC63BED36E3E8D
1588+CDB2912D4D29ECF7D5BA81D9DD1FF5C6AC4AECBCD2DCFA00E0F2E1985DEA0E7E
1589+FC49869F9208DA11DA96DC7EE5A024592A9CD30C1597D12BF27EDABA77864799
1590+0E94F91F69466F20B4FAB104FFA9D1069216A4B5FC615402243DF230631B4C29
1591+E6C14D32F00A004A11D9D515DE9B1FE75BF36CA792F5B2E305C955A326D72F30
1592+87D815C2D598AF77148BA860C7B2BA4F56494C0E0690674DD7CB0AA2124AAA9C
1593+FEBE0D4937232389261A1CA06F4D390958409425BB60BD71BCD972C267FE3CF5
1594+60E20A669D131DBFAD92337001A64B99705064899125732124F635D33BFA4790
1595+B24F2E53C4C162691C9E5E0E0BA8555C04511D02422C28E3EB03408A9460EF6C
1596+A69C29EAE81D166183D52C86B05AF6091D566680ADB1EC4431F5271F9259BE34
1597+D7A04B94BAE3DAF5B3C8A2474642B0F39D82494A1CE4025C301ED72E6D956AD3
1598+39478212E0C65E72703FEDE17E1558C14A4E5D7F
1599+0000000000000000000000000000000000000000000000000000000000000000
1600+0000000000000000000000000000000000000000000000000000000000000000
1601+0000000000000000000000000000000000000000000000000000000000000000
1602+0000000000000000000000000000000000000000000000000000000000000000
1603+0000000000000000000000000000000000000000000000000000000000000000
1604+0000000000000000000000000000000000000000000000000000000000000000
1605+0000000000000000000000000000000000000000000000000000000000000000
1606+0000000000000000000000000000000000000000000000000000000000000000
1607+cleartomark
1608+%%EndFont
1609+%%BeginFont: CMTT10
1610+%!PS-AdobeFont-1.1: CMTT10 1.00B
1611+%%CreationDate: 1992 Apr 26 10:42:42
1612+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
1613+11 dict begin
1614+/FontInfo 7 dict dup begin
1615+/version (1.00B) readonly def
1616+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1617+/FullName (CMTT10) readonly def
1618+/FamilyName (Computer Modern) readonly def
1619+/Weight (Medium) readonly def
1620+/ItalicAngle 0 def
1621+/isFixedPitch true def
1622+end readonly def
1623+/FontName /CMTT10 def
1624+/PaintType 0 def
1625+/FontType 1 def
1626+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1627+/Encoding 256 array
1628+0 1 255 {1 index exch /.notdef put} for
1629+dup 0 /.notdef put
1630+readonly def
1631+/FontBBox{-4 -235 731 800}readonly def
1632+/UniqueID 5000832 def
1633+currentdict end
1634+currentfile eexec
1635+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1636+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
1637+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1638+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1639+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
1640+2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
1641+38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
1642+D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
1643+EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
1644+A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
1645+F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
1646+4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
1647+6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
1648+A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
1649+E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
1650+1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
1651+452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
1652+8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
1653+5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
1654+DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
1655+BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
1656+741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
1657+E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
1658+E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
1659+D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
1660+C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DC
1661+FF798F2ABFC4F3539392985C4CB324B00072295FC160818BB0355FDC4F12E39B
1662+984826450553E3D271F03D8DC2D12A92A4D32034FD16DA13B876D88C8C097384
1663+46D8D7E41CA1A8979F9B07EC3337E70CBBE3A377235B04C79BBBDB66CE1C1A41
1664+89DAB7CE91F2FC0CAF6DDAD09992D56F72299068192610EE3DE5DB7CF6366B4C
1665+D74F414484DCCDBA449BFAADA39D0F27574E604E31CB513B18E3821A33076151
1666+C2BCB6E957C77A0AECA48C587ABB5E8C7624D2CD1BC0281FE40CC2D3DD1B36FC
1667+CC468011824DDFAA0539291B9B8004F29F21B2A9D8EA7F0DAD273A107D6C3BBE
1668+E1AFD4D3183277F3795EBD73A754DB85A850C84BCD4D56CCBA606133FA94413F
1669+30F72533997921A1B617D131E189EB56E2B0B5ECACC0BBF248E4F1AD9C63D975
1670+3C6CD4B95BB5D84CA784AF0AFBC0921DFAC0A37BDFF530845861D5E5C2EC7E59
1671+783CA09B409C27E90A92E296A0AEC7805AE45F92E51D71617B2F2C6D684A6900
1672+51A2662DBE1919D78DB54DBE80618AC6D712F2C4EACCC55BE61C3FC35C905873
1673+6A0051E32A366F8414A3EC5210029A409A683647271CEAFB8023DE1604FD41C7
1674+54EA8686B04DA8B5AA708541A8F4D9C9110F675D92D0F77803C44ECC0BC1F9C1
1675+415D460E3EF345D6D1EDF0BF6E53EB16E7D275AA6028FD01CD6DC2E381A748FB
1676+E4CC45BEF45F65C9FD360DF8A754042B6C1658E5DAB2D853767FE8A1AFE4954C
1677+CB111CF2CDA638544E39CBCF46327DDEFC29C3B00BAE13256C8B4C0716E17F68
1678+31F6B8CF83D7102EE1EF1ADE1A68A18871E174D035568896393845A4F6DD4D76
1679+C40C16919C6B21646102D7B02BB1D6D89F6C76F8E106B67C95AD201800501969
1680+052F03A7F6962161AC0BB84C8C18D18B48EF63F4CC9120C5D60F9D4C78148EDC
1681+147599B3E6B4CB920DEA51B093EB5BC3C5238FB0758C8A884609AFA45F3B88DD
1682+4287EC21452229867BE5F186FF648CD35B7BEEBC18927C96634D1D4D52D5C97C
1683+CEF30B31C9BD5155E41D2F8B84D9331E935FFADE2F46C47EFF8489829497C4EF
1684+E959D751EAED71D83D1D27243FC905BD7A07C90226FD0F6A2CDF1D561810363A
1685+A5EF7F475F8EC6EF46C2FA29D15A19DC582861B36487DFC0A21BA79BB0176DEE
1686+A5B1EA14C4E9E23A9863D59BA13B836A9424B65CAF0A54E34B2FF6BFDD82508F
1687+5A1955B78C061FFD9E5511F89CC9AF1A497A84F40B4B89239995AC454ACF3878
1688+93BF211090084581289A7FCEF2B9440F20142D4778F9CB2F1CC13CBF30EAFB7D
1689+0364AFD7C9AA9014458BAE9083606FEEF7F95D2364EE079A71D627132407EF1B
1690+6C94C7F50C129ECE8313797BB7B5767A1E489E20256201435C1448CE85E8E74D
1691+3A80385ED509CD352301642DE14ED7990BEFB43543A6684D41D07CD1F42793DA
1692+A7FB1680FDB75548967179920D06AFB4B65AA815B9687B7228F9D3FC3AD5FF00
1693+5CF5D412ABEDFB3F9C91CB6AEF1EBDF7E280653CB94691498C420C2A5F34B64E
1694+C387139A74541348237FB451E4AADA1264987AF1E028667AC704A6EDFD4135D3
1695+5D73D94BA6924B87E678D25B145E22EA0679D78A1D60E4BFF8ACAD682B0BEFA7
1696+68FF32F66742B1698636C9AF7C4C976C219C7A6FAAF446384CC0CB778EFC62E3
1697+AA71D47D6D7714891B32DC90B2A25CBAD62B1FB5C8C4C884AE24105236973805
1698+D6AB2FDED52BE07B94147B475C19FA431FDAFDB21D1871C442D923C00EEEF810
1699+E7F383582ADA59DABCB89608912D60B54620685C40F7560387D28ED57F8DF242
1700+1400D57D88679046FBB938333A1F287634F4E4202E97D4FC170ABE0FA213C57E
1701+9574EEF776A5A162BCAC6BF883062E41ED78E6CFDFA8E44DA924F8A508699402
1702+2606E750EB67F06A2668E166333536A8AAC69559E8ECCF943BCEC4B96C4D5DFB
1703+E9C864D1DAE1FB4D42CD06679814BD360F57EDD6344D66DFDDE296A4B5496B6B
1704+9E2AA0836B7718795441B78A4F7934A95C18C0A6DB63798C522C7E722A64588A
1705+BDC5D5E7FD1F4A41BB115AC3835A4763AA227399B10191308820258309402106
1706+74EA13BCB4C323FCBB0ECDCE66BB263AF69F8AE9C3B06F47EEDF8A28F126778A
1707+1EC3129EFB90422EB66842378100C82FE24462D1462041A27FD2B72A311193C8
1708+5BD9F0DFB653155CE4D07002CAE4F4F6AF14077345F3680179489DE63D6F84FD
1709+B7F4C1BDFE9EA6810C16C70633D682C8D6122EFFE134BEB7AC3F606AB30602A8
1710+B8E70FA90549D8F593AE2C8C99CE75FAE5A05B537AB0A4CC4A09B96AF2CF57DA
1711+DDBA1F6E727A34EA84E75D9B10ED1D671AC2BA926DE3D64D61B6E75E1041371B
1712+71223DFC6E865B17E206941C2768BC24DF5DC38E878E0135C5159E3C26447CDE
1713+F0427DBFFDF8F8D66E6ED6841EBE6D22180C67E7DABF3DAB4308C843ABAEFE3C
1714+AE278ED69ECE009E74DFCB919D554E7BA992BD178E9078360EDE63E00B1C37F3
1715+6292456BEE6B4DB0B1FA2B1E48583607E356DB76B28FB514F8B47B367B09BE82
1716+B0D4D33BC0DD36420628FC6720EF7DC4E7AE53A40FFE5FEAC32BF2DA5FA30A95
1717+D04E1E4E1A53280547C0A4826AE1CB54194D9BF085025354019660FCD0654161
1718+D5E9EC3C1C6D4D7E8F448258110D972F42495ABF14286920C5DB4D51EF72E716
1719+6CAC3B6CED514F4171F6ABE25DFD70D625FD7443F6BF3815AAD134A419A5DDE4
1720+A82438C14B2F612BD6BA3AE5E261541169BBB4FFA42E7BA6F78F5BEFF59F69AD
1721+2E0AF0006873602C76BE3A16074154C83FB59DB3E7F47E9063671A6951DFD58F
1722+600264F9E19504010EAB739679D7643F326A2BBE58CE0DF7FC09507150F39587
1723+C4F95BD0E6C24857DD493B1164802D9B5A30E78605C7F2486438037564A83B91
1724+818F54C394E1BB0AC245C33274AF1FB64EF4BDFAD9EC0CD81459C9E6A3033D09
1725+42B8E3006DE75CD181751AEA580CC86EAC5F781A7FBF5D2A22AEED90FFDF68B9
1726+943357BD460968A09518E14214371C6315D5924846133407C8BF7F1F350ABA28
1727+709ABF7159CAA38385ABDDBE8DA79E0617D0C6B36248742AE870D306815EC556
1728+54C0E8861C86ADE6F8FC4F5022D2A3BB74FB8295A91B97395ED9E935DD5A2FED
1729+3AEA824A9F71AE4F80262403681D684A3B8CC5E0A9DB5F2BFFE674E428DE8B86
1730+C66A5B560DECFA278314A0E45B30ABCEBF73CD22FFA09746812336D896089E37
1731+784B9FD479D991F4D5F79F2697FAAF64A5DE8C78B46840AB30E250ADBD668001
1732+90EDB63C02793E1773B936F1CF46051EA91D6A3DCDD8B9FF4B34F6CFDAE8994D
1733+FAC9E466CD0F8C4FB0A68F1CA27D8E93103628FC7D3CD89D05A45CCB02DA1647
1734+672BD7E72A047E311ED21F139DCC30AB84B56784988B70922C5B68C9AF7CD60F
1735+FBF5D505B6278C9DD9FBCFE0925B49109C0664EE9FCC8BA1CAED3820926C4439
1736+1C0222BE407281F0E9BCDA593F1663D3E7E5718C093C5B1B13254584CEE76CC6
1737+F17C2ED9AC967A20B0A4B08A62A855926E7A98CBAF72EE008F4074B9C0AA4438
1738+FEC3EDF034ED3B653305F6807034611076384B07551C01397C3DB1FAD33DDE0F
1739+44578A0875D119073FF28F02B951DAFDE77C12647389CFFEF02DA2606BBF9BF1
1740+3BF7AD9309008FB57855DD326E58D005E43606DD167D0C7543CBF07B5D102DBC
1741+ABDA099A8F40A70ED96BE14A801E9F1F1DB22EF9A92EA9AC123CEFC62EDB3925
1742+E802361078D4C5E504993E989238A3FE61187E1BDC9D853951E0416487F8AA4A
1743+7F8D35C13133405F9A59967BCA2C94D74AC7258E02671BECB90FE8D806AA0D7A
1744+9154CFBD5FB3048EAE9A0A94E8FA3E5612F345F5CEC706E130C571D6A65E3F96
1745+CF14FFE273E51470CDD09BBAE1193D34C530463D5E9FD4B455ABE4A6571AA43B
1746+B72190D0B7B1405FFAF8764096B49E74E8CAAEE5256D2EF7A780619A2E230C94
1747+E64401CF43C1EEA28F598589106715D51A79A29F5A1FAC0B2375AC06F1D61998
1748+655F6685FC5DFA75214D0AFCB79234DF738313DF38601689BEDDA39876E1C656
1749+0017A1DC93EC04042189CEE82C0495135ACBF316D9ED6DD3D48DFCB7916C1E8F
1750+58649BC3B103A2D59F022FD9C38F1E96C70454600B553FACDB32766D58AC05B3
1751+6524314751F68139A7B3B764784779EAA0F97792506026B513A0109E74995913
1752+94D6990407F5EC2E40430E129E2412D8565D5500E87FEB738CB2FF6F1EFECF03
1753+3031E87CA961173BCC8A828243F52D2406146B36860AC44C4E512D9341458767
1754+1076BC4E71E18BF963E0F7BBFF0308B25C8AED4BAD4912D0F898B37DD4309215
1755+8B8C903841A992A6BB22FEDA14000E2AA1741777D507029F646B59B5A9F7BAAB
1756+6C0D69EF47FE706F8C21E3ACC3724D389FB40E6ABA034B8BA3F8CA993C657CEE
1757+AE6D39905AB8C931ABB7DAD718566DB49DAE4898298CA442B535DA7C60F2FF9F
1758+3A9B51FB853DAD23F6DFD719C615A04B45AF0F4360537A10D8FEC1CDED8B8348
1759+32FEA1A5611AA77F173A093D8E4252B96BDEA4B70D3A0BD12CF8F39B3203F825
1760+8305FE5563D2738B32418945F07A4E8DFE6C0418682BC1CC700FD06FE85B429A
1761+8D9B1F4A0137B4D28F79B751B771CE698F8E811BEEAE550B9725CDC384CF9AB1
1762+8F50F68CD2D78437AA1FCB49BAF81C762638F29E32F32CBB202AAD8EDDAE5D81
1763+072A22A934A9EA9E84346148FEA463DD1A0E7FCC5C2D5B07805AA562593C8AEE
1764+3957C9AE07BA9D48AD03913B2AC30D4F9F989927656C29C9F3D25645FF864F09
1765+6C4A8548AF87E38AD853FEBD98CB273E91C12C4307E06559C95BE1039BFCB427
1766+2F2C46D1765FF834048FB79894F944598F15CA607188C73004D58CA6341C9458
1767+37528C6EA4F8FD34C4DC344D792040FBC05236E4CDCDCFAB7C1AEA5C779B7E57
1768+377290A267387BDFAC4EF81AB3DC616D8EDAEA86CE9A355E625207A1E759CFF0
1769+9F7B3072C8AC9F3A2810D6441B5DFE0B625297C89A5044775AE222E346D89E37
1770+F85A239B38AFE2F3AC60E8D5F9CDB4E333A746DAB7C42C775C2D9C57B06A5369
1771+51385EF949C654C730FAE30524E203173D1BD835F520CC610680918E5F489E92
1772+D455BEDF0EB0AA0EF1ED9CC29498A2568E8C4ED8EF62D24E3933D47DE5D83146
1773+5EF108E7F7FFE79398850F5C6D9F51534319F88A4ECA667ACFA2713A2D2F0B3B
1774+A0CEF2DCB20600D7867FA2F5A2D371E2717A1D2138A20992C5C0FF9B9994FEB1
1775+F9E0A509F257E451B3016719A8BAC369DDD816CF27776921592CA305E6D1B9B5
1776+7DCD05D3E04A3936411BA7B24AC5434379159D31C47C93621387421C910DA450
1777+35444AB1A9FFDE8D53F7F7330B4E7768BBD4997D8A587D7A40DA8D1BA80FE2AE
1778+23262E5741678AA68A08C732014C9E27B8A9BD5261BE4EB4CB6F8A281EB45316
1779+550613E9494554963014F4D39088A55FDE64DA39C7E9305D60986635688D3798
1780+BA1F09F8D11C3C783095AC28FBC48E36F294E69A88FE95933EF6132C2B29B7B6
1781+F56FEF854BCC34BFCC61F7AB3BD3EA5891A3111FF5D8E270B657FBFAD7EA7A35
1782+359AE6355A0AAFE5CBAC91016FDBA74DE2D7CE14C2EF7264717C2B8601298E5E
1783+5CA3CAF488C7A10CF53DED28A4E24E5DAEFC1FDF1677DC47E39CDD0516CBEE60
1784+0151CAD166DD46D814B54F360E13E0EED1F112FF813BAD4D48797DDAEBC1CE3E
1785+A62E922A5B0E867BCE63470804DC6FAD101086D9DAFEC9B38624B6F89F1E7288
1786+58623F0FFE6780C3AA9B77C27AACFF7FEA6A81B642FA8616E58A5FBC558EBDE8
1787+6C0C3B85CA356E4532738C17A223FC9522743AB73C27BCF4913FE037A29E5FFC
1788+D8B95ADA7009BA803E9A75CBC2AFD13E5B48539E1829ACBAEB0EE01B5A848511
1789+23B5FB2C2A5B4D65B7CC848696B004C84DA7B337FE24F034A01FD74BA9405583
1790+6573B7BC7B7C8DBB672C2D882196B7DC0B7F39F2E9468C6F7D304EEEBF4013B6
1791+F084583441551675D45635524963BC5379B4062CF8DAD52F7C7FA2469814707A
1792+181F1B8391F185E6FFF39CF6369AD3A31F6C3EFC6B4890E297860FB66B87E87D
1793+6C30117A95A94B42393787C21ECD184079412A169129FBDC7109E9962D784334
1794+C40D4C3E62B0528B1D00F66D1BA66A4DAE16B3563FFA550710B0634879483CD9
1795+A58187BCE5C421DF79E3814B155FB6E5C6AB941C60B2C8013826562468A4828F
1796+8CA3EBDC1586CDD95948F06EB613A1DD836CB3F09EC436EEEFE2CD8548477609
1797+D05EEDBE7D5413C77D3FE3CA694DC36B4C6D6EE8A33462A77806EAD42C4925A1
1798+F649AC9BA43C31B9A8EABC416C01FE137E2460787272738E4209D4880DD4AC2C
1799+5C9354767E05853FA5A7F50FBA8D660F804C6D60921BD8AB111A34A31080FB81
1800+685FB5CEB32A75CC83DAB1688E4EDD8F6B789B4298C8BCA56CB0B4A5EF948917
1801+1B7F36CA4184B0F53CA1F77B75CA53FFAA104FBDCFA1808FE88FE01261B46C1E
1802+D5A9A067A9E52D769A18702B3AF2E71D3B3133C717511F22E3AC4E7E4D0B46C8
1803+209B54ABDBBD703A5A469AFD7A8D8C600D76D2E83EF9685EA160402DC446ED03
1804+1BFAE5AEF59CA20F4FC0B27CEA66B5F1CC7C81AAAC0803704319EB19A485AF7B
1805+E96188E4A685A187350B9CE9DDD605A609C80FD47A90E533BAE737B79CB869FC
1806+19F5E86C45809FDE676823A7D69F9E72595C13F55F74E41694B9D475D12B1841
1807+7EC0CED004CFCD93A67D810A9AAA16AD3E3EC0CDCF417EFC65F6469BDC1F4540
1808+D5631042BF3B1E7C4E3C5DCA4FDD7EE2F94648DBE34E097D17279D2C826A464B
1809+E9120F1B741037830184AD865E115BCDFECEAD9719C457E409CA33A05644F51C
1810+CA0C11B1D742EC2637A448F699BF422E4AB2DA85508794D593AE0723F4EA793D
1811+9B6EE853B80574BD58BC74F0425CF0FC838AC5CB9E0591EC46289C6F12C8981E
1812+42404D261EFF49A2BD6F7B211A860F7B4140954FB6B71FE6EDFC26C11A83FDE2
1813+88774752F90DA78089F9CA5B7673FD746B3FBA59AF3F889DF55AB29BA0F5611C
1814+02227BC353F133873526D042958F7791AA9A0A43B73BDD634CF9F6BBFBE48A28
1815+3E1B9CC70328A90FE5FD8775967B06EF87EE644E6D85CD6FDD32189B3EB153AB
1816+B9A4B232AD73A2DB6C8755D57CB7F52B9C9BEB52855D7F6BF7632A60F57EF488
1817+CAB4910446C4622A4929ED5FB4EBBD55540A1C79B3C9666A497B2C3F8DC2468B
1818+AB4B8E8369C854191E3F34CD5C05EFCEB6404A25EEA6C1A0A20C70F6F2038EFA
1819+11C9C9CA768F1A1AC58F9D33193287AEF07A0852EF0060CCF41264EAE70724EF
1820+4E1E400BC968966B76C0C21061D1C0D72C16134DC3FF3C7072B327474880D5B7
1821+E910661CA84FA3A9EA9D89204F22056DF5E52105FB6026211C3BD610EAF2446D
1822+3566122E01AEB84B031C6B2A361B91EA8482A9358AA181E3556C0A7BC17E7A4C
1823+8CF011984D3D340E9567C72360439EAA1AB8D6C8F953FF19F46C91AE249C6B33
1824+F60F84C644FCFF1C27220C1874041269F5728E97B50B1908AFE6684E7C828C5A
1825+E1F454B97EE66A45FCCB5D10B4B04D315748455FF03CD703E565EFE35E0E3398
1826+84582E5D9BC597B3AE4AD84AAF4C0D58EB6B2338422DE8C01CB0B3E003B10801
1827+B07D9E7962925B0E8E6ADE325484027FD3969778FAD22A5A21C612521A60042F
1828+711067CCC11EA4CD62A76D8F19D84D22EEC18494BCED7DDB61A8FCEA90DF1B63
1829+EA2D1C9023D035DE85B31132D554C8D67D4C0B77201DBFACBC7CC703A8198B1E
1830+BFA9E7088752186C1E9038363B865494CD414041EBAB92C096CB79CA1FF1E0B9
1831+7C7CEFD8DB3914F167237767FE78BD6D82E4144401502E0D20D57A42E1091EDD
1832+405B371ADA4E39D6482B9840E9830A7A119EA1AA04BE92DFF419BB3E1000DF72
1833+DB003F16F94BAFA9E958F2D4AA34E4F38B3C53BF9E06328904D52F244BBD6657
1834+86933906639D70A41A294C57A949AB30B82A5AA3318E09E38779DB1188C8BC1B
1835+C50A11105ECFBD6F5AEE90BB8016B08925787777ABEA1DB0DCBCED668566A185
1836+D616E642E943F421B1DF99D92BEBCB2E77E4692717865089BE6E1D0E2E87E3D8
1837+37DB430E959A3473745AB454DAD07D26E097586FEA459B42A8C0D10C58953D2D
1838+AB3B105DC697210FC91E47AFFFF4A13870BCBFB12C777B7986334A0FB5B6AD39
1839+DB436F1CC1E3B4F8DCDC633FFEBE71BBC4DB6BB332909E616385DDD5C291EBD2
1840+75EE78458F1005D978A1B18C6364A123C4A72D6C221E099CB410D0CB8B03CE32
1841+969484824165923BB71A9B0FD2B6AF0C7F7E8D8831B71774E85076672480C1DD
1842+B59B2E69C81FD6A492383AD89B359507A50ED872038B436DA60CFF3F9DD32A07
1843+75A943F87021BEA8A6E86A9E22274A206AFC9E8D352ECC4E98CF4450D373A764
1844+D3EBAD35305FF27389314DA6AC120A5C6C0F2CA7F1239612661FE7C21CE1C30B
1845+5884E07112BD2066BD4E2881B4E09185D10BC7F3E59B87EB121B601D68DA0D13
1846+FE16D741E4D43EB0C166A7659C90D44B09256FBDF4332DD5A499BB812821A0F7
1847+BD2F120BA3EEF8AA2D0E2A4977478906B8397CE3745FC50D16DB4789E5AC2108
1848+185D6EFBDA20A29C89262117F6452E1583D6C390266602855C54311F7CDE0B0B
1849+D70AD3C6878A7EFCC4A9B7008E046B371AB968C1A9A8E157B4DB5E90A5193C24
1850+2FB72032D5C5610EB41691045E3243CE1D69E06A1BABCDC738933856CC695957
1851+5A2321C520D9B6A6E98E1D2880CD94454C7890DF8453F0C30CEF24BB3F7518E6
1852+A8D10285D7245C00DA78ED1087F016282182B6EB209FE0844A3D9789B7F56CF0
1853+64000B5CD70382BD1D8744A48C401F00944FDD88F039689FB98E22717488C0C6
1854+2565012095C3FAE7D40F7631127BAFAEF598C5C100A79EC4274A69E6F6980D09
1855+F5F8DCB54506A4466BD7CCDB0AA0B717CF6AECEECAA42F83C61039035081D3AB
1856+01327B3DE37428357EDD6F1C948C00CBE5F269B9BF1895CCC250F5D787FBBE33
1857+14E2507BEA4689F3051538E03B1DCF571688EE6E91A978A0FD5C6107B8D25AF5
1858+854E5878219DE068953244E2D5FA862F36E25E75521A7B8C80D2A69EEEDEE570
1859+BD333F958F051E403726FF824098B4ABB0130015AC8CE831531D123F7295FE4B
1860+29247BAF2EE65FD15C6642B5ABCFA07F40CDE915CFF4034FA2C1DDC0CA2A38E8
1861+2C19B9A94F88799EF8790356BC3EAC45034E8E46BEBCA4627080E5364AD5439D
1862+0A682EE119733D603AB23060DE6751AB361BC0A2BAF7D91A40B7A3F5E285BF3E
1863+0E74154E12927D51FE744209AE1438CFB0B4539969AB739CFA690C7401ED700B
1864+17F67A040746FAE467669EF0AC838D3099B210704D4F77702D5849F423CB72E5
1865+FF3B006C270F0568F3AF253611FC2DAC3516F5A2006CA0BCE3A2C176C94AE98F
1866+7CEDF634004A0A5B9919024E653BE048B489252F0C8082DE0F6647AA578ABABA
1867+132907EC80F5441E472B1F64654C5EFC612A2C412D60731EA566FB7022F1F9A0
1868+15E533397E6734110028C742A4D44306D72D104DE7D7BC5DDBD5CC8FA3B8623B
1869+2E9B3C5319E1385EDBD4A80A00FF078FD2C96F9730A24DAA68A3B2F44C9E1310
1870+86C7B9F89E0EE15E86E34E5DEF913F24793BD5DD0784DF445EFCD6121443EC13
1871+C9DDFE23859BAAC6F0BA893C4CA0FF8C810C54737DCD99833F6A33CA6AC9A5C0
1872+1E5C2A7AEF67DF520C1AAF72EBE79DB55130D323720A16E2D34ED9F01C5DA456
1873+6BC83AFD988B295B634A53CE096F10FCF435CC704DAD0C3662EEF86A8E3AA1DC
1874+B46309BBC1715019414D0D9B474BA43A61DB8A0E4D89D77EC9E3581B53CAEC3E
1875+B875E46D97E9D4019B04F7C8126B11323E144957ECD756D07495D740625D1A31
1876+8A4EAE56
1877+0000000000000000000000000000000000000000000000000000000000000000
1878+0000000000000000000000000000000000000000000000000000000000000000
1879+0000000000000000000000000000000000000000000000000000000000000000
1880+0000000000000000000000000000000000000000000000000000000000000000
1881+0000000000000000000000000000000000000000000000000000000000000000
1882+0000000000000000000000000000000000000000000000000000000000000000
1883+0000000000000000000000000000000000000000000000000000000000000000
1884+0000000000000000000000000000000000000000000000000000000000000000
1885+cleartomark
1886+%%EndFont
1887+%%BeginFont: CMBX12
1888+%!PS-AdobeFont-1.1: CMBX12 1.0
1889+%%CreationDate: 1991 Aug 20 16:34:54
1890+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
1891+11 dict begin
1892+/FontInfo 7 dict dup begin
1893+/version (1.0) readonly def
1894+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1895+/FullName (CMBX12) readonly def
1896+/FamilyName (Computer Modern) readonly def
1897+/Weight (Bold) readonly def
1898+/ItalicAngle 0 def
1899+/isFixedPitch false def
1900+end readonly def
1901+/FontName /CMBX12 def
1902+/PaintType 0 def
1903+/FontType 1 def
1904+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1905+/Encoding 256 array
1906+0 1 255 {1 index exch /.notdef put} for
1907+dup 0 /.notdef put
1908+readonly def
1909+/FontBBox{-53 -251 1139 750}readonly def
1910+/UniqueID 5000769 def
1911+currentdict end
1912+currentfile eexec
1913+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1914+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
1915+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1916+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1917+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
1918+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
1919+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
1920+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
1921+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
1922+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
1923+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
1924+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
1925+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
1926+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
1927+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
1928+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
1929+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
1930+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
1931+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
1932+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
1933+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
1934+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
1935+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
1936+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
1937+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2918CC2D
1938+3FB13482E110131076D0210F1B4C88AA03883AA23F58CBE5F0CF45E33B3BF237
1939+CE700970BF59D2CE52AD166E395977CF7FC85E7ACAFB78646FB6ED0BD8B0512C
1940+ACED9D44395F85A1FE0A154912CECC634CDB271B276398701EF82299EAEC90EB
1941+800911694463D1B43A3C608DC3C853AB545ED3C01FE89685E3801586852B073C
1942+B0790CFE5CFEB3DCDC935303076F7C454DBB51A573562F78391128CF026D0ABD
1943+E1B86A9B0D76EB22E5FBE2254CB8AE9EF0E5EC591E561676BBF202A5D43B48A6
1944+2617073BA593A39C41A6E81FC4875DFF6E7EA612DC525A0B0488A2982FD24E91
1945+ED403F6E764EA10299854C7D665D2472C1211C90EF4363213A6CAC31677AAE12
1946+E1F27A8E43F90F7958D5D609919A0226F2ABC671D28B318430BC70C6A9D60FD1
1947+DFFAB7E4412C9791D21880A0A10D66E8831347555A9202EC4458706887509B59
1948+48BD5D7004E7FD9E727EF7EE68A899F1A4D9E9C386DE67C23EC198A13108DE2B
1949+41ADE63F5E16B7AD19804EDC22ABF9FBF2FF45DE069FD35E1A8B3E268944AC06
1950+7653B79CB847687E96DC3CCEDD1BC3CFBA82B03F4BDFEE8FFCF64E9B315666C6
1951+8AE4941FC1AF7926D9E286D63B72243D65938487DCAA87088A170CA7DB15163F
1952+6753EA15C1377464061C3C368A35F64D6F411E254CD2334F9081F0D30225790E
1953+AE00DD88A1B03DB373DA7CD314017B36354CFC9C3D94310A90F9B0BA7F9472AB
1954+CA9FAF4354A7EC9DD96D6C65E0F1F1487FAD756AADF21D414A0DE14824FADC9A
1955+F611B5489E164D0DDD65F9D117267641ECBF49307D2AC5932361740FF04E9388
1956+0D37060FAD75C39E410031CA188F9307079AB290611D7627E44068092066683E
1957+399F7351C838546F3DF1622E58A008CE666FB868865FB8C81627D403443250F6
1958+E488AF2D44ACC91BDF5F18A9CE97D895C1C878BEBA5B5E0B5CCFB53BE427D55E
1959+FA97B30A7599B8DC19D65AE5ABB67168D5AA6058BB4DFED40A6BD7C2DBA52EE7
1960+3094B8F9786B8DF81EB39201B747787B228A283C7186DAE96727AB62CE30B858
1961+D2A45BFAFA4D6C8AF643CABFF5D309D5B28656406286DEE44377AC3F4B8E90FA
1962+4D606D87A6252CAD8A6D70FF1079A6774B45C2F3D203D17ABDAF8D81ED6C4A56
1963+393AED6898E03541DCDB34C32A522FAA0ED41F57E00A48197CFC9E6B5C0E38FB
1964+4B259FC29B7390A039C3899CEA40D1E45F995F4174A789AB548355CE36581200
1965+299482F4518786CFA3F101A8063C728AEBA948B5BD4796E8C3B6B6B648B81451
1966+37CAC0C6F50D57AAC161F34D4EA3EE48EA0081DAB3069486F5845ECA5BC26929
1967+70AEC9B49883298246395F3E6F847B11D9E662A257C37B58676990D7D7511D44
1968+7AC8B3AFF3AFE5CCCF5F15C7BE40728D7C3FE0F875EABE5DD48D8679C7D17566
1969+869D8A54C2E95578FF33235D0FB017394DBAB31E9D0BF3F87A625DD5830304EC
1970+624B8BD5456047A1E1F00AC7BF6268B672E3D71B76E9D9E09C7E3BEF48876F64
1971+53B0EACAAB7ED476B7C77358CC5B3DB3D00DB5C9A97C4F026346B80CFEF1889E
1972+29B236693B8E7DACD38004EC3778A0976FE834E455B1AF5DC31CC195884A22F6
1973+87B0661B430613CA0CE9BF557044C0CEC9ABFDB39F4D1BCAF59EBD7E224B83B3
1974+103AEF2B08E2530AF72F6E9B80B10BC42B92576F7DF40FF25830F6C73D8F6940
1975+B900543614C663FE48FF7CEF127CD082D6DCB01D5985CD4477BEA86C985D76BD
1976+3E2B395048C75B02C8C477B3DF5B5D32672118EDC9954436F29E3A857C22BEBD
1977+51C472408A7202A13CA75921565156C1BD335F12A61F7A71BE6C5A56CAB7662C
1978+C6D75048E005B4E64DEC69943DAFA00E51BFC1902CC445EA4971C1893357B629
1979+34507CE8734699BEFECA56B356059E023C2BC21AE67D2E40068ADE6AFE469F9D
1980+B4C1D8B57E978AD987533464543EB4957D536E5B85E13EDF320344A238EAD750
1981+8F46BAC09206F3E97DA819308EC9D4125181C6839F1F5E81EEA6DF544AA9E4C6
1982+3BDCCEA9DE44035C64161CB512827DACE0B0DECE6BA5779BC87194C030BA44E4
1983+47FA8A6972A57A2FE914B3B72D96CAE6DDF77278F2DBEFA2685FC0FB49645974
1984+C1A2DA14F70869125CDFD616D830AFB1001C7C6DBC2924AB938CBA08FF9016CE
1985+2EA958F26333A0AA271AE190462CBCC843143150CCFF8B6D0E78AF8753D70DAD
1986+1F2C4205C03059B19D454D37B939492B4AE852277C37FF8AAE0D9B1034C89B03
1987+4A1C872DDD5F9D919E837225D38F14E1B6077285D39CB3D251FB12579864EE7F
1988+C768DEF74E65E3BAAAD43CD472B53610BED1E2098DBFB5192B7D1E527C83AA05
1989+989B2082D2536A99D2B311D27042E9856AF75D8EEFD88E8AE9D4E3FBE028F59D
1990+83CBC7FD58B2F11E9C745AE012F95A18AB183A11361328DBC9335D2CB77A0D61
1991+708F307084CC5B5FDBD78ABE32839978CFDDD0AD4C4AE0EDC8471A459C94E485
1992+A872BE035F9C38AD602E1D5606F1895F3A16C5B20409F89A89F23AD29A792253
1993+F372B1C59488BAECD543A4585E96A12760F146460C54ED63436DFABEDF0729FE
1994+9246446E7C2EC90A261A0D00AB88369F294BCB3674E5B0C9F9777FCBF3E7FF1F
1995+A29372A733FE21CD72DB3D7013CCE92FEDF34C045048F8518B91506863FF4130
1996+52294594566B0299F379BB2D9F0739537908CE76B56A544CA7FA33298688F254
1997+F7F3712A74DF15232BC6CA7A4BB766E0BA92BE0B085D27D42257978F8B615396
1998+ACD7F7580E385BECC0BF02741E0F8E15480D9A7850DE0F3EE2B4F984BA6D42AA
1999+4A74BE3FCA8B0C336B466533B47CD4102456EC94C627458BFB400087DA9A6C0B
2000+0D0CE5A37C10E20645D47628F4379DCD14F2E27BD7EA974E77423A6C403429C8
2001+BD65A5E7AF21A120E2B59E57C37B5DA6DA09A8016428EF70322B471A953C986C
2002+ADF29BE4C4590EC2F68688C299D0375CCD064F5333C3F34E3B283707EEB8C69A
2003+D35024EAFED1B217C7510642E27674A624D6A27F7FA13B314253D9828D6BE971
2004+70F31EA9842323D3EC932085E4A14342837E1482DC04CAEDFA53DA8FB3511604
2005+EE29BF3411C2978A554D8E76D4E6466482CB1DFB5540C8938F5E35401DE0552A
2006+764BC9F9A67FA77AA2E43C6F6314A3F9E25103F9C25940E2ACB584FBF9515D8F
2007+BC07116EAA8FCF4DD8861962D20F3BEEDAFD2AA6923DC07126F12E8574CF1222
2008+982AC1743DB5F79170FB01AFD98E0161FDC62363D4BACA0E8F7755E295E3C633
2009+D09461D5C8E114F74EFC99555E3443CFB4C40886C0415C01BC3F99F384FE301F
2010+9FE18D3E160DDC49E6BC8AE3F493D1465F8A4C55131FB8AC3460F484F8CB222F
2011+603F7DF1D6475DCD4A0F53FCB0470A514A897D15A2098B1AE9BBE7996A8A9C53
2012+E7B287223D497504389EFEB269C7D5B616734A1C395D232D2A2621513239EC8B
2013+490D9D3C444A478B79748AC5FB35F6FEEBEB4DF63B91027F4503D7D923854644
2014+AB14594731520A57AEA84E3B0FAE698AD679AB1124DEA69BB14245E2EE31B56C
2015+717F53A22D2EA42DE2B81968159F6D2BAE4EF43419CAE8A179676C3F2F723161
2016+7A0BAEAE4F99C724FDC17DDFB9B0AF04D3FACA2608FBED38844B2917D5E918C1
2017+F3FFA5D7372C375CE7412E5E1752196A68FD3C7B0D96C5578D7F58A3EA3E694C
2018+8F8DE45DC258216B0D65C81DF7C84427FCC0129C4769B6F5F617335417970948
2019+499E7275A240F2219193C530104986471D739BE052A2F202BE04F3C17964FD30
2020+D462FF57454631C90D61CB935DF4FF68DA1337C3B011A4FFCFA6117D44C991A8
2021+6A096CC5D2B5E81C58BB22803CD2EE19C972BC071E0D9C84C33CD57D4179C709
2022+368787DB83C54268E1DB8E5D6F84B09B9C6379D367574A32B9A7BD7EA758BBCA
2023+350EC9EF33F01F85D54C5DADD6044BC38B5AAB78E2A54610B1A43C5908D0792F
2024+63DCD332AFBCB6590F5F605CCE0566E285DDD523A4563AC0D70DFD780F7B7EF0
2025+2650C0D10391B2E0DECA934E2FEA98EFC8C5E4779907AB60BA3786713FD1A4A3
2026+BAE044A904C32D421DFE81062E1051FEDC2A655D8A37F1B4CB41E13F00C1835E
2027+DF61D597EEE3B43FEB1E2672D06087E73926D456D2285AF78AFBB2AB8940EA33
2028+4B2D4D5F6DAB081F9893C5EB9913F2DE18060776C96C90C3470B0F91BA918952
2029+4715167D4450C724D8F48B496843084E38B8F7D0EDD5C2D3B343FEDF35DB673C
2030+E23733C7A6477A0FAAB4D76A39B5A57B025042FA97AE262FDC541DB746DDDFD8
2031+04BD6CA5B2D025325A45167BBF44C8003579D14F069F46A2A121277A6D12DAD3
2032+B16DAAF0A31EAF6927D2F3C5B7A1A38C9883B7A8843864B17CFBA5D95FCB4483
2033+B88AF6D2BD0A896A3806BF386BC6D74D1C634DDA49A90B5A9D4B08297CD71DF0
2034+8049A746951798267520559CEA50A0379E43BFF00C8CD95CD829FFB2C3404B0A
2035+03DDE09AA03D1E0F903C4905C149AB2A3BF9287A52BB1D8601CAF50AC849F414
2036+41118B582E69654587453B6508503BC3494D165CDB249F79BE23CAECB5524E37
2037+626C08F0DF666743990A847068B89CA282A7A67505A58EB3DE6C56711C1C381F
2038+4C73849407656B0361B17817B4834F981824F248D452B1CDEA41A364D7AA15B6
2039+DDE3DB44B5AF2B147F8177CE151B6FA8091EDA8E0B7341A9A8D9DEB6ED987AD0
2040+202EC811A96F2D75AC1C1A1410D1B5C310F2D3DB59342D3601F6510E777B6E37
2041+B3E71BE1557C4909CCD61851DD43C6D2BC2E291D1D36CAA2EDF379458F704792
2042+54D34B915D91E2A708BAD4F40DA7B927E3D3B5C6B601120636F20655999478BC
2043+CE60CD2D0244DC5BD1EC7B2A5E0D4BCFDDB675549FB19C371E508BFDD69C95D7
2044+7E7F70844C8B6B4A8D41FE751C845C918655BD999FB91010C78879D73CE5152E
2045+B06220AF3B580A4CD45CF7D003FA8AB9559EC7161C2069BE3C864EECC8B3B203
2046+BD753A44D36D32061646C56003AC1112A6E2818713533D087ADEA73D209D60C7
2047+1EF96BC3C792E1E0CEAA218675AF753C1F7160B865D9AE82FF347746AB26979E
2048+9ED0B939DBEE1EEBCAC572BB1C38C036F1C6D12716F7850EE5C84DAA22C7B253
2049+95821E43B6D716509101B3783903E34E4B8F4E6189DA059623A6724204172300
2050+23EEFAA40001402AABADC04F66E9E3E3742E27B5E0F126291206C3A0FF2DED64
2051+740B8ECFA091092FCA932DFD16C5971C918299A69D41EA83E81FF3FC22BB89FE
2052+B4B822B7AD8C027DD2EFE2860712FB609FDA395F9CC2557117FC84893419272C
2053+E73C0142B6A59A113FA64BFB019AB72F4A669594368B0D711AE13C1532E70FC4
2054+A3AD9557B4FA4BE1113B18A050BC8A71C7CEEF1B28445319CB3D1376BA73519C
2055+D37569A34598744F091301B88966A9624B8EF94C216974D200DDB55842D42560
2056+CEFDE1D36D417E728CBE39734707F99FBE7D76B0C08074F70DFCD3E44B204C3E
2057+316CBBDE3356BB28EBC008264FB11B74EFBCF44B76587871CDFB0CD6B718A4A7
2058+DD64ACC93E39BC58C53587F33DACE1599DEDBC60668F20B07CF327247134AAA8
2059+29F6A490BC8FA5C682373ABE108B68D54D6312388E0B04A0F518AEF0C53C5517
2060+FBDEB91F36CA1C000E55247CDC3B72EEC9CBD9381450C24CD71A2BA299FCD2D4
2061+0B95D46B116141644EA96D18310914315DFC209208B0AA9D74F871C47A3079A0
2062+74624D9884C33B696EB101F3050A91176A1A146FB9FE735E2B03FD36620D29D4
2063+BC9FF89C01C8CF8D9CCD669AE20AD089F7245976C97F686C38F33B1D587F60AE
2064+2787AA5306378BC30FF335492679399DBA5C54CA0FC732B2D0E7780E8E3D2751
2065+0C6FEE3BF7A2B512AA1F14F98D7BA8D8F782C1B443A6047AB3E95114EBBD3DA8
2066+218377CBB9C232E395012635ACBC966BCDD2114EA60977CF7C4E6ACBCD64E18D
2067+B01A4C9682B65340AFCBB345ED0C6CDDA1B92629008607E327341C36A08EA593
2068+8C19024B48D26D51B5C25971921CC841AB4C9D193F0B80C2FF872834C004B74C
2069+5B8ED7758B4E75AC621DE891B7475A1290482AAD2CEFC23FA8A88EA62376DB6E
2070+4C77E12C64D4CB0D6683EB4E53016EC45392A114AC4CC27FA3428E157737160D
2071+B0746DA600BAAD41EB8C428814E08E03EEFED4B0A9463408632DC89CCC2B092E
2072+B05272C3EE59E0AC78B3C87AABA7AC80447AE3857D75F38EB3DA3B30566EEC66
2073+5803FAE68266DA8FDDD06768508A90BEB186984608425F0BD3EB2271076374B6
2074+B33130CA7010638EAF70731BF9A5B3E9200FE575CECBC5ADC3F8CEF87E9907A3
2075+4856198C918F958FE13BD32FD67FB4B2C4F0FB20A15FA83535A044CB8B60C420
2076+7C2E393A3CD5BC900F61BD076210F147562113848933DA2CF94C5422383653EA
2077+7C4C0B84A44A7B94D6133005A63F87313448451911E1523EFB538C9D9200914E
2078+42E82D3B24310AF02F12767A947089771B58709ADD286A29507D9EDA85D3B889
2079+F4D68DC10DDFC8E31D44672ABA818F18247AB591B0F7657F37F61C6172653EC0
2080+09E4FA2D4929D7BB495264F74BF0433E6CD9DBFFDCCD5B1663B87DF50FDF0FD2
2081+CD58D7F057B8EF0729ABCBF4B4CB0B86096232FE4ADADDC26AD77611317DA7E7
2082+0C098D6DF7FEB89F547D4686107A1B64496B8465ABAEC3B8F0D8BC0E346B3A0C
2083+1D618161D28FE958CBC48E6E8E87EB3663C1DBE96C9456D2D45438567D778BEE
2084+B251F55F7C93BEAD48307F0BDC17003106F2AFBBA39BBB75F2A49685D9DBA4BC
2085+48878E848B5184C982B76A1EC4907B7B5F2D98EE81690B735A80471D263BE8FF
2086+B0537C877DFF3296171D57BA08CEF76C8349058B86BD40CF21F07112EEE710DC
2087+B2957E0A6623F69E63B6FF655389B8E1A9879CD224878C80C387ADAF1783034C
2088+90F615422D015433656D3796109C410F04FBEAFBD04DDBFE686FD8CFCB669B9A
2089+3574508B63E2323EEEC0771CA8E6283CE9946DDEB99C669F1642FC87DC924AA6
2090+FC35674582B6600FBE199D60A3F737072288DAE95EC2A8B7301C8A1023E6FCD6
2091+4490B4D3F2F9492B58E2F0ACA9B4B15C42FF7B9C1E6E4EB71A738A99206E2E68
2092+F6814C127C3B6B5DC7DE32DE75B35718A561401A2F6446343609DF5DF308BB1D
2093+E8B9CD0E8BCD4A0F411CDD0108B0B70A4350195673CBC821B740B3995D0F0F0C
2094+DE1AAFCBF4E43E1C42C32CE9B9CE6675F6AF5FE1E9E277BD6FAB6B0F82C8DC88
2095+975D113BFF9E81A0511418EDA0260757CDCD19417E71E702A9820E37F8FAADA9
2096+847742BA8DD44C8484FBF4276C82142CE20499
2097+0000000000000000000000000000000000000000000000000000000000000000
2098+0000000000000000000000000000000000000000000000000000000000000000
2099+0000000000000000000000000000000000000000000000000000000000000000
2100+0000000000000000000000000000000000000000000000000000000000000000
2101+0000000000000000000000000000000000000000000000000000000000000000
2102+0000000000000000000000000000000000000000000000000000000000000000
2103+0000000000000000000000000000000000000000000000000000000000000000
2104+0000000000000000000000000000000000000000000000000000000000000000
2105+cleartomark
2106+%%EndFont
2107+%%BeginFont: CMR8
2108+%!PS-AdobeFont-1.1: CMR8 1.0
2109+%%CreationDate: 1991 Aug 20 16:39:40
2110+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
2111+11 dict begin
2112+/FontInfo 7 dict dup begin
2113+/version (1.0) readonly def
2114+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
2115+/FullName (CMR8) readonly def
2116+/FamilyName (Computer Modern) readonly def
2117+/Weight (Medium) readonly def
2118+/ItalicAngle 0 def
2119+/isFixedPitch false def
2120+end readonly def
2121+/FontName /CMR8 def
2122+/PaintType 0 def
2123+/FontType 1 def
2124+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
2125+/Encoding 256 array
2126+0 1 255 {1 index exch /.notdef put} for
2127+dup 0 /.notdef put
2128+readonly def
2129+/FontBBox{-36 -250 1070 750}readonly def
2130+/UniqueID 5000791 def
2131+currentdict end
2132+currentfile eexec
2133+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
2134+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
2135+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
2136+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
2137+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2138+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
2139+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
2140+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65
2141+48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3
2142+9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB
2143+0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB
2144+8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F
2145+EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466
2146+FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3
2147+9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62
2148+D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8
2149+9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5
2150+ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6
2151+10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582
2152+83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493
2153+2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA901C077A059F709F30
2154+4384CB5FA748F2054FAD9A7A43D4EA427918BD414F766531136B60C3477C6632
2155+BEFE3897B58C19276A301926C2AEF2756B367319772C9B201C49B4D935A8267B
2156+041D6F1783B6AEA4DAC4F5B3507D7032AA640AAB12E343A4E9BDCF419C04A721
2157+3888B25AF4E293AACED9A6BDC78E61DA1C424C6503CC1885F762BFC6C8AAF00A
2158+6E3D63422CB0D13393D3A4EA0F7E39EE0E8B2AB66BCCFC58F38D0B786B14DE75
2159+E7280E0FB6C0AACA8399118615D264E64DE90A05740A04854EAB9678B4B4CE0E
2160+3143CAA692C1CC3FD62DF44D0C4F82524BEF58C9DF7A373C1C54DED11C2F93FC
2161+CB46F3B47F96F06EC598064E2B72D2CFFFABB1D5ABC1FF308B447D7CCDE6FCF4
2162+6D5AFE2D7003F20563C066C08C9DBB08FFE86BC40A0AFE52BA2D24C77F004982
2163+7C4FAFCC2F253B8E414272579DC6445E1E8388C38BD34AB2ABD413A06B1A03F2
2164+5762639D6029ABC425CA0FB69EC6B313B22898AD39A92FC492B0F39B8B346431
2165+38759AA6CECD4766506DDF7AAF8F0E36A05D1BD5C0364679478AA0E1DAB30202
2166+430A251024924BB4CA3B9C30BFECABA665243F48D2612E5E95DABD497EDF0790
2167+879B7D02941FBC0A941C52E8836578E532E51A9DA116D78C2F700445E15B8F60
2168+D73F15B794F97B2BEEBF585FB8161D36FD02A7A46F0B470B66E8E2E1155E3B7C
2169+9BCAAC18FB7B94C374238B435A10F44C8CDE80B6C8E0AE06DD18DFD30B5AB42D
2170+827BEBB979426CAF89459C6D25C1EA68EA7AB8FAA3A09B8BA9D4F871D8904BBF
2171+ED2E6372EB96FCC8790585BDF8F2962E4E2E0CC00C6315789987436ED3B2F465
2172+C2959378C50C2CD69AA49398866631B80BA5C02171A7AAD28438F495421193A9
2173+55F196C06C04B4623EB92194BD88BEB4A891D1D2D8DE04E00902FAE844BDB44F
2174+47DA8F0B366BDCAD33B2EC685BFAC2E9EFC42BEB8DEB89CAF99F8F8A4252A0F3
2175+087EA01D6BFD2CED29DC1D2B36629A6310051305F59C278D47A693DE06BC2EEA
2176+50B9D6B18048C20DBF22B2D18453226E68AABE9964FF0BE777B3864C6B41D19A
2177+5D162272693E4D77CE7FB05E1DB9481DBF3BF0F5A909643A2EAF009B79CA6E65
2178+ED79BB4233D7FC1564C88349A5AB1204AD008D049C08DCAE91E210005B99C1A0
2179+CF967C88FDFADE0F83C1A3BB4DA5AD1480C4A8ABAA7DD4F17A130B810E38E6CC
2180+0BDD7E0E1E82E9A9EFFB514869254A85416C74BBB5B1F8D0B9760777446AE310
2181+6BBB962E30048C90519C2AB1C57F38EB53BC61A953EE66325CA901B95793B432
2182+E37747C91864FC56BC4B567C0BEE48F86E1B761112D1ED25F8C538F401125D74
2183+DC86C1C1455CD0FA47883E9217A8EB576CEDCAB1651310CD71C80DE77207D8CD
2184+7D87E83D7FBE461B0376AA75FFFD7E725A67C846D164935D3FC7C33FD0D161F1
2185+B7F1E749FCB4B74F9B2B7F4824366B8A62757C9FEFAFF4AFB22502247FB26F8F
2186+2DF28D29E84DD6244E724A832ED8D214752FE56D06D1ABCC2435FB24143DA554
2187+1D45A170C72D90D650EC503F46144C3B6D29D76F982129C72973938C1120FBE3
2188+A44B66AEE846E3BB6672EFCD90411C66890FED26A22EE73497BFC56E6BF9F3CD
2189+E4354AA19ED2C0DEC4151825CCF348664EBA2E3E3A972DC7C9C5AA5B89FC91B7
2190+43F727E93D5A16FC53F23713E6D9CC45BC243893A148F5ECF0BF6D4671E9DF09
2191+0F17513C06657E8E351CDD9904978A26F259F1EB4A95E24399C0E2166B8ECE14
2192+8A8866D703C7FC6AF09F126F6B47F40C4B0CA014C5B9F097C1A4BFB9BB463307
2193+989A160CA98DF650358D6BBF4DB14C886AC660FB1A56EB0E9652B7D9C63D6D7F
2194+C31FC46082AD620589DFE1553442436442CCA7EB72210BB826148D63E7048063
2195+69F065CA55E8BDFCC3525470BE0F92F7573766D921A8C0F6968375514537D6FE
2196+7327606C70F23C50BDAF6C67BF99C6EAF0712A49ECD79F25B228E3227B092A3C
2197+3F52E91C949FEF2B0EBA64FB8B00A5736E54A6826DB6FB85D5277ED46344B50F
2198+F67BDA4EBD299FE30EF729286B03B728285741EFB9D9EB762CE4BB82D14B41D1
2199+82CE73545BD6EC3FBBE94E6D48AB60924AEE6D2828FA9E054D2946526F4B39B0
2200+A9E77A72CF7A80B32E5D1E8C3FBB70E948328FEDD15A53B3CD4BAD6E12A6E070
2201+F705643B8D4A5BF68D00A645B529182FECAB193C2D138395D2FB2B5C7703D780
2202+80E22BBC620080C4E86F04C7491AB27A9E3AB45A3367E14B3A6C26231F757428
2203+0831F6EB58E19C3BC16329A2E065EE1C45CC20B3B774D7EDADEFB9D9E2138F91
2204+9C3E41E3505EF990742F395113B56B655B879A8C4BB012292E404E2D868795AE
2205+C0C4333FCC933C5EC45E0CFFA8F66F177939AEEE5FD7965E3DCDE6DC3860926E
2206+95FF60FCA4B5D346C2A3152322166038C8732D2E32DCF30891DC67FC400F7006
2207+59EF1C8CE082F9ECEE1FD1723ADDD58120053C2CFCFA079BE5AB78F5A0523F07
2208+2C15273EEA4BF63693BBB0A729E979CA8AB7B0C481A52D7C39E85CA06A1DBF3A
2209+C106E063E5EA3D99BB4D99C631A5647C11290CCDE943C0922B9B2DF86BA96C89
2210+66940046969AD7543D0DA4F68DF65612B47DA68CDD55CB43CD5D251E0EC1DEE6
2211+49C29129EC68CF5C28E1A6C079E2F8ABB8E146596844E147B78A088086339423
2212+35F4E6627FFDA1ACCC0D71118E09BD18DFF80AC64FADF1085E829D36557111FD
2213+20280AD36B655E2535BE0A7CA660CA5957D1D88FD669D13CCC319D6B3E34B0E2
2214+B7369B28D33ADA74DB6E68DE3654CC4829F02F6913027B92862035F80292FAE3
2215+8F0923D5E24ECA9C3C6520DF7CEC8DACD0A27A73ACBB2C4FFF2E12F76C129B7F
2216+1C8D52E41DB3F19B55C9CC7845042E47E15CFBE90296FEAA5F31256AA3425B0F
2217+A2AC0A3EEC8C8C871F6BCC89E19A5A960E8B3E0E5EA81DF3BAD08AA2FFDEE13E
2218+74B81ECEE9CBEBDDF344A0B926E0E48C2D6B079554462E900C6EF28854B2664C
2219+BE170BD551AC1333139E9A1794BCB0FB1F5F55C83A4FA9D0272C741898D0B76F
2220+343CD1FB7B83AF53CFA528D9E00C06A7278873209943705A2E5DB13DE7BA496C
2221+A39F6972F287E9E7E6779A56132C5BD68399510B33B3A858C4F382FFCF6C7361
2222+5EA33770E00DBC6328358668E16B79EED96E20BAD17EFCE4ABDE489D0167AB3B
2223+F8B4E63662B926E5FAEAE8606C92C162213323A68680BBE88F74F64EA97AB3BE
2224+4F6E72FDCF7CD14F40FAC7821A88C8DEF49A92376825565E8C7C4E0BCF45BA04
2225+CBB8015001EAB4CEE0180C38452E39402EC6F00E140153090BB246E635B9BF40
2226+231F8E13D0118B3B383951791E3C2A343A17064CF5D01F59B7F8F626A766C258
2227+8EF4709E5A5B582345B336A67A387564A707EE48ACF1B459672CCAE126D17B7A
2228+343AD1C4E3387DC8591393DDBFE1314B597C2C5BE2E38E137F0E3C6B2FEEA883
2229+3A0FEEA5FEFDD7EE0DDC07AF5381283CD40D5E3F05465358341485270853FCDD
2230+73380650ABC253E664B72D5EDAD589FD741A2CE1095E388CD18F443EED96206D
2231+58ACFB09AB41CBE20814C2CA3035DDB046FFDC836C229983ED2814FAF8D2E979
2232+AD9BB5E9B065B83970DF68F9605034147B5372EBC8DFA96FF3B1F4721A15CD7B
2233+B37506B8C2A73A3DC30E55AF4A5BBF8ACB5DA9DF9E5BC37310803B371DEFB0E0
2234+B06DCDBFAAE29AA1203019500B5C8DBCF9ACD3236B3FD235C6DB7D580E81BD76
2235+5FED87C77D81A41B19901E9755D29160B68F5F34E48705C7FED6285776351735
2236+3DD0892292F7C694B07A3F4FF39D0E59021E4D607AE4D4C6D9134ACAA7388C27
2237+B1073208011EBEE611B8BCE5F5E5D4D21CF6C87EC58416D62F1D63AD528AC9FD
2238+D89DFB56B2E06F4F74D4C158B6CC7E698266A6EB767C038417A651BC7B3E0865
2239+565A94DF80180B8B4E21A64F3D09B843827643A4046C139C344A8E6427DCAD2C
2240+329EA9B4B58354D734395BFDBC14138D29FA305938C841CCB70B9095A6228A53
2241+252163C13F82D116E417E0DF02D7D88C4F0F94FACE4305328865571E5736AD96
2242+25D5ECCE05D5C76343FD55DB949B06678902B29765D6ABA0241F3218040DF384
2243+F5DE9629993ABB9DC4D6DCED908741FE963FB78B02004787EF6A2BBBAB8B902A
2244+97AC8BDCCF03A09A21F5B010133B2CE1114C926033FDE1C16CA9AF0E7E474905
2245+1157B358704286FAEABEBFA9787BAA196AB2DAEC93CABB04289958E4C43D7BA1
2246+6D2160923787218CD0CFF0793747AB2347B657E6FCB946251C6E1A18F0120CEB
2247+D15A439D879B32D12022C06A4E420D470B493E68EDFA043E15D098923E720559
2248+AF3DF3043783305F7AED5F40BFF62558FA9CE1F7C4FDAAA237D4DC0B72016A33
2249+29FBF2ADA6C308EBBD245073B0D6717DFFF3D2C2556B0E05169EB91F3DF95E23
2250+35A562C4B0993D99D0CC82C61D450EBFA8F75AB8F0FF4427356CFCF1286FA2FC
2251+3BA2DFC625AC926DB245FB6575D8C4C4C9C1F06F8659E602370622CE1B43C50C
2252+937D2270BDC4F8B7519DA2539C667A339A72FEB7E368A98553EF4933076FF276
2253+5E826467CEBB0E6B8CF1EB23E9AB93F4D4B79DF8CEFDE0CC77277844EA36EF89
2254+48A24200108956AFA11DB66B626D91D568C1989D4F121D28B1C607EC9C76DB62
2255+E8914AAC5E0934551BF16CD41169DDE3BC16585BFC7E677C66CA44743C3D76FA
2256+71FC3FAD07D0CBD68353F535673497FFEE691C3282D091F5370B82D96B430D5C
2257+5D1D6549CD83D0B28E30603E014E0BB2FC7A96D3F7731FF88560461439734DD7
2258+CB7C2F9F266CFC1072292EAFC6447DF4C831C92EE3B4145AABFCA1477140174A
2259+9C8B2CA6F26E581B23D490201E1F96B740AF4BF98B55BEB1C69709074AD4E3D5
2260+0D564FE61C9A0EFC1B0F56A409803C1DFCF9508DC10F14DDD495D5702E1D87DD
2261+0F41A55F9FDC34ED3DD9F82CBF88482FEC64A22A0E660403E3843E194459516E
2262+DABB722B4CC56A2810725291CEFE412C14EBD55E4F143E33808A721EAD20F806
2263+575531A4F666A555497F287D6F963C74DB2A709B2F0F2F2EE6670C06962FD848
2264+DC13EEF6CF0DD6C888B6122C1A6419CCC4EC8A7BF4CF6F3A7A70B0AAB3CEDE37
2265+DFE0D516CDDB2C6EB0593A02F4169F303D81D2086D6E9D72FB4269FCFC848B32
2266+86805E2BC50D3EB9FCF250A8F06E3A78627A2F9F9FBA6C37811D4D74FAFEF414
2267+689AAE5963BCBEBC071ED0AE1C4394DB0ACF151CEC8CCE9DD8B3CD68BA63103F
2268+97C09B4FA70C1752C8B0A82DF311829387BA160CB44697C040A2ECC8C6C876FF
2269+42E3337A879BFE0B37FC87230350C222C772180F97F870F9F7C9C09BD6F7A327
2270+3C0B54C956A5ABFD2AC0CBE22576A2A7FD24D449FCE3E19B44292CC2C65D6165
2271+512FEAF4CF7337A96C70E8DA86208187904D04B888BD342D59725D6AF8C611CC
2272+C8623E573D49EB602B90F1254EC3CDBADF71F9E7CF8AE2C1140AEB8CD1EBD1D2
2273+3BE7523CDB5441AF3B1EF1015F1CE1380F98D2365EA99DA5176E3F750733E8F4
2274+CBB43E500E84900480B06E8C2F52DBB6922799DCD603C3D5A600537D3D06B53B
2275+DAA8D1AA739C8E6A9E91202E5E36B204787CB9BB690B5064B76704493B206624
2276+EFEC5B35192C7919D9107A5C576B798208807A7E3A9B133F1610FBB026B0278A
2277+6C1F2A9C863EDAB17FF8080DC7AE20A8C43BE91BB210F13B65EE7E4EC04A6C54
2278+ADE39FEE4D902B22192808229E3CD2EF44776BB7BB3705F808F1A6E90CFA9793
2279+BC982CB2D1DCF2513C93C78F2A39F0FDAC8D9EBFD0F6F1E556D8A63A78A644E0
2280+7768A125AA5FC8DA9952E29200353489406C7244D8463E7C1AA1AD58E1EE92DF
2281+48FEF606A4AD9E76BD1AC4A7FB3319466D0264E1368BE643AC2301CDA1B4E7B5
2282+E592B73E5C94FAB8010E679BDF96BC6321E696FFD3226FC343D4E1F9538DBDEE
2283+7BE661BAD276876834D0B029420B21E2F5B04F7811DE831FFC742D3F88218211
2284+678D1B0CD8F036D55AFDF4FD03E813DDE141BB041767420D72B87646B4B3B03C
2285+543F999CBD03B8D344CB309069E21BF5FF6D7DE23D92B4809A4B12F5C8942992
2286+AAFFD142C35D130FF8063373E9901AF92F58DF724B56310D2A37F64B05899687
2287+7B17F4A4F0C67A58806E48B610A789A28F1C7FAE5A5F4A10045CBDDC71B61111
2288+86A095F5305F0EB5E2653572241BD602E1DF0321A7F3B942EEA5FCB299C7AA17
2289+FD4F04D6E12AB6596F4F2A7993ABC4413A3DC7D7DEDBFB50C81B3348D152C749
2290+98F8ACB7F00846C13A1144A6C736335BBFBB4E7E732037339E0C481521716485
2291+9A939E43136E55EA34186958C6D5D281B0CDFF11CEAE36DF2DAE3D460B92A7B9
2292+B01F784BA9A20374F2DDB863CFE7ED963CDF9AA7BF794D4DA4087639FF7DE304
2293+2B19ED80EE89765C0A7A35AD1A2FC42E410F0A65315AE6DA5EFB02D85E39FEC1
2294+62DBE799633BB9C1858FD5C3640E063A4C865D7BEAC939F97B9B6A5126B6ACFF
2295+B4B08B439AA5BAB0E1A6B3541533E68876452DBD9054CA87BE449A7037CB78F7
2296+B982F79FA5FD3F7B9D4FD19DCB7DB973237B9E734A7B28ED7753577535B4B8BE
2297+E78324CDEFAD49AAD938AEAEC0B57B31AE59A50F20B1DB3A0FD28D7E832F1357
2298+93E155245462E25CFEFC18CEF7A1280FDA32C48B580D8BDDB6EFF15A17E4D136
2299+E6E3399FFF9780D7B50BD88A81FE22A8759B5864088E281E94D9AE578AD8E2FE
2300+EF06982174355F73E162934DE5F67E2D2FEAA16CC275B78579EB0F2061EC28E0
2301+F8450982F122A4430FB9E867C302E16A4105F82B398DC10ADC792DD7B52D40A4
2302+7BFFB02D5A6182315D8F6F55C09FA1DE04376A51D55D7FAE898D1AF4591A2788
2303+5684746B0771648BA77B8626E595FBC5A3D9A940F1D07A78FC377957DFB6C7EB
2304+27767AF46563CA503799528FFBC88B6CBB026BD1D71CAF13E9C71529B4895CBD
2305+0B35984DF4C7CEE6A4368B5A45FAED067987FBE3D4795ED697932D8CAF9F961E
2306+5A589D46E479AEC1395673D96C777DEACB6D39CB6C22E6D1B9A53A13741AEA80
2307+23DBC617C985529724104EDDC5FE4E88D890CD306712120AA705A0229277700D
2308+55791C13C3D7C2562A34CE619E11269674BDAB7BCAA1B1C92E20F4B862694A5D
2309+8471E1E8255C0F1D1823E19341F1947E06C05947CC3320BD8340E937EA12CDB7
2310+D2929735664C367C2139B6B86C317E9C9BF2A4DEDBB4F056CF7FDD7D900BF60F
2311+663F8A75A025DA54AF0CB1B2645913727AA06B70D1C2C057CE6480B6C18EA51C
2312+ECD5BF1BC0294580B6AB62E68FD45F77752B2DCC99C80AF1406ADEF13C4D5F85
2313+21784E302627A5C6EEB90FE5FB99CF07DE94689151DC1DBAA8F8D40A898BAA32
2314+8A52546EF18B090E4E1A2B643D140DA2374CCE813812A7023800DE0AC3D42BB7
2315+370F4E7706FACE6FAC8207468EDA092186446C47F3BCD3A23AE647C9A17D5927
2316+8CE36AEE79454526BA0ADD82EC561BAE6620F983CDC45CDC1ED06EDFD9094B1F
2317+DA00E7972B3046397694B00DA0BA171D014AD727AA3F615E4C8BAADC6A801BCF
2318+B967F255D9FF637C82A3A830916EBEEADC6F9DFCD2E72787A640E67676255767
2319+8F54B5405F38850DCAC5F2E704961B54498CE3FBB910DD7306D60EBFC23431A4
2320+D47B958C501B91EC5BD225B5F4849DE85EE2B8558AE287885A2B71B0000D0A1A
2321+D6AB01A5A62C994FB1E6F84DDE4DE9B00C9622ABAA493BB4A62C27DFE4DDE39B
2322+6F62695F459CC651D1CD3A68511D00440F7023A3C2C70ED1D66C0C217305800F
2323+C28558673B016AF00AC5207F698ECB7BFBA2ADBA9AFC1DE814D66A211B86B0FA
2324+CBB528CC9CDB3D550FA57367BFC3AF051110A4935ED94B901E12DAAB2DD484C3
2325+BBB0DF8DF7D5EC5E0DC3A147CBA866F227E662EEBB769B94A0A532FE350599DD
2326+A57C12BCBCF66B52FE005ACA16294E697D20C5660EB98D99B8E00385B3EE0BF4
2327+BFD414D2172528C82904E3F1AE713E51968EFF2A2498052C8ACB2B0BED013817
2328+7F36AE0AD22149471FBF5CF8D3C0E5F0B57E4B01AFC45B0AA34EE509E28CF88B
2329+EAEB7CC6E43DE08282B70ED359F1DC46F07EDE1BE4BED10750184C0C421E6FDB
2330+B2E300F9C41E1167B6281E70EDE5F53467493537DF66C7BFFDAA539C4F028A0C
2331+904604FAF5D4ABE4E39D7EE92B1FF8C75B71BD150F137722B85718ED80FF251F
2332+74EE7372A141479BA37C2EE484CC6E6B2B1185776D0B7CD062FBCE0B0D7960A4
2333+CF8D7FBC8854DCB613048BD31EC2FE0EC9EF90A7AB4271177DB8B8237DE9108E
2334+E1B4DAA3AA5B8068ED2E9CB2A1BC9524D5058BC26C531626D21801139950A734
2335+0B564AA34162FEABD4D68609AD531EC699134ACE0A4B76872F51DF91B8AF86FA
2336+17937737EEF89199BF3AF1F7CD77C567E144CDA617A11E7175DE1B29E8187A22
2337+0EEECD9C65D355FE09F04376129BD0D15AE89E10B06762D2ECAA08A5F19899AD
2338+BD3A37D42C77A2A5C0CE2CFD8360B669679A0203AED6CB0DB0D8562A37B670FB
2339+554715C46402ACBDD00A935D40FA0951846D7FE7A251D31AEAA408D9DCA81EB7
2340+C1678B26F228A69B1139BF166BB1A1A9FF89315C726B28B36FC9D84B4B431E2C
2341+FEF16F592D52BB54B9992290A0B210FA5779665C8DCBE48955C5467054872E9E
2342+2874C5A175427A35C9E8B4B4277D70177B8E4735171EEC3221105260CF162219
2343+172A018CADA4BF0E3AB1331A015C7824E39E5FE3A688BA0E0870EB501A126792
2344+96C88EE5EDE0B23A118A4D0C149226465AFB7B4673F82A7618BDEB74B92DE403
2345+05B11124C8121192E5834A65F3EAA521F17570237AF11C39DA5434C5E54BE434
2346+1516A9FF1818B930714BFCC343439A849B3975073C447023D9566300F249D341
2347+BDC3D6A4B4E8780E8D7CF04483EC77354752879E09E89D1B7660B71451A95E8B
2348+8C815F7B3A7734F8F490851499E3DC091D2B400A406B2303EE6DADDFD6B7277E
2349+00207C4B12836114E6DAA684A7C374340DD7D84C964B35BA364DD83FF4F82DD9
2350+BF6D005250A713B3207C9A5920E57288250B05400AC339A856284C821F4B34C4
2351+BBE7C30C1D91DCEC2B352283DC8678BDCB4DC9BF596EA656864B46E8F69E2612
2352+722708DBA3FDC581162CB63A2B26B94C448032613A1629EF6ABE228AA8F06996
2353+68FA7FDD0230302ABF42637B635AE91DF6A9C68EE3D10B85BDCD8A5E2232C4BC
2354+81A486D49D8FFCDF1E9451E226BBC51F950741077A1AA6544FD281782E5C2EF0
2355+FDA1E69ABB4C718E401AEBC2D707D00ED1D4AC55BFBA48CE1E25F0B21495A9B1
2356+B4F17E3A0BAA38CA1D5952758773ACA8E0EFE814026BF79C335F5331E8868D89
2357+F81C98A2513AD8FB38101D76D6BF0F367D35
2358+0000000000000000000000000000000000000000000000000000000000000000
2359+0000000000000000000000000000000000000000000000000000000000000000
2360+0000000000000000000000000000000000000000000000000000000000000000
2361+0000000000000000000000000000000000000000000000000000000000000000
2362+0000000000000000000000000000000000000000000000000000000000000000
2363+0000000000000000000000000000000000000000000000000000000000000000
2364+0000000000000000000000000000000000000000000000000000000000000000
2365+0000000000000000000000000000000000000000000000000000000000000000
2366+cleartomark
2367+%%EndFont
2368+%%BeginFont: CMR6
2369+%!PS-AdobeFont-1.1: CMR6 1.0
2370+%%CreationDate: 1991 Aug 20 16:39:02
2371+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
2372+11 dict begin
2373+/FontInfo 7 dict dup begin
2374+/version (1.0) readonly def
2375+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
2376+/FullName (CMR6) readonly def
2377+/FamilyName (Computer Modern) readonly def
2378+/Weight (Medium) readonly def
2379+/ItalicAngle 0 def
2380+/isFixedPitch false def
2381+end readonly def
2382+/FontName /CMR6 def
2383+/PaintType 0 def
2384+/FontType 1 def
2385+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
2386+/Encoding 256 array
2387+0 1 255 {1 index exch /.notdef put} for
2388+dup 0 /.notdef put
2389+readonly def
2390+/FontBBox{-20 -250 1193 750}readonly def
2391+/UniqueID 5000789 def
2392+currentdict end
2393+currentfile eexec
2394+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
2395+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
2396+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
2397+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
2398+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2399+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
2400+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
2401+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA17D1AFFF95F4224CF7ECEE45C
2402+BFB7C8C77C22A01C345078D28D3ECBF804CDC2FE5025FA0D05CCC5EFC0C4F87E
2403+CBED13DDDF8F34E404F471C6DD2E43331D73E89BBC71E7BF889F6293793FEF5A
2404+C9DD3792F032E37A364C70914843F7AA314413D022AE3238730B420A7E9D0CF5
2405+D0E24F501451F9CDECE10AF7E14FF15C4F12F3FCA47DD9CD3C7AEA8D1551017D
2406+23131C09ED104C052054520268A4FA3C6338BA6CF14C3DE3BAF2EA35296EE3D8
2407+D6496277E11DFF6076FE64C8A8C3419FA774473D63223FFA41CBAE609C3D976B
2408+93DFB4079ADC7C4EF07303F93808DDA9F651F61BCCF79555059A44CBAF84A711
2409+6D98083CEF58230D54AD486C74C4A257FC703ACF918219D0A597A5F680B606E4
2410+EF94ADF8BF91A5096A806DB64EC96636A98397D22A74932EB7346A9C4B5EE953
2411+CB3C80AA634BFC28AA938C704BDA8DC4D13551CCFE2B2784BE8BF54502EBA9AF
2412+D49B79237B9C56310550BC30E9108BB06EAC755D6AA4E688EFE2A0AAB17F20FE
2413+00CD0BFF1B9CB6BDA0FA3A29A3117388B6686657A150CE6421FD5D420F4F7FB5
2414+B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E10A31C7011C0FFA
2415+99B797CE549B5C45238DD0FADD6B99D233AC69282DF0D91EA2DBD08CE0083904
2416+A6D968D5AE3BD159D01BDFF42D16111BC0A517C66B43972080D9DD4F3B9AE7FB
2417+11B035CE715C1218B2D779761D8D7E9DEBE277531BD58F313EBD27E33BEF9DC5
2418+50C7821A8BBC3B9FDF899D7EAA0B94493B97AFEAC503EB5ED7A7AB67C3039A0F
2419+BF0BA4B455D035FF3126F33A4DF59FF96752CF58DC0863924F6042B14DC2DEE4
2420+099CAA764A8EFFEB78F7FFD276F0928BA32624C3A69ACEB8777A461298B201D3
2421+4DA271476B8AC8966668D4E28A6FBA952F6D295AA80CC09B0CFD6BE840703B07
2422+7ED93999EB5630C2C7CD9BA683ED457D1341C3AA702B5FA8593DFB1368476E2B
2423+504F45CAC36A6CF2C977A321DA231787E107EDCC25D3B7F43EDE2D4509506CD8
2424+9B49582F1B3B27F90CD5D26DDEEDBCF5256EEFAB4D213BBDF39459651EBECBB8
2425+63E0EF9989D220DE90A05C8D0BDCB20CF1C8FCD4E049E36EBCAC5C1A73F2261A
2426+43229BF33B2E0B45B21A6B97016BC81AEAE19E629B6B35AE22440EAD80C8E56A
2427+1DE751148B75169C1C356528BEAA4B492499F6A5AF19EF591F0810D974F0A69B
2428+FEEE21A5209AD604F42B3DC8B0479F1371CD22BE066B31077723ACF017DEB2FD
2429+8437D985CF414CBE6BA6F926172BE1F2E2329A33347557EA37F7B0BA01846172
2430+2DA149EAC55DC113D9A3B4E9440F37F146EA597E5DF412F214028C97482FD9DA
2431+63018D551E75C661F4DCE7F9761CAF86A18D5C0EB7CB89156A63FD6F9C113354
2432+4963391BF7822FC06F2E39D4FECEE2F098E0DF2E0992C775AFE3B6C044E66307
2433+208DBB
2434+0000000000000000000000000000000000000000000000000000000000000000
2435+0000000000000000000000000000000000000000000000000000000000000000
2436+0000000000000000000000000000000000000000000000000000000000000000
2437+0000000000000000000000000000000000000000000000000000000000000000
2438+0000000000000000000000000000000000000000000000000000000000000000
2439+0000000000000000000000000000000000000000000000000000000000000000
2440+0000000000000000000000000000000000000000000000000000000000000000
2441+0000000000000000000000000000000000000000000000000000000000000000
2442+cleartomark
2443+%%EndFont
2444+%%BeginFont: CMR7
2445+%!PS-AdobeFont-1.1: CMR7 1.0
2446+%%CreationDate: 1991 Aug 20 16:39:21
2447+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
2448+11 dict begin
2449+/FontInfo 7 dict dup begin
2450+/version (1.0) readonly def
2451+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
2452+/FullName (CMR7) readonly def
2453+/FamilyName (Computer Modern) readonly def
2454+/Weight (Medium) readonly def
2455+/ItalicAngle 0 def
2456+/isFixedPitch false def
2457+end readonly def
2458+/FontName /CMR7 def
2459+/PaintType 0 def
2460+/FontType 1 def
2461+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
2462+/Encoding 256 array
2463+0 1 255 {1 index exch /.notdef put} for
2464+dup 0 /.notdef put
2465+readonly def
2466+/FontBBox{-27 -250 1122 750}readonly def
2467+/UniqueID 5000790 def
2468+currentdict end
2469+currentfile eexec
2470+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
2471+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
2472+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
2473+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
2474+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2475+2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D
2476+E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8
2477+47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C
2478+8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4
2479+78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486
2480+1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E
2481+01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B
2482+C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0
2483+F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30
2484+8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF
2485+A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7
2486+455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2
2487+9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105
2488+EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B
2489+52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97
2490+563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F
2491+0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB
2492+7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1
2493+0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4
2494+1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4A78141CA32C
2495+B3C74E1A0AE0520B950B826B0ABD81766035058ED1654D00FE541CAD1D246C0E
2496+DE85FCD3C0BF7A70B913487B1A527EA823C00C39DB61FD6641B140FCED8580D8
2497+046741D2494B4E7CA1F120CBB0A532BE049CABEB70A39018E8212F8178E93C98
2498+B377AE2880FE39BA0EE29451857DB34964DA26ACA4CD23CE284ACE37D89571FF
2499+CB67DE7AE379B74B32ECACC5F3DE0566CE9EE820E96F27653C75935851CD9360
2500+A83C7EE8270383CB8A80715BC2B62B1F709235A5A73D99710D7665182D461095
2501+B98C8A0FEA44F0F1959055D50BABC7880E7BA1CA4CD72531A240A622663A0A1F
2502+DBE4FB907F97515CB1100282C9A0241F65F84EBAB1701FC105BD25F82807F4CB
2503+6A5EDB5CB156A7D55F64146818245C112DB0FEE9E0AC96B4B2AEB27F89FE0560
2504+727D85FE6CFF5C457EB1EE5D7E2A09979684E2611BA57A1BC7BA4E37DC4BA761
2505+557D986F9A8B495CB7212507AA79C297B0665CB5883F2332DF5CB088A92E24BD
2506+1EBADCAA515B567FAA9E15E7B8DA60C1BBEEF5A2E0D4C0C67EDAD822B5E8D81C
2507+6D29928726D36EF0A9238476FE54D4990E8D75FE0109C0336DD50F9021307213
2508+F69C700D2291C546007CF3A5DF3BF5ABEEB640D3AEF585055A65EB2CA7AD7F11
2509+22182523EAA8FCF029C604212529C03F179566E6B731FFE2283D6402A350EAB9
2510+3C7FFF41383A9398B33C48FB2F9A8241D65425FC5E49DC9BB97521D91E44B3C8
2511+B2EB1BA8D532BBF175486D1DDB914BCB92968D342B5C1FD6FC72DA462FF68992
2512+464BF0E00D05C2AC3729E598991C6EE7354F0C400296356ABAB37A16FA504DC9
2513+B6369F88BDB7061D5EEB761527E588B4A6C83169B517991789D664BB543A0E57
2514+6F2529BDC7838AFB93D53D5794E57B65A7DB00584492C046F72CE19E4D1B177D
2515+1D951362B2F7CE2B720B305D45B7FC74183C1DE46073D8E20FDF8027FBFCDF40
2516+5F0950F5AAC19AC8E8D9A57A271C0BB212822798DCD068B4F05DBAC2AF7BB25F
2517+5DFBFBFB5A51ED26ACB22541E1971002A5D97B5E148F8F087A3229C4
2518+0000000000000000000000000000000000000000000000000000000000000000
2519+0000000000000000000000000000000000000000000000000000000000000000
2520+0000000000000000000000000000000000000000000000000000000000000000
2521+0000000000000000000000000000000000000000000000000000000000000000
2522+0000000000000000000000000000000000000000000000000000000000000000
2523+0000000000000000000000000000000000000000000000000000000000000000
2524+0000000000000000000000000000000000000000000000000000000000000000
2525+0000000000000000000000000000000000000000000000000000000000000000
2526+cleartomark
2527+%%EndFont
2528+%%BeginFont: CMSY10
2529+%!PS-AdobeFont-1.1: CMSY10 1.0
2530+%%CreationDate: 1991 Aug 15 07:20:57
2531+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
2532+11 dict begin
2533+/FontInfo 7 dict dup begin
2534+/version (1.0) readonly def
2535+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
2536+/FullName (CMSY10) readonly def
2537+/FamilyName (Computer Modern) readonly def
2538+/Weight (Medium) readonly def
2539+/ItalicAngle -14.035 def
2540+/isFixedPitch false def
2541+end readonly def
2542+/FontName /CMSY10 def
2543+/PaintType 0 def
2544+/FontType 1 def
2545+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
2546+/Encoding 256 array
2547+0 1 255 {1 index exch /.notdef put} for
2548+dup 0 /.notdef put
2549+readonly def
2550+/FontBBox{-29 -960 1116 775}readonly def
2551+/UniqueID 5000820 def
2552+currentdict end
2553+currentfile eexec
2554+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
2555+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
2556+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
2557+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
2558+221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
2559+27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
2560+5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
2561+0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
2562+DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
2563+71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
2564+4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
2565+515DB70A8D4F6146FE068DC1E5DE8BC5703711DA090312BA3FC00A08C453C609
2566+C627A8BECD6E1FA14A3B02476E90AAD8B4700C400380BC9AFFBF7847EB28661B
2567+9DC3AA0F44C533F2E07DCC4DE19D367BF223E33DC321D0247A0E6EF6ABC8FA52
2568+15AE044094EF678A8726CD7C011F02BFF8AB6EAEEE391AD837120823BED0B5D8
2569+F8B15245377871A64F78378BB4330149D6941F7A86FBFFC49B93C94155F5FA7D
2570+F22E7214511C0A92693F4CDBF38411651540572F2DD70D924AE0F18E1CD581F3
2571+C871399127FF5D07A868885B5FF7CDEB50B8323B2533DEF8DC973B1AE84FA0A2
2572+
2573+0000000000000000000000000000000000000000000000000000000000000000
2574+0000000000000000000000000000000000000000000000000000000000000000
2575+0000000000000000000000000000000000000000000000000000000000000000
2576+0000000000000000000000000000000000000000000000000000000000000000
2577+0000000000000000000000000000000000000000000000000000000000000000
2578+0000000000000000000000000000000000000000000000000000000000000000
2579+0000000000000000000000000000000000000000000000000000000000000000
2580+0000000000000000000000000000000000000000000000000000000000000000
2581+cleartomark
2582+%%EndFont
2583+%%BeginFont: CMBX10
2584+%!PS-AdobeFont-1.1: CMBX10 1.00B
2585+%%CreationDate: 1992 Feb 19 19:54:06
2586+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
2587+11 dict begin
2588+/FontInfo 7 dict dup begin
2589+/version (1.00B) readonly def
2590+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
2591+/FullName (CMBX10) readonly def
2592+/FamilyName (Computer Modern) readonly def
2593+/Weight (Bold) readonly def
2594+/ItalicAngle 0 def
2595+/isFixedPitch false def
2596+end readonly def
2597+/FontName /CMBX10 def
2598+/PaintType 0 def
2599+/FontType 1 def
2600+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
2601+/Encoding 256 array
2602+0 1 255 {1 index exch /.notdef put} for
2603+dup 0 /.notdef put
2604+readonly def
2605+/FontBBox{-301 -250 1164 946}readonly def
2606+/UniqueID 5000768 def
2607+currentdict end
2608+currentfile eexec
2609+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
2610+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
2611+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
2612+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
2613+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2614+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
2615+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
2616+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
2617+2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
2618+FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
2619+DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
2620+7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
2621+9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
2622+CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
2623+6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
2624+E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
2625+8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
2626+3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
2627+EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
2628+0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
2629+4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209608D3976637A
2630+DB9C73EB3A28623DF758C25574D740385B2C3D10086AEB904A33DD76DA2CC4BF
2631+7E37F9117E9D81D3EFDA12D5BDF0067450C5A8A53959C055C5D6087F1FE6FB5D
2632+8306F16FAD71AB986320F1229440C63ACB5FA24E41CFEB12C2BEA2C25E59A3F9
2633+6CA5B7A04B57F2471D36F5B41E6363DCEFF2DFFE9131F044125884739392333E
2634+15418156EEE8DE92EF4C176742032FE8889839755D8D821CD7F8FAAF8A22C283
2635+19F79216C6D454A864898EE9F830DB5F3372B8F47C464DF19C69ACB3BC0566E2
2636+F25E7FF148B2CDA2B90CB5884440F464CD57295728A4415963CC1BC0635BBEF4
2637+E812CA5E0E788035873D05616F7B0F6A30D36BB285E7955CFD860345F16D952A
2638+BF2F7D2702DB352D0874442B2074859EB49313BC27E1067D627362649D82A5C3
2639+A57DC5041B1A13FD2FA89D80FA075677C6359244645E7803D375D96AC0592A00
2640+FCBB5DBD975E6623AF9AB4BB367E94C11437639C870058C8994A6AE1156CC432
2641+59B5641FBBB72A57757B2CBFC6F5D915C260859C43D16849F0276EC083DAB168
2642+EBB5E40D86168EFFF7462ABF70F1BD129A7618C77F6CED9F0A836A180EF459D1
2643+526AA5C4DC13E2FBE104EE488385C954AF46D90692B49F7D95000BE2E075BA5D
2644+C715D0339BC3114723F4B3A4AC7B9F1301DA3268A9EF79C456F99EE16A20E0FA
2645+45F280A806BA174DB0378DFC62B6293FBE74BEE6955D3E495124DE342A3CFC4A
2646+8794618F6CDB4AA6825158366E63418EDD689132C6429A9DDF8022F1C94CEBB7
2647+5BD566104E12AA4C0AEF0E5AAEEAA17B394188BAF4F489B019543024FBC07123
2648+9C92F9B4E1C0171F4F83D217C921026C8DD9699E1F1AF1A2B92AA285BDECA131
2649+479940083861707EC61AA529E09D262A841CC9C1CF25413ADC7FED1754B0F0D6
2650+DDDE2D630E602B38866A6FFCD97DECAFB573A3D4C222B2F41A5B13195B662126
2651+CF97B8EB2AF8FE3D52148AD0F1C8B8B3873F10DD19B813E15DA41D46FE69E633
2652+7177422452317D2F2DDB529DFEA26A1D7D1324A873D7BD6CFCE366645938298B
2653+B2F58D2B78CFA0E9883CFC80323D016D893B519883AF45EFBF339018ABFE4B14
2654+AE88CF0CD0246E250D2B8E8AE3F98DA779BC4F16A0689AFC47D623761A3ED9FD
2655+A55091EC4E2B95858E61EDD3D283D44C3BAFE9D93ADF1672BC8C48F3CA9942FA
2656+80C1F7A645B29762995A8A0FCC5776BC384578EE778AB577C5BB5515DFA3F5E4
2657+0246B1526B9636D40BFB581603D919EECC4A272C5F50A01A2144C94B7B88EE5C
2658+9EE0C924560174737903DE67E775663B85B3BEDF0AD31AD80BC52740F262AA2B
2659+6408FD4809414F3D5E557C5156D67D65345AF50EE0C001699E50BB5427413708
2660+BD7B4B2DDFD8AB39C4BC51B52E4A8F8F11B12F3A819C161103DC605A2CE14E89
2661+B3CFAE6358AE7F3A0D9191F85A79281EA28FE46D3AA97924F2584E6C5D8ECBC1
2662+B060A1F1DA5A7545F0424D5DBA04F8841BFC155F34FDB6ED52C344812252AB2B
2663+CFDBDFCAC17120A549A3A95C7A819297AAB29E26E846A88CFB182995078872F1
2664+291645462926CF3131015971DBE60C37FFF68C8D9CDCBAD593A2E9B73728108A
2665+39823C27F553BB9D9DEEF018E8ABA9A40A9985A14D7C7371AC71294C343A63FC
2666+28A6034FD22EEE3ADF32C4850A79EEB0DC34F83ED180FAC2E2DE9FFFA4AF5B01
2667+A97DBE6E4C3426A904AF0186132F57F368AD6C2F8C5712BF0DAD853DBB40277A
2668+D1C014A91C3A57402B8460884CA6A7EA218BD8523D3136518084513EE680B87B
2669+3B15D079E0642A1DE0EEB6EC42CDEEB718AC9AFD54B3B068F847DC345783C5C4
2670+A0D9A6A9882DAF64FC81D9424A4A642D3F74ACCC12456F4B8D9B5FFD327536B1
2671+09EDF4171635607DC51C04926EBD93D73DFB53D3F6377078C30B79337BD09854
2672+874313F6981071A9D9C2D766ADE45C8F4421DAD55DF251222F18D3A56CC2E154
2673+2FDBCF11B4F67FFD9B21D0E2A51AAA943E572412B8A42A45C59D858B2280A657
2674+001C6B553823D20045932F8A68ECB1B12807D7CC4E7C604B876BDBF9E3457E2D
2675+C66574045AA124F162D6E78DFCE5E4A215180ADB29D4A0C395DD248BF6E701D8
2676+7D665E1358E3BDFAD2032A2E6823E9907106CCDD62DEAC8810B7624B556E0C91
2677+0F546F808C39EED8F903FDD05EC11AAD083E07DA3259A2C69E734FD389D04C37
2678+2D3F01D7EA2D29AC16DB7F224C578845C1FFA9A5DA784D3694BB9C5B32054704
2679+593D02B422E5566A04D7A997EF92C1C561B4D50C332C6013FA420F35AC5AE811
2680+D773607172D924E950614723F4B8D8F52464DD68BAA97C95A6D8FA7288F9FBD0
2681+82897A285DE9DFA4253922D39A68CD11960B2DFAE190C0A6144798899BE8D8C9
2682+83523FECA5B3724597711E758A3A5DEAA7517CA4D8341757C29AD45DE00E589D
2683+24608C2825F5E1B925750CBF9CE2A58F7A463E4EA7C141396C4EF2A0F130691E
2684+5BC94CC36DF951EECA4D9BF605BEF624B4A9BB17556D0B79062D36D3C1CD4619
2685+72DAACE4FA01869795A72318A919E407018DB9F4AD63A004A0049B682A63E230
2686+D30643930825DDF7847763934740E3A8B58E75CD088AA7EF3AF5CC31F7D67878
2687+F47F76EFC3886869C992E43394E6B2E1DB4CC0B5E1E04EFEEE34542F433D2C62
2688+3E33B7986C55F9C234B8A95F3333174CCB7F1741D980B8F82C4F167C390CB06B
2689+7A52B34C95F3B4A478B435E7E940533C0FDFFDF1767A862729A211E2B5308D34
2690+2DC8BABECCA64CF7C8AB7C93554343006EBF4748793EDF198A2F7AA60A875A97
2691+B8FD84E48B35AD43CA50804AB768E29BD7FC1968F82C385B715122F7649A0D1F
2692+82AA2223C340D1E89E565861184D9B34FF7E22AF4010BFFAEF89A67B80B1A2BB
2693+D5930C98CB972EC894FFB2C921A792F9AA4FC21070D4C44A7479944E0F28728E
2694+4E544F2DCB1EA5ECD5C1C7B9421AEDD568DEF744B83B36BAF43506F25BAD3412
2695+B577149B156C584B892B47B2B40CEE80C61F79218870EE4589D38B470CCDBFAE
2696+C5A67252A95A283830FD313C4434549EC039E91C06E2F11C1FBA26F02E30E8E1
2697+52A5471661AE13529D9E8C6E079F50304B77C7CFB749872602E4D847A5727307
2698+A6FFBFA53911409850EBCE59B4FD20E207D4D98ED07D4BFE651935FF43581EEC
2699+FA7309536381E030E791DFD89B3323AB9F743CB4A1007B7CF8A41F34B7577F79
2700+3060EBCB1BD9AD5E172C78A0C570EE298E4952FFCA4E522141860368783138FC
2701+A1F6A5BF49FFE897E775D974A86C50826924929A400DF2B9EE29B92D7F35ACBC
2702+D5ECB92AF91CDB3C70AC369904F233A21BFD7A60F014E2998EADB69705B50D79
2703+16F281112EEB6477EF777B7E29920065AA4A4E0812B64FD37756B2BB4727730A
2704+0ED1B4E3AD2C7AE7A15E7A49CFFA1FC623D40A4F83B75DB3106B7730CAB5EE41
2705+4C965207FA4F33BAB9F5C00CB583B7A644D38A78768ACB8BB93FE6815D8570F7
2706+B7017665C3CDBFC2CEC77B6D946C6267823414578D306A9755969EB27EC3C2B6
2707+5555C2A9790F2D99C2256D373CE656684846467EF28E7AF6E14F0904FB8CA5CE
2708+566EF3759C4D4F08EC0B4E3CC8E2BB5D1F6B2B545DFDDBD5337D31DA9407BF32
2709+1791EE7DFA3DBB777681B45D8091165C1F14FAA57B0CA1EAA03ABFA54C8F0E2D
2710+A36D1AD00B065F416CFFCB6B70CD2F2F88EE6003621BE6CF71C15EEB5BFCAA3E
2711+561C7C48FE7D227A3A2C957783B490A9FDB7895B757A1AE0A57E26C840584042
2712+C1975711610CA9AE489B9F7DD46C34E89F1E6CBA8572CD561738574B7F97ECF3
2713+24072E37D2E711037F403694FF75FA99F48B15DDA1ECBDD737CB3B0EC553DE2D
2714+8FADD035540D7561D75D1D5083C685B820722E89FDF81453F10F17B7FF271739
2715+2218D85605D2BB99F59F9A62200B5FC27327EC9D6B6BEAAAC04FF7DF9C06F4BE
2716+6E51730A632DB7DF28CD5EE926FB1E81492D9C62F95C1C0106C634C607E80DCF
2717+608A45FB7F8009101B03259FEC912B6E1F1CC9DC2999A5A2FB66110D9F799BF3
2718+E68F97A90C51800F256D9E8DE009F70C9E20DB0F6ABFB038A0172350425DECF8
2719+829A0A94E62DF78980A876C2074BDCF7688FDB44C8DFED89F4F10EADE5300E14
2720+78B83EBDF2918FC60822567A42C9CE64A58CDE09DB694993F1BB2E2CAF5D6EF6
2721+127665BD656D9B9EFA5B1373649895C7BE8591F244D58BBC3D8F4E8F8B51FF75
2722+6CAE764A1C2D7856C0AC1915481D6E33A182F353AE0403DDBD564346485D152C
2723+FDB7CD078A18A69411858CB87798F8367F6B3D3F70D63793852A34204FAAFFF3
2724+A5C84A677E00D60F6D39C0D12472CD975C4248F81F71E311DFCFFBD88FAD0A16
2725+A34D43106A098F26DA9D05044B0D77AF3931609DEB4454D9A6ED4493D6999686
2726+72930F2F59A2C64D31814424F7EDABFE1B0458AA75D6FA71E961C43E8DAE1597
2727+C4428D3ED2CEBE6DC2612D5619B6BEE2625C6484067F7E540E4F5B1B51C2112F
2728+79C8AD48AB77D0F75C2A0E70F812A2885297E0E9CF5403C44C2CFF217797E5E3
2729+E579FFFB5E5D043E77355E7CF54FE0757086AA8A5828EC019C73BE0F18EDAFED
2730+66EC6C07016EE3029C6D82A4E0890EF124B9B63E75209B66056013CD5FA4F5C3
2731+707E071B5AE2B5672668C1D5FAB8D04DE107DB65BC9FAFBD279221B338055CFF
2732+8A82EA9DA8896B455454E010DF7FC91EF88791DE354014F699530D82A71D5732
2733+719912282288EBB2E6253E73015978423079FBF9193B008EDBF3A89D40FADFF9
2734+7A070933A45C6D1FFA13529B0012B38B90BF13792B63804FE7338716418FA23E
2735+82761FE397B8B594FB1C2E3C5FE9586B1E09F520FA793FFB23040C005FDA207F
2736+01633BFAA4E22541E869C65093BF7537578C19DF9E716542CB9C695D3CB81E52
2737+65D0EDAABE6473207807CBE19B7C84F5BC4B582D922402CFC1ECC7FB4F3CF17F
2738+C2553A58BA253B2A04CB213258B3B549F951D2A1E3A95B92AE2D2A3E25A3760E
2739+86F712548556136B6DC3DBF0E3CE0EF50EA0F5E5A7D995B4ADB5C6BBE7EE36DC
2740+F1D2A554C07EAB5985CE42D72B58632246721F41EF9ACED11D8BD1D2592BA6BB
2741+25ED1D24F8B9361ED11CD22B57D80E0042E5A2D660C830588615DC05786BB5F6
2742+FF8795F255FA1CA6466A61CA1506163540F8AD3BB3715BB7BDA0195B06E06B21
2743+DADAD9AD79E519DDE324F69A05C46A0D78A2CBB09550B4C48CFDE049001DA325
2744+34458BC9F91D05B7F86166B64B0A667E6C782F10F09599EE27867BFFDE0997AB
2745+6DFD1377C887F375AA8D764ABBCC5AF136E065360D84A011045E334AE573FDF5
2746+34C3EABE3BAB092726F676F6D0BAE7567BC729915581AECEA0EC89C03142A1C3
2747+BA1B7BABAB636CC1E2C05A3B8B7CBADA264F0556C59F9F152BA31FECAB09D64A
2748+930F3F5465E7A6F333232F369DFD1588B90F86B55FE6B37A0D430E274E3F3237
2749+5E8C7E12034F61628056361FBC78FB6D8ECCC4FECD2C0E3F584A200A563D6480
2750+3D5B9061AE5B771B7F92AA45495DEC344F91FE266FF5CE66889D6E570C5AB6CB
2751+6FD1FDC7F54D4DA12641E497322BFE0A315AA1DE1B0E70FDABD7F7284496A587
2752+AF509F63D0E9E8C9A00BF93048BD0EE316908106D4660AD48758770CAD43F619
2753+78C5E88485B33EC6EFD15AC913F184ED540D32F7C01E574D2A2E7F27F19C9D45
2754+5F47C948BD617724BB10F4588F7B8A0B7FF537B298D7E8C5321268C12A23A06B
2755+49B07E9E87F35A674F2D5E97FE933E63474594FD8C3FA82E1A6874FD247EB1E4
2756+DE2B99FBA5CDF8D563531F34160582B911F78F6C6C3F925B41615B4322C335AF
2757+CADA58DB517C3A26BBBD18DF8B2C7F2DF74515595696A6D6A1EC9B113C3CC8FA
2758+E6AEBEC960DA4D
2759+0000000000000000000000000000000000000000000000000000000000000000
2760+0000000000000000000000000000000000000000000000000000000000000000
2761+0000000000000000000000000000000000000000000000000000000000000000
2762+0000000000000000000000000000000000000000000000000000000000000000
2763+0000000000000000000000000000000000000000000000000000000000000000
2764+0000000000000000000000000000000000000000000000000000000000000000
2765+0000000000000000000000000000000000000000000000000000000000000000
2766+0000000000000000000000000000000000000000000000000000000000000000
2767+cleartomark
2768+%%EndFont
2769+%%BeginFont: CMTI10
2770+%!PS-AdobeFont-1.1: CMTI10 1.00B
2771+%%CreationDate: 1992 Feb 19 19:56:16
2772+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
2773+11 dict begin
2774+/FontInfo 7 dict dup begin
2775+/version (1.00B) readonly def
2776+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
2777+/FullName (CMTI10) readonly def
2778+/FamilyName (Computer Modern) readonly def
2779+/Weight (Medium) readonly def
2780+/ItalicAngle -14.04 def
2781+/isFixedPitch false def
2782+end readonly def
2783+/FontName /CMTI10 def
2784+/PaintType 0 def
2785+/FontType 1 def
2786+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
2787+/Encoding 256 array
2788+0 1 255 {1 index exch /.notdef put} for
2789+dup 0 /.notdef put
2790+readonly def
2791+/FontBBox{-163 -250 1146 969}readonly def
2792+/UniqueID 5000828 def
2793+currentdict end
2794+currentfile eexec
2795+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
2796+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
2797+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
2798+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
2799+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
2800+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
2801+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
2802+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
2803+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
2804+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
2805+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
2806+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
2807+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
2808+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
2809+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
2810+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
2811+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
2812+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
2813+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
2814+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
2815+5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC
2816+D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D
2817+993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363
2818+2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B
2819+E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3
2820+309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513
2821+F42EDDCF39AE522A1DC2D80B2772B05DA60F3DC15A815A6BAFEDC399C7956E75
2822+3851CB3588E22936FBFB63A58300298B11C45D82385C083D07AF133BB1BC941A
2823+FDD9F34D5E0B8087EF2A58C54D8AB7580EE3ED58AEB83B72CB9028F472AA0C3D
2824+5C0DD07F3D20112C51366AF49C461175B32F43B33E558E7595CDB39F19A8B2D0
2825+FDA3CC3A8318A933B24E87EDDEF5E7412BE9549342DA85A525069325D0249001
2826+658803AB814B49D0EC4DDE1F83683BD817FAFCFA53893D1A325A4C1E1DBAEEB2
2827+50684E05300AFD3858A5D2AB819201A05B39F1A395E368775ED90CEF5359B2BE
2828+709CE0B7625E9894C01B0BDFEE1F7C228F5298A54AC32D1F29B003E56B90B8B5
2829+8D3D416E5E034E36D9C5FC0B33B7AA0D46F3A3F929B91CADF41983B1DAF64E06
2830+7D9A839199E9B29FF73091D5859E438DFF9FB5A308F58C1A1F890D3AC300547C
2831+4DAC0954EDBEF4BCB076075C2DB7288BE625C7E70D7AB9F56185E36057B340D4
2832+81F9ED7BC52246BA2F06454F40CFC7F79F5B36076477F20A7C4A3F53F0333375
2833+03CABA40A2F11A44D956664D5CC49DA2129A4B4FFE712D06E198B2EAFC5CA719
2834+6042B899EF80994675A672A487F937D6EB6B8A371BB029DA6C51850357CC2469
2835+3413BA42D8EE2F962D06C27026624CE315059ADC53B88E0B15504539CC7CF0A0
2836+AACD03E59A0C09E4CB4A48215232AC6AEA1864C10CDDFC4A52BB807BF1CFE3C4
2837+F244B25CF45F28E91D2E9A34E94019F07CE4EFFF74E915911418A44309943F37
2838+95FAB82A03978FC03241523C12148E0AA5E6BE47F40A530094C20DABE315C805
2839+C37D2A47872D2DCD74F86B1296FD3E63F623D62F287294B233AD7AE9E3339324
2840+56FD9C12BD744F8C975E09B23027E7B93DDC1BB4E5C861B4FDCFA55F7DE1588C
2841+39F854290699537BAA26A4515D6E9179F4C8A85C465E139FFFF8993D99A231A1
2842+E6268E344257B57D90164869D55E3AFE602EF4775B2DBAF35EBD883C41CE7B86
2843+363F85E5ADB2DA4D3BBD8D05F1FEC0DB8BA7E246FDBAA38E1B90566151F09414
2844+440A1529A490C9D637C593964DB55418F6F7498B033C31D14BC73FB14074F8F1
2845+3183ABC0F7D918A5FA6C69FDF224EE624563F1060FB3D4EAE368B27EA2AE48F9
2846+34705310BFAA91BA2E6D6B4902700E0E4EC27CBD3354B67F10DDBAAA3368B8D7
2847+9E011B9C86866F87F48C639C1B50952C5B6B26378F908A2268860CD56AF49242
2848+CD34C73B198182B9F5D6BF99A8DC22C28AB65E4664B54D8EF1E2BB3F6222BAFE
2849+5265EFCC88CC66531CEEC3D7B94AC84E05B3E0E046A9D8BF2E39349756247AED
2850+231673F429496ABC15D3B1DC3DD9557DAC1C27EA5E1035ECEDCC62332A283969
2851+C3188D40F5840741145683F42DEC1FFE60CDD54AA260E67FF2BC2E4E2AEDAE6A
2852+88B079AE236502D14EF927E0D6FC1DA1881F8BFBCA13AD130DFF5078B22EFF4B
2853+0B729F5A755225740219763D93D2B5E5CDA09D5F35DF1AA30CC4AEA04AEB54D4
2854+88FF721C4279DCA78404EA2D4B74A795FA7F947E19AA1190D7654DEA72849860
2855+D037E9F266DBC519B653E544451715E451609F7DC711915E8E399E3CCEB9B7FD
2856+456EBD7BB7A3850CD0274DDAC7B1F826EDAE7D3CE321132AF5D784B0B316C8D6
2857+92C5A49EB7A0D50C27B87DAD03CCEF88060247245F56696C902895DABBCDB8FE
2858+A221FEB665AC445CF5BDB9B3EC3BAF93AF130CFA14A11612BED1DDC2A43983AE
2859+156ADF2C7241CFE077D17979B07D2A58B321183E510028C17D00EC865C88ABEF
2860+EFE9A9533FB783A2C025783B32AC626324346602620FAFCB79D601F7B6EE6A3B
2861+F64A382A513A14EECA6A9E549DF25CA052F569F1D0D4ED16EA62AB1D795D1B83
2862+2AAE1F25A900219C9F59BB050793F3957BCA0B1387947E2DD6A677E3E20A4EA9
2863+4BE2DEA256380883D63FA3A14E05FA4C39A526AADFBB002C67A702D9012BC7F4
2864+815C60D4AF4314478C04AFA045E1D85A98CDCCD70E51F86BBCD0F41439684B5E
2865+3C3FE160156B025CCEA37E07927F5603D2D9BCE82ED8E059B48C95EAB441F87D
2866+447E3C5AF899BC6D56EB31F1BF981D9DB971A9AD58B456CF535F938C92B28ADD
2867+CE0C5C18FD1E3CD6C4AC70616A14498B3B9853F6F9DA475FF7237963501519AC
2868+25B38E930FBF90453C2F117663E5DB558193923F71CDCA42F06A38CEF92C4FF0
2869+66BF892EFA60B911F39E9761A4D1A97D620ED0A6E757EA04955D518DBF58733B
2870+BFA4E9610B2FE1E6ECCA6D7C55C0447E4CE1B1AE7F9FCA29F688A0A3CB0E536D
2871+F5229C4BCFA1DC2FDC50F6D86C56FD4324B2780E78EB366AA4C73C7CB55B1517
2872+7F0403ECFB63DAC29545B6059CD62094B6DA90931FE5CEED54455C8A2A63D975
2873+2044DE7976F71E1FB76B57BF4FDB9A0EC240DBCC32B821B7037858F67384DC3F
2874+9B39D562FA5BB389DB3AD821DC32C3C577EC93EAAA4B3931517443BD01EF28B7
2875+84CD44D97CBF1206419C3411A9DFE965169D73BCC2E3DF9770E0016BE398C974
2876+702D5A95A72A9CA14372D1D9398ED34C18A4823F305FF06198415AA0B6BDF369
2877+6058179F14431779CADEBC880B7D5F758D325196E1616826884EC43865845969
2878+3153A56E4658F15192544AC081D32EFFC8181EE210D6B2EB818D52FB2B2315DD
2879+0EA866874CF12ED187CFC0262EC785A4AEAF0E67B646B29DA13B48C4BC8098B7
2880+BD82D761443AC5C087FA8C0255B1A59706F7312692BA3522224043E49DF7BAC5
2881+4E91D64361B8AB7CEEBE3298795D15D8B83650A302DE9B938E870DB9478230FA
2882+70287E96A4F9BC7FF1F0DE2CC55A6F7AB7418C241724F30127EF03A24CC22EAA
2883+13AFC12CCF270FC7DED31D5E6C458F634F193E7435F964D1CC02368B799633A9
2884+96FEE12CB2141BE5105C38C41786C14C5BC39C36DA27EB030D41EAA7D8928575
2885+7895F93B613BB52322748EF2D6A1643BB8AE0EBE7293199BFA03FCF3D33910A5
2886+E2801AD1D3E7D527E2C1D1FE12F9A4C15B1FEC78560682AC4816B15C0A9CCBDA
2887+09A4995AE97250B0C22CA71289CC4000DB546BCECC87281C26CE2906FDF30D49
2888+3A24240F4AEC38F453E70CF5D81C84B9059183E9A7988296E32DBA694B894DA9
2889+3AAD95E10F455732E2CD8711E4C63C987FF27D58FD6BAD9EAAC8704132EDFC7D
2890+B0104582CB273647CC0393FF7E24C6E9300442E9F98FA219077C0476213B47F8
2891+1876C91575460AD3EF8DDB948C1FA72E1B068D32B5D03A6F9C7EB3A4DE279AA6
2892+08BB57446E6A4927F5A7DA618B5CF8C11A71B7561EB7DE1C3A6EEE772F0C1D80
2893+7EF41EA560380C2FB7287535D26A9571087B04515B2FF949124CCA64E5EB228F
2894+0B667E7BBD409E17B00050A3FA4B03387E2A47755493FC50C4EE1888938A3A0B
2895+D3A8C624E5259B0AB04669FACE173C28C50F1BD5E24075B29B09BECBE11EA542
2896+B0ACB8176E76E2CA847DD32E13ABD3BBC006B7C183C4DBAFC91BF6D4B9143368
2897+C61D57B193BDE95883FDF52685872EEA7C7F4FF23139212B0DD9119935E29303
2898+A81B1583B4D7C46BAA2358C7BA7A7C46F16979ED4B660D38EC761FD62F353D3B
2899+5E2C97C969C045488631D2E3857FDCDD6E0705F00FB1830456B04CEFBF9208EF
2900+C505C0913F63213A3EA5B8178E7418B9A50F84D4B184C26284BB1BA01C63C009
2901+CB15C2733D73AF6F17E3C2559ADC0F2065266620885A3134C8A5A2A538E5A194
2902+B3413C0356C7D6A149C0171EC54C4AECCD532E5FCF954941885D9303443396A6
2903+C75D19C97A689B70049ED46FE136EAAC302DB81FA381D7B9C8025828E069320D
2904+58DB5D4CAAAE89E139F30138D7FCDD4EAF9FFCEE630809906D116C9B901D6002
2905+B8FBFC0DE9471FCD90EC31F53BD7FC5A0C4ACC3D2FA52D0A71A3B5B938879ABC
2906+947C7865F9B2D0D5F93179199D450B1A602950CA1E0D514624DAD715D180E8C4
2907+81D5FA6DAEA48493524013557FD2CFF4BD3A0014E39AE2AE23A962A7E47B5F7D
2908+DDC0D673143B9F39F01C48F7DA0B62C474739996C398E2976080432A4DB4EFE0
2909+0D22E51589DE3BC0A45219D4B1FE6734AB2A32FEFD2FBBD916ECE7DBBD7D222B
2910+3CBFF86DB9FCE9D8F77C53FAD45B5B73C2A12D23B6F537B1B740F34130AAEB0B
2911+601F27820FDF3229AA48ECBC1A55E5D2B1B12C2D6E1D7FEE375556E4CD2ED3B8
2912+A3063DB1D35A0049B61C3DF74BEBE41D4ACC3513118468206C2EB44840822C78
2913+437AB0117A8ABF4EFB1E5009E93D86C334E11BE316EDDBD70C7E53570B710BC5
2914+6A6969EEBE9ED7A608AE644887566351EE2D36147A28168A00371B57F85B091B
2915+A97853E1395A656969BE35D6DBD7F53B646F3C44A7BBB815BBD8EFDF8D574DBA
2916+352A72F51CEE56A3CD3EBEF7631AB1C749166D3DCEAAFB60CE20BD1E6CEA0BCC
2917+D34E555044ACA014DB1230ACD4883B21FD23DA08AC6386E2E528AA1901F36A5E
2918+D3FCFE57C958480637AC1A1ED92857889E59E3A7A798E24A6201CC507425602F
2919+CB6A78CAE783F490D39DBDB8EE70E0E9AB2D05682AF0FC3BAB79440DD9068DA3
2920+6B7DA20208B68C6A8351EA6A47F3741E34CB1F9006488014D57763171140AD16
2921+0BA5694C5C5AFE42956E320943F1FBC765D1431F877BB87B062A715B2673DE84
2922+EAA1094770671ADC894C6E2AF27565FC9917E444033B74D15E83D7CB9D9E3F45
2923+409615110663EE1E31605FC7B9612981D1795893229838B2FA84AC2F7EEAD09A
2924+DC3CECE321E114B70F668F32DAC98CB14E9F2B77DFDAC45E3CD6A20B595BEAC5
2925+6390BCDA645BA73A7742B1A6DB2814631772A7E927553EB87117326D69E23D1D
2926+8D3961B9CBC118D275B9E28EAAD53C1A264A9DEB5E0F5BF9BE3C271838CDD4CC
2927+CFE8FEE1E507451422DC71EAB40EB069CD2F79E0275F58E91484634572410F09
2928+7D57E058FD91DECC31F6ED8D5B129791BF21E7107EDCD456438F7A6743B32BEE
2929+F23635B2203AB218A7CE03E0E60DF425F6FB20E2C2272ED795CD33495157087E
2930+2125353B41E36559D63398FA3E323BC59EB89F0AAFBCFC562F3C961D75753DFE
2931+41A0309A03DA54E92CBC9104041A2881E9387C6E78881699E48AC6D271B42EB5
2932+0C471F55BFE6F438977D35F53A7959A6FFA6538FBFEF3ECD9FFCD7948D9D2A33
2933+0C29D8B57ED5F874B161126B0F31DFC02691045023DD052CBA42CD99B0DD1610
2934+52436FA4BC46D061819796925E1817BDD59199611C2A7EEDF913DA06ECA19D4A
2935+FBA3FA209D643D0F6B2030EA847947D2D22E2EF727CA1633D465D2968B52D9C9
2936+FDAF2CF6DF5CA4B9535997B6DFDA5E949248D31BFA72F3D84574683B116CA34C
2937+D1C22939130FD3D946C41CEE5A2DC90717F5CCB8357CE318B96818245C11363A
2938+E56ABC568F81AD4D8A1DB74183467BE193558A2019B41DF574BB7798886AB861
2939+4EA816619E5BDBE29403DE2E454315F57235F38DCF3A13FE10A3C448D5E982C7
2940+D0F2D3B51582E7CCCDEB188086249D24E5E132D4460B3D1CF9B86953AB83904A
2941+459352E5B0C69385159E015E627DDD189AC6D95564D5FD92D70C3707B86D1DE5
2942+76939011C0B27925D3BF9CAF369FB63C0E5FD5318A142E053BF4950EE6A9EC27
2943+A4818FD460045FBB75D159B53ABBBF0C5F70B4FC6E7E055D0B9C58E30DF74392
2944+4C943155D9BA7EDE5B41F031E32839CC30198B1AF8F8BEF67C852D667871D2BC
2945+E0EF1446C7D8DD0E5FDB93977EE554848BB517A75C11F10727949DC4F8BAFC4E
2946+8689BB9F8162ECDA9805C9953A18234E229B7EDE1475B7F666DFD9E6D30215B4
2947+D1F0F0C60F390B08EDE8B63AEE4BBF357A2888596465593CC7D8186D7CBF4BA2
2948+06F522D235FFF4A791BC5E072B14A1DD0C24D04B6E9AACB1F581177FDFA9E809
2949+462B777B06DF04E1605FC276AE44AD3FF4C613F7715D515704C7C4F4E7B8AFCD
2950+A84D0E1BFD0CE39C8D715FFD6FE7BBE814A5F77F3B074EE48633BDF0A57D06B9
2951+D8C9DA1B50BB1E5FD695300F12AF76631D88B8C89D9BC90D3D631DAFC67E2B6A
2952+E70E15485B7A094DBDBE19121ADC63E4127CC98B7E969F25438F031C677F89CD
2953+82C6BE113513473CBA1D44360B5F367E95805EC97AF1935358A9BD0FF45BF918
2954+1E642EF3C3DC501F1685D397A1170CB41A33E331B67F10717018D4DC896E00CD
2955+F725BD161A9EC5E13ED68B35B77CFE3E730527B898E9E4B73A6DB642BAB6A022
2956+0293BC530BDFD559032F2ECDDCFA523A03603AF810F858D5156620C7FE7F5120
2957+D74D3D7EC25037B12598C8C508E4725592BFF721FEED63434F7266071A625B7B
2958+13EE5C54A45F1F42ADE22B0592B5C7FE547EBD55B4F677727AA3D61E17677722
2959+93E0465A40D7604B7DC99B0D3A4242158FD0D52DD933410F30EF816ED05BB248
2960+DC80164ADE173D6CBA2995C46CAF831D3201AEA8064B4CA43117E083FA92BC26
2961+C09B8B51BC9BE0FBFB432B73C139366FD118972D0B0EDBF2FE02608704EB391C
2962+CDDB25622A9811523D8C0EC4E6EEC07F187D2E00FE6F2E4FE100C34CBDB63F63
2963+6D54A95BB6CA931712FC29A4F6F0A8FC38EF0F9470125D3A4EF68F5DF681CFA6
2964+871D131099932DB7B7BE9DF10FE21C24376E27069505DD64A9DADC8D31D0BD6E
2965+DDC9EED39AF1D00F64B319D99D8A9652A5347947D479541EC5E64CFC0C3E03E1
2966+3BFD28224C438EAD0D45E6E1F0461B2835137874949B458360A224192B8854C0
2967+CDF469A08CFFA5535674110F21A11FB285CC5981840C7171A2E45DA22CE03499
2968+4E75C3A75D11E8E303C5B7D6849E4971869E01E7820F7FB00A92FDA606F2CB95
2969+882E3E559B8B3AC16AD86494F278366E3E3E31496FE71942F7558FB164AEF5AC
2970+43E378A14B0E6142B8D4CB7B5D97EA641C1D22B1C1946A4A57C8BC7EC2CB9729
2971+73082058565620283CCEB93850EEDE547A62E59858D54B92BDE5C38E47DD4917
2972+A49E3E607C9B381BAD1C51227E52AC8519D81A8CB04F3CBCCB5F1BF6D46B0357
2973+71711511993AA816AE2007682066C75A2CCE8A99C7154B6BBAD263A7F73E52A9
2974+FE03D775D084A666940E45F6CCA000E13102F4C0622C19E1D7E07776C7E90CCA
2975+2BAB51B7D384685B0E42B6D49E53A8A37CA09EE69C8297C07D052A7BFD8C737F
2976+F9A2155A1B38128AC01DBF58BF8C9EB09025DDEB3CEBCCE6FAC686A613180428
2977+C101825D16EE93B9541E80F1A21D225BEC634382FAD011DE4EC67707D1E8D8F5
2978+AB3C8652692C90A808AFF1BFD3DFB009CC2650473F25C2192AE9382306C3A10E
2979+B50CB84A75D8656DA386B2342D8590BDB783203C6D5F5724961F3E55D4669A5B
2980+F0DEF03A89F13577832AA905473AA658D704F5C1E64F1F98C511595AB7B4B17E
2981+51112CD6E2E34655F13A4B409A7E223CE198FD40D538F3D91B0D86F06E69D580
2982+04AB7269D9FDD2A15B6727298D4B189483F258152958243B78BEE16251840642
2983+3A2A9A34A776C2D1DA492ADA5C8D4C1BE4924F01ACDA2E2B75A6724D424C07B0
2984+E12EECD9E6A4911790F3D64F4D707C1B7B4349BC807C52A2CC10A3031768112F
2985+1CCC49EB5CA9C33BC2952E2853C836CC24B332B456D6F6488D9500C1A3425369
2986+19809EB4323C8C1197BCD52BFA3985B1839BD55996C10E86EF9051B31AB89B2F
2987+C39514E3E90A575763EFFBBD35D93B28CEA0248EFB9EE6CF5A52D3E1F4F6FFBA
2988+E0EB9E1869B3AAB0F7CAEEED63C24608D818130D2904933141CE621F0FFDDCBD
2989+F7EE5392994CA9682B7590C035343C0856E57699E46840948FAC929D344439C0
2990+C3DAEA4F151625BDFFD943BFD123049B088A51EC09C962E2626161ACF302A907
2991+51670F63BA2E61C4F63482144D274170DB1F8731ABE33555C4D983DDF3BD4060
2992+93316A4744D1701F6B2F70E76DF3CB838A77D51BB995005455196F69B1E4F2EB
2993+3D8B593C6F6730214394491CDA9ED8FB9368C68F2B3787C70FF692A0B8D590AF
2994+71B3B936C4CB1FAD337568167DE33799BAA50441117C68F33F6284768E950A26
2995+79DABEC4CA2F2A91625E9A8BD301FCE950E1081ECC5388F6EE527DE149EE3FEE
2996+697DD4B9323E6ACD76E2FD18189656A7440AC105E7934E44BD9DC10A9CB1E090
2997+7B81703984D91144CF27498B9449E03F60DC49E7540AC1A08A72DCD237CD03E8
2998+8BF47869AE794CBFD36D765121AE3ACB690FEBF1D44A3A04EF84A1B189491ED9
2999+73635828DF7EE9CB8B124E9279508D7DBDB9AEB3F4A73E9D490081B797D3FB4C
3000+744755D7EA3F56A81B7A73DEF33622D0C826347132137A3EB23F9FF0B7911B7D
3001+664CC46C85112E1C30427B6201D424642CB089DED650B64F713A46D1150FD193
3002+7E790C5D7BF95D70F6CDE0795C0865BAC0754BAC
3003+0000000000000000000000000000000000000000000000000000000000000000
3004+0000000000000000000000000000000000000000000000000000000000000000
3005+0000000000000000000000000000000000000000000000000000000000000000
3006+0000000000000000000000000000000000000000000000000000000000000000
3007+0000000000000000000000000000000000000000000000000000000000000000
3008+0000000000000000000000000000000000000000000000000000000000000000
3009+0000000000000000000000000000000000000000000000000000000000000000
3010+0000000000000000000000000000000000000000000000000000000000000000
3011+cleartomark
3012+%%EndFont
3013+%%BeginFont: CMR10
3014+%!PS-AdobeFont-1.1: CMR10 1.00B
3015+%%CreationDate: 1992 Feb 19 19:54:52
3016+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
3017+11 dict begin
3018+/FontInfo 7 dict dup begin
3019+/version (1.00B) readonly def
3020+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
3021+/FullName (CMR10) readonly def
3022+/FamilyName (Computer Modern) readonly def
3023+/Weight (Medium) readonly def
3024+/ItalicAngle 0 def
3025+/isFixedPitch false def
3026+end readonly def
3027+/FontName /CMR10 def
3028+/PaintType 0 def
3029+/FontType 1 def
3030+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
3031+/Encoding 256 array
3032+0 1 255 {1 index exch /.notdef put} for
3033+dup 0 /.notdef put
3034+readonly def
3035+/FontBBox{-251 -250 1009 969}readonly def
3036+/UniqueID 5000793 def
3037+currentdict end
3038+currentfile eexec
3039+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
3040+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
3041+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
3042+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
3043+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
3044+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
3045+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
3046+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
3047+92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
3048+295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
3049+409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
3050+4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
3051+2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
3052+0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
3053+B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
3054+24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
3055+43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
3056+D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
3057+5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
3058+96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
3059+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
3060+0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
3061+B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
3062+AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
3063+97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
3064+FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
3065+20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4
3066+0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F90A32C4175B6BFB279
3067+024EAE1B04D721A6C54FD62484F8949B2CE9B87D9CEE04DFF82BF14931B3CA03
3068+AA5F701B6F80BBCDF2C427C40A51597F0B1BFA25EDD7CE0EAF2EC676BF0059B7
3069+15DD5462BA30DE78A08DD533DC0E8D85F9DAFC5FD842F417265427E0F1B71834
3070+D2BF6EFAC3CCC40D3EF3B2E2080F148441BA45E5D0C0F7D8416730AF4BE4FC93
3071+1E965594E0364F0D4F1EC48004CEBDDAFB1F0EE0A8222358EAC0F62E6BFA3C9F
3072+46875EB4C999219B91E6147A49A668505667030CDF3495682B79C0F614AAEE68
3073+D976EFCDCB04127C0D7325A2211E49CD316935A0B472D1F9FFC68F7FBEBC7269
3074+79DE858914A95826CB2A8F0F17773C8DCBF6481D93E896938B3F701C324E2D20
3075+2779390AFACBDC4FBA56804BF82120B02F3109D4088F3E3123018D1A92329EA8
3076+C65D312E8E2B232822D6FC4A0D290482E9260ECA5BA52DA0E5BF9C1FDF0F5CC4
3077+E32D947827F5B33620D8049D94ACEE4E1B49434B271D22B53AEE1DCCC9FA7ABD
3078+AED2F04509C21E85600DCB71F15A6012F3BEBA9D5822E3172F75FBB248443231
3079+05E93B2378F20710019695188C430E6213CBA49C02D1678752CBB97A140C81DB
3080+516E544E04813437A0B89433BF269241C0DA67E5BEC040A958B14BB3D7821513
3081+50B1FB6FDA447AB76E6E30888495190D55D169DA7DABDFDBB204B3CB8F686C9B
3082+5B8EF8F6175FA09D2DE49226CEBF1ED210161BAFBF77FBC6CEFC781A45BB78D8
3083+9012CFD0840925D807EB0C84FAFA0C67871D1A84CC512CBC8FA3F311DE5F2197
3084+C677D1D9EB11C1607C8F0CE4EC25AE26A57EF97E1E0BBC6B34D1F24F412C7101
3085+2D5F0D1131E5B125D4BA2C0ABC5DFB5F6C116F48E9E6922F39CE77E224C48FBC
3086+0AA43F0D960075B602B477832BB6DBF76B4EEE3056F3C4AC6E87A653EF8443B7
3087+D4E4EC849CC8F03370351FA1556A83E6909D26BD2A0FDDDFC19CB53346A86CAB
3088+94F78B858108FD3EE2C337D4CA8568E636A2346D0B1AFB79F0AF65F7263CC690
3089+F9E578EC304488F20C14B6409E027626B96C3367BA5D7FEED64C276781A7C27B
3090+2C941A1C4ED4885785B96F9471A4AFCF263004568F127F4AC8C07EF3377DE265
3091+02817FB2E7A9BCA1F6164C53B763E1B34DA404F10AA5FF67D02C889C88C128A8
3092+52A758D11EBE416FD284EE66712B4A6F4B7EA8705E0C876C7AEEC6F836B64365
3093+BEA5B7A817F245BF6E52F39629BE5DD93B641B22597223BD913BF038C67CF4E8
3094+A26F6158A53C31FF2D8E47E287217FD1FE098AA8B2CDF62C5EEB8265C7F2726F
3095+863FB49AF23B5F2C9386735F0B27F19BC62D9532F680F1EF7DEB12E966618014
3096+C0C3F6AD7B57B980E0EF3DABE5171FE3C86769E2B82CBFDE35CF404141F834E4
3097+5BC6BBD58D67CDD3187B1C219810AFE6B30BF3BAC3D518C2EA54502F7CA5C5A3
3098+D1D88A04BF524D9A5C71911E90918329C463C29C7AB59DE1A9C08C2A4946EE3B
3099+14B9E4FAF86E02BBDF8EBA05D4FFA3CCE53B11F6262CAEBC3D2A9DB7885A4B5F
3100+D42334FCAE8AE374392D54B221679F6FCF3CC508019499357D2B78D7BAAF2123
3101+1DAE3BB569189B1B1AAB67D2E368D0590A1B2BD8832B63737493792E00E2D849
3102+F2060DD889BB55F92C0DAB6D1861376033627B6D0CB02BE9CC1580FD4B7E1E48
3103+0C42D123DB1522B1F5561D2023F13A2683326F2DA794EAC149A91D7E438BD02B
3104+34A7339EDA6D2A5C05855D09C16C38FD4CE138C9734834757D52F0601C22B069
3105+3E0A81CE3FA71464EC90D731077E8A1102D1D0094BE3451718873A3BF973616E
3106+152F69394D9D9E64E9EFC4412C01B047359638C5E1237A95F5BDAF862CAAD4F1
3107+D1DC225CF4D3FFB0CA9460AFCF9C7249C31C7B04431B69EC0927AFFF0A25FB87
3108+8C894210E5EB2A1A8DC4629FEAD9A1FCC2DB8ADFB9BA5735ABA437AF0CBE081A
3109+7EB553FB024AE3136C503A759B882A6009EAEF58AA283A46B7AF49326A77EB5D
3110+D7B83FDD76533009CC24D294A212DDF803C7561B8A0B4EC8FD87C4C80FBA466D
3111+EAD6DE3553EC8F72CBE9DA6FD1E9F1956723D5B68CAF5BBBB7244499AA93C4B1
3112+FB6DC98CDFB4678BB3224D37B7CCD751AB263563CF4C0370A0A3449F961D714D
3113+14A443FD7A21B8901A79810B803F98316DC6268203886988FD6C6649E989430E
3114+37B404A28B0C31141455B9563555134511A96F3CE41C49E1086A5BA7B78A026E
3115+7024E5117CD0AEB9DC2B97A677D2AC897B155AFA2D66F4C1DF7044D608FBBBCF
3116+C265DF5E73081E606FE3B64920A5FCE11D26F31E79672964C2D20213AEB5C8C4
3117+04EA1AA70F597E8C3C3E8BF9EE9B54B72439D6C1CEF4DD4017622DA581B65AE4
3118+9DE90BE8A4F0606D7D91F997D4F17A9B94BB0E40C7B09DA9C7AD65E3E1DE16C9
3119+E8E47B151DDCFC783D9BCCF5479000AD6801ACF1E8392EFF024B095A0E0DBAD2
3120+505107529AC5B567F61A3718FD69AC86424F78A4F8FDA7A48B1B096CEA07AE06
3121+0C32A50E90B5624F2A3079150B3AF1A2C35E5A67BB3DE710DF17B15C168A2E9A
3122+AE16F9BE3B8DDD622643AC7DA39E62F6CE520CEEB78F1C6FDDB127F5AEE9CBCC
3123+35FFED0AA27E1F299767841BF4AF52A12E968EFF9BFCB0429E7F4C65CB3CBB2D
3124+0833FC24E98FCE42B1372D97645673AFA8329257142D4D86322443AEDA45FAA3
3125+EE219C91E60D2DD43C263308DC809D78E850C06A0E67D32A1BA0978E5389F15A
3126+8AD49374549F1A1B7517D3132E5DBE3912B3F5238740C1151FCCCD00E5FB8E20
3127+D79A04E85CD41644319B363A8221FD0EE314DFA3B60F3274D7627633FCE5B55B
3128+DE72658825C439FF70D3E24C5E8BB458D89F841B1522258AAE5A241410E4C8B6
3129+687608817B558640378E2F9058AF856B429E4978C69727837B551D1A21D81A0A
3130+5D50C4DB81399A56841027A9D6CF7BE5A2BB3C3659772D285882AEAD601D4AF5
3131+BE392A7FB21F2C3EACF2E4FA0D8F02A52F138BFDC93B6E0C41E5B081E0BD23F0
3132+BDC102D5443EEEDF1F697487C399D5C0A0E1A3541CF14F48A347553BB3DAAA7A
3133+E8E5DED825699DE2F3938065C0A954CDF57735C94A7A1A14B482899781D7B30E
3134+E35A7FF7B98691EE544C1CB064974016876EC1E4C75F99109F6A22344073392B
3135+3A412EAB874B54993C3C7C87EFD4F119C88056FD1FBC37900C97FE389C214587
3136+5D6D0E2F3EC1D137599AA39C1626E799F17381E2AFFA608B1F3F3C9D01DC075E
3137+EF8C534F1F76E1ECF35F42755E0246732C1A9010F81668E52F873A293F881AA2
3138+B7C7952979A46165D6D1C8C32806341859432A73BD869A2A2E76FB7A6AEAEBAA
3139+EBFB36ABDBAE36658722210889E3C8DCDEB7DE1B58CC13DBCEFCBB56A5F95384
3140+1EC999CA224D40B5636AFB990156A43FF21FA0D83B4B308FA60073B1D9580FE1
3141+760BC85C1573956215D61A2207C860DE9DD87D7D6C02A8354A3D2D8BA972B30F
3142+F6AAB27AA9D5B4B5897F9DA3FC023123F1C431519979505CC674CA70B53CF7DC
3143+0A0BFEB958457318D412ADDB5456B1B5C68744A45F0C2846E21DA5B83655660D
3144+E1CC1FDB9E65E95E33F656CC21C00B9AD45E981ECD8B6EB508FD8417946F0172
3145+99A2E3E9E67BA5C5588A14318A8FF29F18D22305F494554D01BBAE6E18319245
3146+C834AB17419902FDC3EF61384572B0A1ED82D2805703B27D79C7A2DA61EBD532
3147+0ECAFA9EE9B82E8DCAFB205BC38987DBBACDA7A3D7AEDB00C8CD015CB9232CAA
3148+D4014E39E1A8B8C2E45133FF4B2E387B9C8167FBF9151B8446E64996F8E33B39
3149+441FF5CBC6AF2E5F9E1937BDD4D5E5FD3DB35EBF103CF20CE8CD12569D84660B
3150+5E09615E9DDE00EE86CEDE7330C92252D2BBED5BB8A33710F658DA8BCA2A4985
3151+34EFFF42EC9ACE48422EA81A1D618B6BE2FE58E1F447341C12AA05F94F318494
3152+BFD4C3A1511483E799D818C4B4AB0C0F29279B0818368F7E1923635DDB0899AA
3153+C76BCB74F0A2C622D82BDEFF7D18D15A9FA07F32169A3146F970D7EB5A66945B
3154+AD81ECA863CF0124EFA2637F842766A5AD6D6A19A8CB1E4EEA161DEC823781E5
3155+57AE214E0E57AE6D5A9FEBB9FDA70DFF528DA3A8570C8AD45B2C90FA0EC41775
3156+84342BE3539FA871469E50170BE821124A2541C2F4121315134E8839993FFF51
3157+7E99D1CBDC6A724F20606AD1F8B430C3D7EE7AAAFE66C4CFE070E9DEFECA7E6B
3158+DFC1A6FDE340179614FF12EB97E32ED23C41899F65A7DC5FDF5347B62D365E95
3159+D1E11075E955155ED6ACD7F4E772E614EDCAAA36595C724B54EE7E9BC105CDDC
3160+C99AD929E228D421BE83F9D7590F9C45E14F1236472989746DE4083081B1B1CF
3161+4CCF08F928F30A312C0C4AFC287D08784B309EE41709986BBB01D7BFA7E5372E
3162+8B7873A434B836D47CB2233FF4D3CFE8E671778DDE56906E679A20B9EF012CC7
3163+ABDE880B24D7E2DE5567FA122D16061ABD13233A8F76F9CF59044664E9B1DD15
3164+D45CA1144ADD1DA4CDA7F8C7451A4424100AB012D6D79A52F266766DFDD9996A
3165+AF39881CAB48240ACD143C5620D12D21AE68643C046F15B6C51684DAB584563F
3166+78EEA0D3D71B3F2FCAFBD327C415F40BDA5704D3FBEAAD8C61132390B08F77EB
3167+33681E14030EFE1B125500A00FFBE45AAD32AA12AC72D41FCA0992DFC98996B7
3168+29936F6E58A6FB1261F2530FD5A8EF13757085B8A1849D7388CEF7E8473D3668
3169+068E8CA30DB3AC987195E30702184E2A8456F81C563B3BAE5F553959A1BFDCEB
3170+B537555CBD2050572E7B78E1AD3C5E4250401546CFEE68A899F1BEC19EB8DFF2
3171+4E3C746A45D0923D3017CA4546DE558A0B8895BFCF090B7AFD188D28B21F3A8A
3172+DFE3EB2CF6F047FBC4D20C9E37C57BA24B5DDE4C7A4F62B933B78AD9944A5D09
3173+B15A32D96FF77191B7FFE19E52A5D7BE2BFEE5816C19DB5FDDBE067C9CD72B11
3174+B64C7CBE3B23ECA8C51C3A5288E5038D5E6F5658E0A9D355A41B29F51F484F3A
3175+C90EEDF675A8C6DE90251AFFB83EF93D881DE99889345C6A81BBBD4E8279479A
3176+FC1AF96D7CCFF08BD465E26CC7EEDB44F3A4BD93AE747A58E1599C424882A660
3177+63F882B2D494446CBD53CD81C250204563750E46463EC7EAD13BD7CF59F025A7
3178+4D9AB3D0AEF8E23A52B1D52C19A8BF8639E172CE67AE703F993C37BD137E6476
3179+0D8013AA11CA9242442DA320997A23D39C265B28000AB942797E0F0C60AFD23C
3180+0D459F71DDAF058BBB626BAA4ED593855A83E7656821C3660897704966BF6E02
3181+B68D6940545541CA9BC59D8DDD9185DB5928993AF4381D79611C7F1735AAB46E
3182+70C58CC3FDDF9AC3948A17C88B18E5D0070FB533615B0234E6541FC1624923C3
3183+0B95D5AA0AAC4E0DB1868ECAF6F020C8D3409FB47D7B0C96161C11486B57340F
3184+DAAAF19D176F0D1E1A2CA66ECC0E1F2A8F19C17948C0D2BE06FDA4446D349E0C
3185+C7DC336E5096F9891C767907A4AA5B7CCA07AAF79FE27520D0E3AADAC7CCBBC0
3186+A2C635A50018032E5299C6B83E0474447DE5D72F964CCB2A3D8A6FCC2CDE6092
3187+83A7EDD4110D32709CB4A6C9E12A69D9884F2FA3CFB28DC3D8ECCCEA0F0424C4
3188+24B946358621764ECB66B2C568E289683D4BD298299F8C4170A198254A041E9B
3189+5FFEF665A760CA67A001FC7469A25C0C177063D94267D704E93C98A33028CE6B
3190+EB538C9C820F557C849F6C9140E79FA3E36DC003C2D856F1053F15B1B4BE7C01
3191+092FE7CDC69DBD48D4CDC569F6C13F0AE2DB4F61BCF8E63BA39D0BCFA9AE8EBA
3192+DF303759A980D5B8822FF02FB47AC513A9B67CD2FABF39938ED8DA319A5B9ECF
3193+FC82CB15DD454AF54131AB4358682B8024087F02FF323FADD37A580C00492BF1
3194+428E5F946FF84919D71CCCD90296501A02D7C137F799531B99167953F3C292CA
3195+D4F94087CFE0461172F3E3D64E90929494C6DD06121005A5CD121F57E1C92DA8
3196+0D6DB05EF38793D274F8C92316803E51E4C630B5B55DFC8C0C231CB89D88A873
3197+54E871C9E2DCD6669270EECC235652290F96191B41F7763AC64DEE8E9DE07FA9
3198+4BD9328474C2A58F5B629C9E127217DB7104756552A02546E26A322A1D102E94
3199+3A7F806DB919E312284522550C2574B7A0AF8EE8E9061AEF549B88A081DAE891
3200+96769E42CD4319CD8F04EF4A14DE067C73EEEAE2636F6AC5D08CDA3C57FBFD70
3201+95516BADC40DE5B8784C126BC3513D0EB21EAB2DFDBB79016B5475404849F574
3202+F469DEDB5B0ACB5CC6EC6CF94C2B5FF0B306B788805DDF3B9407DA0F5D3004E8
3203+94A1AC0D9B9A4A1A5492D8CC80AE76D9541FA8C6E5CBF4F7F86416529CE0ED84
3204+1E58E6AD93DDDAF25F2BCD1B968B75DE93225A5B6A86379C2B22BE62928C14E3
3205+506BB493455E1DF755F77959D5F7F6A4CBEFA43C7A2154183C345B58167B3586
3206+E214A92A9CC1C707623E7C2B7DE763903C500AE53590ED90C70C86419E7AA168
3207+94D123112780A7E86BA448EFD168CB7FCA4F99A8D1442DC68520D304959C26A5
3208+640EAC0F71EE4783C434201E476D3DDDEF80AFA92607F4334CB1155E5558146E
3209+8E73A1AD6AD28EABDBBCD9E70CABB41A36BBF62B2A46D412B8912B11738DD72F
3210+75E07745FBA6804EDFA631973545537453F2A505D58CD7DEDA87C987677E1A0E
3211+039DA9CF25C27A6337233DFF6B89A69F5790B9C585C3E7D8A74694A7E64F93F6
3212+16EF9038FECE5ECFC1DC742D2340F2406664CB91EA13B2EB361739F0C217AA58
3213+EBEC01C34A6586FA8482CB8177948DCEB92F3DF2AD1F2454DDB534B8FEA6A8DC
3214+ACA1603F757EECA835F20C5206D2AF40CBCA0BA5CE40A944E3589E7D1861AE0D
3215+A31886A4AD11C12277117A3D9A87BFCA310C3209BBAC5EBF809E646F3D995783
3216+A08F8E39F63CC183A6D9553DEA23F10679F5A656F3ACF0D8B286371ED20449F1
3217+7A31C634561EE75470B57C949D2A3A9577C5CCA698EF5D698BD8E66EC80F6E04
3218+D9CF0B4588C9AB8038EC6CD63371B19A7A4C49E0B566B898747F5B059111449E
3219+A6CE689F523453CA3F8AE396DC68636D9CF7992067B0BBB36B3946D11DEFFB8D
3220+7E2A2EDE8791E4CA72609668E5E49AB05D15A34CD7A84C6FDC37383BD405C6A5
3221+55723DA365A9CEDB109BC1B0DD933CD08782F9F7CC5EF84A2784DDEF8587B646
3222+64923836A01376B2FEFCC6C06DCA785A69B32E74EAAD058B7213CDCA8613164C
3223+EA7F7AE9C77A181A842C0925F5C7700892B7BFE8A0C4AE633A14498BFD99D965
3224+F4A2B835042C6513E16F73B4AB03679B42336381D75DD177D30E280A3EEEBB33
3225+A87F244CF8C9B530371D56BEE17E9DDFB7705434876288062CFFB9886D03F3A5
3226+E64622951888CD27537866842F8CB5778837895AB3AD6CF4B465E56C1476F2DE
3227+1B59B2150BDA7E5A7980A5C90B4B10A3AAE0256EF7E2340B4B7FD2535FDC4D2B
3228+7A6A8A64BE7C31C61FE0F71A92E34C24621DDCEBBE924BE1E376DBDF42F34F4F
3229+4DE20B058C9E94E39773A3BC824760B5E60731FAD69A5CAD198220EBF87EEB1E
3230+442AEC2D5ECF39A86CCD3AFA63FD337902930AE9422EDC43E46816B65A15D6BE
3231+B9294B685F0CEB15035A5EFBBDFB0F8070330831ED8E773074EDA06A104A0A1B
3232+FCC758A04D54C842200E6865DCC99E0092DE63165EEB1D457FD61D2A0B173A8B
3233+C23DC9FF3C2BE8DCA510F830467FE7B17FDD3D0E96D090801008BC39BBE30B08
3234+11CCFFDED605B09384C27670F85B977FCEFB891E9FF0E53408533280F987181F
3235+E27919ACCAA619EAB4BEDB751DEDCAEDFC521177174AD54C2B725A169CA38503
3236+43C9B07750EE118E55D3C6C2659F0B270658BFA3FB28DF1A8FFF0BBBDD691887
3237+E98FCCA7A94EB05D38FCBE96E0773A20DF58AFCC63F43C3715527471111A1F3D
3238+2ABD7781B5EF6FAA58A99B2E82A793098A641F2B709C1B9FEC36142DE09A382A
3239+FB109A37619A17B034688188EDEAAD5F9D3AD8FB98EABE67A9F0D9D3A047FF38
3240+D3A45A242F26415C1A8B719830FABD16CB34163BA6EE0F7637AF57BA98ADED1A
3241+054D06CE75565BFD3026F4623B5FAD236180DE45B368E7265A5DC9624FF1B138
3242+60A6A6CBEBD9856DC6A953F3E16F6623B4F3C4A79EA976002411C99763824E3E
3243+74FE50E60A48FA8B250D8C336D2DE6192448F5DA83C0F9C68A96B6FA69080037
3244+C1AFEB0A0B1824CBCFB4CD8E1B6E2F9B6B3C6EA110CB2C1F9283B70093F3AA2F
3245+758D59360B6E5D4D2CBD9E76FD7EAC5394F33AD035A73CFA2FE9E0E544321C04
3246+08D1C7AB409D5A03140413CA8F0C0C7C0CDAC89E65B5E88562AEF146096D4767
3247+55C402A02B5967127019C4AD20227C0F8CD04142B90DB7020C56A9F39F428043
3248+4F453F253341B0059342E1A69D9769F8D7A7325BF6F4EC45B18DF040AB356D0F
3249+5F538328A70946C1D8ADAA4FD45437431B689A7E828DD62B3333C164F4FC95D8
3250+F3FC99F683173CD3F50094CDF35D0641B840F822BA7B32FFAF04E0A4CB02257C
3251+A914AFC8B9326E0E76322207FF3B40D7F1E2BE1C63E6EE50E227DC086E004982
3252+A8C8B75810837EB8539C0CFD7FFAD6D2363285F5C08303F36C4B152BDEA25E0C
3253+9B87A02681F6A0B040320E0F53F466B764BD2B0D4F9E549FD8FB63ACF3B202CB
3254+FA8A30D7935CA8A4EFA9A0A03E1604EF52D20D42233D76DD7C353F97EB64B7C3
3255+A7FE67BC49ABA6638A1A4EA19EE48A01C8249FCF80FC33B0727ED9A409C0730B
3256+C2DDDCEB5A4FEC64253E2797724700A875D8A0FF5A4592EC1871939C5BDC1BC1
3257+AD58D1316740AC6075D4828A82206D5531E2B23CF6680DD6AE4A3EEBF67D3C6E
3258+D4114490219C3A4389B1B08A4C45EDC81DADB7980ACB858E68A17229B079F409
3259+11BE17C052E84B3D72711F95333AF72209F999E4952DC09D80316A63D4C56540
3260+AACE90AF9B23B027482DE2966749990267F30890AEFB4EA7207382473D666D84
3261+B735058E93B6A2F3DD2983B544A174ADBE9BD7B82148A5899F805A96A275F96B
3262+E68F69FD265672568001B5B68B963F686007BB5CEE52601ACCB9FBB404D2ABB6
3263+3202C12F4630112B98FC8EB2094C4F5D600E613BFC12AC3F9D1D45AF37A23856
3264+641EF63513F297AF9561E4981D1DE11E6A64C60C3B982ACB9988AA559230FD4F
3265+D0526A962573FCA6F28620915443E206027E6540BDBA85CA99930FE90D9F6D4D
3266+DFB276B5E30104E825CCC048E07040348DCEC32E112F8644A11CDF74C322122D
3267+EA5C42EC3D22FD6984EE135307DBEAE651E48F6FA1B690EAF462543C4B02E159
3268+4544E771B9D3B9B7CC622D62C5FD3B02A6C94B0B267D7FF0AC83CCB52166DAC2
3269+2FFA61551CABD8DA23AC9C316CAEB52D4416F886DAA440E812681F80E85CF0B9
3270+FB3FEE048375FFEFFD4CE424A18E0DD1C857AD51549BCF7DCF6286B42CDD6F4B
3271+55BF40BFC7F78CC83C7717393DC282D3EDE3452A6F70DCF3C3CB1B229AB28AE8
3272+B44E9DA01E34FAA34DDE81957753BC43F62789715D6A85CBC211C7F438EAF389
3273+8ED5BAE75A548A042A3AA21729F3B07A758C4133FC87D6639BB2A7508A1FE003
3274+7BF267B514B4E03CDBD169A5B14CC4A1994CB309C29E5855665F0CF18949E931
3275+571465665FEAA797BBE1EDC22614A0E276E9E0088A039E8BB61768E22CB5B304
3276+E33BCC88EDD1B18039F6EEF7349C23098A1CC30DD4A0641FBC57706C4E12A7D1
3277+9D007A69273C6C8EFD3D76867F61B51F6781E38F0686D7FCD259EF2FD875DA10
3278+6C340B0E247AED94A175C132B20034EAB0D775D6FC7E20CCE5D909E8D9FB57E8
3279+5F1C1D439BECFA757D4AA68609BEC7E9A99EDACBABF85C3203C39B6325FF6964
3280+D517F11F08733AE1E406137862848A2F525B72E44FB595EEED13A023A84A9DD7
3281+734FBE708825822E13765F3DAFB80278F0DBA2F43B3720DADE66880E46773E56
3282+932FFFC11A194CDEA400724F38A9B774262970ED8732A52FA700C16368EAD64B
3283+4CC414FC75A01449A1FB5ACA13A86065ACE44B1E9E08F57C2D5B7C84DE3348D3
3284+2F8A9499A12B4F28D4D956587CBB894000254EE3C11895B49547001098AF4924
3285+72B52AE10DA1B73AA0D29E25073D366295B576BDDBCE3320926C443B4DBE0E32
3286+7EA0997CEBC0FBB4912840B3D413C55317E12403BAF2677164519976208029D0
3287+2737B187157DD879F3BFDA0416B972076F533A6A075DFE89ABD2F87A0CF40BBF
3288+7477E72659EBFA22BA06A46A5CA7AA69A31E15478EE18844B2CF803060EACFF9
3289+33212FA0E8AC9A7304D8642230F0050EC70B53E88B0B6C1AA2A4DEF12CD085BC
3290+138C0D5C749370A27E044F2AAD1D063ABE6E4FC0D3B28CB733CBA22E41A83306
3291+0192254FCB802236193CA990CD20DCE1692FD4D29E9715D023882E4EF116051C
3292+C07FDA4AA8EC73B35D0D092E414151A14B67EC9FA0F55E797883A1312033B9DD
3293+502C2871B9754B1260605F2887032C1942AEFCD32F97C394FCD4EA73C8BCE813
3294+0932E5DCF010D9478986734BF88042DDB7469A990546AE3925F422403E956399
3295+900D1148FB0F87615974B7F142620E7D0EFBBEF1AF89D379B18620356868CD1C
3296+350F4857E707D058C554F86D3166F777BA6666D379E9B88FD9A177DF5A35E0B7
3297+64A477D51246157A5B12FDB7B377BFBCB186754F3EA1226BAEAA3623228DDE2A
3298+DA8F6DF2CEE3F28B88AAA5432E408EE86794FF0CED36D68A7C5F85EB74AC2194
3299+2919A933332082F7BFC9B1435C7929CCDAD2C58319982F7129D0235ED0028252
3300+1509906D82B555C70A52CE049302E5015C82576D171807D18948E2AEE9E97EB5
3301+1BD55365F594C40CF262A9BC8936F71E163C90E0EEA9285D433447BEC8835317
3302+1B74ED0693D9B52622C17020A8847AA25A5FFAD00185B8F677D894EC0388D041
3303+C9C31FB06C241DAF9240E3A486A61EF5AEE1FE55D512A75B33B6B66B9CA24892
3304+41637E1F125571DCF91BA0B38D47BEF4FB716463B191B9DAB3C807142EC82F94
3305+14D52AE21D2DE7C6F13A6ADE36ED60E3B9E11506B099E24D8F45FDD987C056A4
3306+877AF7AE295ECCD212CB01591C9CFBA43833BD440AC8C3C9B3569F97864F4F33
3307+857A7BD398367B9A9DF2D4970ADF614E0DB52DBB0FDE966A7F96CF75947595DF
3308+2A879AA29A844C4C24C92F4964311D7CB3A15B7A3387795313D4113C3AE81D83
3309+7FDBFB7683BDF9E00AFA9B11007DDAC3833443D522103A0DE08128BFC83FC76A
3310+A5CCCD40B23252293F0B2B34450BC14C2BA11FB70CC86241CD8D620411C4D46C
3311+BCD9354DA2F5D89F9C8091F2606717511A6BAAEA69D11D2CC0E1E573F712BB7C
3312+D1EBE6062C6D9B98D7DF6ABC5B914433E3FD46227D4B7B728236E1667C76A030
3313+966B7202C9C035DF93AA274CB16A940269EF75C63B4E655B8133C43FD216F4C4
3314+D50C9C03BB6C4F299C7F276ED59F1CD017A12424CD9F0DC1E893F5A83BDFD49C
3315+E2ECCEBA03DC33833077C5BFAC26EA3BA90D96D4FC0954072F322DEC96F69AB4
3316+5E009CD55ABA58947FDB4F2F221D21E68212CF035F60951B374DE81AF725F7B1
3317+8A21997306A3DC852591DF422FD5E6DAA049E74009DBA74DE1B03671DA80BFFB
3318+DF4D6EF589D121DB4CC67B14EF048F7837B096CD98A4E43156D93FE8E1AB9B64
3319+2706A7DA1070977ABA7520B8AD15C710F75FB8F6AB4A7AA0F7ACE9DEB75A1D14
3320+C8F05D3A010D9FE3E4836C1FF4ECB6954D8932353ED20F8FFBC416D49C70CD43
3321+292202BCE023C1FB19A67B5E6FD4E02ADAF84EE105844AE8A5AECAC2A01909AF
3322+0E3D11535238E071E287DB3A701A847B5EAA526B34F6EF33F8782A1356334F5E
3323+297BD258C4340CA61BDA2A2369A8D9109C0AF5C3277ECA4019698DDB08A46934
3324+81DE40FCB75836B6614FF122C638C47BEC6152A10306D1F938A21226CBB2EF4D
3325+2F5161688ABFC69885B42B90C019C2E06B2B659E2CBFD22BD40654B7593726AE
3326+B0A0FDF1A62EF9CB563BC2F4AAB1B6F3ABC57A87E4BE3C861A2CBA7F1671D28D
3327+6297282FB5F8FA7A7F97F53023A844D5290498E6810E1689381AC2AE8F8F4A5C
3328+2ECAE55DA3809B65AA398164F28405B28F6F73B1D35811F76BD4CF429D31C242
3329+A4E73412A924A2E05F9DA9071D4107C896B16853214D77116D48E9D62235BB2F
3330+8CF38967B9E08AC4BFC4BEDF21D76553E4BB594D4F24774E712D22CB547896EE
3331+550EEB038BB10A0E81D899D7DC74AE255C2282485E487A8D03486E743EA07AAA
3332+94447750FABBE0A7AC1087309F2C9E3E6183DC2A8115319F3679CFF2E9AFB214
3333+EC1227991E26F9D221517B107CB5B94D4208B027EDEBFCA996092BA12CBAEDE5
3334+2672E541E7C3ACBD6D395B983EAB6162C8A513958919A7A8E99FCD6F8211E14E
3335+5CC802E6A390A9AC575F4AA7BA48F838D353155FACFA7E3CC04E1D01ECBC73D8
3336+F0E7F192B90A1FDA9E1E943B756A63CDA628E0767C3BBB429875A3363284AACF
3337+500F9637B6D9F8342364600DB8F02307C71330527A246951C7ED625B091BC175
3338+1BE6F43CE99101CD32948D2CF1952F835F147B3A1A51B1F1CFE70417426CFE96
3339+41B1943A60B5D722D87B1F8FB93C1ACE1434BF0AB5C3E1B1C5C4A1B756D41FD0
3340+93A8D5776F981C6E428CCC099C5C32A913AA9ECAB79C1664D4EBBA9BD9A1B2C8
3341+9E5DB831F266F7992C6287D0B6E8B3A5CE68D1E8DD5E6F108E59437A084C1543
3342+2B02DF8E604A679BABE07EF832B202E511783ECB831E579D34150B6EBB6F632D
3343+FCBF17169527F3182386DF77076355CBACC272A87A5DB7D5925E46AD26927034
3344+B11B3E33E42A37B99FE21067CB4809EAE59E681B9FDD59005010B5D8A27EFBD6
3345+7B313D480C43CC5551A806C0432F940EC2188A5D37B28CE5AD77FD79D53BF8D8
3346+A5652E36457AD796701BB1B2ECF3FE31F7C9EE4A0FB04E6D86A435CFF1080431
3347+090DBEDDAA8C3524866F1F4EA62A71C6D0E1241A88BD2159B65C2A50B1DC7250
3348+D60EB019AD38909893B9C7D785E5C215080879449871D3BFA8D5F8F6DD6B1C3E
3349+EC6C1E108D082557A85EB4371170708A3BAEBCC66D6040F17089BF2142791E64
3350+BE8DD755CE50F1FA6C31A7797F0478F1F503492109E2E6F049C3135AFD4274E2
3351+DF4E2ECAC00319FCC72B29A4540C57BAF7D79815B211C37E17236C74F30E73B7
3352+DF16FEDE9B6F8F0045D329CAC61C423B138C0B383BC107BA1F03B1AC2A65D5E7
3353+1260549E506673BB97DB47B4B18DEDE1C4CCD3030914EE58DC94290DDCF53839
3354+C40CDF17E6A6828A03BAA15D7413D88439878ED47A3B5639E83B54C181397A43
3355+3F716FC134180872A5EB7B655A02607E20F8D5B10E4FD6A10F084A25675EB5E6
3356+DD93FA8AF3EEB916D9DFA6EC612FC698F9245AB584FCADCD0D35716C0634E94F
3357+B5EC45F0E32BC2FBA6876B613FBEC4CC6505EE891D6C241604FEE0F731A7C5FD
3358+1057825B599F2A5C2E2C6DAABCB528C7C22777677033CFD99C89790BA6824A56
3359+D445A721ED4C94EC8F0F53BE79E4A296A156C09477677A9D5170DBD65B4529B7
3360+FBEAA4E45DF130AC20A6C6C5C931FC8DE1F5BA6866F142F211F1B7D7A422B364
3361+DE86439E45EEB687AEAF0618553C7300A430B345C09F3B40F0F121777DA79D87
3362+EE341771EBC0BF12D2692502CDC4E67B18F00E9F6953F320F998B14D683C105A
3363+167EDC3F8A32D785E5EA7BEB7E146D908253C598FF9761DDE9CB2E1EF58CCE81
3364+172A4D6912AACFFA817E99392F10002D5DFAABD174C1021D12D41983AEFDC1D3
3365+3B17726433D4BB843CF598899E564F9B81916C451167FB4512AC4BB60FEB7756
3366+4FB9D1707B303F917742804D45006B4166806094878575C29A634A34420BD1C8
3367+F096D657F7D50C9820DF3B2FC0238F3FBAC8EE8472CDC07424328DD8FF52800D
3368+B0CF61D37C86702A42EA770CF59D44F83151D3AB0AE715E61C4C7E680A53D63D
3369+E3CD94978F79ED11DA300A66BDD3354FBC23C3C3D3C3C50E48CB091418FADDB5
3370+7F0ED7F0786D133886E5C3B6B237E799C2D5FB67C7E9058272482C6F43FB2A4B
3371+87D9DAF083FA3FC8748EBCA3B892C41821A108AFC5BAF0C3FFF037D6F8156091
3372+05B9BA2B8FC3A8E01FAD01B5761FE9412FB1A23C4CAC0EF203822C7707D068CF
3373+3E2DF702DDF1E515FB2D2E892BF4B9D2D9968F5A72836668D1EB5E7671057E61
3374+1ACC7B2B1899A248EA324CB11D68AFBE21B445C16C369505F80D1A3D510F28FB
3375+A7ADF6A7E2511DEC08E4A1C332BB3F9870A5BCA0426B2E26E008BE276C181B5D
3376+8183983A6D5C3DE2513ACC8AAADFCE210E3B9197D164D1B40EE6240AF27FC56C
3377+A0D604D259163E8C22238625BC81903D98EBDDDD4CFE30EE0E5501EBB17F01F2
3378+315A8AA06CEAEB1222B47B8D1A906272621A0E623827FD7203ECF6C83B0688C3
3379+3015DA4A75C67648EF2EBF0D39F3841DF91EC2B10577C4E2FF4BB3F0C961EF5F
3380+57FF40B9EE99117CE5ADC85DB2F3725C0CEDCAE5F8A0886CE32B23D34E990BE2
3381+90D1693294C6557D1BB0B5308ECA260A8328398DEAB5FB0AA51EF9DC254160C1
3382+D3BF03D2005CD435B0BA6BBFFB711DBB12E131D5841A64E02671FB1A2B5E704C
3383+F272F9CE6B1C1A8D7D61EA6B9066A0FEDD4F37C11A7C9E411AFC1A68124C8170
3384+A18851C5756B3B6F8E58EAE34EF545DE5199AC249023F78FA6E56ABE00E21142
3385+C73641CB678B5A9E4C0FE0CA8498479877D72B8DE547E5E4D1AB28867631A97C
3386+F460836B0B423A86C552F45C86A4576A66E381EC388BC86A229D41AE22E472A7
3387+6A3436EDDDFDD650FEB2E26653E78F40924E0905A4AE6D14C10BC6BDF48CA0F1
3388+65EC35CAE0F2B5CB1A31478E3BBED3810228326DFE34C975B53122C04E87DC58
3389+3ADF5726764E964D0ABA53ED4B1F02943A857F7310579CDDE10480D3BB655D8B
3390+FCCBC6DC4F42444D9CAF4EA751E8C71EB304C58FCD4EDDD4B8AE0854211007C1
3391+E5B29440376EB2978B78344D9A95B39C8B68DA469CA423F2A3D56540C6691B0A
3392+A2C5929F85051430EFA1EB3B63614247264F4A9C4531D9463995450EA32BAF1A
3393+5F835E0656AE4109295C3CAB4475AFBE3DBCE3BA
3394+0000000000000000000000000000000000000000000000000000000000000000
3395+0000000000000000000000000000000000000000000000000000000000000000
3396+0000000000000000000000000000000000000000000000000000000000000000
3397+0000000000000000000000000000000000000000000000000000000000000000
3398+0000000000000000000000000000000000000000000000000000000000000000
3399+0000000000000000000000000000000000000000000000000000000000000000
3400+0000000000000000000000000000000000000000000000000000000000000000
3401+0000000000000000000000000000000000000000000000000000000000000000
3402+cleartomark
3403+%%EndFont
3404+%%BeginFont: CMR12
3405+%!PS-AdobeFont-1.1: CMR12 1.0
3406+%%CreationDate: 1991 Aug 20 16:38:05
3407+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
3408+11 dict begin
3409+/FontInfo 7 dict dup begin
3410+/version (1.0) readonly def
3411+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
3412+/FullName (CMR12) readonly def
3413+/FamilyName (Computer Modern) readonly def
3414+/Weight (Medium) readonly def
3415+/ItalicAngle 0 def
3416+/isFixedPitch false def
3417+end readonly def
3418+/FontName /CMR12 def
3419+/PaintType 0 def
3420+/FontType 1 def
3421+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
3422+/Encoding 256 array
3423+0 1 255 {1 index exch /.notdef put} for
3424+dup 0 /.notdef put
3425+readonly def
3426+/FontBBox{-34 -251 988 750}readonly def
3427+/UniqueID 5000794 def
3428+currentdict end
3429+currentfile eexec
3430+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
3431+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
3432+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
3433+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
3434+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
3435+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
3436+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
3437+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
3438+59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
3439+51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
3440+DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
3441+AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
3442+45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
3443+821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
3444+96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
3445+9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
3446+26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
3447+140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
3448+1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
3449+1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
3450+377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
3451+0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
3452+5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
3453+ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
3454+FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB1855A22BB
3455+7B0B138892F4D0C10FE8A5342308AF7B1BBDB641453D3D5D053F6634CF3A9ACB
3456+6763EE8A2C6114E193BA134279BDB04CA28423F81948C554FDEA56AE1A83C791
3457+EF358C159CC3B6CA77B07C2C93FC9C93C1ABEB6E5EF3FF2990371EE2A9A3189F
3458+C8E1D35959AAE8FC9FDFB6CAA39E4DE19E47A7FFF38705E69915D7C1B06DEA22
3459+2511D005170E59E53B1BA8FC15221FAA5C45DD4F4F6FA1421B57AC5D1F5D3346
3460+754EEEAF1C86C82AFABF2C495324834D375D2AEEDC73B52B58B1BBDB54D4B3F0
3461+BCFF3BCFD5212788DB2E07D50D1FC1F817F0B6435B0FFEA11151F7F9225FDCCE
3462+B7DEEC61EC9E3B85359AC459810704C4724CCD32B546DA7086D89B8337CD19EE
3463+BA1CB60C4D9FECB524199A087BA88646DE1A8450162AFE7DAD9AFABE1E276A7B
3464+372EF1BF853D7E17199905EE7B623E8B3C90A0C35240C2F2CC873B8CB6ED406C
3465+9B75AAB478025EE20BC53E5AA66AE78917A7A8DE2EDDD4262F222683892F582A
3466+70E275E8C0FCC12C5DA66377430176657D155B66974B9B27FCEADACD29AE8EC5
3467+A9E4A2ACA6FBC0DA28CD8BC2A3152841799273F4A0AED0454565A5EBE6E222AF
3468+2E381B42EC5ED410225DCF22E8C29CA8F59B0175FB3515692BB505DF2B2CED76
3469+E536773217D43313D59C854952B29210298E488451A9B96F524CEACF3528D4A6
3470+7F4B86C7238C90A55B21CD2B487693B4956B2803BA2EBF92D49AE2E5863BBA2A
3471+F8588290565AA59CC3BB8BE6088B7257EC21A95D32C64DEB3C8EE7F95F4941C2
3472+CC4296BFAA2CF85BEC1C49FCA476C1E6E604351413ACD6976051F487A533AD8F
3473+F1C8C00813FC6CE68201A82E1635BD9214CB0F43A839493EC692867B6AB85D14
3474+847A35ECD740BBAD7C0D7C2F99D941E831F1F2E25B563F17A4B55E98540FF86C
3475+D9C2ED5AA425A39E25D57FAC19FA095B169533A9E35E3279015DD3B1D354393F
3476+11E033E901B90751CB8282CF4E65B7B64DF4D54DE7B72995CD4A5913F0D62412
3477+C9279C7DE705EF559712AA635E061A06CAC968260A70F8C123B1EA7F3DD11442
3478+5298448E2FD9BB2BBF455E31EE32A48844E3D565938C3A06C7AE2E2DF392B621
3479+6F04E400B412BEB1B04EE2D723080377D313D3226F5CBFFA6C9E7A398436B4E3
3480+CA505266C5D6496506E78DF9AC64E599804920DFC6ADF314A0D1D408104D40CC
3481+21F310E5E442C73C47B14D0CCA9DD4D93564C87A9B93C2D5A0A58D6B7F2A54C0
3482+E51830FB40E4E7FC7854C102DD35FE9BCEA1807937196DDCBB6E46EE31947DFE
3483+59799F1FA5ADEDCC63FF2F48D278CEFF6B2E86387955F1156DDE8A433BD37B27
3484+9D414BE03A081EFD43661FB98E6646BBD71C88A483396AC991DFCB19B4C48EFF
3485+85347FCE64E4067BD856188152E59209FA1F207FF579027CF153E393823E8F85
3486+865DBD75C8725D7E5AB85DC0A02BDFAA050FBF0835638DCBC6E6EB0E8021D791
3487+9ED29293EA36D7751EF8DC12842E90734671C3E55811214E8DA7270483370B32
3488+5E6433AEADA33B81CE3B6A71DDD52FDF4010B3114765D8B032DF3C3FA8032162
3489+9F42DF505C83E11D2D4760549D4E3D3AC899B7EFC5C9C71FAAB465F2CA0692E1
3490+CB75FF09C0C8CA36ABAD74A9C60820F21ADECF3E45A63881429722F3852DEB55
3491+2C8473F90EE8698B58BB530A9A5E5405EB3BFCC375BE5AD507B33CAAFAC333B2
3492+16FD44CD6AFE64799BB5B82B926DB249D2F2EA98A5CC651AC61F523A32D70540
3493+999F21C8E60C26BDAF310D41780AAEA52A6AEA9FC82562A159FFA530916E2839
3494+B7B28E2EB441CC04621559235079AA03250494FF48AFE867108F1EC6F7793D0B
3495+53629838C019A734FE6543F1E38D55857BF5BB5B205F7B68BFBF3659E0B9CE6E
3496+3169B0DC380B8429E75BCD1F2CCCE48DA6D149E5D9965AB0301FFC36E614E308
3497+351AE40B1AF08024EA6F78DA5F4A97012ECD29FE4F8396CBFFF87844EF25F41D
3498+5DB91630592A174FFFE6D44B93B8C3E3AC8C50AB767D573C150A05DFD5F8BA23
3499+6E98C7D32FB611563749F625B2B1E91755D52CFC57872BE3603DEF32D08160A7
3500+FD845003CF41A20099685418BD0C69ACD2381F1BC840260A6DC62E22D0724EAE
3501+CA6C72554FA6CCBEDCA639048FD260C526ECF5F2A2A122CCDFC036017BAAEED5
3502+BEA14B157FF0465B479355C3F46A9230B122A3F9290977E6E9CAB80EBFCD7149
3503+395D882017A77256E5E500A3A068069EA7F0C07246812A143BEDBD5F23EC6689
3504+9D06A0B040446C37940A3DE20177E30A94F32C3A09D7D9B81A9F7283E862E6EC
3505+33E7BA351ACCBB83F611D987C9D08741F6F35F814763EA8BB07BB7DE3500D10A
3506+CAC086C8302CF2C5F0195BC8596CD28DFFBDD8800F5118E108204028DB382FD9
3507+D6550E1BCC69F9401F18E59A45825B00307E84A4AA7767A815760B02B5066DA2
3508+DBA4AF78E787C69223893342C4A3FC7A77AE4CA32E4008F655CC7CC647902364
3509+14F26766289B1BD0E181AA04B526F40F078EE8137AE027DA93561B084B48CE24
3510+D653E4633EFD5ACCD2E813F28BD6B4008510B5378F6121D496C489C3D6580B4D
3511+A918E85B2F7EA32EA77C7A760C75F0EF8E43BFC795D56F77BFA40542A0E57C1B
3512+A3719AD27732AF7A12F432CB167C88C5A3859A2B27B66A287D4D11DE63210E98
3513+FB4F5EE8214A2A2DA3E1CA563D4FCA08AE5F5C5567410B8273BE31FBB4F1E07C
3514+017CC7E4549967AA7854528C41FCC6EBCB42425A93E9A50C5F674CB04E3E65DC
3515+71980E97370237C61E8E2D94C148D0984F98019300EC72635E679DFD726E72D8
3516+4A769C6CC3310AA7CB54E121FE4E202257C580AE033DC10A8129809AA22726BA
3517+5204D2EEAD7B47364A8727DF853B6259DBE38F79106D0E067A9EA16E35FF5F2A
3518+FDDAAEFB7E1E75D19F20C3881CB7B9DC034E9E871853125339BC86ECF35E26BC
3519+167B1AED79451A447BDD91AEF2E43E832084913888593FD630B567483A3EDA8F
3520+5495809971B832E3502F28695E68D8F08B067BB06F5741130718041F375A2924
3521+DB128D628DA00E398BB645D0F115CD84507A110A8FCE169380CE8398C07E4CEE
3522+85138743A6F431F61D24220EF51D9631ACBA523E0CC96CF755D52654A460E866
3523+6C731FD92BF2FC809002DB98D9C0A533251C761D91CA33732B147CC60CCDE148
3524+A321FCF69FC49F91E81F040A8E361E1DA6A093F5553BE60EA5DD426A60D54A27
3525+DB947722BBEE6A2EC84FDB042E5088B2E702D4DDDEEA80B46DA1D036E20714D1
3526+3D17967FF31184486321B55EE12B2BCF45B322F5C5D65325E83CBDBC24F90C74
3527+CEC8E6051FBBB4BC93BD15C604E1E12039E5CA6F728E7E300DF93748274C0AA0
3528+36977F12B12F514C70A56747849E9F6AD06AC8D97D0EF03A85E4222DFA1328AF
3529+AF1CEBB60C97547D32C1B6DDB7FF10B28ABCB1333D70F06B31E1AA15ACCD441A
3530+5D1F58705B8679D24E3C656474E9A0074CBC948DBDC80700C361FD7649DF70D5
3531+123999D603CB48A98790936F44D3783F02024A232124EAC3E2C1E66A098D202A
3532+E86C3F85DA840C62D9512F5C9743BD9EC247F1CEF41B09C858ACD8C1081A6C7F
3533+65C6876F198A7CAEFB2D27DC625031515955DF1FE86E248B7C35747AB28F6F9F
3534+2FE542289FF8CCF716F180DC6CEC390EDC977EBEAFB42B63203B871CC5B23905
3535+82480852BAD30EC64EA12D4A5232AE6EC16B038F3A23B59612312613935C6FA9
3536+962A80DD6311499AE900E9D0E58043AB148339D4C9D22CBCD0A30A05EB4BED0F
3537+087A9A2C5BD93230674C5A2979C0C99B57AE367CA69F5DEC5033C18E76427760
3538+CB6D5C43711CA1DFED6DE01EDBED0E9DC8F19B516263E4620B3F6E9FC017A24C
3539+4CC81B0EFF20D4318C32483F9FEA80B8212B9207432A5EB20FBC126F71A6E6E0
3540+2156F66D83D4A0F77F95EE54BDE0144FE4F9AA0448CB8726B8956F0B241C3B3E
3541+71FAE0B2C86237048B176F86BABC89F303F866581940FAE3E6BE93AD9A4EAEC8
3542+13E9BF678E1E7DFAE84AD059CAAEC39D4242D6740439279119406C0132E1EDB0
3543+E6AE72FCE1FFC52D70314F142A419040C413808245C08F94D508561B8A21C90A
3544+260C922CDD8F3224116FB0376319A598E56A24B2EEFF293D4381229DE8264A16
3545+9B956DB7543E8BCF1250
3546+0000000000000000000000000000000000000000000000000000000000000000
3547+0000000000000000000000000000000000000000000000000000000000000000
3548+0000000000000000000000000000000000000000000000000000000000000000
3549+0000000000000000000000000000000000000000000000000000000000000000
3550+0000000000000000000000000000000000000000000000000000000000000000
3551+0000000000000000000000000000000000000000000000000000000000000000
3552+0000000000000000000000000000000000000000000000000000000000000000
3553+0000000000000000000000000000000000000000000000000000000000000000
3554+cleartomark
3555+%%EndFont
3556+%%BeginFont: CMR17
3557+%!PS-AdobeFont-1.1: CMR17 1.0
3558+%%CreationDate: 1991 Aug 20 16:38:24
3559+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
3560+11 dict begin
3561+/FontInfo 7 dict dup begin
3562+/version (1.0) readonly def
3563+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
3564+/FullName (CMR17) readonly def
3565+/FamilyName (Computer Modern) readonly def
3566+/Weight (Medium) readonly def
3567+/ItalicAngle 0 def
3568+/isFixedPitch false def
3569+end readonly def
3570+/FontName /CMR17 def
3571+/PaintType 0 def
3572+/FontType 1 def
3573+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
3574+/Encoding 256 array
3575+0 1 255 {1 index exch /.notdef put} for
3576+dup 0 /.notdef put
3577+readonly def
3578+/FontBBox{-33 -250 945 749}readonly def
3579+/UniqueID 5000795 def
3580+currentdict end
3581+currentfile eexec
3582+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
3583+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
3584+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
3585+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
3586+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
3587+2BDBF16FBC7512FAA308A093FE5F075EA0A10A15B0ED05D5039DA41B32B16E95
3588+A3CE9725A429B35BAD796912FC328E3A28F96FCADA20A598E247755E7E7FF801
3589+BDB00E9B9B086BDBE6EDCF841A3EAFC6F5284FED3C634085BA4EE0FC6A026E96
3590+96D55575481B007BF93CA452EE3F71D83FAAB3D9DEDD2A8F96C5840EAE5BE5DC
3591+9322E81DFF5E250DEB386E12A49FC9FBF9B4C25C3283F3CEA74B8278A1B09DA7
3592+E9AE4FBAAF23EDF5A3E07D39385D521547C3AAAB8EB70549756EBA8EF445AF4A
3593+497CA924ACCC3DD5456F8E2C7E36946A5BF14E2E959895F7C94F49137256BE46
3594+4A238684D52792234869EAE1A6D8ADF4E138B79472D2A90A6CA99E2394CC20CD
3595+3841733046175B20CEBE372327BF13428EED6A3E2FDF84C2DBA4B0AD584EE9DF
3596+B51828D3B8F385846158C29C9AC3496CB9692DD10219697B2ED4D425C3957FD8
3597+C4600D76E045C561216EF05D38177243C314877A69A1C22E3BEC611A2EE5A216
3598+9B7C264CF6D1839DBBD78A40610F2C0D7C2FE09FFA9822FF55035AD52546970F
3599+83EED2D30EABB1F303091EBC11A5379B12BB3F405E371519A53EA9D66174ED25
3600+A2E55463EC71A97BE4C04B39E68112956117C8252DB6FB14AB64534B4BCD568B
3601+246DB833982B38CDE7268BBF74B6B0C18091E1B1F87D32D66F4DD023D1F10D2A
3602+7736A960F72AC01F733A11023832CD68FB6288A5977743F781214D8FA9C0C3F7
3603+80001321D4397771F728FD9EE57CFE7D9192B887EC883EB1505068261DC40089
3604+7B7D2820F06515CD74513521F6397FEAB3AD3572D9A8269430E407E357422461
3605+1785FC2782047F4C0339D79B16862D939F3A37F78E4E2174E4FBF132539CB760
3606+207999FF86F6A3EBE48EB0A1CA635450FDEEF79EB16D853F3BF4B7AF6C21236B
3607+2CDB1A8CE54A308812E598601DB051D7BE60A7382936A6C346A0E2A568D2F150
3608+5DEEF90F5E4A4698EE1E97C090C5F76BA798E598A84FB13116572BA99D297FD3
3609+F9D516671A3FE77948837C63FA73E298E1E61EACC270693557557389EB81AC49
3610+52FA99A9EA3CD449F805EF9DE5D430E4A82457283289E6DDBDD8CAA6270E33DC
3611+E27CC587FCF0EC067E2D7BA5CDEFDC13C393823B70A878A0484677EC0C044B73
3612+CF8E40AB2A31EFB0D0778C7F5EAB40975020BC000E5D6011B1697EFE263ACD83
3613+F255767E2EED492AE88AAFC5729AA668AB8C94D1CB010B3F0CE887398FB9A4EE
3614+398B736A41E0DA9DA276F90A24FE8E881849A81B0F07E3E47AE08DA98E693DF0
3615+B3BE2D30D07D9A309EFB6F456EAB79C75FC8097C85E42F43715BA040757DED90
3616+BE4A72C13FD96B6735811C9CAF6B2BA7FA1D7E4EF270DB21C01493D7EA1A73CE
3617+7F3228B30789E3277D1065DF4FC6FF7AA02391AD1B9116D4EF1F37DB2C4795B5
3618+2E46CD541D3AD5CBF1EF4526E2A69D8FD0DFEA8A7ACA93F9387DD0C36377A5FC
3619+E161D9E8E366229C677D15A7481827FFE8CD34C0518BF0B6262FD4A292B58FF6
3620+0C8E31D58FCFB6F61699F851AD4957A3FE6CF46A60DFBF93A294E005C952AB16
3621+8BB6C3FF8E67F44140B4D6F78850A64C5740A0DCEDED35ED32F8F7BDBBA73534
3622+F4A84D604E8E9A19B62A120DC96BF8AAE4253664FA7ECC1C5F7A3EA2633E2752
3623+54223969FB5672CF11733CE566911CADDEDE053B0CEB8B2B8401BAB2639B7F2C
3624+2584633894CE9B9F26AD96486271F6DA332F095CD7934ED599FE181CE98A2A95
3625+901A324E112457EB77C4E6A5E3024FCE2B617B75696A971519D64DD57619C937
3626+E12427119CD45E6D199503B71C3AF9703F8137832870C39E8F9E5E92192F1568
3627+0406C45C2954AE06033A351B7DF4789EE5D1E8347764C6189F69A27C904E9E43
3628+77749B098B9D53D8C82551549944EF4ACE03CB68E349A93D210E3A809E6731FC
3629+A0976C7201AC120C0446753067ADAB6FF9877DC15FEA1AADF1EFE837E833E655
3630+5BAC70FF73E56E024BB88D0DBB5C12F09B91DFB8C539E904217330916BF98B16
3631+E9A9FD9B74562C3F8719E3662E55D5A670D72F87B3EBAF036C8D043284C1A546
3632+959CAA104EB0E04B5B650E02FF2AB1D891B81D651DD46C5E32D3562E3676DFF2
3633+4BB4294D74B5EC6A28CEEC97742BA7FD36A7760335EEB505B0CC8E6D7B19A18C
3634+1466580E790442EB604452F321CBB51C61DE1766680FBAD9624D5E3261CEA8C6
3635+D177B3E4247E1B0E6538B85A4FC1417586F47F0B306133F466F3FFD634DD6A1B
3636+B2D4058B447F661BCE3FFC5A18B15225AC936558B7EB209E7A084A66E100D70E
3637+FB635F92465CEAB6DD24091A382929BEF39E948DBFF0F0917AEFCFDF88E45F0D
3638+0B37DA26EE90A1C319B8D6B27FE7C340B130F3BA9719970BFC37D01551CF9BFF
3639+0910686AB307EFB1FEC82CFD22500789D96FC4ED09088718D9584EF1C2BE4202
3640+3B2E545098F3549E33ACB9E3E94D850ED24ECE8390581B666AB6F3F319DAD161
3641+4003D73CB2D7021D8E155C577684FB6B80E9A0C2B5EC1A80C0F851B3522B76F6
3642+39514B0EA4D11D06A508C53502B9BA6ABF2413182E2E17B65ECA44C525422C45
3643+A7DB6D930D16B3F40C4D0BC78142702C52A7DAB7D92C78BC7DA1A8966D60B5AE
3644+AB3A8DC80F7D5EE5939BA43DB68B177F225BDF18349C557EE9A83899BBEE4162
3645+49607C07C6FA515C780F754454828B9FD0C725E21D83848B345DBA82D667F9FF
3646+9B7D972C9E4340B60BC6EEB6DE06732AC2F6F74CEB805E336D16713696A5B9E9
3647+A375CBBF0D1CA2E318D147360FECCCB6C4935282DD1417308A7CD13EBA27674B
3648+665BD48F7426AEE611CBD5384B740EDC0C12B4A1168FDF6B1BF345B29DC2CB7A
3649+FD3826A561B83E286EF3234E04B9B9C157CA0B5176AF4BD6C9AE2256DD6D28AC
3650+B473785B6AB651923BD3C0627827353069CC4435A9869F703ED80A53439A0F57
3651+0E7D4AE76B759EEF5F75AA9554A471D347E8DB44AFB928D943C00FE9C310BDE6
3652+7604EF331F9A9B48F30B3CC07CC0883DEC7E30502CC00F7C2DDB17AC854815C7
3653+A5388E5E4D9767D3610965AEF28182C893703A004CD44DBDD2FD30BB923B9213
3654+D906CE41C075C4ADF35F21903F2102C23057E547AC6C714D77A84DBE566F2EF9
3655+12802B224A4FB9B5B754B4CAF630543D3A03CE535BBE5F7CC778226FE01ACC5E
3656+99D6C92FBBFD0D69CA1823D3B9C166975F0B88E6745B9FBB7EE958556B4CE67D
3657+0491CE245DB057A7ED1D438464BC0C20E84478E59F1B5EBB99ED214C2689336E
3658+59453632B640A348DACCE83CC808F1563538D006C3D43E7101CC4BCC18BEB240
3659+3CBD91FB78F2DEDE2868EBCE107B641D8A8781BAE21A20D865133D0A81A50278
3660+874B6213D10B87F2197EBE547F30C6D25FEB0C22F5AB741371DE58D494E94038
3661+5ABC4546762E15E88E18997B133A8E6D45D65D03E4F9F9D8C1E2D9BFAB4F3D41
3662+334F134172B1F78416D91B13D896256C1182F32193701DD27922467DBC55EDB5
3663+16E054FA65C9DE4AE070A6E387CA7F26F1791E9113E9F55908FD5E71EB16A4F4
3664+BB902598E6274B9FD7FBA81F91AF4F09E30C35A7F8192B419BFB1AB0F74F1C63
3665+F041987BB048C9663DC76E141FF8597F18893BC6FFC590191B3CF3A62B1A3152
3666+61344F36DDCC0C0639867A1861AD5F65C2246A7148770ECE8044B8B70CF0CB49
3667+430E0FF77C46678FACFF3C53AAC89AA7B8FF8E7FCDF07368AC6B90A019C4AA69
3668+5A2CAB381EF599BD6C2184C056E8940215BED5A605446B42B96B78B59E74F8DB
3669+EE51FECC45AFBF570B69E602121A7191AF48A9A3AC6FD0AA32B004CD60E1F81A
3670+5D90754193C9A41C5D9A3D1C980C2CC3CBB20070FB79A8A269739B98B3B1B9D3
3671+0955F5A722A1EA9CF3BEE5378D9E2C30210657DEABDE64F5BECDB45E16D11026
3672+E833E9D8F76D3EDF34B01C73CB92552E9F8CA728B3994974DC57AF656D549925
3673+25BF9E00E67FFB4903A9DA977731FEADC690FEC506CB3A70F8D5438FAF1619C1
3674+B81B10178EBBC1143AAD9B273582163772EED691ED36197F522AC70C35943E8E
3675+B6FFC38E471ECACEBCE2C447CA9E8713A7D77CE98483F7B4FA46B617E399895D
3676+12F0259F1651CFA3F064F281C5BD9EF0092D94B25FAAEAA03F476FC95E029A60
3677+05F60D812A294AF510F2D27A021AF4A4A8CC4E43E415F4601D4DEFC10A32FF32
3678+F2E5FB36011A2DCD8638608310E174C18B58B8E589FD8A02B49261290D750636
3679+AF9EF054616A9095FD413FE960FE69FBF16CC049014AC5ADB1B29A09631A75F4
3680+D756CE74648369883A7635BB5A2E1BFAE5EDD0C4E0D3CA93F2A73199B6ACBAD6
3681+3B67060323BB5F01621DEDC3E77D1BA33AC9A15C42796F1722884B27F71A751D
3682+9B80510A103D37EB28937EE4D6186E51B9E8AC7FA9F95CA17E9C6C4320275883
3683+0C7AAF1647A433BF0A2C2BF5DB08F17FBDD42D5A4FEAFD1ECE0C8CAFF0712637
3684+A6A34EBB364E0605D587C27AFC181F44ADF9D5E09C2516D86FBFF1A1D74185E9
3685+4290022411F075215FB4C7318C4050E52BEAB7575FF30014E5A29DB1E20BD1DD
3686+286EF37EC8EAF71A631D39054D60EE6FA5CFA96954C56F0A769102C06822F27A
3687+CC05C8BA6318F133B2625D5793062028A62E0B83BE8AE86D49D8836EA9D7857C
3688+ED26CE949CBAFF35FB0F5E49097B57739811A47E9D40546CBC7251D19DE722CC
3689+F8A92DDE8BA714B11CF7B52C7AF6B594CD3E02A6B24E9FF662A9D892D3CE5520
3690+250DB588EB9AA7B03547E910D24B7B3C19312D3153140714BD3D893384871AE0
3691+399698A1691675F21CAC6E0B4166E96E205A541A611516219419D13D8F547039
3692+8AE84325A2547D29BF7C3867FBD0F8E7F9AE1EC4A01F650F4B6221A40F91065A
3693+9F95D433D9276669DD7777B107706F896CDA02042DCA0511E3A1289198681A02
3694+EF670742573591798733A2DC8C314FAAE2C28973E8F70F6CE9069D3865E1DA41
3695+50A6E5820D966FC609F163030CF69D5F9CFFD3FE4315C64B8268F1C04353F76E
3696+B81C287E618126D1073DC1B4C594E0A8EFDE6A1910B73284DC3FAF3E0DF1688E
3697+A6C08247A322FC5FD912F8A1AD8624C3327745B4016867D1EDF5602ABAF49B28
3698+AFCD9EED38DA7C333FA2D2FB7C5145EAFC2DCBA2FC0145BAAF1F772B8514B811
3699+6358927C989D2CCBB2119918454472FEAB78219E8EA68913466B48B16C4BB0F7
3700+9B3A28CE11F1D59917F0019714561B5A6F9ADA993DE87F05018FC266215177E1
3701+DC75C3B74D645767EA1FBFD0262C83BE3D287E9142BB20DA24F597DC49EC5482
3702+D393F6CBA1C8580FC7FCE1F0FBAA1B65FA03A264A0388F0C8AD2E406DD2A684D
3703+EC1A537D6D73409907A266D5418C276611280602916A9CEE465ABF4784EFEEAE
3704+D3E2FFB96BED3B7D5E57FDF75D29D73E59222C345DC11C19F6DB4F86225087F1
3705+977C7C8967BFBD4CB2B7014B4F873A3AD278145020C73E4244D0150006CD4D9D
3706+7B5A2F041EAB3D5ED402267206EC069D23C06FCA47BE3FB2BBE8AB041D4C2A57
3707+BD063B0EE0585FF810935B7B46DA5764ED68F1CE97ADC4C521C7C2CD1C183074
3708+C42534BBD88BBBC27C192D4AA57913AD167F83D9F9B5F4712D41D9D35158B67C
3709+3D296BA756B35B47E3122B28D4C595C935EF052F4CF60CDA6E9D3D2D2ABB6359
3710+6CE637FE4FC6225D37D0898FEB2F5550676485D235798180D104C15FA4965623
3711+F87F3522416572141A4F7FF45A705056CBB3A27783581AE7717350B697B5B34B
3712+1201D7391142D6F447C2F6ED336BB8E2EA5912EB7DFAD1B616FCAF748275B369
3713+0CDD0C52AC62922ECE06702E9BFBF64314A2DCE4D44CE75DBAE5D4278D2EE2D8
3714+BC5FA04C1AB788B627D4EA91CA36A1A4AE13508A851300056DCADFBDE748CD4D
3715+92E1D07D1E61D99164A0C899219C428DEC6E486A6A6DC4C6CC0FE4E68883CDBD
3716+ACD9F67D3A957AF68C8D034BD42BF82E29EB2A2AFC843E00C5534CF8A85FA1FF
3717+94B8A1F4B7A390087CC1F2484C2BD3607D15445BE9CF8BB50C29EE15F3C1021A
3718+0CBE44B3C8EF35DADD28D6806A9816D27EA98DFDCBB459A7322CD193C13A37C6
3719+C30B2CC0AEAA4855C50A376F27C19D6589A2BFFF6C364BD404BDECFB42506D35
3720+9B6AA8A2687D5403131801CBC017354AC2AADD91A69C71776A3917C5B8635AF4
3721+A07E86C394FB8D92584512F7F3C2F0B478AF5B2020E05F5064808C9700EB5FBD
3722+5B1CDC0E999E164F8D47BD9F22E34B5654B509CA50F5850E7EF262D460E04147
3723+32AA10E5E5CCE60786085F496B068DD77928C3D1B41075C83B4C54DF9BCA99AD
3724+3B749DC3D684E7FF3B9223624F13BB117EABA6CA27566BDAFFE6AE26583F0BC6
3725+AD4D77CFD3D498A7D3A4428FF8982A54F770EC94FD5350279C5F5F4E1561DFE5
3726+73129639E18E82DCF218E82FCE75AC5156A1BE89D28B518B05D950ED7B1A418D
3727+394A0F9CFA3B16BD97011A3268FDC31BC68FAF7DF4A6E463D4B4ABD8CDB791A6
3728+A732E06D344CE6C5A908C9BCC9C4F7D93F4EAB09B3CD2731F89407046AC124
3729+0000000000000000000000000000000000000000000000000000000000000000
3730+0000000000000000000000000000000000000000000000000000000000000000
3731+0000000000000000000000000000000000000000000000000000000000000000
3732+0000000000000000000000000000000000000000000000000000000000000000
3733+0000000000000000000000000000000000000000000000000000000000000000
3734+0000000000000000000000000000000000000000000000000000000000000000
3735+0000000000000000000000000000000000000000000000000000000000000000
3736+0000000000000000000000000000000000000000000000000000000000000000
3737+cleartomark
3738+%%EndFont
3739+TeXDict begin 39158280 55380996 1000 600 600 (FileFormat.dvi)
3740+@start /Fa 134[41 6[37 3[50 47[65 3[23 32[47 25[{
3741+ TeXaae443f0Encoding ReEncodeFont }6 83.022 /CMMI10 rf
3742+/Fb 134[38 4[30 1[28 1[43 42 1[66 20 2[20 3[37 17[46
3743+5[73 45 4[55 20[42 42 2[23 46[{ TeXf7b6d320Encoding ReEncodeFont }16
3744+83.022 /CMSS10 rf /Fc 131[44 1[44 44 44 2[44 44 44 44
3745+1[44 44 44 44 44 2[44 1[44 1[44 44 44 1[44 1[44 1[44
3746+1[44 7[44 2[44 1[44 44 44 4[44 1[44 44 44 44 9[44 44
3747+44 44 44 44 44 44 44 1[44 44 45[{ TeX09fbbfacEncoding ReEncodeFont }43
3748+83.022 /CMTT10 rf /Fd 134[59 2[59 62 44 44 46 2[56 62
3749+93 31 2[31 3[51 62 50 1[54 13[62 2[77 2[106 4[88 88 70
3750+2[81 13[56 56 56 56 56 2[31 46[{ TeXf7b6d320Encoding ReEncodeFont }28
3751+99.6264 /CMBX12 rf /Fe 132[35 31 37 1[51 37 39 27 28
3752+28 37 39 35 39 59 20 37 1[20 39 35 22 31 39 31 39 35
3753+13[39 5[65 3[25 4[54 1[50 12[35 35 35 35 35 35 1[20 1[20
3754+2[27 27 27[39 12[{ TeXf7b6d320Encoding ReEncodeFont }41
3755+66.4176 /CMR8 rf /Ff 201[30 4[30 49[{ TeXf7b6d320Encoding ReEncodeFont }
3756+2 49.8132 /CMR6 rf /Fg 203[33 33 33 33 49[{
3757+ TeXf7b6d320Encoding ReEncodeFont }4 58.1154 /CMR7 rf
3758+/Fh 240[42 15[{ TeXbbad153fEncoding ReEncodeFont }1 83.022
3759+/CMSY10 rf /Fi 132[48 1[50 4[37 38 39 1[53 48 53 1[27
3760+2[27 3[44 1[42 1[46 12[66 1[72 1[65 1[75 19[27 5[48 1[48
3761+48 2[27 46[{ TeXf7b6d320Encoding ReEncodeFont }22 83.022
3762+/CMBX10 rf /Fj 134[40 39 55 38 45 28 34 35 1[42 42 47
3763+1[21 2[25 42 1[25 38 42 38 1[42 12[59 47 14[63 1[58 2[42
3764+17[30 3[34 34 27[47 12[{ TeX74afc74cEncoding ReEncodeFont }28
3765+83.022 /CMTI10 rf /Fk 133[37 44 44 60 44 46 32 33 33
3766+44 46 42 46 69 23 44 25 23 46 42 25 37 46 37 46 42 4[42
3767+3[62 1[62 62 60 46 61 4[76 52 2[30 2[54 1[63 60 1[62
3768+3[65 2[23 42 42 1[42 1[42 42 42 42 42 42 23 28 23 2[32
3769+32 5[42 20[46 46 12[{ TeXf7b6d320Encoding ReEncodeFont }59
3770+83.022 /CMR10 rf /Fl 134[71 71 2[75 52 53 55 1[75 67
3771+75 112 37 2[37 75 2[61 75 60 1[65 12[94 10[50 105 1[85
3772+88 16[67 67 67 67 49[{ TeXf7b6d320Encoding ReEncodeFont }26
3773+119.552 /CMBX12 rf /Fm 137[51 1[38 1[38 2[49 54 81 7[43
3774+2[54 14[54 4[73 12[73 8[49 3[49 1[49 1[49 3[27 32[57
3775+11[{ TeXf7b6d320Encoding ReEncodeFont }17 99.6264 /CMR12
3776+rf /Fn 134[70 3[73 51 52 51 1[73 66 73 111 36 2[36 73
3777+1[40 58 3[66 10[99 2[73 5[122 83 2[47 1[104 86 19[66
3778+66 2[36 43 45[{ TeXf7b6d320Encoding ReEncodeFont }26
3779+143.462 /CMR17 rf end
3780+%%EndProlog
3781+%%BeginSetup
3782+%%Feature: *Resolution 600dpi
3783+TeXDict begin
3784+%%BeginPaperSize: a4
3785+a4
3786+%%EndPaperSize
3787+ end
3788+%%EndSetup
3789+%%Page: 1 1
3790+TeXDict begin 1 0 bop 668 872 a Fn(Geometry)43 b(Input)h(File)f(F)-11
3791+b(ormat)43 b(for)f(LSMearth)h(-)1612 1054 y(V)-11 b(ersion)43
3792+b(1.2.)1699 1295 y Fm(Ste\013en)33 b(Ab)s(e)1565 1491
3793+y(No)m(v)m(em)m(b)s(er)h(8,)f(2004)515 1848 y Fl(1)134
3794+b(In)l(tro)t(duction)515 2030 y Fk(The)29 b(input)g(\014le)g(describ)r
3795+(ed)g(here)f(con)n(tains)g(only)g(the)h(description)f(of)h(the)g(mo)r
3796+(del)g(geom-)515 2130 y(etry)-7 b(.)63 b(The)36 b(material)g(prop)r
3797+(erties)f(of)i(the)f(particles)g(\(densit)n(y)h(.)14
3798+b(.)f(.)h(\))64 b(and)36 b(in)n(teractions)515 2229 y(\(spring)g
3799+(constan)n(t,)h(breaking)e(distance)h(.)14 b(.)g(.)g(\))64
3800+b(are)35 b(describ)r(ed)h(elsewhere,)i(either)e(in)g(a)515
3801+2329 y(separate)d(prop)r(erties)g(\014le)h(or)g(in)g(the)h(script)f
3802+Fj(TBD)p Fk(.)h(In)f(order)f(to)h(facilitate)g(this,)j(b)r(oth)515
3803+2428 y(particles)27 b(and)g(prede\014ned)g(connections/in)n(teractions)
3804+f(ha)n(v)n(e)g(tags.)515 2644 y Fi(Rationale:)639 2797
3805+y Fh(\017)41 b Fk(Mak)n(es)23 b(it)i(p)r(ossible)f(to)g(c)n(hange)f
3806+(the)h(prop)r(erties)f(indep)r(enden)n(tly)i(from)f(the)g(geome-)722
3807+2897 y(tries,)g(for)e(example)g(in)h(order)e(to)i(easily)f(run)g(a)g
3808+(suite)h(of)g(sim)n(ulation)f(with)h(iden)n(tical)722
3809+2997 y(geometries)j(but)j(v)-5 b(arying)26 b(material)h(prop)r(erties.)
3810+515 3179 y(The)41 b(input)h(\014les)g(are)e(pure)h(ASCI)r(I)i(\014les)e
3811+(formatted)g(in)h(the)g(w)n(a)n(y)e(describ)r(ed)h(in)h(the)515
3812+3279 y(follo)n(wing)26 b(sections.)515 3495 y Fi(Rationale:)639
3813+3648 y Fh(\017)41 b Fk(ASCI)r(I)35 b(is)g(preferred)e(o)n(v)n(er)g
3814+(binary)h(format)g(for)g(p)r(ortabilit)n(y)g(and)g(debuggabilit)n(y)722
3815+3748 y(reasons.)639 3914 y Fh(\017)41 b Fk(Using)28 b(some)f
3816+(\\standard")e(description)i(language,)f(i.e.)37 b(XML)28
3817+b(seems)816 4080 y Fi({)41 b Fk(unnecessary)32 b(as)g(the)h(\014les)g
3818+(are)g(mac)n(hine)f(generated)g(and)h(read,)h(whic)n(h)f(re-)905
3819+4179 y(duces)27 b(the)h(need)g(for)f(\015exibilit)n(y)h(and)f(v)n(erb)r
3820+(osit)n(y)816 4312 y Fi({)41 b Fk(a)28 b(sub)r(optimal)g(solution)g
3821+(with)h(resp)r(ect)f(to)g(\014le)g(size,)g(i.e.)39 b(a)28
3822+b(million)h(particle)905 4412 y(\014le)f(w)n(ould)f(gro)n(w)f(quite)i
3823+(large)e(if)i(XML)g(w)n(as)e(used)2538 4382 y Fg(1)p
3824+515 4481 1146 4 v 607 4535 a Ff(1)642 4558 y Fe(It)31
3825+b(w)n(ould)g(b)r(e)h(quite)f(large)g(an)n(yw)n(a)n(y)-6
3826+b(,)34 b(somewhere)d(around)h(40{50)g(b)n(yte)g(p)r(er)f(particle)g
3827+(and)h(15{20)515 4637 y(b)n(yte)26 b(p)r(er)e(connection,)j(i.e.)34
3828+b(a)25 b(\014le)f(describing)h(a)g(mo)r(del)g(consisting)g(of)f(10)2554
3829+4614 y Ff(6)2614 4637 y Fe(part)h(in)g(a)f(fully)g(connected)515
3830+4716 y(regular)30 b(3D)h(lattice)g(w)n(ould)g(ha)n(v)n(e)h(a)e(size)h
3831+(around)g(100MB.)g(So)g(w)n(e)g(ma)n(y)g(lo)r(ok)f(at)i(using)e
3832+(compressed)515 4795 y(\(libz,)23 b(libbz2\))h(\014les)g(at)g(some)g
3833+(later)g(stage.)1926 5255 y Fk(1)p eop end
3834+%%Page: 2 2
3835+TeXDict begin 2 1 bop 515 523 a Fl(2)134 b(The)45 b(File)g(F)-11
3836+b(ormat)515 705 y Fk(The)35 b(geometry)f(\014le)h(sp)r(eci\014es)g(the)
3837+h(o)n(v)n(erall)d(mo)r(del)i(geometry)-7 b(,)36 b(the)g(particle)f(p)r
3838+(ositions)515 805 y(and)i(geometries,)j(the)e(assignmen)n(t)f(of)h(the)
3839+g(particles)f(to)h(some)f(particle)h(groups)e(and)515
3840+904 y(the)d(initial)g(connectivit)n(y)g(b)r(et)n(w)n(een)g(particles,)h
3841+(i.e.)53 b(the)33 b(b)r(onds.)54 b(In)33 b(case)f(of)h(spherical)515
3842+1004 y(particles)27 b(the)g(p)r(er-particle)g(geometry)f(is)i(reduced)f
3843+(to)h(just)g(the)g(particle)f(radius.)515 1235 y Fd(2.1)112
3844+b(File)38 b(Structure)515 1388 y Fk(The)27 b(geometry)g(\014le)g
3845+(consist)h(of)f(a)g(header)g(and)g(3)h(con)n(ten)n(t)f(sections:)616
3846+1549 y(1.)41 b(The)34 b(\\mo)r(del)g(geometry")e(section)i(whic)n(h)g
3847+(con)n(tains)f(the)h(con)n(taining)f(v)n(olume\(s\))722
3848+1649 y(of)28 b(the)g(mo)r(del)g(and)f(de\014nition)h(of)g(circular)e
3849+(\(p)r(erio)r(dic\))i(b)r(oundary)f(conditions)616 1812
3850+y(2.)41 b(The)28 b(\\particles")e(section)616 1976 y(3.)41
3851+b(The)28 b(\\connections")e(section)515 2207 y Fd(2.2)112
3852+b(Header)515 2360 y Fk(The)33 b(header)g(just)i(con)n(tains)d(an)i
3853+(iden)n(ti\014er)f(for)g(the)i(\014le)e(t)n(yp)r(e)h(and)g(the)g(v)n
3854+(ersion)e(of)i(the)515 2460 y(\014le.)515 2620 y Fc(LSMGeometry)39
3855+b(1.2)515 2781 y Fk(where)27 b Fb(LSMGeometry)i Fk(is)e(the)h(iden)n
3856+(ti\014er)g(and)f Fb(1.2)g Fk(the)h(curren)n(t)e(v)n(ersion)g(n)n(um)n
3857+(b)r(er.)515 3013 y Fd(2.3)112 b(Mo)s(del)38 b(Geometry)515
3858+3166 y Fk(The)33 b(mo)r(del)g(geometry)f(section)g(con)n(tains)h(a)f
3859+(description)h(of)g(the)g(v)n(olume\(s\))g(in)g(whic)n(h)515
3860+3265 y(the)39 b(mo)r(del)h(is)f(con)n(tained,)i(a)e(de\014nition)g
3861+(whic)n(h)g(of)g(the)h(b)r(oundaries)e(of)h(this)h(v)n(olume)515
3862+3365 y(are)33 b(p)r(erio)r(dic)i(and)g(the)g(dimensionalit)n(y)f(of)g
3863+(the)h(mo)r(del.)59 b(In)35 b(the)g(curren)n(t)f(v)n(ersion)f(the)515
3864+3465 y(con)n(taining)e(v)n(olume)h(is)g(just)h(an)f(axis)g(aligned)g(b)
3865+r(ounding)g(b)r(o)n(x)g(whic)n(h)h(is)f(giv)n(en)g(b)n(y)g(the)515
3866+3564 y(co)r(ordinates)27 b(of)j(minim)n(um)g(and)f(maxim)n(um)g
3867+(corners.)40 b(The)29 b(b)r(oundaries)f(are)g(describ)r(ed)515
3868+3664 y(b)n(y)c(a)h(b)r(o)r(olean)g(v)-5 b(alue)24 b(\(0,1\))h(for)g
3869+(eac)n(h)f(co)r(ordinate)g(axis,)h(where)f(1)h(stands)f(for)h(p)r(erio)
3870+r(dic,)g(0)515 3764 y(for)30 b(non-p)r(erio)r(dic.)46
3871+b(The)31 b(distinction)g(b)r(et)n(w)n(een)g(2D)g(and)f(3D)h(mo)r(dels)g
3872+(is)g(done)f(b)r(et)n(w)n(een)515 3863 y(done)h(in)h(order)e(to)i(b)r
3873+(e)g(able)f(to)h(calculate)f(the)h(correct)e(v)n(olume)h(of)g(a)h
3874+(particle)f(from)g(its)515 3963 y(radius,)g(i.e.)47 b
3875+Fa(\031)s(r)1034 3933 y Fg(2)1103 3963 y Fk(vs.)1260
3876+3930 y Fg(4)p 1260 3944 34 4 v 1260 3991 a(3)1303 3963
3877+y Fa(\031)s(r)1392 3933 y Fg(3)1430 3963 y Fk(.)h(F)-7
3878+b(or)30 b(V)-7 b(ersion)30 b(1.1.)46 b(\014les)31 b(whic)n(h)g(ha)n(v)n
3879+(e)f(no)h(dimensionalit)n(y)515 4062 y(giv)n(en,)c(2D)g(is)h(assumed.)
3880+515 4223 y Fc(BoundingBox)39 b(min.x)i(min.y)h(min.z)f(max.x)h(max.y)f
3881+(max.z)515 4323 y(PeriodicBoundari)o(es)c(x)43 b(y)g(z)515
3882+4422 y(Dimensions)c([2D|3D])515 4654 y Fd(2.4)112 b(P)m(articles)515
3883+4807 y Fk(The)32 b(particle)f(section)h(of)g(the)g(geometry)f(\014le)h
3884+(con)n(tains)f(b)r(eginning)h(and)g(end)g(mark)n(ers,)515
3885+4907 y(a)h(k)n(eyw)n(ord)e(for)i(the)h(particle)f(t)n(yp)r(e,)i(i.e.)54
3886+b Fb(Simple)34 b Fk(for)e(simple)i(\(irrotational\))e(spherical)515
3887+5006 y(particles,)21 b(the)f(total)g(n)n(um)n(b)r(er)g(of)g(particles)g
3888+(and)g(a)g(set)g(of)g(data)g(for)f(eac)n(h)h(particle.)34
3889+b(In)20 b(case)1926 5255 y(2)p eop end
3890+%%Page: 3 3
3891+TeXDict begin 3 2 bop 515 523 a Fk(of)30 b(spherical)e(particles)i
3892+(these)f(data)h(consist)f(of)h(the)g(p)r(osition)g(\(v)n(ector\),)g
3893+(radius)f(\(\015oat\),)515 623 y(particle)24 b(id)g(\(in)n(t\))i(and)e
3894+(the)h(particle)f(tag)g(\(in)n(t\).)37 b(The)24 b(tag)g(is)h(used)f(to)
3895+g(assign)g(the)h(particle)515 722 y(to)i(sp)r(eci\014c)h(particle)f
3896+(groups.)515 888 y Fc(BeginParticles)515 988 y(Simple)515
3897+1088 y(nparticles)515 1187 y(pos0.x)41 b(pos0.y)g(pos0.z)g(rad0)h(id0)g
3898+(tag0)515 1287 y(pos1.x)f(pos1.y)g(pos1.z)g(rad1)h(id1)g(tag1)515
3899+1386 y(pos2.x)f(pos2.y)g(pos2.z)g(rad2)h(id2)g(tag2)515
3900+1486 y(...)515 1586 y(posN.x)f(posN.y)g(posN.z)g(radN)h(idN)g(tagN)515
3901+1685 y(EndParticles)515 1901 y Fi(2.4.1)93 b(P)m(article)33
3902+b(T)m(yp)s(es)p 515 1983 1637 4 v 513 2082 4 100 v 565
3903+2052 a Fk(k)n(eyw)n(ord)p 992 2082 V 177 w(description)p
3904+2149 2082 V 515 2085 1637 4 v 515 2102 V 513 2202 4 100
3905+v 565 2172 a(Simple)p 992 2202 V 235 w(irrotational)25
3906+b(spherical)i(particle)p 2149 2202 V 513 2301 V 565 2271
3907+a(SimpleRot)p 992 2301 V 100 w(rotational)f(spherical)g(particle)p
3908+2149 2301 V 515 2305 1637 4 v 515 2498 a Fd(2.5)112 b(Connectivit)m(y)
3909+515 2652 y Fk(A)25 b(list)h(of)f(prede\014ned)h(connections)e(b)r(et)n
3910+(w)n(een)i(particles)e(is)h(necessary)f(for)h(the)h(de\014nition)515
3911+2751 y(of)f(particle)f(in)n(teractions)g(whic)n(h)h(are)f(p)r(ersisten)
3912+n(t)h(and)g(not)g(dynamically)f(formed)h(during)515 2851
3913+y(the)20 b(sim)n(ulation,)h(i.e.)35 b(b)r(onds.)f(The)20
3914+b(connectivit)n(y)g(section)g(of)g(the)g(geometry)f(\014le)h(con)n
3915+(tains)515 2950 y(b)r(eginning)25 b(and)h(end)f(mark)n(ers,)f(the)i(n)n
3916+(um)n(b)r(er)f(of)h(connections)f(and)g(for)g(eac)n(h)g(connection)515
3917+3050 y(the)39 b(ids)f(\(in)n(t\))h(of)g(the)g(t)n(w)n(o)e(particles)h
3918+(in)n(v)n(olv)n(ed)f(and)h(a)g(tag)g(\(in)n(t\))h(whic)n(h)g(assigns)e
3919+(the)515 3150 y(connection)25 b(to)g(a)g(connection)g(group.)35
3920+b(The)25 b(pairs)f(of)i(particle)e(ids)i(m)n(ust)f(b)r(e)h(ordered)e
3921+(i.e.)515 3249 y(the)k(\014rst)f(id)h(m)n(ust)g(b)r(e)g(less)f(than)g
3922+(the)h(second)f(one.)515 3415 y Fc(BeginConnect)515 3515
3923+y(nconnect)515 3615 y(id0_1)41 b(id0_2)h(tag0)515 3714
3924+y(id1_1)f(id1_2)h(tag1)515 3814 y(id2_1)f(id2_2)h(tag2)515
3925+3913 y(...)515 4013 y(idN_1)f(idN_2)h(tagN)515 4113 y(EndConnect)515
3926+4279 y Fj(Should)30 b(we)g(de\014ne)f(the)h(syntax)f(for)h(n-p)l
3927+(article)g(\()p Fa(n)23 b(>)g Fk(2)p Fj(\))29 b(c)l(onne)l(ctions)g(or)
3928+h(le)l(ave)h(that)e(for)515 4378 y(later)h(versions?)515
3929+4653 y Fl(3)134 b(Example)515 4835 y Fk(Simple)24 b(example:)35
3930+b(b)r(oundaries)23 b(p)r(erio)r(dic)g(in)h(x,)h(op)r(en)f(in)g(y)f(and)
3931+h(z,)h(8)e(irrotational)f(spher-)515 4934 y(ical)32 b(particles)g(of)g
3932+(radius)g(1.0,)h(p)r(ositioned)g(at)f(the)h(corners)e(of)i(a)f(cub)r(e)
3933+h(and)f(connected)1926 5255 y(3)p eop end
3934+%%Page: 4 4
3935+TeXDict begin 4 3 bop 515 523 a Fk(along)23 b(the)i(edges)f(of)g(the)h
3936+(cub)r(e.)36 b(The)25 b(particles)e(are)h(group)r(ed)g(in)n(to)g(2)g
3937+(groups,)g(represen)n(t-)515 623 y(ing)k(the)i(particles)e(with)h
3938+Fa(y)f Fk(=)d(0)j(and)h Fa(y)f Fk(=)d(2)j(resp)r(ectiv)n(ely)-7
3939+b(.)40 b(The)29 b(tags)f(are)g(0)h(for)f Fa(y)g Fk(=)d(0)p
3940+Fa(:)p Fk(0)515 722 y(and)30 b(1)g(for)f Fa(y)i Fk(=)c(2)p
3941+Fa(:)p Fk(0.)44 b(The)30 b(connections)g(all)g(b)r(elong)g(to)g(the)g
3942+(same)g(group.)44 b Fi(Note:)d Fk(The)515 822 y(particle)25
3943+b(tags)f(and)h(the)h(connection)f(tags)f(are)h(indep)r(enden)n(t)h(of)f
3944+(eac)n(h)g(other,)g(i.e.)36 b(w)n(e)25 b(can)515 922
3945+y(use)i(\\0")f(as)h(a)h(connection)f(tag)g(ev)n(en)g(if)h(\\0")e(is)h
3946+(already)g(used)g(as)g(a)g(particle)g(tag.)515 1088 y
3947+Fc(LSMGeometry)39 b(1.2)515 1187 y(BoundingBox)g(-1.0)j(-1.0)g(-1.0)g
3948+(3.0)g(3.0)g(3.0)515 1287 y(PeriodicBoundari)o(es)37
3949+b(1)43 b(0)g(0)515 1386 y(Dimension)d(3D)515 1486 y(BeginParticles)515
3950+1586 y(Simple)515 1685 y(8)515 1785 y(0.0)i(0.0)g(0.0)h(1.0)f(0)h(0)515
3951+1885 y(0.0)f(0.0)g(1.0)h(1.0)f(1)h(0)515 1984 y(0.0)f(1.0)g(0.0)h(1.0)f
3952+(2)h(1)515 2084 y(0.0)f(1.0)g(1.0)h(1.0)f(3)h(1)515 2183
3953+y(1.0)f(0.0)g(0.0)h(1.0)f(4)h(0)515 2283 y(1.0)f(0.0)g(1.0)h(1.0)f(5)h
3954+(0)515 2383 y(1.0)f(1.0)g(0.0)h(1.0)f(6)h(1)515 2482
3955+y(1.0)f(1.0)g(1.0)h(1.0)f(7)h(1)515 2582 y(EndParticles)515
3956+2682 y(BeginConnect)515 2781 y(12)515 2881 y(0)g(1)g(0)515
3957+2980 y(0)g(2)g(0)515 3080 y(0)g(4)g(0)515 3180 y(1)g(3)g(0)515
3958+3279 y(1)g(5)g(0)515 3379 y(2)g(3)g(0)515 3479 y(2)g(6)g(0)515
3959+3578 y(3)g(7)g(0)515 3678 y(4)g(5)g(0)515 3778 y(4)g(6)g(0)515
3960+3877 y(5)g(7)g(0)515 3977 y(6)g(7)g(0)515 4076 y(EndConnect)515
3961+4351 y Fl(4)134 b(History)p 515 4468 2753 4 v 513 4568
3962+4 100 v 565 4538 a Fk(10.6.2003)p 949 4568 V 96 w(initial)28
3963+b(v)n(ersion)p 3265 4568 V 513 4667 V 565 4637 a(11.9.2003)p
3964+949 4667 V 96 w(v)n(ersion)e(1.1)h(,)g(c)n(hanged)g(from)g(m)n(ultiple)
3965+h(to)g(single)f(tag)g(for)g(particles)p 3265 4667 V 513
3966+4767 V 606 4737 a(3.2.2004)p 949 4767 V 97 w(v)n(ersion)f(1.2.,)h
3967+(added)g(2D/3D)g(indication)p 3265 4767 V 515 4770 2753
3968+4 v 1926 5255 a(4)p eop end
3969+%%Trailer
3970+
3971+userdict /end-hook known{end-hook}if
3972+%%EOF
3973
3974=== added file 'trunk/Doc/FileFormat.tex'
3975--- trunk/Doc/FileFormat.tex 1970-01-01 00:00:00 +0000
3976+++ trunk/Doc/FileFormat.tex 2013-05-08 08:43:26 +0000
3977@@ -0,0 +1,144 @@
3978+\documentclass{article}
3979+
3980+\begin{document}
3981+\title{Geometry Input File Format for ESyS-Particle - Version 2.0.}
3982+\author{Steffen Abe}
3983+\date{\today}
3984+\maketitle
3985+
3986+\section{Introduction}
3987+The input file described here contains only the description of the model geometry. The material properties of the particles (density \dots) and interactions (spring constant, breaking distance \dots) are described elsewhere, either in a separate properties file or in the script \textit{TBD}. In order to facilitate this, both particles and predefined connections/interactions have tags.
3988+\subsubsection*{Rationale:}
3989+\begin{itemize}
3990+\item Makes it possible to change the properties
3991+independently from the geometries, for example in order to easily run a suite of simulation with identical geometries but varying material properties.
3992+\end{itemize}
3993+The input files are pure ASCII files formatted in the way described in the following sections.
3994+\subsubsection*{Rationale:}
3995+\begin{itemize}
3996+\item ASCII is preferred over binary format for portability and debuggability reasons.
3997+\item Using some ``standard'' description language, i.e. XML seems
3998+ \begin{itemize}
3999+ \item unnecessary as the files are machine generated and read, which reduces the need for flexibility and verbosity
4000+ \item a suboptimal solution with respect to file size, i.e. a million particle file would grow quite large if XML was used \footnote{It would be quite large anyway, somewhere around 40--50 byte per particle and 15--20 byte per connection, i.e. a file describing a model consisting of $10^6$ part in a fully connected regular 3D lattice would have a size around 100MB. So we may look at using compressed (libz, libbz2) files at some later stage.}
4001+ \end{itemize}
4002+\end{itemize}
4003+
4004+
4005+\section{The File Format}
4006+
4007+The geometry file specifies the overall model geometry, the particle positions and geometries, the assignment of the particles to some particle groups and the initial connectivity between particles, i.e. the bonds. In case of spherical particles the per-particle geometry is reduced to just the particle radius.
4008+\subsection{File Structure}
4009+The geometry file consist of a header and 3 content sections:
4010+\begin{enumerate}
4011+\item The ``model geometry'' section which contains the containing volume(s) of the model and definition of circular (periodic) boundary conditions
4012+\item The ``particles'' section
4013+\item The ``connections'' section
4014+\end{enumerate}
4015+\subsection{Header}
4016+The header just contains an identifier for the file type and the version of the file.
4017+\begin{verbatim}
4018+LSMGeometry 1.2
4019+\end{verbatim}
4020+where \textsf{LSMGeometry} is the identifier and \textsf{1.2} the current version number.
4021+
4022+
4023+\subsection{Model Geometry}
4024+
4025+The model geometry section contains a description of the volume(s) in which the model is contained, a definition which of the boundaries of this volume are periodic and the dimensionality of the model. In the current version the containing volume is just an axis aligned bounding box which is given by the coordinates of minimum and maximum corners. The boundaries are described by a boolean value (0,1) for each coordinate axis, where 1 stands for periodic, 0 for non-periodic. The distinction between 2D and 3D models is done between done in order to be able to calculate the correct volume of a particle from its radius, i.e. $\pi r^2$ vs. ${4 \over 3} \pi r^3$. For Version 1.1. files which have no dimensionality given, 2D is assumed.
4026+\begin{verbatim}
4027+BoundingBox min.x min.y min.z max.x max.y max.z
4028+PeriodicBoundaries x y z
4029+Dimensions [2D|3D]
4030+\end{verbatim}
4031+
4032+
4033+\subsection{Particles}
4034+
4035+The particle section of the geometry file contains beginning and end markers, a keyword for the particle type, i.e. \textsf{Simple} for simple (irrotational) spherical particles, the total number of particles and a set of data for each particle. In case of spherical particles these data consist of the position (vector), radius (float), particle id (int) and the particle tag (int). The tag is used to assign the particle to specific particle groups.
4036+\begin{verbatim}
4037+BeginParticles
4038+Simple
4039+nparticles
4040+pos0.x pos0.y pos0.z rad0 id0 tag0
4041+pos1.x pos1.y pos1.z rad1 id1 tag1
4042+pos2.x pos2.y pos2.z rad2 id2 tag2
4043+...
4044+posN.x posN.y posN.z radN idN tagN
4045+EndParticles
4046+\end{verbatim}
4047+\subsubsection{Particle Types}
4048+\begin{tabular}[h!]{|l|l|}
4049+\hline
4050+keyword & description \\
4051+\hline
4052+\hline
4053+Simple & irrotational spherical particle \\
4054+%SimpleRot & rotational spherical particle \\
4055+\hline
4056+\end{tabular}
4057+
4058+
4059+\subsection{Connectivity}
4060+
4061+A list of predefined connections between particles is necessary for the definition of particle interactions which are persistent and not dynamically formed during the simulation, i.e. bonds. The connectivity section of the geometry file contains beginning and end markers, the number of connections and for each connection the ids (int) of the two particles involved and a tag (int) which assigns the connection to a connection group. The pairs of particle ids must be ordered i.e. the first id must be less than the second one.
4062+\begin{verbatim}
4063+BeginConnect
4064+nconnect
4065+id0_1 id0_2 tag0
4066+id1_1 id1_2 tag1
4067+id2_1 id2_2 tag2
4068+...
4069+idN_1 idN_2 tagN
4070+EndConnect
4071+\end{verbatim}
4072+\textit{Should we define the syntax for n-particle ($n>2$) connections or leave that for later versions?}
4073+\label{sec:prp}
4074+\section{Example}
4075+Simple example: boundaries periodic in x, open in y and z, 8 irrotational spherical particles of radius 1.0, positioned at the corners of a cube and connected along the edges of the cube. The particles are grouped into 2 groups, representing the particles with $y=0$ and $y=2$ respectively. The tags are 0 for $y=0.0$ and 1 for $y=2.0$. The connections all belong to the same group. \textbf{Note:} The particle tags and the connection tags are independent of each other, i.e. we can use ``0'' as a connection tag even if ``0'' is already used as a particle tag.
4076+%%\newpage
4077+\begin{verbatim}
4078+LSMGeometry 1.2
4079+BoundingBox -1.0 -1.0 -1.0 3.0 3.0 3.0
4080+PeriodicBoundaries 1 0 0
4081+Dimension 3D
4082+BeginParticles
4083+Simple
4084+8
4085+0.0 0.0 0.0 1.0 0 0
4086+0.0 0.0 1.0 1.0 1 0
4087+0.0 1.0 0.0 1.0 2 1
4088+0.0 1.0 1.0 1.0 3 1
4089+1.0 0.0 0.0 1.0 4 0
4090+1.0 0.0 1.0 1.0 5 0
4091+1.0 1.0 0.0 1.0 6 1
4092+1.0 1.0 1.0 1.0 7 1
4093+EndParticles
4094+BeginConnect
4095+12
4096+0 1 0
4097+0 2 0
4098+0 4 0
4099+1 3 0
4100+1 5 0
4101+2 3 0
4102+2 6 0
4103+3 7 0
4104+4 5 0
4105+4 6 0
4106+5 7 0
4107+6 7 0
4108+EndConnect
4109+\end{verbatim}
4110+
4111+
4112+\section{History}
4113+\begin{tabular}{|r|l|}
4114+\hline
4115+10.6.2003 & initial version \\
4116+11.9.2003 & version 1.1 , changed from multiple to single tag for particles \\
4117+3.2.2004 & version 1.2., added 2D/3D indication \\
4118+17.2.2011 & SimpleRot is no longer supported by ESyS-Particle, with the Simple particle type now encompassing both rotational and irrotational particles
4119+\hline
4120+\end{tabular}
4121+\end{document}
4122
4123=== added file 'trunk/Doc/FileFormat.txt'
4124--- trunk/Doc/FileFormat.txt 1970-01-01 00:00:00 +0000
4125+++ trunk/Doc/FileFormat.txt 2013-05-08 08:43:26 +0000
4126@@ -0,0 +1,11 @@
4127+
4128+
4129+Input File Format for ESyS-Particle
4130+
4131+
4132+v0.01, 10.06.2003
4133+-------------------
4134+
4135+The input is split into 2 Files, one for geometry (.geo), one for material
4136+properties (.prp). Rationale: Makes it possible to exchange the properties
4137+independently from the
4138
4139=== added directory 'trunk/Doc/Manual'
4140=== added file 'trunk/Doc/Manual/distutils.sty'
4141--- trunk/Doc/Manual/distutils.sty 1970-01-01 00:00:00 +0000
4142+++ trunk/Doc/Manual/distutils.sty 2013-05-08 08:43:26 +0000
4143@@ -0,0 +1,33 @@
4144+%
4145+% LaTeX commands and macros needed for the two Distutils manuals,
4146+% inst.tex and dist.tex.
4147+%
4148+% $Id$
4149+%
4150+
4151+% My gripe list about the Python style files:
4152+% * I want italics in verbatim environments for variable
4153+% text (verbatim.sty?)
4154+% * I hate escaping underscores (url.sty fixes this)
4155+
4156+% '\command' is for Distutils commands which, depending on your
4157+% perspective, are just arguments to the setup script, or sub-
4158+% commands of the setup script, or the classes that implement
4159+% each "command".
4160+\newcommand{\command}[1]{\code{#1}}
4161+
4162+% '\option' is for Distutils options *in* the setup script. Command-
4163+% line options *to* the setup script are marked up in the usual
4164+% way, ie. with '\programopt' or '\longprogramopt'
4165+\newcommand{\option}[1]{\textsf{\small{#1}}}
4166+
4167+% '\filevar' is for variable components of file/path names -- eg.
4168+% when you put 'prefix' in a pathname, you mark it up with
4169+% '\filevar' so that it still looks pathname-ish, but is
4170+% distinguished from the literal part of the path. Fred says
4171+% this can be accomplished just fine with '\var', but I violently
4172+% disagree. Pistols at dawn will sort this one out.
4173+\newcommand{\filevar}[1]{{\textsl{\filenq{#1}}}}
4174+
4175+% Just while the code and docs are still under development.
4176+\newcommand{\XXX}[1]{\textbf{**#1**}}
4177
4178=== added file 'trunk/Doc/Manual/dump-file.tex'
4179--- trunk/Doc/Manual/dump-file.tex 1970-01-01 00:00:00 +0000
4180+++ trunk/Doc/Manual/dump-file.tex 2013-05-08 08:43:26 +0000
4181@@ -0,0 +1,2 @@
4182+\chapter{The Checkpoint Data Format}
4183+\label{app::dump}
4184
4185=== added file 'trunk/Doc/Manual/fancyhdr.sty'
4186--- trunk/Doc/Manual/fancyhdr.sty 1970-01-01 00:00:00 +0000
4187+++ trunk/Doc/Manual/fancyhdr.sty 2013-05-08 08:43:26 +0000
4188@@ -0,0 +1,329 @@
4189+% fancyhdr.sty version 1.99d
4190+% Fancy headers and footers for LaTeX.
4191+% Piet van Oostrum, Dept of Computer Science, University of Utrecht
4192+% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands
4193+% Telephone: +31 30 2532180. Email: piet@cs.ruu.nl
4194+% ========================================================================
4195+% LICENCE: This is free software. You are allowed to use and distribute
4196+% this software in any way you like. You are also allowed to make modified
4197+% versions of it, but you can distribute a modified version only if you
4198+% clearly indicate that it is a modified version and the person(s) who
4199+% modified it. This indication should be in a prominent place, e.g. in the
4200+% top of the file. If possible a contact address, preferably by email,
4201+% should be given for these persons. If that is feasible the modifications
4202+% should be indicated in the source code.
4203+% ========================================================================
4204+% MODIFICATION HISTORY:
4205+% Sep 16, 1994
4206+% version 1.4: Correction for use with \reversemargin
4207+% Sep 29, 1994:
4208+% version 1.5: Added the \iftopfloat, \ifbotfloat and \iffloatpage commands
4209+% Oct 4, 1994:
4210+% version 1.6: Reset single spacing in headers/footers for use with
4211+% setspace.sty or doublespace.sty
4212+% Oct 4, 1994:
4213+% version 1.7: changed \let\@mkboth\markboth to
4214+% \def\@mkboth{\protect\markboth} to make it more robust
4215+% Dec 5, 1994:
4216+% version 1.8: corrections for amsbook/amsart: define \@chapapp and (more
4217+% importantly) use the \chapter/sectionmark definitions from ps@headings if
4218+% they exist (which should be true for all standard classes).
4219+% May 31, 1995:
4220+% version 1.9: The proposed \renewcommand{\headrulewidth}{\iffloatpage...
4221+% construction in the doc did not work properly with the fancyplain style.
4222+% June 1, 1995:
4223+% version 1.91: The definition of \@mkboth wasn't restored on subsequent
4224+% \pagestyle{fancy}'s.
4225+% June 1, 1995:
4226+% version 1.92: The sequence \pagestyle{fancyplain} \pagestyle{plain}
4227+% \pagestyle{fancy} would erroneously select the plain version.
4228+% June 1, 1995:
4229+% version 1.93: \fancypagestyle command added.
4230+% Dec 11, 1995:
4231+% version 1.94: suggested by Conrad Hughes <chughes@maths.tcd.ie>
4232+% CJCH, Dec 11, 1995: added \footruleskip to allow control over footrule
4233+% position (old hardcoded value of .3\normalbaselineskip is far too high
4234+% when used with very small footer fonts).
4235+% Jan 31, 1996:
4236+% version 1.95: call \@normalsize in the reset code if that is defined,
4237+% otherwise \normalsize.
4238+% this is to solve a problem with ucthesis.cls, as this doesn't
4239+% define \@currsize. Unfortunately for latex209 calling \normalsize doesn't
4240+% work as this is optimized to do very little, so there \@normalsize should
4241+% be called. Hopefully this code works for all versions of LaTeX known to
4242+% mankind.
4243+% April 25, 1996:
4244+% version 1.96: initialize \headwidth to a magic (negative) value to catch
4245+% most common cases that people change it before calling \pagestyle{fancy}.
4246+% Note it can't be initialized when reading in this file, because
4247+% \textwidth could be changed afterwards. This is quite probable.
4248+% We also switch to \MakeUppercase rather than \uppercase and introduce a
4249+% \nouppercase command for use in headers. and footers.
4250+% May 3, 1996:
4251+% version 1.97: Two changes:
4252+% 1. Undo the change in version 1.8 (using the pagestyle{headings} defaults
4253+% for the chapter and section marks. The current version of amsbook and
4254+% amsart classes don't seem to need them anymore. Moreover the standard
4255+% latex classes don't use \markboth if twoside isn't selected, and this is
4256+% confusing as \leftmark doesn't work as expected.
4257+% 2. include a call to \ps@empty in ps@@fancy. This is to solve a problem
4258+% in the amsbook and amsart classes, that make global changes to \topskip,
4259+% which are reset in \ps@empty. Hopefully this doesn't break other things.
4260+% May 7, 1996:
4261+% version 1.98:
4262+% Added % after the line \def\nouppercase
4263+% May 7, 1996:
4264+% version 1.99: This is the alpha version of fancyhdr 2.0
4265+% Introduced the new commands \fancyhead, \fancyfoot, and \fancyhf.
4266+% Changed \headrulewidth, \footrulewidth, \footruleskip to
4267+% macros rather than length parameters, In this way they can be
4268+% conditionalized and they don't consume length registers. There is no need
4269+% to have them as length registers unless you want to do calculations with
4270+% them, which is unlikely. Note that this may make some uses of them
4271+% incompatible (i.e. if you have a file that uses \setlength or \xxxx=)
4272+% May 10, 1996:
4273+% version 1.99a:
4274+% Added a few more % signs
4275+% May 10, 1996:
4276+% version 1.99b:
4277+% Changed the syntax of \f@nfor to be resistent to catcode changes of :=
4278+% Removed the [1] from the defs of \lhead etc. because the parameter is
4279+% consumed by the \@[xy]lhead etc. macros.
4280+% June 24, 1997:
4281+% version 1.99c:
4282+% corrected \nouppercase to also include the protected form of \MakeUppercase
4283+% \global added to manipulation of \headwidth.
4284+% \iffootnote command added.
4285+% Some comments added about \@fancyhead and \@fancyfoot.
4286+% Aug 24, 1998
4287+% version 1.99d
4288+% Changed the default \ps@empty to \ps@@empty in order to allow
4289+% \fancypagestyle{empty} redefinition.
4290+
4291+\let\fancy@def\gdef
4292+
4293+\def\if@mpty#1#2#3{\def\temp@ty{#1}\ifx\@empty\temp@ty #2\else#3\fi}
4294+
4295+% Usage: \@forc \var{charstring}{command to be executed for each char}
4296+% This is similar to LaTeX's \@tfor, but expands the charstring.
4297+
4298+\def\@forc#1#2#3{\expandafter\f@rc\expandafter#1\expandafter{#2}{#3}}
4299+\def\f@rc#1#2#3{\def\temp@ty{#2}\ifx\@empty\temp@ty\else
4300+ \f@@rc#1#2\f@@rc{#3}\fi}
4301+\def\f@@rc#1#2#3\f@@rc#4{\def#1{#2}#4\f@rc#1{#3}{#4}}
4302+
4303+% Usage: \f@nfor\name:=list\do{body}
4304+% Like LaTeX's \@for but an empty list is treated as a list with an empty
4305+% element
4306+
4307+\newcommand{\f@nfor}[3]{\edef\@fortmp{#2}%
4308+ \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}}
4309+
4310+% Usage: \def@ult \cs{defaults}{argument}
4311+% sets \cs to the characters from defaults appearing in argument
4312+% or defaults if it would be empty. All characters are lowercased.
4313+
4314+\newcommand\def@ult[3]{%
4315+ \edef\temp@a{\lowercase{\edef\noexpand\temp@a{#3}}}\temp@a
4316+ \def#1{}%
4317+ \@forc\tmpf@ra{#2}%
4318+ {\expandafter\if@in\tmpf@ra\temp@a{\edef#1{#1\tmpf@ra}}{}}%
4319+ \ifx\@empty#1\def#1{#2}\fi}
4320+%
4321+% \if@in <char><set><truecase><falsecase>
4322+%
4323+\newcommand{\if@in}[4]{%
4324+ \edef\temp@a{#2}\def\temp@b##1#1##2\temp@b{\def\temp@b{##1}}%
4325+ \expandafter\temp@b#2#1\temp@b\ifx\temp@a\temp@b #4\else #3\fi}
4326+
4327+\newcommand{\fancyhead}{\@ifnextchar[{\f@ncyhf h}{\f@ncyhf h[]}}
4328+\newcommand{\fancyfoot}{\@ifnextchar[{\f@ncyhf f}{\f@ncyhf f[]}}
4329+\newcommand{\fancyhf}{\@ifnextchar[{\f@ncyhf {}}{\f@ncyhf {}[]}}
4330+
4331+% The header and footer fields are stored in command sequences with
4332+% names of the form: \f@ncy<x><y><z> with <x> for [eo], <y> form [lcr]
4333+% and <z> from [hf].
4334+
4335+\def\f@ncyhf#1[#2]#3{%
4336+ \def\temp@c{}%
4337+ \@forc\tmpf@ra{#2}%
4338+ {\expandafter\if@in\tmpf@ra{eolcrhf,EOLCRHF}%
4339+ {}{\edef\temp@c{\temp@c\tmpf@ra}}}%
4340+ \ifx\@empty\temp@c\else
4341+ \ifx\PackageError\undefined
4342+ \errmessage{Illegal char `\temp@c' in fancyhdr argument:
4343+ [#2]}\else
4344+ \PackageError{Fancyhdr}{Illegal char `\temp@c' in fancyhdr argument:
4345+ [#2]}{}\fi
4346+ \fi
4347+ \f@nfor\temp@c{#2}%
4348+ {\def@ult\f@@@eo{eo}\temp@c
4349+ \def@ult\f@@@lcr{lcr}\temp@c
4350+ \def@ult\f@@@hf{hf}{#1\temp@c}%
4351+ \@forc\f@@eo\f@@@eo
4352+ {\@forc\f@@lcr\f@@@lcr
4353+ {\@forc\f@@hf\f@@@hf
4354+ {\expandafter\fancy@def\csname
4355+ f@ncy\f@@eo\f@@lcr\f@@hf\endcsname
4356+ {#3}}}}}}
4357+
4358+% Fancyheadings version 1 commands. These are more or less deprecated,
4359+% but they continue to work.
4360+
4361+\newcommand{\lhead}{\@ifnextchar[{\@xlhead}{\@ylhead}}
4362+\def\@xlhead[#1]#2{\fancy@def\f@ncyelh{#1}\fancy@def\f@ncyolh{#2}}
4363+\def\@ylhead#1{\fancy@def\f@ncyelh{#1}\fancy@def\f@ncyolh{#1}}
4364+
4365+\newcommand{\chead}{\@ifnextchar[{\@xchead}{\@ychead}}
4366+\def\@xchead[#1]#2{\fancy@def\f@ncyech{#1}\fancy@def\f@ncyoch{#2}}
4367+\def\@ychead#1{\fancy@def\f@ncyech{#1}\fancy@def\f@ncyoch{#1}}
4368+
4369+\newcommand{\rhead}{\@ifnextchar[{\@xrhead}{\@yrhead}}
4370+\def\@xrhead[#1]#2{\fancy@def\f@ncyerh{#1}\fancy@def\f@ncyorh{#2}}
4371+\def\@yrhead#1{\fancy@def\f@ncyerh{#1}\fancy@def\f@ncyorh{#1}}
4372+
4373+\newcommand{\lfoot}{\@ifnextchar[{\@xlfoot}{\@ylfoot}}
4374+\def\@xlfoot[#1]#2{\fancy@def\f@ncyelf{#1}\fancy@def\f@ncyolf{#2}}
4375+\def\@ylfoot#1{\fancy@def\f@ncyelf{#1}\fancy@def\f@ncyolf{#1}}
4376+
4377+\newcommand{\cfoot}{\@ifnextchar[{\@xcfoot}{\@ycfoot}}
4378+\def\@xcfoot[#1]#2{\fancy@def\f@ncyecf{#1}\fancy@def\f@ncyocf{#2}}
4379+\def\@ycfoot#1{\fancy@def\f@ncyecf{#1}\fancy@def\f@ncyocf{#1}}
4380+
4381+\newcommand{\rfoot}{\@ifnextchar[{\@xrfoot}{\@yrfoot}}
4382+\def\@xrfoot[#1]#2{\fancy@def\f@ncyerf{#1}\fancy@def\f@ncyorf{#2}}
4383+\def\@yrfoot#1{\fancy@def\f@ncyerf{#1}\fancy@def\f@ncyorf{#1}}
4384+
4385+\newdimen\headwidth
4386+\newcommand{\headrulewidth}{0.4pt}
4387+\newcommand{\footrulewidth}{\z@skip}
4388+\newcommand{\footruleskip}{.3\normalbaselineskip}
4389+
4390+% Fancyplain stuff shouldn't be used anymore (rather
4391+% \fancypagestyle{plain} should be used), but it must be present for
4392+% compatibility reasons.
4393+
4394+\newcommand{\plainheadrulewidth}{\z@skip}
4395+\newcommand{\plainfootrulewidth}{\z@skip}
4396+\newif\if@fancyplain \@fancyplainfalse
4397+\def\fancyplain#1#2{\if@fancyplain#1\else#2\fi}
4398+
4399+\headwidth=-123456789sp %magic constant
4400+
4401+% Command to reset various things in the headers:
4402+% a.o. single spacing (taken from setspace.sty)
4403+% and the catcode of ^^M (so that epsf files in the header work if a
4404+% verbatim crosses a page boundary)
4405+% It also defines a \nouppercase command that disables \uppercase and
4406+% \Makeuppercase. It can only be used in the headers and footers.
4407+\def\fancy@reset{\restorecr
4408+ \def\baselinestretch{1}%
4409+ \def\nouppercase##1{{\let\uppercase\relax\let\MakeUppercase\relax
4410+ \expandafter\let\csname MakeUppercase \endcsname\relax##1}}%
4411+ \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
4412+ \ifx\@normalsize\undefined \normalsize % for ucthesis.cls
4413+ \else \@normalsize \fi
4414+ \else% NFSS (2.09) present
4415+ \@newbaseline%
4416+ \fi}
4417+
4418+% Initialization of the head and foot text.
4419+
4420+% The default values still contain \fancyplain for compatibility.
4421+\fancyhf{} % clear all
4422+% lefthead empty on ``plain'' pages, \rightmark on even, \leftmark on odd pages
4423+% evenhead empty on ``plain'' pages, \leftmark on even, \rightmark on odd pages
4424+\fancyhead[el,or]{\fancyplain{}{\sl\rightmark}}
4425+\fancyhead[er,ol]{\fancyplain{}{\sl\leftmark}}
4426+\fancyfoot[c]{\rm\thepage} % page number
4427+
4428+% Put together a header or footer given the left, center and
4429+% right text, fillers at left and right and a rule.
4430+% The \lap commands put the text into an hbox of zero size,
4431+% so overlapping text does not generate an errormessage.
4432+% These macros have 5 parameters:
4433+% 1. \@lodd or \@rodd % This determines at which side the header will stick
4434+% out.
4435+% 2. \f@ncyolh, \f@ncyelh, \f@ncyolf or \f@ncyelf. This is the left component.
4436+% 3. \f@ncyoch, \f@ncyech, \f@ncyocf or \f@ncyecf. This is the middle comp.
4437+% 4. \f@ncyorh, \f@ncyerh, \f@ncyorf or \f@ncyerf. This is the right component.
4438+% 5. \@lodd or \@rodd % This determines at which side the header will stick
4439+% out. This is the reverse of parameter nr. 1. One of them is always
4440+% \relax and the other one is \hss (after expansion).
4441+
4442+\def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\hbox
4443+{\rlap{\parbox[b]{\headwidth}{\raggedright#2\strut}}\hfill
4444+\parbox[b]{\headwidth}{\centering#3\strut}\hfill
4445+\llap{\parbox[b]{\headwidth}{\raggedleft#4\strut}}}\headrule}}#5}
4446+
4447+\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\footrule
4448+\hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2\strut}}\hfill
4449+\parbox[t]{\headwidth}{\centering#3\strut}\hfill
4450+\llap{\parbox[t]{\headwidth}{\raggedleft#4\strut}}}}}#5}
4451+
4452+\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi
4453+\hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}}
4454+
4455+\def\footrule{{\if@fancyplain\let\footrulewidth\plainfootrulewidth\fi
4456+\vskip-\footruleskip\vskip-\footrulewidth
4457+\hrule\@width\headwidth\@height\footrulewidth\vskip\footruleskip}}
4458+
4459+\def\ps@fancy{%
4460+\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%for amsbook
4461+%
4462+% Define \MakeUppercase for old LaTeXen.
4463+% Note: we used \def rather than \let, so that \let\uppercase\relax (from
4464+% the version 1 documentation) will still work.
4465+%
4466+\@ifundefined{MakeUppercase}{\def\MakeUppercase{\uppercase}}{}%
4467+\@ifundefined{chapter}{\def\sectionmark##1{\markboth
4468+{\MakeUppercase{\ifnum \c@secnumdepth>\z@
4469+ \thesection\hskip 1em\relax \fi ##1}}{}}%
4470+\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne
4471+ \thesubsection\hskip 1em\relax \fi ##1}}}%
4472+{\def\chaptermark##1{\markboth {\MakeUppercase{\ifnum \c@secnumdepth>\m@ne
4473+ \@chapapp\ \thechapter. \ \fi ##1}}{}}%
4474+\def\sectionmark##1{\markright{\MakeUppercase{\ifnum \c@secnumdepth >\z@
4475+ \thesection. \ \fi ##1}}}}%
4476+%\csname ps@headings\endcsname % use \ps@headings defaults if they exist
4477+\ps@@fancy
4478+\gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}%
4479+% Initialize \headwidth if the user didn't
4480+%
4481+\ifdim\headwidth<0sp
4482+%
4483+% This catches the case that \headwidth hasn't been initialized and the
4484+% case that the user added something to \headwidth in the expectation that
4485+% it was initialized to \textwidth. We compensate this now. This loses if
4486+% the user intended to multiply it by a factor. But that case is more
4487+% likely done by saying something like \headwidth=1.2\textwidth.
4488+% The doc says you have to change \headwidth after the first call to
4489+% \pagestyle{fancy}. This code is just to catch the most common cases were
4490+% that requirement is violated.
4491+%
4492+ \global\advance\headwidth123456789sp\global\advance\headwidth\textwidth
4493+\fi}
4494+\def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy}
4495+\def\ps@plain@fancy{\@fancyplaintrue\ps@@fancy}
4496+\let\ps@@empty\ps@empty
4497+\def\ps@@fancy{%
4498+\ps@@empty % This is for amsbook/amsart, which do strange things with \topskip
4499+\def\@mkboth{\protect\markboth}%
4500+\def\@oddhead{\@fancyhead\@lodd\f@ncyolh\f@ncyoch\f@ncyorh\@rodd}%
4501+\def\@oddfoot{\@fancyfoot\@lodd\f@ncyolf\f@ncyocf\f@ncyorf\@rodd}%
4502+\def\@evenhead{\@fancyhead\@rodd\f@ncyelh\f@ncyech\f@ncyerh\@lodd}%
4503+\def\@evenfoot{\@fancyfoot\@rodd\f@ncyelf\f@ncyecf\f@ncyerf\@lodd}%
4504+}
4505+\def\@lodd{\if@reversemargin\hss\else\relax\fi}
4506+\def\@rodd{\if@reversemargin\relax\else\hss\fi}
4507+
4508+\newif\iffootnote
4509+\let\latex@makecol\@makecol
4510+\def\@makecol{\ifvoid\footins\footnotetrue\else\footnotefalse\fi
4511+\let\topfloat\@toplist\let\botfloat\@botlist\latex@makecol}
4512+\def\iftopfloat#1#2{\ifx\topfloat\empty #2\else #1\fi}
4513+\def\ifbotfloat#1#2{\ifx\botfloat\empty #2\else #1\fi}
4514+\def\iffloatpage#1#2{\if@fcolmade #1\else #2\fi}
4515+
4516+\newcommand{\fancypagestyle}[2]{%
4517+ \@namedef{ps@#1}{\let\fancy@def\def#2\relax\ps@fancy}}
4518
4519=== added file 'trunk/Doc/Manual/fncychap.sty'
4520--- trunk/Doc/Manual/fncychap.sty 1970-01-01 00:00:00 +0000
4521+++ trunk/Doc/Manual/fncychap.sty 2013-05-08 08:43:26 +0000
4522@@ -0,0 +1,433 @@
4523+%%% Derived from the original fncychap.sty,
4524+%%% but changed ``TWELV'' to ``TWELVE''.
4525+
4526+%%% Copyright Ulf A. Lindgren
4527+%%% Department of Applied Electronics
4528+%%% Chalmers University of Technology
4529+%%% S-412 96 Gothenburg, Sweden
4530+%%% E-mail lindgren@ae.chalmers.se
4531+%%%
4532+%%% Note Permission is granted to modify this file under
4533+%%% the condition that it is saved using another
4534+%%% file and package name.
4535+%%%
4536+%%% Revision 1.1
4537+%%%
4538+%%% Jan. 8th Modified package name base date option
4539+%%% Jan. 22th Modified FmN and FmTi for error in book.cls
4540+%%% \MakeUppercase{#}->{\MakeUppercase#}
4541+%%% Apr. 6th Modified Lenny option to prevent undesired
4542+%%% skip of line.
4543+%%% Nov. 8th Fixed \@chapapp for AMS
4544+%%% Feb. 11th Fixed appendix problem related to Bjarne
4545+%%% Last modified Feb. 11th 1998
4546+
4547+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
4548+\ProvidesPackage{fncychap}
4549+ [1997/04/06 v1.11
4550+ LaTeX package (Revised chapters)]
4551+
4552+%%%% DEFINITION OF Chapapp variables
4553+\newcommand{\CNV}{\huge\bfseries}
4554+\newcommand{\ChNameVar}[1]{\renewcommand{\CNV}{#1}}
4555+
4556+
4557+%%%% DEFINITION OF TheChapter variables
4558+\newcommand{\CNoV}{\huge\bfseries}
4559+\newcommand{\ChNumVar}[1]{\renewcommand{\CNoV}{#1}}
4560+
4561+\newif\ifUCN
4562+\UCNfalse
4563+\newif\ifLCN
4564+\LCNfalse
4565+\def\ChNameLowerCase{\LCNtrue\UCNfalse}
4566+\def\ChNameUpperCase{\UCNtrue\LCNfalse}
4567+\def\ChNameAsIs{\UCNfalse\LCNfalse}
4568+
4569+%%%%% Fix for AMSBook 971008
4570+
4571+\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}
4572+
4573+
4574+%%%%% Fix for Bjarne and appendix 980211
4575+
4576+\newif\ifinapp
4577+\inappfalse
4578+\renewcommand\appendix{\par
4579+ \setcounter{chapter}{0}%
4580+ \setcounter{section}{0}%
4581+ \inapptrue%
4582+ \renewcommand\@chapapp{\appendixname}%
4583+ \renewcommand\thechapter{\@Alph\c@chapter}}
4584+
4585+%%%%%
4586+
4587+\newcommand{\FmN}[1]{%
4588+\ifUCN
4589+ {\MakeUppercase#1}\LCNfalse
4590+\else
4591+ \ifLCN
4592+ {\MakeLowercase#1}\UCNfalse
4593+ \else #1
4594+ \fi
4595+\fi}
4596+
4597+
4598+%%%% DEFINITION OF Title variables
4599+\newcommand{\CTV}{\Huge\bfseries}
4600+\newcommand{\ChTitleVar}[1]{\renewcommand{\CTV}{#1}}
4601+
4602+%%%% DEFINITION OF the basic rule width
4603+\newlength{\RW}
4604+\setlength{\RW}{1pt}
4605+\newcommand{\ChRuleWidth}[1]{\setlength{\RW}{#1}}
4606+
4607+\newif\ifUCT
4608+\UCTfalse
4609+\newif\ifLCT
4610+\LCTfalse
4611+\def\ChTitleLowerCase{\LCTtrue\UCTfalse}
4612+\def\ChTitleUpperCase{\UCTtrue\LCTfalse}
4613+\def\ChTitleAsIs{\UCTfalse\LCTfalse}
4614+\newcommand{\FmTi}[1]{%
4615+\ifUCT
4616+
4617+ {\MakeUppercase#1}\LCTfalse
4618+\else
4619+ \ifLCT
4620+ {\MakeLowercase#1}\UCTfalse
4621+ \else #1
4622+ \fi
4623+\fi}
4624+
4625+
4626+
4627+\newlength{\mylen}
4628+\newlength{\myhi}
4629+\newlength{\px}
4630+\newlength{\py}
4631+\newlength{\pyy}
4632+\newlength{\pxx}
4633+
4634+
4635+\def\mghrulefill#1{\leavevmode\leaders\hrule\@height #1\hfill\kern\z@}
4636+
4637+\newcommand{\DOCH}{%
4638+ \CNV\FmN{\@chapapp}\space \CNoV\thechapter
4639+ \par\nobreak
4640+ \vskip 20\p@
4641+ }
4642+\newcommand{\DOTI}[1]{%
4643+ \CTV\FmTi{#1}\par\nobreak
4644+ \vskip 40\p@
4645+ }
4646+\newcommand{\DOTIS}[1]{%
4647+ \CTV\FmTi{#1}\par\nobreak
4648+ \vskip 40\p@
4649+ }
4650+
4651+%%%%%% SONNY DEF
4652+
4653+\DeclareOption{Sonny}{%
4654+ \ChNameVar{\Large\sf}
4655+ \ChNumVar{\Huge}
4656+ \ChTitleVar{\Large\sf}
4657+ \ChRuleWidth{0.5pt}
4658+ \ChNameUpperCase
4659+ \renewcommand{\DOCH}{%
4660+ \raggedleft
4661+ \CNV\FmN{\@chapapp}\space \CNoV\thechapter
4662+ \par\nobreak
4663+ \vskip 40\p@}
4664+ \renewcommand{\DOTI}[1]{%
4665+ \CTV\raggedleft\mghrulefill{\RW}\par\nobreak
4666+ \vskip 5\p@
4667+ \CTV\FmTi{#1}\par\nobreak
4668+ \mghrulefill{\RW}\par\nobreak
4669+ \vskip 40\p@}
4670+ \renewcommand{\DOTIS}[1]{%
4671+ \CTV\raggedleft\mghrulefill{\RW}\par\nobreak
4672+ \vskip 5\p@
4673+ \CTV\FmTi{#1}\par\nobreak
4674+ \mghrulefill{\RW}\par\nobreak
4675+ \vskip 40\p@}
4676+}
4677+
4678+%%%%%% LENNY DEF
4679+
4680+\DeclareOption{Lenny}{%
4681+
4682+ \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont}
4683+ \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont}
4684+ \ChTitleVar{\Huge\bfseries\rm}
4685+ \ChRuleWidth{1pt}
4686+ \renewcommand{\DOCH}{%
4687+ \settowidth{\px}{\CNV\FmN{\@chapapp}}
4688+ \addtolength{\px}{2pt}
4689+ \settoheight{\py}{\CNV\FmN{\@chapapp}}
4690+ \addtolength{\py}{1pt}
4691+
4692+ \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter}
4693+ \addtolength{\mylen}{1pt}
4694+ \settowidth{\pxx}{\CNoV\thechapter}
4695+ \addtolength{\pxx}{-1pt}
4696+
4697+ \settoheight{\pyy}{\CNoV\thechapter}
4698+ \addtolength{\pyy}{-2pt}
4699+ \setlength{\myhi}{\pyy}
4700+ \addtolength{\myhi}{-1\py}
4701+ \par
4702+ \parbox[b]{\textwidth}{%
4703+ \rule[\py]{\RW}{\myhi}%
4704+ \hskip -\RW%
4705+ \rule[\pyy]{\px}{\RW}%
4706+ \hskip -\px%
4707+ \raggedright%
4708+ \CNV\FmN{\@chapapp}\space\CNoV\thechapter%
4709+ \hskip1pt%
4710+ \mghrulefill{\RW}%
4711+ \rule{\RW}{\pyy}\par\nobreak%
4712+ \vskip -\baselineskip%
4713+ \vskip -\pyy%
4714+ \hskip \mylen%
4715+ \mghrulefill{\RW}\par\nobreak%
4716+ \vskip \pyy}%
4717+ \vskip 20\p@}
4718+
4719+
4720+ \renewcommand{\DOTI}[1]{%
4721+ \raggedright
4722+ \CTV\FmTi{#1}\par\nobreak
4723+ \vskip 40\p@}
4724+
4725+ \renewcommand{\DOTIS}[1]{%
4726+ \raggedright
4727+ \CTV\FmTi{#1}\par\nobreak
4728+ \vskip 40\p@}
4729+ }
4730+
4731+
4732+%%%%%%% GLENN DEF
4733+
4734+
4735+\DeclareOption{Glenn}{%
4736+ \ChNameVar{\bfseries\Large\sf}
4737+ \ChNumVar{\Huge}
4738+ \ChTitleVar{\bfseries\Large\rm}
4739+ \ChRuleWidth{1pt}
4740+ \ChNameUpperCase
4741+ \ChTitleUpperCase
4742+ \renewcommand{\DOCH}{%
4743+ \settoheight{\myhi}{\CTV\FmTi{Test}}
4744+ \setlength{\py}{\baselineskip}
4745+ \addtolength{\py}{\RW}
4746+ \addtolength{\py}{\myhi}
4747+ \setlength{\pyy}{\py}
4748+ \addtolength{\pyy}{-1\RW}
4749+
4750+ \raggedright
4751+ \CNV\FmN{\@chapapp}\space\CNoV\thechapter
4752+ \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak}
4753+
4754+ \renewcommand{\DOTI}[1]{%
4755+ \addtolength{\pyy}{-4pt}
4756+ \settoheight{\myhi}{\CTV\FmTi{#1}}
4757+ \addtolength{\myhi}{\py}
4758+ \addtolength{\myhi}{-1\RW}
4759+ \vskip -1\pyy
4760+ \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
4761+ \raggedleft\CTV\FmTi{#1}\par\nobreak
4762+ \vskip 80\p@}
4763+
4764+ \renewcommand{\DOTIS}[1]{%
4765+ \setlength{\py}{10pt}
4766+ \setlength{\pyy}{\py}
4767+ \addtolength{\pyy}{\RW}
4768+ \setlength{\myhi}{\baselineskip}
4769+ \addtolength{\myhi}{\pyy}
4770+ \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak
4771+% \addtolength{}{}
4772+\vskip -1\baselineskip
4773+ \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
4774+ \raggedleft\CTV\FmTi{#1}\par\nobreak
4775+ \vskip 60\p@}
4776+ }
4777+
4778+%%%%%%% CONNY DEF
4779+
4780+\DeclareOption{Conny}{%
4781+ \ChNameUpperCase
4782+ \ChTitleUpperCase
4783+ \ChNameVar{\centering\Huge\rm\bfseries}
4784+ \ChNumVar{\Huge}
4785+ \ChTitleVar{\centering\Huge\rm}
4786+ \ChRuleWidth{2pt}
4787+
4788+ \renewcommand{\DOCH}{%
4789+ \mghrulefill{3\RW}\par\nobreak
4790+ \vskip -0.5\baselineskip
4791+ \mghrulefill{\RW}\par\nobreak
4792+ \CNV\FmN{\@chapapp}\space \CNoV\thechapter
4793+ \par\nobreak
4794+ \vskip -0.5\baselineskip
4795+ }
4796+ \renewcommand{\DOTI}[1]{%
4797+ \mghrulefill{\RW}\par\nobreak
4798+ \CTV\FmTi{#1}\par\nobreak
4799+ \vskip 60\p@
4800+ }
4801+ \renewcommand{\DOTIS}[1]{%
4802+ \mghrulefill{\RW}\par\nobreak
4803+ \CTV\FmTi{#1}\par\nobreak
4804+ \vskip 60\p@
4805+ }
4806+ }
4807+
4808+%%%%%%% REJNE DEF
4809+
4810+\DeclareOption{Rejne}{%
4811+
4812+ \ChNameUpperCase
4813+ \ChTitleUpperCase
4814+ \ChNameVar{\centering\Large\rm}
4815+ \ChNumVar{\Huge}
4816+ \ChTitleVar{\centering\Huge\rm}
4817+ \ChRuleWidth{1pt}
4818+ \renewcommand{\DOCH}{%
4819+ \settoheight{\py}{\CNoV\thechapter}
4820+ \addtolength{\py}{-1pt}
4821+ \CNV\FmN{\@chapapp}\par\nobreak
4822+ \vskip 20\p@
4823+ \setlength{\myhi}{2\baselineskip}
4824+ \setlength{\px}{\myhi}
4825+ \addtolength{\px}{-1\RW}
4826+ \rule[-1\px]{\RW}{\myhi}\mghrulefill{\RW}\hskip
4827+ 10pt\raisebox{-0.5\py}{\CNoV\thechapter}\hskip
4828+10pt\mghrulefill{\RW}\rule[-1\px]{\RW}{\myhi}\par\nobreak
4829+ \vskip -1\p@
4830+ }
4831+ \renewcommand{\DOTI}[1]{%
4832+ \setlength{\mylen}{\textwidth}
4833+ \addtolength{\mylen}{-2\RW}
4834+ {\vrule width\RW}\parbox{\mylen}{\CTV\FmTi{#1}}{\vrule
4835+width\RW}\par\nobreak
4836+ \vskip
4837+-1pt\rule{\RW}{2\baselineskip}\mghrulefill{\RW}\rule{\RW}{2\baselineskip}
4838+ \vskip 60\p@
4839+ }
4840+ \renewcommand{\DOTIS}[1]{%
4841+ \setlength{\py}{\fboxrule}
4842+ \setlength{\fboxrule}{\RW}
4843+ \setlength{\mylen}{\textwidth}
4844+ \addtolength{\mylen}{-2\RW}
4845+ \fbox{\parbox{\mylen}{\vskip
4846+2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}}
4847+ \setlength{\fboxrule}{\py}
4848+ \vskip 60\p@
4849+ }
4850+ }
4851+
4852+
4853+%%%%%%% BJARNE DEF
4854+
4855+\DeclareOption{Bjarne}{%
4856+ \ChNameUpperCase
4857+ \ChTitleUpperCase
4858+ \ChNameVar{\raggedleft\normalsize\rm}
4859+ \ChNumVar{\raggedleft \bfseries\Large}
4860+ \ChTitleVar{\raggedleft \Large\rm}
4861+ \ChRuleWidth{1pt}
4862+
4863+
4864+%% Note thechapter -> c@chapter fix appendix bug
4865+
4866+ \newcounter{AlphaCnt}
4867+ \newcounter{AlphaDecCnt}
4868+ \newcommand{\AlphaNo}{%
4869+ \ifcase\number\theAlphaCnt
4870+ \ifnum\c@chapter=0
4871+ ZERO\else{}\fi
4872+ \or ONE\or TWO\or THREE\or FOUR\or FIVE
4873+ \or SIX\or SEVEN\or EIGHT\or NINE\or TEN
4874+ \or ELEVEN\or TWELVE\or THIRTEEN\or FOURTEEN\or FIFTEEN
4875+ \or SIXTEEN\or SEVENTEEN\or EIGHTEEN\or NINETEEN\fi
4876+}
4877+
4878+ \newcommand{\AlphaDecNo}{%
4879+ \setcounter{AlphaDecCnt}{0}
4880+ \@whilenum\number\theAlphaCnt>0\do
4881+ {\addtocounter{AlphaCnt}{-10}
4882+ \addtocounter{AlphaDecCnt}{1}}
4883+ \ifnum\number\theAlphaCnt=0
4884+ \else
4885+ \addtocounter{AlphaDecCnt}{-1}
4886+ \addtocounter{AlphaCnt}{10}
4887+ \fi
4888+
4889+
4890+ \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or
4891+ FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi
4892+ }
4893+ \newcommand{\TheAlphaChapter}{%
4894+
4895+ \ifinapp
4896+ \thechapter
4897+ \else
4898+ \setcounter{AlphaCnt}{\c@chapter}
4899+ \ifnum\c@chapter<20
4900+ \AlphaNo
4901+ \else
4902+ \AlphaDecNo\AlphaNo
4903+ \fi
4904+ \fi
4905+ }
4906+ \renewcommand{\DOCH}{%
4907+ \mghrulefill{\RW}\par\nobreak
4908+ \CNV\FmN{\@chapapp}\par\nobreak
4909+ \CNoV\TheAlphaChapter\par\nobreak
4910+ \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak
4911+ \vskip 20\p@
4912+ }
4913+ \renewcommand{\DOTI}[1]{%
4914+ \CTV\FmTi{#1}\par\nobreak
4915+ \vskip 40\p@
4916+ }
4917+ \renewcommand{\DOTIS}[1]{%
4918+ \CTV\FmTi{#1}\par\nobreak
4919+ \vskip 40\p@
4920+ }
4921+}
4922+
4923+\DeclareOption*{%
4924+ \PackageWarning{fancychapter}{unknown style option}
4925+ }
4926+
4927+\ProcessOptions* \relax
4928+
4929+\def\@makechapterhead#1{%
4930+ \vspace*{50\p@}%
4931+ {\parindent \z@ \raggedright \normalfont
4932+ \ifnum \c@secnumdepth >\m@ne
4933+ \DOCH
4934+ \fi
4935+ \interlinepenalty\@M
4936+ \DOTI{#1}
4937+ }}
4938+\def\@schapter#1{\if@twocolumn
4939+ \@topnewpage[\@makeschapterhead{#1}]%
4940+ \else
4941+ \@makeschapterhead{#1}%
4942+ \@afterheading
4943+ \fi}
4944+\def\@makeschapterhead#1{%
4945+ \vspace*{50\p@}%
4946+ {\parindent \z@ \raggedright
4947+ \normalfont
4948+ \interlinepenalty\@M
4949+ \DOTIS{#1}
4950+ \vskip 40\p@
4951+ }}
4952+
4953+\endinput
4954+
4955+
4956
4957=== added file 'trunk/Doc/Manual/geo-file.tex'
4958--- trunk/Doc/Manual/geo-file.tex 1970-01-01 00:00:00 +0000
4959+++ trunk/Doc/Manual/geo-file.tex 2013-05-08 08:43:26 +0000
4960@@ -0,0 +1,135 @@
4961+\chapter{The Geometry File Format}
4962+\label{cha:geofileformat}
4963+
4964+\section{Introduction}
4965+The input file described here contains only the description of the model geometry. The material properties of the particles (density \dots) and interactions (spring constant, breaking distance \dots) are described in the script. In order to facilitate this, both particles and predefined connections/interactions have tags.
4966+\subsubsection*{Rationale:}
4967+\begin{itemize}
4968+\item Makes it possible to change the properties
4969+independently from the geometries, for example in order to easily run a suite of simulation with identical geometries but varying material properties.
4970+\end{itemize}
4971+The input files are pure ASCII files formatted in the way described in the following sections.
4972+\subsubsection*{Rationale:}
4973+\begin{itemize}
4974+\item ASCII is preferred over binary format for portability and debugability reasons.
4975+\item Using some ``standard'' description language, i.e. XML seems
4976+ \begin{itemize}
4977+ \item unnecessary as the files are machine generated and read, which reduces the need for flexibility and verbosity
4978+ \item a suboptimal solution with respect to file size, i.e. a million particle file would grow quite large if XML was used \footnote{It would be quite large anyway, somewhere around 40--50 byte per particle and 15--20 byte per connection, i.e. a file describing a model consisting of $10^6$ part in a fully connected regular 3D lattice would have a size around 100MB. So we may look at using compressed (libz, libbz2) files at some later stage.}
4979+ \end{itemize}
4980+\end{itemize}
4981+
4982+
4983+\section{The File Format}
4984+
4985+The geometry file specifies the overall model geometry, the particle positions and geometries, the assignment of the particles to some particle groups and the initial connectivity between particles, i.e. the bonds. In case of spherical particles the per-particle geometry is reduced to just the particle radius.
4986+\subsection{File Structure}
4987+The geometry file consist of a header and 3 content sections:
4988+\begin{enumerate}
4989+\item The ``model geometry'' section which contains the containing volume(s) of the model and definition of circular (periodic) boundary conditions
4990+\item The ``particles'' section
4991+\item The ``connections'' section
4992+\end{enumerate}
4993+\subsection{Header}
4994+The header just contains an identifier for the file type and the version of the file.
4995+\begin{verbatim}
4996+LSMGeometry 1.2
4997+\end{verbatim}
4998+where \textsf{LSMGeometry} is the identifier and \textsf{1.2} the current version number.
4999+
5000+
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches