[spglib] 02/03: Imported Upstream version 1.10.1
Andrius Merkys
merkys-guest at moszumanska.debian.org
Tue Dec 5 07:39:46 UTC 2017
This is an automated email from the git hooks/post-receive script.
merkys-guest pushed a commit to branch master
in repository spglib.
commit 28306b92cd83e81ef669b8c14d71284f0c118524
Author: Andrius Merkys <andrius.merkys at gmail.com>
Date: Tue Dec 5 09:37:18 2017 +0200
Imported Upstream version 1.10.1
---
.gitignore | 92 +
.travis.yml | 155 +
AUTHORS | 0
CMakeLists.txt | 67 +
COPYING | 46 +-
ChangeLog | 1315 ++
INSTALL | 370 -
Makefile.am | 9 +
Makefile.in | 761 -
NEWS | 0
README | 0
README.md | 19 +
aclocal.m4 | 1011 --
compile | 343 -
config.guess | 1530 --
config.h.in | 78 -
config.sub | 1782 ---
configure | 14070 -------------------
configure.ac | 24 +-
database/Wyckoff.csv | 5366 +++++++
database/arithmetic.py | 89 +
database/change_of_basis.py | 108 +
database/hall2operations.py | 416 +
database/make_VSpU.py | 411 +
database/make_Wyckoff_db.py | 341 +
database/make_sitesym.py | 50 +
database/make_spgtype_db.py | 109 +
database/ptg2symbol.py | 487 +
database/spg.csv | 530 +
depcomp | 708 -
doc/api.rst | 732 +
doc/change-of-basis.ai | 4852 +++++++
doc/change-of-basis.png | Bin 0 -> 15689 bytes
{python/ase/doc => doc}/conf.py | 138 +-
doc/definition.rst | 363 +
doc/index.rst | 90 +
doc/install.rst | 89 +
doc/interface.rst | 38 +
doc/python-spglib.rst | 621 +
doc/variable.rst | 120 +
example/Makefile_f08 | 34 +-
example/README | 50 +-
example/example.c | 830 +-
example/example.f90 | 8 +-
example/example_f08.f90 | 12 +-
example/frequency.dat | 1536 ++
example/spglib_f08.f90 | 381 +-
example/tetrahedron.c | 221 +
install-sh | 527 -
ltmain.sh | 9661 -------------
m4/libtool.m4 | 8001 -----------
m4/ltoptions.m4 | 384 -
m4/ltsugar.m4 | 123 -
m4/ltversion.m4 | 23 -
m4/lt~obsolete.m4 | 98 -
missing | 331 -
python/MANIFEST.in | 6 +
python/README.rst | 56 +
python/__nanoversion__.txt | 1 +
python/_spglib.c | 1062 ++
python/ase/ChangeLog | 9 -
python/ase/MANIFEST.in | 1 -
python/ase/_spglib.c | 847 --
python/ase/doc/Makefile | 75 -
python/ase/doc/index.rst | 168 -
python/ase/examples/example_ase.py | 132 -
python/ase/examples/example_atoms.py | 164 -
python/ase/pyspglib/__init__.py | 0
python/ase/pyspglib/spglib.py | 327 -
python/ase/setup.py | 50 -
python/ase/test/test_ir_triplets.py | 38 -
python/ase/test/test_ir_triplets_at_q.py | 69 -
python/ase/test/test_stabilized_reciprocal_mesh.py | 46 -
python/ase/test/test_symmetry_with_spin.py | 26 -
python/ase/test/vasp.py | 155 -
python/build-wheels.sh | 41 +
python/conda/.binstar.yml | 88 +
python/conda/anaconda_deploy.sh | 15 +
python/conda/bld.bat | 9 +
python/conda/build.sh | 13 +
python/conda/meta.yaml | 62 +
python/conda/run_test.sh | 7 +
python/{ase/test => examples}/atoms.py | 190 +-
python/examples/example.py | 291 +
python/get_nanoversion.sh | 15 +
python/requirements.txt | 1 +
python/setup.py | 151 +
python/spglib/__init__.py | 56 +
python/spglib/spglib.py | 770 +
{test => python/test}/data/cubic/POSCAR-195 | 0
{test => python/test}/data/cubic/POSCAR-195-2 | 0
{test => python/test}/data/cubic/POSCAR-196 | 0
{test => python/test}/data/cubic/POSCAR-196-2 | 0
{test => python/test}/data/cubic/POSCAR-197 | 0
{test => python/test}/data/cubic/POSCAR-197-2 | 0
{test => python/test}/data/cubic/POSCAR-198 | 0
{test => python/test}/data/cubic/POSCAR-198-2 | 0
{test => python/test}/data/cubic/POSCAR-199 | 0
{test => python/test}/data/cubic/POSCAR-199-2 | 0
{test => python/test}/data/cubic/POSCAR-200 | 0
{test => python/test}/data/cubic/POSCAR-200-2 | 0
{test => python/test}/data/cubic/POSCAR-205 | 0
{test => python/test}/data/cubic/POSCAR-205-3 | 0
{test => python/test}/data/cubic/POSCAR-206 | 0
{test => python/test}/data/cubic/POSCAR-206-2 | 0
{test => python/test}/data/cubic/POSCAR-207 | 0
{test => python/test}/data/cubic/POSCAR-208 | 0
{test => python/test}/data/cubic/POSCAR-208-2 | 0
{test => python/test}/data/cubic/POSCAR-209 | 0
{test => python/test}/data/cubic/POSCAR-210 | 0
{test => python/test}/data/cubic/POSCAR-210-2 | 0
{test => python/test}/data/cubic/POSCAR-211 | 0
{test => python/test}/data/cubic/POSCAR-212 | 0
{test => python/test}/data/cubic/POSCAR-212-2 | 0
{test => python/test}/data/cubic/POSCAR-213 | 0
{test => python/test}/data/cubic/POSCAR-213-2 | 0
{test => python/test}/data/cubic/POSCAR-214 | 0
{test => python/test}/data/cubic/POSCAR-214-2 | 0
{test => python/test}/data/cubic/POSCAR-215 | 0
{test => python/test}/data/cubic/POSCAR-215-2 | 0
{test => python/test}/data/cubic/POSCAR-216 | 0
{test => python/test}/data/cubic/POSCAR-216-2 | 0
{test => python/test}/data/cubic/POSCAR-217 | 0
{test => python/test}/data/cubic/POSCAR-217-2 | 0
{test => python/test}/data/cubic/POSCAR-218 | 0
{test => python/test}/data/cubic/POSCAR-218-2 | 0
{test => python/test}/data/cubic/POSCAR-219 | 0
{test => python/test}/data/cubic/POSCAR-219-2 | 0
{test => python/test}/data/cubic/POSCAR-220 | 0
{test => python/test}/data/cubic/POSCAR-220-2 | 0
{test => python/test}/data/cubic/POSCAR-221 | 0
{test => python/test}/data/cubic/POSCAR-221-2 | 0
{test => python/test}/data/cubic/POSCAR-222 | 0
{test => python/test}/data/cubic/POSCAR-222-2 | 0
{test => python/test}/data/cubic/POSCAR-223 | 0
{test => python/test}/data/cubic/POSCAR-223-2 | 0
{test => python/test}/data/cubic/POSCAR-224 | 0
{test => python/test}/data/cubic/POSCAR-224-2 | 0
{test => python/test}/data/cubic/POSCAR-225 | 0
{test => python/test}/data/cubic/POSCAR-225-2 | 0
{test => python/test}/data/cubic/POSCAR-226 | 0
{test => python/test}/data/cubic/POSCAR-226-2 | 0
{test => python/test}/data/cubic/POSCAR-227 | 0
{test => python/test}/data/cubic/POSCAR-227-2 | 0
{test => python/test}/data/cubic/POSCAR-228 | 0
{test => python/test}/data/cubic/POSCAR-228-2 | 0
{test => python/test}/data/cubic/POSCAR-229 | 0
{test => python/test}/data/cubic/POSCAR-229-2 | 0
{test => python/test}/data/cubic/POSCAR-230 | 0
{test => python/test}/data/cubic/POSCAR-230-2 | 0
{test => python/test}/data/cubic/POSCAR-230-3 | 0
{test => python/test}/data/cubic/POSCAR-230-4 | 0
.../test/data/distorted/POSCAR-161-1 | 0
.../test/data/distorted/POSCAR-161-2 | 0
.../test/data/distorted/POSCAR-36 | 0
.../test/data/distorted/POSCAR-5 | 0
.../test/data/distorted/POSCAR-6 | 0
.../test/data/distorted/POSCAR-7-1 | 0
.../test/data/distorted/POSCAR-7-2 | 0
.../test/data/distorted/POSCAR-8 | 0
{test => python/test}/data/hexagonal/POSCAR-168 | 0
{test => python/test}/data/hexagonal/POSCAR-169 | 0
{test => python/test}/data/hexagonal/POSCAR-169-2 | 0
{test => python/test}/data/hexagonal/POSCAR-170 | 0
{test => python/test}/data/hexagonal/POSCAR-170-2 | 0
{test => python/test}/data/hexagonal/POSCAR-171 | 0
{test => python/test}/data/hexagonal/POSCAR-171-2 | 0
{test => python/test}/data/hexagonal/POSCAR-172 | 0
{test => python/test}/data/hexagonal/POSCAR-173 | 0
{test => python/test}/data/hexagonal/POSCAR-173-2 | 0
{test => python/test}/data/hexagonal/POSCAR-174 | 0
{test => python/test}/data/hexagonal/POSCAR-174-2 | 0
{test => python/test}/data/hexagonal/POSCAR-175 | 0
{test => python/test}/data/hexagonal/POSCAR-175-2 | 0
{test => python/test}/data/hexagonal/POSCAR-176 | 0
{test => python/test}/data/hexagonal/POSCAR-176-2 | 0
{test => python/test}/data/hexagonal/POSCAR-177 | 0
{test => python/test}/data/hexagonal/POSCAR-179 | 0
{test => python/test}/data/hexagonal/POSCAR-179-2 | 0
{test => python/test}/data/hexagonal/POSCAR-180 | 0
{test => python/test}/data/hexagonal/POSCAR-180-2 | 0
{test => python/test}/data/hexagonal/POSCAR-181 | 0
{test => python/test}/data/hexagonal/POSCAR-181-2 | 0
{test => python/test}/data/hexagonal/POSCAR-182 | 0
{test => python/test}/data/hexagonal/POSCAR-182-2 | 0
{test => python/test}/data/hexagonal/POSCAR-183 | 0
{test => python/test}/data/hexagonal/POSCAR-183-2 | 0
{test => python/test}/data/hexagonal/POSCAR-184 | 0
{test => python/test}/data/hexagonal/POSCAR-184-2 | 0
{test => python/test}/data/hexagonal/POSCAR-185 | 0
{test => python/test}/data/hexagonal/POSCAR-185-2 | 0
{test => python/test}/data/hexagonal/POSCAR-186 | 0
{test => python/test}/data/hexagonal/POSCAR-186-2 | 0
{test => python/test}/data/hexagonal/POSCAR-187 | 0
{test => python/test}/data/hexagonal/POSCAR-187-2 | 0
{test => python/test}/data/hexagonal/POSCAR-188 | 0
{test => python/test}/data/hexagonal/POSCAR-188-2 | 0
{test => python/test}/data/hexagonal/POSCAR-189 | 0
{test => python/test}/data/hexagonal/POSCAR-189-2 | 0
{test => python/test}/data/hexagonal/POSCAR-190 | 0
{test => python/test}/data/hexagonal/POSCAR-190-2 | 0
{test => python/test}/data/hexagonal/POSCAR-191 | 0
{test => python/test}/data/hexagonal/POSCAR-191-2 | 0
{test => python/test}/data/hexagonal/POSCAR-192 | 0
{test => python/test}/data/hexagonal/POSCAR-192-2 | 0
{test => python/test}/data/hexagonal/POSCAR-193 | 0
{test => python/test}/data/hexagonal/POSCAR-193-2 | 0
{test => python/test}/data/hexagonal/POSCAR-194 | 0
{test => python/test}/data/hexagonal/POSCAR-194-2 | 0
{test => python/test}/data/monoclinic/POSCAR-003 | 0
{test => python/test}/data/monoclinic/POSCAR-004 | 0
{test => python/test}/data/monoclinic/POSCAR-004-2 | 0
{test => python/test}/data/monoclinic/POSCAR-005 | 0
{test => python/test}/data/monoclinic/POSCAR-005-2 | 0
{test => python/test}/data/monoclinic/POSCAR-006 | 0
{test => python/test}/data/monoclinic/POSCAR-006-2 | 0
{test => python/test}/data/monoclinic/POSCAR-007 | 0
{test => python/test}/data/monoclinic/POSCAR-007-2 | 0
{test => python/test}/data/monoclinic/POSCAR-008 | 0
{test => python/test}/data/monoclinic/POSCAR-008-2 | 0
{test => python/test}/data/monoclinic/POSCAR-009 | 0
{test => python/test}/data/monoclinic/POSCAR-009-2 | 0
{test => python/test}/data/monoclinic/POSCAR-010 | 0
{test => python/test}/data/monoclinic/POSCAR-010-2 | 0
{test => python/test}/data/monoclinic/POSCAR-011 | 0
{test => python/test}/data/monoclinic/POSCAR-011-2 | 0
{test => python/test}/data/monoclinic/POSCAR-012 | 0
{test => python/test}/data/monoclinic/POSCAR-012-2 | 0
{test => python/test}/data/monoclinic/POSCAR-012-3 | 0
{test => python/test}/data/monoclinic/POSCAR-013 | 0
{test => python/test}/data/monoclinic/POSCAR-013-2 | 0
{test => python/test}/data/monoclinic/POSCAR-013-3 | 0
{test => python/test}/data/monoclinic/POSCAR-014 | 0
{test => python/test}/data/monoclinic/POSCAR-014-2 | 0
{test => python/test}/data/monoclinic/POSCAR-015 | 0
{test => python/test}/data/monoclinic/POSCAR-015-2 | 0
{test => python/test}/data/monoclinic/POSCAR-015-3 | 0
{test => python/test}/data/orthorhombic/POSCAR-016 | 0
.../test}/data/orthorhombic/POSCAR-016-2 | 0
.../test}/data/orthorhombic/POSCAR-017-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-018 | 0
.../test}/data/orthorhombic/POSCAR-018-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-019 | 0
.../test}/data/orthorhombic/POSCAR-019-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-020 | 0
{test => python/test}/data/orthorhombic/POSCAR-021 | 0
.../test}/data/orthorhombic/POSCAR-021-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-022 | 0
{test => python/test}/data/orthorhombic/POSCAR-023 | 0
.../test}/data/orthorhombic/POSCAR-023-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-024 | 0
.../test}/data/orthorhombic/POSCAR-024-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-025 | 0
.../test}/data/orthorhombic/POSCAR-025-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-026 | 0
.../test}/data/orthorhombic/POSCAR-026-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-027 | 0
.../test}/data/orthorhombic/POSCAR-027-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-028 | 0
.../test}/data/orthorhombic/POSCAR-028-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-029 | 0
.../test}/data/orthorhombic/POSCAR-029-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-030 | 0
.../test}/data/orthorhombic/POSCAR-030-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-031 | 0
.../test}/data/orthorhombic/POSCAR-031-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-032 | 0
.../test}/data/orthorhombic/POSCAR-032-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-033 | 0
.../test}/data/orthorhombic/POSCAR-033-2 | 0
.../test}/data/orthorhombic/POSCAR-033-3 | 0
{test => python/test}/data/orthorhombic/POSCAR-034 | 0
.../test}/data/orthorhombic/POSCAR-034-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-035 | 0
.../test}/data/orthorhombic/POSCAR-035-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-036 | 0
.../test}/data/orthorhombic/POSCAR-036-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-037 | 0
.../test}/data/orthorhombic/POSCAR-037-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-038 | 0
.../test}/data/orthorhombic/POSCAR-038-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-039 | 0
.../test}/data/orthorhombic/POSCAR-039-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-040 | 0
.../test}/data/orthorhombic/POSCAR-040-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-041 | 0
.../test}/data/orthorhombic/POSCAR-041-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-042 | 0
{test => python/test}/data/orthorhombic/POSCAR-043 | 0
.../test}/data/orthorhombic/POSCAR-043-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-044 | 0
.../test}/data/orthorhombic/POSCAR-044-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-045 | 0
.../test}/data/orthorhombic/POSCAR-045-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-046 | 0
.../test}/data/orthorhombic/POSCAR-046-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-047 | 0
.../test}/data/orthorhombic/POSCAR-047-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-048 | 0
.../test}/data/orthorhombic/POSCAR-048-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-049 | 0
.../test}/data/orthorhombic/POSCAR-049-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-050 | 0
.../test}/data/orthorhombic/POSCAR-050-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-051 | 0
.../test}/data/orthorhombic/POSCAR-051-2 | 0
.../test}/data/orthorhombic/POSCAR-051-3 | 0
{test => python/test}/data/orthorhombic/POSCAR-052 | 0
.../test}/data/orthorhombic/POSCAR-052-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-053 | 0
.../test}/data/orthorhombic/POSCAR-053-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-054 | 0
.../test}/data/orthorhombic/POSCAR-054-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-055 | 0
.../test}/data/orthorhombic/POSCAR-055-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-056 | 0
.../test}/data/orthorhombic/POSCAR-056-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-057 | 0
.../test}/data/orthorhombic/POSCAR-057-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-058 | 0
.../test}/data/orthorhombic/POSCAR-058-2 | 0
.../test}/data/orthorhombic/POSCAR-058-3 | 0
{test => python/test}/data/orthorhombic/POSCAR-059 | 0
.../test}/data/orthorhombic/POSCAR-059-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-060 | 0
.../test}/data/orthorhombic/POSCAR-060-2 | 0
.../test}/data/orthorhombic/POSCAR-060-3 | 0
{test => python/test}/data/orthorhombic/POSCAR-061 | 0
.../test}/data/orthorhombic/POSCAR-061-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-062 | 0
.../test}/data/orthorhombic/POSCAR-062-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-063 | 0
.../test}/data/orthorhombic/POSCAR-063-2 | 0
.../test}/data/orthorhombic/POSCAR-063-3 | 0
{test => python/test}/data/orthorhombic/POSCAR-064 | 0
.../test}/data/orthorhombic/POSCAR-064-2 | 0
.../test}/data/orthorhombic/POSCAR-064-3 | 0
{test => python/test}/data/orthorhombic/POSCAR-065 | 0
.../test}/data/orthorhombic/POSCAR-065-2 | 0
.../test}/data/orthorhombic/POSCAR-065-3 | 0
{test => python/test}/data/orthorhombic/POSCAR-066 | 0
.../test}/data/orthorhombic/POSCAR-066-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-067 | 0
.../test}/data/orthorhombic/POSCAR-067-2 | 0
.../test}/data/orthorhombic/POSCAR-067-3 | 0
{test => python/test}/data/orthorhombic/POSCAR-068 | 0
.../test}/data/orthorhombic/POSCAR-068-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-069 | 0
.../test}/data/orthorhombic/POSCAR-069-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-070 | 0
.../test}/data/orthorhombic/POSCAR-070-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-071 | 0
.../test}/data/orthorhombic/POSCAR-071-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-072 | 0
.../test}/data/orthorhombic/POSCAR-072-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-073 | 0
.../test}/data/orthorhombic/POSCAR-073-2 | 0
{test => python/test}/data/orthorhombic/POSCAR-074 | 0
.../test}/data/orthorhombic/POSCAR-074-2 | 0
{test => python/test}/data/tetragonal/POSCAR-075 | 0
{test => python/test}/data/tetragonal/POSCAR-075-2 | 0
{test => python/test}/data/tetragonal/POSCAR-076 | 0
{test => python/test}/data/tetragonal/POSCAR-076-2 | 0
{test => python/test}/data/tetragonal/POSCAR-077 | 0
{test => python/test}/data/tetragonal/POSCAR-077-2 | 0
{test => python/test}/data/tetragonal/POSCAR-077-3 | 0
{test => python/test}/data/tetragonal/POSCAR-078 | 0
{test => python/test}/data/tetragonal/POSCAR-078-2 | 0
{test => python/test}/data/tetragonal/POSCAR-079 | 0
{test => python/test}/data/tetragonal/POSCAR-079-2 | 0
{test => python/test}/data/tetragonal/POSCAR-080 | 0
{test => python/test}/data/tetragonal/POSCAR-080-2 | 0
{test => python/test}/data/tetragonal/POSCAR-081 | 0
{test => python/test}/data/tetragonal/POSCAR-081-2 | 0
{test => python/test}/data/tetragonal/POSCAR-082 | 0
{test => python/test}/data/tetragonal/POSCAR-082-2 | 0
{test => python/test}/data/tetragonal/POSCAR-083 | 0
{test => python/test}/data/tetragonal/POSCAR-083-2 | 0
{test => python/test}/data/tetragonal/POSCAR-083-3 | 0
{test => python/test}/data/tetragonal/POSCAR-084 | 0
{test => python/test}/data/tetragonal/POSCAR-084-2 | 0
{test => python/test}/data/tetragonal/POSCAR-085 | 0
{test => python/test}/data/tetragonal/POSCAR-085-2 | 0
{test => python/test}/data/tetragonal/POSCAR-086 | 0
{test => python/test}/data/tetragonal/POSCAR-086-2 | 0
{test => python/test}/data/tetragonal/POSCAR-087 | 0
{test => python/test}/data/tetragonal/POSCAR-087-2 | 0
{test => python/test}/data/tetragonal/POSCAR-088 | 0
{test => python/test}/data/tetragonal/POSCAR-088-2 | 0
{test => python/test}/data/tetragonal/POSCAR-090 | 0
{test => python/test}/data/tetragonal/POSCAR-090-2 | 0
{test => python/test}/data/tetragonal/POSCAR-091 | 0
{test => python/test}/data/tetragonal/POSCAR-091-2 | 0
{test => python/test}/data/tetragonal/POSCAR-092 | 0
{test => python/test}/data/tetragonal/POSCAR-092-2 | 0
{test => python/test}/data/tetragonal/POSCAR-092-3 | 0
{test => python/test}/data/tetragonal/POSCAR-094 | 0
{test => python/test}/data/tetragonal/POSCAR-094-2 | 0
{test => python/test}/data/tetragonal/POSCAR-094-3 | 0
{test => python/test}/data/tetragonal/POSCAR-095 | 0
{test => python/test}/data/tetragonal/POSCAR-095-2 | 0
{test => python/test}/data/tetragonal/POSCAR-096 | 0
{test => python/test}/data/tetragonal/POSCAR-096-2 | 0
{test => python/test}/data/tetragonal/POSCAR-097 | 0
{test => python/test}/data/tetragonal/POSCAR-097-2 | 0
{test => python/test}/data/tetragonal/POSCAR-098 | 0
{test => python/test}/data/tetragonal/POSCAR-098-2 | 0
{test => python/test}/data/tetragonal/POSCAR-099 | 0
{test => python/test}/data/tetragonal/POSCAR-099-2 | 0
{test => python/test}/data/tetragonal/POSCAR-100 | 0
{test => python/test}/data/tetragonal/POSCAR-100-2 | 0
{test => python/test}/data/tetragonal/POSCAR-102 | 0
{test => python/test}/data/tetragonal/POSCAR-102-2 | 0
{test => python/test}/data/tetragonal/POSCAR-103 | 0
{test => python/test}/data/tetragonal/POSCAR-103-2 | 0
{test => python/test}/data/tetragonal/POSCAR-104 | 0
{test => python/test}/data/tetragonal/POSCAR-104-2 | 0
{test => python/test}/data/tetragonal/POSCAR-105 | 0
{test => python/test}/data/tetragonal/POSCAR-105-2 | 0
{test => python/test}/data/tetragonal/POSCAR-106 | 0
{test => python/test}/data/tetragonal/POSCAR-107 | 0
{test => python/test}/data/tetragonal/POSCAR-107-2 | 0
{test => python/test}/data/tetragonal/POSCAR-107-3 | 0
{test => python/test}/data/tetragonal/POSCAR-108 | 0
{test => python/test}/data/tetragonal/POSCAR-108-2 | 0
{test => python/test}/data/tetragonal/POSCAR-109 | 0
{test => python/test}/data/tetragonal/POSCAR-109-2 | 0
{test => python/test}/data/tetragonal/POSCAR-110 | 0
{test => python/test}/data/tetragonal/POSCAR-110-2 | 0
{test => python/test}/data/tetragonal/POSCAR-111 | 0
{test => python/test}/data/tetragonal/POSCAR-111-2 | 0
{test => python/test}/data/tetragonal/POSCAR-112 | 0
{test => python/test}/data/tetragonal/POSCAR-112-2 | 0
{test => python/test}/data/tetragonal/POSCAR-113 | 0
{test => python/test}/data/tetragonal/POSCAR-113-2 | 0
{test => python/test}/data/tetragonal/POSCAR-114 | 0
{test => python/test}/data/tetragonal/POSCAR-114-2 | 0
{test => python/test}/data/tetragonal/POSCAR-115 | 0
{test => python/test}/data/tetragonal/POSCAR-115-2 | 0
{test => python/test}/data/tetragonal/POSCAR-115-3 | 0
{test => python/test}/data/tetragonal/POSCAR-115-4 | 0
{test => python/test}/data/tetragonal/POSCAR-115-5 | 0
{test => python/test}/data/tetragonal/POSCAR-116 | 0
{test => python/test}/data/tetragonal/POSCAR-116-2 | 0
{test => python/test}/data/tetragonal/POSCAR-117 | 0
{test => python/test}/data/tetragonal/POSCAR-117-2 | 0
{test => python/test}/data/tetragonal/POSCAR-118 | 0
{test => python/test}/data/tetragonal/POSCAR-118-2 | 0
{test => python/test}/data/tetragonal/POSCAR-119 | 0
{test => python/test}/data/tetragonal/POSCAR-119-2 | 0
{test => python/test}/data/tetragonal/POSCAR-120 | 0
{test => python/test}/data/tetragonal/POSCAR-120-2 | 0
{test => python/test}/data/tetragonal/POSCAR-121 | 0
{test => python/test}/data/tetragonal/POSCAR-121-2 | 0
{test => python/test}/data/tetragonal/POSCAR-122 | 0
{test => python/test}/data/tetragonal/POSCAR-122-2 | 0
{test => python/test}/data/tetragonal/POSCAR-122-3 | 0
{test => python/test}/data/tetragonal/POSCAR-123 | 0
{test => python/test}/data/tetragonal/POSCAR-123-2 | 0
{test => python/test}/data/tetragonal/POSCAR-123-3 | 0
{test => python/test}/data/tetragonal/POSCAR-124 | 0
{test => python/test}/data/tetragonal/POSCAR-124-2 | 0
{test => python/test}/data/tetragonal/POSCAR-125 | 0
{test => python/test}/data/tetragonal/POSCAR-125-2 | 0
{test => python/test}/data/tetragonal/POSCAR-126 | 0
{test => python/test}/data/tetragonal/POSCAR-126-2 | 0
{test => python/test}/data/tetragonal/POSCAR-127 | 0
{test => python/test}/data/tetragonal/POSCAR-127-2 | 0
{test => python/test}/data/tetragonal/POSCAR-128 | 0
{test => python/test}/data/tetragonal/POSCAR-128-2 | 0
{test => python/test}/data/tetragonal/POSCAR-129 | 0
{test => python/test}/data/tetragonal/POSCAR-129-2 | 0
{test => python/test}/data/tetragonal/POSCAR-129-3 | 0
{test => python/test}/data/tetragonal/POSCAR-130 | 0
{test => python/test}/data/tetragonal/POSCAR-130-2 | 0
{test => python/test}/data/tetragonal/POSCAR-131 | 0
{test => python/test}/data/tetragonal/POSCAR-131-2 | 0
{test => python/test}/data/tetragonal/POSCAR-132 | 0
{test => python/test}/data/tetragonal/POSCAR-132-2 | 0
{test => python/test}/data/tetragonal/POSCAR-133 | 0
{test => python/test}/data/tetragonal/POSCAR-133-2 | 0
{test => python/test}/data/tetragonal/POSCAR-134 | 0
{test => python/test}/data/tetragonal/POSCAR-134-2 | 0
{test => python/test}/data/tetragonal/POSCAR-135 | 0
{test => python/test}/data/tetragonal/POSCAR-135-2 | 0
{test => python/test}/data/tetragonal/POSCAR-136 | 0
{test => python/test}/data/tetragonal/POSCAR-136-2 | 0
{test => python/test}/data/tetragonal/POSCAR-136-3 | 0
{test => python/test}/data/tetragonal/POSCAR-136-4 | 0
{test => python/test}/data/tetragonal/POSCAR-136-5 | 0
{test => python/test}/data/tetragonal/POSCAR-137 | 0
{test => python/test}/data/tetragonal/POSCAR-137-2 | 0
{test => python/test}/data/tetragonal/POSCAR-137-3 | 0
{test => python/test}/data/tetragonal/POSCAR-138 | 0
{test => python/test}/data/tetragonal/POSCAR-138-2 | 0
{test => python/test}/data/tetragonal/POSCAR-139 | 0
{test => python/test}/data/tetragonal/POSCAR-139-2 | 0
{test => python/test}/data/tetragonal/POSCAR-140 | 0
{test => python/test}/data/tetragonal/POSCAR-140-2 | 0
{test => python/test}/data/tetragonal/POSCAR-141 | 0
{test => python/test}/data/tetragonal/POSCAR-141-2 | 0
{test => python/test}/data/tetragonal/POSCAR-142 | 0
{test => python/test}/data/tetragonal/POSCAR-142-2 | 0
{test => python/test}/data/tetragonal/POSCAR-142-3 | 0
{test => python/test}/data/triclinic/POSCAR-001 | 0
{test => python/test}/data/triclinic/POSCAR-002 | 0
{test => python/test}/data/trigonal/POSCAR-143 | 0
{test => python/test}/data/trigonal/POSCAR-143-2 | 0
{test => python/test}/data/trigonal/POSCAR-144 | 0
{test => python/test}/data/trigonal/POSCAR-144-2 | 0
{test => python/test}/data/trigonal/POSCAR-145 | 0
{test => python/test}/data/trigonal/POSCAR-145-2 | 0
{test => python/test}/data/trigonal/POSCAR-146 | 0
{test => python/test}/data/trigonal/POSCAR-146-2 | 0
{test => python/test}/data/trigonal/POSCAR-147 | 0
{test => python/test}/data/trigonal/POSCAR-147-2 | 0
{test => python/test}/data/trigonal/POSCAR-148 | 0
{test => python/test}/data/trigonal/POSCAR-148-2 | 0
{test => python/test}/data/trigonal/POSCAR-149 | 0
{test => python/test}/data/trigonal/POSCAR-149-2 | 0
{test => python/test}/data/trigonal/POSCAR-150 | 0
{test => python/test}/data/trigonal/POSCAR-150-2 | 0
{test => python/test}/data/trigonal/POSCAR-151 | 0
{test => python/test}/data/trigonal/POSCAR-151-2 | 0
{test => python/test}/data/trigonal/POSCAR-152 | 0
{test => python/test}/data/trigonal/POSCAR-152-2 | 0
{test => python/test}/data/trigonal/POSCAR-153 | 0
{test => python/test}/data/trigonal/POSCAR-154 | 0
{test => python/test}/data/trigonal/POSCAR-154-2 | 0
{test => python/test}/data/trigonal/POSCAR-154-3 | 0
{test => python/test}/data/trigonal/POSCAR-155 | 0
{test => python/test}/data/trigonal/POSCAR-155-2 | 0
{test => python/test}/data/trigonal/POSCAR-156 | 0
{test => python/test}/data/trigonal/POSCAR-156-2 | 0
{test => python/test}/data/trigonal/POSCAR-157 | 0
{test => python/test}/data/trigonal/POSCAR-157-2 | 0
{test => python/test}/data/trigonal/POSCAR-158 | 0
{test => python/test}/data/trigonal/POSCAR-158-2 | 0
{test => python/test}/data/trigonal/POSCAR-159 | 0
{test => python/test}/data/trigonal/POSCAR-159-2 | 0
{test => python/test}/data/trigonal/POSCAR-160 | 0
{test => python/test}/data/trigonal/POSCAR-160-2 | 0
{test => python/test}/data/trigonal/POSCAR-161 | 0
{test => python/test}/data/trigonal/POSCAR-161-2 | 0
{test => python/test}/data/trigonal/POSCAR-162 | 0
{test => python/test}/data/trigonal/POSCAR-162-2 | 0
{test => python/test}/data/trigonal/POSCAR-163 | 0
{test => python/test}/data/trigonal/POSCAR-163-2 | 0
{test => python/test}/data/trigonal/POSCAR-164 | 0
{test => python/test}/data/trigonal/POSCAR-164-2 | 0
{test => python/test}/data/trigonal/POSCAR-165 | 0
{test => python/test}/data/trigonal/POSCAR-165-2 | 0
{test => python/test}/data/trigonal/POSCAR-166 | 0
{test => python/test}/data/trigonal/POSCAR-166-2 | 0
{test => python/test}/data/trigonal/POSCAR-167 | 0
{test => python/test}/data/trigonal/POSCAR-167-2 | 0
{test => python/test}/data/trigonal/POSCAR-167-3 | 0
.../test/data/virtual_structure/POSCAR-1-221-33 | 0
.../test/data/virtual_structure/POSCAR-1-222-33 | 0
.../test/data/virtual_structure/POSCAR-1-223-33 | 0
.../test/data/virtual_structure/POSCAR-1-224-33 | 0
.../test/data/virtual_structure/POSCAR-1-227-73 | 0
.../test/data/virtual_structure/POSCAR-1-227-93 | 0
.../test/data/virtual_structure/POSCAR-1-227-99 | 0
.../data/virtual_structure/POSCAR-1-230-conv-56 | 0
.../data/virtual_structure/POSCAR-1-230-prim-33 | 0
.../test/data/virtual_structure/POSCAR-1-bcc-33 | 0
.../test/data/virtual_structure/POSCAR-10-221-18 | 0
.../test/data/virtual_structure/POSCAR-10-223-18 | 0
.../test/data/virtual_structure/POSCAR-10-227-50 | 0
.../test/data/virtual_structure/POSCAR-102-224-13 | 0
.../test/data/virtual_structure/POSCAR-104-222-13 | 0
.../test/data/virtual_structure/POSCAR-105-223-13 | 0
.../test/data/virtual_structure/POSCAR-109-227-13 | 0
.../test/data/virtual_structure/POSCAR-11-227-48 | 0
.../data/virtual_structure/POSCAR-110-230-conv-15 | 0
.../data/virtual_structure/POSCAR-110-230-prim-13 | 0
.../test/data/virtual_structure/POSCAR-111-221-11 | 0
.../test/data/virtual_structure/POSCAR-111-224-11 | 0
.../test/data/virtual_structure/POSCAR-111-227-66 | 0
.../test/data/virtual_structure/POSCAR-112-222-11 | 0
.../test/data/virtual_structure/POSCAR-112-223-11 | 0
.../test/data/virtual_structure/POSCAR-113-227-68 | 0
.../test/data/virtual_structure/POSCAR-115-221-14 | 0
.../test/data/virtual_structure/POSCAR-115-223-14 | 0
.../test/data/virtual_structure/POSCAR-115-227-33 | 0
.../data/virtual_structure/POSCAR-116-230-conv-34 | 0
.../data/virtual_structure/POSCAR-117-230-conv-33 | 0
.../test/data/virtual_structure/POSCAR-118-222-14 | 0
.../test/data/virtual_structure/POSCAR-118-224-14 | 0
.../test/data/virtual_structure/POSCAR-12-221-19 | 0
.../test/data/virtual_structure/POSCAR-12-224-19 | 0
.../test/data/virtual_structure/POSCAR-12-227-21 | 0
.../test/data/virtual_structure/POSCAR-12-227-83 | 0
.../data/virtual_structure/POSCAR-120-230-conv-16 | 0
.../data/virtual_structure/POSCAR-120-230-prim-14 | 0
.../data/virtual_structure/POSCAR-122-230-conv-13 | 0
.../data/virtual_structure/POSCAR-122-230-prim-11 | 0
.../test/data/virtual_structure/POSCAR-123-221-05 | 0
.../test/data/virtual_structure/POSCAR-126-222-05 | 0
.../test/data/virtual_structure/POSCAR-13-222-18 | 0
.../test/data/virtual_structure/POSCAR-13-224-18 | 0
.../test/data/virtual_structure/POSCAR-13-227-49 | 0
.../data/virtual_structure/POSCAR-13-230-conv-44 | 0
.../test/data/virtual_structure/POSCAR-131-223-05 | 0
.../test/data/virtual_structure/POSCAR-134-224-05 | 0
.../test/data/virtual_structure/POSCAR-14-227-47 | 0
.../test/data/virtual_structure/POSCAR-14-227-51 | 0
.../data/virtual_structure/POSCAR-14-230-conv-45 | 0
.../data/virtual_structure/POSCAR-142-230-conv-05 | 0
.../data/virtual_structure/POSCAR-142-230-prim-05 | 0
.../test/data/virtual_structure/POSCAR-146-221-27 | 0
.../test/data/virtual_structure/POSCAR-146-222-27 | 0
.../test/data/virtual_structure/POSCAR-146-223-27 | 0
.../test/data/virtual_structure/POSCAR-146-224-27 | 0
.../test/data/virtual_structure/POSCAR-146-227-92 | 0
.../data/virtual_structure/POSCAR-146-230-conv-36 | 0
.../data/virtual_structure/POSCAR-146-230-conv-55 | 0
.../data/virtual_structure/POSCAR-146-230-prim-27 | 0
.../test/data/virtual_structure/POSCAR-146-bcc-27 | 0
.../test/data/virtual_structure/POSCAR-148-221-15 | 0
.../test/data/virtual_structure/POSCAR-148-222-15 | 0
.../test/data/virtual_structure/POSCAR-148-223-15 | 0
.../test/data/virtual_structure/POSCAR-148-224-15 | 0
.../test/data/virtual_structure/POSCAR-148-227-70 | 0
.../data/virtual_structure/POSCAR-148-230-conv-17 | 0
.../data/virtual_structure/POSCAR-148-230-conv-37 | 0
.../data/virtual_structure/POSCAR-148-230-prim-15 | 0
.../test/data/virtual_structure/POSCAR-148-bcc-15 | 0
.../test/data/virtual_structure/POSCAR-15-222-19 | 0
.../test/data/virtual_structure/POSCAR-15-223-19 | 0
.../data/virtual_structure/POSCAR-15-230-conv-21 | 0
.../data/virtual_structure/POSCAR-15-230-conv-22 | 0
.../data/virtual_structure/POSCAR-15-230-prim-18 | 0
.../data/virtual_structure/POSCAR-15-230-prim-19 | 0
.../test/data/virtual_structure/POSCAR-15-bcc-18 | 0
.../test/data/virtual_structure/POSCAR-15-bcc-19 | 0
.../test/data/virtual_structure/POSCAR-155-221-17 | 0
.../test/data/virtual_structure/POSCAR-155-222-17 | 0
.../test/data/virtual_structure/POSCAR-155-223-17 | 0
.../test/data/virtual_structure/POSCAR-155-224-17 | 0
.../test/data/virtual_structure/POSCAR-155-227-72 | 0
.../data/virtual_structure/POSCAR-155-230-conv-19 | 0
.../data/virtual_structure/POSCAR-155-230-conv-38 | 0
.../data/virtual_structure/POSCAR-155-230-prim-17 | 0
.../test/data/virtual_structure/POSCAR-155-bcc-17 | 0
.../test/data/virtual_structure/POSCAR-16-221-20 | 0
.../test/data/virtual_structure/POSCAR-16-222-20 | 0
.../test/data/virtual_structure/POSCAR-16-223-20 | 0
.../test/data/virtual_structure/POSCAR-16-224-20 | 0
.../test/data/virtual_structure/POSCAR-16-227-84 | 0
.../test/data/virtual_structure/POSCAR-160-221-16 | 0
.../test/data/virtual_structure/POSCAR-160-224-16 | 0
.../test/data/virtual_structure/POSCAR-160-227-16 | 0
.../test/data/virtual_structure/POSCAR-160-227-71 | 0
.../test/data/virtual_structure/POSCAR-160-fcc | 0
.../test/data/virtual_structure/POSCAR-161-222-16 | 0
.../test/data/virtual_structure/POSCAR-161-223-16 | 0
.../data/virtual_structure/POSCAR-161-230-conv-18 | 0
.../data/virtual_structure/POSCAR-161-230-prim-16 | 0
.../test/data/virtual_structure/POSCAR-161-bcc-16 | 0
.../test/data/virtual_structure/POSCAR-166-221-06 | 0
.../test/data/virtual_structure/POSCAR-166-224-06 | 0
.../test/data/virtual_structure/POSCAR-166-227-06 | 0
.../test/data/virtual_structure/POSCAR-166-227-38 | 0
.../test/data/virtual_structure/POSCAR-167-222-06 | 0
.../test/data/virtual_structure/POSCAR-167-223-06 | 0
.../data/virtual_structure/POSCAR-167-230-conv-06 | 0
.../data/virtual_structure/POSCAR-167-230-prim-06 | 0
.../test/data/virtual_structure/POSCAR-167-bcc-6 | 0
.../test/data/virtual_structure/POSCAR-17-227-60 | 0
.../test/data/virtual_structure/POSCAR-17-227-85 | 0
.../data/virtual_structure/POSCAR-17-230-conv-46 | 0
.../test/data/virtual_structure/POSCAR-18-227-86 | 0
.../test/data/virtual_structure/POSCAR-19-227-59 | 0
.../test/data/virtual_structure/POSCAR-19-227-89 | 0
.../data/virtual_structure/POSCAR-19-230-conv-51 | 0
.../test/data/virtual_structure/POSCAR-195-221-07 | 0
.../test/data/virtual_structure/POSCAR-195-222-07 | 0
.../test/data/virtual_structure/POSCAR-195-223-07 | 0
.../test/data/virtual_structure/POSCAR-195-224-07 | 0
.../test/data/virtual_structure/POSCAR-198-227-40 | 0
.../data/virtual_structure/POSCAR-198-230-conv-20 | 0
.../data/virtual_structure/POSCAR-199-230-conv-07 | 0
.../data/virtual_structure/POSCAR-199-230-prim-07 | 0
.../test/data/virtual_structure/POSCAR-2-221-28 | 0
.../test/data/virtual_structure/POSCAR-2-222-28 | 0
.../test/data/virtual_structure/POSCAR-2-223-28 | 0
.../test/data/virtual_structure/POSCAR-2-224-28 | 0
.../test/data/virtual_structure/POSCAR-2-227-41 | 0
.../test/data/virtual_structure/POSCAR-2-227-74 | 0
.../test/data/virtual_structure/POSCAR-2-227-94 | 0
.../data/virtual_structure/POSCAR-2-230-conv-39 | 0
.../data/virtual_structure/POSCAR-2-230-conv-57 | 0
.../data/virtual_structure/POSCAR-2-230-prim-28 | 0
.../test/data/virtual_structure/POSCAR-2-bcc-28 | 0
.../test/data/virtual_structure/POSCAR-20-227-53 | 0
.../test/data/virtual_structure/POSCAR-20-227-90 | 0
.../data/virtual_structure/POSCAR-20-230-conv-53 | 0
.../test/data/virtual_structure/POSCAR-200-221-02 | 0
.../test/data/virtual_structure/POSCAR-200-223-02 | 0
.../test/data/virtual_structure/POSCAR-201-222-02 | 0
.../test/data/virtual_structure/POSCAR-201-224-02 | 0
.../data/virtual_structure/POSCAR-205-230-conv-08 | 0
.../data/virtual_structure/POSCAR-206-230-conv-02 | 0
.../data/virtual_structure/POSCAR-206-230-prim-02 | 0
.../test/data/virtual_structure/POSCAR-207-221-04 | 0
.../test/data/virtual_structure/POSCAR-207-222-04 | 0
.../test/data/virtual_structure/POSCAR-208-223-04 | 0
.../test/data/virtual_structure/POSCAR-208-224-04 | 0
.../test/data/virtual_structure/POSCAR-21-221-23 | 0
.../test/data/virtual_structure/POSCAR-21-222-23 | 0
.../test/data/virtual_structure/POSCAR-21-223-23 | 0
.../test/data/virtual_structure/POSCAR-21-224-23 | 0
.../data/virtual_structure/POSCAR-21-230-conv-49 | 0
.../test/data/virtual_structure/POSCAR-212-227-19 | 0
.../data/virtual_structure/POSCAR-213-230-conv-09 | 0
.../data/virtual_structure/POSCAR-214-230-conv-04 | 0
.../data/virtual_structure/POSCAR-214-230-prim-04 | 0
.../test/data/virtual_structure/POSCAR-215-221-03 | 0
.../test/data/virtual_structure/POSCAR-215-224-03 | 0
.../test/data/virtual_structure/POSCAR-215-227-18 | 0
.../test/data/virtual_structure/POSCAR-216-227-03 | 0
.../test/data/virtual_structure/POSCAR-218-222-03 | 0
.../test/data/virtual_structure/POSCAR-218-223-03 | 0
.../data/virtual_structure/POSCAR-22-230-conv-26 | 0
.../data/virtual_structure/POSCAR-22-230-prim-23 | 0
.../data/virtual_structure/POSCAR-220-230-conv-03 | 0
.../data/virtual_structure/POSCAR-220-230-prim-03 | 0
.../test/data/virtual_structure/POSCAR-221-221-01 | 0
.../test/data/virtual_structure/POSCAR-222-222-01 | 0
.../test/data/virtual_structure/POSCAR-223-223-01 | 0
.../test/data/virtual_structure/POSCAR-224-224-01 | 0
.../test/data/virtual_structure/POSCAR-227-227-01 | 0
.../data/virtual_structure/POSCAR-230-230-conv-01 | 0
.../data/virtual_structure/POSCAR-230-230-conv-62 | 2 +-
.../data/virtual_structure/POSCAR-230-230-prim-01 | 0
.../data/virtual_structure/POSCAR-24-230-conv-23 | 0
.../data/virtual_structure/POSCAR-24-230-prim-20 | 0
.../test/data/virtual_structure/POSCAR-25-221-21 | 0
.../test/data/virtual_structure/POSCAR-25-223-21 | 0
.../test/data/virtual_structure/POSCAR-25-227-54 | 0
.../test/data/virtual_structure/POSCAR-26-227-64 | 0
.../data/virtual_structure/POSCAR-27-230-conv-48 | 0
.../test/data/virtual_structure/POSCAR-28-227-62 | 0
.../data/virtual_structure/POSCAR-29-230-conv-52 | 0
.../test/data/virtual_structure/POSCAR-3-221-29 | 0
.../test/data/virtual_structure/POSCAR-3-222-29 | 0
.../test/data/virtual_structure/POSCAR-3-223-29 | 0
.../test/data/virtual_structure/POSCAR-3-224-29 | 0
.../test/data/virtual_structure/POSCAR-3-227-82 | 0
.../test/data/virtual_structure/POSCAR-3-227-95 | 0
.../data/virtual_structure/POSCAR-3-230-conv-58 | 0
.../test/data/virtual_structure/POSCAR-30-227-65 | 0
.../test/data/virtual_structure/POSCAR-31-227-58 | 0
.../data/virtual_structure/POSCAR-32-230-conv-47 | 0
.../test/data/virtual_structure/POSCAR-33-227-63 | 0
.../test/data/virtual_structure/POSCAR-34-222-21 | 0
.../test/data/virtual_structure/POSCAR-34-224-21 | 0
.../test/data/virtual_structure/POSCAR-35-221-22 | 0
.../test/data/virtual_structure/POSCAR-35-224-22 | 0
.../test/data/virtual_structure/POSCAR-35-227-87 | 0
.../test/data/virtual_structure/POSCAR-37-222-22 | 0
.../test/data/virtual_structure/POSCAR-37-223-22 | 0
.../test/data/virtual_structure/POSCAR-38-221-26 | 0
.../test/data/virtual_structure/POSCAR-39-224-26 | 0
.../test/data/virtual_structure/POSCAR-4-227-77 | 0
.../test/data/virtual_structure/POSCAR-4-227-81 | 0
.../test/data/virtual_structure/POSCAR-4-227-96 | 0
.../data/virtual_structure/POSCAR-4-230-conv-59 | 0
.../test/data/virtual_structure/POSCAR-40-223-26 | 0
.../test/data/virtual_structure/POSCAR-41-222-26 | 0
.../data/virtual_structure/POSCAR-43-230-conv-25 | 0
.../data/virtual_structure/POSCAR-43-230-conv-29 | 0
.../data/virtual_structure/POSCAR-43-230-prim-22 | 0
.../data/virtual_structure/POSCAR-43-230-prim-26 | 0
.../test/data/virtual_structure/POSCAR-43-bcc-22 | 0
.../test/data/virtual_structure/POSCAR-43-bcc-26 | 0
.../test/data/virtual_structure/POSCAR-44-227-24 | 0
.../data/virtual_structure/POSCAR-45-230-conv-24 | 0
.../data/virtual_structure/POSCAR-45-230-prim-21 | 0
.../test/data/virtual_structure/POSCAR-46-227-28 | 0
.../test/data/virtual_structure/POSCAR-47-221-08 | 0
.../test/data/virtual_structure/POSCAR-47-223-08 | 0
.../test/data/virtual_structure/POSCAR-48-222-08 | 0
.../test/data/virtual_structure/POSCAR-48-224-08 | 0
.../test/data/virtual_structure/POSCAR-5-221-32 | 0
.../test/data/virtual_structure/POSCAR-5-222-32 | 0
.../test/data/virtual_structure/POSCAR-5-223-32 | 0
.../test/data/virtual_structure/POSCAR-5-224-32 | 0
.../test/data/virtual_structure/POSCAR-5-227-45 | 0
.../test/data/virtual_structure/POSCAR-5-227-75 | 0
.../test/data/virtual_structure/POSCAR-5-227-98 | 0
.../data/virtual_structure/POSCAR-5-230-conv-40 | 0
.../data/virtual_structure/POSCAR-5-230-conv-43 | 0
.../data/virtual_structure/POSCAR-5-230-conv-61 | 0
.../data/virtual_structure/POSCAR-5-230-prim-29 | 0
.../data/virtual_structure/POSCAR-5-230-prim-32 | 0
.../test/data/virtual_structure/POSCAR-5-bcc-29 | 0
.../test/data/virtual_structure/POSCAR-5-bcc-32 | 0
.../test/data/virtual_structure/POSCAR-51-227-29 | 0
.../test/data/virtual_structure/POSCAR-53-227-32 | 0
.../data/virtual_structure/POSCAR-54-230-conv-30 | 0
.../test/data/virtual_structure/POSCAR-6-221-30 | 0
.../test/data/virtual_structure/POSCAR-6-223-30 | 0
.../test/data/virtual_structure/POSCAR-6-227-79 | 0
.../data/virtual_structure/POSCAR-61-230-conv-31 | 0
.../test/data/virtual_structure/POSCAR-62-227-31 | 0
.../test/data/virtual_structure/POSCAR-65-221-09 | 0
.../test/data/virtual_structure/POSCAR-66-223-09 | 0
.../test/data/virtual_structure/POSCAR-67-224-09 | 0
.../test/data/virtual_structure/POSCAR-68-222-09 | 0
.../test/data/virtual_structure/POSCAR-7-222-30 | 0
.../test/data/virtual_structure/POSCAR-7-224-30 | 0
.../test/data/virtual_structure/POSCAR-7-227-78 | 0
.../test/data/virtual_structure/POSCAR-7-227-80 | 0
.../data/virtual_structure/POSCAR-7-230-conv-60 | 0
.../data/virtual_structure/POSCAR-70-230-conv-11 | 0
.../data/virtual_structure/POSCAR-70-230-prim-09 | 0
.../test/data/virtual_structure/POSCAR-70-bcc-9 | 0
.../data/virtual_structure/POSCAR-73-230-conv-10 | 0
.../data/virtual_structure/POSCAR-73-230-prim-08 | 0
.../test/data/virtual_structure/POSCAR-74-227-09 | 0
.../test/data/virtual_structure/POSCAR-75-221-25 | 0
.../test/data/virtual_structure/POSCAR-75-222-25 | 0
.../test/data/virtual_structure/POSCAR-76-227-61 | 0
.../test/data/virtual_structure/POSCAR-77-223-25 | 0
.../test/data/virtual_structure/POSCAR-77-224-25 | 0
.../test/data/virtual_structure/POSCAR-78-227-91 | 0
.../data/virtual_structure/POSCAR-78-230-conv-54 | 0
.../test/data/virtual_structure/POSCAR-8-221-31 | 0
.../test/data/virtual_structure/POSCAR-8-224-31 | 0
.../test/data/virtual_structure/POSCAR-8-227-44 | 0
.../test/data/virtual_structure/POSCAR-8-227-97 | 0
.../data/virtual_structure/POSCAR-80-230-conv-28 | 0
.../data/virtual_structure/POSCAR-80-230-prim-25 | 0
.../test/data/virtual_structure/POSCAR-81-221-24 | 0
.../test/data/virtual_structure/POSCAR-81-222-24 | 0
.../test/data/virtual_structure/POSCAR-81-223-24 | 0
.../test/data/virtual_structure/POSCAR-81-224-24 | 0
.../test/data/virtual_structure/POSCAR-81-227-88 | 0
.../data/virtual_structure/POSCAR-81-230-conv-50 | 0
.../data/virtual_structure/POSCAR-82-230-conv-27 | 0
.../data/virtual_structure/POSCAR-82-230-prim-24 | 0
.../test/data/virtual_structure/POSCAR-83-221-10 | 0
.../test/data/virtual_structure/POSCAR-84-223-10 | 0
.../test/data/virtual_structure/POSCAR-85-222-10 | 0
.../test/data/virtual_structure/POSCAR-86-224-10 | 0
.../data/virtual_structure/POSCAR-88-230-conv-12 | 0
.../data/virtual_structure/POSCAR-88-230-prim-10 | 0
.../test/data/virtual_structure/POSCAR-89-221-12 | 0
.../test/data/virtual_structure/POSCAR-89-222-12 | 0
.../test/data/virtual_structure/POSCAR-9-222-31 | 0
.../test/data/virtual_structure/POSCAR-9-223-31 | 0
.../test/data/virtual_structure/POSCAR-9-227-43 | 0
.../data/virtual_structure/POSCAR-9-230-conv-41 | 0
.../data/virtual_structure/POSCAR-9-230-conv-42 | 0
.../data/virtual_structure/POSCAR-9-230-prim-30 | 0
.../data/virtual_structure/POSCAR-9-230-prim-31 | 0
.../test/data/virtual_structure/POSCAR-9-bcc-30 | 0
.../test/data/virtual_structure/POSCAR-9-bcc-31 | 0
.../test/data/virtual_structure/POSCAR-91-227-67 | 0
.../test/data/virtual_structure/POSCAR-92-227-35 | 0
.../data/virtual_structure/POSCAR-92-230-conv-35 | 0
.../test/data/virtual_structure/POSCAR-93-223-12 | 0
.../test/data/virtual_structure/POSCAR-93-224-12 | 0
.../test/data/virtual_structure/POSCAR-95-227-36 | 0
.../data/virtual_structure/POSCAR-95-230-conv-32 | 0
.../test/data/virtual_structure/POSCAR-96-227-69 | 0
.../data/virtual_structure/POSCAR-98-230-conv-14 | 0
.../data/virtual_structure/POSCAR-98-230-prim-12 | 0
.../test/data/virtual_structure/POSCAR-99-221-13 | 0
python/test/delaunay_lattices.dat | 3136 +++++
python/test/lattices.dat | 3136 +++++
python/test/niggli_lattices.dat | 3136 +++++
python/test/test_collinear_spin.py | 41 +
python/test/test_hall_number_from_symmetry.py | 56 +
python/test/test_niggli_delaunay.py | 110 +
python/test/test_pure_trans.py | 1622 +++
python/test/test_reciprocal_mesh.py | 293 +
python/test/test_spglib.py | 207 +
python/test/vasp.py | 240 +
{test => ruby}/README | 0
{test => ruby}/extconf.rb | 0
ruby/getspg.c | 367 +
{test => ruby}/poscar.rb | 37 +-
{test => ruby}/poscar2findsym.rb | 6 +-
ruby/symPoscar.rb | 328 +
src/ChangeLog | 809 --
src/Makefile.am | 47 +-
src/Makefile.in | 649 -
src/arithmetic.c | 159 +
src/arithmetic.h | 40 +
src/cell.c | 501 +-
src/cell.h | 77 +-
src/debug.c | 35 +-
src/debug.h | 42 +-
src/delaunay.c | 402 +
src/delaunay.h | 48 +
src/determination.c | 182 +
src/determination.h | 55 +
src/hall_symbol.c | 3221 ++---
src/hall_symbol.h | 47 +-
src/kgrid.c | 154 +
src/kgrid.h | 81 +
src/kpoint.c | 1475 +-
src/kpoint.h | 104 +-
src/lattice.c | 345 -
src/lattice.h | 41 -
src/mathfunc.c | 199 +-
src/mathfunc.h | 74 +-
src/niggli.c | 465 +
src/niggli.h | 47 +
src/pointgroup.c | 480 +-
src/pointgroup.h | 67 +-
src/primitive.c | 985 +-
src/primitive.h | 55 +-
src/refinement.c | 1196 +-
src/refinement.h | 62 +-
src/site_symmetry.c | 442 +-
src/site_symmetry.h | 43 +-
src/sitesym_database.c | 81 +-
src/sitesym_database.h | 33 +-
src/spacegroup.c | 1513 +-
src/spacegroup.h | 73 +-
src/spg_database.c | 1193 +-
src/spg_database.h | 50 +-
src/spglib.c | 2529 ++--
src/spglib.h | 554 +-
src/spglib_f.c | 55 +-
src/spin.c | 276 +-
src/spin.h | 45 +-
src/symmetry.c | 937 +-
src/symmetry.h | 64 +-
src/test.c | 1001 ++
src/tetrahedron_method.c | 1091 ++
src/tetrahedron_method.h | 62 +
src/version.h | 43 +
test/check_consistency.py | 68 -
test/data/others/spg/README | 8 -
test/data/test-all.zsh | 22 -
test/data/test-cubic.zsh | 38 -
test/data/test-hexa.zsh | 39 -
test/data/test-monocli.zsh | 39 -
test/data/test-ortho.zsh | 39 -
test/data/test-refined_symmetry.zsh | 11 -
test/data/test-tetra.zsh | 38 -
test/data/test-tricli.zsh | 39 -
test/data/test-trigo.zsh | 39 -
.../virtual_structure/rhombohedral/findsym.log | 37 -
test/data/virtual_structure/test-virtual.zsh | 27 -
test/getspg.c | 336 -
test/symPoscar.rb | 137 -
953 files changed, 48533 insertions(+), 51821 deletions(-)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d8205af
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,92 @@
+*.py[cod]
+*~
+MANIFEST
+
+# C extensions
+*.so
+*.lo
+*.o
+python/src
+
+# Packages
+*.egg
+*.egg-info
+dist
+build
+eggs
+parts
+bin
+var
+sdist
+develop-eggs
+.installed.cfg
+lib
+include
+lib64
+
+# Installer logs
+pip-log.txt
+
+# Unit test / coverage reports
+.coverage
+.tox
+nosetests.xml
+
+# Translations
+*.mo
+
+# Mr Developer
+.mr.developer.cfg
+.project
+.pydevproject
+
+# Doc
+.buildinfo
+.doctrees
+_build
+
+# autotools
+AUTHORS
+INSTALL
+NEWS
+README
+aclocal.m4
+autom4te.cache/
+compile
+config.guess
+config.h.in
+config.sub
+install-sh
+missing
+Makefile.in
+config.log
+config.status
+configure
+depcomp
+ltmain.sh
+m4/
+src/Makefile.in
+Makefile
+config.h
+libtool
+src/.deps/
+src/.libs/
+src/Makefile
+src/libsymspg.la
+stamp-h1
+autoscan.log
+configure.scan
+test-driver
+
+example/a.out
+example/defs_basis.mod
+example/example
+example/spglib_f08.mod
+
+test/getspg.bundle
+test/mkmf.log
+
+findsym.log
+
+spglib_test*
+test-suite.log
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..4e22e24
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,155 @@
+matrix:
+ include:
+ - python: '2.7'
+ sudo: required
+ services:
+ - docker
+ env: DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64
+ DOCKER_DEPLOY=true
+ TRAVIS_PYTHON_VERSION='2.7'
+ - python: '2.7'
+ sudo: required
+ services:
+ - docker
+ env: DOCKER_IMAGE=quay.io/pypa/manylinux1_i686
+ PRE_CMD=linux32
+ DOCKER_DEPLOY=true
+ TRAVIS_PYTHON_VERSION='2.7'
+ - python: '2.7'
+ sudo: false
+ env: DOCKER_DEPLOY=false
+ TRAVIS_PYTHON_VERSION='2.7'
+ - python: '3.6'
+ sudo: false
+ env: DOCKER_DEPLOY=false
+ TRAVIS_PYTHON_VERSION='3.6'
+
+before_install:
+- if [[ "$TRAVIS_PYTHON_VERSION" == "2.7" ]]; then
+ wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh;
+ else
+ wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
+ fi;
+ echo $TRAVIS_PYTHON_VERSION;
+ bash miniconda.sh -b -p $HOME/miniconda;
+ export PATH="$HOME/miniconda/bin:$PATH";
+ conda update --yes conda;
+ conda install --no-update-deps --yes python="$TRAVIS_PYTHON_VERSION" pip numpy;
+ export PATH="$HOME/miniconda/bin:$PATH";
+ cd python;
+ git branch -v;
+ git describe --tags --dirty;
+ ./get_nanoversion.sh;
+ cat __nanoversion__.txt;
+ cd ..;
+
+install:
+- if [[ "$DOCKER_DEPLOY" == "false" ]]; then
+ aclocal;
+ autoheader;
+ libtoolize;
+ touch INSTALL NEWS README AUTHORS;
+ automake -acf;
+ autoconf;
+ ./configure;
+ make check;
+ cd python;
+ ln -s ../src .;
+ python setup.py install ;
+ cd ..;
+ else
+ docker pull $DOCKER_IMAGE;
+ fi
+
+script:
+- if [[ "$DOCKER_DEPLOY" == "false" ]]; then
+ cd python/test;
+ python -m unittest discover -b;
+ cd ../..;
+ else
+ cd python;
+ cp -a ../src .;
+ docker run --rm -v `pwd`:/io $DOCKER_IMAGE $PRE_CMD /io/build-wheels.sh;
+ ls wheelhouse/;
+ mkdir dist;
+ cp wheelhouse/spglib* dist/;
+ ls dist/;
+ cd ..;
+ fi
+
+before_deploy:
+- cd python
+
+deploy:
+# testing pypi
+- provider: pypi
+ server: https://test.pypi.org/legacy/
+ skip_cleanup: true
+ distributions: sdist
+ user: atztogo
+ password:
+ secure: "uqsoPpQNbie297e1iDPOHUVqM1HPHeZjIuAutWvVjZF6TpaksDhPNkK9sIE9Wh4sAVLi1wUCtjlMYjC7ElS94tsHwj6+tyxvQtrDmGUWRdf6BjFFZ6CdKBxMJwBQTryCScQGxR81NVlKAzKgZkdrhAxr93kDWmG0thYQrDQO8ihgfxgZUDnZnwarZCiUxwCsT/5VyUv6aRL+epXOUdlPZL2ypiRPlu+9zgwP348OCseh8EtlSLp0uv+K6qOMDVfjQeaEVl0CQIfbkIFMIxPB7xxBNn8pG1aMFJOks6QKo4dq0QhW5eCacPVy/WIQyZ96DNub+zcpFboCIIyWdLO7VFMhyp4PnsqbiTpHLPmImFLWuzaTvCc58Q/QRGRJ3+68kByX/eBWoWgBJED9uX+fSCumfUak+Q9UcVVy/+uh8DJmKlCEWBevk5mVb9evgmLDvpo4q9Vk2U3xv4Cj511PH9JJzcVa3Yg [...]
+ on:
+ repo: atztogo/spglib
+ branch: rc
+ tags: false
+ condition: "$DOCKER_DEPLOY = false"
+
+- provider: pypi
+ server: https://test.pypi.org/legacy/
+ skip_cleanup: true
+ user: atztogo
+ password:
+ secure: "uqsoPpQNbie297e1iDPOHUVqM1HPHeZjIuAutWvVjZF6TpaksDhPNkK9sIE9Wh4sAVLi1wUCtjlMYjC7ElS94tsHwj6+tyxvQtrDmGUWRdf6BjFFZ6CdKBxMJwBQTryCScQGxR81NVlKAzKgZkdrhAxr93kDWmG0thYQrDQO8ihgfxgZUDnZnwarZCiUxwCsT/5VyUv6aRL+epXOUdlPZL2ypiRPlu+9zgwP348OCseh8EtlSLp0uv+K6qOMDVfjQeaEVl0CQIfbkIFMIxPB7xxBNn8pG1aMFJOks6QKo4dq0QhW5eCacPVy/WIQyZ96DNub+zcpFboCIIyWdLO7VFMhyp4PnsqbiTpHLPmImFLWuzaTvCc58Q/QRGRJ3+68kByX/eBWoWgBJED9uX+fSCumfUak+Q9UcVVy/+uh8DJmKlCEWBevk5mVb9evgmLDvpo4q9Vk2U3xv4Cj511PH9JJzcVa3Yg [...]
+ on:
+ repo: atztogo/spglib
+ branch: rc
+ tags: false
+ condition: "$DOCKER_DEPLOY = true"
+
+# testing conda
+- provider: script
+ skip_cleanup: true
+ script: conda/anaconda_deploy.sh rc $ANACONDA_TOKEN $TRAVIS_BRANCH
+ on:
+ repo: atztogo/spglib
+ branch: rc
+ tags: false
+ condition: "$DOCKER_DEPLOY = false"
+
+# production pypi
+- provider: pypi
+ skip_cleanup: true
+ distributions: sdist
+ user: atztogo
+ password:
+ secure: "sjUxbFSrhflB/NqMwcJCmalmQRX1EN4zgsK2YyY93JEk16aep+5pRyV87Q3Q54L19PGOkTqOrGyvUhwxTHUweo87F2DM1gd695bg0rROcquvhwWxlTuhMhMoUGSxDljgKbEeTvLikFd91JX2Rr/deIZLog/c3z/m55MbgHqGoyR5p1twxqLoUcJHznM8Mnn/KTauVHVQKG/6sVQr/h9AhRB8qI5VRCcrnDqAWoePqkgibWjEKchx/lmgW4TiB15IIvmIVgMxNwUa2q91Lqn3AhZDOcB/TST34yZCx8j1TpLJgAtB8+aRnTdmtfhnPWN8gebVuHJni+EQYsq4sIOiRzsU5qHkCzmW2x6I/kcTTYWYW4KybKorWQcypotTkyDoSfFuhZ93kyMy6QXBdV0/3xskBAbA++Mc93u6KaNMDnBGLb9PoeIT6R6YRNnwDAYBSlJ8lMZoNwVKrPhxI11r15eAK/4Na [...]
+ on:
+ repo: atztogo/spglib
+ branch: master
+ tags: false
+ condition: "$DOCKER_DEPLOY = false"
+
+- provider: pypi
+ skip_cleanup: true
+ user: atztogo
+ password:
+ secure: "sjUxbFSrhflB/NqMwcJCmalmQRX1EN4zgsK2YyY93JEk16aep+5pRyV87Q3Q54L19PGOkTqOrGyvUhwxTHUweo87F2DM1gd695bg0rROcquvhwWxlTuhMhMoUGSxDljgKbEeTvLikFd91JX2Rr/deIZLog/c3z/m55MbgHqGoyR5p1twxqLoUcJHznM8Mnn/KTauVHVQKG/6sVQr/h9AhRB8qI5VRCcrnDqAWoePqkgibWjEKchx/lmgW4TiB15IIvmIVgMxNwUa2q91Lqn3AhZDOcB/TST34yZCx8j1TpLJgAtB8+aRnTdmtfhnPWN8gebVuHJni+EQYsq4sIOiRzsU5qHkCzmW2x6I/kcTTYWYW4KybKorWQcypotTkyDoSfFuhZ93kyMy6QXBdV0/3xskBAbA++Mc93u6KaNMDnBGLb9PoeIT6R6YRNnwDAYBSlJ8lMZoNwVKrPhxI11r15eAK/4Na [...]
+ on:
+ repo: atztogo/spglib
+ branch: master
+ tags: false
+ condition: "$DOCKER_DEPLOY = true"
+
+# production anaconda
+- provider: script
+ skip_cleanup: true
+ script: conda/anaconda_deploy.sh main $ANACONDA_TOKEN $TRAVIS_BRANCH
+ on:
+ repo: atztogo/spglib
+ branch: master
+ tags: false
+ condition: "$DOCKER_DEPLOY = false"
+
+after_deploy:
+- cd ..
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index e69de29..0000000
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..a5126bb
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,67 @@
+cmake_minimum_required(VERSION 2.4)
+project(spglib C)
+set(CMAKE_MACOSX_RPATH 1)
+set(CMAKE_C_FLAGS_RELEASE "-Wall -O2")
+set(CMAKE_C_FLAGS_DEBUG "-g -DSPGDEBUG -DSPGWARNING")
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE Release)
+endif(NOT CMAKE_BUILD_TYPE)
+message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
+
+# Version numbers
+file(READ ${PROJECT_SOURCE_DIR}/src/version.h version_file)
+string(REGEX MATCH "SPGLIB_MAJOR_VERSION ([0-9]+)" spglib_major_version ${version_file})
+set(spglib_major_version ${CMAKE_MATCH_1})
+string(REGEX MATCH "SPGLIB_MINOR_VERSION ([0-9]+)" spglib_minor_version ${version_file})
+set(spglib_minor_version ${CMAKE_MATCH_1})
+string(REGEX MATCH "SPGLIB_MICRO_VERSION ([0-9]+)" spglib_micro_version ${version_file})
+set(spglib_micro_version ${CMAKE_MATCH_1})
+set(serial "${spglib_major_version}.${spglib_minor_version}.${spglib_micro_version}")
+set(soserial "1")
+
+# Source code
+include_directories("${PROJECT_SOURCE_DIR}/src")
+set(SOURCES ${PROJECT_SOURCE_DIR}/src/arithmetic.c
+ ${PROJECT_SOURCE_DIR}/src/cell.c
+ ${PROJECT_SOURCE_DIR}/src/debug.c
+ ${PROJECT_SOURCE_DIR}/src/delaunay.c
+ ${PROJECT_SOURCE_DIR}/src/determination.c
+ ${PROJECT_SOURCE_DIR}/src/hall_symbol.c
+ ${PROJECT_SOURCE_DIR}/src/kgrid.c
+ ${PROJECT_SOURCE_DIR}/src/kpoint.c
+ ${PROJECT_SOURCE_DIR}/src/mathfunc.c
+ ${PROJECT_SOURCE_DIR}/src/niggli.c
+ ${PROJECT_SOURCE_DIR}/src/pointgroup.c
+ ${PROJECT_SOURCE_DIR}/src/primitive.c
+ ${PROJECT_SOURCE_DIR}/src/refinement.c
+ ${PROJECT_SOURCE_DIR}/src/site_symmetry.c
+ ${PROJECT_SOURCE_DIR}/src/sitesym_database.c
+ ${PROJECT_SOURCE_DIR}/src/spacegroup.c
+ ${PROJECT_SOURCE_DIR}/src/spg_database.c
+ ${PROJECT_SOURCE_DIR}/src/spglib.c
+ ${PROJECT_SOURCE_DIR}/src/spin.c
+ ${PROJECT_SOURCE_DIR}/src/symmetry.c)
+
+# Shared library
+add_library(symspg SHARED ${SOURCES})
+set_property(TARGET symspg PROPERTY VERSION ${serial})
+set_property(TARGET symspg PROPERTY SOVERSION ${soserial})
+install(TARGETS symspg LIBRARY DESTINATION ${PROJECT_SOURCE_DIR}/lib)
+
+# Static link library
+add_library(symspg_static STATIC ${SOURCES})
+set_property(TARGET symspg_static PROPERTY VERSION ${serial})
+set_property(TARGET symspg_static PROPERTY SOVERSION ${soserial})
+set_property(TARGET symspg_static PROPERTY OUTPUT_NAME symspg)
+install(TARGETS symspg_static ARCHIVE DESTINATION ${PROJECT_SOURCE_DIR}/lib)
+
+# Header file
+install(FILES ${PROJECT_SOURCE_DIR}/src/spglib.h DESTINATION ${PROJECT_SOURCE_DIR}/include)
+
+# make check
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})
+set(CMAKE_CTEST_COMMAND ctest -V)
+add_executable(spglibtest EXCLUDE_FROM_ALL ${PROJECT_SOURCE_DIR}/src/test.c ${SOURCES})
+add_test(spglibtest spglibtest)
+add_dependencies(check spglibtest)
diff --git a/COPYING b/COPYING
index 161ccc0..f22f393 100644
--- a/COPYING
+++ b/COPYING
@@ -1,25 +1,27 @@
-The "New" BSD License:
+Copyright (c) 2014, Atsushi Togo
+All rights reserved.
Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
+modification, are permitted provided that the following conditions
+are met:
-Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer. Redistributions
-in binary form must reproduce the above copyright notice, this list of
-conditions and the following disclaimer in the documentation and/or
-other materials provided with the distribution. Neither the name of
-the Dom Derrien nor the names of other contributors may be used to
-endorse or promote products derived from this software without
-specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE
-COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+* Neither the name of the <organization> nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT
+HOLDER> BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/ChangeLog b/ChangeLog
index e69de29..3e805c2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -0,0 +1,1315 @@
+2017-10-27 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.10.1
+
+ * src/spglib.c (get_dataset):
+
+ A large refactoring was made to replace the outer-most iteration
+ loop of symmetry search algorithm to a new file 'determination.c'.
+
+ * src/spglib.c (spg_get_schoenflies,spg_get_international):
+
+ These routines had accessed directly to a function close to
+ spacegroup.c. Now these are replaced by passing through
+ 'get_dataset'.
+
+2017-10-22 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.10.0
+
+ 'mapping_to_primitive' and 'std_mapping_to_primitive' in the
+ spglib dataset are put available on the spglib
+ document. 'spg_get_hall_number_from_symmetry' function
+ ('get_hall_number_from_symmetry' method for python) is also
+ available on the spglib document.
+
+2017-10-02 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.9.10
+
+ Many minor fixes and updates after many months from v1.9.9.
+
+ * src/symmetry.c (search_pure_translations):
+
+ Pure translation search is made faster using a property of
+ group, which is significantly effective for supercells with large
+ multiplicity.
+
+2016-12-14 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.9.9
+
+ * src/kpoint.c:
+
+ 'get_ir_reciprocal_mesh' was supporsed to work with mesh numbers
+ that are consistent with symmetry. Now this function somehow
+ supports when mesh numbers are symmetrically broken.
+
+2016-12-09 Atsushi Togo <atz.togo at gmail.com>
+
+ * src/symmetry.c:
+
+ static variable of 'angle_tolerance', 'sym_set_angle_tolerance',
+ 'sym_get_angle_tolerance' were removed toward letting it
+ thread-safe. Now 'angle_tolerance' is passed as an argument to
+ many functions in spglib.
+
+2016-11-02 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.9.8
+
+ * src/cell.c (cel_is_overlap_with_same_type):
+
+ 'cel_is_overlap_with_same_type' is implemented to check
+ overlapping of atoms along with checking atom type
+ agreement. Using this, atoms that have about the same position but
+ with different types can be separately handled.
+
+2016-10-19 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.9.6
+
+ Collection of minor fixes.
+
+ * src/cell.c (cel_set_cell):
+
+ Reduced atomic positions of the input cell are inisitalized by
+ their moving in the range between -0.5 and 0.5. The cell shape is
+ kept unchanged but this may need to be considered to handle some
+ extreme case in the future.
+
+2016-09-05 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.9.5
+ * src/spglib.h (SpglibError):
+
+ 'spg_get_error_code' and 'spg_get_error_message' were made to
+ handle a few types of internal errors.
+
+ * src/spglib.c, src/cell.c (cel_any_overlap_with_same_type):
+
+ To check overlap of atoms, 'cel_any_overlap' and
+ 'cel_any_overlap_with_same_type' were implemented. The former
+ doesn't check atomic type but the later does. Currently this check
+ is done before symmetry search and the later is used for
+ it. Therefore overlap of different types of atoms is allowed.
+
+2016-05-06 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.9.4
+
+ * src/spglib.h (SpglibDataset):
+
+ The member of SpglibDataset, 'setting', is renamed to 'choice',
+ and 'pointgroup_number' is removed.
+
+ * src/cell.c (get_overlap_table):
+
+ Fix unexpected behavior. This might happen in a rare case with
+ large tolerance.
+
+2016-04-28 Atsushi Togo <atz.togo at gmail.com>
+
+ * src/spglib.c (spg_get_spacegroup_type):
+
+ Arithmetic crystal class number and symbol are returned. Python
+ interface 'get_spacegroup_type' was created.
+
+ * src/spglib.c (get_dataset):
+ * src/site_symmetry.c (ssm_get_exact_positions, set_exact_location):
+
+ Two iterative loops are implemented. The outer one is in
+ get_dataset, and the inner one is in ssm_get_exact_positions.
+ Each site-symmetry is checked in set_exact_location. In the inner loop,
+ symmetry tolerance is controled until all site-symmetries become
+ reasonable. If the inner loop finally fails, the symmetry
+ tolerance in the outer loop is reduced and the symmetry search
+ starts from the begginig.
+
+2016-04-17 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.9.2
+
+ * src/symmetry.c (get_lattice_symmetry):
+
+ The treatment after the conditon, order of point symmetry
+ becomes larger than 48, is found was bad and it induced
+ segfault. It is fixed and a better treatment for angle_tolerance
+ is implemented as an iterative method.
+
+ * src/spglib.c (spg_delaunay_reduce):
+
+ spg_delaunay_reduce is made as an interface to the Delaunay
+ reduction.
+
+ * src/spacegroup.c (search_spacegroup):
+
+ A check if excess symmetry operations are found for a primitive
+ cell is inserted by watching its point group. This made the
+ algorithm of database matching safer.
+
+2016-04-11 Atsushi Togo <atz.togo at gmail.com>
+
+ * src/delaunay.c:
+
+ lattice.{c,h} are renamed to delaunay.{c.h},
+ respectively. Function names in them, *get_smallest_lattice, are
+ changed to *delaunay_reduce.
+
+2016-04-06 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.9.1
+
+ This is a minor update. Only a small notable change is in the
+ python wrapper, where for crystal structure, now a tuple format
+ can be sued.
+
+2015-12-20 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.9.0
+
+ Pyspglib was considered as a special extention of spglib, but now
+ it starts to be a part of spglib as a usual extention. Therefore
+ the package name is changed to spglib, and this python wrapper
+ will be maintained to work at every update of c-spglib.
+
+ Scripts for pypi and conda package environments are prepared in
+ python wrapper by a lot of help from Paweł T. Jochym.
+
+ In previous versions, tests were in the test directory and space
+ group numbers were checked for many POSCARs by using combination
+ of ruby-spglib and shell script. Now a similar test is written in
+ a form of python unit test in the 'python' directory. Previous
+ 'test' directory is renamed to 'ruby' and the POSCARs were moved
+ under the 'python/test' directory.
+
+2015-12-13 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.8.3
+
+ * src/version.h:
+
+ Made functions to return spglib version number,
+ 'spg_get_major_version()', 'spg_get_minor_version()',
+ 'spg_get_micro_version()' in 'spglib.c'. This version number is
+ stored in 'version.h'.
+
+2015-08-19 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.8.2.2
+
+ * src/spglib.c (is_rhombohedral):
+
+ Regardless of rhombohedral or hexagonal setting, a primitive
+ rhombohedral is found when using finding primitive cell functions.
+
+2015-08-03 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.8.2.1
+
+ * src/spacegroup.c (spa_transform_to_primitive):
+
+ Bug fix of transformation matrix with centering. The side to be
+ multiplied was wrong.
+
+ * Version 1.8.2
+
+ * k-points and tetrahedron method
+
+ k-point grid definitions are separated to 'kgrid.c'.
+ 'kgrid.{c,h}' and 'tetrahedron_method.{c,h}' are moved to a new
+ git repository of kspclib (https://github.com/atztogo/kspclib).
+ Tetrahedron method related spglib-APIs are removed.
+
+ * Choice of triclinic basis vector directions is implemented and
+ the definition is written in the document.
+
+2015-07-09 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.8.1
+
+ In SpglibDataset, definitions of transformation matrix and origin
+ shift are changed, member names of '*brv_*' are changed to
+ '*std_*', and the members, pointgroup_number and
+ pointgroup_symbol, are added.
+
+ New function 'spg_standardize_cell' is implemented. This can also
+ give 'standardized primitive cell' with 'to_primitive =
+ 1'.
+
+ Due to change of internal implementation, the order of symmetry
+ operations obtained can be different from the recently released
+ versions, but the set is the same.
+
+2015-06-25 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.8
+
+ Relatively large code refactoring was made. Especially
+ 'primitive.c' was changed a lot.
+
+ Write license statement (New BSD) in the source codes.
+
+ * src/spglib.c:
+
+ A new function 'spg_find_standardized_primitive' is
+ implemented. This function allows to create a primitive cell from
+ the obtained standardized conventional unit cell with
+ transformation using pre-determined choice of centring basis
+ vectors.
+
+2015-06-15 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.7.4
+
+ Wyckoff position database for rhombohedral cell was
+ wrong. Probably this bug was hidden by the previous default choice
+ of basis vectors but from version 1.7.3 it became revealed.
+
+2015-06-14 Atsushi Togo <atz.togo at gmail.com>
+
+ * src/sitesym_database.c
+
+ Bug in database of hP of rhombohedral was fixed. This bug was
+ affected after version 1.7.3. 'make_Wyckoff_db.py' is fixed and
+ then the database in 'sitesym_database.c' is recreated by
+ make_Wyckoff_db.py.
+
+2015-04-06 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.7.3
+
+2015-04-05 Atsushi Togo <atz.togo at gmail.com>
+
+ * src/triplet_kpoint.{c,h}:
+
+ Code to handle triplets of kpoints was separated from
+ kpoint.c. Detail of functions was revisited and modified, e.g.,
+ taking modulo of grid address is now included in
+ get_grid_point_double_mesh in most cases. This is probably safe
+ change, but may induce some tricky bug, which has to be
+ remembered. kpt_get_grid_point should be moved to spglib.c with
+ calling kpt_get_grid_point_double_mesh someday soon. It is noted
+ here for not forgetting that get_third_q_of_triplets_at_q in
+ triplet_kpoint.c might be written better around the point using
+ mat_modulo_i3. In triplet_kpoint.c, mat_modulo_i3 is used only
+ here, so eliminating this can move mat_modulo_i3 to kpoint.c as a
+ local function as before.
+
+2015-04-03 Atsushi Togo <atz.togo at gmail.com>
+
+ * src/spacegroup.c (match_hall_symbol_db_ortho):
+
+ Change the convention of lengths of basis vector preference to:
+ a < b < c for hall number 290 and a < c < b for 291 or
+ a < b < c for hall number 291 and a < c < b for 290,
+ to preserve a < b convention found in Parthe et al, Journal of
+ Alloys and Compounds, 197 (1993) 291-301.
+
+2015-03-31 Atsushi Togo <atz.togo at gmail.com>
+
+ * src/spacegroup.c (match_hall_symbol_db_ortho):
+
+ Fix choice of lengths of basis vectors in orthorhombic Pbca. There
+ are two choices for Pbca. The basis vectors can be chosen so as to
+ a < b < c or b < a < c, which correspond to these two choices,
+ respectively. The correspondance can be flipped, i.e., in a case,
+ a < b < c for hall number 290 and b < a < c for 291, but in some
+ other case, a < b < c for hall number 291 and b < a < c for 290.
+
+2015-03-20 Atsushi Togo <atz.togo at gmail.com>
+
+ * src/hall_symbol.c (find_hall_symbol):
+
+ A critical bug was found in version 1.7.2, where origin shift was
+ given for the primitive cell but not for the Bravais lattice. This
+ was fixed. The version 1.7.2 was removed from the download site
+ and temporary 1.7.3-pre is put on the download site.
+
+2015-03-08 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.7.2
+
+ * src/niggli.*:
+
+ Routine of Niggli cell reduction is imported from
+ https://github.com/atztogo/niggli.
+
+2015-02-24 Atsushi Togo <atz.togo at gmail.com>
+
+ * src/spacegroup.c (get_symmetry_settings):
+
+ Monoclinic lattice vectors are chosen as |a| < |c| with b as the
+ unique axis. This is achieved by get_Delaunay_reduction_2D.
+
+ * src/lattice.c (get_Delaunay_reduction_2D):
+
+ 2D Delaunay reduction is implemented based on that of 3D.
+
+ * src/lattice.c (lat_smallest_lattice_vector_2D):
+
+ Create an interface to access 2D Delaunay reduction.
+
+
+2015-02-11 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.7.1
+
+ There are minor changes to make functions robust and code clean.
+
+ * src/spglib.c
+
+ spg(at)_get_symmetry_with_collinear_spin is changed to return
+ equivalent atoms.
+ spg_get_international and spg_get_schoenflies call iterative
+ routine to determine space group type.
+
+ * src/primitive.h:
+
+ Primitive structure is defined. This is expected to make routines
+ related to primitive cell comprehensive. Memory for a pointer of
+ the Primitive variable may be allocated using prm_alloc_primitive
+ and freed by prm_free_primitive.
+
+ * src/spacegroup.c:
+
+ spa_get_spacegroup was replaced by iterative routine and now
+ returns a Primitive structure.
+
+2014-11-19 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.7
+
+ Space group operations for non-standard setting can be determined
+ using spg_get_dataset_with_hall_number. To achieve this, many
+ lines are added and changed. Due to the big change of the code,
+ there may be bugs, and maybe it's safer to wait for a while to use
+ this version for mission critical systems.
+
+ Two important changes are:
+
+ * src/spglib.c (spg_get_dataset_with_hall_number)
+
+ In space group type determination, Hall symbol serial number can
+ be specified.
+
+ * src/spglib.h (SpglibDataset)
+
+ Crystallographic setting information is stored in
+ 'setting'. Symmetrized and standarized crsytal structure is stored
+ in 'n_brv_atoms', 'brv_lattice', 'brv_types', and 'brv_positions',
+ which are the same information obtained using 'spg_refine_cell',
+ except that non-standard setting can be specified in
+ 'spg_get_dataset_with_hall_number'.
+
+2014-10-16 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.6.4
+
+ * src/refinement.c (refine_cell):
+
+ An iterative approach is implemented for refine_cell.
+
+2014-09-12 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.6.3
+
+ * src/primitive.c:
+
+ Atom type is checked in finding a primitive cell. This enables to
+ handle different types of atoms that locate at the same position.
+ for the case of an automatically generated crystal structure data
+ from a fractional occupancy, etc.
+
+ * Version 1.6.2
+
+ Minor bug fixes.
+
+ * src/spglib.c (spg_get_symmetry_from_database):
+
+ An API to access space group operations database is implemented.
+
+2014-08-04 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.6.1:
+
+ * src/{refinement.*,primitive.*,spglib.c}
+
+ Fix symmetry finding bug for supercell that has lower point group
+ than the primitive cell.
+
+ * src/spglib.*
+
+ New functions of spg_get_spacegroup_type and
+ spg_get_grid_point. The former offers difrect access to space
+ group type database using hall symbol number. The later perfoms
+ converting grid address to grid point index on the reciprocal
+ mesh.
+
+ * pyspglib update.
+
+2014-02-17 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.6.0:
+
+ * src/spglib.c (spg_get_spacegroup_type):
+
+ A function is made for accessing space-group-type database.
+
+2014-01-07 Atsushi Togo <atz.togo at gmail.com>
+
+ * src/tetrahedron_method.*:
+
+ Tetrahedron method is implemented. Example is found in the example
+ directory.
+
+2013-09-10 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.5.2:
+
+ * kpoint.c (kpt_relocate_BZ_grid_address):
+
+ New function kpt_relocate_BZ_grid_address is implemented in
+ kpoint.c. k-points on the mesh of the reciprocal primitive lattice
+ are relocated to fit in the Brillouin zone. To treat
+ translationally equivalent k-points, the memory space of
+ bz_grid_address[prod(mesh + 1)][3] is required. bz_map[prod(mesh
+ * 2 - 1)] is used to map k-points on the expanded k-space where
+ the shape is same as the reciprocal primitive lattice but the size
+ along each lattice vector is multiplied by mesh * 2 - 1. BZ zone
+ is included in this expanded k-space, so the bz_map can hold the
+ location of relocated k-points. Irreducible k-points are stored
+ from 0 to index of prod(mesh) - 1 in bz_grid_address in the same
+ order of grid_address, and the translationally equivalent k-points
+ are stored after that. Fast indexing of the location of relocated
+ k-points can be executed using bz_map with similar way to usual
+ grid_address scheme.
+
+ * kpoint.c (kpt_get_BZ_triplets_at_q):
+
+ New function kpt_get_BZ_triplets_at_q is implemented using
+ relocate_BZ_grid_address. This generates a set of triplets that
+ cleanly fit in BZ.
+
+2013-09-10 Atsushi Togo <atz.togo at gmail.com>
+
+ * kpoint.c:
+
+ Remove get_triplets_reciprocal_mesh and
+ extract_triplets_reciprocal_mesh_at_q. Add
+ get_grid_triplets_at_q. This function treats q-points on boundary
+ correctly.
+
+ * spglib.c (spg_get_symmetry):
+
+ Previously symmetry operations were obtained by sym_get_operation.
+ Now it is changed so that they are extracted from spglib_dataset.
+
+2013-04-16 Atsushi Togo <atz.togo at gmail.com>
+
+ * symmetry.c (get_operation):
+
+ In some case, get_space_group_operation returns more than 48
+ symmetry operations for a primitive cell. To avoid this, an
+ iterative approach, which is just reducing tolerance gradually to
+ achieve number of symmetry operations <= 48, is implemented.
+
+ * symmetry.c:
+ In the symmetry operation search, rot[] and trans[] were used. Now
+ they are replaced by Symmetry *symmetry in symmetry.c.
+
+
+2013-04-14 Atsushi Togo <atz.togo at gmail.com>
+
+ * Fortran interface given by Dimitar Pashov:
+
+ The new fortran interface is given by Dimitar Pashov, which is
+ much safer than the previous one. The new fortran interface, its
+ example, and makefile are found in the example directory as
+ spglib_f08.f90, example_f08.f90 and Makefile_f08.
+
+ * spglib.h, spglib.c, kpoint.h, kpoint,c:
+
+ Symprec parameter was removed from spg_get_stabilized_reciprocal_mesh.
+
+2013-01-28 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib.c, spglib_f.c:
+
+ Pointerd out by Michael Rutter that the length of charasters of
+ space-group type symbol (International table) was wrong in
+ spglib_f.c. That of Schoenflies symbol was also found wrong. The
+ former and latter were fixed as from 21 to 11 and from 10 to 7,
+ respectively.
+
+2012-10-10 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.3
+
+ Rethink algorithms to search symmetry operations for speed-up and
+ stability. Many small modifications are applied. Some parts of the
+ codes that look unnecessary were removed but this change might
+ make the code unstable.
+
+ * symmetry.c (get_translation):
+
+ Improve OpenMP efficiency. Number of atoms to enable OpenMP
+ concurrency is set as 1000 (NUM_ATOMS_CRITERION_FOR_OPENMP).
+
+2012-10-09 Atsushi Togo <atz.togo at gmail.com>
+
+ * symmetry.c (sym_get_pure_translation, get_translation):
+
+ In 'sym_get_pure_translation', iterative approach to search
+ pure_translation was employed. But 'sym_get_pure_translation' was
+ only used from two functions in primitive.c. In these two
+ functions, tolerance is iteratively reduced when the search
+ fails. Because there is no need to do iteration twice, the
+ iteration part in 'sym_get_pure_translation' was removed.
+
+ * primitive.{c,h}:
+
+ 'get_primitive_with_pure_translation' was replaced by
+ 'get_primitive_and_pure_translation'. The former was only used
+ from 'get_operation' in symmetry.c and the interative approach was
+ implemented in 'get_operation'. The iterative part was moved into
+ 'get_primitive_and_pure_translation'.
+
+ The Primitive structure was defined in primitive.h. This just
+ packs Cell * primitive_cell and VecDBL * pure_trans. The Primitive
+ structure is only used in 'get_operation' in symmetry.c and
+ '(prm_)get_primitive_and_pure_translation' in primitive.c.
+
+
+2012-10-08 Atsushi Togo <atz.togo at gmail.com>
+
+ * spacegroup.c (get_hall_number_local_iteration):
+
+ REDUCE_RATE to reduce number of symmetry operations is changed
+ from 0.2 to 0.95. Symmetry operations depend on tolerance
+ delicately.
+
+ * Remove many lines of debug_print:
+
+ Now to follow the flow is more important than to see the
+ detailed behavior of implementation.
+
+2012-10-03 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.2.5
+ * primitive.c:
+
+ Separate out get_primitive_with_mapping_table from
+ prm_get_primitive_with_mapping_table. Rename
+ prm_get_primitive_with_all to
+ get_primitive_with_pure_translation.
+ In get_primitive_with_pure_translation, it was
+ if (pure_trans->size > 0)
+ but not it was fixed to
+ if (pure_trans->size > 1)
+ not to search primitive cell when pure_trans->size == 1.
+
+2012-10-01 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.2.4
+ * kpoint.c (get_ir_reciprocal_mesh):
+
+ In spglib, k-point grid is indexed as, for example,
+
+ 0 1 2 3 4 5 6 -5 -4 -3 -2 -1
+
+ for 12 points mesh. Now the different index style such as
+
+ 0 1 2 3 4 5 -6 -5 -4 -3 -2 -1
+
+ is activated by CFLAGS='-DGRID_BOUNDARY_AS_NEGATIVE' before
+ running configure script at the compilation time.
+
+ * symmetry.c (get_operation):
+
+ In the iterative reduction of tolerance of primitive cell search,
+ pure_trans was searched by a fixed tolerance rather than the
+ reduced one. This is fixed to use the reduced tolerance at each
+ iteration.
+
+2012-08-13 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.2.3
+ * symmetry.c (is_identity_metric):
+
+ To check identity of metric tensors, too small angle induces
+ numerical size error, so if the dtheta is calculated smaller than
+ 1e-6, automatically set the angles be identical.
+
+ * spacegroup.c (get_hall_number_local_iteration):
+
+ Implementation of iterative reduction of symmetry tolerance to
+ search symmetry operation to get Hall symbol is separated as the
+ function get_hall_number_local_iteration and the tolerance
+ reduction rate of REDUCE_RATE is changed from 0.2 from 0.95.
+
+2012-07-17 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.2.2
+ * lattice.c (get_centering):
+
+ Tranformation A-centring monoclinic lattice to C-centring
+ monoclinic lattice preserving b-axis is not well handled and now
+ the matrix 'monocli_a2c' is used for it.
+
+2012-07-14 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.2.1
+ * pointgroup.c (laue_one_axis):
+
+ Transformation matrix is expected to be always positive, but it
+ was not correctly implemented.
+
+2012-05-28 Atsushi Togo <atz.togo at gmail.com>
+
+ * refinement.c (reduce_symmetry_in_frame):
+
+ Fix memory leak by freeing lattice_trans.
+
+2012-04-26 Atsushi Togo <atz.togo at gmail.com>
+
+ The numbering of the hall symbol is included in the 'struct
+ SpglibDataset'. This starts from 1 to 530.
+
+2012-04-25 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib.c, spglib.h:
+
+ To find symmetry with angle tolerance, for spg_* functions,
+ respective spgat_* functions are prepared. In the spgat_*
+ functions, the last variable is the angle tolerance (in degrees).
+
+ * symmetry.c:
+
+ The way to find lattice symmetry is changed. Now a new static
+ variable, 'angle_tolerance', can be used for the tolerance of
+ angle. Therefore the non-diagonal elements of metric tensor are
+ directry compared with this angle. 'angle_tolerance' can be
+ accessed via 'sym_set_angle_tolerance' inside spglib. However the
+ default behavior does not use the angle tolerance. In the default
+ behavior, averaged_lattice_vector_length * sin(delta_theta) is
+ compared with usual 'symprec'. The default behavior is invoked
+ when 'angle_tolerance' has negative value. These are implemented
+ in 'is_identity_metric' in symmetry.c.
+
+2012-04-12 Atsushi Togo <atz.togo at gmail.com>
+
+ * lattice.c (get_centering):
+
+ Correction matrix for I-centring monoclinic was implemented.
+
+2012-03-03 Atsushi Togo <atz.togo at gmail.com>
+
+ * primitive.c:
+
+ The functions of 'prm_get_current_tolerance',
+ 'set_current_tolerance' and the value of static double
+ current_tolerance were introduced in 'primitive.c'. These are used
+ to return reduced tolerance value that is iteratively determined
+ in 'prm_get_primitive_with_mapping_table'.
+
+ The interative technique is used in several parts to obtain
+ possible primitive cell parameters by reducing symmetry
+ tolerance. Only in 'get_overlap_table' in 'primitive.c', the
+ interative techinique is used with reducing and increasing the
+ tolerance, i.e., in the other parts, only reducing.
+
+2012-03-02 Atsushi Togo <atz.togo at gmail.com>
+
+ * Version 1.1.2
+ * refinement.c, primitive.c, symmetry.c:
+
+ Modifications at many small parts of the code for improve
+ robustness with large symmetry tolerance values.
+
+2012-02-28 Atsushi Togo <atz.togo at gmail.com>
+
+ * primitive.c (get_overlap_table):
+
+ Simplify the algorithm for search overlapping table. The new
+ algorithm is as follows: Symmetry tolerance monotonically
+ decreases by REDUCE_RATE = 0.95 when the search is failed. When
+ number of overlapping atoms is found smaller than the ratio of
+ number of atoms between original and primitive cells, the symmetry
+ tolerance is doubled. For this algorithm, 'check_overlap_table'
+ function was implemented.
+
+2012-02-09 Atsushi Togo <atz.togo at gmail.com>
+
+ * spin.{c,h}:
+
+ 'spin.{c,h}' are added. Colliear spins on atoms are employed as
+ additional constraints to search symmetry. The API is
+ 'spg_get_symmetry_with_collinear_spin'. (reduce_symmetry_in_frame):
+
+ Bug fix to get refined symmetry operations. When the original cell
+ is not primitive and the lattice symmetry is lower than that
+ primitive lattice, the symmetry of primitive has to be
+ reduced to those belongs to the lower symmetry. But this was not
+ correctly done.
+
+2011-10-05 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib.c (spg_get_pointgroup):
+
+ 'spg_get_pointgroup' is implemented. This is used to obtain point
+ group symbols.
+
+2011-09-30 Atsushi Togo <atz.togo at gmail.com>
+
+ * site_symmetry.c (get_Wyckoff_notation):
+
+ Bug fix of assignment of Wyckoff letters
+ 'sitesym_database.c' is compressed. Now only the first element of
+ 'coordinates' is used to aasign a Wyckoff letter.
+
+2011-08-09 Atsushi Togo <atz.togo at gmail.com>
+
+ * symmetry.c (sym_get_pure_translation):
+
+ Iterative reduction of symmetry tolerance to find pure
+ translations is implemented as well as different parts.
+
+2011-07-29 Atsushi Togo <atz.togo at gmail.com>
+
+ * kpoint.c, kpoint.h:
+
+ symmetry_kpoint.c and symmetry_kpoint.h are renamed as kpoint.c
+ and kpoint.h, respectively.
+
+2011-07-06 Atsushi Togo <atz.togo at gmail.com>
+
+ * site_symmetry.c:
+
+ A set of equivalent atoms is returned. It is accessible
+ through spg_get_dataset. (spglib-1.0.7)
+
+2011-07-05 Atsushi Togo <atz.togo at gmail.com>
+
+ * site_symmetry.c, sitesym_database.c, spglib-1.0.6:
+
+ Newly added two source files (and also *.h). The part related to
+ site symmetry in refinement.c is moved to site_symmetry.c. Wyckoff
+ position determination is implemented in site_symmetry.c and the
+ database is in sitesym_database.c. The pointers in the structure
+ SpglibDataset are made free by calling spg_free_dataset. It was
+ difficult to implement Wyckoff position determination without
+ Yusuke Seko's formated crystallographic database. I appreciate his
+ kind offer. (spglib-1.0.6)
+
+ * primitive.c (prm_get_primitive):
+
+ The function is modified to return mapping table from input cell
+ to primitive cell as the first argument.
+
+2011-06-18 Atsushi Togo <atz.togo at gmail.com>
+
+ * symmetry.c:
+
+ OpenMP is included to search translations with each rotation.
+ Compilation with gcc is achived by '-lgomp' and '-fopenmp'.
+
+ * refinement.c:
+
+ Performance tuning was made for 'get_refined_symmetry_operations'.
+
+2011-06-18 Atsushi Togo <atz.togo at gmail.com>
+
+ * refinement.c:
+
+ In 'ref_get_refined_symmetry_operations', it was forgotten to
+ consider origin shift to obtain symmetry operations from
+ database. This is fixed by modifying translations in
+ 'set_translation_with_origin_shift'.
+
+2011-06-15 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib-1.0.4:
+
+ The new version of spglib is released. To the next version,
+ implementation of Wyckoff positions is planed.
+
+
+2011-06-15 Atsushi Togo <atz.togo at gmail.com>
+
+ * pyspglib:
+
+ pyspglib didn't work correctly. It was fixed.
+
+
+2011-06-15 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib.c:
+
+ A new function 'spg_get_dataset is implmented. This returns a
+ 'SpglibDataset' type structure that is defined in 'spglib.h'. This
+ includes refined informations of crystal symmetry. For example,
+ the symmetry operations are derived based on the operations in
+ database and so they are different from those obtained from
+ 'spg_get_symmetry'. Wyckoff positions are to be impmemented.
+
+
+2011-06-13 Atsushi Togo <atz.togo at gmail.com>
+
+ * spg_database.c:
+
+ A static array of 'symmetry_operations' is compressed because it
+ was very large. It contains symmetry operations of 530 hall
+ symbols. Each space group operation requires a rotation 3x3 matrix
+ and a translation vector, therefore 12 elements were implemented
+ for that. Now it is compressed using ternary numerical system for
+ rotation and duodecimal system for translation. This is achieved because
+ each element of rotation matrix can have only one of {-1,0,1}, and
+ the translation can have one of {0,2,3,4,6,8,9,10} divided by
+ 12. Therefore 3^9 * 12^3 = 34012224 different values can map space
+ group operations. In principle, octal numerical system can be used
+ for translation, but duodecimal system is used for the convenient.
+ The fact that determinant of rotation matrix is -1 or 1 could be
+ used as a constraint to reduce the number of mapping space. These
+ may be implemented if more compression is required.
+
+2011-06-10 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib.c:
+
+ spg_show_symmetry was removed.
+
+2011-05-17 Atsushi Togo <atz.togo at gmail.com>
+
+ * primitive.c, etc
+
+ A tolerance to find primitive lattice vectors sometimes fails
+ because found pure translations do not give possible lattice
+ vectors in which the volume ratio of the input cell and primitive
+ cell does not match to the number of pure translations. So
+ iterative tolerance reduction is implemented. The reduced
+ tolerance should be used to find spacegroup and refined cell
+ because to hold consistency with symmetry operations to be found
+ for primitive cell. The reduced tolerance is not used inside
+ symmetry opration search. The tolerance used to find primitive
+ cell is stored in a static variable 'tolerance' in primitive.c and
+ this can be accessed via prm_get_tolerance().
+
+ Old 'prm_get_primitive' was removed and new one is that of
+ 'prm_get_primitive_with_pure_trans' renamed. So now pure
+ translations are always required to call to obtain primitive cell.
+
+ When calling 'prm_get_primitive' and if the input cell is already
+ primitive, primitive->size=0 was returned in the previous
+ implementation, but in the new implementation, primitive cell that
+ has smallest lattice vectors is returned.
+
+
+2011-04-21 Atsushi Togo <atz.togo at gmail.com>
+
+ * refinement.c (refine_cell):
+
+ When an input structure is a primitive cell but the lattice is not
+ smallest, 'refine_cell' didn't work correctly. This is fixed by
+ using new function of 'prm_get_cell_with_smallest_lattice' in
+ primitive.c. This function was originally in spacegroup.c as
+ 'get_cell_with_smallest_lattice'. Following this, spacegroup.c,
+ primitive.c, and primitive.h were modified.
+
+2011-03-18 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib-1.0.3.1:
+
+ A critical bug in the structure refinment in refinement.c was
+ removed. A tolerance parameter in hall_symbol.c came back to
+ is_hall_symbol.
+
+2011-03-15 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib-1.0.3:
+
+ Crystal structure refinement by spg_refine_cell is
+ implemented. Code around tolerance is tunded up, hopefully
+ becoming more robust with large tolerance.
+
+ * refinement.c:
+
+ bravais.{c,h} are renamed to refinement.{c,h}.
+
+2011-03-14 Atsushi Togo <atz.togo at gmail.com>
+
+ * debug.h (SPGWARNING):
+
+ Debug option of SPGWARNING has been defined. This may be used for
+ beta-tests.
+
+ * bravais.c, spacegrouop.c, hall_symbol.c, lattice.c, primitive.c:
+
+ Tolerance parameter has been reconsidered to make finding
+ spacegroup robust with a loose tolerance value. Tolerance is used
+ for Cartesian distance, norm squared, or volume. It wold be
+ avoided for ratio, reduced position or distance.
+
+ * bravais.c:
+
+ Exact locations of atoms are obtained by get_exact_location in
+ bravais.c.
+
+ * sapcegroup.c:
+
+ Iterative search for hall symbol is implemented in
+ get_hall_number. The tolerance is sequentially reduced until
+ finding a hall symbol. With the reduced tolerance, symmetry
+ operations are researched by sym_reduce_operation. The cost of the
+ reduction of symmetry operations is expeted much smaller than that
+ of the increase of symmetry operations with increasing tolerance.
+
+ * hall_symbol.c:
+
+ All tolerance parameters were kicked out.
+
+ * lattice.c:
+
+ get_base_center is modified to remove the tolerance paremeter. The
+ centring check is now based on
+ integers. lat_smallest_lattice_vector returns 1 or 0 to show if
+ the lattice has non-zero volume or not.
+
+ * primitive.c:
+
+ Primitive lattice is made of pure translations. Previously the
+ primitive lattice vectors are constructed from pure
+ translations. Currently, it is set such that the primitive lattice
+ parameters multiplied with 'intergers' become the original
+ latttice parameters.
+
+ * mathfunc.c (mat_is_int_matrix):
+
+ A macro of INT_PREC (currently set 0.1 ) is used for checking a
+ value is integer or not in mat_is_int_matrix.
+
+2011-02-18 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib-1.0.2:
+
+ Bug fix in finding lattice point symmetry (symmetry.c).
+ spg_get_bravais is added and spg_get_international_with_bravais
+ was removed.
+
+2010-12-26 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib-1.0.1:
+
+ By the help of Pawel T. Jochym, the setup.py in the ASE-interface,
+ pysgpblib, has been updated for matching the latest spglib.
+
+2010-11-08 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib-1.0.0:
+
+ A lot of source code was re-written for this one month. This
+ release contains the algorithms of symmetry opertation finding and
+ space-group type determination which are different from the
+ versions before spglib 0.7.4.
+
+2010-11-08 Atsushi Togo <atz.togo at gmail.com>
+
+ Algorithm to search basis vectors is changed to that of
+ [Grosse-Kunstleve, Acta Cryst. A55, 383-395 (1999)], which is
+ implemented in lattice.c. bravais.{c,h}, bravais_virtual.{c,h} are
+ removed. spacegroup_type.{c,h} are moved to spacegroup.{c,h}.
+
+2010-11-05 Atsushi Togo <atz.togo at gmail.com>
+
+ * lattice.c:
+
+ lattice.c and lattice.h are added. Delaunay reduction is moved
+ there from bravais.c.
+
+2010-11-02 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib 1.0-beta:
+
+ New release under the modified BSD license.
+
+ * pointgroup.c:
+
+ Sometimes symmetry operations that don't match point-group type
+ can be found. In the current implementation, some of non-necessary
+ operations are abandoned. For this, get_cast_symmetry,
+ check_pointgroup_condition, ptg_get_symmetry_pointgroup are added.
+ However still this implementation is not perfect. Maybe another
+ strategy is required.
+
+2010-10-27 Atsushi Togo <atz.togo at gmail.com>
+
+ * primitive.c:
+
+ trim_cell is divided into trim_cell, set_primitive_positions,
+ get_positions_primitive, get_overlap_table. is_overlap is
+ modified to check Cartesian distance, and moved to cel_is_overlap
+ in cell.c.
+
+ * symmetry.c (get_translation):
+
+ Atomic position overlap check part is modified to use
+ cel_is_overlap.
+
+ * cell.c:
+
+ cel_frac_to_cart and cel_cart_to_frac are removed.
+
+
+2010-10-25 Atsushi Togo <atz.togo at gmail.com>
+
+ * bravais_arc.* is renamed to bravais_virtual.*
+
+ The function is_holohedry is removed.
+
+ * bravais.c:
+
+ brv_set_relative_lattice is added. brv_get_brv_lattice_in_loop is
+ modified for handling RHOMB case flexibly. get_metric was removed
+ and moved to mathfunc.c as mat_get_metric.
+
+ * pointgroup.c:
+
+ The first argument of ptg_get_holohedry is removed, which was used
+ just for debugging.
+
+ * symmetry.c:
+
+ get_space_group_operation is separated from
+ get_operation. sym_get_operation_direct, set_axes and
+ get_lattice_symmetry are newly added. sym_get_operation_direct is
+ the function for finding symmetry operations without relying on
+ Bravais lattice. The lattice symmetry is exhaustively searched
+ through the matrices whose elements are -1, 0, or 1.
+
+ * mathfunc.c:
+
+ mat_get_metric and mat_check_identity_matrix_d3 are added.
+
+
+2010-10-22 Atsushi Togo <atz.togo at gmail.com>
+
+ * bravais.c:
+
+ The names of local functions starting with brv_... is changed to
+ get_brv_.... Add functions get_brv_cubic_primitive,
+ get_brv_tetra_primitive, get_brv_ortho_primitive to find more
+ variety of lattice transformation matrices.
+
+2010-10-22 Atsushi Togo <atz.togo at gmail.com>
+
+ The space group type finder is replaced completely. spacegroup.*,
+ spacegroup_data.*, spacegroup_database.* are
+ removed. spacegroup_type.*, spg_database.*, and hall_symbol.* are
+ added. The helper tools to create hall symbol related database are
+ in database directories.
+
+2010-10-09 Atsushi Togo <atz.togo at gmail.com>
+
+ spglib-0.7.4 is released.
+
+ cel_new_cell is renamed to cel_alloc_cell, and cel_alloc_cell
+ returns a poiter of the Cell structure. cel_delete_cell is renamed
+ to cel_free_cell.
+
+ sym_new_symmetry is renamed to sym_alloc_symmetry, and
+ sym_alloc_symmetry returns a poiter of the Symmetry
+ structure. sym_delete_symmetry is renamed to sym_free_symmetry.
+
+ The other functions returns Cell and Symmetry structures are
+ modified to return those pointers.
+
+2010-10-05 Atsushi Togo <atz.togo at gmail.com>
+
+ * symmetry.c (get_index_with_least_atoms):
+
+ To search translation, it is efficient if an atom in least atoms
+ with an atomic type is used for the search origine. This function
+ looks for it. This is expected to accelerate especially when the
+ cell is huge and the lattice has high symmetry, but the number of
+ atoms of some atomic type is few.
+
+2010-10-04 Atsushi Togo <atz.togo at gmail.com>
+
+ * primitive.c (prm_get_primitive_with_pure_trans):
+
+ Create new function 'prm_get_primitive_with_pure_trans' to avoid
+ searching same pure translations many times, which leads some
+ speed up.
+
+2010-09-26 Atsushi Togo <atz.togo at gmail.com>
+
+ 'const' of multidimensional arrays are removed. Just to notify it
+ should be 'const', 'SPGCONST' replaces those 'const', however it
+ is defined as nothing in mathfunc.h. This is done because of
+ avoiding lots of waring in C-compiler of 'gcc: incompatible
+ pointer type'.
+
+ * spglib_f.c:
+
+ spglib_f.c is updated and some examples are found in example.f90.
+
+2010-04-12 Atsushi Togo <atz.togo at gmail.com>
+
+ * symmetry.c, mathfunc.c:
+
+ To make the translations clean, sym_get_fractional_translation in
+ symmetry.c and mat_Dmod1 in mathfunc.c are
+ added. sym_get_fractional_translation is supposed to look for the
+ translation that is most closest to one of 0, 1/6,
+ 1/4, 1/3, 1/2, 2/3, 3/4, and 5/6. The first implementation
+ contained a bug and Jorg Meyer solved this.
+
+2010-03-25 Atsushi Togo <atz.togo at gmail.com>
+
+ * bravais_art.c:
+
+ Space group of the virtual structures in the test directory
+ failed. Fixed points are as follows:
+ P-Cubic, P-Tetra, P-Ortho to Base center monoclinic, which was
+ collect in the old code, and I-Cubic to F-Orthorhombic.
+ Cubic to Rhombohedral. To obtain correct principal axes,
+ 'is_rhombo' was implemented.
+
+2010-03-22 Atsushi Togo <atz.togo at gmail.com>
+
+ * spglib.h, spglib.c:
+
+ spg_get_bravais_lattice is removed.
+
+ spg_get_conventional_symmetry is implemented. This is used to get
+ symmetry operations for the conventional unit cell. The
+ conventional unit cell is searched from the primitive cell found
+ from the input cell, i.e., even if the input cell is not
+ primitive, the primitive cell is automatically searched and the
+ conventional cell is determined. The Bravais lattice of the
+ conventinal cell is returned as bravais_lattice. This
+ bravais_lattice is found including the internal atomic
+ positions. Therefore artificial cell is expected to be handled
+ correctly.
+
+2010-02-11 Atsushi Togo <atz.togo at gmail.com>
+
+ * primitive.c:
+
+ There was a problem that primitive cell is not well found in naive
+ cases (inconsistency between tolerances in finding pure
+ translations and in finding overlapping atoms). David Lonie
+ implemented an iterative way to adjust symmetry finder tolerance
+ on the fly.
+
+2009-07-15 Atsushi Togo <atz.togo at gmail.com>
+
+ * bravais.c:
+
+ Bug to find bravais lattice in FCC and rhombohedral, when the cell
+ is a supercell. This is probably ad-hoc fix.
+
+2009-05-19 Atsushi Togo <atz.togo at gmail.com>
+
+ * symmetry_kpoint.c:
+
+ Time reversal symmetry is included.
+
+ * bravais.c (brv_smallest_lattice_vector):
+
+ Delaunay reduction is implemented instead of ABINIT
+ implementation.
+
+2009-03-09 Atsushi Togo <atz.togo at gmail.com>
+
+ * symmetry.c:
+
+ Critical bug for finding symmetry for primitive cell which is
+ reduced from convensional cell.
+
+2009-03-05 Atsushi Togo <atz.togo at gmail.com>
+
+ * symmetry_kpoint.c:
+
+ Functions to look for the irreducible points in reciprocal space
+ are implemented.
+
+2009-02-25 Atsushi Togo <atz.togo at gmail.com>
+
+ * bravais_art.c:
+
+ Hexagonal to Orthorhombic symmetry lowering case is implemented.
+
+ * python module:
+
+ Python module is implemented. To use them, numpy is
+ required. Interface for ASE is implemented.
+
+2008-08-22 Atsushi Togo <atz.togo at gmail.com>
+
+ * bravais_art.c:
+
+ This file is used for the cases that the lattice has higher
+ symmetry than the symmetry given by atomic positions. This does
+ not affect to the symmetry operations that is firstly obtained by
+ assuming the bravais lattice having high symmetry. Thus this file
+ works only for changing its bravais lattice. The information about
+ bravais lattice is used for only determing space group. Even if
+ the code in this file fails, or let's say, space group
+ determination fails), we can not say the symmetry operations are
+ wrong.
+
+2008-07-11 Atsushi Togo <atz.togo at gmail.com>
+
+ * Most of the code
+
+ The procedure for searching a Bravais lattice from a primitive
+ cell is rewritten. The algorithm is also totally changed.
+
+ * test directory
+
+ For the test of space group search, 'test' directory is
+ created. Many POSCAR's are prepared in this directory. For running
+ tests, a small ruby code is written and put into this directory.
+
+2008-05-28 Atsushi Togo <atz.togo at gmail.com>
+
+ * spacegroup_data.c (get_spacegroup_data_special_case):
+
+ Bug fix for space group determinations for special cases (Pcc2,
+ Pbam, Pccn).
+
+2008-05-25 Atsushi Togo <atz.togo at gmail.com>
+
+ * *.c, *.h :
+
+ Many codes are re-built. Many functions are changed to
+ "static". The first three characters of public functions are
+ re-named using those file names.
+
+ * bravais.c :
+
+ Monoclinic is possibly improved. Monoclinic is difficult. It may
+ contain further bugs...
+
+2008-05-01 Atsushi Togo <atz.togo at gmail.com>
+
+ * spacegroup.c (get_proper_rotation_class_6axis):
+
+ exit(1) is inserted.
+
+ * bravais.c/h:
+
+ "lattice_symmetry" is removed from the "Bravais" structure.
+
+ * spglib.h:
+
+ Misspelled function prototypes of spg_get_symmetry and
+ spg_check_symmetry are corrected.
+
+2008-04-23 Atsushi Togo <atz.togo at gmail.com>
+
+ * Many patches by Xavier Andrade
+
+ For fixing many warning in many codes and gcc-4.3 related problem
+ in bravais.c.
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index a1e89e1..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,370 +0,0 @@
-Installation Instructions
-*************************
-
-Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
-Inc.
-
- Copying and distribution of this file, with or without modification,
-are permitted in any medium without royalty provided the copyright
-notice and this notice are preserved. This file is offered as-is,
-without warranty of any kind.
-
-Basic Installation
-==================
-
- Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package. The following
-more-detailed instructions are generic; see the `README' file for
-instructions specific to this package. Some packages provide this
-`INSTALL' file but do not implement all of the features documented
-below. The lack of an optional feature in a given package is not
-necessarily a bug. More recommendations for GNU packages can be found
-in *note Makefile Conventions: (standards)Makefile Conventions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
- It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
- The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You need `configure.ac' if
-you want to change it or regenerate `configure' using a newer version
-of `autoconf'.
-
- The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system.
-
- Running `configure' might take a while. While running, it prints
- some messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package, generally using the just-built uninstalled binaries.
-
- 4. Type `make install' to install the programs and any data files and
- documentation. When installing into a prefix owned by root, it is
- recommended that the package be configured and built as a regular
- user, and only the `make install' phase executed with root
- privileges.
-
- 5. Optionally, type `make installcheck' to repeat any self-tests, but
- this time using the binaries in their final installed location.
- This target does not install anything. Running this target as a
- regular user, particularly if the prior `make install' required
- root privileges, verifies that the installation completed
- correctly.
-
- 6. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
- 7. Often, you can also type `make uninstall' to remove the installed
- files again. In practice, not all packages have tested that
- uninstallation works correctly, even though it is required by the
- GNU Coding Standards.
-
- 8. Some packages, particularly those that use Automake, provide `make
- distcheck', which can by used by developers to test that all other
- targets like `make install' and `make uninstall' work correctly.
- This target is generally not run by end users.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
-
- You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment. Here
-is an example:
-
- ./configure CC=c99 CFLAGS=-g LIBS=-lposix
-
- *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you can use GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'. This
-is known as a "VPATH" build.
-
- With a non-GNU `make', it is safer to compile the package for one
-architecture at a time in the source code directory. After you have
-installed the package for one architecture, use `make distclean' before
-reconfiguring for another architecture.
-
- On MacOS X 10.5 and later systems, you can create libraries and
-executables that work on multiple system types--known as "fat" or
-"universal" binaries--by specifying multiple `-arch' options to the
-compiler but only a single `-arch' option to the preprocessor. Like
-this:
-
- ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
- CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
- CPP="gcc -E" CXXCPP="g++ -E"
-
- This is not guaranteed to produce working output in all cases, you
-may have to build one architecture at a time and combine the results
-using the `lipo' tool if you have problems.
-
-Installation Names
-==================
-
- By default, `make install' installs the package's commands under
-`/usr/local/bin', include files under `/usr/local/include', etc. You
-can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX', where PREFIX must be an
-absolute file name.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
-PREFIX as the prefix for installing programs and libraries.
-Documentation and other data files still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them. In general, the
-default for these options is expressed in terms of `${prefix}', so that
-specifying just `--prefix' will affect all of the other directory
-specifications that were not explicitly provided.
-
- The most portable way to affect installation locations is to pass the
-correct locations to `configure'; however, many packages provide one or
-both of the following shortcuts of passing variable assignments to the
-`make install' command line to change installation locations without
-having to reconfigure or recompile.
-
- The first method involves providing an override variable for each
-affected directory. For example, `make install
-prefix=/alternate/directory' will choose an alternate location for all
-directory configuration variables that were expressed in terms of
-`${prefix}'. Any directories that were specified during `configure',
-but not in terms of `${prefix}', must each be overridden at install
-time for the entire installation to be relocated. The approach of
-makefile variable overrides for each directory variable is required by
-the GNU Coding Standards, and ideally causes no recompilation.
-However, some platforms have known limitations with the semantics of
-shared libraries that end up requiring recompilation when using this
-method, particularly noticeable in packages that use GNU Libtool.
-
- The second method involves providing the `DESTDIR' variable. For
-example, `make install DESTDIR=/alternate/directory' will prepend
-`/alternate/directory' before all installation names. The approach of
-`DESTDIR' overrides is not required by the GNU Coding Standards, and
-does not work on platforms that have drive letters. On the other hand,
-it does better at avoiding recompilation issues, and works well even
-when some directory options were not specified in terms of `${prefix}'
-at `configure' time.
-
-Optional Features
-=================
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
- Some packages offer the ability to configure how verbose the
-execution of `make' will be. For these packages, running `./configure
---enable-silent-rules' sets the default to minimal output, which can be
-overridden with `make V=1'; while running `./configure
---disable-silent-rules' sets the default to verbose, which can be
-overridden with `make V=0'.
-
-Particular systems
-==================
-
- On HP-UX, the default C compiler is not ANSI C compatible. If GNU
-CC is not installed, it is recommended to use the following options in
-order to use an ANSI C compiler:
-
- ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
-
-and if that doesn't work, install pre-built binaries of GCC for HP-UX.
-
- HP-UX `make' updates targets which have the same time stamps as
-their prerequisites, which makes it generally unusable when shipped
-generated files such as `configure' are involved. Use GNU `make'
-instead.
-
- On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
-parse its `<wchar.h>' header file. The option `-nodtk' can be used as
-a workaround. If GNU CC is not installed, it is therefore recommended
-to try
-
- ./configure CC="cc"
-
-and if that doesn't work, try
-
- ./configure CC="cc -nodtk"
-
- On Solaris, don't put `/usr/ucb' early in your `PATH'. This
-directory contains several dysfunctional programs; working variants of
-these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
-in your `PATH', put it _after_ `/usr/bin'.
-
- On Haiku, software installed for all users goes in `/boot/common',
-not `/usr/local'. It is recommended to use the following options:
-
- ./configure --prefix=/boot/common
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
- CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
- OS
- KERNEL-OS
-
- See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
- If you are _building_ compiler tools for cross-compiling, you should
-use the option `--target=TYPE' to select the type of system they will
-produce code for.
-
- If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
- Variables not defined in a site shell script can be set in the
-environment passed to `configure'. However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost. In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'. For example:
-
- ./configure CC=/usr/local2/bin/gcc
-
-causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).
-
-Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf bug. Until the bug is fixed you can use this workaround:
-
- CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
-
-`configure' Invocation
-======================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--help'
-`-h'
- Print a summary of all of the options to `configure', and exit.
-
-`--help=short'
-`--help=recursive'
- Print a summary of the options unique to this package's
- `configure', and exit. The `short' variant lists options used
- only in the top level, while the `recursive' variant lists options
- also present in any nested packages.
-
-`--version'
-`-V'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`--cache-file=FILE'
- Enable the cache: use and save the results of the tests in FILE,
- traditionally `config.cache'. FILE defaults to `/dev/null' to
- disable caching.
-
-`--config-cache'
-`-C'
- Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--prefix=DIR'
- Use DIR as the installation prefix. *note Installation Names::
- for more details, including other options available for fine-tuning
- the installation locations.
-
-`--no-create'
-`-n'
- Run the configure checks, but stop before creating any output
- files.
-
-`configure' also accepts some other, not widely useful, options. Run
-`configure --help' for more details.
-
diff --git a/Makefile.am b/Makefile.am
index 0182df2..1b494ba 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,2 +1,11 @@
SUBDIRS = src
ACLOCAL_AMFLAGS = -I m4
+
+EXTRA_DIST =
+EXTRA_DIST += \
+ example \
+ python \
+ ruby
+
+clean-local:
+ -rm -rf src/spglib_test.dSYM
diff --git a/Makefile.in b/Makefile.in
deleted file mode 100644
index 471be63..0000000
--- a/Makefile.in
+++ /dev/null
@@ -1,761 +0,0 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
- compile config.guess config.sub depcomp install-sh ltmain.sh \
- missing
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
- $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
- distdir dist dist-all distcheck
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- if test -d "$(distdir)"; then \
- find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -rf "$(distdir)" \
- || { sleep 5 && rm -rf "$(distdir)"; }; \
- else :; fi
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
- | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = src
-ACLOCAL_AMFLAGS = -I m4
-all: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-am--refresh: Makefile
- @:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
- $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: $(am__configure_deps)
- $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-config.h: stamp-h1
- @if test ! -f $@; then rm -f stamp-h1; else :; fi
- @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in: $(am__configure_deps)
- ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
- rm -f stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f config.h stamp-h1
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool config.lt
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @fail= failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
- @fail= failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- $(am__remove_distdir)
- test -d "$(distdir)" || mkdir "$(distdir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- -test -n "$(am__skip_mode_fix)" \
- || find "$(distdir)" -type d ! -perm -755 \
- -exec chmod u+rwx,go+rx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r "$(distdir)"
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
- $(am__remove_distdir)
-
-dist-lzip: distdir
- tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
- $(am__remove_distdir)
-
-dist-lzma: distdir
- tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
- $(am__remove_distdir)
-
-dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
- $(am__remove_distdir)
-
-dist-tarZ: distdir
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__remove_distdir)
-
-dist-shar: distdir
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
- $(am__remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__remove_distdir)
-
-dist dist-all: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lzma*) \
- lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
- *.tar.lz*) \
- lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
- *.tar.xz*) \
- xz -dc $(distdir).tar.xz | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir); chmod u+w $(distdir)
- mkdir $(distdir)/_build
- mkdir $(distdir)/_inst
- chmod a-w $(distdir)
- test -d $(distdir)/_build || exit 0; \
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build \
- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
- $(AM_DISTCHECK_CONFIGURE_FLAGS) \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
- && cd "$$am__cwd" \
- || exit 1
- $(am__remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @test -n '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: trying to run $@ with an empty' \
- '$$(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- $(am__cd) '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
-check: check-recursive
-all-am: Makefile config.h
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr \
- distclean-libtool distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
- ctags-recursive install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am am--refresh check check-am clean clean-generic \
- clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
- dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \
- dist-zip distcheck distclean distclean-generic distclean-hdr \
- distclean-libtool distclean-tags distcleancheck distdir \
- distuninstallcheck dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- installdirs-am maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am tags tags-recursive uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/NEWS b/NEWS
deleted file mode 100644
index e69de29..0000000
diff --git a/README b/README
deleted file mode 100644
index e69de29..0000000
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..435b6fd
--- /dev/null
+++ b/README.md
@@ -0,0 +1,19 @@
+spglib
+======
+[](https://anaconda.org/atztogo/spglib)
+[](https://anaconda.org/atztogo/spglib)
+[](https://pypi.python.org/pypi/spglib)
+[](https://travis-ci.org/atztogo/spglib)
+
+C library for finding and handling crystal symmetries
+
+How to compile
+---------------
+
+ % aclocal
+ % autoheader
+ % libtoolize # or glibtoolize with macport etc
+ % touch INSTALL NEWS README AUTHORS
+ % automake -acf
+ % autoconf
+ % ./configure
diff --git a/aclocal.m4 b/aclocal.m4
deleted file mode 100644
index d19f831..0000000
--- a/aclocal.m4
+++ /dev/null
@@ -1,1011 +0,0 @@
-# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-# Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-You have another version of autoconf. It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically `autoreconf'.])])
-
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
-# Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 1
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.11.6], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too. Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.6])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 1
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 9
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
-# 2010, 2011 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 12
-
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
- [$1], CXX, [depcc="$CXX" am_compiler_list=],
- [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], UPC, [depcc="$UPC" am_compiler_list=],
- [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- am__universal=false
- m4_case([$1], [CC],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac],
- [CXX],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac])
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok `-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[ --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-AC_SUBST([am__nodep])dnl
-_AM_SUBST_NOTMAKE([am__nodep])dnl
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-#serial 5
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[{
- # Autoconf 2.62 quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
- shift
- for mf
- do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
-}
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each `.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 16
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES(OBJC)],
- [define([AC_PROG_OBJC],
- defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
-])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
-
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
-# Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 1
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-AC_SUBST(install_sh)])
-
-# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 6
-
-# AM_PROG_CC_C_O
-# --------------
-# Like AC_PROG_CC_C_O, but changed for automake.
-AC_DEFUN([AM_PROG_CC_C_O],
-[AC_REQUIRE([AC_PROG_CC_C_O])dnl
-AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-dnl Make sure AC_PROG_CC is never called again, or it will override our
-dnl setting of CC.
-m4_define([AC_PROG_CC],
- [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
-])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 6
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
-# Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 1
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check for `mkdir -p'.
-AC_DEFUN([AM_PROG_MKDIR_P],
-[AC_PREREQ([2.60])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
-dnl while keeping a definition of mkdir_p for backward compatibility.
-dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-dnl Makefile.ins that do not define MKDIR_P, so we do our own
-dnl adjustment using top_builddir (which is defined more often than
-dnl MKDIR_P).
-AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-case $mkdir_p in
- [[\\/$]]* | ?:[[\\/]]*) ;;
- */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
-# Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 5
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# --------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 5
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[[\\\"\#\$\&\'\`$am_lf]]*)
- AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
- *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
-esac
-
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 1
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 3
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4_if([$1], [v7],
- [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
- [m4_case([$1], [ustar],, [pax],,
- [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar;
- do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
-done
-rm -rf conftest.dir
-
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([m4/libtool.m4])
-m4_include([m4/ltoptions.m4])
-m4_include([m4/ltsugar.m4])
-m4_include([m4/ltversion.m4])
-m4_include([m4/lt~obsolete.m4])
diff --git a/compile b/compile
deleted file mode 100755
index 862a14e..0000000
--- a/compile
+++ /dev/null
@@ -1,343 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand '-c -o'.
-
-scriptversion=2012-03-05.13; # UTC
-
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
-# Software Foundation, Inc.
-# Written by Tom Tromey <tromey at cygnus.com>.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake at gnu.org> or send patches to
-# <automake-patches at gnu.org>.
-
-nl='
-'
-
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent tools from complaining about whitespace usage.
-IFS=" "" $nl"
-
-file_conv=
-
-# func_file_conv build_file lazy
-# Convert a $build file to $host form and store it in $file
-# Currently only supports Windows hosts. If the determined conversion
-# type is listed in (the comma separated) LAZY, no conversion will
-# take place.
-func_file_conv ()
-{
- file=$1
- case $file in
- / | /[!/]*) # absolute file, and not a UNC file
- if test -z "$file_conv"; then
- # lazily determine how to convert abs files
- case `uname -s` in
- MINGW*)
- file_conv=mingw
- ;;
- CYGWIN*)
- file_conv=cygwin
- ;;
- *)
- file_conv=wine
- ;;
- esac
- fi
- case $file_conv/,$2, in
- *,$file_conv,*)
- ;;
- mingw/*)
- file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
- ;;
- cygwin/*)
- file=`cygpath -m "$file" || echo "$file"`
- ;;
- wine/*)
- file=`winepath -w "$file" || echo "$file"`
- ;;
- esac
- ;;
- esac
-}
-
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
- func_file_conv "$1"
- if test -z "$lib_path"; then
- lib_path=$file
- else
- lib_path="$lib_path;$file"
- fi
- linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
- lib=$1
- found=no
- save_IFS=$IFS
- IFS=';'
- for dir in $lib_path $LIB
- do
- IFS=$save_IFS
- if $shared && test -f "$dir/$lib.dll.lib"; then
- found=yes
- lib=$dir/$lib.dll.lib
- break
- fi
- if test -f "$dir/$lib.lib"; then
- found=yes
- lib=$dir/$lib.lib
- break
- fi
- done
- IFS=$save_IFS
-
- if test "$found" != yes; then
- lib=$lib.lib
- fi
-}
-
-# func_cl_wrapper cl arg...
-# Adjust compile command to suit cl
-func_cl_wrapper ()
-{
- # Assume a capable shell
- lib_path=
- shared=:
- linker_opts=
- for arg
- do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- eat=1
- case $2 in
- *.o | *.[oO][bB][jJ])
- func_file_conv "$2"
- set x "$@" -Fo"$file"
- shift
- ;;
- *)
- func_file_conv "$2"
- set x "$@" -Fe"$file"
- shift
- ;;
- esac
- ;;
- -I)
- eat=1
- func_file_conv "$2" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -I*)
- func_file_conv "${1#-I}" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -l)
- eat=1
- func_cl_dashl "$2"
- set x "$@" "$lib"
- shift
- ;;
- -l*)
- func_cl_dashl "${1#-l}"
- set x "$@" "$lib"
- shift
- ;;
- -L)
- eat=1
- func_cl_dashL "$2"
- ;;
- -L*)
- func_cl_dashL "${1#-L}"
- ;;
- -static)
- shared=false
- ;;
- -Wl,*)
- arg=${1#-Wl,}
- save_ifs="$IFS"; IFS=','
- for flag in $arg; do
- IFS="$save_ifs"
- linker_opts="$linker_opts $flag"
- done
- IFS="$save_ifs"
- ;;
- -Xlinker)
- eat=1
- linker_opts="$linker_opts $2"
- ;;
- -*)
- set x "$@" "$1"
- shift
- ;;
- *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
- func_file_conv "$1"
- set x "$@" -Tp"$file"
- shift
- ;;
- *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
- func_file_conv "$1" mingw
- set x "$@" "$file"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
- done
- if test -n "$linker_opts"; then
- linker_opts="-link$linker_opts"
- fi
- exec "$@" $linker_opts
- exit 1
-}
-
-eat=
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand '-c -o'.
-Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file 'INSTALL'.
-
-Report bugs to <bug-automake at gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "compile $scriptversion"
- exit $?
- ;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
- func_cl_wrapper "$@" # Doesn't return...
- ;;
-esac
-
-ofile=
-cfile=
-
-for arg
-do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- # So we strip '-o arg' only if arg is an object.
- eat=1
- case $2 in
- *.o | *.obj)
- ofile=$2
- ;;
- *)
- set x "$@" -o "$2"
- shift
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- set x "$@" "$1"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
- # If no '-o' option was seen then we might have been invoked from a
- # pattern rule where we don't need one. That is ok -- this is a
- # normal compilation that the losing compiler can handle. If no
- # '.c' file was seen then we are probably linking. That is also
- # ok.
- exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use '[/\\:.-]' here to ensure that we don't use the same name
-# that we are using for the .o file. Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
-while true; do
- if mkdir "$lockdir" >/dev/null 2>&1; then
- break
- fi
- sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
- test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
- test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/config.guess b/config.guess
deleted file mode 100755
index d622a44..0000000
--- a/config.guess
+++ /dev/null
@@ -1,1530 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
-
-timestamp='2012-02-10'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner. Please send patches (context
-# diff format) to <config-patches at gnu.org> and include a ChangeLog
-# entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
-#
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <config-patches at gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi at noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- #
- # Note: NetBSD doesn't particularly care about the vendor
- # portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
- armeb) machine=armeb-unknown ;;
- arm*) machine=arm-unknown ;;
- sh3el) machine=shl-unknown ;;
- sh3eb) machine=sh-unknown ;;
- sh5el) machine=sh5le-unknown ;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
- esac
- # The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE_ARCH}" in
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ELF__
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- ;;
- *)
- os=netbsd
- ;;
- esac
- # The OS release
- # Debian GNU/NetBSD machines have a different userland, and
- # thus, need a distinct triplet. However, they do not need
- # kernel version information, so it can be replaced with a
- # suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
- Debian*)
- release='-gnu'
- ;;
- *)
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- ;;
- esac
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit ;;
- *:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
- exit ;;
- *:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit ;;
- *:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
- exit ;;
- macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- *:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- alpha:OSF1:*:*)
- case $UNAME_RELEASE in
- *4.0)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- ;;
- *5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
- ;;
- esac
- # According to Compaq, /usr/sbin/psrinfo has been available on
- # OSF/1 and Tru64 systems produced since 1995. I hope that
- # covers most systems running today. This code pipes the CPU
- # types through head -n 1, so we only detect the type of CPU 0.
- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
- "EV4 (21064)")
- UNAME_MACHINE="alpha" ;;
- "EV4.5 (21064)")
- UNAME_MACHINE="alpha" ;;
- "LCA4 (21066/21068)")
- UNAME_MACHINE="alpha" ;;
- "EV5 (21164)")
- UNAME_MACHINE="alphaev5" ;;
- "EV5.6 (21164A)")
- UNAME_MACHINE="alphaev56" ;;
- "EV5.6 (21164PC)")
- UNAME_MACHINE="alphapca56" ;;
- "EV5.7 (21164PC)")
- UNAME_MACHINE="alphapca57" ;;
- "EV6 (21264)")
- UNAME_MACHINE="alphaev6" ;;
- "EV6.7 (21264A)")
- UNAME_MACHINE="alphaev67" ;;
- "EV6.8CB (21264C)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8AL (21264B)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8CX (21264D)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.9A (21264/EV69A)")
- UNAME_MACHINE="alphaev69" ;;
- "EV7 (21364)")
- UNAME_MACHINE="alphaev7" ;;
- "EV7.9 (21364A)")
- UNAME_MACHINE="alphaev79" ;;
- esac
- # A Pn.n version is a patched version.
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- exitcode=$?
- trap '' 0
- exit $exitcode ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
- *:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
- *:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
- arm:riscos:*:*|arm:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
- DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
- DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
- s390x:SunOS:*:*)
- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux${UNAME_RELEASE}
- exit ;;
- i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval $set_cc_for_build
- SUN_ARCH="i386"
- # If there is a compiler, see if it is configured for 64-bit objects.
- # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
- # This test works for both compilers.
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- SUN_ARCH="x86_64"
- fi
- fi
- echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
- m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
- exit ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
- Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
- ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
- then
- echo "$SYSTEM_NAME"
- else
- echo rs6000-ibm-aix3.2.5
- fi
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit ;;
- *:AIX:*:[4567])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
- 9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
- fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
- test -z "$HP_ARCH" && HP_ARCH=hppa
- fi ;;
- esac
- if [ ${HP_ARCH} = "hppa2.0w" ]
- then
- eval $set_cc_for_build
-
- # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
- # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
- # generating 64-bit code. GNU and HP use different nomenclature:
- #
- # $ CC_FOR_BUILD=cc ./config.guess
- # => hppa2.0w-hp-hpux11.23
- # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
- # => hppa64-hp-hpux11.23
-
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep -q __LP64__
- then
- HP_ARCH="hppa2.0w"
- else
- HP_ARCH="hppa64"
- fi
- fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit ;;
- ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit ;;
- 3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- *:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- 5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:FreeBSD:*:*)
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- case ${UNAME_PROCESSOR} in
- amd64)
- echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
- echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- esac
- exit ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
- *:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
- i*:MSYS*:*)
- echo ${UNAME_MACHINE}-pc-msys
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
- i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
- *:Interix*:*)
- case ${UNAME_MACHINE} in
- x86)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
- authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
- IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
- exit ;;
- esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- 8664:Windows_NT:*)
- echo x86_64-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit ;;
- amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- *:GNU:*:*)
- # the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit ;;
- *:GNU/*:*:*)
- # other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
- exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
- aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- aarch64_be:Linux:*:*)
- UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit ;;
- arm*:Linux:*:*)
- eval $set_cc_for_build
- if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_EABI__
- then
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- else
- if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_PCS_VFP
- then
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
- else
- echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
- fi
- fi
- exit ;;
- avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-gnu
- exit ;;
- crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-gnu
- exit ;;
- frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- i*86:Linux:*:*)
- LIBC=gnu
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
- exit ;;
- ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef ${UNAME_MACHINE}
- #undef ${UNAME_MACHINE}el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=${UNAME_MACHINE}el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=${UNAME_MACHINE}
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- or32:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- padre:Linux:*:*)
- echo sparc-unknown-linux-gnu
- exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
- exit ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
- esac
- exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
- exit ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
- exit ;;
- sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
- exit ;;
- x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
- i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit ;;
- i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit ;;
- i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit ;;
- i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit ;;
- i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit ;;
- i*86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
- (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i586.
- # Note: whatever this is, it MUST be the same as what config.sub
- # prints for the "djgpp" host, or else GDB configury will decide that
- # this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit ;;
- mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
- M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
- M68*:*:R3V[5678]*:*)
- test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
- NCR*:*:4.2:* | MPRAS*:*:4.2:*)
- OS_REL='.3'
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel at ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes at openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
- *:*:*:FTX*)
- # From seanf at swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
- i*86:VOS:*:*)
- # From Paul.Green at stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
- exit ;;
- *:VOS:*:*)
- # From Paul.Green at stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
- BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
- exit ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
- i386)
- eval $set_cc_for_build
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- UNAME_PROCESSOR="x86_64"
- fi
- fi ;;
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NEO-?:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSE-?:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit ;;
- *:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
- DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit ;;
- *:Plan9:*:*)
- # "uname -m" is not consistent, so use $cputype instead. 386
- # is converted to i386 for consistency with other x86
- # operating systems.
- if test "$cputype" = "386"; then
- UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
- fi
- echo ${UNAME_MACHINE}-unknown-plan9
- exit ;;
- *:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
- *:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
- KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
- XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
- *:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
- *:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
- SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
- *:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
- *:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
- esac ;;
- *:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
- i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
- exit ;;
- i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
- exit ;;
- i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
- exit ;;
- x86_64:VMkernel:*:*)
- echo ${UNAME_MACHINE}-unknown-esx
- exit ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-and
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches at gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/config.h.in b/config.h.in
deleted file mode 100644
index 5212d6e..0000000
--- a/config.h.in
+++ /dev/null
@@ -1,78 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
- to 0 otherwise. */
-#undef HAVE_MALLOC
-
-/* Define to 1 if you have the <math.h> header file. */
-#undef HAVE_MATH_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#undef LT_OBJDIR
-
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Define to rpl_malloc if the replacement function should be used. */
-#undef malloc
diff --git a/config.sub b/config.sub
deleted file mode 100755
index 6205f84..0000000
--- a/config.sub
+++ /dev/null
@@ -1,1782 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
-
-timestamp='2012-04-18'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Please send patches to <config-patches at gnu.org>. Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <config-patches at gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help"
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo $1
- exit ;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | \
- kopensolaris*-gnu* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- android-linux)
- os=-linux-android
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze)
- os=
- basic_machine=$1
- ;;
- -bluegene*)
- os=-cnk
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*178)
- os=-lynxos178
- ;;
- -lynx*5)
- os=-lynxos5
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | aarch64 | aarch64_be \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
- | be32 | be64 \
- | bfin \
- | c4x | clipper \
- | d10v | d30v | dlx | dsp16xx \
- | epiphany \
- | fido | fr30 | frv \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | hexagon \
- | i370 | i860 | i960 | ia64 \
- | ip2k | iq2000 \
- | le32 | le64 \
- | lm32 \
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep | metag \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nds32 | nds32le | nds32be \
- | nios | nios2 \
- | ns16k | ns32k \
- | open8 \
- | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle \
- | pyramid \
- | rl78 | rx \
- | score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu \
- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
- | ubicom32 \
- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
- | we32k \
- | x86 | xc16x | xstormy16 | xtensa \
- | z8k | z80)
- basic_machine=$basic_machine-unknown
- ;;
- c54x)
- basic_machine=tic54x-unknown
- ;;
- c55x)
- basic_machine=tic55x-unknown
- ;;
- c6x)
- basic_machine=tic6x-unknown
- ;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
- ;;
- ms1)
- basic_machine=mt-unknown
- ;;
-
- strongarm | thumb | xscale)
- basic_machine=arm-unknown
- ;;
- xgate)
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- xscaleeb)
- basic_machine=armeb-unknown
- ;;
-
- xscaleel)
- basic_machine=armel-unknown
- ;;
-
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | aarch64-* | aarch64_be-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* | avr32-* \
- | be32-* | be64-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* \
- | clipper-* | craynv-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | hexagon-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* | iq2000-* \
- | le32-* | le64-* \
- | lm32-* \
- | m32c-* | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64octeon-* | mips64octeonel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64r5900-* | mips64r5900el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | mt-* \
- | msp430-* \
- | nds32-* | nds32le-* | nds32be-* \
- | nios-* | nios2-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | open8-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
- | pyramid-* \
- | rl78-* | romp-* | rs6000-* | rx-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
- | tahoe-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile*-* \
- | tron-* \
- | ubicom32-* \
- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
- | vax-* \
- | we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* \
- | xstormy16-* | xtensa*-* \
- | ymp-* \
- | z8k-* | z80-*)
- ;;
- # Recognize the basic CPU types without company name, with glob match.
- xtensa*)
- basic_machine=$basic_machine-unknown
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=-aros
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=-linux
- ;;
- blackfin-*)
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- bluegene*)
- basic_machine=powerpc-ibm
- os=-cnk
- ;;
- c54x-*)
- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c55x-*)
- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c6x-*)
- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=-cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16 | cr16-*)
- basic_machine=cr16-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
- ;;
- decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=-dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
- i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=-linux
- ;;
- m68knommu-*)
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- microblaze)
- basic_machine=microblaze-xilinx
- ;;
- mingw32)
- basic_machine=i386-pc
- os=-mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=-mingw32ce
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- ;;
- msys)
- basic_machine=i386-pc
- os=-msys
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- nacl)
- basic_machine=le32-unknown
- os=-nacl
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- neo-tandem)
- basic_machine=neo-tandem
- ;;
- nse-tandem)
- basic_machine=nse-tandem
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=-linux
- ;;
- parisc-*)
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pc98)
- basic_machine=i386-pc
- ;;
- pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2 | pentiumiii | pentium3)
- basic_machine=i686-pc
- ;;
- pentium4)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium4-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc | ppcbe) basic_machine=powerpc-unknown
- ;;
- ppc-* | ppcbe-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
- basic_machine=powerpc64le-unknown
- ;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rdos)
- basic_machine=i386-pc
- os=-rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- s390 | s390-*)
- basic_machine=s390-ibm
- ;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
- ;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
- ;;
- sde)
- basic_machine=mipsisa32-sde
- os=-elf
- ;;
- sei)
- basic_machine=mips-sei
- os=-seiux
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sh5el)
- basic_machine=sh5le-unknown
- ;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- strongarm-* | thumb-*)
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=-unicos
- ;;
- tile*)
- basic_machine=$basic_machine-unknown
- os=-linux-gnu
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- xscale-* | xscalee[bl]-*)
- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
- ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- z80-*-coff)
- basic_machine=z80-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
- ;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- mmix)
- basic_machine=mmix-knuth
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
- ;;
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
- ;;
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -openbsd* | -solidbsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* \
- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto-qnx*)
- ;;
- -nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux-dietlibc)
- os=-linux-dietlibc
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -os400*)
- os=-os400
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -atheos*)
- os=-atheos
- ;;
- -syllable*)
- os=-syllable
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -nova*)
- os=-rtmk-nova
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk*)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -tpf*)
- os=-tpf
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
- ;;
- -aros*)
- os=-aros
- ;;
- -kaos*)
- os=-kaos
- ;;
- -zvmoe)
- os=-zvmoe
- ;;
- -dicos*)
- os=-dicos
- ;;
- -nacl*)
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- score-*)
- os=-elf
- ;;
- spu-*)
- os=-elf
- ;;
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- c4x-* | tic4x-*)
- os=-coff
- ;;
- hexagon-*)
- os=-elf
- ;;
- tic54x-*)
- os=-coff
- ;;
- tic55x-*)
- os=-coff
- ;;
- tic6x-*)
- os=-coff
- ;;
- # This must come before the *-dec entry.
- pdp10-*)
- os=-tops20
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mep-*)
- os=-elf
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- or32-*)
- os=-coff
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-haiku)
- os=-haiku
- ;;
- *-ibm)
- os=-aix
- ;;
- *-knuth)
- os=-mmixware
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -cnk*|-aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -os400*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -tpf*)
- vendor=ibm
- ;;
- -vxsim* | -vxworks* | -windiss*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- vendor=atari
- ;;
- -vos*)
- vendor=stratus
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
-exit
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/configure b/configure
deleted file mode 100755
index d7dfd1a..0000000
--- a/configure
+++ /dev/null
@@ -1,14070 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for spglib 1.4.1.
-#
-# Report bugs to <atz.togo at gmail.com>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-
- test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
- || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf at gnu.org and atz.togo at gmail.com
-$0: about your system, including any error possibly output
-$0: before this message. Then install a modern shell, or
-$0: manually run the script under such a shell if you do
-$0: have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='spglib'
-PACKAGE_TARNAME='spglib'
-PACKAGE_VERSION='1.4.1'
-PACKAGE_STRING='spglib 1.4.1'
-PACKAGE_BUGREPORT='atz.togo at gmail.com'
-PACKAGE_URL=''
-
-ac_unique_file="src/spglib.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-CPP
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-MANIFEST_TOOL
-RANLIB
-ac_ct_AR
-AR
-DLLTOOL
-OBJDUMP
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-EGREP
-GREP
-SED
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-LIBTOOL
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-am__nodep
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_dependency_tracking
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_gnu_ld
-with_sysroot
-enable_libtool_lock
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures spglib 1.4.1 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/spglib]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of spglib 1.4.1:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors
- --enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-static[=PKGS] build static libraries [default=yes]
- --enable-fast-install[=PKGS]
- optimize for fast installation [default=yes]
- --disable-libtool-lock avoid locking (might break parallel builds)
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
- both]
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --with-sysroot=DIR Search for dependent libraries within DIR
- (or the compiler's sysroot if not specified).
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <atz.togo at gmail.com>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-spglib configure 1.4.1
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## --------------------------------- ##
-## Report this to atz.togo at gmail.com ##
-## --------------------------------- ##"
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by spglib $as_me 1.4.1, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-am__api_version='1.11'
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
- *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
-esac
-
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- rm -f conftest.file
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
-alias in your environment" "$LINENO" 5
- fi
-
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
-fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
- [\\/$]* | ?:[\\/]*) ;;
- */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE=spglib
- VERSION=1.4.1
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-ac_config_headers="$ac_config_headers config.h"
-
-
-
-# Checks for programs.
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
- enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
- if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok `-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-# AC_PROG_RANLIB
-if test "x$CC" != xcc; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
-$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
-$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
-fi
-set dummy $CC; ac_cc=`$as_echo "$2" |
- sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-rm -f conftest2.*
-if { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } &&
- test -f conftest2.$ac_objext && { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; };
-then
- eval ac_cv_prog_cc_${ac_cc}_c_o=yes
- if test "x$CC" != xcc; then
- # Test first that cc exists at all.
- if { ac_try='cc -c conftest.$ac_ext >&5'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
- rm -f conftest2.*
- if { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } &&
- test -f conftest2.$ac_objext && { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; };
- then
- # cc works too.
- :
- else
- # cc exists but doesn't like -o.
- eval ac_cv_prog_cc_${ac_cc}_c_o=no
- fi
- fi
- fi
-else
- eval ac_cv_prog_cc_${ac_cc}_c_o=no
-fi
-rm -f core conftest*
-
-fi
-if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
-
-fi
-
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-
-
-case `pwd` in
- *\ * | *\ *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.4.2'
-macro_revision='1.3337'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
-else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO ""
-}
-
-case "$ECHO" in
- printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
- print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for ac_i in 1 2 3 4 5 6 7; do
- ac_script="$ac_script$as_nl$ac_script"
- done
- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
- { ac_script=; unset ac_script;}
- if test -z "$SED"; then
- ac_path_SED_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_SED" || continue
-# Check for GNU ac_path_SED and select it if it is found.
- # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
- ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo '' >> "conftest.nl"
- "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_SED_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_SED="$ac_path_SED"
- ac_path_SED_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_SED_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_SED"; then
- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
- fi
-else
- ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
- rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
- then ac_cv_path_FGREP="$GREP -F"
- else
- if test -z "$FGREP"; then
- ac_path_FGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in fgrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_FGREP" || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
- # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'FGREP' >> "conftest.nl"
- "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_FGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_FGREP="$ac_path_FGREP"
- ac_path_FGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_FGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_FGREP"; then
- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_FGREP=$FGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in dumpbin "link -dump"
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DUMPBIN"; then
- ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$DUMPBIN" && break
- done
-fi
-if test -z "$DUMPBIN"; then
- ac_ct_DUMPBIN=$DUMPBIN
- for ac_prog in dumpbin "link -dump"
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DUMPBIN"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_DUMPBIN" && break
-done
-
- if test "x$ac_ct_DUMPBIN" = x; then
- DUMPBIN=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DUMPBIN=$ac_ct_DUMPBIN
- fi
-fi
-
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
-
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: output\"" >&5)
- cat conftest.out >&5
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-
-fi
-
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- #assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-
-fi
-
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test "$GCC" != yes; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OBJDUMP="objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OBJDUMP=$ac_ct_OBJDUMP
- fi
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[45]*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[3-9]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DLLTOOL" = x; then
- DLLTOOL="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DLLTOOL=$ac_ct_DLLTOOL
- fi
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh
- # decide which to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd="$ECHO"
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- for ac_prog in ar
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AR" && break
- done
-fi
-if test -z "$AR"; then
- ac_ct_AR=$AR
- for ac_prog in ar
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AR="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_AR" && break
-done
-
- if test "x$ac_ct_AR" = x; then
- AR="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- AR=$ac_ct_AR
- fi
-fi
-
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ar_at_file=no
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -eq 0; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -ne 0; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
-
-if test "x$lt_cv_ar_at_file" = xno; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[ABCDEGRST]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
- ;;
-solaris*)
- symcode='[BDRT]'
- ;;
-sco3.2v5*)
- symcode='[DT]'
- ;;
-sysv4.2uw2*)
- symcode='[DT]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[ABDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK '"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
- (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
-
-# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
- withval=$with_sysroot;
-else
- with_sysroot=no
-fi
-
-
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
- if test "$GCC" = yes; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
- as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
- ;;
-esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
- enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line '$LINENO' "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- ppc64-*linux*|powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- ppc*-*linux*|powerpc*-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_cc_needs_belf=yes
-else
- lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD="${LD-ld}_sol2"
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$MANIFEST_TOOL"; then
- ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-if test -n "$MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
- ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
- # Extract the first word of "mt", so it can be a program name with args.
-set dummy mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_MANIFEST_TOOL"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-if test -n "$ac_ct_MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_MANIFEST_TOOL" = x; then
- MANIFEST_TOOL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
- fi
-else
- MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-fi
-
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&5
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
- MANIFEST_TOOL=:
-fi
-
-
-
-
-
-
- case $host_os in
- rhapsody* | darwin*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DSYMUTIL"; then
- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
- ac_ct_DSYMUTIL=$DSYMUTIL
- # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DSYMUTIL"; then
- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DSYMUTIL" = x; then
- DSYMUTIL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DSYMUTIL=$ac_ct_DSYMUTIL
- fi
-else
- DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NMEDIT"; then
- ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
- ac_ct_NMEDIT=$NMEDIT
- # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_NMEDIT"; then
- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_NMEDIT="nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_NMEDIT" = x; then
- NMEDIT=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- NMEDIT=$ac_ct_NMEDIT
- fi
-else
- NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$LIPO"; then
- ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
- ac_ct_LIPO=$LIPO
- # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_LIPO"; then
- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_LIPO="lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_LIPO" = x; then
- LIPO=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- LIPO=$ac_ct_LIPO
- fi
-else
- LIPO="$ac_cv_prog_LIPO"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL"; then
- ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
- ac_ct_OTOOL=$OTOOL
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL"; then
- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL="otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL" = x; then
- OTOOL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL=$ac_ct_OTOOL
- fi
-else
- OTOOL="$ac_cv_prog_OTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL64"; then
- ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
- ac_ct_OTOOL64=$OTOOL64
- # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL64"; then
- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL64="otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL64" = x; then
- OTOOL64=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL64=$ac_ct_OTOOL64
- fi
-else
- OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&5
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&5
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_ld_exported_symbols_list=yes
-else
- lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
- echo "$RANLIB libconftest.a" >&5
- $RANLIB libconftest.a 2>&5
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&5
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&5
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
- case $host_os in
- rhapsody* | darwin1.[012])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[012]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-# Set options
-
-
-
- enable_dlopen=no
-
-
- enable_win32_dll=no
-
-
- # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
- enableval=$enable_shared; p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_shared=yes
-fi
-
-
-
-
-
-
-
-
-
- # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
- enableval=$enable_static; p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_static=yes
-fi
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
- withval=$with_pic; lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for lt_pkg in $withval; do
- IFS="$lt_save_ifs"
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
- # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
- enableval=$enable_fast_install; p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- else
- MAGIC_CMD=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
- *)
- lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
- esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
- :
-fi
-
-fi
-
-
-
-
-
-
- lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
- if test "$GCC" = yes; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
-
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
-
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- lt_prog_compiler_wl='-Xlinker '
- if test -n "$lt_prog_compiler_pic"; then
- lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='--shared'
- lt_prog_compiler_static='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-qpic'
- lt_prog_compiler_static='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Wl,'
- ;;
- *Intel*\ [CF]*Compiler*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- *Portland\ Group*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- rdos*)
- lt_prog_compiler_static='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
-else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_static_works=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works=yes
- fi
- else
- lt_cv_prog_compiler_static_works=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
- :
-else
- lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
- if test "$hard_links" = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
- runpath_var=
- allow_undefined_flag=
- always_export_symbols=no
- archive_cmds=
- archive_expsym_cmds=
- compiler_needs_object=no
- enable_shared_with_static_runtimes=no
- export_dynamic_flag_spec=
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- hardcode_automatic=no
- hardcode_direct=no
- hardcode_direct_absolute=no
- hardcode_libdir_flag_spec=
- hardcode_libdir_separator=
- hardcode_minus_L=no
- hardcode_shlibpath_var=unsupported
- inherit_rpath=no
- link_all_deplibs=unknown
- module_cmds=
- module_expsym_cmds=
- old_archive_from_new_cmds=
- old_archive_from_expsyms_cmds=
- thread_safe_flag_spec=
- whole_archive_flag_spec=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- linux* | k*bsd*-gnu | gnu*)
- link_all_deplibs=no
- ;;
- esac
-
- ld_shlibs=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
- *\ \(GNU\ Binutils\)\ [3-9]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[3-9]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- export_dynamic_flag_spec='${wl}--export-all-symbols'
- allow_undefined_flag=unsupported
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- haiku*)
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- link_all_deplibs=yes
- ;;
-
- interix[3-9]*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- whole_archive_flag_spec=
- tmp_sharedflag='--shared' ;;
- xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- ld_shlibs=no
- fi
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs" = no; then
- runpath_var=
- hardcode_libdir_flag_spec=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds=''
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- file_list_spec='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- link_all_deplibs=no
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- export_dynamic_flag_spec='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag="-z nodefs"
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' ${wl}-bernotok'
- allow_undefined_flag=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec='$convenience'
- fi
- archive_cmds_need_lc=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- file_list_spec='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
- enable_shared_with_static_runtimes=yes
- exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- old_postinstall_cmds='chmod 644 $oldlib'
- postlink_cmds='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_from_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
- enable_shared_with_static_runtimes=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc=no
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
- else
- whole_archive_flag_spec=''
- fi
- link_all_deplibs=yes
- allow_undefined_flag="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-
- else
- ld_shlibs=no
- fi
-
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- export_dynamic_flag_spec='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
-
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler__b=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -b"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler__b=yes
- fi
- else
- lt_cv_prog_compiler__b=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
-
-if test x"$lt_cv_prog_compiler__b" = xyes; then
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
-
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- *)
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int foo (void) { return 0; }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_irix_exported_symbol=yes
-else
- lt_cv_irix_exported_symbol=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
- if test "$lt_cv_irix_exported_symbol" = yes; then
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- fi
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- inherit_rpath=yes
- link_all_deplibs=yes
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- newsos6)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_shlibpath_var=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- hardcode_direct_absolute=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- ld_shlibs=no
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_separator=:
- ;;
-
- solaris*)
- no_undefined_flag=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- link_all_deplibs=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds='$CC -r -o $output$reload_objs'
- hardcode_direct=no
- ;;
- motorola)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag='${wl}-z,text'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag='${wl}-z,text'
- allow_undefined_flag='${wl}-z,nodefs'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-R,$libdir'
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- export_dynamic_flag_spec='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc=no
- else
- lt_cv_archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
- archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[lt_foo]++; }
- if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([A-Za-z]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[4-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[23].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[3-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
-fi
-
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
- test -n "$runpath_var" ||
- test "X$hardcode_automatic" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$hardcode_direct" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
- test "$hardcode_minus_L" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
- test "$inherit_rpath" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
- if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- *)
- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_shl_load=yes
-else
- ac_cv_lib_dld_shl_load=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
- ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_svld_dlopen=yes
-else
- ac_cv_lib_svld_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_dld_link=yes
-else
- ac_cv_lib_dld_dld_link=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self_static=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self_static=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
- # Report which library types will actually be built
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-
-
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-
-# Checks for libraries.
-
-# Checks for header files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-for ac_header in stdlib.h string.h math.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-#
-# For Python module
-#
-# if test -z $PYTHON; then
-# PYTHON="python"
-# fi
-# PYTHON_INCDIR=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_inc()" 2>/dev/null`
-# NUMPY_INCDIR=`$PYTHON -c "import numpy; print numpy.get_include()" 2>/dev/null`
-# CPPFLAGS="$CPPFLAGS -I$PYTHON_INCDIR -I$NUMPY_INCDIR"
-# AC_CHECK_HEADERS([Python.h])
-# AC_CHECK_HEADERS([numpy/arrayobject.h])
-# AC_CHECK_HEADERS([spglib.h])
-
-# Checks for typedefs, structures, and compiler characteristics.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if ${ac_cv_c_const+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
-#ifndef __cplusplus
- /* Ultrix mips cc rejects this sort of thing. */
- typedef int charset[2];
- const charset cs = { 0, 0 };
- /* SunOS 4.1.1 cc rejects this. */
- char const *const *pcpcc;
- char **ppc;
- /* NEC SVR4.0.2 mips cc rejects this. */
- struct point {int x, y;};
- static struct point const zero = {0,0};
- /* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in
- an arm of an if-expression whose if-part is not a constant
- expression */
- const char *g = "string";
- pcpcc = &g + (g ? g-g : 0);
- /* HPUX 7.0 cc rejects these. */
- ++pcpcc;
- ppc = (char**) pcpcc;
- pcpcc = (char const *const *) ppc;
- { /* SCO 3.2v4 cc rejects this sort of thing. */
- char tx;
- char *t = &tx;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
- if (s) return 0;
- }
- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
- }
- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
- }
- { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; } bx;
- struct s *b = &bx; b->j = 5;
- }
- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
- if (!foo) return 0;
- }
- return !cs[0] && !zero.x;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_c_const=yes
-else
- ac_cv_c_const=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-$as_echo "$ac_cv_c_const" >&6; }
-if test $ac_cv_c_const = no; then
-
-$as_echo "#define const /**/" >>confdefs.h
-
-fi
-
-
-# Checks for library functions.
-for ac_header in stdlib.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STDLIB_H 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
-$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
-if ${ac_cv_func_malloc_0_nonnull+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_malloc_0_nonnull=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *malloc ();
-#endif
-
-int
-main ()
-{
-return ! malloc (0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_malloc_0_nonnull=yes
-else
- ac_cv_func_malloc_0_nonnull=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
-$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
-if test $ac_cv_func_malloc_0_nonnull = yes; then :
-
-$as_echo "#define HAVE_MALLOC 1" >>confdefs.h
-
-else
- $as_echo "#define HAVE_MALLOC 0" >>confdefs.h
-
- case " $LIBOBJS " in
- *" malloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
- ;;
-esac
-
-
-$as_echo "#define malloc rpl_malloc" >>confdefs.h
-
-fi
-
-
-
-ac_config_files="$ac_config_files Makefile src/Makefile"
-
-# AC_CONFIG_FILES([Makefile
-# python/Makefile
-# src/Makefile])
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
- if test -n "$EXEEXT"; then
- am__EXEEXT_TRUE=
- am__EXEEXT_FALSE='#'
-else
- am__EXEEXT_TRUE='#'
- am__EXEEXT_FALSE=
-fi
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by spglib $as_me 1.4.1, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <atz.togo at gmail.com>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-spglib config.status 1.4.1
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in SHELL \
-ECHO \
-PATH_SEPARATOR \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-OBJDUMP \
-deplibs_check_method \
-file_magic_cmd \
-file_magic_glob \
-want_nocaseglob \
-DLLTOOL \
-sharedlib_from_linklib_cmd \
-AR \
-AR_FLAGS \
-archiver_list_spec \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-nm_file_list_spec \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_pic \
-lt_prog_compiler_wl \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-MANIFEST_TOOL \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_separator \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postlink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'
-
-
-
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$_am_arg" : 'X\(//\)[^/]' \| \
- X"$_am_arg" : 'X\(//\)$' \| \
- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
- # Autoconf 2.62 quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
- shift
- for mf
- do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir=$dirpart/$fdir; as_fn_mkdir_p
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
-}
- ;;
- "libtool":C)
-
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags=""
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# The PATH separator for the build system.
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# convert \$build file names to \$host format.
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-
-# convert \$build files to toolchain format.
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-
-# An object symbol dumper.
-OBJDUMP=$lt_OBJDUMP
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method = "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# How to find potential files when deplibs_check_method = "file_magic".
-file_magic_glob=$lt_file_magic_glob
-
-# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-want_nocaseglob=$lt_want_nocaseglob
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Command to associate shared and link libraries.
-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-
-# The archiver.
-AR=$lt_AR
-
-# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
-
-# How to feed a file listing to the archiver.
-archiver_list_spec=$lt_archiver_list_spec
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# Specify filename containing input files for \$NM.
-nm_file_list_spec=$lt_nm_file_list_spec
-
-# The root where to search for dependent libraries,and in which our libraries should be installed.
-lt_sysroot=$lt_sysroot
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Manifest tool.
-MANIFEST_TOOL=$lt_MANIFEST_TOOL
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- if test x"$xsi_shell" = xyes; then
- sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-func_dirname ()\
-{\
-\ case ${1} in\
-\ */*) func_dirname_result="${1%/*}${2}" ;;\
-\ * ) func_dirname_result="${3}" ;;\
-\ esac\
-} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_basename ()$/,/^} # func_basename /c\
-func_basename ()\
-{\
-\ func_basename_result="${1##*/}"\
-} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-func_dirname_and_basename ()\
-{\
-\ case ${1} in\
-\ */*) func_dirname_result="${1%/*}${2}" ;;\
-\ * ) func_dirname_result="${3}" ;;\
-\ esac\
-\ func_basename_result="${1##*/}"\
-} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-func_stripname ()\
-{\
-\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-\ # positional parameters, so assign one to ordinary parameter first.\
-\ func_stripname_result=${3}\
-\ func_stripname_result=${func_stripname_result#"${1}"}\
-\ func_stripname_result=${func_stripname_result%"${2}"}\
-} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-func_split_long_opt ()\
-{\
-\ func_split_long_opt_name=${1%%=*}\
-\ func_split_long_opt_arg=${1#*=}\
-} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-func_split_short_opt ()\
-{\
-\ func_split_short_opt_arg=${1#??}\
-\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-func_lo2o ()\
-{\
-\ case ${1} in\
-\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-\ *) func_lo2o_result=${1} ;;\
-\ esac\
-} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_xform ()$/,/^} # func_xform /c\
-func_xform ()\
-{\
- func_xform_result=${1%.*}.lo\
-} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_arith ()$/,/^} # func_arith /c\
-func_arith ()\
-{\
- func_arith_result=$(( $* ))\
-} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_len ()$/,/^} # func_len /c\
-func_len ()\
-{\
- func_len_result=${#1}\
-} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-fi
-
-if test x"$lt_shell_append" = xyes; then
- sed -e '/^func_append ()$/,/^} # func_append /c\
-func_append ()\
-{\
- eval "${1}+=\\${2}"\
-} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-func_append_quoted ()\
-{\
-\ func_quote_for_eval "${2}"\
-\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- # Save a `func_append' function call where possible by direct use of '+='
- sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-else
- # Save a `func_append' function call even when '+=' is not available
- sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-fi
-
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-
- ;;
-
- esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/configure.ac b/configure.ac
index ccc3bb7..be6febb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,8 +2,11 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
-AC_INIT([spglib], 1.4.1, [atz.togo at gmail.com])
-AM_INIT_AUTOMAKE([spglib], 1.4.1)
+#AC_INIT([spglib], 1.9.1, [atz.togo at gmail.com])
+AC_INIT([spglib],
+ m4_esyscmd_s(grep VERSION src/version.h|awk '{printf("%d.", $3)}'|sed s/.$//),
+ [atz.togo at gmail.com])
+AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([src/spglib.c])
AC_CONFIG_HEADER([config.h])
AC_CONFIG_MACRO_DIR([m4])
@@ -15,24 +18,12 @@ AM_PROG_CC_C_O
AM_PROG_LIBTOOL
# Checks for libraries.
+AC_CHECK_FUNCS([sqrt])
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([stdlib.h string.h math.h])
-#
-# For Python module
-#
-# if test -z $PYTHON; then
-# PYTHON="python"
-# fi
-# PYTHON_INCDIR=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_inc()" 2>/dev/null`
-# NUMPY_INCDIR=`$PYTHON -c "import numpy; print numpy.get_include()" 2>/dev/null`
-# CPPFLAGS="$CPPFLAGS -I$PYTHON_INCDIR -I$NUMPY_INCDIR"
-# AC_CHECK_HEADERS([Python.h])
-# AC_CHECK_HEADERS([numpy/arrayobject.h])
-# AC_CHECK_HEADERS([spglib.h])
-
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
@@ -41,7 +32,4 @@ AC_FUNC_MALLOC
AC_CONFIG_FILES([Makefile
src/Makefile])
-# AC_CONFIG_FILES([Makefile
-# python/Makefile
-# src/Makefile])
AC_OUTPUT
diff --git a/database/Wyckoff.csv b/database/Wyckoff.csv
new file mode 100644
index 0000000..3102d58
--- /dev/null
+++ b/database/Wyckoff.csv
@@ -0,0 +1,5366 @@
+1:P 1 :::::::
+::1:a:1:(x,y,z):::
+2:P -1 :::::::
+::2:i:1:(x,y,z):(-x,-y,-z)::
+::1:h:-1:(1/2,1/2,1/2):::
+::1:g:-1:(0,1/2,1/2):::
+::1:f:-1:(1/2,0,1/2):::
+::1:e:-1:(1/2,1/2,0):::
+::1:d:-1:(1/2,0,0):::
+::1:c:-1:(0,1/2,0):::
+::1:b:-1:(0,0,1/2):::
+::1:a:-1:(0,0,0):::
+3:P 1 2 1:::::::
+::2:e:1:(x,y,z):(-x,y,-z)::
+::1:d:2:(1/2,y,1/2):::
+::1:c:2:(1/2,y,0):::
+::1:b:2:(0,y,1/2):::
+::1:a:2:(0,y,0):::
+4:P 1 1 2:::::::
+::2:e:1:(x,y,z):(-x,-y,z)::
+::1:d:2:(1/2,1/2,z):::
+::1:c:2:(0,1/2,z):::
+::1:b:2:(1/2,0,z):::
+::1:a:2:(0,0,z):::
+5:P 2 1 1:::::::
+::2:e:1:(x,y,z):(x,-y,-z)::
+::1:d:2:(x,1/2,1/2):::
+::1:c:2:(x,0,1/2):::
+::1:b:2:(x,1/2,0):::
+::1:a:2:(x,0,0):::
+6:P 1 2sub1 1:::::::
+::2:a:1:(x,y,z):(-x,y+1/2,-z)::
+7:P 1 1 2sub1:::::::
+::2:a:1:(x,y,z):(-x,-y,z+1/2)::
+8:P 2sub1 1 1:::::::
+::2:a:1:(x,y,z):(x+1/2,-y,-z)::
+9:C 1 2 1:::::::
+::4:c:1:(x,y,z):(-x,y,-z)::
+::2:b:2:(0,y,1/2):::
+::2:a:2:(0,y,0):::
+10:A 1 2 1:::::::
+::4:c:1:(x,y,z):(-x,y,-z)::
+::2:b:2:(1/2,y,0):::
+::2:a:2:(0,y,0):::
+11:I 1 2 1:::::::
+::4:c:1:(x,y,z):(-x,y,-z)::
+::2:b:2:(1/2,y,0):::
+::2:a:2:(0,y,0):::
+12:A 1 1 2:::::::
+::4:c:1:(x,y,z):(-x,-y,z)::
+::2:b:2:(1/2,0,z):::
+::2:a:2:(0,0,z):::
+13:B 1 1 2:::::::
+::4:c:1:(x,y,z):(-x,-y,z)::
+::2:b:2:(0,1/2,z):::
+::2:a:2:(0,0,z):::
+14:I 1 1 2:::::::
+::4:c:1:(x,y,z):(-x,-y,z)::
+::2:b:2:(0,1/2,z):::
+::2:a:2:(0,0,z):::
+15:B 2 1 1:::::::
+::4:c:1:(x,y,z):(x,-y,-z)::
+::2:b:2:(x,1/2,0):::
+::2:a:2:(x,0,0):::
+16:C 2 1 1:::::::
+::4:c:1:(x,y,z):(x,-y,-z)::
+::2:b:2:(x,0,1/2):::
+::2:a:2:(x,0,0):::
+17:I 2 1 1:::::::
+::4:c:1:(x,y,z):(x,-y,-z)::
+::2:b:2:(x,0,1/2):::
+::2:a:2:(x,0,0):::
+18:P 1 m 1:::::::
+::2:c:1:(x,y,z):(x,-y,z)::
+::1:b:m:(x,1/2,z):::
+::1:a:m:(x,0,z):::
+19:P 1 1 m:::::::
+::2:c:1:(x,y,z):(x,y,-z)::
+::1:b:m:(x,y,1/2):::
+::1:a:m:(x,y,0):::
+20:P m 1 1:::::::
+::2:c:1:(x,y,z):(-x,y,z)::
+::1:b:m:(1/2,y,z):::
+::1:a:m:(0,y,z):::
+21:P 1 c 1:::::::
+::2:a:1:(x,y,z):(x,-y,z+1/2)::
+22:P 1 n 1:::::::
+::2:a:1:(x,y,z):(x+1/2,-y,z+1/2)::
+23:P 1 a 1:::::::
+::2:a:1:(x,y,z):(x+1/2,-y,z)::
+24:P 1 1 a:::::::
+::2:a:1:(x,y,z):(x+1/2,y,-z)::
+25:P 1 1 n:::::::
+::2:a:1:(x,y,z):(x+1/2,y+1/2,-z)::
+26:P 1 1 b:::::::
+::2:a:1:(x,y,z):(-x,y,z+1/2)::
+27:P b 1 1:::::::
+::2:a:1:(x,y,z):(-x,y+1/2,z)::
+28:P n 1 1:::::::
+::2:a:1:(x,y,z):(-x,y+1/2,z+1/2)::
+29:P c 1 1:::::::
+::2:a:1:(x,y,z):(-x,y,z+1/2)::
+30:C 1 m 1:::::::
+::4:b:1:(x,y,z):(x,-y,z)::
+::2:a:m:(x,0,z):::
+31:A 1 m 1:::::::
+::4:b:1:(x,y,z):(x,-y,z)::
+::2:a:m:(x,0,z):::
+32:I 1 m 1:::::::
+::4:b:1:(x,y,z):(x,-y,z)::
+::2:a:m:(x,0,z):::
+33:A 1 1 m:::::::
+::4:b:1:(x,y,z):(x,y,-z)::
+::2:a:m:(x,y,0):::
+34:B 1 1 m:::::::
+::4:b:1:(x,y,z):(x,y,-z)::
+::2:a:m:(x,y,0):::
+35:I 1 1 m:::::::
+::4:b:1:(x,y,z):(x,y,-z)::
+::2:a:m:(x,y,0):::
+36:B m 1 1:::::::
+::4:b:1:(x,y,z):(-x,y,z)::
+::2:a:m:(0,y,z):::
+37:C m 1 1:::::::
+::4:b:1:(x,y,z):(-x,y,z)::
+::2:a:m:(0,y,z):::
+38:I m 1 1:::::::
+::4:b:1:(x,y,z):(-x,y,z)::
+::2:a:m:(0,y,z):::
+39:C 1 c 1:::::::
+::4:a:1:(x,y,z):(x,-y,z+1/2)::
+40:A 1 n 1:::::::
+::4:a:1:(x,y,z):(x+1/2,-y,z+1/2)::
+41:I 1 a 1:::::::
+::4:a:1:(x,y,z):(x+1/2,-y,z)::
+42:A 1 a 1:::::::
+::4:a:1:(x,y,z):(x+1/2,-y,z)::
+43:C 1 n 1:::::::
+::4:a:1:(x,y,z):(x+1/2,-y,z+1/2)::
+44:I 1 c 1:::::::
+::4:a:1:(x,y,z):(x,-y,z+1/2)::
+45:A 1 1 a:::::::
+::4:a:1:(x,y,z):(x+1/2,y,-z)::
+46:B 1 1 n:::::::
+::4:a:1:(x,y,z):(x+1/2,y+1/2,-z)::
+47:I 1 1 b:::::::
+::4:a:1:(x,y,z):(x,y+1/2,-z)::
+48:B 1 1 b:::::::
+::4:a:1:(x,y,z):(x,y+1/2,-z)::
+49:A 1 1 n:::::::
+::4:a:1:(x,y,z):(x+1/2,y+1/2,-z)::
+50:I 1 1 a:::::::
+::4:a:1:(x,y,z):(x+1/2,y,-z)::
+51:B b 1 1:::::::
+::4:a:1:(x,y,z):(-x,y+1/2,z)::
+52:C n 1 1:::::::
+::4:a:1:(x,y,z):(-x,y+1/2,z+1/2)::
+53:I c 1 1:::::::
+::4:a:1:(x,y,z):(-x,y,z+1/2)::
+54:C c 1 1:::::::
+::4:a:1:(x,y,z):(-x,y,z+1/2)::
+55:B n 1 1:::::::
+::4:a:1:(x,y,z):(-x,y+1/2,z+1/2)::
+56:I b 1 1:::::::
+::4:a:1:(x,y,z):(-x,y+1/2,z)::
+57:P 1 2/m 1:::::::
+::4:o:1:(x,y,z):(-x,y,-z):(-x,-y,-z):(x,-y,z)
+::2:n:m:(x,1/2,z):(-x,1/2,-z)::
+::2:m:m:(x,0,z):(-x,0,-z)::
+::2:l:2:(1/2,y,1/2):(1/2,-y,1/2)::
+::2:k:2:(0,y,1/2):(0,-y,1/2)::
+::2:j:2:(1/2,y,0):(1/2,-y,0)::
+::2:i:2:(0,y,0):(0,-y,0)::
+::1:h:2/m:(1/2,1/2,1/2):::
+::1:g:2/m:(1/2,0,1/2):::
+::1:f:2/m:(0,1/2,1/2):::
+::1:e:2/m:(1/2,1/2,0):::
+::1:d:2/m:(1/2,0,0):::
+::1:c:2/m:(0,0,1/2):::
+::1:b:2/m:(0,1/2,0):::
+::1:a:2/m:(0,0,0):::
+58:P 1 1 2/m:::::::
+::4:o:1:(x,y,z):(-x,-y,z):(-x,-y,-z):(x,y,-z)
+::2:n:m:(x,y,1/2):(-x,-y,1/2)::
+::2:m:m:(x,y,0):(-x,-y,0)::
+::2:l:2:(1/2,1/2,z):(1/2,1/2,-z)::
+::2:k:2:(1/2,0,z):(1/2,0,-z)::
+::2:j:2:(0,1/2,z):(0,1/2,-z)::
+::2:i:2:(0,0,z):(0,0,-z)::
+::1:h:2/m:(1/2,1/2,1/2):::
+::1:g:2/m:(1/2,1/2,0):::
+::1:f:2/m:(1/2,0,1/2):::
+::1:e:2/m:(0,1/2,1/2):::
+::1:d:2/m:(0,1/2,0):::
+::1:c:2/m:(1/2,0,0):::
+::1:b:2/m:(0,0,1/2):::
+::1:a:2/m:(0,0,0):::
+59:P 2/m 1 1:::::::
+::4:o:1:(x,y,z):(x,-y,-z):(-x,-y,-z):(-x,y,z)
+::2:n:m:(1/2,y,z):(1/2,-y,-z)::
+::2:m:m:(0,y,z):(0,-y,-z)::
+::2:l:2:(x,1/2,1/2):(-x,1/2,1/2)::
+::2:k:2:(x,1/2,0):(-x,1/2,0)::
+::2:j:2:(x,0,1/2):(-x,0,1/2)::
+::2:i:2:(x,0,0):(-x,0,0)::
+::1:h:2/m:(1/2,1/2,1/2):::
+::1:g:2/m:(0,1/2,1/2):::
+::1:f:2/m:(1/2,1/2,0):::
+::1:e:2/m:(1/2,0,1/2):::
+::1:d:2/m:(0,0,1/2):::
+::1:c:2/m:(0,1/2,0):::
+::1:b:2/m:(1/2,0,0):::
+::1:a:2/m:(0,0,0):::
+60:P 1 2sub1/m 1:::::::
+::4:f:1:(x,y,z):(-x,y+1/2,-z):(-x,-y,-z):(x,-y+1/2,z)
+::2:e:m:(x,1/4,z):(-x,3/4,-z)::
+::2:d:-1:(1/2,0,1/2):(1/2,1/2,1/2)::
+::2:c:-1:(0,0,1/2):(0,1/2,1/2)::
+::2:b:-1:(1/2,0,0):(1/2,1/2,0)::
+::2:a:-1:(0,0,0):(0,1/2,0)::
+61:P 1 1 2sub1/m:::::::
+::4:f:1:(x,y,z):(-x,-y,z+1/2):(-x,-y,-z):(x,y,-z+1/2)
+::2:e:m:(x,y,1/4):(-x,-y,3/4)::
+::2:d:-1:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:c:-1:(1/2,0,0):(1/2,0,1/2)::
+::2:b:-1:(0,1/2,0):(0,1/2,1/2)::
+::2:a:-1:(0,0,0):(0,0,1/2)::
+62:P 2sub1/m 1 1:::::::
+::4:f:1:(x,y,z):(x+1/2,-y,-z):(-x,-y,-z):(-x+1/2,y,z)
+::2:e:m:(1/4,y,z):(3/4,-y,-z)::
+::2:d:-1:(0,1/2,1/2):(1/2,1/2,1/2)::
+::2:c:-1:(0,1/2,0):(1/2,1/2,0)::
+::2:b:-1:(0,0,1/2):(1/2,0,1/2)::
+::2:a:-1:(0,0,0):(1/2,0,0)::
+63:C 1 2/m 1:::::::
+::8:j:1:(x,y,z):(-x,y,-z):(-x,-y,-z):(x,-y,z)
+::4:i:m:(x,0,z):(-x,0,-z)::
+::4:h:2:(0,y,1/2):(0,-y,1/2)::
+::4:g:2:(0,y,0):(0,-y,0)::
+::4:f:-1:(1/4,1/4,1/2):(3/4,1/4,1/2)::
+::4:e:-1:(1/4,1/4,0):(3/4,1/4,0)::
+::2:d:2/m:(0,1/2,1/2):::
+::2:c:2/m:(0,0,1/2):::
+::2:b:2/m:(0,1/2,0):::
+::2:a:2/m:(0,0,0):::
+64:A 1 2/m 1:::::::
+::8:j:1:(x,y,z):(-x,y,-z):(-x,-y,-z):(x,-y,z)
+::4:i:m:(x,0,z):(-x,0,-z)::
+::4:h:2:(1/2,y,0):(1/2,-y,0)::
+::4:g:2:(0,y,0):(0,-y,0)::
+::4:f:-1:(1/2,1/4,1/4):(1/2,1/4,3/4)::
+::4:e:-1:(0,1/4,1/4):(0,1/4,3/4)::
+::2:d:2/m:(1/2,1/2,0):::
+::2:c:2/m:(1/2,0,0):::
+::2:b:2/m:(0,1/2,0):::
+::2:a:2/m:(0,0,0):::
+65:I 1 2/m 1:::::::
+::8:j:1:(x,y,z):(-x,y,-z):(-x,-y,-z):(x,-y,z)
+::4:i:m:(x,0,z):(-x,0,-z)::
+::4:h:2:(0,y,1/2):(0,-y,1/2)::
+::4:g:2:(0,y,0):(0,-y,0)::
+::4:f:-1:(1/4,1/4,3/4):(3/4,1/4,1/4)::
+::4:e:-1:(1/4,1/4,1/4):(3/4,1/4,3/4)::
+::2:d:2/m:(0,1/2,1/2):::
+::2:c:2/m:(0,0,1/2):::
+::2:b:2/m:(0,1/2,0):::
+::2:a:2/m:(0,0,0):::
+66:A 1 1 2/m:::::::
+::8:j:1:(x,y,z):(-x,-y,z):(-x,-y,-z):(x,y,-z)
+::4:i:m:(x,y,0):(-x,-y,0)::
+::4:h:2:(1/2,0,z):(1/2,0,-z)::
+::4:g:2:(0,0,z):(0,0,-z)::
+::4:f:-1:(1/2,1/4,1/4):(1/2,3/4,1/4)::
+::4:e:-1:(0,1/4,1/4):(0,3/4,1/4)::
+::2:d:2/m:(1/2,0,1/2):::
+::2:c:2/m:(1/2,0,0):::
+::2:b:2/m:(0,0,1/2):::
+::2:a:2/m:(0,0,0):::
+67:B 1 1 2/m:::::::
+::8:j:1:(x,y,z):(-x,-y,z):(-x,-y,-z):(x,y,-z)
+::4:i:m:(x,y,0):(-x,-y,0)::
+::4:h:2:(0,1/2,z):(0,1/2,-z)::
+::4:g:2:(0,0,z):(0,0,-z)::
+::4:f:-1:(1/4,1/2,1/4):(3/4,1/2,1/4)::
+::4:e:-1:(1/4,0,1/4):(3/4,0,1/4)::
+::2:d:2/m:(0,1/2,1/2):::
+::2:c:2/m:(0,1/2,0):::
+::2:b:2/m:(0,0,1/2):::
+::2:a:2/m:(0,0,0):::
+68:I 1 1 2/m:::::::
+::8:j:1:(x,y,z):(-x,-y,z):(-x,-y,-z):(x,y,-z)
+::4:i:m:(x,y,0):(-x,-y,0)::
+::4:h:2:(1/2,0,z):(1/2,0,-z)::
+::4:g:2:(0,0,z):(0,0,-z)::
+::4:f:-1:(3/4,1/4,1/4):(1/4,3/4,1/4)::
+::4:e:-1:(1/4,1/4,1/4):(3/4,3/4,1/4)::
+::2:d:2/m:(1/2,0,1/2):::
+::2:c:2/m:(1/2,0,0):::
+::2:b:2/m:(0,0,1/2):::
+::2:a:2/m:(0,0,0):::
+69:B 2/m 1 1:::::::
+::8:j:1:(x,y,z):(x,-y,-z):(-x,-y,-z):(-x,y,z)
+::4:i:m:(0,y,z):(0,-y,-z)::
+::4:h:2:(x,1/2,0):(-x,1/2,0)::
+::4:g:2:(x,0,0):(-x,0,0)::
+::4:f:-1:(1/4,1/2,1/4):(1/4,1/2,3/4)::
+::4:e:-1:(1/4,0,1/4):(1/4,0,3/4)::
+::2:d:2/m:(1/2,1/2,0):::
+::2:c:2/m:(0,1/2,0):::
+::2:b:2/m:(1/2,0,0):::
+::2:a:2/m:(0,0,0):::
+70:C 2/m 1 1:::::::
+::8:j:1:(x,y,z):(x,-y,-z):(-x,-y,-z):(-x,y,z)
+::4:i:m:(0,y,z):(0,-y,-z)::
+::4:h:2:(x,0,1/2):(-x,0,1/2)::
+::4:g:2:(x,0,0):(-x,0,0)::
+::4:f:-1:(1/4,1/4,1/2):(1/4,3/4,1/2)::
+::4:e:-1:(1/4,1/4,0):(1/4,3/4,0)::
+::2:d:2/m:(1/2,0,1/2):::
+::2:c:2/m:(0,0,1/2):::
+::2:b:2/m:(1/2,0,0):::
+::2:a:2/m:(0,0,0):::
+71:I 2/m 1 1:::::::
+::8:j:1:(x,y,z):(x,-y,-z):(-x,-y,-z):(-x,y,z)
+::4:i:m:(0,y,z):(0,-y,-z)::
+::4:h:2:(x,1/2,0):(-x,1/2,0)::
+::4:g:2:(x,0,0):(-x,0,0)::
+::4:f:-1:(1/4,3/4,1/4):(1/4,1/4,3/4)::
+::4:e:-1:(1/4,1/4,1/4):(1/4,3/4,3/4)::
+::2:d:2/m:(1/2,1/2,0):::
+::2:c:2/m:(0,1/2,0):::
+::2:b:2/m:(1/2,0,0):::
+::2:a:2/m:(0,0,0):::
+72:P 1 2/c 1:::::::
+::4:g:1:(x,y,z):(-x,y,-z+1/2):(-x,-y,-z):(x,-y,z+1/2)
+::2:f:2:(1/2,y,1/4):(1/2,-y,3/4)::
+::2:e:2:(0,y,1/4):(0,-y,3/4)::
+::2:d:-1:(1/2,0,0):(1/2,0,1/2)::
+::2:c:-1:(0,1/2,0):(0,1/2,1/2)::
+::2:b:-1:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(0,0,1/2)::
+73:P 1 2/n 1:::::::
+::4:g:1:(x,y,z):(-x+1/2,y,-z+1/2):(-x,-y,-z):(x+1/2,-y,z+1/2)
+::2:f:2:(3/4,y,1/4):(1/4,-y,3/4)::
+::2:e:2:(1/4,y,1/4):(3/4,-y,3/4)::
+::2:d:-1:(1/2,0,0):(0,0,1/2)::
+::2:c:-1:(0,1/2,0):(1/2,1/2,1/2)::
+::2:b:-1:(1/2,1/2,0):(0,1/2,1/2)::
+::2:a:-1:(0,0,0):(1/2,0,1/2)::
+74:P 1 2/a 1:::::::
+::4:g:1:(x,y,z):(-x+1/2,y,-z):(-x,-y,-z):(x+1/2,-y,z)
+::2:f:2:(3/4,y,1/2):(1/4,-y,1/2)::
+::2:e:2:(3/4,y,0):(1/4,-y,0)::
+::2:d:-1:(0,0,1/2):(1/2,0,1/2)::
+::2:c:-1:(0,1/2,0):(1/2,1/2,0)::
+::2:b:-1:(0,1/2,1/2):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(1/2,0,0)::
+75:P 1 1 2/a:::::::
+::4:g:1:(x,y,z):(-x+1/2,-y,z):(-x,-y,-z):(x+1/2,y,-z)
+::2:f:2:(1/4,1/2,z):(3/4,1/2,-z)::
+::2:e:2:(1/4,0,z):(3/4,0,-z)::
+::2:d:-1:(0,1/2,0):(1/2,1/2,0)::
+::2:c:-1:(0,0,1/2):(1/2,0,1/2)::
+::2:b:-1:(0,1/2,1/2):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(1/2,0,0)::
+76:P 1 1 2/n:::::::
+::4:g:1:(x,y,z):(-x+1/2,-y+1/2,z):(-x,-y,-z):(x+1/2,y+1/2,-z)
+::2:f:2:(1/4,3/4,z):(3/4,1/4,-z)::
+::2:e:2:(1/4,1/4,z):(3/4,3/4,-z)::
+::2:d:-1:(0,1/2,0):(1/2,0,0)::
+::2:c:-1:(0,0,1/2):(1/2,1/2,1/2)::
+::2:b:-1:(0,1/2,1/2):(1/2,0,1/2)::
+::2:a:-1:(0,0,0):(1/2,1/2,0)::
+77:P 1 1 2/b:::::::
+::4:g:1:(x,y,z):(-x,-y+1/2,z):(-x,-y,-z):(x,y+1/2,-z)
+::2:f:2:(1/2,3/4,z):(1/2,1/4,-z)::
+::2:e:2:(0,3/4,z):(0,1/4,-z)::
+::2:d:-1:(1/2,0,0):(1/2,1/2,0)::
+::2:c:-1:(0,0,1/2):(0,1/2,1/2)::
+::2:b:-1:(1/2,0,1/2):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(0,1/2,0)::
+78:P 2/b 1 1:::::::
+::4:g:1:(x,y,z):(x,-y+1/2,-z):(-x,-y,-z):(-x,y+1/2,z)
+::2:f:2:(x,1/4,1/2):(-x,3/4,1/2)::
+::2:e:2:(x,1/4,0):(-x,3/4,0)::
+::2:d:-1:(0,0,1/2):(0,1/2,1/2)::
+::2:c:-1:(1/2,0,0):(1/2,1/2,0)::
+::2:b:-1:(1/2,0,1/2):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(0,1/2,0)::
+79:P 2/n 1 1:::::::
+::4:g:1:(x,y,z):(x,-y+1/2,-z+1/2):(-x,-y,-z):(-x,y+1/2,z+1/2)
+::2:f:2:(x,1/4,3/4):(-x,3/4,1/4)::
+::2:e:2:(x,1/4,1/4):(-x,3/4,3/4)::
+::2:d:-1:(0,0,1/2):(0,1/2,0)::
+::2:c:-1:(1/2,0,0):(1/2,1/2,1/2)::
+::2:b:-1:(1/2,0,1/2):(1/2,1/2,0)::
+::2:a:-1:(0,0,0):(0,1/2,1/2)::
+80:P 2/c 1 1:::::::
+::4:g:1:(x,y,z):(x,-y,-z+1/2):(-x,-y,-z):(-x,y,z+1/2)
+::2:f:2:(x,1/2,3/4):(-x,1/2,1/4)::
+::2:e:2:(x,0,3/4):(-x,0,1/4)::
+::2:d:-1:(0,1/2,0):(0,1/2,1/2)::
+::2:c:-1:(1/2,0,0):(1/2,0,1/2)::
+::2:b:-1:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(0,0,1/2)::
+81:P 1 2sub1/c 1:::::::
+::4:e:1:(x,y,z):(-x,y+1/2,-z+1/2):(-x,-y,-z):(x,-y+1/2,z+1/2)
+::2:d:-1:(1/2,0,1/2):(1/2,1/2,0)::
+::2:c:-1:(0,0,1/2):(0,1/2,0)::
+::2:b:-1:(1/2,0,0):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(0,1/2,1/2)::
+82:P 1 2sub1/n 1:::::::
+::4:e:1:(x,y,z):(-x+1/2,y+1/2,-z+1/2):(-x,-y,-z):(x+1/2,-y+1/2,z+1/2)
+::2:d:-1:(0,0,1/2):(1/2,1/2,0)::
+::2:c:-1:(1/2,0,1/2):(0,1/2,0)::
+::2:b:-1:(1/2,0,0):(0,1/2,1/2)::
+::2:a:-1:(0,0,0):(1/2,1/2,1/2)::
+83:P 1 2sub1/a 1:::::::
+::4:e:1:(x,y,z):(-x+1/2,y+1/2,-z):(-x,-y,-z):(x+1/2,-y+1/2,z)
+::2:d:-1:(1/2,0,1/2):(0,1/2,1/2)::
+::2:c:-1:(1/2,0,0):(0,1/2,0)::
+::2:b:-1:(0,0,1/2):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(1/2,1/2,0)::
+84:P 1 1 2sub1/a:::::::
+::4:e:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,-y,-z):(x+1/2,y,-z+1/2)
+::2:d:-1:(1/2,1/2,0):(0,1/2,1/2)::
+::2:c:-1:(1/2,0,0):(0,0,1/2)::
+::2:b:-1:(0,1/2,0):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(1/2,0,1/2)::
+85:P 1 1 2sub1/n:::::::
+::4:e:1:(x,y,z):(-x+1/2,-y+1/2,z+1/2):(-x,-y,-z):(x+1/2,y+1/2,-z+1/2)
+::2:d:-1:(1/2,0,0):(0,1/2,1/2)::
+::2:c:-1:(1/2,1/2,0):(0,0,1/2)::
+::2:b:-1:(0,1/2,0):(1/2,0,1/2)::
+::2:a:-1:(0,0,0):(1/2,1/2,1/2)::
+86:P 1 1 2sub1/b:::::::
+::4:e:1:(x,y,z):(-x,-y+1/2,z+1/2):(-x,-y,-z):(x,y+1/2,-z+1/2)
+::2:d:-1:(1/2,1/2,0):(1/2,0,1/2)::
+::2:c:-1:(0,1/2,0):(0,0,1/2)::
+::2:b:-1:(1/2,0,0):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(0,1/2,1/2)::
+87:P 2sub1/b 1 1:::::::
+::4:e:1:(x,y,z):(x+1/2,-y+1/2,-z):(-x,-y,-z):(-x+1/2,y+1/2,z)
+::2:d:-1:(0,1/2,1/2):(1/2,0,1/2)::
+::2:c:-1:(0,1/2,0):(1/2,0,0)::
+::2:b:-1:(0,0,1/2):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(1/2,1/2,0)::
+88:P 2sub1/n 1 1:::::::
+::4:e:1:(x,y,z):(x+1/2,-y+1/2,-z+1/2):(-x,-y,-z):(-x+1/2,y+1/2,z+1/2)
+::2:d:-1:(0,1/2,0):(1/2,0,1/2)::
+::2:c:-1:(0,1/2,1/2):(1/2,0,0)::
+::2:b:-1:(0,0,1/2):(1/2,1/2,0)::
+::2:a:-1:(0,0,0):(1/2,1/2,1/2)::
+89:P 2sub1/c 1 1:::::::
+::4:e:1:(x,y,z):(x+1/2,-y,-z+1/2):(-x,-y,-z):(-x+1/2,y,z+1/2)
+::2:d:-1:(0,1/2,1/2):(1/2,1/2,0)::
+::2:c:-1:(0,0,1/2):(1/2,0,0)::
+::2:b:-1:(0,1/2,0):(1/2,1/2,1/2)::
+::2:a:-1:(0,0,0):(1/2,0,1/2)::
+90:C 1 2/c 1:::::::
+::8:f:1:(x,y,z):(-x,y,-z+1/2):(-x,-y,-z):(x,-y,z+1/2)
+::4:e:2:(0,y,1/4):(0,-y,3/4)::
+::4:d:-1:(1/4,1/4,1/2):(3/4,1/4,0)::
+::4:c:-1:(1/4,1/4,0):(3/4,1/4,1/2)::
+::4:b:-1:(0,1/2,0):(0,1/2,1/2)::
+::4:a:-1:(0,0,0):(0,0,1/2)::
+91:A 1 2/n 1:::::::
+::8:f:1:(x,y,z):(-x+1/2,y,-z+1/2):(-x,-y,-z):(x+1/2,-y,z+1/2)
+::4:e:2:(1/4,y,1/4):(3/4,-y,3/4)::
+::4:d:-1:(1/2,3/4,3/4):(0,3/4,3/4)::
+::4:c:-1:(0,3/4,1/4):(1/2,3/4,1/4)::
+::4:b:-1:(0,1/2,0):(1/2,1/2,1/2)::
+::4:a:-1:(0,0,0):(1/2,0,1/2)::
+92:I 1 2/a 1:::::::
+::8:f:1:(x,y,z):(-x+1/2,y,-z):(-x,-y,-z):(x+1/2,-y,z)
+::4:e:2:(1/4,y,0):(3/4,-y,0)::
+::4:d:-1:(3/4,3/4,1/4):(3/4,3/4,3/4)::
+::4:c:-1:(1/4,3/4,1/4):(1/4,3/4,3/4)::
+::4:b:-1:(0,1/2,0):(1/2,1/2,0)::
+::4:a:-1:(0,0,0):(1/2,0,0)::
+93:A 1 2/a 1:::::::
+::8:f:1:(x,y,z):(-x+1/2,y,-z):(-x,-y,-z):(x+1/2,-y,z)
+::4:e:2:(3/4,y,0):(1/4,-y,0)::
+::4:d:-1:(1/2,1/4,1/4):(0,1/4,3/4)::
+::4:c:-1:(0,1/4,1/4):(1/2,1/4,3/4)::
+::4:b:-1:(0,1/2,0):(1/2,1/2,0)::
+::4:a:-1:(0,0,0):(1/2,0,0)::
+94:C 1 2/n 1:::::::
+::8:f:1:(x,y,z):(-x+1/2,y,-z+1/2):(-x,-y,-z):(x+1/2,-y,z+1/2)
+::4:e:2:(1/4,y,1/4):(3/4,-y,3/4)::
+::4:d:-1:(3/4,1/4,1/2):(3/4,1/4,0)::
+::4:c:-1:(1/4,1/4,0):(1/4,1/4,1/2)::
+::4:b:-1:(0,1/2,0):(1/2,1/2,1/2)::
+::4:a:-1:(0,0,0):(1/2,0,1/2)::
+95:I 1 2/c 1:::::::
+::8:f:1:(x,y,z):(-x,y,-z+1/2):(-x,-y,-z):(x,-y,z+1/2)
+::4:e:2:(0,y,1/4):(0,-y,3/4)::
+::4:d:-1:(1/4,1/4,3/4):(3/4,1/4,3/4)::
+::4:c:-1:(1/4,1/4,1/4):(3/4,1/4,1/4)::
+::4:b:-1:(0,1/2,0):(0,1/2,1/2)::
+::4:a:-1:(0,0,0):(0,0,1/2)::
+96:A 1 1 2/a:::::::
+::8:f:1:(x,y,z):(-x+1/2,-y,z):(-x,-y,-z):(x+1/2,y,-z)
+::4:e:2:(1/4,0,z):(3/4,0,-z)::
+::4:d:-1:(1/2,1/4,1/4):(0,3/4,1/4)::
+::4:c:-1:(0,1/4,1/4):(1/2,3/4,1/4)::
+::4:b:-1:(0,0,1/2):(1/2,0,1/2)::
+::4:a:-1:(0,0,0):(1/2,0,0)::
+97:B 1 1 2/n:::::::
+::8:f:1:(x,y,z):(-x+1/2,-y+1/2,z):(-x,-y,-z):(x+1/2,y+1/2,-z)
+::4:e:2:(1/4,1/4,z):(3/4,3/4,-z)::
+::4:d:-1:(3/4,1/2,3/4):(3/4,0,3/4)::
+::4:c:-1:(1/4,0,3/4):(1/4,1/2,3/4)::
+::4:b:-1:(0,0,1/2):(1/2,1/2,1/2)::
+::4:a:-1:(0,0,0):(1/2,1/2,0)::
+98:I 1 1 2/b:::::::
+::8:f:1:(x,y,z):(-x,-y+1/2,z):(-x,-y,-z):(x,y+1/2,-z)
+::4:e:2:(0,1/4,z):(0,3/4,-z)::
+::4:d:-1:(1/4,3/4,3/4):(3/4,3/4,3/4)::
+::4:c:-1:(1/4,1/4,3/4):(3/4,1/4,3/4)::
+::4:b:-1:(0,0,1/2):(0,1/2,1/2)::
+::4:a:-1:(0,0,0):(0,1/2,0)::
+99:B 1 1 2/b:::::::
+::8:f:1:(x,y,z):(-x,-y+1/2,z):(-x,-y,-z):(x,y+1/2,-z)
+::4:e:2:(0,3/4,z):(0,1/4,-z)::
+::4:d:-1:(1/4,1/2,1/4):(3/4,0,1/4)::
+::4:c:-1:(1/4,0,1/4):(3/4,1/2,1/4)::
+::4:b:-1:(0,0,1/2):(0,1/2,1/2)::
+::4:a:-1:(0,0,0):(0,1/2,0)::
+100:A 1 1 2/n:::::::
+::8:f:1:(x,y,z):(-x+1/2,-y+1/2,z):(-x,-y,-z):(x+1/2,y+1/2,-z)
+::4:e:2:(1/4,1/4,z):(3/4,3/4,-z)::
+::4:d:-1:(1/2,3/4,1/4):(0,3/4,1/4)::
+::4:c:-1:(0,1/4,1/4):(1/2,1/4,1/4)::
+::4:b:-1:(0,0,1/2):(1/2,1/2,1/2)::
+::4:a:-1:(0,0,0):(1/2,1/2,0)::
+101:I 1 1 2/a:::::::
+::8:f:1:(x,y,z):(-x+1/2,-y,z):(-x,-y,-z):(x+1/2,y,-z)
+::4:e:2:(1/4,0,z):(3/4,0,-z)::
+::4:d:-1:(3/4,1/4,1/4):(3/4,3/4,1/4)::
+::4:c:-1:(1/4,1/4,1/4):(1/4,3/4,1/4)::
+::4:b:-1:(0,0,1/2):(1/2,0,1/2)::
+::4:a:-1:(0,0,0):(1/2,0,0)::
+102:B 2/b 1 1:::::::
+::8:f:1:(x,y,z):(x,-y+1/2,-z):(-x,-y,-z):(-x,y+1/2,z)
+::4:e:2:(x,1/4,0):(-x,3/4,0)::
+::4:d:-1:(1/4,1/2,1/4):(1/4,0,3/4)::
+::4:c:-1:(1/4,0,1/4):(1/4,1/2,3/4)::
+::4:b:-1:(1/2,0,0):(1/2,1/2,0)::
+::4:a:-1:(0,0,0):(0,1/2,0)::
+103:C 2/n 1 1:::::::
+::8:f:1:(x,y,z):(x,-y+1/2,-z+1/2):(-x,-y,-z):(-x,y+1/2,z+1/2)
+::4:e:2:(x,1/4,1/4):(-x,3/4,3/4)::
+::4:d:-1:(3/4,3/4,1/2):(3/4,3/4,0)::
+::4:c:-1:(3/4,1/4,0):(3/4,1/4,1/2)::
+::4:b:-1:(1/2,0,0):(1/2,1/2,1/2)::
+::4:a:-1:(0,0,0):(0,1/2,1/2)::
+104:I 2/c 1 1:::::::
+::8:f:1:(x,y,z):(x,-y,-z+1/2):(-x,-y,-z):(-x,y,z+1/2)
+::4:e:2:(x,0,1/4):(-x,0,3/4)::
+::4:d:-1:(3/4,1/4,3/4):(3/4,3/4,3/4)::
+::4:c:-1:(3/4,1/4,1/4):(3/4,3/4,1/4)::
+::4:b:-1:(1/2,0,0):(1/2,0,1/2)::
+::4:a:-1:(0,0,0):(0,0,1/2)::
+105:C 2/c 1 1:::::::
+::8:f:1:(x,y,z):(x,-y,-z+1/2):(-x,-y,-z):(-x,y,z+1/2)
+::4:e:2:(x,0,3/4):(-x,0,1/4)::
+::4:d:-1:(1/4,1/4,1/2):(1/4,3/4,0)::
+::4:c:-1:(1/4,1/4,0):(1/4,3/4,1/2)::
+::4:b:-1:(1/2,0,0):(1/2,0,1/2)::
+::4:a:-1:(0,0,0):(0,0,1/2)::
+106:B 2/n 1 1:::::::
+::8:f:1:(x,y,z):(x,-y+1/2,-z+1/2):(-x,-y,-z):(-x,y+1/2,z+1/2)
+::4:e:2:(x,1/4,1/4):(-x,3/4,3/4)::
+::4:d:-1:(1/4,1/2,3/4):(1/4,0,3/4)::
+::4:c:-1:(1/4,0,1/4):(1/4,1/2,1/4)::
+::4:b:-1:(1/2,0,0):(1/2,1/2,1/2)::
+::4:a:-1:(0,0,0):(0,1/2,1/2)::
+107:I 2/b 1 1:::::::
+::8:f:1:(x,y,z):(x,-y+1/2,-z):(-x,-y,-z):(-x,y+1/2,z)
+::4:e:2:(x,1/4,0):(-x,3/4,0)::
+::4:d:-1:(1/4,3/4,1/4):(1/4,3/4,3/4)::
+::4:c:-1:(1/4,1/4,1/4):(1/4,1/4,3/4)::
+::4:b:-1:(1/2,0,0):(1/2,1/2,0)::
+::4:a:-1:(0,0,0):(0,1/2,0)::
+108:P 2 2 2:::::::
+::4:u:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+::2:t:..2:(1/2,1/2,z):(1/2,1/2,-z)::
+::2:s:..2:(0,1/2,z):(0,1/2,-z)::
+::2:r:..2:(1/2,0,z):(1/2,0,-z)::
+::2:q:..2:(0,0,z):(0,0,-z)::
+::2:p:.2.:(1/2,y,1/2):(1/2,-y,1/2)::
+::2:o:.2.:(1/2,y,0):(1/2,-y,0)::
+::2:n:.2.:(0,y,1/2):(0,-y,1/2)::
+::2:m:.2.:(0,y,0):(0,-y,0)::
+::2:l:2..:(x,1/2,1/2):(-x,1/2,1/2)::
+::2:k:2..:(x,1/2,0):(-x,1/2,0)::
+::2:j:2..:(x,0,1/2):(-x,0,1/2)::
+::2:i:2..:(x,0,0):(-x,0,0)::
+::1:h:222:(1/2,1/2,1/2):::
+::1:g:222:(0,1/2,1/2):::
+::1:f:222:(1/2,0,1/2):::
+::1:e:222:(1/2,1/2,0):::
+::1:d:222:(0,0,1/2):::
+::1:c:222:(0,1/2,0):::
+::1:b:222:(1/2,0,0):::
+::1:a:222:(0,0,0):::
+109:P 2 2 2sub1:::::::
+::4:e:1:(x,y,z):(-x,-y,z+1/2):(-x,y,-z+1/2):(x,-y,-z)
+::2:d:.2.:(1/2,y,1/4):(1/2,-y,3/4)::
+::2:c:.2.:(0,y,1/4):(0,-y,3/4)::
+::2:b:2..:(x,1/2,0):(-x,1/2,1/2)::
+::2:a:2..:(x,0,0):(-x,0,1/2)::
+110:P 2sub1 2 2:::::::
+::4:e:1:(x,y,z):(x+1/2,-y,-z):(-x+1/2,-y,z):(-x,y,-z)
+::2:d:.2.:(1/4,1/2,z):(3/4,1/2,-z)::
+::2:c:.2.:(1/4,0,z):(3/4,0,-z)::
+::2:b:2..:(0,y,1/2):(1/2,-y,1/2)::
+::2:a:2..:(0,y,0):(1/2,-y,0)::
+111:P 2 2sub1 2:::::::
+::4:e:1:(x,y,z):(-x,y+1/2,-z):(x,-y+1/2,-z):(-x,-y,z)
+::2:d:.2.:(x,1/4,1/2):(-x,3/4,1/2)::
+::2:c:.2.:(x,1/4,0):(-x,3/4,0)::
+::2:b:2..:(1/2,0,z):(1/2,1/2,-z)::
+::2:a:2..:(0,0,z):(0,1/2,-z)::
+112:P 2sub1 2sub1 2:::::::
+::4:c:1:(x,y,z):(-x,-y,z):(-x+1/2,y+1/2,-z):(x+1/2,-y+1/2,-z)
+::2:b:..2:(0,1/2,z):(1/2,0,-z)::
+::2:a:..2:(0,0,z):(1/2,1/2,-z)::
+113:P 2 2sub1 2sub1:::::::
+::4:c:1:(x,y,z):(x,-y,-z):(-x,-y+1/2,z+1/2):(-x,y+1/2,-z+1/2)
+::2:b:..2:(x,0,1/2):(-x,1/2,0)::
+::2:a:..2:(x,0,0):(-x,1/2,1/2)::
+114:P 2sub1 2 2sub1:::::::
+::4:c:1:(x,y,z):(-x,y,-z):(x+1/2,-y,-z+1/2):(-x+1/2,-y,z+1/2)
+::2:b:..2:(1/2,y,0):(0,-y,1/2)::
+::2:a:..2:(0,y,0):(1/2,-y,1/2)::
+115:P 2sub1 2sub1 2sub1:::::::
+::4:a:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+116:C 2 2 2sub1:::::::
+::8:c:1:(x,y,z):(-x,-y,z+1/2):(-x,y,-z+1/2):(x,-y,-z)
+::4:b:.2.:(0,y,1/4):(0,-y,3/4)::
+::4:a:2..:(x,0,0):(-x,0,1/2)::
+117:A 2sub1 2 2:::::::
+::8:c:1:(x,y,z):(x+1/2,-y,-z):(-x+1/2,-y,z):(-x,y,-z)
+::4:b:.2.:(1/4,0,z):(3/4,0,-z)::
+::4:a:2..:(0,y,0):(1/2,-y,0)::
+118:B 2 2sub1 2:::::::
+::8:c:1:(x,y,z):(-x,y+1/2,-z):(x,-y+1/2,-z):(-x,-y,z)
+::4:b:.2.:(x,1/4,0):(-x,3/4,0)::
+::4:a:2..:(0,0,z):(0,1/2,-z)::
+119:C 2 2 2:::::::
+::8:l:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+::4:k:..2:(1/4,1/4,z):(3/4,1/4,-z)::
+::4:j:..2:(0,1/2,z):(0,1/2,-z)::
+::4:i:..2:(0,0,z):(0,0,-z)::
+::4:h:.2.:(0,y,1/2):(0,-y,1/2)::
+::4:g:.2.:(0,y,0):(0,-y,0)::
+::4:f:2..:(x,0,1/2):(-x,0,1/2)::
+::4:e:2..:(x,0,0):(-x,0,0)::
+::2:d:222:(0,0,1/2):::
+::2:c:222:(1/2,0,1/2):::
+::2:b:222:(0,1/2,0):::
+::2:a:222:(0,0,0):::
+120:A 2 2 2:::::::
+::8:l:1:(x,y,z):(x,-y,-z):(-x,-y,z):(-x,y,-z)
+::4:k:..2:(x,1/4,1/4):(-x,3/4,1/4)::
+::4:j:..2:(x,0,1/2):(-x,0,1/2)::
+::4:i:..2:(x,0,0):(-x,0,0)::
+::4:h:.2.:(1/2,0,z):(1/2,0,-z)::
+::4:g:.2.:(0,0,z):(0,0,-z)::
+::4:f:2..:(1/2,y,0):(1/2,-y,0)::
+::4:e:2..:(0,y,0):(0,-y,0)::
+::2:d:222:(1/2,0,0):::
+::2:c:222:(1/2,1/2,0):::
+::2:b:222:(0,0,1/2):::
+::2:a:222:(0,0,0):::
+121:B 2 2 2:::::::
+::8:l:1:(x,y,z):(-x,y,-z):(x,-y,-z):(-x,-y,z)
+::4:k:..2:(1/4,y,1/4):(1/4,-y,3/4)::
+::4:j:..2:(1/2,y,0):(1/2,-y,0)::
+::4:i:..2:(0,y,0):(0,-y,0)::
+::4:h:.2.:(x,1/2,0):(-x,1/2,0)::
+::4:g:.2.:(x,0,0):(-x,0,0)::
+::4:f:2..:(0,1/2,z):(0,1/2,-z)::
+::4:e:2..:(0,0,z):(0,0,-z)::
+::2:d:222:(0,1/2,0):::
+::2:c:222:(0,1/2,1/2):::
+::2:b:222:(1/2,0,0):::
+::2:a:222:(0,0,0):::
+122:F 2 2 2:::::::
+::16:k:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+::8:j:2..:(x,1/4,1/4):(-x,3/4,1/4)::
+::8:i:.2.:(1/4,y,1/4):(3/4,-y,1/4)::
+::8:h:..2:(1/4,1/4,z):(3/4,1/4,-z)::
+::8:g:..2:(0,0,z):(0,0,-z)::
+::8:f:.2.:(0,y,0):(0,-y,0)::
+::8:e:2..:(x,0,0):(-x,0,0)::
+::4:d:222:(1/4,1/4,3/4):::
+::4:c:222:(1/4,1/4,1/4):::
+::4:b:222:(0,0,1/2):::
+::4:a:222:(0,0,0):::
+123:I 2 2 2:::::::
+::8:k:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+::4:j:..2:(0,1/2,z):(0,1/2,-z)::
+::4:i:..2:(0,0,z):(0,0,-z)::
+::4:h:.2.:(1/2,y,0):(1/2,-y,0)::
+::4:g:.2.:(0,y,0):(0,-y,0)::
+::4:f:2..:(x,0,1/2):(-x,0,1/2)::
+::4:e:2..:(x,0,0):(-x,0,0)::
+::2:d:222:(0,1/2,0):::
+::2:c:222:(0,0,1/2):::
+::2:b:222:(1/2,0,0):::
+::2:a:222:(0,0,0):::
+124:I 2sub1 2sub1 2sub1:::::::
+::8:d:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+::4:c:..2:(0,1/4,z):(0,3/4,-z+1/2)::
+::4:b:.2.:(1/4,y,0):(1/4,-y,1/2)::
+::4:a:2..:(x,0,1/4):(-x+1/2,0,3/4)::
+125:P m m 2:::::::
+::4:i:1:(x,y,z):(-x,-y,z):(x,-y,z):(-x,y,z)
+::2:h:m..:(1/2,y,z):(1/2,-y,z)::
+::2:g:m..:(0,y,z):(0,-y,z)::
+::2:f:.m.:(x,1/2,z):(-x,1/2,z)::
+::2:e:.m.:(x,0,z):(-x,0,z)::
+::1:d:mm2:(1/2,1/2,z):::
+::1:c:mm2:(1/2,0,z):::
+::1:b:mm2:(0,1/2,z):::
+::1:a:mm2:(0,0,z):::
+126:P 2 m m:::::::
+::4:i:1:(x,y,z):(x,-y,-z):(x,y,-z):(x,-y,z)
+::2:h:m..:(x,1/2,z):(x,1/2,-z)::
+::2:g:m..:(x,0,z):(x,0,-z)::
+::2:f:.m.:(x,y,1/2):(x,-y,1/2)::
+::2:e:.m.:(x,y,0):(x,-y,0)::
+::1:d:mm2:(x,1/2,1/2):::
+::1:c:mm2:(x,1/2,0):::
+::1:b:mm2:(x,0,1/2):::
+::1:a:mm2:(x,0,0):::
+127:P m 2 m:::::::
+::4:i:1:(x,y,z):(-x,y,-z):(-x,y,z):(x,y,-z)
+::2:h:m..:(x,y,1/2):(-x,y,1/2)::
+::2:g:m..:(x,y,0):(-x,y,0)::
+::2:f:.m.:(1/2,y,z):(1/2,y,-z)::
+::2:e:.m.:(0,y,z):(0,y,-z)::
+::1:d:mm2:(1/2,y,1/2):::
+::1:c:mm2:(0,y,1/2):::
+::1:b:mm2:(1/2,y,0):::
+::1:a:mm2:(0,y,0):::
+128:P m c 2sub1:::::::
+::4:c:1:(x,y,z):(-x,-y,z+1/2):(x,-y,z+1/2):(-x,y,z)
+::2:b:m..:(1/2,y,z):(1/2,-y,z+1/2)::
+::2:a:m..:(0,y,z):(0,-y,z+1/2)::
+129:P c m 2sub1:::::::
+::4:c:1:(x,y,z):(-x,-y,z+1/2):(-x,y,z+1/2):(x,-y,z)
+::2:b:m..:(x,1/2,z):(-x,1/2,z+1/2)::
+::2:a:m..:(x,0,z):(-x,0,z+1/2)::
+130:P 2sub1 m a:::::::
+::4:c:1:(x,y,z):(x+1/2,-y,-z):(x+1/2,y,-z):(x,-y,z)
+::2:b:m..:(x,1/2,z):(x+1/2,1/2,-z)::
+::2:a:m..:(x,0,z):(x+1/2,0,-z)::
+131:P 2sub1 a m:::::::
+::4:c:1:(x,y,z):(x+1/2,-y,-z):(x+1/2,-y,z):(x,y,-z)
+::2:b:m..:(x,y,1/2):(x+1/2,-y,1/2)::
+::2:a:m..:(x,y,0):(x+1/2,-y,0)::
+132:P b 2sub1 m:::::::
+::4:c:1:(x,y,z):(-x,y+1/2,-z):(-x,y+1/2,z):(x,y,-z)
+::2:b:m..:(x,y,1/2):(-x,y+1/2,1/2)::
+::2:a:m..:(x,y,0):(-x,y+1/2,0)::
+133:P m 2sub1 b:::::::
+::4:c:1:(x,y,z):(-x,y+1/2,-z):(x,y+1/2,-z):(-x,y,z)
+::2:b:m..:(1/2,y,z):(1/2,y+1/2,-z)::
+::2:a:m..:(0,y,z):(0,y+1/2,-z)::
+134:P c c 2:::::::
+::4:e:1:(x,y,z):(-x,-y,z):(x,-y,z+1/2):(-x,y,z+1/2)
+::2:d:..2:(1/2,1/2,z):(1/2,1/2,z+1/2)::
+::2:c:..2:(1/2,0,z):(1/2,0,z+1/2)::
+::2:b:..2:(0,1/2,z):(0,1/2,z+1/2)::
+::2:a:..2:(0,0,z):(0,0,z+1/2)::
+135:P 2 a a:::::::
+::4:e:1:(x,y,z):(x,-y,-z):(x+1/2,y,-z):(x+1/2,-y,z)
+::2:d:..2:(x,1/2,1/2):(x+1/2,1/2,1/2)::
+::2:c:..2:(x,1/2,0):(x+1/2,1/2,0)::
+::2:b:..2:(x,0,1/2):(x+1/2,0,1/2)::
+::2:a:..2:(x,0,0):(x+1/2,0,0)::
+136:P b 2 b:::::::
+::4:e:1:(x,y,z):(-x,y,-z):(-x,y+1/2,z):(x,y+1/2,-z)
+::2:d:..2:(1/2,y,1/2):(1/2,y+1/2,1/2)::
+::2:c:..2:(0,y,1/2):(0,y+1/2,1/2)::
+::2:b:..2:(1/2,y,0):(1/2,y+1/2,0)::
+::2:a:..2:(0,y,0):(0,y+1/2,0)::
+137:P m a 2:::::::
+::4:d:1:(x,y,z):(-x,-y,z):(x+1/2,-y,z):(-x+1/2,y,z)
+::2:c:m..:(1/4,y,z):(3/4,-y,z)::
+::2:b:..2:(0,1/2,z):(1/2,1/2,z)::
+::2:a:..2:(0,0,z):(1/2,0,z)::
+138:P b m 2:::::::
+::4:d:1:(x,y,z):(-x,-y,z):(-x,y+1/2,z):(x,-y+1/2,z)
+::2:c:m..:(x,1/4,z):(-x,3/4,z)::
+::2:b:..2:(1/2,0,z):(1/2,1/2,z)::
+::2:a:..2:(0,0,z):(0,1/2,z)::
+139:P 2 m b:::::::
+::4:d:1:(x,y,z):(x,-y,-z):(x,y+1/2,-z):(x,-y+1/2,z)
+::2:c:m..:(x,1/4,z):(x,3/4,-z)::
+::2:b:..2:(x,0,1/2):(x,1/2,1/2)::
+::2:a:..2:(x,0,0):(x,1/2,0)::
+140:P 2 c m:::::::
+::4:d:1:(x,y,z):(x,-y,-z):(x,-y,z+1/2):(x,y,-z+1/2)
+::2:c:m..:(x,y,1/4):(x,-y,3/4)::
+::2:b:..2:(x,1/2,0):(x,1/2,1/2)::
+::2:a:..2:(x,0,0):(x,0,1/2)::
+141:P c 2 m:::::::
+::4:d:1:(x,y,z):(-x,y,-z):(-x,y,z+1/2):(x,y,-z+1/2)
+::2:c:m..:(x,y,1/4):(-x,y,3/4)::
+::2:b:..2:(1/2,y,0):(1/2,y,1/2)::
+::2:a:..2:(0,y,0):(0,y,1/2)::
+142:P m 2 a:::::::
+::4:d:1:(x,y,z):(-x,y,-z):(x+1/2,y,-z):(-x+1/2,y,z)
+::2:c:m..:(1/4,y,z):(3/4,y,-z)::
+::2:b:..2:(0,y,1/2):(1/2,y,1/2)::
+::2:a:..2:(0,y,0):(1/2,y,0)::
+143:P c a 2sub1:::::::
+::4:a:1:(x,y,z):(-x,-y,z+1/2):(x+1/2,-y,z):(-x+1/2,y,z+1/2)
+144:P b c 2sub1:::::::
+::4:a:1:(x,y,z):(-x,-y,z+1/2):(-x,y+1/2,z):(x,-y+1/2,z+1/2)
+145:P 2sub1 a b:::::::
+::4:a:1:(x,y,z):(x+1/2,-y,-z):(x,y+1/2,-z):(x+1/2,-y+1/2,z)
+146:P 2sub1 c a:::::::
+::4:a:1:(x,y,z):(x+1/2,-y,-z):(x,-y,z+1/2):(x+1/2,y,-z+1/2)
+147:P c 2sub1 b:::::::
+::4:a:1:(x,y,z):(-x,y+1/2,-z):(-x,y,z+1/2):(x,y+1/2,-z+1/2)
+148:P b 2sub1 a:::::::
+::4:a:1:(x,y,z):(-x,y+1/2,-z):(x+1/2,y,-z):(-x+1/2,y+1/2,z)
+149:P n c 2:::::::
+::4:c:1:(x,y,z):(-x,-y,z):(x,-y+1/2,z+1/2):(-x,y+1/2,z+1/2)
+::2:b:..2:(1/2,0,z):(1/2,1/2,z+1/2)::
+::2:a:..2:(0,0,z):(0,1/2,z+1/2)::
+150:P c n 2:::::::
+::4:c:1:(x,y,z):(-x,-y,z):(-x+1/2,y,z+1/2):(x+1/2,-y,z+1/2)
+::2:b:..2:(0,1/2,z):(1/2,1/2,z+1/2)::
+::2:a:..2:(0,0,z):(1/2,0,z+1/2)::
+151:P 2 n a:::::::
+::4:c:1:(x,y,z):(x,-y,-z):(x+1/2,y,-z+1/2):(x+1/2,-y,z+1/2)
+::2:b:..2:(x,1/2,0):(x+1/2,1/2,1/2)::
+::2:a:..2:(x,0,0):(x+1/2,0,1/2)::
+152:P 2 a n:::::::
+::4:c:1:(x,y,z):(x,-y,-z):(x+1/2,-y+1/2,z):(x+1/2,y+1/2,-z)
+::2:b:..2:(x,0,1/2):(x+1/2,1/2,1/2)::
+::2:a:..2:(x,0,0):(x+1/2,1/2,0)::
+153:P b 2 n:::::::
+::4:c:1:(x,y,z):(-x,y,-z):(-x+1/2,y+1/2,z):(x+1/2,y+1/2,-z)
+::2:b:..2:(0,y,1/2):(1/2,y+1/2,1/2)::
+::2:a:..2:(0,y,0):(1/2,y+1/2,0)::
+154:P n 2 b:::::::
+::4:c:1:(x,y,z):(-x,y,-z):(x,y+1/2,-z+1/2):(-x,y+1/2,z+1/2)
+::2:b:..2:(1/2,y,0):(1/2,y+1/2,1/2)::
+::2:a:..2:(0,y,0):(0,y+1/2,1/2)::
+155:P m n 2sub1:::::::
+::4:b:1:(x,y,z):(-x+1/2,-y,z+1/2):(x+1/2,-y,z+1/2):(-x,y,z)
+::2:a:m..:(0,y,z):(1/2,-y,z+1/2)::
+156:P n m 2sub1:::::::
+::4:b:1:(x,y,z):(-x,-y+1/2,z+1/2):(-x,y+1/2,z+1/2):(x,-y,z)
+::2:a:m..:(x,0,z):(-x,1/2,z+1/2)::
+157:P 2sub1 m n:::::::
+::4:b:1:(x,y,z):(x+1/2,-y+1/2,-z):(x+1/2,y+1/2,-z):(x,-y,z)
+::2:a:m..:(x,0,z):(x+1/2,1/2,-z)::
+158:P 2sub1 n m:::::::
+::4:b:1:(x,y,z):(x+1/2,-y,-z+1/2):(x+1/2,-y,z+1/2):(x,y,-z)
+::2:a:m..:(x,y,0):(x+1/2,-y,1/2)::
+159:P n 2sub1 m:::::::
+::4:b:1:(x,y,z):(-x,y+1/2,-z+1/2):(-x,y+1/2,z+1/2):(x,y,-z)
+::2:a:m..:(x,y,0):(-x,y+1/2,1/2)::
+160:P m 2sub1 n:::::::
+::4:b:1:(x,y,z):(-x+1/2,y+1/2,-z):(x+1/2,y+1/2,-z):(-x,y,z)
+::2:a:m..:(0,y,z):(1/2,y+1/2,-z)::
+161:P b a 2:::::::
+::4:c:1:(x,y,z):(-x,-y,z):(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z)
+::2:b:..2:(0,1/2,z):(1/2,0,z)::
+::2:a:..2:(0,0,z):(1/2,1/2,z)::
+162:P 2 c b:::::::
+::4:c:1:(x,y,z):(x,-y,-z):(x,y+1/2,-z+1/2):(x,-y+1/2,z+1/2)
+::2:b:..2:(x,0,1/2):(x,1/2,0)::
+::2:a:..2:(x,0,0):(x,1/2,1/2)::
+163:P c 2 a:::::::
+::4:c:1:(x,y,z):(-x,y,-z):(-x+1/2,y,z+1/2):(x+1/2,y,-z+1/2)
+::2:b:..2:(1/2,y,0):(0,y,1/2)::
+::2:a:..2:(0,y,0):(1/2,y,1/2)::
+164:P n a 2sub1:::::::
+::4:a:1:(x,y,z):(-x,-y,z+1/2):(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z+1/2)
+165:P b n 2sub1:::::::
+::4:a:1:(x,y,z):(-x,-y,z+1/2):(-x+1/2,y+1/2,z):(x+1/2,-y+1/2,z+1/2)
+166:P 2sub1 n b:::::::
+::4:a:1:(x,y,z):(x+1/2,-y,-z):(x,y+1/2,-z+1/2):(x+1/2,-y+1/2,z+1/2)
+167:P 2sub1 c n:::::::
+::4:a:1:(x,y,z):(x+1/2,-y,-z):(x,-y+1/2,z+1/2):(x+1/2,y+1/2,-z+1/2)
+168:P c 2sub1 n:::::::
+::4:a:1:(x,y,z):(-x,y+1/2,-z):(-x+1/2,y,z+1/2):(x+1/2,y+1/2,-z+1/2)
+169:P n 2sub1 a:::::::
+::4:a:1:(x,y,z):(-x,y+1/2,-z):(x+1/2,y,-z+1/2):(-x+1/2,y+1/2,z+1/2)
+170:P n n 2:::::::
+::4:c:1:(x,y,z):(-x,-y,z):(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2)
+::2:b:..2:(0,1/2,z):(1/2,0,z+1/2)::
+::2:a:..2:(0,0,z):(1/2,1/2,z+1/2)::
+171:P 2 n n:::::::
+::4:c:1:(x,y,z):(x,-y,-z):(x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,z+1/2)
+::2:b:..2:(x,0,1/2):(x+1/2,1/2,0)::
+::2:a:..2:(x,0,0):(x+1/2,1/2,1/2)::
+172:P n 2 n:::::::
+::4:c:1:(x,y,z):(-x,y,-z):(-x+1/2,y+1/2,z+1/2):(x+1/2,y+1/2,-z+1/2)
+::2:b:..2:(1/2,y,0):(0,y+1/2,1/2)::
+::2:a:..2:(0,y,0):(1/2,y+1/2,1/2)::
+173:C m m 2:::::::
+::8:f:1:(x,y,z):(-x,-y,z):(x,-y,z):(-x,y,z)
+::4:e:m..:(0,y,z):(0,-y,z)::
+::4:d:.m.:(x,0,z):(-x,0,z)::
+::4:c:..2:(1/4,1/4,z):(1/4,3/4,z)::
+::2:b:mm2:(0,1/2,z):::
+::2:a:mm2:(0,0,z):::
+174:A 2 m m:::::::
+::8:f:1:(x,y,z):(x,-y,-z):(x,y,-z):(x,-y,z)
+::4:e:m..:(x,0,z):(x,0,-z)::
+::4:d:.m.:(x,y,0):(x,-y,0)::
+::4:c:..2:(x,1/4,1/4):(x,1/4,3/4)::
+::2:b:mm2:(x,0,1/2):::
+::2:a:mm2:(x,0,0):::
+175:B m 2 m:::::::
+::8:f:1:(x,y,z):(-x,y,-z):(-x,y,z):(x,y,-z)
+::4:e:m..:(x,y,0):(-x,y,0)::
+::4:d:.m.:(0,y,z):(0,y,-z)::
+::4:c:..2:(1/4,y,1/4):(3/4,y,1/4)::
+::2:b:mm2:(1/2,y,0):::
+::2:a:mm2:(0,y,0):::
+176:C m c 2sub1:::::::
+::8:b:1:(x,y,z):(-x,-y,z+1/2):(x,-y,z+1/2):(-x,y,z)
+::4:a:m..:(0,y,z):(0,-y,z+1/2)::
+177:C c m 2sub1:::::::
+::8:b:1:(x,y,z):(-x,-y,z+1/2):(-x,y,z+1/2):(x,-y,z)
+::4:a:m..:(x,0,z):(-x,0,z+1/2)::
+178:A 2sub1 m a:::::::
+::8:b:1:(x,y,z):(x+1/2,-y,-z):(x+1/2,y,-z):(x,-y,z)
+::4:a:m..:(x,0,z):(x+1/2,0,-z)::
+179:A 2sub1 a m:::::::
+::8:b:1:(x,y,z):(x+1/2,-y,-z):(x+1/2,-y,z):(x,y,-z)
+::4:a:m..:(x,y,0):(x+1/2,-y,0)::
+180:B b 2sub1 m:::::::
+::8:b:1:(x,y,z):(-x,y+1/2,-z):(-x,y+1/2,z):(x,y,-z)
+::4:a:m..:(x,y,0):(-x,y+1/2,0)::
+181:B m 2sub1 b:::::::
+::8:b:1:(x,y,z):(-x,y+1/2,-z):(x,y+1/2,-z):(-x,y,z)
+::4:a:m..:(0,y,z):(0,y+1/2,-z)::
+182:C c c 2:::::::
+::8:d:1:(x,y,z):(-x,-y,z):(x,-y,z+1/2):(-x,y,z+1/2)
+::4:c:..2:(1/4,1/4,z):(1/4,3/4,z+1/2)::
+::4:b:..2:(0,1/2,z):(0,1/2,z+1/2)::
+::4:a:..2:(0,0,z):(0,0,z+1/2)::
+183:A 2 a a:::::::
+::8:d:1:(x,y,z):(x,-y,-z):(x+1/2,y,-z):(x+1/2,-y,z)
+::4:c:..2:(x,1/4,1/4):(x+1/2,1/4,3/4)::
+::4:b:..2:(x,0,1/2):(x+1/2,0,1/2)::
+::4:a:..2:(x,0,0):(x+1/2,0,0)::
+184:B b 2 b:::::::
+::8:d:1:(x,y,z):(-x,y,-z):(-x,y+1/2,z):(x,y+1/2,-z)
+::4:c:..2:(1/4,y,1/4):(3/4,y+1/2,1/4)::
+::4:b:..2:(1/2,y,0):(1/2,y+1/2,0)::
+::4:a:..2:(0,y,0):(0,y+1/2,0)::
+185:A m m 2:::::::
+::8:f:1:(x,y,z):(-x,-y,z):(x,-y,z):(-x,y,z)
+::4:e:m..:(1/2,y,z):(1/2,-y,z)::
+::4:d:m..:(0,y,z):(0,-y,z)::
+::4:c:.m.:(x,0,z):(-x,0,z)::
+::2:b:mm2:(1/2,0,z):::
+::2:a:mm2:(0,0,z):::
+186:B m m 2:::::::
+::8:f:1:(x,y,z):(-x,-y,z):(-x,y,z):(x,-y,z)
+::4:e:m..:(x,1/2,z):(-x,1/2,z)::
+::4:d:m..:(x,0,z):(-x,0,z)::
+::4:c:.m.:(0,y,z):(0,-y,z)::
+::2:b:mm2:(0,1/2,z):::
+::2:a:mm2:(0,0,z):::
+187:B 2 m m:::::::
+::8:f:1:(x,y,z):(x,-y,-z):(x,y,-z):(x,-y,z)
+::4:e:m..:(x,1/2,z):(x,1/2,-z)::
+::4:d:m..:(x,0,z):(x,0,-z)::
+::4:c:.m.:(x,y,0):(x,-y,0)::
+::2:b:mm2:(x,1/2,0):::
+::2:a:mm2:(x,0,0):::
+188:C 2 m m:::::::
+::8:f:1:(x,y,z):(x,-y,-z):(x,-y,z):(x,y,-z)
+::4:e:m..:(x,y,1/2):(x,-y,1/2)::
+::4:d:m..:(x,y,0):(x,-y,0)::
+::4:c:.m.:(x,0,z):(x,0,-z)::
+::2:b:mm2:(x,0,1/2):::
+::2:a:mm2:(x,0,0):::
+189:C m 2 m:::::::
+::8:f:1:(x,y,z):(-x,y,-z):(-x,y,z):(x,y,-z)
+::4:e:m..:(x,y,1/2):(-x,y,1/2)::
+::4:d:m..:(x,y,0):(-x,y,0)::
+::4:c:.m.:(0,y,z):(0,y,-z)::
+::2:b:mm2:(0,y,1/2):::
+::2:a:mm2:(0,y,0):::
+190:A m 2 m:::::::
+::8:f:1:(x,y,z):(-x,y,-z):(x,y,-z):(-x,y,z)
+::4:e:m..:(1/2,y,z):(1/2,y,-z)::
+::4:d:m..:(0,y,z):(0,y,-z)::
+::4:c:.m.:(x,y,0):(-x,y,0)::
+::2:b:mm2:(1/2,y,0):::
+::2:a:mm2:(0,y,0):::
+191:A b m 2:::::::
+::8:d:1:(x,y,z):(-x,-y,z):(x,-y+1/2,z):(-x,y+1/2,z)
+::4:c:.m.:(x,1/4,z):(-x,3/4,z)::
+::4:b:..2:(1/2,0,z):(1/2,1/2,z)::
+::4:a:..2:(0,0,z):(0,1/2,z)::
+192:B m a 2:::::::
+::8:d:1:(x,y,z):(-x,-y,z):(-x+1/2,y,z):(x+1/2,-y,z)
+::4:c:.m.:(1/4,y,z):(3/4,-y,z)::
+::4:b:..2:(0,1/2,z):(1/2,1/2,z)::
+::4:a:..2:(0,0,z):(1/2,0,z)::
+193:B 2 c m:::::::
+::8:d:1:(x,y,z):(x,-y,-z):(x,y,-z+1/2):(x,-y,z+1/2)
+::4:c:.m.:(x,y,1/4):(x,-y,3/4)::
+::4:b:..2:(x,1/2,0):(x,1/2,1/2)::
+::4:a:..2:(x,0,0):(x,0,1/2)::
+194:C 2 m b:::::::
+::8:d:1:(x,y,z):(x,-y,-z):(x,-y+1/2,z):(x,y+1/2,-z)
+::4:c:.m.:(x,1/4,z):(x,3/4,-z)::
+::4:b:..2:(x,0,1/2):(x,1/2,1/2)::
+::4:a:..2:(x,0,0):(x,1/2,0)::
+195:C m 2 a:::::::
+::8:d:1:(x,y,z):(-x,y,-z):(-x+1/2,y,z):(x+1/2,y,-z)
+::4:c:.m.:(1/4,y,z):(3/4,y,-z)::
+::4:b:..2:(0,y,1/2):(1/2,y,1/2)::
+::4:a:..2:(0,y,0):(1/2,y,0)::
+196:A c 2 m:::::::
+::8:d:1:(x,y,z):(-x,y,-z):(x,y,-z+1/2):(-x,y,z+1/2)
+::4:c:.m.:(x,y,1/4):(-x,y,3/4)::
+::4:b:..2:(1/2,y,0):(1/2,y,1/2)::
+::4:a:..2:(0,y,0):(0,y,1/2)::
+197:A m a 2:::::::
+::8:c:1:(x,y,z):(-x,-y,z):(x+1/2,-y,z):(-x+1/2,y,z)
+::4:b:m..:(1/4,y,z):(3/4,-y,z)::
+::4:a:..2:(0,0,z):(1/2,0,z)::
+198:B b m 2:::::::
+::8:c:1:(x,y,z):(-x,-y,z):(-x,y+1/2,z):(x,-y+1/2,z)
+::4:b:m..:(x,1/4,z):(-x,3/4,z)::
+::4:a:..2:(0,0,z):(0,1/2,z)::
+199:B 2 m b:::::::
+::8:c:1:(x,y,z):(x,-y,-z):(x,y+1/2,-z):(x,-y+1/2,z)
+::4:b:m..:(x,1/4,z):(x,3/4,-z)::
+::4:a:..2:(x,0,0):(x,1/2,0)::
+200:C 2 c m:::::::
+::8:c:1:(x,y,z):(x,-y,-z):(x,-y,z+1/2):(x,y,-z+1/2)
+::4:b:m..:(x,y,1/4):(x,-y,3/4)::
+::4:a:..2:(x,0,0):(x,0,1/2)::
+201:C c 2 m:::::::
+::8:c:1:(x,y,z):(-x,y,-z):(-x,y,z+1/2):(x,y,-z+1/2)
+::4:b:m..:(x,y,1/4):(-x,y,3/4)::
+::4:a:..2:(0,y,0):(0,y,1/2)::
+202:A m 2 a:::::::
+::8:c:1:(x,y,z):(-x,y,-z):(x+1/2,y,-z):(-x+1/2,y,z)
+::4:b:m..:(1/4,y,z):(3/4,y,-z)::
+::4:a:..2:(0,y,0):(1/2,y,0)::
+203:A b a 2:::::::
+::8:b:1:(x,y,z):(-x,-y,z):(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z)
+::4:a:..2:(0,0,z):(1/2,1/2,z)::
+204:B b a 2:::::::
+::8:b:1:(x,y,z):(-x,-y,z):(-x+1/2,y+1/2,z):(x+1/2,-y+1/2,z)
+::4:a:..2:(0,0,z):(1/2,1/2,z)::
+205:B 2 c b:::::::
+::8:b:1:(x,y,z):(x,-y,-z):(x,y+1/2,-z+1/2):(x,-y+1/2,z+1/2)
+::4:a:..2:(x,0,0):(x,1/2,1/2)::
+206:C 2 c b:::::::
+::8:b:1:(x,y,z):(x,-y,-z):(x,-y+1/2,z+1/2):(x,y+1/2,-z+1/2)
+::4:a:..2:(x,0,0):(x,1/2,1/2)::
+207:C c 2 a:::::::
+::8:b:1:(x,y,z):(-x,y,-z):(-x+1/2,y,z+1/2):(x+1/2,y,-z+1/2)
+::4:a:..2:(0,y,0):(1/2,y,1/2)::
+208:A c 2 a:::::::
+::8:b:1:(x,y,z):(-x,y,-z):(x+1/2,y,-z+1/2):(-x+1/2,y,z+1/2)
+::4:a:..2:(0,y,0):(1/2,y,1/2)::
+209:F m m 2:::::::
+::16:e:1:(x,y,z):(-x,-y,z):(x,-y,z):(-x,y,z)
+::8:d:.m.:(x,0,z):(-x,0,z)::
+::8:c:m..:(0,y,z):(0,-y,z)::
+::8:b:..2:(1/4,1/4,z):(1/4,3/4,z)::
+::4:a:mm2:(0,0,z):::
+210:F 2 m m:::::::
+::16:e:1:(x,y,z):(x,-y,-z):(x,y,-z):(x,-y,z)
+::8:d:.m.:(x,y,0):(x,-y,0)::
+::8:c:m..:(x,0,z):(x,0,-z)::
+::8:b:..2:(x,1/4,1/4):(x,1/4,3/4)::
+::4:a:mm2:(x,0,0):::
+211:F m 2 m:::::::
+::16:e:1:(x,y,z):(-x,y,-z):(-x,y,z):(x,y,-z)
+::8:d:.m.:(0,y,z):(0,y,-z)::
+::8:c:m..:(x,y,0):(-x,y,0)::
+::8:b:..2:(1/4,y,1/4):(3/4,y,1/4)::
+::4:a:mm2:(0,y,0):::
+212:F d d 2:::::::
+::16:b:1:(x,y,z):(-x,-y,z):(x+1/4,-y+1/4,z+1/4):(-x+1/4,y+1/4,z+1/4)
+::8:a:..2:(0,0,z):(1/4,1/4,z+1/4)::
+213:F 2 d d:::::::
+::16:b:1:(x,y,z):(x,-y,-z):(x+1/4,y+1/4,-z+1/4):(x+1/4,-y+1/4,z+1/4)
+::8:a:..2:(x,0,0):(x+1/4,1/4,1/4)::
+214:F d 2 d:::::::
+::16:b:1:(x,y,z):(-x,y,-z):(-x+1/4,y+1/4,z+1/4):(x+1/4,y+1/4,-z+1/4)
+::8:a:..2:(0,y,0):(1/4,y+1/4,1/4)::
+215:I m m 2:::::::
+::8:e:1:(x,y,z):(-x,-y,z):(x,-y,z):(-x,y,z)
+::4:d:m..:(0,y,z):(0,-y,z)::
+::4:c:.m.:(x,0,z):(-x,0,z)::
+::2:b:mm2:(0,1/2,z):::
+::2:a:mm2:(0,0,z):::
+216:I 2 m m:::::::
+::8:e:1:(x,y,z):(x,-y,-z):(x,y,-z):(x,-y,z)
+::4:d:m..:(x,0,z):(x,0,-z)::
+::4:c:.m.:(x,y,0):(x,-y,0)::
+::2:b:mm2:(x,0,1/2):::
+::2:a:mm2:(x,0,0):::
+217:I m 2 m:::::::
+::8:e:1:(x,y,z):(-x,y,-z):(-x,y,z):(x,y,-z)
+::4:d:m..:(x,y,0):(-x,y,0)::
+::4:c:.m.:(0,y,z):(0,y,-z)::
+::2:b:mm2:(1/2,y,0):::
+::2:a:mm2:(0,y,0):::
+218:I b a 2:::::::
+::8:c:1:(x,y,z):(-x,-y,z):(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z)
+::4:b:..2:(0,1/2,z):(1/2,0,z)::
+::4:a:..2:(0,0,z):(1/2,1/2,z)::
+219:I 2 c b:::::::
+::8:c:1:(x,y,z):(x,-y,-z):(x,y+1/2,-z+1/2):(x,-y+1/2,z+1/2)
+::4:b:..2:(x,0,1/2):(x,1/2,0)::
+::4:a:..2:(x,0,0):(x,1/2,1/2)::
+220:I c 2 a:::::::
+::8:c:1:(x,y,z):(-x,y,-z):(-x+1/2,y,z+1/2):(x+1/2,y,-z+1/2)
+::4:b:..2:(1/2,y,0):(0,y,1/2)::
+::4:a:..2:(0,y,0):(1/2,y,1/2)::
+221:I m a 2:::::::
+::8:c:1:(x,y,z):(-x,-y,z):(x+1/2,-y,z):(-x+1/2,y,z)
+::4:b:m..:(1/4,y,z):(3/4,-y,z)::
+::4:a:..2:(0,0,z):(1/2,0,z)::
+222:I b m 2:::::::
+::8:c:1:(x,y,z):(-x,-y,z):(-x,y+1/2,z):(x,-y+1/2,z)
+::4:b:m..:(x,1/4,z):(-x,3/4,z)::
+::4:a:..2:(0,0,z):(0,1/2,z)::
+223:I 2 m b:::::::
+::8:c:1:(x,y,z):(x,-y,-z):(x,y+1/2,-z):(x,-y+1/2,z)
+::4:b:m..:(x,1/4,z):(x,3/4,-z)::
+::4:a:..2:(x,0,0):(x,1/2,0)::
+224:I 2 c m:::::::
+::8:c:1:(x,y,z):(x,-y,-z):(x,-y,z+1/2):(x,y,-z+1/2)
+::4:b:m..:(x,y,1/4):(x,-y,3/4)::
+::4:a:..2:(x,0,0):(x,0,1/2)::
+225:I c 2 m:::::::
+::8:c:1:(x,y,z):(-x,y,-z):(-x,y,z+1/2):(x,y,-z+1/2)
+::4:b:m..:(x,y,1/4):(-x,y,3/4)::
+::4:a:..2:(0,y,0):(0,y,1/2)::
+226:I m 2 a:::::::
+::8:c:1:(x,y,z):(-x,y,-z):(x+1/2,y,-z):(-x+1/2,y,z)
+::4:b:m..:(1/4,y,z):(3/4,y,-z)::
+::4:a:..2:(0,y,0):(1/2,y,0)::
+227:P 2/m 2/m 2/m:::::::
+::8:A:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+::4:z:..m:(x,y,1/2):(-x,-y,1/2):(-x,y,1/2):(x,-y,1/2)
+::4:y:..m:(x,y,0):(-x,-y,0):(-x,y,0):(x,-y,0)
+::4:x:.m.:(x,1/2,z):(-x,1/2,z):(-x,1/2,-z):(x,1/2,-z)
+::4:w:.m.:(x,0,z):(-x,0,z):(-x,0,-z):(x,0,-z)
+::4:v:m..:(1/2,y,z):(1/2,-y,z):(1/2,y,-z):(1/2,-y,-z)
+::4:u:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+::2:t:mm2:(1/2,1/2,z):(1/2,1/2,-z)::
+::2:s:mm2:(1/2,0,z):(1/2,0,-z)::
+::2:r:mm2:(0,1/2,z):(0,1/2,-z)::
+::2:q:mm2:(0,0,z):(0,0,-z)::
+::2:p:m2m:(1/2,y,1/2):(1/2,-y,1/2)::
+::2:o:m2m:(1/2,y,0):(1/2,-y,0)::
+::2:n:m2m:(0,y,1/2):(0,-y,1/2)::
+::2:m:m2m:(0,y,0):(0,-y,0)::
+::2:l:2mm:(x,1/2,1/2):(-x,1/2,1/2)::
+::2:k:2mm:(x,1/2,0):(-x,1/2,0)::
+::2:j:2mm:(x,0,1/2):(-x,0,1/2)::
+::2:i:2mm:(x,0,0):(-x,0,0)::
+::1:h:mmm:(1/2,1/2,1/2):::
+::1:g:mmm:(0,1/2,1/2):::
+::1:f:mmm:(1/2,1/2,0):::
+::1:e:mmm:(0,1/2,0):::
+::1:d:mmm:(1/2,0,1/2):::
+::1:c:mmm:(0,0,1/2):::
+::1:b:mmm:(1/2,0,0):::
+::1:a:mmm:(0,0,0):::
+228:P 2/n 2/n 2/n:::::::
+::8:m:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(-x+1/2,-y+1/2,-z+1/2):(x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2)
+::4:l:..2:(0,1/2,z):(0,1/2,-z):(1/2,0,-z+1/2):(1/2,0,z+1/2)
+::4:k:..2:(0,0,z):(0,0,-z):(1/2,1/2,-z+1/2):(1/2,1/2,z+1/2)
+::4:j:.2.:(1/2,y,0):(1/2,-y,0):(0,-y+1/2,1/2):(0,y+1/2,1/2)
+::4:i:.2.:(0,y,0):(0,-y,0):(1/2,-y+1/2,1/2):(1/2,y+1/2,1/2)
+::4:h:2..:(x,0,1/2):(-x,0,1/2):(-x+1/2,1/2,0):(x+1/2,1/2,0)
+::4:g:2..:(x,0,0):(-x,0,0):(-x+1/2,1/2,1/2):(x+1/2,1/2,1/2)
+::4:f:-1:(3/4,3/4,3/4):(1/4,1/4,3/4):(1/4,3/4,1/4):(3/4,1/4,1/4)
+::4:e:-1:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,3/4):(1/4,3/4,3/4)
+::2:d:222:(0,1/2,0):(1/2,0,1/2)::
+::2:c:222:(0,0,1/2):(1/2,1/2,0)::
+::2:b:222:(1/2,0,0):(0,1/2,1/2)::
+::2:a:222:(0,0,0):(1/2,1/2,1/2)::
+229:P 2/n 2/n 2/n:::::::
+::8:m:1:(x,y,z):(-x+1/2,-y+1/2,z):(-x+1/2,y,-z+1/2):(x,-y+1/2,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(x+1/2,-y,z+1/2):(-x,y+1/2,z+1/2)
+::4:l:..2:(1/4,3/4,z):(1/4,3/4,-z+1/2):(3/4,1/4,-z):(3/4,1/4,z+1/2)
+::4:k:..2:(1/4,1/4,z):(1/4,1/4,-z+1/2):(3/4,3/4,-z):(3/4,3/4,z+1/2)
+::4:j:.2.:(3/4,y,1/4):(3/4,-y+1/2,1/4):(1/4,-y,3/4):(1/4,y+1/2,3/4)
+::4:i:.2.:(1/4,y,1/4):(1/4,-y+1/2,1/4):(3/4,-y,3/4):(3/4,y+1/2,3/4)
+::4:h:2..:(x,1/4,3/4):(-x+1/2,1/4,3/4):(-x,3/4,1/4):(x+1/2,3/4,1/4)
+::4:g:2..:(x,1/4,1/4):(-x+1/2,1/4,1/4):(-x,3/4,3/4):(x+1/2,3/4,3/4)
+::4:f:-1:(0,0,0):(1/2,1/2,0):(1/2,0,1/2):(0,1/2,1/2)
+::4:e:-1:(1/2,1/2,1/2):(0,0,1/2):(0,1/2,0):(1/2,0,0)
+::2:d:222:(1/4,3/4,1/4):(3/4,1/4,3/4)::
+::2:c:222:(1/4,1/4,3/4):(3/4,3/4,1/4)::
+::2:b:222:(3/4,1/4,1/4):(1/4,3/4,3/4)::
+::2:a:222:(1/4,1/4,1/4):(3/4,3/4,3/4)::
+230:P 2/c 2/c 2/m:::::::
+::8:r:1:(x,y,z):(-x,-y,z):(-x,y,-z+1/2):(x,-y,-z+1/2)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z+1/2):(-x,y,z+1/2)
+::4:q:..m:(x,y,0):(-x,-y,0):(-x,y,1/2):(x,-y,1/2)
+::4:p:..2:(1/2,0,z):(1/2,0,-z+1/2):(1/2,0,-z):(1/2,0,z+1/2)
+::4:o:..2:(0,1/2,z):(0,1/2,-z+1/2):(0,1/2,-z):(0,1/2,z+1/2)
+::4:n:..2:(1/2,1/2,z):(1/2,1/2,-z+1/2):(1/2,1/2,-z):(1/2,1/2,z+1/2)
+::4:m:..2:(0,0,z):(0,0,-z+1/2):(0,0,-z):(0,0,z+1/2)
+::4:l:.2.:(1/2,y,1/4):(1/2,-y,1/4):(1/2,-y,3/4):(1/2,y,3/4)
+::4:k:.2.:(0,y,1/4):(0,-y,1/4):(0,-y,3/4):(0,y,3/4)
+::4:j:2..:(x,1/2,1/4):(-x,1/2,1/4):(-x,1/2,3/4):(x,1/2,3/4)
+::4:i:2..:(x,0,1/4):(-x,0,1/4):(-x,0,3/4):(x,0,3/4)
+::2:h:222:(1/2,1/2,1/4):(1/2,1/2,3/4)::
+::2:g:222:(0,1/2,1/4):(0,1/2,3/4)::
+::2:f:222:(1/2,0,1/4):(1/2,0,3/4)::
+::2:e:222:(0,0,1/4):(0,0,3/4)::
+::2:d:..2/m:(1/2,0,0):(1/2,0,1/2)::
+::2:c:..2/m:(0,1/2,0):(0,1/2,1/2)::
+::2:b:..2/m:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:a:..2/m:(0,0,0):(0,0,1/2)::
+231:P 2/m 2/a 2/a:::::::
+::8:r:1:(x,y,z):(x,-y,-z):(-x+1/2,-y,z):(-x+1/2,y,-z)
+:::::(-x,-y,-z):(-x,y,z):(x+1/2,y,-z):(x+1/2,-y,z)
+::4:q:..m:(0,y,z):(0,-y,-z):(1/2,-y,z):(1/2,y,-z)
+::4:p:..2:(x,1/2,0):(-x+1/2,1/2,0):(-x,1/2,0):(x+1/2,1/2,0)
+::4:o:..2:(x,0,1/2):(-x+1/2,0,1/2):(-x,0,1/2):(x+1/2,0,1/2)
+::4:n:..2:(x,1/2,1/2):(-x+1/2,1/2,1/2):(-x,1/2,1/2):(x+1/2,1/2,1/2)
+::4:m:..2:(x,0,0):(-x+1/2,0,0):(-x,0,0):(x+1/2,0,0)
+::4:l:.2.:(1/4,1/2,z):(1/4,1/2,-z):(3/4,1/2,-z):(3/4,1/2,z)
+::4:k:.2.:(1/4,0,z):(1/4,0,-z):(3/4,0,-z):(3/4,0,z)
+::4:j:2..:(1/4,y,1/2):(1/4,-y,1/2):(3/4,-y,1/2):(3/4,y,1/2)
+::4:i:2..:(1/4,y,0):(1/4,-y,0):(3/4,-y,0):(3/4,y,0)
+::2:h:222:(1/4,1/2,1/2):(3/4,1/2,1/2)::
+::2:g:222:(1/4,0,1/2):(3/4,0,1/2)::
+::2:f:222:(1/4,1/2,0):(3/4,1/2,0)::
+::2:e:222:(1/4,0,0):(3/4,0,0)::
+::2:d:..2/m:(0,1/2,0):(1/2,1/2,0)::
+::2:c:..2/m:(0,0,1/2):(1/2,0,1/2)::
+::2:b:..2/m:(0,1/2,1/2):(1/2,1/2,1/2)::
+::2:a:..2/m:(0,0,0):(1/2,0,0)::
+232:P 2/b 2/m 2/b:::::::
+::8:r:1:(x,y,z):(-x,y,-z):(x,-y+1/2,-z):(-x,-y+1/2,z)
+:::::(-x,-y,-z):(x,-y,z):(-x,y+1/2,z):(x,y+1/2,-z)
+::4:q:..m:(x,0,z):(-x,0,-z):(x,1/2,-z):(-x,1/2,z)
+::4:p:..2:(0,y,1/2):(0,-y+1/2,1/2):(0,-y,1/2):(0,y+1/2,1/2)
+::4:o:..2:(1/2,y,0):(1/2,-y+1/2,0):(1/2,-y,0):(1/2,y+1/2,0)
+::4:n:..2:(1/2,y,1/2):(1/2,-y+1/2,1/2):(1/2,-y,1/2):(1/2,y+1/2,1/2)
+::4:m:..2:(0,y,0):(0,-y+1/2,0):(0,-y,0):(0,y+1/2,0)
+::4:l:.2.:(x,1/4,1/2):(-x,1/4,1/2):(-x,3/4,1/2):(x,3/4,1/2)
+::4:k:.2.:(x,1/4,0):(-x,1/4,0):(-x,3/4,0):(x,3/4,0)
+::4:j:2..:(1/2,1/4,z):(1/2,1/4,-z):(1/2,3/4,-z):(1/2,3/4,z)
+::4:i:2..:(0,1/4,z):(0,1/4,-z):(0,3/4,-z):(0,3/4,z)
+::2:h:222:(1/2,1/4,1/2):(1/2,3/4,1/2)::
+::2:g:222:(1/2,1/4,0):(1/2,3/4,0)::
+::2:f:222:(0,1/4,1/2):(0,3/4,1/2)::
+::2:e:222:(0,1/4,0):(0,3/4,0)::
+::2:d:..2/m:(0,0,1/2):(0,1/2,1/2)::
+::2:c:..2/m:(1/2,0,0):(1/2,1/2,0)::
+::2:b:..2/m:(1/2,0,1/2):(1/2,1/2,1/2)::
+::2:a:..2/m:(0,0,0):(0,1/2,0)::
+233:P 2/b 2/a 2/n:::::::
+::8:m:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(-x+1/2,-y+1/2,-z):(x+1/2,y+1/2,-z):(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z)
+::4:l:..2:(0,1/2,z):(0,1/2,-z):(1/2,0,-z):(1/2,0,z)
+::4:k:..2:(0,0,z):(0,0,-z):(1/2,1/2,-z):(1/2,1/2,z)
+::4:j:.2.:(0,y,1/2):(0,-y,1/2):(1/2,-y+1/2,1/2):(1/2,y+1/2,1/2)
+::4:i:.2.:(0,y,0):(0,-y,0):(1/2,-y+1/2,0):(1/2,y+1/2,0)
+::4:h:2..:(x,0,1/2):(-x,0,1/2):(-x+1/2,1/2,1/2):(x+1/2,1/2,1/2)
+::4:g:2..:(x,0,0):(-x,0,0):(-x+1/2,1/2,0):(x+1/2,1/2,0)
+::4:f:-1:(1/4,1/4,1/2):(3/4,3/4,1/2):(3/4,1/4,1/2):(1/4,3/4,1/2)
+::4:e:-1:(1/4,1/4,0):(3/4,3/4,0):(3/4,1/4,0):(1/4,3/4,0)
+::2:d:222:(0,0,1/2):(1/2,1/2,1/2)::
+::2:c:222:(1/2,0,1/2):(0,1/2,1/2)::
+::2:b:222:(1/2,0,0):(0,1/2,0)::
+::2:a:222:(0,0,0):(1/2,1/2,0)::
+234:P 2/b 2/a 2/n:::::::
+::8:m:1:(x,y,z):(-x+1/2,-y+1/2,z):(-x+1/2,y,-z):(x,-y+1/2,-z)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(x+1/2,-y,z):(-x,y+1/2,z)
+::4:l:..2:(1/4,3/4,z):(1/4,3/4,-z):(3/4,1/4,-z):(3/4,1/4,z)
+::4:k:..2:(1/4,1/4,z):(1/4,1/4,-z):(3/4,3/4,-z):(3/4,3/4,z)
+::4:j:.2.:(1/4,y,1/2):(1/4,-y+1/2,1/2):(3/4,-y,1/2):(3/4,y+1/2,1/2)
+::4:i:.2.:(1/4,y,0):(1/4,-y+1/2,0):(3/4,-y,0):(3/4,y+1/2,0)
+::4:h:2..:(x,1/4,1/2):(-x+1/2,1/4,1/2):(-x,3/4,1/2):(x+1/2,3/4,1/2)
+::4:g:2..:(x,1/4,0):(-x+1/2,1/4,0):(-x,3/4,0):(x+1/2,3/4,0)
+::4:f:-1:(0,0,1/2):(1/2,1/2,1/2):(1/2,0,1/2):(0,1/2,1/2)
+::4:e:-1:(0,0,0):(1/2,1/2,0):(1/2,0,0):(0,1/2,0)
+::2:d:222:(1/4,1/4,1/2):(3/4,3/4,1/2)::
+::2:c:222:(3/4,1/4,1/2):(1/4,3/4,1/2)::
+::2:b:222:(3/4,1/4,0):(1/4,3/4,0)::
+::2:a:222:(1/4,1/4,0):(3/4,3/4,0)::
+235:P 2/n 2/c 2/b:::::::
+::8:m:1:(x,y,z):(x,-y,-z):(-x,-y,z):(-x,y,-z)
+:::::(-x,-y+1/2,-z+1/2):(-x,y+1/2,z+1/2):(x,y+1/2,-z+1/2):(x,-y+1/2,z+1/2)
+::4:l:..2:(x,0,1/2):(-x,0,1/2):(-x,1/2,0):(x,1/2,0)
+::4:k:..2:(x,0,0):(-x,0,0):(-x,1/2,1/2):(x,1/2,1/2)
+::4:j:.2.:(1/2,0,z):(1/2,0,-z):(1/2,1/2,-z+1/2):(1/2,1/2,z+1/2)
+::4:i:.2.:(0,0,z):(0,0,-z):(0,1/2,-z+1/2):(0,1/2,z+1/2)
+::4:h:2..:(1/2,y,0):(1/2,-y,0):(1/2,-y+1/2,1/2):(1/2,y+1/2,1/2)
+::4:g:2..:(0,y,0):(0,-y,0):(0,-y+1/2,1/2):(0,y+1/2,1/2)
+::4:f:-1:(1/2,1/4,1/4):(1/2,3/4,3/4):(1/2,3/4,1/4):(1/2,1/4,3/4)
+::4:e:-1:(0,1/4,1/4):(0,3/4,3/4):(0,3/4,1/4):(0,1/4,3/4)
+::2:d:222:(1/2,0,0):(1/2,1/2,1/2)::
+::2:c:222:(1/2,1/2,0):(1/2,0,1/2)::
+::2:b:222:(0,1/2,0):(0,0,1/2)::
+::2:a:222:(0,0,0):(0,1/2,1/2)::
+236:P 2/n 2/c 2/b:::::::
+::8:m:1:(x,y,z):(x,-y+1/2,-z+1/2):(-x,-y+1/2,z):(-x,y,-z+1/2)
+:::::(-x,-y,-z):(-x,y+1/2,z+1/2):(x,y+1/2,-z):(x,-y,z+1/2)
+::4:l:..2:(x,1/4,3/4):(-x,1/4,3/4):(-x,3/4,1/4):(x,3/4,1/4)
+::4:k:..2:(x,1/4,1/4):(-x,1/4,1/4):(-x,3/4,3/4):(x,3/4,3/4)
+::4:j:.2.:(1/2,1/4,z):(1/2,1/4,-z+1/2):(1/2,3/4,-z):(1/2,3/4,z+1/2)
+::4:i:.2.:(0,1/4,z):(0,1/4,-z+1/2):(0,3/4,-z):(0,3/4,z+1/2)
+::4:h:2..:(1/2,y,1/4):(1/2,-y+1/2,1/4):(1/2,-y,3/4):(1/2,y+1/2,3/4)
+::4:g:2..:(0,y,1/4):(0,-y+1/2,1/4):(0,-y,3/4):(0,y+1/2,3/4)
+::4:f:-1:(1/2,0,0):(1/2,1/2,1/2):(1/2,1/2,0):(1/2,0,1/2)
+::4:e:-1:(0,0,0):(0,1/2,1/2):(0,1/2,0):(0,0,1/2)
+::2:d:222:(1/2,1/4,1/4):(1/2,3/4,3/4)::
+::2:c:222:(1/2,3/4,1/4):(1/2,1/4,3/4)::
+::2:b:222:(0,3/4,1/4):(0,1/4,3/4)::
+::2:a:222:(0,1/4,1/4):(0,3/4,3/4)::
+237:P 2/c 2/n 2/a:::::::
+::8:m:1:(x,y,z):(-x,y,-z):(x,-y,-z):(-x,-y,z)
+:::::(-x+1/2,-y,-z+1/2):(x+1/2,-y,z+1/2):(-x+1/2,y,z+1/2):(x+1/2,y,-z+1/2)
+::4:l:..2:(1/2,y,0):(1/2,-y,0):(0,-y,1/2):(0,y,1/2)
+::4:k:..2:(0,y,0):(0,-y,0):(1/2,-y,1/2):(1/2,y,1/2)
+::4:j:.2.:(x,1/2,0):(-x,1/2,0):(-x+1/2,1/2,1/2):(x+1/2,1/2,1/2)
+::4:i:.2.:(x,0,0):(-x,0,0):(-x+1/2,0,1/2):(x+1/2,0,1/2)
+::4:h:2..:(0,1/2,z):(0,1/2,-z):(1/2,1/2,-z+1/2):(1/2,1/2,z+1/2)
+::4:g:2..:(0,0,z):(0,0,-z):(1/2,0,-z+1/2):(1/2,0,z+1/2)
+::4:f:-1:(1/4,1/2,1/4):(3/4,1/2,3/4):(1/4,1/2,3/4):(3/4,1/2,1/4)
+::4:e:-1:(1/4,0,1/4):(3/4,0,3/4):(1/4,0,3/4):(3/4,0,1/4)
+::2:d:222:(0,1/2,0):(1/2,1/2,1/2)::
+::2:c:222:(0,1/2,1/2):(1/2,1/2,0)::
+::2:b:222:(0,0,1/2):(1/2,0,0)::
+::2:a:222:(0,0,0):(1/2,0,1/2)::
+238:P 2/c 2/n 2/a:::::::
+::8:m:1:(x,y,z):(-x+1/2,y,-z+1/2):(x,-y,-z+1/2):(-x+1/2,-y,z)
+:::::(-x,-y,-z):(x+1/2,-y,z+1/2):(-x,y,z+1/2):(x+1/2,y,-z)
+::4:l:..2:(3/4,y,1/4):(3/4,-y,1/4):(1/4,-y,3/4):(1/4,y,3/4)
+::4:k:..2:(1/4,y,1/4):(1/4,-y,1/4):(3/4,-y,3/4):(3/4,y,3/4)
+::4:j:.2.:(x,1/2,1/4):(-x+1/2,1/2,1/4):(-x,1/2,3/4):(x+1/2,1/2,3/4)
+::4:i:.2.:(x,0,1/4):(-x+1/2,0,1/4):(-x,0,3/4):(x+1/2,0,3/4)
+::4:h:2..:(1/4,1/2,z):(1/4,1/2,-z+1/2):(3/4,1/2,-z):(3/4,1/2,z+1/2)
+::4:g:2..:(1/4,0,z):(1/4,0,-z+1/2):(3/4,0,-z):(3/4,0,z+1/2)
+::4:f:-1:(0,1/2,0):(1/2,1/2,1/2):(0,1/2,1/2):(1/2,1/2,0)
+::4:e:-1:(0,0,0):(1/2,0,1/2):(0,0,1/2):(1/2,0,0)
+::2:d:222:(1/4,1/2,1/4):(3/4,1/2,3/4)::
+::2:c:222:(1/4,1/2,3/4):(3/4,1/2,1/4)::
+::2:b:222:(1/4,0,3/4):(3/4,0,1/4)::
+::2:a:222:(1/4,0,1/4):(3/4,0,3/4)::
+::4:e:2..:(0,0,z):(0,1/2,-z+1/2):(0,0,-z):(0,1/2,z+1/2)
+::2:d:2/m..:(1/2,0,0):(1/2,1/2,1/2)::
+::2:c:2/m..:(1/2,0,1/2):(1/2,1/2,0)::
+::2:b:2/m..:(0,0,1/2):(0,1/2,0)::
+::2:a:2/m..:(0,0,0):(0,1/2,1/2)::
+239:P 2sub1/m 2/m 2/a:::::::
+::8:l:1:(x,y,z):(-x+1/2,-y,z):(-x,y,-z):(x+1/2,-y,-z)
+:::::(-x,-y,-z):(x+1/2,y,-z):(x,-y,z):(-x+1/2,y,z)
+::4:k:m..:(1/4,y,z):(1/4,-y,z):(3/4,y,-z):(3/4,-y,-z)
+::4:j:.m.:(x,1/2,z):(-x+1/2,1/2,z):(-x,1/2,-z):(x+1/2,1/2,-z)
+::4:i:.m.:(x,0,z):(-x+1/2,0,z):(-x,0,-z):(x+1/2,0,-z)
+::4:h:.2.:(0,y,1/2):(1/2,-y,1/2):(0,-y,1/2):(1/2,y,1/2)
+::4:g:.2.:(0,y,0):(1/2,-y,0):(0,-y,0):(1/2,y,0)
+::2:f:mm2:(1/4,1/2,z):(3/4,1/2,-z)::
+::2:e:mm2:(1/4,0,z):(3/4,0,-z)::
+::2:d:.2/m.:(0,1/2,1/2):(1/2,1/2,1/2)::
+::2:c:.2/m.:(0,0,1/2):(1/2,0,1/2)::
+::2:b:.2/m.:(0,1/2,0):(1/2,1/2,0)::
+::2:a:.2/m.:(0,0,0):(1/2,0,0)::
+240:P 2/m 2sub1/m 2/b:::::::
+::8:l:1:(x,y,z):(-x,-y+1/2,z):(x,-y,-z):(-x,y+1/2,-z)
+:::::(-x,-y,-z):(x,y+1/2,-z):(-x,y,z):(x,-y+1/2,z)
+::4:k:m..:(x,1/4,z):(-x,1/4,z):(x,3/4,-z):(-x,3/4,-z)
+::4:j:.m.:(1/2,y,z):(1/2,-y+1/2,z):(1/2,-y,-z):(1/2,y+1/2,-z)
+::4:i:.m.:(0,y,z):(0,-y+1/2,z):(0,-y,-z):(0,y+1/2,-z)
+::4:h:.2.:(x,0,1/2):(-x,1/2,1/2):(-x,0,1/2):(x,1/2,1/2)
+::4:g:.2.:(x,0,0):(-x,1/2,0):(-x,0,0):(x,1/2,0)
+::2:f:mm2:(1/2,1/4,z):(1/2,3/4,-z)::
+::2:e:mm2:(0,1/4,z):(0,3/4,-z)::
+::2:d:.2/m.:(1/2,0,1/2):(1/2,1/2,1/2)::
+::2:c:.2/m.:(0,0,1/2):(0,1/2,1/2)::
+::2:b:.2/m.:(1/2,0,0):(1/2,1/2,0)::
+::2:a:.2/m.:(0,0,0):(0,1/2,0)::
+241:P 2/b 2sub1/m 2/m:::::::
+::8:l:1:(x,y,z):(x,-y+1/2,-z):(-x,-y,z):(-x,y+1/2,-z)
+:::::(-x,-y,-z):(-x,y+1/2,z):(x,y,-z):(x,-y+1/2,z)
+::4:k:m..:(x,1/4,z):(x,1/4,-z):(-x,3/4,z):(-x,3/4,-z)
+::4:j:.m.:(x,y,1/2):(x,-y+1/2,1/2):(-x,-y,1/2):(-x,y+1/2,1/2)
+::4:i:.m.:(x,y,0):(x,-y+1/2,0):(-x,-y,0):(-x,y+1/2,0)
+::4:h:.2.:(1/2,0,z):(1/2,1/2,-z):(1/2,0,-z):(1/2,1/2,z)
+::4:g:.2.:(0,0,z):(0,1/2,-z):(0,0,-z):(0,1/2,z)
+::2:f:mm2:(x,1/4,1/2):(-x,3/4,1/2)::
+::2:e:mm2:(x,1/4,0):(-x,3/4,0)::
+::2:d:.2/m.:(1/2,0,1/2):(1/2,1/2,1/2)::
+::2:c:.2/m.:(1/2,0,0):(1/2,1/2,0)::
+::2:b:.2/m.:(0,0,1/2):(0,1/2,1/2)::
+::2:a:.2/m.:(0,0,0):(0,1/2,0)::
+242:P 2/c 2/m 2sub1/m:::::::
+::8:l:1:(x,y,z):(x,-y,-z+1/2):(-x,y,-z):(-x,-y,z+1/2)
+:::::(-x,-y,-z):(-x,y,z+1/2):(x,-y,z):(x,y,-z+1/2)
+::4:k:m..:(x,y,1/4):(x,-y,1/4):(-x,y,3/4):(-x,-y,3/4)
+::4:j:.m.:(x,1/2,z):(x,1/2,-z+1/2):(-x,1/2,-z):(-x,1/2,z+1/2)
+::4:i:.m.:(x,0,z):(x,0,-z+1/2):(-x,0,-z):(-x,0,z+1/2)
+::4:h:.2.:(1/2,y,0):(1/2,-y,1/2):(1/2,-y,0):(1/2,y,1/2)
+::4:g:.2.:(0,y,0):(0,-y,1/2):(0,-y,0):(0,y,1/2)
+::2:f:mm2:(x,1/2,1/4):(-x,1/2,3/4)::
+::2:e:mm2:(x,0,1/4):(-x,0,3/4)::
+::2:d:.2/m.:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:c:.2/m.:(1/2,0,0):(1/2,0,1/2)::
+::2:b:.2/m.:(0,1/2,0):(0,1/2,1/2)::
+::2:a:.2/m.:(0,0,0):(0,0,1/2)::
+243:P 2/m 2/c 2sub1/m:::::::
+::8:l:1:(x,y,z):(-x,y,-z+1/2):(x,-y,-z):(-x,-y,z+1/2)
+:::::(-x,-y,-z):(x,-y,z+1/2):(-x,y,z):(x,y,-z+1/2)
+::4:k:m..:(x,y,1/4):(-x,y,1/4):(x,-y,3/4):(-x,-y,3/4)
+::4:j:.m.:(1/2,y,z):(1/2,y,-z+1/2):(1/2,-y,-z):(1/2,-y,z+1/2)
+::4:i:.m.:(0,y,z):(0,y,-z+1/2):(0,-y,-z):(0,-y,z+1/2)
+::4:h:.2.:(x,1/2,0):(-x,1/2,1/2):(-x,1/2,0):(x,1/2,1/2)
+::4:g:.2.:(x,0,0):(-x,0,1/2):(-x,0,0):(x,0,1/2)
+::2:f:mm2:(1/2,y,1/4):(1/2,-y,3/4)::
+::2:e:mm2:(0,y,1/4):(0,-y,3/4)::
+::2:d:.2/m.:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:c:.2/m.:(0,1/2,0):(0,1/2,1/2)::
+::2:b:.2/m.:(1/2,0,0):(1/2,0,1/2)::
+::2:a:.2/m.:(0,0,0):(0,0,1/2)::
+244:P 2sub1/m 2/a 2/m:::::::
+::8:l:1:(x,y,z):(-x+1/2,y,-z):(-x,-y,z):(x+1/2,-y,-z)
+:::::(-x,-y,-z):(x+1/2,-y,z):(x,y,-z):(-x+1/2,y,z)
+::4:k:m..:(1/4,y,z):(1/4,y,-z):(3/4,-y,z):(3/4,-y,-z)
+::4:j:.m.:(x,y,1/2):(-x+1/2,y,1/2):(-x,-y,1/2):(x+1/2,-y,1/2)
+::4:i:.m.:(x,y,0):(-x+1/2,y,0):(-x,-y,0):(x+1/2,-y,0)
+::4:h:.2.:(0,1/2,z):(1/2,1/2,-z):(0,1/2,-z):(1/2,1/2,z)
+::4:g:.2.:(0,0,z):(1/2,0,-z):(0,0,-z):(1/2,0,z)
+::2:f:mm2:(1/4,y,1/2):(3/4,-y,1/2)::
+::2:e:mm2:(1/4,y,0):(3/4,-y,0)::
+::2:d:.2/m.:(0,1/2,1/2):(1/2,1/2,1/2)::
+::2:c:.2/m.:(0,1/2,0):(1/2,1/2,0)::
+::2:b:.2/m.:(0,0,1/2):(1/2,0,1/2)::
+::2:a:.2/m.:(0,0,0):(1/2,0,0)::
+245:P 2/n 2sub1/n 2/a:::::::
+::8:e:1:(x,y,z):(-x+1/2,-y,z):(-x+1/2,y+1/2,-z+1/2):(x,-y+1/2,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,y,-z):(x+1/2,-y+1/2,z+1/2):(-x,y+1/2,z+1/2)
+::4:d:2..:(x,1/4,1/4):(-x+1/2,3/4,1/4):(-x,3/4,3/4):(x+1/2,1/4,3/4)
+::4:c:..2:(1/4,0,z):(1/4,1/2,-z+1/2):(3/4,0,-z):(3/4,1/2,z+1/2)
+::4:b:-1:(0,0,1/2):(1/2,0,1/2):(1/2,1/2,0):(0,1/2,0)
+::4:a:-1:(0,0,0):(1/2,0,0):(1/2,1/2,1/2):(0,1/2,1/2)
+246:P 2sub1/n 2/n 2/b:::::::
+::8:e:1:(x,y,z):(-x,-y+1/2,z):(x+1/2,-y+1/2,-z+1/2):(-x+1/2,y,-z+1/2)
+:::::(-x,-y,-z):(x,y+1/2,-z):(-x+1/2,y+1/2,z+1/2):(x+1/2,-y,z+1/2)
+::4:d:2..:(1/4,y,3/4):(3/4,-y+1/2,3/4):(3/4,-y,1/4):(1/4,y+1/2,1/4)
+::4:c:..2:(0,1/4,z):(1/2,1/4,-z+1/2):(0,3/4,-z):(1/2,3/4,z+1/2)
+::4:b:-1:(0,0,1/2):(0,1/2,1/2):(1/2,1/2,0):(1/2,0,0)
+::4:a:-1:(0,0,0):(0,1/2,0):(1/2,1/2,1/2):(1/2,0,1/2)
+247:P 2/b 2/n 2sub1/n:::::::
+::8:e:1:(x,y,z):(x,-y+1/2,-z):(-x+1/2,-y+1/2,z+1/2):(-x+1/2,y,-z+1/2)
+:::::(-x,-y,-z):(-x,y+1/2,z):(x+1/2,y+1/2,-z+1/2):(x+1/2,-y,z+1/2)
+::4:d:2..:(1/4,y,1/4):(1/4,-y+1/2,3/4):(3/4,-y,3/4):(3/4,y+1/2,1/4)
+::4:c:..2:(x,1/4,0):(-x+1/2,1/4,1/2):(-x,3/4,0):(x+1/2,3/4,1/2)
+::4:b:-1:(1/2,0,0):(1/2,1/2,0):(0,1/2,1/2):(0,0,1/2)
+::4:a:-1:(0,0,0):(0,1/2,0):(1/2,1/2,1/2):(1/2,0,1/2)
+248:P 2/c 2sub1/n 2/n:::::::
+::8:e:1:(x,y,z):(x,-y,-z+1/2):(-x+1/2,y+1/2,-z+1/2):(-x+1/2,-y+1/2,z)
+:::::(-x,-y,-z):(-x,y,z+1/2):(x+1/2,-y+1/2,z+1/2):(x+1/2,y+1/2,-z)
+::4:d:2..:(3/4,1/4,z):(3/4,3/4,-z+1/2):(1/4,3/4,-z):(1/4,1/4,z+1/2)
+::4:c:..2:(x,0,1/4):(-x+1/2,1/2,1/4):(-x,0,3/4):(x+1/2,1/2,3/4)
+::4:b:-1:(1/2,0,0):(1/2,0,1/2):(0,1/2,1/2):(0,1/2,0)
+::4:a:-1:(0,0,0):(0,0,1/2):(1/2,1/2,1/2):(1/2,1/2,0)
+249:P 2sub1/n 2/c 2/n:::::::
+::8:e:1:(x,y,z):(-x,y,-z+1/2):(x+1/2,-y+1/2,-z+1/2):(-x+1/2,-y+1/2,z)
+:::::(-x,-y,-z):(x,-y,z+1/2):(-x+1/2,y+1/2,z+1/2):(x+1/2,y+1/2,-z)
+::4:d:2..:(1/4,1/4,z):(3/4,1/4,-z+1/2):(3/4,3/4,-z):(1/4,3/4,z+1/2)
+::4:c:..2:(0,y,1/4):(1/2,-y+1/2,1/4):(0,-y,3/4):(1/2,y+1/2,3/4)
+::4:b:-1:(0,1/2,0):(0,1/2,1/2):(1/2,0,1/2):(1/2,0,0)
+::4:a:-1:(0,0,0):(0,0,1/2):(1/2,1/2,1/2):(1/2,1/2,0)
+250:P 2/n 2/a 2sub1/n:::::::
+::8:e:1:(x,y,z):(-x+1/2,y,-z):(-x+1/2,-y+1/2,z+1/2):(x,-y+1/2,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,-y,z):(x+1/2,y+1/2,-z+1/2):(-x,y+1/2,z+1/2)
+::4:d:2..:(x,3/4,1/4):(-x+1/2,3/4,3/4):(-x,1/4,3/4):(x+1/2,1/4,1/4)
+::4:c:..2:(1/4,y,0):(1/4,-y+1/2,1/2):(3/4,-y,0):(3/4,y+1/2,1/2)
+::4:b:-1:(0,1/2,0):(1/2,1/2,0):(1/2,0,1/2):(0,0,1/2)
+::4:a:-1:(0,0,0):(1/2,0,0):(1/2,1/2,1/2):(0,1/2,1/2)
+251:P 2/m 2/n 2sub1/a:::::::
+::8:i:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x+1/2,y,-z+1/2):(x,-y,-z)
+:::::(-x,-y,-z):(x+1/2,y,-z+1/2):(x+1/2,-y,z+1/2):(-x,y,z)
+::4:h:m..:(0,y,z):(1/2,-y,z+1/2):(1/2,y,-z+1/2):(0,-y,-z)
+::4:g:.2.:(1/4,y,1/4):(1/4,-y,3/4):(3/4,-y,3/4):(3/4,y,1/4)
+::4:f:2..:(x,1/2,0):(-x+1/2,1/2,1/2):(-x,1/2,0):(x+1/2,1/2,1/2)
+::4:e:2..:(x,0,0):(-x+1/2,0,1/2):(-x,0,0):(x+1/2,0,1/2)
+::2:d:2/m..:(0,1/2,0):(1/2,1/2,1/2)::
+::2:c:2/m..:(1/2,1/2,0):(0,1/2,1/2)::
+::2:b:2/m..:(1/2,0,0):(0,0,1/2)::
+::2:a:2/m..:(0,0,0):(1/2,0,1/2)::
+252:P 2/n 2/m 2sub1/b:::::::
+::8:i:1:(x,y,z):(-x,-y+1/2,z+1/2):(x,-y+1/2,-z+1/2):(-x,y,-z)
+:::::(-x,-y,-z):(x,y+1/2,-z+1/2):(-x,y+1/2,z+1/2):(x,-y,z)
+::4:h:m..:(x,0,z):(-x,1/2,z+1/2):(x,1/2,-z+1/2):(-x,0,-z)
+::4:g:.2.:(x,1/4,3/4):(-x,1/4,1/4):(-x,3/4,1/4):(x,3/4,3/4)
+::4:f:2..:(1/2,y,0):(1/2,-y+1/2,1/2):(1/2,-y,0):(1/2,y+1/2,1/2)
+::4:e:2..:(0,y,0):(0,-y+1/2,1/2):(0,-y,0):(0,y+1/2,1/2)
+::2:d:2/m..:(1/2,0,0):(1/2,1/2,1/2)::
+::2:c:2/m..:(1/2,1/2,0):(1/2,0,1/2)::
+::2:b:2/m..:(0,1/2,0):(0,0,1/2)::
+::2:a:2/m..:(0,0,0):(0,1/2,1/2)::
+253:P 2sub1/b 2/m 2/n:::::::
+::8:i:1:(x,y,z):(x+1/2,-y+1/2,-z):(-x+1/2,-y+1/2,z):(-x,y,-z)
+:::::(-x,-y,-z):(-x+1/2,y+1/2,z):(x+1/2,y+1/2,-z):(x,-y,z)
+::4:h:m..:(x,0,z):(x+1/2,1/2,-z):(-x+1/2,1/2,z):(-x,0,-z)
+::4:g:.2.:(1/4,1/4,z):(3/4,1/4,-z):(3/4,3/4,-z):(1/4,3/4,z)
+::4:f:2..:(0,y,1/2):(1/2,-y+1/2,1/2):(0,-y,1/2):(1/2,y+1/2,1/2)
+::4:e:2..:(0,y,0):(1/2,-y+1/2,0):(0,-y,0):(1/2,y+1/2,0)
+::2:d:2/m..:(0,0,1/2):(1/2,1/2,1/2)::
+::2:c:2/m..:(0,1/2,1/2):(1/2,0,1/2)::
+::2:b:2/m..:(0,1/2,0):(1/2,0,0)::
+::2:a:2/m..:(0,0,0):(1/2,1/2,0)::
+254:P 2sub1/c 2/n 2/m:::::::
+::8:i:1:(x,y,z):(x+1/2,-y,-z+1/2):(-x+1/2,y,-z+1/2):(-x,-y,z)
+:::::(-x,-y,-z):(-x+1/2,y,z+1/2):(x+1/2,-y,z+1/2):(x,y,-z)
+::4:h:m..:(x,y,0):(x+1/2,-y,1/2):(-x+1/2,y,1/2):(-x,-y,0)
+::4:g:.2.:(3/4,y,1/4):(1/4,-y,1/4):(1/4,-y,3/4):(3/4,y,3/4)
+::4:f:2..:(0,1/2,z):(1/2,1/2,-z+1/2):(0,1/2,-z):(1/2,1/2,z+1/2)
+::4:e:2..:(0,0,z):(1/2,0,-z+1/2):(0,0,-z):(1/2,0,z+1/2)
+::2:d:2/m..:(0,1/2,0):(1/2,1/2,1/2)::
+::2:c:2/m..:(0,1/2,1/2):(1/2,1/2,0)::
+::2:b:2/m..:(0,0,1/2):(1/2,0,0)::
+::2:a:2/m..:(0,0,0):(1/2,0,1/2)::
+255:P 2/n 2sub1/c 2/m:::::::
+::8:i:1:(x,y,z):(-x,y+1/2,-z+1/2):(x,-y+1/2,-z+1/2):(-x,-y,z)
+:::::(-x,-y,-z):(x,-y+1/2,z+1/2):(-x,y+1/2,z+1/2):(x,y,-z)
+::4:h:m..:(x,y,0):(-x,y+1/2,1/2):(x,-y+1/2,1/2):(-x,-y,0)
+::4:g:.2.:(x,1/4,1/4):(-x,3/4,1/4):(-x,3/4,3/4):(x,1/4,3/4)
+::4:f:2..:(1/2,0,z):(1/2,1/2,-z+1/2):(1/2,0,-z):(1/2,1/2,z+1/2)
+::4:e:2..:(0,0,z):(0,1/2,-z+1/2):(0,0,-z):(0,1/2,z+1/2)
+::2:d:2/m..:(1/2,0,0):(1/2,1/2,1/2)::
+::2:c:2/m..:(1/2,0,1/2):(1/2,1/2,0)::
+::2:b:2/m..:(0,0,1/2):(0,1/2,0)::
+::2:a:2/m..:(0,0,0):(0,1/2,1/2)::
+256:P 2/m 2sub1/a 2/n:::::::
+::8:i:1:(x,y,z):(-x+1/2,y+1/2,-z):(-x+1/2,-y+1/2,z):(x,-y,-z)
+:::::(-x,-y,-z):(x+1/2,-y+1/2,z):(x+1/2,y+1/2,-z):(-x,y,z)
+::4:h:m..:(0,y,z):(1/2,y+1/2,-z):(1/2,-y+1/2,z):(0,-y,-z)
+::4:g:.2.:(1/4,3/4,z):(1/4,1/4,-z):(3/4,1/4,-z):(3/4,3/4,z)
+::4:f:2..:(x,0,1/2):(-x+1/2,1/2,1/2):(-x,0,1/2):(x+1/2,1/2,1/2)
+::4:e:2..:(x,0,0):(-x+1/2,1/2,0):(-x,0,0):(x+1/2,1/2,0)
+::2:d:2/m..:(0,0,1/2):(1/2,1/2,1/2)::
+::2:c:2/m..:(1/2,0,1/2):(0,1/2,1/2)::
+::2:b:2/m..:(1/2,0,0):(0,1/2,0)::
+::2:a:2/m..:(0,0,0):(1/2,1/2,0)::
+257:P 2sub1/c 2/c 2/a:::::::
+::8:f:1:(x,y,z):(-x+1/2,-y,z):(-x,y,-z+1/2):(x+1/2,-y,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,y,-z):(x,-y,z+1/2):(-x+1/2,y,z+1/2)
+::4:e:..2:(1/4,1/2,z):(3/4,1/2,-z+1/2):(3/4,1/2,-z):(1/4,1/2,z+1/2)
+::4:d:..2:(1/4,0,z):(3/4,0,-z+1/2):(3/4,0,-z):(1/4,0,z+1/2)
+::4:c:.2.:(0,y,1/4):(1/2,-y,1/4):(0,-y,3/4):(1/2,y,3/4)
+::4:b:-1:(0,1/2,0):(1/2,1/2,0):(0,1/2,1/2):(1/2,1/2,1/2)
+::4:a:-1:(0,0,0):(1/2,0,0):(0,0,1/2):(1/2,0,1/2)
+258:P 2/c 2sub1/c 2/b:::::::
+::8:f:1:(x,y,z):(-x,-y+1/2,z):(x,-y,-z+1/2):(-x,y+1/2,-z+1/2)
+:::::(-x,-y,-z):(x,y+1/2,-z):(-x,y,z+1/2):(x,-y+1/2,z+1/2)
+::4:e:..2:(1/2,1/4,z):(1/2,3/4,-z+1/2):(1/2,3/4,-z):(1/2,1/4,z+1/2)
+::4:d:..2:(0,1/4,z):(0,3/4,-z+1/2):(0,3/4,-z):(0,1/4,z+1/2)
+::4:c:.2.:(x,0,3/4):(-x,1/2,3/4):(-x,0,1/4):(x,1/2,1/4)
+::4:b:-1:(1/2,0,0):(1/2,1/2,0):(1/2,0,1/2):(1/2,1/2,1/2)
+::4:a:-1:(0,0,0):(0,1/2,0):(0,0,1/2):(0,1/2,1/2)
+259:P 2/b 2sub1/a 2/a:::::::
+::8:f:1:(x,y,z):(x,-y+1/2,-z):(-x+1/2,-y,z):(-x+1/2,y+1/2,-z)
+:::::(-x,-y,-z):(-x,y+1/2,z):(x+1/2,y,-z):(x+1/2,-y+1/2,z)
+::4:e:..2:(x,1/4,1/2):(-x+1/2,3/4,1/2):(-x,3/4,1/2):(x+1/2,1/4,1/2)
+::4:d:..2:(x,1/4,0):(-x+1/2,3/4,0):(-x,3/4,0):(x+1/2,1/4,0)
+::4:c:.2.:(1/4,0,z):(1/4,1/2,-z):(3/4,0,-z):(3/4,1/2,z)
+::4:b:-1:(0,0,1/2):(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,1/2)
+::4:a:-1:(0,0,0):(0,1/2,0):(1/2,0,0):(1/2,1/2,0)
+260:P 2/c 2/a 2sub1/a:::::::
+::8:f:1:(x,y,z):(x,-y,-z+1/2):(-x+1/2,y,-z):(-x+1/2,-y,z+1/2)
+:::::(-x,-y,-z):(-x,y,z+1/2):(x+1/2,-y,z):(x+1/2,y,-z+1/2)
+::4:e:..2:(x,1/2,1/4):(-x+1/2,1/2,3/4):(-x,1/2,3/4):(x+1/2,1/2,1/4)
+::4:d:..2:(x,0,1/4):(-x+1/2,0,3/4):(-x,0,3/4):(x+1/2,0,1/4)
+::4:c:.2.:(3/4,y,0):(3/4,-y,1/2):(1/4,-y,0):(1/4,y,1/2)
+::4:b:-1:(0,1/2,0):(0,1/2,1/2):(1/2,1/2,0):(1/2,1/2,1/2)
+::4:a:-1:(0,0,0):(0,0,1/2):(1/2,0,0):(1/2,0,1/2)
+261:P 2/b 2/c 2sub1/b:::::::
+::8:f:1:(x,y,z):(-x,y,-z+1/2):(x,-y+1/2,-z):(-x,-y+1/2,z+1/2)
+:::::(-x,-y,-z):(x,-y,z+1/2):(-x,y+1/2,z):(x,y+1/2,-z+1/2)
+::4:e:..2:(1/2,y,1/4):(1/2,-y+1/2,3/4):(1/2,-y,3/4):(1/2,y+1/2,1/4)
+::4:d:..2:(0,y,1/4):(0,-y+1/2,3/4):(0,-y,3/4):(0,y+1/2,1/4)
+::4:c:.2.:(x,1/4,0):(-x,1/4,1/2):(-x,3/4,0):(x,3/4,1/2)
+::4:b:-1:(1/2,0,0):(1/2,0,1/2):(1/2,1/2,0):(1/2,1/2,1/2)
+::4:a:-1:(0,0,0):(0,0,1/2):(0,1/2,0):(0,1/2,1/2)
+262:P 2sub1/b 2/a 2/b:::::::
+::8:f:1:(x,y,z):(-x+1/2,y,-z):(-x,-y+1/2,z):(x+1/2,-y+1/2,-z)
+:::::(-x,-y,-z):(x+1/2,-y,z):(x,y+1/2,-z):(-x+1/2,y+1/2,z)
+::4:e:..2:(1/4,y,1/2):(3/4,-y+1/2,1/2):(3/4,-y,1/2):(1/4,y+1/2,1/2)
+::4:d:..2:(1/4,y,0):(3/4,-y+1/2,0):(3/4,-y,0):(1/4,y+1/2,0)
+::4:c:.2.:(0,3/4,z):(1/2,3/4,-z):(0,1/4,-z):(1/2,1/4,z)
+::4:b:-1:(0,0,1/2):(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,1/2)
+::4:a:-1:(0,0,0):(1/2,0,0):(0,1/2,0):(1/2,1/2,0)
+263:P 2sub1/b 2sub1/a 2/m:::::::
+::8:i:1:(x,y,z):(-x,-y,z):(-x+1/2,y+1/2,-z):(x+1/2,-y+1/2,-z)
+:::::(-x,-y,-z):(x,y,-z):(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z)
+::4:h:..m:(x,y,1/2):(-x,-y,1/2):(-x+1/2,y+1/2,1/2):(x+1/2,-y+1/2,1/2)
+::4:g:..m:(x,y,0):(-x,-y,0):(-x+1/2,y+1/2,0):(x+1/2,-y+1/2,0)
+::4:f:..2:(0,1/2,z):(1/2,0,-z):(0,1/2,-z):(1/2,0,z)
+::4:e:..2:(0,0,z):(1/2,1/2,-z):(0,0,-z):(1/2,1/2,z)
+::2:d:..2/m:(0,1/2,1/2):(1/2,0,1/2)::
+::2:c:..2/m:(0,1/2,0):(1/2,0,0)::
+::2:b:..2/m:(0,0,1/2):(1/2,1/2,1/2)::
+::2:a:..2/m:(0,0,0):(1/2,1/2,0)::
+264:P 2/m 2sub1/c 2sub1/b:::::::
+::8:i:1:(x,y,z):(x,-y,-z):(-x,-y+1/2,z+1/2):(-x,y+1/2,-z+1/2)
+:::::(-x,-y,-z):(-x,y,z):(x,y+1/2,-z+1/2):(x,-y+1/2,z+1/2)
+::4:h:..m:(1/2,y,z):(1/2,-y,-z):(1/2,-y+1/2,z+1/2):(1/2,y+1/2,-z+1/2)
+::4:g:..m:(0,y,z):(0,-y,-z):(0,-y+1/2,z+1/2):(0,y+1/2,-z+1/2)
+::4:f:..2:(x,0,1/2):(-x,1/2,0):(-x,0,1/2):(x,1/2,0)
+::4:e:..2:(x,0,0):(-x,1/2,1/2):(-x,0,0):(x,1/2,1/2)
+::2:d:..2/m:(1/2,0,1/2):(1/2,1/2,0)::
+::2:c:..2/m:(0,0,1/2):(0,1/2,0)::
+::2:b:..2/m:(1/2,0,0):(1/2,1/2,1/2)::
+::2:a:..2/m:(0,0,0):(0,1/2,1/2)::
+265:P 2sub1/c 2/m 2sub1/a:::::::
+::8:i:1:(x,y,z):(-x,y,-z):(x+1/2,-y,-z+1/2):(-x+1/2,-y,z+1/2)
+:::::(-x,-y,-z):(x,-y,z):(-x+1/2,y,z+1/2):(x+1/2,y,-z+1/2)
+::4:h:..m:(x,1/2,z):(-x,1/2,-z):(x+1/2,1/2,-z+1/2):(-x+1/2,1/2,z+1/2)
+::4:g:..m:(x,0,z):(-x,0,-z):(x+1/2,0,-z+1/2):(-x+1/2,0,z+1/2)
+::4:f:..2:(1/2,y,0):(0,-y,1/2):(1/2,-y,0):(0,y,1/2)
+::4:e:..2:(0,y,0):(1/2,-y,1/2):(0,-y,0):(1/2,y,1/2)
+::2:d:..2/m:(1/2,1/2,0):(0,1/2,1/2)::
+::2:c:..2/m:(1/2,0,0):(0,0,1/2)::
+::2:b:..2/m:(0,1/2,0):(1/2,1/2,1/2)::
+::2:a:..2/m:(0,0,0):(1/2,0,1/2)::
+266:P 2sub1/c 2sub1/c 2/n:::::::
+::8:e:1:(x,y,z):(-x+1/2,-y+1/2,z):(-x,y+1/2,-z+1/2):(x+1/2,-y,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(x,-y+1/2,z+1/2):(-x+1/2,y,z+1/2)
+::4:d:..2:(1/4,3/4,z):(3/4,1/4,-z+1/2):(3/4,1/4,-z):(1/4,3/4,z+1/2)
+::4:c:..2:(1/4,1/4,z):(3/4,3/4,-z+1/2):(3/4,3/4,-z):(1/4,1/4,z+1/2)
+::4:b:-1:(0,0,1/2):(1/2,1/2,1/2):(0,1/2,0):(1/2,0,0)
+::4:a:-1:(0,0,0):(1/2,1/2,0):(0,1/2,1/2):(1/2,0,1/2)
+267:P 2/n 2sub1/a 2sub1/a:::::::
+::8:e:1:(x,y,z):(x,-y+1/2,-z+1/2):(-x+1/2,-y,z+1/2):(-x+1/2,y+1/2,-z)
+:::::(-x,-y,-z):(-x,y+1/2,z+1/2):(x+1/2,y,-z+1/2):(x+1/2,-y+1/2,z)
+::4:d:..2:(x,1/4,3/4):(-x+1/2,3/4,1/4):(-x,3/4,1/4):(x+1/2,1/4,3/4)
+::4:c:..2:(x,1/4,1/4):(-x+1/2,3/4,3/4):(-x,3/4,3/4):(x+1/2,1/4,1/4)
+::4:b:-1:(1/2,0,0):(1/2,1/2,1/2):(0,0,1/2):(0,1/2,0)
+::4:a:-1:(0,0,0):(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0)
+268:P 2sub1/b 2/n 2sub1/b:::::::
+::8:e:1:(x,y,z):(-x+1/2,y,-z+1/2):(x+1/2,-y+1/2,-z):(-x,-y+1/2,z+1/2)
+:::::(-x,-y,-z):(x+1/2,-y,z+1/2):(-x+1/2,y+1/2,z):(x,y+1/2,-z+1/2)
+::4:d:..2:(3/4,y,1/4):(1/4,-y+1/2,3/4):(1/4,-y,3/4):(3/4,y+1/2,1/4)
+::4:c:..2:(1/4,y,1/4):(3/4,-y+1/2,3/4):(3/4,-y,3/4):(1/4,y+1/2,1/4)
+::4:b:-1:(0,1/2,0):(1/2,1/2,1/2):(1/2,0,0):(0,0,1/2)
+::4:a:-1:(0,0,0):(1/2,0,1/2):(1/2,1/2,0):(0,1/2,1/2)
+269:P 2/b 2sub1/c 2sub1/m:::::::
+::8:e:1:(x,y,z):(-x,-y,z+1/2):(-x,y+1/2,-z+1/2):(x,-y+1/2,-z)
+:::::(-x,-y,-z):(x,y,-z+1/2):(x,-y+1/2,z+1/2):(-x,y+1/2,z)
+::4:d:..m:(x,y,1/4):(-x,-y,3/4):(-x,y+1/2,1/4):(x,-y+1/2,3/4)
+::4:c:2..:(x,1/4,0):(-x,3/4,1/2):(-x,3/4,0):(x,1/4,1/2)
+::4:b:-1:(1/2,0,0):(1/2,0,1/2):(1/2,1/2,1/2):(1/2,1/2,0)
+::4:a:-1:(0,0,0):(0,0,1/2):(0,1/2,1/2):(0,1/2,0)
+270:P 2sub1/c 2/a 2sub1/m:::::::
+::8:e:1:(x,y,z):(-x,-y,z+1/2):(x+1/2,-y,-z+1/2):(-x+1/2,y,-z)
+:::::(-x,-y,-z):(x,y,-z+1/2):(-x+1/2,y,z+1/2):(x+1/2,-y,z)
+::4:d:..m:(x,y,3/4):(-x,-y,1/4):(x+1/2,-y,3/4):(-x+1/2,y,1/4)
+::4:c:2..:(1/4,y,0):(3/4,-y,1/2):(3/4,-y,0):(1/4,y,1/2)
+::4:b:-1:(0,1/2,0):(0,1/2,1/2):(1/2,1/2,1/2):(1/2,1/2,0)
+::4:a:-1:(0,0,0):(0,0,1/2):(1/2,0,1/2):(1/2,0,0)
+271:P 2sub1/m 2/c 2sub1/a:::::::
+::8:e:1:(x,y,z):(x+1/2,-y,-z):(-x+1/2,-y,z+1/2):(-x,y,-z+1/2)
+:::::(-x,-y,-z):(-x+1/2,y,z):(x+1/2,y,-z+1/2):(x,-y,z+1/2)
+::4:d:..m:(1/4,y,z):(3/4,-y,-z):(1/4,-y,z+1/2):(3/4,y,-z+1/2)
+::4:c:2..:(0,y,1/4):(1/2,-y,3/4):(0,-y,3/4):(1/2,y,1/4)
+::4:b:-1:(0,1/2,0):(1/2,1/2,0):(1/2,1/2,1/2):(0,1/2,1/2)
+::4:a:-1:(0,0,0):(1/2,0,0):(1/2,0,1/2):(0,0,1/2)
+272:P 2sub1/m 2sub1/a 2/b:::::::
+::8:e:1:(x,y,z):(x+1/2,-y,-z):(-x+1/2,y+1/2,-z):(-x,-y+1/2,z)
+:::::(-x,-y,-z):(-x+1/2,y,z):(x+1/2,-y+1/2,z):(x,y+1/2,-z)
+::4:d:..m:(3/4,y,z):(1/4,-y,-z):(3/4,y+1/2,-z):(1/4,-y+1/2,z)
+::4:c:2..:(0,1/4,z):(1/2,3/4,-z):(0,3/4,-z):(1/2,1/4,z)
+::4:b:-1:(0,0,1/2):(1/2,0,1/2):(1/2,1/2,1/2):(0,1/2,1/2)
+::4:a:-1:(0,0,0):(1/2,0,0):(1/2,1/2,0):(0,1/2,0)
+273:P 2sub1/b 2sub1/m 2/a:::::::
+::8:e:1:(x,y,z):(-x,y+1/2,-z):(x+1/2,-y+1/2,-z):(-x+1/2,-y,z)
+:::::(-x,-y,-z):(x,-y+1/2,z):(-x+1/2,y+1/2,z):(x+1/2,y,-z)
+::4:d:..m:(x,1/4,z):(-x,3/4,-z):(x+1/2,1/4,-z):(-x+1/2,3/4,z)
+::4:c:2..:(1/4,0,z):(3/4,1/2,-z):(3/4,0,-z):(1/4,1/2,z)
+::4:b:-1:(0,0,1/2):(0,1/2,1/2):(1/2,1/2,1/2):(1/2,0,1/2)
+::4:a:-1:(0,0,0):(0,1/2,0):(1/2,1/2,0):(1/2,0,0)
+274:P 2/c 2sub1/m 2sub1/b:::::::
+::8:e:1:(x,y,z):(-x,y+1/2,-z):(-x,-y+1/2,z+1/2):(x,-y,-z+1/2)
+:::::(-x,-y,-z):(x,-y+1/2,z):(x,y+1/2,-z+1/2):(-x,y,z+1/2)
+::4:d:..m:(x,3/4,z):(-x,1/4,-z):(-x,3/4,z+1/2):(x,1/4,-z+1/2)
+::4:c:2..:(x,0,1/4):(-x,1/2,3/4):(-x,0,3/4):(x,1/2,1/4)
+::4:b:-1:(1/2,0,0):(1/2,1/2,0):(1/2,1/2,1/2):(1/2,0,1/2)
+::4:a:-1:(0,0,0):(0,1/2,0):(0,1/2,1/2):(0,0,1/2)
+275:P 2sub1/n 2sub1/n 2/m:::::::
+::8:h:1:(x,y,z):(-x,-y,z):(-x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z+1/2)
+:::::(-x,-y,-z):(x,y,-z):(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2)
+::4:g:..m:(x,y,0):(-x,-y,0):(-x+1/2,y+1/2,1/2):(x+1/2,-y+1/2,1/2)
+::4:f:..2:(0,1/2,z):(1/2,0,-z+1/2):(0,1/2,-z):(1/2,0,z+1/2)
+::4:e:..2:(0,0,z):(1/2,1/2,-z+1/2):(0,0,-z):(1/2,1/2,z+1/2)
+::2:d:..2/m:(0,1/2,1/2):(1/2,0,0)::
+::2:c:..2/m:(0,1/2,0):(1/2,0,1/2)::
+::2:b:..2/m:(0,0,1/2):(1/2,1/2,0)::
+::2:a:..2/m:(0,0,0):(1/2,1/2,1/2)::
+276:P 2/m 2sub1/n 2sub1/n:::::::
+::8:h:1:(x,y,z):(x,-y,-z):(-x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,-z+1/2)
+:::::(-x,-y,-z):(-x,y,z):(x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,z+1/2)
+::4:g:..m:(0,y,z):(0,-y,-z):(1/2,-y+1/2,z+1/2):(1/2,y+1/2,-z+1/2)
+::4:f:..2:(x,0,1/2):(-x+1/2,1/2,0):(-x,0,1/2):(x+1/2,1/2,0)
+::4:e:..2:(x,0,0):(-x+1/2,1/2,1/2):(-x,0,0):(x+1/2,1/2,1/2)
+::2:d:..2/m:(1/2,0,1/2):(0,1/2,0)::
+::2:c:..2/m:(0,0,1/2):(1/2,1/2,0)::
+::2:b:..2/m:(1/2,0,0):(0,1/2,1/2)::
+::2:a:..2/m:(0,0,0):(1/2,1/2,1/2)::
+277:P 2sub1/n 2/m 2sub1/n:::::::
+::8:h:1:(x,y,z):(-x,y,-z):(x+1/2,-y+1/2,-z+1/2):(-x+1/2,-y+1/2,z+1/2)
+:::::(-x,-y,-z):(x,-y,z):(-x+1/2,y+1/2,z+1/2):(x+1/2,y+1/2,-z+1/2)
+::4:g:..m:(x,0,z):(-x,0,-z):(x+1/2,1/2,-z+1/2):(-x+1/2,1/2,z+1/2)
+::4:f:..2:(1/2,y,0):(0,-y+1/2,1/2):(1/2,-y,0):(0,y+1/2,1/2)
+::4:e:..2:(0,y,0):(1/2,-y+1/2,1/2):(0,-y,0):(1/2,y+1/2,1/2)
+::2:d:..2/m:(1/2,1/2,0):(0,0,1/2)::
+::2:c:..2/m:(1/2,0,0):(0,1/2,1/2)::
+::2:b:..2/m:(0,1/2,0):(1/2,0,1/2)::
+::2:a:..2/m:(0,0,0):(1/2,1/2,1/2)::
+278:P 2sub1/m 2sub1/m 2/n:::::::
+::8:g:1:(x,y,z):(-x,-y,z):(-x+1/2,y+1/2,-z):(x+1/2,-y+1/2,-z)
+:::::(-x+1/2,-y+1/2,-z):(x+1/2,y+1/2,-z):(x,-y,z):(-x,y,z)
+::4:f:.m.:(x,0,z):(-x,0,z):(-x+1/2,1/2,-z):(x+1/2,1/2,-z)
+::4:e:m..:(0,y,z):(0,-y,z):(1/2,y+1/2,-z):(1/2,-y+1/2,-z)
+::4:d:-1:(1/4,1/4,1/2):(3/4,3/4,1/2):(1/4,3/4,1/2):(3/4,1/4,1/2)
+::4:c:-1:(1/4,1/4,0):(3/4,3/4,0):(1/4,3/4,0):(3/4,1/4,0)
+::2:b:mm2:(0,1/2,z):(1/2,0,-z)::
+::2:a:mm2:(0,0,z):(1/2,1/2,-z)::
+279:P 2sub1/m 2sub1/m 2/n:::::::
+::8:g:1:(x,y,z):(-x+1/2,-y+1/2,z):(-x,y+1/2,-z):(x+1/2,-y,-z)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(x,-y+1/2,z):(-x+1/2,y,z)
+::4:f:.m.:(x,1/4,z):(-x+1/2,1/4,z):(-x,3/4,-z):(x+1/2,3/4,-z)
+::4:e:m..:(1/4,y,z):(1/4,-y+1/2,z):(3/4,y+1/2,-z):(3/4,-y,-z)
+::4:d:-1:(0,0,1/2):(1/2,1/2,1/2):(0,1/2,1/2):(1/2,0,1/2)
+::4:c:-1:(0,0,0):(1/2,1/2,0):(0,1/2,0):(1/2,0,0)
+::2:b:mm2:(1/4,3/4,z):(3/4,1/4,-z)::
+::2:a:mm2:(1/4,1/4,z):(3/4,3/4,-z)::
+280:P 2/n 2sub1/m 2sub1/m:::::::
+::8:g:1:(x,y,z):(x,-y,-z):(-x,-y+1/2,z+1/2):(-x,y+1/2,-z+1/2)
+:::::(-x,-y+1/2,-z+1/2):(-x,y+1/2,z+1/2):(x,y,-z):(x,-y,z)
+::4:f:.m.:(x,y,0):(x,-y,0):(-x,-y+1/2,1/2):(-x,y+1/2,1/2)
+::4:e:m..:(x,0,z):(x,0,-z):(-x,1/2,z+1/2):(-x,1/2,-z+1/2)
+::4:d:-1:(1/2,1/4,1/4):(1/2,3/4,3/4):(1/2,1/4,3/4):(1/2,3/4,1/4)
+::4:c:-1:(0,1/4,1/4):(0,3/4,3/4):(0,1/4,3/4):(0,3/4,1/4)
+::2:b:mm2:(x,0,1/2):(-x,1/2,0)::
+::2:a:mm2:(x,0,0):(-x,1/2,1/2)::
+281:P 2/n 2sub1/m 2sub1/m:::::::
+::8:g:1:(x,y,z):(x,-y+1/2,-z+1/2):(-x,-y,z+1/2):(-x,y+1/2,-z)
+:::::(-x,-y,-z):(-x,y+1/2,z+1/2):(x,y,-z+1/2):(x,-y+1/2,z)
+::4:f:.m.:(x,y,1/4):(x,-y+1/2,1/4):(-x,-y,3/4):(-x,y+1/2,3/4)
+::4:e:m..:(x,1/4,z):(x,1/4,-z+1/2):(-x,3/4,z+1/2):(-x,3/4,-z)
+::4:d:-1:(1/2,0,0):(1/2,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0)
+::4:c:-1:(0,0,0):(0,1/2,1/2):(0,0,1/2):(0,1/2,0)
+::2:b:mm2:(x,1/4,3/4):(-x,3/4,1/4)::
+::2:a:mm2:(x,1/4,1/4):(-x,3/4,3/4)::
+282:P 2sub1/m 2/n 2sub1/m:::::::
+::8:g:1:(x,y,z):(-x,y,-z):(x+1/2,-y,-z+1/2):(-x+1/2,-y,z+1/2)
+:::::(-x+1/2,-y,-z+1/2):(x+1/2,-y,z+1/2):(-x,y,z):(x,y,-z)
+::4:f:.m.:(0,y,z):(0,y,-z):(1/2,-y,-z+1/2):(1/2,-y,z+1/2)
+::4:e:m..:(x,y,0):(-x,y,0):(x+1/2,-y,1/2):(-x+1/2,-y,1/2)
+::4:d:-1:(1/4,1/2,1/4):(3/4,1/2,3/4):(3/4,1/2,1/4):(1/4,1/2,3/4)
+::4:c:-1:(1/4,0,1/4):(3/4,0,3/4):(3/4,0,1/4):(1/4,0,3/4)
+::2:b:mm2:(1/2,y,0):(0,-y,1/2)::
+::2:a:mm2:(0,y,0):(1/2,-y,1/2)::
+283:P 2sub1/m 2/n 2sub1/m:::::::
+::8:g:1:(x,y,z):(-x+1/2,y,-z+1/2):(x+1/2,-y,-z):(-x,-y,z+1/2)
+:::::(-x,-y,-z):(x+1/2,-y,z+1/2):(-x+1/2,y,z):(x,y,-z+1/2)
+::4:f:.m.:(1/4,y,z):(1/4,y,-z+1/2):(3/4,-y,-z):(3/4,-y,z+1/2)
+::4:e:m..:(x,y,1/4):(-x+1/2,y,1/4):(x+1/2,-y,3/4):(-x,-y,3/4)
+::4:d:-1:(0,1/2,0):(1/2,1/2,1/2):(1/2,1/2,0):(0,1/2,1/2)
+::4:c:-1:(0,0,0):(1/2,0,1/2):(1/2,0,0):(0,0,1/2)
+::2:b:mm2:(3/4,y,1/4):(1/4,-y,3/4)::
+::2:a:mm2:(1/4,y,1/4):(3/4,-y,3/4)::
+284:P 2sub1/b 2/c 2sub1/n:::::::
+::8:d:1:(x,y,z):(-x+1/2,-y+1/2,z+1/2):(-x,y,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z+1/2):(x,-y,z+1/2):(-x+1/2,y+1/2,z)
+::4:c:.2.:(0,y,1/4):(1/2,-y+1/2,3/4):(0,-y,3/4):(1/2,y+1/2,1/4)
+::4:b:-1:(0,1/2,0):(1/2,0,1/2):(0,1/2,1/2):(1/2,0,0)
+::4:a:-1:(0,0,0):(1/2,1/2,1/2):(0,0,1/2):(1/2,1/2,0)
+285:P 2/c 2sub1/a 2sub1/n:::::::
+::8:d:1:(x,y,z):(-x+1/2,-y+1/2,z+1/2):(x,-y,-z+1/2):(-x+1/2,y+1/2,-z)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z+1/2):(-x,y,z+1/2):(x+1/2,-y+1/2,z)
+::4:c:.2.:(x,0,3/4):(-x+1/2,1/2,1/4):(-x,0,1/4):(x+1/2,1/2,3/4)
+::4:b:-1:(1/2,0,0):(0,1/2,1/2):(1/2,0,1/2):(0,1/2,0)
+::4:a:-1:(0,0,0):(1/2,1/2,1/2):(0,0,1/2):(1/2,1/2,0)
+286:P 2sub1/n 2sub1/c 2/a:::::::
+::8:d:1:(x,y,z):(x+1/2,-y+1/2,-z+1/2):(-x+1/2,-y,z):(-x,y+1/2,-z+1/2)
+:::::(-x,-y,-z):(-x+1/2,y+1/2,z+1/2):(x+1/2,y,-z):(x,-y+1/2,z+1/2)
+::4:c:.2.:(1/4,0,z):(3/4,1/2,-z+1/2):(3/4,0,-z):(1/4,1/2,z+1/2)
+::4:b:-1:(0,0,1/2):(1/2,1/2,0):(1/2,0,1/2):(0,1/2,0)
+::4:a:-1:(0,0,0):(1/2,1/2,1/2):(1/2,0,0):(0,1/2,1/2)
+287:P 2sub1/n 2/a 2sub1/b:::::::
+::8:d:1:(x,y,z):(x+1/2,-y+1/2,-z+1/2):(-x+1/2,y,-z):(-x,-y+1/2,z+1/2)
+:::::(-x,-y,-z):(-x+1/2,y+1/2,z+1/2):(x+1/2,-y,z):(x,y+1/2,-z+1/2)
+::4:c:.2.:(3/4,y,0):(1/4,-y+1/2,1/2):(1/4,-y,0):(3/4,y+1/2,1/2)
+::4:b:-1:(0,1/2,0):(1/2,0,1/2):(1/2,1/2,0):(0,0,1/2)
+::4:a:-1:(0,0,0):(1/2,1/2,1/2):(1/2,0,0):(0,1/2,1/2)
+288:P 2/b 2sub1/n 2sub1/a:::::::
+::8:d:1:(x,y,z):(-x+1/2,y+1/2,-z+1/2):(x,-y+1/2,-z):(-x+1/2,-y,z+1/2)
+:::::(-x,-y,-z):(x+1/2,-y+1/2,z+1/2):(-x,y+1/2,z):(x+1/2,y,-z+1/2)
+::4:c:.2.:(x,1/4,0):(-x+1/2,3/4,1/2):(-x,3/4,0):(x+1/2,1/4,1/2)
+::4:b:-1:(1/2,0,0):(0,1/2,1/2):(1/2,1/2,0):(0,0,1/2)
+::4:a:-1:(0,0,0):(1/2,1/2,1/2):(0,1/2,0):(1/2,0,1/2)
+289:P 2sub1/c 2sub1/n 2/b:::::::
+::8:d:1:(x,y,z):(-x+1/2,y+1/2,-z+1/2):(-x,-y+1/2,z):(x+1/2,-y,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,-y+1/2,z+1/2):(x,y+1/2,-z):(-x+1/2,y,z+1/2)
+::4:c:.2.:(0,3/4,z):(1/2,1/4,-z+1/2):(0,1/4,-z):(1/2,3/4,z+1/2)
+::4:b:-1:(0,0,1/2):(1/2,1/2,0):(0,1/2,1/2):(1/2,0,0)
+::4:a:-1:(0,0,0):(1/2,1/2,1/2):(0,1/2,0):(1/2,0,1/2)
+290:P 2sub1/b 2sub1/c 2sub1/a:::::::
+::8:c:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(-x,-y,-z):(x+1/2,y,-z+1/2):(x,-y+1/2,z+1/2):(-x+1/2,y+1/2,z)
+::4:b:-1:(0,0,1/2):(1/2,0,0):(0,1/2,0):(1/2,1/2,1/2)
+::4:a:-1:(0,0,0):(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,0)
+291:P 2sub1/c 2sub1/a 2sub1/b:::::::
+::8:c:1:(x,y,z):(-x,-y+1/2,z+1/2):(x+1/2,-y,-z+1/2):(-x+1/2,y+1/2,-z)
+:::::(-x,-y,-z):(x,y+1/2,-z+1/2):(-x+1/2,y,z+1/2):(x+1/2,-y+1/2,z)
+::4:b:-1:(0,0,1/2):(0,1/2,0):(1/2,0,0):(1/2,1/2,1/2)
+::4:a:-1:(0,0,0):(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0)
+292:P 2sub1/n 2sub1/m 2sub1/a:::::::
+::8:d:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z):(x+1/2,-y+1/2,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,y,-z+1/2):(x,-y+1/2,z):(-x+1/2,y+1/2,z+1/2)
+::4:c:.m.:(x,1/4,z):(-x+1/2,3/4,z+1/2):(-x,3/4,-z):(x+1/2,1/4,-z+1/2)
+::4:b:-1:(0,0,1/2):(1/2,0,0):(0,1/2,1/2):(1/2,1/2,0)
+::4:a:-1:(0,0,0):(1/2,0,1/2):(0,1/2,0):(1/2,1/2,1/2)
+293:P 2sub1/m 2sub1/n 2sub1/b:::::::
+::8:d:1:(x,y,z):(-x,-y+1/2,z+1/2):(x+1/2,-y,-z):(-x+1/2,y+1/2,-z+1/2)
+:::::(-x,-y,-z):(x,y+1/2,-z+1/2):(-x+1/2,y,z):(x+1/2,-y+1/2,z+1/2)
+::4:c:.m.:(1/4,y,z):(3/4,-y+1/2,z+1/2):(3/4,-y,-z):(1/4,y+1/2,-z+1/2)
+::4:b:-1:(0,0,1/2):(0,1/2,0):(1/2,0,1/2):(1/2,1/2,0)
+::4:a:-1:(0,0,0):(0,1/2,1/2):(1/2,0,0):(1/2,1/2,1/2)
+294:P 2sub1/b 2sub1/n 2sub1/m:::::::
+::8:d:1:(x,y,z):(x+1/2,-y+1/2,-z):(-x,-y,z+1/2):(-x+1/2,y+1/2,-z+1/2)
+:::::(-x,-y,-z):(-x+1/2,y+1/2,z):(x,y,-z+1/2):(x+1/2,-y+1/2,z+1/2)
+::4:c:.m.:(x,y,1/4):(x+1/2,-y+1/2,3/4):(-x,-y,3/4):(-x+1/2,y+1/2,1/4)
+::4:b:-1:(1/2,0,0):(0,1/2,0):(1/2,0,1/2):(0,1/2,1/2)
+::4:a:-1:(0,0,0):(1/2,1/2,0):(0,0,1/2):(1/2,1/2,1/2)
+295:P 2sub1/c 2sub1/m 2sub1/n:::::::
+::8:d:1:(x,y,z):(x+1/2,-y,-z+1/2):(-x,y+1/2,-z):(-x+1/2,-y+1/2,z+1/2)
+:::::(-x,-y,-z):(-x+1/2,y,z+1/2):(x,-y+1/2,z):(x+1/2,y+1/2,-z+1/2)
+::4:c:.m.:(x,1/4,z):(x+1/2,3/4,-z+1/2):(-x,3/4,-z):(-x+1/2,1/4,z+1/2)
+::4:b:-1:(1/2,0,0):(0,0,1/2):(1/2,1/2,0):(0,1/2,1/2)
+::4:a:-1:(0,0,0):(1/2,0,1/2):(0,1/2,0):(1/2,1/2,1/2)
+296:P 2sub1/m 2sub1/c 2sub1/n:::::::
+::8:d:1:(x,y,z):(-x,y+1/2,-z+1/2):(x+1/2,-y,-z):(-x+1/2,-y+1/2,z+1/2)
+:::::(-x,-y,-z):(x,-y+1/2,z+1/2):(-x+1/2,y,z):(x+1/2,y+1/2,-z+1/2)
+::4:c:.m.:(1/4,y,z):(3/4,y+1/2,-z+1/2):(3/4,-y,-z):(1/4,-y+1/2,z+1/2)
+::4:b:-1:(0,1/2,0):(0,0,1/2):(1/2,1/2,0):(1/2,0,1/2)
+::4:a:-1:(0,0,0):(0,1/2,1/2):(1/2,0,0):(1/2,1/2,1/2)
+297:P 2sub1/n 2sub1/a 2sub1/m:::::::
+::8:d:1:(x,y,z):(-x+1/2,y+1/2,-z):(-x,-y,z+1/2):(x+1/2,-y+1/2,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,-y+1/2,z):(x,y,-z+1/2):(-x+1/2,y+1/2,z+1/2)
+::4:c:.m.:(x,y,1/4):(-x+1/2,y+1/2,3/4):(-x,-y,3/4):(x+1/2,-y+1/2,1/4)
+::4:b:-1:(0,1/2,0):(1/2,0,0):(0,1/2,1/2):(1/2,0,1/2)
+::4:a:-1:(0,0,0):(1/2,1/2,0):(0,0,1/2):(1/2,1/2,1/2)
+298:C 2/m 2/c 2sub1/m:::::::
+::16:h:1:(x,y,z):(-x,-y,z+1/2):(-x,y,-z+1/2):(x,-y,-z)
+:::::(-x,-y,-z):(x,y,-z+1/2):(x,-y,z+1/2):(-x,y,z)
+::8:g:..m:(x,y,1/4):(-x,-y,3/4):(-x,y,1/4):(x,-y,3/4)
+::8:f:m..:(0,y,z):(0,-y,z+1/2):(0,y,-z+1/2):(0,-y,-z)
+::8:e:2..:(x,0,0):(-x,0,1/2):(-x,0,0):(x,0,1/2)
+::8:d:-1:(1/4,1/4,0):(3/4,3/4,1/2):(3/4,1/4,1/2):(1/4,3/4,0)
+::4:c:m2m:(0,y,1/4):(0,-y,3/4)::
+::4:b:2/m..:(0,1/2,0):(0,1/2,1/2)::
+::4:a:2/m..:(0,0,0):(0,0,1/2)::
+299:C 2/c 2/m 2sub1/m:::::::
+::16:h:1:(x,y,z):(-x,-y,z+1/2):(x,-y,-z+1/2):(-x,y,-z)
+:::::(-x,-y,-z):(x,y,-z+1/2):(-x,y,z+1/2):(x,-y,z)
+::8:g:..m:(x,y,3/4):(-x,-y,1/4):(x,-y,3/4):(-x,y,1/4)
+::8:f:m..:(x,0,z):(-x,0,z+1/2):(x,0,-z+1/2):(-x,0,-z)
+::8:e:2..:(0,y,0):(0,-y,1/2):(0,-y,0):(0,y,1/2)
+::8:d:-1:(1/4,1/4,0):(3/4,3/4,1/2):(1/4,3/4,1/2):(3/4,1/4,0)
+::4:c:m2m:(x,0,3/4):(-x,0,1/4)::
+::4:b:2/m..:(1/2,0,0):(1/2,0,1/2)::
+::4:a:2/m..:(0,0,0):(0,0,1/2)::
+300:A 2sub1/m 2/m 2/a:::::::
+::16:h:1:(x,y,z):(x+1/2,-y,-z):(-x+1/2,-y,z):(-x,y,-z)
+:::::(-x,-y,-z):(-x+1/2,y,z):(x+1/2,y,-z):(x,-y,z)
+::8:g:..m:(1/4,y,z):(3/4,-y,-z):(1/4,-y,z):(3/4,y,-z)
+::8:f:m..:(x,0,z):(x+1/2,0,-z):(-x+1/2,0,z):(-x,0,-z)
+::8:e:2..:(0,y,0):(1/2,-y,0):(0,-y,0):(1/2,y,0)
+::8:d:-1:(0,1/4,1/4):(1/2,3/4,3/4):(1/2,3/4,1/4):(0,1/4,3/4)
+::4:c:m2m:(1/4,0,z):(3/4,0,-z)::
+::4:b:2/m..:(0,0,1/2):(1/2,0,1/2)::
+::4:a:2/m..:(0,0,0):(1/2,0,0)::
+301:A 2sub1/m 2/a 2/m:::::::
+::16:h:1:(x,y,z):(x+1/2,-y,-z):(-x+1/2,y,-z):(-x,-y,z)
+:::::(-x,-y,-z):(-x+1/2,y,z):(x+1/2,-y,z):(x,y,-z)
+::8:g:..m:(3/4,y,z):(1/4,-y,-z):(3/4,y,-z):(1/4,-y,z)
+::8:f:m..:(x,y,0):(x+1/2,-y,0):(-x+1/2,y,0):(-x,-y,0)
+::8:e:2..:(0,0,z):(1/2,0,-z):(0,0,-z):(1/2,0,z)
+::8:d:-1:(0,1/4,1/4):(1/2,3/4,3/4):(1/2,1/4,3/4):(0,3/4,1/4)
+::4:c:m2m:(3/4,y,0):(1/4,-y,0)::
+::4:b:2/m..:(0,1/2,0):(1/2,1/2,0)::
+::4:a:2/m..:(0,0,0):(1/2,0,0)::
+302:B 2/b 2sub1/m 2/m:::::::
+::16:h:1:(x,y,z):(-x,y+1/2,-z):(x,-y+1/2,-z):(-x,-y,z)
+:::::(-x,-y,-z):(x,-y+1/2,z):(-x,y+1/2,z):(x,y,-z)
+::8:g:..m:(x,1/4,z):(-x,3/4,-z):(x,1/4,-z):(-x,3/4,z)
+::8:f:m..:(x,y,0):(-x,y+1/2,0):(x,-y+1/2,0):(-x,-y,0)
+::8:e:2..:(0,0,z):(0,1/2,-z):(0,0,-z):(0,1/2,z)
+::8:d:-1:(1/4,0,1/4):(3/4,1/2,3/4):(1/4,1/2,3/4):(3/4,0,1/4)
+::4:c:m2m:(x,1/4,0):(-x,3/4,0)::
+::4:b:2/m..:(1/2,0,0):(1/2,1/2,0)::
+::4:a:2/m..:(0,0,0):(0,1/2,0)::
+303:B 2/m 2sub1/m 2/b:::::::
+::16:h:1:(x,y,z):(-x,y+1/2,-z):(-x,-y+1/2,z):(x,-y,-z)
+:::::(-x,-y,-z):(x,-y+1/2,z):(x,y+1/2,-z):(-x,y,z)
+::8:g:..m:(x,3/4,z):(-x,1/4,-z):(-x,3/4,z):(x,1/4,-z)
+::8:f:m..:(0,y,z):(0,y+1/2,-z):(0,-y+1/2,z):(0,-y,-z)
+::8:e:2..:(x,0,0):(-x,1/2,0):(-x,0,0):(x,1/2,0)
+::8:d:-1:(1/4,0,1/4):(3/4,1/2,3/4):(3/4,1/2,1/4):(1/4,0,3/4)
+::4:c:m2m:(0,3/4,z):(0,1/4,-z)::
+::4:b:2/m..:(0,0,1/2):(0,1/2,1/2)::
+::4:a:2/m..:(0,0,0):(0,1/2,0)::
+304:C 2/m 2/c 2sub1/a:::::::
+::16:g:1:(x,y,z):(-x,-y+1/2,z+1/2):(-x,y+1/2,-z+1/2):(x,-y,-z)
+:::::(-x,-y,-z):(x,y+1/2,-z+1/2):(x,-y+1/2,z+1/2):(-x,y,z)
+::8:f:m..:(0,y,z):(0,-y+1/2,z+1/2):(0,y+1/2,-z+1/2):(0,-y,-z)
+::8:e:.2.:(1/4,y,1/4):(3/4,-y+1/2,3/4):(3/4,-y,3/4):(1/4,y+1/2,1/4)
+::8:d:2..:(x,0,0):(-x,1/2,1/2):(-x,0,0):(x,1/2,1/2)
+::8:c:-1:(1/4,1/4,0):(3/4,1/4,1/2):(3/4,3/4,1/2):(1/4,3/4,0)
+::4:b:2/m..:(1/2,0,0):(1/2,1/2,1/2)::
+::4:a:2/m..:(0,0,0):(0,1/2,1/2)::
+305:C 2/c 2/m 2sub1/b:::::::
+::16:g:1:(x,y,z):(-x+1/2,-y,z+1/2):(x+1/2,-y,-z+1/2):(-x,y,-z)
+:::::(-x,-y,-z):(x+1/2,y,-z+1/2):(-x+1/2,y,z+1/2):(x,-y,z)
+::8:f:m..:(x,0,z):(-x+1/2,0,z+1/2):(x+1/2,0,-z+1/2):(-x,0,-z)
+::8:e:.2.:(x,1/4,3/4):(-x+1/2,3/4,1/4):(-x,3/4,1/4):(x+1/2,1/4,3/4)
+::8:d:2..:(0,y,0):(1/2,-y,1/2):(0,-y,0):(1/2,y,1/2)
+::8:c:-1:(1/4,1/4,0):(1/4,3/4,1/2):(3/4,3/4,1/2):(3/4,1/4,0)
+::4:b:2/m..:(0,1/2,0):(1/2,1/2,1/2)::
+::4:a:2/m..:(0,0,0):(1/2,0,1/2)::
+306:A 2sub1/b 2/m a:::::::
+::16:g:1:(x,y,z):(x+1/2,-y,-z+1/2):(-x+1/2,-y,z+1/2):(-x,y,-z)
+:::::(-x,-y,-z):(-x+1/2,y,z+1/2):(x+1/2,y,-z+1/2):(x,-y,z)
+::8:f:m..:(x,0,z):(x+1/2,0,-z+1/2):(-x+1/2,0,z+1/2):(-x,0,-z)
+::8:e:.2.:(1/4,1/4,z):(3/4,3/4,-z+1/2):(3/4,3/4,-z):(1/4,1/4,z+1/2)
+::8:d:2..:(0,y,0):(1/2,-y,1/2):(0,-y,0):(1/2,y,1/2)
+::8:c:-1:(0,1/4,1/4):(1/2,3/4,1/4):(1/2,3/4,3/4):(0,1/4,3/4)
+::4:b:2/m..:(0,1/2,0):(1/2,1/2,1/2)::
+::4:a:2/m..:(0,0,0):(1/2,0,1/2)::
+307:A 2sub1/c 2/a 2/m:::::::
+::16:g:1:(x,y,z):(x+1/2,-y+1/2,-z):(-x+1/2,y+1/2,-z):(-x,-y,z)
+:::::(-x,-y,-z):(-x+1/2,y+1/2,z):(x+1/2,-y+1/2,z):(x,y,-z)
+::8:f:m..:(x,y,0):(x+1/2,-y+1/2,0):(-x+1/2,y+1/2,0):(-x,-y,0)
+::8:e:.2.:(3/4,y,1/4):(1/4,-y+1/2,3/4):(1/4,-y,3/4):(3/4,y+1/2,1/4)
+::8:d:2..:(0,0,z):(1/2,1/2,-z):(0,0,-z):(1/2,1/2,z)
+::8:c:-1:(0,1/4,1/4):(1/2,1/4,3/4):(1/2,3/4,3/4):(0,3/4,1/4)
+::4:b:2/m..:(0,0,1/2):(1/2,1/2,1/2)::
+::4:a:2/m..:(0,0,0):(1/2,1/2,0)::
+308:B 2/b 2sub1/c 2/m:::::::
+::16:g:1:(x,y,z):(-x+1/2,y+1/2,-z):(x+1/2,-y+1/2,-z):(-x,-y,z)
+:::::(-x,-y,-z):(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z):(x,y,-z)
+::8:f:m..:(x,y,0):(-x+1/2,y+1/2,0):(x+1/2,-y+1/2,0):(-x,-y,0)
+::8:e:.2.:(x,1/4,1/4):(-x+1/2,3/4,3/4):(-x,3/4,3/4):(x+1/2,1/4,1/4)
+::8:d:2..:(0,0,z):(1/2,1/2,-z):(0,0,-z):(1/2,1/2,z)
+::8:c:-1:(1/4,0,1/4):(1/4,1/2,3/4):(3/4,1/2,3/4):(3/4,0,1/4)
+::4:b:2/m..:(0,0,1/2):(1/2,1/2,1/2)::
+::4:a:2/m..:(0,0,0):(1/2,1/2,0)::
+309:B 2/m 2sub1/a 2/b:::::::
+::16:g:1:(x,y,z):(-x,y+1/2,-z+1/2):(-x,-y+1/2,z+1/2):(x,-y,-z)
+:::::(-x,-y,-z):(x,-y+1/2,z+1/2):(x,y+1/2,-z+1/2):(-x,y,z)
+::8:f:m..:(0,y,z):(0,y+1/2,-z+1/2):(0,-y+1/2,z+1/2):(0,-y,-z)
+::8:e:.2.:(1/4,3/4,z):(3/4,1/4,-z+1/2):(3/4,1/4,-z):(1/4,3/4,z+1/2)
+::8:d:2..:(x,0,0):(-x,1/2,1/2):(-x,0,0):(x,1/2,1/2)
+::8:c:-1:(1/4,0,1/4):(3/4,1/2,1/4):(3/4,1/2,3/4):(1/4,0,3/4)
+::4:b:2/m..:(1/2,0,0):(1/2,1/2,1/2)::
+::4:a:2/m..:(0,0,0):(0,1/2,1/2)::
+310:C 2/m 2/m 2/m:::::::
+::16:r:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+::8:q:..m:(x,y,1/2):(-x,-y,1/2):(-x,y,1/2):(x,-y,1/2)
+::8:p:..m:(x,y,0):(-x,-y,0):(-x,y,0):(x,-y,0)
+::8:o:.m.:(x,0,z):(-x,0,z):(-x,0,-z):(x,0,-z)
+::8:n:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+::8:m:..2:(1/4,1/4,z):(3/4,1/4,-z):(3/4,3/4,-z):(1/4,3/4,z)
+::4:l:mm2:(0,1/2,z):(0,1/2,-z)::
+::4:k:mm2:(0,0,z):(0,0,-z)::
+::4:j:m2m:(0,y,1/2):(0,-y,1/2)::
+::4:i:m2m:(0,y,0):(0,-y,0)::
+::4:h:2mm:(x,0,1/2):(-x,0,1/2)::
+::4:g:2mm:(x,0,0):(-x,0,0)::
+::4:f:..2/m:(1/4,1/4,1/2):(3/4,1/4,1/2)::
+::4:e:..2/m:(1/4,1/4,0):(3/4,1/4,0)::
+::2:d:mmm:(0,0,1/2):::
+::2:c:mmm:(1/2,0,1/2):::
+::2:b:mmm:(1/2,0,0):::
+::2:a:mmm:(0,0,0):::
+311:A 2/m 2/m 2/m:::::::
+::16:r:1:(x,y,z):(x,-y,-z):(-x,-y,z):(-x,y,-z)
+:::::(-x,-y,-z):(-x,y,z):(x,y,-z):(x,-y,z)
+::8:q:..m:(1/2,y,z):(1/2,-y,-z):(1/2,-y,z):(1/2,y,-z)
+::8:p:..m:(0,y,z):(0,-y,-z):(0,-y,z):(0,y,-z)
+::8:o:.m.:(x,y,0):(x,-y,0):(-x,-y,0):(-x,y,0)
+::8:n:m..:(x,0,z):(x,0,-z):(-x,0,z):(-x,0,-z)
+::8:m:..2:(x,1/4,1/4):(-x,3/4,1/4):(-x,3/4,3/4):(x,1/4,3/4)
+::4:l:mm2:(x,0,1/2):(-x,0,1/2)::
+::4:k:mm2:(x,0,0):(-x,0,0)::
+::4:j:m2m:(1/2,0,z):(1/2,0,-z)::
+::4:i:m2m:(0,0,z):(0,0,-z)::
+::4:h:2mm:(1/2,y,0):(1/2,-y,0)::
+::4:g:2mm:(0,y,0):(0,-y,0)::
+::4:f:..2/m:(1/2,1/4,1/4):(1/2,3/4,1/4)::
+::4:e:..2/m:(0,1/4,1/4):(0,3/4,1/4)::
+::2:d:mmm:(1/2,0,0):::
+::2:c:mmm:(1/2,1/2,0):::
+::2:b:mmm:(0,1/2,0):::
+::2:a:mmm:(0,0,0):::
+312:B 2/m 2/m 2/m:::::::
+::16:r:1:(x,y,z):(-x,y,-z):(x,-y,-z):(-x,-y,z)
+:::::(-x,-y,-z):(x,-y,z):(-x,y,z):(x,y,-z)
+::8:q:..m:(x,1/2,z):(-x,1/2,-z):(x,1/2,-z):(-x,1/2,z)
+::8:p:..m:(x,0,z):(-x,0,-z):(x,0,-z):(-x,0,z)
+::8:o:.m.:(0,y,z):(0,y,-z):(0,-y,-z):(0,-y,z)
+::8:n:m..:(x,y,0):(-x,y,0):(x,-y,0):(-x,-y,0)
+::8:m:..2:(1/4,y,1/4):(1/4,-y,3/4):(3/4,-y,3/4):(3/4,y,1/4)
+::4:l:mm2:(1/2,y,0):(1/2,-y,0)::
+::4:k:mm2:(0,y,0):(0,-y,0)::
+::4:j:m2m:(x,1/2,0):(-x,1/2,0)::
+::4:i:m2m:(x,0,0):(-x,0,0)::
+::4:h:2mm:(0,1/2,z):(0,1/2,-z)::
+::4:g:2mm:(0,0,z):(0,0,-z)::
+::4:f:..2/m:(1/4,1/2,1/4):(1/4,1/2,3/4)::
+::4:e:..2/m:(1/4,0,1/4):(1/4,0,3/4)::
+::2:d:mmm:(0,1/2,0):::
+::2:c:mmm:(0,1/2,1/2):::
+::2:b:mmm:(0,0,1/2):::
+::2:a:mmm:(0,0,0):::
+313:C 2/c 2/c 2/m:::::::
+::16:m:1:(x,y,z):(-x,-y,z):(-x,y,-z+1/2):(x,-y,-z+1/2)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z+1/2):(-x,y,z+1/2)
+::8:l:..m:(x,y,0):(-x,-y,0):(-x,y,1/2):(x,-y,1/2)
+::8:k:..2:(1/4,1/4,z):(3/4,1/4,-z+1/2):(3/4,3/4,-z):(1/4,3/4,z+1/2)
+::8:j:..2:(0,1/2,z):(0,1/2,-z+1/2):(0,1/2,-z):(0,1/2,z+1/2)
+::8:i:..2:(0,0,z):(0,0,-z+1/2):(0,0,-z):(0,0,z+1/2)
+::8:h:.2.:(0,y,1/4):(0,-y,1/4):(0,-y,3/4):(0,y,3/4)
+::8:g:2..:(x,0,1/4):(-x,0,1/4):(-x,0,3/4):(x,0,3/4)
+::4:f:..2/m:(1/4,3/4,0):(3/4,3/4,1/2)::
+::4:e:..2/m:(1/4,1/4,0):(3/4,1/4,1/2)::
+::4:d:..2/m:(0,1/2,0):(0,1/2,1/2)::
+::4:c:..2/m:(0,0,0):(0,0,1/2)::
+::4:b:222:(0,1/2,1/4):(0,1/2,3/4)::
+::4:a:222:(0,0,1/4):(0,0,3/4)::
+314:A 2/m 2/a 2/a:::::::
+::16:m:1:(x,y,z):(x,-y,-z):(-x+1/2,-y,z):(-x+1/2,y,-z)
+:::::(-x,-y,-z):(-x,y,z):(x+1/2,y,-z):(x+1/2,-y,z)
+::8:l:..m:(0,y,z):(0,-y,-z):(1/2,-y,z):(1/2,y,-z)
+::8:k:..2:(x,1/4,1/4):(-x+1/2,3/4,1/4):(-x,3/4,3/4):(x+1/2,1/4,3/4)
+::8:j:..2:(x,0,1/2):(-x+1/2,0,1/2):(-x,0,1/2):(x+1/2,0,1/2)
+::8:i:..2:(x,0,0):(-x+1/2,0,0):(-x,0,0):(x+1/2,0,0)
+::8:h:.2.:(1/4,0,z):(1/4,0,-z):(3/4,0,-z):(3/4,0,z)
+::8:g:2..:(1/4,y,0):(1/4,-y,0):(3/4,-y,0):(3/4,y,0)
+::4:f:..2/m:(0,1/4,3/4):(1/2,3/4,3/4)::
+::4:e:..2/m:(0,1/4,1/4):(1/2,3/4,1/4)::
+::4:d:..2/m:(0,0,1/2):(1/2,0,1/2)::
+::4:c:..2/m:(0,0,0):(1/2,0,0)::
+::4:b:222:(1/4,0,1/2):(3/4,0,1/2)::
+::4:a:222:(1/4,0,0):(3/4,0,0)::
+315:B 2/b 2/m 2/b:::::::
+::16:m:1:(x,y,z):(-x,y,-z):(x,-y+1/2,-z):(-x,-y+1/2,z)
+:::::(-x,-y,-z):(x,-y,z):(-x,y+1/2,z):(x,y+1/2,-z)
+::8:l:..m:(x,0,z):(-x,0,-z):(x,1/2,-z):(-x,1/2,z)
+::8:k:..2:(1/4,y,1/4):(1/4,-y+1/2,3/4):(3/4,-y,3/4):(3/4,y+1/2,1/4)
+::8:j:..2:(1/2,y,0):(1/2,-y+1/2,0):(1/2,-y,0):(1/2,y+1/2,0)
+::8:i:..2:(0,y,0):(0,-y+1/2,0):(0,-y,0):(0,y+1/2,0)
+::8:h:.2.:(x,1/4,0):(-x,1/4,0):(-x,3/4,0):(x,3/4,0)
+::8:g:2..:(0,1/4,z):(0,1/4,-z):(0,3/4,-z):(0,3/4,z)
+::4:f:..2/m:(3/4,0,1/4):(3/4,1/2,3/4)::
+::4:e:..2/m:(1/4,0,1/4):(1/4,1/2,3/4)::
+::4:d:..2/m:(1/2,0,0):(1/2,1/2,0)::
+::4:c:..2/m:(0,0,0):(0,1/2,0)::
+::4:b:222:(1/2,1/4,0):(1/2,3/4,0)::
+::4:a:222:(0,1/4,0):(0,3/4,0)::
+316:C 2/m 2/m 2/a:::::::
+::16:o:1:(x,y,z):(-x,-y+1/2,z):(-x,y+1/2,-z):(x,-y,-z)
+:::::(-x,-y,-z):(x,y+1/2,-z):(x,-y+1/2,z):(-x,y,z)
+::8:n:.m.:(x,1/4,z):(-x,1/4,z):(-x,3/4,-z):(x,3/4,-z)
+::8:m:m..:(0,y,z):(0,-y+1/2,z):(0,y+1/2,-z):(0,-y,-z)
+::8:l:..2:(1/4,0,z):(3/4,1/2,-z):(3/4,0,-z):(1/4,1/2,z)
+::8:k:.2.:(1/4,y,1/2):(3/4,-y+1/2,1/2):(3/4,-y,1/2):(1/4,y+1/2,1/2)
+::8:j:.2.:(1/4,y,0):(3/4,-y+1/2,0):(3/4,-y,0):(1/4,y+1/2,0)
+::8:i:2..:(x,0,1/2):(-x,1/2,1/2):(-x,0,1/2):(x,1/2,1/2)
+::8:h:2..:(x,0,0):(-x,1/2,0):(-x,0,0):(x,1/2,0)
+::4:g:mm2:(0,1/4,z):(0,3/4,-z)::
+::4:f:.2/m.:(1/4,1/4,1/2):(3/4,1/4,1/2)::
+::4:e:.2/m.:(1/4,1/4,0):(3/4,1/4,0)::
+::4:d:2/m..:(0,0,1/2):(0,1/2,1/2)::
+::4:c:2/m..:(0,0,0):(0,1/2,0)::
+::4:b:222:(1/4,0,1/2):(3/4,0,1/2)::
+::4:a:222:(1/4,0,0):(3/4,0,0)::
+317:C 2/m 2/m 2/b:::::::
+::16:o:1:(x,y,z):(-x+1/2,-y,z):(x+1/2,-y,-z):(-x,y,-z)
+:::::(-x,-y,-z):(x+1/2,y,-z):(-x+1/2,y,z):(x,-y,z)
+::8:n:.m.:(1/4,y,z):(1/4,-y,z):(3/4,-y,-z):(3/4,y,-z)
+::8:m:m..:(x,0,z):(-x+1/2,0,z):(x+1/2,0,-z):(-x,0,-z)
+::8:l:..2:(0,1/4,z):(1/2,3/4,-z):(0,3/4,-z):(1/2,1/4,z)
+::8:k:.2.:(x,1/4,1/2):(-x+1/2,3/4,1/2):(-x,3/4,1/2):(x+1/2,1/4,1/2)
+::8:j:.2.:(x,1/4,0):(-x+1/2,3/4,0):(-x,3/4,0):(x+1/2,1/4,0)
+::8:i:2..:(0,y,1/2):(1/2,-y,1/2):(0,-y,1/2):(1/2,y,1/2)
+::8:h:2..:(0,y,0):(1/2,-y,0):(0,-y,0):(1/2,y,0)
+::4:g:mm2:(1/4,0,z):(3/4,0,-z)::
+::4:f:.2/m.:(1/4,1/4,1/2):(1/4,3/4,1/2)::
+::4:e:.2/m.:(1/4,1/4,0):(1/4,3/4,0)::
+::4:d:2/m..:(0,0,1/2):(1/2,0,1/2)::
+::4:c:2/m..:(0,0,0):(1/2,0,0)::
+::4:b:222:(0,1/4,1/2):(0,3/4,1/2)::
+::4:a:222:(0,1/4,0):(0,3/4,0)::
+318:A 2/b 2/m 2/m:::::::
+::16:o:1:(x,y,z):(x,-y,-z+1/2):(-x,-y,z+1/2):(-x,y,-z)
+:::::(-x,-y,-z):(-x,y,z+1/2):(x,y,-z+1/2):(x,-y,z)
+::8:n:.m.:(x,y,1/4):(x,-y,1/4):(-x,-y,3/4):(-x,y,3/4)
+::8:m:m..:(x,0,z):(x,0,-z+1/2):(-x,0,z+1/2):(-x,0,-z)
+::8:l:..2:(x,1/4,0):(-x,3/4,1/2):(-x,3/4,0):(x,1/4,1/2)
+::8:k:.2.:(1/2,1/4,z):(1/2,3/4,-z+1/2):(1/2,3/4,-z):(1/2,1/4,z+1/2)
+::8:j:.2.:(0,1/4,z):(0,3/4,-z+1/2):(0,3/4,-z):(0,1/4,z+1/2)
+::8:i:2..:(1/2,y,0):(1/2,-y,1/2):(1/2,-y,0):(1/2,y,1/2)
+::8:h:2..:(0,y,0):(0,-y,1/2):(0,-y,0):(0,y,1/2)
+::4:g:mm2:(x,0,1/4):(-x,0,3/4)::
+::4:f:.2/m.:(1/2,1/4,1/4):(1/2,3/4,1/4)::
+::4:e:.2/m.:(0,1/4,1/4):(0,3/4,1/4)::
+::4:d:2/m..:(1/2,0,0):(1/2,0,1/2)::
+::4:c:2/m..:(0,0,0):(0,0,1/2)::
+::4:b:222:(1/2,1/4,0):(1/2,3/4,0)::
+::4:a:222:(0,1/4,0):(0,3/4,0)::
+319:A 2/c 2/m 2/m:::::::
+::16:o:1:(x,y,z):(x,-y+1/2,-z):(-x,y+1/2,-z):(-x,-y,z)
+:::::(-x,-y,-z):(-x,y+1/2,z):(x,-y+1/2,z):(x,y,-z)
+::8:n:.m.:(x,1/4,z):(x,1/4,-z):(-x,3/4,-z):(-x,3/4,z)
+::8:m:m..:(x,y,0):(x,-y+1/2,0):(-x,y+1/2,0):(-x,-y,0)
+::8:l:..2:(x,0,1/4):(-x,1/2,3/4):(-x,0,3/4):(x,1/2,1/4)
+::8:k:.2.:(1/2,y,1/4):(1/2,-y+1/2,3/4):(1/2,-y,3/4):(1/2,y+1/2,1/4)
+::8:j:.2.:(0,y,1/4):(0,-y+1/2,3/4):(0,-y,3/4):(0,y+1/2,1/4)
+::8:i:2..:(1/2,0,z):(1/2,1/2,-z):(1/2,0,-z):(1/2,1/2,z)
+::8:h:2..:(0,0,z):(0,1/2,-z):(0,0,-z):(0,1/2,z)
+::4:g:mm2:(x,1/4,0):(-x,3/4,0)::
+::4:f:.2/m.:(1/2,1/4,1/4):(1/2,1/4,3/4)::
+::4:e:.2/m.:(0,1/4,1/4):(0,1/4,3/4)::
+::4:d:2/m..:(1/2,0,0):(1/2,1/2,0)::
+::4:c:2/m..:(0,0,0):(0,1/2,0)::
+::4:b:222:(1/2,0,1/4):(1/2,0,3/4)::
+::4:a:222:(0,0,1/4):(0,0,3/4)::
+320:B 2/m 2/c 2/m:::::::
+::16:o:1:(x,y,z):(-x+1/2,y,-z):(x+1/2,-y,-z):(-x,-y,z)
+:::::(-x,-y,-z):(x+1/2,-y,z):(-x+1/2,y,z):(x,y,-z)
+::8:n:.m.:(1/4,y,z):(1/4,y,-z):(3/4,-y,-z):(3/4,-y,z)
+::8:m:m..:(x,y,0):(-x+1/2,y,0):(x+1/2,-y,0):(-x,-y,0)
+::8:l:..2:(0,y,1/4):(1/2,-y,3/4):(0,-y,3/4):(1/2,y,1/4)
+::8:k:.2.:(x,1/2,1/4):(-x+1/2,1/2,3/4):(-x,1/2,3/4):(x+1/2,1/2,1/4)
+::8:j:.2.:(x,0,1/4):(-x+1/2,0,3/4):(-x,0,3/4):(x+1/2,0,1/4)
+::8:i:2..:(0,1/2,z):(1/2,1/2,-z):(0,1/2,-z):(1/2,1/2,z)
+::8:h:2..:(0,0,z):(1/2,0,-z):(0,0,-z):(1/2,0,z)
+::4:g:mm2:(1/4,y,0):(3/4,-y,0)::
+::4:f:.2/m.:(1/4,1/2,1/4):(1/4,1/2,3/4)::
+::4:e:.2/m.:(1/4,0,1/4):(1/4,0,3/4)::
+::4:d:2/m..:(0,1/2,0):(1/2,1/2,0)::
+::4:c:2/m..:(0,0,0):(1/2,0,0)::
+::4:b:222:(0,1/2,1/4):(0,1/2,3/4)::
+::4:a:222:(0,0,1/4):(0,0,3/4)::
+321:B 2/m 2/a 2/m:::::::
+::16:o:1:(x,y,z):(-x,y,-z+1/2):(-x,-y,z+1/2):(x,-y,-z)
+:::::(-x,-y,-z):(x,-y,z+1/2):(x,y,-z+1/2):(-x,y,z)
+::8:n:.m.:(x,y,1/4):(-x,y,1/4):(-x,-y,3/4):(x,-y,3/4)
+::8:m:m..:(0,y,z):(0,y,-z+1/2):(0,-y,z+1/2):(0,-y,-z)
+::8:l:..2:(1/4,y,0):(3/4,-y,1/2):(3/4,-y,0):(1/4,y,1/2)
+::8:k:.2.:(1/4,1/2,z):(3/4,1/2,-z+1/2):(3/4,1/2,-z):(1/4,1/2,z+1/2)
+::8:j:.2.:(1/4,0,z):(3/4,0,-z+1/2):(3/4,0,-z):(1/4,0,z+1/2)
+::8:i:2..:(x,1/2,0):(-x,1/2,1/2):(-x,1/2,0):(x,1/2,1/2)
+::8:h:2..:(x,0,0):(-x,0,1/2):(-x,0,0):(x,0,1/2)
+::4:g:mm2:(0,y,1/4):(0,-y,3/4)::
+::4:f:.2/m.:(1/4,1/2,1/4):(3/4,1/2,1/4)::
+::4:e:.2/m.:(1/4,0,1/4):(3/4,0,1/4)::
+::4:d:2/m..:(0,1/2,0):(0,1/2,1/2)::
+::4:c:2/m..:(0,0,0):(0,0,1/2)::
+::4:b:222:(1/4,1/2,0):(3/4,1/2,0)::
+::4:a:222:(1/4,0,0):(3/4,0,0)::
+322:C 2/c 2/c 2/a:::::::
+::16:i:1:(x,y,z):(-x+1/2,-y+1/2,z):(-x,y,-z):(x+1/2,-y+1/2,-z)
+:::::(-x,-y+1/2,-z+1/2):(x+1/2,y,-z+1/2):(x,-y+1/2,z+1/2):(-x+1/2,y,z+1/2)
+::8:h:..2:(1/4,1/4,z):(3/4,1/4,-z):(3/4,1/4,-z+1/2):(1/4,1/4,z+1/2)
+::8:g:..2:(0,0,z):(0,0,-z):(0,1/2,-z+1/2):(0,1/2,z+1/2)
+::8:f:.2.:(0,y,0):(1/2,-y+1/2,0):(0,-y+1/2,1/2):(1/2,y,1/2)
+::8:e:2..:(x,0,0):(-x+1/2,1/2,0):(-x,1/2,1/2):(x+1/2,0,1/2)
+::8:d:-1:(0,1/4,1/4):(1/2,1/4,1/4):(0,1/4,3/4):(1/2,1/4,3/4)
+::8:c:-1:(1/4,0,1/4):(1/4,1/2,1/4):(3/4,0,3/4):(3/4,1/2,3/4)
+::4:b:222:(0,0,1/2):(0,1/2,0)::
+::4:a:222:(0,0,0):(0,1/2,1/2)::
+323:C 2/c 2/c 2/a:::::::
+::16:i:1:(x,y,z):(-x+1/2,-y,z):(-x,y,-z+1/2):(x+1/2,-y,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,y,-z):(x,-y,z+1/2):(-x+1/2,y,z+1/2)
+::8:h:..2:(1/4,0,z):(3/4,0,-z+1/2):(3/4,0,-z):(1/4,0,z+1/2)
+::8:g:..2:(0,1/4,z):(0,1/4,-z+1/2):(0,3/4,-z):(0,3/4,z+1/2)
+::8:f:.2.:(0,y,1/4):(1/2,-y,1/4):(0,-y,3/4):(1/2,y,3/4)
+::8:e:2..:(x,1/4,1/4):(-x+1/2,3/4,1/4):(-x,3/4,3/4):(x+1/2,1/4,3/4)
+::8:d:-1:(0,0,0):(1/2,0,0):(0,0,1/2):(1/2,0,1/2)
+::8:c:-1:(1/4,3/4,0):(1/4,1/4,0):(3/4,3/4,1/2):(3/4,1/4,1/2)
+::4:b:222:(0,1/4,3/4):(0,3/4,1/4)::
+::4:a:222:(0,1/4,1/4):(0,3/4,3/4)::
+324:C 2/c 2/c 2/b:::::::
+::16:i:1:(x,y,z):(-x+1/2,-y+1/2,z):(x,-y,-z):(-x+1/2,y+1/2,-z)
+:::::(-x+1/2,-y,-z+1/2):(x,y+1/2,-z+1/2):(-x+1/2,y,z+1/2):(x,-y+1/2,z+1/2)
+::8:h:..2:(1/4,1/4,z):(1/4,3/4,-z):(1/4,3/4,-z+1/2):(1/4,1/4,z+1/2)
+::8:g:..2:(0,0,z):(0,0,-z):(1/2,0,-z+1/2):(1/2,0,z+1/2)
+::8:f:.2.:(x,0,0):(-x+1/2,1/2,0):(-x+1/2,0,1/2):(x,1/2,1/2)
+::8:e:2..:(0,y,0):(1/2,-y+1/2,0):(1/2,-y,1/2):(0,y+1/2,1/2)
+::8:d:-1:(1/4,0,3/4):(1/4,1/2,3/4):(1/4,0,1/4):(1/4,1/2,1/4)
+::8:c:-1:(0,1/4,3/4):(1/2,1/4,3/4):(0,3/4,1/4):(1/2,3/4,1/4)
+::4:b:222:(0,0,1/2):(1/2,0,0)::
+::4:a:222:(0,0,0):(1/2,0,1/2)::
+325:C 2/c 2/c 2/b:::::::
+::16:i:1:(x,y,z):(-x,-y+1/2,z):(x,-y,-z+1/2):(-x,y+1/2,-z+1/2)
+:::::(-x,-y,-z):(x,y+1/2,-z):(-x,y,z+1/2):(x,-y+1/2,z+1/2)
+::8:h:..2:(0,1/4,z):(0,3/4,-z+1/2):(0,3/4,-z):(0,1/4,z+1/2)
+::8:g:..2:(1/4,0,z):(1/4,0,-z+1/2):(3/4,0,-z):(3/4,0,z+1/2)
+::8:f:.2.:(x,0,3/4):(-x,1/2,3/4):(-x,0,1/4):(x,1/2,1/4)
+::8:e:2..:(1/4,y,3/4):(3/4,-y+1/2,3/4):(3/4,-y,1/4):(1/4,y+1/2,1/4)
+::8:d:-1:(0,0,0):(0,1/2,0):(0,0,1/2):(0,1/2,1/2)
+::8:c:-1:(3/4,1/4,0):(1/4,1/4,0):(3/4,3/4,1/2):(1/4,3/4,1/2)
+::4:b:222:(1/4,0,1/4):(3/4,0,3/4)::
+::4:a:222:(1/4,0,3/4):(3/4,0,1/4)::
+326:A 2/b 2/a 2/a:::::::
+::16:i:1:(x,y,z):(x,-y+1/2,-z+1/2):(-x,-y,z):(-x,y+1/2,-z+1/2)
+:::::(-x+1/2,-y,-z+1/2):(-x+1/2,y+1/2,z):(x+1/2,y,-z+1/2):(x+1/2,-y+1/2,z)
+::8:h:..2:(x,1/4,1/4):(-x,3/4,1/4):(-x+1/2,3/4,1/4):(x+1/2,1/4,1/4)
+::8:g:..2:(x,0,0):(-x,0,0):(-x+1/2,0,1/2):(x+1/2,0,1/2)
+::8:f:.2.:(0,0,z):(0,1/2,-z+1/2):(1/2,0,-z+1/2):(1/2,1/2,z)
+::8:e:2..:(0,y,0):(0,-y+1/2,1/2):(1/2,-y,1/2):(1/2,y+1/2,0)
+::8:d:-1:(1/4,0,1/4):(1/4,1/2,1/4):(3/4,0,1/4):(3/4,1/2,1/4)
+::8:c:-1:(1/4,1/4,0):(1/4,1/4,1/2):(3/4,3/4,0):(3/4,3/4,1/2)
+::4:b:222:(1/2,0,0):(0,0,1/2)::
+::4:a:222:(0,0,0):(1/2,0,1/2)::
+327:A 2/b 2/a 2/a:::::::
+::16:i:1:(x,y,z):(x,-y+1/2,-z):(-x+1/2,-y,z):(-x+1/2,y+1/2,-z)
+:::::(-x,-y,-z):(-x,y+1/2,z):(x+1/2,y,-z):(x+1/2,-y+1/2,z)
+::8:h:..2:(x,1/4,0):(-x+1/2,3/4,0):(-x,3/4,0):(x+1/2,1/4,0)
+::8:g:..2:(x,0,1/4):(-x+1/2,0,1/4):(-x,0,3/4):(x+1/2,0,3/4)
+::8:f:.2.:(1/4,0,z):(1/4,1/2,-z):(3/4,0,-z):(3/4,1/2,z)
+::8:e:2..:(1/4,y,1/4):(1/4,-y+1/2,3/4):(3/4,-y,3/4):(3/4,y+1/2,1/4)
+::8:d:-1:(0,0,0):(0,1/2,0):(1/2,0,0):(1/2,1/2,0)
+::8:c:-1:(0,1/4,3/4):(0,1/4,1/4):(1/2,3/4,3/4):(1/2,3/4,1/4)
+::4:b:222:(3/4,0,1/4):(1/4,0,3/4)::
+::4:a:222:(1/4,0,1/4):(3/4,0,3/4)::
+328:A 2/c 2/a 2/a:::::::
+::16:i:1:(x,y,z):(x,-y+1/2,-z+1/2):(-x,y,-z):(-x,-y+1/2,z+1/2)
+:::::(-x+1/2,-y+1/2,-z):(-x+1/2,y,z+1/2):(x+1/2,-y+1/2,z):(x+1/2,y,-z+1/2)
+::8:h:..2:(x,1/4,1/4):(-x,1/4,3/4):(-x+1/2,1/4,3/4):(x+1/2,1/4,1/4)
+::8:g:..2:(x,0,0):(-x,0,0):(-x+1/2,1/2,0):(x+1/2,1/2,0)
+::8:f:.2.:(0,y,0):(0,-y+1/2,1/2):(1/2,-y+1/2,0):(1/2,y,1/2)
+::8:e:2..:(0,0,z):(0,1/2,-z+1/2):(1/2,1/2,-z):(1/2,0,z+1/2)
+::8:d:-1:(3/4,1/4,0):(3/4,1/4,1/2):(1/4,1/4,0):(1/4,1/4,1/2)
+::8:c:-1:(3/4,0,1/4):(3/4,1/2,1/4):(1/4,0,3/4):(1/4,1/2,3/4)
+::4:b:222:(1/2,0,0):(0,1/2,0)::
+::4:a:222:(0,0,0):(1/2,1/2,0)::
+329:A 2/c 2/a 2/a:::::::
+::16:i:1:(x,y,z):(x,-y,-z+1/2):(-x+1/2,y,-z):(-x+1/2,-y,z+1/2)
+:::::(-x,-y,-z):(-x,y,z+1/2):(x+1/2,-y,z):(x+1/2,y,-z+1/2)
+::8:h:..2:(x,0,1/4):(-x+1/2,0,3/4):(-x,0,3/4):(x+1/2,0,1/4)
+::8:g:..2:(x,1/4,0):(-x+1/2,1/4,0):(-x,3/4,0):(x+1/2,3/4,0)
+::8:f:.2.:(3/4,y,0):(3/4,-y,1/2):(1/4,-y,0):(1/4,y,1/2)
+::8:e:2..:(3/4,1/4,z):(3/4,3/4,-z+1/2):(1/4,3/4,-z):(1/4,1/4,z+1/2)
+::8:d:-1:(0,0,0):(0,0,1/2):(1/2,0,0):(1/2,0,1/2)
+::8:c:-1:(0,3/4,1/4):(0,1/4,1/4):(1/2,3/4,3/4):(1/2,1/4,3/4)
+::4:b:222:(1/4,1/4,0):(3/4,3/4,0)::
+::4:a:222:(3/4,1/4,0):(1/4,3/4,0)::
+330:B 2/b 2/c 2/b:::::::
+::16:i:1:(x,y,z):(-x+1/2,y,-z+1/2):(x,-y,-z):(-x+1/2,-y,z+1/2)
+:::::(-x+1/2,-y+1/2,-z):(x,-y+1/2,z+1/2):(-x+1/2,y+1/2,z):(x,y+1/2,-z+1/2)
+::8:h:..2:(1/4,y,1/4):(1/4,-y,3/4):(1/4,-y+1/2,3/4):(1/4,y+1/2,1/4)
+::8:g:..2:(0,y,0):(0,-y,0):(1/2,-y+1/2,0):(1/2,y+1/2,0)
+::8:f:.2.:(x,0,0):(-x+1/2,0,1/2):(-x+1/2,1/2,0):(x,1/2,1/2)
+::8:e:2..:(0,0,z):(1/2,0,-z+1/2):(1/2,1/2,-z):(0,1/2,z+1/2)
+::8:d:-1:(1/4,1/4,0):(1/4,1/4,1/2):(1/4,3/4,0):(1/4,3/4,1/2)
+::8:c:-1:(0,1/4,1/4):(1/2,1/4,1/4):(0,3/4,3/4):(1/2,3/4,3/4)
+::4:b:222:(0,1/2,0):(1/2,0,0)::
+::4:a:222:(0,0,0):(1/2,1/2,0)::
+331:B 2/b 2/c 2/b:::::::
+::16:i:1:(x,y,z):(-x,y,-z+1/2):(x,-y+1/2,-z):(-x,-y+1/2,z+1/2)
+:::::(-x,-y,-z):(x,-y,z+1/2):(-x,y+1/2,z):(x,y+1/2,-z+1/2)
+::8:h:..2:(0,y,1/4):(0,-y+1/2,3/4):(0,-y,3/4):(0,y+1/2,1/4)
+::8:g:..2:(1/4,y,0):(1/4,-y+1/2,0):(3/4,-y,0):(3/4,y+1/2,0)
+::8:f:.2.:(x,1/4,0):(-x,1/4,1/2):(-x,3/4,0):(x,3/4,1/2)
+::8:e:2..:(1/4,1/4,z):(3/4,1/4,-z+1/2):(3/4,3/4,-z):(1/4,3/4,z+1/2)
+::8:d:-1:(0,0,0):(0,0,1/2):(0,1/2,0):(0,1/2,1/2)
+::8:c:-1:(3/4,0,1/4):(1/4,0,1/4):(3/4,1/2,3/4):(1/4,1/2,3/4)
+::4:b:222:(1/4,3/4,0):(3/4,1/4,0)::
+::4:a:222:(1/4,1/4,0):(3/4,3/4,0)::
+332:B 2/b 2/a 2/b:::::::
+::16:i:1:(x,y,z):(-x+1/2,y,-z+1/2):(-x,-y,z):(x+1/2,-y,-z+1/2)
+:::::(-x,-y+1/2,-z+1/2):(x+1/2,-y+1/2,z):(x,y+1/2,-z+1/2):(-x+1/2,y+1/2,z)
+::8:h:..2:(1/4,y,1/4):(3/4,-y,1/4):(3/4,-y+1/2,1/4):(1/4,y+1/2,1/4)
+::8:g:..2:(0,y,0):(0,-y,0):(0,-y+1/2,1/2):(0,y+1/2,1/2)
+::8:f:.2.:(0,0,z):(1/2,0,-z+1/2):(0,1/2,-z+1/2):(1/2,1/2,z)
+::8:e:2..:(x,0,0):(-x+1/2,0,1/2):(-x,1/2,1/2):(x+1/2,1/2,0)
+::8:d:-1:(0,3/4,1/4):(1/2,3/4,1/4):(0,1/4,1/4):(1/2,1/4,1/4)
+::8:c:-1:(1/4,3/4,0):(1/4,3/4,1/2):(3/4,1/4,0):(3/4,1/4,1/2)
+::4:b:222:(0,1/2,0):(0,0,1/2)::
+::4:a:222:(0,0,0):(0,1/2,1/2)::
+333:B 2/b 2/a 2/b:::::::
+::16:i:1:(x,y,z):(-x+1/2,y,-z):(-x,-y+1/2,z):(x+1/2,-y+1/2,-z)
+:::::(-x,-y,-z):(x+1/2,-y,z):(x,y+1/2,-z):(-x+1/2,y+1/2,z)
+::8:h:..2:(1/4,y,0):(3/4,-y+1/2,0):(3/4,-y,0):(1/4,y+1/2,0)
+::8:g:..2:(0,y,1/4):(0,-y+1/2,1/4):(0,-y,3/4):(0,y+1/2,3/4)
+::8:f:.2.:(0,3/4,z):(1/2,3/4,-z):(0,1/4,-z):(1/2,1/4,z)
+::8:e:2..:(x,3/4,1/4):(-x+1/2,3/4,3/4):(-x,1/4,3/4):(x+1/2,1/4,1/4)
+::8:d:-1:(0,0,0):(1/2,0,0):(0,1/2,0):(1/2,1/2,0)
+::8:c:-1:(1/4,0,3/4):(1/4,0,1/4):(3/4,1/2,3/4):(3/4,1/2,1/4)
+::4:b:222:(0,1/4,1/4):(0,3/4,3/4)::
+::4:a:222:(0,3/4,1/4):(0,1/4,3/4)::
+334:F 2/m 2/m 2/m:::::::
+::32:p:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+::16:o:..m:(x,y,0):(-x,-y,0):(-x,y,0):(x,-y,0)
+::16:n:.m.:(x,0,z):(-x,0,z):(-x,0,-z):(x,0,-z)
+::16:m:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+::16:l:2..:(x,1/4,1/4):(-x,3/4,1/4):(-x,3/4,3/4):(x,1/4,3/4)
+::16:k:.2.:(1/4,y,1/4):(3/4,-y,1/4):(3/4,-y,3/4):(1/4,y,3/4)
+::16:j:..2:(1/4,1/4,z):(3/4,1/4,-z):(3/4,3/4,-z):(1/4,3/4,z)
+::8:i:mm2:(0,0,z):(0,0,-z)::
+::8:h:m2m:(0,y,0):(0,-y,0)::
+::8:g:2mm:(x,0,0):(-x,0,0)::
+::8:f:222:(1/4,1/4,1/4):(3/4,3/4,3/4)::
+::8:e:..2/m:(1/4,1/4,0):(3/4,1/4,0)::
+::8:d:.2/m.:(1/4,0,1/4):(3/4,0,1/4)::
+::8:c:2/m..:(0,1/4,1/4):(0,3/4,1/4)::
+::4:b:mmm:(0,0,1/2):::
+::4:a:mmm:(0,0,0):::
+335:F 2/d 2/d 2/d:::::::
+::32:h:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(-x+1/4,-y+1/4,-z+1/4):(x+1/4,y+1/4,-z+1/4):(x+1/4,-y+1/4,z+1/4):(-x+1/4,y+1/4,z+1/4)
+::16:g:..2:(0,0,z):(0,0,-z):(1/4,1/4,-z+1/4):(1/4,1/4,z+1/4)
+::16:f:.2.:(0,y,0):(0,-y,0):(1/4,-y+1/4,1/4):(1/4,y+1/4,1/4)
+::16:e:2..:(x,0,0):(-x,0,0):(-x+1/4,1/4,1/4):(x+1/4,1/4,1/4)
+::16:d:-1:(5/8,5/8,5/8):(3/8,3/8,5/8):(3/8,5/8,3/8):(5/8,3/8,3/8)
+::16:c:-1:(1/8,1/8,1/8):(7/8,7/8,1/8):(7/8,1/8,7/8):(1/8,7/8,7/8)
+::8:b:222:(0,0,1/2):(1/4,1/4,3/4)::
+::8:a:222:(0,0,0):(1/4,1/4,1/4)::
+336:F 2/d 2/d 2/d:::::::
+::32:h:1:(x,y,z):(-x+3/4,-y+3/4,z):(-x+3/4,y,-z+3/4):(x,-y+3/4,-z+3/4)
+:::::(-x,-y,-z):(x+1/4,y+1/4,-z):(x+1/4,-y,z+1/4):(-x,y+1/4,z+1/4)
+::16:g:..2:(1/8,1/8,z):(5/8,1/8,-z+3/4):(7/8,7/8,-z):(3/8,7/8,z+1/4)
+::16:f:.2.:(1/8,y,1/8):(5/8,-y+3/4,1/8):(7/8,-y,7/8):(3/8,y+1/4,7/8)
+::16:e:2..:(x,1/8,1/8):(-x+3/4,5/8,1/8):(-x,7/8,7/8):(x+1/4,3/8,7/8)
+::16:d:-1:(1/2,1/2,1/2):(1/4,1/4,1/2):(1/4,1/2,1/4):(1/2,1/4,1/4)
+::16:c:-1:(0,0,0):(3/4,3/4,0):(3/4,0,3/4):(0,3/4,3/4)
+::8:b:222:(1/8,1/8,5/8):(7/8,7/8,3/8)::
+::8:a:222:(1/8,1/8,1/8):(7/8,7/8,7/8)::
+337:I 2/m 2/m 2/m:::::::
+::16:o:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+::8:n:..m:(x,y,0):(-x,-y,0):(-x,y,0):(x,-y,0)
+::8:m:.m.:(x,0,z):(-x,0,z):(-x,0,-z):(x,0,-z)
+::8:l:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+::8:k:-1:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,3/4):(1/4,3/4,3/4)
+::4:j:mm2:(1/2,0,z):(1/2,0,-z)::
+::4:i:mm2:(0,0,z):(0,0,-z)::
+::4:h:m2m:(0,y,1/2):(0,-y,1/2)::
+::4:g:m2m:(0,y,0):(0,-y,0)::
+::4:f:2mm:(x,1/2,0):(-x,1/2,0)::
+::4:e:2mm:(x,0,0):(-x,0,0)::
+::2:d:mmm:(1/2,0,1/2):::
+::2:c:mmm:(1/2,1/2,0):::
+::2:b:mmm:(0,1/2,1/2):::
+::2:a:mmm:(0,0,0):::
+338:I 2/b 2/a 2/m:::::::
+::16:k:1:(x,y,z):(-x,-y,z):(-x+1/2,y+1/2,-z):(x+1/2,-y+1/2,-z)
+:::::(-x,-y,-z):(x,y,-z):(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z)
+::8:j:..m:(x,y,0):(-x,-y,0):(-x+1/2,y+1/2,0):(x+1/2,-y+1/2,0)
+::8:i:..2:(0,1/2,z):(1/2,0,-z):(0,1/2,-z):(1/2,0,z)
+::8:h:..2:(0,0,z):(1/2,1/2,-z):(0,0,-z):(1/2,1/2,z)
+::8:g:.2.:(0,y,1/4):(0,-y,1/4):(0,-y,3/4):(0,y,3/4)
+::8:f:2..:(x,0,1/4):(-x,0,1/4):(-x,0,3/4):(x,0,3/4)
+::8:e:-1:(1/4,1/4,1/4):(3/4,3/4,1/4):(1/4,3/4,3/4):(3/4,1/4,3/4)
+::4:d:..2/m:(1/2,0,0):(0,1/2,0)::
+::4:c:..2/m:(0,0,0):(1/2,1/2,0)::
+::4:b:222:(1/2,0,1/4):(1/2,0,3/4)::
+::4:a:222:(0,0,1/4):(0,0,3/4)::
+339:I 2/m 2/c 2/b:::::::
+::16:k:1:(x,y,z):(x,-y,-z):(-x,-y+1/2,z+1/2):(-x,y+1/2,-z+1/2)
+:::::(-x,-y,-z):(-x,y,z):(x,y+1/2,-z+1/2):(x,-y+1/2,z+1/2)
+::8:j:..m:(0,y,z):(0,-y,-z):(0,-y+1/2,z+1/2):(0,y+1/2,-z+1/2)
+::8:i:..2:(x,0,1/2):(-x,1/2,0):(-x,0,1/2):(x,1/2,0)
+::8:h:..2:(x,0,0):(-x,1/2,1/2):(-x,0,0):(x,1/2,1/2)
+::8:g:.2.:(1/4,0,z):(1/4,0,-z):(3/4,0,-z):(3/4,0,z)
+::8:f:2..:(1/4,y,0):(1/4,-y,0):(3/4,-y,0):(3/4,y,0)
+::8:e:-1:(1/4,1/4,1/4):(1/4,3/4,3/4):(3/4,1/4,3/4):(3/4,3/4,1/4)
+::4:d:..2/m:(0,1/2,0):(0,0,1/2)::
+::4:c:..2/m:(0,0,0):(0,1/2,1/2)::
+::4:b:222:(1/4,1/2,0):(3/4,1/2,0)::
+::4:a:222:(1/4,0,0):(3/4,0,0)::
+340:I 2/c 2/m 2/a:::::::
+::16:k:1:(x,y,z):(-x,y,-z):(x+1/2,-y,-z+1/2):(-x+1/2,-y,z+1/2)
+:::::(-x,-y,-z):(x,-y,z):(-x+1/2,y,z+1/2):(x+1/2,y,-z+1/2)
+::8:j:..m:(x,0,z):(-x,0,-z):(x+1/2,0,-z+1/2):(-x+1/2,0,z+1/2)
+::8:i:..2:(1/2,y,0):(0,-y,1/2):(1/2,-y,0):(0,y,1/2)
+::8:h:..2:(0,y,0):(1/2,-y,1/2):(0,-y,0):(1/2,y,1/2)
+::8:g:.2.:(x,1/4,0):(-x,1/4,0):(-x,3/4,0):(x,3/4,0)
+::8:f:2..:(0,1/4,z):(0,1/4,-z):(0,3/4,-z):(0,3/4,z)
+::8:e:-1:(1/4,1/4,1/4):(3/4,1/4,3/4):(3/4,3/4,1/4):(1/4,3/4,3/4)
+::4:d:..2/m:(0,0,1/2):(1/2,0,0)::
+::4:c:..2/m:(0,0,0):(1/2,0,1/2)::
+::4:b:222:(0,1/4,1/2):(0,3/4,1/2)::
+::4:a:222:(0,1/4,0):(0,3/4,0)::
+341:I 2/b 2/c 2/a:::::::
+::16:f:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(-x,-y,-z):(x+1/2,y,-z+1/2):(x,-y+1/2,z+1/2):(-x+1/2,y+1/2,z)
+::8:e:..2:(0,1/4,z):(0,3/4,-z+1/2):(0,3/4,-z):(0,1/4,z+1/2)
+::8:d:.2.:(1/4,y,0):(1/4,-y,1/2):(3/4,-y,0):(3/4,y,1/2)
+::8:c:2..:(x,0,1/4):(-x+1/2,0,3/4):(-x,0,3/4):(x+1/2,0,1/4)
+::8:b:-1:(1/4,1/4,1/4):(1/4,3/4,3/4):(3/4,3/4,1/4):(3/4,1/4,3/4)
+::8:a:-1:(0,0,0):(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,0)
+342:I 2/c 2/a 2/b:::::::
+::16:f:1:(x,y,z):(-x,-y+1/2,z+1/2):(x+1/2,-y,-z+1/2):(-x+1/2,y+1/2,-z)
+:::::(-x,-y,-z):(x,y+1/2,-z+1/2):(-x+1/2,y,z+1/2):(x+1/2,-y+1/2,z)
+::8:e:..2:(1/4,0,z):(3/4,0,-z+1/2):(3/4,0,-z):(1/4,0,z+1/2)
+::8:d:.2.:(x,1/4,0):(-x,1/4,1/2):(-x,3/4,0):(x,3/4,1/2)
+::8:c:2..:(0,y,3/4):(0,-y+1/2,1/4):(0,-y,1/4):(0,y+1/2,3/4)
+::8:b:-1:(1/4,1/4,3/4):(3/4,1/4,1/4):(3/4,3/4,3/4):(1/4,3/4,1/4)
+::8:a:-1:(0,0,0):(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0)
+343:I 2/m 2/m 2/a:::::::
+::16:j:1:(x,y,z):(-x,-y+1/2,z):(-x,y+1/2,-z):(x,-y,-z)
+:::::(-x,-y,-z):(x,y+1/2,-z):(x,-y+1/2,z):(-x,y,z)
+::8:i:.m.:(x,1/4,z):(-x,1/4,z):(-x,3/4,-z):(x,3/4,-z)
+::8:h:m..:(0,y,z):(0,-y+1/2,z):(0,y+1/2,-z):(0,-y,-z)
+::8:g:.2.:(1/4,y,1/4):(3/4,-y+1/2,1/4):(3/4,-y,3/4):(1/4,y+1/2,3/4)
+::8:f:2..:(x,0,0):(-x,1/2,0):(-x,0,0):(x,1/2,0)
+::4:e:mm2:(0,1/4,z):(0,3/4,-z)::
+::4:d:.2/m.:(1/4,1/4,3/4):(3/4,1/4,3/4)::
+::4:c:.2/m.:(1/4,1/4,1/4):(3/4,1/4,1/4)::
+::4:b:2/m..:(0,0,1/2):(0,1/2,1/2)::
+::4:a:2/m..:(0,0,0):(0,1/2,0)::
+344:I 2/m 2/m 2/b:::::::
+::16:j:1:(x,y,z):(-x+1/2,-y,z):(x+1/2,-y,-z):(-x,y,-z)
+:::::(-x,-y,-z):(x+1/2,y,-z):(-x+1/2,y,z):(x,-y,z)
+::8:i:.m.:(1/4,y,z):(1/4,-y,z):(3/4,-y,-z):(3/4,y,-z)
+::8:h:m..:(x,0,z):(-x+1/2,0,z):(x+1/2,0,-z):(-x,0,-z)
+::8:g:.2.:(x,1/4,3/4):(-x+1/2,3/4,3/4):(-x,3/4,1/4):(x+1/2,1/4,1/4)
+::8:f:2..:(0,y,0):(1/2,-y,0):(0,-y,0):(1/2,y,0)
+::4:e:mm2:(1/4,0,z):(3/4,0,-z)::
+::4:d:.2/m.:(1/4,1/4,1/4):(1/4,3/4,1/4)::
+::4:c:.2/m.:(1/4,1/4,3/4):(1/4,3/4,3/4)::
+::4:b:2/m..:(0,0,1/2):(1/2,0,1/2)::
+::4:a:2/m..:(0,0,0):(1/2,0,0)::
+345:I 2/b 2/m 2/m:::::::
+::16:j:1:(x,y,z):(x,-y,-z+1/2):(-x,-y,z+1/2):(-x,y,-z)
+:::::(-x,-y,-z):(-x,y,z+1/2):(x,y,-z+1/2):(x,-y,z)
+::8:i:.m.:(x,y,1/4):(x,-y,1/4):(-x,-y,3/4):(-x,y,3/4)
+::8:h:m..:(x,0,z):(x,0,-z+1/2):(-x,0,z+1/2):(-x,0,-z)
+::8:g:.2.:(1/4,1/4,z):(1/4,3/4,-z+1/2):(3/4,3/4,-z):(3/4,1/4,z+1/2)
+::8:f:2..:(0,y,0):(0,-y,1/2):(0,-y,0):(0,y,1/2)
+::4:e:mm2:(x,0,1/4):(-x,0,3/4)::
+::4:d:.2/m.:(3/4,1/4,1/4):(3/4,3/4,1/4)::
+::4:c:.2/m.:(1/4,1/4,1/4):(1/4,3/4,1/4)::
+::4:b:2/m..:(1/2,0,0):(1/2,0,1/2)::
+::4:a:2/m..:(0,0,0):(0,0,1/2)::
+346:I 2/c 2/m 2/m:::::::
+::16:j:1:(x,y,z):(x,-y+1/2,-z):(-x,y+1/2,-z):(-x,-y,z)
+:::::(-x,-y,-z):(-x,y+1/2,z):(x,-y+1/2,z):(x,y,-z)
+::8:i:.m.:(x,1/4,z):(x,1/4,-z):(-x,3/4,-z):(-x,3/4,z)
+::8:h:m..:(x,y,0):(x,-y+1/2,0):(-x,y+1/2,0):(-x,-y,0)
+::8:g:.2.:(3/4,y,1/4):(3/4,-y+1/2,3/4):(1/4,-y,3/4):(1/4,y+1/2,1/4)
+::8:f:2..:(0,0,z):(0,1/2,-z):(0,0,-z):(0,1/2,z)
+::4:e:mm2:(x,1/4,0):(-x,3/4,0)::
+::4:d:.2/m.:(1/4,1/4,1/4):(1/4,1/4,3/4)::
+::4:c:.2/m.:(3/4,1/4,1/4):(3/4,1/4,3/4)::
+::4:b:2/m..:(1/2,0,0):(1/2,1/2,0)::
+::4:a:2/m..:(0,0,0):(0,1/2,0)::
+347:I 2/m 2/c 2/m:::::::
+::16:j:1:(x,y,z):(-x+1/2,y,-z):(x+1/2,-y,-z):(-x,-y,z)
+:::::(-x,-y,-z):(x+1/2,-y,z):(-x+1/2,y,z):(x,y,-z)
+::8:i:.m.:(1/4,y,z):(1/4,y,-z):(3/4,-y,-z):(3/4,-y,z)
+::8:h:m..:(x,y,0):(-x+1/2,y,0):(x+1/2,-y,0):(-x,-y,0)
+::8:g:.2.:(x,1/4,1/4):(-x+1/2,1/4,3/4):(-x,3/4,3/4):(x+1/2,3/4,1/4)
+::8:f:2..:(0,0,z):(1/2,0,-z):(0,0,-z):(1/2,0,z)
+::4:e:mm2:(1/4,y,0):(3/4,-y,0)::
+::4:d:.2/m.:(1/4,3/4,1/4):(1/4,3/4,3/4)::
+::4:c:.2/m.:(1/4,1/4,1/4):(1/4,1/4,3/4)::
+::4:b:2/m..:(0,1/2,0):(1/2,1/2,0)::
+::4:a:2/m..:(0,0,0):(1/2,0,0)::
+348:I 2/m 2/a 2/m:::::::
+::16:j:1:(x,y,z):(-x,y,-z+1/2):(-x,-y,z+1/2):(x,-y,-z)
+:::::(-x,-y,-z):(x,-y,z+1/2):(x,y,-z+1/2):(-x,y,z)
+::8:i:.m.:(x,y,1/4):(-x,y,1/4):(-x,-y,3/4):(x,-y,3/4)
+::8:h:m..:(0,y,z):(0,y,-z+1/2):(0,-y,z+1/2):(0,-y,-z)
+::8:g:.2.:(1/4,3/4,z):(3/4,3/4,-z+1/2):(3/4,1/4,-z):(1/4,1/4,z+1/2)
+::8:f:2..:(x,0,0):(-x,0,1/2):(-x,0,0):(x,0,1/2)
+::4:e:mm2:(0,y,1/4):(0,-y,3/4)::
+::4:d:.2/m.:(1/4,1/4,1/4):(3/4,1/4,1/4)::
+::4:c:.2/m.:(1/4,3/4,1/4):(3/4,3/4,1/4)::
+::4:b:2/m..:(0,1/2,0):(0,1/2,1/2)::
+::4:a:2/m..:(0,0,0):(0,0,1/2)::
+349:P 4 :::::::
+::4:d:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+::2:c:2..:(0,1/2,z):(1/2,0,z)::
+::1:b:4..:(1/2,1/2,z):::
+::1:a:4..:(0,0,z):::
+350:P 4sub1 :::::::
+::4:a:1:(x,y,z):(-x,-y,z+1/2):(-y,x,z+1/4):(y,-x,z+3/4)
+351:P 4sub2 :::::::
+::4:d:1:(x,y,z):(-x,-y,z):(-y,x,z+1/2):(y,-x,z+1/2)
+::2:c:2..:(0,1/2,z):(1/2,0,z+1/2)::
+::2:b:2..:(1/2,1/2,z):(1/2,1/2,z+1/2)::
+::2:a:2..:(0,0,z):(0,0,z+1/2)::
+352:P 4sub3 :::::::
+::4:a:1:(x,y,z):(-x,-y,z+1/2):(-y,x,z+3/4):(y,-x,z+1/4)
+353:I 4 :::::::
+::8:c:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+::4:b:2..:(0,1/2,z):(1/2,0,z)::
+::2:a:4..:(0,0,z):::
+354:I 4sub1 :::::::
+::8:b:1:(x,y,z):(-x+1/2,-y+1/2,z+1/2):(-y,x+1/2,z+1/4):(y+1/2,-x,z+3/4)
+::4:a:2..:(0,0,z):(0,1/2,z+1/4)::
+355:P -4 :::::::
+::4:h:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+::2:g:2..:(0,1/2,z):(1/2,0,-z)::
+::2:f:2..:(1/2,1/2,z):(1/2,1/2,-z)::
+::2:e:2..:(0,0,z):(0,0,-z)::
+::1:d:-4..:(1/2,1/2,1/2):::
+::1:c:-4..:(1/2,1/2,0):::
+::1:b:-4..:(0,0,1/2):::
+::1:a:-4..:(0,0,0):::
+356:I -4 :::::::
+::8:g:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+::4:f:2..:(0,1/2,z):(1/2,0,-z)::
+::4:e:2..:(0,0,z):(0,0,-z)::
+::2:d:-4..:(0,1/2,3/4):::
+::2:c:-4..:(0,1/2,1/4):::
+::2:b:-4..:(0,0,1/2):::
+::2:a:-4..:(0,0,0):::
+357:P 4/m :::::::
+::8:l:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z):(-y,x,-z)
+::4:k:m..:(x,y,1/2):(-x,-y,1/2):(-y,x,1/2):(y,-x,1/2)
+::4:j:m..:(x,y,0):(-x,-y,0):(-y,x,0):(y,-x,0)
+::4:i:2..:(0,1/2,z):(1/2,0,z):(0,1/2,-z):(1/2,0,-z)
+::2:h:4..:(1/2,1/2,z):(1/2,1/2,-z)::
+::2:g:4..:(0,0,z):(0,0,-z)::
+::2:f:2/m..:(0,1/2,1/2):(1/2,0,1/2)::
+::2:e:2/m..:(0,1/2,0):(1/2,0,0)::
+::1:d:4/m..:(1/2,1/2,1/2):::
+::1:c:4/m..:(1/2,1/2,0):::
+::1:b:4/m..:(0,0,1/2):::
+::1:a:4/m..:(0,0,0):::
+358:P 4sub2/m :::::::
+::8:k:1:(x,y,z):(-x,-y,z):(-y,x,z+1/2):(y,-x,z+1/2)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z+1/2):(-y,x,-z+1/2)
+::4:j:m..:(x,y,0):(-x,-y,0):(-y,x,1/2):(y,-x,1/2)
+::4:i:2..:(0,1/2,z):(1/2,0,z+1/2):(0,1/2,-z):(1/2,0,-z+1/2)
+::4:h:2..:(1/2,1/2,z):(1/2,1/2,z+1/2):(1/2,1/2,-z):(1/2,1/2,-z+1/2)
+::4:g:2..:(0,0,z):(0,0,z+1/2):(0,0,-z):(0,0,-z+1/2)
+::2:f:-4..:(1/2,1/2,1/4):(1/2,1/2,3/4)::
+::2:e:-4..:(0,0,1/4):(0,0,3/4)::
+::2:d:2/m..:(0,1/2,1/2):(1/2,0,0)::
+::2:c:2/m..:(0,1/2,0):(1/2,0,1/2)::
+::2:b:2/m..:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:a:2/m..:(0,0,0):(0,0,1/2)::
+359:P 4/n :::::::
+::8:g:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z):(y+1/2,-x+1/2,z)
+:::::(-x+1/2,-y+1/2,-z):(x+1/2,y+1/2,-z):(y,-x,-z):(-y,x,-z)
+::4:f:2..:(0,0,z):(1/2,1/2,z):(1/2,1/2,-z):(0,0,-z)
+::4:e:-1:(1/4,1/4,1/2):(3/4,3/4,1/2):(1/4,3/4,1/2):(3/4,1/4,1/2)
+::4:d:-1:(1/4,1/4,0):(3/4,3/4,0):(1/4,3/4,0):(3/4,1/4,0)
+::2:c:4..:(0,1/2,z):(1/2,0,-z)::
+::2:b:-4..:(0,0,1/2):(1/2,1/2,1/2)::
+::2:a:-4..:(0,0,0):(1/2,1/2,0)::
+360:P 4/n :::::::
+::8:g:1:(x,y,z):(-x+1/2,-y+1/2,z):(-y+1/2,x,z):(y,-x+1/2,z)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(y+1/2,-x,-z):(-y,x+1/2,-z)
+::4:f:2..:(1/4,3/4,z):(3/4,1/4,z):(3/4,1/4,-z):(1/4,3/4,-z)
+::4:e:-1:(0,0,1/2):(1/2,1/2,1/2):(1/2,0,1/2):(0,1/2,1/2)
+::4:d:-1:(0,0,0):(1/2,1/2,0):(1/2,0,0):(0,1/2,0)
+::2:c:4..:(1/4,1/4,z):(3/4,3/4,-z)::
+::2:b:-4..:(1/4,3/4,1/2):(3/4,1/4,1/2)::
+::2:a:-4..:(1/4,3/4,0):(3/4,1/4,0)::
+361:P 4sub2/n :::::::
+::8:g:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z+1/2):(y+1/2,-x+1/2,z+1/2)
+:::::(-x+1/2,-y+1/2,-z+1/2):(x+1/2,y+1/2,-z+1/2):(y,-x,-z):(-y,x,-z)
+::4:f:2..:(0,0,z):(1/2,1/2,z+1/2):(1/2,1/2,-z+1/2):(0,0,-z)
+::4:e:2..:(0,1/2,z):(0,1/2,z+1/2):(1/2,0,-z+1/2):(1/2,0,-z)
+::4:d:-1:(1/4,1/4,3/4):(3/4,3/4,3/4):(1/4,3/4,1/4):(3/4,1/4,1/4)
+::4:c:-1:(1/4,1/4,1/4):(3/4,3/4,1/4):(1/4,3/4,3/4):(3/4,1/4,3/4)
+::2:b:-4..:(0,0,1/2):(1/2,1/2,0)::
+::2:a:-4..:(0,0,0):(1/2,1/2,1/2)::
+362:P 4sub2/n :::::::
+::8:g:1:(x,y,z):(-x+1/2,-y+1/2,z):(-y,x+1/2,z+1/2):(y+1/2,-x,z+1/2)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(y,-x+1/2,-z+1/2):(-y+1/2,x,-z+1/2)
+::4:f:2..:(1/4,1/4,z):(3/4,3/4,z+1/2):(3/4,3/4,-z):(1/4,1/4,-z+1/2)
+::4:e:2..:(3/4,1/4,z):(3/4,1/4,z+1/2):(1/4,3/4,-z):(1/4,3/4,-z+1/2)
+::4:d:-1:(0,0,1/2):(1/2,1/2,1/2):(0,1/2,0):(1/2,0,0)
+::4:c:-1:(0,0,0):(1/2,1/2,0):(0,1/2,1/2):(1/2,0,1/2)
+::2:b:-4..:(1/4,1/4,3/4):(3/4,3/4,1/4)::
+::2:a:-4..:(1/4,1/4,1/4):(3/4,3/4,3/4)::
+363:I 4/m :::::::
+::16:i:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z):(-y,x,-z)
+::8:h:m..:(x,y,0):(-x,-y,0):(-y,x,0):(y,-x,0)
+::8:g:2..:(0,1/2,z):(1/2,0,z):(0,1/2,-z):(1/2,0,-z)
+::8:f:-1:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,1/4):(1/4,3/4,1/4)
+::4:e:4..:(0,0,z):(0,0,-z)::
+::4:d:-4..:(0,1/2,1/4):(1/2,0,1/4)::
+::4:c:2/m..:(0,1/2,0):(1/2,0,0)::
+::2:b:4/m..:(0,0,1/2):::
+::2:a:4/m..:(0,0,0):::
+364:I 4sub1/a :::::::
+::16:f:1:(x,y,z):(-x+1/2,-y+1/2,z+1/2):(-y,x+1/2,z+1/4):(y+1/2,-x,z+3/4)
+:::::(-x,-y+1/2,-z+1/4):(x+1/2,y,-z+3/4):(y,-x,-z):(-y+1/2,x+1/2,-z+1/2)
+::8:e:2..:(0,0,z):(0,1/2,z+1/4):(0,1/2,-z+1/4):(0,0,-z)
+::8:d:-1:(0,1/4,5/8):(1/2,1/4,1/8):(3/4,1/2,7/8):(3/4,0,3/8)
+::8:c:-1:(0,1/4,1/8):(1/2,1/4,5/8):(3/4,1/2,3/8):(3/4,0,7/8)
+::4:b:-4..:(0,0,1/2):(0,1/2,3/4)::
+::4:a:-4..:(0,0,0):(0,1/2,1/4)::
+365:I 4sub1/a :::::::
+::16:f:1:(x,y,z):(-x+1/2,-y,z+1/2):(-y+3/4,x+1/4,z+1/4):(y+3/4,-x+3/4,z+3/4)
+:::::(-x,-y,-z):(x+1/2,y,-z+1/2):(y+1/4,-x+3/4,-z+3/4):(-y+1/4,x+1/4,-z+1/4)
+::8:e:2..:(0,1/4,z):(1/2,1/4,z+1/4):(0,3/4,-z):(1/2,3/4,-z+3/4)
+::8:d:-1:(0,0,1/2):(1/2,0,0):(3/4,1/4,3/4):(3/4,3/4,1/4)
+::8:c:-1:(0,0,0):(1/2,0,1/2):(3/4,1/4,1/4):(3/4,3/4,3/4)
+::4:b:-4..:(0,1/4,5/8):(1/2,1/4,7/8)::
+::4:a:-4..:(0,1/4,1/8):(1/2,1/4,3/8)::
+366:P 4 2 2:::::::
+::8:p:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x,y,-z):(x,-y,-z):(y,x,-z):(-y,-x,-z)
+::4:o:.2.:(x,1/2,0):(-x,1/2,0):(1/2,x,0):(1/2,-x,0)
+::4:n:.2.:(x,0,1/2):(-x,0,1/2):(0,x,1/2):(0,-x,1/2)
+::4:m:.2.:(x,1/2,1/2):(-x,1/2,1/2):(1/2,x,1/2):(1/2,-x,1/2)
+::4:l:.2.:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+::4:k:..2:(x,x,1/2):(-x,-x,1/2):(-x,x,1/2):(x,-x,1/2)
+::4:j:..2:(x,x,0):(-x,-x,0):(-x,x,0):(x,-x,0)
+::4:i:2..:(0,1/2,z):(1/2,0,z):(0,1/2,-z):(1/2,0,-z)
+::2:h:4..:(1/2,1/2,z):(1/2,1/2,-z)::
+::2:g:4..:(0,0,z):(0,0,-z)::
+::2:f:222.:(1/2,0,1/2):(0,1/2,1/2)::
+::2:e:222.:(1/2,0,0):(0,1/2,0)::
+::1:d:422:(1/2,1/2,1/2):::
+::1:c:422:(1/2,1/2,0):::
+::1:b:422:(0,0,1/2):::
+::1:a:422:(0,0,0):::
+367:P 4 2sub1 2:::::::
+::8:g:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z):(y+1/2,-x+1/2,z)
+:::::(-x+1/2,y+1/2,-z):(x+1/2,-y+1/2,-z):(y,x,-z):(-y,-x,-z)
+::4:f:..2:(x,x,1/2):(-x,-x,1/2):(-x+1/2,x+1/2,1/2):(x+1/2,-x+1/2,1/2)
+::4:e:..2:(x,x,0):(-x,-x,0):(-x+1/2,x+1/2,0):(x+1/2,-x+1/2,0)
+::4:d:2..:(0,0,z):(1/2,1/2,z):(1/2,1/2,-z):(0,0,-z)
+::2:c:4..:(0,1/2,z):(1/2,0,-z)::
+::2:b:2.22:(0,0,1/2):(1/2,1/2,1/2)::
+::2:a:2.22:(0,0,0):(1/2,1/2,0)::
+368:P 4sub1 2 2:::::::
+::8:d:1:(x,y,z):(-x,-y,z+1/2):(-y,x,z+1/4):(y,-x,z+3/4)
+:::::(-x,y,-z):(x,-y,-z+1/2):(y,x,-z+3/4):(-y,-x,-z+1/4)
+::4:c:..2:(x,x,3/8):(-x,-x,7/8):(-x,x,5/8):(x,-x,1/8)
+::4:b:.2.:(1/2,y,0):(1/2,-y,1/2):(-y,1/2,1/4):(y,1/2,3/4)
+::4:a:.2.:(0,y,0):(0,-y,1/2):(-y,0,1/4):(y,0,3/4)
+369:P 4sub1 2sub1 2:::::::
+::8:b:1:(x,y,z):(-x,-y,z+1/2):(-y+1/2,x+1/2,z+1/4):(y+1/2,-x+1/2,z+3/4)
+:::::(-x+1/2,y+1/2,-z+1/4):(x+1/2,-y+1/2,-z+3/4):(y,x,-z):(-y,-x,-z+1/2)
+::4:a:..2:(x,x,0):(-x,-x,1/2):(-x+1/2,x+1/2,1/4):(x+1/2,-x+1/2,3/4)
+370:P 4sub2 2 2:::::::
+::8:p:1:(x,y,z):(-x,-y,z):(-y,x,z+1/2):(y,-x,z+1/2)
+:::::(-x,y,-z):(x,-y,-z):(y,x,-z+1/2):(-y,-x,-z+1/2)
+::4:o:..2:(x,x,3/4):(-x,-x,3/4):(-x,x,1/4):(x,-x,1/4)
+::4:n:..2:(x,x,1/4):(-x,-x,1/4):(-x,x,3/4):(x,-x,3/4)
+::4:m:.2.:(x,1/2,0):(-x,1/2,0):(1/2,x,1/2):(1/2,-x,1/2)
+::4:l:.2.:(x,0,1/2):(-x,0,1/2):(0,x,0):(0,-x,0)
+::4:k:.2.:(x,1/2,1/2):(-x,1/2,1/2):(1/2,x,0):(1/2,-x,0)
+::4:j:.2.:(x,0,0):(-x,0,0):(0,x,1/2):(0,-x,1/2)
+::4:i:2..:(0,1/2,z):(1/2,0,z+1/2):(0,1/2,-z):(1/2,0,-z+1/2)
+::4:h:2..:(1/2,1/2,z):(1/2,1/2,z+1/2):(1/2,1/2,-z):(1/2,1/2,-z+1/2)
+::4:g:2..:(0,0,z):(0,0,z+1/2):(0,0,-z):(0,0,-z+1/2)
+::2:f:2.22:(1/2,1/2,1/4):(1/2,1/2,3/4)::
+::2:e:2.22:(0,0,1/4):(0,0,3/4)::
+::2:d:222.:(0,1/2,1/2):(1/2,0,0)::
+::2:c:222.:(0,1/2,0):(1/2,0,1/2)::
+::2:b:222.:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:a:222.:(0,0,0):(0,0,1/2)::
+371:P 4sub2 2sub1 2:::::::
+::8:g:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z+1/2):(y+1/2,-x+1/2,z+1/2)
+:::::(-x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z+1/2):(y,x,-z):(-y,-x,-z)
+::4:f:..2:(x,x,1/2):(-x,-x,1/2):(-x+1/2,x+1/2,0):(x+1/2,-x+1/2,0)
+::4:e:..2:(x,x,0):(-x,-x,0):(-x+1/2,x+1/2,1/2):(x+1/2,-x+1/2,1/2)
+::4:d:2..:(0,1/2,z):(0,1/2,z+1/2):(1/2,0,-z+1/2):(1/2,0,-z)
+::4:c:2..:(0,0,z):(1/2,1/2,z+1/2):(1/2,1/2,-z+1/2):(0,0,-z)
+::2:b:2.22:(0,0,1/2):(1/2,1/2,0)::
+::2:a:2.22:(0,0,0):(1/2,1/2,1/2)::
+372:P 4sub3 2 2:::::::
+::8:d:1:(x,y,z):(-x,-y,z+1/2):(-y,x,z+3/4):(y,-x,z+1/4)
+:::::(-x,y,-z):(x,-y,-z+1/2):(y,x,-z+1/4):(-y,-x,-z+3/4)
+::4:c:..2:(x,x,5/8):(-x,-x,1/8):(-x,x,3/8):(x,-x,7/8)
+::4:b:.2.:(1/2,y,0):(1/2,-y,1/2):(-y,1/2,3/4):(y,1/2,1/4)
+::4:a:.2.:(0,y,0):(0,-y,1/2):(-y,0,3/4):(y,0,1/4)
+373:P 4sub3 2sub1 2:::::::
+::8:b:1:(x,y,z):(-x,-y,z+1/2):(-y+1/2,x+1/2,z+3/4):(y+1/2,-x+1/2,z+1/4)
+:::::(-x+1/2,y+1/2,-z+3/4):(x+1/2,-y+1/2,-z+1/4):(y,x,-z):(-y,-x,-z+1/2)
+::4:a:..2:(x,x,0):(-x,-x,1/2):(-x+1/2,x+1/2,3/4):(x+1/2,-x+1/2,1/4)
+374:I 4 2 2:::::::
+::16:k:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x,y,-z):(x,-y,-z):(y,x,-z):(-y,-x,-z)
+::8:j:..2:(x,x+1/2,1/4):(-x,-x+1/2,1/4):(-x+1/2,x,1/4):(x+1/2,-x,1/4)
+::8:i:.2.:(x,0,1/2):(-x,0,1/2):(0,x,1/2):(0,-x,1/2)
+::8:h:.2.:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+::8:g:..2:(x,x,0):(-x,-x,0):(-x,x,0):(x,-x,0)
+::8:f:2..:(0,1/2,z):(1/2,0,z):(0,1/2,-z):(1/2,0,-z)
+::4:e:4..:(0,0,z):(0,0,-z)::
+::4:d:2.22:(0,1/2,1/4):(1/2,0,1/4)::
+::4:c:222.:(0,1/2,0):(1/2,0,0)::
+::2:b:422:(0,0,1/2):::
+::2:a:422:(0,0,0):::
+375:I 4sub1 2 2:::::::
+::16:g:1:(x,y,z):(-x+1/2,-y+1/2,z+1/2):(-y,x+1/2,z+1/4):(y+1/2,-x,z+3/4)
+:::::(-x+1/2,y,-z+3/4):(x,-y+1/2,-z+1/4):(y+1/2,x+1/2,-z+1/2):(-y,-x,-z)
+::8:f:.2.:(x,1/4,1/8):(-x+1/2,1/4,5/8):(3/4,x+1/2,3/8):(3/4,-x,7/8)
+::8:e:..2:(x,-x,0):(-x+1/2,x+1/2,1/2):(x,x+1/2,1/4):(-x+1/2,-x,3/4)
+::8:d:..2:(x,x,0):(-x+1/2,-x+1/2,1/2):(-x,x+1/2,1/4):(x+1/2,-x,3/4)
+::8:c:2..:(0,0,z):(0,1/2,z+1/4):(1/2,0,-z+3/4):(1/2,1/2,-z+1/2)
+::4:b:2.22:(0,0,1/2):(0,1/2,3/4)::
+::4:a:2.22:(0,0,0):(0,1/2,1/4)::
+376:P 4 m m:::::::
+::8:g:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(x,-y,z):(-x,y,z):(-y,-x,z):(y,x,z)
+::4:f:.m.:(x,1/2,z):(-x,1/2,z):(1/2,x,z):(1/2,-x,z)
+::4:e:.m.:(x,0,z):(-x,0,z):(0,x,z):(0,-x,z)
+::4:d:..m:(x,x,z):(-x,-x,z):(-x,x,z):(x,-x,z)
+::2:c:2mm.:(1/2,0,z):(0,1/2,z)::
+::1:b:4mm:(1/2,1/2,z):::
+::1:a:4mm:(0,0,z):::
+377:P 4 b m:::::::
+::8:d:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z):(-y+1/2,-x+1/2,z):(y+1/2,x+1/2,z)
+::4:c:..m:(x,x+1/2,z):(-x,-x+1/2,z):(-x+1/2,x,z):(x+1/2,-x,z)
+::2:b:2.mm:(1/2,0,z):(0,1/2,z)::
+::2:a:4..:(0,0,z):(1/2,1/2,z)::
+378:P 4sub2 c m:::::::
+::8:e:1:(x,y,z):(-x,-y,z):(-y,x,z+1/2):(y,-x,z+1/2)
+:::::(x,-y,z+1/2):(-x,y,z+1/2):(-y,-x,z):(y,x,z)
+::4:d:..m:(x,x,z):(-x,-x,z):(-x,x,z+1/2):(x,-x,z+1/2)
+::4:c:2..:(0,1/2,z):(1/2,0,z+1/2):(0,1/2,z+1/2):(1/2,0,z)
+::2:b:2.mm:(1/2,1/2,z):(1/2,1/2,z+1/2)::
+::2:a:2.mm:(0,0,z):(0,0,z+1/2)::
+379:P 4sub2 n m:::::::
+::8:d:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z+1/2):(y+1/2,-x+1/2,z+1/2)
+:::::(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2):(-y,-x,z):(y,x,z)
+::4:c:..m:(x,x,z):(-x,-x,z):(-x+1/2,x+1/2,z+1/2):(x+1/2,-x+1/2,z+1/2)
+::4:b:2..:(0,1/2,z):(0,1/2,z+1/2):(1/2,0,z+1/2):(1/2,0,z)
+::2:a:2.mm:(0,0,z):(1/2,1/2,z+1/2)::
+380:P 4 c c:::::::
+::8:d:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(x,-y,z+1/2):(-x,y,z+1/2):(-y,-x,z+1/2):(y,x,z+1/2)
+::4:c:2..:(0,1/2,z):(1/2,0,z):(0,1/2,z+1/2):(1/2,0,z+1/2)
+::2:b:4..:(1/2,1/2,z):(1/2,1/2,z+1/2)::
+::2:a:4..:(0,0,z):(0,0,z+1/2)::
+381:P 4 n c:::::::
+::8:c:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2):(-y+1/2,-x+1/2,z+1/2):(y+1/2,x+1/2,z+1/2)
+::4:b:2..:(0,1/2,z):(1/2,0,z):(1/2,0,z+1/2):(0,1/2,z+1/2)
+::2:a:4..:(0,0,z):(1/2,1/2,z+1/2)::
+382:P 4sub2 m c:::::::
+::8:f:1:(x,y,z):(-x,-y,z):(-y,x,z+1/2):(y,-x,z+1/2)
+:::::(x,-y,z):(-x,y,z):(-y,-x,z+1/2):(y,x,z+1/2)
+::4:e:.m.:(x,1/2,z):(-x,1/2,z):(1/2,x,z+1/2):(1/2,-x,z+1/2)
+::4:d:.m.:(x,0,z):(-x,0,z):(0,x,z+1/2):(0,-x,z+1/2)
+::2:c:2mm.:(0,1/2,z):(1/2,0,z+1/2)::
+::2:b:2mm.:(1/2,1/2,z):(1/2,1/2,z+1/2)::
+::2:a:2mm.:(0,0,z):(0,0,z+1/2)::
+383:P 4sub2 b c:::::::
+::8:c:1:(x,y,z):(-x,-y,z):(-y,x,z+1/2):(y,-x,z+1/2)
+:::::(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z):(-y+1/2,-x+1/2,z+1/2):(y+1/2,x+1/2,z+1/2)
+::4:b:2..:(0,1/2,z):(1/2,0,z+1/2):(1/2,0,z):(0,1/2,z+1/2)
+::4:a:2..:(0,0,z):(0,0,z+1/2):(1/2,1/2,z):(1/2,1/2,z+1/2)
+384:I 4 m m:::::::
+::16:e:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(x,-y,z):(-x,y,z):(-y,-x,z):(y,x,z)
+::8:d:.m.:(x,0,z):(-x,0,z):(0,x,z):(0,-x,z)
+::8:c:..m:(x,x,z):(-x,-x,z):(-x,x,z):(x,-x,z)
+::4:b:2mm.:(0,1/2,z):(1/2,0,z)::
+::2:a:4mm:(0,0,z):::
+385:I 4 c m:::::::
+::16:d:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(x,-y,z+1/2):(-x,y,z+1/2):(-y,-x,z+1/2):(y,x,z+1/2)
+::8:c:..m:(x,x+1/2,z):(-x,-x+1/2,z):(-x+1/2,x,z):(x+1/2,-x,z)
+::4:b:2.mm:(1/2,0,z):(0,1/2,z)::
+::4:a:4..:(0,0,z):(0,0,z+1/2)::
+386:I 4sub1 m d:::::::
+::16:c:1:(x,y,z):(-x+1/2,-y+1/2,z+1/2):(-y,x+1/2,z+1/4):(y+1/2,-x,z+3/4)
+:::::(x,-y,z):(-x+1/2,y+1/2,z+1/2):(-y,-x+1/2,z+1/4):(y+1/2,x,z+3/4)
+::8:b:.m.:(0,y,z):(1/2,-y+1/2,z+1/2):(-y,1/2,z+1/4):(y+1/2,0,z+3/4)
+::4:a:2mm.:(0,0,z):(0,1/2,z+1/4)::
+387:I 4sub1 c d:::::::
+::16:b:1:(x,y,z):(-x+1/2,-y+1/2,z+1/2):(-y,x+1/2,z+1/4):(y+1/2,-x,z+3/4)
+:::::(x,-y,z+1/2):(-x+1/2,y+1/2,z):(-y,-x+1/2,z+3/4):(y+1/2,x,z+1/4)
+::8:a:2..:(0,0,z):(0,1/2,z+1/4):(0,0,z+1/2):(0,1/2,z+3/4)
+388:P -4 2 m:::::::
+::8:o:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(-x,y,-z):(x,-y,-z):(-y,-x,z):(y,x,z)
+::4:n:..m:(x,x,z):(-x,-x,z):(x,-x,-z):(-x,x,-z)
+::4:m:2..:(0,1/2,z):(1/2,0,-z):(0,1/2,-z):(1/2,0,z)
+::4:l:.2.:(x,1/2,0):(-x,1/2,0):(1/2,-x,0):(1/2,x,0)
+::4:k:.2.:(x,0,1/2):(-x,0,1/2):(0,-x,1/2):(0,x,1/2)
+::4:j:.2.:(x,1/2,1/2):(-x,1/2,1/2):(1/2,-x,1/2):(1/2,x,1/2)
+::4:i:.2.:(x,0,0):(-x,0,0):(0,-x,0):(0,x,0)
+::2:h:2.mm:(1/2,1/2,z):(1/2,1/2,-z)::
+::2:g:2.mm:(0,0,z):(0,0,-z)::
+::2:f:222.:(1/2,0,1/2):(0,1/2,1/2)::
+::2:e:222.:(1/2,0,0):(0,1/2,0)::
+::1:d:-42m:(1/2,1/2,0):::
+::1:c:-42m:(0,0,1/2):::
+::1:b:-42m:(1/2,1/2,1/2):::
+::1:a:-42m:(0,0,0):::
+389:P -4 2 c:::::::
+::8:n:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(-x,y,-z+1/2):(x,-y,-z+1/2):(-y,-x,z+1/2):(y,x,z+1/2)
+::4:m:2..:(0,1/2,z):(1/2,0,-z):(0,1/2,-z+1/2):(1/2,0,z+1/2)
+::4:l:2..:(1/2,1/2,z):(1/2,1/2,-z):(1/2,1/2,-z+1/2):(1/2,1/2,z+1/2)
+::4:k:2..:(0,0,z):(0,0,-z):(0,0,-z+1/2):(0,0,z+1/2)
+::4:j:.2.:(0,y,1/4):(0,-y,1/4):(y,0,3/4):(-y,0,3/4)
+::4:i:.2.:(x,1/2,1/4):(-x,1/2,1/4):(1/2,-x,3/4):(1/2,x,3/4)
+::4:h:.2.:(1/2,y,1/4):(1/2,-y,1/4):(y,1/2,3/4):(-y,1/2,3/4)
+::4:g:.2.:(x,0,1/4):(-x,0,1/4):(0,-x,3/4):(0,x,3/4)
+::2:f:-4..:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:e:-4..:(0,0,0):(0,0,1/2)::
+::2:d:222.:(0,1/2,1/4):(1/2,0,3/4)::
+::2:c:222.:(1/2,1/2,1/4):(1/2,1/2,3/4)::
+::2:b:222.:(1/2,0,1/4):(0,1/2,3/4)::
+::2:a:222.:(0,0,1/4):(0,0,3/4)::
+390:P -4 2sub1 m:::::::
+::8:f:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(-x+1/2,y+1/2,-z):(x+1/2,-y+1/2,-z):(-y+1/2,-x+1/2,z):(y+1/2,x+1/2,z)
+::4:e:..m:(x,x+1/2,z):(-x,-x+1/2,z):(x+1/2,-x,-z):(-x+1/2,x,-z)
+::4:d:2..:(0,0,z):(0,0,-z):(1/2,1/2,-z):(1/2,1/2,z)
+::2:c:2.mm:(0,1/2,z):(1/2,0,-z)::
+::2:b:-4..:(0,0,1/2):(1/2,1/2,1/2)::
+::2:a:-4..:(0,0,0):(1/2,1/2,0)::
+391:P -4 2sub1 c:::::::
+::8:e:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(-x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z+1/2):(-y+1/2,-x+1/2,z+1/2):(y+1/2,x+1/2,z+1/2)
+::4:d:2..:(0,1/2,z):(1/2,0,-z):(1/2,0,-z+1/2):(0,1/2,z+1/2)
+::4:c:2..:(0,0,z):(0,0,-z):(1/2,1/2,-z+1/2):(1/2,1/2,z+1/2)
+::2:b:-4..:(0,0,1/2):(1/2,1/2,0)::
+::2:a:-4..:(0,0,0):(1/2,1/2,1/2)::
+392:P -4 m 2:::::::
+::8:l:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z):(-x,y,z):(y,x,-z):(-y,-x,-z)
+::4:k:.m.:(x,1/2,z):(-x,1/2,z):(1/2,-x,-z):(1/2,x,-z)
+::4:j:.m.:(x,0,z):(-x,0,z):(0,-x,-z):(0,x,-z)
+::4:i:..2:(x,x,1/2):(-x,-x,1/2):(x,-x,1/2):(-x,x,1/2)
+::4:h:..2:(x,x,0):(-x,-x,0):(x,-x,0):(-x,x,0)
+::2:g:2mm.:(0,1/2,z):(1/2,0,-z)::
+::2:f:2mm.:(1/2,1/2,z):(1/2,1/2,-z)::
+::2:e:2mm.:(0,0,z):(0,0,-z)::
+::1:d:-4m2:(0,0,1/2):::
+::1:c:-4m2:(1/2,1/2,1/2):::
+::1:b:-4m2:(1/2,1/2,0):::
+::1:a:-4m2:(0,0,0):::
+393:P -4 c 2:::::::
+::8:j:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z+1/2):(-x,y,z+1/2):(y,x,-z+1/2):(-y,-x,-z+1/2)
+::4:i:2..:(0,1/2,z):(1/2,0,-z):(0,1/2,z+1/2):(1/2,0,-z+1/2)
+::4:h:2..:(1/2,1/2,z):(1/2,1/2,-z):(1/2,1/2,z+1/2):(1/2,1/2,-z+1/2)
+::4:g:2..:(0,0,z):(0,0,-z):(0,0,z+1/2):(0,0,-z+1/2)
+::4:f:..2:(x,x,3/4):(-x,-x,3/4):(x,-x,1/4):(-x,x,1/4)
+::4:e:..2:(x,x,1/4):(-x,-x,1/4):(x,-x,3/4):(-x,x,3/4)
+::2:d:-4..:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:c:-4..:(0,0,0):(0,0,1/2)::
+::2:b:2.22:(1/2,1/2,1/4):(1/2,1/2,3/4)::
+::2:a:2.22:(0,0,1/4):(0,0,3/4)::
+394:P -4 b 2:::::::
+::8:i:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z):(y+1/2,x+1/2,-z):(-y+1/2,-x+1/2,-z)
+::4:h:..2:(x,x+1/2,1/2):(-x,-x+1/2,1/2):(x+1/2,-x,1/2):(-x+1/2,x,1/2)
+::4:g:..2:(x,x+1/2,0):(-x,-x+1/2,0):(x+1/2,-x,0):(-x+1/2,x,0)
+::4:f:2..:(0,1/2,z):(1/2,0,-z):(1/2,0,z):(0,1/2,-z)
+::4:e:2..:(0,0,z):(0,0,-z):(1/2,1/2,z):(1/2,1/2,-z)
+::2:d:2.22:(0,1/2,1/2):(1/2,0,1/2)::
+::2:c:2.22:(0,1/2,0):(1/2,0,0)::
+::2:b:-4..:(0,0,1/2):(1/2,1/2,1/2)::
+::2:a:-4..:(0,0,0):(1/2,1/2,0)::
+395:P -4 n 2:::::::
+::8:i:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2):(y+1/2,x+1/2,-z+1/2):(-y+1/2,-x+1/2,-z+1/2)
+::4:h:2..:(0,1/2,z):(1/2,0,-z):(1/2,0,z+1/2):(0,1/2,-z+1/2)
+::4:g:..2:(x,x+1/2,1/4):(-x,-x+1/2,1/4):(x+1/2,-x,3/4):(-x+1/2,x,3/4)
+::4:f:..2:(x,-x+1/2,1/4):(-x,x+1/2,1/4):(-x+1/2,-x,3/4):(x+1/2,x,3/4)
+::4:e:2..:(0,0,z):(0,0,-z):(1/2,1/2,z+1/2):(1/2,1/2,-z+1/2)
+::2:d:2.22:(0,1/2,3/4):(1/2,0,1/4)::
+::2:c:2.22:(0,1/2,1/4):(1/2,0,3/4)::
+::2:b:-4..:(0,0,1/2):(1/2,1/2,0)::
+::2:a:-4..:(0,0,0):(1/2,1/2,1/2)::
+396:I -4 m 2:::::::
+::16:j:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z):(-x,y,z):(y,x,-z):(-y,-x,-z)
+::8:i:.m.:(x,0,z):(-x,0,z):(0,-x,-z):(0,x,-z)
+::8:h:..2:(x,x+1/2,1/4):(-x,-x+1/2,1/4):(x+1/2,-x,3/4):(-x+1/2,x,3/4)
+::8:g:..2:(x,x,0):(-x,-x,0):(x,-x,0):(-x,x,0)
+::4:f:2mm.:(0,1/2,z):(1/2,0,-z)::
+::4:e:2mm.:(0,0,z):(0,0,-z)::
+::2:d:-4m2:(0,1/2,3/4):::
+::2:c:-4m2:(0,1/2,1/4):::
+::2:b:-4m2:(0,0,1/2):::
+::2:a:-4m2:(0,0,0):::
+397:I -4 c 2:::::::
+::16:i:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z+1/2):(-x,y,z+1/2):(y,x,-z+1/2):(-y,-x,-z+1/2)
+::8:h:..2:(x,x+1/2,0):(-x,-x+1/2,0):(x+1/2,-x,0):(-x+1/2,x,0)
+::8:g:2..:(0,1/2,z):(1/2,0,-z):(0,1/2,z+1/2):(1/2,0,-z+1/2)
+::8:f:2..:(0,0,z):(0,0,-z):(0,0,z+1/2):(0,0,-z+1/2)
+::8:e:..2:(x,x,1/4):(-x,-x,1/4):(x,-x,3/4):(-x,x,3/4)
+::4:d:2.22:(0,1/2,0):(1/2,0,0)::
+::4:c:-4..:(0,1/2,1/4):(0,1/2,3/4)::
+::4:b:-4..:(0,0,0):(0,0,1/2)::
+::4:a:2.22:(0,0,1/4):(0,0,3/4)::
+398:I -4 2 m:::::::
+::16:j:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(-x,y,-z):(x,-y,-z):(-y,-x,z):(y,x,z)
+::8:i:..m:(x,x,z):(-x,-x,z):(x,-x,-z):(-x,x,-z)
+::8:h:2..:(0,1/2,z):(1/2,0,-z):(0,1/2,-z):(1/2,0,z)
+::8:g:.2.:(x,0,1/2):(-x,0,1/2):(0,-x,1/2):(0,x,1/2)
+::8:f:.2.:(x,0,0):(-x,0,0):(0,-x,0):(0,x,0)
+::4:e:2.mm:(0,0,z):(0,0,-z)::
+::4:d:-4..:(0,1/2,1/4):(0,1/2,3/4)::
+::4:c:222.:(0,1/2,0):(1/2,0,0)::
+::2:b:-42m:(0,0,1/2):::
+::2:a:-42m:(0,0,0):::
+399:I -4 2 d:::::::
+::16:e:1:(x,y,z):(-x,-y,z):(y,-x,-z):(-y,x,-z)
+:::::(-x+1/2,y,-z+3/4):(x+1/2,-y,-z+3/4):(-y+1/2,-x,z+3/4):(y+1/2,x,z+3/4)
+::8:d:.2.:(x,1/4,1/8):(-x,3/4,1/8):(1/4,-x,7/8):(3/4,x,7/8)
+::8:c:2..:(0,0,z):(0,0,-z):(1/2,0,-z+3/4):(1/2,0,z+3/4)
+::4:b:-4..:(0,0,1/2):(1/2,0,1/4)::
+::4:a:-4..:(0,0,0):(1/2,0,3/4)::
+400:P 4/m 2/m 2/m:::::::
+::16:u:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x,y,-z):(x,-y,-z):(y,x,-z):(-y,-x,-z)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z):(-x,y,z):(-y,-x,z):(y,x,z)
+::8:t:.m.:(x,1/2,z):(-x,1/2,z):(1/2,x,z):(1/2,-x,z)
+:::::(-x,1/2,-z):(x,1/2,-z):(1/2,x,-z):(1/2,-x,-z)
+::8:s:.m.:(x,0,z):(-x,0,z):(0,x,z):(0,-x,z)
+:::::(-x,0,-z):(x,0,-z):(0,x,-z):(0,-x,-z)
+::8:r:..m:(x,x,z):(-x,-x,z):(-x,x,z):(x,-x,z)
+:::::(-x,x,-z):(x,-x,-z):(x,x,-z):(-x,-x,-z)
+::8:q:m..:(x,y,1/2):(-x,-y,1/2):(-y,x,1/2):(y,-x,1/2)
+:::::(-x,y,1/2):(x,-y,1/2):(y,x,1/2):(-y,-x,1/2)
+::8:p:m..:(x,y,0):(-x,-y,0):(-y,x,0):(y,-x,0)
+:::::(-x,y,0):(x,-y,0):(y,x,0):(-y,-x,0)
+::4:o:m2m.:(x,1/2,1/2):(-x,1/2,1/2):(1/2,x,1/2):(1/2,-x,1/2)
+::4:n:m2m.:(x,1/2,0):(-x,1/2,0):(1/2,x,0):(1/2,-x,0)
+::4:m:m2m.:(x,0,1/2):(-x,0,1/2):(0,x,1/2):(0,-x,1/2)
+::4:l:m2m.:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+::4:k:m.2m:(x,x,1/2):(-x,-x,1/2):(-x,x,1/2):(x,-x,1/2)
+::4:j:m.2m:(x,x,0):(-x,-x,0):(-x,x,0):(x,-x,0)
+::4:i:2mm.:(0,1/2,z):(1/2,0,z):(0,1/2,-z):(1/2,0,-z)
+::2:h:4mm:(1/2,1/2,z):(1/2,1/2,-z)::
+::2:g:4mm:(0,0,z):(0,0,-z)::
+::2:f:mmm.:(0,1/2,0):(1/2,0,0)::
+::2:e:mmm.:(0,1/2,1/2):(1/2,0,1/2)::
+::1:d:4/mmm:(1/2,1/2,1/2):::
+::1:c:4/mmm:(1/2,1/2,0):::
+::1:b:4/mmm:(0,0,1/2):::
+::1:a:4/mmm:(0,0,0):::
+401:P 4/m 2/c 2/c:::::::
+::16:n:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x,y,-z+1/2):(x,-y,-z+1/2):(y,x,-z+1/2):(-y,-x,-z+1/2)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z+1/2):(-x,y,z+1/2):(-y,-x,z+1/2):(y,x,z+1/2)
+::8:m:m..:(x,y,0):(-x,-y,0):(-y,x,0):(y,-x,0)
+:::::(-x,y,1/2):(x,-y,1/2):(y,x,1/2):(-y,-x,1/2)
+::8:l:.2.:(x,1/2,1/4):(-x,1/2,1/4):(1/2,x,1/4):(1/2,-x,1/4)
+:::::(-x,1/2,3/4):(x,1/2,3/4):(1/2,-x,3/4):(1/2,x,3/4)
+::8:k:.2.:(x,0,1/4):(-x,0,1/4):(0,x,1/4):(0,-x,1/4)
+:::::(-x,0,3/4):(x,0,3/4):(0,-x,3/4):(0,x,3/4)
+::8:j:..2:(x,x,1/4):(-x,-x,1/4):(-x,x,1/4):(x,-x,1/4)
+:::::(-x,-x,3/4):(x,x,3/4):(x,-x,3/4):(-x,x,3/4)
+::8:i:2..:(0,1/2,z):(1/2,0,z):(0,1/2,-z+1/2):(1/2,0,-z+1/2)
+:::::(0,1/2,-z):(1/2,0,-z):(0,1/2,z+1/2):(1/2,0,z+1/2)
+::4:h:4..:(1/2,1/2,z):(1/2,1/2,-z+1/2):(1/2,1/2,-z):(1/2,1/2,z+1/2)
+::4:g:4..:(0,0,z):(0,0,-z+1/2):(0,0,-z):(0,0,z+1/2)
+::4:f:222.:(0,1/2,1/4):(1/2,0,1/4):(0,1/2,3/4):(1/2,0,3/4)
+::4:e:2/m..:(0,1/2,0):(1/2,0,0):(0,1/2,1/2):(1/2,0,1/2)
+::2:d:4/m..:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:c:422:(1/2,1/2,1/4):(1/2,1/2,3/4)::
+::2:b:4/m..:(0,0,0):(0,0,1/2)::
+::2:a:422:(0,0,1/4):(0,0,3/4)::
+402:P 4/n 2/b 2/m:::::::
+::16:n:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x,y,-z):(x,-y,-z):(y,x,-z):(-y,-x,-z)
+:::::(-x+1/2,-y+1/2,-z):(x+1/2,y+1/2,-z):(y+1/2,-x+1/2,-z):(-y+1/2,x+1/2,-z)
+:::::(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z):(-y+1/2,-x+1/2,z):(y+1/2,x+1/2,z)
+::8:m:..m:(x,x+1/2,z):(-x,-x+1/2,z):(-x+1/2,x,z):(x+1/2,-x,z)
+:::::(-x,x+1/2,-z):(x,-x+1/2,-z):(x+1/2,x,-z):(-x+1/2,-x,-z)
+::8:l:.2.:(x,0,1/2):(-x,0,1/2):(0,x,1/2):(0,-x,1/2)
+:::::(-x+1/2,1/2,1/2):(x+1/2,1/2,1/2):(1/2,-x+1/2,1/2):(1/2,x+1/2,1/2)
+::8:k:.2.:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(-x+1/2,1/2,0):(x+1/2,1/2,0):(1/2,-x+1/2,0):(1/2,x+1/2,0)
+::8:j:..2:(x,x,1/2):(-x,-x,1/2):(-x,x,1/2):(x,-x,1/2)
+:::::(-x+1/2,-x+1/2,1/2):(x+1/2,x+1/2,1/2):(x+1/2,-x+1/2,1/2):(-x+1/2,x+1/2,1/2)
+::8:i:..2:(x,x,0):(-x,-x,0):(-x,x,0):(x,-x,0)
+:::::(-x+1/2,-x+1/2,0):(x+1/2,x+1/2,0):(x+1/2,-x+1/2,0):(-x+1/2,x+1/2,0)
+::4:h:2.mm:(0,1/2,z):(1/2,0,z):(0,1/2,-z):(1/2,0,-z)
+::4:g:4..:(0,0,z):(0,0,-z):(1/2,1/2,-z):(1/2,1/2,z)
+::4:f:..2/m:(1/4,1/4,1/2):(3/4,3/4,1/2):(3/4,1/4,1/2):(1/4,3/4,1/2)
+::4:e:..2/m:(1/4,1/4,0):(3/4,3/4,0):(3/4,1/4,0):(1/4,3/4,0)
+::2:d:-42m:(0,1/2,1/2):(1/2,0,1/2)::
+::2:c:-42m:(0,1/2,0):(1/2,0,0)::
+::2:b:422:(0,0,1/2):(1/2,1/2,1/2)::
+::2:a:422:(0,0,0):(1/2,1/2,0)::
+403:P 4/n 2/b 2/m:::::::
+::16:n:1:(x,y,z):(-x+1/2,-y+1/2,z):(-y+1/2,x,z):(y,-x+1/2,z)
+:::::(-x+1/2,y,-z):(x,-y+1/2,-z):(y,x,-z):(-y+1/2,-x+1/2,-z)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(y+1/2,-x,-z):(-y,x+1/2,-z)
+:::::(x+1/2,-y,z):(-x,y+1/2,z):(-y,-x,z):(y+1/2,x+1/2,z)
+::8:m:..m:(x,-x,z):(-x+1/2,x+1/2,z):(x+1/2,x,z):(-x,-x+1/2,z)
+:::::(-x+1/2,-x,-z):(x,x+1/2,-z):(-x,x,-z):(x+1/2,-x+1/2,-z)
+::8:l:.2.:(x,1/4,1/2):(-x+1/2,1/4,1/2):(1/4,x,1/2):(1/4,-x+1/2,1/2)
+:::::(-x,3/4,1/2):(x+1/2,3/4,1/2):(3/4,-x,1/2):(3/4,x+1/2,1/2)
+::8:k:.2.:(x,1/4,0):(-x+1/2,1/4,0):(1/4,x,0):(1/4,-x+1/2,0)
+:::::(-x,3/4,0):(x+1/2,3/4,0):(3/4,-x,0):(3/4,x+1/2,0)
+::8:j:..2:(x,x,1/2):(-x+1/2,-x+1/2,1/2):(-x+1/2,x,1/2):(x,-x+1/2,1/2)
+:::::(-x,-x,1/2):(x+1/2,x+1/2,1/2):(x+1/2,-x,1/2):(-x,x+1/2,1/2)
+::8:i:..2:(x,x,0):(-x+1/2,-x+1/2,0):(-x+1/2,x,0):(x,-x+1/2,0)
+:::::(-x,-x,0):(x+1/2,x+1/2,0):(x+1/2,-x,0):(-x,x+1/2,0)
+::4:h:2.mm:(3/4,1/4,z):(1/4,3/4,z):(3/4,1/4,-z):(1/4,3/4,-z)
+::4:g:4..:(1/4,1/4,z):(1/4,1/4,-z):(3/4,3/4,-z):(3/4,3/4,z)
+::4:f:..2/m:(0,0,1/2):(1/2,1/2,1/2):(1/2,0,1/2):(0,1/2,1/2)
+::4:e:..2/m:(0,0,0):(1/2,1/2,0):(1/2,0,0):(0,1/2,0)
+::2:d:-42m:(3/4,1/4,1/2):(1/4,3/4,1/2)::
+::2:c:-42m:(3/4,1/4,0):(1/4,3/4,0)::
+::2:b:422:(1/4,1/4,1/2):(3/4,3/4,1/2)::
+::2:a:422:(1/4,1/4,0):(3/4,3/4,0)::
+404:P 4/n 2/n 2/c:::::::
+::16:k:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x,y,-z):(x,-y,-z):(y,x,-z):(-y,-x,-z)
+:::::(-x+1/2,-y+1/2,-z+1/2):(x+1/2,y+1/2,-z+1/2):(y+1/2,-x+1/2,-z+1/2):(-y+1/2,x+1/2,-z+1/2)
+:::::(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2):(-y+1/2,-x+1/2,z+1/2):(y+1/2,x+1/2,z+1/2)
+::8:j:.2.:(x,0,1/2):(-x,0,1/2):(0,x,1/2):(0,-x,1/2)
+:::::(-x+1/2,1/2,0):(x+1/2,1/2,0):(1/2,-x+1/2,0):(1/2,x+1/2,0)
+::8:i:.2.:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(-x+1/2,1/2,1/2):(x+1/2,1/2,1/2):(1/2,-x+1/2,1/2):(1/2,x+1/2,1/2)
+::8:h:..2:(x,x,0):(-x,-x,0):(-x,x,0):(x,-x,0)
+:::::(-x+1/2,-x+1/2,1/2):(x+1/2,x+1/2,1/2):(x+1/2,-x+1/2,1/2):(-x+1/2,x+1/2,1/2)
+::8:g:2..:(1/2,0,z):(0,1/2,z):(1/2,0,-z):(0,1/2,-z)
+:::::(0,1/2,-z+1/2):(1/2,0,-z+1/2):(0,1/2,z+1/2):(1/2,0,z+1/2)
+::8:f:-1:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,1/4):(1/4,3/4,1/4)
+:::::(3/4,1/4,3/4):(1/4,3/4,3/4):(1/4,1/4,3/4):(3/4,3/4,3/4)
+::4:e:4..:(0,0,z):(0,0,-z):(1/2,1/2,-z+1/2):(1/2,1/2,z+1/2)
+::4:d:-4..:(1/2,0,1/4):(0,1/2,1/4):(1/2,0,3/4):(0,1/2,3/4)
+::4:c:222.:(1/2,0,0):(0,1/2,0):(0,1/2,1/2):(1/2,0,1/2)
+::2:b:422:(0,0,1/2):(1/2,1/2,0)::
+::2:a:422:(0,0,0):(1/2,1/2,1/2)::
+405:P 4/n 2/n 2/c:::::::
+::16:k:1:(x,y,z):(-x+1/2,-y+1/2,z):(-y+1/2,x,z):(y,-x+1/2,z)
+:::::(-x+1/2,y,-z+1/2):(x,-y+1/2,-z+1/2):(y,x,-z+1/2):(-y+1/2,-x+1/2,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(y+1/2,-x,-z):(-y,x+1/2,-z)
+:::::(x+1/2,-y,z+1/2):(-x,y+1/2,z+1/2):(-y,-x,z+1/2):(y+1/2,x+1/2,z+1/2)
+::8:j:.2.:(x,3/4,1/4):(-x+1/2,3/4,1/4):(3/4,x,1/4):(3/4,-x+1/2,1/4)
+:::::(-x,1/4,3/4):(x+1/2,1/4,3/4):(1/4,-x,3/4):(1/4,x+1/2,3/4)
+::8:i:.2.:(x,1/4,1/4):(-x+1/2,1/4,1/4):(1/4,x,1/4):(1/4,-x+1/2,1/4)
+:::::(-x,3/4,3/4):(x+1/2,3/4,3/4):(3/4,-x,3/4):(3/4,x+1/2,3/4)
+::8:h:..2:(x,x,1/4):(-x+1/2,-x+1/2,1/4):(-x+1/2,x,1/4):(x,-x+1/2,1/4)
+:::::(-x,-x,3/4):(x+1/2,x+1/2,3/4):(x+1/2,-x,3/4):(-x,x+1/2,3/4)
+::8:g:2..:(1/4,3/4,z):(3/4,1/4,z):(1/4,3/4,-z+1/2):(3/4,1/4,-z+1/2)
+:::::(3/4,1/4,-z):(1/4,3/4,-z):(3/4,1/4,z+1/2):(1/4,3/4,z+1/2)
+::8:f:-1:(0,0,0):(1/2,1/2,0):(1/2,0,0):(0,1/2,0)
+:::::(1/2,0,1/2):(0,1/2,1/2):(0,0,1/2):(1/2,1/2,1/2)
+::4:e:4..:(1/4,1/4,z):(1/4,1/4,-z+1/2):(3/4,3/4,-z):(3/4,3/4,z+1/2)
+::4:d:-4..:(1/4,3/4,0):(3/4,1/4,0):(1/4,3/4,1/2):(3/4,1/4,1/2)
+::4:c:222.:(1/4,3/4,3/4):(3/4,1/4,3/4):(3/4,1/4,1/4):(1/4,3/4,1/4)
+::2:b:422:(1/4,1/4,3/4):(3/4,3/4,1/4)::
+::2:a:422:(1/4,1/4,1/4):(3/4,3/4,3/4)::
+406:P 4/m 2sub1/b m:::::::
+::16:l:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x+1/2,y+1/2,-z):(x+1/2,-y+1/2,-z):(y+1/2,x+1/2,-z):(-y+1/2,-x+1/2,-z)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z):(-y,x,-z)
+:::::(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z):(-y+1/2,-x+1/2,z):(y+1/2,x+1/2,z)
+::8:k:..m:(x,x+1/2,z):(-x,-x+1/2,z):(-x+1/2,x,z):(x+1/2,-x,z)
+:::::(-x+1/2,x,-z):(x+1/2,-x,-z):(x,x+1/2,-z):(-x,-x+1/2,-z)
+::8:j:m..:(x,y,1/2):(-x,-y,1/2):(-y,x,1/2):(y,-x,1/2)
+:::::(-x+1/2,y+1/2,1/2):(x+1/2,-y+1/2,1/2):(y+1/2,x+1/2,1/2):(-y+1/2,-x+1/2,1/2)
+::8:i:m..:(x,y,0):(-x,-y,0):(-y,x,0):(y,-x,0)
+:::::(-x+1/2,y+1/2,0):(x+1/2,-y+1/2,0):(y+1/2,x+1/2,0):(-y+1/2,-x+1/2,0)
+::4:h:m.2m:(x,x+1/2,1/2):(-x,-x+1/2,1/2):(-x+1/2,x,1/2):(x+1/2,-x,1/2)
+::4:g:m.2m:(x,x+1/2,0):(-x,-x+1/2,0):(-x+1/2,x,0):(x+1/2,-x,0)
+::4:f:2.mm:(0,1/2,z):(1/2,0,z):(1/2,0,-z):(0,1/2,-z)
+::4:e:4..:(0,0,z):(1/2,1/2,-z):(0,0,-z):(1/2,1/2,z)
+::2:d:m.mm:(0,1/2,0):(1/2,0,0)::
+::2:c:m.mm:(0,1/2,1/2):(1/2,0,1/2)::
+::2:b:4/m..:(0,0,1/2):(1/2,1/2,1/2)::
+::2:a:4/m..:(0,0,0):(1/2,1/2,0)::
+407:P 4/m 2sub1/n c:::::::
+::16:i:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z+1/2):(y+1/2,x+1/2,-z+1/2):(-y+1/2,-x+1/2,-z+1/2)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z):(-y,x,-z)
+:::::(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2):(-y+1/2,-x+1/2,z+1/2):(y+1/2,x+1/2,z+1/2)
+::8:h:m..:(x,y,0):(-x,-y,0):(-y,x,0):(y,-x,0)
+:::::(-x+1/2,y+1/2,1/2):(x+1/2,-y+1/2,1/2):(y+1/2,x+1/2,1/2):(-y+1/2,-x+1/2,1/2)
+::8:g:..2:(x,x+1/2,1/4):(-x,-x+1/2,1/4):(-x+1/2,x,1/4):(x+1/2,-x,1/4)
+:::::(-x,-x+1/2,3/4):(x,x+1/2,3/4):(x+1/2,-x,3/4):(-x+1/2,x,3/4)
+::8:f:2..:(0,1/2,z):(1/2,0,z):(1/2,0,-z+1/2):(0,1/2,-z+1/2)
+:::::(0,1/2,-z):(1/2,0,-z):(1/2,0,z+1/2):(0,1/2,z+1/2)
+::4:e:4..:(0,0,z):(1/2,1/2,-z+1/2):(0,0,-z):(1/2,1/2,z+1/2)
+::4:d:2.22:(0,1/2,1/4):(1/2,0,1/4):(0,1/2,3/4):(1/2,0,3/4)
+::4:c:2/m..:(0,1/2,0):(1/2,0,0):(1/2,0,1/2):(0,1/2,1/2)
+::2:b:4/m..:(0,0,1/2):(1/2,1/2,0)::
+::2:a:4/m..:(0,0,0):(1/2,1/2,1/2)::
+408:P 4/n 2sub1/m m:::::::
+::16:k:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z):(y+1/2,-x+1/2,z)
+:::::(-x+1/2,y+1/2,-z):(x+1/2,-y+1/2,-z):(y,x,-z):(-y,-x,-z)
+:::::(-x+1/2,-y+1/2,-z):(x+1/2,y+1/2,-z):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z):(-x,y,z):(-y+1/2,-x+1/2,z):(y+1/2,x+1/2,z)
+::8:j:..m:(x,x+1/2,z):(-x,-x+1/2,z):(-x,x+1/2,z):(x,-x+1/2,z)
+:::::(-x+1/2,x,-z):(x+1/2,-x,-z):(x+1/2,x,-z):(-x+1/2,-x,-z)
+::8:i:.m.:(0,y,z):(0,-y,z):(-y+1/2,1/2,z):(y+1/2,1/2,z)
+:::::(1/2,y+1/2,-z):(1/2,-y+1/2,-z):(y,0,-z):(-y,0,-z)
+::8:h:..2:(x,x,1/2):(-x,-x,1/2):(-x+1/2,x+1/2,1/2):(x+1/2,-x+1/2,1/2)
+:::::(-x+1/2,-x+1/2,1/2):(x+1/2,x+1/2,1/2):(x,-x,1/2):(-x,x,1/2)
+::8:g:..2:(x,x,0):(-x,-x,0):(-x+1/2,x+1/2,0):(x+1/2,-x+1/2,0)
+:::::(-x+1/2,-x+1/2,0):(x+1/2,x+1/2,0):(x,-x,0):(-x,x,0)
+::4:f:2mm.:(0,0,z):(1/2,1/2,z):(1/2,1/2,-z):(0,0,-z)
+::4:e:..2/m:(1/4,1/4,1/2):(3/4,3/4,1/2):(1/4,3/4,1/2):(3/4,1/4,1/2)
+::4:d:..2/m:(1/4,1/4,0):(3/4,3/4,0):(1/4,3/4,0):(3/4,1/4,0)
+::2:c:4mm:(0,1/2,z):(1/2,0,-z)::
+::2:b:-4m2:(0,0,1/2):(1/2,1/2,1/2)::
+::2:a:-4m2:(0,0,0):(1/2,1/2,0)::
+409:P 4/n 2sub1/m m:::::::
+::16:k:1:(x,y,z):(-x+1/2,-y+1/2,z):(-y+1/2,x,z):(y,-x+1/2,z)
+:::::(-x,y+1/2,-z):(x+1/2,-y,-z):(y+1/2,x+1/2,-z):(-y,-x,-z)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(y+1/2,-x,-z):(-y,x+1/2,-z)
+:::::(x,-y+1/2,z):(-x+1/2,y,z):(-y+1/2,-x+1/2,z):(y,x,z)
+::8:j:..m:(x,x,z):(-x+1/2,-x+1/2,z):(-x+1/2,x,z):(x,-x+1/2,z)
+:::::(-x,x+1/2,-z):(x+1/2,-x,-z):(x+1/2,x+1/2,-z):(-x,-x,-z)
+::8:i:.m.:(1/4,y,z):(1/4,-y+1/2,z):(-y+1/2,1/4,z):(y,1/4,z)
+:::::(3/4,y+1/2,-z):(3/4,-y,-z):(y+1/2,3/4,-z):(-y,3/4,-z)
+::8:h:..2:(x,-x,1/2):(-x+1/2,x+1/2,1/2):(x+1/2,x,1/2):(-x,-x+1/2,1/2)
+:::::(-x,x,1/2):(x+1/2,-x+1/2,1/2):(-x+1/2,-x,1/2):(x,x+1/2,1/2)
+::8:g:..2:(x,-x,0):(-x+1/2,x+1/2,0):(x+1/2,x,0):(-x,-x+1/2,0)
+:::::(-x,x,0):(x+1/2,-x+1/2,0):(-x+1/2,-x,0):(x,x+1/2,0)
+::4:f:2mm.:(3/4,1/4,z):(1/4,3/4,z):(1/4,3/4,-z):(3/4,1/4,-z)
+::4:e:..2/m:(0,0,1/2):(1/2,1/2,1/2):(1/2,0,1/2):(0,1/2,1/2)
+::4:d:..2/m:(0,0,0):(1/2,1/2,0):(1/2,0,0):(0,1/2,0)
+::2:c:4mm:(1/4,1/4,z):(3/4,3/4,-z)::
+::2:b:-4m2:(3/4,1/4,1/2):(1/4,3/4,1/2)::
+::2:a:-4m2:(3/4,1/4,0):(1/4,3/4,0)::
+410:P 4/n 2sub1/c c:::::::
+::16:g:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z):(y+1/2,-x+1/2,z)
+:::::(-x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z+1/2):(y,x,-z+1/2):(-y,-x,-z+1/2)
+:::::(-x+1/2,-y+1/2,-z):(x+1/2,y+1/2,-z):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z+1/2):(-x,y,z+1/2):(-y+1/2,-x+1/2,z+1/2):(y+1/2,x+1/2,z+1/2)
+::8:f:..2:(x,x,1/4):(-x,-x,1/4):(-x+1/2,x+1/2,1/4):(x+1/2,-x+1/2,1/4)
+:::::(-x+1/2,-x+1/2,3/4):(x+1/2,x+1/2,3/4):(x,-x,3/4):(-x,x,3/4)
+::8:e:2..:(0,0,z):(1/2,1/2,z):(1/2,1/2,-z+1/2):(0,0,-z+1/2)
+:::::(1/2,1/2,-z):(0,0,-z):(0,0,z+1/2):(1/2,1/2,z+1/2)
+::8:d:-1:(1/4,1/4,0):(3/4,3/4,0):(1/4,3/4,0):(3/4,1/4,0)
+:::::(1/4,3/4,1/2):(3/4,1/4,1/2):(1/4,1/4,1/2):(3/4,3/4,1/2)
+::4:c:4..:(0,1/2,z):(1/2,0,-z+1/2):(1/2,0,-z):(0,1/2,z+1/2)
+::4:b:-4..:(0,0,0):(1/2,1/2,0):(1/2,1/2,1/2):(0,0,1/2)
+::4:a:2.22:(0,0,1/4):(1/2,1/2,1/4):(1/2,1/2,3/4):(0,0,3/4)
+411:P 4/n 2sub1/c c:::::::
+::16:g:1:(x,y,z):(-x+1/2,-y+1/2,z):(-y+1/2,x,z):(y,-x+1/2,z)
+:::::(-x,y+1/2,-z+1/2):(x+1/2,-y,-z+1/2):(y+1/2,x+1/2,-z+1/2):(-y,-x,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(y+1/2,-x,-z):(-y,x+1/2,-z)
+:::::(x,-y+1/2,z+1/2):(-x+1/2,y,z+1/2):(-y+1/2,-x+1/2,z+1/2):(y,x,z+1/2)
+::8:f:..2:(x,-x,1/4):(-x+1/2,x+1/2,1/4):(x+1/2,x,1/4):(-x,-x+1/2,1/4)
+:::::(-x,x,3/4):(x+1/2,-x+1/2,3/4):(-x+1/2,-x,3/4):(x,x+1/2,3/4)
+::8:e:2..:(3/4,1/4,z):(1/4,3/4,z):(1/4,3/4,-z+1/2):(3/4,1/4,-z+1/2)
+:::::(1/4,3/4,-z):(3/4,1/4,-z):(3/4,1/4,z+1/2):(1/4,3/4,z+1/2)
+::8:d:-1:(0,0,0):(1/2,1/2,0):(1/2,0,0):(0,1/2,0)
+:::::(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,1/2):(0,0,1/2)
+::4:c:4..:(1/4,1/4,z):(3/4,3/4,-z+1/2):(3/4,3/4,-z):(1/4,1/4,z+1/2)
+::4:b:-4..:(3/4,1/4,0):(1/4,3/4,0):(1/4,3/4,1/2):(3/4,1/4,1/2)
+::4:a:2.22:(3/4,1/4,1/4):(1/4,3/4,1/4):(1/4,3/4,3/4):(3/4,1/4,3/4)
+412:P 4sub2/m 2/m 2/c:::::::
+::16:r:1:(x,y,z):(-x,-y,z):(-y,x,z+1/2):(y,-x,z+1/2)
+:::::(-x,y,-z):(x,-y,-z):(y,x,-z+1/2):(-y,-x,-z+1/2)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z+1/2):(-y,x,-z+1/2)
+:::::(x,-y,z):(-x,y,z):(-y,-x,z+1/2):(y,x,z+1/2)
+::8:q:m..:(x,y,0):(-x,-y,0):(-y,x,1/2):(y,-x,1/2)
+:::::(-x,y,0):(x,-y,0):(y,x,1/2):(-y,-x,1/2)
+::8:p:.m.:(1/2,y,z):(1/2,-y,z):(-y,1/2,z+1/2):(y,1/2,z+1/2)
+:::::(1/2,y,-z):(1/2,-y,-z):(y,1/2,-z+1/2):(-y,1/2,-z+1/2)
+::8:o:.m.:(0,y,z):(0,-y,z):(-y,0,z+1/2):(y,0,z+1/2)
+:::::(0,y,-z):(0,-y,-z):(y,0,-z+1/2):(-y,0,-z+1/2)
+::8:n:..2:(x,x,1/4):(-x,-x,1/4):(-x,x,3/4):(x,-x,3/4)
+:::::(-x,-x,3/4):(x,x,3/4):(x,-x,1/4):(-x,x,1/4)
+::4:m:m2m.:(x,1/2,0):(-x,1/2,0):(1/2,x,1/2):(1/2,-x,1/2)
+::4:l:m2m.:(x,0,1/2):(-x,0,1/2):(0,x,0):(0,-x,0)
+::4:k:m2m.:(x,1/2,1/2):(-x,1/2,1/2):(1/2,x,0):(1/2,-x,0)
+::4:j:m2m.:(x,0,0):(-x,0,0):(0,x,1/2):(0,-x,1/2)
+::4:i:2mm.:(0,1/2,z):(1/2,0,z+1/2):(0,1/2,-z):(1/2,0,-z+1/2)
+::4:h:2mm.:(1/2,1/2,z):(1/2,1/2,z+1/2):(1/2,1/2,-z):(1/2,1/2,-z+1/2)
+::4:g:2mm.:(0,0,z):(0,0,z+1/2):(0,0,-z):(0,0,-z+1/2)
+::2:f:-4m2:(1/2,1/2,1/4):(1/2,1/2,3/4)::
+::2:e:-4m2:(0,0,1/4):(0,0,3/4)::
+::2:d:mmm.:(0,1/2,1/2):(1/2,0,0)::
+::2:c:mmm.:(0,1/2,0):(1/2,0,1/2)::
+::2:b:mmm.:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:a:mmm.:(0,0,0):(0,0,1/2)::
+413:P 4sub2/m 2/c 2/m:::::::
+::16:p:1:(x,y,z):(-x,-y,z):(-y,x,z+1/2):(y,-x,z+1/2)
+:::::(-x,y,-z+1/2):(x,-y,-z+1/2):(y,x,-z):(-y,-x,-z)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z+1/2):(-y,x,-z+1/2)
+:::::(x,-y,z+1/2):(-x,y,z+1/2):(-y,-x,z):(y,x,z)
+::8:o:..m:(x,x,z):(-x,-x,z):(-x,x,z+1/2):(x,-x,z+1/2)
+:::::(-x,x,-z+1/2):(x,-x,-z+1/2):(x,x,-z):(-x,-x,-z)
+::8:n:m..:(x,y,0):(-x,-y,0):(-y,x,1/2):(y,-x,1/2)
+:::::(-x,y,1/2):(x,-y,1/2):(y,x,0):(-y,-x,0)
+::8:m:.2.:(x,1/2,1/4):(-x,1/2,1/4):(1/2,x,3/4):(1/2,-x,3/4)
+:::::(-x,1/2,3/4):(x,1/2,3/4):(1/2,-x,1/4):(1/2,x,1/4)
+::8:l:.2.:(x,0,1/4):(-x,0,1/4):(0,x,3/4):(0,-x,3/4)
+:::::(-x,0,3/4):(x,0,3/4):(0,-x,1/4):(0,x,1/4)
+::8:k:2..:(0,1/2,z):(1/2,0,z+1/2):(0,1/2,-z+1/2):(1/2,0,-z)
+:::::(0,1/2,-z):(1/2,0,-z+1/2):(0,1/2,z+1/2):(1/2,0,z)
+::4:j:m.2m:(x,x,1/2):(-x,-x,1/2):(-x,x,0):(x,-x,0)
+::4:i:m.2m:(x,x,0):(-x,-x,0):(-x,x,1/2):(x,-x,1/2)
+::4:h:2.mm:(1/2,1/2,z):(1/2,1/2,z+1/2):(1/2,1/2,-z+1/2):(1/2,1/2,-z)
+::4:g:2.mm:(0,0,z):(0,0,z+1/2):(0,0,-z+1/2):(0,0,-z)
+::4:f:2/m..:(0,1/2,0):(1/2,0,1/2):(0,1/2,1/2):(1/2,0,0)
+::4:e:222.:(0,1/2,1/4):(1/2,0,3/4):(0,1/2,3/4):(1/2,0,1/4)
+::2:d:-42m:(1/2,1/2,1/4):(1/2,1/2,3/4)::
+::2:c:m.mm:(1/2,1/2,0):(1/2,1/2,1/2)::
+::2:b:-42m:(0,0,1/4):(0,0,3/4)::
+::2:a:m.mm:(0,0,0):(0,0,1/2)::
+414:P 4sub2/n 2/b 2/c:::::::
+::16:k:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z+1/2):(y+1/2,-x+1/2,z+1/2)
+:::::(-x,y,-z+1/2):(x,-y,-z+1/2):(y+1/2,x+1/2,-z):(-y+1/2,-x+1/2,-z)
+:::::(-x+1/2,-y+1/2,-z+1/2):(x+1/2,y+1/2,-z+1/2):(y,-x,-z):(-y,x,-z)
+:::::(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z):(-y,-x,z+1/2):(y,x,z+1/2)
+::8:j:..2:(x,x+1/2,0):(-x,-x+1/2,0):(-x,x+1/2,1/2):(x,-x+1/2,1/2)
+:::::(-x+1/2,-x,1/2):(x+1/2,x,1/2):(x+1/2,-x,0):(-x+1/2,x,0)
+::8:i:.2.:(x,0,3/4):(-x,0,3/4):(1/2,x+1/2,1/4):(1/2,-x+1/2,1/4)
+:::::(-x+1/2,1/2,3/4):(x+1/2,1/2,3/4):(0,-x,1/4):(0,x,1/4)
+::8:h:.2.:(x,0,1/4):(-x,0,1/4):(1/2,x+1/2,3/4):(1/2,-x+1/2,3/4)
+:::::(-x+1/2,1/2,1/4):(x+1/2,1/2,1/4):(0,-x,3/4):(0,x,3/4)
+::8:g:2..:(0,0,z):(1/2,1/2,z+1/2):(0,0,-z+1/2):(1/2,1/2,-z)
+:::::(1/2,1/2,-z+1/2):(0,0,-z):(1/2,1/2,z):(0,0,z+1/2)
+::8:f:2..:(0,1/2,z):(0,1/2,z+1/2):(0,1/2,-z+1/2):(0,1/2,-z)
+:::::(1/2,0,-z+1/2):(1/2,0,-z):(1/2,0,z):(1/2,0,z+1/2)
+::8:e:-1:(1/4,1/4,1/4):(3/4,3/4,1/4):(1/4,3/4,3/4):(3/4,1/4,3/4)
+:::::(3/4,1/4,1/4):(1/4,3/4,1/4):(3/4,3/4,3/4):(1/4,1/4,3/4)
+::4:d:-4..:(0,0,0):(1/2,1/2,1/2):(0,0,1/2):(1/2,1/2,0)
+::4:c:2.22:(0,1/2,0):(0,1/2,1/2):(1/2,0,1/2):(1/2,0,0)
+::4:b:222.:(0,0,1/4):(1/2,1/2,3/4):(1/2,1/2,1/4):(0,0,3/4)
+::4:a:222.:(0,1/2,1/4):(0,1/2,3/4):(1/2,0,1/4):(1/2,0,3/4)
+415:P 4sub2/n 2/b 2/c:::::::
+::16:k:1:(x,y,z):(-x+1/2,-y+1/2,z):(-y+1/2,x,z+1/2):(y,-x+1/2,z+1/2)
+:::::(-x+1/2,y,-z):(x,-y+1/2,-z):(y,x,-z+1/2):(-y+1/2,-x+1/2,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(y+1/2,-x,-z+1/2):(-y,x+1/2,-z+1/2)
+:::::(x+1/2,-y,z):(-x,y+1/2,z):(-y,-x,z+1/2):(y+1/2,x+1/2,z+1/2)
+::8:j:..2:(x,x,1/4):(-x+1/2,-x+1/2,1/4):(-x+1/2,x,3/4):(x,-x+1/2,3/4)
+:::::(-x,-x,3/4):(x+1/2,x+1/2,3/4):(x+1/2,-x,1/4):(-x,x+1/2,1/4)
+::8:i:.2.:(x,1/4,1/2):(-x+1/2,1/4,1/2):(1/4,x,0):(1/4,-x+1/2,0)
+:::::(-x,3/4,1/2):(x+1/2,3/4,1/2):(3/4,-x,0):(3/4,x+1/2,0)
+::8:h:.2.:(x,1/4,0):(-x+1/2,1/4,0):(1/4,x,1/2):(1/4,-x+1/2,1/2)
+:::::(-x,3/4,0):(x+1/2,3/4,0):(3/4,-x,1/2):(3/4,x+1/2,1/2)
+::8:g:2..:(3/4,1/4,z):(1/4,3/4,z+1/2):(3/4,1/4,-z):(1/4,3/4,-z+1/2)
+:::::(1/4,3/4,-z):(3/4,1/4,-z+1/2):(1/4,3/4,z):(3/4,1/4,z+1/2)
+::8:f:2..:(1/4,1/4,z):(1/4,1/4,z+1/2):(1/4,1/4,-z):(1/4,1/4,-z+1/2)
+:::::(3/4,3/4,-z):(3/4,3/4,-z+1/2):(3/4,3/4,z):(3/4,3/4,z+1/2)
+::8:e:-1:(0,0,0):(1/2,1/2,0):(1/2,0,1/2):(0,1/2,1/2)
+:::::(1/2,0,0):(0,1/2,0):(0,0,1/2):(1/2,1/2,1/2)
+::4:d:-4..:(3/4,1/4,3/4):(1/4,3/4,1/4):(3/4,1/4,1/4):(1/4,3/4,3/4)
+::4:c:2.22:(1/4,1/4,1/4):(1/4,1/4,3/4):(3/4,3/4,3/4):(3/4,3/4,1/4)
+::4:b:222.:(3/4,1/4,0):(1/4,3/4,1/2):(1/4,3/4,0):(3/4,1/4,1/2)
+::4:a:222.:(1/4,1/4,0):(1/4,1/4,1/2):(3/4,3/4,0):(3/4,3/4,1/2)
+416:P 4sub2/n 2/n 2/m:::::::
+::16:n:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z+1/2):(y+1/2,-x+1/2,z+1/2)
+:::::(-x,y,-z):(x,-y,-z):(y+1/2,x+1/2,-z+1/2):(-y+1/2,-x+1/2,-z+1/2)
+:::::(-x+1/2,-y+1/2,-z+1/2):(x+1/2,y+1/2,-z+1/2):(y,-x,-z):(-y,x,-z)
+:::::(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2):(-y,-x,z):(y,x,z)
+::8:m:..m:(x,x,z):(-x,-x,z):(-x+1/2,x+1/2,z+1/2):(x+1/2,-x+1/2,z+1/2)
+:::::(-x,x,-z):(x,-x,-z):(x+1/2,x+1/2,-z+1/2):(-x+1/2,-x+1/2,-z+1/2)
+::8:l:..2:(x,x+1/2,3/4):(-x,-x+1/2,3/4):(-x,x+1/2,1/4):(x,-x+1/2,1/4)
+:::::(-x+1/2,-x,3/4):(x+1/2,x,3/4):(x+1/2,-x,1/4):(-x+1/2,x,1/4)
+::8:k:..2:(x,x+1/2,1/4):(-x,-x+1/2,1/4):(-x,x+1/2,3/4):(x,-x+1/2,3/4)
+:::::(-x+1/2,-x,1/4):(x+1/2,x,1/4):(x+1/2,-x,3/4):(-x+1/2,x,3/4)
+::8:j:.2.:(x,0,1/2):(-x,0,1/2):(1/2,x+1/2,0):(1/2,-x+1/2,0)
+:::::(-x+1/2,1/2,0):(x+1/2,1/2,0):(0,-x,1/2):(0,x,1/2)
+::8:i:.2.:(x,0,0):(-x,0,0):(1/2,x+1/2,1/2):(1/2,-x+1/2,1/2)
+:::::(-x+1/2,1/2,1/2):(x+1/2,1/2,1/2):(0,-x,0):(0,x,0)
+::8:h:2..:(0,1/2,z):(0,1/2,z+1/2):(0,1/2,-z):(0,1/2,-z+1/2)
+:::::(1/2,0,-z+1/2):(1/2,0,-z):(1/2,0,z+1/2):(1/2,0,z)
+::4:g:2.mm:(0,0,z):(1/2,1/2,z+1/2):(0,0,-z):(1/2,1/2,-z+1/2)
+::4:f:..2/m:(3/4,3/4,3/4):(1/4,1/4,3/4):(3/4,1/4,1/4):(1/4,3/4,1/4)
+::4:e:..2/m:(1/4,1/4,1/4):(3/4,3/4,1/4):(1/4,3/4,3/4):(3/4,1/4,3/4)
+::4:d:2.22:(0,1/2,1/4):(0,1/2,3/4):(1/2,0,1/4):(1/2,0,3/4)
+::4:c:222.:(0,1/2,0):(0,1/2,1/2):(1/2,0,1/2):(1/2,0,0)
+::2:b:-42m:(0,0,1/2):(1/2,1/2,0)::
+::2:a:-42m:(0,0,0):(1/2,1/2,1/2)::
+417:P 4sub2/n 2/n 2/m:::::::
+::16:n:1:(x,y,z):(-x+1/2,-y+1/2,z):(-y+1/2,x,z+1/2):(y,-x+1/2,z+1/2)
+:::::(-x+1/2,y,-z+1/2):(x,-y+1/2,-z+1/2):(y,x,-z):(-y+1/2,-x+1/2,-z)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(y+1/2,-x,-z+1/2):(-y,x+1/2,-z+1/2)
+:::::(x+1/2,-y,z+1/2):(-x,y+1/2,z+1/2):(-y,-x,z):(y+1/2,x+1/2,z)
+::8:m:..m:(x,-x,z):(-x+1/2,x+1/2,z):(x+1/2,x,z+1/2):(-x,-x+1/2,z+1/2)
+:::::(-x+1/2,-x,-z+1/2):(x,x+1/2,-z+1/2):(-x,x,-z):(x+1/2,-x+1/2,-z)
+::8:l:..2:(x,x,1/2):(-x+1/2,-x+1/2,1/2):(-x+1/2,x,0):(x,-x+1/2,0)
+:::::(-x,-x,1/2):(x+1/2,x+1/2,1/2):(x+1/2,-x,0):(-x,x+1/2,0)
+::8:k:..2:(x,x,0):(-x+1/2,-x+1/2,0):(-x+1/2,x,1/2):(x,-x+1/2,1/2)
+:::::(-x,-x,0):(x+1/2,x+1/2,0):(x+1/2,-x,1/2):(-x,x+1/2,1/2)
+::8:j:.2.:(x,1/4,1/4):(-x+1/2,1/4,1/4):(1/4,x,3/4):(1/4,-x+1/2,3/4)
+:::::(-x,3/4,3/4):(x+1/2,3/4,3/4):(3/4,-x,1/4):(3/4,x+1/2,1/4)
+::8:i:.2.:(x,1/4,3/4):(-x+1/2,1/4,3/4):(1/4,x,1/4):(1/4,-x+1/2,1/4)
+:::::(-x,3/4,1/4):(x+1/2,3/4,1/4):(3/4,-x,3/4):(3/4,x+1/2,3/4)
+::8:h:2..:(1/4,1/4,z):(1/4,1/4,z+1/2):(1/4,1/4,-z+1/2):(1/4,1/4,-z)
+:::::(3/4,3/4,-z):(3/4,3/4,-z+1/2):(3/4,3/4,z+1/2):(3/4,3/4,z)
+::4:g:2.mm:(3/4,1/4,z):(1/4,3/4,z+1/2):(3/4,1/4,-z+1/2):(1/4,3/4,-z)
+::4:f:..2/m:(0,0,0):(1/2,1/2,0):(1/2,0,1/2):(0,1/2,1/2)
+::4:e:..2/m:(0,0,1/2):(1/2,1/2,1/2):(1/2,0,0):(0,1/2,0)
+::4:d:2.22:(1/4,1/4,0):(1/4,1/4,1/2):(3/4,3/4,0):(3/4,3/4,1/2)
+::4:c:222.:(1/4,1/4,1/4):(1/4,1/4,3/4):(3/4,3/4,3/4):(3/4,3/4,1/4)
+::2:b:-42m:(3/4,1/4,1/4):(1/4,3/4,3/4)::
+::2:a:-42m:(1/4,3/4,1/4):(3/4,1/4,3/4)::
+418:P 4sub2/m 2sub1/b 2/c:::::::
+::16:i:1:(x,y,z):(-x,-y,z):(-y,x,z+1/2):(y,-x,z+1/2)
+:::::(-x+1/2,y+1/2,-z):(x+1/2,-y+1/2,-z):(y+1/2,x+1/2,-z+1/2):(-y+1/2,-x+1/2,-z+1/2)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z+1/2):(-y,x,-z+1/2)
+:::::(x+1/2,-y+1/2,z):(-x+1/2,y+1/2,z):(-y+1/2,-x+1/2,z+1/2):(y+1/2,x+1/2,z+1/2)
+::8:h:m..:(x,y,0):(-x,-y,0):(-y,x,1/2):(y,-x,1/2)
+:::::(-x+1/2,y+1/2,0):(x+1/2,-y+1/2,0):(y+1/2,x+1/2,1/2):(-y+1/2,-x+1/2,1/2)
+::8:g:..2:(x,x+1/2,1/4):(-x,-x+1/2,1/4):(-x+1/2,x,3/4):(x+1/2,-x,3/4)
+:::::(-x,-x+1/2,3/4):(x,x+1/2,3/4):(x+1/2,-x,1/4):(-x+1/2,x,1/4)
+::8:f:2..:(0,1/2,z):(1/2,0,z+1/2):(1/2,0,-z):(0,1/2,-z+1/2)
+:::::(0,1/2,-z):(1/2,0,-z+1/2):(1/2,0,z):(0,1/2,z+1/2)
+::8:e:2..:(0,0,z):(0,0,z+1/2):(1/2,1/2,-z):(1/2,1/2,-z+1/2)
+:::::(0,0,-z):(0,0,-z+1/2):(1/2,1/2,z):(1/2,1/2,z+1/2)
+::4:d:2.22:(0,1/2,1/4):(1/2,0,3/4):(0,1/2,3/4):(1/2,0,1/4)
+::4:c:2/m..:(0,1/2,0):(1/2,0,1/2):(1/2,0,0):(0,1/2,1/2)
+::4:b:-4..:(0,0,1/4):(0,0,3/4):(1/2,1/2,3/4):(1/2,1/2,1/4)
+::4:a:2/m..:(0,0,0):(0,0,1/2):(1/2,1/2,0):(1/2,1/2,1/2)
+419:P 4sub2/m 2sub1/n 2/m:::::::
+::16:k:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z+1/2):(y+1/2,-x+1/2,z+1/2)
+:::::(-x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z+1/2):(y,x,-z):(-y,-x,-z)
+:::::(-x,-y,-z):(x,y,-z):(y+1/2,-x+1/2,-z+1/2):(-y+1/2,x+1/2,-z+1/2)
+:::::(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2):(-y,-x,z):(y,x,z)
+::8:j:..m:(x,x,z):(-x,-x,z):(-x+1/2,x+1/2,z+1/2):(x+1/2,-x+1/2,z+1/2)
+:::::(-x+1/2,x+1/2,-z+1/2):(x+1/2,-x+1/2,-z+1/2):(x,x,-z):(-x,-x,-z)
+::8:i:m..:(x,y,0):(-x,-y,0):(-y+1/2,x+1/2,1/2):(y+1/2,-x+1/2,1/2)
+:::::(-x+1/2,y+1/2,1/2):(x+1/2,-y+1/2,1/2):(y,x,0):(-y,-x,0)
+::8:h:2..:(0,1/2,z):(0,1/2,z+1/2):(1/2,0,-z+1/2):(1/2,0,-z)
+:::::(0,1/2,-z):(0,1/2,-z+1/2):(1/2,0,z+1/2):(1/2,0,z)
+::4:g:m.2m:(x,-x,0):(-x,x,0):(x+1/2,x+1/2,1/2):(-x+1/2,-x+1/2,1/2)
+::4:f:m.2m:(x,x,0):(-x,-x,0):(-x+1/2,x+1/2,1/2):(x+1/2,-x+1/2,1/2)
+::4:e:2.mm:(0,0,z):(1/2,1/2,z+1/2):(1/2,1/2,-z+1/2):(0,0,-z)
+::4:d:-4..:(0,1/2,1/4):(0,1/2,3/4):(1/2,0,1/4):(1/2,0,3/4)
+::4:c:2/m..:(0,1/2,0):(0,1/2,1/2):(1/2,0,1/2):(1/2,0,0)
+::2:b:m.mm:(0,0,1/2):(1/2,1/2,0)::
+::2:a:m.mm:(0,0,0):(1/2,1/2,1/2)::
+420:P 4sub2/n 2sub1/m 2/c:::::::
+::16:h:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z+1/2):(y+1/2,-x+1/2,z+1/2)
+:::::(-x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z+1/2):(y,x,-z):(-y,-x,-z)
+:::::(-x+1/2,-y+1/2,-z+1/2):(x+1/2,y+1/2,-z+1/2):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z):(-x,y,z):(-y+1/2,-x+1/2,z+1/2):(y+1/2,x+1/2,z+1/2)
+::8:g:.m.:(0,y,z):(0,-y,z):(-y+1/2,1/2,z+1/2):(y+1/2,1/2,z+1/2)
+:::::(1/2,y+1/2,-z+1/2):(1/2,-y+1/2,-z+1/2):(y,0,-z):(-y,0,-z)
+::8:f:..2:(x,x,0):(-x,-x,0):(-x+1/2,x+1/2,1/2):(x+1/2,-x+1/2,1/2)
+:::::(-x+1/2,-x+1/2,1/2):(x+1/2,x+1/2,1/2):(x,-x,0):(-x,x,0)
+::8:e:-1:(1/4,1/4,1/4):(3/4,3/4,1/4):(1/4,3/4,3/4):(3/4,1/4,3/4)
+:::::(1/4,3/4,1/4):(3/4,1/4,1/4):(1/4,1/4,3/4):(3/4,3/4,3/4)
+::4:d:2mm.:(0,1/2,z):(0,1/2,z+1/2):(1/2,0,-z+1/2):(1/2,0,-z)
+::4:c:2mm.:(0,0,z):(1/2,1/2,z+1/2):(1/2,1/2,-z+1/2):(0,0,-z)
+::2:b:-4m2:(0,0,1/2):(1/2,1/2,0)::
+::2:a:-4m2:(0,0,0):(1/2,1/2,1/2)::
+421:P 4sub2/n 2sub1/m 2/c:::::::
+::16:h:1:(x,y,z):(-x+1/2,-y+1/2,z):(-y+1/2,x,z+1/2):(y,-x+1/2,z+1/2)
+:::::(-x,y+1/2,-z):(x+1/2,-y,-z):(y+1/2,x+1/2,-z+1/2):(-y,-x,-z+1/2)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(y+1/2,-x,-z+1/2):(-y,x+1/2,-z+1/2)
+:::::(x,-y+1/2,z):(-x+1/2,y,z):(-y+1/2,-x+1/2,z+1/2):(y,x,z+1/2)
+::8:g:.m.:(1/4,y,z):(1/4,-y+1/2,z):(-y+1/2,1/4,z+1/2):(y,1/4,z+1/2)
+:::::(3/4,y+1/2,-z):(3/4,-y,-z):(y+1/2,3/4,-z+1/2):(-y,3/4,-z+1/2)
+::8:f:..2:(x,-x,1/4):(-x+1/2,x+1/2,1/4):(x+1/2,x,3/4):(-x,-x+1/2,3/4)
+:::::(-x,x,3/4):(x+1/2,-x+1/2,3/4):(-x+1/2,-x,1/4):(x,x+1/2,1/4)
+::8:e:-1:(0,0,0):(1/2,1/2,0):(1/2,0,1/2):(0,1/2,1/2)
+:::::(0,1/2,0):(1/2,0,0):(1/2,1/2,1/2):(0,0,1/2)
+::4:d:2mm.:(1/4,1/4,z):(1/4,1/4,z+1/2):(3/4,3/4,-z):(3/4,3/4,-z+1/2)
+::4:c:2mm.:(3/4,1/4,z):(1/4,3/4,z+1/2):(1/4,3/4,-z):(3/4,1/4,-z+1/2)
+::2:b:-4m2:(3/4,1/4,1/4):(1/4,3/4,3/4)::
+::2:a:-4m2:(3/4,1/4,3/4):(1/4,3/4,1/4)::
+422:P 4sub2/n 2sub1/c 2/m:::::::
+::16:j:1:(x,y,z):(-x,-y,z):(-y+1/2,x+1/2,z+1/2):(y+1/2,-x+1/2,z+1/2)
+:::::(-x+1/2,y+1/2,-z):(x+1/2,-y+1/2,-z):(y,x,-z+1/2):(-y,-x,-z+1/2)
+:::::(-x+1/2,-y+1/2,-z+1/2):(x+1/2,y+1/2,-z+1/2):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z+1/2):(-x,y,z+1/2):(-y+1/2,-x+1/2,z):(y+1/2,x+1/2,z)
+::8:i:..m:(x,x+1/2,z):(-x,-x+1/2,z):(-x,x+1/2,z+1/2):(x,-x+1/2,z+1/2)
+:::::(-x+1/2,x,-z):(x+1/2,-x,-z):(x+1/2,x,-z+1/2):(-x+1/2,-x,-z+1/2)
+::8:h:..2:(x,x,3/4):(-x,-x,3/4):(-x+1/2,x+1/2,1/4):(x+1/2,-x+1/2,1/4)
+:::::(-x+1/2,-x+1/2,3/4):(x+1/2,x+1/2,3/4):(x,-x,1/4):(-x,x,1/4)
+::8:g:..2:(x,x,1/4):(-x,-x,1/4):(-x+1/2,x+1/2,3/4):(x+1/2,-x+1/2,3/4)
+:::::(-x+1/2,-x+1/2,1/4):(x+1/2,x+1/2,1/4):(x,-x,3/4):(-x,x,3/4)
+::8:f:2..:(0,0,z):(1/2,1/2,z+1/2):(1/2,1/2,-z):(0,0,-z+1/2)
+:::::(1/2,1/2,-z+1/2):(0,0,-z):(0,0,z+1/2):(1/2,1/2,z)
+::4:e:2.mm:(0,1/2,z):(0,1/2,z+1/2):(1/2,0,-z):(1/2,0,-z+1/2)
+::4:d:..2/m:(1/4,1/4,3/4):(3/4,3/4,3/4):(1/4,3/4,1/4):(3/4,1/4,1/4)
+::4:c:..2/m:(1/4,1/4,1/4):(3/4,3/4,1/4):(1/4,3/4,3/4):(3/4,1/4,3/4)
+::4:b:-4..:(0,0,0):(1/2,1/2,1/2):(1/2,1/2,0):(0,0,1/2)
+::4:a:2.22:(0,0,1/4):(1/2,1/2,3/4):(1/2,1/2,1/4):(0,0,3/4)
+423:P 4sub2/n 2sub1/c 2/m:::::::
+::16:j:1:(x,y,z):(-x+1/2,-y+1/2,z):(-y+1/2,x,z+1/2):(y,-x+1/2,z+1/2)
+:::::(-x,y+1/2,-z+1/2):(x+1/2,-y,-z+1/2):(y+1/2,x+1/2,-z):(-y,-x,-z)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(y+1/2,-x,-z+1/2):(-y,x+1/2,-z+1/2)
+:::::(x,-y+1/2,z+1/2):(-x+1/2,y,z+1/2):(-y+1/2,-x+1/2,z):(y,x,z)
+::8:i:..m:(x,x,z):(-x+1/2,-x+1/2,z):(-x+1/2,x,z+1/2):(x,-x+1/2,z+1/2)
+:::::(-x,x+1/2,-z+1/2):(x+1/2,-x,-z+1/2):(x+1/2,x+1/2,-z):(-x,-x,-z)
+::8:h:..2:(x,-x,0):(-x+1/2,x+1/2,0):(x+1/2,x,1/2):(-x,-x+1/2,1/2)
+:::::(-x,x,0):(x+1/2,-x+1/2,0):(-x+1/2,-x,1/2):(x,x+1/2,1/2)
+::8:g:..2:(x,-x,1/2):(-x+1/2,x+1/2,1/2):(x+1/2,x,0):(-x,-x+1/2,0)
+:::::(-x,x,1/2):(x+1/2,-x+1/2,1/2):(-x+1/2,-x,0):(x,x+1/2,0)
+::8:f:2..:(3/4,1/4,z):(1/4,3/4,z+1/2):(1/4,3/4,-z+1/2):(3/4,1/4,-z)
+:::::(1/4,3/4,-z):(3/4,1/4,-z+1/2):(3/4,1/4,z+1/2):(1/4,3/4,z)
+::4:e:2.mm:(1/4,1/4,z):(1/4,1/4,z+1/2):(3/4,3/4,-z+1/2):(3/4,3/4,-z)
+::4:d:..2/m:(0,0,0):(1/2,1/2,0):(1/2,0,1/2):(0,1/2,1/2)
+::4:c:..2/m:(0,0,1/2):(1/2,1/2,1/2):(1/2,0,0):(0,1/2,0)
+::4:b:-4..:(3/4,1/4,3/4):(1/4,3/4,1/4):(1/4,3/4,3/4):(3/4,1/4,1/4)
+::4:a:2.22:(3/4,1/4,0):(1/4,3/4,1/2):(1/4,3/4,0):(3/4,1/4,1/2)
+424:I 4/m 2/m 2/m:::::::
+::32:o:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x,y,-z):(x,-y,-z):(y,x,-z):(-y,-x,-z)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z):(-x,y,z):(-y,-x,z):(y,x,z)
+::16:n:.m.:(0,y,z):(0,-y,z):(-y,0,z):(y,0,z)
+:::::(0,y,-z):(0,-y,-z):(y,0,-z):(-y,0,-z)
+::16:m:..m:(x,x,z):(-x,-x,z):(-x,x,z):(x,-x,z)
+:::::(-x,x,-z):(x,-x,-z):(x,x,-z):(-x,-x,-z)
+::16:l:m..:(x,y,0):(-x,-y,0):(-y,x,0):(y,-x,0)
+:::::(-x,y,0):(x,-y,0):(y,x,0):(-y,-x,0)
+::16:k:..2:(x,x+1/2,1/4):(-x,-x+1/2,1/4):(-x+1/2,x,1/4):(x+1/2,-x,1/4)
+:::::(-x,-x+1/2,3/4):(x,x+1/2,3/4):(x+1/2,-x,3/4):(-x+1/2,x,3/4)
+::8:j:m2m.:(x,1/2,0):(-x,1/2,0):(1/2,x,0):(1/2,-x,0)
+::8:i:m2m.:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+::8:h:m.2m:(x,x,0):(-x,-x,0):(-x,x,0):(x,-x,0)
+::8:g:2mm.:(0,1/2,z):(1/2,0,z):(0,1/2,-z):(1/2,0,-z)
+::8:f:..2/m:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,1/4):(1/4,3/4,1/4)
+::4:e:4mm:(0,0,z):(0,0,-z)::
+::4:d:-4m2:(0,1/2,1/4):(1/2,0,1/4)::
+::4:c:mmm.:(0,1/2,0):(1/2,0,0)::
+::2:b:4/mmm:(0,0,1/2):::
+::2:a:4/mmm:(0,0,0):::
+425:I 4/m 2/c 2/m:::::::
+::32:m:1:(x,y,z):(-x,-y,z):(-y,x,z):(y,-x,z)
+:::::(-x,y,-z+1/2):(x,-y,-z+1/2):(y,x,-z+1/2):(-y,-x,-z+1/2)
+:::::(-x,-y,-z):(x,y,-z):(y,-x,-z):(-y,x,-z)
+:::::(x,-y,z+1/2):(-x,y,z+1/2):(-y,-x,z+1/2):(y,x,z+1/2)
+::16:l:..m:(x,x+1/2,z):(-x,-x+1/2,z):(-x+1/2,x,z):(x+1/2,-x,z)
+:::::(-x,x+1/2,-z+1/2):(x,-x+1/2,-z+1/2):(x+1/2,x,-z+1/2):(-x+1/2,-x,-z+1/2)
+::16:k:m..:(x,y,0):(-x,-y,0):(-y,x,0):(y,-x,0)
+:::::(-x,y,1/2):(x,-y,1/2):(y,x,1/2):(-y,-x,1/2)
+::16:j:.2.:(x,0,1/4):(-x,0,1/4):(0,x,1/4):(0,-x,1/4)
+:::::(-x,0,3/4):(x,0,3/4):(0,-x,3/4):(0,x,3/4)
+::16:i:..2:(x,x,1/4):(-x,-x,1/4):(-x,x,1/4):(x,-x,1/4)
+:::::(-x,-x,3/4):(x,x,3/4):(x,-x,3/4):(-x,x,3/4)
+::8:h:m.2m:(x,x+1/2,0):(-x,-x+1/2,0):(-x+1/2,x,0):(x+1/2,-x,0)
+::8:g:2.mm:(0,1/2,z):(1/2,0,z):(0,1/2,-z+1/2):(1/2,0,-z+1/2)
+::8:f:4..:(0,0,z):(0,0,-z+1/2):(0,0,-z):(0,0,z+1/2)
+::8:e:..2/m:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,1/4):(1/4,3/4,1/4)
+::4:d:m.mm:(0,1/2,0):(1/2,0,0)::
+::4:c:4/m..:(0,0,0):(0,0,1/2)::
+::4:b:-42m:(0,1/2,1/4):(1/2,0,1/4)::
+::4:a:422:(0,0,1/4):(0,0,3/4)::
+426:I 4sub1/a 2/m 2/d:::::::
+::32:i:1:(x,y,z):(-x+1/2,-y+1/2,z+1/2):(-y,x+1/2,z+1/4):(y+1/2,-x,z+3/4)
+:::::(-x+1/2,y,-z+3/4):(x,-y+1/2,-z+1/4):(y+1/2,x+1/2,-z+1/2):(-y,-x,-z)
+:::::(-x,-y+1/2,-z+1/4):(x+1/2,y,-z+3/4):(y,-x,-z):(-y+1/2,x+1/2,-z+1/2)
+:::::(x+1/2,-y+1/2,z+1/2):(-x,y,z):(-y+1/2,-x,z+3/4):(y,x+1/2,z+1/4)
+::16:h:.m.:(0,y,z):(1/2,-y+1/2,z+1/2):(-y,1/2,z+1/4):(y+1/2,0,z+3/4)
+:::::(1/2,y,-z+3/4):(0,-y+1/2,-z+1/4):(y+1/2,1/2,-z+1/2):(-y,0,-z)
+::16:g:..2:(x,x,0):(-x+1/2,-x+1/2,1/2):(-x,x+1/2,1/4):(x+1/2,-x,3/4)
+:::::(-x,-x+1/2,1/4):(x+1/2,x,3/4):(x,-x,0):(-x+1/2,x+1/2,1/2)
+::16:f:.2.:(x,1/4,1/8):(-x+1/2,1/4,5/8):(3/4,x+1/2,3/8):(3/4,-x,7/8)
+:::::(-x,1/4,1/8):(x+1/2,1/4,5/8):(1/4,-x,7/8):(1/4,x+1/2,3/8)
+::8:e:2mm.:(0,0,z):(0,1/2,z+1/4):(1/2,0,-z+3/4):(1/2,1/2,-z+1/2)
+::8:d:.2/m.:(0,1/4,5/8):(1/2,1/4,1/8):(3/4,1/2,7/8):(3/4,0,3/8)
+::8:c:.2/m.:(0,1/4,1/8):(1/2,1/4,5/8):(3/4,1/2,3/8):(3/4,0,7/8)
+::4:b:-4m2:(0,0,1/2):(0,1/2,3/4)::
+::4:a:-4m2:(0,0,0):(0,1/2,1/4)::
+427:I 4sub1/a 2/m 2/d:::::::
+::32:i:1:(x,y,z):(-x+1/2,-y,z+1/2):(-y+1/4,x+3/4,z+1/4):(y+1/4,-x+1/4,z+3/4)
+:::::(-x+1/2,y,-z+1/2):(x,-y,-z):(y+1/4,x+3/4,-z+1/4):(-y+1/4,-x+1/4,-z+3/4)
+:::::(-x,-y,-z):(x+1/2,y,-z+1/2):(y+3/4,-x+1/4,-z+3/4):(-y+3/4,x+3/4,-z+1/4)
+:::::(x+1/2,-y,z+1/2):(-x,y,z):(-y+3/4,-x+1/4,z+3/4):(y+3/4,x+3/4,z+1/4)
+::16:h:.m.:(0,y,z):(1/2,-y,z+1/2):(-y+1/4,3/4,z+1/4):(y+1/4,1/4,z+3/4)
+:::::(1/2,y,-z+1/2):(0,-y,-z):(y+1/4,3/4,-z+1/4):(-y+1/4,1/4,-z+3/4)
+::16:g:..2:(x,x+1/4,7/8):(-x+1/2,-x+3/4,3/8):(-x,x+3/4,1/8):(x+1/2,-x+1/4,5/8)
+:::::(-x,-x+3/4,1/8):(x+1/2,x+1/4,5/8):(x,-x+1/4,7/8):(-x+1/2,x+3/4,3/8)
+::16:f:.2.:(x,0,0):(-x+1/2,0,1/2):(1/4,x+3/4,1/4):(1/4,-x+1/4,3/4)
+:::::(-x,0,0):(x+1/2,0,1/2):(3/4,-x+1/4,3/4):(3/4,x+3/4,1/4)
+::8:e:2mm.:(0,1/4,z):(0,3/4,z+1/4):(1/2,1/4,-z+1/2):(1/2,3/4,-z+1/4)
+::8:d:.2/m.:(0,0,1/2):(1/2,0,0):(1/4,3/4,3/4):(1/4,1/4,1/4)
+::8:c:.2/m.:(0,0,0):(1/2,0,1/2):(1/4,3/4,1/4):(1/4,1/4,3/4)
+::4:b:-4m2:(0,1/4,3/8):(0,3/4,5/8)::
+::4:a:-4m2:(0,3/4,1/8):(1/2,3/4,3/8)::
+428:I 4sub1/a 2/c 2/d:::::::
+::32:g:1:(x,y,z):(-x+1/2,-y+1/2,z+1/2):(-y,x+1/2,z+1/4):(y+1/2,-x,z+3/4)
+:::::(-x+1/2,y,-z+1/4):(x,-y+1/2,-z+3/4):(y+1/2,x+1/2,-z):(-y,-x,-z+1/2)
+:::::(-x,-y+1/2,-z+1/4):(x+1/2,y,-z+3/4):(y,-x,-z):(-y+1/2,x+1/2,-z+1/2)
+:::::(x+1/2,-y+1/2,z):(-x,y,z+1/2):(-y+1/2,-x,z+1/4):(y,x+1/2,z+3/4)
+::16:f:..2:(x,x,1/4):(-x+1/2,-x+1/2,3/4):(-x,x+1/2,1/2):(x+1/2,-x,0)
+:::::(-x,-x+1/2,0):(x+1/2,x,1/2):(x,-x,3/4):(-x+1/2,x+1/2,1/4)
+::16:e:.2.:(1/4,y,1/8):(1/4,-y+1/2,5/8):(-y,3/4,3/8):(y+1/2,3/4,7/8)
+:::::(3/4,-y+1/2,1/8):(3/4,y,5/8):(y,3/4,7/8):(-y+1/2,3/4,3/8)
+::16:d:2..:(0,0,z):(0,1/2,z+1/4):(1/2,0,-z+1/4):(1/2,1/2,-z)
+:::::(0,1/2,-z+1/4):(0,0,-z):(1/2,1/2,z):(1/2,0,z+1/4)
+::16:c:-1:(0,1/4,1/8):(1/2,1/4,5/8):(3/4,1/2,3/8):(3/4,0,7/8)
+:::::(1/2,1/4,1/8):(0,1/4,5/8):(3/4,1/2,7/8):(3/4,0,3/8)
+::8:b:2.22:(0,0,1/4):(0,1/2,1/2):(0,1/2,0):(0,0,3/4)
+::8:a:-4..:(0,0,0):(0,1/2,1/4):(1/2,0,1/4):(1/2,1/2,0)
+429:I 4sub1/a 2/c 2/d:::::::
+::32:g:1:(x,y,z):(-x+1/2,-y,z+1/2):(-y+1/4,x+3/4,z+1/4):(y+1/4,-x+1/4,z+3/4)
+:::::(-x+1/2,y,-z):(x,-y,-z+1/2):(y+1/4,x+3/4,-z+3/4):(-y+1/4,-x+1/4,-z+1/4)
+:::::(-x,-y,-z):(x+1/2,y,-z+1/2):(y+3/4,-x+1/4,-z+3/4):(-y+3/4,x+3/4,-z+1/4)
+:::::(x+1/2,-y,z):(-x,y,z+1/2):(-y+3/4,-x+1/4,z+1/4):(y+3/4,x+3/4,z+3/4)
+::16:f:..2:(x,x+1/4,1/8):(-x+1/2,-x+3/4,5/8):(-x,x+3/4,3/8):(x+1/2,-x+1/4,7/8)
+:::::(-x,-x+3/4,7/8):(x+1/2,x+1/4,3/8):(x,-x+1/4,5/8):(-x+1/2,x+3/4,1/8)
+::16:e:.2.:(x,0,1/4):(-x+1/2,0,3/4):(1/4,x+3/4,1/2):(1/4,-x+1/4,0)
+:::::(-x,0,3/4):(x+1/2,0,1/4):(3/4,-x+1/4,1/2):(3/4,x+3/4,0)
+::16:d:2..:(0,1/4,z):(0,3/4,z+1/4):(1/2,1/4,-z):(1/2,3/4,-z+3/4)
+:::::(0,3/4,-z):(0,1/4,-z+3/4):(1/2,3/4,z):(1/2,1/4,z+1/4)
+::16:c:-1:(0,0,0):(1/2,0,1/2):(1/4,3/4,1/4):(1/4,1/4,3/4)
+:::::(1/2,0,0):(0,0,1/2):(1/4,3/4,3/4):(1/4,1/4,1/4)
+::8:b:2.22:(0,1/4,1/8):(0,3/4,3/8):(0,3/4,7/8):(0,1/4,5/8)
+::8:a:-4..:(0,1/4,3/8):(0,3/4,5/8):(1/2,1/4,5/8):(1/2,3/4,3/8)
+430:P 3 :::::::
+::3:d:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):
+::1:c:3..:(2/3,1/3,z):::
+::1:b:3..:(1/3,2/3,z):::
+::1:a:3..:(0,0,z):::
+431:P 3sub1 :::::::
+::3:a:1:(x,y,z):(-y,x-y,z+1/3):(-x+y,-x,z+2/3):
+432:P 3sub2 :::::::
+::3:a:1:(x,y,z):(-y,x-y,z+2/3):(-x+y,-x,z+1/3):
+433:R 3 :::::::
+::9:b:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):
+::3:a:3:(0,0,z):::
+434:R 3 :::::::
+::3:b:1:(x,y,z):(z,x,y):(y,z,x):
+::1:a:3:(x,x,x):::
+435:P -3 :::::::
+::6:g:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,-z)
+:::::(y,-x+y,-z):(x-y,x,-z)::
+::3:f:-1:(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,1/2):
+::3:e:-1:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):
+::2:d:3..:(1/3,2/3,z):(2/3,1/3,-z)::
+::2:c:3..:(0,0,z):(0,0,-z)::
+::1:b:-3..:(0,0,1/2):::
+::1:a:-3..:(0,0,0):::
+436:R -3 :::::::
+::18:f:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,-z)
+:::::(y,-x+y,-z):(x-y,x,-z)::
+::9:e:-1:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):
+::9:d:-1:(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,1/2):
+::6:c:3:(0,0,z):(0,0,-z)::
+::3:b:-3:(0,0,1/2):::
+::3:a:-3:(0,0,0):::
+437:R -3 :::::::
+::6:f:1:(x,y,z):(z,x,y):(y,z,x):(-x,-y,-z)
+:::::(-z,-x,-y):(-y,-z,-x)::
+::3:e:-1:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::3:d:-1:(1/2,0,0):(0,1/2,0):(0,0,1/2):
+::2:c:3:(x,x,x):(-x,-x,-x)::
+::1:b:-3:(1/2,1/2,1/2):::
+::1:a:-3:(0,0,0):::
+438:P 3 1 2:::::::
+::6:l:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-y,-x,-z)
+:::::(-x+y,y,-z):(x,x-y,-z)::
+::3:k:..2:(x,-x,1/2):(x,2x,1/2):(-2x,-x,1/2):
+::3:j:..2:(x,-x,0):(x,2x,0):(-2x,-x,0):
+::2:i:3..:(2/3,1/3,z):(2/3,1/3,-z)::
+::2:h:3..:(1/3,2/3,z):(1/3,2/3,-z)::
+::2:g:3..:(0,0,z):(0,0,-z)::
+::1:f:3.2:(2/3,1/3,1/2):::
+::1:e:3.2:(2/3,1/3,0):::
+::1:d:3.2:(1/3,2/3,1/2):::
+::1:c:3.2:(1/3,2/3,0):::
+::1:b:3.2:(0,0,1/2):::
+::1:a:3.2:(0,0,0):::
+439:P 3 2 1:::::::
+::6:g:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(y,x,-z)
+:::::(x-y,-y,-z):(-x,-x+y,-z)::
+::3:f:.2.:(x,0,1/2):(0,x,1/2):(-x,-x,1/2):
+::3:e:.2.:(x,0,0):(0,x,0):(-x,-x,0):
+::2:d:3..:(1/3,2/3,z):(2/3,1/3,-z)::
+::2:c:3..:(0,0,z):(0,0,-z)::
+::1:b:32:(0,0,1/2):::
+::1:a:32:(0,0,0):::
+440:P 3sub1 1 2:::::::
+::6:c:1:(x,y,z):(-y,x-y,z+1/3):(-x+y,-x,z+2/3):(-y,-x,-z+2/3)
+:::::(-x+y,y,-z+1/3):(x,x-y,-z)::
+::3:b:..2:(x,-x,5/6):(x,2x,1/6):(-2x,-x,1/2):
+::3:a:..2:(x,-x,1/3):(x,2x,2/3):(-2x,-x,0):
+441:P 3sub1 2 1:::::::
+::6:c:1:(x,y,z):(-y,x-y,z+1/3):(-x+y,-x,z+2/3):(y,x,-z)
+:::::(x-y,-y,-z+2/3):(-x,-x+y,-z+1/3)::
+::3:b:.2.:(x,0,5/6):(0,x,1/6):(-x,-x,1/2):
+::3:a:.2.:(x,0,1/3):(0,x,2/3):(-x,-x,0):
+442:P 3sub2 1 2:::::::
+::6:c:1:(x,y,z):(-y,x-y,z+2/3):(-x+y,-x,z+1/3):(-y,-x,-z+1/3)
+:::::(-x+y,y,-z+2/3):(x,x-y,-z)::
+::3:b:..2:(x,-x,1/6):(x,2x,5/6):(-2x,-x,1/2):
+::3:a:..2:(x,-x,2/3):(x,2x,1/3):(-2x,-x,0):
+443:P 3sub2 2 1:::::::
+::6:c:1:(x,y,z):(-y,x-y,z+2/3):(-x+y,-x,z+1/3):(y,x,-z)
+:::::(x-y,-y,-z+1/3):(-x,-x+y,-z+2/3)::
+::3:b:.2.:(x,0,1/6):(0,x,5/6):(-x,-x,1/2):
+::3:a:.2.:(x,0,2/3):(0,x,1/3):(-x,-x,0):
+444:R 3 2 :::::::
+::18:f:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(y,x,-z)
+:::::(x-y,-y,-z):(-x,-x+y,-z)::
+::9:e:0.2:(x,0,1/2):(0,x,1/2):(-x,-x,1/2):
+::9:d:0.2:(x,0,0):(0,x,0):(-x,-x,0):
+::6:c:3:(0,0,z):(0,0,-z)::
+::3:b:32:(0,0,1/2):::
+::3:a:32:(0,0,0):::
+445:R 3 2 :::::::
+::6:f:1:(x,y,z):(z,x,y):(y,z,x):(-y,-x,-z)
+:::::(-x,-z,-y):(-z,-y,-x)::
+::3:e:0.2:(1/2,y,-y):(-y,1/2,y):(y,-y,1/2):
+::3:d:0.2:(0,y,-y):(-y,0,y):(y,-y,0):
+::2:c:3:(x,x,x):(-x,-x,-x)::
+::1:b:32:(1/2,1/2,1/2):::
+::1:a:32:(0,0,0):::
+446:P 3 m 1:::::::
+::6:e:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-y,-x,z)
+:::::(-x+y,y,z):(x,x-y,z)::
+::3:d:.m.:(x,-x,z):(x,2x,z):(-2x,-x,z):
+::1:c:3m.:(2/3,1/3,z):::
+::1:b:3m.:(1/3,2/3,z):::
+::1:a:3m.:(0,0,z):::
+447:P 3 1 m:::::::
+::6:d:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(y,x,z)
+:::::(x-y,-y,z):(-x,-x+y,z)::
+::3:c:..m:(x,0,z):(0,x,z):(-x,-x,z):
+::2:b:3..:(1/3,2/3,z):(2/3,1/3,z)::
+::1:a:3.m:(0,0,z):::
+448:P 3 c 1:::::::
+::6:d:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-y,-x,z+1/2)
+:::::(-x+y,y,z+1/2):(x,x-y,z+1/2)::
+::2:c:3..:(2/3,1/3,z):(2/3,1/3,z+1/2)::
+::2:b:3..:(1/3,2/3,z):(1/3,2/3,z+1/2)::
+::2:a:3..:(0,0,z):(0,0,z+1/2)::
+449:P 3 1 c:::::::
+::6:c:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(y,x,z+1/2)
+:::::(x-y,-y,z+1/2):(-x,-x+y,z+1/2)::
+::2:b:3..:(1/3,2/3,z):(2/3,1/3,z+1/2)::
+::2:a:3..:(0,0,z):(0,0,z+1/2)::
+450:R 3 m :::::::
+::18:c:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-y,-x,z)
+:::::(-x+y,y,z):(x,x-y,z)::
+::9:b:.m:(x,-x,z):(x,2x,z):(-2x,-x,z):
+::3:a:3m:(0,0,z):::
+451:R 3 m :::::::
+::6:c:1:(x,y,z):(z,x,y):(y,z,x):(y,x,z)
+:::::(x,z,y):(z,y,x)::
+::3:b:.m:(x,x,z):(z,x,x):(x,z,x):
+::1:a:3m:(x,x,x):::
+452:R 3 c :::::::
+::18:b:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-y,-x,z+1/2)
+:::::(-x+y,y,z+1/2):(x,x-y,z+1/2)::
+::6:a:3:(0,0,z):(0,0,z+1/2)::
+453:R 3 c :::::::
+::6:b:1:(x,y,z):(z,x,y):(y,z,x):(y+1/2,x+1/2,z+1/2)
+:::::(x+1/2,z+1/2,y+1/2):(z+1/2,y+1/2,x+1/2)::
+::2:a:3:(x,x,x):(x+1/2,x+1/2,x+1/2)::
+454:P -3 1 2/m:::::::
+::12:l:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-y,-x,-z)
+:::::(-x+y,y,-z):(x,x-y,-z):(-x,-y,-z):(y,-x+y,-z)
+:::::(x-y,x,-z):(y,x,z):(x-y,-y,z):(-x,-x+y,z)
+::6:k:..m:(x,0,z):(0,x,z):(-x,-x,z):(0,-x,-z)
+:::::(-x,0,-z):(x,x,-z)::
+::6:j:..2:(x,-x,1/2):(x,2x,1/2):(-2x,-x,1/2):(-x,x,1/2)
+:::::(-x,-2x,1/2):(2x,x,1/2)::
+::6:i:..2:(x,-x,0):(x,2x,0):(-2x,-x,0):(-x,x,0)
+:::::(-x,-2x,0):(2x,x,0)::
+::4:h:3..:(1/3,2/3,z):(1/3,2/3,-z):(2/3,1/3,-z):(2/3,1/3,z)
+::3:g:..2/m:(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,1/2):
+::3:f:..2/m:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):
+::2:e:3.m:(0,0,z):(0,0,-z)::
+::2:d:3.2:(1/3,2/3,1/2):(2/3,1/3,1/2)::
+::2:c:3.2:(1/3,2/3,0):(2/3,1/3,0)::
+::1:b:-3.m:(0,0,1/2):::
+::1:a:-3.m:(0,0,0):::
+455:P -3 1 2/c:::::::
+::12:i:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-y,-x,-z+1/2)
+:::::(-x+y,y,-z+1/2):(x,x-y,-z+1/2):(-x,-y,-z):(y,-x+y,-z)
+:::::(x-y,x,-z):(y,x,z+1/2):(x-y,-y,z+1/2):(-x,-x+y,z+1/2)
+::6:h:..2:(x,-x,1/4):(x,2x,1/4):(-2x,-x,1/4):(-x,x,3/4)
+:::::(-x,-2x,3/4):(2x,x,3/4)::
+::6:g:-1:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):(0,1/2,1/2)
+:::::(1/2,0,1/2):(1/2,1/2,1/2)::
+::4:f:3..:(1/3,2/3,z):(1/3,2/3,-z+1/2):(2/3,1/3,-z):(2/3,1/3,z+1/2)
+::4:e:3..:(0,0,z):(0,0,-z+1/2):(0,0,-z):(0,0,z+1/2)
+::2:d:3.2:(2/3,1/3,1/4):(1/3,2/3,3/4)::
+::2:c:3.2:(1/3,2/3,1/4):(2/3,1/3,3/4)::
+::2:b:-3..:(0,0,0):(0,0,1/2)::
+::2:a:3.2:(0,0,1/4):(0,0,3/4)::
+456:P -3 2/m 1:::::::
+::12:j:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(y,x,-z)
+:::::(x-y,-y,-z):(-x,-x+y,-z):(-x,-y,-z):(y,-x+y,-z)
+:::::(x-y,x,-z):(-y,-x,z):(-x+y,y,z):(x,x-y,z)
+::6:i:.m.:(x,-x,z):(x,2x,z):(-2x,-x,z):(-x,x,-z)
+:::::(2x,x,-z):(-x,-2x,-z)::
+::6:h:.2.:(x,0,1/2):(0,x,1/2):(-x,-x,1/2):(-x,0,1/2)
+:::::(0,-x,1/2):(x,x,1/2)::
+::6:g:.2.:(x,0,0):(0,x,0):(-x,-x,0):(-x,0,0)
+:::::(0,-x,0):(x,x,0)::
+::3:f:.2/m.:(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,1/2):
+::3:e:.2/m.:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):
+::2:d:3m.:(1/3,2/3,z):(2/3,1/3,-z)::
+::2:c:3m.:(0,0,z):(0,0,-z)::
+::1:b:-3m.:(0,0,1/2):::
+::1:a:-3m.:(0,0,0):::
+457:P -3 2/c 1:::::::
+::12:g:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(y,x,-z+1/2)
+:::::(x-y,-y,-z+1/2):(-x,-x+y,-z+1/2):(-x,-y,-z):(y,-x+y,-z)
+:::::(x-y,x,-z):(-y,-x,z+1/2):(-x+y,y,z+1/2):(x,x-y,z+1/2)
+::6:f:.2.:(x,0,1/4):(0,x,1/4):(-x,-x,1/4):(-x,0,3/4)
+:::::(0,-x,3/4):(x,x,3/4)::
+::6:e:-1:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):(0,1/2,1/2)
+:::::(1/2,0,1/2):(1/2,1/2,1/2)::
+::4:d:3..:(1/3,2/3,z):(2/3,1/3,-z+1/2):(2/3,1/3,-z):(1/3,2/3,z+1/2)
+::4:c:3..:(0,0,z):(0,0,-z+1/2):(0,0,-z):(0,0,z+1/2)
+::2:b:-3..:(0,0,0):(0,0,1/2)::
+::2:a:32:(0,0,1/4):(0,0,3/4)::
+458:R -3 2/m :::::::
+::36:i:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(y,x,-z)
+:::::(x-y,-y,-z):(-x,-x+y,-z):(-x,-y,-z):(y,-x+y,-z)
+:::::(x-y,x,-z):(-y,-x,z):(-x+y,y,z):(x,x-y,z)
+::18:h:.m:(x,-x,z):(x,2x,z):(-2x,-x,z):(-x,x,-z)
+:::::(2x,x,-z):(-x,-2x,-z)::
+::18:g:0.2:(x,0,1/2):(0,x,1/2):(-x,-x,1/2):(-x,0,1/2)
+:::::(0,-x,1/2):(x,x,1/2)::
+::18:f:0.2:(x,0,0):(0,x,0):(-x,-x,0):(-x,0,0)
+:::::(0,-x,0):(x,x,0)::
+::9:e:.2/m:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):
+::9:d:.2/m:(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,1/2):
+::6:c:3m:(0,0,z):(0,0,-z)::
+::3:b:-3m:(0,0,1/2):::
+::3:a:-3m:(0,0,0):::
+459:R -3 2/m :::::::
+::12:i:1:(x,y,z):(z,x,y):(y,z,x):(-y,-x,-z)
+:::::(-x,-z,-y):(-z,-y,-x):(-x,-y,-z):(-z,-x,-y)
+:::::(-y,-z,-x):(y,x,z):(x,z,y):(z,y,x)
+::6:h:.m:(x,x,z):(z,x,x):(x,z,x):(-x,-x,-z)
+:::::(-x,-z,-x):(-z,-x,-x)::
+::6:g:0.2:(x,-x,1/2):(1/2,x,-x):(-x,1/2,x):(-x,x,1/2)
+:::::(1/2,-x,x):(x,1/2,-x)::
+::6:f:0.2:(x,-x,0):(0,x,-x):(-x,0,x):(-x,x,0)
+:::::(0,-x,x):(x,0,-x)::
+::3:e:.2/m:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::3:d:.2/m:(1/2,0,0):(0,1/2,0):(0,0,1/2):
+::2:c:3m:(x,x,x):(-x,-x,-x)::
+::1:b:-3m:(1/2,1/2,1/2):::
+::1:a:-3m:(0,0,0):::
+460:R -3 2/c :::::::
+::36:f:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(y,x,-z+1/2)
+:::::(x-y,-y,-z+1/2):(-x,-x+y,-z+1/2):(-x,-y,-z):(y,-x+y,-z)
+:::::(x-y,x,-z):(-y,-x,z+1/2):(-x+y,y,z+1/2):(x,x-y,z+1/2)
+::18:e:0.2:(x,0,1/4):(0,x,1/4):(-x,-x,1/4):(-x,0,3/4)
+:::::(0,-x,3/4):(x,x,3/4)::
+::18:d:-1:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):(0,1/2,1/2)
+:::::(1/2,0,1/2):(1/2,1/2,1/2)::
+::12:c:3:(0,0,z):(0,0,-z+1/2):(0,0,-z):(0,0,z+1/2)
+::6:b:-3:(0,0,0):(0,0,1/2)::
+::6:a:32:(0,0,1/4):(0,0,3/4)::
+461:R -3 2/c :::::::
+::12:f:1:(x,y,z):(z,x,y):(y,z,x):(-y+1/2,-x+1/2,-z+1/2)
+:::::(-x+1/2,-z+1/2,-y+1/2):(-z+1/2,-y+1/2,-x+1/2):(-x,-y,-z):(-z,-x,-y)
+:::::(-y,-z,-x):(y+1/2,x+1/2,z+1/2):(x+1/2,z+1/2,y+1/2):(z+1/2,y+1/2,x+1/2)
+::6:e:0.2:(x,-x+1/2,1/4):(1/4,x,-x+1/2):(-x+1/2,1/4,x):(-x,x+1/2,3/4)
+:::::(3/4,-x,x+1/2):(x+1/2,3/4,-x)::
+::6:d:-1:(1/2,0,0):(0,1/2,0):(0,0,1/2):(1/2,0,1/2)
+:::::(0,1/2,1/2):(1/2,1/2,0)::
+::4:c:3:(x,x,x):(-x+1/2,-x+1/2,-x+1/2):(-x,-x,-x):(x+1/2,x+1/2,x+1/2)
+::2:b:-3:(0,0,0):(1/2,1/2,1/2)::
+::2:a:32:(1/4,1/4,1/4):(3/4,3/4,3/4)::
+462:P 6 :::::::
+::6:d:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z)
+:::::(y,-x+y,z):(x-y,x,z)::
+::3:c:2..:(1/2,0,z):(0,1/2,z):(1/2,1/2,z):
+::2:b:3..:(1/3,2/3,z):(2/3,1/3,z)::
+::1:a:6..:(0,0,z):::
+463:P 6sub1 :::::::
+::6:a:1:(x,y,z):(-y,x-y,z+1/3):(-x+y,-x,z+2/3):(-x,-y,z+1/2)
+:::::(y,-x+y,z+5/6):(x-y,x,z+1/6)::
+464:P 6sub5 :::::::
+::6:a:1:(x,y,z):(-y,x-y,z+2/3):(-x+y,-x,z+1/3):(-x,-y,z+1/2)
+:::::(y,-x+y,z+1/6):(x-y,x,z+5/6)::
+465:P 6sub2 :::::::
+::6:c:1:(x,y,z):(-y,x-y,z+2/3):(-x+y,-x,z+1/3):(-x,-y,z)
+:::::(y,-x+y,z+2/3):(x-y,x,z+1/3)::
+::3:b:2..:(1/2,1/2,z):(1/2,0,z+2/3):(0,1/2,z+1/3):
+::3:a:2..:(0,0,z):(0,0,z+2/3):(0,0,z+1/3):
+466:P 6sub4 :::::::
+::6:c:1:(x,y,z):(-y,x-y,z+1/3):(-x+y,-x,z+2/3):(-x,-y,z)
+:::::(y,-x+y,z+1/3):(x-y,x,z+2/3)::
+::3:b:2..:(1/2,1/2,z):(1/2,0,z+1/3):(0,1/2,z+2/3):
+::3:a:2..:(0,0,z):(0,0,z+1/3):(0,0,z+2/3):
+467:P 6sub3 :::::::
+::6:c:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z+1/2)
+:::::(y,-x+y,z+1/2):(x-y,x,z+1/2)::
+::2:b:3..:(1/3,2/3,z):(2/3,1/3,z+1/2)::
+::2:a:3..:(0,0,z):(0,0,z+1/2)::
+468:P -6 :::::::
+::6:l:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(x,y,-z)
+:::::(-y,x-y,-z):(-x+y,-x,-z)::
+::3:k:m..:(x,y,1/2):(-y,x-y,1/2):(-x+y,-x,1/2):
+::3:j:m..:(x,y,0):(-y,x-y,0):(-x+y,-x,0):
+::2:i:3..:(2/3,1/3,z):(2/3,1/3,-z)::
+::2:h:3..:(1/3,2/3,z):(1/3,2/3,-z)::
+::2:g:3..:(0,0,z):(0,0,-z)::
+::1:f:-6..:(2/3,1/3,1/2):::
+::1:e:-6..:(2/3,1/3,0):::
+::1:d:-6..:(1/3,2/3,1/2):::
+::1:c:-6..:(1/3,2/3,0):::
+::1:b:-6..:(0,0,1/2):::
+::1:a:-6..:(0,0,0):::
+469:P 6/m :::::::
+::12:l:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z)
+:::::(y,-x+y,z):(x-y,x,z):(-x,-y,-z):(y,-x+y,-z)
+:::::(x-y,x,-z):(x,y,-z):(-y,x-y,-z):(-x+y,-x,-z)
+::6:k:m..:(x,y,1/2):(-y,x-y,1/2):(-x+y,-x,1/2):(-x,-y,1/2)
+:::::(y,-x+y,1/2):(x-y,x,1/2)::
+::6:j:m..:(x,y,0):(-y,x-y,0):(-x+y,-x,0):(-x,-y,0)
+:::::(y,-x+y,0):(x-y,x,0)::
+::6:i:2..:(1/2,0,z):(0,1/2,z):(1/2,1/2,z):(1/2,0,-z)
+:::::(0,1/2,-z):(1/2,1/2,-z)::
+::4:h:3..:(1/3,2/3,z):(2/3,1/3,z):(2/3,1/3,-z):(1/3,2/3,-z)
+::3:g:2/m..:(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,1/2):
+::3:f:2/m..:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):
+::2:e:6..:(0,0,z):(0,0,-z)::
+::2:d:-6..:(1/3,2/3,1/2):(2/3,1/3,1/2)::
+::2:c:-6..:(1/3,2/3,0):(2/3,1/3,0)::
+::1:b:6/m..:(0,0,1/2):::
+::1:a:6/m..:(0,0,0):::
+470:P 6sub3/m :::::::
+::12:i:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z+1/2)
+:::::(y,-x+y,z+1/2):(x-y,x,z+1/2):(-x,-y,-z):(y,-x+y,-z)
+:::::(x-y,x,-z):(x,y,-z+1/2):(-y,x-y,-z+1/2):(-x+y,-x,-z+1/2)
+::6:h:m..:(x,y,1/4):(-y,x-y,1/4):(-x+y,-x,1/4):(-x,-y,3/4)
+:::::(y,-x+y,3/4):(x-y,x,3/4)::
+::6:g:-1:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):(1/2,0,1/2)
+:::::(0,1/2,1/2):(1/2,1/2,1/2)::
+::4:f:3..:(1/3,2/3,z):(2/3,1/3,z+1/2):(2/3,1/3,-z):(1/3,2/3,-z+1/2)
+::4:e:3..:(0,0,z):(0,0,z+1/2):(0,0,-z):(0,0,-z+1/2)
+::2:d:-6..:(2/3,1/3,1/4):(1/3,2/3,3/4)::
+::2:c:-6..:(1/3,2/3,1/4):(2/3,1/3,3/4)::
+::2:b:-3..:(0,0,0):(0,0,1/2)::
+::2:a:-6..:(0,0,1/4):(0,0,3/4)::
+471:P 6 2 2:::::::
+::12:n:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z)
+:::::(y,-x+y,z):(x-y,x,z):(y,x,-z):(x-y,-y,-z)
+:::::(-x,-x+y,-z):(-y,-x,-z):(-x+y,y,-z):(x,x-y,-z)
+::6:m:..2:(x,-x,1/2):(x,2x,1/2):(-2x,-x,1/2):(-x,x,1/2)
+:::::(-x,-2x,1/2):(2x,x,1/2)::
+::6:l:..2:(x,-x,0):(x,2x,0):(-2x,-x,0):(-x,x,0)
+:::::(-x,-2x,0):(2x,x,0)::
+::6:k:.2.:(x,0,1/2):(0,x,1/2):(-x,-x,1/2):(-x,0,1/2)
+:::::(0,-x,1/2):(x,x,1/2)::
+::6:j:.2.:(x,0,0):(0,x,0):(-x,-x,0):(-x,0,0)
+:::::(0,-x,0):(x,x,0)::
+::6:i:2..:(1/2,0,z):(0,1/2,z):(1/2,1/2,z):(0,1/2,-z)
+:::::(1/2,0,-z):(1/2,1/2,-z)::
+::4:h:3..:(1/3,2/3,z):(2/3,1/3,z):(2/3,1/3,-z):(1/3,2/3,-z)
+::3:g:222:(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,1/2):
+::3:f:222:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):
+::2:e:6..:(0,0,z):(0,0,-z)::
+::2:d:3.2:(1/3,2/3,1/2):(2/3,1/3,1/2)::
+::2:c:3.2:(1/3,2/3,0):(2/3,1/3,0)::
+::1:b:622:(0,0,1/2):::
+::1:a:622:(0,0,0):::
+472:P 6sub1 2 2:::::::
+::12:c:1:(x,y,z):(-y,x-y,z+1/3):(-x+y,-x,z+2/3):(-x,-y,z+1/2)
+:::::(y,-x+y,z+5/6):(x-y,x,z+1/6):(y,x,-z+1/3):(x-y,-y,-z)
+:::::(-x,-x+y,-z+2/3):(-y,-x,-z+5/6):(-x+y,y,-z+1/2):(x,x-y,-z+1/6)
+::6:b:..2:(x,2x,1/4):(-2x,-x,7/12):(x,-x,11/12):(-x,-2x,3/4)
+:::::(2x,x,1/12):(-x,x,5/12)::
+::6:a:.2.:(x,0,0):(0,x,1/3):(-x,-x,2/3):(-x,0,1/2)
+:::::(0,-x,5/6):(x,x,1/6)::
+473:P 6sub5 2 2:::::::
+::12:c:1:(x,y,z):(-y,x-y,z+2/3):(-x+y,-x,z+1/3):(-x,-y,z+1/2)
+:::::(y,-x+y,z+1/6):(x-y,x,z+5/6):(y,x,-z+2/3):(x-y,-y,-z)
+:::::(-x,-x+y,-z+1/3):(-y,-x,-z+1/6):(-x+y,y,-z+1/2):(x,x-y,-z+5/6)
+::6:b:..2:(x,2x,3/4):(-2x,-x,5/12):(x,-x,1/12):(-x,-2x,1/4)
+:::::(2x,x,11/12):(-x,x,7/12)::
+::6:a:.2.:(x,0,0):(0,x,2/3):(-x,-x,1/3):(-x,0,1/2)
+:::::(0,-x,1/6):(x,x,5/6)::
+474:P 6sub2 2 2:::::::
+::12:k:1:(x,y,z):(-y,x-y,z+2/3):(-x+y,-x,z+1/3):(-x,-y,z)
+:::::(y,-x+y,z+2/3):(x-y,x,z+1/3):(y,x,-z+2/3):(x-y,-y,-z)
+:::::(-x,-x+y,-z+1/3):(-y,-x,-z+2/3):(-x+y,y,-z):(x,x-y,-z+1/3)
+::6:j:..2:(x,2x,1/2):(-2x,-x,1/6):(x,-x,5/6):(-x,-2x,1/2)
+:::::(2x,x,1/6):(-x,x,5/6)::
+::6:i:..2:(x,2x,0):(-2x,-x,2/3):(x,-x,1/3):(-x,-2x,0)
+:::::(2x,x,2/3):(-x,x,1/3)::
+::6:h:.2.:(x,0,1/2):(0,x,1/6):(-x,-x,5/6):(-x,0,1/2)
+:::::(0,-x,1/6):(x,x,5/6)::
+::6:g:.2.:(x,0,0):(0,x,2/3):(-x,-x,1/3):(-x,0,0)
+:::::(0,-x,2/3):(x,x,1/3)::
+::6:f:2..:(1/2,0,z):(0,1/2,z+2/3):(1/2,1/2,z+1/3):(0,1/2,-z+2/3)
+:::::(1/2,0,-z):(1/2,1/2,-z+1/3)::
+::6:e:2..:(0,0,z):(0,0,z+2/3):(0,0,z+1/3):(0,0,-z+2/3)
+:::::(0,0,-z):(0,0,-z+1/3)::
+::3:d:222:(1/2,0,1/2):(0,1/2,1/6):(1/2,1/2,5/6):
+::3:c:222:(1/2,0,0):(0,1/2,2/3):(1/2,1/2,1/3):
+::3:b:222:(0,0,1/2):(0,0,1/6):(0,0,5/6):
+::3:a:222:(0,0,0):(0,0,2/3):(0,0,1/3):
+475:P 6sub4 2 2:::::::
+::12:k:1:(x,y,z):(-y,x-y,z+1/3):(-x+y,-x,z+2/3):(-x,-y,z)
+:::::(y,-x+y,z+1/3):(x-y,x,z+2/3):(y,x,-z+1/3):(x-y,-y,-z)
+:::::(-x,-x+y,-z+2/3):(-y,-x,-z+1/3):(-x+y,y,-z):(x,x-y,-z+2/3)
+::6:j:..2:(x,2x,1/2):(-2x,-x,5/6):(x,-x,1/6):(-x,-2x,1/2)
+:::::(2x,x,5/6):(-x,x,1/6)::
+::6:i:..2:(x,2x,0):(-2x,-x,1/3):(x,-x,2/3):(-x,-2x,0)
+:::::(2x,x,1/3):(-x,x,2/3)::
+::6:h:.2.:(x,0,1/2):(0,x,5/6):(-x,-x,1/6):(-x,0,1/2)
+:::::(0,-x,5/6):(x,x,1/6)::
+::6:g:.2.:(x,0,0):(0,x,1/3):(-x,-x,2/3):(-x,0,0)
+:::::(0,-x,1/3):(x,x,2/3)::
+::6:f:2..:(1/2,0,z):(0,1/2,z+1/3):(1/2,1/2,z+2/3):(0,1/2,-z+1/3)
+:::::(1/2,0,-z):(1/2,1/2,-z+2/3)::
+::6:e:2..:(0,0,z):(0,0,z+1/3):(0,0,z+2/3):(0,0,-z+1/3)
+:::::(0,0,-z):(0,0,-z+2/3)::
+::3:d:222:(1/2,0,1/2):(0,1/2,5/6):(1/2,1/2,1/6):
+::3:c:222:(1/2,0,0):(0,1/2,1/3):(1/2,1/2,2/3):
+::3:b:222:(0,0,1/2):(0,0,5/6):(0,0,1/6):
+::3:a:222:(0,0,0):(0,0,1/3):(0,0,2/3):
+476:P 6sub3 2 2:::::::
+::12:i:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z+1/2)
+:::::(y,-x+y,z+1/2):(x-y,x,z+1/2):(y,x,-z):(x-y,-y,-z)
+:::::(-x,-x+y,-z):(-y,-x,-z+1/2):(-x+y,y,-z+1/2):(x,x-y,-z+1/2)
+::6:h:..2:(x,2x,1/4):(-2x,-x,1/4):(x,-x,1/4):(-x,-2x,3/4)
+:::::(2x,x,3/4):(-x,x,3/4)::
+::6:g:.2.:(x,0,0):(0,x,0):(-x,-x,0):(-x,0,1/2)
+:::::(0,-x,1/2):(x,x,1/2)::
+::4:f:3..:(1/3,2/3,z):(2/3,1/3,z+1/2):(2/3,1/3,-z):(1/3,2/3,-z+1/2)
+::4:e:3..:(0,0,z):(0,0,z+1/2):(0,0,-z):(0,0,-z+1/2)
+::2:d:3.2:(1/3,2/3,3/4):(2/3,1/3,1/4)::
+::2:c:3.2:(1/3,2/3,1/4):(2/3,1/3,3/4)::
+::2:b:3.2:(0,0,1/4):(0,0,3/4)::
+::2:a:32:(0,0,0):(0,0,1/2)::
+477:P 6 m m:::::::
+::12:f:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z)
+:::::(y,-x+y,z):(x-y,x,z):(-y,-x,z):(-x+y,y,z)
+:::::(x,x-y,z):(y,x,z):(x-y,-y,z):(-x,-x+y,z)
+::6:e:.m.:(x,-x,z):(x,2x,z):(-2x,-x,z):(-x,x,z)
+:::::(-x,-2x,z):(2x,x,z)::
+::6:d:..m:(x,0,z):(0,x,z):(-x,-x,z):(-x,0,z)
+:::::(0,-x,z):(x,x,z)::
+::3:c:2mm:(1/2,0,z):(0,1/2,z):(1/2,1/2,z):
+::2:b:3m.:(1/3,2/3,z):(2/3,1/3,z)::
+::1:a:6mm:(0,0,z):::
+478:P 6 c c:::::::
+::12:d:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z)
+:::::(y,-x+y,z):(x-y,x,z):(-y,-x,z+1/2):(-x+y,y,z+1/2)
+:::::(x,x-y,z+1/2):(y,x,z+1/2):(x-y,-y,z+1/2):(-x,-x+y,z+1/2)
+::6:c:2..:(1/2,0,z):(0,1/2,z):(1/2,1/2,z):(0,1/2,z+1/2)
+:::::(1/2,0,z+1/2):(1/2,1/2,z+1/2)::
+::4:b:3..:(1/3,2/3,z):(2/3,1/3,z):(1/3,2/3,z+1/2):(2/3,1/3,z+1/2)
+::2:a:6..:(0,0,z):(0,0,z+1/2)::
+479:P 6sub3 c m:::::::
+::12:d:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z+1/2)
+:::::(y,-x+y,z+1/2):(x-y,x,z+1/2):(-y,-x,z+1/2):(-x+y,y,z+1/2)
+:::::(x,x-y,z+1/2):(y,x,z):(x-y,-y,z):(-x,-x+y,z)
+::6:c:..m:(x,0,z):(0,x,z):(-x,-x,z):(-x,0,z+1/2)
+:::::(0,-x,z+1/2):(x,x,z+1/2)::
+::4:b:3..:(1/3,2/3,z):(2/3,1/3,z+1/2):(1/3,2/3,z+1/2):(2/3,1/3,z)
+::2:a:3.m:(0,0,z):(0,0,z+1/2)::
+480:P 6sub3 m c:::::::
+::12:d:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z+1/2)
+:::::(y,-x+y,z+1/2):(x-y,x,z+1/2):(-y,-x,z):(-x+y,y,z)
+:::::(x,x-y,z):(y,x,z+1/2):(x-y,-y,z+1/2):(-x,-x+y,z+1/2)
+::6:c:.m.:(x,-x,z):(x,2x,z):(-2x,-x,z):(-x,x,z+1/2)
+:::::(-x,-2x,z+1/2):(2x,x,z+1/2)::
+::2:b:3m.:(1/3,2/3,z):(2/3,1/3,z+1/2)::
+::2:a:3m.:(0,0,z):(0,0,z+1/2)::
+481:P -6 m 2:::::::
+::12:o:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(x,y,-z)
+:::::(-y,x-y,-z):(-x+y,-x,-z):(-y,-x,z):(-x+y,y,z)
+:::::(x,x-y,z):(-y,-x,-z):(-x+y,y,-z):(x,x-y,-z)
+::6:n:.m.:(x,-x,z):(x,2x,z):(-2x,-x,z):(x,-x,-z)
+:::::(x,2x,-z):(-2x,-x,-z)::
+::6:m:m..:(x,y,1/2):(-y,x-y,1/2):(-x+y,-x,1/2):(-y,-x,1/2)
+:::::(-x+y,y,1/2):(x,x-y,1/2)::
+::6:l:m..:(x,y,0):(-y,x-y,0):(-x+y,-x,0):(-y,-x,0)
+:::::(-x+y,y,0):(x,x-y,0)::
+::3:k:mm2:(x,-x,1/2):(x,2x,1/2):(-2x,-x,1/2):
+::3:j:mm2:(x,-x,0):(x,2x,0):(-2x,-x,0):
+::2:i:3m.:(2/3,1/3,z):(2/3,1/3,-z)::
+::2:h:3m.:(1/3,2/3,z):(1/3,2/3,-z)::
+::2:g:3m.:(0,0,z):(0,0,-z)::
+::1:f:-6m2:(2/3,1/3,1/2):::
+::1:e:-6m2:(2/3,1/3,0):::
+::1:d:-6m2:(1/3,2/3,1/2):::
+::1:c:-6m2:(1/3,2/3,0):::
+::1:b:-6m2:(0,0,1/2):::
+::1:a:-6m2:(0,0,0):::
+482:P -6 c 2:::::::
+::12:l:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(x,y,-z+1/2)
+:::::(-y,x-y,-z+1/2):(-x+y,-x,-z+1/2):(-y,-x,z+1/2):(-x+y,y,z+1/2)
+:::::(x,x-y,z+1/2):(-y,-x,-z):(-x+y,y,-z):(x,x-y,-z)
+::6:k:m..:(x,y,1/4):(-y,x-y,1/4):(-x+y,-x,1/4):(-y,-x,3/4)
+:::::(-x+y,y,3/4):(x,x-y,3/4)::
+::6:j:..2:(x,-x,0):(x,2x,0):(-2x,-x,0):(x,-x,1/2)
+:::::(x,2x,1/2):(-2x,-x,1/2)::
+::4:i:3..:(2/3,1/3,z):(2/3,1/3,-z+1/2):(2/3,1/3,z+1/2):(2/3,1/3,-z)
+::4:h:3..:(1/3,2/3,z):(1/3,2/3,-z+1/2):(1/3,2/3,z+1/2):(1/3,2/3,-z)
+::4:g:3..:(0,0,z):(0,0,-z+1/2):(0,0,z+1/2):(0,0,-z)
+::2:f:-6..:(2/3,1/3,1/4):(2/3,1/3,3/4)::
+::2:e:3.2:(2/3,1/3,0):(2/3,1/3,1/2)::
+::2:d:-6..:(1/3,2/3,1/4):(1/3,2/3,3/4)::
+::2:c:3.2:(1/3,2/3,0):(1/3,2/3,1/2)::
+::2:b:-6..:(0,0,1/4):(0,0,3/4)::
+::2:a:3.2:(0,0,0):(0,0,1/2)::
+483:P -6 2 m:::::::
+::12:l:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(x,y,-z)
+:::::(-y,x-y,-z):(-x+y,-x,-z):(y,x,-z):(x-y,-y,-z)
+:::::(-x,-x+y,-z):(y,x,z):(x-y,-y,z):(-x,-x+y,z)
+::6:k:m..:(x,y,1/2):(-y,x-y,1/2):(-x+y,-x,1/2):(y,x,1/2)
+:::::(x-y,-y,1/2):(-x,-x+y,1/2)::
+::6:j:m..:(x,y,0):(-y,x-y,0):(-x+y,-x,0):(y,x,0)
+:::::(x-y,-y,0):(-x,-x+y,0)::
+::6:i:..m:(x,0,z):(0,x,z):(-x,-x,z):(x,0,-z)
+:::::(0,x,-z):(-x,-x,-z)::
+::4:h:3..:(1/3,2/3,z):(1/3,2/3,-z):(2/3,1/3,-z):(2/3,1/3,z)
+::3:g:m2m:(x,0,1/2):(0,x,1/2):(-x,-x,1/2):
+::3:f:m2m:(x,0,0):(0,x,0):(-x,-x,0):
+::2:e:3.m:(0,0,z):(0,0,-z)::
+::2:d:-6..:(1/3,2/3,1/2):(2/3,1/3,1/2)::
+::2:c:-6..:(1/3,2/3,0):(2/3,1/3,0)::
+::1:b:-62m:(0,0,1/2):::
+::1:a:-62m:(0,0,0):::
+484:P -6 2 c:::::::
+::12:i:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(x,y,-z+1/2)
+:::::(-y,x-y,-z+1/2):(-x+y,-x,-z+1/2):(y,x,-z):(x-y,-y,-z)
+:::::(-x,-x+y,-z):(y,x,z+1/2):(x-y,-y,z+1/2):(-x,-x+y,z+1/2)
+::6:h:m..:(x,y,1/4):(-y,x-y,1/4):(-x+y,-x,1/4):(y,x,3/4)
+:::::(x-y,-y,3/4):(-x,-x+y,3/4)::
+::6:g:.2.:(x,0,0):(0,x,0):(-x,-x,0):(x,0,1/2)
+:::::(0,x,1/2):(-x,-x,1/2)::
+::4:f:3..:(1/3,2/3,z):(1/3,2/3,-z+1/2):(2/3,1/3,-z):(2/3,1/3,z+1/2)
+::4:e:3..:(0,0,z):(0,0,-z+1/2):(0,0,-z):(0,0,z+1/2)
+::2:d:-6..:(2/3,1/3,1/4):(1/3,2/3,3/4)::
+::2:c:-6..:(1/3,2/3,1/4):(2/3,1/3,3/4)::
+::2:b:-6..:(0,0,1/4):(0,0,3/4)::
+::2:a:32:(0,0,0):(0,0,1/2)::
+485:P 6/m 2/m 2/m:::::::
+::24:r:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z)
+:::::(y,-x+y,z):(x-y,x,z):(y,x,-z):(x-y,-y,-z)
+:::::(-x,-x+y,-z):(-y,-x,-z):(-x+y,y,-z):(x,x-y,-z)
+:::::(-x,-y,-z):(y,-x+y,-z):(x-y,x,-z):(x,y,-z)
+:::::(-y,x-y,-z):(-x+y,-x,-z):(-y,-x,z):(-x+y,y,z)
+:::::(x,x-y,z):(y,x,z):(x-y,-y,z):(-x,-x+y,z)
+::12:q:m..:(x,y,1/2):(-y,x-y,1/2):(-x+y,-x,1/2):(-x,-y,1/2)
+:::::(y,-x+y,1/2):(x-y,x,1/2):(y,x,1/2):(x-y,-y,1/2)
+:::::(-x,-x+y,1/2):(-y,-x,1/2):(-x+y,y,1/2):(x,x-y,1/2)
+::12:p:m..:(x,y,0):(-y,x-y,0):(-x+y,-x,0):(-x,-y,0)
+:::::(y,-x+y,0):(x-y,x,0):(y,x,0):(x-y,-y,0)
+:::::(-x,-x+y,0):(-y,-x,0):(-x+y,y,0):(x,x-y,0)
+::12:o:.m.:(x,2x,z):(-2x,-x,z):(x,-x,z):(-x,-2x,z)
+:::::(2x,x,z):(-x,x,z):(2x,x,-z):(-x,-2x,-z)
+:::::(-x,x,-z):(-2x,-x,-z):(x,2x,-z):(x,-x,-z)
+::12:n:..m:(x,0,z):(0,x,z):(-x,-x,z):(-x,0,z)
+:::::(0,-x,z):(x,x,z):(0,x,-z):(x,0,-z)
+:::::(-x,-x,-z):(0,-x,-z):(-x,0,-z):(x,x,-z)
+::6:m:mm2:(x,2x,1/2):(-2x,-x,1/2):(x,-x,1/2):(-x,-2x,1/2)
+:::::(2x,x,1/2):(-x,x,1/2)::
+::6:l:mm2:(x,2x,0):(-2x,-x,0):(x,-x,0):(-x,-2x,0)
+:::::(2x,x,0):(-x,x,0)::
+::6:k:m2m:(x,0,1/2):(0,x,1/2):(-x,-x,1/2):(-x,0,1/2)
+:::::(0,-x,1/2):(x,x,1/2)::
+::6:j:m2m:(x,0,0):(0,x,0):(-x,-x,0):(-x,0,0)
+:::::(0,-x,0):(x,x,0)::
+::6:i:2mm:(1/2,0,z):(0,1/2,z):(1/2,1/2,z):(0,1/2,-z)
+:::::(1/2,0,-z):(1/2,1/2,-z)::
+::4:h:3m.:(1/3,2/3,z):(2/3,1/3,z):(2/3,1/3,-z):(1/3,2/3,-z)
+::3:g:mmm:(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,1/2):
+::3:f:mmm:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):
+::2:e:6mm:(0,0,z):(0,0,-z)::
+::2:d:-6m2:(1/3,2/3,1/2):(2/3,1/3,1/2)::
+::2:c:-6m2:(1/3,2/3,0):(2/3,1/3,0)::
+::1:b:6/mmm:(0,0,1/2):::
+::1:a:6/mmm:(0,0,0):::
+486:P 6/m 2/c 2/c:::::::
+::24:m:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z)
+:::::(y,-x+y,z):(x-y,x,z):(y,x,-z+1/2):(x-y,-y,-z+1/2)
+:::::(-x,-x+y,-z+1/2):(-y,-x,-z+1/2):(-x+y,y,-z+1/2):(x,x-y,-z+1/2)
+:::::(-x,-y,-z):(y,-x+y,-z):(x-y,x,-z):(x,y,-z)
+:::::(-y,x-y,-z):(-x+y,-x,-z):(-y,-x,z+1/2):(-x+y,y,z+1/2)
+:::::(x,x-y,z+1/2):(y,x,z+1/2):(x-y,-y,z+1/2):(-x,-x+y,z+1/2)
+::12:l:m..:(x,y,0):(-y,x-y,0):(-x+y,-x,0):(-x,-y,0)
+:::::(y,-x+y,0):(x-y,x,0):(y,x,1/2):(x-y,-y,1/2)
+:::::(-x,-x+y,1/2):(-y,-x,1/2):(-x+y,y,1/2):(x,x-y,1/2)
+::12:k:..2:(x,2x,1/4):(-2x,-x,1/4):(x,-x,1/4):(-x,-2x,1/4)
+:::::(2x,x,1/4):(-x,x,1/4):(-x,-2x,3/4):(2x,x,3/4)
+:::::(-x,x,3/4):(x,2x,3/4):(-2x,-x,3/4):(x,-x,3/4)
+::12:j:.2.:(x,0,1/4):(0,x,1/4):(-x,-x,1/4):(-x,0,1/4)
+:::::(0,-x,1/4):(x,x,1/4):(-x,0,3/4):(0,-x,3/4)
+:::::(x,x,3/4):(x,0,3/4):(0,x,3/4):(-x,-x,3/4)
+::12:i:2..:(1/2,0,z):(0,1/2,z):(1/2,1/2,z):(0,1/2,-z+1/2)
+:::::(1/2,0,-z+1/2):(1/2,1/2,-z+1/2):(1/2,0,-z):(0,1/2,-z)
+:::::(1/2,1/2,-z):(0,1/2,z+1/2):(1/2,0,z+1/2):(1/2,1/2,z+1/2)
+::8:h:3..:(1/3,2/3,z):(2/3,1/3,z):(2/3,1/3,-z+1/2):(1/3,2/3,-z+1/2)
+:::::(2/3,1/3,-z):(1/3,2/3,-z):(1/3,2/3,z+1/2):(2/3,1/3,z+1/2)
+::6:g:2/m..:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):(0,1/2,1/2)
+:::::(1/2,0,1/2):(1/2,1/2,1/2)::
+::6:f:222:(1/2,0,1/4):(0,1/2,1/4):(1/2,1/2,1/4):(1/2,0,3/4)
+:::::(0,1/2,3/4):(1/2,1/2,3/4)::
+::4:e:6..:(0,0,z):(0,0,-z+1/2):(0,0,-z):(0,0,z+1/2)
+::4:d:-6..:(1/3,2/3,0):(2/3,1/3,0):(2/3,1/3,1/2):(1/3,2/3,1/2)
+::4:c:3.2:(1/3,2/3,1/4):(2/3,1/3,1/4):(2/3,1/3,3/4):(1/3,2/3,3/4)
+::2:b:6/m..:(0,0,0):(0,0,1/2)::
+::2:a:622:(0,0,1/4):(0,0,3/4)::
+487:P 6sub3/m 2/c 2/m:::::::
+::24:l:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z+1/2)
+:::::(y,-x+y,z+1/2):(x-y,x,z+1/2):(y,x,-z+1/2):(x-y,-y,-z+1/2)
+:::::(-x,-x+y,-z+1/2):(-y,-x,-z):(-x+y,y,-z):(x,x-y,-z)
+:::::(-x,-y,-z):(y,-x+y,-z):(x-y,x,-z):(x,y,-z+1/2)
+:::::(-y,x-y,-z+1/2):(-x+y,-x,-z+1/2):(-y,-x,z+1/2):(-x+y,y,z+1/2)
+:::::(x,x-y,z+1/2):(y,x,z):(x-y,-y,z):(-x,-x+y,z)
+::12:k:..m:(x,0,z):(0,x,z):(-x,-x,z):(-x,0,z+1/2)
+:::::(0,-x,z+1/2):(x,x,z+1/2):(0,x,-z+1/2):(x,0,-z+1/2)
+:::::(-x,-x,-z+1/2):(0,-x,-z):(-x,0,-z):(x,x,-z)
+::12:j:m..:(x,y,1/4):(-y,x-y,1/4):(-x+y,-x,1/4):(-x,-y,3/4)
+:::::(y,-x+y,3/4):(x-y,x,3/4):(y,x,1/4):(x-y,-y,1/4)
+:::::(-x,-x+y,1/4):(-y,-x,3/4):(-x+y,y,3/4):(x,x-y,3/4)
+::12:i:..2:(x,2x,0):(-2x,-x,0):(x,-x,0):(-x,-2x,1/2)
+:::::(2x,x,1/2):(-x,x,1/2):(-x,-2x,0):(2x,x,0)
+:::::(-x,x,0):(x,2x,1/2):(-2x,-x,1/2):(x,-x,1/2)
+::8:h:3..:(1/3,2/3,z):(2/3,1/3,z+1/2):(2/3,1/3,-z+1/2):(1/3,2/3,-z)
+:::::(2/3,1/3,-z):(1/3,2/3,-z+1/2):(1/3,2/3,z+1/2):(2/3,1/3,z)
+::6:g:m2m:(x,0,1/4):(0,x,1/4):(-x,-x,1/4):(-x,0,3/4)
+:::::(0,-x,3/4):(x,x,3/4)::
+::6:f:..2/m:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):(1/2,0,1/2)
+:::::(0,1/2,1/2):(1/2,1/2,1/2)::
+::4:e:3.m:(0,0,z):(0,0,z+1/2):(0,0,-z+1/2):(0,0,-z)
+::4:d:3.2:(1/3,2/3,0):(2/3,1/3,1/2):(2/3,1/3,0):(1/3,2/3,1/2)
+::4:c:-6..:(1/3,2/3,1/4):(2/3,1/3,3/4):(2/3,1/3,1/4):(1/3,2/3,3/4)
+::2:b:-3.m:(0,0,0):(0,0,1/2)::
+::2:a:-62m:(0,0,1/4):(0,0,3/4)::
+488:P 6sub3/m 2/m 2/c:::::::
+::24:l:1:(x,y,z):(-y,x-y,z):(-x+y,-x,z):(-x,-y,z+1/2)
+:::::(y,-x+y,z+1/2):(x-y,x,z+1/2):(y,x,-z):(x-y,-y,-z)
+:::::(-x,-x+y,-z):(-y,-x,-z+1/2):(-x+y,y,-z+1/2):(x,x-y,-z+1/2)
+:::::(-x,-y,-z):(y,-x+y,-z):(x-y,x,-z):(x,y,-z+1/2)
+:::::(-y,x-y,-z+1/2):(-x+y,-x,-z+1/2):(-y,-x,z):(-x+y,y,z)
+:::::(x,x-y,z):(y,x,z+1/2):(x-y,-y,z+1/2):(-x,-x+y,z+1/2)
+::12:k:.m.:(x,2x,z):(-2x,-x,z):(x,-x,z):(-x,-2x,z+1/2)
+:::::(2x,x,z+1/2):(-x,x,z+1/2):(2x,x,-z):(-x,-2x,-z)
+:::::(-x,x,-z):(-2x,-x,-z+1/2):(x,2x,-z+1/2):(x,-x,-z+1/2)
+::12:j:m..:(x,y,1/4):(-y,x-y,1/4):(-x+y,-x,1/4):(-x,-y,3/4)
+:::::(y,-x+y,3/4):(x-y,x,3/4):(y,x,3/4):(x-y,-y,3/4)
+:::::(-x,-x+y,3/4):(-y,-x,1/4):(-x+y,y,1/4):(x,x-y,1/4)
+::12:i:.2.:(x,0,0):(0,x,0):(-x,-x,0):(-x,0,1/2)
+:::::(0,-x,1/2):(x,x,1/2):(-x,0,0):(0,-x,0)
+:::::(x,x,0):(x,0,1/2):(0,x,1/2):(-x,-x,1/2)
+::6:h:mm2:(x,2x,1/4):(-2x,-x,1/4):(x,-x,1/4):(-x,-2x,3/4)
+:::::(2x,x,3/4):(-x,x,3/4)::
+::6:g:.2/m.:(1/2,0,0):(0,1/2,0):(1/2,1/2,0):(1/2,0,1/2)
+:::::(0,1/2,1/2):(1/2,1/2,1/2)::
+::4:f:3m.:(1/3,2/3,z):(2/3,1/3,z+1/2):(2/3,1/3,-z):(1/3,2/3,-z+1/2)
+::4:e:3m.:(0,0,z):(0,0,z+1/2):(0,0,-z):(0,0,-z+1/2)
+::2:d:-6m2:(1/3,2/3,3/4):(2/3,1/3,1/4)::
+::2:c:-6m2:(1/3,2/3,1/4):(2/3,1/3,3/4)::
+::2:b:-6m2:(0,0,1/4):(0,0,3/4)::
+::2:a:-3m.:(0,0,0):(0,0,1/2)::
+489:P 2 3 :::::::
+::12:j:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+::6:i:2..:(x,1/2,1/2):(-x,1/2,1/2):(1/2,x,1/2):(1/2,-x,1/2)
+:::::(1/2,1/2,x):(1/2,1/2,-x)::
+::6:h:2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x)::
+::6:g:2..:(x,0,1/2):(-x,0,1/2):(1/2,x,0):(1/2,-x,0)
+:::::(0,1/2,x):(0,1/2,-x)::
+::6:f:2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::4:e:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+::3:d:222..:(1/2,0,0):(0,1/2,0):(0,0,1/2):
+::3:c:222..:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::1:b:23:(1/2,1/2,1/2):::
+::1:a:23:(0,0,0):::
+490:F 2 3 :::::::
+::48:h:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+::24:g:2..:(x,1/4,1/4):(-x,3/4,1/4):(1/4,x,1/4):(1/4,-x,3/4)
+:::::(1/4,1/4,x):(3/4,1/4,-x)::
+::24:f:2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::16:e:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+::4:d:23:(3/4,3/4,3/4):::
+::4:c:23:(1/4,1/4,1/4):::
+::4:b:23:(1/2,1/2,1/2):::
+::4:a:23:(0,0,0):::
+491:I 2 3 :::::::
+::24:f:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+::12:e:2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x)::
+::12:d:2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::8:c:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+::6:b:222..:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::2:a:23:(0,0,0):::
+492:P 2sub1 3 :::::::
+::12:b:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(z,x,y):(z+1/2,-x+1/2,-y):(-z+1/2,-x,y+1/2):(-z,x+1/2,-y+1/2)
+:::::(y,z,x):(-y,z+1/2,-x+1/2):(y+1/2,-z+1/2,-x):(-y+1/2,-z,x+1/2)
+::4:a:.3.:(x,x,x):(-x+1/2,-x,x+1/2):(-x,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x)
+493:I 2sub1 3 :::::::
+::24:c:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(z,x,y):(z+1/2,-x+1/2,-y):(-z+1/2,-x,y+1/2):(-z,x+1/2,-y+1/2)
+:::::(y,z,x):(-y,z+1/2,-x+1/2):(y+1/2,-z+1/2,-x):(-y+1/2,-z,x+1/2)
+::12:b:2..:(x,0,1/4):(-x+1/2,0,3/4):(1/4,x,0):(3/4,-x+1/2,0)
+:::::(0,1/4,x):(0,3/4,-x+1/2)::
+::8:a:.3.:(x,x,x):(-x+1/2,-x,x+1/2):(-x,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x)
+494:P 2/m -3 :::::::
+::24:l:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+:::::(-z,-x,-y):(-z,x,y):(z,x,-y):(z,-x,y)
+:::::(-y,-z,-x):(y,-z,x):(-y,z,x):(y,z,-x)
+::12:k:m..:(1/2,y,z):(1/2,-y,z):(1/2,y,-z):(1/2,-y,-z)
+:::::(z,1/2,y):(z,1/2,-y):(-z,1/2,y):(-z,1/2,-y)
+:::::(y,z,1/2):(-y,z,1/2):(y,-z,1/2):(-y,-z,1/2)
+::12:j:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+:::::(z,0,y):(z,0,-y):(-z,0,y):(-z,0,-y)
+:::::(y,z,0):(-y,z,0):(y,-z,0):(-y,-z,0)
+::8:i:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(-x,-x,-x):(x,x,-x):(x,-x,x):(-x,x,x)
+::6:h:mm2..:(x,1/2,1/2):(-x,1/2,1/2):(1/2,x,1/2):(1/2,-x,1/2)
+:::::(1/2,1/2,x):(1/2,1/2,-x)::
+::6:g:mm2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x)::
+::6:f:mm2..:(x,0,1/2):(-x,0,1/2):(1/2,x,0):(1/2,-x,0)
+:::::(0,1/2,x):(0,1/2,-x)::
+::6:e:mm2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::3:d:mmm..:(1/2,0,0):(0,1/2,0):(0,0,1/2):
+::3:c:mmm..:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::1:b:m-3.:(1/2,1/2,1/2):::
+::1:a:m-3.:(0,0,0):::
+495:P 2/n -3 :::::::
+::24:h:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(-x+1/2,-y+1/2,-z+1/2):(x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2)
+:::::(-z+1/2,-x+1/2,-y+1/2):(-z+1/2,x+1/2,y+1/2):(z+1/2,x+1/2,-y+1/2):(z+1/2,-x+1/2,y+1/2)
+:::::(-y+1/2,-z+1/2,-x+1/2):(y+1/2,-z+1/2,x+1/2):(-y+1/2,z+1/2,x+1/2):(y+1/2,z+1/2,-x+1/2)
+::12:g:2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x):(-x+1/2,0,1/2):(x+1/2,0,1/2)
+:::::(1/2,-x+1/2,0):(1/2,x+1/2,0):(0,1/2,-x+1/2):(0,1/2,x+1/2)
+::12:f:2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x):(-x+1/2,1/2,1/2):(x+1/2,1/2,1/2)
+:::::(1/2,-x+1/2,1/2):(1/2,x+1/2,1/2):(1/2,1/2,-x+1/2):(1/2,1/2,x+1/2)
+::8:e:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(-x+1/2,-x+1/2,-x+1/2):(x+1/2,x+1/2,-x+1/2):(x+1/2,-x+1/2,x+1/2):(-x+1/2,x+1/2,x+1/2)
+::6:d:222..:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):(1/2,0,0)
+:::::(0,1/2,0):(0,0,1/2)::
+::4:c:.-3.:(3/4,3/4,3/4):(1/4,1/4,3/4):(1/4,3/4,1/4):(3/4,1/4,1/4)
+::4:b:.-3.:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,3/4):(1/4,3/4,3/4)
+::2:a:23:(0,0,0):(1/2,1/2,1/2)::
+496:P 2/n -3 :::::::
+::24:h:1:(x,y,z):(-x+1/2,-y+1/2,z):(-x+1/2,y,-z+1/2):(x,-y+1/2,-z+1/2)
+:::::(z,x,y):(z,-x+1/2,-y+1/2):(-z+1/2,-x+1/2,y):(-z+1/2,x,-y+1/2)
+:::::(y,z,x):(-y+1/2,z,-x+1/2):(y,-z+1/2,-x+1/2):(-y+1/2,-z+1/2,x)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(x+1/2,-y,z+1/2):(-x,y+1/2,z+1/2)
+:::::(-z,-x,-y):(-z,x+1/2,y+1/2):(z+1/2,x+1/2,-y):(z+1/2,-x,y+1/2)
+:::::(-y,-z,-x):(y+1/2,-z,x+1/2):(-y,z+1/2,x+1/2):(y+1/2,z+1/2,-x)
+::12:g:2..:(x,3/4,1/4):(-x+1/2,3/4,1/4):(1/4,x,3/4):(1/4,-x+1/2,3/4)
+:::::(3/4,1/4,x):(3/4,1/4,-x+1/2):(-x,1/4,3/4):(x+1/2,1/4,3/4)
+:::::(3/4,-x,1/4):(3/4,x+1/2,1/4):(1/4,3/4,-x):(1/4,3/4,x+1/2)
+::12:f:2..:(x,1/4,1/4):(-x+1/2,1/4,1/4):(1/4,x,1/4):(1/4,-x+1/2,1/4)
+:::::(1/4,1/4,x):(1/4,1/4,-x+1/2):(-x,3/4,3/4):(x+1/2,3/4,3/4)
+:::::(3/4,-x,3/4):(3/4,x+1/2,3/4):(3/4,3/4,-x):(3/4,3/4,x+1/2)
+::8:e:.3.:(x,x,x):(-x+1/2,-x+1/2,x):(-x+1/2,x,-x+1/2):(x,-x+1/2,-x+1/2)
+:::::(-x,-x,-x):(x+1/2,x+1/2,-x):(x+1/2,-x,x+1/2):(-x,x+1/2,x+1/2)
+::6:d:222..:(1/4,3/4,3/4):(3/4,1/4,3/4):(3/4,3/4,1/4):(3/4,1/4,1/4)
+:::::(1/4,3/4,1/4):(1/4,1/4,3/4)::
+::4:c:.-3.:(1/2,1/2,1/2):(0,0,1/2):(0,1/2,0):(1/2,0,0)
+::4:b:.-3.:(0,0,0):(1/2,1/2,0):(1/2,0,1/2):(0,1/2,1/2)
+::2:a:23:(1/4,1/4,1/4):(3/4,3/4,3/4)::
+497:F 2/m -3 :::::::
+::96:i:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+:::::(-z,-x,-y):(-z,x,y):(z,x,-y):(z,-x,y)
+:::::(-y,-z,-x):(y,-z,x):(-y,z,x):(y,z,-x)
+::48:h:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+:::::(z,0,y):(z,0,-y):(-z,0,y):(-z,0,-y)
+:::::(y,z,0):(-y,z,0):(y,-z,0):(-y,-z,0)
+::48:g:2..:(x,1/4,1/4):(-x,3/4,1/4):(1/4,x,1/4):(1/4,-x,3/4)
+:::::(1/4,1/4,x):(3/4,1/4,-x):(-x,3/4,3/4):(x,1/4,3/4)
+:::::(3/4,-x,3/4):(3/4,x,1/4):(3/4,3/4,-x):(1/4,3/4,x)
+::32:f:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(-x,-x,-x):(x,x,-x):(x,-x,x):(-x,x,x)
+::24:e:mm2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::24:d:2/m..:(0,1/4,1/4):(0,3/4,1/4):(1/4,0,1/4):(1/4,0,3/4)
+:::::(1/4,1/4,0):(3/4,1/4,0)::
+::8:c:23:(1/4,1/4,1/4):(3/4,3/4,3/4)::
+::4:b:m-3.:(1/2,1/2,1/2):::
+::4:a:m-3.:(0,0,0):::
+498:F 2/d -3 :::::::
+::96:g:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(-x+1/4,-y+1/4,-z+1/4):(x+1/4,y+1/4,-z+1/4):(x+1/4,-y+1/4,z+1/4):(-x+1/4,y+1/4,z+1/4)
+:::::(-z+1/4,-x+1/4,-y+1/4):(-z+1/4,x+1/4,y+1/4):(z+1/4,x+1/4,-y+1/4):(z+1/4,-x+1/4,y+1/4)
+:::::(-y+1/4,-z+1/4,-x+1/4):(y+1/4,-z+1/4,x+1/4):(-y+1/4,z+1/4,x+1/4):(y+1/4,z+1/4,-x+1/4)
+::48:f:2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x):(-x+1/4,1/4,1/4):(x+1/4,1/4,1/4)
+:::::(1/4,-x+1/4,1/4):(1/4,x+1/4,1/4):(1/4,1/4,-x+1/4):(1/4,1/4,x+1/4)
+::32:e:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(-x+1/4,-x+1/4,-x+1/4):(x+1/4,x+1/4,-x+1/4):(x+1/4,-x+1/4,x+1/4):(-x+1/4,x+1/4,x+1/4)
+::16:d:.-3.:(5/8,5/8,5/8):(3/8,3/8,5/8):(3/8,5/8,3/8):(5/8,3/8,3/8)
+::16:c:.-3.:(1/8,1/8,1/8):(7/8,7/8,1/8):(7/8,1/8,7/8):(1/8,7/8,7/8)
+::8:b:23:(1/2,1/2,1/2):(3/4,3/4,3/4)::
+::8:a:23:(0,0,0):(1/4,1/4,1/4)::
+499:F 2/d -3 :::::::
+::96:g:1:(x,y,z):(-x+1/4,-y+1/4,z):(-x+1/4,y,-z+1/4):(x,-y+1/4,-z+1/4)
+:::::(z,x,y):(z,-x+1/4,-y+1/4):(-z+1/4,-x+1/4,y):(-z+1/4,x,-y+1/4)
+:::::(y,z,x):(-y+1/4,z,-x+1/4):(y,-z+1/4,-x+1/4):(-y+1/4,-z+1/4,x)
+:::::(-x,-y,-z):(x+3/4,y+3/4,-z):(x+3/4,-y,z+3/4):(-x,y+3/4,z+3/4)
+:::::(-z,-x,-y):(-z,x+3/4,y+3/4):(z+3/4,x+3/4,-y):(z+3/4,-x,y+3/4)
+:::::(-y,-z,-x):(y+3/4,-z,x+3/4):(-y,z+3/4,x+3/4):(y+3/4,z+3/4,-x)
+::48:f:2..:(x,1/8,1/8):(-x+1/4,1/8,1/8):(1/8,x,1/8):(1/8,-x+1/4,1/8)
+:::::(1/8,1/8,x):(1/8,1/8,-x+1/4):(-x,7/8,7/8):(x+3/4,7/8,7/8)
+:::::(7/8,-x,7/8):(7/8,x+3/4,7/8):(7/8,7/8,-x):(7/8,7/8,x+3/4)
+::32:e:.3.:(x,x,x):(-x+1/4,-x+1/4,x):(-x+1/4,x,-x+1/4):(x,-x+1/4,-x+1/4)
+:::::(-x,-x,-x):(x+3/4,x+3/4,-x):(x+3/4,-x,x+3/4):(-x,x+3/4,x+3/4)
+::16:d:.-3.:(1/2,1/2,1/2):(3/4,3/4,1/2):(3/4,1/2,3/4):(1/2,3/4,3/4)
+::16:c:.-3.:(0,0,0):(1/4,1/4,0):(1/4,0,1/4):(0,1/4,1/4)
+::8:b:23:(5/8,5/8,5/8):(3/8,3/8,3/8)::
+::8:a:23:(1/8,1/8,1/8):(7/8,7/8,7/8)::
+500:I 2/m -3 :::::::
+::48:h:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+:::::(-z,-x,-y):(-z,x,y):(z,x,-y):(z,-x,y)
+:::::(-y,-z,-x):(y,-z,x):(-y,z,x):(y,z,-x)
+::24:g:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+:::::(z,0,y):(z,0,-y):(-z,0,y):(-z,0,-y)
+:::::(y,z,0):(-y,z,0):(y,-z,0):(-y,-z,0)
+::16:f:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(-x,-x,-x):(x,x,-x):(x,-x,x):(-x,x,x)
+::12:e:mm2..:(x,0,1/2):(-x,0,1/2):(1/2,x,0):(1/2,-x,0)
+:::::(0,1/2,x):(0,1/2,-x)::
+::12:d:mm2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::8:c:.-3.:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,3/4):(1/4,3/4,3/4)
+::6:b:mmm..:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::2:a:m-3.:(0,0,0):::
+501:P 2sub1/a -3 :::::::
+::24:d:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(z,x,y):(z+1/2,-x+1/2,-y):(-z+1/2,-x,y+1/2):(-z,x+1/2,-y+1/2)
+:::::(y,z,x):(-y,z+1/2,-x+1/2):(y+1/2,-z+1/2,-x):(-y+1/2,-z,x+1/2)
+:::::(-x,-y,-z):(x+1/2,y,-z+1/2):(x,-y+1/2,z+1/2):(-x+1/2,y+1/2,z)
+:::::(-z,-x,-y):(-z+1/2,x+1/2,y):(z+1/2,x,-y+1/2):(z,-x+1/2,y+1/2)
+:::::(-y,-z,-x):(y,-z+1/2,x+1/2):(-y+1/2,z+1/2,x):(y+1/2,z,-x+1/2)
+::8:c:.3.:(x,x,x):(-x+1/2,-x,x+1/2):(-x,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x)
+:::::(-x,-x,-x):(x+1/2,x,-x+1/2):(x,-x+1/2,x+1/2):(-x+1/2,x+1/2,x)
+::4:b:.-3.:(1/2,1/2,1/2):(0,1/2,0):(1/2,0,0):(0,0,1/2)
+::4:a:.-3.:(0,0,0):(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,0)
+502:I 2sub1/a -3 :::::::
+::48:e:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(z,x,y):(z+1/2,-x+1/2,-y):(-z+1/2,-x,y+1/2):(-z,x+1/2,-y+1/2)
+:::::(y,z,x):(-y,z+1/2,-x+1/2):(y+1/2,-z+1/2,-x):(-y+1/2,-z,x+1/2)
+:::::(-x,-y,-z):(x+1/2,y,-z+1/2):(x,-y+1/2,z+1/2):(-x+1/2,y+1/2,z)
+:::::(-z,-x,-y):(-z+1/2,x+1/2,y):(z+1/2,x,-y+1/2):(z,-x+1/2,y+1/2)
+:::::(-y,-z,-x):(y,-z+1/2,x+1/2):(-y+1/2,z+1/2,x):(y+1/2,z,-x+1/2)
+::24:d:2..:(x,0,1/4):(-x+1/2,0,3/4):(1/4,x,0):(3/4,-x+1/2,0)
+:::::(0,1/4,x):(0,3/4,-x+1/2):(-x,0,3/4):(x+1/2,0,1/4)
+:::::(3/4,-x,0):(1/4,x+1/2,0):(0,3/4,-x):(0,1/4,x+1/2)
+::16:c:.3.:(x,x,x):(-x+1/2,-x,x+1/2):(-x,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x)
+:::::(-x,-x,-x):(x+1/2,x,-x+1/2):(x,-x+1/2,x+1/2):(-x+1/2,x+1/2,x)
+::8:b:.-3.:(1/4,1/4,1/4):(1/4,3/4,3/4):(3/4,3/4,1/4):(3/4,1/4,3/4)
+::8:a:.-3.:(0,0,0):(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,0)
+503:P 4 3 2:::::::
+::24:k:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y,x,-z):(-y,-x,-z):(y,-x,z):(-y,x,z)
+:::::(x,z,-y):(-x,z,y):(-x,-z,-y):(x,-z,y)
+:::::(z,y,-x):(z,-y,x):(-z,y,x):(-z,-y,-x)
+::12:j:..2:(1/2,y,y):(1/2,-y,y):(1/2,y,-y):(1/2,-y,-y)
+:::::(y,1/2,y):(y,1/2,-y):(-y,1/2,y):(-y,1/2,-y)
+:::::(y,y,1/2):(-y,y,1/2):(y,-y,1/2):(-y,-y,1/2)
+::12:i:..2:(0,y,y):(0,-y,y):(0,y,-y):(0,-y,-y)
+:::::(y,0,y):(y,0,-y):(-y,0,y):(-y,0,-y)
+:::::(y,y,0):(-y,y,0):(y,-y,0):(-y,-y,0)
+::12:h:2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x):(1/2,x,0):(1/2,-x,0)
+:::::(x,0,1/2):(-x,0,1/2):(0,1/2,-x):(0,1/2,x)
+::8:g:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x,x,-x):(-x,-x,-x):(x,-x,x):(-x,x,x)
+::6:f:4..:(x,1/2,1/2):(-x,1/2,1/2):(1/2,x,1/2):(1/2,-x,1/2)
+:::::(1/2,1/2,x):(1/2,1/2,-x)::
+::6:e:4..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::3:d:42.2:(1/2,0,0):(0,1/2,0):(0,0,1/2):
+::3:c:42.2:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::1:b:432:(1/2,1/2,1/2):::
+::1:a:432:(0,0,0):::
+504:P 4sub2 3 2:::::::
+::24:m:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y+1/2,x+1/2,-z+1/2):(-y+1/2,-x+1/2,-z+1/2):(y+1/2,-x+1/2,z+1/2):(-y+1/2,x+1/2,z+1/2)
+:::::(x+1/2,z+1/2,-y+1/2):(-x+1/2,z+1/2,y+1/2):(-x+1/2,-z+1/2,-y+1/2):(x+1/2,-z+1/2,y+1/2)
+:::::(z+1/2,y+1/2,-x+1/2):(z+1/2,-y+1/2,x+1/2):(-z+1/2,y+1/2,x+1/2):(-z+1/2,-y+1/2,-x+1/2)
+::12:l:..2:(1/4,y,y+1/2):(3/4,-y,y+1/2):(3/4,y,-y+1/2):(1/4,-y,-y+1/2)
+:::::(y+1/2,1/4,y):(y+1/2,3/4,-y):(-y+1/2,3/4,y):(-y+1/2,1/4,-y)
+:::::(y,y+1/2,1/4):(-y,y+1/2,3/4):(y,-y+1/2,3/4):(-y,-y+1/2,1/4)
+::12:k:..2:(1/4,y,-y+1/2):(3/4,-y,-y+1/2):(3/4,y,y+1/2):(1/4,-y,y+1/2)
+:::::(-y+1/2,1/4,y):(-y+1/2,3/4,-y):(y+1/2,3/4,y):(y+1/2,1/4,-y)
+:::::(y,-y+1/2,1/4):(-y,-y+1/2,3/4):(y,y+1/2,3/4):(-y,y+1/2,1/4)
+::12:j:2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x):(0,x+1/2,1/2):(0,-x+1/2,1/2)
+:::::(x+1/2,1/2,0):(-x+1/2,1/2,0):(1/2,0,-x+1/2):(1/2,0,x+1/2)
+::12:i:2..:(x,0,1/2):(-x,0,1/2):(1/2,x,0):(1/2,-x,0)
+:::::(0,1/2,x):(0,1/2,-x):(1/2,x+1/2,0):(1/2,-x+1/2,0)
+:::::(x+1/2,0,1/2):(-x+1/2,0,1/2):(0,1/2,-x+1/2):(0,1/2,x+1/2)
+::12:h:2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x):(1/2,x+1/2,1/2):(1/2,-x+1/2,1/2)
+:::::(x+1/2,1/2,1/2):(-x+1/2,1/2,1/2):(1/2,1/2,-x+1/2):(1/2,1/2,x+1/2)
+::8:g:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x+1/2,x+1/2,-x+1/2):(-x+1/2,-x+1/2,-x+1/2):(x+1/2,-x+1/2,x+1/2):(-x+1/2,x+1/2,x+1/2)
+::6:f:2.22:(1/4,1/2,0):(3/4,1/2,0):(0,1/4,1/2):(0,3/4,1/2)
+:::::(1/2,0,1/4):(1/2,0,3/4)::
+::6:e:2.22:(1/4,0,1/2):(3/4,0,1/2):(1/2,1/4,0):(1/2,3/4,0)
+:::::(0,1/2,1/4):(0,1/2,3/4)::
+::6:d:222..:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):(0,1/2,0)
+:::::(1/2,0,0):(0,0,1/2)::
+::4:c:0.32:(3/4,3/4,3/4):(1/4,1/4,3/4):(1/4,3/4,1/4):(3/4,1/4,1/4)
+::4:b:0.32:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,3/4):(1/4,3/4,3/4)
+::2:a:23:(0,0,0):(1/2,1/2,1/2)::
+505:F 4 3 2:::::::
+::96:j:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y,x,-z):(-y,-x,-z):(y,-x,z):(-y,x,z)
+:::::(x,z,-y):(-x,z,y):(-x,-z,-y):(x,-z,y)
+:::::(z,y,-x):(z,-y,x):(-z,y,x):(-z,-y,-x)
+::48:i:2..:(x,1/4,1/4):(-x,3/4,1/4):(1/4,x,1/4):(1/4,-x,3/4)
+:::::(1/4,1/4,x):(3/4,1/4,-x):(1/4,x,3/4):(3/4,-x,3/4)
+:::::(x,1/4,3/4):(-x,1/4,1/4):(1/4,1/4,-x):(1/4,3/4,x)
+::48:h:..2:(1/2,y,y):(1/2,-y,y):(1/2,y,-y):(1/2,-y,-y)
+:::::(y,1/2,y):(y,1/2,-y):(-y,1/2,y):(-y,1/2,-y)
+:::::(y,y,1/2):(-y,y,1/2):(y,-y,1/2):(-y,-y,1/2)
+::48:g:..2:(0,y,y):(0,-y,y):(0,y,-y):(0,-y,-y)
+:::::(y,0,y):(y,0,-y):(-y,0,y):(-y,0,-y)
+:::::(y,y,0):(-y,y,0):(y,-y,0):(-y,-y,0)
+::32:f:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x,x,-x):(-x,-x,-x):(x,-x,x):(-x,x,x)
+::24:e:4..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::24:d:2.22:(0,1/4,1/4):(0,3/4,1/4):(1/4,0,1/4):(1/4,0,3/4)
+:::::(1/4,1/4,0):(3/4,1/4,0)::
+::8:c:23:(1/4,1/4,1/4):(1/4,1/4,3/4)::
+::4:b:432:(1/2,1/2,1/2):::
+::4:a:432:(0,0,0):::
+506:F 4sub1 3 2:::::::
+::96:h:1:(x,y,z):(-x,-y+1/2,z+1/2):(-x+1/2,y+1/2,-z):(x+1/2,-y,-z+1/2)
+:::::(z,x,y):(z+1/2,-x,-y+1/2):(-z,-x+1/2,y+1/2):(-z+1/2,x+1/2,-y)
+:::::(y,z,x):(-y+1/2,z+1/2,-x):(y+1/2,-z,-x+1/2):(-y,-z+1/2,x+1/2)
+:::::(y+3/4,x+1/4,-z+3/4):(-y+1/4,-x+1/4,-z+1/4):(y+1/4,-x+3/4,z+3/4):(-y+3/4,x+3/4,z+1/4)
+:::::(x+3/4,z+1/4,-y+3/4):(-x+3/4,z+3/4,y+1/4):(-x+1/4,-z+1/4,-y+1/4):(x+1/4,-z+3/4,y+3/4)
+:::::(z+3/4,y+1/4,-x+3/4):(z+1/4,-y+3/4,x+3/4):(-z+3/4,y+3/4,x+1/4):(-z+1/4,-y+1/4,-x+1/4)
+::48:g:..2:(1/8,y,-y+1/4):(7/8,-y+1/2,-y+3/4):(3/8,y+1/2,y+3/4):(5/8,-y,y+1/4)
+:::::(-y+1/4,1/8,y):(-y+3/4,7/8,-y+1/2):(y+3/4,3/8,y+1/2):(y+1/4,5/8,-y)
+:::::(y,-y+1/4,1/8):(-y+1/2,-y+3/4,7/8):(y+1/2,y+3/4,3/8):(-y,y+1/4,5/8)
+::48:f:2..:(x,0,0):(-x,1/2,1/2):(0,x,0):(1/2,-x,1/2)
+:::::(0,0,x):(1/2,1/2,-x):(3/4,x+1/4,3/4):(1/4,-x+1/4,1/4)
+:::::(x+3/4,1/4,3/4):(-x+3/4,3/4,1/4):(3/4,1/4,-x+3/4):(1/4,3/4,x+3/4)
+::32:e:.3.:(x,x,x):(-x,-x+1/2,x+1/2):(-x+1/2,x+1/2,-x):(x+1/2,-x,-x+1/2)
+:::::(x+3/4,x+1/4,-x+3/4):(-x+1/4,-x+1/4,-x+1/4):(x+1/4,-x+3/4,x+3/4):(-x+3/4,x+3/4,x+1/4)
+::16:d:0.32:(5/8,5/8,5/8):(3/8,7/8,1/8):(7/8,1/8,3/8):(1/8,3/8,7/8)
+::16:c:0.32:(1/8,1/8,1/8):(7/8,3/8,5/8):(3/8,5/8,7/8):(5/8,7/8,3/8)
+::8:b:23:(1/2,1/2,1/2):(1/4,3/4,1/4)::
+::8:a:23:(0,0,0):(3/4,1/4,3/4)::
+507:I 4 3 2:::::::
+::48:j:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y,x,-z):(-y,-x,-z):(y,-x,z):(-y,x,z)
+:::::(x,z,-y):(-x,z,y):(-x,-z,-y):(x,-z,y)
+:::::(z,y,-x):(z,-y,x):(-z,y,x):(-z,-y,-x)
+::24:i:..2:(1/4,y,-y+1/2):(3/4,-y,-y+1/2):(3/4,y,y+1/2):(1/4,-y,y+1/2)
+:::::(-y+1/2,1/4,y):(-y+1/2,3/4,-y):(y+1/2,3/4,y):(y+1/2,1/4,-y)
+:::::(y,-y+1/2,1/4):(-y,-y+1/2,3/4):(y,y+1/2,3/4):(-y,y+1/2,1/4)
+::24:h:..2:(0,y,y):(0,-y,y):(0,y,-y):(0,-y,-y)
+:::::(y,0,y):(y,0,-y):(-y,0,y):(-y,0,-y)
+:::::(y,y,0):(-y,y,0):(y,-y,0):(-y,-y,0)
+::24:g:2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x):(1/2,x,0):(1/2,-x,0)
+:::::(x,0,1/2):(-x,0,1/2):(0,1/2,-x):(0,1/2,x)
+::16:f:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x,x,-x):(-x,-x,-x):(x,-x,x):(-x,x,x)
+::12:e:4..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::12:d:2.22:(1/4,1/2,0):(3/4,1/2,0):(0,1/4,1/2):(0,3/4,1/2)
+:::::(1/2,0,1/4):(1/2,0,3/4)::
+::8:c:0.32:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,3/4):(1/4,3/4,3/4)
+::6:b:42.2:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::2:a:432:(0,0,0):::
+508:P 4sub3 3 2:::::::
+::24:e:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(z,x,y):(z+1/2,-x+1/2,-y):(-z+1/2,-x,y+1/2):(-z,x+1/2,-y+1/2)
+:::::(y,z,x):(-y,z+1/2,-x+1/2):(y+1/2,-z+1/2,-x):(-y+1/2,-z,x+1/2)
+:::::(y+1/4,x+3/4,-z+3/4):(-y+1/4,-x+1/4,-z+1/4):(y+3/4,-x+3/4,z+1/4):(-y+3/4,x+1/4,z+3/4)
+:::::(x+1/4,z+3/4,-y+3/4):(-x+3/4,z+1/4,y+3/4):(-x+1/4,-z+1/4,-y+1/4):(x+3/4,-z+3/4,y+1/4)
+:::::(z+1/4,y+3/4,-x+3/4):(z+3/4,-y+3/4,x+1/4):(-z+3/4,y+1/4,x+3/4):(-z+1/4,-y+1/4,-x+1/4)
+::12:d:..2:(1/8,y,-y+1/4):(3/8,-y,-y+3/4):(7/8,y+1/2,y+1/4):(5/8,-y+1/2,y+3/4)
+:::::(-y+1/4,1/8,y):(-y+3/4,3/8,-y):(y+1/4,7/8,y+1/2):(y+3/4,5/8,-y+1/2)
+:::::(y,-y+1/4,1/8):(-y,-y+3/4,3/8):(y+1/2,y+1/4,7/8):(-y+1/2,y+3/4,5/8)
+::8:c:.3.:(x,x,x):(-x+1/2,-x,x+1/2):(-x,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x)
+:::::(x+1/4,x+3/4,-x+3/4):(-x+1/4,-x+1/4,-x+1/4):(x+3/4,-x+3/4,x+1/4):(-x+3/4,x+1/4,x+3/4)
+::4:b:0.32:(5/8,5/8,5/8):(7/8,3/8,1/8):(3/8,1/8,7/8):(1/8,7/8,3/8)
+::4:a:0.32:(1/8,1/8,1/8):(3/8,7/8,5/8):(7/8,5/8,3/8):(5/8,3/8,7/8)
+509:P 4sub1 3 2:::::::
+::24:e:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(z,x,y):(z+1/2,-x+1/2,-y):(-z+1/2,-x,y+1/2):(-z,x+1/2,-y+1/2)
+:::::(y,z,x):(-y,z+1/2,-x+1/2):(y+1/2,-z+1/2,-x):(-y+1/2,-z,x+1/2)
+:::::(y+3/4,x+1/4,-z+1/4):(-y+3/4,-x+3/4,-z+3/4):(y+1/4,-x+1/4,z+3/4):(-y+1/4,x+3/4,z+1/4)
+:::::(x+3/4,z+1/4,-y+1/4):(-x+1/4,z+3/4,y+1/4):(-x+3/4,-z+3/4,-y+3/4):(x+1/4,-z+1/4,y+3/4)
+:::::(z+3/4,y+1/4,-x+1/4):(z+1/4,-y+1/4,x+3/4):(-z+1/4,y+3/4,x+1/4):(-z+3/4,-y+3/4,-x+3/4)
+::12:d:..2:(1/8,y,y+1/4):(3/8,-y,y+3/4):(7/8,y+1/2,-y+1/4):(5/8,-y+1/2,-y+3/4)
+:::::(y+1/4,1/8,y):(y+3/4,3/8,-y):(-y+1/4,7/8,y+1/2):(-y+3/4,5/8,-y+1/2)
+:::::(y,y+1/4,1/8):(-y,y+3/4,3/8):(y+1/2,-y+1/4,7/8):(-y+1/2,-y+3/4,5/8)
+::8:c:.3.:(x,x,x):(-x+1/2,-x,x+1/2):(-x,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x)
+:::::(x+3/4,x+1/4,-x+1/4):(-x+3/4,-x+3/4,-x+3/4):(x+1/4,-x+1/4,x+3/4):(-x+1/4,x+3/4,x+1/4)
+::4:b:0.32:(7/8,7/8,7/8):(5/8,1/8,3/8):(1/8,3/8,5/8):(3/8,5/8,1/8)
+::4:a:0.32:(3/8,3/8,3/8):(1/8,5/8,7/8):(5/8,7/8,1/8):(7/8,1/8,5/8)
+510:I 4sub1 3 2:::::::
+::48:i:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(z,x,y):(z+1/2,-x+1/2,-y):(-z+1/2,-x,y+1/2):(-z,x+1/2,-y+1/2)
+:::::(y,z,x):(-y,z+1/2,-x+1/2):(y+1/2,-z+1/2,-x):(-y+1/2,-z,x+1/2)
+:::::(y+3/4,x+1/4,-z+1/4):(-y+3/4,-x+3/4,-z+3/4):(y+1/4,-x+1/4,z+3/4):(-y+1/4,x+3/4,z+1/4)
+:::::(x+3/4,z+1/4,-y+1/4):(-x+1/4,z+3/4,y+1/4):(-x+3/4,-z+3/4,-y+3/4):(x+1/4,-z+1/4,y+3/4)
+:::::(z+3/4,y+1/4,-x+1/4):(z+1/4,-y+1/4,x+3/4):(-z+1/4,y+3/4,x+1/4):(-z+3/4,-y+3/4,-x+3/4)
+::24:h:..2:(1/8,y,-y+1/4):(3/8,-y,-y+3/4):(7/8,y+1/2,y+1/4):(5/8,-y+1/2,y+3/4)
+:::::(-y+1/4,1/8,y):(-y+3/4,3/8,-y):(y+1/4,7/8,y+1/2):(y+3/4,5/8,-y+1/2)
+:::::(y,-y+1/4,1/8):(-y,-y+3/4,3/8):(y+1/2,y+1/4,7/8):(-y+1/2,y+3/4,5/8)
+::24:g:..2:(1/8,y,y+1/4):(3/8,-y,y+3/4):(7/8,y+1/2,-y+1/4):(5/8,-y+1/2,-y+3/4)
+:::::(y+1/4,1/8,y):(y+3/4,3/8,-y):(-y+1/4,7/8,y+1/2):(-y+3/4,5/8,-y+1/2)
+:::::(y,y+1/4,1/8):(-y,y+3/4,3/8):(y+1/2,-y+1/4,7/8):(-y+1/2,-y+3/4,5/8)
+::24:f:2..:(x,0,1/4):(-x+1/2,0,3/4):(1/4,x,0):(3/4,-x+1/2,0)
+:::::(0,1/4,x):(0,3/4,-x+1/2):(3/4,x+1/4,0):(3/4,-x+3/4,1/2)
+:::::(x+3/4,1/2,1/4):(-x+1/4,0,1/4):(0,1/4,-x+1/4):(1/2,1/4,x+3/4)
+::16:e:.3.:(x,x,x):(-x+1/2,-x,x+1/2):(-x,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x)
+:::::(x+3/4,x+1/4,-x+1/4):(-x+3/4,-x+3/4,-x+3/4):(x+1/4,-x+1/4,x+3/4):(-x+1/4,x+3/4,x+1/4)
+::12:d:2.22:(5/8,0,1/4):(7/8,0,3/4):(1/4,5/8,0):(3/4,7/8,0)
+:::::(0,1/4,5/8):(0,3/4,7/8)::
+::12:c:2.22:(1/8,0,1/4):(3/8,0,3/4):(1/4,1/8,0):(3/4,3/8,0)
+:::::(0,1/4,1/8):(0,3/4,3/8)::
+::8:b:0.32:(7/8,7/8,7/8):(5/8,1/8,3/8):(1/8,3/8,5/8):(3/8,5/8,1/8)
+::8:a:0.32:(1/8,1/8,1/8):(3/8,7/8,5/8):(7/8,5/8,3/8):(5/8,3/8,7/8)
+511:P -4 3 m:::::::
+::24:j:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y,x,z):(-y,-x,z):(y,-x,-z):(-y,x,-z)
+:::::(x,z,y):(-x,z,-y):(-x,-z,y):(x,-z,-y)
+:::::(z,y,x):(z,-y,-x):(-z,y,-x):(-z,-y,x)
+::12:i:..m:(x,x,z):(-x,-x,z):(-x,x,-z):(x,-x,-z)
+:::::(z,x,x):(z,-x,-x):(-z,-x,x):(-z,x,-x)
+:::::(x,z,x):(-x,z,-x):(x,-z,-x):(-x,-z,x)
+::12:h:2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x):(1/2,x,0):(1/2,-x,0)
+:::::(x,0,1/2):(-x,0,1/2):(0,1/2,x):(0,1/2,-x)
+::6:g:2.mm:(x,1/2,1/2):(-x,1/2,1/2):(1/2,x,1/2):(1/2,-x,1/2)
+:::::(1/2,1/2,x):(1/2,1/2,-x)::
+::6:f:2.mm:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::4:e:.3m:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+::3:d:-42.m:(1/2,0,0):(0,1/2,0):(0,0,1/2):
+::3:c:-42.m:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::1:b:-43m:(1/2,1/2,1/2):::
+::1:a:-43m:(0,0,0):::
+512:F -4 3 m:::::::
+::96:i:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y,x,z):(-y,-x,z):(y,-x,-z):(-y,x,-z)
+:::::(x,z,y):(-x,z,-y):(-x,-z,y):(x,-z,-y)
+:::::(z,y,x):(z,-y,-x):(-z,y,-x):(-z,-y,x)
+::48:h:..m:(x,x,z):(-x,-x,z):(-x,x,-z):(x,-x,-z)
+:::::(z,x,x):(z,-x,-x):(-z,-x,x):(-z,x,-x)
+:::::(x,z,x):(-x,z,-x):(x,-z,-x):(-x,-z,x)
+::24:g:2.mm:(x,1/4,1/4):(-x,3/4,1/4):(1/4,x,1/4):(1/4,-x,3/4)
+:::::(1/4,1/4,x):(3/4,1/4,-x)::
+::24:f:2.mm:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::16:e:.3m:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+::4:d:-43m:(3/4,3/4,3/4):::
+::4:c:-43m:(1/4,1/4,1/4):::
+::4:b:-43m:(1/2,1/2,1/2):::
+::4:a:-43m:(0,0,0):::
+513:I -4 3 m:::::::
+::48:h:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y,x,z):(-y,-x,z):(y,-x,-z):(-y,x,-z)
+:::::(x,z,y):(-x,z,-y):(-x,-z,y):(x,-z,-y)
+:::::(z,y,x):(z,-y,-x):(-z,y,-x):(-z,-y,x)
+::24:g:..m:(x,x,z):(-x,-x,z):(-x,x,-z):(x,-x,-z)
+:::::(z,x,x):(z,-x,-x):(-z,-x,x):(-z,x,-x)
+:::::(x,z,x):(-x,z,-x):(x,-z,-x):(-x,-z,x)
+::24:f:2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x):(1/2,x,0):(1/2,-x,0)
+:::::(x,0,1/2):(-x,0,1/2):(0,1/2,x):(0,1/2,-x)
+::12:e:2.mm:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::12:d:-4..:(1/4,1/2,0):(3/4,1/2,0):(0,1/4,1/2):(0,3/4,1/2)
+:::::(1/2,0,1/4):(1/2,0,3/4)::
+::8:c:.3m:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+::6:b:-42.m:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::2:a:-43m:(0,0,0):::
+514:P -4 3 n:::::::
+::24:i:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y+1/2,x+1/2,z+1/2):(-y+1/2,-x+1/2,z+1/2):(y+1/2,-x+1/2,-z+1/2):(-y+1/2,x+1/2,-z+1/2)
+:::::(x+1/2,z+1/2,y+1/2):(-x+1/2,z+1/2,-y+1/2):(-x+1/2,-z+1/2,y+1/2):(x+1/2,-z+1/2,-y+1/2)
+:::::(z+1/2,y+1/2,x+1/2):(z+1/2,-y+1/2,-x+1/2):(-z+1/2,y+1/2,-x+1/2):(-z+1/2,-y+1/2,x+1/2)
+::12:h:2..:(x,0,1/2):(-x,0,1/2):(1/2,x,0):(1/2,-x,0)
+:::::(0,1/2,x):(0,1/2,-x):(1/2,x+1/2,0):(1/2,-x+1/2,0)
+:::::(x+1/2,0,1/2):(-x+1/2,0,1/2):(0,1/2,x+1/2):(0,1/2,-x+1/2)
+::12:g:2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x):(0,x+1/2,1/2):(0,-x+1/2,1/2)
+:::::(x+1/2,1/2,0):(-x+1/2,1/2,0):(1/2,0,x+1/2):(1/2,0,-x+1/2)
+::12:f:2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x):(1/2,x+1/2,1/2):(1/2,-x+1/2,1/2)
+:::::(x+1/2,1/2,1/2):(-x+1/2,1/2,1/2):(1/2,1/2,x+1/2):(1/2,1/2,-x+1/2)
+::8:e:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x+1/2,x+1/2,x+1/2):(-x+1/2,-x+1/2,x+1/2):(x+1/2,-x+1/2,-x+1/2):(-x+1/2,x+1/2,-x+1/2)
+::6:d:-4..:(1/4,0,1/2):(3/4,0,1/2):(1/2,1/4,0):(1/2,3/4,0)
+:::::(0,1/2,1/4):(0,1/2,3/4)::
+::6:c:-4..:(1/4,1/2,0):(3/4,1/2,0):(0,1/4,1/2):(0,3/4,1/2)
+:::::(1/2,0,1/4):(1/2,0,3/4)::
+::6:b:222..:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):(0,1/2,0)
+:::::(1/2,0,0):(0,0,1/2)::
+::2:a:23:(0,0,0):(1/2,1/2,1/2)::
+515:F -4 3 c:::::::
+::96:h:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y+1/2,x+1/2,z+1/2):(-y+1/2,-x+1/2,z+1/2):(y+1/2,-x+1/2,-z+1/2):(-y+1/2,x+1/2,-z+1/2)
+:::::(x+1/2,z+1/2,y+1/2):(-x+1/2,z+1/2,-y+1/2):(-x+1/2,-z+1/2,y+1/2):(x+1/2,-z+1/2,-y+1/2)
+:::::(z+1/2,y+1/2,x+1/2):(z+1/2,-y+1/2,-x+1/2):(-z+1/2,y+1/2,-x+1/2):(-z+1/2,-y+1/2,x+1/2)
+::48:g:2..:(x,1/4,1/4):(-x,3/4,1/4):(1/4,x,1/4):(1/4,-x,3/4)
+:::::(1/4,1/4,x):(3/4,1/4,-x):(3/4,x+1/2,3/4):(1/4,-x+1/2,3/4)
+:::::(x+1/2,3/4,3/4):(-x+1/2,3/4,1/4):(3/4,3/4,x+1/2):(3/4,1/4,-x+1/2)
+::48:f:2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x):(1/2,x+1/2,1/2):(1/2,-x+1/2,1/2)
+:::::(x+1/2,1/2,1/2):(-x+1/2,1/2,1/2):(1/2,1/2,x+1/2):(1/2,1/2,-x+1/2)
+::32:e:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x+1/2,x+1/2,x+1/2):(-x+1/2,-x+1/2,x+1/2):(x+1/2,-x+1/2,-x+1/2):(-x+1/2,x+1/2,-x+1/2)
+::24:d:-4..:(1/4,0,0):(3/4,0,0):(0,1/4,0):(0,3/4,0)
+:::::(0,0,1/4):(0,0,3/4)::
+::24:c:-4..:(0,1/4,1/4):(0,3/4,1/4):(1/4,0,1/4):(1/4,0,3/4)
+:::::(1/4,1/4,0):(3/4,1/4,0)::
+::8:b:23:(1/4,1/4,1/4):(3/4,3/4,3/4)::
+::8:a:23:(0,0,0):(1/2,1/2,1/2)::
+516:I -4 3 d:::::::
+::48:e:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(z,x,y):(z+1/2,-x+1/2,-y):(-z+1/2,-x,y+1/2):(-z,x+1/2,-y+1/2)
+:::::(y,z,x):(-y,z+1/2,-x+1/2):(y+1/2,-z+1/2,-x):(-y+1/2,-z,x+1/2)
+:::::(y+1/4,x+1/4,z+1/4):(-y+1/4,-x+3/4,z+3/4):(y+3/4,-x+1/4,-z+3/4):(-y+3/4,x+3/4,-z+1/4)
+:::::(x+1/4,z+1/4,y+1/4):(-x+3/4,z+3/4,-y+1/4):(-x+1/4,-z+3/4,y+3/4):(x+3/4,-z+1/4,-y+3/4)
+:::::(z+1/4,y+1/4,x+1/4):(z+3/4,-y+1/4,-x+3/4):(-z+3/4,y+3/4,-x+1/4):(-z+1/4,-y+3/4,x+3/4)
+::24:d:2..:(x,0,1/4):(-x+1/2,0,3/4):(1/4,x,0):(3/4,-x+1/2,0)
+:::::(0,1/4,x):(0,3/4,-x+1/2):(1/4,x+1/4,1/2):(1/4,-x+3/4,0)
+:::::(x+1/4,1/2,1/4):(-x+3/4,0,1/4):(1/2,1/4,x+1/4):(0,1/4,-x+3/4)
+::16:c:.3.:(x,x,x):(-x+1/2,-x,x+1/2):(-x,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x)
+:::::(x+1/4,x+1/4,x+1/4):(-x+1/4,-x+3/4,x+3/4):(x+3/4,-x+1/4,-x+3/4):(-x+3/4,x+3/4,-x+1/4)
+::12:b:-4..:(7/8,0,1/4):(5/8,0,3/4):(1/4,7/8,0):(3/4,5/8,0)
+:::::(0,1/4,7/8):(0,3/4,5/8)::
+::12:a:-4..:(3/8,0,1/4):(1/8,0,3/4):(1/4,3/8,0):(3/4,1/8,0)
+:::::(0,1/4,3/8):(0,3/4,1/8)::
+517:P 4/m -3 2/m:::::::
+::48:n:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y,x,-z):(-y,-x,-z):(y,-x,z):(-y,x,z)
+:::::(x,z,-y):(-x,z,y):(-x,-z,-y):(x,-z,y)
+:::::(z,y,-x):(z,-y,x):(-z,y,x):(-z,-y,-x)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+:::::(-z,-x,-y):(-z,x,y):(z,x,-y):(z,-x,y)
+:::::(-y,-z,-x):(y,-z,x):(-y,z,x):(y,z,-x)
+:::::(-y,-x,z):(y,x,z):(-y,x,-z):(y,-x,-z)
+:::::(-x,-z,y):(x,-z,-y):(x,z,y):(-x,z,-y)
+:::::(-z,-y,x):(-z,y,-x):(z,-y,-x):(z,y,x)
+::24:m:..m:(x,x,z):(-x,-x,z):(-x,x,-z):(x,-x,-z)
+:::::(z,x,x):(z,-x,-x):(-z,-x,x):(-z,x,-x)
+:::::(x,z,x):(-x,z,-x):(x,-z,-x):(-x,-z,x)
+:::::(x,x,-z):(-x,-x,-z):(x,-x,z):(-x,x,z)
+:::::(x,z,-x):(-x,z,x):(-x,-z,-x):(x,-z,x)
+:::::(z,x,-x):(z,-x,x):(-z,x,x):(-z,-x,-x)
+::24:l:m..:(1/2,y,z):(1/2,-y,z):(1/2,y,-z):(1/2,-y,-z)
+:::::(z,1/2,y):(z,1/2,-y):(-z,1/2,y):(-z,1/2,-y)
+:::::(y,z,1/2):(-y,z,1/2):(y,-z,1/2):(-y,-z,1/2)
+:::::(y,1/2,-z):(-y,1/2,-z):(y,1/2,z):(-y,1/2,z)
+:::::(1/2,z,-y):(1/2,z,y):(1/2,-z,-y):(1/2,-z,y)
+:::::(z,y,1/2):(z,-y,1/2):(-z,y,1/2):(-z,-y,1/2)
+::24:k:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+:::::(z,0,y):(z,0,-y):(-z,0,y):(-z,0,-y)
+:::::(y,z,0):(-y,z,0):(y,-z,0):(-y,-z,0)
+:::::(y,0,-z):(-y,0,-z):(y,0,z):(-y,0,z)
+:::::(0,z,-y):(0,z,y):(0,-z,-y):(0,-z,y)
+:::::(z,y,0):(z,-y,0):(-z,y,0):(-z,-y,0)
+::12:j:m.m2:(1/2,y,y):(1/2,-y,y):(1/2,y,-y):(1/2,-y,-y)
+:::::(y,1/2,y):(y,1/2,-y):(-y,1/2,y):(-y,1/2,-y)
+:::::(y,y,1/2):(-y,y,1/2):(y,-y,1/2):(-y,-y,1/2)
+::12:i:m.m2:(0,y,y):(0,-y,y):(0,y,-y):(0,-y,-y)
+:::::(y,0,y):(y,0,-y):(-y,0,y):(-y,0,-y)
+:::::(y,y,0):(-y,y,0):(y,-y,0):(-y,-y,0)
+::12:h:mm2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x):(1/2,x,0):(1/2,-x,0)
+:::::(x,0,1/2):(-x,0,1/2):(0,1/2,-x):(0,1/2,x)
+::8:g:.3m:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x,x,-x):(-x,-x,-x):(x,-x,x):(-x,x,x)
+::6:f:4m.m:(x,1/2,1/2):(-x,1/2,1/2):(1/2,x,1/2):(1/2,-x,1/2)
+:::::(1/2,1/2,x):(1/2,1/2,-x)::
+::6:e:4m.m:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::3:d:4/mm.m:(1/2,0,0):(0,1/2,0):(0,0,1/2):
+::3:c:4/mm.m:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::1:b:m-3m:(1/2,1/2,1/2):::
+::1:a:m-3m:(0,0,0):::
+518:P 4/n -3 2/n:::::::
+::48:i:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y,x,-z):(-y,-x,-z):(y,-x,z):(-y,x,z)
+:::::(x,z,-y):(-x,z,y):(-x,-z,-y):(x,-z,y)
+:::::(z,y,-x):(z,-y,x):(-z,y,x):(-z,-y,-x)
+:::::(-x+1/2,-y+1/2,-z+1/2):(x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2)
+:::::(-z+1/2,-x+1/2,-y+1/2):(-z+1/2,x+1/2,y+1/2):(z+1/2,x+1/2,-y+1/2):(z+1/2,-x+1/2,y+1/2)
+:::::(-y+1/2,-z+1/2,-x+1/2):(y+1/2,-z+1/2,x+1/2):(-y+1/2,z+1/2,x+1/2):(y+1/2,z+1/2,-x+1/2)
+:::::(-y+1/2,-x+1/2,z+1/2):(y+1/2,x+1/2,z+1/2):(-y+1/2,x+1/2,-z+1/2):(y+1/2,-x+1/2,-z+1/2)
+:::::(-x+1/2,-z+1/2,y+1/2):(x+1/2,-z+1/2,-y+1/2):(x+1/2,z+1/2,y+1/2):(-x+1/2,z+1/2,-y+1/2)
+:::::(-z+1/2,-y+1/2,x+1/2):(-z+1/2,y+1/2,-x+1/2):(z+1/2,-y+1/2,-x+1/2):(z+1/2,y+1/2,x+1/2)
+::24:h:..2:(0,y,y):(0,-y,y):(0,y,-y):(0,-y,-y)
+:::::(y,0,y):(y,0,-y):(-y,0,y):(-y,0,-y)
+:::::(y,y,0):(-y,y,0):(y,-y,0):(-y,-y,0)
+:::::(1/2,-y+1/2,-y+1/2):(1/2,y+1/2,-y+1/2):(1/2,-y+1/2,y+1/2):(1/2,y+1/2,y+1/2)
+:::::(-y+1/2,1/2,-y+1/2):(-y+1/2,1/2,y+1/2):(y+1/2,1/2,-y+1/2):(y+1/2,1/2,y+1/2)
+:::::(-y+1/2,-y+1/2,1/2):(y+1/2,-y+1/2,1/2):(-y+1/2,y+1/2,1/2):(y+1/2,y+1/2,1/2)
+::24:g:2..:(x,0,1/2):(-x,0,1/2):(1/2,x,0):(1/2,-x,0)
+:::::(0,1/2,x):(0,1/2,-x):(0,x,1/2):(0,-x,1/2)
+:::::(x,1/2,0):(-x,1/2,0):(1/2,0,-x):(1/2,0,x)
+:::::(-x+1/2,1/2,0):(x+1/2,1/2,0):(0,-x+1/2,1/2):(0,x+1/2,1/2)
+:::::(1/2,0,-x+1/2):(1/2,0,x+1/2):(1/2,-x+1/2,0):(1/2,x+1/2,0)
+:::::(-x+1/2,0,1/2):(x+1/2,0,1/2):(0,1/2,x+1/2):(0,1/2,-x+1/2)
+::16:f:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x,x,-x):(-x,-x,-x):(x,-x,x):(-x,x,x)
+:::::(-x+1/2,-x+1/2,-x+1/2):(x+1/2,x+1/2,-x+1/2):(x+1/2,-x+1/2,x+1/2):(-x+1/2,x+1/2,x+1/2)
+:::::(-x+1/2,-x+1/2,x+1/2):(x+1/2,x+1/2,x+1/2):(-x+1/2,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x+1/2)
+::12:e:4..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x):(-x+1/2,1/2,1/2):(x+1/2,1/2,1/2)
+:::::(1/2,-x+1/2,1/2):(1/2,x+1/2,1/2):(1/2,1/2,-x+1/2):(1/2,1/2,x+1/2)
+::12:d:-4..:(1/4,0,1/2):(3/4,0,1/2):(1/2,1/4,0):(1/2,3/4,0)
+:::::(0,1/2,1/4):(0,1/2,3/4):(0,1/4,1/2):(0,3/4,1/2)
+:::::(1/4,1/2,0):(3/4,1/2,0):(1/2,0,3/4):(1/2,0,1/4)
+::8:c:.-3.:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,3/4):(1/4,3/4,3/4)
+:::::(1/4,1/4,3/4):(3/4,3/4,3/4):(1/4,3/4,1/4):(3/4,1/4,1/4)
+::6:b:42.2:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):(1/2,0,0)
+:::::(0,1/2,0):(0,0,1/2)::
+::2:a:432:(0,0,0):(1/2,1/2,1/2)::
+519:P 4/n -3 2/n:::::::
+::48:i:1:(x,y,z):(-x+1/2,-y+1/2,z):(-x+1/2,y,-z+1/2):(x,-y+1/2,-z+1/2)
+:::::(z,x,y):(z,-x+1/2,-y+1/2):(-z+1/2,-x+1/2,y):(-z+1/2,x,-y+1/2)
+:::::(y,z,x):(-y+1/2,z,-x+1/2):(y,-z+1/2,-x+1/2):(-y+1/2,-z+1/2,x)
+:::::(y,x,-z+1/2):(-y+1/2,-x+1/2,-z+1/2):(y,-x+1/2,z):(-y+1/2,x,z)
+:::::(x,z,-y+1/2):(-x+1/2,z,y):(-x+1/2,-z+1/2,-y+1/2):(x,-z+1/2,y)
+:::::(z,y,-x+1/2):(z,-y+1/2,x):(-z+1/2,y,x):(-z+1/2,-y+1/2,-x+1/2)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(x+1/2,-y,z+1/2):(-x,y+1/2,z+1/2)
+:::::(-z,-x,-y):(-z,x+1/2,y+1/2):(z+1/2,x+1/2,-y):(z+1/2,-x,y+1/2)
+:::::(-y,-z,-x):(y+1/2,-z,x+1/2):(-y,z+1/2,x+1/2):(y+1/2,z+1/2,-x)
+:::::(-y,-x,z+1/2):(y+1/2,x+1/2,z+1/2):(-y,x+1/2,-z):(y+1/2,-x,-z)
+:::::(-x,-z,y+1/2):(x+1/2,-z,-y):(x+1/2,z+1/2,y+1/2):(-x,z+1/2,-y)
+:::::(-z,-y,x+1/2):(-z,y+1/2,-x):(z+1/2,-y,-x):(z+1/2,y+1/2,x+1/2)
+::24:h:..2:(1/4,y,y):(1/4,-y+1/2,y):(1/4,y,-y+1/2):(1/4,-y+1/2,-y+1/2)
+:::::(y,1/4,y):(y,1/4,-y+1/2):(-y+1/2,1/4,y):(-y+1/2,1/4,-y+1/2)
+:::::(y,y,1/4):(-y+1/2,y,1/4):(y,-y+1/2,1/4):(-y+1/2,-y+1/2,1/4)
+:::::(3/4,-y,-y):(3/4,y+1/2,-y):(3/4,-y,y+1/2):(3/4,y+1/2,y+1/2)
+:::::(-y,3/4,-y):(-y,3/4,y+1/2):(y+1/2,3/4,-y):(y+1/2,3/4,y+1/2)
+:::::(-y,-y,3/4):(y+1/2,-y,3/4):(-y,y+1/2,3/4):(y+1/2,y+1/2,3/4)
+::24:g:2..:(x,3/4,1/4):(-x+1/2,3/4,1/4):(1/4,x,3/4):(1/4,-x+1/2,3/4)
+:::::(3/4,1/4,x):(3/4,1/4,-x+1/2):(3/4,x,1/4):(3/4,-x+1/2,1/4)
+:::::(x,1/4,3/4):(-x+1/2,1/4,3/4):(1/4,3/4,-x+1/2):(1/4,3/4,x)
+:::::(-x,1/4,3/4):(x+1/2,1/4,3/4):(3/4,-x,1/4):(3/4,x+1/2,1/4)
+:::::(1/4,3/4,-x):(1/4,3/4,x+1/2):(1/4,-x,3/4):(1/4,x+1/2,3/4)
+:::::(-x,3/4,1/4):(x+1/2,3/4,1/4):(3/4,1/4,x+1/2):(3/4,1/4,-x)
+::16:f:.3.:(x,x,x):(-x+1/2,-x+1/2,x):(-x+1/2,x,-x+1/2):(x,-x+1/2,-x+1/2)
+:::::(x,x,-x+1/2):(-x+1/2,-x+1/2,-x+1/2):(x,-x+1/2,x):(-x+1/2,x,x)
+:::::(-x,-x,-x):(x+1/2,x+1/2,-x):(x+1/2,-x,x+1/2):(-x,x+1/2,x+1/2)
+:::::(-x,-x,x+1/2):(x+1/2,x+1/2,x+1/2):(-x,x+1/2,-x):(x+1/2,-x,-x)
+::12:e:4..:(x,1/4,1/4):(-x+1/2,1/4,1/4):(1/4,x,1/4):(1/4,-x+1/2,1/4)
+:::::(1/4,1/4,x):(1/4,1/4,-x+1/2):(-x,3/4,3/4):(x+1/2,3/4,3/4)
+:::::(3/4,-x,3/4):(3/4,x+1/2,3/4):(3/4,3/4,-x):(3/4,3/4,x+1/2)
+::12:d:-4..:(0,3/4,1/4):(1/2,3/4,1/4):(1/4,0,3/4):(1/4,1/2,3/4)
+:::::(3/4,1/4,0):(3/4,1/4,1/2):(3/4,0,1/4):(3/4,1/2,1/4)
+:::::(0,1/4,3/4):(1/2,1/4,3/4):(1/4,3/4,1/2):(1/4,3/4,0)
+::8:c:.-3.:(0,0,0):(1/2,1/2,0):(1/2,0,1/2):(0,1/2,1/2)
+:::::(0,0,1/2):(1/2,1/2,1/2):(0,1/2,0):(1/2,0,0)
+::6:b:42.2:(3/4,1/4,1/4):(1/4,3/4,1/4):(1/4,1/4,3/4):(1/4,3/4,3/4)
+:::::(3/4,1/4,3/4):(3/4,3/4,1/4)::
+::2:a:432:(1/4,1/4,1/4):(3/4,3/4,3/4)::
+520:P 4sub2/m -3 2/n:::::::
+::48:l:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y+1/2,x+1/2,-z+1/2):(-y+1/2,-x+1/2,-z+1/2):(y+1/2,-x+1/2,z+1/2):(-y+1/2,x+1/2,z+1/2)
+:::::(x+1/2,z+1/2,-y+1/2):(-x+1/2,z+1/2,y+1/2):(-x+1/2,-z+1/2,-y+1/2):(x+1/2,-z+1/2,y+1/2)
+:::::(z+1/2,y+1/2,-x+1/2):(z+1/2,-y+1/2,x+1/2):(-z+1/2,y+1/2,x+1/2):(-z+1/2,-y+1/2,-x+1/2)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+:::::(-z,-x,-y):(-z,x,y):(z,x,-y):(z,-x,y)
+:::::(-y,-z,-x):(y,-z,x):(-y,z,x):(y,z,-x)
+:::::(-y+1/2,-x+1/2,z+1/2):(y+1/2,x+1/2,z+1/2):(-y+1/2,x+1/2,-z+1/2):(y+1/2,-x+1/2,-z+1/2)
+:::::(-x+1/2,-z+1/2,y+1/2):(x+1/2,-z+1/2,-y+1/2):(x+1/2,z+1/2,y+1/2):(-x+1/2,z+1/2,-y+1/2)
+:::::(-z+1/2,-y+1/2,x+1/2):(-z+1/2,y+1/2,-x+1/2):(z+1/2,-y+1/2,-x+1/2):(z+1/2,y+1/2,x+1/2)
+::24:k:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+:::::(z,0,y):(z,0,-y):(-z,0,y):(-z,0,-y)
+:::::(y,z,0):(-y,z,0):(y,-z,0):(-y,-z,0)
+:::::(y+1/2,1/2,-z+1/2):(-y+1/2,1/2,-z+1/2):(y+1/2,1/2,z+1/2):(-y+1/2,1/2,z+1/2)
+:::::(1/2,z+1/2,-y+1/2):(1/2,z+1/2,y+1/2):(1/2,-z+1/2,-y+1/2):(1/2,-z+1/2,y+1/2)
+:::::(z+1/2,y+1/2,1/2):(z+1/2,-y+1/2,1/2):(-z+1/2,y+1/2,1/2):(-z+1/2,-y+1/2,1/2)
+::24:j:..2:(1/4,y,y+1/2):(3/4,-y,y+1/2):(3/4,y,-y+1/2):(1/4,-y,-y+1/2)
+:::::(y+1/2,1/4,y):(y+1/2,3/4,-y):(-y+1/2,3/4,y):(-y+1/2,1/4,-y)
+:::::(y,y+1/2,1/4):(-y,y+1/2,3/4):(y,-y+1/2,3/4):(-y,-y+1/2,1/4)
+:::::(3/4,-y,-y+1/2):(1/4,y,-y+1/2):(1/4,-y,y+1/2):(3/4,y,y+1/2)
+:::::(-y+1/2,3/4,-y):(-y+1/2,1/4,y):(y+1/2,1/4,-y):(y+1/2,3/4,y)
+:::::(-y,-y+1/2,3/4):(y,-y+1/2,1/4):(-y,y+1/2,1/4):(y,y+1/2,3/4)
+::16:i:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x+1/2,x+1/2,-x+1/2):(-x+1/2,-x+1/2,-x+1/2):(x+1/2,-x+1/2,x+1/2):(-x+1/2,x+1/2,x+1/2)
+:::::(-x,-x,-x):(x,x,-x):(x,-x,x):(-x,x,x)
+:::::(-x+1/2,-x+1/2,x+1/2):(x+1/2,x+1/2,x+1/2):(-x+1/2,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x+1/2)
+::12:h:mm2..:(x,1/2,0):(-x,1/2,0):(0,x,1/2):(0,-x,1/2)
+:::::(1/2,0,x):(1/2,0,-x):(0,x+1/2,1/2):(0,-x+1/2,1/2)
+:::::(x+1/2,1/2,0):(-x+1/2,1/2,0):(1/2,0,-x+1/2):(1/2,0,x+1/2)
+::12:g:mm2..:(x,0,1/2):(-x,0,1/2):(1/2,x,0):(1/2,-x,0)
+:::::(0,1/2,x):(0,1/2,-x):(1/2,x+1/2,0):(1/2,-x+1/2,0)
+:::::(x+1/2,0,1/2):(-x+1/2,0,1/2):(0,1/2,-x+1/2):(0,1/2,x+1/2)
+::12:f:mm2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x):(1/2,x+1/2,1/2):(1/2,-x+1/2,1/2)
+:::::(x+1/2,1/2,1/2):(-x+1/2,1/2,1/2):(1/2,1/2,-x+1/2):(1/2,1/2,x+1/2)
+::8:e:0.32:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,3/4):(1/4,3/4,3/4)
+:::::(3/4,3/4,3/4):(1/4,1/4,3/4):(1/4,3/4,1/4):(3/4,1/4,1/4)
+::6:d:-4m.2:(1/4,1/2,0):(3/4,1/2,0):(0,1/4,1/2):(0,3/4,1/2)
+:::::(1/2,0,1/4):(1/2,0,3/4)::
+::6:c:-4m.2:(1/4,0,1/2):(3/4,0,1/2):(1/2,1/4,0):(1/2,3/4,0)
+:::::(0,1/2,1/4):(0,1/2,3/4)::
+::6:b:mmm..:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):(0,1/2,0)
+:::::(1/2,0,0):(0,0,1/2)::
+::2:a:m-3.:(0,0,0):(1/2,1/2,1/2)::
+521:P 4sub2/n -3 2/m:::::::
+::48:l:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y+1/2,x+1/2,-z+1/2):(-y+1/2,-x+1/2,-z+1/2):(y+1/2,-x+1/2,z+1/2):(-y+1/2,x+1/2,z+1/2)
+:::::(x+1/2,z+1/2,-y+1/2):(-x+1/2,z+1/2,y+1/2):(-x+1/2,-z+1/2,-y+1/2):(x+1/2,-z+1/2,y+1/2)
+:::::(z+1/2,y+1/2,-x+1/2):(z+1/2,-y+1/2,x+1/2):(-z+1/2,y+1/2,x+1/2):(-z+1/2,-y+1/2,-x+1/2)
+:::::(-x+1/2,-y+1/2,-z+1/2):(x+1/2,y+1/2,-z+1/2):(x+1/2,-y+1/2,z+1/2):(-x+1/2,y+1/2,z+1/2)
+:::::(-z+1/2,-x+1/2,-y+1/2):(-z+1/2,x+1/2,y+1/2):(z+1/2,x+1/2,-y+1/2):(z+1/2,-x+1/2,y+1/2)
+:::::(-y+1/2,-z+1/2,-x+1/2):(y+1/2,-z+1/2,x+1/2):(-y+1/2,z+1/2,x+1/2):(y+1/2,z+1/2,-x+1/2)
+:::::(-y,-x,z):(y,x,z):(-y,x,-z):(y,-x,-z)
+:::::(-x,-z,y):(x,-z,-y):(x,z,y):(-x,z,-y)
+:::::(-z,-y,x):(-z,y,-x):(z,-y,-x):(z,y,x)
+::24:k:..m:(x,x,z):(-x,-x,z):(-x,x,-z):(x,-x,-z)
+:::::(z,x,x):(z,-x,-x):(-z,-x,x):(-z,x,-x)
+:::::(x,z,x):(-x,z,-x):(x,-z,-x):(-x,-z,x)
+:::::(x+1/2,x+1/2,-z+1/2):(-x+1/2,-x+1/2,-z+1/2):(x+1/2,-x+1/2,z+1/2):(-x+1/2,x+1/2,z+1/2)
+:::::(x+1/2,z+1/2,-x+1/2):(-x+1/2,z+1/2,x+1/2):(-x+1/2,-z+1/2,-x+1/2):(x+1/2,-z+1/2,x+1/2)
+:::::(z+1/2,x+1/2,-x+1/2):(z+1/2,-x+1/2,x+1/2):(-z+1/2,x+1/2,x+1/2):(-z+1/2,-x+1/2,-x+1/2)
+::24:j:..2:(1/4,y,y+1/2):(3/4,-y,y+1/2):(3/4,y,-y+1/2):(1/4,-y,-y+1/2)
+:::::(y+1/2,1/4,y):(y+1/2,3/4,-y):(-y+1/2,3/4,y):(-y+1/2,1/4,-y)
+:::::(y,y+1/2,1/4):(-y,y+1/2,3/4):(y,-y+1/2,3/4):(-y,-y+1/2,1/4)
+:::::(1/4,-y+1/2,-y):(3/4,y+1/2,-y):(3/4,-y+1/2,y):(1/4,y+1/2,y)
+:::::(-y,1/4,-y+1/2):(-y,3/4,y+1/2):(y,3/4,-y+1/2):(y,1/4,y+1/2)
+:::::(-y+1/2,-y,1/4):(y+1/2,-y,3/4):(-y+1/2,y,3/4):(y+1/2,y,1/4)
+::24:i:..2:(1/4,y,-y+1/2):(3/4,-y,-y+1/2):(3/4,y,y+1/2):(1/4,-y,y+1/2)
+:::::(-y+1/2,1/4,y):(-y+1/2,3/4,-y):(y+1/2,3/4,y):(y+1/2,1/4,-y)
+:::::(y,-y+1/2,1/4):(-y,-y+1/2,3/4):(y,y+1/2,3/4):(-y,y+1/2,1/4)
+:::::(1/4,-y+1/2,y):(3/4,y+1/2,y):(3/4,-y+1/2,-y):(1/4,y+1/2,-y)
+:::::(y,1/4,-y+1/2):(y,3/4,y+1/2):(-y,3/4,-y+1/2):(-y,1/4,y+1/2)
+:::::(-y+1/2,y,1/4):(y+1/2,y,3/4):(-y+1/2,-y,3/4):(y+1/2,-y,1/4)
+::24:h:2..:(x,0,1/2):(-x,0,1/2):(1/2,x,0):(1/2,-x,0)
+:::::(0,1/2,x):(0,1/2,-x):(1/2,x+1/2,0):(1/2,-x+1/2,0)
+:::::(x+1/2,0,1/2):(-x+1/2,0,1/2):(0,1/2,-x+1/2):(0,1/2,x+1/2)
+:::::(-x+1/2,1/2,0):(x+1/2,1/2,0):(0,-x+1/2,1/2):(0,x+1/2,1/2)
+:::::(1/2,0,-x+1/2):(1/2,0,x+1/2):(0,-x,1/2):(0,x,1/2)
+:::::(-x,1/2,0):(x,1/2,0):(1/2,0,x):(1/2,0,-x)
+::12:g:2.mm:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x):(1/2,x+1/2,1/2):(1/2,-x+1/2,1/2)
+:::::(x+1/2,1/2,1/2):(-x+1/2,1/2,1/2):(1/2,1/2,-x+1/2):(1/2,1/2,x+1/2)
+::12:f:2.22:(1/4,0,1/2):(3/4,0,1/2):(1/2,1/4,0):(1/2,3/4,0)
+:::::(0,1/2,1/4):(0,1/2,3/4):(1/4,1/2,0):(3/4,1/2,0)
+:::::(0,1/4,1/2):(0,3/4,1/2):(1/2,0,1/4):(1/2,0,3/4)
+::8:e:.3m:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x+1/2,x+1/2,-x+1/2):(-x+1/2,-x+1/2,-x+1/2):(x+1/2,-x+1/2,x+1/2):(-x+1/2,x+1/2,x+1/2)
+::6:d:-42.m:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):(0,1/2,0)
+:::::(1/2,0,0):(0,0,1/2)::
+::4:c:.-3m:(3/4,3/4,3/4):(1/4,1/4,3/4):(1/4,3/4,1/4):(3/4,1/4,1/4)
+::4:b:.-3m:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,3/4):(1/4,3/4,3/4)
+::2:a:-43m:(0,0,0):(1/2,1/2,1/2)::
+522:P 4sub2/n -3 2/m:::::::
+::48:l:1:(x,y,z):(-x+1/2,-y+1/2,z):(-x+1/2,y,-z+1/2):(x,-y+1/2,-z+1/2)
+:::::(z,x,y):(z,-x+1/2,-y+1/2):(-z+1/2,-x+1/2,y):(-z+1/2,x,-y+1/2)
+:::::(y,z,x):(-y+1/2,z,-x+1/2):(y,-z+1/2,-x+1/2):(-y+1/2,-z+1/2,x)
+:::::(y+1/2,x+1/2,-z):(-y,-x,-z):(y+1/2,-x,z+1/2):(-y,x+1/2,z+1/2)
+:::::(x+1/2,z+1/2,-y):(-x,z+1/2,y+1/2):(-x,-z,-y):(x+1/2,-z,y+1/2)
+:::::(z+1/2,y+1/2,-x):(z+1/2,-y,x+1/2):(-z,y+1/2,x+1/2):(-z,-y,-x)
+:::::(-x,-y,-z):(x+1/2,y+1/2,-z):(x+1/2,-y,z+1/2):(-x,y+1/2,z+1/2)
+:::::(-z,-x,-y):(-z,x+1/2,y+1/2):(z+1/2,x+1/2,-y):(z+1/2,-x,y+1/2)
+:::::(-y,-z,-x):(y+1/2,-z,x+1/2):(-y,z+1/2,x+1/2):(y+1/2,z+1/2,-x)
+:::::(-y+1/2,-x+1/2,z):(y,x,z):(-y+1/2,x,-z+1/2):(y,-x+1/2,-z+1/2)
+:::::(-x+1/2,-z+1/2,y):(x,-z+1/2,-y+1/2):(x,z,y):(-x+1/2,z,-y+1/2)
+:::::(-z+1/2,-y+1/2,x):(-z+1/2,y,-x+1/2):(z,-y+1/2,-x+1/2):(z,y,x)
+::24:k:..m:(x,x,z):(-x+1/2,-x+1/2,z):(-x+1/2,x,-z+1/2):(x,-x+1/2,-z+1/2)
+:::::(z,x,x):(z,-x+1/2,-x+1/2):(-z+1/2,-x+1/2,x):(-z+1/2,x,-x+1/2)
+:::::(x,z,x):(-x+1/2,z,-x+1/2):(x,-z+1/2,-x+1/2):(-x+1/2,-z+1/2,x)
+:::::(x+1/2,x+1/2,-z):(-x,-x,-z):(x+1/2,-x,z+1/2):(-x,x+1/2,z+1/2)
+:::::(x+1/2,z+1/2,-x):(-x,z+1/2,x+1/2):(-x,-z,-x):(x+1/2,-z,x+1/2)
+:::::(z+1/2,x+1/2,-x):(z+1/2,-x,x+1/2):(-z,x+1/2,x+1/2):(-z,-x,-x)
+::24:j:..2:(1/2,y,-y):(0,-y+1/2,-y):(0,y,y+1/2):(1/2,-y+1/2,y+1/2)
+:::::(-y,1/2,y):(-y,0,-y+1/2):(y+1/2,0,y):(y+1/2,1/2,-y+1/2)
+:::::(y,-y,1/2):(-y+1/2,-y,0):(y,y+1/2,0):(-y+1/2,y+1/2,1/2)
+:::::(1/2,-y,y):(0,y+1/2,y):(0,-y,-y+1/2):(1/2,y+1/2,-y+1/2)
+:::::(y,1/2,-y):(y,0,y+1/2):(-y+1/2,0,-y):(-y+1/2,1/2,y+1/2)
+:::::(-y,y,1/2):(y+1/2,y,0):(-y,-y+1/2,0):(y+1/2,-y+1/2,1/2)
+::24:i:..2:(1/2,y,y+1/2):(0,-y+1/2,y+1/2):(0,y,-y):(1/2,-y+1/2,-y)
+:::::(y+1/2,1/2,y):(y+1/2,0,-y+1/2):(-y,0,y):(-y,1/2,-y+1/2)
+:::::(y,y+1/2,1/2):(-y+1/2,y+1/2,0):(y,-y,0):(-y+1/2,-y,1/2)
+:::::(1/2,-y,-y+1/2):(0,y+1/2,-y+1/2):(0,-y,y):(1/2,y+1/2,y)
+:::::(-y+1/2,1/2,-y):(-y+1/2,0,y+1/2):(y,0,-y):(y,1/2,y+1/2)
+:::::(-y,-y+1/2,1/2):(y+1/2,-y+1/2,0):(-y,y,0):(y+1/2,y,1/2)
+::24:h:2..:(x,1/4,3/4):(-x+1/2,1/4,3/4):(3/4,x,1/4):(3/4,-x+1/2,1/4)
+:::::(1/4,3/4,x):(1/4,3/4,-x+1/2):(3/4,x+1/2,1/4):(3/4,-x,1/4)
+:::::(x+1/2,1/4,3/4):(-x,1/4,3/4):(1/4,3/4,-x):(1/4,3/4,x+1/2)
+:::::(-x,3/4,1/4):(x+1/2,3/4,1/4):(1/4,-x,3/4):(1/4,x+1/2,3/4)
+:::::(3/4,1/4,-x):(3/4,1/4,x+1/2):(1/4,-x+1/2,3/4):(1/4,x,3/4)
+:::::(-x+1/2,3/4,1/4):(x,3/4,1/4):(3/4,1/4,x):(3/4,1/4,-x+1/2)
+::12:g:2.mm:(x,1/4,1/4):(-x+1/2,1/4,1/4):(1/4,x,1/4):(1/4,-x+1/2,1/4)
+:::::(1/4,1/4,x):(1/4,1/4,-x+1/2):(3/4,x+1/2,3/4):(3/4,-x,3/4)
+:::::(x+1/2,3/4,3/4):(-x,3/4,3/4):(3/4,3/4,-x):(3/4,3/4,x+1/2)
+::12:f:2.22:(1/2,1/4,3/4):(0,1/4,3/4):(3/4,1/2,1/4):(3/4,0,1/4)
+:::::(1/4,3/4,1/2):(1/4,3/4,0):(1/2,3/4,1/4):(0,3/4,1/4)
+:::::(1/4,1/2,3/4):(1/4,0,3/4):(3/4,1/4,1/2):(3/4,1/4,0)
+::8:e:.3m:(x,x,x):(-x+1/2,-x+1/2,x):(-x+1/2,x,-x+1/2):(x,-x+1/2,-x+1/2)
+:::::(x+1/2,x+1/2,-x):(-x,-x,-x):(x+1/2,-x,x+1/2):(-x,x+1/2,x+1/2)
+::6:d:-42.m:(1/4,3/4,3/4):(3/4,1/4,3/4):(3/4,3/4,1/4):(1/4,3/4,1/4)
+:::::(3/4,1/4,1/4):(1/4,1/4,3/4)::
+::4:c:.-3m:(1/2,1/2,1/2):(0,0,1/2):(0,1/2,0):(1/2,0,0)
+::4:b:.-3m:(0,0,0):(1/2,1/2,0):(1/2,0,1/2):(0,1/2,1/2)
+::2:a:-43m:(1/4,1/4,1/4):(3/4,3/4,3/4)::
+523:F 4/m -3 2/m:::::::
+::192:l:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y,x,-z):(-y,-x,-z):(y,-x,z):(-y,x,z)
+:::::(x,z,-y):(-x,z,y):(-x,-z,-y):(x,-z,y)
+:::::(z,y,-x):(z,-y,x):(-z,y,x):(-z,-y,-x)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+:::::(-z,-x,-y):(-z,x,y):(z,x,-y):(z,-x,y)
+:::::(-y,-z,-x):(y,-z,x):(-y,z,x):(y,z,-x)
+:::::(-y,-x,z):(y,x,z):(-y,x,-z):(y,-x,-z)
+:::::(-x,-z,y):(x,-z,-y):(x,z,y):(-x,z,-y)
+:::::(-z,-y,x):(-z,y,-x):(z,-y,-x):(z,y,x)
+::96:k:..m:(x,x,z):(-x,-x,z):(-x,x,-z):(x,-x,-z)
+:::::(z,x,x):(z,-x,-x):(-z,-x,x):(-z,x,-x)
+:::::(x,z,x):(-x,z,-x):(x,-z,-x):(-x,-z,x)
+:::::(x,x,-z):(-x,-x,-z):(x,-x,z):(-x,x,z)
+:::::(x,z,-x):(-x,z,x):(-x,-z,-x):(x,-z,x)
+:::::(z,x,-x):(z,-x,x):(-z,x,x):(-z,-x,-x)
+::96:j:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+:::::(z,0,y):(z,0,-y):(-z,0,y):(-z,0,-y)
+:::::(y,z,0):(-y,z,0):(y,-z,0):(-y,-z,0)
+:::::(y,0,-z):(-y,0,-z):(y,0,z):(-y,0,z)
+:::::(0,z,-y):(0,z,y):(0,-z,-y):(0,-z,y)
+:::::(z,y,0):(z,-y,0):(-z,y,0):(-z,-y,0)
+::48:i:m.m2:(1/2,y,y):(1/2,-y,y):(1/2,y,-y):(1/2,-y,-y)
+:::::(y,1/2,y):(y,1/2,-y):(-y,1/2,y):(-y,1/2,-y)
+:::::(y,y,1/2):(-y,y,1/2):(y,-y,1/2):(-y,-y,1/2)
+::48:h:m.m2:(0,y,y):(0,-y,y):(0,y,-y):(0,-y,-y)
+:::::(y,0,y):(y,0,-y):(-y,0,y):(-y,0,-y)
+:::::(y,y,0):(-y,y,0):(y,-y,0):(-y,-y,0)
+::48:g:2.mm:(x,1/4,1/4):(-x,3/4,1/4):(1/4,x,1/4):(1/4,-x,3/4)
+:::::(1/4,1/4,x):(3/4,1/4,-x):(1/4,x,3/4):(3/4,-x,3/4)
+:::::(x,1/4,3/4):(-x,1/4,1/4):(1/4,1/4,-x):(1/4,3/4,x)
+::32:f:.3m:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x,x,-x):(-x,-x,-x):(x,-x,x):(-x,x,x)
+::24:e:4m.m:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::24:d:m.mm:(0,1/4,1/4):(0,3/4,1/4):(1/4,0,1/4):(1/4,0,3/4)
+:::::(1/4,1/4,0):(3/4,1/4,0)::
+::8:c:-43m:(1/4,1/4,1/4):(1/4,1/4,3/4)::
+::4:b:m-3m:(1/2,1/2,1/2):::
+::4:a:m-3m:(0,0,0):::
+524:F 4/m -3 2/c:::::::
+::192:j:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y+1/2,x+1/2,-z+1/2):(-y+1/2,-x+1/2,-z+1/2):(y+1/2,-x+1/2,z+1/2):(-y+1/2,x+1/2,z+1/2)
+:::::(x+1/2,z+1/2,-y+1/2):(-x+1/2,z+1/2,y+1/2):(-x+1/2,-z+1/2,-y+1/2):(x+1/2,-z+1/2,y+1/2)
+:::::(z+1/2,y+1/2,-x+1/2):(z+1/2,-y+1/2,x+1/2):(-z+1/2,y+1/2,x+1/2):(-z+1/2,-y+1/2,-x+1/2)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+:::::(-z,-x,-y):(-z,x,y):(z,x,-y):(z,-x,y)
+:::::(-y,-z,-x):(y,-z,x):(-y,z,x):(y,z,-x)
+:::::(-y+1/2,-x+1/2,z+1/2):(y+1/2,x+1/2,z+1/2):(-y+1/2,x+1/2,-z+1/2):(y+1/2,-x+1/2,-z+1/2)
+:::::(-x+1/2,-z+1/2,y+1/2):(x+1/2,-z+1/2,-y+1/2):(x+1/2,z+1/2,y+1/2):(-x+1/2,z+1/2,-y+1/2)
+:::::(-z+1/2,-y+1/2,x+1/2):(-z+1/2,y+1/2,-x+1/2):(z+1/2,-y+1/2,-x+1/2):(z+1/2,y+1/2,x+1/2)
+::96:i:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+:::::(z,0,y):(z,0,-y):(-z,0,y):(-z,0,-y)
+:::::(y,z,0):(-y,z,0):(y,-z,0):(-y,-z,0)
+:::::(y+1/2,1/2,-z+1/2):(-y+1/2,1/2,-z+1/2):(y+1/2,1/2,z+1/2):(-y+1/2,1/2,z+1/2)
+:::::(1/2,z+1/2,-y+1/2):(1/2,z+1/2,y+1/2):(1/2,-z+1/2,-y+1/2):(1/2,-z+1/2,y+1/2)
+:::::(z+1/2,y+1/2,1/2):(z+1/2,-y+1/2,1/2):(-z+1/2,y+1/2,1/2):(-z+1/2,-y+1/2,1/2)
+::96:h:..2:(1/4,y,y):(3/4,-y,y):(3/4,y,-y):(1/4,-y,-y)
+:::::(y,1/4,y):(y,3/4,-y):(-y,3/4,y):(-y,1/4,-y)
+:::::(y,y,1/4):(-y,y,3/4):(y,-y,3/4):(-y,-y,1/4)
+:::::(3/4,-y,-y):(1/4,y,-y):(1/4,-y,y):(3/4,y,y)
+:::::(-y,3/4,-y):(-y,1/4,y):(y,1/4,-y):(y,3/4,y)
+:::::(-y,-y,3/4):(y,-y,1/4):(-y,y,1/4):(y,y,3/4)
+::64:g:.3.:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x+1/2,x+1/2,-x+1/2):(-x+1/2,-x+1/2,-x+1/2):(x+1/2,-x+1/2,x+1/2):(-x+1/2,x+1/2,x+1/2)
+:::::(-x,-x,-x):(x,x,-x):(x,-x,x):(-x,x,x)
+:::::(-x+1/2,-x+1/2,x+1/2):(x+1/2,x+1/2,x+1/2):(-x+1/2,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x+1/2)
+::48:f:4..:(x,1/4,1/4):(-x,3/4,1/4):(1/4,x,1/4):(1/4,-x,3/4)
+:::::(1/4,1/4,x):(3/4,1/4,-x):(-x,3/4,3/4):(x,1/4,3/4)
+:::::(3/4,-x,3/4):(3/4,x,1/4):(3/4,3/4,-x):(1/4,3/4,x)
+::48:e:mm2..:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x):(1/2,x+1/2,1/2):(1/2,-x+1/2,1/2)
+:::::(x+1/2,1/2,1/2):(-x+1/2,1/2,1/2):(1/2,1/2,-x+1/2):(1/2,1/2,x+1/2)
+::24:d:4/m..:(0,1/4,1/4):(0,3/4,1/4):(1/4,0,1/4):(1/4,0,3/4)
+:::::(1/4,1/4,0):(3/4,1/4,0)::
+::24:c:-4m.2:(1/4,0,0):(3/4,0,0):(0,1/4,0):(0,3/4,0)
+:::::(0,0,1/4):(0,0,3/4)::
+::8:b:m-3.:(0,0,0):(1/2,1/2,1/2)::
+::8:a:432:(1/4,1/4,1/4):(3/4,3/4,3/4)::
+525:F 4sub1/d -3 2/m:::::::
+::192:i:1:(x,y,z):(-x,-y+1/2,z+1/2):(-x+1/2,y+1/2,-z):(x+1/2,-y,-z+1/2)
+:::::(z,x,y):(z+1/2,-x,-y+1/2):(-z,-x+1/2,y+1/2):(-z+1/2,x+1/2,-y)
+:::::(y,z,x):(-y+1/2,z+1/2,-x):(y+1/2,-z,-x+1/2):(-y,-z+1/2,x+1/2)
+:::::(y+3/4,x+1/4,-z+3/4):(-y+1/4,-x+1/4,-z+1/4):(y+1/4,-x+3/4,z+3/4):(-y+3/4,x+3/4,z+1/4)
+:::::(x+3/4,z+1/4,-y+3/4):(-x+3/4,z+3/4,y+1/4):(-x+1/4,-z+1/4,-y+1/4):(x+1/4,-z+3/4,y+3/4)
+:::::(z+3/4,y+1/4,-x+3/4):(z+1/4,-y+3/4,x+3/4):(-z+3/4,y+3/4,x+1/4):(-z+1/4,-y+1/4,-x+1/4)
+:::::(-x+1/4,-y+1/4,-z+1/4):(x+1/4,y+3/4,-z+3/4):(x+3/4,-y+3/4,z+1/4):(-x+3/4,y+1/4,z+3/4)
+:::::(-z+1/4,-x+1/4,-y+1/4):(-z+3/4,x+1/4,y+3/4):(z+1/4,x+3/4,-y+3/4):(z+3/4,-x+3/4,y+1/4)
+:::::(-y+1/4,-z+1/4,-x+1/4):(y+3/4,-z+3/4,x+1/4):(-y+3/4,z+1/4,x+3/4):(y+1/4,z+3/4,-x+3/4)
+:::::(-y+1/2,-x,z+1/2):(y,x,z):(-y,x+1/2,-z+1/2):(y+1/2,-x+1/2,-z)
+:::::(-x+1/2,-z,y+1/2):(x+1/2,-z+1/2,-y):(x,z,y):(-x,z+1/2,-y+1/2)
+:::::(-z+1/2,-y,x+1/2):(-z,y+1/2,-x+1/2):(z+1/2,-y+1/2,-x):(z,y,x)
+::96:h:..2:(1/8,y,-y+1/4):(7/8,-y+1/2,-y+3/4):(3/8,y+1/2,y+3/4):(5/8,-y,y+1/4)
+:::::(-y+1/4,1/8,y):(-y+3/4,7/8,-y+1/2):(y+3/4,3/8,y+1/2):(y+1/4,5/8,-y)
+:::::(y,-y+1/4,1/8):(-y+1/2,-y+3/4,7/8):(y+1/2,y+3/4,3/8):(-y,y+1/4,5/8)
+:::::(1/8,-y+1/4,y):(3/8,y+3/4,y+1/2):(7/8,-y+3/4,-y+1/2):(5/8,y+1/4,-y)
+:::::(y,1/8,-y+1/4):(y+1/2,3/8,y+3/4):(-y+1/2,7/8,-y+3/4):(-y,5/8,y+1/4)
+:::::(-y+1/4,y,1/8):(y+3/4,y+1/2,3/8):(-y+3/4,-y+1/2,7/8):(y+1/4,-y,5/8)
+::96:g:..m:(x,x,z):(-x,-x+1/2,z+1/2):(-x+1/2,x+1/2,-z):(x+1/2,-x,-z+1/2)
+:::::(z,x,x):(z+1/2,-x,-x+1/2):(-z,-x+1/2,x+1/2):(-z+1/2,x+1/2,-x)
+:::::(x,z,x):(-x+1/2,z+1/2,-x):(x+1/2,-z,-x+1/2):(-x,-z+1/2,x+1/2)
+:::::(x+3/4,x+1/4,-z+3/4):(-x+1/4,-x+1/4,-z+1/4):(x+1/4,-x+3/4,z+3/4):(-x+3/4,x+3/4,z+1/4)
+:::::(x+3/4,z+1/4,-x+3/4):(-x+3/4,z+3/4,x+1/4):(-x+1/4,-z+1/4,-x+1/4):(x+1/4,-z+3/4,x+3/4)
+:::::(z+3/4,x+1/4,-x+3/4):(z+1/4,-x+3/4,x+3/4):(-z+3/4,x+3/4,x+1/4):(-z+1/4,-x+1/4,-x+1/4)
+::48:f:2.mm:(x,0,0):(-x,1/2,1/2):(0,x,0):(1/2,-x,1/2)
+:::::(0,0,x):(1/2,1/2,-x):(3/4,x+1/4,3/4):(1/4,-x+1/4,1/4)
+:::::(x+3/4,1/4,3/4):(-x+3/4,3/4,1/4):(3/4,1/4,-x+3/4):(1/4,3/4,x+3/4)
+::32:e:.3m:(x,x,x):(-x,-x+1/2,x+1/2):(-x+1/2,x+1/2,-x):(x+1/2,-x,-x+1/2)
+:::::(x+3/4,x+1/4,-x+3/4):(-x+1/4,-x+1/4,-x+1/4):(x+1/4,-x+3/4,x+3/4):(-x+3/4,x+3/4,x+1/4)
+::16:d:.-3m:(5/8,5/8,5/8):(3/8,7/8,1/8):(7/8,1/8,3/8):(1/8,3/8,7/8)
+::16:c:.-3m:(1/8,1/8,1/8):(7/8,3/8,5/8):(3/8,5/8,7/8):(5/8,7/8,3/8)
+::8:b:-43m:(1/2,1/2,1/2):(1/4,3/4,1/4)::
+::8:a:-43m:(0,0,0):(3/4,1/4,3/4)::
+526:F 4sub1/d -3 2/m:::::::
+::192:i:1:(x,y,z):(-x+3/4,-y+1/4,z+1/2):(-x+1/4,y+1/2,-z+3/4):(x+1/2,-y+3/4,-z+1/4)
+:::::(z,x,y):(z+1/2,-x+3/4,-y+1/4):(-z+3/4,-x+1/4,y+1/2):(-z+1/4,x+1/2,-y+3/4)
+:::::(y,z,x):(-y+1/4,z+1/2,-x+3/4):(y+1/2,-z+3/4,-x+1/4):(-y+3/4,-z+1/4,x+1/2)
+:::::(y+3/4,x+1/4,-z+1/2):(-y,-x,-z):(y+1/4,-x+1/2,z+3/4):(-y+1/2,x+3/4,z+1/4)
+:::::(x+3/4,z+1/4,-y+1/2):(-x+1/2,z+3/4,y+1/4):(-x,-z,-y):(x+1/4,-z+1/2,y+3/4)
+:::::(z+3/4,y+1/4,-x+1/2):(z+1/4,-y+1/2,x+3/4):(-z+1/2,y+3/4,x+1/4):(-z,-y,-x)
+:::::(-x,-y,-z):(x+1/4,y+3/4,-z+1/2):(x+3/4,-y+1/2,z+1/4):(-x+1/2,y+1/4,z+3/4)
+:::::(-z,-x,-y):(-z+1/2,x+1/4,y+3/4):(z+1/4,x+3/4,-y+1/2):(z+3/4,-x+1/2,y+1/4)
+:::::(-y,-z,-x):(y+3/4,-z+1/2,x+1/4):(-y+1/2,z+1/4,x+3/4):(y+1/4,z+3/4,-x+1/2)
+:::::(-y+1/4,-x+3/4,z+1/2):(y,x,z):(-y+3/4,x+1/2,-z+1/4):(y+1/2,-x+1/4,-z+3/4)
+:::::(-x+1/4,-z+3/4,y+1/2):(x+1/2,-z+1/4,-y+3/4):(x,z,y):(-x+3/4,z+1/2,-y+1/4)
+:::::(-z+1/4,-y+3/4,x+1/2):(-z+3/4,y+1/2,-x+1/4):(z+1/2,-y+1/4,-x+3/4):(z,y,x)
+::96:h:..2:(0,y,-y):(3/4,-y+1/4,-y+1/2):(1/4,y+1/2,y+3/4):(1/2,-y+3/4,y+1/4)
+:::::(-y,0,y):(-y+1/2,3/4,-y+1/4):(y+3/4,1/4,y+1/2):(y+1/4,1/2,-y+3/4)
+:::::(y,-y,0):(-y+1/4,-y+1/2,3/4):(y+1/2,y+3/4,1/4):(-y+3/4,y+1/4,1/2)
+:::::(0,-y,y):(1/4,y+3/4,y+1/2):(3/4,-y+1/2,-y+1/4):(1/2,y+1/4,-y+3/4)
+:::::(y,0,-y):(y+1/2,1/4,y+3/4):(-y+1/4,3/4,-y+1/2):(-y+3/4,1/2,y+1/4)
+:::::(-y,y,0):(y+3/4,y+1/2,1/4):(-y+1/2,-y+1/4,3/4):(y+1/4,-y+3/4,1/2)
+::96:g:..m:(x,x,z):(-x+3/4,-x+1/4,z+1/2):(-x+1/4,x+1/2,-z+3/4):(x+1/2,-x+3/4,-z+1/4)
+:::::(z,x,x):(z+1/2,-x+3/4,-x+1/4):(-z+3/4,-x+1/4,x+1/2):(-z+1/4,x+1/2,-x+3/4)
+:::::(x,z,x):(-x+1/4,z+1/2,-x+3/4):(x+1/2,-z+3/4,-x+1/4):(-x+3/4,-z+1/4,x+1/2)
+:::::(x+3/4,x+1/4,-z+1/2):(-x,-x,-z):(x+1/4,-x+1/2,z+3/4):(-x+1/2,x+3/4,z+1/4)
+:::::(x+3/4,z+1/4,-x+1/2):(-x+1/2,z+3/4,x+1/4):(-x,-z,-x):(x+1/4,-z+1/2,x+3/4)
+:::::(z+3/4,x+1/4,-x+1/2):(z+1/4,-x+1/2,x+3/4):(-z+1/2,x+3/4,x+1/4):(-z,-x,-x)
+::48:f:2.mm:(x,1/8,1/8):(-x+3/4,1/8,5/8):(1/8,x,1/8):(5/8,-x+3/4,1/8)
+:::::(1/8,1/8,x):(1/8,5/8,-x+3/4):(7/8,x+1/4,3/8):(7/8,-x,7/8)
+:::::(x+3/4,3/8,3/8):(-x+1/2,7/8,3/8):(7/8,3/8,-x+1/2):(3/8,3/8,x+3/4)
+::32:e:.3m:(x,x,x):(-x+3/4,-x+1/4,x+1/2):(-x+1/4,x+1/2,-x+3/4):(x+1/2,-x+3/4,-x+1/4)
+:::::(x+3/4,x+1/4,-x+1/2):(-x,-x,-x):(x+1/4,-x+1/2,x+3/4):(-x+1/2,x+3/4,x+1/4)
+::16:d:.-3m:(1/2,1/2,1/2):(1/4,3/4,0):(3/4,0,1/4):(0,1/4,3/4)
+::16:c:.-3m:(0,0,0):(3/4,1/4,1/2):(1/4,1/2,3/4):(1/2,3/4,1/4)
+::8:b:-43m:(3/8,3/8,3/8):(1/8,5/8,1/8)::
+::8:a:-43m:(1/8,1/8,1/8):(7/8,3/8,3/8)::
+527:F 4sub1/d -3 2/c:::::::
+::192:h:1:(x,y,z):(-x,-y+1/2,z+1/2):(-x+1/2,y+1/2,-z):(x+1/2,-y,-z+1/2)
+:::::(z,x,y):(z+1/2,-x,-y+1/2):(-z,-x+1/2,y+1/2):(-z+1/2,x+1/2,-y)
+:::::(y,z,x):(-y+1/2,z+1/2,-x):(y+1/2,-z,-x+1/2):(-y,-z+1/2,x+1/2)
+:::::(y+3/4,x+1/4,-z+3/4):(-y+1/4,-x+1/4,-z+1/4):(y+1/4,-x+3/4,z+3/4):(-y+3/4,x+3/4,z+1/4)
+:::::(x+3/4,z+1/4,-y+3/4):(-x+3/4,z+3/4,y+1/4):(-x+1/4,-z+1/4,-y+1/4):(x+1/4,-z+3/4,y+3/4)
+:::::(z+3/4,y+1/4,-x+3/4):(z+1/4,-y+3/4,x+3/4):(-z+3/4,y+3/4,x+1/4):(-z+1/4,-y+1/4,-x+1/4)
+:::::(-x+3/4,-y+3/4,-z+3/4):(x+3/4,y+1/4,-z+1/4):(x+1/4,-y+1/4,z+3/4):(-x+1/4,y+3/4,z+1/4)
+:::::(-z+3/4,-x+3/4,-y+3/4):(-z+1/4,x+3/4,y+1/4):(z+3/4,x+1/4,-y+1/4):(z+1/4,-x+1/4,y+3/4)
+:::::(-y+3/4,-z+3/4,-x+3/4):(y+1/4,-z+1/4,x+3/4):(-y+1/4,z+3/4,x+1/4):(y+3/4,z+1/4,-x+1/4)
+:::::(-y,-x+1/2,z):(y+1/2,x+1/2,z+1/2):(-y+1/2,x,-z):(y,-x,-z+1/2)
+:::::(-x,-z+1/2,y):(x,-z,-y+1/2):(x+1/2,z+1/2,y+1/2):(-x+1/2,z,-y)
+:::::(-z,-y+1/2,x):(-z+1/2,y,-x):(z,-y,-x+1/2):(z+1/2,y+1/2,x+1/2)
+::96:g:..2:(1/8,y,-y+1/4):(7/8,-y+1/2,-y+3/4):(3/8,y+1/2,y+3/4):(5/8,-y,y+1/4)
+:::::(-y+1/4,1/8,y):(-y+3/4,7/8,-y+1/2):(y+3/4,3/8,y+1/2):(y+1/4,5/8,-y)
+:::::(y,-y+1/4,1/8):(-y+1/2,-y+3/4,7/8):(y+1/2,y+3/4,3/8):(-y,y+1/4,5/8)
+:::::(5/8,-y+3/4,y+1/2):(7/8,y+1/4,y):(3/8,-y+1/4,-y):(1/8,y+3/4,-y+1/2)
+:::::(y+1/2,5/8,-y+3/4):(y,7/8,y+1/4):(-y,3/8,-y+1/4):(-y+1/2,1/8,y+3/4)
+:::::(-y+3/4,y+1/2,5/8):(y+1/4,y,7/8):(-y+1/4,-y,3/8):(y+3/4,-y+1/2,1/8)
+::96:f:2..:(x,0,0):(-x,1/2,1/2):(0,x,0):(1/2,-x,1/2)
+:::::(0,0,x):(1/2,1/2,-x):(3/4,x+1/4,3/4):(1/4,-x+1/4,1/4)
+:::::(x+3/4,1/4,3/4):(-x+3/4,3/4,1/4):(3/4,1/4,-x+3/4):(1/4,3/4,x+3/4)
+:::::(-x+3/4,3/4,3/4):(x+3/4,1/4,1/4):(3/4,-x+3/4,3/4):(1/4,x+3/4,1/4)
+:::::(3/4,3/4,-x+3/4):(1/4,1/4,x+3/4):(0,-x+1/2,0):(1/2,x+1/2,1/2)
+:::::(-x,1/2,0):(x,0,1/2):(0,1/2,x):(1/2,0,-x)
+::64:e:.3.:(x,x,x):(-x,-x+1/2,x+1/2):(-x+1/2,x+1/2,-x):(x+1/2,-x,-x+1/2)
+:::::(x+3/4,x+1/4,-x+3/4):(-x+1/4,-x+1/4,-x+1/4):(x+1/4,-x+3/4,x+3/4):(-x+3/4,x+3/4,x+1/4)
+:::::(-x+3/4,-x+3/4,-x+3/4):(x+3/4,x+1/4,-x+1/4):(x+1/4,-x+1/4,x+3/4):(-x+1/4,x+3/4,x+1/4)
+:::::(-x,-x+1/2,x):(x+1/2,x+1/2,x+1/2):(-x+1/2,x,-x):(x,-x,-x+1/2)
+::48:d:-4..:(1/4,0,0):(3/4,1/2,1/2):(0,1/4,0):(1/2,3/4,1/2)
+:::::(0,0,1/4):(1/2,1/2,3/4):(3/4,1/2,3/4):(1/4,0,1/4)
+:::::(0,1/4,3/4):(1/2,3/4,1/4):(3/4,1/4,1/2):(1/4,3/4,0)
+::32:c:.-3.:(3/8,3/8,3/8):(5/8,1/8,7/8):(1/8,7/8,5/8):(7/8,5/8,1/8)
+:::::(1/8,5/8,3/8):(7/8,7/8,7/8):(5/8,3/8,1/8):(3/8,1/8,5/8)
+::32:b:0.32:(1/8,1/8,1/8):(7/8,3/8,5/8):(3/8,5/8,7/8):(5/8,7/8,3/8)
+:::::(5/8,5/8,5/8):(7/8,3/8,1/8):(3/8,1/8,7/8):(1/8,7/8,3/8)
+::16:a:23:(0,0,0):(3/4,1/4,3/4):(3/4,3/4,3/4):(0,1/2,0)
+528:F 4sub1/d -3 2/c:::::::
+::192:h:1:(x,y,z):(-x+1/4,-y+3/4,z+1/2):(-x+3/4,y+1/2,-z+1/4):(x+1/2,-y+1/4,-z+3/4)
+:::::(z,x,y):(z+1/2,-x+1/4,-y+3/4):(-z+1/4,-x+3/4,y+1/2):(-z+3/4,x+1/2,-y+1/4)
+:::::(y,z,x):(-y+3/4,z+1/2,-x+1/4):(y+1/2,-z+1/4,-x+3/4):(-y+1/4,-z+3/4,x+1/2)
+:::::(y+3/4,x+1/4,-z):(-y+1/2,-x+1/2,-z+1/2):(y+1/4,-x,z+3/4):(-y,x+3/4,z+1/4)
+:::::(x+3/4,z+1/4,-y):(-x,z+3/4,y+1/4):(-x+1/2,-z+1/2,-y+1/2):(x+1/4,-z,y+3/4)
+:::::(z+3/4,y+1/4,-x):(z+1/4,-y,x+3/4):(-z,y+3/4,x+1/4):(-z+1/2,-y+1/2,-x+1/2)
+:::::(-x,-y,-z):(x+3/4,y+1/4,-z+1/2):(x+1/4,-y+1/2,z+3/4):(-x+1/2,y+3/4,z+1/4)
+:::::(-z,-x,-y):(-z+1/2,x+3/4,y+1/4):(z+3/4,x+1/4,-y+1/2):(z+1/4,-x+1/2,y+3/4)
+:::::(-y,-z,-x):(y+1/4,-z+1/2,x+3/4):(-y+1/2,z+3/4,x+1/4):(y+3/4,z+1/4,-x+1/2)
+:::::(-y+1/4,-x+3/4,z):(y+1/2,x+1/2,z+1/2):(-y+3/4,x,-z+1/4):(y,-x+1/4,-z+3/4)
+:::::(-x+1/4,-z+3/4,y):(x,-z+1/4,-y+3/4):(x+1/2,z+1/2,y+1/2):(-x+3/4,z,-y+1/4)
+:::::(-z+1/4,-y+3/4,x):(-z+3/4,y,-x+1/4):(z,-y+1/4,-x+3/4):(z+1/2,y+1/2,x+1/2)
+::96:g:..2:(1/4,y,-y):(0,-y+3/4,-y+1/2):(1/2,y+1/2,y+1/4):(3/4,-y+1/4,y+3/4)
+:::::(-y,1/4,y):(-y+1/2,0,-y+3/4):(y+1/4,1/2,y+1/2):(y+3/4,3/4,-y+1/4)
+:::::(y,-y,1/4):(-y+3/4,-y+1/2,0):(y+1/2,y+1/4,1/2):(-y+1/4,y+3/4,3/4)
+:::::(3/4,-y,y):(0,y+1/4,y+1/2):(1/2,-y+1/2,-y+3/4):(1/4,y+3/4,-y+1/4)
+:::::(y,3/4,-y):(y+1/2,0,y+1/4):(-y+3/4,1/2,-y+1/2):(-y+1/4,1/4,y+3/4)
+:::::(-y,y,3/4):(y+1/4,y+1/2,0):(-y+1/2,-y+3/4,1/2):(y+3/4,-y+1/4,1/4)
+::96:f:2..:(x,1/8,1/8):(-x+1/4,5/8,5/8):(1/8,x,1/8):(5/8,-x+1/4,5/8)
+:::::(1/8,1/8,x):(5/8,5/8,-x+1/4):(7/8,x+1/4,7/8):(3/8,-x+1/2,3/8)
+:::::(x+3/4,3/8,7/8):(-x,7/8,3/8):(7/8,3/8,-x):(3/8,7/8,x+3/4)
+:::::(-x,7/8,7/8):(x+3/4,3/8,3/8):(7/8,-x,7/8):(3/8,x+3/4,3/8)
+:::::(7/8,7/8,-x):(3/8,3/8,x+3/4):(1/8,-x+3/4,1/8):(5/8,x+1/2,5/8)
+:::::(-x+1/4,5/8,1/8):(x,1/8,5/8):(1/8,5/8,x):(5/8,1/8,-x+1/4)
+::64:e:.3.:(x,x,x):(-x+1/4,-x+3/4,x+1/2):(-x+3/4,x+1/2,-x+1/4):(x+1/2,-x+1/4,-x+3/4)
+:::::(x+3/4,x+1/4,-x):(-x+1/2,-x+1/2,-x+1/2):(x+1/4,-x,x+3/4):(-x,x+3/4,x+1/4)
+:::::(-x,-x,-x):(x+3/4,x+1/4,-x+1/2):(x+1/4,-x+1/2,x+3/4):(-x+1/2,x+3/4,x+1/4)
+:::::(-x+1/4,-x+3/4,x):(x+1/2,x+1/2,x+1/2):(-x+3/4,x,-x+1/4):(x,-x+1/4,-x+3/4)
+::48:d:-4..:(7/8,1/8,1/8):(3/8,5/8,5/8):(1/8,7/8,1/8):(5/8,3/8,5/8)
+:::::(1/8,1/8,7/8):(5/8,5/8,3/8):(7/8,1/8,7/8):(3/8,5/8,3/8)
+:::::(5/8,3/8,7/8):(1/8,7/8,3/8):(7/8,3/8,1/8):(3/8,7/8,5/8)
+::32:c:.-3.:(0,0,0):(1/4,3/4,1/2):(3/4,1/2,1/4):(1/2,1/4,3/4)
+:::::(3/4,1/4,0):(1/2,1/2,1/2):(1/4,0,3/4):(0,3/4,1/4)
+::32:b:0.32:(1/4,1/4,1/4):(0,1/2,3/4):(1/2,3/4,0):(3/4,0,1/2)
+:::::(3/4,3/4,3/4):(0,1/2,1/4):(1/2,1/4,0):(1/4,0,1/2)
+::16:a:23:(1/8,1/8,1/8):(7/8,3/8,7/8):(7/8,7/8,7/8):(1/8,5/8,1/8)
+529:I 4/m -3 2/m:::::::
+::96:l:1:(x,y,z):(-x,-y,z):(-x,y,-z):(x,-y,-z)
+:::::(z,x,y):(z,-x,-y):(-z,-x,y):(-z,x,-y)
+:::::(y,z,x):(-y,z,-x):(y,-z,-x):(-y,-z,x)
+:::::(y,x,-z):(-y,-x,-z):(y,-x,z):(-y,x,z)
+:::::(x,z,-y):(-x,z,y):(-x,-z,-y):(x,-z,y)
+:::::(z,y,-x):(z,-y,x):(-z,y,x):(-z,-y,-x)
+:::::(-x,-y,-z):(x,y,-z):(x,-y,z):(-x,y,z)
+:::::(-z,-x,-y):(-z,x,y):(z,x,-y):(z,-x,y)
+:::::(-y,-z,-x):(y,-z,x):(-y,z,x):(y,z,-x)
+:::::(-y,-x,z):(y,x,z):(-y,x,-z):(y,-x,-z)
+:::::(-x,-z,y):(x,-z,-y):(x,z,y):(-x,z,-y)
+:::::(-z,-y,x):(-z,y,-x):(z,-y,-x):(z,y,x)
+::48:k:..m:(x,x,z):(-x,-x,z):(-x,x,-z):(x,-x,-z)
+:::::(z,x,x):(z,-x,-x):(-z,-x,x):(-z,x,-x)
+:::::(x,z,x):(-x,z,-x):(x,-z,-x):(-x,-z,x)
+:::::(x,x,-z):(-x,-x,-z):(x,-x,z):(-x,x,z)
+:::::(x,z,-x):(-x,z,x):(-x,-z,-x):(x,-z,x)
+:::::(z,x,-x):(z,-x,x):(-z,x,x):(-z,-x,-x)
+::48:j:m..:(0,y,z):(0,-y,z):(0,y,-z):(0,-y,-z)
+:::::(z,0,y):(z,0,-y):(-z,0,y):(-z,0,-y)
+:::::(y,z,0):(-y,z,0):(y,-z,0):(-y,-z,0)
+:::::(y,0,-z):(-y,0,-z):(y,0,z):(-y,0,z)
+:::::(0,z,-y):(0,z,y):(0,-z,-y):(0,-z,y)
+:::::(z,y,0):(z,-y,0):(-z,y,0):(-z,-y,0)
+::48:i:..2:(1/4,y,-y+1/2):(3/4,-y,-y+1/2):(3/4,y,y+1/2):(1/4,-y,y+1/2)
+:::::(-y+1/2,1/4,y):(-y+1/2,3/4,-y):(y+1/2,3/4,y):(y+1/2,1/4,-y)
+:::::(y,-y+1/2,1/4):(-y,-y+1/2,3/4):(y,y+1/2,3/4):(-y,y+1/2,1/4)
+:::::(3/4,-y,y+1/2):(1/4,y,y+1/2):(1/4,-y,-y+1/2):(3/4,y,-y+1/2)
+:::::(y+1/2,3/4,-y):(y+1/2,1/4,y):(-y+1/2,1/4,-y):(-y+1/2,3/4,y)
+:::::(-y,y+1/2,3/4):(y,y+1/2,1/4):(-y,-y+1/2,1/4):(y,-y+1/2,3/4)
+::24:h:m.m2:(0,y,y):(0,-y,y):(0,y,-y):(0,-y,-y)
+:::::(y,0,y):(y,0,-y):(-y,0,y):(-y,0,-y)
+:::::(y,y,0):(-y,y,0):(y,-y,0):(-y,-y,0)
+::24:g:mm2..:(x,0,1/2):(-x,0,1/2):(1/2,x,0):(1/2,-x,0)
+:::::(0,1/2,x):(0,1/2,-x):(0,x,1/2):(0,-x,1/2)
+:::::(x,1/2,0):(-x,1/2,0):(1/2,0,-x):(1/2,0,x)
+::16:f:.3m:(x,x,x):(-x,-x,x):(-x,x,-x):(x,-x,-x)
+:::::(x,x,-x):(-x,-x,-x):(x,-x,x):(-x,x,x)
+::12:e:4m.m:(x,0,0):(-x,0,0):(0,x,0):(0,-x,0)
+:::::(0,0,x):(0,0,-x)::
+::12:d:-4m.2:(1/4,0,1/2):(3/4,0,1/2):(1/2,1/4,0):(1/2,3/4,0)
+:::::(0,1/2,1/4):(0,1/2,3/4)::
+::8:c:.-3m:(1/4,1/4,1/4):(3/4,3/4,1/4):(3/4,1/4,3/4):(1/4,3/4,3/4)
+::6:b:4/mm.m:(0,1/2,1/2):(1/2,0,1/2):(1/2,1/2,0):
+::2:a:m-3m:(0,0,0):::
+530:I 4sub1/a -3 2/d:::::::
+::96:h:1:(x,y,z):(-x+1/2,-y,z+1/2):(-x,y+1/2,-z+1/2):(x+1/2,-y+1/2,-z)
+:::::(z,x,y):(z+1/2,-x+1/2,-y):(-z+1/2,-x,y+1/2):(-z,x+1/2,-y+1/2)
+:::::(y,z,x):(-y,z+1/2,-x+1/2):(y+1/2,-z+1/2,-x):(-y+1/2,-z,x+1/2)
+:::::(y+3/4,x+1/4,-z+1/4):(-y+3/4,-x+3/4,-z+3/4):(y+1/4,-x+1/4,z+3/4):(-y+1/4,x+3/4,z+1/4)
+:::::(x+3/4,z+1/4,-y+1/4):(-x+1/4,z+3/4,y+1/4):(-x+3/4,-z+3/4,-y+3/4):(x+1/4,-z+1/4,y+3/4)
+:::::(z+3/4,y+1/4,-x+1/4):(z+1/4,-y+1/4,x+3/4):(-z+1/4,y+3/4,x+1/4):(-z+3/4,-y+3/4,-x+3/4)
+:::::(-x,-y,-z):(x+1/2,y,-z+1/2):(x,-y+1/2,z+1/2):(-x+1/2,y+1/2,z)
+:::::(-z,-x,-y):(-z+1/2,x+1/2,y):(z+1/2,x,-y+1/2):(z,-x+1/2,y+1/2)
+:::::(-y,-z,-x):(y,-z+1/2,x+1/2):(-y+1/2,z+1/2,x):(y+1/2,z,-x+1/2)
+:::::(-y+1/4,-x+3/4,z+3/4):(y+1/4,x+1/4,z+1/4):(-y+3/4,x+3/4,-z+1/4):(y+3/4,-x+1/4,-z+3/4)
+:::::(-x+1/4,-z+3/4,y+3/4):(x+3/4,-z+1/4,-y+3/4):(x+1/4,z+1/4,y+1/4):(-x+3/4,z+3/4,-y+1/4)
+:::::(-z+1/4,-y+3/4,x+3/4):(-z+3/4,y+3/4,-x+1/4):(z+3/4,-y+1/4,-x+3/4):(z+1/4,y+1/4,x+1/4)
+::48:g:..2:(1/8,y,-y+1/4):(3/8,-y,-y+3/4):(7/8,y+1/2,y+1/4):(5/8,-y+1/2,y+3/4)
+:::::(-y+1/4,1/8,y):(-y+3/4,3/8,-y):(y+1/4,7/8,y+1/2):(y+3/4,5/8,-y+1/2)
+:::::(y,-y+1/4,1/8):(-y,-y+3/4,3/8):(y+1/2,y+1/4,7/8):(-y+1/2,y+3/4,5/8)
+:::::(7/8,-y,y+3/4):(5/8,y,y+1/4):(1/8,-y+1/2,-y+3/4):(3/8,y+1/2,-y+1/4)
+:::::(y+3/4,7/8,-y):(y+1/4,5/8,y):(-y+3/4,1/8,-y+1/2):(-y+1/4,3/8,y+1/2)
+:::::(-y,y+3/4,7/8):(y,y+1/4,5/8):(-y+1/2,-y+3/4,1/8):(y+1/2,-y+1/4,3/8)
+::48:f:2..:(x,0,1/4):(-x+1/2,0,3/4):(1/4,x,0):(3/4,-x+1/2,0)
+:::::(0,1/4,x):(0,3/4,-x+1/2):(3/4,x+1/4,0):(3/4,-x+3/4,1/2)
+:::::(x+3/4,1/2,1/4):(-x+1/4,0,1/4):(0,1/4,-x+1/4):(1/2,1/4,x+3/4)
+:::::(-x,0,3/4):(x+1/2,0,1/4):(3/4,-x,0):(1/4,x+1/2,0)
+:::::(0,3/4,-x):(0,1/4,x+1/2):(1/4,-x+3/4,0):(1/4,x+1/4,1/2)
+:::::(-x+1/4,1/2,3/4):(x+3/4,0,3/4):(0,3/4,x+3/4):(1/2,3/4,-x+1/4)
+::32:e:.3.:(x,x,x):(-x+1/2,-x,x+1/2):(-x,x+1/2,-x+1/2):(x+1/2,-x+1/2,-x)
+:::::(x+3/4,x+1/4,-x+1/4):(-x+3/4,-x+3/4,-x+3/4):(x+1/4,-x+1/4,x+3/4):(-x+1/4,x+3/4,x+1/4)
+:::::(-x,-x,-x):(x+1/2,x,-x+1/2):(x,-x+1/2,x+1/2):(-x+1/2,x+1/2,x)
+:::::(-x+1/4,-x+3/4,x+3/4):(x+1/4,x+1/4,x+1/4):(-x+3/4,x+3/4,-x+1/4):(x+3/4,-x+1/4,-x+3/4)
+::24:d:-4..:(3/8,0,1/4):(1/8,0,3/4):(1/4,3/8,0):(3/4,1/8,0)
+:::::(0,1/4,3/8):(0,3/4,1/8):(3/4,5/8,0):(3/4,3/8,1/2)
+:::::(1/8,1/2,1/4):(7/8,0,1/4):(0,1/4,7/8):(1/2,1/4,1/8)
+::24:c:2.22:(1/8,0,1/4):(3/8,0,3/4):(1/4,1/8,0):(3/4,3/8,0)
+:::::(0,1/4,1/8):(0,3/4,3/8):(7/8,0,3/4):(5/8,0,1/4)
+:::::(3/4,7/8,0):(1/4,5/8,0):(0,3/4,7/8):(0,1/4,5/8)
+::16:b:0.32:(1/8,1/8,1/8):(3/8,7/8,5/8):(7/8,5/8,3/8):(5/8,3/8,7/8)
+:::::(7/8,7/8,7/8):(5/8,1/8,3/8):(1/8,3/8,5/8):(3/8,5/8,1/8)
+::16:a:.-3.:(0,0,0):(1/2,0,1/2):(0,1/2,1/2):(1/2,1/2,0)
+:::::(3/4,1/4,1/4):(3/4,3/4,3/4):(1/4,1/4,3/4):(1/4,3/4,1/4)
+end of data
+::::::::
+:::::(x,y,z):(-x,-y,-z)::
+:::::(3/4,1/4,1/4):::
+:::::(3/4,1/4,0):::
+:::::(1/4,1/4,1/2):::
+:::::(1/4,1/4,0):::
+:::::(1/2,1/2,1/2):::
+:::::(0,1/2,1/2):::
+:::::(1/2,0,1/2):::
+:::::(1/2,1/2,0):::
+:::::(1/2,0,0):::
+:::::(0,1/2,0):::
+:::::(0,0,1/2):::
+:::::(0,0,0):::
+::::::::
+:::::(x,y,z):(-x,-y,-z)::
+:::::(1/4,1/4,3/4):::
+:::::(1/4,3/4,1/4):::
+:::::(3/4,1/4,1/4):::
+:::::(1/4,1/4,1/4):::
+:::::(1/2,1/2,1/2):::
+:::::(0,1/2,1/2):::
+:::::(1/2,0,1/2):::
+:::::(1/2,1/2,0):::
+:::::(1/2,0,0):::
+:::::(0,1/2,0):::
+:::::(0,0,1/2):::
+:::::(0,0,0):::
+::::::::
+:::::(x,y,z):(-x,-y,-z)::
+:::::(1/2,3/4,1/4):::
+:::::(0,3/4,1/4):::
+:::::(1/2,1/4,1/4):::
+:::::(0,1/4,1/4):::
+:::::(1/2,1/2,1/2):::
+:::::(0,1/2,1/2):::
+:::::(1/2,0,1/2):::
+:::::(1/2,1/2,0):::
+:::::(1/2,0,0):::
+:::::(0,1/2,0):::
+:::::(0,0,1/2):::
+:::::(0,0,0):::
+::::::::
+:::::(x,y,z):(-x,-y,-z)::
+:::::(1/4,1/2,3/4):::
+:::::(1/4,0,3/4):::
+:::::(1/4,1/2,1/2):::
+:::::(1/4,0,1/4):::
+:::::(1/2,1/2,1/2):::
+:::::(0,1/2,1/2):::
+:::::(1/2,0,1/2):::
+:::::(1/2,1/2,0):::
+:::::(1/2,0,0):::
+:::::(0,1/2,0):::
+:::::(0,0,1/2):::
+:::::(0,0,0):::
+::::::::
+:::::(x,y,z):(-x,-y,-z)::
+:::::(3/4,1/4,1/4):::
+:::::(3/4,1/4,0):::
+:::::(1/4,1/4,1/2):::
+:::::(1/4,1/4,0):::
+:::::(1/4,1/2,3/4):::
+:::::(1/4,0,3/4):::
+:::::(1/4,1/2,1/4):::
+:::::(1/4,0,1/4):::
+:::::(1/2,3/4,1/4):::
+:::::(0,3/4,1/4):::
+:::::(1/2,1/4,1/4):::
+:::::(0,1/4,1/4):::
+:::::(1/2,1/2,1/2):::
+:::::(0,1/2,1/2):::
+:::::(1/2,0,1/2):::
+:::::(1/2,1/2,0):::
+:::::(1/2,0,0):::
+:::::(0,1/2,0):::
+:::::(0,0,1/2):::
+:::::(0,0,0):::
diff --git a/database/arithmetic.py b/database/arithmetic.py
new file mode 100755
index 0000000..eaab0f6
--- /dev/null
+++ b/database/arithmetic.py
@@ -0,0 +1,89 @@
+#!/usr/bin/python
+
+import numpy as np
+
+arithmetic_class = [
+ [0],
+ [1],
+ [2],
+ [3, 4],
+ [5],
+ [6, 7],
+ [8, 9],
+ [10, 11, 13, 14],
+ [12, 15],
+ [16, 17, 18, 19],
+ [20, 21],
+ [22],
+ [23, 24],
+ [25, 26, 27, 28, 29, 30, 31, 32, 33, 34],
+ [35, 36, 37],
+ [38, 39, 40, 41],
+ [42, 43],
+ [44, 45, 46],
+ [47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62],
+ [63, 64, 65, 66, 67, 68],
+ [69, 70],
+ [71, 72, 73, 74],
+ [75, 76, 77, 78],
+ [79, 80],
+ [81],
+ [82],
+ [83, 84, 85, 86],
+ [87, 88],
+ [89, 90, 91, 92, 93, 94, 95, 96],
+ [97, 98],
+ [99, 100, 101, 102, 103, 104, 105, 106],
+ [107, 108, 109, 110],
+ [111, 112, 113, 114],
+ [115, 116, 117, 118],
+ [119, 120],
+ [121, 122],
+ [123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,135, 136, 137,
+ 138],
+ [139, 140, 141, 142],
+ [143, 144, 145],
+ [146],
+ [147],
+ [148],
+ [149, 151, 153],
+ [150, 152, 154],
+ [155],
+ [156, 158],
+ [157, 159],
+ [160, 161],
+ [162, 163],
+ [164, 165],
+ [166, 167],
+ [168, 169, 170, 171, 172, 173],
+ [174],
+ [175, 176],
+ [177, 178, 179, 180, 181, 182],
+ [183, 184, 185, 186],
+ [187, 188],
+ [189, 190],
+ [191, 192, 193, 194],
+ [195, 198],
+ [196],
+ [197, 199],
+ [200, 201, 205],
+ [202, 203],
+ [204, 206],
+ [207, 208, 213, 212],
+ [209, 210],
+ [211, 214],
+ [215, 218],
+ [216, 219],
+ [217, 220],
+ [221, 222, 223, 224],
+ [225, 226, 227, 228],
+ [229, 230]]
+
+spg2arh = []
+for i, nums in enumerate(arithmetic_class):
+ for n in nums:
+ spg2arh.append([n, i])
+
+spg2arh.sort(key=lambda pair: pair[0])
+arh = ["%2d" % pair[1] for pair in spg2arh]
+print(", ".join(arh))
diff --git a/database/change_of_basis.py b/database/change_of_basis.py
new file mode 100755
index 0000000..2b4e786
--- /dev/null
+++ b/database/change_of_basis.py
@@ -0,0 +1,108 @@
+#!/usr/bin/env python
+
+import numpy as np
+
+identity = [[ 1, 0, 0 ],
+ [ 0, 1, 0 ],
+ [ 0, 0, 1 ]]
+permute_abc = [[ 0, 0, 1 ],
+ [ 1, 0, 0 ],
+ [ 0, 1, 0 ]]
+invert_b = [[ 0, 0, 1 ],
+ [ 0,-1, 0 ],
+ [ 1, 0, 0 ]]
+invert_c = [[ 0, 1, 0 ],
+ [ 1, 0, 0 ],
+ [ 0, 0,-1 ]]
+monocli_cell_choice = [[-1, 0, 1 ],
+ [ 0, 1, 0 ],
+ [-1, 0, 0 ]]
+monocli_centers = ['C', 'I', 'A', 'I']
+
+def print_monocli():
+ mat = identity
+ transform_mats = []
+ centerings = []
+ center = 'C'
+ for i in range(3):
+ for j in range(3):
+ for k in range(2):
+ transform_mats.append(mat)
+ centerings.append(center)
+
+ mat = np.dot(mat, invert_b)
+ if center == 'C':
+ center = 'A'
+ elif center == 'A':
+ center = 'C'
+ elif center == 'B':
+ center = 'B'
+ elif center == 'I':
+ center = 'I'
+ mat = np.dot(mat, permute_abc)
+ if center == 'C':
+ center = 'B'
+ elif center == 'B':
+ center = 'A'
+ elif center == 'A':
+ center = 'C'
+ elif center == 'I':
+ center = 'I'
+ mat = np.dot(mat, monocli_cell_choice)
+ center = monocli_centers[(i + 1) % 4]
+
+ for mat in np.array(transform_mats):
+ print " {{%2d,%2d,%2d }," % tuple(mat[0])
+ print " {%2d,%2d,%2d }," % tuple(mat[1])
+ print " {%2d,%2d,%2d }}," % tuple(mat[2])
+ for center in centerings:
+ if center == 'C':
+ print "C_FACE,"
+ if center == 'A':
+ print "A_FACE,"
+ if center == 'B':
+ print "B_FACE,"
+ if center == 'I':
+ print "BASE,"
+
+def print_ortho():
+ mat = identity
+ transform_mats = []
+ centerings = []
+ center = 'C'
+ for i in range(2):
+ for j in range(3):
+ transform_mats.append(mat)
+ centerings.append(center)
+ mat = np.dot(mat, permute_abc)
+ if center == 'C':
+ center = 'B'
+ elif center == 'B':
+ center = 'A'
+ elif center == 'A':
+ center = 'C'
+ mat = np.dot(mat, invert_c)
+ if center == 'C':
+ center = 'C'
+ elif center == 'A':
+ center = 'B'
+ elif center == 'B':
+ center = 'A'
+
+ for mat in np.array(transform_mats):
+ print " {{%2d,%2d,%2d }," % tuple(mat[0])
+ print " {%2d,%2d,%2d }," % tuple(mat[1])
+ print " {%2d,%2d,%2d }}," % tuple(mat[2])
+ for center in centerings:
+ if center == 'C':
+ print "C_FACE,"
+ if center == 'A':
+ print "A_FACE,"
+ if center == 'B':
+ print "B_FACE,"
+ if center == 'I':
+ print "BASE,"
+
+
+print_monocli()
+# print_ortho()
diff --git a/database/hall2operations.py b/database/hall2operations.py
new file mode 100755
index 0000000..6f1dd19
--- /dev/null
+++ b/database/hall2operations.py
@@ -0,0 +1,416 @@
+#!/usr/bin/env python
+
+# This will (hopefully) be the code to extract symmetry operations
+# from Hall symbols
+
+import numpy as np
+
+lattice_symbols = {
+ 'P': [ [ 0, 0, 0 ] ],
+ 'A': [ [ 0, 0, 0 ], [ 0, 1./2, 1./2 ] ],
+ 'B': [ [ 0, 0, 0 ], [ 1./2, 0, 1./2 ] ],
+ 'C': [ [ 0, 0, 0 ], [ 1./2, 1./2, 0 ] ],
+ 'I': [ [ 0, 0, 0 ], [ 1./2, 1./2, 1./2 ] ],
+ 'R': [ [ 0, 0, 0 ], [ 2./3, 1./3, 1./3 ], [ 1./3, 2./3, 2./3 ] ],
+ 'H': [ [ 0, 0, 0 ], [ 2./3, 1./3, 0 ], [ 1./3, 2./3, 0 ] ],
+ 'F': [ [ 0, 0, 0 ], [ 0, 1./2, 1./2 ], [ 1./2, 0, 1./2 ], [ 1./2, 1./2, 0 ] ]
+ }
+
+rotation_matrices = {
+ '1x': [ [ 1, 0, 0 ],
+ [ 0, 1, 0 ],
+ [ 0, 0, 1 ] ],
+ '1y': [ [ 1, 0, 0 ],
+ [ 0, 1, 0 ],
+ [ 0, 0, 1 ] ],
+ '1z': [ [ 1, 0, 0 ],
+ [ 0, 1, 0 ],
+ [ 0, 0, 1 ] ],
+ '2x': [ [ 1, 0, 0 ],
+ [ 0,-1, 0 ],
+ [ 0, 0,-1 ] ],
+ '2y': [ [-1, 0, 0 ],
+ [ 0, 1, 0 ],
+ [ 0, 0,-1 ] ],
+ '2z': [ [-1, 0, 0 ],
+ [ 0,-1, 0 ],
+ [ 0, 0, 1 ] ],
+ '3x': [ [ 1, 0, 0 ],
+ [ 0, 0,-1 ],
+ [ 0, 1,-1 ] ],
+ '3y': [ [-1, 0, 1 ],
+ [ 0, 1, 0 ],
+ [-1, 0, 0 ] ],
+ '3z': [ [ 0,-1, 0 ],
+ [ 1,-1, 0 ],
+ [ 0, 0, 1 ] ],
+ '4x': [ [ 1, 0, 0 ],
+ [ 0, 0,-1 ],
+ [ 0, 1, 0 ] ],
+ '4y': [ [ 0, 0, 1 ],
+ [ 0, 1, 0 ],
+ [-1, 0, 0 ] ],
+ '4z': [ [ 0,-1, 0 ],
+ [ 1, 0, 0 ],
+ [ 0, 0, 1 ] ],
+ '6x': [ [ 1, 0, 0 ],
+ [ 0, 1,-1 ],
+ [ 0, 1, 0 ] ],
+ '6y': [ [ 0, 0, 1 ],
+ [ 0, 1, 0 ],
+ [-1, 0, 1 ] ],
+ '6z': [ [ 1,-1, 0 ],
+ [ 1, 0, 0 ],
+ [ 0, 0, 1 ] ],
+ '2px': [ [-1, 0, 0 ], # b-c
+ [ 0, 0,-1 ],
+ [ 0,-1, 0 ] ],
+ '2ppx': [ [-1, 0, 0 ], # b+c
+ [ 0, 0, 1 ],
+ [ 0, 1, 0 ] ],
+ '2py': [ [ 0, 0,-1 ], # a-c
+ [ 0,-1, 0 ],
+ [-1, 0, 0 ] ],
+ '2ppy': [ [ 0, 0, 1 ], # a+c
+ [ 0,-1, 0 ],
+ [ 1, 0, 0 ] ],
+ '2pz': [ [ 0,-1, 0 ], # a-b
+ [-1, 0, 0 ],
+ [ 0, 0,-1 ] ],
+ '2ppz': [ [ 0, 1, 0 ], # a+b
+ [ 1, 0, 0 ],
+ [ 0, 0,-1 ] ],
+ '3*': [ [ 0, 0, 1 ], # a+b+c
+ [ 1, 0, 0 ],
+ [ 0, 1, 0 ] ]
+ }
+
+translations = {
+ 'a': [ 1./2, 0, 0 ],
+ 'b': [ 0, 1./2, 0 ],
+ 'c': [ 0, 0, 1./2 ],
+ 'n': [ 1./2, 1./2, 1./2 ],
+ 'u': [ 1./4, 0, 0 ],
+ 'v': [ 0, 1./4, 0 ],
+ 'w': [ 0, 0, 1./4 ],
+ 'd': [ 1./4, 1./4, 1./4 ]
+ }
+
+
+def read_spg_csv( filename="spg.csv" ):
+ hall_symbols = []
+ spg_num = []
+ for line in open( filename ):
+ data = line.split(',')
+ hall_symbols.append( [data[6], data[4]] )
+ return hall_symbols
+
+class HallSymbol:
+ def __init__( self, hall_symbol ):
+ self.hall_symbol = hall_symbol.split()
+ self.__decompose()
+ self.__operations()
+ self.__full_operations()
+
+ def get_LNV( self ):
+ return self.L, self.N, self.V
+
+ def get_operations( self ):
+ return self.R, self.T
+
+ def get_full_operations( self ):
+ return self.G_R, self.G_T
+
+ def __full_operations( self ):
+ E = np.array( rotation_matrices['1x'] )
+ T0 = np.zeros( 3, dtype=float )
+ if self.L[0] == '-':
+ G_R = [ E, -E ]
+ G_T = [ T0, T0 ]
+ else:
+ G_R = [ E ]
+ G_T = [ T0 ]
+
+ for r, t in zip( self.R, self.T ):
+ G2_R, G2_T = self.__get_group( r, t )
+ G_R, G_T = self.__multiply_groups( G_R, G_T, G2_R, G2_T )
+
+ if self.V is not None:
+ G_T = self.__change_of_basis( G_R, G_T )
+
+ G_R_conventional = []
+ G_T_conventional = []
+ for t in lattice_symbols[ self.L[-1] ]:
+ G_R_conventional, G_T_conventional = \
+ self.__lattice_translation( G_R_conventional,
+ G_T_conventional,
+ G_R, G_T, np.array( t ) )
+
+ self.G_R = G_R_conventional
+ self.G_T = G_T_conventional
+
+ def __change_of_basis( self, G_R, G_T ):
+ G_T_new = []
+ v = self.V.astype(float) / 12
+ for r, t in zip( G_R, G_T ):
+ G_T_new.append( -np.dot( r, v ) + t + v )
+ return G_T_new
+
+ def __lattice_translation( self, G_R, G_T, G_R0, G_T0, translation ):
+ for r, t in zip( G_R0, G_T0 ):
+ G_R.append( r.copy() )
+ t_new = t + translation
+ t_new -= np.round( t_new )
+ for i, x in enumerate( t_new ):
+ if x < -0.001:
+ t_new[i] += 1
+ G_T.append( t_new )
+ return G_R, G_T
+
+ def __multiply_groups( self, G1_R, G1_T, G2_R, G2_T ): # G2xG1
+ G_R = []
+ G_T = []
+ for r1, t1 in zip( G2_R, G2_T ):
+ for r2, t2 in zip( G1_R, G1_T ):
+ G_R.append( np.dot( r1, r2 ) )
+ G_T.append( np.dot( r1, t2 ) + t1 )
+
+ return G_R, G_T
+
+ def __get_group( self, r, t ):
+ G_R, G_T = self.__get_group_recursive(
+ [ np.array( r ) ], [ np.array( t ) ] )
+ r = G_R.pop()
+ t = G_T.pop()
+ G_R.insert( 0, r )
+ G_T.insert( 0, t )
+ return G_R, G_T
+
+ def __get_group_recursive( self, G_R, G_T ):
+ if not ( G_R[-1] == rotation_matrices['1x'] ).all():
+ r = np.dot( G_R[-1], G_R[0] )
+ t = np.dot( G_R[-1], G_T[0] ) + G_T[-1]
+ G_R.append( r )
+ G_T.append( t )
+ G_R, G_T = self.__get_group_recursive( G_R, G_T )
+ return G_R, G_T
+
+ def __operations( self ):
+ R = []
+ T = []
+ for N in self.N:
+ rot = np.array( rotation_matrices[ N[1]+N[2] ] )
+ if N[0] == '-':
+ rot = -rot
+ R.append( rot )
+
+ trans = np.zeros( 3, dtype=float )
+ if N[3] is not None:
+ for t in N[3]:
+ if t == '1' or t == '2' or t == '3' or t == '4' or t == '5':
+ trans_screw = float( t ) / int( N[1] )
+ if N[2] == 'x':
+ trans[0] += trans_screw
+ elif N[2] == 'y':
+ trans[1] += trans_screw
+ elif N[2] == 'z':
+ trans[2] += trans_screw
+ else:
+ raise
+ else:
+ trans += np.array( translations[ t ] )
+ T.append( trans )
+
+ self.R = np.array( R, dtype=int )
+ self.T = np.array( T, dtype=float )
+
+ def __rotation_matrix( self, str ):
+ pass
+
+ # Decompose Hall symbol
+ # The following methods are used by __decompose().
+ def __decompose( self ):
+ L = self.hall_symbol.pop(0)
+ N = []
+ V = None
+ precededN = 0
+ for i, ms in enumerate( self.hall_symbol ):
+ if ms[0] == '(':
+ V = self.__change_of_basis_symbol( self.hall_symbol[i+2] )
+ break
+ else:
+ N.append( self.__matrix_symbol( ms, i, precededN ) )
+ precededN = int( N[-1][1][0] )
+
+ self.L = L
+ self.N = N
+ self.V = V
+
+ def __matrix_symbol( self, N, i, precededN ):
+ if N[0] == '-':
+ improper = '-'
+ N = N[1:]
+ else:
+ improper = None
+
+ N, R, A = self.__rotation( N, i, precededN )
+
+ if len( N ) > 0:
+ T = self.__translation( N )
+ else:
+ T = None
+
+ return [ improper, R, A, T ]
+
+ def __rotation( self, N, i, precededN ):
+ A = None
+ if N[0] == '2':
+ if len( N ) > 1: # 2"
+ if N[1] == '=':
+ R = '2pp'
+ A = 'z'
+ N = N[2:]
+ if i == 1 and A is None:
+ if precededN == 2 or precededN == 4: # 2x
+ R = '2'
+ A = 'x'
+ N = N[1:]
+ elif precededN == 3 or precededN == 6: # 2'
+ R = '2p'
+ A = 'z'
+ N = N[1:]
+ elif N[0] == '3': # 3*
+ if i == 2:
+ R = '3'
+ A = '*'
+ N = N[1:]
+ elif len( N ) > 1:
+ if N[1] == '*':
+ R = '3'
+ A = '*'
+ N = N[2:]
+
+ if A is None:
+ R = N[0]
+ N = N[1:]
+ if len( N ) > 0 and i == 0:
+ N, A = self.__principal_axis( N )
+ else:
+ A = 'z'
+
+ return N, R, A
+
+ def __principal_axis( self, N ):
+ if N[0] == 'x':
+ return N[1:], 'x'
+ if N[0] == 'y':
+ return N[1:], 'y'
+ return N, 'z'
+
+ def __translation( self, N ):
+ T = []
+ for i in range( len( N ) ):
+ T.append( N[i] )
+ return T
+
+ def __change_of_basis_symbol( self, V ):
+ if V[0] == '-':
+ return np.array([0,0,-1])
+ else:
+ return np.array([0,0,1])
+
+
+def damp_operations( filename ):
+ hall_symbols = read_spg_csv( filename )
+ count = 0
+ print " 0 , /* dummy */"
+ for i in range( 530 ):
+ hs = HallSymbol( hall_symbols[ i ][0] )
+ G_R, G_T = hs.get_full_operations()
+ for j, (r, t) in enumerate( zip( G_R, G_T ) ):
+ count += 1
+ r_encode = encode_rotation( r )
+ x = (t*12+0.1).astype(int)
+ t_encode = x[0] * 144 + x[1] * 12 + x[2]
+ total = t_encode * 3 ** 9 + r_encode
+ print " %-8d," % ( total ),
+ print " /* %4d (%3d) [" % ( count, i+1 ),
+ print "%2d," * 9 % tuple( decode_rotation( total % (3**9) ) ),
+ print "%2d,%2d,%2d] */" % tuple( decode_trans( total // (3**9) ) )
+
+def damp_operations_old( filename ):
+ hall_symbols = read_spg_csv( filename )
+ count = 0
+ for i in range( 530 ):
+ hs = HallSymbol( hall_symbols[ i ][0] )
+ G_R, G_T = hs.get_full_operations()
+ for j, (r, t) in enumerate( zip( G_R, G_T ) ):
+ count += 1
+ print "{%3d," % (i+1),
+ print "%2d,%2d,%2d,%2d,%2d,%2d,%2d,%2d,%2d," % tuple( r.flatten() ),
+ print "%2d,%2d,%2d" % tuple( (t*12+0.1).astype(int) ),
+ print "}, /* %4d */" % count
+
+# Ternary numerical system
+def encode_rotation( r ):
+ r_sum = 0
+ for i, x in enumerate( r.flatten() ):
+ r_sum += ( x + 1 ) * 3**( 8 - i )
+ return r_sum
+
+def decode_rotation( c ):
+ r = []
+ for i in range( 8, -1, -1 ):
+ r.append( ( c % (3**(i+1)) ) // ( 3**i ) - 1 )
+ return np.array( r )
+
+def decode_trans( c ):
+ return c // 144, ( c % 144 ) // 12, ( c % 12 )
+
+def get_reference_to_operations():
+ hall_symbols = read_spg_csv( args[0] )
+ count = 0
+ for i in range( 530 ):
+ hs = HallSymbol( hall_symbols[ i ][0] )
+ G_R, G_T = hs.get_full_operations()
+ print "{%4d,%5d}," % ( len( G_R ), count+1 )
+ count += len( G_R )
+
+def watch_hs( filename, number ):
+ num = number - 1
+ hall_symbols = read_spg_csv( filename )
+ h = HallSymbol( hall_symbols[ num ][0] )
+ print h.get_LNV()
+ G_R, G_T = h.get_full_operations()
+ print number, ":", hall_symbols[ num ][0], "(", len(G_R), ")"
+ for i, (r, t) in enumerate( zip( G_R, G_T ) ):
+ print "-----", i+1, "-----"
+ print r, t
+
+if __name__ == '__main__':
+ # Parse options
+ from optparse import OptionParser
+ parser = OptionParser()
+ parser.set_defaults( watch_hs = False,
+ damp_operations = False,
+ shift = None,
+ origin = None )
+ parser.add_option("--hs", dest="watch_hs",
+ action="store_true",
+ help="spg.csv [spg NUM]")
+ parser.add_option("--damp", dest="is_damp",
+ action="store_true" )
+ parser.add_option("--reference", dest="is_reference",
+ action="store_true" )
+
+ (options, args) = parser.parse_args()
+
+ if options.is_damp:
+ damp_operations( args[0] )
+ if options.is_reference:
+ get_reference_to_operations()
+ elif options.watch_hs:
+ watch_hs( args[0], int( args[1] ) )
+
+
+
diff --git a/database/make_VSpU.py b/database/make_VSpU.py
new file mode 100755
index 0000000..30456a9
--- /dev/null
+++ b/database/make_VSpU.py
@@ -0,0 +1,411 @@
+#!/usr/bin/sage
+
+import sys
+import numpy as np
+from sage.all import *
+
+def get_VSpU( M ):
+ N = copy(M)
+ for i in range(N.nrows()):
+ N[i,i%3] -= 1
+ S,U,V = N.smith_form()
+
+ Sp = Matrix( QQ, S.transpose() )
+ for i in range(3):
+ if not Sp[i,i]==0:
+ Sp[i,i] = 1.0 / Sp[i,i]
+
+ return V*Sp*U
+
+def get_VSpU_sets(g1s, g2s):
+ VSpU_sets = []
+ generator_sets = []
+
+ for g3 in ( False, True ): # for inversion
+ for g1 in g1s:
+ for g2 in g2s:
+ if g2 is not False:
+ if np.equal(g1, g2).all():
+ continue
+ if np.equal(g1, np.dot(inv, g2)).all():
+ continue
+ genes = [g1, g2]
+ else:
+ genes = [g1,]
+
+ if g3:
+ genes_new = []
+ for g in genes:
+ if np.linalg.det(g) < 0:
+ genes_new.append(np.dot(inv, g))
+ else:
+ genes_new.append(g)
+ genes_new.append(inv)
+
+ if np.linalg.det(g1) < 0:
+ is_found = False
+ for g1_comp in g1s:
+ if np.equal(genes_new[0], g1_comp).all():
+ is_found = True
+ break
+ if is_found:
+ continue
+
+ if g2 is not False:
+ if np.linalg.det(g2) < 0:
+ is_found = False
+ for g2_comp in g2s:
+ if np.equal(genes_new[1], g2_comp).all():
+ is_found = True
+ break
+ if is_found:
+ continue
+
+ else:
+ genes_new = genes
+
+ M = Matrix(3, 3, genes_new[0])
+ if len(genes_new) > 1:
+ for g in genes_new[1:]:
+ M = M.stack(Matrix(3, 3, g))
+ VSpU_sets.append(get_VSpU(M))
+ generator_sets.append( M )
+ return VSpU_sets, generator_sets
+
+def get_rotation_primitive( g1s, g2s, T ):
+ if T is not None:
+ g1s_new = []
+ g2s_new = []
+ g1s_old = []
+ g2s_old = []
+ for g in g1s:
+ # print g, "-->"
+ try:
+ M = Matrix(ZZ,T*Matrix(QQ, g)*T.inverse())
+ # print M
+ g1s_new.append(np.array(M))
+ g1s_old.append(g)
+ except TypeError:
+ print "Not integer matrix, pass this matrix"
+ for g in g2s:
+ if g:
+ # print g, "-->"
+ try:
+ M = Matrix(ZZ, T*Matrix(QQ, g)*T.inverse())
+ # print M
+ g2s_new.append(np.array(M))
+ g2s_old.append(g)
+ except TypeError:
+ print "Not integer matrix, pass this matrix"
+ else:
+ g2s_new.append(False)
+ g2s_old.append(False)
+ return g1s_new, g2s_new, g1s_old, g2s_old
+
+def write_generators(generator_sets):
+ print "{"
+ for count, M in enumerate( generator_sets ):
+ print " { /* %d */" % (count+1)
+ for i in range( 3 ):
+ print " { ",
+ for j in range( 3 ):
+ for k in range( 3 ):
+ if M.nrows() // 3 > i:
+ print "%d," % M[i*3+j,k],
+ else:
+ print " 0,",
+ print "},"
+ print " },"
+ print "};"
+
+def write_VSpU(VSpU_sets):
+ print "{"
+ for count, VSpU in enumerate( VSpU_sets ):
+ print " { /* %d */" % (count+1)
+ for colvals in VSpU:
+ print " {",
+ for i in range( 9 ):
+ if i < len( colvals ):
+ num = colvals[i].numerator()
+ den = colvals[i].denominator()
+ if den == 1:
+ print "%d," % ( num ),
+ else:
+ print "%d.0/%d," % ( num, den ),
+ else:
+ print " 0,",
+ print "},"
+ print " },"
+ print "};"
+
+
+identity = [[ 1, 0, 0],
+ [ 0, 1, 0],
+ [ 0, 0, 1]]
+
+inv = [[-1, 0, 0],
+ [ 0,-1, 0],
+ [ 0, 0,-1]]
+
+# Tetragonal
+rot4z = [[ 0,-1, 0],
+ [ 1, 0, 0],
+ [ 0, 0, 1]]
+rot4zi = [[ 0, 1, 0],
+ [-1, 0, 0],
+ [ 0, 0,-1]]
+rot2z = [[-1, 0, 0],
+ [ 0,-1, 0],
+ [ 0, 0, 1]]
+rot2zi = [[ 1, 0, 0],
+ [ 0, 1, 0],
+ [ 0, 0,-1]]
+rot2x = [[ 1, 0, 0],
+ [ 0,-1, 0],
+ [ 0, 0,-1]]
+rot2xi = [[-1, 0, 0],
+ [ 0, 1, 0],
+ [ 0, 0, 1]]
+rot3xyz = [[ 0, 0, 1],
+ [ 1, 0, 0],
+ [ 0, 1, 0]]
+rot3xyzi = [[ 0, 0,-1],
+ [-1, 0, 0],
+ [ 0,-1, 0]]
+hexa2_ab = [[ 0,-1, 0],
+ [-1, 0, 0],
+ [ 0, 0,-1]]
+hexa2_abi = [[ 0, 1, 0],
+ [ 1, 0, 0],
+ [ 0, 0, 1]]
+rot6z = [[ 1,-1, 0],
+ [ 1, 0, 0],
+ [ 0, 0, 1]]
+rot6zi = [[-1, 1, 0],
+ [-1, 0, 0],
+ [ 0, 0,-1]]
+trigo2ab = [[ 0, 1, 0],
+ [ 1, 0, 0],
+ [ 0, 0,-1]]
+trigo2abi = [[ 0,-1, 0],
+ [-1, 0, 0],
+ [ 0, 0, 1]]
+rot3z = [[ 0,-1, 0],
+ [ 1,-1, 0],
+ [ 0, 0, 1]]
+rot3zi = [[ 0, 1, 0],
+ [-1, 1, 0],
+ [ 0, 0,-1]]
+rot2y = [[-1, 0, 0],
+ [ 0, 1, 0],
+ [ 0, 0,-1]]
+rot2yi = [[ 1, 0, 0],
+ [ 0,-1, 0],
+ [ 0, 0, 1]]
+
+
+
+BCC = Matrix(QQ, [[ 0, 1, 1],
+ [ 1, 0, 1],
+ [ 1, 1, 0]])
+FCC = Matrix(QQ, [[-1, 1, 1],
+ [ 1,-1, 1],
+ [ 1, 1,-1]])
+CC = Matrix(QQ, [[ 1,-1, 0],
+ [ 1, 1, 0],
+ [ 0, 0, 1]])
+BC = Matrix(QQ, [[ 1, 0, 1],
+ [ 0, 1, 0],
+ [-1, 0, 1]])
+AC = Matrix(QQ, [[ 1, 0, 0],
+ [ 0, 1, 1],
+ [ 0,-1, 1]])
+RC = Matrix(QQ, [[ 1, 0, 1],
+ [-1, 1, 1],
+ [ 0,-1, 1]])
+
+
+# Parse options
+from optparse import OptionParser
+parser = OptionParser()
+parser.set_defaults(is_tricli=False,
+ is_monocli=False,
+ is_ortho=False,
+ is_tetra=False,
+ is_rhombo=False,
+ is_trigo=False,
+ is_hexa=False,
+ is_cubic=False,
+ is_bcc=False,
+ is_fcc=False,
+ is_ac=False,
+ is_bc=False,
+ is_cc=False,
+ is_rc=False)
+parser.add_option("--tricli", dest="is_tricli",
+ action="store_true")
+parser.add_option("--monocli", dest="is_monocli",
+ action="store_true")
+parser.add_option("--ortho", dest="is_ortho",
+ action="store_true")
+parser.add_option("--tetra", dest="is_tetra",
+ action="store_true")
+parser.add_option("--rhombo", dest="is_rhombo",
+ action="store_true")
+parser.add_option("--trigo", dest="is_trigo",
+ action="store_true")
+parser.add_option("--hexa", dest="is_hexa",
+ action="store_true")
+parser.add_option("--cubic", dest="is_cubic",
+ action="store_true")
+parser.add_option("--bcc", dest="is_bcc",
+ action="store_true")
+parser.add_option("--fcc", dest="is_fcc",
+ action="store_true")
+parser.add_option("--ac", dest="is_ac",
+ action="store_true")
+parser.add_option("--bc", dest="is_bc",
+ action="store_true")
+parser.add_option("--cc", dest="is_cc",
+ action="store_true")
+parser.add_option("--rc", dest="is_rc",
+ action="store_true")
+parser.add_option("-g", dest="is_generator",
+ action="store_true")
+(options, args) = parser.parse_args()
+
+g1s = None
+g2s = None
+g1s_old = None
+g2s_old = None
+
+if options.is_tricli:
+ g1s = ( identity, )
+ g2s = ( False, )
+
+if options.is_monocli:
+ g1s = ( rot2x, rot2y, rot2z, rot2xi, rot2yi, rot2zi )
+ g2s = ( False, )
+ if options.is_bcc:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, BCC )
+ if options.is_ac:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, AC )
+ if options.is_bc:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, BC )
+ if options.is_cc:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, CC )
+
+if options.is_ortho:
+ g1s = ( rot2z, rot2zi )
+ g2s = ( rot2x, rot2xi )
+ if options.is_bcc:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, BCC )
+ if options.is_fcc:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, FCC )
+ if options.is_ac:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, AC )
+ if options.is_bc:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, BC )
+ if options.is_cc:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, CC )
+
+if options.is_tetra:
+ g1s = ( rot4z, rot4zi )
+ g2s = ( False, rot2x, rot2xi )
+ if options.is_bcc:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, BCC )
+
+# if options.is_rhombo:
+# g1s = ( rot3xyz, rot3xyzi )
+# g2s = ( False, hexa2_ab, trigo2ab )
+
+if options.is_trigo:
+ g1s = ( rot3z, rot3zi )
+ g2s = ( False, hexa2_ab, trigo2ab, hexa2_abi, trigo2abi )
+ if options.is_rc: # hP
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, RC )
+
+if options.is_rhombo: # hR
+ g1s = ( rot3z, rot3zi )
+ g2s = ( False, hexa2_ab, trigo2ab, hexa2_abi, trigo2abi )
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, RC )
+ g1s_old = None
+ g2s_old = None
+
+if options.is_hexa:
+ g1s = ( rot6z, rot6zi )
+ g2s = ( False, hexa2_ab, hexa2_abi )
+
+if options.is_cubic:
+ g1s = ( rot4z, rot2z, rot4zi, rot2zi )
+ g2s = ( rot3xyz, rot3xyzi )
+ if options.is_bcc:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, BCC )
+ if options.is_fcc:
+ g1s, g2s, g1s_old, g2s_old = get_rotation_primitive( g1s, g2s, FCC )
+
+if g1s is None:
+ print "Option is needed. See \'make_VSpU.py -h\'"
+else:
+ if g1s_old is None:
+ VSpU_sets, generator_sets = get_VSpU_sets( g1s, g2s )
+ else:
+ VSpU_sets = get_VSpU_sets( g1s, g2s )[0]
+ generator_sets = get_VSpU_sets( g1s_old, g2s_old )[1]
+
+ centering = ""
+ if options.is_fcc:
+ centering = "_F"
+ if options.is_bcc:
+ centering = "_I"
+ if options.is_ac:
+ centering = "_A"
+ if options.is_bc:
+ centering = "_B"
+ if options.is_cc:
+ centering = "_C"
+
+ if options.is_generator:
+ if options.is_tricli:
+ print "static int tricli_generators[][3][9] ="
+ if options.is_monocli:
+ print "static int monocli_generators[][3][9] ="
+ if options.is_ortho:
+ print "static int ortho_generators[][3][9] ="
+ if options.is_tetra:
+ print "static int tetra_generators[][3][9] ="
+ if options.is_trigo:
+ if options.is_rc:
+ print "static int rhombo_h_generators[][3][9] ="
+ else:
+ print "static int trigo_generators[][3][9] ="
+ if options.is_rhombo:
+ print "static int rhombo_p_generators[][3][9] ="
+ if options.is_hexa:
+ print "static int hexa_generators[][3][9] ="
+ if options.is_cubic:
+ print "static int cubic_generators[][3][9] ="
+ write_generators(generator_sets)
+ print
+ else:
+ if options.is_tricli:
+ print "static double tricli_VSpU[][3][9] ="
+ if options.is_monocli:
+ print "static double monocli%s_VSpU[][3][9] =" % centering
+ if options.is_ortho:
+ print "static double ortho%s_VSpU[][3][9] =" % centering
+ if options.is_tetra:
+ print "static double tetra%s_VSpU[][3][9] =" % centering
+ if options.is_trigo:
+ if options.is_rc:
+ print "static double rhombo_h_VSpU[][3][9] ="
+ else:
+ print "static double trigo_VSpU[][3][9] ="
+ if options.is_rhombo:
+ print "static double rhombo_p_VSpU[][3][9] ="
+ if options.is_hexa:
+ print "static double hexa_VSpU[][3][9] ="
+ if options.is_cubic:
+ print "static double cubic%s_VSpU[][3][9] ="
+ write_VSpU(VSpU_sets)
+ print
diff --git a/database/make_Wyckoff_db.py b/database/make_Wyckoff_db.py
new file mode 100755
index 0000000..e8d3a94
--- /dev/null
+++ b/database/make_Wyckoff_db.py
@@ -0,0 +1,341 @@
+#!/usr/bin/env python
+
+import sys
+import numpy as np
+
+lattice_symbols = {
+ 'P': [ [ 0, 0, 0 ] ],
+ 'A': [ [ 0, 0, 0 ], [ 0, 12, 12 ] ],
+ 'B': [ [ 0, 0, 0 ], [ 12, 0, 12 ] ],
+ 'C': [ [ 0, 0, 0 ], [ 12, 12, 0 ] ],
+ 'I': [ [ 0, 0, 0 ], [ 12, 12, 12 ] ],
+ 'R': [ [ 0, 0, 0 ] ],
+ 'H': [ [ 0, 0, 0 ], [ 16, 8, 8 ], [ 8, 16, 16 ] ],
+ 'F': [ [ 0, 0, 0 ], [ 0, 12, 12 ], [ 12, 0, 12 ], [ 12, 12, 0 ] ]
+ }
+
+def position2operation( p ):
+ r = np.zeros( (3,3), dtype=int )
+ xyz = 'xyz'
+
+ for i in range(3):
+ for j, c in enumerate( xyz ):
+ pos = p[i].find(c)
+ # if exist xyz
+ if pos > -1:
+ if pos == 0:
+ r[i,j] = 1
+ if pos > 0:
+ if p[i][pos-1] == '+': # +y, +z
+ r[i,j] = 1
+ elif p[i][pos-1] == '-': # -x, -y, -z
+ r[i,j] = -1
+ elif p[i][pos-1].isdigit(): # 2x
+ if pos > 1:
+ if p[i][pos-2] == '-':
+ r[i,j] = - int( p[i][pos-1] )
+ else:
+ r[i,j] = int( p[i][pos-1] )
+ else:
+ r[i,j] = int( p[i][pos-1] )
+ else:
+ print "error"
+ sys.exit(1)
+
+ # print p, p[i], r[i,j]
+
+ t = np.zeros( 3, dtype=int )
+
+ # translation multiplied by 24
+ for i in range(3):
+ trans = p[i].translate(None,'xyz+-')
+ pos = trans.find('/')
+ if pos > -1:
+ frac = trans.split('/')
+ t[i] = int( frac[0] ) * ( 24 / int( frac[1] ) )
+
+ return r,t
+
+def encode_rotation( r ):
+ enc = []
+ for i in range(3):
+ enc.append( ( r[i][0] + 2 ) * 9 + ( r[i][1] + 1 ) * 3 + r[i][2] + 1 )
+ return enc[0] * 45**2 + enc[1] * 45 + enc[2]
+
+def decode_rotation( c ):
+ r = np.zeros( ( 3, 3 ), dtype=int )
+ dec = [ c // 45**2, ( c % 45**2 ) // 45, c % 45 ]
+ for i in range( 3 ):
+ r[i][0] = dec[i] // 9 - 2
+ r[i][1] = ( dec[i] % 9 ) // 3 - 1
+ r[i][2] = dec[i] % 3 - 1
+ return r
+
+def decode_trans( c ):
+ return c // 576, ( c % 576 ) // 24, ( c % 24 )
+
+def run_test( len_wyckoffs, len_site, o_flat ):
+ count = 1
+ sum_elem = 1
+ for i in range( 1, 531 ):
+ sum_site = 0
+ for j in range( len_wyckoffs[i], len_wyckoffs[i+1] ):
+ print len_site[j+1] - len_site[j],
+
+ sum_site += len_site[j+1] - len_site[j]
+
+ for x in o_flat[len_site[j]:len_site[j+1]]:
+ t = decode_trans( x // 3**9 )
+ r = decode_rotation( x % 3**9 )
+ print r, t
+
+ print " %d" % sum_site
+ sum_elem += sum_site
+ return sum_elem
+
+def damp_array_wyckoffs( len_wyckoff ):
+ print "static const int position_wyckoff[] ="
+ print " { %4d," % 0,
+ for i, x in enumerate( len_wyckoffs[1:] ):
+ if i%10 == 0:
+ print
+ print " ",
+ print "%4d," % x,
+ print "};"
+
+def damp_array_numsites( len_site ):
+ print " { %5d," % 0,
+ for i, x in enumerate( len_site[1:] ):
+ if i%10 == 0:
+ print
+ print " ",
+ print "%5d," % x,
+ print "};"
+
+def damp_array_positions( orbits ):
+ print " { %9d," % 0,
+ for i, x in enumerate( orbits[1:] ):
+ if i%5 == 0:
+ print
+ print " ",
+ print "%9d," % x,
+ print "};"
+
+def damp_array_positions_short( orbits, len_site ):
+ count = 0
+ print "static const int coordinates_first[] ="
+ print " { %9d," % 0,
+ for i, x in enumerate( len_site[1:-1] ):
+ if count%5 == 0:
+ print
+ print " ",
+ print "%9d," % orbits[x],
+ count += 1
+ print "};"
+
+ count = 0
+ print "static const int num_sitesym[] ="
+ print " { %3d," % 0,
+ for i, x in enumerate( len_site[1:-1] ):
+ if count%10 == 0:
+ print
+ print " ",
+ print "%3d," % ( len_site[i+2] - len_site[i+1] ),
+ count += 1
+ print "};"
+
+def read_wyckoff_csv( filename ):
+ wyckoff_file = open( filename )
+ rowdata = []
+ points = []
+ hP_nums = [433, 436, 444, 450, 452, 458, 460]
+ for i, line in enumerate( wyckoff_file ):
+ if line.strip() == 'end of data':
+ break
+ rowdata.append( line.strip().split(':') )
+
+ # Remember the point where the first element is a number
+ if rowdata[-1][0].isdigit():
+ points.append(i)
+ points.append(i)
+
+ wyckoff = []
+ for i in range( len( points ) - 1 ):
+ symbol = rowdata[points[i]][1]
+ if i + 1 in hP_nums:
+ symbol = symbol.replace('R', 'H', 1)
+
+ wyckoff.append(dict({'symbol': symbol}))
+
+ # When the number of positions is larger than 4,
+ # the positions are written in the next line.
+ # So those positions are connected.
+ for i in range( len( points ) - 1 ):
+ count = 0
+ wyckoff[i]['wyckoff'] = []
+ for j in range( points[i]+1, points[i+1] ):
+ # Hook if the third colum is a number (multiplicity)
+ if rowdata[j][2].isdigit():
+ pos = []
+ w = { 'letter': rowdata[j][3],
+ 'multiplicity': int( rowdata[j][2] ),
+ 'site_symmetry': rowdata[j][4],
+ 'positions': pos }
+ wyckoff[i]['wyckoff'].append( w )
+
+ for k in range( 4 ):
+ if len(rowdata[j][k+5]) > 0:
+ count += 1
+ pos.append( rowdata[j][k+5] )
+
+ else:
+ for k in range( 4 ):
+ if len(rowdata[j][k+5]) > 0:
+ count += 1
+ pos.append( rowdata[j][k+5] )
+
+ return wyckoff
+
+def get_wyckoff_positions( wyckoff ):
+ positions = []
+ for i, w in enumerate( wyckoff ):
+ # print "%d:%s" % (i+1, w['symbol'])
+ positions_hall = []
+ for p in w['wyckoff']:
+ # print " %d %s %s" % ( p['multiplicity'],
+ # p['letter'],
+ # p['site_symmetry'] ),
+ # print
+ # for o in p['positions']:
+ # print o,
+ # print
+
+ positions_site = []
+ for pure_trans in lattice_symbols[ w['symbol'][0] ]:
+ for o in p['positions']:
+ r,t = position2operation( o.strip('()').split(',') )
+ t += np.array( pure_trans )
+ t = t % 24
+ positions_site.append( (r,t) )
+ positions_hall.append( positions_site )
+ positions.append( positions_hall )
+ return positions
+
+def encode_wyckoff_positions( positions ):
+ maxval = 0
+ maxmulti = 0
+ maxr = None
+ maxt = None
+ number = 0
+ pos_encoded = []
+ numerators = np.zeros( 24, dtype=int )
+
+ for i, positions_hall in enumerate( positions ):
+ pos_encoded_hall = []
+ for positions_site in positions_hall:
+ pos_encoded_site = []
+ for r, t in positions_site:
+ # for j in range(3):
+ # numerators[ t[j] ] += 1
+
+ t_encode = t[0] * 576 + t[1] * 24 + t[2]
+ r_encode = encode_rotation( r )
+ total = t_encode * 45**3 + r_encode
+
+ pos_encoded_site.append( total )
+
+ if (r - decode_rotation( r_encode )).any():
+ print "Error in r %d" % ( i+1 )
+ sys.exit(1)
+ # else:
+ # if ( abs( decode_rotation( r_encode ) ) > 1 ).any():
+ # print i+1
+ # print decode_rotation( r_encode )
+ # print t
+ # print
+ if (t - decode_trans( t_encode )).any():
+ print "Error in t"
+ sys.exit(1)
+
+ if total > maxval:
+ maxval = total
+ maxr = r.copy()
+ maxt = t.copy()
+ number = i+1
+
+ pos_encoded_hall.append( pos_encoded_site )
+ pos_encoded.append( pos_encoded_hall )
+
+ # for i, n in enumerate( numerators ):
+ # print i, n
+
+ # print "MAX: %d" % maxmulti
+ # print "MAX: %d (%d)" % (maxval,number)
+ # print maxr
+ # print maxt
+
+ return pos_encoded
+
+def get_data_arrays( encoded_positions ):
+ len_wyckoffs = [0]
+ len_site = [0]
+ sum_wyckoffs = 1
+ sum_site = 1
+ encpos_flat = [0]
+ for h in encoded_positions:
+ len_wyckoffs.append( sum_wyckoffs )
+ sum_wyckoffs += len(h)
+ for w in h:
+ len_site.append( sum_site )
+ sum_site += len(w)
+ encpos_flat += w
+
+ len_wyckoffs.append( sum_wyckoffs )
+ len_site.append( sum_site )
+
+ return len_wyckoffs, len_site, encpos_flat
+
+if __name__ == '__main__':
+
+ from optparse import OptionParser
+ parser = OptionParser()
+ parser.set_defaults( is_site = False,
+ is_position = False,
+ is_wyckoff = False,
+ is_site_short = False,
+ is_wyckoff_short = False )
+
+ parser.add_option("--site", dest="is_site",
+ action="store_true",
+ help="Index of site symmetries of each space group")
+ parser.add_option("--position", dest="is_position",
+ action="store_true",
+ help="Index of positions of each site symmetries and space group")
+ parser.add_option("--wyckoff", dest="is_wyckoff",
+ action="store_true",
+ help="Encoded Wyckoff position operators")
+ parser.add_option("--wyckoff_short", dest="is_wyckoff_short",
+ action="store_true",
+ help="Encoded Wyckoff position operators")
+ (options, args) = parser.parse_args()
+
+ wyckoff = read_wyckoff_csv( args[0] )
+ operations = get_wyckoff_positions( wyckoff )
+ encoded_positions = encode_wyckoff_positions( operations )
+ len_wyckoffs, len_site, encpos_flat = \
+ get_data_arrays( encoded_positions )
+
+ # Test
+ # sum_elem = run_test( len_wyckoffs, len_site, o_flat )
+ # print "%d = %d" % ( len( o_flat ), sum_elem )
+
+ # Damp full arrays
+ if options.is_position:
+ damp_array_wyckoffs( len_wyckoffs )
+ if options.is_site:
+ damp_array_numsites( len_site )
+ if options.is_wyckoff:
+ damp_array_positions( encpos_flat )
+
+ if options.is_wyckoff_short:
+ damp_array_positions_short( encpos_flat, len_site )
diff --git a/database/make_sitesym.py b/database/make_sitesym.py
new file mode 100755
index 0000000..b12dfb0
--- /dev/null
+++ b/database/make_sitesym.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+
+import numpy as np
+import hall2operations as h2o
+import make_Wyckoff_db as wdb
+
+characters = "abcdefghijklmnopqrstuvwxyz"
+
+def get_Hall_operations( hall_file, hall_number ):
+ hall_symbols = h2o.read_spg_csv( hall_file )
+ return h2o.HallSymbol( hall_symbols[ hall_number - 1 ][0] ).get_full_operations()
+
+def get_wyckoff_position_operators( wyckoff_file, hall_number ):
+ wyckoff = wdb.read_wyckoff_csv( wyckoff_file )
+ operations = wdb.get_wyckoff_positions( wyckoff )
+ return operations[ hall_number - 1 ]
+
+def multiply_operations( spg_op, pos_op ):
+ r, t = spg_op
+ o_r, o_t = pos_op
+ return ( np.dot( r, o_r ), np.dot( o_t, r.T ) + t )
+
+def show_site_symmetries( rotations, translations, operators ):
+ for i, o_site in enumerate( operators ):
+ for j, o in enumerate( o_site ):
+ o_r = o[0]
+ o_t = o[1] / 24.0
+ print "--------- %s, %d ----------" % (characters[len(operators) - i - 1], j+1)
+ for r, t in zip( rotations, translations ):
+ mo = multiply_operations( ( r, t ), ( o_r, o_t ) )
+ diff = mo[1] - o_t
+ if ( mo[0] - o_r == 0 ).all() and ( abs( diff - diff.round() ) < 0.01 ).all():
+ print r, t
+
+
+if __name__ == '__main__':
+ from optparse import OptionParser
+ parser = OptionParser()
+ parser.set_defaults( is_site = False )
+ parser.add_option("--site", dest="is_site",
+ action="store_true",
+ help="Show site symmetries")
+ (options, args) = parser.parse_args()
+
+ rotations, translations = get_Hall_operations( args[0], int( args[2] ) )
+ operators = get_wyckoff_position_operators( args[1], int( args[2] ) )
+
+
+ if options.is_site:
+ show_site_symmetries( rotations, translations, operators )
diff --git a/database/make_spgtype_db.py b/database/make_spgtype_db.py
new file mode 100755
index 0000000..e4a9672
--- /dev/null
+++ b/database/make_spgtype_db.py
@@ -0,0 +1,109 @@
+#!/usr/bin/env python
+
+import sys
+
+def read_spg_csv(filename="spg.csv"):
+ spg_db = []
+ for line in open(filename):
+ data = line.split(',')
+ spg_db.append(data)
+ return spg_db
+
+def extract_essense(spg_db):
+ essense = []
+ for x in spg_db:
+ vals = []
+ # IT number
+ vals.append(int(x[4]))
+ # SF
+ vals.append(x[5])
+ # Hall
+ vals.append(x[6])
+ # HM short all
+ vals.append(x[7])
+ # HM long
+ vals.append(x[8])
+ # HM short
+ vals.append(x[7].split('=')[0].replace(' ',''))
+ # Setting
+ vals.append(x[2])
+ # Centering
+ vals.append(get_centering(x[8][0], ("%-9s" % x[2])[0]))
+ essense.append(vals)
+ return essense
+
+def get_bravais(n, s):
+ if 1 <= n and n <= 2:
+ return 'triclinic'
+ if 3 <= n and n <= 15:
+ return 'monoclinic'
+ if 16 <= n and n <= 74:
+ return 'orthorhombic'
+ if 75 <= n and n <= 142:
+ return 'tetragonal'
+ if 143 <= n and n <= 167:
+ if is_rhombo( s ):
+ return 'rhombohedral'
+ else:
+ return 'trigonal'
+ if 168 <= n and n <= 194:
+ return 'hexagonal'
+ if 195 <= n and n <= 230:
+ return 'cubic'
+
+def get_pointgroup_number(spg_num):
+ spg_num_head = [1, 2, 3, 6, 10, 16, 25, 47, 75, 81,
+ 83, 89, 99, 111, 123, 143, 147, 149, 156, 162,
+ 168, 174, 175, 177, 183, 187, 191, 195, 200, 207,
+ 215, 221]
+ pt_num = 0
+ for n in spg_num_head:
+ if spg_num >= n:
+ pt_num += 1
+
+ return pt_num
+
+def get_centering(centering, setting):
+ if centering == 'I':
+ return "BODY"
+ elif centering == 'F':
+ return "FACE"
+ elif centering == 'A':
+ return "A_FACE"
+ elif centering == 'C':
+ return "C_FACE"
+ elif centering == 'R':
+ if setting == 'H':
+ return "R_CENTER"
+ else:
+ return "PRIMITIVE"
+ else:
+ return "PRIMITIVE"
+
+def is_rhombo( s ):
+ if s=='R':
+ return True
+
+maxlen = 0
+
+bravais = {'triclinic': 'TRICLI',
+ 'monoclinic': 'MONOCLI',
+ 'orthorhombic': 'ORTHO',
+ 'tetragonal': 'TETRA',
+ 'trigonal': 'TRIGO',
+ 'rhombohedral': 'RHOMB',
+ 'hexagonal': 'HEXA',
+ 'cubic': 'CUBIC'}
+
+print "static const SpacegroupType spacegroup_types[] = {"
+
+print " {%3d, \"%-6s\", \"%-16s\", \"%-31s\", \"%-19s\", \"%-10s\", \"%-5s\", %15s, %2d }, /* %3d */" % (0, "", "", "", "", "", "", "CENTERING_ERROR", 0, 0)
+
+for i, x in enumerate(extract_essense(read_spg_csv(sys.argv[1]))):
+ if len(x[6]) > maxlen:
+ maxlen = len(x[6])
+
+ pt_num = get_pointgroup_number(x[0])
+
+ print " {%3d, \"%-6s\", \"%-16s\", \"%-31s\", \"%-19s\", \"%-10s\", \"%-5s\", %15s, %2d }, /* %3d */" % (x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], pt_num, i + 1)
+print "};"
diff --git a/database/ptg2symbol.py b/database/ptg2symbol.py
new file mode 100755
index 0000000..a763520
--- /dev/null
+++ b/database/ptg2symbol.py
@@ -0,0 +1,487 @@
+#!/usr/bin/env python
+
+import numpy as np
+
+operations = (
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0, 1)), "1"),
+
+ ((( 0, 0, 1),
+ ( 1, 0, 0),
+ ( 0, 1, 0)), "3+ [111]"),
+
+ ((( 0, 1, 0),
+ ( 0, 0, 1),
+ ( 1, 0, 0)), "3- [111]"),
+
+ (((-1, 0, 0),
+ ( 0,-1, 0),
+ ( 0, 0,-1)), "-1"),
+
+ ((( 0, 0,-1),
+ (-1, 0, 0),
+ ( 0,-1, 0)), "-3+ [111]"),
+
+ ((( 0,-1, 0),
+ ( 0, 0,-1),
+ (-1, 0, 0)), "-3- [111]"),
+
+ (((-1, 0, 0),
+ ( 0,-1, 0),
+ ( 0, 0, 1)), "2 [001]"),
+
+ ((( 0, 0,-1),
+ (-1, 0, 0),
+ ( 0, 1, 0)), "3+ [1-1-1]"),
+
+ ((( 0,-1, 0),
+ ( 0, 0, 1),
+ (-1, 0, 0)), "3- [1-1-1]"),
+
+ ((( 0, 1, 0),
+ ( 1, 0, 0),
+ ( 0, 0,-1)), "2 [110]"),
+
+ ((( 0,-1, 0),
+ (-1, 0, 0),
+ ( 0, 0,-1)), "2 [1-10]"),
+
+ ((( 0,-1, 0),
+ ( 1, 0, 0),
+ ( 0, 0, 1)), "4+ [001]"),
+
+ ((( 0, 1, 0),
+ (-1, 0, 0),
+ ( 0, 0, 1)), "4- [001]"),
+
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0,-1)), "m [001]"),
+
+ ((( 0, 0, 1),
+ ( 1, 0, 0),
+ ( 0,-1, 0)), "-3+ [1-1-1]"),
+
+ ((( 0, 1, 0),
+ ( 0, 0,-1),
+ ( 1, 0, 0)), "-3- [1-1-1]"),
+
+ ((( 0,-1, 0),
+ (-1, 0, 0),
+ ( 0, 0, 1)), "m [110]"),
+
+ ((( 0, 1, 0),
+ ( 1, 0, 0),
+ ( 0, 0, 1)), "m [1-10]"),
+
+ ((( 0, 1, 0),
+ (-1, 0, 0),
+ ( 0, 0,-1)), "-4+ [001]"),
+
+ ((( 0,-1, 0),
+ ( 1, 0, 0),
+ ( 0, 0,-1)), "-4- [001]"),
+
+ (((-1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0,-1)), "2 [010]"),
+
+ ((( 0, 0, 1),
+ (-1, 0, 0),
+ ( 0,-1, 0)), "3+ [-11-1]"),
+
+ ((( 0,-1, 0),
+ ( 0, 0,-1),
+ ( 1, 0, 0)), "3- [-11-1]"),
+
+ ((( 0, 0, 1),
+ ( 0,-1, 0),
+ ( 1, 0, 0)), "2 [101]"),
+
+ ((( 0, 0,-1),
+ ( 0,-1, 0),
+ ( 1, 0, 0)), "2 [-101]"),
+
+ ((( 0, 0, 1),
+ ( 0, 1, 0),
+ (-1, 0, 0)), "4+ [010]"),
+
+ ((( 0, 0,-1),
+ ( 0, 1, 0),
+ ( 1, 0, 0)), "4- [010]"),
+
+ ((( 1, 0, 0),
+ ( 0,-1, 0),
+ ( 0, 0, 1)), "m [010]"),
+
+ ((( 0, 0,-1),
+ ( 1, 0, 0),
+ ( 0, 1, 0)), "-3+ [-11-1]"),
+
+ ((( 0, 1, 0),
+ ( 0, 0, 1),
+ (-1, 0, 0)), "-3- [-11-1]"),
+
+ ((( 0, 0,-1),
+ ( 0, 1, 0),
+ (-1, 0, 0)), "m [101]"),
+
+ ((( 0, 0, 1),
+ ( 0, 1, 0),
+ ( 1, 0, 0)), "m [-101]"),
+
+ ((( 0, 0,-1),
+ ( 0,-1, 0),
+ ( 1, 0, 0)), "-4+ [010]"),
+
+ ((( 0, 0, 1),
+ ( 0,-1, 0),
+ (-1, 0, 0)), "-4- [010]"),
+
+ ((( 1, 0, 0),
+ ( 0,-1, 0),
+ ( 0, 0,-1)), "2 [100]"),
+
+ ((( 0, 0,-1),
+ ( 1, 0, 0),
+ ( 0,-1, 0)), "3+ [-1-11]"),
+
+ ((( 0, 1, 0),
+ ( 0, 0,-1),
+ (-1, 0, 0)), "3- [-1-11]"),
+
+ (((-1, 0, 0),
+ ( 0, 0, 1),
+ ( 0, 1, 0)), "2 [011]"),
+
+ (((-1, 0, 0),
+ ( 0, 0,-1),
+ ( 0,-1, 0)), "2 [01-1]"),
+
+ ((( 1, 0, 0),
+ ( 0, 0,-1),
+ ( 0, 1, 0)), "4+ [100]"),
+
+ ((( 1, 0, 0),
+ ( 0, 0, 1),
+ ( 0,-1, 0)), "4- [100]"),
+
+ (((-1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0, 1)), "m [100]"),
+
+ ((( 0, 0, 1),
+ (-1, 0, 0),
+ ( 0, 1, 0)), "-3+ [-1-11]"),
+
+ ((( 0,-1, 0),
+ ( 0, 0, 1),
+ ( 1, 0, 0)), "-3- [-1-11]"),
+
+ ((( 1, 0, 0),
+ ( 0, 0,-1),
+ ( 0,-1, 0)), "m [011]"),
+
+ ((( 1, 0, 0),
+ ( 0, 0, 1),
+ ( 0,-1, 0)), "m [01-1]"),
+
+ (((-1, 0, 0),
+ ( 0, 0, 1),
+ ( 0,-1, 0)), "-4+ [100]"),
+
+ (((-1, 0, 0),
+ ( 0, 0,-1),
+ ( 0, 1, 0)), "-4- [100]"))
+
+operations_hex = (
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0, 1)), "1"),
+
+ (((-1, 0, 0),
+ ( 0,-1, 0),
+ ( 0, 0, 1)), "2 [001]"),
+
+ ((( 0, 1, 0),
+ ( 1, 0, 0),
+ ( 0, 0,-1)), "2 [110]"),
+
+ ((( 0,-1, 0),
+ (-1, 0, 0),
+ ( 0, 0,-1)), "2 [1-10]"),
+
+ (((-1, 0, 0),
+ ( 0,-1, 0),
+ ( 0, 0,-1)), "-1"),
+
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0,-1)), "m [001]"),
+
+ ((( 0,-1, 0),
+ (-1, 0, 0),
+ ( 0, 0, 1)), "m [110]"),
+
+ ((( 0, 1, 0),
+ ( 1, 0, 0),
+ ( 0, 0, 1)), "m [1-10]"),
+
+ ((( 0,-1, 0),
+ ( 1,-1, 0),
+ ( 0, 0, 1)), "3+ [001]"),
+
+ ((( 1,-1, 0),
+ ( 1, 0, 0),
+ ( 0, 0, 1)), "6+ [001]"),
+
+ ((( 1,-1, 0),
+ ( 0,-1, 0),
+ ( 0, 0,-1)), "2 [100]"),
+
+ (((-1, 1, 0),
+ ( 0, 1, 0),
+ ( 0, 0,-1)), "2 [120]"),
+
+ ((( 0, 1, 0),
+ (-1, 1, 0),
+ ( 0, 0,-1)), "-3+ [001]"),
+
+ (((-1, 1, 0),
+ (-1, 0, 0),
+ ( 0, 0,-1)), "-6+ [001]"),
+
+ (((-1, 1, 0),
+ ( 0, 1, 0),
+ ( 0, 0, 1)), "m [100]"),
+
+ ((( 1,-1, 0),
+ ( 0,-1, 0),
+ ( 0, 0, 1)), "m [120]"),
+
+ (((-1, 1, 0),
+ (-1, 0, 0),
+ ( 0, 0, 1)), "3- [001]"),
+
+ ((( 0, 1, 0),
+ (-1, 1, 0),
+ ( 0, 0, 1)), "6- [001]"),
+
+ (((-1, 0, 0),
+ (-1, 1, 0),
+ ( 0, 0,-1)), "2 [010]"),
+
+ ((( 1, 0, 0),
+ ( 1,-1, 0),
+ ( 0, 0,-1)), "2 [210]"),
+
+ ((( 1,-1, 0),
+ ( 1, 0, 0),
+ ( 0, 0,-1)), "-3- [001]"),
+
+ ((( 0,-1, 0),
+ ( 1,-1, 0),
+ ( 0, 0,-1)), "-6- [001]"),
+
+ ((( 1, 0, 0),
+ ( 1,-1, 0),
+ ( 0, 0, 1)), "m [010]"),
+
+ (((-1, 0, 0),
+ (-1, 1, 0),
+ ( 0, 0, 1)), "m [210]"))
+
+prim2conv = (
+ ((( 1,-1, 1),
+ ( 1, 1,-1),
+ (-1, 1, 1)), "cF"),
+
+ ((( 1,-1, 0),
+ (-1, 0, 1),
+ (-1,-1,-1)), "hR"),
+
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0, 1)), "cP"),
+
+ ((( 1, 0, 1),
+ ( 1, 1, 0),
+ ( 0, 1, 1)), "cI"),
+
+ ((( 1,-1, 0),
+ (-1, 0, 1),
+ (-1,-1,-1)), "hR"),
+
+ ((( 0, 1, 1),
+ ( 1, 0, 1),
+ ( 1, 1, 0)), "tI"),
+
+ ((( 1, 0, 1),
+ ( 1, 1, 0),
+ ( 0, 1, 1)), "tI"),
+
+ (((-1,-1, 0),
+ (-1, 0,-1),
+ ( 0,-1,-1)), "oI"),
+
+ ((( 1, 0, 0),
+ (-1, 1, 0),
+ (-1,-1, 3)), "hR"),
+
+ ((( 1, 1, 0),
+ ( 1,-1, 0),
+ ( 0, 0,-1)), "mC"),
+
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0, 1)), "tP"),
+
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0, 1)), "hP"),
+
+ ((( 1, 1, 0),
+ (-1, 1, 0),
+ ( 0, 0, 1)), "oC"),
+
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 1, 1, 2)), "tI"),
+
+ (((-1,-1, 0),
+ ( 1,-1, 0),
+ ( 1, 1, 2)), "oF"),
+
+ ((( 1, 1, 0),
+ (-1, 1, 0),
+ ( 0, 0, 1)), "mC"),
+
+ ((( 1,-1, 0),
+ ( 1, 1, 0),
+ (-1, 0,-1)), "mC"),
+
+ ((( 0,-1, 1),
+ ( 1,-1,-1),
+ ( 1, 0, 0)), "tI"),
+
+ (((-1, 0, 0),
+ ( 0,-1, 1),
+ (-1, 1, 1)), "oI"),
+
+ ((( 0, 1, 1),
+ ( 0, 1,-1),
+ (-1, 0, 0)), "mC"),
+
+ ((( 0, 1, 0),
+ ( 0, 0, 1),
+ ( 1, 0, 0)), "tP"),
+
+ ((( 0, 1, 0),
+ ( 0, 0, 1),
+ ( 1, 0, 0)), "hP"),
+
+ ((( 0, 1, 1),
+ ( 0,-1, 1),
+ ( 1, 0, 0)), "oC"),
+
+ ((( 1, 2, 1),
+ ( 0,-1, 1),
+ ( 1, 0, 0)), "hR"),
+
+ ((( 0, 1, 1),
+ ( 0,-1, 1),
+ ( 1, 0, 0)), "mC"),
+
+ ((( 1, 0, 0),
+ (-1, 2, 0),
+ (-1, 0, 2)), "oF"),
+
+ (((-1, 2, 0),
+ (-1, 0, 0),
+ ( 0,-1, 1)), "mC"),
+
+ (((-1, 0, 0),
+ (-1, 0, 2),
+ ( 0, 1, 0)), "mC"),
+
+ ((( 1, 0, 0),
+ ( 1,-2, 0),
+ ( 0, 0,-1)), "mC"),
+
+ ((( 0, 1, 0),
+ ( 0, 1,-2),
+ (-1, 0, 0)), "mC"),
+
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0, 1)), "aP"),
+
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0, 1)), "oP"),
+
+ ((( 0,-1, 0),
+ ( 0, 1, 2),
+ (-1, 0, 0)), "oC"),
+
+ ((( 0,-1, 0),
+ (-1, 0, 0),
+ ( 0, 0,-1)), "mP"),
+
+ ((( 1, 0, 0),
+ (-1, 0,-2),
+ ( 0, 1, 0)), "oC"),
+
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0, 1)), "mP"),
+
+ (((-1, 0, 0),
+ ( 1, 2, 0),
+ ( 0, 0,-1)), "oC"),
+
+ (((-1, 0, 0),
+ ( 0,-1, 0),
+ ( 1, 1, 2)), "oI"),
+
+ ((( 0,-1,-2),
+ ( 0,-1, 0),
+ (-1, 0, 0)), "mC"),
+
+ ((( 1, 0, 2),
+ ( 1, 0, 0),
+ ( 0, 1, 0)), "mC"),
+
+ (((-1,-2, 0),
+ (-1, 0, 0),
+ ( 0, 0,-1)), "mC"),
+
+ (((-1, 0, 0),
+ (-1,-1,-2),
+ ( 0,-1, 0)), "mI"),
+
+ ((( 1, 0, 0),
+ ( 0, 1, 0),
+ ( 0, 0, 1)), "aP"))
+
+
+def print_matrix(m):
+ for v in m:
+ print "[%4.1f %4.1f %4.1f]" % tuple(v)
+
+for (tmat, bravais) in prim2conv:
+ if bravais[0] == "h":
+ ops = operations_hex
+ else:
+ ops = operations
+ for (op, symbol) in ops:
+ op_prim = np.dot(np.dot(np.array(tmat).T, op), np.linalg.inv(np.array(tmat).T))
+ print bravais, symbol,
+ if (abs(op_prim) > 1.5).any():
+ print "*"
+ else:
+ print
+ print_matrix(op_prim)
+ print
+
diff --git a/database/spg.csv b/database/spg.csv
new file mode 100644
index 0000000..e9710e8
--- /dev/null
+++ b/database/spg.csv
@@ -0,0 +1,530 @@
+1,1,,,1,C1^1,P 1,P 1,P 1,,P,1,1,1,,1,,,,,
+2,1,,,2,Ci^1,-P 1,P -1,P -1,,P,-1,1,1,,-1,,1,,1,
+3,1,b,,3,C2^1,P 2y,P 2 = P 1 2 1,P 1 2 1,b,P,1,2,1,,1,,2,,1,
+4,2,c,,3,C2^1,P 2,P 2 = P 1 1 2,P 1 1 2,c,P,1,1,2,,1,,1,,2,
+5,3,a,,3,C2^1,P 2x,P 2 = P 2 1 1,P 2 1 1,a,P,2,1,1,,2,,1,,1,
+6,1,b,,4,C2^2,P 2yb,P 2_1 = P 1 2_1 1,P 1 2_1 1,b,P,1,2s1,1,,1,,2s1,,1,
+7,2,c,,4,C2^2,P 2c,P 2_1 = P 1 1 2_1,P 1 1 2_1,c,P,1,1,2s1,,1,,1,,2s1,
+8,3,a,,4,C2^2,P 2xa,P 2_1 = P 2_1 1 1,P 2_1 1 1,a,P,2s1,1,1,,2s1,,1,,1,
+9,1,b1,,5,C2^3,C 2y,C 2 = C 1 2 1,C 1 2 1,b,C,1,2,1,,1,,2,,1,
+10,2,b2,,5,C2^3,A 2y,C 2 = A 1 2 1,A 1 2 1,b,A,1,2,1,,1,,2,,1,
+11,3,b3,,5,C2^3,I 2y,C 2 = I 1 2 1,I 1 2 1,b,I,1,2,1,,1,,2,,1,
+12,4,c1,,5,C2^3,A 2,C 2 = A 1 1 2,A 1 1 2,c,A,1,1,2,,1,,1,,2,
+13,5,c2,,5,C2^3,B 2,C 2 = B 1 1 2 = B 2,B 1 1 2,c,B,1,1,2,,1,,1,,2,
+14,6,c3,,5,C2^3,I 2,C 2 = I 1 1 2,I 1 1 2,c,I,1,1,2,,1,,1,,2,
+15,7,a1,,5,C2^3,B 2x,C 2 = B 2 1 1,B 2 1 1,a,B,2,1,1,,2,,1,,1,
+16,8,a2,,5,C2^3,C 2x,C 2 = C 2 1 1,C 2 1 1,a,C,2,1,1,,2,,1,,1,
+17,9,a3,,5,C2^3,I 2x,C 2 = I 2 1 1,I 2 1 1,a,I,2,1,1,,2,,1,,1,
+18,1,b,,6,Cs^1,P -2y,P m = P 1 m 1,P 1 m 1,b,P,1,m,1,,1,,,m,1,
+19,2,c,,6,Cs^1,P -2,P m = P 1 1 m,P 1 1 m,c,P,1,1,m,,1,,1,,,m
+20,3,a,,6,Cs^1,P -2x,P m = P m 1 1,P m 1 1,a,P,m,1,1,,,m,1,,1,
+21,1,b1,,7,Cs^2,P -2yc,P c = P 1 c 1,P 1 c 1,b,P,1,c,1,,1,,,c,1,
+22,2,b2,,7,Cs^2,P -2yac,P c = P 1 n 1,P 1 n 1,b,P,1,n,1,,1,,,n,1,
+23,3,b3,,7,Cs^2,P -2ya,P c = P 1 a 1,P 1 a 1,b,P,1,a,1,,1,,,a,1,
+24,4,c1,,7,Cs^2,P -2a,P c = P 1 1 a,P 1 1 a,c,P,1,1,a,,1,,1,,,a
+25,5,c2,,7,Cs^2,P -2ab,P c = P 1 1 n,P 1 1 n,c,P,1,1,n,,1,,1,,,n
+26,6,c3,,7,Cs^2,P -2b,P c = P 1 1 b = P b,P 1 1 b,c,P,1,1,b,,1,,1,,,b
+27,7,a1,,7,Cs^2,P -2xb,P c = P b 1 1,P b 1 1,a,P,b,1,1,,,b,1,,1,
+28,8,a2,,7,Cs^2,P -2xbc,P c = P n 1 1,P n 1 1,a,P,n,1,1,,,n,1,,1,
+29,9,a3,,7,Cs^2,P -2xc,P c = P c 1 1,P c 1 1,a,P,c,1,1,,,c,1,,1,
+30,1,b1,,8,Cs^3,C -2y,C m = C 1 m 1,C 1 m 1,b,C,1,m,1,,1,,,m,1,
+31,2,b2,,8,Cs^3,A -2y,C m = A 1 m 1,A 1 m 1,b,A,1,m,1,,1,,,m,1,
+32,3,b3,,8,Cs^3,I -2y,C m = I 1 m 1,I 1 m 1,b,I,1,m,1,,1,,,m,1,
+33,4,c1,,8,Cs^3,A -2,C m = A 1 1 m,A 1 1 m,c,A,1,1,m,,1,,1,,,m
+34,5,c2,,8,Cs^3,B -2,C m = B 1 1 m = B m,B 1 1 m,c,B,1,1,m,,1,,1,,,m
+35,6,c3,,8,Cs^3,I -2,C m = I 1 1 m,I 1 1 m,c,I,1,1,m,,1,,1,,,m
+36,7,a1,,8,Cs^3,B -2x,C m = B m 1 1,B m 1 1,a,B,m,1,1,,,m,1,,1,
+37,8,a2,,8,Cs^3,C -2x,C m = C m 1 1,C m 1 1,a,C,m,1,1,,,m,1,,1,
+38,9,a3,,8,Cs^3,I -2x,C m = I m 1 1,I m 1 1,a,I,m,1,1,,,m,1,,1,
+39,1,b1,,9,Cs^4,C -2yc,C c = C 1 c 1,C 1 c 1,b,C,1,c,1,,1,,,c,1,
+40,2,b2,,9,Cs^4,A -2yac,C c = A 1 n 1,A 1 n 1,b,A,1,n,1,,1,,,n,1,
+41,3,b3,,9,Cs^4,I -2ya,C c = I 1 a 1,I 1 a 1,b,I,1,a,1,,1,,,a,1,
+42,4,-b1,,9,Cs^4,A -2ya,C c = A 1 a 1,A 1 a 1,b,A,1,a,1,,1,,,a,1,
+43,5,-b2,,9,Cs^4,C -2ybc,C c = C 1 n 1,C 1 n 1,b,C,1,n,1,,1,,,n,1,
+44,6,-b3,,9,Cs^4,I -2yc,C c = I 1 c 1,I 1 c 1,b,I,1,c,1,,1,,,c,1,
+45,7,c1,,9,Cs^4,A -2a,C c = A 1 1 a,A 1 1 a,c,A,1,1,a,,1,,1,,,a
+46,8,c2,,9,Cs^4,B -2bc,C c = B 1 1 n,B 1 1 n,c,B,1,1,n,,1,,1,,,n
+47,9,c3,,9,Cs^4,I -2b,C c = I 1 1 b,I 1 1 b,c,I,1,1,b,,1,,1,,,b
+48,10,-c1,,9,Cs^4,B -2b,C c = B 1 1 b = B b,B 1 1 b,c,B,1,1,b,,1,,1,,,b
+49,11,-c2,,9,Cs^4,A -2ac,C c = A 1 1 n,A 1 1 n,c,A,1,1,n,,1,,1,,,n
+50,12,-c3,,9,Cs^4,I -2a,C c = I 1 1 a,I 1 1 a,c,I,1,1,a,,1,,1,,,a
+51,13,a1,,9,Cs^4,B -2xb,C c = B b 1 1,B b 1 1,a,B,b,1,1,,,b,1,,1,
+52,14,a2,,9,Cs^4,C -2xbc,C c = C n 1 1,C n 1 1,a,C,n,1,1,,,n,1,,1,
+53,15,a3,,9,Cs^4,I -2xc,C c = I c 1 1,I c 1 1,a,I,c,1,1,,,c,1,,1,
+54,16,-a1,,9,Cs^4,C -2xc,C c = C c 1 1,C c 1 1,a,C,c,1,1,,,c,1,,1,
+55,17,-a2,,9,Cs^4,B -2xbc,C c = B n 1 1,B n 1 1,a,B,n,1,1,,,n,1,,1,
+56,18,-a3,,9,Cs^4,I -2xb,C c = I b 1 1,I b 1 1,a,I,b,1,1,,,b,1,,1,
+57,1,b,,10,C2h^1,-P 2y,P 2/m = P 1 2/m 1,P 1 2/m 1,b,P,1,2m,1,,1,,2,m,1,
+58,2,c,,10,C2h^1,-P 2,P 2/m = P 1 1 2/m,P 1 1 2/m,c,P,1,1,2m,,1,,1,,2,m
+59,3,a,,10,C2h^1,-P 2x,P 2/m = P 2/m 1 1,P 2/m 1 1,a,P,2m,1,1,,2,m,1,,1,
+60,1,b,,11,C2h^2,-P 2yb,P 2_1/m = P 1 2_1/m 1,P 1 2_1/m 1,b,P,1,2s1m,1,,1,,2s1,m,1,
+61,2,c,,11,C2h^2,-P 2c,P 2_1/m = P 1 1 2_1/m,P 1 1 2_1/m,c,P,1,1,2s1m,,1,,1,,2s1,m
+62,3,a,,11,C2h^2,-P 2xa,P 2_1/m = P 2_1/m 1 1,P 2_1/m 1 1,a,P,2s1m,1,1,,2s1,m,1,,1,
+63,1,b1,,12,C2h^3,-C 2y,C 2/m = C 1 2/m 1,C 1 2/m 1,b,C,1,2m,1,,1,,2,m,1,
+64,2,b2,,12,C2h^3,-A 2y,C 2/m = A 1 2/m 1,A 1 2/m 1,b,A,1,2m,1,,1,,2,m,1,
+65,3,b3,,12,C2h^3,-I 2y,C 2/m = I 1 2/m 1,I 1 2/m 1,b,I,1,2m,1,,1,,2,m,1,
+66,4,c1,,12,C2h^3,-A 2,C 2/m = A 1 1 2/m,A 1 1 2/m,c,A,1,1,2m,,1,,1,,2,m
+67,5,c2,,12,C2h^3,-B 2,C 2/m = B 1 1 2/m = B 2/m,B 1 1 2/m,c,B,1,1,2m,,1,,1,,2,m
+68,6,c3,,12,C2h^3,-I 2,C 2/m = I 1 1 2/m,I 1 1 2/m,c,I,1,1,2m,,1,,1,,2,m
+69,7,a1,,12,C2h^3,-B 2x,C 2/m = B 2/m 1 1,B 2/m 1 1,a,B,2m,1,1,,2,m,1,,1,
+70,8,a2,,12,C2h^3,-C 2x,C 2/m = C 2/m 1 1,C 2/m 1 1,a,C,2m,1,1,,2,m,1,,1,
+71,9,a3,,12,C2h^3,-I 2x,C 2/m = I 2/m 1 1,I 2/m 1 1,a,I,2m,1,1,,2,m,1,,1,
+72,1,b1,,13,C2h^4,-P 2yc,P 2/c = P 1 2/c 1,P 1 2/c 1,b,P,1,2c,1,,1,,2,c,1,
+73,2,b2,,13,C2h^4,-P 2yac,P 2/c = P 1 2/n 1,P 1 2/n 1,b,P,1,2n,1,,1,,2,n,1,
+74,3,b3,,13,C2h^4,-P 2ya,P 2/c = P 1 2/a 1,P 1 2/a 1,b,P,1,2a,1,,1,,2,a,1,
+75,4,c1,,13,C2h^4,-P 2a,P 2/c = P 1 1 2/a,P 1 1 2/a,c,P,1,1,2a,,1,,1,,2,a
+76,5,c2,,13,C2h^4,-P 2ab,P 2/c = P 1 1 2/n,P 1 1 2/n,c,P,1,1,2n,,1,,1,,2,n
+77,6,c3,,13,C2h^4,-P 2b,P 2/c = P 1 1 2/b = P 2/b,P 1 1 2/b,c,P,1,1,2b,,1,,1,,2,b
+78,7,a1,,13,C2h^4,-P 2xb,P 2/c = P 2/b 1 1,P 2/b 1 1,a,P,2b,1,1,,2,b,1,,1,
+79,8,a2,,13,C2h^4,-P 2xbc,P 2/c = P 2/n 1 1,P 2/n 1 1,a,P,2n,1,1,,2,n,1,,1,
+80,9,a3,,13,C2h^4,-P 2xc,P 2/c = P 2/c 1 1,P 2/c 1 1,a,P,2c,1,1,,2,c,1,,1,
+81,1,b1,,14,C2h^5,-P 2ybc,P 2_1/c = P 1 2_1/c 1,P 1 2_1/c 1,b,P,1,2s1c,1,,1,,2s1,c,1,
+82,2,b2,,14,C2h^5,-P 2yn,P 2_1/c = P 1 2_1/n 1,P 1 2_1/n 1,b,P,1,2s1n,1,,1,,2s1,n,1,
+83,3,b3,,14,C2h^5,-P 2yab,P 2_1/c = P 1 2_1/a 1,P 1 2_1/a 1,b,P,1,2s1a,1,,1,,2s1,a,1,
+84,4,c1,,14,C2h^5,-P 2ac,P 2_1/c = P 1 1 2_1/a,P 1 1 2_1/a,c,P,1,1,2s1a,,1,,1,,2s1,a
+85,5,c2,,14,C2h^5,-P 2n,P 2_1/c = P 1 1 2_1/n,P 1 1 2_1/n,c,P,1,1,2s1n,,1,,1,,2s1,n
+86,6,c3,,14,C2h^5,-P 2bc,P 2_1/c = P 1 1 2_1/b = P 2_1/b,P 1 1 2_1/b,c,P,1,1,2s1b,,1,,1,,2s1,b
+87,7,a1,,14,C2h^5,-P 2xab,P 2_1/c = P 2_1/b 1 1,P 2_1/b 1 1,a,P,2s1b,1,1,,2s1,b,1,,1,
+88,8,a2,,14,C2h^5,-P 2xn,P 2_1/c = P 2_1/n 1 1,P 2_1/n 1 1,a,P,2s1n,1,1,,2s1,n,1,,1,
+89,9,a3,,14,C2h^5,-P 2xac,P 2_1/c = P 2_1/c 1 1,P 2_1/c 1 1,a,P,2s1c,1,1,,2s1,c,1,,1,
+90,1,b1,,15,C2h^6,-C 2yc,C 2/c = C 1 2/c 1,C 1 2/c 1,b,C,1,2c,1,,1,,2,c,1,
+91,2,b2,,15,C2h^6,-A 2yac,C 2/c = A 1 2/n 1,A 1 2/n 1,b,A,1,2n,1,,1,,2,n,1,
+92,3,b3,,15,C2h^6,-I 2ya,C 2/c = I 1 2/a 1,I 1 2/a 1,b,I,1,2a,1,,1,,2,a,1,
+93,4,-b1,,15,C2h^6,-A 2ya,C 2/c = A 1 2/a 1,A 1 2/a 1,b,A,1,2a,1,,1,,2,a,1,
+94,5,-b2,,15,C2h^6,-C 2ybc,C 2/c = C 1 2/n 1,C 1 2/n 1,b,C,1,2n,1,,1,,2,n,1,
+95,6,-b3,,15,C2h^6,-I 2yc,C 2/c = I 1 2/c 1,I 1 2/c 1,b,I,1,2c,1,,1,,2,c,1,
+96,7,c1,,15,C2h^6,-A 2a,C 2/c = A 1 1 2/a,A 1 1 2/a,c,A,1,1,2a,,1,,1,,2,a
+97,8,c2,,15,C2h^6,-B 2bc,C 2/c = B 1 1 2/n,B 1 1 2/n,c,B,1,1,2n,,1,,1,,2,n
+98,9,c3,,15,C2h^6,-I 2b,C 2/c = I 1 1 2/b,I 1 1 2/b,c,I,1,1,2b,,1,,1,,2,b
+99,10,-c1,,15,C2h^6,-B 2b,C 2/c = B 1 1 2/b = B 2/b,B 1 1 2/b,c,B,1,1,2b,,1,,1,,2,b
+100,11,-c2,,15,C2h^6,-A 2ac,C 2/c = A 1 1 2/n,A 1 1 2/n,c,A,1,1,2n,,1,,1,,2,n
+101,12,-c3,,15,C2h^6,-I 2a,C 2/c = I 1 1 2/a,I 1 1 2/a,c,I,1,1,2a,,1,,1,,2,a
+102,13,a1,,15,C2h^6,-B 2xb,C 2/c = B 2/b 1 1,B 2/b 1 1,a,B,2b,1,1,,2,b,1,,1,
+103,14,a2,,15,C2h^6,-C 2xbc,C 2/c = C 2/n 1 1,C 2/n 1 1,a,C,2n,1,1,,2,n,1,,1,
+104,15,a3,,15,C2h^6,-I 2xc,C 2/c = I 2/c 1 1,I 2/c 1 1,a,I,2c,1,1,,2,c,1,,1,
+105,16,-a1,,15,C2h^6,-C 2xc,C 2/c = C 2/c 1 1,C 2/c 1 1,a,C,2c,1,1,,2,c,1,,1,
+106,17,-a2,,15,C2h^6,-B 2xbc,C 2/c = B 2/n 1 1,B 2/n 1 1,a,B,2n,1,1,,2,n,1,,1,
+107,18,-a3,,15,C2h^6,-I 2xb,C 2/c = I 2/b 1 1,I 2/b 1 1,a,I,2b,1,1,,2,b,1,,1,
+108,1,,,16,D2^1,P 2 2,P 2 2 2,P 2 2 2,,P,2,2,2,,2,,2,,2,
+109,1,,,17,D2^2,P 2c 2,P 2 2 2_1,P 2 2 2_1,,P,2,2,2s1,,2,,2,,2s1,
+110,2,cab,,17,D2^2,P 2a 2a,P 2_1 2 2,P 2_1 2 2,,P,2s1,2,2,,2s1,,2,,2,
+111,3,bca,,17,D2^2,P 2 2b,P 2 2_1 2,P 2 2_1 2,,P,2,2s1,2,,2,,2s1,,2,
+112,1,,,18,D2^3,P 2 2ab,P 2_1 2_1 2,P 2_1 2_1 2,,P,2s1,2s1,2,,2s1,,2s1,,2,
+113,2,cab,,18,D2^3,P 2bc 2,P 2 2_1 2_1,P 2 2_1 2_1,,P,2,2s1,2s1,,2,,2s1,,2s1,
+114,3,bca,,18,D2^3,P 2ac 2ac,P 2_1 2 2_1,P 2_1 2 2_1,,P,2s1,2,2s1,,2s1,,2,,2s1,
+115,1,,,19,D2^4,P 2ac 2ab,P 2_1 2_1 2_1,P 2_1 2_1 2_1,,P,2s1,2s1,2s1,,2s1,,2s1,,2s1,
+116,1,,,20,D2^5,C 2c 2,C 2 2 2_1,C 2 2 2_1,,C,2,2,2s1,,2,,2,,2s1,
+117,2,cab,,20,D2^5,A 2a 2a,A 2_1 2 2,A 2_1 2 2,,A,2s1,2,2,,2s1,,2,,2,
+118,3,bca,,20,D2^5,B 2 2b,B 2 2_1 2,B 2 2_1 2,,B,2,2s1,2,,2,,2s1,,2,
+119,1,,,21,D2^6,C 2 2,C 2 2 2,C 2 2 2,,C,2,2,2,,2,,2,,2,
+120,2,cab,,21,D2^6,A 2 2,A 2 2 2,A 2 2 2,,A,2,2,2,,2,,2,,2,
+121,3,bca,,21,D2^6,B 2 2,B 2 2 2,B 2 2 2,,B,2,2,2,,2,,2,,2,
+122,1,,,22,D2^7,F 2 2,F 2 2 2,F 2 2 2,,F,2,2,2,,2,,2,,2,
+123,1,,,23,D2^8,I 2 2,I 2 2 2,I 2 2 2,,I,2,2,2,,2,,2,,2,
+124,1,,,24,D2^9,I 2b 2c,I 2_1 2_1 2_1,I 2_1 2_1 2_1,,I,2s1,2s1,2s1,,2s1,,2s1,,2s1,
+125,1,,,25,C2v^1,P 2 -2,P m m 2,P m m 2,,P,m,m,2,,,m,,m,2,
+126,2,cab,,25,C2v^1,P -2 2,P 2 m m,P 2 m m,,P,2,m,m,,2,,,m,,m
+127,3,bca,,25,C2v^1,P -2 -2,P m 2 m,P m 2 m,,P,m,2,m,,,m,2,,,m
+128,1,,,26,C2v^2,P 2c -2,P m c 2_1,P m c 2_1,,P,m,c,2s1,,,m,,c,2s1,
+129,2,ba-c,,26,C2v^2,P 2c -2c,P c m 2_1,P c m 2_1,,P,c,m,2s1,,,c,,m,2s1,
+130,3,cab,,26,C2v^2,P -2a 2a,P 2_1 m a,P 2_1 m a,,P,2s1,m,a,,2s1,,,m,,a
+131,4,-cba,,26,C2v^2,P -2 2a,P 2_1 a m,P 2_1 a m,,P,2s1,a,m,,2s1,,,a,,m
+132,5,bca,,26,C2v^2,P -2 -2b,P b 2_1 m,P b 2_1 m,,P,b,2s1,m,,,b,2s1,,,m
+133,6,a-cb,,26,C2v^2,P -2b -2,P m 2_1 b,P m 2_1 b,,P,m,2s1,b,,,m,2s1,,,b
+134,1,,,27,C2v^3,P 2 -2c,P c c 2,P c c 2,,P,c,c,2,,,c,,c,2,
+135,2,cab,,27,C2v^3,P -2a 2,P 2 a a,P 2 a a,,P,2,a,a,,2,,,a,,a
+136,3,bca,,27,C2v^3,P -2b -2b,P b 2 b,P b 2 b,,P,b,2,b,,,b,2,,,b
+137,1,,,28,C2v^4,P 2 -2a,P m a 2,P m a 2,,P,m,a,2,,,m,,a,2,
+138,2,ba-c,,28,C2v^4,P 2 -2b,P b m 2,P b m 2,,P,b,m,2,,,b,,m,2,
+139,3,cab,,28,C2v^4,P -2b 2,P 2 m b,P 2 m b,,P,2,m,b,,2,,,m,,b
+140,4,-cba,,28,C2v^4,P -2c 2,P 2 c m,P 2 c m,,P,2,c,m,,2,,,c,,m
+141,5,bca,,28,C2v^4,P -2c -2c,P c 2 m,P c 2 m,,P,c,2,m,,,c,2,,,m
+142,6,a-cb,,28,C2v^4,P -2a -2a,P m 2 a,P m 2 a,,P,m,2,a,,,m,2,,,a
+143,1,,,29,C2v^5,P 2c -2ac,P c a 2_1,P c a 2_1,,P,c,a,2s1,,,c,,a,2s1,
+144,2,ba-c,,29,C2v^5,P 2c -2b,P b c 2_1,P b c 2_1,,P,b,c,2s1,,,b,,c,2s1,
+145,3,cab,,29,C2v^5,P -2b 2a,P 2_1 a b,P 2_1 a b,,P,2s1,a,b,,2s1,,,a,,b
+146,4,-cba,,29,C2v^5,P -2ac 2a,P 2_1 c a,P 2_1 c a,,P,2s1,c,a,,2s1,,,c,,a
+147,5,bca,,29,C2v^5,P -2bc -2c,P c 2_1 b,P c 2_1 b,,P,c,2s1,b,,,c,2s1,,,b
+148,6,a-cb,,29,C2v^5,P -2a -2ab,P b 2_1 a,P b 2_1 a,,P,b,2s1,a,,,b,2s1,,,a
+149,1,,,30,C2v^6,P 2 -2bc,P n c 2,P n c 2,,P,n,c,2,,,n,,c,2,
+150,2,ba-c,,30,C2v^6,P 2 -2ac,P c n 2,P c n 2,,P,c,n,2,,,c,,n,2,
+151,3,cab,,30,C2v^6,P -2ac 2,P 2 n a,P 2 n a,,P,2,n,a,,2,,,n,,a
+152,4,-cba,,30,C2v^6,P -2ab 2,P 2 a n,P 2 a n,,P,2,a,n,,2,,,a,,n
+153,5,bca,,30,C2v^6,P -2ab -2ab,P b 2 n,P b 2 n,,P,b,2,n,,,b,2,,,n
+154,6,a-cb,,30,C2v^6,P -2bc -2bc,P n 2 b,P n 2 b,,P,n,2,b,,,n,2,,,b
+155,1,,,31,C2v^7,P 2ac -2,P m n 2_1,P m n 2_1,,P,m,n,2s1,,,m,,n,2s1,
+156,2,ba-c,,31,C2v^7,P 2bc -2bc,P n m 2_1,P n m 2_1,,P,n,m,2s1,,,n,,m,2s1,
+157,3,cab,,31,C2v^7,P -2ab 2ab,P 2_1 m n,P 2_1 m n,,P,2s1,m,n,,2s1,,,m,,n
+158,4,-cba,,31,C2v^7,P -2 2ac,P 2_1 n m,P 2_1 n m,,P,2s1,n,m,,2s1,,,n,,m
+159,5,bca,,31,C2v^7,P -2 -2bc,P n 2_1 m,P n 2_1 m,,P,n,2s1,m,,,n,2s1,,,m
+160,6,a-cb,,31,C2v^7,P -2ab -2,P m 2_1 n,P m 2_1 n,,P,m,2s1,n,,,m,2s1,,,n
+161,1,,,32,C2v^8,P 2 -2ab,P b a 2,P b a 2,,P,b,a,2,,,b,,a,2,
+162,2,cab,,32,C2v^8,P -2bc 2,P 2 c b,P 2 c b,,P,2,c,b,,2,,,c,,b
+163,3,bca,,32,C2v^8,P -2ac -2ac,P c 2 a,P c 2 a,,P,c,2,a,,,c,2,,,a
+164,1,,,33,C2v^9,P 2c -2n,P n a 2_1,P n a 2_1,,P,n,a,2s1,,,n,,a,2s1,
+165,2,ba-c,,33,C2v^9,P 2c -2ab,P b n 2_1,P b n 2_1,,P,b,n,2s1,,,b,,n,2s1,
+166,3,cab,,33,C2v^9,P -2bc 2a,P 2_1 n b,P 2_1 n b,,P,2s1,n,b,,2s1,,,n,,b
+167,4,-cba,,33,C2v^9,P -2n 2a,P 2_1 c n,P 2_1 c n,,P,2s1,c,n,,2s1,,,c,,n
+168,5,bca,,33,C2v^9,P -2n -2ac,P c 2_1 n,P c 2_1 n,,P,c,2s1,n,,,c,2s1,,,n
+169,6,a-cb,,33,C2v^9,P -2ac -2n,P n 2_1 a,P n 2_1 a,,P,n,2s1,a,,,n,2s1,,,a
+170,1,,,34,C2v^10,P 2 -2n,P n n 2,P n n 2,,P,n,n,2,,,n,,n,2,
+171,2,cab,,34,C2v^10,P -2n 2,P 2 n n,P 2 n n,,P,2,n,n,,2,,,n,,n
+172,3,bca,,34,C2v^10,P -2n -2n,P n 2 n,P n 2 n,,P,n,2,n,,,n,2,,,n
+173,1,,,35,C2v^11,C 2 -2,C m m 2,C m m 2,,C,m,m,2,,,m,,m,2,
+174,2,cab,,35,C2v^11,A -2 2,A 2 m m,A 2 m m,,A,2,m,m,,2,,,m,,m
+175,3,bca,,35,C2v^11,B -2 -2,B m 2 m,B m 2 m,,B,m,2,m,,,m,2,,,m
+176,1,,,36,C2v^12,C 2c -2,C m c 2_1,C m c 2_1,,C,m,c,2s1,,,m,,c,2s1,
+177,2,ba-c,,36,C2v^12,C 2c -2c,C c m 2_1,C c m 2_1,,C,c,m,2s1,,,c,,m,2s1,
+178,3,cab,,36,C2v^12,A -2a 2a,A 2_1 m a,A 2_1 m a,,A,2s1,m,a,,2s1,,,m,,a
+179,4,-cba,,36,C2v^12,A -2 2a,A 2_1 a m,A 2_1 a m,,A,2s1,a,m,,2s1,,,a,,m
+180,5,bca,,36,C2v^12,B -2 -2b,B b 2_1 m,B b 2_1 m,,B,b,2s1,m,,,b,2s1,,,m
+181,6,a-cb,,36,C2v^12,B -2b -2,B m 2_1 b,B m 2_1 b,,B,m,2s1,b,,,m,2s1,,,b
+182,1,,,37,C2v^13,C 2 -2c,C c c 2,C c c 2,,C,c,c,2,,,c,,c,2,
+183,2,cab,,37,C2v^13,A -2a 2,A 2 a a,A 2 a a,,A,2,a,a,,2,,,a,,a
+184,3,bca,,37,C2v^13,B -2b -2b,B b 2 b,B b 2 b,,B,b,2,b,,,b,2,,,b
+185,1,,,38,C2v^14,A 2 -2,A m m 2,A m m 2,,A,m,m,2,,,m,,m,2,
+186,2,ba-c,,38,C2v^14,B 2 -2,B m m 2,B m m 2,,B,m,m,2,,,m,,m,2,
+187,3,cab,,38,C2v^14,B -2 2,B 2 m m,B 2 m m,,B,2,m,m,,2,,,m,,m
+188,4,-cba,,38,C2v^14,C -2 2,C 2 m m,C 2 m m,,C,2,m,m,,2,,,m,,m
+189,5,bca,,38,C2v^14,C -2 -2,C m 2 m,C m 2 m,,C,m,2,m,,,m,2,,,m
+190,6,a-cb,,38,C2v^14,A -2 -2,A m 2 m,A m 2 m,,A,m,2,m,,,m,2,,,m
+191,1,,,39,C2v^15,A 2 -2c,A e m 2,A e m 2,,A,e,m,2,,,e,,m,2,
+192,2,ba-c,,39,C2v^15,B 2 -2c,B m e 2,B m e 2,,B,m,e,2,,,m,,e,2,
+193,3,cab,,39,C2v^15,B -2c 2,B 2 e m,B 2 e m,,B,2,e,m,,2,,,e,,m
+194,4,-cba,,39,C2v^15,C -2b 2,C 2 m e,C 2 m e,,C,2,m,e,,2,,,m,,e
+195,5,bca,,39,C2v^15,C -2b -2b,C m 2 e,C m 2 e,,C,m,2,e,,,m,2,,,e
+196,6,a-cb,,39,C2v^15,A -2c -2c,A e 2 m,A e 2 m,,A,e,2,m,,,e,2,,,m
+197,1,,,40,C2v^16,A 2 -2a,A m a 2,A m a 2,,A,m,a,2,,,m,,a,2,
+198,2,ba-c,,40,C2v^16,B 2 -2b,B b m 2,B b m 2,,B,b,m,2,,,b,,m,2,
+199,3,cab,,40,C2v^16,B -2b 2,B 2 m b,B 2 m b,,B,2,m,b,,2,,,m,,b
+200,4,-cba,,40,C2v^16,C -2c 2,C 2 c m,C 2 c m,,C,2,c,m,,2,,,c,,m
+201,5,bca,,40,C2v^16,C -2c -2c,C c 2 m,C c 2 m,,C,c,2,m,,,c,2,,,m
+202,6,a-cb,,40,C2v^16,A -2a -2a,A m 2 a,A m 2 a,,A,m,2,a,,,m,2,,,a
+203,1,,,41,C2v^17,A 2 -2ac,A e a 2,A e a 2,,A,e,a,2,,,e,,a,2,
+204,2,ba-c,,41,C2v^17,B 2 -2bc,B b e 2,B b e 2,,B,b,e,2,,,b,,e,2,
+205,3,cab,,41,C2v^17,B -2bc 2,B 2 e b,B 2 e b,,B,2,e,b,,2,,,e,,b
+206,4,-cba,,41,C2v^17,C -2bc 2,C 2 c e,C 2 c e,,C,2,c,e,,2,,,c,,e
+207,5,bca,,41,C2v^17,C -2bc -2bc,C c 2 e,C c 2 e,,C,c,2,e,,,c,2,,,e
+208,6,a-cb,,41,C2v^17,A -2ac -2ac,A e 2 a,A e 2 a,,A,e,2,a,,,e,2,,,a
+209,1,,,42,C2v^18,F 2 -2,F m m 2,F m m 2,,F,m,m,2,,,m,,m,2,
+210,2,cab,,42,C2v^18,F -2 2,F 2 m m,F 2 m m,,F,2,m,m,,2,,,m,,m
+211,3,bca,,42,C2v^18,F -2 -2,F m 2 m,F m 2 m,,F,m,2,m,,,m,2,,,m
+212,1,,,43,C2v^19,F 2 -2d,F d d 2,F d d 2,,F,d,d,2,,,d,,d,2,
+213,2,cab,,43,C2v^19,F -2d 2,F 2 d d,F 2 d d,,F,2,d,d,,2,,,d,,d
+214,3,bca,,43,C2v^19,F -2d -2d,F d 2 d,F d 2 d,,F,d,2,d,,,d,2,,,d
+215,1,,,44,C2v^20,I 2 -2,I m m 2,I m m 2,,I,m,m,2,,,m,,m,2,
+216,2,cab,,44,C2v^20,I -2 2,I 2 m m,I 2 m m,,I,2,m,m,,2,,,m,,m
+217,3,bca,,44,C2v^20,I -2 -2,I m 2 m,I m 2 m,,I,m,2,m,,,m,2,,,m
+218,1,,,45,C2v^21,I 2 -2c,I b a 2,I b a 2,,I,b,a,2,,,b,,a,2,
+219,2,cab,,45,C2v^21,I -2a 2,I 2 c b,I 2 c b,,I,2,c,b,,2,,,c,,b
+220,3,bca,,45,C2v^21,I -2b -2b,I c 2 a,I c 2 a,,I,c,2,a,,,c,2,,,a
+221,1,,,46,C2v^22,I 2 -2a,I m a 2,I m a 2,,I,m,a,2,,,m,,a,2,
+222,2,ba-c,,46,C2v^22,I 2 -2b,I b m 2,I b m 2,,I,b,m,2,,,b,,m,2,
+223,3,cab,,46,C2v^22,I -2b 2,I 2 m b,I 2 m b,,I,2,m,b,,2,,,m,,b
+224,4,-cba,,46,C2v^22,I -2c 2,I 2 c m,I 2 c m,,I,2,c,m,,2,,,c,,m
+225,5,bca,,46,C2v^22,I -2c -2c,I c 2 m,I c 2 m,,I,c,2,m,,,c,2,,,m
+226,6,a-cb,,46,C2v^22,I -2a -2a,I m 2 a,I m 2 a,,I,m,2,a,,,m,2,,,a
+227,1,,,47,D2h^1,-P 2 2,P m m m,P 2/m 2/m 2/m,,P,2m,2m,2m,,2,m,2,m,2,m
+228,1,1,,48,D2h^2,P 2 2 -1n,P n n n,P 2/n 2/n 2/n,,P,2n,2n,2n,,2,n,2,n,2,n
+229,2,2,,48,D2h^2,-P 2ab 2bc,P n n n,P 2/n 2/n 2/n,,P,2n,2n,2n,,2,n,2,n,2,n
+230,1,,,49,D2h^3,-P 2 2c,P c c m,P 2/c 2/c 2/m,,P,2c,2c,2m,,2,c,2,c,2,m
+231,2,cab,,49,D2h^3,-P 2a 2,P m a a,P 2/m 2/a 2/a,,P,2m,2a,2a,,2,m,2,a,2,a
+232,3,bca,,49,D2h^3,-P 2b 2b,P b m b,P 2/b 2/m 2/b,,P,2b,2m,2b,,2,b,2,m,2,b
+233,1,1,,50,D2h^4,P 2 2 -1ab,P b a n,P 2/b 2/a 2/n,,P,2b,2a,2n,,2,b,2,a,2,n
+234,2,2,,50,D2h^4,-P 2ab 2b,P b a n,P 2/b 2/a 2/n,,P,2b,2a,2n,,2,b,2,a,2,n
+235,3,1cab,,50,D2h^4,P 2 2 -1bc,P n c b,P 2/n 2/c 2/b,,P,2n,2c,2b,,2,n,2,c,2,b
+236,4,2cab,,50,D2h^4,-P 2b 2bc,P n c b,P 2/n 2/c 2/b,,P,2n,2c,2b,,2,n,2,c,2,b
+237,5,1bca,,50,D2h^4,P 2 2 -1ac,P c n a,P 2/c 2/n 2/a,,P,2c,2n,2a,,2,c,2,n,2,a
+238,6,2bca,,50,D2h^4,-P 2a 2c,P c n a,P 2/c 2/n 2/a,,P,2c,2n,2a,,2,c,2,n,2,a
+239,1,,,51,D2h^5,-P 2a 2a,P m m a,P 2_1/m 2/m 2/a,,P,2s1m,2m,2a,,2s1,m,2,m,2,a
+240,2,ba-c,,51,D2h^5,-P 2b 2,P m m b,P 2/m 2_1/m 2/b,,P,2m,2s1m,2b,,2,m,2s1,m,2,b
+241,3,cab,,51,D2h^5,-P 2 2b,P b m m,P 2/b 2_1/m 2/m,,P,2b,2s1m,2m,,2,b,2s1,m,2,m
+242,4,-cba,,51,D2h^5,-P 2c 2c,P c m m,P 2/c 2/m 2_1/m,,P,2c,2m,2s1m,,2,c,2,m,2s1,m
+243,5,bca,,51,D2h^5,-P 2c 2,P m c m,P 2/m 2/c 2_1/m,,P,2m,2c,2s1m,,2,m,2,c,2s1,m
+244,6,a-cb,,51,D2h^5,-P 2 2a,P m a m,P 2_1/m 2/a 2/m,,P,2s1m,2a,2m,,2s1,m,2,a,2,m
+245,1,,,52,D2h^6,-P 2a 2bc,P n n a,P 2/n 2_1/n 2/a,,P,2n,2s1n,2a,,2,n,2s1,n,2,a
+246,2,ba-c,,52,D2h^6,-P 2b 2n,P n n b,P 2_1/n 2/n 2/b,,P,2s1n,2n,2b,,2s1,n,2,n,2,b
+247,3,cab,,52,D2h^6,-P 2n 2b,P b n n,P 2/b 2/n 2_1/n,,P,2b,2n,2s1n,,2,b,2,n,2s1,n
+248,4,-cba,,52,D2h^6,-P 2ab 2c,P c n n,P 2/c 2_1/n 2/n,,P,2c,2s1n,2n,,2,c,2s1,n,2,n
+249,5,bca,,52,D2h^6,-P 2ab 2n,P n c n,P 2_1/n 2/c 2/n,,P,2s1n,2c,2n,,2s1,n,2,c,2,n
+250,6,a-cb,,52,D2h^6,-P 2n 2bc,P n a n,P 2/n 2/a 2_1/n,,P,2n,2a,2s1n,,2,n,2,a,2s1,n
+251,1,,,53,D2h^7,-P 2ac 2,P m n a,P 2/m 2/n 2_1/a,,P,2m,2n,2s1a,,2,m,2,n,2s1,a
+252,2,ba-c,,53,D2h^7,-P 2bc 2bc,P n m b,P 2/n 2/m 2_1/b,,P,2n,2m,2s1b,,2,n,2,m,2s1,b
+253,3,cab,,53,D2h^7,-P 2ab 2ab,P b m n,P 2_1/b 2/m 2/n,,P,2s1b,2m,2n,,2s1,b,2,m,2,n
+254,4,-cba,,53,D2h^7,-P 2 2ac,P c n m,P 2_1/c 2/n 2/m,,P,2s1c,2n,2m,,2s1,c,2,n,2,m
+255,5,bca,,53,D2h^7,-P 2 2bc,P n c m,P 2/n 2_1/c 2/m,,P,2n,2s1c,2m,,2,n,2s1,c,2,m
+256,6,a-cb,,53,D2h^7,-P 2ab 2,P m a n,P 2/m 2_1/a 2/n,,P,2m,2s1a,2n,,2,m,2s1,a,2,n
+257,1,,,54,D2h^8,-P 2a 2ac,P c c a,P 2_1/c 2/c 2/a,,P,2s1c,2c,2a,,2s1,c,2,c,2,a
+258,2,ba-c,,54,D2h^8,-P 2b 2c,P c c b,P 2/c 2_1/c 2/b,,P,2c,2s1c,2b,,2,c,2s1,c,2,b
+259,3,cab,,54,D2h^8,-P 2a 2b,P b a a,P 2/b 2_1/a 2/a,,P,2b,2s1a,2a,,2,b,2s1,a,2,a
+260,4,-cba,,54,D2h^8,-P 2ac 2c,P c a a,P 2/c 2/a 2_1/a,,P,2c,2a,2s1a,,2,c,2,a,2s1,a
+261,5,bca,,54,D2h^8,-P 2bc 2b,P b c b,P 2/b 2/c 2_1/b,,P,2b,2c,2s1b,,2,b,2,c,2s1,b
+262,6,a-cb,,54,D2h^8,-P 2b 2ab,P b a b,P 2_1/b 2/a 2/b,,P,2s1b,2a,2b,,2s1,b,2,a,2,b
+263,1,,,55,D2h^9,-P 2 2ab,P b a m,P 2_1/b 2_1/a 2/m,,P,2s1b,2s1a,2m,,2s1,b,2s1,a,2,m
+264,2,cab,,55,D2h^9,-P 2bc 2,P m c b,P 2/m 2_1/c 2_1/b,,P,2m,2s1c,2s1b,,2,m,2s1,c,2s1,b
+265,3,bca,,55,D2h^9,-P 2ac 2ac,P c m a,P 2_1/c 2/m 2_1/a,,P,2s1c,2m,2s1a,,2s1,c,2,m,2s1,a
+266,1,,,56,D2h^10,-P 2ab 2ac,P c c n,P 2_1/c 2_1/c 2/n,,P,2s1c,2s1c,2n,,2s1,c,2s1,c,2,n
+267,2,cab,,56,D2h^10,-P 2ac 2bc,P n a a,P 2/n 2_1/a 2_1/a,,P,2n,2s1a,2s1a,,2,n,2s1,a,2s1,a
+268,3,bca,,56,D2h^10,-P 2bc 2ab,P b n b,P 2_1/b 2/n 2_1/b,,P,2s1b,2n,2s1b,,2s1,b,2,n,2s1,b
+269,1,,,57,D2h^11,-P 2c 2b,P b c m,P 2/b 2_1/c 2_1/m,,P,2b,2s1c,2s1m,,2,b,2s1,c,2s1,m
+270,2,ba-c,,57,D2h^11,-P 2c 2ac,P c a m,P 2_1/c 2/a 2_1/m,,P,2s1c,2a,2s1m,,2s1,c,2,a,2s1,m
+271,3,cab,,57,D2h^11,-P 2ac 2a,P m c a,P 2_1/m 2/c 2_1/a,,P,2s1m,2c,2s1a,,2s1,m,2,c,2s1,a
+272,4,-cba,,57,D2h^11,-P 2b 2a,P m a b,P 2_1/m 2_1/a 2/b,,P,2s1m,2s1a,2b,,2s1,m,2s1,a,2,b
+273,5,bca,,57,D2h^11,-P 2a 2ab,P b m a,P 2_1/b 2_1/m 2/a,,P,2s1b,2s1m,2a,,2s1,b,2s1,m,2,a
+274,6,a-cb,,57,D2h^11,-P 2bc 2c,P c m b,P 2/c 2_1/m 2_1/b,,P,2c,2s1m,2s1b,,2,c,2s1,m,2s1,b
+275,1,,,58,D2h^12,-P 2 2n,P n n m,P 2_1/n 2_1/n 2/m,,P,2s1n,2s1n,2m,,2s1,n,2s1,n,2,m
+276,2,cab,,58,D2h^12,-P 2n 2,P m n n,P 2/m 2_1/n 2_1/n,,P,2m,2s1n,2s1n,,2,m,2s1,n,2s1,n
+277,3,bca,,58,D2h^12,-P 2n 2n,P n m n,P 2_1/n 2/m 2_1/n,,P,2s1n,2m,2s1n,,2s1,n,2,m,2s1,n
+278,1,1,,59,D2h^13,P 2 2ab -1ab,P m m n,P 2_1/m 2_1/m 2/n,,P,2s1m,2s1m,2n,,2s1,m,2s1,m,2,n
+279,2,2,,59,D2h^13,-P 2ab 2a,P m m n,P 2_1/m 2_1/m 2/n,,P,2s1m,2s1m,2n,,2s1,m,2s1,m,2,n
+280,3,1cab,,59,D2h^13,P 2bc 2 -1bc,P n m m,P 2/n 2_1/m 2_1/m,,P,2n,2s1m,2s1m,,2,n,2s1,m,2s1,m
+281,4,2cab,,59,D2h^13,-P 2c 2bc,P n m m,P 2/n 2_1/m 2_1/m,,P,2n,2s1m,2s1m,,2,n,2s1,m,2s1,m
+282,5,1bca,,59,D2h^13,P 2ac 2ac -1ac,P m n m,P 2_1/m 2/n 2_1/m,,P,2s1m,2n,2s1m,,2s1,m,2,n,2s1,m
+283,6,2bca,,59,D2h^13,-P 2c 2a,P m n m,P 2_1/m 2/n 2_1/m,,P,2s1m,2n,2s1m,,2s1,m,2,n,2s1,m
+284,1,,,60,D2h^14,-P 2n 2ab,P b c n,P 2_1/b 2/c 2_1/n,,P,2s1b,2c,2s1n,,2s1,b,2,c,2s1,n
+285,2,ba-c,,60,D2h^14,-P 2n 2c,P c a n,P 2/c 2_1/a 2_1/n,,P,2c,2s1a,2s1n,,2,c,2s1,a,2s1,n
+286,3,cab,,60,D2h^14,-P 2a 2n,P n c a,P 2_1/n 2_1/c 2/a,,P,2s1n,2s1c,2a,,2s1,n,2s1,c,2,a
+287,4,-cba,,60,D2h^14,-P 2bc 2n,P n a b,P 2_1/n 2/a 2_1/b,,P,2s1n,2a,2s1b,,2s1,n,2,a,2s1,b
+288,5,bca,,60,D2h^14,-P 2ac 2b,P b n a,P 2/b 2_1/n 2_1/a,,P,2b,2s1n,2s1a,,2,b,2s1,n,2s1,a
+289,6,a-cb,,60,D2h^14,-P 2b 2ac,P c n b,P 2_1/c 2_1/n 2/b,,P,2s1c,2s1n,2b,,2s1,c,2s1,n,2,b
+290,1,,,61,D2h^15,-P 2ac 2ab,P b c a,P 2_1/b 2_1/c 2_1/a,,P,2s1b,2s1c,2s1a,,2s1,b,2s1,c,2s1,a
+291,2,ba-c,,61,D2h^15,-P 2bc 2ac,P c a b,P 2_1/c 2_1/a 2_1/b,,P,2s1c,2s1a,2s1b,,2s1,c,2s1,a,2s1,b
+292,1,,,62,D2h^16,-P 2ac 2n,P n m a,P 2_1/n 2_1/m 2_1/a,,P,2s1n,2s1m,2s1a,,2s1,n,2s1,m,2s1,a
+293,2,ba-c,,62,D2h^16,-P 2bc 2a,P m n b,P 2_1/m 2_1/n 2_1/b,,P,2s1m,2s1n,2s1b,,2s1,m,2s1,n,2s1,b
+294,3,cab,,62,D2h^16,-P 2c 2ab,P b n m,P 2_1/b 2_1/n 2_1/m,,P,2s1b,2s1n,2s1m,,2s1,b,2s1,n,2s1,m
+295,4,-cba,,62,D2h^16,-P 2n 2ac,P c m n,P 2_1/c 2_1/m 2_1/n,,P,2s1c,2s1m,2s1n,,2s1,c,2s1,m,2s1,n
+296,5,bca,,62,D2h^16,-P 2n 2a,P m c n,P 2_1/m 2_1/c 2_1/n,,P,2s1m,2s1c,2s1n,,2s1,m,2s1,c,2s1,n
+297,6,a-cb,,62,D2h^16,-P 2c 2n,P n a m,P 2_1/n 2_1/a 2_1/m,,P,2s1n,2s1a,2s1m,,2s1,n,2s1,a,2s1,m
+298,1,,,63,D2h^17,-C 2c 2,C m c m,C 2/m 2/c 2_1/m,,C,2m,2c,2s1m,,2,m,2,c,2s1,m
+299,2,ba-c,,63,D2h^17,-C 2c 2c,C c m m,C 2/c 2/m 2_1/m,,C,2c,2m,2s1m,,2,c,2,m,2s1,m
+300,3,cab,,63,D2h^17,-A 2a 2a,A m m a,A 2_1/m 2/m 2/a,,A,2s1m,2m,2a,,2s1,m,2,m,2,a
+301,4,-cba,,63,D2h^17,-A 2 2a,A m a m,A 2_1/m 2/a 2/m,,A,2s1m,2a,2m,,2s1,m,2,a,2,m
+302,5,bca,,63,D2h^17,-B 2 2b,B b m m,B 2/b 2_1/m 2/m,,B,2b,2s1m,2m,,2,b,2s1,m,2,m
+303,6,a-cb,,63,D2h^17,-B 2b 2,B m m b,B 2/m 2_1/m 2/b,,B,2m,2s1m,2b,,2,m,2s1,m,2,b
+304,1,,,64,D2h^18,-C 2bc 2,C m c e,C 2/m 2/c 2_1/e,,C,2m,2c,2s1e,,2,m,2,c,2s1,e
+305,2,ba-c,,64,D2h^18,-C 2bc 2bc,C c m e,C 2/c 2/m 2_1/e,,C,2c,2m,2s1e,,2,c,2,m,2s1,e
+306,3,cab,,64,D2h^18,-A 2ac 2ac,A e m a,A 2_1/e 2/m 2/a,,A,2s1e,2m,2a,,2s1,e,2,m,2,a
+307,4,-cba,,64,D2h^18,-A 2 2ac,A e a m,A 2_1/e 2/a 2/m,,A,2s1e,2a,2m,,2s1,e,2,a,2,m
+308,5,bca,,64,D2h^18,-B 2 2bc,B b e m,B 2/b 2_1/e 2/m,,B,2b,2s1e,2m,,2,b,2s1,e,2,m
+309,6,a-cb,,64,D2h^18,-B 2bc 2,B m e b,B 2/m 2_1/e 2/b,,B,2m,2s1e,2b,,2,m,2s1,e,2,b
+310,1,,,65,D2h^19,-C 2 2,C m m m,C 2/m 2/m 2/m,,C,2m,2m,2m,,2,m,2,m,2,m
+311,2,cab,,65,D2h^19,-A 2 2,A m m m,A 2/m 2/m 2/m,,A,2m,2m,2m,,2,m,2,m,2,m
+312,3,bca,,65,D2h^19,-B 2 2,B m m m,B 2/m 2/m 2/m,,B,2m,2m,2m,,2,m,2,m,2,m
+313,1,,,66,D2h^20,-C 2 2c,C c c m,C 2/c 2/c 2/m,,C,2c,2c,2m,,2,c,2,c,2,m
+314,2,cab,,66,D2h^20,-A 2a 2,A m a a,A 2/m 2/a 2/a,,A,2m,2a,2a,,2,m,2,a,2,a
+315,3,bca,,66,D2h^20,-B 2b 2b,B b m b,B 2/b 2/m 2/b,,B,2b,2m,2b,,2,b,2,m,2,b
+316,1,,,67,D2h^21,-C 2b 2,C m m e,C 2/m 2/m 2/e,,C,2m,2m,2e,,2,m,2,m,2,e
+317,2,ba-c,,67,D2h^21,-C 2b 2b,C m m e,C 2/m 2/m 2/e,,C,2m,2m,2e,,2,m,2,m,2,e
+318,3,cab,,67,D2h^21,-A 2c 2c,A e m m,A 2/e 2/m 2/m,,A,2e,2m,2m,,2,e,2,m,2,m
+319,4,-cba,,67,D2h^21,-A 2 2c,A e m m,A 2/e 2/m 2/m,,A,2e,2m,2m,,2,e,2,m,2,m
+320,5,bca,,67,D2h^21,-B 2 2c,B m e m,B 2/m 2/e 2/m,,B,2m,2e,2m,,2,m,2,e,2,m
+321,6,a-cb,,67,D2h^21,-B 2c 2,B m e m,B 2/m 2/e 2/m,,B,2m,2e,2m,,2,m,2,e,2,m
+322,1,1,,68,D2h^22,C 2 2 -1bc,C c c e,C 2/c 2/c 2/e,,C,2c,2c,2e,,2,c,2,c,2,e
+323,2,2,,68,D2h^22,-C 2b 2bc,C c c e,C 2/c 2/c 2/e,,C,2c,2c,2e,,2,c,2,c,2,e
+324,3,1ba-c,,68,D2h^22,C 2 2 -1bc,C c c e,C 2/c 2/c 2/e,,C,2c,2c,2e,,2,c,2,c,2,e
+325,4,2ba-c,,68,D2h^22,-C 2b 2c,C c c e,C 2/c 2/c 2/e,,C,2c,2c,2e,,2,c,2,c,2,e
+326,5,1cab,,68,D2h^22,A 2 2 -1ac,A e a a,A 2/e 2/a 2/a,,A,2e,2a,2a,,2,e,2,a,2,a
+327,6,2cab,,68,D2h^22,-A 2a 2c,A e a a,A 2/e 2/a 2/a,,A,2e,2a,2a,,2,e,2,a,2,a
+328,7,1-cba,,68,D2h^22,A 2 2 -1ac,A e a a,A 2/e 2/a 2/a,,A,2e,2a,2a,,2,e,2,a,2,a
+329,8,2-cba,,68,D2h^22,-A 2ac 2c,A e a a,A 2/e 2/a 2/a,,A,2e,2a,2a,,2,e,2,a,2,a
+330,9,1bca,,68,D2h^22,B 2 2 -1bc,B b e b,B 2/b 2/e 2/b,,B,2b,2e,2b,,2,b,2,e,2,b
+331,10,2bca,,68,D2h^22,-B 2bc 2b,B b c b,B 2/b 2/e 2/b,,B,2b,2e,2b,,2,b,2,e,2,b
+332,11,1a-cb,,68,D2h^22,B 2 2 -1bc,B b e b,B 2/b 2/e 2/b,,B,2b,2e,2b,,2,b,2,e,2,b
+333,12,2a-cb,,68,D2h^22,-B 2b 2bc,B b e b,B 2/b 2/e 2/b,,B,2b,2e,2b,,2,b,2,e,2,b
+334,1,,,69,D2h^23,-F 2 2,F m m m,F 2/m 2/m 2/m,,F,2m,2m,2m,,2,m,2,m,2,m
+335,1,1,,70,D2h^24,F 2 2 -1d,F d d d,F 2/d 2/d 2/d,,F,2d,2d,2d,,2,d,2,d,2,d
+336,2,2,,70,D2h^24,-F 2uv 2vw,F d d d,F 2/d 2/d 2/d,,F,2d,2d,2d,,2,d,2,d,2,d
+337,1,,,71,D2h^25,-I 2 2,I m m m,I 2/m 2/m 2/m,,I,2m,2m,2m,,2,m,2,m,2,m
+338,1,,,72,D2h^26,-I 2 2c,I b a m,I 2/b 2/a 2/m,,I,2b,2a,2m,,2,b,2,a,2,m
+339,2,cab,,72,D2h^26,-I 2a 2,I m c b,I 2/m 2/c 2/b,,I,2m,2c,2b,,2,m,2,c,2,b
+340,3,bca,,72,D2h^26,-I 2b 2b,I c m a,I 2/c 2/m 2/a,,I,2c,2m,2a,,2,c,2,m,2,a
+341,1,,,73,D2h^27,-I 2b 2c,I b c a,I 2/b 2/c 2/a,,I,2b,2c,2a,,2,b,2,c,2,a
+342,2,ba-c,,73,D2h^27,-I 2a 2b,I c a b,I 2/c 2/a 2/b,,I,2c,2a,2b,,2,c,2,a,2,b
+343,1,,,74,D2h^28,-I 2b 2,I m m a,I 2/m 2/m 2/a,,I,2m,2m,2a,,2,m,2,m,2,a
+344,2,ba-c,,74,D2h^28,-I 2a 2a,I m m b,I 2/m 2/m 2/b,,I,2m,2m,2b,,2,m,2,m,2,b
+345,3,cab,,74,D2h^28,-I 2c 2c,I b m m,I 2/b 2/m 2/m,,I,2b,2m,2m,,2,b,2,m,2,m
+346,4,-cba,,74,D2h^28,-I 2 2b,I c m m,I 2/c 2/m 2/m,,I,2c,2m,2m,,2,c,2,m,2,m
+347,5,bca,,74,D2h^28,-I 2 2a,I m c m,I 2/m 2/c 2/m,,I,2m,2c,2m,,2,m,2,c,2,m
+348,6,a-cb,,74,D2h^28,-I 2c 2,I m a m,I 2/m 2/a 2/m,,I,2m,2a,2m,,2,m,2,a,2,m
+349,1,,,75,C4^1,P 4,P 4,P 4,,P,4,1,1,,4,,1,,1,
+350,1,,,76,C4^2,P 4w,P 4_1,P 4_1,,P,4s1,1,1,,4s1,,1,,1,
+351,1,,,77,C4^3,P 4c,P 4_2,P 4_2,,P,4s2,1,1,,4s2,,1,,1,
+352,1,,,78,C4^4,P 4cw,P 4_3,P 4_3,,P,4s3,1,1,,4s3,,1,,1,
+353,1,,,79,C4^5,I 4,I 4,I 4,,I,4,1,1,,4,,1,,1,
+354,1,,,80,C4^6,I 4bw,I 4_1,I 4_1,,I,4s1,1,1,,4s1,,1,,1,
+355,1,,,81,S4^1,P -4,P -4,P -4,,P,-4,1,1,,-4,,1,,1,
+356,1,,,82,S4^2,I -4,I -4,I -4,,I,-4,1,1,,-4,,1,,1,
+357,1,,,83,C4h^1,-P 4,P 4/m,P 4/m,,P,4m,1,1,,4,m,1,,1,
+358,1,,,84,C4h^2,-P 4c,P 4_2/m,P 4_2/m,,P,4s2m,1,1,,4s2,m,1,,1,
+359,1,1,,85,C4h^3,P 4ab -1ab,P 4/n,P 4/n,,P,4n,1,1,,4,n,1,,1,
+360,2,2,,85,C4h^3,-P 4a,P 4/n,P 4/n,,P,4n,1,1,,4,n,1,,1,
+361,1,1,,86,C4h^4,P 4n -1n,P 4_2/n,P 4_2/n,,P,4s2n,1,1,,4s2,n,1,,1,
+362,2,2,,86,C4h^4,-P 4bc,P 4_2/n,P 4_2/n,,P,4s2n,1,1,,4s2,n,1,,1,
+363,1,,,87,C4h^5,-I 4,I 4/m,I 4/m,,I,4m,1,1,,4,m,1,,1,
+364,1,1,,88,C4h^6,I 4bw -1bw,I 4_1/a,I 4_1/a,,I,4s1a,1,1,,4s1,a,1,,1,
+365,2,2,,88,C4h^6,-I 4ad,I 4_1/a,I 4_1/a,,I,4s1a,1,1,,4s1,a,1,,1,
+366,1,,,89,D4^1,P 4 2,P 4 2 2,P 4 2 2,,P,4,2,2,,4,,2,,2,
+367,1,,,90,D4^2,P 4ab 2ab,P 4 2_1 2,P 4 2_1 2,,P,4,2s1,2,,4,,2s1,,2,
+368,1,,,91,D4^3,P 4w 2c,P 4_1 2 2,P 4_1 2 2,,P,4s1,2,2,,4s1,,2,,2,
+369,1,,,92,D4^4,P 4abw 2nw,P 4_1 2_1 2,P 4_1 2_1 2,,P,4s1,2s1,2,,4s1,,2s1,,2,
+370,1,,,93,D4^5,P 4c 2,P 4_2 2 2,P 4_2 2 2,,P,4s2,2,2,,4s2,,2,,2,
+371,1,,,94,D4^6,P 4n 2n,P 4_2 2_1 2,P 4_2 2_1 2,,P,4s2,2s1,2,,4s2,,2s1,,2,
+372,1,,,95,D4^7,P 4cw 2c,P 4_3 2 2,P 4_3 2 2,,P,4s3,2,2,,4s3,,2,,2,
+373,1,,,96,D4^8,P 4nw 2abw,P 4_3 2_1 2,P 4_3 2_1 2,,P,4s3,2s1,2,,4s3,,2s1,,2,
+374,1,,,97,D4^9,I 4 2,I 4 2 2,I 4 2 2,,I,4,2,2,,4,,2,,2,
+375,1,,,98,D4^10,I 4bw 2bw,I 4_1 2 2,I 4_1 2 2,,I,4s1,2,2,,4s1,,2,,2,
+376,1,,,99,C4v^1,P 4 -2,P 4 m m,P 4 m m,,P,4,m,m,,4,,,m,,m
+377,1,,,100,C4v^2,P 4 -2ab,P 4 b m,P 4 b m,,P,4,b,m,,4,,,b,,m
+378,1,,,101,C4v^3,P 4c -2c,P 4_2 c m,P 4_2 c m,,P,4s2,c,m,,4s2,,,c,,m
+379,1,,,102,C4v^4,P 4n -2n,P 4_2 n m,P 4_2 n m,,P,4s2,n,m,,4s2,,,n,,m
+380,1,,,103,C4v^5,P 4 -2c,P 4 c c,P 4 c c,,P,4,c,c,,4,,,c,,c
+381,1,,,104,C4v^6,P 4 -2n,P 4 n c,P 4 n c,,P,4,n,c,,4,,,n,,c
+382,1,,,105,C4v^7,P 4c -2,P 4_2 m c,P 4_2 m c,,P,4s2,m,c,,4s2,,,m,,c
+383,1,,,106,C4v^8,P 4c -2ab,P 4_2 b c,P 4_2 b c,,P,4s2,b,c,,4s2,,,b,,c
+384,1,,,107,C4v^9,I 4 -2,I 4 m m,I 4 m m,,I,4,m,m,,4,,,m,,m
+385,1,,,108,C4v^10,I 4 -2c,I 4 c m,I 4 c m,,I,4,c,m,,4,,,c,,m
+386,1,,,109,C4v^11,I 4bw -2,I 4_1 m d,I 4_1 m d,,I,4s1,m,d,,4s1,,,m,,d
+387,1,,,110,C4v^12,I 4bw -2c,I 4_1 c d,I 4_1 c d,,I,4s1,c,d,,4s1,,,c,,d
+388,1,,,111,D2d^1,P -4 2,P -4 2 m,P -4 2 m,,P,-4,2,m,,-4,,2,,,m
+389,1,,,112,D2d^2,P -4 2c,P -4 2 c,P -4 2 c,,P,-4,2,c,,-4,,2,,,c
+390,1,,,113,D2d^3,P -4 2ab,P -4 2_1 m,P -4 2_1 m,,P,-4,2s1,m,,-4,,2s1,,,m
+391,1,,,114,D2d^4,P -4 2n,P -4 2_1 c,P -4 2_1 c,,P,-4,2s1,c,,-4,,2s1,,,c
+392,1,,,115,D2d^5,P -4 -2,P -4 m 2,P -4 m 2,,P,-4,m,2,,-4,,,m,2,
+393,1,,,116,D2d^6,P -4 -2c,P -4 c 2,P -4 c 2,,P,-4,c,2,,-4,,,c,2,
+394,1,,,117,D2d^7,P -4 -2ab,P -4 b 2,P -4 b 2,,P,-4,b,2,,-4,,,b,2,
+395,1,,,118,D2d^8,P -4 -2n,P -4 n 2,P -4 n 2,,P,-4,n,2,,-4,,,n,2,
+396,1,,,119,D2d^9,I -4 -2,I -4 m 2,I -4 m 2,,I,-4,m,2,,-4,,,m,2,
+397,1,,,120,D2d^10,I -4 -2c,I -4 c 2,I -4 c 2,,I,-4,c,2,,-4,,,c,2,
+398,1,,,121,D2d^11,I -4 2,I -4 2 m,I -4 2 m,,I,-4,2,m,,-4,,2,,,m
+399,1,,,122,D2d^12,I -4 2bw,I -4 2 d,I -4 2 d,,I,-4,2,d,,-4,,2,,,d
+400,1,,,123,D4h^1,-P 4 2,P 4/m m m,P 4/m 2/m 2/m,,P,4m,2m,2m,,4,m,2,m,2,m
+401,1,,,124,D4h^2,-P 4 2c,P 4/m c c,P 4/m 2/c 2/c,,P,4m,2c,2c,,4,m,2,c,2,c
+402,1,1,,125,D4h^3,P 4 2 -1ab,P 4/n b m,P 4/n 2/b 2/m,,P,4n,2b,2m,,4,n,2,b,2,m
+403,2,2,,125,D4h^3,-P 4a 2b,P 4/n b m,P 4/n 2/b 2/m,,P,4n,2b,2m,,4,n,2,b,2,m
+404,1,1,,126,D4h^4,P 4 2 -1n,P 4/n n c,P 4/n 2/n 2/c,,P,4n,2n,2c,,4,n,2,n,2,c
+405,2,2,,126,D4h^4,-P 4a 2bc,P 4/n n c,P 4/n 2/n 2/c,,P,4n,2n,2c,,4,n,2,n,2,c
+406,1,,,127,D4h^5,-P 4 2ab,P 4/m b m,P 4/m 2_1/b m,,P,4m,2s1b,m,,4,m,2s1,b,,m
+407,1,,,128,D4h^6,-P 4 2n,P 4/m n c,P 4/m 2_1/n c,,P,4m,2s1n,c,,4,m,2s1,n,,c
+408,1,1,,129,D4h^7,P 4ab 2ab -1ab,P 4/n m m,P 4/n 2_1/m m,,P,4n,2s1m,m,,4,n,2s1,m,,m
+409,2,2,,129,D4h^7,-P 4a 2a,P 4/n m m,P 4/n 2_1/m m,,P,4n,2s1m,m,,4,n,2s1,m,,m
+410,1,1,,130,D4h^8,P 4ab 2n -1ab,P 4/n c c,P 4/n 2_1/c c,,P,4n,2s1c,c,,4,n,2s1,c,,c
+411,2,2,,130,D4h^8,-P 4a 2ac,P 4/n c c,P 4/n 2_1/c c,,P,4n,2s1c,c,,4,n,2s1,c,,c
+412,1,,,131,D4h^9,-P 4c 2,P 4_2/m m c,P 4_2/m 2/m 2/c,,P,4s2m,2m,2c,,4s2,m,2,m,2,c
+413,1,,,132,D4h^10,-P 4c 2c,P 4_2/m c m,P 4_2/m 2/c 2/m,,P,4s2m,2c,2m,,4s2,m,2,c,2,m
+414,1,1,,133,D4h^11,P 4n 2c -1n,P 4_2/n b c,P 4_2/n 2/b 2/c,,P,4s2n,2b,2c,,4s2,n,2,b,2,c
+415,2,2,,133,D4h^11,-P 4ac 2b,P 4_2/n b c,P 4_2/n 2/b 2/c,,P,4s2n,2b,2c,,4s2,n,2,b,2,c
+416,1,1,,134,D4h^12,P 4n 2 -1n,P 4_2/n n m,P 4_2/n 2/n 2/m,,P,4s2n,2n,2m,,4s2,n,2,n,2,m
+417,2,2,,134,D4h^12,-P 4ac 2bc,P 4_2/n n m,P 4_2/n 2/n 2/m,,P,4s2n,2n,2m,,4s2,n,2,n,2,m
+418,1,,,135,D4h^13,-P 4c 2ab,P 4_2/m b c,P 4_2/m 2_1/b 2/c,,P,4s2m,2s1b,2c,,4s2,m,2s1,b,2,c
+419,1,,,136,D4h^14,-P 4n 2n,P 4_2/m n m,P 4_2/m 2_1/n 2/m,,P,4s2m,2s1n,2m,,4s2,m,2s1,n,2,m
+420,1,1,,137,D4h^15,P 4n 2n -1n,P 4_2/n m c,P 4_2/n 2_1/m 2/c,,P,4s2n,2s1m,2c,,4s2,n,2s1,m,2,c
+421,2,2,,137,D4h^15,-P 4ac 2a,P 4_2/n m c,P 4_2/n 2_1/m 2/c,,P,4s2n,2s1m,2c,,4s2,n,2s1,m,2,c
+422,1,1,,138,D4h^16,P 4n 2ab -1n,P 4_2/n c m,P 4_2/n 2_1/c 2/m,,P,4s2n,2s1c,2m,,4s2,n,2s1,c,2,m
+423,2,2,,138,D4h^16,-P 4ac 2ac,P 4_2/n c m,P 4_2/n 2_1/c 2/m,,P,4s2n,2s1c,2m,,4s2,n,2s1,c,2,m
+424,1,,,139,D4h^17,-I 4 2,I 4/m m m,I 4/m 2/m 2/m,,I,4m,2m,2m,,4,m,2,m,2,m
+425,1,,,140,D4h^18,-I 4 2c,I 4/m c m,I 4/m 2/c 2/m,,I,4m,2c,2m,,4,m,2,c,2,m
+426,1,1,,141,D4h^19,I 4bw 2bw -1bw,I 4_1/a m d,I 4_1/a 2/m 2/d,,I,4s1a,2m,2d,,4s1,a,2,m,2,d
+427,2,2,,141,D4h^19,-I 4bd 2,I 4_1/a m d,I 4_1/a 2/m 2/d,,I,4s1a,2m,2d,,4s1,a,2,m,2,d
+428,1,1,,142,D4h^20,I 4bw 2aw -1bw,I 4_1/a c d,I 4_1/a 2/c 2/d,,I,4s1a,2c,2d,,4s1,a,2,c,2,d
+429,2,2,,142,D4h^20,-I 4bd 2c,I 4_1/a c d,I 4_1/a 2/c 2/d,,I,4s1a,2c,2d,,4s1,a,2,c,2,d
+430,1,,,143,C3^1,P 3,P 3,P 3,,P,3,1,1,,3,,1,,1,
+431,1,,,144,C3^2,P 31,P 3_1,P 3_1,,P,3s1,1,1,,3s1,,1,,1,
+432,1,,,145,C3^3,P 32,P 3_2,P 3_2,,P,3s2,1,1,,3s2,,1,,1,
+433,1,H,,146,C3^4,R 3,R 3,R 3,,R,3,1,1,,3,,1,,1,
+434,2,R,,146,C3^4,P 3*,R 3,R 3,,R,3,1,1,,3,,1,,1,
+435,1,,,147,C3i^1,-P 3,P -3,P -3,,P,-3,1,1,,-3,,1,,1,
+436,1,H,,148,C3i^2,-R 3,R -3,R -3,,R,-3,1,1,,-3,,1,,1,
+437,2,R,,148,C3i^2,-P 3*,R -3,R -3,,R,-3,1,1,,-3,,1,,1,
+438,1,,,149,D3^1,P 3 2,P 3 1 2,P 3 1 2,,P,3,1,2,,3,,1,,2,
+439,1,,,150,D3^2,P 3 2=,P 3 2 1,P 3 2 1,,P,3,2,1,,3,,2,,1,
+440,1,,,151,D3^3,P 31 2c (0 0 1),P 3_1 1 2,P 3_1 1 2,,P,3s1,1,2,,3s1,,1,,2,
+441,1,,,152,D3^4,P 31 2=,P 3_1 2 1,P 3_1 2 1,,P,3s1,2,1,,3s1,,2,,1,
+442,1,,,153,D3^5,P 32 2c (0 0 -1),P 3_2 1 2,P 3_2 1 2,,P,3s2,1,2,,3s2,,1,,2,
+443,1,,,154,D3^6,P 32 2=,P 3_2 2 1,P 3_2 2 1,,P,3s2,2,1,,3s2,,2,,1,
+444,1,H,,155,D3^7,R 3 2=,R 3 2,R 3 2,,R,3,2,1,,3,,2,,1,
+445,2,R,,155,D3^7,P 3* 2,R 3 2,R 3 2,,R,3,2,1,,3,,2,,1,
+446,1,,,156,C3v^1,P 3 -2=,P 3 m 1,P 3 m 1,,P,3,m,1,,3,,,m,1,
+447,1,,,157,C3v^2,P 3 -2,P 3 1 m,P 3 1 m,,P,3,1,m,,3,,1,,,m
+448,1,,,158,C3v^3,P 3 -2=c,P 3 c 1,P 3 c 1,,P,3,c,1,,3,,,c,1,
+449,1,,,159,C3v^4,P 3 -2c,P 3 1 c,P 3 1 c,,P,3,1,c,,3,,1,,,c
+450,1,H,,160,C3v^5,R 3 -2=,R 3 m,R 3 m,,R,3,m,1,,3,,,m,1,
+451,2,R,,160,C3v^5,P 3* -2,R 3 m,R 3 m,,R,3,m,1,,3,,,m,1,
+452,1,H,,161,C3v^6,R 3 -2=c,R 3 c,R 3 c,,R,3,c,1,,3,,,c,1,
+453,2,R,,161,C3v^6,P 3* -2n,R 3 c,R 3 c,,R,3,c,1,,3,,,c,1,
+454,1,,,162,D3d^1,-P 3 2,P -3 1 m,P -3 1 2/m,,P,-3,1,2m,,-3,,1,,2,m
+455,1,,,163,D3d^2,-P 3 2c,P -3 1 c,P -3 1 2/c,,P,-3,1,2c,,-3,,1,,2,c
+456,1,,,164,D3d^3,-P 3 2=,P -3 m 1,P -3 2/m 1,,P,-3,2m,1,,-3,,2,m,1,
+457,1,,,165,D3d^4,-P 3 2=c,P -3 c 1,P -3 2/c 1,,P,-3,2c,1,,-3,,2,c,1,
+458,1,H,,166,D3d^5,-R 3 2=,R -3 m,R -3 2/m,,R,-3,2m,1,,-3,,2,m,1,
+459,2,R,,166,D3d^5,-P 3* 2,R -3 m,R -3 2/m,,R,-3,2m,1,,-3,,2,m,1,
+460,1,H,,167,D3d^6,-R 3 2=c,R -3 c,R -3 2/c,,R,-3,2c,1,,-3,,2,c,1,
+461,2,R,,167,D3d^6,-P 3* 2n,R -3 c,R -3 2/c,,R,-3,2c,1,,-3,,2,c,1,
+462,1,,,168,C6^1,P 6,P 6,P 6,,P,6,1,1,,6,,1,,1,
+463,1,,,169,C6^2,P 61,P 6_1,P 6_1,,P,6s1,1,1,,6s1,,1,,1,
+464,1,,,170,C6^3,P 65,P 6_5,P 6_5,,P,6s5,1,1,,6s5,,1,,1,
+465,1,,,171,C6^4,P 62,P 6_2,P 6_2,,P,6s2,1,1,,6s2,,1,,1,
+466,1,,,172,C6^5,P 64,P 6_4,P 6_4,,P,6s4,1,1,,6s4,,1,,1,
+467,1,,,173,C6^6,P 6c,P 6_3,P 6_3,,P,6s3,1,1,,6s3,,1,,1,
+468,1,,,174,C3h^1,P -6,P -6,P -6,,P,-6,1,1,,-6,,1,,1,
+469,1,,,175,C6h^1,-P 6,P 6/m,P 6/m,,P,6m,1,1,,6,m,1,,1,
+470,1,,,176,C6h^2,-P 6c,P 6_3/m,P 6_3/m,,P,6s3m,1,1,,6s3,m,1,,1,
+471,1,,,177,D6^1,P 6 2,P 6 2 2,P 6 2 2,,P,6,2,2,,6,,2,,2,
+472,1,,,178,D6^2,P 61 2 (0 0 -1),P 6_1 2 2,P 6_1 2 2,,P,6s1,2,2,,6s1,,2,,2,
+473,1,,,179,D6^3,P 65 2 (0 0 1),P 6_5 2 2,P 6_5 2 2,,P,6s5,2,2,,6s5,,2,,2,
+474,1,,,180,D6^4,P 62 2c (0 0 1),P 6_2 2 2,P 6_2 2 2,,P,6s2,2,2,,6s2,,2,,2,
+475,1,,,181,D6^5,P 64 2c (0 0 -1),P 6_4 2 2,P 6_4 2 2,,P,6s4,2,2,,6s4,,2,,2,
+476,1,,,182,D6^6,P 6c 2c,P 6_3 2 2,P 6_3 2 2,,P,6s3,2,2,,6s3,,2,,2,
+477,1,,,183,C6v^1,P 6 -2,P 6 m m,P 6 m m,,P,6,m,m,,6,,,m,,m
+478,1,,,184,C6v^2,P 6 -2c,P 6 c c,P 6 c c,,P,6,c,c,,6,,,c,,c
+479,1,,,185,C6v^3,P 6c -2,P 6_3 c m,P 6_3 c m,,P,6s3,c,m,,6s3,,,c,,m
+480,1,,,186,C6v^4,P 6c -2c,P 6_3 m c,P 6_3 m c,,P,6s3,m,c,,6s3,,,m,,c
+481,1,,,187,D3h^1,P -6 2,P -6 m 2,P -6 m 2,,P,-6,m,2,,-6,,,m,2,
+482,1,,,188,D3h^2,P -6c 2,P -6 c 2,P -6 c 2,,P,-6,c,2,,-6,,,c,2,
+483,1,,,189,D3h^3,P -6 -2,P -6 2 m,P -6 2 m,,P,-6,2,m,,-6,,2,,,m
+484,1,,,190,D3h^4,P -6c -2c,P -6 2 c,P -6 2 c,,P,-6,2,c,,-6,,2,,,c
+485,1,,,191,D6h^1,-P 6 2,P 6/m m m,P 6/m 2/m 2/m,,P,6m,2m,2m,,6,m,2,m,2,m
+486,1,,,192,D6h^2,-P 6 2c,P 6/m c c,P 6/m 2/c 2/c,,P,6m,2c,2c,,6,m,2,c,2,c
+487,1,,,193,D6h^3,-P 6c 2,P 6_3/m c m,P 6_3/m 2/c 2/m,,P,6s3m,2c,2m,,6s3,m,2,c,2,m
+488,1,,,194,D6h^4,-P 6c 2c,P 6_3/m m c,P 6_3/m 2/m 2/c,,P,6s3m,2m,2c,,6s3,m,2,m,2,c
+489,1,,,195,T^1,P 2 2 3,P 2 3,P 2 3,,P,2,3,1,,2,,3,,1,
+490,1,,,196,T^2,F 2 2 3,F 2 3,F 2 3,,F,2,3,1,,2,,3,,1,
+491,1,,,197,T^3,I 2 2 3,I 2 3,I 2 3,,I,2,3,1,,2,,3,,1,
+492,1,,,198,T^4,P 2ac 2ab 3,P 2_1 3,P 2_1 3,,P,2s1,3,1,,2s1,,3,,1,
+493,1,,,199,T^5,I 2b 2c 3,I 2_1 3,I 2_1 3,,I,2s1,3,1,,2s1,,3,,1,
+494,1,,,200,Th^1,-P 2 2 3,P m 3,P 2/m -3,,P,2m,-3,1,,2,m,-3,,1,
+495,1,1,,201,Th^2,P 2 2 3 -1n,P n 3,P 2/n -3,,P,2n,-3,1,,2,n,-3,,1,
+496,2,2,,201,Th^2,-P 2ab 2bc 3,P n 3,P 2/n -3,,P,2n,-3,1,,2,n,-3,,1,
+497,1,,,202,Th^3,-F 2 2 3,F m 3,F 2/m -3,,F,2m,-3,1,,2,m,-3,,1,
+498,1,1,,203,Th^4,F 2 2 3 -1d,F d 3,F 2/d -3,,F,2d,-3,1,,2,d,-3,,1,
+499,2,2,,203,Th^4,-F 2uv 2vw 3,F d 3,F 2/d -3,,F,2d,-3,1,,2,d,-3,,1,
+500,1,,,204,Th^5,-I 2 2 3,I m 3,I 2/m -3,,I,2m,-3,1,,2,m,-3,,1,
+501,1,,,205,Th^6,-P 2ac 2ab 3,P a 3,P 2_1/a -3,,P,2s1a,-3,1,,2s1,a,-3,,1,
+502,1,,,206,Th^7,-I 2b 2c 3,I a 3,I 2_1/a -3,,I,2s1a,-3,1,,2s1,a,-3,,1,
+503,1,,,207,O^1,P 4 2 3,P 4 3 2,P 4 3 2,,P,4,3,2,,4,,3,,2,
+504,1,,,208,O^2,P 4n 2 3,P 4_2 3 2,P 4_2 3 2,,P,4s2,3,2,,4s2,,3,,2,
+505,1,,,209,O^3,F 4 2 3,F 4 3 2,F 4 3 2,,F,4,3,2,,4,,3,,2,
+506,1,,,210,O^4,F 4d 2 3,F 4_1 3 2,F 4_1 3 2,,F,4s1,3,2,,4s1,,3,,2,
+507,1,,,211,O^5,I 4 2 3,I 4 3 2,I 4 3 2,,I,4,3,2,,4,,3,,2,
+508,1,,,212,O^6,P 4acd 2ab 3,P 4_3 3 2,P 4_3 3 2,,P,4s3,3,2,,4s3,,3,,2,
+509,1,,,213,O^7,P 4bd 2ab 3,P 4_1 3 2,P 4_1 3 2,,P,4s1,3,2,,4s1,,3,,2,
+510,1,,,214,O^8,I 4bd 2c 3,I 4_1 3 2,I 4_1 3 2,,I,4s1,3,2,,4s1,,3,,2,
+511,1,,,215,Td^1,P -4 2 3,P -4 3 m,P -4 3 m,,P,-4,3,m,,-4,,3,,,m
+512,1,,,216,Td^2,F -4 2 3,F -4 3 m,F -4 3 m,,F,-4,3,m,,-4,,3,,,m
+513,1,,,217,Td^3,I -4 2 3,I -4 3 m,I -4 3 m,,I,-4,3,m,,-4,,3,,,m
+514,1,,,218,Td^4,P -4n 2 3,P -4 3 n,P -4 3 n,,P,-4,3,n,,-4,,3,,,n
+515,1,,,219,Td^5,F -4c 2 3,F -4 3 c,F -4 3 c,,F,-4,3,c,,-4,,3,,,c
+516,1,,,220,Td^6,I -4bd 2c 3,I -4 3 d,I -4 3 d,,I,-4,3,d,,-4,,3,,,d
+517,1,,,221,Oh^1,-P 4 2 3,P m -3 m,P 4/m -3 2/m,,P,4m,-3,2m,,4,m,-3,,2,m
+518,1,1,,222,Oh^2,P 4 2 3 -1n,P n -3 n,P 4/n -3 2/n,,P,4n,-3,2n,,4,n,-3,,2,n
+519,2,2,,222,Oh^2,-P 4a 2bc 3,P n -3 n,P 4/n -3 2/n,,P,4n,-3,2n,,4,n,-3,,2,n
+520,1,,,223,Oh^3,-P 4n 2 3,P m -3 n,P 4_2/m -3 2/n,,P,4s2m,-3,2n,,4s2,m,-3,,2,n
+521,1,1,,224,Oh^4,P 4n 2 3 -1n,P n -3 m,P 4_2/n -3 2/m,,P,4s2n,-3,2m,,4s2,n,-3,,2,m
+522,2,2,,224,Oh^4,-P 4bc 2bc 3,P n -3 m,P 4_2/n -3 2/m,,P,4s2n,-3,2m,,4s2,n,-3,,2,m
+523,1,,,225,Oh^5,-F 4 2 3,F m -3 m,F 4/m -3 2/m,,F,4m,-3,2m,,4,m,-3,,2,m
+524,1,,,226,Oh^6,-F 4c 2 3,F m -3 c,F 4/m -3 2/c,,F,4m,-3,2c,,4,m,-3,,2,c
+525,1,1,,227,Oh^7,F 4d 2 3 -1d,F d -3 m,F 4_1/d -3 2/m,,F,4s1d,-3,2m,,4s1,d,-3,,2,m
+526,2,2,,227,Oh^7,-F 4vw 2vw 3,F d -3 m,F 4_1/d -3 2/m,,F,4s1d,-3,2m,,4s1,d,-3,,2,m
+527,1,1,,228,Oh^8,F 4d 2 3 -1cd,F d -3 c,F 4_1/d -3 2/c,,F,4s1d,-3,2c,,4s1,d,-3,,2,c
+528,2,2,,228,Oh^8,-F 4cvw 2vw 3,F d -3 c,F 4_1/d -3 2/c,,F,4s1d,-3,2c,,4s1,d,-3,,2,c
+529,1,,,229,Oh^9,-I 4 2 3,I m -3 m,I 4/m -3 2/m,,I,4m,-3,2m,,4,m,-3,,2,m
+530,1,,,230,Oh^10,-I 4bd 2c 3,I a -3 d,I 4_1/a -3 2/d,,I,4s1a,-3,2d,,4s1,a,-3,,2,d
diff --git a/depcomp b/depcomp
deleted file mode 100755
index 25a39e6..0000000
--- a/depcomp
+++ /dev/null
@@ -1,708 +0,0 @@
-#! /bin/sh
-# depcomp - compile a program generating dependencies as side-effects
-
-scriptversion=2012-03-27.16; # UTC
-
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Alexandre Oliva <oliva at dcc.unicamp.br>.
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: depcomp [--help] [--version] PROGRAM [ARGS]
-
-Run PROGRAMS ARGS to compile a file, generating dependencies
-as side-effects.
-
-Environment variables:
- depmode Dependency tracking mode.
- source Source file read by 'PROGRAMS ARGS'.
- object Object file output by 'PROGRAMS ARGS'.
- DEPDIR directory where to store dependencies.
- depfile Dependency file to output.
- tmpdepfile Temporary file to use when outputting dependencies.
- libtool Whether libtool is used (yes/no).
-
-Report bugs to <bug-automake at gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "depcomp $scriptversion"
- exit $?
- ;;
-esac
-
-# A tabulation character.
-tab=' '
-# A newline character.
-nl='
-'
-
-if test -z "$depmode" || test -z "$source" || test -z "$object"; then
- echo "depcomp: Variables source, object and depmode must be set" 1>&2
- exit 1
-fi
-
-# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
-depfile=${depfile-`echo "$object" |
- sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Some modes work just like other modes, but use different flags. We
-# parameterize here, but still list the modes in the big case below,
-# to make depend.m4 easier to write. Note that we *cannot* use a case
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
- # HP compiler uses -M and no extra arg.
- gccflag=-M
- depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
-fi
-
-cygpath_u="cygpath -u -f -"
-if test "$depmode" = msvcmsys; then
- # This is just like msvisualcpp but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvisualcpp
-fi
-
-if test "$depmode" = msvc7msys; then
- # This is just like msvc7 but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvc7
-fi
-
-if test "$depmode" = xlc; then
- # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
- gccflag=-qmakedep=gcc,-MF
- depmode=gcc
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want. Yay! Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff. Hmm.
-## Unfortunately, FreeBSD c89 acceptance of flags depends upon
-## the command line argument order; so add the flags where they
-## appear in depend2.am. Note that the slowdown incurred here
-## affects only configure: in makefiles, %FASTDEP% shortcuts this.
- for arg
- do
- case $arg in
- -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
- *) set fnord "$@" "$arg" ;;
- esac
- shift # fnord
- shift # $arg
- done
- "$@"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- mv "$tmpdepfile" "$depfile"
- ;;
-
-gcc)
-## There are various ways to get dependency output from gcc. Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-## up in a subdir. Having to rename by hand is ugly.
-## (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -MM, not -M (despite what the docs say).
-## - Using -M directly means running the compiler twice (even worse
-## than renaming).
- if test -z "$gccflag"; then
- gccflag=-MD,
- fi
- "$@" -Wp,"$gccflag$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
- sed -e 's/^[^:]*: / /' \
- -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the "deleted header file" problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header). We avoid this by adding
-## dummy dependencies for each header file. Too bad gcc doesn't do
-## this for us directly.
- tr ' ' "$nl" < "$tmpdepfile" |
-## Some versions of gcc put a space before the ':'. On the theory
-## that the space means something, we add a space to the output as
-## well. hp depmode also adds that space, but also prefixes the VPATH
-## to the object. Take care to not repeat it in the output.
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
-
- # Clip off the initial element (the dependent). Don't try to be
- # clever and replace this with sed code, as IRIX sed won't handle
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like '#:fec' to the end of the
- # dependency line.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
- tr "$nl" ' ' >> "$depfile"
- echo >> "$depfile"
-
- # The second pass generates a dummy entry for each header file.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-xlc)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-aix)
- # The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. In older versions, this file always lives in the
- # current directory. Also, the AIX compiler puts '$object:' at the
- # start of each line; $object doesn't have directory information.
- # Version 6 uses the directory in both cases.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$base.u
- tmpdepfile3=$dir.libs/$base.u
- "$@" -Wc,-M
- else
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$dir$base.u
- tmpdepfile3=$dir$base.u
- "$@" -M
- fi
- stat=$?
-
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- # Each line is of the form 'foo.o: dependent.h'.
- # Do two passes, one to just change these to
- # '$object: dependent.h' and one to simply 'dependent.h:'.
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-icc)
- # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
- # However on
- # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
- # ICC 7.0 will fill foo.d with something like
- # foo.o: sub/foo.c
- # foo.o: sub/foo.h
- # which is wrong. We want
- # sub/foo.o: sub/foo.c
- # sub/foo.o: sub/foo.h
- # sub/foo.c:
- # sub/foo.h:
- # ICC 7.1 will output
- # foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using '\':
- # foo.o: sub/foo.c ... \
- # sub/foo.h ... \
- # ...
- # tcc 0.9.26 (FIXME still under development at the moment of writing)
- # will emit a similar output, but also prepend the continuation lines
- # with horizontal tabulation characters.
- "$@" -MD -MF "$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- # Each line is of the form 'foo.o: dependent.h',
- # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
- # Do two passes, one to just change these to
- # '$object: dependent.h' and one to simply 'dependent.h:'.
- sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \
- < "$tmpdepfile" > "$depfile"
- sed '
- s/[ '"$tab"'][ '"$tab"']*/ /g
- s/^ *//
- s/ *\\*$//
- s/^[^:]*: *//
- /^$/d
- /:$/d
- s/$/ :/
- ' < "$tmpdepfile" >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp2)
- # The "hp" stanza above does not work with aCC (C++) and HP's ia64
- # compilers, which have integrated preprocessors. The correct option
- # to use with these is +Maked; it writes dependencies to a file named
- # 'foo.d', which lands next to the object file, wherever that
- # happens to be.
- # Much of this is similar to the tru64 case; see comments there.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir.libs/$base.d
- "$@" -Wc,+Maked
- else
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir$base.d
- "$@" +Maked
- fi
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
- # Add 'dependent.h:' lines.
- sed -ne '2,${
- s/^ *//
- s/ \\*$//
- s/$/:/
- p
- }' "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile" "$tmpdepfile2"
- ;;
-
-tru64)
- # The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in 'foo.d' instead, so we check for that too.
- # Subdirectories are respected.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
- if test "$libtool" = yes; then
- # With Tru64 cc, shared objects can also be used to make a
- # static library. This mechanism is used in libtool 1.4 series to
- # handle both shared and static libraries in a single compilation.
- # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
- #
- # With libtool 1.5 this exception was removed, and libtool now
- # generates 2 separate objects for the 2 libraries. These two
- # compilations output dependencies in $dir.libs/$base.o.d and
- # in $dir$base.o.d. We have to check for both files, because
- # one of the two compilations can be disabled. We should prefer
- # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
- # automatically cleaned when .libs/ is deleted, while ignoring
- # the former would cause a distcleancheck panic.
- tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
- tmpdepfile2=$dir$base.o.d # libtool 1.5
- tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
- tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
- "$@" -Wc,-MD
- else
- tmpdepfile1=$dir$base.o.d
- tmpdepfile2=$dir$base.d
- tmpdepfile3=$dir$base.d
- tmpdepfile4=$dir$base.d
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-msvc7)
- if test "$libtool" = yes; then
- showIncludes=-Wc,-showIncludes
- else
- showIncludes=-showIncludes
- fi
- "$@" $showIncludes > "$tmpdepfile"
- stat=$?
- grep -v '^Note: including file: ' "$tmpdepfile"
- if test "$stat" = 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- # The first sed program below extracts the file names and escapes
- # backslashes for cygpath. The second sed program outputs the file
- # name when reading, but also accumulates all include files in the
- # hold buffer in order to output them again at the end. This only
- # works with sed implementations that can handle large buffers.
- sed < "$tmpdepfile" -n '
-/^Note: including file: *\(.*\)/ {
- s//\1/
- s/\\/\\\\/g
- p
-}' | $cygpath_u | sort -u | sed -n '
-s/ /\\ /g
-s/\(.*\)/'"$tab"'\1 \\/p
-s/.\(.*\) \\/\1:/
-H
-$ {
- s/.*/'"$tab"'/
- G
- p
-}' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvc7msys)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-#nosideeffect)
- # This comment above is used by automake to tell side-effect
- # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout, regardless of -o.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove '-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- test -z "$dashmflag" && dashmflag=-M
- # Require at least two characters before searching for ':'
- # in the target name. This is to cope with DOS-style filenames:
- # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
- "$@" $dashmflag |
- sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- tr ' ' "$nl" < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-dashXmstdout)
- # This case only exists to satisfy depend.m4. It is never actually
- # run, as this mode is specially recognized in the preamble.
- exit 1
- ;;
-
-makedepend)
- "$@" || exit $?
- # Remove any Libtool call
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
- # X makedepend
- shift
- cleared=no eat=no
- for arg
- do
- case $cleared in
- no)
- set ""; shift
- cleared=yes ;;
- esac
- if test $eat = yes; then
- eat=no
- continue
- fi
- case "$arg" in
- -D*|-I*)
- set fnord "$@" "$arg"; shift ;;
- # Strip any option that makedepend may not understand. Remove
- # the object too, otherwise makedepend will parse it as a source file.
- -arch)
- eat=yes ;;
- -*|$object)
- ;;
- *)
- set fnord "$@" "$arg"; shift ;;
- esac
- done
- obj_suffix=`echo "$object" | sed 's/^.*\././'`
- touch "$tmpdepfile"
- ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
- rm -f "$depfile"
- # makedepend may prepend the VPATH from the source file name to the object.
- # No need to regex-escape $object, excess matching of '.' is harmless.
- sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
- sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile" "$tmpdepfile".bak
- ;;
-
-cpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove '-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- "$@" -E |
- sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
- sed '$ s: \\$::' > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- cat < "$tmpdepfile" >> "$depfile"
- sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvisualcpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- IFS=" "
- for arg
- do
- case "$arg" in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
- esac
- done
- "$@" -E 2>/dev/null |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
- echo "$tab" >> "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvcmsys)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-none)
- exec "$@"
- ;;
-
-*)
- echo "Unknown depmode $depmode" 1>&2
- exit 1
- ;;
-esac
-
-exit 0
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/doc/api.rst b/doc/api.rst
new file mode 100644
index 0000000..c15213d
--- /dev/null
+++ b/doc/api.rst
@@ -0,0 +1,732 @@
+C-APIs
+======
+
+.. contents:: List of C-APIs
+ :depth: 3
+ :local:
+
+``spg_get_major_version``, ``spg_get_minor_version``, ``spg_get_micro_version``
+--------------------------------------------------------------------------------
+
+**New in version 1.8.3**
+
+Version number of spglib is obtained. These three functions return
+integers that correspond to spglib version [major].[minor].[micro].
+
+|
+
+``spg_get_error_code`` and ``spg_get_error_message``
+-----------------------------------------------------
+
+**New in version 1.9.5**
+
+These methods may be used to see why spglib failed though error handling
+in spglib is not very sophisticated.
+
+::
+
+ SpglibError spg_get_error_code(void);
+
+::
+
+ char * spg_get_error_message(SpglibError spglib_error);
+
+The ``SpglibError`` type is a enum type as shown below.
+
+::
+
+ typedef enum {
+ SPGLIB_SUCCESS = 0,
+ SPGERR_SPACEGROUP_SEARCH_FAILED,
+ SPGERR_CELL_STANDARDIZATION_FAILED,
+ SPGERR_SYMMETRY_OPERATION_SEARCH_FAILED,
+ SPGERR_ATOMS_TOO_CLOSE,
+ SPGERR_POINTGROUP_NOT_FOUND,
+ SPGERR_NIGGLI_FAILED,
+ SPGERR_DELAUNAY_FAILED,
+ SPGERR_ARRAY_SIZE_SHORTAGE,
+ SPGERR_NONE,
+ } SpglibError;
+
+The usage is as follows::
+
+ SpglibError error;
+ error = spg_get_error_code();
+ printf("%s\n", spg_get_error_message(error));
+
+|
+
+.. _api_spg_get_symmetry:
+
+``spg_get_symmetry``
+---------------------
+
+This function finds a set of representative symmetry operations for
+primitive cells or its extension with lattice translations for
+supercells. 0 is returned if it failed.
+
+::
+
+ int spg_get_symmetry(int rotation[][3][3],
+ double translation[][3],
+ const int max_size,
+ const double lattice[3][3],
+ const double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec);
+
+The operations are stored in ``rotation`` and ``translation``. The
+number of operations is return as the return value. Rotations and
+translations are given in fractional coordinates, and ``rotation[i]``
+and ``translation[i]`` with same index give a symmetry operations,
+i.e., these have to be used together.
+
+As an exceptional case, if a supercell has the basis vectors of the
+lattice that break crsytallographic point group, the crystallographic
+symmetry operations are searched with this broken symmetry, i.e., at
+most the crystallographic point group found in this case is the point
+group of the lattice. For example, this happens for the :math:`2\times
+1\times 1` supercell of a conventional cubic unit cell. This may not
+be understandable in crystallographic sense, but is practically useful
+treatment for research in computational materials science.
+
+|
+
+``spg_get_international``
+--------------------------
+
+Space group type is found and returned in international table symbol
+to ``symbol`` and also as a number (return value). 0 is returned if
+it failed.
+
+::
+
+ int spg_get_international(char symbol[11],
+ const double lattice[3][3],
+ const double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec);
+
+
+|
+
+``spg_get_schoenflies``
+-------------------------
+
+Space group type is found and returned in schoenflies to ``symbol``
+and also as a number (return value). 0 is returned if it failed.
+
+::
+
+ int spg_get_schoenflies(char symbol[7],
+ const double lattice[3][3],
+ const double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec);
+
+
+
+|
+
+``spg_standardize_cell``
+-------------------------
+
+The standardized unit cell (see :ref:`def_standardized_unit_cell`) is
+generated from an input unit cell structure and its space group type
+determined about a symmetry search tolerance. Usually
+``to_primitive=0`` and ``no_idealize=0`` are recommended to set and
+this setting results in the same behavior as ``spg_refine_cell``. 0 is
+returned if it failed.
+
+::
+
+ int spg_standardize_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const int to_primitive,
+ const int no_idealize,
+ const double symprec);
+
+Number of atoms in the found standardized unit (primitive) cell is
+returned.
+
+``to_primitive=1`` is used to create the standardized primitive cell
+with the transformation matricies shown at
+:ref:`def_standardized_primitive_cell`, otherwise ``to_primitive=0``
+must be specified. The found basis vectors and
+atomic point coordinates and types are overwritten in ``lattice``,
+``position``, and ``types``, respectively. Therefore with
+``to_primitive=0``, at a maximum four times larger array size for
+``position`` and ``types`` than the those size of the input unit cell
+is required to store a standardized unit cell with face centring found
+in the case that the input unit cell is a primitive cell.
+
+``no_idealize=1`` disables to idealize lengths and angles of basis
+vectors and positions of atoms according to crystal symmetry. The
+detail of the idealization (``no_idealize=0``) is written at
+:ref:`def_idealize_cell`. ``no_idealize=1`` may be used when we want to
+leave basis vectors and atomic positions in Cartesianl coordinates
+fixed.
+
+|
+
+``spg_find_primitive``
+-----------------------
+
+**Behavior is changed. This function is now a shortcut of**
+``spg_standardize_cell`` **with**
+``to_primitive=1`` **and** ``no_idealize=0``.
+
+A primitive cell is found from an input unit cell. 0 is returned if it
+failed.
+
+::
+
+ int spg_find_primitive(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec);
+
+``lattice``, ``position``, and ``types`` are overwritten. Number of
+atoms in the found primitive cell is returned.
+
+|
+
+``spg_refine_cell``
+--------------------
+
+**This function exists for backward compatibility since it is same as** ``spg_standardize_cell`` **with** ``to_primitive=0`` **and** ``leave_distorted=0``.
+
+The standardized crystal structure is obtained from a non-standard
+crystal structure which may be slightly distorted within a symmetry
+recognition tolerance, or whose primitive vectors are differently
+chosen, etc. 0 is returned if it failed.
+
+::
+
+ int spg_refine_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec);
+
+The calculated standardized lattice and atomic positions overwrites
+``lattice``, ``position``, and ``types``. The number of atoms in the
+standardized unit cell is returned as the return value. When the input
+unit cell is a primitive cell and is the face centring symmetry, the
+number of the atoms returned becomes four times large. Since this
+function does not have any means of checking the array size (memory
+space) of these variables, the array size (memory space) for
+``position`` and ``types`` should be prepared **four times more** than
+those required for the input unit cell in general.
+
+|
+
+.. _api_spg_get_dataset:
+
+``spg_get_dataset`` and ``spg_get_dataset_with_hall_number``
+--------------------------------------------------------------
+
+**Changed in version 1.8.1**
+
+For an input unit cell structure, symmetry operations of the crystal
+are searched. Then they are compared with the crsytallographic
+database and the space group type is determined. The result is
+returned as the ``SpglibDataset`` structure as a dataset. The default
+choice of setting of basis vectors in spglib is explained in the
+manuscript found at http://arxiv.org/abs/1506.01455.
+
+Usage
+^^^^^^
+
+Dataset corresponding to the space group type in the standard setting
+is obtained by ``spg_get_dataset``. If this symmetry search fails,
+``NULL`` is returned in version 1.8.1 or later (spacegroup_number = 0
+is returned in the previous versions). In this function, the other
+crystallographic setting is not obtained.
+
+::
+
+ SpglibDataset * spg_get_dataset(const double lattice[3][3],
+ const double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec);
+
+To specify the other crystallographic choice (setting, origin, axis,
+or cell choice), ``spg_get_dataset_with_hall_number`` is used.
+
+::
+
+ SpglibDataset * spg_get_dataset_with_hall_number(SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const int hall_number,
+ const double symprec)
+
+where ``hall_number`` is used to specify the choice. The possible
+choices and those serial numbers are found at `list of space groups
+(Seto's web site)
+<http://pmsl.planet.sci.kobe-u.ac.jp/~seto/?page_id=37&lang=en>`_.
+The crystal structure has to possess the space-group type of the Hall
+symbol. If the symmetry search fails or the specified ``hall_number``
+is not in the list of Hall symbols for the space group type of the
+crystal structure, ``spacegroup_number`` in the ``SpglibDataset``
+structure is set 0.
+
+Finally, its allocated memory space must be freed by calling
+``spg_free_dataset``.
+
+.. _api_struct_spglibdataset:
+
+Dataset
+^^^^^^^^
+
+**At version 1.9.4, SpglibDataset was modified.** The member
+name ``setting`` is changed to ``choice`` and ``pointgroup_number`` is
+removed.
+
+The dataset is accessible through the C-structure given by
+
+::
+
+ typedef struct {
+ int spacegroup_number;
+ int hall_number;
+ char international_symbol[11];
+ char hall_symbol[17];
+ char choice[6];
+ double transformation_matrix[3][3];
+ double origin_shift[3];
+ int n_operations;
+ int (*rotations)[3][3];
+ double (*translations)[3];
+ int n_atoms;
+ int *wyckoffs;
+ int *equivalent_atoms;
+ int *mapping_to_primitive;
+ int n_std_atoms; /* n_brv_atoms before version 1.8.1 */
+ double std_lattice[3][3]; /* brv_lattice before version 1.8.1 */
+ int *std_types; /* brv_types before version 1.8.1 */
+ double (*std_positions)[3]; /* brv_positions before version 1.8.1 */
+ int *std_mapping_to_primitive;
+ char pointgroup_symbol[6];
+ } SpglibDataset;
+
+**At versions before 1.8.1**, the member names of ``n_std_atoms``,
+``std_lattice``, ``std_types``, and ``std_positions`` were
+``n_brv_atoms``, ``brv_lattice``, ``brv_types``, and
+``brv_positions``, respectively.
+
+.. _api_spg_get_dataset_spacegroup_type:
+
+Space group type
+"""""""""""""""""
+
+``spacegroup_number`` is the space group type number defined in
+International Tables for Crystallography (ITA). ``hall_number`` is the
+serial number between 1 and 530 which are found at `list of space
+groups (Seto's web site)
+<http://pmsl.planet.sci.kobe-u.ac.jp/~seto/?page_id=37&lang=en>`_.
+The (full) Hermann–Mauguin notation of space group type is given by
+``international_symbol``. The Hall symbol is stored in
+``hall_symbol``. The information on unique axis,
+setting or cell choices is found in ``choice``.
+
+Symmetry operations
+"""""""""""""""""""""""
+
+The symmetry operations of the input unit cell are stored in
+``rotations`` and ``translations``. A crystallographic symmetry
+operation :math:`(\boldsymbol{W}, \boldsymbol{w})` is made from a pair
+of rotation :math:`\boldsymbol{W}` and translation
+:math:`\boldsymbol{w}` parts with the same index. Number of symmetry
+operations is given as ``n_operations``. The detailed explanation of
+the values is found at :ref:`api_spg_get_symmetry`.
+
+.. _api_spg_get_dataset_site_symmetry:
+
+Site symmetry
+""""""""""""""
+
+``n_atoms`` is the number of atoms of the input unit
+cell. ``wyckoffs`` gives Wyckoff letters that are assigned to atomic
+positions of the input unit cell. The numbers of 0, 1, 2,
+:math:`\ldots`, correspond to the a, b, c, :math:`\ldots`,
+respectively. Number of elements in ``wyckoffs`` is same as
+``n_atoms``. ``equivalent_atoms`` is a list of atomic indices that map
+to indices of symmetrically independent atoms, where the list index
+corresponds to atomic index of the input crystal structure.
+
+In version 1.10 or later, ``mapping_to_primitive`` is available. This
+gives a list of atomic indices in the primitive cell of the input
+crystal structure, where the same number presents the same atom in the
+primitive cell. By collective the atoms having the same number, a set
+of relative lattice points in the the input crystal structure is
+obtained.
+
+.. _api_origin_shift_and_transformation:
+
+Origin shift and lattice transformation
+""""""""""""""""""""""""""""""""""""""""
+
+**Changed in version 1.8.1**
+
+``transformation_matrix`` and ``origin_shift`` are obtained as a
+result of space-group-type matching under a set of unique axis,
+setting and cell choices. In this matching, basis vectors and atomic
+point coordinates have to be standardized to compare with the database
+of symmetry operations. The basis vectors are transformed to those of
+a standardized unit cell. Atomic point coordinates are shifted so that
+symmetry operations have the standard
+origin. ``transformation_matrix`` (:math:`\boldsymbol{P}`) is the
+matrix to transform the input basis vectors to the standardized basis
+vectors, wihch is represented as
+
+.. math::
+
+ ( \mathbf{a} \; \mathbf{b} \; \mathbf{c} )
+ = ( \mathbf{a}_\mathrm{s} \; \mathbf{b}_\mathrm{s} \; \mathbf{c}_\mathrm{s} ) \boldsymbol{P}
+
+where :math:`\mathbf{a}`, :math:`\mathbf{b}`, and :math:`\mathbf{c}`
+are the input (original) basis vectors, and
+:math:`\mathbf{a}_\mathrm{s}`, :math:`\mathbf{b}_\mathrm{s}`, and
+:math:`\mathbf{c}_\mathrm{s}` are the standardized basis vectors. The
+``origin_shift`` (:math:`\boldsymbol{p}`) is the vector from the
+origin of the standardized coordinate system to the origin of the
+input (original) coordinate system measured in the standardized
+coordinate system. The atomic point shift is measured from the
+standardized unit cell (conventional unit cell) to the original unit
+cell measured in the coordinates of the standardized unit cell. An
+atomic point in the original unit cell :math:`\boldsymbol{x}` (input
+data) is mapped to that in the standardized unit cell
+:math:`\boldsymbol{x}_\mathrm{s}` by
+
+.. math::
+
+ \boldsymbol{x}_\mathrm{s} = \boldsymbol{P}\boldsymbol{x} +
+ \boldsymbol{p} \;\;(\mathrm{mod}\; \mathbf{1}).
+
+In **versions 1.7.x and 1.8 or before**, ``transformation_matrix`` and
+``origin_shift`` are defined as follows:
+
+.. math::
+
+ ( \mathbf{a}_\mathrm{s} \; \mathbf{b}_\mathrm{s} \;
+ \mathbf{c}_\mathrm{s} ) = ( \mathbf{a} \; \mathbf{b} \; \mathbf{c}
+ ) \boldsymbol{P} \;\; \text{and} \;\; \boldsymbol{x}_\mathrm{s} =
+ \boldsymbol{P}^{-1}\boldsymbol{x} - \boldsymbol{p}
+ \;\;(\mathrm{mod}\; \mathbf{1}),
+
+respectively.
+
+Standardized crystal structure
+"""""""""""""""""""""""""""""""
+
+**Changed in version 1.8.1**
+
+The standardized crystal structure corresponding to a Hall symbol is
+stored in ``n_std_atoms``, ``std_lattice``, ``std_types``, and
+``std_positions``.
+
+**At versions 1.7.x and 1.8 or before**, the variable names of the
+members corresponding to those above are ``n_brv_atoms``,
+``brv_lattice``, ``brv_types``, and ``brv_positions``, respectively.
+
+**At versions 1.10 or later**, ``std_mapping_to_primitive`` is
+available. This gives a list of atomic indices in the primitive cell
+of the standardized crystal structure, where the same number presents
+the same atom in the primitive cell. By collective the atoms having
+the same number, a set of relative lattice points in the the
+standardized crystal structure is obtained.
+
+Crystallographic point group
+"""""""""""""""""""""""""""""
+
+**New in version 1.8.1**
+
+``pointgroup_number`` is the serial number of the crystallographic
+point group, which refers `list of space
+groups (Seto's web site)
+<http://pmsl.planet.sci.kobe-u.ac.jp/~seto/?page_id=37&lang=en>`_.
+``pointgroup_symbol`` is the symbol of the crystallographic point
+group in the Hermann–Mauguin notation.
+
+|
+
+``spg_free_dataset``
+---------------------
+
+Allocated memoery space of the C-structure of ``SpglibDataset`` is
+freed by calling ``spg_free_dataset``.
+
+::
+
+ void spg_free_dataset(SpglibDataset *dataset);
+
+|
+
+.. _api_spg_spacegroup_type:
+
+``spg_get_spacegroup_type``
+-----------------------------
+
+**Changed at version 1.9.4: Some members are added and the member name 'setting' is changed to 'choice'.**
+
+This function allows to directly access to the space-group-type
+database in spglib (spg_database.c). To specify the space group type
+with a specific choice, ``hall_number`` is used. The definition of
+``hall_number`` is found at
+:ref:`api_spg_get_dataset_spacegroup_type`.
+``number = 0`` is returned when it failed.
+
+::
+
+ SpglibSpacegroupType spg_get_spacegroup_type(const int hall_number)
+
+``SpglibSpacegroupType`` structure is as follows:
+
+::
+
+ typedef struct {
+ int number;
+ char international_short[11];
+ char international_full[20];
+ char international[32];
+ char schoenflies[7];
+ char hall_symbol[17];
+ char choice[6];
+ char pointgroup_schoenflies[4];
+ char pointgroup_international[6];
+ int arithmetic_crystal_class_number;
+ char arithmetic_crystal_class_symbol[7];
+ } SpglibSpacegroupType;
+
+|
+
+``spg_get_symmetry_from_database``
+-----------------------------------
+
+This function allows to directly access to the space group operations
+in the spglib database (spg_database.c). To specify the space group
+type with a specific choice, ``hall_number`` is used. The definition
+of ``hall_number`` is found at
+:ref:`api_spg_get_dataset_spacegroup_type`. 0 is returned when it
+failed.
+
+::
+
+ int spg_get_symmetry_from_database(int rotations[192][3][3],
+ double translations[192][3],
+ const int hall_number);
+
+The returned value is the number of space group operations. The space
+group operations are stored in ``rotations`` and ``translations``.
+
+|
+
+``spg_get_multiplicity``
+-------------------------
+
+This function returns exact number of symmetry operations. 0 is
+returned when it failed.
+
+::
+
+ int spg_get_multiplicity(const double lattice[3][3],
+ const double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec);
+
+This function may be used in advance to allocate memoery space for
+symmetry operations.
+
+|
+
+``spg_get_symmetry_with_collinear_spin``
+-----------------------------------------
+
+This function finds symmetry operations with collinear polarizations
+(spins) on atoms. Except for the argument of ``const double spins[]``,
+the usage is basically the same as ``spg_get_symmetry``, but as an
+output, ``equivalent_atoms`` are obtained. The size of this array is
+the same of ``num_atom``. See :ref:`api_spg_get_dataset_site_symmetry`
+for the definition ``equivalent_atoms``. 0 is returned when it failed.
+
+::
+
+ int spg_get_symmetry_with_collinear_spin(int rotation[][3][3],
+ double translation[][3],
+ int equivalent_atoms[],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const double spins[],
+ const int num_atom,
+ const double symprec);
+
+
+|
+
+``spg_niggli_reduce``
+----------------------
+
+Niggli reduction is applied to input basis vectors ``lattice`` and the
+reduced basis vectors are overwritten to ``lattice``. 0 is returned if
+it failed.
+
+::
+
+ int spg_niggli_reduce(double lattice[3][3], const double symprec);
+
+The transformation from original basis vectors :math:`( \mathbf{a}
+\; \mathbf{b} \; \mathbf{c} )` to final basis vectors :math:`(
+\mathbf{a}' \; \mathbf{b}' \; \mathbf{c}' )` is achieved by linear
+combination of basis vectors with integer coefficients without
+rotating coordinates. Therefore the transformation matrix is obtained
+by :math:`\boldsymbol{P} = ( \mathbf{a} \; \mathbf{b} \; \mathbf{c} )
+( \mathbf{a}' \; \mathbf{b}' \; \mathbf{c}' )^{-1}` and the matrix
+elements have to be almost integers.
+
+|
+
+``spg_delaunay_reduce``
+------------------------
+
+Delaunay reduction is applied to input basis vectors ``lattice`` and
+the reduced basis vectors are overwritten to ``lattice``. 0 is
+returned if it failed.
+
+::
+
+ int spg_delaunay_reduce(double lattice[3][3], const double symprec);
+
+The transformation from original basis vectors :math:`( \mathbf{a}
+\; \mathbf{b} \; \mathbf{c} )` to final basis vectors :math:`(
+\mathbf{a}' \; \mathbf{b}' \; \mathbf{c}' )` is achieved by linear
+combination of basis vectors with integer coefficients without
+rotating coordinates. Therefore the transformation matrix is obtained
+by :math:`\boldsymbol{P} = ( \mathbf{a} \; \mathbf{b} \; \mathbf{c} )
+( \mathbf{a}' \; \mathbf{b}' \; \mathbf{c}' )^{-1}` and the matrix
+elements have to be almost integers.
+
+
+``spg_get_ir_reciprocal_mesh``
+-------------------------------
+
+Irreducible reciprocal grid points are searched from uniform mesh grid
+points specified by ``mesh`` and ``is_shift``.
+
+::
+
+ int spg_get_ir_reciprocal_mesh(int grid_address[][3],
+ int map[],
+ const int mesh[3],
+ const int is_shift[3],
+ const int is_time_reversal,
+ const double lattice[3][3],
+ const double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec)
+
+``mesh`` stores three integers. Reciprocal primitive vectors are
+divided by the number stored in ``mesh`` with (0,0,0) point
+centering. The center of grid mesh is shifted +1/2 of a grid spacing
+along corresponding reciprocal axis by setting 1 to a ``is_shift``
+element. No grid mesh shift is made if 0 is set for ``is_shift``.
+
+The reducible uniform grid points are returned in fractional coordinates
+as ``grid_address``. A map between reducible and irreducible points are
+returned as ``map`` as in the indices of ``grid_address``. The number of
+the irreducible k-points are returned as the return value. The time
+reversal symmetry is imposed by setting ``is_time_reversal`` 1.
+
+Grid points are stored in the order that runs left most element
+first, e.g. (4x4x4 mesh).::
+
+ [[ 0 0 0]
+ [ 1 0 0]
+ [ 2 0 0]
+ [-1 0 0]
+ [ 0 1 0]
+ [ 1 1 0]
+ [ 2 1 0]
+ [-1 1 0]
+ .... ]
+
+where the first index runs first. k-qpoints are calculated by
+``(grid_address + is_shift / 2) / mesh``. A grid point index is
+recovered from ``grid_address`` by ``numpy.dot(grid_address % mesh,
+[1, mesh[0], mesh[0] * mesh[1]])`` in Python-numpy notation, where
+``%`` always returns non-negative integers. The order of
+``grid_address`` can be changed so that the last index runs first by
+setting the macro ``GRID_ORDER_XYZ`` in ``kpoint.c``. In this case the
+grid point index is recovered by ``numpy.dot(grid_address % mesh,
+[mesh[2] * mesh[1], mesh[2], 1])``.
+
+|
+
+``spg_get_stabilized_reciprocal_mesh``
+---------------------------------------
+
+The irreducible k-points are searched from unique k-point mesh grids
+from direct (real space) basis vectors and a set of rotation parts of
+symmetry operations in direct space with one or multiple
+stabilizers.
+
+::
+
+ int spg_get_stabilized_reciprocal_mesh(int grid_address[][3],
+ int map[],
+ const int mesh[3],
+ const int is_shift[3],
+ const int is_time_reversal,
+ const int num_rot,
+ const int rotations[][3][3],
+ const int num_q,
+ const double qpoints[][3])
+
+The stabilizers are written in fractional coordinates. Number of the
+stabilizers are given by ``num_q``. Symmetrically equivalent k-points
+(stars) in fractional coordinates are stored in ``map`` as indices of
+``grid_address``. The number of reduced k-points with the stabilizers
+are returned as the return value.
+
+This function can be used to obtain all mesh grid points by setting
+``num_rot = 1``, ``rotations = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}``,
+``num_q = 1``, and ``qpoints = {0, 0, 0}``.
+
+|
+
+``spg_get_hall_number_from_symmetry``
+--------------------------------------
+
+**experimental**
+
+``hall_number`` is obtained from the set of symmetry operations. The
+definition of ``hall_number`` is found at
+:ref:`api_spg_get_dataset_spacegroup_type` and the corresponding
+space-group-type information is obtained through
+:ref:`api_spg_spacegroup_type`.
+
+This is expected to work well for the set of symmetry operations whose
+distortion is small. The aim of making this feature is to find
+space-group-type for the set of symmetry operations given by the other
+source than spglib. ``symprec`` is in the length of the fractional
+coordinates and should be small like ``1e-5``.
+
+::
+
+ int spg_get_hall_number_from_symmetry(SPGCONST int rotation[][3][3],
+ SPGCONST double translation[][3],
+ const int num_operations,
+ const double symprec)
diff --git a/doc/change-of-basis.ai b/doc/change-of-basis.ai
new file mode 100644
index 0000000..6f10500
--- /dev/null
+++ b/doc/change-of-basis.ai
@@ -0,0 +1,4852 @@
+%PDF-1.5
%����
+1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[6 0 R 38 0 R 72 0 R]/Order 73 0 R/RBGroups[]>>/OCGs[6 0 R 38 0 R 72 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 50860/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">change-of-basis</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/">
+ <xmp:MetadataDate>2015-07-06T23:53:24+09:00</xmp:MetadataDate>
+ <xmp:ModifyDate>2015-07-06T23:53:24+09:00</xmp:ModifyDate>
+ <xmp:CreateDate>2015-07-06T22:35:09+09:00</xmp:CreateDate>
+ <xmp:CreatorTool>Adobe Illustrator CS6 (Windows)</xmp:CreatorTool>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>168</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAqAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQV [...]
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
+ xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#">
+ <xmpMM:InstanceID>uuid:1b8ecf17-51c3-40f3-a749-e4740fc5b439</xmpMM:InstanceID>
+ <xmpMM:DocumentID>xmp.did:6ED753D1E323E511B522A7D76703491A</xmpMM:DocumentID>
+ <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID>
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DerivedFrom rdf:parseType="Resource">
+ <stRef:instanceID>uuid:46a98622-f87f-704a-a86a-73dd28eea131</stRef:instanceID>
+ <stRef:documentID>xmp.did:A4D5BD7DC365E111835FF2FC000FBA2B</stRef:documentID>
+ <stRef:originalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</stRef:originalDocumentID>
+ <stRef:renditionClass>proof:pdf</stRef:renditionClass>
+ </xmpMM:DerivedFrom>
+ <xmpMM:History>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:6ED753D1E323E511B522A7D76703491A</stEvt:instanceID>
+ <stEvt:when>2015-07-06T22:35:08+09:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS6 (Windows)</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpMM:History>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/">
+ <illustrator:Type>Document</illustrator:Type>
+ <illustrator:StartupProfile>Print</illustrator:StartupProfile>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/">
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>210.001652</stDim:w>
+ <stDim:h>296.999959</stDim:h>
+ <stDim:unit>Millimeters</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:Fonts>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>TimesNewRomanPSMT</stFnt:fontName>
+ <stFnt:fontFamily>Times New Roman</stFnt:fontFamily>
+ <stFnt:fontFace>Regular</stFnt:fontFace>
+ <stFnt:fontType>Open Type</stFnt:fontType>
+ <stFnt:versionString>Version 5.20</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>times.ttf</stFnt:fontFileName>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>TimesNewRomanPS-BoldItalicMT</stFnt:fontName>
+ <stFnt:fontFamily>Times New Roman</stFnt:fontFamily>
+ <stFnt:fontFace>Bold Italic</stFnt:fontFace>
+ <stFnt:fontType>Open Type</stFnt:fontType>
+ <stFnt:versionString>Version 5.20</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>timesbi.ttf</stFnt:fontFileName>
+ </rdf:li>
+ </rdf:Bag>
+ </xmpTPg:Fonts>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>初期設定のスウォッチグループ</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ <xmpG:Colorants>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>ホワイト</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>ブラック</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>100.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>CMYK レッド</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>100.000000</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>CMYK イエロー</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>CMYK グリーン</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>100.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>CMYK シアン</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>100.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>CMYK ブルー</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>100.000000</xmpG:cyan>
+ <xmpG:magenta>100.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>CMYK マゼンタ</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>100.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>14.999998</xmpG:cyan>
+ <xmpG:magenta>100.000000</xmpG:magenta>
+ <xmpG:yellow>90.000000</xmpG:yellow>
+ <xmpG:black>10.000002</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>90.000000</xmpG:magenta>
+ <xmpG:yellow>85.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>80.000000</xmpG:magenta>
+ <xmpG:yellow>95.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>50.000000</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>35.000004</xmpG:magenta>
+ <xmpG:yellow>85.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>5.000001</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>90.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>19.999998</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>50.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>75.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>85.000000</xmpG:cyan>
+ <xmpG:magenta>10.000002</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>10.000002</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>90.000000</xmpG:cyan>
+ <xmpG:magenta>30.000002</xmpG:magenta>
+ <xmpG:yellow>95.000000</xmpG:yellow>
+ <xmpG:black>30.000002</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>75.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>75.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>80.000000</xmpG:cyan>
+ <xmpG:magenta>10.000002</xmpG:magenta>
+ <xmpG:yellow>45.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>70.000000</xmpG:cyan>
+ <xmpG:magenta>14.999998</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>85.000000</xmpG:cyan>
+ <xmpG:magenta>50.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>100.000000</xmpG:cyan>
+ <xmpG:magenta>95.000000</xmpG:magenta>
+ <xmpG:yellow>5.000001</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>100.000000</xmpG:cyan>
+ <xmpG:magenta>100.000000</xmpG:magenta>
+ <xmpG:yellow>25.000000</xmpG:yellow>
+ <xmpG:black>25.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>75.000000</xmpG:cyan>
+ <xmpG:magenta>100.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>50.000000</xmpG:cyan>
+ <xmpG:magenta>100.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>35.000004</xmpG:cyan>
+ <xmpG:magenta>100.000000</xmpG:magenta>
+ <xmpG:yellow>35.000004</xmpG:yellow>
+ <xmpG:black>10.000002</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>10.000002</xmpG:cyan>
+ <xmpG:magenta>100.000000</xmpG:magenta>
+ <xmpG:yellow>50.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>95.000000</xmpG:magenta>
+ <xmpG:yellow>19.999998</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>25.000000</xmpG:cyan>
+ <xmpG:magenta>25.000000</xmpG:magenta>
+ <xmpG:yellow>39.999996</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>39.999996</xmpG:cyan>
+ <xmpG:magenta>45.000000</xmpG:magenta>
+ <xmpG:yellow>50.000000</xmpG:yellow>
+ <xmpG:black>5.000001</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>50.000000</xmpG:cyan>
+ <xmpG:magenta>50.000000</xmpG:magenta>
+ <xmpG:yellow>60.000004</xmpG:yellow>
+ <xmpG:black>25.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>55.000000</xmpG:cyan>
+ <xmpG:magenta>60.000004</xmpG:magenta>
+ <xmpG:yellow>65.000000</xmpG:yellow>
+ <xmpG:black>39.999996</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>25.000000</xmpG:cyan>
+ <xmpG:magenta>39.999996</xmpG:magenta>
+ <xmpG:yellow>65.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>30.000002</xmpG:cyan>
+ <xmpG:magenta>50.000000</xmpG:magenta>
+ <xmpG:yellow>75.000000</xmpG:yellow>
+ <xmpG:black>10.000002</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>35.000004</xmpG:cyan>
+ <xmpG:magenta>60.000004</xmpG:magenta>
+ <xmpG:yellow>80.000000</xmpG:yellow>
+ <xmpG:black>25.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>39.999996</xmpG:cyan>
+ <xmpG:magenta>65.000000</xmpG:magenta>
+ <xmpG:yellow>90.000000</xmpG:yellow>
+ <xmpG:black>35.000004</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>39.999996</xmpG:cyan>
+ <xmpG:magenta>70.000000</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>50.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>50.000000</xmpG:cyan>
+ <xmpG:magenta>70.000000</xmpG:magenta>
+ <xmpG:yellow>80.000000</xmpG:yellow>
+ <xmpG:black>70.000000</xmpG:black>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpG:Colorants>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>グレー</xmpG:groupName>
+ <xmpG:groupType>1</xmpG:groupType>
+ <xmpG:Colorants>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>100.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>89.999405</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>79.998795</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>69.999702</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>59.999104</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>50.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>39.999401</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>29.998802</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>19.999701</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>9.999103</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>0.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>4.998803</xmpG:black>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpG:Colorants>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>輝き</xmpG:groupName>
+ <xmpG:groupType>1</xmpG:groupType>
+ <xmpG:Colorants>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>100.000000</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>75.000000</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>0.000000</xmpG:cyan>
+ <xmpG:magenta>10.000002</xmpG:magenta>
+ <xmpG:yellow>95.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>85.000000</xmpG:cyan>
+ <xmpG:magenta>10.000002</xmpG:magenta>
+ <xmpG:yellow>100.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>100.000000</xmpG:cyan>
+ <xmpG:magenta>90.000000</xmpG:magenta>
+ <xmpG:yellow>0.000000</xmpG:yellow>
+ <xmpG:black>0.000000</xmpG:black>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName>
+ <xmpG:mode>CMYK</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:cyan>60.000004</xmpG:cyan>
+ <xmpG:magenta>90.000000</xmpG:magenta>
+ <xmpG:yellow>0.003099</xmpG:yellow>
+ <xmpG:black>0.003099</xmpG:black>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpG:Colorants>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <pdf:Producer>Adobe PDF library 10.01</pdf:Producer>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>
+endstream
endobj
3 0 obj
<</Count 1/Kids[8 0 R]/Type/Pages>>
endobj
8 0 obj
<</ArtBox[112.504 396.159 417.865 592.394]/BleedBox[0.0 0.0 612.288 858.897]/Contents 74 0 R/LastModified(D:20150706235324+09'00')/MediaBox[0.0 0.0 612.288 858.897]/Parent 3 0 R/PieceInfo<</Illustrator 75 0 R>>/Resources<</ColorSpace<</CS0 76 0 R>>/ExtGState<</GS0 77 0 R>>/Font<</C2_0 71 0 R/TT0 69 0 R/TT1 70 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 72 0 R>>>>/Thumb 78 0 R/TrimBox[8.50389 8.50391 603.784 850.394]/Type/Page>>
endobj
74 0 obj
<</Filter/FlateDecode/Length 1018>>stream
+H��W�n1}�W�#����J���'((�x@��P����3^;��� R�J��;3>���j�~�
+x��v�x�o
X�\z�na�d���L�b
"��vA�������5l���5��l�=`���r!T��ea�[�Z)n�$o*���e�*\4i �.����Ѕ�SrW3|1LtY+�>�hg��ڷ���fy
+�P��nU0��rZ���(W��rR��Э
+�6R��[�-�"fI�sE`�+W���S�l�n-]�[���W����)W��[�ui
+[���VcyN7�[�-�9����x�lY��.�"�E�$������^9��5��Eʀ��v��x�#F�^]�
�U��3*ύvL�u/
mT�[fwk
�x���*TT����L�M�"��
�r9q�*�H����TH�� �O�"�5Ky�HW1�8x�^�Y����z:�������5l���5��lY=����������i� y��'�O�?B8��+黌�M��
���D3$mS�x�N'�~�/'�������
�svOZ{�o
X�\zO⦅͒}��(M;;H3kߎ�,]z�j�C�A�p�O���"����WH .��T�r��r� ^S�Q6�.^J���!6�8N� �N
+����s��ګ���y�/��U
�"t�ѓ�郼n�0�h��":���mp�O�]G���V��S�ǐz���(E�{F�_$��-V��ȅ�
��-�IԆ-6e����Me�\���_���ݲ4w�E�-'��Z�9�7�� ��p��`?�
W$���F'Pa:V�� �#N�@V���
D��pz6�F�n� �]Ь7�
�
$)$
��'pX���95�>E[��
S��N�Q�;� �&p��sZ.Cǟ�C���6����� H���ϩ�s!._��G��f�pT�N)���������h��KE۟���w��
��o��g�qjߎn��T+h���\t�
�
$�
�:��N=\jr!H]94"M��7-��
��G
+endstream
endobj
78 0 obj
<</BitsPerComponent 8/ColorSpace 79 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 106/Length 238/Width 75>>stream
+8;Z]_;$t2`%"R:V`[>h10=*#:icSl#1]q$O\il#N+-`X#6:fP%"98FPn'OFcgeoKh
+23aEMcK9/T$<6jXFKFLtYMOVY[uSY^HiM?OG$NUEs0V0GBT]*O9lG6N9\Z\t.6X7q
+p\\:ZnrE%Hk:YZJ:6hZM;H;QH>h(RXE^'L,BZmkZ\f!-`eJ(BP)\pYJ`)OKf52d8d
+#ps:c3U:D'Ys,=U<*%h5(]XO9!.Z/2*rocN`+&~>
+endstream
endobj
79 0 obj
[/Indexed/DeviceRGB 255 80 0 R]
endobj
80 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
+endstream
endobj
72 0 obj
<</Intent 81 0 R/Name(��0�0�0�0� 1)/Type/OCG/Usage 82 0 R>>
endobj
81 0 obj
[/View/Design]
endobj
82 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 16.0)/Subtype/Artwork>>>>
endobj
71 0 obj
<</BaseFont/BFSMBB+TimesNewRomanPSMT/DescendantFonts 83 0 R/Encoding/Identity-H/Subtype/Type0/ToUnicode 84 0 R/Type/Font>>
endobj
69 0 obj
<</BaseFont/DIWYDX+TimesNewRomanPS-BoldItalicMT/Encoding/WinAnsiEncoding/FirstChar 32/FontDescriptor 85 0 R/LastChar 112/Subtype/TrueType/Type/Font/Widths[250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 722 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 500]>>
endobj
70 0 obj
<</BaseFont/ZCTAZF+TimesNewRomanPSMT/Encoding/WinAnsiEncoding/FirstChar 32/FontDescriptor 86 0 R/LastChar 115/Subtype/TrueType/Type/Font/Widths[250 0 0 0 0 0 0 0 0 0 0 564 0 0 0 278 0 500 500 0 0 0 0 0 0 0 0 0 0 564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 389]>>
endobj
86 0 obj
<</Ascent 1007/CapHeight 662/Descent -307/Flags 34/FontBBox[-568 -307 2000 1007]/FontFamily(Times New Roman)/FontFile2 87 0 R/FontName/ZCTAZF+TimesNewRomanPSMT/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 80/Type/FontDescriptor/XHeight 448>>
endobj
87 0 obj
<</Filter/FlateDecode/Length 17066/Length1 43388>>stream
+H��� XW��5=]���鞁�x����n6*��5j� � x��� ����x ����}+��q��8��5��������n�W�^UW���ׯz
@ � !�k��|�y��8���%Ŧ�u��a E ��Ǎ��7t>�=��Z��I�
+L�B�� 7�8��}� �_20>��m��P����|�p?�2�$��I#R.o4H�M�f���b11<U,=G؉I��)�
x-�#�xuHlR�Đ(��� �YJ�����p ���~ʰ���w�
+�C �$�eC���+�H{=Jy�
&Y�cI��:I_����Hm#��
A���TDB�z����`�]� ��+�gɟ�V�^h
|��P�Ǫ���u:_̿^⦤����o
��^P�J�!���T�V�F�Z&��Z�a����u�֫��4lԸI�f�?lѲկ#>j�qd����w���N���w�v��5������?���g��_|�'&}����0pP��Ĥ!�)C�
1r���1c��z�� i��6}��?e|�9%k�ﳧϘ9kvΜ��r�`��y�K�.[^��p��Қ���oظi�۶��Y�k��������G�
;~���gΞ+���
/]�������R�+�v�xT"0��:U�S�V
+��J��Hi��)eI��Y�>P�U�M�1����%��5Y�V
�^C�)�4�t�t��5O0�7/2�d~�TVLJ���C��V�T�)[���Ů<V�)�j�jUmjC���J�P[���h5Y���R��;�"u���"[B,U,V��������mI�̶ZuV�Y����5��������5��
�fѠ�
+ZE-T����µ�ZS-BK�Ҵt-C��fj��m�V���k��s�U�-�ikk������ے�'�ݠ�
+ˊ,����
�n�n�n�����z�����ӗ��r����ob��頳�z��I�R�4B+�
zӤ�R���=}�\C�.�O
��
c�2A�K4
6��aN���O(�U�D���GIS�)G���u��\�,��U�-��K�ռ�J����������^%A�����^���+z�;�E�����i���;)�� �zK/ޖ ���*�U]��&���BЋt�swt_p{<�/[�������yo��BJ �#!u|
X>ȧ��bV�
x�=��|1���M5
K�E��&���wWeW���+���
+p]�.��]�Kr�\x�{[(��J����QX6��X�l����E��a��̲q7F�&��)+r��U�l�kNiai�3ǹ�9p��K�:�:���3��������p�t4w4q4t�qX
5
��?�����w�7}Y���}����bvľܾ�������
n��-v��y�g�O�{Ek.0�7��~^��[^
<_�
)����R=���x�Aΐ��Ε���P!�E����}�Z�E�
�[�0�>���k�
��e�0�:�O��t��r��B�O��o���_֫�hc������(8��y��呂��
�,a)�1I�F�b2�a
+b%��"2�o1O��b2����c,�*�O�
K��qk�q�F?�D<����N�
�?��
����q%����.|�
�`$!C��d
E
+�a8FbFa4�#c1_a
��v�cƋS�D<�C�
�C:�HO2���\�G�4/QNL��BZD�)��ɟ�@h -�s�L�h9�
+*����V�ZK�h=m����6�o�D�4���V�F�i�{���(�*R%
+FnP��.�M��
+e�
�K�h?
��T��a=6Pu�A��0դZd"3
��x���&n�B*Y�J��8���t�N�:KaN��
�y*�
tE�>զ:T�q�.q&O�,����{���<�g�,��9<����<�sQ��y/�E���8���R^�˹�W�W�*^�kx-�����7�&��[��$���x;��\Ļx7�ὼ���>ȇ�0�|��� >ɧ�4��|���
�K}��+C�w~�e�
���/� >�%|�/�e��?�U��vv�uvr)��
�ɷ�6��|��.~��Gt���BsyFgYd��;ߝ���3� �!�$���X��!4A
�k=�uY����B,�+Vp�* �Az
�^C�}�ٳ��̟9Ͻ�<j�ڭ���R�ִ�M��m
[�&�z6�6��6Ŧ�4�n3l�$Hm�#qr@��
��rD��19.'�ew�]ut�]���n�[��^ن��Ͳ�6����6��c�ԕD;֎���+�U��}�N�o؉v���}�N�S�T;�N�ev��ig;�r;;�e�عv^���G��m��}g�f�n�a�v{����`g��.���G�c����.���gv���.�_�ev�]!�$I�KI�I�4I�
ɔ��H�$[r$7V�Amb��~jK�=u����ԉ:S�Jݨ;���ԋzS)���ԏ�� z�� z�
��4���fIcɓ|)�&�T
+������w9%��H���&��J�h:��
�I�h6͡�4�ޢ�����൏��:�.�}ꢺ�.���B]S���WUꆺ�n��Ƚ�D4� ���P5
j@
Ԅx� P[5�:PW�f�� �CH�H����ތ<$S�bh�J�dA6�@.4�<ȗ��B��^�'g䬜��
+� 4�BhEP
%�
Z�mВ~��0�/ßa
���8�������ZG�im�M����V�F��v�A;i�=����~:@�t��a:BG�
�t�~�St���Y:G��]���%�LW�*U�5����LĚOUtkaݤ[X�`]L�jX1`=Lb�1F6l��9da�VL��5��s
�㚘���
9�kq��:\��
'q}n�ɜ©�������#gq6�p.7�<��l�Y܄�r!7�".�n�-�6nɭ�v��1�[�|����|����-���rA.r�荷�<��
w��܅�r7��=�'���\�}�/���<�;�}
��@
��C<���P~��a<����q~�G�%~���?��i~�����y~�G�(~&��
+�`:��
� �`�\�90��[0�����/��*r
N��P>���c�D>�EX"�p��q�����'��z���g�y�����z�^����+��^�W�z��[�v�[�ׇ�1��>���
p.�%�
W�*T�5l���
�X>�%r]��ܔ[R
�p
��܄[P��4h�cpZ#�b��;�n�7���b{숝�;��~8P��`|�'�i|
_�98��X
����)M�7q
+N�2���qndM
t>������.��q9~�_�7�=���:܄[t܆;q/��]�'���KX�UX
����>��O�$�uRz������6�&�����na�Ms�*j���hc�j2�L{��t4�Lg��t5�Lw���4�LoSj������o����d�,�e�
j���c
4C�p�!�tʡc�]���\��pY.�5v��Е��������:�.��+u�� 7�
s���)��}=�_
P��:�su�*�P��CڐB�PB��F�
��ZaBX[
QGcWc�k����X�l�M�Y��V�&��v�!;e�솓���dU�4�&�U�y�"�2�Q
�˃�du0>XL�ݣ2�
�U/��R��Y���~��
�Ku��VX-ApE�%�Z���|+ѧ+VjJ���6�Mns0/8�'X��{���>������
�R�/���O�)>է�t��3}C��g�l��s}G��w�]|c���}�o��B����|o_���"_��������{��f�y V�W�|#��w�o�^~���~���
����6�&�
[`+l�P�
�#p��q8q~W�u)���:M��
��=
���=�'��x�C��h�`W�Q������qn���
���yx���������+z�(��;
<~� QQЙA��Ek
�&b��hL�5
+
�F���S�Ŗ��a�Uc�i�1������F�'�Z�.�Թ�3�F;g�Y�{�;�{ι{'�d�W��.^�鯡&~�ʨGe4�R�T�D}��i��L�2Sf��2�ަ���"���o�7�����nA���h[-�~�m��F^��-2|8r܅���_���:�jHB5�ꅶ
[&�#���zb˳
��@��l�W�xM
�>r-E���.��
��
Ԫ
�;����P<��L�r+����pOki$��3-�#��In�I
C�
+�$��d*p�e��d*�s����6�E��5�S�ڇYa����sx�C/NN��U��
����3�{
X5^�P���+%ů�n@���4
����5�%5jٚ_ͦ!��S\
m
-�ϴ�
����S����
+�Ec��Ũ�x��ZE?�ҷ�A�4��RF_��@癲@%�j#�6�m�*>�v��J�h��6D�4�
p�`
͐�|S?ߊ�E�q���5������p Z�Ke[�څ:����D�r���W=TOuE)J�rx��{��8s`A�ɗ�h�e=��ϱ�*��t
~�C���=N�\
b5Y�T��K;��
*�)`JAv�k��A�������~&�i��ŷ��6�F��q�=�n�.��XeW0�L��\ʳxX�^���\�b��.-yD~�
�u��/��h�5i2X�
��Z���Ct�'�Ӱ��x��"ܐ��s8Wi��
�o����Ȳ���O�
/ѿ��
�Z~����o�?��2\����r����V�M~���5k_�P�����
��X��X0��W9)�!f"�fÿ��\���]
_�R3��
X�)�Xc�V����Ⱥe����}����w�"� �����%
+�,�
��鴸*���r�\�,�ȳi�N�]��v���^���7
�<�><�@d�ǁu��W�$� �'P�����r#rp�w��=�!}
���6ح
d�`�)�ș��#yd
�@� �y
+��+�����/x)����͐l��v��� 1���S8˾��|����
��I����R�)ƉR�,1R'^�CM�
�O���e:a����<(O��hBsj�Z�6I��-Վiǵ3�}=F���@mQ8���7�]^�=������E��v�.��X�nz�n;�/�=�W�y�E����
���r�\)?�g�-i��e�����BqO��I�=��ɕ3i)n���&�h=y�����j���+]�4���zjK��D�s��q�8d�T��r��|^�,���]��<��^��K���H�Z�~�j��� ��D�ȓ�f�,M�
��:t��<Z�ω�܌�����ϣ:~�
+�]`��ļS6�3�#v��x
��|R��7�#'��<^�e��S9�]�3ZȒ3�;���T�Z����A79�YA�����
[?�7"϶I'�R=+�P.j�2���S�G6P��@���B���)�j)�;�[:��b��D
z�4X�����~1ߤ����j�d-8�B�3��!U�,�6��n��c�f6#˿��p�|������6� �
t�yxcS��
+ ��
z
>C���yשZ��g�38S�ZO.�]�Z�i�ڦ��,��v���W�h ��^1IOղ�c�8����E��QG�u�����.����;��
+u�z"
q�P%N�K�<�D܊d+��-�P��:O%�I�pU�9�h�]G�YB���n�6Sd�߾ފ�S�-#�&��7$wpΠ���gef��Ks���MNJL�7�b�������
��գ{���]:w��!�};�Mפ`rz�B�a%�,-�,*J
ޛxP���e�Q��s,��f<=� 3g��̂G3
��p#��Ҝ��4��n���SJʡ��mz
�FH��靠����Q�6,�
�p~���s�s-
�\�kFX��Z�:@� �r�u-��!E8<�-��u�SV���X�Mw�K&x*���%�
wTl�7�i�k�Yi�9���B�����!3FMp5�h�8[�+��S�/�c�YU1�ܒޠ�����
/E�p��ws��?9%���#x����֒�'Gc��^/�a��B���W ��
�˼�/�A#���
�n�� >��V{s�Y��ac"��.��Y�O]�H��Xn�Z�Q���ݧ��K�ӻ����H��%�룰�t��ұӓʌ�c!-4=��>�+=2G!
,c�O�M�)'�7#���s0
?/�-�
+��_ƫ>����s�{~�~�vb���y�qL�L��$%�G
dd�,R��!��� UIR�u����
M�V���&�Z�N8mMҢ��!�ۄ��h�Ц�*c��A��g��3�~��s�����=��s�`���N�K���"J�.A�GJ/��z�1E���
/y�h�/�U-46"t�EQ�u�q����EZ�
K
+v�>�u�+ә@�Æy_-jd7
+�m��X!���DK���ȥ%�z�@rK������<� �.��_���l��Y ����P�{���nL+��G��ݾlT��>�
QPP�.���A��L
��hOd��Sj(c�ӝfA��P4�ʯB�
z�fc���⢦���-
+ft�2����}��f����9��xۘU��3�њ
+�������ij�
+�������uփ�U>�Qz�����bnwD�"��,�����%��^
z���E�NtmJ6LD�ض
�=3�>+�
۞��@��2u���*�he.5��(� O<��Ij.?<��+�\�Q
�))��K< {���xy\���y���)�����ʁ�YM(�`�R��0�p�^�TX�' ��3�X�x�l6���A��Ax��U�^j>��4��O�.���ش4�]aW���C�]z���&@����qn�
b#��@�&�bV,\�(�bJ��C6S���"�F#V�m�!E���)
����F�<�����e� k�9���bZ�����)�2��6��Y���g
���9
e��I�4+��RJ�+���Y��У�p[ؕt���.�[p�0�`?-��
�x`��t
�j�_��J�vL�
�UQ�f����V�RX3˲a6�f������+\M�4D*��%�bW�(ߤ
��[�U�l��[��
+�_�����_���5������V����q���#~�O_���:�{�$Y�V�T��i3���O"�L�#}Gs�(b���l��L�?��M���5W[�����8.r�웢u0�Gc�j�OB��ʲ��
�� wK᮪�7�{�IW������m�5����J�6l{RC
4��k�����>8:�6D�Q���+�o6*�Zc�q\�;���)�m
>ͧ��5ld�C^o��6 o
&M��
�w��͇]��߳}�y����]�e���#�
�
��r������e��[�,>�߶b���ߘ"�eJ}�.�
L�� 3��*��9�(�ŢUٻr�YR�K|`L�S�i��S,��;�s��P�kb���N�!��
�SA�A ����U�����>z�4�j'�G/�1z+ޛ��t�v
+kIx���T�iI�����H������T��ȄɈ��,p�r�B�>�Qg]n_G�2�*U
9sD>.#�q��J��i':���h1UU�
+,�FH�4�I���'[�ś*�[�۟`��|8�'���������N���͛ߺ�v?��� �
�����7�����_^}߾��p{�Ԃ{
���!�By��ڄI��x����Ċ�����`X�A��Ӟ�D1r�n�f
k�����)� ~
�
�# ���ːE�8
�!s%�S���#�e�t�#*F�=��5y0���{��e�f/�����b
���&-ܚ j�K�%5��$5��P�K
?F� ���9f7���X\�9c`H�i�.����*_��9ܧ� h�/�`OBQ% ��p��6�5��%]O`����낄�^M�W�_��#�[���Qk
�13��
��x��"T^#�{y8���|�Q�t���h(궁!�
-�p�D1�0;
�
s],�lE/�O�ӕ~�t��-MO�]Ҵ�p%��9�5X�r���M��#�������OJo��V���ڐM'sI��,��
u��W
W��u���E~[w#~���U�������ϯ>�1:�rչ@.��ye�X�C�Z��n���?Zy9b�a�*w�w��������Tވ�Qgs��U���-ɝɗ^�������٭{��%D���B(A�$益�\���|>
+�@
+(�9��{
p��]q�81V��|H��-xP�R_�e��hUބ�X�+7��Z�f��0
Y�f!+���"�kr, 7��?�ll8��1%�
��),r[A�����h_it.%aL������0虎&G���$|i�RW�p�Y�dD8MwZ��E"u[��a;�lR�xvd�D�x����T�7�e
\Uu���]�
��� �^^6zY�%�PJ�@h�35VA
���
+6�I�D3�e�T@�8�:���iU�V�VZE�A:d����}7}}�������w������|j�E1
�ң\)P7�d��`J^��t�Ww��f�Hz�3��=i)���R$
+6�O�f��~�U�Uo��P'=@k�;��C���j
ۜԜܜҚ�LVGatC]C at ZC6�8�8��=�{
+��:|\Л��hD�%Rp�!���fρQFD0q�Q��A��I������
<�l�hd6?>cdY"�� !�Z�g��F0
����(H��KA��܆�qa/p)�saƀ� �8�:��:ɛ�IN�iC���嬗�-��++�@`���)�����IrsFΆ�Y����~��ޛ16ޕ��Ҿ�j��
+
�<XqG���V����{j
+���_4����J�f�xb�Q��y��xMK�{L������-��zu�{���D'�_���_�<�nŤ���
r�A5
+�ypd
U�b�7���-��%��oE<cl��C��������]T�xʮ���[�оK}���
w�)h��@X ��J�����3��a��z�2Z�
'�VK���,�<�W�R��\�~eJ*�G9}��T�=n~���)��b�Zz��Q
|���
�1hO�:{Yg�9�Q�V�3��C��Q]+!�}
�Ӏ
s�ʆy�^���l�(G�*̻�s0�
W�?u��b_d2�Ś��)Yj��3��b�w�1�����7����
����c�'`]��v
r��K��js�[��O���e���X�b
g(
�� 0�U��H5?���k��
u'H���V�
+�П�ݬ��2�\n��R����^�7�B�:�=�B6�-�WQ��%�
d`�gdQ���9�~�I�Xc&�u~�b~<�/�3�{�j��1��6����D��Dž
c��>��
�=�G� `��6���m#οK��$��>
^w�T
�u�0>
z<�6ö����!��$l��q-Άm���w�v
+t��!�c���G֙}��f�b��%�sBv� '�T���
+���ٶ�d>�>K%(�!_�il��Y�R�P���>aK[�O�#�J#������>�a�<��7W{�f�h�r
�_��7 '�|څ~�>E�[Hv�P�}�5B�0�^�
�׃��QOP���r��+iZ�yA�����2���cɄ�}������Mw��w��4�^��9�������#`�3 �8�ÎE��\��A��i��C3Ա���h_����F��y��C�)��S黎J/�{ɧ�Q�ׇ\=lG�6w�- i���}�eK�S����+�|_��aY��rn��,�����u�.��
��0����0���y�H�������s�8�����X+�I�9�
��G���]tX�2�q�-��L ~�
�#�øo�
;�z}�Y�Ԙ���W�m��̓r���pN�Si(�%ٹ��I;A)�y�O�B����T
n���?�F �e�J����ň{���W�>�G�)�)�Kn����>�Ic�sk�Ii7���1�J�:% �\�Y�&S�VIs0��z<��X]�}r,�F
we [...]
+��{U�d�A9Z�yQ�+|t�r�J�j�r���m�Q�ȗ�ȏ@9�`�
�.r���5��7�|
��b��>���|*b�,�}�
+������>����x����7�g��'�N����
�ޠB�1�A�֧
�v��qNtt�
G�
�H~G��P���h��XRʐߦZ��_�2���F~*��r�G�����,E�>��89�g�;Z��D9��`=�~M�VݴJ9�q��[�y'�F'����srMSޤ�*=x��7e�� @%͔~J��5j�+����ω��&�[�N��s��!��6#�o������:�����y����9�~K͗wR7x^~c�^��uV��u�\z���*،r�/�~�Nm�]�k�<��#
�
��v����}FjGK6��G�e� ]1�0����T��*�i�F��
�M�XO�J.��0/��%#νL�
+����N_�J��1x+�x���r~��ֻUp��@���"Ɒ!#�6�B�J����!��
Q���Ӿ'�?)�#��B|����{�Y]>H�ñ�`�
v�tF��� ��|��3�1�
�����&,���u�
�^_��Q.#gC�$����S���NJ�.�K���ȇ���p9b>;�
+>W����Ǿ����~A�$X���I*�\ y�-�}6Ҧ#��X2Ҙ�(�њ�O�w������{I[
ިS�J/Ǜ���SK4
�� �@^
�#�+A �W���
�f`�&�ٮ&��N�
`�������`����kD�
+�d��p��x�
{�>P�9�:�P_�:곭�P
� ls�3�
���(�q��##��J�~ܪ�g����b�\����8�|���]E����!-.��Y.rQP�*b*4ilSGĂ,r�t�l�d)jd)��j8��i4E�Ao ���{�{��o߽��7��=�;��=�9��?
��>�mr�H�{6�K�`�:8��<ڼ�$��S�Z�B5��hղ!�Y�c��{[��]�8�-�
��Y�k8�
����㒼�[3���qvm�q��G�)!�~���B�|��5,��y.!�=�m�{)�a?NrZ[���vr�]�h��
9u�c^����☨�sqGi/w�\�J���ӟ������2HɎ4;��.m��)��s;ZN��S�$)�i�z�%z���h u�:��-�
��?�!}�Λ+�F��!\@Ϊ����S�q�Z�V��A���kv��Խ�]��a7f��S�o��9�k��v,ho?����s�Y3��� ��[X�|k�{2�A�)��s� [...]
9;Z�uf��Uuم���<0�q�
�2�RY◑
��g$���#Ύ?�y���R�G1u=�*�.�p��
+���B�篖/������
�w�<��I��U���3�"�F�"����2�
R[�9�6;
�b��l^՜�<g��Y��.�����;�5��G�^���y�~��ȥ˥7�s ?���m�z���
�s��5� W���ɹ�M�z����]S����d�Jfڜ��Zs�K�w��i_��ؓ���BV��>������(��o�{��5��@��_� 02xLF�?�q����6�������1�_^_��^@�l�Z�a��
{`���8�F}+��29Xl���)�5��Z���K�Q���=�7u����.���nl��;ٹޗ@��?
+|s�>���V����k�M�7�?�'^��c�F�dl���&w����ErFt�L
�䝗A�/�c�JO8?3��=�G� ��]-=�Ŝ��d����CP/��]�$
U2'����*�
+ū����Cp�{.���"�[��9ڙ���|���=�����<3�ߙ}��>_w�.��&��Ք1i�v@��V�q�=�P�vt�G��Gk�Z����P��Gk�V����
�&��~r�hm�����O~LMC�Դħ��i��a_'����ے]rx�~a���ݪF�g���q?3�6�y�!�.bf4��?��$��M���}s����9m���]�r7��g�V�wb+`�k�ww�wn=�������w��v7b|���˱�7{�
+��}�
��y>�ox �Q�8^����Zc\�W�R�����k�<��%6�
+��(/W-!旑�z�?���ω_��^��`�H�=���w�մ�D�XC�+)C8��������=������Ö���wm��%�����(WڜJ�-���
��Z�͖��?I�p��O������?[-��ҽp
�{9�ޓB�����䝢�dh�
Il���
�M�C���>&u��f_n��i-o��~3<��
����j4�Y�R��X؉�r)ǟj�9��*�7�<�H�X'��>��I�)-��t����6��9U���n>���?��A�:dY�yR�X���
�Y.�R?g5K���`�1��5��N^K�DG�i
+�IS�9��������m�7�d����OTG���):.��|��ӳ���da�K��K.�(3��д��>#���4G�?E� �|���ψy&���=�� []�<��g��S\�w�&�v���gn��O
�Ƿ���?����"O�hL�?1�n蕯SY[�'Z�
�^߿=�֟�Z�0{dZ�
��d;�>�8�X�Z����&�y����ּ��AW_�{McE�6���l��5���5����N�}ݲ��L7���\9��۰�n���nq�j��B�j�<۵��)m��
1�ADz��[p�\���h&q���oFx�
+��M��pZ[DdL�༖������8�+�PQB�e�o��}��8��G��kD�m �� �uMI�=Y�d]��N�M�O������~�/���=���/g�)-��{0�
+o�Q�Y�<�utcϼ/�,����3{��]^�f� 'W[�o�Y��H�
̜����Bolq}��� @�E�����z58
�u%�}/�W�X�[cK��3>0�%
������������$�w2��\�w1�p'|�{[��u���i���3������5��(�-�MNoW�2�~�7��_��
JV��R����������
�;ܛ'g3(ߍ���G�=
�i;�>��,�)F�+϶�Yj���X�D���k����N'u.�e\0MJ�:��(��1��ԡ����ש싳xo�z��H�#�����������^��p'�G�G�W<O����D��7��r;u��ep3t��
��e.�
�(�
+��N��eVa7�
��
�50��rl5v��P���õ������6!��h���L��^þ
evfޑ��
��7��r��{��QzǘP�����S�e�e����g�H�+eL�>���dp�IJ�a��C2&�Pz�K%�L�)
+��=���d3�K
�l9��9b(*��!��� 63+��ϪĊL�Y�q�n�E�#k�v����V�'Vc��m~
's���_zԳ���RD� ��N�}*u_9
��{�!�x=�No��l�k�;�Y�o�$ƽ?�!C��Gf����?6���ow��
��;,�C�{��g0�q���ѻC�e8nQ-5g'
��]lc�j�DM+�����8%���;h!!����*4Vտ*
�V�hUm$*��;sk�$D4Q�������͛ٽ��73��or��e�Y�
�`/�ds��ȼ�{�+
-�8N#Γ�y��<?��Ǩ����E(wSA^m�����} �Z�'��MK9������������~?e���{�
+xg5>�'�8XG���o�g�E�|�?������ޏ\�s�:�A����b�%��'�>��;��*�g"y
�D��p���(�I��o�5"��yV|O��~�O��ѐ�
"�pV�9�$'���o��E��v�U�"�y|
1;G��oy��?��c"��s��������s��=�X=
��yh4g���#���ȶA_�R�Γ���h����w��&ĿA�ɚ�����_��c\�� B?�L8����c���~�uR�s�o���B���\���|�v
����]�>���]�k���a
#�|�N���U�g�
-���-��%�q:�����
���1{)�۾�͆���
�=�{�{�}o�
'��E
�P��~y���߅`@�w'��
���q�f�
��y���7�=���^�?���v��ޱ�p5��Bg �{{
�ῄ��]����
���4Cy�Vq��%���8Bx���'h
+M�� ���P�}�s9�W��l��q��?q�Z"�H$�D"�H$�D"�H$�D"�H$�D"�H$�D"�H$�D"�����t�Bt��H%/U��2�9P&rӏ ��Br;�:PR(��8��6�/(�����m�:쥶�G
�o Rќ�O�m+PU�Vɭm���m
vʶu�}���Q��
�(H�C�`5�FJ@��$mR³�V�\6ÿIDT�&J[�o�j�6�};��R:���u�l@}��Z�z��J��,��f�.��1�����������ް��9 kEr[�}g*a-I�����훒۪��֭��M6��Y�m�֎ĺ��%
��e�6�$�V&v�N�4o�_�����Â�.kS��l��6�K�4�n���?�����҈>�H�hָY��ч3TOk����ڎ���|�������*��u������S�S��4��Bv�����������xa�A
+v8�C��ҥ��9�YUB����"]4-�6{O=E�d�q-=y����^��6������9;x-:�]�� �]e�ȟk��WG�
+�y�L�c��A�R��6S:#�{����_���i���1)��~J�d����v�ٌ{R��m�{�KC��`�����
������ �=�$;���G{d5H�=@���
��8�L�����
+��g��>]���Я��u�]~����/�<����?� �\�h�;�vѮ��}�-]lz�Ũ�@ 0X�a�����+Ra�f[œ~
�n�i
WW�W"�+��`��
C߅����u���α��\�l։�N�t"���vֆ��}�
,�0�mw��
���
d��%��X����6��&ن̗#��[l=�:��g�<��a�9�/Dh��=<6!j�#ܛ�=�ӈ�u���@��R0� �=�.�6�d+�eE�f��ͺ�n��Q�/� �O ,�|6�B�0�!e~�3���d^��
8#�z�#ɺ�
�LV��,���q.;��[0*�`n���5�r
�
���>��裺��zD�כ�K���tg�ޓ�6�R�].�uY��+�w9�<�/�
�ߋ!� z��1��o�'A
��P< ?AJ^0
{ځ�q
�y���끗 yM=h)�V�_3ֆǏ�P�Z7�n���(�@-JJJ��ջxC/����U9V�뛀.�GE�X]��U�F�ˇ*��
+��B�P"�p4����/�����~-Y�,K���Z�$V����pI�,��k�%�e���~�,1�L�ٯ���X�n��K�uױ���LzV (��2�Ϧ��{�
���8d/����
�@S M�4���=M1�8��
�i�q����W?R���O�̍Ek�r�0�}
+��Dt��A����}�oB��aHp�"�5��kD�o�8H���bsX�{�4A
+
�5�-[����)���s
+M�<�L�� ިW}k�P�
yH��B��,��k��k���߭5�a�~l���_H_�5�D�XԨ���Q�
+�s��r�����q�g��7}����X�����5�!]\*��rF�e�Lc�i�7���
U�tZ,d��S�Tn���x���r�jГ�U��TJɦCQ�{��P�CG����3/(w��)�K���B��r��o�����NB�Bo�~�BJ�t�Y
��?��k4}���E�^e���۽��|
+O}9]�O=L��ӕ��ݗ���֫'��*��7i;C�ۤݲ��3�Uv�MYڵC�?3]�i�Z2�`�4vWV�5�=,�u��"kAA�
�"��DK�-tY���"ޤq=y� *x����]�E���f��7��{3�%����
�UO�_�
r��.������d���
d�x�~��E�*
j4 ��*w�Jƹ��|�=D�)��ʋ�c;���O���w!K˗�/�_�}�8������G�0�i8���z���x�<y?Z�ږ��z_�&R�Ӟ� Z��؋���\���@+�-y3� �r�SXx�kFL�H��?��ܓ�Fw�
�*�xh':$��V�@'
0K��Ϫ��W`x�FG��H
K�96��
�x^奼п#\&"uQ�,Ή��8(��11,���b��)�v�Mj�$�Ej��H]�ß:�]��@hi¾����
|�
T`�3>[�3)�:mbO�X�n���I6��L1[��]�V���,,P
Z ��tv�P��ʽ��+�
���A��sa�g��:1�T���5
�
�2b����~܂��-��>�3Y�y���xp����j&<��n
+���-,!8�mz[�iM�8�m:G2�K #ʪDAQh��Ƹ
��b�E��
�Q��y�E
�\��\� Α�Ρ
�C=���dm��y2�ɺQT�4�D5�T�5T�~No
ӪV/�!�Ѩ�}(=�<]��*hh 4��ي�� ����|�*�VN��9�έkA��\8\�?@"�|�ss�k��";P�&�W�p%_8�. �W�
+)XS�J!Q4�|"o�yө�/��'��>�J/��l���k�>���^G/�l�ZO�s/{2E��lE")'=[Ǫp��C.��������
� �4��:�;�MM��HŒ�$R�;�j�a�
+��
���T �;��Q
Z�ͣO�T*c��}�
�2l�ތ�F&f��`��9ӡ�8�FKg�=c��ec�X36�f�u`�sO�W���EeYYU֔M����V�XS~S|.�&Z�f�������6%������lR!xۥ�f
#g T�>�
D3��
A��Dބ�}�O �8��bV��_:A_�z�r|������:Z���Hƃ��p_k�/ޔ�@�-ď�B�
����<�[_�N��t
+�8)cW��T����\�u��
� Hu��'����@ @�GKx���oC� WHNS
+endstream
endobj
85 0 obj
<</Ascent 1032/CapHeight 662/Descent -307/Flags 98/FontBBox[-547 -307 1401 1032]/FontFamily(Times New Roman)/FontFile2 88 0 R/FontName/DIWYDX+TimesNewRomanPS-BoldItalicMT/FontStretch/Normal/FontWeight 700/ItalicAngle -17/StemV 124/Type/FontDescriptor/XHeight 453>>
endobj
88 0 obj
<</Filter/FlateDecode/Length 14341/Length1 33155>>stream
+H���X��ϙs��El���.��P�A�k���gb�����bMT��؞Ʈ���7,XQ{ٕb
��b,Y�.���������Ι{�{f����@ � @ҽQ�_�Ɵ�+6n�c��t݃� `@���c��f�
�k ��ȸ�1�l@�7 �����#s:��Z�������A�˗��Vy=�(�P�gŦ<�9�?ΐǓj�Edž���k� ]d
�DŽ��s�G�F����𰘈�I�y����Ŏ�/��m
0���~�Ȉ��o���8
����
+�AI\*6_T˯])
"wAGN��'V�e ���*
У[;L�����J;b� ��,x
@S���^������7��E
����߃�$&:�$�s���\�*�{xV�Z�z
���
FY1��}TK�:u���mа��g��4m��< �Eˠ�[�n�6�]�
;u���.]�}���w��_ӫw�����?
���
5d���q#F��=f����~�� S~��8m�����)��fϙ;����p��%Ka���?��Z�f���7n�L[�n۾c��{����`ơ�G�f
;~���Yg�f��=�b
\�|���7��m��N~0�R������L�2Az [ɛB(�F�$J�TZE�
��BD� ����
C
�
'
9�2�d�2�J�K�{��l�;����^r�[y��G>%_���s��\��*f�)M�J��Ji��S&+
���%C9��0�&SU��d154}e�a�gJ4�hJ7
f'����\��e��u��͝�a�o���ۤ�*�.���VWk�>���T
R��5QMRS���*u��K�P���\��zK}h ���[X�-��a�X�߱
�m0mH�
v{�������=�Ի�����KJ@0 ��m�C�O(�әMk(�J,T��y�
p:цS�R#8�4�+��"w�C?��/'���,��|G~%�Q at q�t)�����3WI��t�����p:s?ѩ���0?�`
TNG�:����U��M���p:79���DX�r:|Gp:�6$��n�p:m���
K�2�
B�%���pn!�T:��q�)��u`?@I^ɹ� �
�� �:>k~?��Zj�Zs���Dk�}��i����V_����,�C��pZ�O,|_�^8V��p��
����
&N,]0�`|a�֧hG�l�R�^�0a����������G���_~��&�>���� [������g�k3�j�<mh}f-�j�ֻ�]�,k������i�:�vkk�����j���Ƣ��./
�i�n�n�n�n������jC�9��<×[���1���\���� :�T�����bH>R0���X��v~���0��Ǩ����<�������Or�R ��R�O�� X�0Mx
+
�!L�ِ+`#�7H���|x/a,�$8���sX ��x�a5l���[a ��\9g .�9ȅ��"�\�<���̃�p�@<�b� Ca
�����0�`$���c`,h0&�x�&���V�d�Ļ�xO� .�E( !C�P��q .�e�;���P�2\�+p%��i�
+���W�xoq-�����q#n���6;p'�����a2��
܋�p?
��X b��VFw(�"�@O<���
+V�T<�G1��q<�հ:l�
X��$�\�
h�Ә��7�
�PFMh�3x�1�a.��
�>��/b
^��x�B��:X��}x��h�]����^�G��
�
:D��
�tʤc���� :I��4e�:KٔC�(��
τ缷\��y�.��J��:ݠ�t�n
/��d%ݡ|*�B*��t���zH�H����)�L��9����~���+���B?�T���h:͠$��{Y
+��Y\���[zG��N%�;�R�L`���1��3��\x߫�\���ܙ���xo�-��V)����,���%
b��V�5k˂Y;֞u`
Y'�Y
+�ZH-�f�C鑤I��'R��T�Yz&=�O�'���g��3���}�~�~�~�~.��}ɺ���b�>��<� ߹3s�����["*JY+V4j�J�]�K��K�������bETT�GT��l�����M6�?�9���)w����ꬺ��*Ju�Ls�B�U��z�A��6�Mj�ڢ��mj�ڡ��N�K���*C�Q{�>��*��~u@
TY�:�����:�N���:
9�
7 ��-uF�U��yuA]T��euE����k��V9*W�0a&ܴ4��neZ�6��igڛH��t4�Lg�E���W��_�az�
�c�H�G�o�(=Z��c�wz�
�'艜'�X=EO���t=C��:^�ҳe%��D�n�����0=M/��<5��s��|az�>:M�Իt�ޭ3�
�W�әz�>��,}H���b��.���x"����x.^�W�(o�[�+މ��Xx���!�j$tР��?��X
+?ď�4����,~"�c9,/D���V�*X�au�����N�)�@�AX
kc
�ƺX}���5��
s��3/�+���B�C��� b a#l�����8 'c,N��8
��
������s�S�L?�/�K�J��E��~�����X{�K@��$)�D�!K%�*I��C*Me�c*K�P9*O���H��2U��T��S
����2A&�gTS&�e�E��r�,S�
+�Muț��T������S}
+�Ԑ�*�Z���������5�`��F���(��PSjF�ԜZP�SK���Q+jMm�-���i�#u��ԅ�Ru��U6��ԃzR/��zS�K��?
��4��_�F��/��4��A����}M�h8�0o�[��ol�M���r�lSh$}K�h4����
���4�&�$�L�4���6ծ��hM�G3)�f�l�Cs�{��~�y4��B��bZBK)�)���rJ�ZA�8�B\��q .�L�$�
��rL�\���W�jZi��Ǹ�]k["O�ۢ@�qj;u
o��S��q|
?�ߩ�8
��N��4r;�N���i�4w�=��d+��᧙k��69&��07�-�g��mS��7�/�n��v?��E#��pD܇4� Gͯ�`�ɇcb�X`��7j�:�R<0ަ�1��fI�L�k��� 6!v�
d�hH�B��k`���"B����T��
k�F��n�[�V��n�;l��iw�t��^��6���
����l��o6����k��!{�ް7�-�'7��r+
7'�Isʜ6g�YsΜ7���Sx��Y<���^�Kx���NP��2� �|������gJ��
so˲,����Ն��S=��l�
��#l�YZ���:l�
+��)�C{#���
�[���AL�H� "Eo��0���ph
+͠
��ph!Jp[���Љ� �]�
����MgC]�V�
ny�+��X���d>�T��Z?V���F�lwA
c
�dT��П�3 ��qQ�}�X_w�Ww�Ў����)w�{Ƚ
+~<�P㧇�����d+w
D�g� ����MY].r�rt� U:d����7Q"�r��s
+��<����x�]"?��
��u� Y,�`"ڈ�^<����J<�P��q<P����l�H���
��P�Ձ:�w��[�a�ű�~�u�w_�3��$w�;���
�>��Q
�|e�䱠��(S�5����N��^Sh�#�
}ً#���٣?�-/��
+Yw5XG�b��-�p�<���O�;����x�8B=�7����F���q��R�{��{������"�����x������� �X��:�^y�\��z.�
x��МG؋g=�����π#l�
+�%�P���-�ՔG):�Y���
a
�����H�Gide�#�9��[��j"W���
��yz���I��u�vn!T�5��
��?�m
l�m��y��r�X�<�G,�W�5\��Z��
*�x}�G?1D���ش�8������5���bF�`
��1���Q|$�Jo�+ǰ���)/��f�r���:RG�Dζ�9G�w�4���b��<����g�'ɳɭ�F���hw�����&�+|�-��Z~�Xy%A�6~`���
5�&�T����
l&!��
�PJ�]h2C�3� a�4�2�)��tHɫ�4?RMi
SLi
���g�����鮴{
����s��N�X�4�
�ӗӷ��
�8���](�X��o��K�����3p�|�y #�=�&����g�BB2�;0&��=ψ�Zc�
+�t�D��md7�w3�3�GX������ ^�������"
+h
b�
����>� {��8F��y�F�e�z��f�gD�G0��5����ވ�*�˷ �:�(�
��xڮ1�L��&���7/7�b��9�1� ��ʌ�l=A?')ʓ� �X�p�: m䧴���B�e
�-2H�"^���Q�K?�ĺg-�0YB���� �D�=�\�K�0���h�����g
�; ��P�]�5���A�.z���U1
�5����3�%���߸,�.��غCW���>X���Vb���R�F<7@��E�ߤ�X�[��\N�.��`N��ól=|ľE�
�s$����i=Jp�y1۞F�؋�S�l��2��'A�R���W&F=����~VM7�\����&v:�vYJ/�g�!<N�ü���`�#���A���b�g%��!�P�0�y`?�ϓ0�_���[p��K�`FZ�
�
%��S��g+�0y��erb}�ށ��۳pi���I�C_�5�M_'�
�H
��J�e6�
+<��ߢKH��Ķ�����M�g��㝬��Ax
��7 �ŝ�wI�`fI�����1���D:B��4Z��h 3��0ۛ1#�y�
� ct
��G�W1�.���
+Z�>&�o4s"�Me�p =�����+��5,���]P]5����l^i�\���9��_*�g=���]���\G�`�βY-�f�1J�$"E�Lh\Pjn.�y��� �����6��0��3[*���j�L�T�[Al���1"��;aIL��m1����6fЭ��Ag!��a1��
�I�-�d�I��sI�%$�z,�%��X��"�J���p11Z�OR���Iin)
�\RX�����nmy[,��|�����I]HM�]6�@�F3�4�1�ا���ɒQ�@J���l떺;�i�3���#�a�p��+?���ݯ�05��uVU��ڏ�b�k}�3
�o`_�&�(}@7��
'�O__��z��.Il�L�I�U7$�nU��|Cn�2��
+��$����ao2��N��5SSZ�r&��̶O�����i�A�u�eŴ9�>#i F�&�q&1 R�?zjA]W����u����PB�Q.��5> H��%�ۥ��3%�SS@�tR���B�=Z�e��X�
s
�s\l�ե%O��i� �
��c�-^_�6��t��O)Ѕ���-6ɋ���L�k4�kF�i�W�]�4����0��|-#8��
���z��uϤ�e��Ҷ:&F�Ĕm[�gp���i���b�C�(�a�#����:�i\ &#��S�
ECBĨ&$�'�q���vJ�o뽌�Wݦ����3��3�ӳ�
'�iK�jU���E1�jT�jB�L�wuI� �#�
;�n�$�y4�~}�G�
��"zI=F+���Dے
+\�:6" ���!D�DS<�G]lDP
)��Ꜩs��1҇h���( �
-g
~]��!˸'#�.E'e�!ë/\^^�[fhMR�sb���!��3��u�5�
� C&�
NY��p�a��EC��hDZ�GE�/Ǘ��r0.��q���ȍb���W�s���|�]�>Pl�Uy�G>���V��J_R\(�Yby�tk־Y|NusWCfa+�J�*�<_��%��hv�b#6��t{��Y謲���G��2�,�������4�5�U��/�(��r���<��l�-ʦ4?�`~�GuU�*/��3AN�f�����x��C�o��؆�[��_/��&������ۼ���������\r�V|��툈`n�B����Be
�!
���Z��$.s)�:�&����`Q�1�x�Rt�`���6�?Xs8p��H�Of�2;�&�����e3sv��C�J�/�Ɏ@���X����}���(��nU��K��ꨝg�qd
)Gz�ܺ�HѥJ�7���Q�%���+�:
+
���)�B�~�t#�E
ϲ7z�§\�V�uh�x똌Md��5�AF���
���,4u�}��d~��K��1&;.�QGr
�u����?�W{P��?ߛ��eYX"��[��|�u|�����hF�1I+���&;4�5��6�H4�N�h�kj�d�uZkۤh
#{�;�������8���s���s��I��G��w�{(����Fw+�_9��ד�
j�Q�K���J�͑�pO���@if��ڲ�E�ݰn��f�
WRFFք7ݎ���}K�
]����I�q�I�lS�Y]}~N�K�5k���t�:�5�,���
+��jO����6��R(�
�ƙn`���
S�B��0�\��վձ7~�}��@�~�~�a�aG��l���V�:��@��:��
������(ߌ��A��r�vǖ����"Uw������qf��������0�L��Xj4��3�
�0��Ʌ��H06��s�y,���̻70q~>;���@y��y�^��xv�
����$�oF�YZZ�C��K�%8����0�-
��w�
�}Q&#X�7�\�ru��
�����4*Ş��f�O������Wx�ôڮ�k��_��ēj���x��7��!��G
m�<m��a{���)!v�䕲���pn� ��T�\�\�R�ܐVoߝl(�^Ӕ3ۛ�({������6UNtOI���:�庐F���;�rbbIZ�=�M����n�-�$��Gu]6̐r$X��jOMiOuƧ����̂6^acg4!ڊlA�2۳�&�!�[��<�OP�2�/͙�R������E�]�I�-��i�$�}�u��|��?
�zvO��s��J�C�˒s��>^��Xq�4��%%�d�,7ם���)Q��(M/-xz��%+����-���u�y at p^N�`3s�ef�]8g����(��ݼl�ßv.>��w�3s�rr�Y/+S�x��<Od�W��}�̊�A��ׅV\<n�g�҄�{1��ls��_���ܓ�_7u5��bƣ�0�W FVx���u�ÊX��>�����\�8@���S�Z'U�DU@��B��DH�r
��[�
���שJ&��j�8�[r@,D
P� </�l�f �f6 �
= :��� |���6�8�vm��ӏ�8����J��?�~!N�����|�e��3�:Ѯ~A��n������C���{|(h?d:ο�=g@�N�$+�T9
�@n ��u�ar |
c�
���?ߣ0G����n�)0��X�@� ƛ�F��
�"͗�R�|Q����Ƚ�{�#wb�#:}�#��8�1�����1���Q�5�T�zS�D�!��R�Y{H�0bHt�-�N� [...]
�J��6�e 6�-O�����\��>�,�� ����
;�6F#�9s��^���
��z�_�6g�K5�z�gA��@@]�l��Np�M��%��
o�Pb��E�?Q�Eaپ�� ��K�P��X�
�N�}��b���ʜ�o�s�9 }��{�
��Ǯ�p槰�&`�V'z>�O��xa�Z�ٛ�Ŝ�J�JHح�?��̩
ɱ�E�,
������cj>e�B4��|��Fq<rLDe�]�y�%�j����Ũ�ڢGv�3�`zV����5��r�)��V�x��U߱bl�VA���f�Q6|Y
���{F��Zk��V��D{!s�y��!iZ���zWj�Z�-�����\���c�k�����V��W��\#�;R���?l���K{bj��1�L�X
?|K
��/�Ua�
���
��t�k�
���Z�Zo��J-r<��E
�rf/�
�\.��_�K���w������ߥh�ڀ�
��r���bi���$qB�C�=�|���v~6ao�?/�����E��E������9��
b߈��/{�K+�����%Z��g��
�FD���
+>K�S�
��v���ԧP�}����bۛ�)ZK�N��:Z!~���8�;�v��q|B7���J��=��
+�Rġ�ȵ��@g���̥r�
��s����Z4��~�`�W�&*{8wc<C,Sv�Nb���z^�Hcz��
������N��xZ�U(�.0&���i}3����~;�#��e��#��Z�A8x/c�ت&��y�5��l�l�Q_[0��7�y�vY�`�Gt�&�S
�A�ŧZ����(&f�����x���a��"��)�(h$���'��d��=u8
����&�O���n��
�������������w�4��R����
f���U�aٻ@-�T%G\Wf[�"��2�N���:��c
pF9�c����I��%��⠺����#��
+`R����vC��=G�g�\ԇ�h/_���|}~~���C�8�hb��*��;�䍨��(����f�J�
o��e�8�4�[ʧ�s�?��{pU����{oR
�Q� �LU��V
VGD���D��bDjE��b�Z)�آ�
F
��@A (��� �*���(Z�-��2��@!9��u
�pA���ͷ�>���k�o]f��
+#���g�")r�عf�L6%v�3��{�Nʫ��½[�:i;��Fʜ2y�yH^L|(c�DbI�=�|?�ǟ%w��v��n72ޫگ.����<������k�okhgdc־y2�O�폫�t
7�j�ph����J���*�.�����҇[Ej�@ m�,��gC��ME�3�]�0�@{��;�%/�3z�T{]�Hڽ �
��[�0n����_���k��|�<�8��a�b�S��M�{Q�=x&��,�g\�G�� ���s���[r
+��S{BL�.\�����������<��}��h
{�ysQ�Յ�V�o�Wշ�?U��կi�@��+�c����L}��3����/b�{��dd���WM%��!?ol�K'��~���i��
ĵ�U��ß��=WZ0�~'Or�Ϊ5��65�����x��Ro�P�
��ԖL4�����#�k���
�~�13��<�}x2и���=,��/�&����_�յ?���|�]�gތ�#�M��8���(�s�7e~���B��.�e�ݶ
�P�Aߤ�����ZɅ֥�Is쮎Η-;X�&Q��%���5��ڇ]�5Nԝ7��I��b{gu�)�X�V�s���
�l��
��>p^�?73�u�Ft�cϏ��3H�1[�Ds�/�N�&�7b^�uJ�M�6�˃������r�,I�A����ۭg��
��؟e�0�d�Y,7��ޏ�z��|�-��z�XӇ�&�'�w
ь<u��:�2�ơ`1��q[�]u�
6Ŝk��ē���]�\��(����g7��q�۹�����ֆ�aMM��u�|p� [...]
Z�G�����P��lW%J�R�HN���\��
U����K
B��ݜx�Gr�.����<�H.M�C�\$�ڎ`3�+�E�+��C�>�.,�̄��*+C��D�ܛ,�b��4����� v2<��8��s1ʗ�A�r�8���qP�|M
�_S�
'kw2;NV�>�۟;N6n�8�oӀ}�qP_�
�8�>�����
��?����@C
�Ȣ��+�(86�<Z���
���x��\t���Cky�����o 寎�)jё������`r��Sw
�A��.?��2<
F4z�`l���i09����v�+������6�I՜^e��i��{ ���J��zh����?�����'P-��v(
���k ��_{mf{`?
+�;�{o��J�
+b�ٖz�
;%��3��3UL#_�'�<�S2k쯜
��s$�\j��$�����T�.�
�O�kn0��l�\)ܙ�p�ɀTG�\�/_hkL3�1�3�
U���g�g������0�U���X��[f�@�
�M�2�9o!�=fo�
ET�R4�Hw�
�;
��9�9�!��85J�qo������L:}�;!gv˘���/����$7g��IM��靝�;�Z
�Ö3����� 5�~j���h����P��
��Fv�l���Y����pfK�t5��H�
�>�3���mj�s8gk�t��H�_���HC�j����ވ��s�_۩�yv^�K��H�Fc�[�N���&��"}j�h�p=����h��֟݇��
�7��u��;6�sd������\��#5B.r=�{"�N�{��I�R�M��S�o�|}�/���5�Y#;�K���Ͷ�)π����x��v/Q�?r9���=|&P���!hS������w��/�zr#��e�yk����$.����>o �|���^�PA�����s7;%��YM�ʓK��H�Fz�~&'��Ws�Q�e�l��c�}_G��c���U���8gu���l�*���Y��E��g�v��e����Xn� X���������t{Gx.}kO�%��A��� |)�E
�ngsÐ��a��Đ��ި]��o�]�suư
@W�7>����?�|
I��Ѡ4b�B:!���2�d4(��
+?/��)gA�8
<�> �Ai
�P�g_R��`_�%���"�-�R��u
!�X��{�>@��Iz4���R��
d����<�|�PD�
�c�/��"{���q��sd�&
�T�r��ݠ�u�.yB5I�e��ͺoMR��
0*}�� ��?�vK�ĵ��#��¹Nf8˅<'�4ĵ�;ഴ�)�E���� ��T�������Uq��e/�t����?��J�rv�8����e��z|�-����
���˝
2*�{>|��zrU/�8�wR�Z��߄����V��_ac[p)��h?�*l�b�#l����K�צ�]R^hq�moQ�����yP���b�������Yi{��rM��a�9�B�0�z;+M#�����`�ý
t����yv�9$�G���_/��z�췥�
y ��L��#ɸ�i_ n��+2 �������%�bM��7����f
���Q]dn"�z^Z#�!]�9�\m��s�4N�)풣����
�'ܣnf:y�"���H���_.�Ug
�v��
�9DyH}��y�% 1*�"��� � ġr�`��$�Z�1-��
�Nq�,V�C�8r�v��i��ؙ�V������
�}�3��v:���}߷��g������V�x�G�����Ȃ<Iu�Vk��u�k8?VB{��(G
�v~+��P|�x5�ǂj�U�-�F-|}��R��
������4S�M���np���-T'� u�/C���˔�B���)����|餎�L��媽� [...]
+���u�U��t�Հ>�=n�qZ�\P:���yj��m
3 ��o�� |�4s��֮
��
+�9��-�����-R�@��`�t�����|�Z
�*��F��$&��
4mmc�4�j߀>��V�
�V�]�\�C�x\�z-�
�pA߁�oT�:͋1Ǫ��ӈ���u�i&���N�O|�1����x�s�������϶��+�2��%��g�xr�?
+�Żu|��q��n��|���m�r�΅��{�� w�� �S������D�̾���x�o
Ÿ�ab�R�ЕX�3���
�|
�R=b;��.*E�� �+���ߋ�g��_��X8o�3i�w����o��4���_���<��G�^RXg�!X���"�m�?� &~�Z��
+�y)��:�jp��w�
�Z�q�j�I=��
h��l闃�]t�#����������������������������������������SQί�t=H�t5M�*"k�!
i���
R���2R�h-R���":�قnb�=ۂ=ճ��z� *c��Y9�Mv����7y6���ֳ��y��۳�4K���rz��TH�h2M�UI+) �P�V�fj��s'R���L ��x�$Nu���y+P���L* ���Z�xV����i�:�B^-�Q�K���Q]�H�#/E˿��.�4yJ�re2�V��[��;S�
��DsmjuA8^W��]���)\�lJ6�M��(_p��q���ɦ9�u����y�L����)oN��.s*�
SFaؔ�k�psc�&Y�h�?�Z���?��fP9-�{��i�g>c�#��Σ{hMG����^V--�SU�vW���O������ez�E]�Q:J���U��[$)>\�I�@
l�A�
�i+���R���=3g����
+�v��Rx@�*���1M=�7��nw�t�(��5���Px.>Ht�E�E��1�Z{�^J��������0?�N����؞��W�o@K@�
� 8�<o�Őی5r�ˏ�~$�_�XfjYáxA�.˟�>�'kd����,9L��)r�
��˒w�.����3�x�Lg�P��d2��?�<��t;�㔴Z���[��W���F�Ut�C+��h�V���^ne
z��-�(,)&�ib��Z�!�
�w���F�5r����F������X�FJr�����
��cqcq�R&��G�q�Q.���b`����Fm#�(�qH#F`�
�f`,~
����4���F^�%OQ;�-Y��v�w���v;n�"�G�W�Z���Cc#�������G��T��0ߞ�o��ו�)��Z�#F�0r},/d�>d
��
�gC��C������!�"dw�aT�m��J�?��J�;͇��;#�r��p�f���:y2�ou
U�:c�A^H���W>-�9|<Iv3���C�5�6�bX~�KVo�C�t�<7ڇ�np�q�k���fG]'u�u���q��<Ⱥ�=���\��>���.��kT�6C�v��P��-���WY=vJ�^�n���Fƣ��n��7R�ݍ܇.��"���レ�
��Z� ��lM��Xz��n�zLA������j�h��z9EL�2�Z�v������(�;�o��I���)x�b7R�ޣ1��e
HJtچ�u�!�FfC]�e��N
TЕ
P���������Xl �
����Gh�7���y��9'͘+߅��{����4���/���#i6ߕ�ʌ�8F�t��� s�����t���4:�J�-�G�Se���ʮ����y���i�_'wD2r{Q�m�����j�b�(��f���s[d�l�����w���ĖAOA�g�ڙ@�R ٤��)���(Rhi��em�-�.!MHĨ-&^���
�7C<MILZ���j���)��7�
�ă7'�7����{��ٗ��A�6�a���,[��ձ
[�?�G�
��-�v(����7��ݍ
0{
"�;zM���cV�
+KC��T73296���e��6eC�����8Ħ.�%
;9b���D�w����I�y@��
2J.��d��.�A�A��R�>�PD�j����B������'�AEX������f�����
�z
��b+v���]#�
��lN��*Ư]l���^����n����E
�C6��
`�T�V�95�+Ja
J;u�V��^X�S�=�����_&�dh�3~���YmZ�M�z�;���=.�.&�
����%��T�
ˬ+e1�N
�++'���t���)芇��M���[�XZbPEʀAy(KLYAL`�_<e���p(�
G�QLr1�/9�ҦP�2����zOpJ&M��ȤUu
�1] Ր@UI�ڙ
��'g�
?��=yٓ�A��K{d�3jm�
lg�*E��^����iy�:��,��q��j�\�5x[�@ɤ���U��ω����O�� �J��(zD��>�Q�noJ�3�3B��FH
�>ߔ�m=��Rܝ�[�6L��� ��Yf���lH�"|/4K� ų��4�,�ˊ[H�
+�)�
�L
0 �`O!
+endstream
endobj
83 0 obj
[89 0 R]
endobj
84 0 obj
<</Filter/FlateDecode/Length 228>>stream
+H�\��j�0
��~
+
�Cq�s�v�
֎e{ �V2�"�9��x�� l�����/�A�qt
fy�9.�z
�ʀ.�]��d��w�qji���A��8g^���c�G����p��tG�ݒ�7NH��4�q�A�6�선
vj��!�'a�
kB0��~ø�qN�![Q�g���F!��N���������6�2Ž�o�|
���,y�J�-B |�)�BmG�0 ��o�
+endstream
endobj
89 0 obj
<</BaseFont/BFSMBB+TimesNewRomanPSMT/CIDSystemInfo 90 0 R/CIDToGIDMap/Identity/DW 1000/FontDescriptor 91 0 R/Subtype/CIDFontType2/Type/Font/W[237[564]]>>
endobj
90 0 obj
<</Ordering(Identity)/Registry(Adobe)/Supplement 0>>
endobj
91 0 obj
<</Ascent 1007/CIDSet 92 0 R/CapHeight 662/Descent -307/Flags 6/FontBBox[-568 -307 2000 1007]/FontFamily(Times New Roman)/FontFile2 93 0 R/FontName/BFSMBB+TimesNewRomanPSMT/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 80/Type/FontDescriptor/XHeight 448>>
endobj
92 0 obj
<</Filter/FlateDecode/Length 15>>stream
+H�j`�X
" �
+endstream
endobj
93 0 obj
<</Filter/FlateDecode/Length 11315/Length1 36454>>stream
+H�\U t�W~�?I�5QT��eA"�}"b'��J,���(�V�#�:j�c
'�V��Cm3
S��*j7����Pc�1#�;OtfN;�sn�������}�{�
�9Ј�7(�y��a�8��-c̴��@�������
+�'���9��#����?#��n쿀�*���
{����W�o�Á?�����~�� S�,N�e��jl��1��������� ��
j5�|
�^�������=
��~,�LW���W�V��к�,�E%�[ۂ,#~��7"K���G[c�6��ĕazW�Z�
��$���+��)��.�!�9�^a{WD��K �al��
+���kl��8w<��<wYפ���i@Vb�$� ��
�+�cz�>AU̐#0�;� B ��P�X���)��ˈF.J
�������ͿiX���+I؆��/�G;U�HSF^�m�"�
u��[����mG*���(�]�@
�v�'��(�Yr��@�ii��耝8-i��`�=Wy'�9k��J���n�F0�+��d�e��N���HtB_d���8/5%A'�(�ͭ�h
���K�%���QX�M��\�O,�d�l%N�={����*f�.�1{%�{$AT�
+e�B����Ō�)�K�
�29��m|����j��<�&F�p�1
J<}A7�SM3�6�&w8kq
'��"��
K�zC��n��N.������ix
��
���<Q��y�
�3�}����D7r�G�A\������3�eu�qm��
�lY*+e����ʣ��duG��#�{��Zמ+����19<�7�����
�a�-��
���G���NlV��E=O/5������_O�BxYe=��W�!�𣄐CcɓW�*�/S��Uu5�tW=X�
�
+����L1[���fڭ����� ���f.
�B
Z�
�'��4��
+�)��7�KX/˱[���q�������s.�O`�͓%��H�!9,W�QTC"Z�V]T�JQ�j
�B
Wg�-]_�хz�^���
�1�6'Rm�-�
�F{S��+}S~�i��ß^
P7������M7�� �Ģ��'�5��b�CV�.|�op���IJ�눟��S�"=�'�G��PAd�h�!
+e��%s�mY,�=�j�X>�]�g��8-��ܑ�E�4�9BE�8Վ;MR=T?5��V��5EM� ��O�
uF��:Vg��z�ަ�S��F�g:�!&��5�� s�<�a6����������'ݓ�Y���s�S��x�{G{gyOy]��՟����/�sL^���tu����.��%���:_/���,��}rA�\=�m�)걞$C���P���:
��d���
����
V�%ڼ+��I:Iy*�ؓ���ko�,ګ�R��z�����rɮW'�3�UM\⭞�Vqҷ*Wa�ii� �y��Ng�;��D�2�q]��?侬�j
�^��zY���Tܧ� we2
+�=$�>�AvCd�.���9�V��"m��
��rJaxG�T�������~�q�3B��3EK<k翿 &��PQԴd��Ii�:XE��_����-b�m�1�x����=��ub�As�e
.@�Z�Yn������~*�<�I0�2��
+�^�����Q�����5U?M��5��f�!�T|Yd��L��"b,^bo-�{vړ�'���ֳʿ��|s�2~]t$��db��Ge��k�|��(�&�μ��M*�w���s�F��x�n�xv�\W�Qn��l
r[������|;\
�MMKj�a����_�����
ԣ��;�6��l�a�9K����Ө�|4d�F��� �Ǽ��2��U�]�.�
u \�
� �|*�~{-�g�b�n��R���!�ёvCb����]:w�ء}��mZ�j٢yB|\�ؘ�MGGEF4�7
��5x�~��/�
�U�F�j�W��\pP�J^�5Z b��)��ȌR�OM����39�����R�R~�S��x����g"=���3�g���yJ5_Gt���%�}�G��}�eĀa�w����}f�yf/{fW�
� ��:9�}���K.M���09�;��
��O��A�4�i���
�Khg�7���uD�����Bl�l��Kvy���v��|l
lX�c0���:��?D�ۄ�O��J]E|�@[*5�(E�QU�֡պ��U���9(�%
mZ �H��뙻����Vm-���3�3w�̝�$#f��<�0�*1��V���X�?�;`mh���J}�hM�����>��UV^@v��\�r�,�\ƻ�wC�������A}�@9�����(����M֬�}Tt���
B���R5
.���f<~�k�l�dk}��bK��c�f,|.l��b-�/��}X����=�v��
�$��kM1W���;b8���E�O��KJ�#�T��;#��ZYjF{��3(��ԫ�Ao�DMMu��O�51-/���f3[3:���̵�g���E�j�������=-埭K)��U0��yl���bq�r��[��0����7�\�(�MK\~�1�Q� 4�
�
+��*w'
+W�����Ia�;
/�G���hC-�����
J�
k�-�j{��t�����%b�u437�f��d��L��Y�/����"�gNok�����ޚҷv��m�o8
K���sB+�_�ѥ9%���-�O�6z���_�7����l���"j���8Q�ʩ�=�����4�K��@��A K��m��XK�7:���/%��x�$����d5&��MhO0/'��`�B�vv��S'�qY��ͦ�9
��&�>�k��5�F�;�1������Z͇���6��-hU�T�%�����Ȉ�Ϭ���a��PlU41�Ȉ�((���,䆗�xȊa��KG�DCR�I�l�'�2�#S�?)R2Ñ ȴ�,(e��7E�3�
2��5$�2<\�t|�I�.!����x
+��äkI��Y������B�
���T���(��*
+�7�i\o\o\w��V�7n�n�/ߗ�ǏR��m�:z;��-<�F��*��G�o�j`O�y�B�?�|2P�U*ѕ
-��_Zo\ڼ�j�]������Gn��-C�2#�
�u
��k��)�ȷ˩��?g�Ξ�%�v�9l�g�S�_�}r��i�A�v��oHI�_n�U�^!�&|b�M�O#�_v��W=��]'� �G�g�/���� =*�I�|
�P
t ^�� k�o m�k��9
�G�ǽ�z�sd�]4X��.R���|�[�����T~t��r�=g�z�#�ua�.�~���#T
+�L����6���o�^�O��
���m��M�k!�r cE��>�r�&|Ƹ�<�sa� �3���悖r_�Y�^PJ���@ ��f�}��i�o�'��m�7hf����O�m�l��$lUʳ�Vz�/��S=i_o�fP��@����@�6@��r�o�q�~����$x�h�z���\�!nh���b�=.�N�.?=����4�G9�
sѯC�����T>�@�_�>J�g�
+�߯zȾ�9B
�3���~-���]�{}?��I`b���!����F�
Ȑ1p�
����}��OK��% ��
��
(�>���g�9f869>86d�#�d��9�o8�R9�#�
f ��*۟F��|�sd�9xn�-��B_���˼O��,j��rm��
[Y��c���{����c6�k�J��u����9��t�
��C
_d�I�C�V�
��h�����%�� ���jߧ��>�Q��Yr�
�D�1�c��7
+_Vh�鸤cb�6������x:�Ϧ����tLٺ�U��@�������]�mm���5��e>�u(���P� (�<�Jҽ�
��u� -H
z���r��fʼ�C�s�j��
�T|�>�n�S�3�%u
爵Ļ�
��ݙ���1��X�ԉ�A9r
*s����̫z�}������F�
|?��@�n�w�5�?�
+�FV|N�Ӭ�\�q�东Lӵ%��S�)�Z����c��'y�A7��L3�OSR��� ������5P���E�
�=����q��q=i��k�
�����W�<;���~Z���J�Z�~��SY������}��z�������e��+���ݶ@��y�9X�{o
�����V@���♅�d9b��u��f�����v�'�ߩG�
V�RT
�1>+���MԊ1$��>�,c�]���qVν�g��\`�~�c�~��ܫ_���h.�A�݃����*��}�r�W�^���
��tm^�s��e���1
�qO�3�i1��˵Z��SOz�}U�+
+h�z��-t?��P�*Q/[P�"p�i�ڲVKjߔ������赴I�'X�ٮJz����ŨF}�<����m����(�׆�9�>�w������%�p��
�ް=�#�ޡ��&�O��S)�H~G�qP�6?
����ee)���{��:�I e^!��
���
U��{�|j7��[���P���W����+�s ?���o7�iy4�~�~
�ۉq�1�)��1揠/�r�mڮ��}�!�ȧ��
4QH�1
��4�Z�����'��
\Uq��߽��s��B
�#D B��@����j)3-j�:>Z�
+�0��QJ[_�Z_�bѪ`�c-h����/J/(����g����ބ(��w�3��{��;{v���ʎ�\bη�E�|��uX_=�|�
mW�_�k�O���:��k��&
��u���-��]!��
٭�=U.��cֳ�'�hI��q��`T8N����?�8<�e��2��CW%;�����6X ��gIt�R�Ir������|l�+����2��Ƈ�f��C�h���_*����/U�
"έ�a���������8e�qѳ���@����}��
��{�c�����Kfvv�%��w��@y$�~~=�w��&[��~��5Oק����]9���M��Aq?�(��p2�!]�xV&)��<{�s9�m7��FY�>�:��ӥA����Ù�b�y�*h[ۿ���*�5�b(>Ġĺ��u
V������%�}�oJ��C�n�&�Y��M���N��XR�M�l4��� ��_����z���W�/X�:Q�G�М�����W����~�N^+y��E�_ ��_G�J�2,���@�!������2`��Eq߶]pY<Fۣ"�^q\�o]|�6�Y��
�i����@�b�S�O��j��p
̀[c�z=��J�xY�H�{�����k�=��Nw��؉�e;�5������D k���%����-��2 Z�N5��hղ9��Ǣ�{[����8�ViT��57�
�����>o$ck�c�
�� g�fw��Ğ*b�'�߯�k^Ây��U�'�
v�Z�'>����)�v��t��9�S��1��)��{��8II���]��Թ�L�N���Z�y�S9I�(�)f��֥�t at 7��tnO�i���rJ��r�N��{���)�:w=E���v��}H���yse�hz��Q��p��oj�;�����W�ʘ����k���Խ���ϰ�gV�v�6��P�n�m�q��n?����s�Y3���h���{X俵�=�{G�1���O�͐Ҁ��qr1�O��2������JF\��Y!Ο��O�X]k�L�ٴ�i��[2:��W�%f��t���K�l���u����!䢑�rh�L��.W��0�2��X��'\¼KdqPK~�G�>)!}�3�8;)����E���������Li���+����0"X._�ї�3����d�3S�^��v/|��%u�2
5<�|G�+�6��fۣ ���+�W5'���Z�/��$����f��iM���ohv��Fr^�/�sr�r�=���i��j����s�)t� ��W�ɹަr=���y���]۫eF0\fٜ��Zs���w��i_�\�ɝ]h!�Mh���f��n�c���o�{����PN �*'p�L ~"�yϦb�;������1�_��ǎ���Y o�f�a���@��e/�F}��dF����Q;�[�
j9�ALSX/�G �gnƾ�kg�O�t�,6b���������v�n��ñ0���9�l��H���}G4�t)�~
\D���Ƕ�ʴh#laM�%�? �s�H��T9=��w�j�
{�
�#3���3���S����`gk���'��ٝ�Z� �حdZ�����,%�:3��;�R��6�O�y��ƀ��μ
��:��g1�C�8����e_�����u߄g�:r|��
��z��i\}M��NMC��~�kWΏr�G�����G�q��P_ׅ3�P?�~�[�ai�օ [...]
��2�6>"Rq<>�'#�R��NV�K��M��J��vP����;E�ȗÇe��O�w�7Q�� NO�\#-��f_,��V�>L����7���s��_�h�S�%�7̞\���iğ�3V}�
�N"�"��͜�VU1U꣙2��3l�qs���n
?ƚ�a�:�Yù��[�~
t�
�[$�A�j�:��h��蚾��"�Һ�먄�P�t��ÿ���O�� �Qo����B�[M<Q
��Χh����������X(
r��Y����eV�84m(�U��c�|��s7��_��|����g��N��p �/�}.v��۳I]�*W�m�
+�?�gfi����x|�쪸}��_.�ɪ
�)�c~
+C�:�������-�z}��lZ���a��� =
��n,}�q�߱��:����y�[mg�y��
��J��Ɗ�m���lY�k`wΊ�-��S���K�y��w˝ΕӺ�
[���Z��T�z
U���_��S��7�`LQDz��g at x�����hq�N�w"�J
���
��pPWDdL�����{��<�0�-
+1T�\P��K��'�GSL����
+��v����@��s\���~
������������;~��r�+ߓp&_�W�
���[�`�ހ�V��ynp
`�| ��
/X4n�<�{`+�.ѧ�>(ȹ�M8�V#��c�s���Xh��%�g��]4�>���j����㼮��W�z%�Ghl�{ƛ�
�����[�9�z��Uq��/���q��;��/�
�`߂1�!>i0��PQ�glS�D��㷹����1I�(M��@�F8�GKܻ�%����$��R��JGJ#�$��_*��;�c�6�P��U������͏ݛ�}�
->~@>*���}�m'h��W�2�k�`� ���0�3���{$e�],�`,��'��5��l�M2�r�����
+�&�x w9`����*=BӍU��!�r����D��SV���~����^ ;��u蟍Xp �
8~6��I�,��Z#L
�E�_���s�
�"��V����;�9q���:�.�i�u�'`�ַ z|
����W@��D�ƺu�nؼ�� = �A��A��ij�5�h �K��Ӿyt�~k�ԟ5н�� j���i����L��f1{�zZ�ojy�8���9�Ukh
+�4����p�G�
#
������Rp(s��)M�"����y���H��\�{�=Zj�M3��T�y��88?��-e�)K;�w���*p��(
��K�$��V;6�������l<Ƶ��n�G
��S
oØGy|"bl���~��e
W����#�^�y�Ƙ��]��S�ϕ���Sz�xy�^�9�7�\A�}��I3;��6��~�<M�8ڟ3�9���8�u�x��=` �%�c/��Wk��1�я���!>���[խ0�r��xF���{ijV�J>���u�'��@��ҏ��j9��V�
�%?k���~?e� �{��r.b5��'2�98GE��/�Xm����+�f�T���������u���|a���S�O�4�u
������C�(|
b?܍"O�1��5�\�~V|O�!?ħ�s4�"S�N��A'9�����@��JP�=��!,}�\��g��9�9*��^飾�>����
髼����C�Y�����m�e���I@���_�I>o�A [...]
+�l
7���yC�|o<�y�H!s9�\�/S-�]
V�ޱ�o
;�ϙ�
��
�2^�*仐
�wx�
�>�
�\G���2�[6�
�&�c{�K�_D�t�fXx��3�'��}�Vq0� k��$�����
��4˹�K�P�_q^�P(
+�B�P(
+�B�P(
+�B�P(
+�B�P(
+�B�P(
+�B��嬡?R=GY�S
Uҗ���]2Q'ʥS(�͢�zu����w�H��
Z��
�R���J=�k��f���ڳR�ȯ�R�)WH��
��=.u
zR�x}���M��|Z��6R��b�
t�����u@�e�DZB��65���;)!jQ�(zw�\��-hoV� w�^1��0��V��:�3֡o�-��h���~���B�ecԮ�m�u>
��Kc
�XG[��6�
ں�nڴacg�n�&�
]�u�����55�Z6�G
�
M���m���-��.
6,�0ٛv���Ѷ.��ֱŎ�����/�K
-�f�\��y�v�٣�;�(z��6�v����ӎ�O���������K����P{�Z�5:�~OW�Ay��A�q�`f��[���@�
�<������Yސ*�3�2{K�!�����i3D˕TM�T>�GIϭ\
e�+���v�ʜQ�2_`4���v�G��KI�;:�oӳ��\`���Uv K��]J�L `�_��Q>y�O�i�r:�;%@�{~g�0���{�zAx �A�� �-�$;��
�x�J}����}
/�1��fa��>*�|���(d!��A� u.���� y�!i?��4�g�< �
���s���w��b\��I�Hy�BEh��0h�������
��v���I?�
@�;�Փ�Y,��'���$��K߃����������>�N�
+֍>��Ӎ>��w�����
+�<`�uO`ݹ}���P��$��
X�r�Փls�̋C�!}_0P�s�
K
d����
+�ݬ���A�̕���FEk4[��»
�^[B��!z�4�l�,{(5��{�5P�m���꽬��5
�2-�
P�m�#��*�
+
ʽ�*��VWܵ���\���
+�]f���>Ƽ��U�0�0�Lf(��hDp��hA�;�
t����5d
[#֨eږ�
+Z�V��vY�V�r�[�Yz�;���fyn��wݍnӛ�%C����e
��~``�#��l-�`7"X���JB-
C�4Q��<�z`��J(yK#hq�jM�����Gy
(Ek.��X���\+Q�A-�
��o�
�Pڠ0a85(�����X�}T�o
���`[�P�6X�%˵�r-XU
+g���ϏGJ"e�#V
+����pq�$\
0���K�˪���ʒʲ��[�-�y�����.���Έ���z���z���Q]�{gl�`{��q¶�s�3��3c�8Bd�w��'��6�6n�����E*�p�*U��F"����X���l��ID
x ��VEA���@*� |��)/�zw��9��s���{wV�ǣ����>��E�z�����G�[�e\�8x� P� �
��e,�%X�`]b��q�=�h{����s�GG�Wn����ͻ���rǁ9 at E�E�et�hY��Ҿ�
�i�����rr��a�����804�
�~
�(3X 3�2Р��Sǔ%|�E�I���v-^��Wkm�6�s@�J~F�1��{���+��������q�܁��?)9�hI꧒���~gRG��X����M��S��Kv
q���~9��_����/��o
֮�tHn!�OI
��!�"�w�>&�~�'u~��:KI^/���y*���[��/Y�x��)�
+�¯�n�}��|�'!߆� q���O��\�5�+>�@���b
�ϡ�������=B�/��s8������~s|H�_���{�L����{T}�9��ӡs ��s
�D�<
9
Z4�߄�]"��d=
+�晥�Hv�+����u΄�JS�*
�M��i���Fd9��"��)S�c�
t'����Q9x�R��<�,M��K��Y�p�5��'���p}�p�
+ĿV�v��S��i�yV��S��B�S��8�T��(�&�U�i��
K��bG=����͜x��y(�8�h췸�}p��6��]ۭ*�;�X�Y�g�N�
�*�,�M=U�F�X8-�B�
�
��g�{X��N�����l�l��F�#]�u��]k�Vi�Z��iMZ��hL�^�0a3��6���yܦӿ5��
+����V�S���=��M��W�\�l��@�U����|��_����b���hg�>�]a��}��N�?
}�����g�Twpe�Ѽ;4��[��@l�}��{��oBu�������
+��F��k]~�GW�|/�1ڽ?��
Ve�+�
��]�*�3{��M���� ��$Va�1�Wd�N�ijd�eè�Ň(��-t���%�k�a�z�#s�(�)
�,��d��Ge�h+���QPٲ�XR�P���{�۴j��%�Xܗu8�
sG-��
�h����m:�?�����̴��03��D��G
����.�H��@�01��tr:�hN��f��<���;O�I3]f���l9��N���Ɍ9��+��
��]�58{�d��l�j�{7q{䞧Z
���|b^�����7�-k,��iEii�z�����m3�����=�y���g����V3� �z��Irau�k�Ѻ+���x��j���j���2��}
�B�P*��b)&mE,���lߝ�n�f��D���8J�6�M��w/��!w�=�ι�nc����~`(��!c�8n��F9�gO'�9�3C-a6�"Z&-k����i�T��P� ���%{0�4X
o�
o��V�6�@#{�o�c�2���>�TȢ�����Ci��۴��Ծ��{��T�����h����k�&�b�p`ss2�o���||
4�}j�L^��Z��
+6��N�D��m
p��łm3Mp<����y�x��p+�@ ��u+����� ˭�
+endstream
endobj
77 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
76 0 obj
[/ICCBased 94 0 R]
endobj
94 0 obj
<</Filter/FlateDecode/Length 381584/N 4>>stream
+H��� 4�]��ƾdɖ-È�c�.j��}���[v*�E�F��5�-%Kxl����"J��x��t����>�}��=����n�w��������.�
�DQ������*�XTh� <����xp���N��wL������<1
�xH�D�%()��&�9��\�6��u PBGaؿ� �{r��0��� @�
V �#I��6�=fo4��o�@Z���:e�ƣ��:��8"�*PM�x��O��"aBH�Q�%�x_"
g���8w
�*4���Ȁ
�=� ������( �@�E�
��P3�����aLi
+�S�Q-��3h�i���r
���L��XZN�&�؝8tO�s
+pQs�s����}r��/�?V� ��<�VK��r@� b�g��g%��H��z&�(S+[)W*_
�S�K��)F(+T��>ju
�97M-��6,f�&:FH#]ËFz��f��6Fv�&N��f���XK�U��5���yv��
�
��&�]6\�(V������
����λT���;��Ʃ�-~��%����A{!ܡ�+Fa^�1�-Q�۱�q�W��a���&�ޘJ�LfJ����i��
�(���h�Z6u�`�R��
��Ȃ��六E#��%��9J%
h�Y��V�T�T�V�>\�٫;�H�N�sC`�ͦ��'�Z��q��?7j�j������d�v����}.������M�_/
}���W�0����|��};�8�>��.�p�x��}�Rʇ菄eԊ�'�U������/��Ӿ�6P��[���0�|���{���.{����?
��E�!��#��#����+*
�4E]@s�V���n���!�ѓI�����$�������8jN�p�qA���Wx�ysN����
+�,
+v��F�"b���+�~��g�Ń$\�"%e������d&e��
ȧ@��`�peE��2��ʒ�ڀz�F��\�$���|(m{
K����E==�����!�j,o"o
+5��+[hX"��-l�m����=
|
�NW��\R]s�JQ��N�a��U̶��%._?��ZXS7
G�&Vt���փɡlWDÔ�
#P�AQ��e1���q{�8�KƟO����T��<e:u7�+
~�*#�vffs�L�A.w��
�|LA�݂§ES���q�W(5�_�R^]1X����D
�U�(�qC�p×&�f�'Z���<��Z�|�m��y��z�m7���ٽU}���˃?_���
�
��G�ƒƋ'�'_O-�!�坁��y����]�X�{�d��C������OS�3k�_h����m 6�����w��}��m�ѿ7�?�s�����
���/�m�A*�h��M2�+
���~���1�ɛY���e�D-k,�-�;�c�d g��$�g����M>~� X�PpZ��t�0 l)� �!�k8�%
J�!).�,�UzD�I��\��7�TA&
g��(�+
*7��������j8�3�TӒ>/t�
A���������}y�[�U�Ѡְ¨Ըؤд��y�E�e�U�u�M�m�]�}��=�2�j�G.M�O��Q=�A�Q�i�E̚���/����X��&NoM@�a��9Ae��!}��W>��#8"!QJ�z1N����Ws��]���#�=I*��v3+�6������L�,X�I�O�;m�3��<E��%�{)�+K{,�B�jU��ć�5��=u���y`�&M�ͱO�[��?[}N���.ۡ����u�;���}��}�X!/�_Y����y4:0�a�<�?���j�6i�p�an�����"�{�%�F]��+1�2V[�>~a]W���Y�5�}�M��.�G�^�~�ϡ���O���T���
+�2��
�M��ޤ)���T�Vz��
c&� 3-s;K� ��u�
+64� ���v����\y�.<`�%��S��`|{���M�x��O�
��"
"�E����3S���Z�-�,�,}C�YV^$7)_�V��I�A�i�:�e���*��Z��=��s��*Z\Z��G.�!Ҵ� ���ݻ8�ס_j�dH0r0F�H�r��2[5�贬�ʷN� ���s�7s�qTq�u���tcFѠ��}��
;���
�
��K[>�|�
`
���C<
N�T
� 6 q�\!�E�'G�E�E5FwŌ�.�m\%�
�����/�@�R�d�w�������őڒ���2�I�a�z�����ɝ���>�^����Ħ��4�\�����֯�.�]������&�\���̻�C����� �A���
�Tǜ���2�z����_Ю���QԤ���Lء���Kܞ���A����.��:���E���L���N���P���V���2�������������P��� � � ����>��������� �y_�P�]�Ȁi>����9[�ل%��}ߌ��@}����~���V~P�z��~���w�
��[���S=�׆p��ۉ/�7|&�L��|T�rő|��˫K|�����}v��v.~��Z�~�=]�
� ������zϦ
��{�×{i�@�u{�яe|��t�}5�+Y�~��<�_��F�<�n��yγ��z����z��ҧ�{
+�W�{��As�|���Y}y��<�~Ҙt}�����y�-�5y]���^yͳ���zf�
��{ ��s {��oX�|���<;~_�{����x��}��x�ū�%yA�{��y��
z�� r[{���X|���< ~�LЀ��!�Ix$�
��xg���(x�ɳ��y��<�[zR�{q�{A��W�|Q�l;�}��p�X�5�=w��D��x#�Vx��|��yA�>��z��qA{�
WH|
��;�}��E��D�ۉ/~
�)�=}��f�]~�|��~3�H�~�o���~�T���7�@����v�w�:�P�'�
+�m���m�������'���{�ƅ�m�����S����B79�[����E�����R�ք����T�Z�T����k�ロ��l����`R����T6����I��8��
�s���σў��l�J�W���N�q�ĕ�k��pQ����6F�ّVg�R���L��������тs�{���$�|�2���j����Q:�]�L5��B�
����⽂ϻDʪ�<�H�~�˯˚a���;�o�ZiƁ��cP��ڟz5��Ş`��6�l�L��Ƀ���±n�G�I�m�
�l�t��� i.���PU�p�|5��`�m=�r�\�Q��ԒȖ�U�u����������e�̀��lh��̳�P�$��5n�� j�
�z�c����ׁؖ�耦�o��n�&�@�h��h<����O����59���������
��||���|���%|�����|�}��e}^eƋ`}�L���~�06�
�����
�8���:���Ô�V�|��<��d��\�MK��ۄF0V�S�
��e��ֈ�z���:�ё*�y�T��e�%�p{�+�cM�h��J����;/�}��)�J����B�B�o�������\���Ί4�yʼnK��bH����J�9�{/�������X���c�[����l�B���b���y��x�����al���Iq���/]��o���.��������B�7����?�y���wLj ��`��X�sI��V/4����e��i��8�~���ż�+�~�I���l�w���\`2��}H����j/�����[�������}��k�9�p�#�������v��9�x_�����Hh�F�f/ �ʟ���#���ѹA�1Ҷ�ۈ�ˁ�l���"v
+����_^�b��H���.ӆ�������ɧ�M{Z�G��{k�ȗ3{����{�r�|s\.�`}D]�I}�)���#��с��|�І8�ǘ�!�u�ńO�Ǔ���q���l[�f�JC��g�o)L�Ʉj_����ŭ���-� ���ޔ��&�X����pz����Z����B͎��I) ��= �e��X�O�Y����(�^���W������oW��Y6���oBA�Ǐ{(��� ��l�{�.�f�r�O��M�'�럠�ّ�nnb�W��X}���fAƍ�
(��_�N
+
������Dz��E�w���)�Y����u�
m��ˡ�W�k��Ah����(��ɚ�
+q���&�R���p��ܗ^�岓�;���m�]��Wm����A!�
��(��L�p
+��c�F�T�����V�����f���
��?����W��5�Jݛ�JTJ��"�\�
�"��A��D�A�13�af�w�}�0;�(�::-*�Q�O��N�۹����y;ݳIt���S+�Z��C^�v�<I�gQ���
8��|�
;��>Ȉ�{�] �v�����Lu;
!�Z����L�Y�ʗ&$���G�f��|�a��4���'�,��F����6NoyI�
]�لf�$ZZp��~�˔oI���S���U��D� �Л��}K�nj��C(?���l���?[N���v���>E^ =HK���\kA.?�&���;�b�W�
�F�4D��n����
���,���#7�~��IR�3�
� (�,��e�u��j`F��n���%,3��������N�
�&��(����J��.O@E\��>'�漉ꂒ��>̏p�&K�.�Ǫ�����uL���$]�B�V͟W�(
�圴xBR̺*�
�a�
+���Y��f��y����N*�>!��-j���潥{8��Cp��r� +N�ĘR�v�����n�e< ���Ic��w���ߩ!���.�tpm�S'�
��c�,�FM@��~�������$�iH��f��E�t}�f-����hNd??��{�X �y_�>F���m�q����+c�K{�$ K؇��`&qT ��b�nr�,{�� qU��擄�|ܱB��b �7p�fsi#\��%�Q�/���Ί|�_I��p�}�@����F �B
��WD#��� ��&O�"�{\g���Z����(�RSN?�$Q�¿M��G�,��rA����U���p�X ���ʓ9��W�ixuz���>/�T���Ʒ��;��k�d�
��'e�1V�ń��b4n����_��DX4�. _/p���0x� 'k��f�Ķ��*w�-�Nk�.s
+s�7�)iE�6���a�?K�ߧ�K4;rg���)x��`pi�g4N&��͊D��Zɴ�$�7a�
+
+��}V��I�.�>w:��0˖M at 7�o���?�n��nU���|/�OB7M'`�iM���y�v��
���d�
&�r#�Dp�+��Q��1�fh�2_���$�gG��л��6'����+��ɩb�X&C�a<��H�L�� cJW��Qg�W�Љú5X�o�0�ɋ��[�L�:�� �=8����B����j �䌟Ha��
�i��c�z���
#���^Ө�#� )y��~ݓ�Ŷ��6��
�u�����{�}�~���$%�Zk���x#*QN��}ա�OY��M�b�Ҋu?�cjԻ���9ڸ��
z�ZP�����b
����&!V��:
�d^Y�
�l��W�ñ��r'(��E�[�Z��QRD�����n!(�o6���RMZ�X
�YyMX,�e ���F�EkA�5Dy���,T��>6�-��SqZWuD�}���`H:)�
+_
r�H�h���7��zI�M��ߊڍV-�SC5}M;�ŊI�Kp��\��G�O��C��D�������g�#��H:Sί���
��ߧ��P;^D*ĭ��KC��lDS"GD� *�} T�<�N��ٞ/ :��}�=�>��HƦ������
�]�����_}O<���duw
��nf�o��-�E�?��xG�}1��j3�GE�ԅ��:[�X�|
:k{��{��
"?�@���(�>C2��=Aw�|}e��b� �
#�ڐz^���Ofafs���0���O���5��&���Z�;M��^9�(� �"JeP$.��s�Ù
+Z��C��P��������+��6K�O]��S��\Y��[&�-�s2�;6Hp�K-";L��\p�\�8zب��[m_�;�i��B����&}�睾<3��^��`�(�b�
����O���� ��e��^SՈ2 �����ue����3�I����M��9�O�R�3�O�j�G��Wb�SQ�"jP�
�8Tv�'��*��v�����_�.`
��{�g5�T�
��j.dפ
�~@�3
P
z��F������{�v�¨s�
�~�^�ውs��G�l+T��$ 0l�uk;Q��1:D@���@��Ŵ0
�Z�����ޏ�B
�7D��ERE��i�sfΙs���4�i�w�f�I��i�����s��ǃ�q WO<�|��^�z[���5f��ުo�;�
�W
�M����]�>ƠN��ԫ�)�~��=3ޓ�у����2�_ڴ�����u���k�k2s�Sw@=����<+��`T�"F�
.
v�D�z���]#Z��%�J�7��Մ�3zz��:�:����7�/���Ԇ�/m/��&���mp��]�m�4���l��:�S8��
�T�?�_P6�[�
f��/��U*y��n����_m�5"��
K�S�:�3�0�����N�y\�:���Ɗ
�Eœ�n����a7��:
��u:գS�G�+2���8�q�s
��U���~.���}n��e�m)7��
�����Щ��#����>�[�px͚��?lT����BZ�n�pS7AeGl+z�
�7�#�G�V�z�(\��#���ˉ�N>Y=G�N~Ë�YPiA4��� z*M�g at B�b�����$[���K�xI����|N��:80���4S�Ak�м����Ð�E#��>)�6�ח5�
����ė� ���d;nd�i�9gS�w��ro5��),���eowgb����"���6��R�)
"�B $=��M6�
s�� ��zQ;����@~��]�
3w
ezֆ�] �\���Y�Qi$�I�T���pAG(@��o�n�[^�3����ӯ�$~�[��:���\,!���a9g]�JL� V�ņ���O�f/>�W�ɲ�6-
|�1M�ml!�VS�lϨP���2�-9�?�E�o�UD���+$����$ž��r�&L�mK�čN�;�`
+u�co@�4�O-��ҭ�D��Q��S�$��P��ȣ�>�sԷB�,u�)<�-m��M��D��A���n�0�U
^��B:
O��+�=wȼjS+j�0�)����#�^���1�%>/�Œ���vrL���x�B�T�]ְ'�m�4z��+�����Ls�r�5c��t����`1��;�n
-��Ӟ�`'��n��C��;A���/
+��O5:�
�_�*Ѕ����Gٹ���B� Ȋa�>��δEgMgY>���=�OE=��ʂކp��|�<;��(������la�hp�`�G%ß��,��~H�-��h5��ʑ����2��q�*iEJ?V�ŭ���?<> $�=p ?�oV]�
��@�P|銣�4��˧m���B;Y=In����+6�nS~�$�nѐ�6`I2f��l�OURS�6� *�ݰVD�(/d�S;�]H�4�I;i�5��
���l�U R:e����-�ǥ,��u&RW���R7jF�ߩ!�Q�A�Jq��'�X���B����3`G���Y�-n�d1E�H�VP�w�5攱�<a8ոw%��J�t����r���b�Z�B�+s�q�;5&0 ��T<9�G�+nJ��w�IL%İ�I'p�a�w�=P|���>L���y������6'���\~�] q�1-��x����s
(
1E���mb̍�2\�<cΏ�8v|��
ls.ZڃYp��ch�:��h�Oѓ�E��?r��v uF7 �JD14�)
�u�x��
y [...]
,u-C�}�~�R�*�4��}G�#�֩߇���
���\�L�0�ԉ\f��G��ubQ,A
6�\�Bk�
�I�/��+>?�ɩ���d=ۉ�6c�ƺ( h˳ʩ���&@��+�f :��/�}6�y2
+Ԭ�/�˴jO}�������\iv v�n'B�^��C:�c���c�K�no^�~�/���6���3�!��"F��]�i�;�T������߄����3\�M$�GWD�V16����t�r�Kq�`��"�,]�$!��I��^IH!-J )��zXPV�r����
z��>���=m�4Ś2ᶍr��tqUJ:f��Y��S{�ץx��[�+����o�eS`n&2���jȟU�zǂ?��t�fF�������Z����G�j��3]�k�w�d-2���
��m���KYFz����ޞ^�J'��t"u�~�4����>�ʮ�[ Vל
�.U�q���mx���u
+
�P���X�7TF{r�e�ɔ���7t�� �2x�\�n�t�N���m�![rt�7��O�2��d�!-���Y��Z�RC����-���=!��9��7@@��v1h$g5+���E����sU�Ū�U��B��G�\x�E}1|�kq��gM��Ŗʀ�l>�y��<?!���xvJ8�?v~���G�����fŷ�۳��]Q�
t����P��nR:�
�ŞU��WM��9
/����
�r�g� ��*�7�[�5{e���.�;$��t~�h3�t�����s3i�86����@���c�Q�P��y�˅i
�
+�=1_:��
E�*�y͂-��
גhb1ن�G��M~v��L%j7ӊqo�+���g��Ξ�'HR�X��r����k��Sb��
�i���u�X0��������Qz>��
i���4t!.^��if��K�2�k^F:�/��b�[�
� �`߱j��q�
+���
9k�&:p76W���g�K`��~���v�it�*
oaY��2����»W(�-�}=��7���AրY�'�ik���pl�Y_Wz�*
�Ka_^����xGZi���|mo��2;��S��ҹ��6YD����n����t
��� �1V~_2���;P�j?�.�רpijyr
�pxB�
�n᭼f�j|�c��z�Nd-@<���,T�+��j�IrUOV@�{x��)
m+4��z� )��7Q
+y3�V!�Yk�,��U[,T$���
Is���D#�p��
��*��4��*(Q;���Y�<P�-�+����g|%b��C�_X����#��^Y<
��i!�
�Q�@x�v�����O�sE��;2L�E<&���
����n|G��W����_�@�AD��;��թʜ:t�WY�����8^u<.UpY� l�ǒ�ya����
�
+
e\#�:տ��V[)W�,)�Ig�/R��ֆ�8{�Y��0!�_��Vΰ
r"r���F
![���]_�V��<-��^1�R��VoL��Ǵ)�0�o{ρe���s�`/� <G���@~)��DΟ��6��&N�K
+��p4��#��*L��ëƵ8��D�}�� @�� Џ��ĥ�����Eٱ�6���
�n����$�R�;��@1��ר��<D� ZO�J
+nΈ#�d��Γ�
inW<�U�
+\�i����]r}�l�r啊���"j�����oȠ=Ϝ�gQI8R�
}��VS9����AY�i�8T�Q����� �ޫ��%dRu,����XQo�"�� �;���[i!�lټ�ڈ�1D
o�U���
d]�~�q�x�:PȊ2)&�ׂle[�v
K$
+��_e�P
+����]�_l�!@� hcTW�T
+�(�#_�M
+�\=�ů�Ci� x%�\6ε���uO�24�
��U!:MT�|\�!��S5��"� w��B�k�]u�x�(�k7d�5-�'�U�M�QK��
u�
�kM����
B���F�7
�y�_�g�t�_M���/p��i>Zpm6&���6
,rEi�E�ŏ
��? u��Qر��K���m�Xo̳�al ���36��Z?��A)�V8+�}�Q���j#�y��j���-O+�z#H��44ۼ�tbjP
V��曖H
@Q+;q�y��
��SS������$�>ڥ�n��fT��ݠY�l��_�H7�H���Bދ<�v��=�c����ljHg
�
�XX�Z���-QO���v���~��BTG�<&w�mPwJmr^�8��h{�����SK�Ŭ�SM��*Ue А���
?j�s���Ș*����(�P�7��T�����W����,�
qT9HY%P����R��J�P� !�͛7�I�
H� 32 �@ ! ����^d\�
+�V�
j�T[�xs���y~���W�'�n7�˶�Mr�u�]����+yYOUyi|aǞ֤���M�ށ���r�3��u[��J��ql�}�.�
+�)L��9kHUܥ�OV.);�G��mM��[�d&�_�Ml5z
�sru�)� ����[T��dU���-�܂�M�>��*��ӂ*�(�����v\Q.�(T��»NCT-�����o8\
+���|zzQTc��]3�sV�.5��N�y�N�t*L���Ħ�]a`���3����1b|fU0��ٷӇ�k
��ѼsFaD�Y�
�T�To�Ilʨ~~*�|P��|]�����}��w.Wj�����mn����B��uR �rFޔnb<�SJ̃����r��8l'��m�(<���1ƲN�թ� ���
�[
�����#��'���/�㣀�і!��A+܊�zӭ�L�Jө� Cq ��prC�_�
+�V-
?�J:B��.�
+iժM�ܫ�O�3-���*�)�8_�����j5�����UUl�
�!����N����晌�?�_��c�*�/���xh��Q��c������*
����
�2,��l~�����4�1WujA���̲#�'
��*GrJ�� {�
�.`���@yFƆ���@щ
��i��Ƭ�� �M��m�˓�@{\�L���3�%�lr#pv������
W�G�
hD�\�{�_7U���Cw��9�]�����"�D6���ۤG
�+��+��=E�eG�+��`˖�,�J� >.N at lO��3�0�?����SŨ�pbca��$��g�X` ��W�
��=C .{�eT�Uhq�EaIv_�1�o�K�w�-BwYu��Bi���m b��
��ҡ��F=3�v���h�b r�G�HΖ�6�+beU���b�5�,JVi>2M25�2�]͐}��ܵ�^ �A�A��
h�I�̉o�;TA�[?��#��Y4�UOm�����%�o�_f��(
Ϫ�m�:� ����S���+�t�q��4W��;�Z9����n?���2�PB�����p�w |m��=��
��H�
3����O��&�h�~���L��J�x9g
����.���%RjH"2M��{�׀L����+��С�
9�� t��C���4/�<�)���H8��ֈ��ޘ������dКg����j��9�
TG�6�U����BX#3hY�ܜ�(V��a�'8Cn��V ˥]
W)�����`�0�(Shw��h��
d�W�~J
ϋ7�"���j�����r��Q�o�@5�w ����R�X�0@�҅o�T�t9D�o��!��^��QY�jZ#k��hq4�3y�^��x"��S��jϠ�\�
G�Vؙ������5�k��6q��E�D�n�Z�m�C�Q�
I�MW�y�z�%��:
��_x�,��ϳ��%ƶ�� ���>&�����ˤ�nc��
���YЅ7��� ��hʬ���X!x<w&�}�JhO�
��IA�#��dG57���
_`P�ۼ\�,Q��h�6j�s���&�F���r
�E,{�2~>�{�5±��."!��1%
;��=J�70�� �`90H��
�ul
(e4�ރ/ӯ�$� L,�I
>KduA!�
�IhӠ=��4�,G*�����3��_��@�W� ӊ���a
bF��b&3]
sX
&��,�:3}������bT���g�e�5}��5��Q��H:�m��G�e^��;3�'2
b��O߿N�y��ѱ��������G��2^�u�!��2 at IO*�t4d |3#'V"��� ii��|!��KO"�
��
%z�
+oW/\;�
�<pQ�w;��'��)gk����nP�(w�`aX���7���6�I��jX\��
���txB����8Ӓ��z��)�������m�5�������/F�����=p�D��>��b��QñT���*�a����D�
�Wie}�I�4�*��9�VG��m8S�8"�U ���9���J���u��d �7�Gq�5u�a
*�E@!VhR�*��
.��ZG-� B
�,@HnBr���}�7 ��"�ت0�3U+�ֺ{�"��Vp���>���=�W\�%E(R��iO� ~_cڪ�]�1�B��
F�(u��ă2a
+�1�;�ljE]� ��_'�³���?����gaذ�~���g;6��d�
<���{P��Y3ɷ�
G|�_X�2YP
7���0Y�\���
?��u� ���p��
o?S��4��?�5�t7x�y=q"�;��>�ޔ����k�
�'�8���B1���Ǽ���.C�(#�(�ǭ�����x����/��ݖ�/��5��Q�~0�Wd�"�p���C��i��#`���LWZ1���ˋr���
�t�"�Vީ6�=�$Ԃ7�ćփ����Bΐ�cl
��p��U-p��#Z�m$������=�M�ǿ ����:8g]��N~���rN���Y�)���U�\gysn�Wq_�+c��j|���X��C�b��9����b��Z��b�;�o$�R
�U�(��=]�������TI#��% v�eI�6
�^�]�����ͯ/�2�'�?K����U�J&���Ky��� �Zj�z�,���F �V���JCT:�dIU?b��(��4��g��?<�%1��[/��
J
73n�\����I}�ÈB�6���A�Z�Vh`탬��T�Z�?�+�$V�V�&�X���7D�s��r�@�����p�Yy��--L���^/��<Í�h⤔{B��'z@,���E
+�Y�A�������ՂE2�i�,��k��e�a�J�B�*^F���
��[R��_@C�|�u>!�t�Q^H"���������qa�)0%\fȏ>w订q�I�G? 8�7ȳ{;�S҆�
+J�����A꺓K���s
��EG���-�"�Q ��0t����W���.M�S|Ĕ�/�E
��
Է������
��S����/I��
+:�
��
�*XomUnͲ���a��#{J�������;H�"5m5�n��D�P��Β�5����:i�L�L@��Ȕ��&���aZ�$I��IyNSgR�~Ot�>D�(�m!��ߜ<�c
+�x�R�f �EԄ���*6�0<J9D/�4=�:�$�,��O���=�W��/�A�
+4r��I�
�Bb����P
�{�W�s�5���f��Θ7��1�D�b���z^��*�u�TE��lx��Wp���a�.D]P⣦&�<���Ϯ
+�6jF���_���8���-�V�
&�&��Q
�RD�(ѯ&/g#@�o�_١yj�O�
+4f�QP�+e�u��������QW�n4wn���}ܙ�9��Z�T���jS�ԑ0"�Yϯ��v�>�����HcC��p�X5�I/�]ﵝx�I�.ܢ|��)��M���mj~��_����_$��!� �-�̩L�1�U�����l\�c_����~K��"<���#����[�(a���/j\��2�]
�{��v
�f��1g�{)a������V#��߸y at X��k�a=�w�q�"��H�7ߧ���~�5F<#·kb3��(=��m� m!}�<��(
���sC�;�������t��a�>�}�
��<Du(�H�
+Y$�Z�[r����ș�%Y���`�Bc��aX���
³��z37QÈ�mIֽ!R
4��olRվ
���8��b�(��ٮk��`
ڗ�2�:7Q7��4ى��usɤ��q"'�tE�H
1��|c�sZ
���
Y������@1�\��&�h��������8t`�Td{�r[�do���>`/jL��Kʵ��~DM"
+��'ܶk;>��������+)2}�+z�%m�-��lS�.��4�uٸ"
�
��\Y~���ʹ|F���Vzg{W�դ��|�X���;X��#
y�8��,C�8, U�h����"����ww*k��[�w��8��M;+ț�
���(/���Q=������=!���O����2�'��
���:��˂�:&����2V"�.���}��rR�(X�p��CH��2���?����ԡ�q<� Pqh�Le�P��2u�(��"��
+�B�
'9��@a� �!����j
H]�ZX�}��?����y�7j�m���ܚ��qNk��W�Sax���*��Y5� ��]y0}���bꘫ�~yuԈ�Jd�ф�J���3�C� �ͼzX��ʪoUV�n|\�)}�p�v5���Lr.��j�9៥F�$�lS
W~��R|�-�*DP����Y�h
���
��M�_�/"�[
��/���\�kvY�(<�~�J��Ӡ�E�Cw{kO���C�=�N�+婨���G�
�u��K�2��KN����
�T&�Ѧ��0���;X���:IT�fw��?N�$?�R�b�9`%i~�'�
+
"
+��уu�X�ڏ�L�xy�t
5�3�g��A
gM���U�[�aB�Kۍ@�ހ��Te&s`���:i��+�k,b��Z
bg�B]���ܡۗ�Q�@ ��YY�V&����[co�ܤ��^�m������c�� �Ӷ���d� B+�|�܅�w#�Ȝ���%�_���cS����!
�^���k;o�ç.o"��7�VbX�M�W~�9;X�M��/�
�~m
+��R=W
�ލZ�����9
��j D����_�2 �mL*
��<����VKB
�ª��;���;��(-W���h�3��/�]I�[d�
se�$u�
))���T�S�o'��ϫ�}�n�Q��,g�TU���#���Mi�e
F(�&��'(cMƧ�k��
��d/I{�����J�s�,D�7o��1RGXV�Шn�6h�b[��Z��A�|�U��.��q^]�d~Ly�� D<��<4o�Ic����"\�d�RC�a
Q��3�ִy2�XÃjd����6\6Ҫ~M�
���;�c:,a�q�z���g��k��
9e�Hñ
��O�m�j ,Y-���8l oQ[���:E*��w�����ێ�S����FcA
v�̣ś�M&U�w��hW����8A|�.�eBD9��� #�䮲�@�Wj��a�\�~P� ���,��mW{�o̬8�u����[�P�R O�s�>����PJ���}}���{�������S�Pez�
+_n��*�Hq��-�=s��q<�4q�
�D���/�(��.D���+�� k�&��EH�7�
�q̚�G�\8<K
n�t��Ȓ��>�����}���Qo�j
�+����HG1jCo�nHWq8�`j�`I)�K��ԓ"כ`��i�i!���[y�������Q� ��q =С��DÅ ��
+���h�u+�P��?VMQm��
%Xc#�ބ����
s �Ty�����������WA�h�k7�[��F<��L�8A�+a2�|��22}�Uȴ�Q�>ͼ�kT,�u(��6^�Q��]d*
+����vBE���w���~�K�3���c�O�+��l?�w�>�
9�%�+�
5da�B�+�\
Q G1�iG˚O蹥��
�`��sQp��X.�66Oxy���O����ꯐ�� $���S�F��.J��
�4�p�B�q��sq�
��/g�[���jJ[' �Qd���M�����|��|��
�`���X_�cs�
#h݂����*�o;=kK�����P�o�B9WI?ɡ\��F7��N���3�)�6,����vi��͈�3(�
��s0DQ�9�
��f�J��t�^�D��O �
��dy ���Ţnp�_pC�k��h:0I�6�:N�����w;�Eݫ�y/��d�l�D�A
�z�
�=��FU�
��%�}�C��/~��|�/�>�1/�
����Qb,6lh�Tș�E��6R~���|�����{
+�пI~ �"@��K
��k�
���c2p�-�i�J��k�_�,p)�:�+7;�
��������
E�;�� /��̳�+
+���=�U������V0����C�#��3[�����X7Y��fLf5 �u�����n�ϒ��|�Uux�0S�I�l*��p�����5�@Z�CGyܮe��jKS)��@��M��A�����7�%L�w��
>�^�
�/s�jԖ<P�����lx S1j�!��'�>���� �A�:�-qf0X
J�QPt�E@�� %) �4x/yI^�K}�Ћ���;�.�v��Z`@q�ˎ�eD��y���9��s~���o���Y�8�����%�o�~K�pؖ��b�.�R�q^����պ)���5��GLS5/z���Y;v�����a�9Ŏky�=�D�Z¹����
C�8Օ@�fW
|dJ��9sM�y���.a%�f�D�&�����Ʈ�
C
z���2Q�9�����^��x��<�ć�'
)
*�$�v$/;X��R�%.��>J��o�wJ��؞/�1�����.�
����v��*J�
��97�w����N�x{��0/qy�/Y�r�Jo��4��hb��Z&z��@�(���4�g����(aw-!�L��v~�XRہ; ���ј!�_R��[|���0T��,dNd8C B�8+��+ ���*Z ����l7�6
�A
5��D�+r�� [�)}�`��,n�`�,.传Zڎ�ƤmN�B�e����V�<)8`�͛ǟ0�J��i�����uڱ
�p
!��7����I$��$�'���
��|qs)���눤��=�e���Z��
Q�Ĕ
B��������(x����tQ�/�
猁@�D�Hl�Nk>5�m�;"C\�R�<�/W�փr�.p��^�@I�0'$�ʊi��n$-ptem� }��A��Ox>^���� �t(R4 ^���mhi�������pUrYFlRT�6�
�Z�mԤVR��㏎h/T6�D2
����1��q���UJZ���L�1�ŠU��j����V
0E�-�K�'�*a�*��c
Bp\(�W�/�p�V��ss���}�,�x�)�y؞"\�t*G0��'
�G) ��`�v����R��~�
+�s�? ���
+O�AL-p�UJ�����+_Wf��+�r�d8�/I_I�I�1���L E�*a{��z`&�\ �&\!0͏��
�*~����rF���I�b�p��2�Uey����V���8u�|��
+:dM
W�V����I�-;w/��Lsc�����ix6J����) �:%:�
\-��*��h]~p���x\��A
}Y\W���D�%>�טǔ�l���t�����c7�`-
v�$���ۣ�b���5j1�J�Y����C��
�EŬV�$u%u��Vґ��ĥR
mG6lD����܊��������
+l֊>V��Z�+FM{���C��3W�1
Y�k��M|���L�X��d6`���K_�o�r�
bN�~H��!����s��?�^��D�6�3푮��5aj>���X�e\,�Wx�/ �=ԅ��w�n>)�[�~ ����G�v��K��m�!�0S�>�Wu�d+�vjgK^�=Q�����N$"�:���]}N��)�`�φf�,����ޣ�M;�ŧ�h���q�J�������6�Zy��� gaj6��c�O�:��Ԃ��o͏R�� FK\$r�)b��
+�L�+�k�xj��� Fьv^U�N�Rx����Q�JPݮ����k_
�P�h=G�*�
{<{��`l���`*]x��n뱘�&Mf�ڔ!�f١Dp-G�-�7���݊~C��)el�ԟ �}���hAic[eqǁo��%Kw/v��J�l�W�>/�ʾ���e=Ν��rl���o�Wۦʯ��̪�Ϟi���`��!��͗l����8��g�bL��Z �S��Yߴz�N��6m`]�.i`�Fcl3l����լg���lԅk*�zc��Xy�5|G �q�?7��
�M�c�N��6����"�/41�S.ӆn�L%���M�B�`O��l�x%0-d�+�)\���h=�}Ť944ڏ�,L%5�k�Q��E���?��*(a�9�9mܡxIڋ�U�����sn� ���| W��kM�����=3/Z�
�ſ0�Х1*��NJD���6�����t��(���jll�Bu�ot�2��~I|��Ƕ(f����L�T��l-���#��4 ]C�Wm3�
�����l���/���r�~�=��{�!��j�
]0U �h+�6�r�O�=��j���Χ%CE�i�V�i�u�/��4*�D
8hV.wN�5
�t\*�ƥ��lS
���H�6\������"�� ���RJ
��6]m�Y3eǩۤ5g��=�[�{j������9�s^��(�j� g
+���o�x#�b_G�g8l�t��C����ד�C����r����
Z���MQ�{
1�9~]��
V�c5O0�c�{��B��3��O�2��,��ؽ�n�/
Ev�~.M��ΚͿ�5����n><
���o[�`H�'�S4��%蚖� �;X����ɯ��,��O�g��a�-�b���V�8�o�� �E�휨[�Lmg�pӯ�Ox%�0�����nͮZ�����^ْ/{撢:%�9�?�*��Qu ��:�
N��
+���
Iri��m�Ű
�����ݑ� s�m��S�9���`kr��O�H�'4���=M�MZ�Ն�}�}�7ޭZeu���Ɛ2W�
+-a�l�̏��?���tc�!#���P�t]ע�k�����5/T'��T
+�V9ՆRRpv������h��N����=��8ҵ/�ί���]Zݛ�S�@����>o#��<�ķC1�J����N��>3���}
+��_�=L�u���@�&=+����^#B
�h��'7Ѓ!�=�tT��k���_۩���ow�2����/��I�{ ��<1
ۇ�A㺇�"lw���:ʹ�
ʎ=�@�*w�������� BO��'��^���SW�(7�@�>�� ���h��� a�Sm��p��x����p��e�
��T\�b�GV
X�f��H��l��$;���i@#p��r��
Q-�uk�d�õӫ!fUM���foi"����44�}����#�&�q(��<J`��<�jZ�������cN����+
��]-���|
�ա�:��-x��ձ&�|�����6Q%��.���
+��7!E8
�$.~"K~�m��(���/��H<Z��^H��}/����R#���E`g�U�=x�!i$�R��9�u�ˑ��
+�I
d�E�����ǘ�=�P�\�}�#W���[#~��H
��a��璜G���~���#y$ү���dC]0T�T��A��0Ed��r.q����0+���E�%
W�D1
Z�Nx��Ƽ���`P^�HD-�
���`+�G�u�l|CՊ$Obc�X��ۊC
�$�#�
�~w���]�\�� z�
����1�
�,�-���0���k_y�QoJ��ٝ�֞�E���4���ԯ�
�x��l�}lkS��y�En����ڳ�!
�=�|c����G�o䫺k�&Ԓ� l8�̴���������/#���=����'džΛ�Ws������7�U�ۅ��|ыn�!)��1��%No6�߀��DxP�H�tXiY^������{�s�>�9 �(.aB�bD8k5Ѱu��T��p`�[�T�
*r`�<H|�6G�
��cd:G\2DiF���Q�e,��%N2��!!],}�-�;�l?y�x�ݨ�b��p���3l0���
+5Fm�
KX�sr�;�f�gH"��r�s��쾫�]�oZ� ����KI��Bf@5jɿ?
xEu��[�K����oi�����ieGz=����:&~i��RN����A���-PG+MB�/+r���X&�\I�������%��#j�aUM7+��ת~��,
��FT�ޏ���?R�5
�uTz�b�8S&Ru��r���U�qN����Ki�x�.1�1K�9�_��JyLV7.
+�Q4
+�O�#х����~͖bE�=i
�1R"��a>�L0��E�0��!|��D��1b�VF�h�s_��Hj�����Lcz��Q��r�se�0��}=�9kd m{��Gr�raI}^�}��4��� 9�W��A#�O��)������-�#\H�+=NR�n5�"!�z�Z�.%h�
+�< ,J����@=GC&
��zP�� �:����\�{ �?Lk#x�4�
�]1���r+�ɼ�J%�X)��c ��X���l
���S�
H�^�x�[Ku�I�%Z�H"����
��"����e�F0ה�OU2�@gY�7|9�e`�5|���Ke�@�FKJ�Ѣ���Ӵ;��#��6Y?|�a��md0m���\�oM
j
�Y�U��KQ$��˰H / �b��#$a��}rN�Ir�' {
+UD��Zp��{�T��:k
�W\��Z�O�>����}߯���1�.�B!9�6Mr2�)�=
F�}�c�^�<y@\ȥ�Ta�YT��\C�Bt>�қ�G
�O�_�~W��Kq��C['��9��8֔]�#y�8�r�rQo����n��&mD�����Z.��
�+>k�3�%$t�<��T�Dvk-H�A i��`Q�,
>�Ӝ��
KX& �y�7���7
�`�Ѡ
��]I�~c�d��7"y�|��rD �R댏��Vw:¬H��� :R�
[Eq�J�D8�;u�MYu5w���t
'>
I�"�h1��
?D�Q`�)��a5�it�L]������
Q�%qR�N�9���xu]GvZP��B��?A��x��K��wЎU�t��>��Jx�ex]r"�w`c�;�>r��� �I(�
��%_�v� �sE��g=��rx.<v���׀���F�%����=.+��8�����
�Qq��.���I]Ŏs�E˃�s˅=�)�M�`A5��$V�~X�ӂ�Ǭ[js�o�9��L1;X��fwȇ����Q�����E��i�̌֕�~�1����y�ɹ<��b��~���g�ϲnh���r�cNⷠ�xv�^�F�b�uS��
��n2�[w���փ�|V����:�S���=��[PX���5��� @�
�6la����*{]vo`&um��b^i�=0�Uo�
+�ov�a�}�[#�W��K�+�9�
�8Pn�r߾^6�w��(�'�e��l�&�5]Y���3V���
kL6M��pZ���}o�ԫ.!#
&�sb��~
G7P�V�& ���
+��&P��U0LǛ%��ME��yjOz�O
�io���`/>M�u-�k��m���@�}��p�V�r�8�?�i]�c\��y��3�?)��|t5���,�oQ$C��%�U
+a�h���"
M�������/�t��P/�:#��mJ�C����V���o�/�
+V�4d˶c�*�Tt5�T:������\���.��!OK,�
+x��u��~��
̺C۰�����Ղu�?W0�z��wpZ��)h
+,�ZE��ۋp�����o�e�w�.�3@�i�?S��qÂhI����
Qfm}�q:�'%o@:��0Ӟ%"Z&�� ���U �,&�L�K�3�*�C�de��?�s�p���I���I�ޚ\����Z
�s�vQ�I���C:�Q�ѝ'�/۬M�Y�yQ}�66�Ou��V���
ֆ����U�4����)��s�ڕ�&r~i�z
y*�Qy��#�Y1L�
�FI݇�S��*]B�-[B�
��'�j���Re{hw>��J"������D�Fb�@��I�)&V�����4an� ��v���H�\J�m
G?�]L��$
��Qz+�f��_.?,Oޕ+�/}�} �Ó�8��z���7.�(�� ���UxaB
��+�&�����F*T���a�J����:�������
��EU�T���ߑ/t�b�,زf�~n��FK~7�C�J� ��䭦f)(Ʌ�m��q�e�%��]G���S
q;�0���L�mQ��IP}Qr at C^��A����������W��qj�Yy)��ug�A,˪�1��vU�A�X�_�;�">)Ϊz�6B5�⇖x��܇V?��T\SdM@�:S_m49օ���W�|�)�Q�6�.�KJ�p���n�594�K�5y5�E�7� f��
�-j�&ۿ�XhGm�o-a}V
Ք���c1mfΤ�
ۘS�|�
�]L�.�9�b��C���Ѧj.7��˺M�r��
�S|u����Bm1���Z3
x��j��
��$�kU��"�)K5�H�e_�w���?h�Jt�_h�ē�
5S\��AD�_+ҀP�"�4�վ/[a0i
+����d�憲*ꍺDQ�٦�(0�yj�,�Q�T �E�3
�K1����{t�ƾ�,M��#�{�a��C�X{�3]u�t� ��*θ�CWڭ?��֒�줾o��Rm� �
&g�M*/d��]�r�jS#�+�����U�H7
�%���~yȷ���"�ο�>�8 A"Z����
+DD1�,jY+R�P�������{�$`�H��$de
�(�V�
G�.�U�EQ8��ʴ�e�E�x�=����y�~G�
+���i-a�h�i�S��x�ӯ�"��&+�t��n�!�h]H9~��yJ��i�
+��kYڜ�����P�W)2;�q3v������ۙ3~"S'+by��'�H
D.���u���{��ה@k��=�"�iP������� �> t�[�F��� D��bK�K�W��`C���bh���3���=!���W]���D�}�ox���m�E�T�{��H+��i�bY�ƭ�=�S�\=J�uA�>)��S��8b1T��l7�U��!j*N�8���mCu�)ny^��#�,��Oj�-J�C
0?��H�l��$����5�
�[����jU��/_x�*�'����a�`�F��
�zN��������6o���5�+<�v��DY#v�[!��7��)CY(���}��ް
����!��X�ꢮxl����Y|�B�T�bQ�10�_/�����q��0A'��
Hi���xvlB\
+[��߃@�C��E5��Ns����T����th�i�<}0�V�;cۚ�����l��\�\U��3��V���
��
+��
�Gx����@��o��B��c<��o��|˂�����w�uÉ�LQ|�ʱY8
��e�� �5�Q���q�J��p������G]�es�M�����q)5<�iR2�`��z3쉒J�
+K���
J�I�9[q���p���̖�
���T��j�prڻ�$���QR���I��ɨ �_tp�/ǟm�Q���������(�x��� ��T"]�]����:�t3�!�F-&��eU]I���u�P��]��VY���u
��R=�����9S�`�=/M=�b���R*UNx{t�
H�i�˔����3�ׯyv:j`
SKd5Fa/��A�)�_��� C@�}DMiazťӐ�2(��®r
�q��� G8���t�neD~'�N�7��1� ~�a @���)���GT�`
�6n�洔P,0���]%�����;�D����9�o��l�K@��XN��m�|qO�鬀J�8L�T���.����'��g���z�ϔ����d�I���Yf�D���K5>�>\��
�Y������Z�y�PJ�q�*���eEv�1�"�-�!��:��u�,���
K��m9�
��{����
�B{(m
+�O�8z
^V0L�T�ӍE�+
��#0�\���N�j��ͱ���V[�(��/-2�dL�2���� 5~G]���N���#�J�B��g����PY/�V�k�?w\C�ƛ'R���_��p�,�{q@�]��t���*=.�J����
.�`��Y�ae`
�
l!�`��Աk�;@��{�k�&9��[۠�
�VB)'�
�>!;1M�`J+2�!�
=������]��/�\?=g%�蒓�\p�'�����f�$:�)'���B�.�u��s���Ӎ���QL7~�_s��y��v�X��#�X�բ����
��vX!���B~ ���SM��H
=@���"�s�`�h�~ �Y���
�)[Lç�=����׳+d#�4�{�{�2j����
�����W>��d
Fi���b���ı�f�
�0ޮ\�5Il�LO�4)�G�R���}US�.��W%w,
+�ٜ�t���F���o�_�I8@����P�y���dTߌ�EN�n�e�˕f*���\��i�T��ro^&�a��,ό8F�w��K�?�=�o źF�T`@}����~��d<�з�jS�W].E�hU�*�=�jKl�#�2����#��p,i���� ���.Cܗ'b����9I�[�ȂA5J���_��3�
#����E``�G"D�/����������#$n�sw�� ��d%b�7Hݳ�&�B{��@�a���t1��R<H})c-��7�
ďb%�Fp��-쪣��M
L�,w'76�K�����v}��n�>���3eY�
E�����Al�~���E�KQk�&vt�0� '���o�0�ɁX�O^Z$���J�
��L�O��K{O0�H&�0�zɱ
��.I��#l�$
-2��jFH����Q`Ry���$WEc�Ԫ��\^M�{
��
��b��(��
*�%CT6�Y�
+�@B�
o��f��H"+
�b�^����(rᪧ��z�ZDpPgmm
�����<�������]��h��Ȕ)F�.d��ڀ�|��U�-��
o8՚=!i����dd�@�
+��[@��R������$�
p��o@ �MR��Z��w�&��=��v~\��,n�̿GE:{��)�"f�m
7��a6z������
�������>5siׁ��m��=��)$�X����si���� 0P�h�$`Rz�,��BJ���U�v��W۫�d��v��
����Gk��Ǥt4Ez7;C��0*'$H*�`�:j���~���F8�! �D'�${��C/J�tZ.�H�dV T�5��*��� ��
_3sw5�Y�9VQ�/�
�d�%�rZ���u.���^��(J�c�W;���N���@8�=(���}��D)k�D�Et70&r�"x#'P���h�9��톲wv���l4�"�
'�;��h|����@�w+�V�q�`�A?A<� ��oqNi��\*�0��Ҭ^���\�}F�Jp+5���/c-o�$�X���c�����
��;v7�xsM0kT�o�n�ʡO�ļ��
�_�겓�:�3��V�Gl
G�|'�>w��5 [...]
��=��Uu��A ��ڒ���
'��+����*�I��
��O�j�'"��ϫ6:��U��Z|S^�M4
,zg�~e/�k��y()Q��J_0�A��z*� {:�x/<��,�G�g�v\���Ԭ� H[�ϴxPyXl���5�r�l��{Of�E�5�n
+���߄"
�$���3�vI��*a
kꩍ�1^&,/
1\������&�ď�w�
���琣1(�}��Dw�z~n+y�W�_(E�G��Tj�C]�.S�����o���H
���Ȁ��Rf ��l����ke\<�
+��^������I�펻�
�}�Q��#F�0�����h�4����t闉�x�HF�J$ĉ����T�$�o��g�*^�>�֩���D���1�g�ߪ*�o(=�¸8�Aq&��p(�0[���ݞr��lҞU�fe�y}��2����L�0��ӡG��� �%�m���L��vx�R�Q�
+����T7*JZ6�}�Ԝ�
+������-k��-�1a�y�מ?Cx0ۭ(V�^g|�b�v��E�PEkr�i���S
�kO�i-��`e��|
���nE �/��]����rU������#��u�
�oƂ�̺�~��ں����l�U@(!ũ¯,�XX;��S���L j����(�i;���k� I��Z�Iܙ<?M_9����JZ�7��5��㹸&$�N���K
�Zg9Kkdž[��8?�ML��@�\�Z� k9M.6�,�VȞ�aY~�%o2�9f�c��3�
4ur��]�,�#�
�K��ߴ����&K=p6���
�&
{p�
�@4v��6�F�VxZ�?��̓���HӸ"+�bl�%1
%�ֳ@+6I_�3
F�c�gp��V5/Mb}w�s�S���7P��I�1p�TW�y���Ei����*9��I���+����C�yØ�.�c�9Kx�o:����L۰��#�����(e̫h�{�����Ϻ�/��&�t�l]�D����
�X��a-��T�K�nU^|���؎;�ȻP�C=�U��W]�=�C']u5H��+�fʋ������a�mn+��������"�{�����[����� }Ծ��2�R���
��mSę���ï 3�x �Q�+%��ڣ��h�@� 8��2!{/2 $� dI ! �0Æ
+��j�^�W�nD�A�UAk��?��y�ϻ�ߣ�r�Kky�)�)� ����i~�g������F}
lZI�7_g\ ��u��ʖ��7K"{
��'.�Ӝ�1�<3�q
�SM��i���T� @>$�_R�Z��`���� ��L��H��L�>tYC������?�d��{�|���2g��#�S��%�%��^G&7��C�gE_����.
+s�қ*g���Pc��
�m�+6&�6\��#W<���\�_�����'�s\��R�svE��f���0�qHӘ�4��9�P�P���y�4xT�Np[�M���U�35.�R����Xè�.���
bҡt�n�f�-�-� dS�U����\>y`n�Z9Y`[wy ZX�j�߈��l|�4j `��ڻ�<����U.�z�z�
+MtLFg��W�qH�,��� �W/���G��3���
+�K�z
+�f0��
��3����=�)~��5�e�u�*�Xg�B-r�c�2d�
+[
K��o��t�'�H
%��Xΐ�"��ޞ�j�����:�i^��ڕ�ے�������.w^{��C�;��m���a�aOr�Y�б���� �:�~7`�3���
+\T{�Kr��f���i�����M���S@�)�"ٮ�Ά��C�;6U���o}P�
+������;��ъ�,6i0���.�eWk?(b'V-�>kG�z�:[?WA��:)���ܩ�����'y6��a�� ����
�Ղ�?�-֭��n�T���,�ZS`ws��9Jy
+(6Ċ
���`��77��Y����iq/�����(4�,Չ�GTG��(�W�b at h~��ҳ�罃�"��T�ცEQ���O�ƈ��ǰ�x�r����T*�����4'�[����h��?b^�,<h��
+�pv*�}ɑ%W��Qݤ��sA��-%UN�<��6�>�`m}r.G��\ͯ�]/d
+f
+�љe�$P&����l2H�"\�)!�S:��2�N�O[uH
�;U��$忕�
^ ?���cD�*�ڒ�s�8��|$� J�8�m,��n���9]y%{�柌�� ���S�xr�eT�24�
��
��4+Ԡ�b��ZkV
+�q��TF���bt�\C
= � �B;�\x��#2
�LΠٚ�@���K
Z|�o�B4_����e���J�
m{�g�<|3\i��% 1b\
q
9g�8�R���+�C��VPҁ![���Ѿ��W��n7�:۫C���klE�+���
AD:5-�����q\�4ں�2�
P�K
ɛ
��!�͌qTW�|Q
vl� ��pl�����L��O)�2��ـ��O�O&��ːd8AE�����
�
���1Ġ���2�c\�y1OvWTqN7��)���=��ߎ?�<H���&��ر�5�N�F
ݑ[��C� .����$��[/-�=��Jo^�&����=�͉���
�(�|���w�
+o
g��}�o��zIZI1�_|?�)S�&�&D
�D_ѡ
X�ET
&��:�
cE��ݹ�j��J��ԏ�w�T}8J��gea?V$Ac�xyN�"�u�8XCbT�;�ZvP�^�<{�q[5O`���(��'b�F:i�2U�ZiBn�fyx
��&�'b��
#�v��z��o[�K����(�*ߡI�"Λ~θ�R64'8b���cq�zop>�\[�H�"j�gY{�Hfr��
�Y�{G
�Xp�56�<h�7b�������ތ �%xԦ;j���ZW�d����9��Ϫ��<E�sQ����h�s\ o#����5�o�!��������_�.�x잢�E5x�$��8��eO�'���˨�a��^t�ץ���W�DM/�*��I��-0��
��bFS��d݉mfy��������^\<�.ϓ�����!�DN� ���F@�B�Ƨ���l=�h.5�
e�=��L����
�.,U�S��|B�#**
+V��+q�6ʽ����4]�[h*���ݫ�h���Ϧx�^�|.X��(�F���)>�'��}���7Vo�1S
Ȅ!P���y�2uUK�M~���c��j�Q|�w�v��)�%)�x�&4Ɨܴ�=��[=�������:�j��� �
=�E!*e� �0��)�M\ A�B�
��$/��#�˞@ �@uQ�:V�=����;ъ⊢T��֡'�����~��;���5|1��+t������U��m��h��M�(��
h
֓�
zW��߰����J����
���v�i�*Otwb
+��/6%��;�%�S��E�+i#-FO��o
�+�В��Ȁ��`��X^�m�/
��"�V���ION��P��>U,�?)�O�~Q~J�
&U1���]RG�X@�.�" �]����g���>c�t��1�=�����9����譖�
+t�E�������W
c
��{ſ���s��~䯜��ty
����rM�ުN�I�U��' /g\�"R�C�t�/���p����.�
36q&X���J5'Vm��Ä
/^&����[���4��-��/�J6̘���~^=�� �d�i4��D���dN�zI�$���w�gFZ�
+Eq��v=�EX
���u�������+Hd�1�M���`�%�(�.~=�p��O����U��3m2��6�ҋ'2��s�Ǫ��J�b�4���`����9��J k�ڕ$��,w�� �Sz��[��Ջ�w��1���ì�-�ְ�9nB���]�
#���TĂ~[��P����")����Ȇʪ5d�x��&�;��(7>)�@x[�_F��ʚ2���ؽ垼�ܿN �E�_���K���P
e�_��1�g�� �i��c9&O�R���@&e�&��W�z�GZ�˹97TQ��9��V�7�n�H<�h/�lv��,Nz)��
+�
9
q>���B�\ZM?�a�P-'��Pn�*p!�۔�&�(����k�'�)�
�����wHE&���,���-�T��w"��}�?���'�P^��z�t�U
y�K���j�?�����m�b��^
z^xW?�'H�N��R�YnW
��&b�Q^���b:�����d�;$.x�=�
+&꺽��̬yq�d$ڮ�W91ۯWer�'�>�η��N�P.�͑�����oZ-�%K#k�����xcE�y1��c����T\��3
"l
�1EWUx<�UV�eۉ
�3ۍDK_���-�
�;X[[t�U����l�<f�.�R���4���S�ϴ[2�d�f�r�zS}��Z�V�u��U
Ӗ�#� ���p��V�)V��]-��퐢Y��ߐҧ
�L�a���Ws{����IJ-� z����A<�
P�Њ���vE>&�12�P<��@Γx�� /�dF�"�HH�+��ǟ�, ���
4nW�i٨�
�.LT��)�u
+~�&X�@E�~���ԚPy�g��&�똫��U$���@���-�2o
?eR�=(ۦ�
+t��h�=Kk
Տ
����]�$#�%��K�r�[�b�|k�#/A�最��m�?<Sd��)�#���Y��8�ƕ�J>6زRZلK���a�Z�
�4 �|�{F�"�=�k̊�_Ǝ�d)
+�חVf�o�-sI�h,�ֆ����A
jr&/8�TPi�
4
�'U`�Vw����T��̡z\�w�K�)�GK�{�@}
��ˢ��)�(�\� 3S�S�X7H.�����2���6�V��,��
+嘓�F���\0�kL[�W�
+��߰l�����XS6�nj"���}�M�ni�*C;� ��X����n\Ļ���!�fW�iC��M^�����>�O�XKֵ��C�u0�[�
���э�S��p�����yA��`:N[
��u�܇�!g5�a6����V
�)��=����s�4!�G�K�#jnܐ��|�T�#}���6�>�QU�M~V��
sFn�:�DH���1
�kG�F琝�|��
a���w����W�XkS.�j���j�).E5h��V�,b�)վZ�k��6�V����]z�eݫK&��8�6���<Xv�^�{�c{����&`l�'�Zf�r<?�.��:�}e#)��7<&�t۵J?���֪Z�E
��9Nw�K�[���Y[��1Dn��67�Tb˿(�u���6���8�ٓ�r���
z�t�B[7����{�B����n�g�W7����
� ;�?Êf��
l��m�sϒǝ��P�6�،g���Ä{���Σ���0�G6�ʮ��.
H�BD�D0B����,����$���@�@XD\Z���i]��[G�ZQ:R7
�K
l�s���w�{�s�s�Ϫ.BD�&u1,�EW��[��*\M�b��xx^����T#
��
�ND��;�A����^ [...]
+3�iϹL������Z� �g�d2�Ĺ��lFW
1��
5��x�z��:
A-�TA~Օ�^~D��
̭
Vt�'�ݷ�� ��°��
+ hH&�a���:���$�!
� n:(��A�
�"��t���p E8�p�3�8 �&���E��o%m�ZE�N��I�
h�P݃_��G
�;�_I�Y����� �u��g��� ���3��
����@���o!�-�l�?�%�=�8�y#�� �6��l��0�F���$`��2�rP��9�
�h���?�$�/��(( �j�x�g�x�|C,�88�^P}�x,�f?-Y��.�pOi�'� ,e��ϕ�E�j|(����ѐ�����@���
Ň�o>���4�~n�T���ִ��
�uȶz�F��Y�@���A-��
)]>Sg��"��
���hج;
<]w_��_T�Ż���h[ �M˔
����X3�y? G(�Iqy�E�բ�i�1�
�J�Vg&&�Z����
�2{�y473l|�"<d<l,y!����V�:��T�w�+�7
l�����G'�R?���*�����l�Z�G�R�}� �<��_�<F��z�|�i�����0�I+=W���'�]�N7
s�I�s��g� Q.]U�O�)���H�.ID�y�Z�e� �{���rP��ru\��AK�p�'"
٫p�̠R��r
+۬H�0���SK���:��
�*m����s�o3eS4x��b
��i)��<{��[��1�܀�t��s�䭊Q[q��Z����ucQ��K55�1���� ��_ZrOU1AW�Ć�k�?���$u�ꚸ���zMJr_����
H�E�9��Μ}0�l�-qQ�����Z�r�����N������ҩII�:�oS۲�O3�6۲a�&PbiΟvy�$����C�&��M�H��_� zM=�� ��0\�bȷ�'1�g5��]Bj��y��A��*������V��0ɪr�M<���L�J���P��
+���
�0� �w؟�
v��s��Q ^�
���g+ŘI�牯a� �$w�+ԗRPp}g
��P�?�{�����7��y�Q ���:� �
C���p����1�Z��L2����J]�
������Pg8ӔZJ'���9�
��
4M�1�˔��7d�S�'�ާ�M�ٖ���g´�Ҷ��j�qxO�
��Ҽ���8k���
@� ߥ~��N�R�R�(�������l`
d
��1Dij*��LT��
��A/ M�^�o��退l�P[�.�a��of���ۺ���Ԛ����N�*��h��զG�4K���"���P�R�+V�.k�,�[�*`��D�$z}�_�1=!Wנ�Q���7U��l����FO�1�]e����@�� ��
>w
+y��
�P�N��bw
d���B6�L-
��}�߷< _��M2X8=��I�"/��ȯRM ����L�P��!�d
���
j0 Bs*��
�/���
g�����X'w[�)
E����
+�d.TS�T�l�<.���TB
�M]A����I�6EN{/���E�GQe0����
y���]�B-+ ���ԓ���)���!���H�DJeۜh�ҡu��ՔF #
�N�%�܊�P�/��JT
IX�zE_��OzL�R��OT��:(dU<0�S���)�6W��;����=q5��#��mҽN�t+�z��*K�qI��z�
v��kN�
���z�Q�ZObr^�U�� ���҇�5;�5�3�낈|����o�|�J�����
sz�T����,,j�^��v�nEC�lk�� �� `
V9>�J����Q<gw�x�
/
@_J8-��]A������(~nOeC�֏�h�x�ۂ��j�y�Eu}�5u�q O�a%� AeUBʞ�(�TC"CBI�{��y�!
+"Zy�u��jU.UoEq]T����EE�JU��zm
W�����9�������a��O�Ma$%MХCR"͐��)g�,��,���%��G��V�g����
s�����"@���W����D��
o0�O\�?�T�]�����B~#���#؍�b ���8?���y�� S|��^�J*�a�ʧ�4�rDq�D�S6�
3��۫��Ӫ�<2���.a
�z~���Q�| Y20��%�
�-�<
+�0��vv���
���1t��ð,�VX>=����o�u��*�
�c�X��
��Lm���t�u8���o�$t)������ۭD���u'�������N�H[�
+h���-��ڐ�yt��x(�q� �!>b�������"jtC�F�6��o�����g�kP���
�� q���
�ym�|��-+܊wH�
;�8WUm�z����(Y�;Q?;Ӯ�&!�`�C��^�7g
+�~T���
%
�G.PAU��=$�ج.n�#cL��2z ���_i�v�&6��
? �i��Z}�����_d�X>s��c�H%���G���}�
�q�r�K��4��xC�~���w�6�a�����^G����2���,٤���B��2%ų�1����s�W�eK���+�"@�3eL�6��2ƣ
�D���ܥ�U�c_�Ebfst���F]\:�B�����r-�2]��i�J/r+���tk"�$��r��Ů��,h�
6_N��}g�E��&̵�&�Ms��+�[:���kG��q�C�}�)�g���4���(
W��X+�ߝ�
C܊f���
���vh�|����e�d�KK�gonWD�s���'uV�� �ȭ[Wc�5+�j�<ي���X�����o�����<|������M�+�7�8ó���[Fz���
ƭ��~��O ��b�D�S������<�
��+�䩱5^��Z��t��ڭ��9���ƄP
��� [...]
T�;���]
�v+�UY���j�
+,>��'5e��e1���岽ᾪP9�w��]
xpZ-C�E�_$� �)��e����
˦����-�߰%j��5ǧ�R�l��h�\�dguHH`r�C��MHO���ʔ����^�ް�9fTp��.B���g�bE�K���l/�̒
+{4,]�g���bs[�U>��M���0�u_��M�w�h`mC�꜂%ȟ�Q3Uug[/��|�
W9�Oo��f4ջ�n_TI[X="�ɺD�ѳ�u�������5��oV֞-w4���|��e�����_�D�5�6Ά#�x
+�s�y'յ�ιRy��K+���
�(��Uֲ�w)Y�tڞ�{�u���{0c���qͅ��'�D�x&��
d�'W�sb���Ǹ��n�W�lx�Y���f���Ձ��j�H7*����5",�W}�8:9OM|3�g(����t �k'���]
��[a� �Jϒ5��J%��-W�I:�u��#���Ul8E7���2�g�+SQ�kJ �N=����$ �"�5s��ZsN/����/}�|��
ŇTH�֜��AR�:�RqSm���� �2��K4If*L���
*�+3[�9�9�o'TE��#6��������d�z-żj�*}�9�"$��p��4^wK�?Rۍ]�=�𦕸�s�nN�x��B��]��j�[���M����:Y80
�q
���!����NdϹ�B����r�m��!�w�+ۇ^��kI���]i
@f�Y�*C�Rپ9�TZҲ�Er��{� Kv9��s��;��g:s?��G���0����u:
��� �&�o�
�VK
d�>��A�)�
Qn���06$�A�}q�w
+�A���
�*
����Q���U�l���Ƣm����֧r
a}!��h�U
<�������2w�S��h���&;��e���f �LB�[uY�(
+7N�v�c��)I��腦H��C&
�6�l�
Zgj1<������6��`���K����`�-#$�k��.��=�'p�9S�8w%����w�Y�,���Vo
��X\u���hM����都�5�Q�JU�Z���@A#�Ȑ��ޛ�_&ل,!cd�Z�Vi���핫��QGETZ�zԪxպ�^ �?�������<��y�+���� �����d���/������qV"��á/� �4HIW<�n��n
+��r���a�8)�l_*�ߺ��_4=���3
6���
+"�<�F�k7�p��g�
䶀@
:�/)��Ug�����}��jm�_q��� p6xN���տRl�M ��j_N�q�g�۠N�n�
�S��}T�����ôۏj^ҍVO�B�{TJ��( ckGU����|U|�wnW��40?Q�-k�G`��6�h�նA���֎�[J�O���韂@u/M���U����g�}����=V�
�pw�
+���c�� ��b�}P!���������WZc^�S�w!��Ku��4�κ� ]��ZYٟ*o-q�m;O��tUlz��"�y��?�C��ʽ��d_H4�x���aR��
b�{b�u �L��?��2��;�����ig��/Jб�#
��;&��R������5/9�k�%^��
����
�0A$�X�������em�2٦�,R>
�3]���̽ 9f2j�
Y7bLb'�
+
��Oy=�A\��/�L�Ye
y�Z�aO
3��Ǜ3k�5�#�M���م����_�u[�P�zX� k�_^����!{�Ɣi�5���Fvڄe�!3
g� 9��8]k�ui?�o
5sUn��@Z�!Fz�U4m�f�e��lr@�G�<��s�x����s��sû��
��1%?8�e���*��´wƭr=������۩'�ᢡL����&/h��%Y�6��aG�����Kn�߅��c\��'��=2��_�,Y�yZ4����V���A
�G���XZ��;�Dn�������8�|�:G@4���P�h�A�?��;G�AR�+���g�.v0t�Ʌ�7H���|{[eww�WS~���
��>D]ŚŞ�H�ظ���^ �ċ�{�2��I�R�U�n�7T��j�+�N≊^�fʈ`f�0�G1�
����BK `�p�̷E�qk�-q��p�k�o�1?HkHpB�|��]d�6�z@�8ڟ&UG��ީ�M*c��lAOYU
���Х��A�טy�7
+��Zo*���&K��x���]Ls� ��b��_�fN��[����=f!�Fh��\��6�D��6�G ���SI�Y��np�N�6;Fʳ
+Ɏ,|$�R�N8�l�>)%#�����G|��)e��.�P��G[�sL��w�lE
nW���ͮ��]�dȍا�2p8�l��!%�
iFfw{�V��V9Tx�;R����Ζ\Y��3
IĂ<̠�@�3�B `�i<�
+�̶ ����[�`�/�FZ��/*�͂.rH�9����o��0���&����<�Z�E�g��*�幝���
�B�����!a,?-0B)
�T���ۤG,��9mZ�
�.�
���=��)�
CW��ĉ�z�>�` F�#]2��*�B,XX+�!|+N����J
�1i�y��qO���ڤP�]�)���r����V���W%����Ա�^<�*�t���<{��Ds-�%m�zG��٥ER�I��S�P���@C�Y� ��V�W���^S�
@|^�Jl%��
+�{M�R9�L�RJt�5;P���g� �)��Z�V�r[A
��}�J
�{���a���u�SJaȽ���w�p���
�x�ԇx\��9�9�Muf$�pw� �5�UgJ`��t�qJ�]=К̓l�6�\ŋDT��}�iG�^;#��ն
C�R��{e���)%SW!�se�PL"L��Q�6($���Wʵ�qUۘ
����h?�!��ŤR뤡����@�H&���i�k:�g����*�eq
�J��t�m�QA�/�?IH���|vR�^�y�n�%nz��^����$�BX-�
$sD����,���RY-:L-�_b�cЅ�X8뤸
n�\��ISpK���QّP�`�\��}��R�+���r�23��QEp��ѩ�d�U�9`����
+`i����t��n(臺��|�v}:�+�)�?��T�aa���
��)�x�U�٘�/�6�b����ȚBS`�,oPd|��Fޅ��]�QM�Y�D �MPY�BX,�DPv�-����,�=�,dO�$$�T�0EǺQ8��k�)�S=��Q�Td�E���|0������|�{������N�`,��j�!�ے,�#��,s�S�
+kv\��g3Y���s�Z�s� S{d[F�6$f�8f
Y[̶=�c�ٚ�N�`�)����U��MWs���;G���w�ƴ�U����ƃ�TF����������?s��\q.�9kH�+���R�H�j���k`� J
L��М��e�`��3���o�.��Ą�Y����CK����������˻��0�ʟ�m^�}��!}�k�:|��&�П��^$)
�T]���
�9/`ir����0l.�0g�g
+
ʙ��t&ócR��������.d/Pt/W�{��{�Ҩw*n<��M�0�%[�e_IQ��p�r����]�\�;p��������(Ǖ]�������c
�jt�
�-5�S�� +mԄA����(ʮ�q�l~j1��!�!%@$���m�t8 @<f� �H�+��l�h�^�J��К��n��͔�����FJ��q�zߺ
�����M����3�,Ry�
��
������v~�_����#�)��ADrit�
̛�]
���
�gȬ�>k��!%�����ؕ��"\���%e���d�ˍ���y=�yu6a�2��* %�T��iP?.�
�V3@����>+���3���BOЕ�E��̒��=�K��[���i����!-U��Ծ �S�=P�v7<�̱���傑2�
���|g���9�����2C�%n�
�gR�@
���iYѷp/���0?]̃��b���U�FG
+މ��S8]��gX�BRmSh����
�@�yjZo9��3����
�ŕ)��t�J���+ܬ�B���T`Z6�\���F����0�i�0.-jSy�n�/�ot>����ծ2�!ri������w���b̄-w���s,��2(#���Dqgͳ�'�#漥T^5ٱ�?u5UX��\���Id&�m8(�y����'g�v�Hz܊_Je�l��I
+~Gd�U�1�6����o>W�Aq���{�CE��g�z��IH�Q�(��_aG\�i'Q�i�$;}^U�����W���p���6�����2z5��7��Sb+t�4]��n�^�9Z�Ɍ�-�,�I�n�k��}U[���
+뇘%��
֠Z�� x���M��k�{7
���`�[��+�xp
� �w�m����z#�/�
8)o�ȅy��*�
W�ڥ���@���%�zѴ�=z��L�
%�d���I��X��[����Ϊܖ�0�5w�*
��oR�G�
+��$�
+M��R���X�c��%-Ew�JZ.5�c���Kh18����B/�
.�]
{�J#s)�2βZZ0�l�eS�{.ς
e����A�˔�{ Ѳ��g��R
+��y[�D�s�cV��7͟��R��������W;'4�s�ڪ���8�+���o��
��W�o}�
V�
L���Xi�/vt
�.i�{�AX��zi �J3��2Il�������?XOQ���5��_�Ӷ�R7���QnN�#� ��
'��YiQ�:c
#6�d�b���h
+*+�4c�}]��g9Pp»�
��*1��V�a-�ń=�ax;�
� ��g�~T����\8Nx0'z��
+7�Xt���b,�VU+
A��c*�ç4�ʧ�P�^
+�)���b��<�
�^�X�6�*M� ��
E1�U��
�v���vs)�e\��\F'9��A��9i���_{NS��ֻ<����K��C�aLGS*��U(�䨱�
1ނ�7���ij�)��T>� ��ޝ~���/�K/���
�\!����6��g�8�t��4��,;���7-�;
��s�[N{e���G]�jyF���M�%����+�,~�m�O�
a
��~C�בƼH_�!c�<vuP�uC3�:�|�2~�"�Q�X�y���
+��_.��jm��~�
������:B�;pV7�HeXGX��5��qd�͙
��af�t��m�FBzk���^2R�
&�2�ɂ
�{5J���jq^s{]�N��a�e��
�W�P�����!��%/�
+�?KIn#&�l����������(��H]��ѩ�^��`R�q� ��&�K�Gm��W$Y�֞ ��]�=���eh_y�W���|�|d �~x}� ��~� � � � � � � �� �� �� mft2 �$���w\D. �
+�
�
�
��q[E/�������q
a
R
D6 )!
"##�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4}5w6q7m8i9e:c;`<_=]>X?U at QAOBMCKDKEJFKGLHOIRJUKWLYM[N^ObPgQmRtS|T�U�V�W�X�Y�Z�[�\�]�^�`ab1cDdXemf�g�h�i�j�k�mno7pQqkr�s�t�u�v�xy0zK{f|�}�~�Հ��+�H�e��������
+�#�<�U�n�������ҕ��
�5�N�g�~�������ѡ����'�=�S�j�������ǭ����*�C�\�u�����ø���/�K�f������������)�E�]�tʊˡ̶���������*�:�I�W�d�o�yڂۊܑݗޜߟ������q�`�N�9�#�
+�������o�`�P�<�%�
���������]�4������_����}�#���b�� Z �e��h6��� d
+>
�
�
�_3���W0
���rL(�
�
�
` A!$""�#�$�%�&v'](D),**�+�,�-�.�/�0v1_2J364#566�7�8�9�:�;�<�=�>?s at iA`BXCRDMEIFGGDH=I8J3K0L/M/N0O2P6Q;RASHTQUXV[W_XdYjZr[z\�]�^�_�`�a�b�c�d�e�f�hij!k/l>mNn_oqp�q�r�s�t�u�v�w�yz"{5|J}`~v������܃���)�?�V�n�������َ���3�S�s�����ۗ���/�J�e�������ס���1�P�n�����˪�
+�'�D�`�|�����д��$�@�\�x�����˾���
�:�V�qńƗǫȿ��������#�7�L�a�vӋԡշ��������0�J�d�~ߙ���������������������.�A�T�f�w���������������������_�0�� V �i$���^3 �� �
+g
8
+
�
��V*���xQ)���iD �
�
�
�t R!1""�#�$�%�&y'](A)&*
*�+�,�-�.�/g0N1623 3�4�5�6�7�8�9|:j;Y<I=9>+?
@AA�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�ijk
l(m2n=oHpTq`rms{t�u�v�w�x�y�z�{�}~#5�G�[�o�������LJވ���*�D�_�{�����Ȓ����2�M�i����������4�Q�o�����Ǧ� �
�9�V�r�����Ű����2�M�g�������л���-�C�Y�oÅĜŲ�������
�#�:�R�iρИѱ��������6�S�pڋܴ۟�������
�"�7�K�^�p�������7�_�������"�J�q���������������k�7�� S �L��A��S�q'� �
+M
�
x
3
��a��W��] ��l2���
N
�
�r =!!�"�#m$;%%�&�'u(D))�*�+�,\-/..�/�0�1U2+33�4�5�6a7:88�9�:�;~<Z=7>>�?�@�A�BpCRD3EE�F�G�H�I�JqKYLAM)NN�O�P�Q�R�S�T�U{VkW]XOYCZ7[-\#]^_
``�a�b�c�d�e�f�g�h�i�j�k�m no
+pqr
s&t/u9vCwMxYyezq{~|�}�~���Áт������/�@�R�d�w�������őڒ���2�I�a�z�����ɝ���>�^����Ħ��4�\�����֯�.�]������&�\���̻�C����� �A���
�Tǜ���2�z����_Ю���QԤ���Lء���Kܞ���A����.��:���E���L���N���P���V���2����_��q�UKw�T\(�
�=��jˮr
+R�2�<3���ɓI!!D ld���
+"Dq
��"rTr�w�?���7�952��L�W����� ���ּ���Gx}<cI��mT���x�����,�Ag�/�Ap �Ӵ��F�;)h�,Ȁ�{�`�F�*q;��-�'���^�`:i/�7����8��g<N�b���S,w(t�I��JQ-�
�%�
m>
nxN�&Ą}
���^���~ʶ5����&u��\��)j�)P�%�g�B����=�x���ȅ�N�%�-�3 ��
+[-X��?癲�.�K��Gu��%��$$�{Ma���[!�π�T�����
a���J}sqҗ��9ݬ�|w�;$
N|����
+~�
Ь�4��t0�t��5f���~%��M`R\�Cv+kCٴ8�5V0���~�5
˝�v��5�
+p�C�G>�^}�(S�5�H&-k[d
Lj�K���G.V���o�e��h�j�
����Q���u�����}C�����& i3-b��
���
U�j�h��=������b��[�[��3�`A�#�X���܅eX3�H����7�7#��'s�������b�P�[5nG~�}�� �����]������(�e�;����4� ���D-�=v�h��&S)��䛪ޠ
I�a�!*#$I�,n�M�4!�$�v�yvZt?w��J�;�j]w�R�^�O�{T
X��>f
ƥ^��ۍ
���n!-��Wא�B�k
ܗù��]i氩���SO�,�^�N�s���cn�`�x��$*xy n��Q ەm)g at u�G�3Pb�C�b(���_��u~������
+x�
Y.4<����������
�}�ڕМⵘ�!�}�&c��Jh�p
���v�#�z�
��Y
�)
�6-H=�
�20���kr�OƁS�y�}�L�o���<�
�uL at KzJ���N+M
x���V���(�/�pr#x+3��2�Qn�$��j�3G��,9�I)��p�Ց�*�
+ؔ����`�q��<�C�
o��g�����,��5\t��wa"�[�&�
h��
MF!��ш|�J<��
Ï!=}Gě�f�4
/����7A����K���D� +���<���:>_���o�/�w�
K
l�%
�\ͽ)�����d]r
��(�-��o
�N��.B~�@��%� aqw/�4W�p��e>ˉ8��dZr�6�����~цoVx�>⟕��c#�3s�
9�;*�,Ϭ�(+��$�rR��)��L}M�&�^3�
`�ʅ.�.�d�q�K��S�u�f�Cc8��4Vr����[�����ӏ�:b"�6���y�M$�H��
Ri�#k#Z�Y�DW���
/,f���4��76�
���t�.��1�.���YEEߛ_�N�\�eA�ZU�"<�օ�ɇJ��������
�������
�#��^���N��I�'[dأ<�nr�8[ۥU��p3��q$��\�éw��V����4�-ߴ��:�N�?&B-(YB]̔� [�,D����Q�#��y#e���#� ����I�J{�n���s��B�|/���] �MdN���
�ç�poƄ ���M20V�Xu%5�$H�^����(�I�
O�
Jv�\�W�㇆�sTc�|M��-�B<��yeO��m��2So˶��p��\�c�T�,�-L�
��$
�d�0��4�DZ�*w�z�Fޛ�B�X�1n�%,�)]�3
��ީՇ�dsF 1"N���-�AQ�<��G�V���w�"�eN}�Q�-cg�
+ӥ
�C��D��u'NQ�FE�U��BnZH�UDa<Q����~��UA���1�.Ґ���$;Y�Ǐ�&M#
+��
��dۿIY(�7XaKD���X���(-�gj���-#cҘ
��T���
��
�����~�C!�m�y�3�'��+�<ߧz��В<���*�����_�-�t�� [�R2��.��t�!�ԾDL��)=�0jX9��I^o�����cX>�: k�,�qzU�]
�%jP0@=���ð�X������'y�!P�2ZDQ���.,�x=����ᵐ��p���n���5u�������������X��%�3fUV�8�Q��
+��^?,�ā�9*�l��[>P��6AzS`P�{n�� ZJ|�x�cV�
$8���|x����9��ݮT}�)���(U;�d���b�yIݱ�P�P������������l�xE�Մ7
�Gꥼw�V�'|,ثm;�������F�e H^�( ^�M�}��º�
�5�f
!��o^�"�����#P��R1K�U%Wy$|ŋ�v�
8/�AY�k�yg���w�ޠ���(�X��x��W6�N����D��
|�?��q���
+��y������҇�f�B�Jy��t��V���b�N
�뾉��T��T�ɲ ���.+��kV�����l>�
��2~��|��Ǎ�_Q���cM�� ��]�v���g1�L�(eQ�f�!/Ї�UddU�ai,�$�
��
+I+�C2Ö��Io���ȸ���6 -�װ�SN�cZɺS�d2��y��4���ΌY�|��`�Ǩ�~C�Cj^=��
����S<M
��U��
�煩d "m�l��3(�fq`�&F��A F����uF7'e�!�A�f�X���em��F�U9)N}.�,�q�e@,I�����B
���fM�aN��\�v�z[n�2A
�
+�Ii�Y�!��N���_����д��I��i?%�PS�e��4nG/*�iN�b�9�$b���˻�Ϲ����-���$��^��<`�A�MR�ڡ`�S�J��3b�E�`
��I�
+���س�����]�{��.!���^���b�EW(2�U��6�Zb�D�?��yj�G at 5�Ǡj���؝�*
h7b�K�,:���hS'�1�{��F�U!�����m='�$�(?�g(NJ��\�-��(�j���s��%�h##.(#H�a聾$������Y��~��-��(g��5��7���t��x��ݜ|^��6�@+2ik�$\j���?E�U1�+Yd���EI5��
���J���u��뙼_�NCd�iLS�q�M�Jߝ�
4��ض���
+��������a��|V�a�pW�f5�"re#��p�ؗu�����,����y��P���!�B���Y��:00鿪_DBD�
��
�$Rp(��xc��}�k̇vKCCu��Y7V�cz���
+�oU^M�W�H
�^!
+��"�vV�\�t�1����]�8K�E^�4L{�}��h��FT_*��2�dg��p����$P�^&��L���<bv�V'XB�/�rL)
�džul�)�U�H]��#��?�\�' ���@�Un���hl��n/�+����L������P�S��:
!3d�[��;/< �W�)�6^
%/?
w
�s����5�
ā��&q,��".�
�cI��pQ
�"��7�ɬ�t��j�Z�z����y��t_
���
�ˣ�#�4T*5D#�R�x?vP���3�Zd���C�q
���/�Z�^7ı?"��5���
��q/dl�go-�F[l��T���ر(_S�ɹZ�N�E��M�c����
H�d�&ؓ��eL����Џr�zr�ӄ��L����S���M"?����|jX!����� M(Nz����o3�ܡ�q�����]�w��zzoӟ���y�&�
T� <C[$���>D� f�����Mx��W�ט�rh
ۨ�?J��&U���o���|����NH4 ��"5
�-�>��܁-1?;vZQ蝍&{���m@�[7���|��(~�Br����n�n�
z���
����. 5��\v2˱�����N�e��u7���jnm��MR� ��@ %�u����P�� Ţf��ĉdl� �RT��6�a��gU��o�|�IҪ;�칊C�v�<
+K��Xԕv:�Tr~��Ƌ�7�S��
Ԁ���"
+�+B|���v�St�"��7�0�R
Ђr�0���v
;,�T�̬�Y���
?� `��Vk˧����$�T6*�tˑvK�$��s����}�3c0縉ȕ�܄������c+m�%?�=�ųɦ=$:�w�J�@(��R�A7���"�4
S�AU������@��kB�)v�2����uH��5��*&�
�dWxf
���Fh��ɓ�?\kP'���L�����E�.~�5�c�h�*A�y��w
9�9���JZƲWD��}N
�q�2�n�Ғ��<��K �]�
��m�&I8n>+��":�%���j����ux�spDeI�,`{�x�2O~��*ݥ<�F�f;�q�ذS.���N�
+�lq(#��m�s+C3�����*����"���QE��Y��ɆX�
��{������~�|҂rX�*�
���`l
sx�����齇�
+�9B��]��$j�1{��MX�z3��$c7`��r�
+�?���pO
�'����T3Ï4�����8��$y�Ka��;�GYq�BZ
�!pk���n��7p�9�9��
Iö�K&��
�I�E�pvIb��p�A:S#Y2�4̘=.����B�2(��y��I�j��L�q�DŽ���,
+�Bz��7Q�R2G�#'��}�Ͼ������!OA�����ˁm��
+�)=��\�P����3��e
W�ܗ�}�[V�C_'S�4�e��?w���_��
����櫝uK~-���Ȉ)�g�8��C(ʺ�|}8�T���y�#[���}O�̎����)Á^S����a\^�����,݈�j��ۼ�,my��x���}
�Vw
�t4u����[������?%�/u
ia����<g�H]���W����(�>��O���²�k��s��B���cO��iAu�#N�o?c6���y�=$z�
=��:������H
��� a�"�1��Q�hG�wJA*
�0tݟO`�,����%1�ư��$�� ]Q
؇?y�)��*��/�o?DF�|��NCk�F��!#͇��'��C�;� ��<�+��BZI[��R��^O
�
�Q;��������O�\6�x4̀�͠Yjt�ԸE[�ϔ���B����
|^\�0���G��6��Z�'Ez�;PU\Ξg��
�6x %�x
8�z�U}��s4EN
��i
�Q�\�!k,
+K8�W�Qp&��> %os�G�����M��"�|r�q
�Z��^8gyWy�]�y�m�3��JS\9dsf���X�,7��=�x�>/t^�p�?�H���!�i{��i�v��7�d
gW}0��SUi� �Pq
�2yQ w͐c|U�3�/�NH��-dx�m-d�ʗ F{Y3�Afc��%���7�_�s;Wr��(�y��
-�#��&ab�S/��Ju��0�T�80����c�����r�*���.�F*z�c⾚��>�/�6�A�ę;�O<���
<[@TsO
:M�%�x0��p�])�v���DuO���Tq��t��P���C�:���b���8G���?˷���s��]/.��\�n��B4hQa=�]�]B NWM���}���\K�輽#���c�����r��S�<c�0�_p?���k�Qm�
�
\�
%?{,�"�T�0�Op�c=wy-�b��Y���ጒq� � ?��;�mt�3ISR4�_�%
+{EN�ND���
+|��QZ��z;?
��]��c�
N7����-��Z��mW��gb��sm��辶�ɸ��i�;������\�u4��t�t$�כP����Y�
4I]d_��H����S�%���3�kI%�
+���sqˤ]L�S|�)k���d'l�!�
�����F�����9�%}�O at 4,Vf _���Pt�X���
�Ќ�G�~�i��B�^)#�qE��B��)yw�͒7���G������
a��@P�ǻ
�ظ�
/c�'�
ԫ�!�3���-��!KŽ�ݗ>��ő'M���
?=�?�v�7̳�9�3&�u��o����e
iJ7�0�^/�����*$��P\(��w��E����S��&�+���
��V(ϋ���\��X�<"
+I����~IY��ߨ^�g�/A��ԁ ؖ+*�@=��
<�Q%�p�H at J�
+h%��� �@H� �����{��e�b�
+�Z�s��V-8�
+EQq{U��~��?�ɻ�
��
v��]�U�V�KK��I�嘥w
Z'Kl�lV� M3�<�D�y02˽)
�R�;�,��@ꮛ_p����AHs:K4@�͒���j`&��^�#�
<_IOhW
n91
\ʰ���>o�
�:�N;#Lh�Z��M�㬹��mr�nM�;.���d���@S�OO�'P�4�����VV����b�`Kӫ{6?�Gj��UB��� h�;[|
���ZWF���f��*�r9��~D�@Wd�����7�"~[�
[!ꭟY5_x�1�C'�u�Z_>ਊx�+e�W��}�R�ӗ�I�^����p��[EfY���tW�m����S����f�{Qe�W�Yx'C
+�����
K#y��
Y���QmZ�!��4D>�`)��ɾ�U
B���b�8� � �
+���7y\���sðZ��k��7*��C�"-�n���(����sds9�4����>`K0E����)MS����
r���)�Ր^qI�?Ss>�D��C���A��,V ������8G�&�{@U�dv�qGe_]�_%��J�Jx�9*=
"��7�S\���=���A�a��C���Z�B��
*�F�����d��6�2��ab�
�n�I�K8�.��P�4x���M�4MU|�����>ղ��z�ߠ�\�'^��*&��^]wI���&J�m]u�2�=ט��}��-�6H�hrҎ
+��кwC�1�T����'n�l}��ԫ�!w�Po?��ﴺ�~���p�f�K899�շ�H�Jvj\�����
ƱL�Q�V��ՠE��!�g1��n��J����9�U��:�y��7n�D�;���s�A&��N��4FQ�y��x�oz��ҥڭ���9*O�W�:�+Q{�,rG��A������!눅.�7�zk���:��&�A՚ݢ,��"}+��̏�A6A�c�A��Ҡ��r��3k�s
6�Sj9�a�$��
��Q<�d�^�^Sx�N��˘�]Qu,���[�w<FA��Z
��XW�A}ź0{�B��H�Hi�ӱ7�2Y5摈#� :
\�h_[��MC���=j
�^�,(��Վe�+��,ߧ���uS��p��sG�
�= �����V�
��Ս�-�s�PW��Sgv0�%U����o���6�t�Eȓ��V�C��~F���joΠa˙��4ςh[-m͎�ZuR��)�-�JCg�e�� +��2F����Zw�I����fMgf��X/���!���4����ҝ,_�q$k
r��b�/zp4Ŏ�~���dn3��=� ��;6 as��ۡ
+v��Ť����.���4\���1���L_}2��h��I���i`}�r�
�+�Fº�F���ԝ/�4�K�{��g�U���TS�p�r�(&|3�
e�j���ɍ��*���\�ؠ�+6�h�����
V�����%�'~^��
8��`ׇ���ܴ�,�i���h|f�gHu]ګ�}*��k�d
��p>L5L�j�Aq����v�<����#om
M�r?{��3v똆Rb�*G=����v�
`,4���s�g�)�����A��uI����Ӵ���S�S��j
�
�Q�HU9ua~���aN���4o�`�����I��������4;�慗��hJ��9zdȈ2�>�wy[?����s1����yE�և�@�ũa�I�
d�2-d��>Ҷ1O��(��lXQaZ9n=O
;
��bZ�'��M
�V�U����|"kz��Br2g��Y�Ƴ�Nj�)3��������7r���I���=�ٰ���~.X�L��H+��\����� -��u�4���͑�w����2R��!�;��7Ⱊ ��f��M����!�N��Jl�dL,
w�tGɁ���[�N�:y
+�:��������5R!0��
���lQ�զ��?�ٶ�¿]1&��>��#��ϫ���������3��\�Y(��*�HV�4���T���eu��V��gì��Y�L��u��?��A�3��
�(��ߌk���Qwg�3u�j���u�^4�RvTQ���wEE�ex9)��yT-��
z�#.�V|
[��}�w��o}kZ�
|~^���|TQֳe|~EW�|�9@�y}m-��~
+#��~�+���x���k`���\^��S�yQ
+��Ej����9j�<�v.:���R$
� �Dߑ��Dx)�nj
k`�r�)^��
��Q�χGE����<9��
�G.����^$��
+��
v�ł�xE´�3kz�h��^���YR
�͌ZEĩ���9�)��.윹�% �<��
��$xb�ݙ�k�����^ϵQ��R2���E𨻎t:'�e��/6���%W���J
Y�}�Hxy�9��k����^ﴷ��RO�o�3F�'��:R�Ҏ�/p�s��%����
���:x��ǥwk���_�L��Rc���F#���:g�k�D/��
+��%ϔ��
ꎬ��xx���@kݺR�8_�
+��Ri���&F)�o��:q�
�T/����%�`�
�d����w<r���w�s��x�u0��ymvn��zNw�p�{Px�Y�|vz\B�}�{�+��}��t}��u~��vx~wz~�x�o6y�9X�{?}A�|��,.&�g�Gr4�\Ȼsl��
t����Xuχq��w
�vnx���W�z/��A�|
��,c~���
pa��ƾqƔͰJs�N��tn���ju��mw���WyP��AR{i��,�}��{�0n�����pz����q���vsY���Ht�Al=v��
+V�x���Azً\,�}���ـm�d�voz�[�Op����;r���Ht5��ktv
�Vx��@�zg��,�}&���m�
�4n���&p@��.q�J�is���j�u���U�w��@�z
��,�|ًp��l~�c�,n�5�.o��:�Iq`�Z�s3�j1u0��U2wU�M@�yƔ�-|�����l�>�Tm���_oO���q�
~�r��i�t訯T�w�@Hy��3-|k�
�l�qY�
�rŨ��t�+�ud}�� v�h*�Cx0RҀ�y�=��Y{j(�}pс}S}+�h}�}<�}�}N��}�}v|7~R}�f�~�~$Q�x~�=$�b;)B����m{3�κs{����H{�|X��z�|��e�}��8Q,~k��<���)�����{y��Q��z
���z}�⎬{��y�{��e|��;P�}��v<�~ӆ�)�����x3���
xҜR�?y_��yy��x�z��dD{��!P |Ս1<g~=�()����Dw3�۵�w�x�x~�/�ny/�w�z��c�{��O�|G��<A}ƍc*����vm�Ҵ�w"�h�
wͫ��x���w7y|��cz��YOf{ו�<#}h�P*<Q�k��u����v���TwJ����x�Yv�y��b�z8��O{���<} ��*V���
uzʾ�'v3�L��v��4wŴ�v xǬ�b$y��@N�{M�O;�|�
*j~ތ��N��p[���qЛ��<s �׆ztts��u�_��SwtLO��y!8���z�&�
}4���w{e�0��{��Y�6{׆p��| r��F|�^փ�} Ku��}�8e��~�&w�L����f�w��������t������qj�ӃZ]��J����8=��;&̃���K�ϑ_�₃�l�^����ށċ�ps���(]3����Jg�ڇ)8�B��'���@�́��
���Y�.�(��N�рÓ�o�����\��؎9J ���7�����'Q�{�6�}�����t�q���0�.��� �n���Y\�-��I�����7�)��'����b�짙���h��9�:f�dnMu��[����I���7ՀƎ�'����n�qg���9�
��
+�:��~��]m��{[7X��IAȗi7ŀ|�'ˁv�����c�U~佒�9~��̀~���mQ~˨�Z���H����7��F�'�A������o����Cq%�;��rm|�s�j~��u?X
_̉ �Ŷ֕c�tG�ڝh�7b�
��DR��� s7���7���fj:��R
�#�z<ZJ� �s{�uij��/�_���(q<�6�C�8qCP
�(��Aрا�QO�RG��⃒�D��sG&�Pb͚�͑&%$��*�����O�M��<���
��B �����O1��PUlOC��d���Wy!�4�4D��˔pp4<^iis�~Ɦ�5��`�
"���AHZ�q
~��_/�>E��Z�+�Z�g�ݺe�g'�;�X܀
ѵ �z&r� |Z}!c<����
ڃ� �G��ې�@"��:f���8��^�ퟂ��ss�Xx�~(��g�q���7�
�ڐ�`�?
+ܟj}�f��c�HR�D�g9���pkk�|l\
w
,`NF
}(��p2*m�ם�5ypp j������g���u��������ӃS
㢚�щ!��9��|m�N��F
G'�A0�~��յH����=�n��
��\��V��1^!(@�L
m�Y��{h��
������D�
�M�OdT��BS|`�=
+f�ډ��A�[z����W4E�`���2��D��Z�8*o�f��?�V��ԭ�%R���m��X�|������~��
+S�j/)-e�4ה���7�w)o� E?�)�]q���.*�
�9��C�����ǟ(X���*�:4 �)�I��@��
�g�jt��EZ����n��I��9��YSrK]C�[��X�D\|���}�n4
��Ef�לf��N'3m#�^��|�$�z`pn�@.�R�/q��s%�<�Ϻ�\Ķ��Nx��v�q��3�vTC�:��H��
o��:ӣ��;� w
�ϲn W�'�E̎p-}P���Ե�+���
�s�W5g7G������s��I�NV?2��-��Qw��<����)�h�,Q������luG��!�ԬN�� m)����r�e��0(�� ���=�,�dMX�X�U5\�Qt�ڷ��
[L�+������՜/L�00
�NJ�| r�Tbhr����<����}�p�h�e��j3f�W�ڠSH9FM�40
��W��[@l���/Uە9��ʦ�ϲ��0S��;k�a��+�km��O7)���q��~m8���
9W�E�˾��g� ��06�ՙ�����¤��p֩�¯�?
� 슊��upt+���BfvE���*�a8Nydf�&><�F�ep�S L�(Q ��W`,0B��J�=ʭ��u�"S�a�p���.(s�6I���G�,�MT2�$"
�F�_E[!��~�n"�eyS���o�[��[̃'�
�b
��0g-y�������)(�e����NXpw�^�x��^��#,��ɷ���
>�%d��H�}�O\�=ң�l���Vm�d
(ۻЈ5./�]p}�e��jO�
�93�p홈$l�*(D�P]�:�4H�m��,}Wx��rU�Ě{n���z_Q��:�Ȗg �\p@�P<�G��1ht��^��="x�ˣ�o��͇���é2; :Ø�;�I�'��
�03*���U*�A�7*�E�
+ycq��-_���x.H
�-�Ϗ�dR�b��.��й�)��zI�"���V�&֯Frv����9w��AKS~���b�e at 7;[{��G����j*L7��
+
u<���H��|�C��a)'-!�4f�A����3_���Zu)��X�`�"� al���y�R�9]jN�}��t
+eޭ��,����5LV
:H
s�<p| �mU�
��~������ϲ!��Vf
�Rb�v�D���"v��2�I�����s� �0��'x����q�����a=��Ĵ�X����Z��(,�
�!?%v~
��
X+hs�w�0;�ڮMF�
�H��L�[篼�sV�1��fOX�I\�ۏ)�6��#����w|)c�Z��g��4����GE|t�s)�kV��#x��)z3���g�$ ���ǒ����O�_.8�~�]),�]s
%G�V��3Ye�7a0��(����d^���e_J*��4��ťC
�e
��
Yn��� �D��~�/���~�$��r
�>�{���n#�G��a7����T`�Ƀ�G��"�K;^�m��/Ӗ��N%O���
��i��zʱߎ�m�7��a
�~��TD�ljhG��!��;y�~��0
�҅[%��$�)
���z����m֬j�?`𧺐�T(���G��a�Q;����-0=�!�%퐄�
z�(�Xz��Z��mȫ͙O`ܧ#�3T�u�6G��ѐJ;��/�a0d����&(���
ŋ��dzp��mǫM��`Ҧ��"S����}G��_��;��Ɛ:0~�,��&Y���6
�Z�?zB���&m��#��`��}�eSˡ��,Gb�
��;~�l��0w�ӎS&g�N�\
/���n��$o`b�apNW:��qhK���r�@-��tS5��v*��Ww� ��y��
{�oJ�*v�c��sv�W���wYK��x@S�
+y5,�z
*ќ�{H!z��|���}�ob��~ c���}�W̳
}qL�]}�@���}�5l��~!++��~�!�������o^�/��c��~�hWѱ���L+����@��:�P5��_��+��v��"{���e4���:op��c��R��W개�3LJ�݇�@�"��6 �\�v+왅�g"蓯�r��<��o����+cӵo��X�ÎxLa�
�nA�P��67����,6�ņ�#@��<
����o��>�'c��ĖX
�"�BLp�m��A$���6Z��},n�.�#��y��
i�+��o����|d�O��X,����Lu���KA'�E�6b����,�����#���
��˅�o��m�d
���X+�y�3Lj���{A
����6`�4�,��j�b#Α��
ی��@�Lr�k���s�m��Ht�oꕪvq��wPs�j x�upTwz<w\>�|yb)�~f{��(o�xa��q
x煮r{y��s�z(~pu`z�h�w
+{�Szx�|s>X{ }_*$}�~s��m����n��ʧ�pW�
�sq���}s��:g�u���R�w���>z
�W*^|� Ϸjܐ���lˎ��n�����p^�{�rM��f�td�
R!v���=�yB�.*�|H����i1�E�2kE�'�om2�;��o�{z�q.��fsq�4Q�u�=�x���*�{ƅ��*g����j���
l
���an%��y�pR��e=r��
Qu=�C=Wx�9*�{Z����f���vi'�ɡ�k?���Rm_��x�o���d�r��P�t���=+w��R*�{��ɟf7�ĵrhr����j����llƫ~xo!�fc�q��2PIt_��<�wc�+
z��.ȡe��贞g��� j
����lX��wdn���c_qU�O�t�d<�w(�q+
z��k��{Rk ��{�m
��|o��|sp�vQ|�r�b
}�t�M�~kv�:�y'� {~�xLv̱Cyw��;y�x2�zBx�t�{ y�`�{�z�M0}
{�9�~k|�'X�2~)��uтH�Xv��қ�w��\��xh�s�yc��_�z���Lx{ڀ�9k}v��'�u����s؍���t���uኇ�Mv݉r�x��_yZ��K�zڅn99|��B'�~ԃ�ErI����s����t����
u��
q�v쎶^_xh�iK|z
�9| ��(~M�3��q����r_���ds��h�t���p�v�u]�w���Kyk��8�{{��(@}݇��p$���q{���pr���2s��upus��]0w�TJ�x쒢8�{��(c}�����oq�J��pѲϕ�r�E�xso��ovt��
\�v��RJtx��h8�z��L(~}<�
��n��� pY���q����s
�qn�t���\;v_��J
xN��8�z��t(�}�A����jZ���lm�u�6nMǂ�p'm��rZB��t(GƂ�vS5z��x�$F��{Q�!�uJ�Áv)�%��v�~s��w�kŀ�x�Y.�y�F��Sz�5-��|O$���}d~��-�%~��~��}-~�~j�4pXX��Fw�
�5
���%���I��|ъࠄ}%���D}J�k| }{�4i�}�&W�~j�.E�
�?4��_%R�R���%{Y�X�+{œ/�| ��z�|P��h�� �� �v�ٴ�Tΐ3�!^�(9�
��1Q��0������ [...]
l�'{����s��Ɨَ�TMR�A
��]c��$���\Z ��qB��T��t���ܽ��D��I��@��,� �cԄW�i��?.�R��[E��S� �cΘ���̻�
+IU~;����8\$NlǚJ�\D��Z�i�t�Nԋ���L,�Z�z w�
+��ǰ'J]1^مc����W�P{��=_" ������� ����q��W���vB9B��E�e���Yd�pk�'xP�R���kp�(�I
�&�L�2<G=��14?D3�W�;�CG�JFaA�PBH.�dJ2%V�{�Brz.9�oL��U1�n8XQ���Ƞ� �-;BB�����������.��="s�.q��o�PU��[d@��
*�@;�@��\�w
��������@
|�3jC��X���t���ub58o���
$+-�E`�no
�P��
�e��q��
rn��F_ԉ�-g^+���6B��n�g��+붧[��U��~O��w�@3�8c̣��G�w�M�p�{��dw>Ձ�O�X��=�i=biݖ�>��2uw���e
���V�9��XS�mɡ�:�h
<P�ʏɳPسlS�d�E�ѩtGI��?(;v��,��qs��+��
F��wr��Y�
x�{K?���\����-�T�'ug61�
����b���A��"U�ߍO�E�K\k�{�`N
��
�(G�u�� �i�7
?���c��"��J��zb�r�����ķ������
1!Y�û 2p3AV^O������G�\g)}!'�N�[��<�J��#�k�s����w"�c�XF�u�*���
]k
͑��`�?虊rt9�_��2y\-�#�+���^�r#W���W�
�A{oD�0g�Dx
���[�" �`
.s#:+�Fp��ӄ1Օ�F�L#�1�W���7�1G梛��Tu�
��,1�e_$|�f�r���
�o�����fi`9�C���WS�8��nC�N�vj���� ;
�j��e���$D�ժ}�H����PYz��L��w%��::��/'O���%/��1 �Gmu3k4�
g���WK��-���}�^�,��@��ϫ��`��$��U���#��=;&᭪�LfRD�O��>�湿���\�#F������x�b
PpD{��M��N�]K�U:���.�7�<�����n|J���Tq��{��I��R�^h*}�j1��H��s�r�0� 襮�
1��ھ
�/z�~�ۢ͢
+O�T�o��q<���:������p�| y[I��%V
+�⍺mТ�P�;!RmS
�
U,�!�%ҷt\�uz)�p�܉��8����C�
���iۍn@��L�� %�wK3��h,�=�L���T�lI��A-�� _��wh@�H���4ܷjߺ+y����+������mrh6�J�
�"��
��f��8�
��4s�\���g�y��j�p���x%���1l�������
w�*�����iݔS�Gӹ<����'n2M�[�Q���¾`@���O_su9;�%\aY>m�B?T�/M�E��
���]�^%�Lf�\�wQ�-e��ݵ��B��z��l
���I
���E���
EYu=@x&�(8�s���X�U�3/5��=ߜ1���?�2(='�- G��
ҡ��hp"��z����x&���h�+�����l����
�/��b��Kⓘ��ې�56�_���?���=�_г�E�!D4����:�&%]� �_���D<���۬�aM
+�cO+7�ܓ>�>�~�a�wdlМr1��
�y�g])�0������D�/��0pXg�����3�h̒�u��K�UI$�R��<�b��1f���^&܆�
��O��|�ɠ
o�����b���PU��ϕ�H�ђz<���1]�+��&݊v�v
.��{͞���oZ����bM���UR����H�����<�����1J�Ս�&�%��
Y���[rm��i f���j�Z��Gl�N���nwBӠ{p�7.��r�,2�{u=!���w�t��zfrɯqp�f�Oq�ZƧ%r�N���t!B���u�7
�]w
,F�x�"[��z�5��|r~��x�f���yZ��lycN��Gy�B��
z�7+��{d,w��|N"Ðu}\ی�~mr�!��f1�
�6ZD���Nj���B���u7L���,����#(�s�g���'q֪ψ;e���
Z�̅�NM����B����7l���[,�����#����"ۊ�q��ɏHeڥ�sY��ꋭN/�Չ�B��ˈf7��ˆ�-(�څr#ʍ��
:�\��q�����e˥9�\Y�>��N�/��B�� [...]
ql�[��eǤ���YӠ���M�����B�����7}����-m�҉�$;��@
���q@���e��y�TY�����Mʜd�]B_�N��7w�T�&-l�o��$L���g
�=��f
��i[J��j�P���ltEܬEnd;O��p�1�#r�'��vu>
��w��oz;fʹ�pU[���qBQ�xr^F%�>s�;���u31I�dv�'��x�u�Lzz��,|Ef�w�\��xQ$��xpFQ�ry;��,y�1���z�(F�h{���} q�~"fĶ6#[�4~�Q*�~sF~��~U;���~q1�s~�(��-~� ���a�.�fɴɆ\�݅Q>�ȄF����W<6����24�Y�6)�,�� ��y��n�=f߳���\!�ي�QT�RF�����<S����2k�x�h)Y�_�J!G�_�M�҂zf��ɒa\A��#Qe�$�
F��
�<^��!2��҈A)����u!��τ�<�U��g �-��\\����Qn���;F�����<Y�x�12��^��)��G�P!��_�%}��Yg�Ҝ\h�O��Qh�p��F��Q��<G�'��2����)����!ԏ�3����ȺnYeI��o�h��q-j���r�mxCt?o|c�vq�Ozw�te;Fz:v�'�|�y���j�q��l�r�3nYt+�p!uhv�r
v�b�t&xN�viyp:�yz�(@|
|�Čg�}��i�}��yk�}���m�}�u�p}�a�r~;M�u
~�:�w�~�({Bd�me�q�*g��8��iч �"l�t\n��3`�q!�^MAs냌:Mw��(�z�����c��se����,h3�j��j��WsIm6�K_�p�YL�s�a:vV�\(�z�<��a����dT����f�}��iz�WrEl3�<_o"�
LErH��9�u���)y��M��`b�Ъ�c3����eܢL�~h��qakf��^ens��K�q��F9�uJ��)%y-��e_|���bX�ꖷe����gҥzp�jŠ/]�m��KyqD�89�t�v)=x���i^ھ���a�����d|����gK�[o�jM��]9m��mK
p�9bt���)Px��2v�d���wngt��x(i��x�lao
y�n�\z�qVIG|s�6�}�v�%9�y���s"pf�+tSqǓu[s ��vktNm�w�u�[yw+H�z�x�6s|kz�%�~�|q�xp={��Fq�{��r�|EtH|Ul�u�|�Z
wa}!G�y3}�6+{Z~H%�}���m�Ѣto���Bq�}�r|�Fk�t)��Y?v��G^x�k6 zt��&#}*�n��l����mڏˎ�ov��|�q� j�rފWX�t투F�w(�5�y��S&[|����Zj��(��l~�_��n8��{�o���i�q��W�t
�
F�vo�V5�y"�z&�|���"ik�T��kj����m;��z�o��i
+q#�(Wdse�HFDuޏX5�x��O&�{��4�
h����j��n�l|��z(nj��hip�� V�r�E�ut��5�xP��&�{i���<g�
�"j���dk��y��T� `F�օ��O��H����HA��'C��-��_���g�Ȓ- C
��iU
�s�l
E��b[���T��z�'z۱aߘا%)]*5�%l�WT��+T/(�X�uO��
2j���
�o��%T��(�E���tˎ�xts�.Nf�g��J�o
���u���2n�N0P�@π�dJ��c��B'h�����A)��
_S�!�n~.� \�ѯ~�yZuQӨ��j���jE��{�@HR���MAPx��@�~y��h����]魪ï�+��8O������5/��)~�#��Ƣ�Ϡ�ï�ѽm��_���C�����qT��t^��#N.��F� �ɮ�;�R"�oq��n
���^��J�h�
��(m��*U��9�]�f
�^�mgφ�(
���v����Ri��uD��p��;T"�*�UM�|V�ϮI:�.��D�k�M��
�W��tx5��4u�[���G��ه���҆�
Dy�f<I��>Xզ��
+�z�+��1��\ q�SQ#�>V�rdP'"�䝭�r�(g7\��R�P�)�P�k;Z�K�v����H��1MQ��Z�ߩ��0�)��m#��;�r�sb��jB)� "��o���K������s�M���Y<E��e����I��)Š�3�A�₯��z7����!z\�5Ph��4P�R�U�4Ss|�at�6-�Z
�,h;8+x
+�������5�[��@��^�!�h��>Ħ{�=���Y�u�t��l
��
�%���)��u�j1��
�^�7j��zvc�8�~��
�������$$��E!_�x�O���A�AGf)���>�[FKV@�MY��Xo�=�q/�QfM�l�G���/ݟĒ�|����.�:䥞
��^V\
��g���_*���CZ�ňax��%d�ΰ��:�$�i/�gP�A�� Ƌ��۵��`J�í� �O��Ss_�xZ�蛤[K��Oh���P9�K�}*���}�@�$�4o%n=�T�F�A֊�'�ט�[����,��x��@A�oE�����)���]����H������ŴK�x<��r��ϴ�&�<�4[$��j\X����A
���}%�ٱ�y!K�r���
+���*_^j�8��+�y����ig�U��83����X�Q����+4[��Q"���D���N��q��6^a� p�
��IG!D.F�A"Sg�=Ȋ�a�Y���A�x;��Hd�
��b�I(
�-�'��_�<"�&�t���+>�� ���
�7a*���)��.y�b�E�X�V=f�����1(E��G�d��a�
l�����^�+�b�q���%$UL�~��`�s|�u~�(v�<!f9�1��>`��c^F��y�c牋l)�i>
��W Q?
vh�^���'�X�md��b�
+{�~6v�b\�띊���Q�d�9@���2���:�cQu ɛчU�7w�=�}a�h��#�8:���Vb��6R�2��BX���oߴ�MqA��zo�6�Q�wM�Se��a�� �~B1�|�ݭY��?8s�P��R�}�֒22뽥\2'��|F:�����$3�U^�d�5�<r�H@���R���X�(�)�n+�gm3w�� /�3���=-{_{2�2� �=�K�B�����Kd��y��k�D�Y�t;3���H��^�OeN���w4�8z�QrĆ�!e�
(�G&�$ij�
���sB�>_Y�|�j���0�(�K�@�<�!4
~P���'ym�gZ]�Ęl0f��/���?�iLtd��:��N��Tj.��q'ð�p�9�2Nb7N�]
]E�Δ�Ɵf�O"t�
�龍̷�R���q҈+�W�MZ#�6��]�S������C��g�s�
5c�g���iҗ
�0D �e���œF�&��������W�g�)>�
�7m
��-��8�q4����
� |ɗJ��O�tɣ�m�����bn��ƺݲ��Q�dC��hك�ˠt��������
��E���0�`ɋ�Q�n���
�gX� `�z>U�U*{���8RH�pe)i��ef�A������$����Aܜ�Uje ��+E�E��:��_w������
+Nʒ��z��x������`�CR5F�=o�*��d$Շ�}q��b��}Õ>l%2)N�,ˎ�0�cߌ��
�� ��sy�>0p��(]Z��?�����r��Mǘo�)xc�
+bT�� uGc\
+YP
���
*�U;i�
?Kc1��VI�yk�[��=M*qb�AC�hqI;/ʍz�v�����"�o��)����u��FT��X�+?�M-
+WJ�>F �i���C�U��
���[�m�
�z1�^
�1d+�p>��
�Js�4��븪fĸ&Q��W!�B�i��r�C��-;�0(�
[yn��e�L#������%]�M=�n�&�cʏ�g�J�7�=��b��Y��ji���n5��i;�-�[�F�!S�t���`�j!�B���
�=�E�nu�����OJ��������t|\�ou:�"
jw�OG@,
Ԯ�G����Z({�q��`w[:A���
+�9� ߋ�YäL�v�N��D���2c3�(v��&�
�6ܨ�$u�n9Dk�k��ȁ:�
?aoaN�R����j#�s6pL���z
�~x��.p
@A��;�Aqn�.!
5:
4~�ڋ�
#�[�G"�
q��A�Ҽ��N�U�Ĺ�|/Z��D��o�N _"��o����Y�>��$FFn��
+��da��)p��{�y�r2��sUї�_�-�"s�2y��eQ��u���$
A�4��I>��F�Yl[��>,��3 at K���fA=����6ǟ�D) �>�c�l$I{Mv8x�jZ��S�
�ƪQ�G����M�G^֤���S]H|�٩�k4��HP{X� NR� #�8�$�ؼ�������{�=�L�l�����ٍ�x�y��֡��i�,�_g���6��
+�T�?:X\����u�nTDw!F� ���7�
6��F�՛�}�#v
����L`Ly��Ͱ' A�9�Nt}/��<�ֹL�HhmK"g���Ȧ��Zjʹ��ں���w٪���r�#���E����T.��}�&L�j���w:���w��Y�av�''�?� �m4X�$��{��
��8���m{��'|l"r�©u
�
h�� O ��|�������Wjv�8��Yu-�X��G]h�T�$�4��|
?Q
V�@뫿��)5�T
+�Q�\^TU�p-P�uA�
�l�y�����ɉa�U�~�F)�
�i
��0N�n��"��C������ӮY
+u��Q�,��FQ�p\��>��e���P�?.j}%�ޑ�^�
;�~BO��twQ��������_�/;R�"��g
+'��%[XѸ���x0R�:�V�\�3�e�TӜA����L�?i�^�>��`��W��"p��{���NyW��\�0�V�)�ek&Ɩb%��M؊�
�M�|
-��G�0(���<�)H,O��}FW�/_ێÌ����ސfĩ�
��
��*�+�ҙߍ��|8����Qp�/�0���wڨ%�ܼ���#
������29gr����:��B���h�,� ��9.�9�<�H
D�FuI�HX�����x��V��x\�B�(����5�9!!��S!v���Պ��
5k��Ϋ
��KσQ���+���
��R�{��,!��]�
�>(
>9�SoOn��o
+#����<�3��Y�����LMH�����A�Ud��q�|�XHsSCX���U,�^�])�������,ϳs�2#+F�Ԯ�ȩ3*tx%�@�y�`�{7��
v�i�����ϋ�5 �Բ�5d
�l����Uㅘb*N�&��ڠ��
��z��>3g�/A}�ӵ�[��6��,%6
�J�ak���D�[7����û�WAn�yʏ �NI}U8��ҷ�,s\�8�C�
���h${+�M�i�%
&��%!ՕP6�B�û�F�s���*房�˨Y䡲 �'���o��Υ���2����e�!�Q���Ax$#N��\�L%y0'���YͥM�[l:��9�!�¤qG`�
��P$�� ��
?���]�������ԁ ث
OlAqTdÏ%D��84��S�
C�
d�佼���^� ���@V�֪砞W�<��z�R�z?��
�Z�����=�k�)Y_�m\RR'Z��3u/��E�+C_Ca�9o�҈�;A����ߕ��%�dθ.�������f!�8B�>�xP���`���
<C
w,������l��O�����EJr�T�EC���#{E;
�;�����o�����X��5R��M[�Wr����-g4�H�r.ՃE�|��0��Pd����t�<CO�#t|��4?t�LuߴN [...]
+a�y�k'���:K���
��u�]��J�f�'�E���22E�-��ZW�شZ� ��pFDq��
�$�2�T
+���Q��!CQ�Q��9�(4v
��{]~�i��/�3���r8B��B���R�j�G�X
;�K^d>�V���Z�xҹ��9��q���N���+
:����������.J��eQ\�}ua��]/o�VT�$~c�Q�
�%�"�iI|Y�[�~x/����;�o+S"���-��$�P�>*ZV���Tl�r�n�Ǿ��(��� ���1��D9��9b�*�x��O����aS5[�$YJ�P�I�~H����-�9�B��`�ct
+�P
<��*
�N��\�K��J�0#v��F$�X7!i��HsB!���
+ף�.�
�R��T�j�ʻ5>xأn}�F�**�@�b����)����I���r1"�=
F�3)dK��0����w�6�ƽ������n�.$�
���ý�]�ÁR�\m�ތ�#�k�z�+�ۺZa�l�[�%�<�
�V�%�I�
+��+�Ktqd��t��P��H��Σ��}�#���˦���^���G`�5,n
�z6
+��)�)��1�3K�/"���|A7`��
+(�W-T)���wRZS����U��0�0l�؈E�
e�ao�����H�S�p�}��nu���m"g*FG�W�lO��D
+_�f p�Bk.���
��
'�|N
�W3��
���UjS����K��5�
�Eu��{^�r\�T7�G��Դ�O�I}'~�q� ��\�rv�L���5Fc����
�t��o�|ܥ�jG�HѬx �'N�a�������p�~"H�����ϘMDr��G�=ﺜ��]&�p-y��d~9
�'^�8�6���
�Q��5�Z���٤�U:�uK�ve��Tժ
tθYz
;hXQv+���6a<-�LcG�HV�q`�x��3??U-���$�%��9�l�*)
��U��Yb�7��yk�����Rb��
L9�^�����f����2�i�[-%�kHV�D�
����uyh�Mz�n��t�t��Ǝ����
Z/7G�eu/��ҷc�$W���yi��Bf��_�Z���t�*�\`&b{L.~�x���m�J�iW�������5
�
+�j���OU�����i�s�OF��3�epey;���z�
��Pe��U��G��!�d�����ĥ���5�X|������0�9��
�wM3B��8/���jx)�͘��J#��6�r�T{J^�p�C��̀w;_�\Gr�����Gn�~
+�ؠn
Z�8�
T ~�,
MoU.e�ј�ソ�x�
[��1�lTwU��y�6�
i��'��~�:����#�կ��5���o�q���u�j�,\�A�����g�NÒL w�5k��d)^�i�`aB&�H)Z�da�x� �(
+""�
����"�9���c�vLjev�tl�SYM�n��f5�3e�����ۣNfs�'���հ3�;
�@��H��'n;��!���k�
e}�#c%o\���z�c$!�&V�ȵ�o� u ��偉���
z�eDxI] ��e�O�"M?�+�1�[���~�<Z��D2� ���@=<��N�oD�Pu�7
J�'��7�{��J
7v1 c4�(��'� �g`9�M��J��a���Y�
�'X�l9�]�+��-��ϫ������5,n�A��{\Լ��:����f}��s�X�Zu��]D3_����Y�M�7Kh�a]����8-C�'C~�\(�b�/"g�jI�:��9J�[�,�t'mаU�<�;T~Gk�
Yی|�N{��;�p|�庘��o&����a�}�����D��i����ڻ���o�*���U?�j�lP��?�1MU;eLa���̷�>�\���|��A�����j2�
�T��7�)<���*�
+21
������z>���{� H�m�~
�9�Q����Qb��ne�W&��t/Xn\�s�د�Ԏ3�uٚ����Fs�D�N�g�wa!Ku
�����D�nhH�
3l1����`�L
+:n`Nj��w�Q����z'�JHSE�$�c0:��R��xY�a'���u�y����Is[
5���
�C�I��kH��=�j��3D�pY���liJI��q�Ԗg9�b����P��<:�ku
Y��tF��Š�uߎI���:�<RN��ʏ`��V��c��;�{)�����7����mѸ�R�Z|�c��@z7�ܺ]0��d+���`)>�Y�kI�ly(��͗�~�"���5I=�4I�G�ǚW�!���<>�mX�:fa�c�k
+��Y��xݘ/��W����Vm�E"Y�����5�1VE���Ħ:\�7ѓ��Uq�]XO����a��'��
��^�FY��
Q7)�x�����t`i�����>zؼQ��e�����{�45j'j ���x���E��Ƒ4���ԭ�-3*Gt���S�
�Po(N���k7 ��mC6
�C�J�匇6��
+�:G"�BB�GWc�;�kC ����� z�酗����y�Tn�������5�l&q�y��9:��^F|�wi/���
�/�f�j�ϨN�^x^��A���#ۙ���H�U�w�x� uc{cޕ��8�o�s�
�ßd�
��M>e
VM�wK���^~��}�s�^�x�m��[g��a�Ʊ�K��^����%W�����P|n�Q�t����ȷ2��B7��MS4D55�
+�ÞڱR��j*\G0u��z����l�|�MY'+��x�e�A�G�r�����h�)�vL��byZ�_ׄm���q�]��p��y �e���j;�� ��y�2�����r�$�
����*�u�Ư�
|���O
2�K�,
�pV�b��>V t���H�>�?��#VE,6)�h����s�����d��.����k���6��o��� ����
8Ch�N� ������(A
I=�Lf���Dͨl�и�U
����k6������0,�1@��|wi^8�Z���?d
I�i���F��uS���
�P��`�Q'��}�5�
+ש^
����|�s7-Ow��!3JF�G�<�I
+���)Va*q�2Qx���X^Zp�2@|��7�lnN�S6��u���SK�'��
��,Q�s��Xr M�MN+�"F>IWJ��
�.opN*)�$f]-�P���̏s���
�/柕|MG���
��h�RW�_%�AS&e���
R�,jS��lF|>;���w���JϬ�����h��@�-5Uo
�$L�k�Q柪າp��4#4R^�
��
�
��-.� � �4Vҭ�xBܥv��ہ�
Y�
�����e��vԔs4���龍�a��
�ߪ�Z��`\��
4:z�\hPY�2?����TW+S�̎0eOg�1'Rύ
�kO� a�b�S��W$1
��7�O|�5u ���V�:�%KN at e){�� {����f�MH $`@�~E�,n�y
�"WXρ��(J��-��ρv��?w�ߗ�K��Q��*�=K�c�
�<@]�
+e�G������t�$3�y���o�?j����V���ڶ���C�T�3,~��n
������OU�
�Ga�}DP����Hm�]
�r���8�
+y �b�H���`��P�(|�}9�
��N˛dg�5� T8��R������~Y����)�n��(
��1(.`���c���v�d��5�KZ'�滁��DŽ�rK�U�3܋�P"����>���X���X/3�c��5�� Or�xo�m�J��Tt\�j�%���e-4C���c��6�˴:�%���K1�د���&-�t����tG�a�`I���,���s�L,����^�Pé^R~���
���[������"���OK��
�$
�!o�y��N��U�"�9l��t����Hw���un%*NB���
���3*N2�
y�3��
@���Η��ۚ��K���c����Ɂu�ngL��_��
�mC1vQ�Ur�4��>@���N��%�SK�~��<���V9�2TL��6
I�罫��d����>ٜ%�w�6%�](�
+��V���,�Yn&R�)Z���3i?cwA�rE�(!� �*�y��q�B}��
��gR6����n� ��.�:.\����G�Z
�
?�.^�U��>����'��6 ��L)�(�
n m�
(�G#����*\�9�
[1[��=��j.PW�-x�v3�D7���$�Rl&�4�w"��1�� �K�x�P:TY�Ml7�"R�5��e[�~���J�,ʫ�kR�dkI�ZI��P!�
�xD�kJcՙ�J�Ü+M��V���O3��>�7L'�H���#��A�_���)��7��ҦZ
��}TV朽Pb��l<� �a��~�p�y��fa�4)�%���ӻ��{d!+�Z��'�KM��_�J���g�����P����5��Oe��;�E� �-�\i���B���"Q@�&�Y�l���rk�
+���m
�I���u�m?.�֤��L�a�1<ԘSծ�*���˥[�~����@`�Yj*�M�Q� ���j��+��(��.�L
�!=
�FG��[�Z��O�����qbi8Lheh�C�J��Gr
�0\���E��E���{� eT�.���@�ˎǻ��ȏ�oT
��^�1�����_#
�H�E������R
�EF����虸^��>���
tU6+�
�ծ�[�Ȯ�
K8��܋�q���&0I���ʧU��X���l� ���TqZ-��Ve��h^�|�"�� �$�0\�LzS?�1
+
ӯ����th��'p-�I���$�h�h>�my��S�'�HtǪ/.��T��`�N��bB�L�Z��0
�
�g3��
"�<Sc(x�w��]�
G�^��ۚ�P��f 6WX��x���0�c���
P��v�.����lbB������
v�����@�}�:,��
+܌
���9�l6��4}Ra�xH�M�?�G����
t]�i�:�"zFW�Rn��/�Ru�e�ו�Y� �\\�/�+Y�,�C��}'����Ӗ�� �����╔N
)
�k���{�ۊm�]�=��Ub���RH8D�������\U�t*�+���/(�u8��N�Aקּ�!
+
����GF�C�[Q���s�m�)eL��tD] �� J������S+����&��~$B��ס��N� [��q�
�SN�Xq'�>�Q1B�(�D�j��sո��c�T��Yh�^
��z���ID��s>��{)��r�(&ޯ�����j�y*�N�zN�v�֍@:�e�\94��1 !U%ɧP���M�M�S��
�� �N�1��jI�/+������}��m̜MpAMn29j��|�e��Q6)V�(��ː�1���
�?�Z��xb0�9]�&�o�P�@���)Hp��!t��EY��4s�ÔW�w7�U��[�O� 5� uբ+Tt!!r$�`,�$���(G�J8 �����?�D)�
�"�Z�Zu<�]Q�x���8"^TwǾ�w��X���)��
+SoS/d��&���yH��Nȕn���ui45��8\3D����ң���E�X�Z�߭��[�wU����ʫ
wL��̌�R�z:���(A�;�pq1F���,�TuR�5twMH�y���J���z�:��9&�������t��&��������
8�aW
+^���i~��������N�
1��7
�����[��^�vH�G�� �~>����7��a8��K8��S0s�<
x�Z����� �:��l�.����S�\�!����:H��C�P6+������nP[�Ĩ'���MQĻ�L�2��ا��
]� GP�^@8�L��u
��<���]�b�e?�Uo
�E$�,�� ���9���h`�c�@ߠ���P���V��6_����r'�i�;/$��
��7Ɵm��Ӧ
�'N$� � p
�`��~IK��8'W��#9������O�}�xYEt�+���l��/�
X#�+��+u���Ɏ���E���5�i7
#���
+{dEr���r�n�fK�Rr�
+V]�
�� Ҵ��:B+*r��lEFZ��MUt��ePɏzA)j�^���W�WD����?�Im��G\dVcm���eT�
���FɆϨ3�V��uLJ4Q�-�ݪ�
iXA���%����o$I�N�&Ft��Q��~lF_���
��dtʸ?@���L����ډ@��>,�N���w,
��Ҡ���h�����c0%����W ���tV���0!��ډ�B%�3(
9��� n�$�
�����Y�g�G���E�h�U&�&Kdj>���?�dw�
+�8�� �X{
v�A�+�
�V�3�#,)B��N�h��H�B�C���ckYN�P.
� ���a�!�������0�-g߬h!=���dǞ
ݑH�ێ�K�d����Ϛ�哬��[�/ɶ�����,��
�ǽP�n��m����d"�mkky����q���J�-[mU��y�a�vo�B{U���[
��ԾO
x�ʫd�L:?V�G<s\��d�N�%m�,7�.���P�g�K�C�
��
V�-����ڵ�sZUs�q�n>b�v���-K��-�SBm��[�}��>���xC���J�y��&�;�j$1��y��ȵV�?�0E��V��/����g�ɢ�N/�>�c�hx�Ӎ?�TZIӺ�e�'��s�,2M�$�@�_�Ѕ�5�'D
N;̿'.�B��1 �Y
q�|efqnv�yP��&�c�IZ=�z(��%Ę���8iM�7�P'�Ĉ������
r0�{?�1�D����E<�%[��߶��.��k��&���D?A���s�
A6�
��>�gm����뇿eJ�<s��/������
+��K��/���_�ҒQ��6�xT������
��?�������/<�gG�k�HDŽ"3$�5��n �ܨR�A�zu��
�="4���8�n�?���S�y�H�!l�MP����R��v�4\������MvJ�?,L�{X�JP��V6�����M�[�
յ�-���B����75�n��|-�ꓼ��|c�0�7��S �mh��
l��ek\��p�S���N���������;��{V�'��[��u���T[�~���y� �7m5�bc��Q����3��Z��g-�
�.t����)0�O�j@
��
��8��2v��
+he�R=�%�01 �|rq�Fw
��um���m9��w����
v�c��0x3�r3e�#R̍>=�K�X���k�ς�6���g�d�^�(6�gwEo�M�Qd�)%[.�
�n�ĺ`�����}�[�I�d_G�K�$q����je�Ž����[~#�Z�*�t�@� K�}�F��r���9y
����vI��Z�,�Hcˎ)��
+C��b�(�*.Y�[C'���� ��� �8j�1�D��AAD��cJ�HI {��������aY2T8����z���ʇ蝂'ZQq�Z�����G�Ŕ@��)��O��4J��7�~����{l �~V�*��k>I`5b
����}T�lH��i@�wY6lP�2��@��ѐW��:SnH��qb(��ωئ�cx�e��g��(�aZ�o��LA�B�Sd�t�kS��ÙRShb� �^P�nGH5�fr��
\�O�&R@�6�T��I�Ŗ���1�Ulv���qۻ�?�x���
+��'�2[���̣�ǫ�țv=A�
+=���%�
�
"�|
��g�j�&b�K�#��B��i'�Gf���q��v��)�P�.I�EK����uw��X
��d�`��
}R�Q]1��uL��N��;�
;�녜!e��#YT��ӗ
T~��qw�����Ղ�Fjt��q�@�u����!/�s����L!o%/�a�7��Z���e��܄݉Bh\��� �zB
`]��V;{u����{�����@Ν]�Ep��_�^�!�Y.ߵsAU
#L�,H�WT����D9v.�(�8N�IH�Q4��ċ��9Gd'՞;�>
D8�E�:9��:\�Au��LT?�d�(�2A�{8��,�j�ٳ����~Ṣ���Oإ������A��C�5e�7�/�gH�g�2�%�<��?�*ze\��*�3bT�� FЎ��6t��6MR�9N��i�/�ge��I}�����XXk�O(��X��usG�`�_�S�ʍSœ
��
e)�n:�L�$5�
Ր����jB��,�̳O���gm{�|���F���m0�.���駣�_(�,Y#;s��]ݟ;�I�մ��
gb�q��XQ{x�ʞ]E��}�(R�v�8xZk�<��<�|5�eSˎ��C�
B �Ą]�WT��~��
�� x�.W.Q:�
���
(���1��Bh{r_��@wp�1M����ح�
C�Ѭ8�#9���Z�����]�?�T�4|
�ucP�zw�/R\���$ܢ�+�se�b��Z�I:,�_�� ����
+Ua��z��B�7�K���SGk�!r�U�R_A��@�c�3h��'[G�/R�����իu4|��%���T�M�
��c���g\�3~�c7�?����i�e���yp�`��!FQ�7
+���n�
+�Y3V�oA�j�����`-#� ,oҶ� Kg�(p�R�ՔZ�B�tw,���ґzOh�>R�T���֜�
��j�T%�rƦ�I�Un����x��_!�����|�di����g^�W�s-�=�,i�BZ+�Z7�*�
���E�T�
<Jv|9��aO1o�\캧
.��H�U��uѴ�m͓����ש����B�k�����ѐ
�G��G/���-|:�M_W֊�g��
�^\��kCXꧤ�
�!�Wa
�
2d�
��J�������3�$������?9
��ń�����~���=3u"I��L�DQ)w+�&�.9�r�]ʍ�ܔ�I'�lp�8��@h�9�Okb���:�C)S,�|���kT)ԗ�`uW�
4i�h
#^� }�OP6:t�pD?����#e���U:OּĨ�z�~E����d��N�(ѥ���I
�}�/�o��9�u�g�a�?YQ"��E!I���l�b�9)� �L j��愍��!�2�\��|�ĢT��fqt�0�'�ˋ/���Z��Q6� $r�{
Q
yِ�k����`6f��U���INq�-LO��~��"��K�: ��iO�V�8爙j]i�m��F�&��5�@�^�����T��36�+�^i�bHs�;S�ֹ�j�ꁍ���*$�h���
ʼnB��Z�Jd���S at 4�W�� L"�����eB:�{��^�6�
p,�f��|
�A��gt���mh-��܆�������E�㕆Y6��xH�%\aN�<�,�
�
r���Ś�B
���.![�
��:Xa��� w��
к�.�umZ���5(7s�Q
NuZYY�
+^��i�*yژ6
+�~A����Ƣ��+�V��
Շ_S `���a�4�@��,��0�$d���^��"a����"�D۫V��ړ����Z��C
=����O|_��$<�鬡N˓J=�?�9��:`z{����1��*M�]@���^����콠i )nq�H'���@���
���'4B����Ƭ��@��b9zH/R��~>��[�Q�&�U˨n�|C4��?B�̶L��d��{}�V��o��ѯ酊5��O��s�
�E��?��̉�9���\�����I��6���|q�>=hZ�����듦:�}��<�^�K+��MU�5
+�B��������4_�^/^l��P2cxF�t�>;U�D�,ľ���
���Dgvp�a"/wQ�-a]�"��Yj��
?�+���g�S
��9������U��>�=�ׇ����G��9�Q�M�F��R�
G��iI�R��C�EJ����)
+��C��2�\3�^��A�*G8��~L�UhB0�
����i����
�U`��0�T�T�S�v�*��s�J�!<
���s�K5��&�[�Nˁ� �cV[�|��:h2K��s�����?���<
�W]Pd0k44�!� ��^��kZ]z�dȳt�䌺��.+�X�&�5q
�SͿ��)A�P��ʹ6�Yh�g-t z�2��ϖH��(�3 9���L������9vR�)ar�/_Z�zJ���h?��j����y�Л�R������.��ž��u�a5@(Aez*�Z�:�y�=蠫��zB�z���b��/�_�P�=�G���$,R�m�b�Q��=�5��\��up+Nr�
0��2���
r�\�]s��+Q)u_
�7m,����y��>�
��-u|�/�u�Yrg�5����m�IQ������+��J'�i
�D��y /�/�H^8��l��\
+!*��aO�
���?�C���PP;�l���i�j=�Y"u��a��V|REޕ�Z��>}+[ݘ���T�
�ŢĠ
+tY���n�9�
X��b�m��{�j� xi�{� �"��܂oI-���o�{AIZ��>�=��>F�Ui���h��s0�^��k 墴X�X�ɩ���#���U�A��y�A�
��)�]��(�1��܄�plΈ�
פ.��`%�G�
6G�4��}����Q�#���w+��/( ڟ���ǐY-�#U�$֥��*����ɸW�v�s�'�s��'��(h
+u����MĂXr
��U�D�g��oU
1�EZ�����[�
�
�O��C"�5�'1{6�����K2&
h}�ŏ�n���a�n�,�2�T%�Q
ǓQ7�_p9l�M�3�d��{��v�%�4^���n�,"X�,wK?2ΙyG6�bz�o�
46
+�&pɨc��[�I����⎄Kbٖ�_ͤ�Q��U]�a����fc ������$]��>��
�u�i:�x�B����s��*X��1ЅT�u}�XJ
�%�ʈ9y�[,qZ�d �#i���O�У₨@�X�(
�YK��D�l������z�S�cn]x����
~R�9�B�$�b����mx��ʸ��S����)5��)vL#u��F�
��
�=���Ds��z5��1\bP�8��_�Z�!���}
='��0�f�:�*��H��Ex�3h���
�G�����F!�ށ(K;C�A���?02�*�W;�s�ȏ�]���_O#2�����L{�01/o!ҁ����Pt�3 �����؉�OGm9���!�q�
�mϩ�7ϵ>/xO4��G#�5$�gI��ˢ7k�L��Nց��5Q�ޏy!��݅��E���)~�M{x�|j�|�{��'a�s��dx
���r��(�2�\�J��ص���0
�l+o�ğ�7w �(ަs���72��u#�����?�,�J�O�S�,�w���{̈��w�s���gj���1��;�T�U�;V������`���A*�d}�<s�y�5w��&�t��l�����)����
'u��M��$
�ǖ(�;�]ݬ<��a����^)&���]��ͺ~���7����XT� `�'*�mT���Q/9(D8��
������|�ߍw��n�!*j�5��Z�"6_ �O#����(%���y��>�+\u���
+�MFzl�1�aۿsKB�oG��;8�3�gF��7�|'�5����y_�G��'\�ˮ��.*f4���UnJ�Z@]�/�u�}���I������`c�y�-{�t�nF����-fG(������U�I�
9�>�S#�$��$�������O�N��'�����D��-��(�ta����J�̻C�b�_��נ=�Y�ͭ�x�k���E����}Ml�R̼�#(:��
���-̐�
�!
ܥK�G4N�3���X��l�]8<"
���$a��zU�U��� �̤q;սu{D�:}�L�7 �o��ɔ1׆� U-Rw��x���x�Ѣ_)=��x�QȆ�@�w�W�@�j���4�A�+�zǓm-[I�T���Y�ƭf���O[9������]ǣ�o��y�ڠz�O�1
����K���a;Ώ��U���ט��if�9$����Y^
'
Db�L�"�TȰqEE�.|yGhB[�� j��-0�4D}럪��`|SE�D���5J�wMj/{�C�
+��eκ-�N���2��_��P�v�����U
`o
g���A::��ߕz\�}
ݼio�CU�Г���Ev B~�l�k�
rK����U�6QT/,���〲�@����2|�&H��EH�F� M*
�E�TH)�V5��b�+{PBs��I��h��>a��bG=�9�T3���}&`�
;(��'�W�Sʀ<L�����0J���O���$��"��Q�.�i5�m��x��6 �Lͨ~��F�]���1,A���ͦ��%ݖ�k&�UeX<�1���8�^{�{�=��E��+�Y&[Qy�Ce�ݶ�I�P���3\2�Bˈg�w>�
+t�����2�8��YO�<�l�H�@��7T�N�$'�A�c7��,�c��`���8
9�i^���#�w�R��������*M��$SM�Z~A
+�
���� S�
~����;�@f��aO H�/e�=}�tͤgCr���=�RQ�����Uu��[�H�
6D~
a������j>-�ȗɪ��
�$�7>�n�M[�w}hPU|ѽ_V�O�R��I#
E�6Fo�{�:���P~��RȍZ�~`$�7���pH6OX04��H�T�hV�&����I��7T�4�Ļ�f�8��?Z�5� ng��ߵ^PB����f$C�)n��IqB�C��$����rsy��&)��=؟��'���a��:5wJ4-V
+
��
�߫���˒�5Zv^��ܛ9o�7�lTخ[�l�iy���[C5 �����C_*L��u�<н��2��}��Eg��Z�6~k�v0�xҨ1J���LkX�̹�h�f�R�&zi1l�U�X����Y�
���W[�]�%���1�QR�K�7�
Nf�3�<V�c\KK��`�.�[���5k�!
+ޟ�`��H�
|���r[�ګ�k:⍢���=�5��
Oj�YJt��u�Jݜ�8���HD�9w�YY��jf��ȧ<�nx)5��
+ޫ��k
+��t�D��璕�>fV�����8 �z䦑���W t¹�U�r���r��i3�4r��Β�⋡S������8=�_�8{��V��>�ت�'4_ʹ#�
�RvR�t�7\C����2[��p���T�q�
>n<n��ߥ��1�|V?�Z�-$5h� �W�����EQ�;�����
�����S���.
D���|��B��ݫ���n�(��5���p��1����O���ô�vҬ�uE\�B&)L)e,�d�Z��.�ju\�U��B����z�0bV����Y?��pH
��1�h0Q�1w���dƌ}ă��7��B���'-C�
Pl�GC�
� ��_��k�� [�(���v��孶��gE%�g8�l�ÏP��9�
�K�h��~J����?��)Z�"��Q�
ѧ8����\�
1b�H��S�#�hD�C2�
M����C6�P����ܦ���v\ Cx���X��C_7f�����3��`M
�ժTQzJ � �H at Hd$���I�z//o�%QD�sT=��箞�|*U��h=A�`�T���sVm���y��
F-
�ͱV��B������5�һ����������S[b�+{�NF���\��~ǣ�wPգ�g������,R�G���}9�Иtq
+ϓ���B�Q��X��Rp!A�q}�v_�ن]����M��L,f�U<u�WWoL��� ^'�Wne_�Oh~
ގem��M0�>Y-��*�5�5Y�4��:�p�0�0olb��x)��Z'�(�
�|9e�Iߊ��Y�F�^�^�H ��
�Pj��.�:�/C�����0治�!���`
�����W�kr�²ɺ#�C�
g��l����3����%��� �b�Y$�
f�m|�O��=)���)
���/0(�!Cָ�Ֆ�,���>�
a�L�Is:�ΔC(�w����8N����pƊ��OxFVU�u�1�z �ĥ���v�����l���h�{�\"n�
Jv8�%3*#
�W(j$8���pKjS��Z���8���.�9��.k�=��kDj�Y���}u�ʖ�-���V�?f�#�>&�)_�&������Fc��
s/�;u�?q����}�P�{P�E�9�}ik�K9�D��nT59[~��B�PNJ(��vұ��ce������
j������hM��huN�d{]F�
}�DY?�6�x�ur�֧��\Z��X\��x��ږ�o���vp��/� ��dX��`��Ն� &�/s��[r�I�i�*v
��7��R�Sg�i��7���Q�P(p�5w�[�����
cp�����}�Q�~��.��ݘ
w�D��D��b˟��lhvP7��}�s��2��g�^X����
��,7
<t#���VǠsQ���'�Q�7�ѣ�葸
{%y �AO�? �K�LtV�Qm
+�%�����S�!<��}`|_�w�l�ȑ�j�K
0E(�,�_��
J�6��gc��E���Ƨ$�;�JF
�BJ�{1=Y���/�CWKv]�*���GgEl�n��H�
c>�9|H����1{�`��\����2\ӊ��q^+��g9;��b:u�[�<�V�3s��M��w�yO�xs\�kşiI_�#⡤.�NFUx�H]�T�r�n��K�e!��
Ͱ:���=��
+^ ��h�y��U�ӆѥ�;��ō֭�e��Ok�B������
+s3�E���E�``
/'��Z�)mԭ�L̷�6�ǔ n�
�zt
�(��c�a_���|�9�3p^�~#�� Zm��&�������!�G
6��;�k��!��A�)�
+��v�!�
��t�
�B�e�M�7-1Ih��@��/��V=��V�2�
���
�K�a���\n��L�>� �B���
%䙪�
�#�SH�
�A����ElV�$��^�2�����j{'�i=�邭�SxfB�1o��n���ٝ�Jbf�\�A,
�@'�V_ �A���T�^���)*I���D�ŏ���;MO��`7����^�mv�@&��þ.�y"���Zޔ.Z�W8��Z]��խ��#FW���mm9&����F��\�۲����9����/ҙ��+���
�7�V6UV�9� �!�tW�2*�{W��}�K
lX��k�P�����:���
�\�s�i^uCA��P畇Y��
�`:���G���[䬄bD��u�]����q�w s��L�z+'��X �c��0�a�U��Q���{�Qӄ��-*$�@7R��(��ɽ���?q"�'FOV'��
2�'���~��
+��V at QH��k��Fj"4
�s��{ܭ�B��� �\�Y�i}ɘ���z���F;j�����Y֧N�@G�B(غ���A��)���>�� �����{N
`�'{�ȾmT����
Ȓ� p'r�+���!�m���@vb�#19��'��;>|r��g��`"^��4H�I�f�C$p��1a�It�~�ljK���uⁿ �}�$AF��n��כ(�^����/9���n)ӆ������k
�o��]�
+k�\�p@�x�G-�U+
k�r�ǢU�j��غ��� @�02��
F!��
�H���$�7�&���9}���-��������4��=CR�H�GD{ʾ�
�vw��㐫
+���L1�=���j�?8�E*r��9��,֛'�3t| ��m�끍���VA6�L�e�*�b�S�m��3F-g�C�x[�K���۽,���u��5o X�i� ������x���C�t�T�}���8����!���7�r!�}��z�s��
�Y2�ɱ�4s����f�ct=�~�@�^�l<4�9 �����^��B�����Y��zɔ�r?b������C�3��
��'y�
���{H́
�M������
���:b�Aj��W!]!�Fא�>~�v��}�;��A�����5计���vP�$3{�����1<���1q����+D��,2
fw�r��v���qV�"�b�\��*7;���LOº`hc(�~�Ha /7�G� �
� �
�Q��{z`�Ad�R��g�& �l�z� ���_w
�-[�}�]k��>ݹ�����L[g���~�??t��G
����� ��_������gL�iz���������.^2���/_��굟�����v���;w�����C�?,��m
=��{b�����N/�]��n�
�^� �>�~P
�D��1X
�@$���CB)a��ᴈ�(:#:&6��J`'r�<~RrJ� -=#3+;'7/������TXV^!����K��u��ycSsKk[{GgWwϛ^��m_�������������̻ٹ��
�K�+�k�*�����-[�
>پ]Kk�ç;w��ؽg�^`
m
`]=`��&�(�*�,�.�0�٘��6gc`��u������ylg�셣3����B�A!*-�
�d�9\~r� -#��h�K��ƍ��@&� ��@*�:0�� �c�@����4�nvv�~������������o���,5_ꬕz������Ulfj�&���cbJ萔�'��Q��z�by��,A����(N-�U�T�K�j�e�a�a�a�a�a�a�a���r(���e�\8T㭧��� �48xHF����������n�<!����%�VVf�
�
k�E�o��
+8�K�_fkpV���xm b��L
�S�maQ]����&G&g
�u�l�$���:�4_�'RU��ଳ*�2Y�~'�ZNI /��HС� ���L��
o�bʚ�<�<A �q�J������⬪l��l8�~tX�B\��`-&j��
D��f���Dn~)렳��L�H�e������
IJAzMf���
+�4W ���W&�ը��R�1��@#��M��K���2$팄��8�P
�ZX�N��DFmrn�$�@]6
�.s5�W&k1��pO�m8p{/Ѡ$�I�)1U��las,�����ې Ȭ�d꒲�j�r�e
pX
��!&���?��an4am�z0/�8�TI|]�E�-
�Zb�yM̤�FVJZCbZr=?�'K�R��Bk��2��R��ɴe>R���hG��ڋv���0�J���W�E^K
'
x�����9;���p�S��e��Zc�
��P���d-��`��O�=�[
o�`�
[�$SK�"c������Ĵ�8nJs<���N�6rS���TuY-��X�p՞����!�Q�#�7)���h��a"��mHXAO#��
��
�����oar9� <v3��j�'��J���{����n8(���zN֏���zGɘ����������N����1��VV"�%��l�q�e��h���:���N���Ћ5#(��q�{��1DH�
�*�����HV��쎉�늋��b�Ew&2�e��1hF
���佳I�B2��|mU8Mg����$L�0��
��c��C��"(��(e45BNS���e^d
�A����h�z���].��Xd,�_��c=�g�I"r<M�`�G���#4B�p�2� ����L�
���$�s�U9�cT��}��o
����r�/b��y�e.�.�'x��4�ڏ<
���L���2\g�+���G<���x��\���SA�ǩ|�G�`�a*�]�:�y���Bv"-�$.�:��\�T0n��.*�-�*��.U������!��B�vN�6#
+CN���C�(Z ��'����a�q\wm�׃^�4yS��KK{�&�^�4!))�$m$��P&�&��x/�Zֲ�e�-Y{X{�m�aY�l�dY���
`c����^�W�^��_|_?���'e�p� ��J��j��¨��Xk�dߞaϰg�3��
��A��`�,���>^w�.-{0�K���y75墒�۩����NX��a�D:ئT�i
��0�[�V�8dζo���h�>��_\�6,zq�^r�Cj
�P[Rn;p��v��ߢP��ی�j��'�; iВm;C�`�?�m+>��Ċ���C�-�1es~<|�Oh���� �5�c
+�]|Y�.ՆL�Wg���}N�"`�6P�/��
�s{�uW��e�u{.�.�
���Mر�fR"J���.Olk<V��i0�mz`����MÖ��[k�|�������x�[;
š��M��2�;J��
��#�8��bi��
�N�gێ��1��>s����~�臟�
!oLw6��b*�����(�����'�j��#5��M� �*�ߞm���
�@�W|п.`ggÈk�QTa�]2��W���(���q�Sb��U�`�^��Z�n�]�
�e������F{��>�sA�gS��t
y+
G�%�]�F�L�`pl1���+5a�N
P�$~�U�dݎ�t퇠�����?,���͆NOD�9�A���QLA4��
��8W�Ls
0x�^�D�͓+"bMkX�MF~�eʶo���/�Ǧ;�?N���&�9=��{�qL�'�krS��~:O���zx2i�H)�(4�����g
�����o�
+����\���D���P���$�J���;��;S�f�0���T},�,�m�t�䂨Lɍh��Y�m_���r�|�_}h����do��G���4�Y�>�AZ��>N���\�#�@��
c�V^�T��V˙Q�"�@�)ȶ���
���տ���
���>���
+L6��AUئpH}��Y5Bn�
�X�&O��#��
+D�^��S��{��l�NC��r���
�
W�2�����Bu��g`y���
+��L���Q"Y4B��L� ��
�q��"
��T�ҧfh8
ٲ�o�_��x�����ҟ�Ǫ����}�C�Q�ʙ���O�$���� &�6¡���tʰ�I
�f
h:
�t��7.�74x��t�/��U�9����a��+���yD5'�`Nᑴ "�:N�R�hxR��DLq�I~3!)"f�s��!+��僚�B�ɻ?�O����~߸Z{N�Q�+z-b/�
�, +�s��cB
a�T�4Cm�O��i&;�Ab&y�l۴��̄n at b#������ϕ�fZ+���Y�!Xy��Us���o^��ů�`Wp�˄��%R)j�R�\l)G,0*
��l[�8
8 �����q����*��?*�O0����`e
���ن]Gm�n �an�7q�a���
b~�Sr�)����uc��3�?��fo}ϼZ�r;�W0�
x�,�
�}����A�?@�Pu�D�Ԃ؋5 ��j��eH�T�/g(z*�T���
M�=�V�~fk��aE��q�
�f�����Tq(c2=-���B-w�o�'�N��'��z$QF_k��'�m{�=Þa���m��k�:c�
�%U��p4\~jG��p��AO�Oj��1����̷Q�����#|�x�h�g�dafLd�JwێA� /���MGͧO إu ���Ė-�
�v�@#�i��R�IHU���(�A~X���V��=
+;&�m���A�{ 4
zn+=���d�~qŅ�[���,�c3e���
LzR+�ĕ
+рT/���ʨ0� �
�n��Q�o�E�������^wrō�Y�`n-z�������j�Ii
�2Z
|NL#g^
yHjV��n�Ki��j+�[��v
�
Í���k���w�\�K^��E/��y����P5�%n2n`Pz�\N�M,���r�ܠn�mI��$�j�¨z���m�`��ꆳ��Uw��E/�ܼ��8��3������#���B鴱9>�P���N�NcS����K��D5��
O��#˞�|ȳs�ƫ3!L�D'���YP��������c�NۭN�����:��v�k�V+�Q�V��:�t]9tA�+B�/BB�� 9 !�BB��,7$ DDA��u;}����������Њ;i�������
��E�E]m7
�z�Ŭ�[
�.S�&`��
C͎���� ~d�[��?��\;>)�IL����FC��`7��g0<n��� V��Z�Eo0�l���Z��2U�F��4���l�g�z�]��c��|��L��d7��x?9}pW�q��J���ԻDr�C�5�U��j�f��Ū6u�Uƀj@�_æ#�eO��V������H�4<JH�������z�����z2�K��5hk�����l�ۺ�rk���7�;{6
��Ԃ�`����Lg��h/���0��ljwaB�o��u+趮*��ϗV{�jU�Z'w��W�Y��e��P{i0�ٽ��~gч<��
ut*P�86�930N>�!'�E�y�0��>TQa
+2�� O��(e~�V�3�^���0��ݐ�m���k����5Wξxk�����#� ���1ܱ��(9�;M�k���Y�T�����
+�A�LأR�F-;�ұ�zt�6�4�R~�Ҝ��|[��� ���P��`s�3���&�s͒��߬�Pi�Q&K6���Eb^H!��ʪ^�����. 9��6��& {�O�Z�1ہ�!� ��
�(;�:�Mj��gٷ_�0Mĩ'�T��)�r�CBg at .b�k%��YV����<
+���|-a�!mW�c��{`�'A~�F�s�a��_ d��u���E�dQ�A�q���5,�2�T|��^H��h�������զ{?�k/��h��{��mS%7ϡ/:�d�&[��-����S<7ZIfE�4f�O�
3�cr&mTâ�ٔ3j@�� O�_}/��0!8�������<�%���K�eT�f�)}\^��Ǖ�f�hf������WLq �I����
+*1RM#Ft��D�sǍoϵg~k`(���q�,�@c��y��3��d
��}�~�X��U�Ip�<
A~�@��X��Y.�0+,��Hʱ1%Sa�̉�e�X��
XW$��ޙ�7���ͫ�'4[��Š�:gq�r
�F]��'-�O)��%�C�F.f��W���/{,(@�%pT\
+9P��m;�
�
曾��3��Dz�}P
���A�i6ȻHEWI ���*����'�o�R�֩w����g���gU��5Nb��*���MG`=�`��eXc<�u�Z�n5H�/GX �8
<<E g1 q�
�.� �2 �U�\+��E�~�7
;� p � ���
�X� 3�%���~*��f����!d
E���H ?� �O� �
`N ܙ|@�4���(gs��CP��
�85��
��(o���_C����7`)�0���i�e���yO�td\���Ie���bZ`bL��X�
''��r'�:y�~�j��]5�W�W�W��SǠ��
h�����k������[���M
6c�@�]�U Tl�\L�I��)��9ɷ��\'o���GX݂a֠��5,��
�|Ǡ��60g
�nG�۰�o�۰i�V��%#�$^��Ω�\Q9%ֳ��Zn����~�8;$�����"(��A�m���
�Y���
���(9��PvmՁ�������J)~d�cb�\�JZ9!�f��-�A�h��*��d
�~Y
g@��
J�� �1R�ۃ�7
��V���8˯,;�w
7��
�)�^5�I��b��R�Ɍ�
�]z�����
)]�~yo@
+��Ͷ����V]��g��+���Kn��'n�.�W�FjA��5fe
Bz�F��T�mR��'v*ZDm�&A��!)��2(�A�c0���i�>��,��S7�Ԣw)�!~1�dL���aWb�^��1��
:)�U�y&Y�̡tJ|j�8���BJ��_��1���|^���W��xПĽ���^�͘��:�>�P���N+��3�9�Z�ȩ��;u*�̣�ɂZ��Oe���K�6��/7
9�Yv�a��<q��;���pm�OJ�Q�z�E'
��ЛM"�S��kur�ʪ�(��&e�؝�&
;����[W��l�f��{�U���i��n8�jW[]բ���q�\�΄�!�}�B�@�.9�
BD�B !��\�o��|����?������hV��
+�u �4��4Gn^�J�x�
��Q��d3��xkv舝�C��n�d�ձɷ+�����P)/5T�U[��1�ڍFM�ޠvh �~�v�P�y�:����f�Ao+��X{���.�پ��莶����,Rm��]Q.�+�B����Hk4U�6��Э��
�@ze0�
�Q�j�?�i��j����x:�'\�H��{�(�
rzC3�TU�g�VID��<��X��[�ZM�͠*l6*
��*c�6��ǰʢ7�T���� ��ۊ
�
t��<���ه�l�"��j���,K�Xh����lj��̤�/)��4��n}^a�6� �o��
�>�EoxR��u���a;v�p7~_� �`�
���^o�%�Vv�ŭ
fA�P���IU5*E^�Q-�,��T4�sl�zii�6�^̗~��"f�ㆴ?M�f}4ҁ�����r
�t�I�jr��
���*��ɢ����E*�7�˥
z���X-���
+�
ZQ�CH���!���Қ���u�����v�C=�m�.��.wvp��t�(�j���T�b���Te7��ۙ#��QH�v���f���*�m�J��^U �0N�k�o�o���TK�����
P�w
>����~H9S=A�(�&=�j�I�u��~ �ߧr��$�^���[�K�}������
F�������5���w]�R�t�6�=�ݍ�Goy�g˦�Q�IR�j���=��#\�-fq��,��Ow�������,��w��өU�l�o���
�D��p&�n���4�
��$�(�/�����Y|�l��)����c\gDDeyr�a%��ֳ)C.y��Gl
(P�
�ӫ���r�-����1�7rm�X�k'1l>\�y>�f�;�K�H��)���`�B<H
�#g��)���)�<�Z��r��2b�3
+��y�e��Λ��b&�P�BF��yƅ�et�h
˙#&0ghH���F��g���(Ҥ,��U`�^-7Q�ǎ[ �� �ɖPDO�9D���_�{S6V̤�*\L9���\H�Q�a�eL}�E��ƒ�0�s��cA"nV����!13�)Y>m*�gL
$(B�t�+����#�<a�����+f�6.%�TC�~$
�
2B��u�
�0��p�S���ˬ��zIp
�(��\�Eg,�Ǥϫc �?Cx�lA�x�uދ�l�;�KQ����b�ʃ��
H��
�� ���{
��� �3�u6
��Ҁ>�R at z ��տ�������Q6���i�;*_�W�q��N��%B|0�ѐ�e&`����T
M�1$���
�o��}<x'@x2
$�Rs�/�M�B0����J��νdžK����V
D~��;�!qw*��AB��$��["�⁰/��J�M�����>�/ 8�"@�5rX
��@�!�?S�?��
+
����-�1���9I>jFh�>�[��
+���2�j�y�]� ���a2�Ynf{�������� ye����
×/
z�AM����d"�A����k Nsm�IN-���.c��b����~�]�0�u�A�7��C�v0�E����
��=5�#��y/��,�h�ӢB�$������'8m�qv/��vq��C�.��c纹��
CΊA}y=����%a7XS>��N,[pg̤�O
���jN�#�=%S�S����>ƿ��r<�^������
��xC�&ޠ�uފ!/t5h��s�V(N��Yiځ���oJp�s���;�g!'�"�"���)n���Vr�M�>�]A�%��]�F�KT@/
��.|
E �����ӃmYǞ���̔�.OY)��fF�^�R��y���吔���A��]�7
+��Z�S\
@�
+���7Xb�<+K��bE���ʬ�W��.��Q"G��ġ~F�NJp(��N���.-�JjD͢I��7�V4�S��&rJ^7��
��1��`���S[Ҏ����'5��|5�o5��h%%�]����������::�T������qZ�b�:���Zm=Z������ �a K���B��
�
�����(�M#�E at D�y/�xN����{�|���I���S�
+�6���d�����AU)�W�TNE��J�U;�}*��_�o�
�`
�v���I;�jIf��G&�Y'�q�G����*~L�=3��P�l�h�.�YT�/��h
�*u��Bժq({�%J��X٧�_
+�l�2��g���u�Ϧn2���'
�xg�.���0
aJ�M�t���\���X -ח*˴��RM��Xӣ+R{Յ�>���5h�o(���̖���
�7)�&]̃cn�w�
��~7�bW=�R) �*�f8����<�ؑc���l*��JS�w�
+�=�]�&_ۧ�Wc���ƕ7_�Ǽ?��m�@�;�f~�kb;�� �m�]lo`E{j� �1��X�wX�Ⓖ
YQn��j���\:��[�k����j{e0�ە?-U�l���8y��{����A+���vF`w+�B���r��5�"��.��4�B�I��oU��i͖z��r[o��њL^���5hQ�9h
�mX��}w�&aۄ�
�kI�;��<��M����t��Ĉ�k��+j��%��B�J�g3Hs����R����i��zm~�Ng���H?E
�� ^%a�Uǽ��E��qm�h;}�����M>��E<�Кz������3�E5ټ�
+e��L/їZ���b��V�S�Ztʢ
��ګ�7��
j��{غ����&ݤ;�_�P���#��H9��!�uv�"
-�d�;��S�5;�B]�6[]�#W��PI
���I+��je�^���2��
���Ǿ����i���N�����Ꞗ!�ц~rP�=�ՒNVbA+�bn�u�d�M�XVg�f;
��rUf�G�Y�U�˽*9jУ���UK�k���ZR6
t�u
P7�
���2�8�S.���0�9]<��C�P�JҤ�j���$z���!�{�r��_.��?P�j(
+~}�*b��'q�Hn��>���!��M��O|��U>�Oţ�P� +F���+�B�䞄%�V� �L��;�L��r1��;�}�~�y0��@����8xŜ3b��}wc�u�ǯm�nu��j�YG�̟��RC
>&F���$� fg�҇TLސ��,Hc����t��W���;P�3j�-�n_6ҎA��c�7��|��j�S?/��LS��OhW���FeM��鸴 1�3���
��1
���Ƣ��ؔ��
ʃ~�
j�=�,U�A�=����֡ؕ�|���㔀�i�W�� �1H�@��5O�&�ga�f��iQkJ�c��!�'MD�D>�2QB!��R��i�:�`=��՞D;�������9N��!�.�� �, ]����"�������h��$��TG��b�3��tARʔ=�0U��70�A�� 2���v�z?
qN`�P6��b}��m�JH<&��S�r�
Գ,`]L�e�ˌP�
qiIN|�������f��-X��J��
rw#��H��&���1�f��r���uKQ[��S1D��:X at 8�
+�S4`�H����� <���@z.��@{!̗���������H��_���cH�����_�������pu{&\�Ã��
t*���t��`}���I�L�� �
���8
��1`����W/G�:V ��;�¥#H.��ή�¥������N��!@�>
�'� @�<
������U
�Ā��h��Ñ�����n-C��.G,�
���e����!�
&\�H��w��5��a!��8H�[
v`�ԝׁ�I$0w]�����
�{�A�i����?F@�5�ӯ���ІmCt ��p��S�d�4=�ҫ/2
�EAA��4q>�7�u�r�Rfؽ�i�y��������Qzx����7ï
Ԑ��P�
5���S��`F
&·���
3���ْkK"]̢0� (I��W��\)��6�4�K~�
��q
R��>j��;m��O�
٨Au~=�7C.fX>
�0S~xa`-�y!
r�9�*��8'qFx?-� ���z�j�>8�:�Z���j{�֮�����xڵ���=N��ݴ�/�r�� �r��y�@ !$$r�@�p r�$��.`Q��x8�;|��<�<���&>�t���w�3� u�=E�i��'�
5W
E��4v0$�F����ux�@:�����a] +� ���y�&�ؘ=+��.J��A
r���8�˝�
�s���<?Q��D�Az�%�տ
+�b�S�
P���JE�K&�E��c
�0��O���2��zB at l!O��4���q�ߟ7��1����n��]d��"�C>jPc� C��@Eҟ@U���,ه�T�=6��5oȻ8Sʋ�%)�B%�//%�I+(�ĵ���9$�a�x�=�I�G8�q�&���w! �4��<v�LbM߿d��,l#}=o���1��L���Zq� �naIΐ�H���z�.v|��)���<7
�7�9�^$ΪA���W�)�M`I�����k�>�!
��SOMYs�3^�����7��p�E*bw��~KV��H
�V���"�4���dBX�L�%��� F
r�P��
�qo [���f�v��9H�Cu�5��cV֕a��F�N��T+I�J-�Eab5ɪy.i��^�-rH�p�t\dG�JDž���řu@��*�.W������q=����?|��3#�y��+x7:
�M[@jVi.���,��k�
�jYlϿ#����J�����"�Cj(C
Uq�?�Myk�
��ac���f���f�o#9z��q��½�n�q�erR}I1�NUƶ++��B��J�&�P
f�1)�b��G�
�
+Q�
�k`���Ӻ��î�]sn���V���6��#�ӽN�%����eԗ�juJ��D˩R���بt#e�D��I�>���/�$�[5(�Df#�ſ�����MY�̶��Nzh��:��[�\�K���D�U�Qk�m�F�N�6��
�S7"��n�Vu_�-�!�b�8�^$��51/���_}Ґ��Ö췦=�]]�}��q��<٧<͔�MN�O�j~��
+!V�
�A�.+�
��X�m������Z�T��I�j?I��j(F
&���5�,4��>׆��$����
�����3��V2�ޕ{����^e�s�U2��\�.1��*C%��;�B�GZ��'-��$J���)jPG�f��g���ל��Lak�'�M� vw�`�_==��l�bjKk�ʪ�i��UT��T�Drs-�oj�HMÒ�r"��ő�
j�ļ�����%ms����@֖�{ɻ�GR���8���9o����nVjY� �qJ�EuLE���o7
+[5
[݈�:��U~1b�Ñ���ѿ̺'
���c7L��6ܹ��J���
/�/�w2��������;�)�6~zdy��!iP�a��'pڄ<G����y��"�-��5�P���`�Yn��
+u�Ey����
K����z�e
����e�|�|��/�����!��
9Uئ�����+�����k���5�����}�>
�)h���-נ��Dhp�:�����>I��$T3A<j��-��/��^����*
e
+�e9��b
+�WO����{\LjO/��
d�ۃ�H0jP��Ih��
4��
>����xٛ�C䷝��-����Ӫ �|<�G��I��r�d�<o1��-ˡz�$�B�MR�ӴHj(��ǡW44��
�7uR��!�o��v[�
0��T��D�gI����4;�5-L�
ISh!e9T�A
UfB�,|ȃ���gOLG���� `?
+Ͷ�n�
�:&�@�v�s.k�5��n�b�A�b�W��)x�x��b�a��0�%�$��?��193l��nNM��a��d{�]8 -���F�B��WP��U�9��ɺ����,�}�2�S�r�x%�w���B=K_�;O^�arV�K�+�2��~�=/����
�}Z���}=u�'�@�
X�AÝ���.���8T���Z˓�-��ĝ*��
�|"i�s �K���Iȍ���Y@�o
@��XP|>�.��dPs14^�$P�
n����֡� ��COc����-� vG>H�-�g��<� �R��::z\���Ԏ�:����T[��V�Tl� X��&�����
YH!$�@��а/��B�**�R� @Q��3�q<s�\�˹������z���$��m\��-�����
����
+��q �@Ɨd���ه���u؎D�G�ӭ�t�q�⋔LlA�/�#&�����D
+�V���
1�����t`n��v
+�v����G�lW(vG��&
�{���7
��N'W%�T��@
+'���ބd�
D
�}���\1�z��%�pn9"VӀ�.�����
1�|/
+R6F ��pl
+��PH�r��@Ƈ�C��`ȞVUMb�� X����
�#؇�/
��I��
�@X
��@Ē(�Y�eD�-Ɗ`�<
)����� �Ձ��9�O�l�)P��N��.���_����y�$,M�j�$o
�cP&�t�HS��X�
`�3 (
~�+��օM���O��EL�tE�'����
E��c�쑘n�hL�{�7�0� ;>T�AK\
:ܠ�}
ܐ����R�'�D���0��I�=�9��8��1ι������0f�5Dz���{9#�.��.o4�[����A�ҏυL�[�E\ ٤?A6�#�1?
��7����<�ĄT�L��TXB
C+"���ZH#X��2���r=�.�0�6$���{��x�A��AGxr�+�H� F�_^wO���ը�S�����0*5��H
+#<"G�VK
D]���87�A|/o�z_��xhm�0�e��Ay|dB.q9�I��L�p27a�u`L'8:����(T��rC�#�%�-)#���(�K�=h��w���t�|�a4c����a��
��A�Ը�@x��e`!�3e�n�O��Ĕ����wdP+9ѯV�)�a�rst��8����%j�w
+[w�΄�X_B�p(�Y4�ly�
�a��4pC��d�#�u��Bi��Bꦱ�_G,ɟ
����ѷ=�t�uf�?Ƙ��¸�R톤�qMܜ�&�Hj�&7����C�u����P����� ��Z�`"�
+�K��Hk�S7�3�
ڒ��Y8_�jtdAw�*�MU6�]�����|KZ%�9�)�%ig]�<`5��k�*��l�t�字7�p�>`������RҪ�2�Oc��4iWO�@���#Wt=+��s��ܬ4Q/+l M��I
�zV}Z
�Vz�[��ϭH{�u��?�8�n�p���
�
+� ���PL|k�NZ>;P����H�qߞ��
��Z�8�5'���k�M�
Z�ʒX�(K��Pͩ��x?�o���|���_�/�%��?�t�`�
֠yPJ\����t�I}_Q7�Z���������U�2Ɉ��V�E�Ҙ�NU1ˑ������%��bE�����N#��!nP
�o� _(
�;e'�>�$-���|X�X�&�� {���G�ذ���4bMn�"[K/��2홅���W��*[�efU�Q��-�W�{
���m��
�c�`
�3� .x\I^����!aMgu����{*g
i*��-H%V�] ;�zi��Y���
�e<Kf
��i�5���0�ƍ��n��^D�Ay ��c�AQ��r���j�Bwmq�%Ɗ�&�櫵�=.g���v���"q��*'���t�1�i5��J���JԨs
��A�'4h�
�-�2�p�����z�$��ԑ<l�-����+z�O
�O.V%
�)���LZf��lV%͒�c�rs�9F?;lj�
MB�����'�e�a�,7ꭗ1nP����o|�,�w�2l�@i^���{���ښ���j�c
��䜲;��E�R��HA3h��|#[�W��4��jS�Pej�r{Ejc��q���+�7���xa?����Й�M1�
�P�ܺvviKk��]��rԲOW�!���hS���D���X�
Oi��
+k�0�r�[��scf7ꭗ n�~���(2�8=c�.���H������7 p�G�W�B��������]A��{s�8���i
*�ʞ��(���KJ�i�5hjq
�Z|K+t�2k��[ X���A���#ȸ�2�H@�[�"7�r���7�7T���?hs���:�j�J8~G��X�Z
KE�c;V=�H�l�2"0R� $��d_�%`PRYU�Z� ����GYeȖ�O�g^�+�̋���9��{�sc��%ٕ��.)2�\�H)��&��
���+K�K%�2E�kY�!i��a��
3$`�,�Nh��'4P�ڟ;��%��ɖ�v�W%���F�P��;{�A쫭S5�(�� U?3���b���L(���u�"I��HZj:P`�����p
}�y
+�uN��� ����{HfU�T��n���N�ޫm�9�
g�3���E�OnV�
���6ji��\����-��������u
<~�OPe:�ݑ��sy��q@���gm6��n����H7�XU2��*�g���e
���:�u
+ݒ;���m*��U
+I�m��en�e1��ZF��Gq~��<��4�3Lq_b�r�k�x�~��l=��>��<ѿ�)�wG�y��p��;k��]� ����s����?�[ҟ�/�K���!r����}�df_u(��e�{$��z�d��B��7d���ծC
]P�=�������ݘ���`��5k��'m�a�4�>�
�;�ƥ.b}�_����_ı�Y�L��h�-<]�
��7Q�z����&�$̐g���W��&sT1�
��O���|�W̑�g(��
���
Q���!�� >c�=�1&83�\��Z7�1�=�x�\��������q��
oS��uh�x)j�4C����λ]��S��{/�<��� �z
����M,Pm��8 �
�GX �g@��tH��
+i'�!�1
��I�N!p�
j�I��b��
s�xw��-F��/G��mQ>�D��}I:��H�7Ɂ�U;x�-�6�@����TP
ա0Pۑ!���y��G������P�`��b�*
t��bT8�9����H.fI�L ��H��6H�f
Tk:0�E����
+�oB@����!iWh�@k 9�~P��n�3U�=�n�!TЊ��7�T؉�;���B
+��|��ߕQ@���2
�>
�z2Do�F"�6��
H�@��6�B��7h�xA�VO��f��*�
+�J�0GI��`
�-��a��
tl?���<��C�2"��(BV��* "?���O|�i�
/��ѧ�@f�JK7HZsR֚
+h�,G�A�<��;]�@
n$���P+H�
*�-(�v Uك�� �~�3���
�:��Z�y�#����
�e�qӌ�8s7�6��p��}܅���
t���
R̠�}Ɂk 3�i; �m
q";��;�TsD�NW]�������ݍ�j��k�݆�a�{O��|&Y�>��9�A����k����
+�!
+3�1��e $a�T�%h�_��P�l!Q`q��SFi����������s�_���i�~�k������9#�o9S���Y�ޘ9���9�+��A6GEao3ĺ���k9�>�K!��b�v�0m��|;c��a..�qF��<%�u{')����
u>zA���Y�ۘ.�P�0~ f�˟%t�g_f����C4f�a3L���z-�K�ՠ
��ȯ�/1�4�C3j��TB��D\��xl�Oc�+^o����������C�f�3�W0�-��̜!�!6�fI�&�h���
|̐��<���x
�
��!3b�!#z�t:����^
�8���:
�qn067 ���/-��J*{č�Dm���+���B4
�$��ϐk$
���
B{l�:�.y�2�����Ɯp��쨝��c��cÚ�Sj�kb����
�.eQ@��vP�LG|%�n��$?��>���>�L��H�)U�����a`a1fP;-��R�
��C
i�l~��d
���
���L���t��
M�K�:ͣ-1˷5���Ly�آ(
i�W�=��P�e�ᵲ��dS�ӑ��������&6O�1����E���'�
Xa,$YN]��e�
+m�PӦ?�gו%��=]��&ճE��oJ�
jP��� �QVDT+#���A�N�V;E������X�5ȏb��Ӌ �9�/��F���N�|�:m˛"���+�m9��g(]�.%{�_�P��>��w��3��4
�����v�Y�:�DZ��zl��Q�� �Qz
1�&�%�@�)!$$��R� ��86�+H ����㞳�~��o���s���O�Ľ.Z�};RC����5�]���̲�Q�:b�Q
9�P�_�dC(ِt0�r�g��� ��a���%m�s%��'�Ď�<�#�١g��֍�DJ�0ݹ:>ǣ2VN-�]/��g���X%Q}le�[�"z�%�~ǒE�c���#�Mɻ�9yǷ���ݴq��7C*�y��>�{T���
+�/m~��r��4dFYפ�S4����lOuB�Oq\ Cs�U� ��1��4f�#�c�X���!b?9s� �
?�l��J
��U�>�Eu��r�5
Ō��2�����gj�֕����T�KIr��")�&*��x
[�����7�͍%r��8$�>�%�dC$ِz��3,
&��L
V;L�t��[�1�[㾺UM߮U��JOk��.����D���4/iJM"�3s�9���\����-|M�f
G G��oC�>��c��`Bq�p����j�iOk��vT���[~}kC q�J~�TYA���h{�8�Y��♗.��J�2�S�Dfr=/]��O� ��ϣDz�~�#|�ِ���
�����>�u��g����ZוZ
ͤ���k����JlU$��/ȍs�'{���h�VZz ��V�KNk���H#���nr�(�ϗ������u���,������
+�4�M��^���ಢ�ϖ�
+��Z�g�PYJevy�N�$ό�
Z�8�)�V�Yռ��~|V?!k�'��
+�G }�O6��
q{ ���G�).���5V������˳�Z��5uޛʫY��+�'
+Ձ�a�b��1�P�R�擘�Èϓsbs+���&� �)i�#
%b�������{w���L��7����t���ܳ��p�q���FU
c���w,�2��,�r�*�!Y��&,J��BVda9!�rå���o����Dd�(G�%gޛw��� �+���j3xԼ�ڏ���z��V��5{�Wh�%
�٭�sU�6ɕ�ay�Kli�g�*�'�D�).e7r���9A�Np�;D���
!ȳ�����զ�;�
�[���
��ie\���w����I��v���
����Jn
�L������u��-r
���
+��j���
��.�� �F�8#@���
�?��r+|(��n������h�XOW=��P��mMn�϶�v�ir�xBK�yAs�uDS�]�I7�.7�H<|屮x�����.*�a�ʫ�Qy5:}0`9y6�@~��r=��Y�:g@�ӭ��9
�}#E����^��Y�|6�<a�Nx�?
�0�dxW���N����W�:2(�v�Ѯvb�7��ۻ]�m.�� Wvˤ�>xs���
>箂���z\T>��W@��8U��1�V?uI�k�:�+�6�
�������������K���fX�V��2��ޖ�����ߖ��
��{}0x)�-,�����Z3�[����j(8�A+(x{m�x�m^�ײ���u�o�&�C�]7�n���
�F�F
&���N3s���iCU>C���=�ԁQKj�N/�^��Ц2��FC({�(7�t�(佳2�~O1N�p��0�4j��6DG��#����v�tA{8���L]��Nt�G�u�{��פ���d������n�W��&��¤�!h�2��fC�
͇�qȞ4��_4}�5���07]��
+���#{=y�lba�
C��0j�7���Ĕ��(�늲��Xf�
��#>��a6�
@E#����K ��VH�#��
��fz(��-
���� �^�B�J:�i�����1�gW���)�
P���P�t�
6l��&��d �� ���?
ȵ�A
n�H�B�
�����@�L:���H��
߹#g�+�.qƀ����F��`�J;����1�
������*(�d�?|
��\w
��N��!`�I:ZL���W�h?�
�]��'�逴YW�9�
�9��;�
+��
C�[c�+�[h��o-0k��ѫ����� a8�\{��{������p������|��5���w�qm��u������P�K�QFƥ���!"d�]��������BB$B!�TP�AE�֕�"�.k�N�x?�����w��^�s��sE��M���#���Z��
o����=@�ǗA�7@��
+�[]@�K���"C$;��p��s3
vT<�I��%H
� �q���� �j��Ct��6��9 (�AB�-�o;
��o�_�}�3r�=�Z�^D-F���j:���Gs�_8D�� g7:P`Ӧ@�t���\萖hRR��(����ԧ UPj�6Zϭ�wگ��9��=E�b_;.�L:.�,��b�г1 =�o��Es
t�B
l�$ش
K�� 2"v�+��X�H�[f��u���5Z��jR����&Sbj��㸔��?tq.~�i&n�i*n�i2
8�&�KC�b��]
Ё
�=,�0`���"җ #�;�c
Z�p�Wْ+,���d��%��~�V�ZHjC�S�8�%�_��
:OQƜ'(�]�QV\F������DB
t Þd®�[�L�� +�� ��Ȍ�v-�~p�DZ^J�<�Ȗ��g���_�eԠg�-NӴ��SI�\&�/\Ǩ���,�M� 3L�_$��I��1��x� ;*�d
+��˛��o���R��kٱ['
X�`[��'g�e�ө*����8���]r���3J�u�?�<Lq�O���-{>��Gt��� W��
�`Or
`K�mR߭@
�ɺ
�g97��9��gŬ�SB��q~��W��S|�
��e8��m���>ȼ��*y��Y�k�'ɓޏ�>��
���
�.&0
¦%@�qx�a�c>r�-@�[�2�yEԟg� �&��GF��O����
�\���ie�g��<��n�`u�<d=����_kܿ����Z
�dm����:P��<��M ������Eu��Bҗ��Vo�臇e��$B��")����C���~����S�ۛ�����
��~
��
�z�=w���ܖ�
ܜ�a@��6-
v��
dΰ-�-LEA��cwM����~3�J:�2���)߮_��ؗ��ړ����/���^��t3�+���(���:��3֜�֘�
V��j@�$����{�Y�/!�^���[�K�~3V��tX��K
e�@��~^�]�T��#�angxu�~7�A����f^GX�
��;Qǝ���.G\�a�y��� QЁ
���y��]wY+��4W�o9Q
�����U9�'���/b��(9v��
t�4ۭM���".�o��
kBkױ��=8#�yd�]d�`1� Xŕ
�"��`�GA����{
+4b*����}7�Uo2bw>����_��GK;֩f۶+��V�حI��]��
+���3�ëD�8��
_.
�o e�yB�h��FBp�����j� �ixP�R �2\�4r-��Um��ƈ?���v�R�(fٶrэ
+�[�\�m�)*s�C*$�>�!�T|�P"�'jůI��Yb��DЈW������
G��
��Y(uFƫ<��:�M���?���鮎����D��:�FM�c�J��Vf{���E!:�
�ͩ�k�ۉj�=R�d�\�=M*�6U�+xs��
ҏ�����>���;!�F
2��
4�l�k�cW
��Fe��f=�t] U�`*
+��˔�%��M^)�0/�]')e�d��UT�l��/[&)�&�9>8$�]����'�U�Yd����:!/Z����+ۺ�C�p���]�1�H������}�P�w-�dziղ�"�2D��b�*|^~
)7��,�{%˛��eR��D0������
����<�A&+�#C
�ȓ��^[�ZC>��D���.�#�_���2=�E�y��9�Ep�Z��-4�sT���.rV�Ө��wdI�)[a"���}3i/�Upv�� ��SȘ�4����a�����r�=xwK+������Uuԓz#�^[���T�e����%E���H���(��&
5da�(d��Yh"��
�"x?���\�
����H��sHW��eۭ��5���b�
}��)�DI}�9u
�Ii�˫�|r
�AY�a"}NPVK�v��I��W7O�kMs�x����o�~�>
�w�{d�y/���~��
[���͢�N�'5�_nF
е%��2�Ml���|�i\�i��VKa��i^5�h���}�� C� i�6-g��k�N�RIEf��i&{4Ȕ$ i��A��E�
��}��{}�����=�}���]?�]v"8�ZaXZ��RJ��$]�C�_i��/wT��
c�Ӂ<� 7#��9���z����C��-�<v��Fo��
As��2.y at _u�>ת�F�_��-�����,�#��*8�T�{Xb��H�ͪ(�ͦh鍮h�uet|�D�t�`�/�~��
�%&�Yn ��g½3�h�����J[
εD,=�D]Q��ޘ_/��y��U��#�~�wJm���ީ����`��҃��U�»Ma��0�
e��6�O
+��B���l M�zP�H*����[Õ�?����3{���9�4�ku�S�U�xǴ����
�Ħ\Oi�)_qc�
AC�?��*���
�}�
ȫWpj��e�dnY
+��@K�.ܿ�
��p��.u����^P��w�3r^~'嫜�,��7�u�;⭒^';$���^�*�Q�/
�����ROv{�7��ه��ˇ�b�'��������d_�O�kÃ[�PY�W[��|�J����������ɾCss��K2z�LS{���^�xE��X�n#P
s�)~v�(�\Y�K�L�_?0zm�+^o��
l�wML
f́�_
]�}�Z��t| E}렰�
~����g+#�+c%+_˔����\�JX�S��㨲,�Tǭ�Bk��Ė�.��UW;ƨ����?OK� ��s wn���<с��pReyC�pl�W+s4@��X��|<j�t��X8���?)Xƙ�~7�dƘL3�i�WQ4���5g�
�
�#�������0MϦ0�?S�\p�
��]�s
�^hCް dMl�t�+��'�q�n<�b�!c汑�����Q����F1�d
�i���l�p�7
�_���y�x}EV�
�f��w �f%��� �@�� ��q-H�D�
����}:L
֧a�L
+�̎A�a��D"^8J����!�� 3bޢ�X�x/كW��a��ޞ�� kN7d� HF��1p�
�h 4t�X��^�~��ڡxP'#u�1F�ā^ ����7c/�g�a¬�0u�/f���</,0܅̙���;<SO�<�+ !� k/&�~C�\
!�#��]an��Ȼٍ����7���.
��;�
+
��
yZ[Q����1U���L�}��^�z��/X��,�C�!C1�@`��$�d�!��W��!��
H��@�}K�6n�P_XMR�m
��o
����)֟)h�&���h3D
��zQā�C�r� �4D }
+�F(�� /�
9���uf
2ϯGF�FdTX"��&
���$���qZ��(���0Um�:n�"�W�h;@C����� ��!�tV,i
q��,� e�(��Hf��#+���
rN�ӰK6N�J-'�ʭƙ՛Ǚ�l�OlGol��}v*��n�>f��N֠�}?
z�8L
���Y4�8Bor��<� ��Q�1B��ŇWj�9�'��֏s�-�8��F�7�GXU6ì:���f{5�p��
t�g�:��C�>&:)����D����s �J:��F�����_S�fcr�|Lb�Ll:!M1g���aXP�i�w�Z�-�Uq*앜Z�Av��'v�S?�ǹ���Y�
q���.=,t}�B��O�,
"��ؤ��w���Ŵ��1-�KMj���$��H��|H��V-9a���<(,��((��;��?��]�s���v�vs\�q�]�r4�o8����[��N
$�C0��Hg�H�$�L۫�!�03ꋱ#�%�i<U��|P���cB���S��%����/:)D�]z��]�ܺO���;��|������r�3
z<�G#wL���KGH'y�o��1;x���ȹCٴE�Lβ�t�����k�ٖ=�'m�dg
;�Ϲ��\u���啨vk��y�s��VQ�G�H��Q8��A��
�D�9Ff��āFG�D:c;���Z�����y��<���
�GEf�Ik:�27u�
�{%/p~�P��Lvykk���-���%�w6��<�%
+χ�W�d̻V�>5�;���0қ���]�QM^k~�C�k��y@/V�b�*Z�8PpB�DfHDD@�@$ ! !sB �L02ƨ(���@l�*Cժ���,���Z߿o�s�~߳Q�IAs�z���0Y�m��8c�s�g�QK
�x��<���
��=J���L�}/It�Fz����:�Kmq�N���+��D{ʈ�6eܭ-e�I�p-���+`�H�)��bP�ICs��>��[���x1a���9�9��
+������o�rw�,����C]d��vR��6��D[��I���B|�є�£!�G}�FԦ;�4����f ��L�����&/D~�O��3�g�
�W�b'Z_g����e��1
����m�sKf��&r
�!�գ���R��{א�y�Ho��30oe�U����m��^<�'�3�
�s�`\x�I�L�J�
HC�}[x�R�K���&n�Z���-��ؒ[�Ԙ�w�ϖ���T�������>U����̧~���|�Y�O�W�B��p��2�e�'s/��;/�.`(= ���X���$rE� n�բ
������X��<RK/r���U�Tx(���r�֯���_JƗP�S�2*�'�b����!��$�K�
|f��k�#<�:������ʃ��J"���c�k�Iۚ�H���َ*V��*�U�/ĕ��<KsU>2��_��'�sD9�m/�a�B�g
,i�B}3�2{+|,� �}�G�~��� ����zEп:�×��b~h%n��٩�(��
����r--(��2/q��W��u��G����w^
�G�㋆
�o�"_Ҷ�$�g���|/ܯ�����=ʀ9Wg���E���%lU���*��r
ͩ��t���p"�ċ_���1\FW �1�f<G�
`31��ፁ�A
+f
�%�}�+����~��J[�q ��ͬ��0[�
[�XqaMMY�OU�ԝr1��A�aI1�UP��sE^\�]XG`�2Yw���?o�����ፁ�!
��
CB��o
o�7ße[��G譳�����:�����je��ʊ����_JJH��%��Q�
O��q�O�̗QTK�+�ҹ��r�O�����#�q0�1�h�C�����%� #��z=��BG�o&�F�o�C�j"W+���JI�by�>A)�P���̖�ܘ�b�<Q�o�P���P7����_���τl>�7viH@���>�Vè�
+
W/�ކ���lWZ]L�Z}f�6��_���2�ō��
%qOQe��
+�QF9�8���S"��Ȕ���VYz= C:�!� K>�3%�Q��(�hVf��I�%<+[���Aײ�m�@��(��^ӕm���[�-�M��
۸u�v��
�|U�S���B��eV�=3�>i�~�
+=>U�O����?"0?c`��Q&�Y��4,�f�7�~e%4���P��a!�
�+��Lp��Z�&n
�%�6�����H=@i�;J�㸦�E�T��#���;�V�X3��ITM�$Vc�����!?.�`!
K,���
�ZL��c)�{����~��q�2=~�@���
eU�k�בd�Ӟ�+KK�']� ���$k�.�5��5���V��K���q-c'㚧�/5aF��#/,D{r&�A��Z� �������nك�︩��o&����0{#V�o^\K�q�G�u�M�>kg�ܽI�
+
t�tG.�4
���9G�<q��
w����݁�K���a
�U�@[����߂��Z��3��X0
��}��� ze����āԍ�������
q�
+w^�+�}�b���MQw��Qw�
���
�nO�
4�1
�Y 7J �� ���U�MAtw�
���
(q�|��Y���Y��$C��TC��$C�U���f}�P�邁�5�Pni��a�=gxd{nx����{��'�Nc|��@����@э��-3�
/�����
h/\����,c4pz��9�c����b]K\3�fya�b5��&b��.|\�!l\��̄fS�č�!ÛC�^my��(�t�4�T]_(�g�@���W�@z�
Ŀ=M���-�ߝ��.|v��
sϿ��9����$iq�d�����?�,�?��
+���
+���:�c�����5�cF�&hUTk �:��� 9/g�?|�{<��ǟ�E7g�lmm�n�K.�.
%��u�A�$jcf�1��a��
�[4!�ԲIٕ
����:N7�"�K�~��{g�x������=��;�O��*��0���m1� ��|�V���`
��� M&��c�p
�Z?��oGQ��f.����>X��V/�Ɔ��e^ع\�+j�Ko(���
�\ ��a�
����X�
t:
���v
�����8�ܙ�6�#g{c�
/L���s=0g�Χa�*�-t�Z��\
p�� �@�# �88�0Q��3�
+�qx�^�B8�
�I�x�/��1�!�.ț���(Vs����P߃���X��
�TRq
�L��>������Y�3j�/�� �
4�BflG� D�^t��H�]D�
z�-��6�<�Ȃ�[0
6�,1,0E%H%��N�[�Xz��y�t=� ��L�i"G���!;u �r�#��
+
,_���Uȸ���`����u���S�^� ���}Bo�����G �ё�
+��
�L4P�
"}��H� ���L�4�'�Bn�b�ȗb�����Ye��yi
2��~
l\7
ئ�%��$�e��Ce
R��O
�
�?�@Á�?݈�o�I��%}3���O�0
cj"����1�1D�=r3W`p��נ��_�Uk�ص����IV
e�uO�٩?��6��
0d�|d��&�3��} ���\�O���I�d;�l���#(
��p��Ei#?q�4/�ǩ��U�ܢ��
+����Xp��h�?
F��
��O�>��
�?��G�����c�q/MzXh�
+t'��j�mI:�
�ؤo����᫁Q�(�j}FhO��/�S�
�� -X7�+�|�d0ĭ3��m4��Z?��0��t��
�7�ጘ��L�� �
��q� 4'X��A4Ј_s��H�
�M�� c|�1�����Q�ڣ"�����Px��AA��@�9��
F����߇�n��b��{h�
���5�o�+��!_̟��e'7=%�*p?ɳ���_�I�
�E��+���t����R��a ����I:���u}J�^a�Qwx��[A�ٛ�k�7���3�n���|�������(�
����� =I�=@:�q�-�ė��>�I�=�6��7k89p�@BȢ~�hY�$^�;F��::��(��Ed�ٳ�*�N�˧�%���C���n�{��w6���M��[ -*@/���t�@S���hr� ?����Sk
����Ƀ��N.�J��<���:c3���s�:�
-
��7ߏ���Y�����m���� �l[">�6G��h�@����_�^$S&}�M�!� �_&�Q
ӽ��ҏ�y��Z�R��S��81��0^a|/.{��3�oŔX�FW�܌��m�j�k��l=�o���&�]/��W uQ���D�y+9d�Rk�J�C���>�s���#3_�d����#E��]y
�v�ܤ5!âY���w֦Qr!�z�o1���ĭ{���"��wY���W�W�1Q
z�&�3y#BH�"�H��
�1�zN��e����S��=<���=C��z"�Ҝ�dzCv²!)۪>�������H��/�]����ɡ:����.���A�*ɔ� :V��O��CD��'�x"��#���m�}�=t�v��3�j���mWi�f
V6eDS��M�SS6��3�k�smk�
+w��X��b|�CU|�S��ݥB����kY��KY<:�ƣ�*Їh`��OH�ô|#|��
+=J[x��:�z̸[�ٚ�Zܤ��ؐ-�\ˌ3�M�m�Q�Y���c[%Ϸ����+O��X�T�R��F=��I+N�%�Q��Е�
+�!
�InCH<!5�I�)|̶��yV��
�UtD�� pQC
o�5e�^mv�IuV���t�ueZ֎r�i����}����du������c�|Y�{�l��"��
]U���6�e$�G�>����S���
:��C{ Z�
��X�m}wEm�P�Z)6��I��8�b]����$]i_�V�pVQᜟz�����v:��{nJ��2u�]��4���@_
�`��(��$=ɠ@�iC�,6���6�v���|f�^B��JgyM�`�żh�\�E�)�uqv�maV�}~f�C^F�snz�t�i8h��9�2�
T���z�T�[ӞV�B8L9�C�N�(�dɾ
�!��'K�$��]4������z��Tt�s]�W>�><������z�Yj\3/9��2)��UR�ˤ�q��82g�M�2��?�C��ya>z��N�F�����|]��ru�HS�㽠$���A�r%���b�f�&�'g�NM�7IJ�0�y �{V���w���1^���'��ؾ�|2Q:x���g5� [...]
P}ي#��+W:��Iݵ��N.���Y�Z�&�0bs|~������ܬ=a9Ŧ���_��
�~�
�~���"�,2�r�do��W�P�2z��p�D梾f%�kwBZǓ)�=��w����n�$U�
S*N/Kϭ�+�]�5�$ygh���"���������f
P0hP���l>�
����=
O�8���A�T�e?.�뗡��V_3���h=5�����A��Rwb���ߒؚ��"/�_V�)�2q۹�
���#�K�{�.��^�1����2�+#�� 56
��1n*�3e�Q4ת���5-Aa�&�#���~Fr��ZB��VLө��tCCV]�Zs�A�ѿ^�ů>�ɺ�]>u-��u=���W>zא�d��
+���{p'h.jj���i�o_��k�q�i��$��O���<3ꖻF�M��C:�,
��{�F�
+���է���y��o�j���hk���ֳͣep����m
ʹ}2�_���N �Z6���Ƚ!����ڹ�];�m���6rݎ�C��������:�u�+h���}
��zu�������[g�jQg�Q�okE��
�7�Ft��1�O��b��ՠ�PQ��;
$<TẸ��|����&�=$�k/��Uѿ�Kٷ�w�Oo�Ɖްy
�q:n��
D���\�*���Թ�W]���.O��:?�e��,�����Z Pu(l�=�%��>.B�X��?�p�{q��~������i�w���g���{������U�
Dq]5�.�=:X��0X��p�p�����8�&�A"p=�� �Òk�� �>����~m��Z�7���v7N�������
�G9
�p:��40�q(DI8
�,NV�d�ڎ��>��*���]u��g��#�5���'�=
���l �� �]��+��V'?��sd9�F7��g}�|1�ѯVp
��øp������7wY�7o�#�/oM�SQԴ��������l�%�ϰ�%
=��G�'���@��AN
�x8���x~V�h\N�
!�
;҃
��0��p�b?��\�#w���3
+�1��2���K鲻�@ֈ*䌨��*?���& �� ����8�L[��t� -���m�>�2�^2�n��!��.:����r�6:�-�=:�M������u��(��B��ځ��n@��X�
��*���\����V3��Lg
�ف�d�4�0
S�e����YE6��XN����f)��
+�b:�E1!������]�@��@V,��X�G at B9x˓0p�GN'A��e*�]�
+ٕ�"~�*�g�]����8��+����k��w�?���'�����Ζ4'���>��y0d˜�,o��+�a����zɓc�9�� �w$̘I�y�ȾL���z���AmL���*���E��Q��#v�4>�
k������i���9��h�D�.�a;�W{��@�w��a�vmk��
9��)O��
+�t~
�W�昮2:�P��ա��EX��Yx]cTxK㓰[sX�\�pP�pH�pL��
+i�=i�ۓ�D���w��2l��d�7�
��
�M�c~
+�\C��\bf~qNQ�씥�7�e����WP�*è("k@@P at D��'���i�T���;;!$�@H K�R�A7T\�HUԊ`A
+�p\�;�t������;�����g!��d>���]Ddž��fo"��"n�φ��O��2�
�3��|<Y�
G�c�0v����
�د�c�;�g������v���(>��S<u�2�h�l��wqEk���L�b���1j���V�?��-��/Y���i9��j"j�j,z����ϣ���(�q4�=�D��@_a���� �qb'�A >7���{��}L�Z�����m"�h���f&�`�t��t�\e6yVe��l��D\��x\��˸�q#�gq/ O�fl
ž��09��6ݏA�wc�f]���5��q{���X��D|7R��G�z��s��˧ShFS��Ư�����fc�r��(5V� O��mG�{7>&_�{D��������i�a��M2�2t9_�?.�@{p�}x��,�p'�q'�$���
��/��<�d�
��D:�h,�a�<��~�Zh��\��Hr������'j
�R�;S��J��4Dy�|�2�|�2�r��
+r���\/& 7]���_
�9N9���
�w"-2��l�A�d
����93�O23�fdo��Ʒ��*���Rn?DU:^?�q����r%�w�`�5ׁ���� ����=�z\HF
ݘ���a�
+�w4~���H��7�0��샱�#zOs�d��c�����2���%\�(�L�:�*�.��m�Oiq�K���C
�@��y��bg'uvg��W;y�� ���?��7
+w3���
��0� ��y{�i���wr�07�p(��ګl���,��E&ߡ/�xK]��;�ڭ+]�љ���A��j�
�j���hi�}Zh�}�iȧ)
�4~�
�p
�f,�w��
ްw��<_x�����0,<��:?�p����bn�y/�e����ԕU��3S��ΐooͬ���[��3�}�2��j2~�Sg��ߐ��W���T���ڇ=�$�<2Β����0��
+c��� ��_.�\�/H0��O5��c�v��8�q.Zv�[3K��1K�f6��3~�S1�2��d�)��
P��]������o&�,����SyN����x/
��,�/_qAD6�R���t[-�����hrD�
��*�ʻ���d�T�����nWf� �Ys�r�_A,X�F�@�p1Ix�0ϱ� �<*�
�K|�t\�
�^�)�[�&J6���4
+�6��.�<�{-��S�[��*��O��Vd�˲�He��13�R�'b)c�t�a�Λ�g� �.�
+��
n�z�@�W�'�^�����vi�j�8qCc��P��T'�qQ
+���bO9O�S�W�W�m��v%��CJrGCŹ���Ib."b�u�c�9�8G�%��,�Y�)
Km���S��z
'��I��QJ1m(I!�g:T���+
ynB�g���G�W���k���;I"ޕ�B��B�k��!�01��@GL�ۄs��ßl3���c�J���z�B�S�ݢ֪c˚��l(�__[F���f�W���ʋ�n�E�%"�Oqa����!�@�A/��#a|�d_�>�/D$
Q�G��
���C� ��}�\�[B��
����V�Q��G�"¨��lR]�l%����ʲ���\W�D�C$�*(������Hy�K�\у�\��a\�BW�H�.�q|'p� ,pW��h ��%pIa�5۠�6ZT߂���RU��je�Z�"�BVE�(�36�s���=eE���2?��60G�1[��
e�L`�C�K C�:�'1�5�;
�x1\�Їޚ�Сrm�?h�{A���e�镕�1Ʋ:���&զH��X���ʯ�mϫy��˾̮P��[���}$F�pC6�yGb��)C��@Ƹ�k �W��@��zx��Ke
Z�f�4} ��=�l9�_�|byYS�M�i��j-�ϰ�W���u\WNm�V�tC��+�ҫ{�Ӫo�c����
+�^�����0Xp��Uc�=Զz��-
����ڏ-+i�0��� ����4ۜf�&vS�
�Q薩�x�k�v�ԍ�)�n��f���� j�� �
+�D^��` ��\�`�T t`��h
��� ��
;O���.Ө��,�?�vE�k�]�8�wG�E�
�&
I �bA�m��q�#u�S��uCQDP�},�."ܹ�~�|������{��='Onv��l��F
�^Ժm�1z��N�^s!����뇧��:*���qIY'����Řu1�p�t��l�Ù�)��=S
��,�h��5���@!� �p��
�䅽W�`W�t�(����7hDk�&��]]陚�z@ʕ��+�l���Ϙ��脼����r�uy�t��&�.�����D�E�P��mn��;8�9
=���*tǶ�/��X� �K�`��[*��[���ʒU�M%k��7{�w�g���)��..�S߬���x�)���N��Q�p�w�� ��;8���`.�
����!��@���������b�<�b�#�Պ��� ��E��]�e=����.�g?U�o�c�d{G?)��.��~����k`�l�2���}@6�����������i�l����^�B��`x� �п��Be���Y/�0٪+S�c+� c*�����8+��FV�vST�+��yDT�{(*:�#*��9��-�rO��
d��-7�X���*oĿ��کP�̓�m0�߉U���^�e
:�����1�:�q����G���9H���d �Z�
ŭ�
�-
"q�G��e~~���
��+��" �0�оB�41-��|?�����-�w���~#�#
�(,�\�%��~LAH��o��X�k��ӿ����Z��|�5ǹ߀c������k��[�h�QDPtyC�퇰
,���Y�-�bZ�o����$XH�OQ�G�1�
�C�ce`&m�
��t:ƜG ��ę?3��X[����� QHɁ����� �F��� �L�l�ˎ��A��B0�ĘLrL"%&��<�8Z�1�
�y�Q�F�a�
��7���
$qԏ �K �
|Vk������\Cxf?v�E Md�vb<�e,�c�B���
�P
#)|)�I
J� J���m2
M���'��1s�q��
Z
+�r���
�?R-)l�5�wؐ�'[�bG�c�$>�d;�07�⻂.�
A��F�.n�w
+Z�$h#A��
�$2�
��gN��4��_���
���-I�aM�m�$�kG���=��ݒ��$��$y�.�u�G�
a�买]�F�*i6K:��R6Hɱ^J�wr6M��g��-
+`�,�/b�R�>J�\gA��V�ֆ�[m���?�3
�d�
+>�N;eY�Y��Y�c��ԱM�T�"�5�E�d
��r��ɹVF.52r5M�9m
h
�]s�L��kv��
+Pd�-K��^�n��ٮ3r���~A�Mq��U�#jQ\ujV;5E�9�GT:�)��(>8U+ȥ2��*"��uy����
3FsƀB9�@P�|�=!�;�艉��1ZwĬ�m��`��]��ױ)꠨1�S��w�w���o�y.u�.�ʇ���Q�.�Q�n({<^(���e���2�4}��n�w"�LDp.��KU0z�Rtj�,�4z�M�m�f�C�z��m�.Qm����.ժ�U��n��\�
+�u�r�=���r�g��
e���c�=��P��1�u'�����?��f(���윉�Y�[��R��GZ4��Y��O��ѥ �u�
+�;�_��sy�/��ˏz<ל��L�����������˾w5��J5�^%�Onj�熚|��4�h�gїw0��?�����S?���'�Qc���L4ږS/
N�������x��}�aϻ�����*�^
P���]
�اH[�sM�2�@�58_KC�h�7��l��;�'�o
߇v�
S��4�IAx�
��)і/��m˒��V�;�1mr/M�ާĸ��M�����x_O89�P�=�@_0$_�7O_>�a�E��a�zvAO_��?�<����9���$a,:VLBcr ެZ�W��x�:��Aj���U&ǒ�T����%m�[�bg�|�~�<�/�.'
��5��"�xyX��d�y�s�,c��Y���4��gi�I3�B����F
�
�.L#њ<
��(O��'����Fnq+=ֶ(��X��l�kTSW�QQ/T@� �:����֎�j�T�PD$B�BIH��"�j�wb;N[���U�Tk�3֞����Z����}�zY.��<��yb�!��k��^ڟ[�s$Ǹ�7�÷�1���1�����θ`f<[�ʠֶ�`�����E�f���
+��]��|���*�
X�p�͈ q�ɢ�Y�y9s���
�g_A�wO�ryW�veG����gf��0O��֠f濃�̧��`�
+j|#p2�O�"��rx^�|�pn��W�(������?V��tT���W�^���{vr����>f�zuK�nMs~S���h`n`_ճo�ճ'��ؿ���S!�7�'�6��G:�ŠK�,�w���N�K�)����*��8���t�X
څ���E¥&�tE������k(l\[�i�qCk9g�k8c�j�#���pm!F�N���t�=��=r=�pn
��u�2�����}
+ߊ~Y�]OY����
g�$��$.�l*.ZjJV�rߺ"�-_X�k
����5�z%�j����xAW�(��O�M��F�f�#�
���o>�E�qI�
Ky����Q��*v�u�
ͲtgS��X��h�����+j�e��"��PT)0��}�
+����J���~�\�K�\@щp��
�ɽ��u�}�v���)��s��Va���UmB�*f��b��I��'�<k�^��Еzה
+}�$R�ʒ
+��&H)n
+�w�d�Ñe�_EIE������3E'hS��I�M&{d��g6� �q��
#�E8�
+���wѥو6M���r��A�:G_��S2U�9K4��L�,S�˥� Y�!L*�K$'"K$�(��.�<S��MF���J�8c�p�O��
N����ڷ�V�-՟���g����i�Ӫs�+U�^�
+�r��d�LQ�/�k�$�
�bY;]$;)�]���!~��QBE'h�Q_����`���V�-�T����վh��B�n=�u�m�����Yښ�Z�*�b������x�D-��ԁ���PA���WFp�"���Q\��H������ɨ�9$�N�%�
���e6�
��jgtԭD��C��7nEm�n{mC�Lu}���.˭\���.-��UK�hU�*]paUKX��(=_s.����_��xEϯ�hD�dT�ɣ� V1HH���f��q
�0�5�
5͛Q�
3M՜�hJ�#3f�J
����/a�`9_/Y]X��+�� d�5��tG�rugh������_Ù5T�T�d�[\�3��P}�{��ah���5Z�_Pٶ�;m���K��;��3\D�
���|���]`*�a7�W3��~9MƵ�M��Y�/C�C�
�ː�F�w��Qivx���
9��j���tOҿj�B��e��(�������ډz�
=g�z��r����]\VW����ٝU�2;
oet���wX�;������
H7SS"uc
�\)p\C��
0���z]P�4�߇ph
��bl�C ���TG�P�l��%g�3?{P�9P�1P�}p�q����)�W�
\_���xeʑ��R���Sy� g N)Iu@[3���������X�p
+O������� �g�kI�˶�;
�0�Y��[�\�,��������$K�g����}��^��'�O���7LyOe�d�,����4F��Z2��tP>��3n`���|�.�C���8ti�G���h����)V�d+�1�*��Ϫ���Z��r�ܸ�'��]��g}4/~�k�%j~�E�m�Qћ
��
���7 ��d���g�Y
���%H�W ��g$}�
�W�bߵϑp={�`�X�M�8{Z�x��7ʦᄀ�s�����[V���;���1z�r��i9�u�?0��@�/"��� �@ҷ�H����~�����y1w7 ��V�C��gߧb����~?�
��a�ͧkl��`���� �͏�&
�mz�_��
Ԑ��h�! �ůϟ̿$^b�9����x
vL�cۏ�`˓u���c|�t+6>�Ɔ����gIX�,
����s����t�iX�y�����)����%�#L�}k�i��ӥc��TG
����2v�$d Q����¸����E�r?�����\������������;1�K
+ô�j�
Ӿ�}��߁B �XsH�����n����� �fx�
��Wg�m
�Ym�0�}:�����/|߱ �H��h &P\�e�/%a,e`4ma�0�N`$�g��q�$�����y ���9�&��
0��F��M�1��`
+9p�pL�1O0�&s�t��9A
N>J��ȳ8P(�)v�����~�})��~#�4��
H�
D]��Z��
�x
�'8W W2��
�ׇ���LNF�p��L.H�q�Ι����FOZ��<�9�bʳQ2
x/<Og4����� ���@Sݹ���f�f�sL �Ѳu��[A���\�;�
+
n%�v�
+a�[���햰�퉰����[��; �I�w�$�
�G��p�tuM��9�sp��
+�.rOgk@
[�.A��~A�g��ͳ@��yF������g���cQ�g��g��W��o/��"q�I�t���
���pДq���s�
���,�g(h~
KE��j�yo�zg [�s�_�����|�g�)�'�9Q��R�(�.�(}$j���KE�}��u>$y�C:/}H�Eș��r�t
��c�Y]��y�I�@>Jt,�D�d��V
+�e녟dۄM�=�FY������H�^V&n�]�-�]�V�@R�['y��Q�ܷU�/�>�%�G���
:��=�{�!��|&�A
��d
�D��@|Y��'�r4�W?��E��;�o��$��#�7�:��W�
+���j��{:O�t
�}�U���
����v[NƝ�h'���9<����;����<����ϋ��B�"V�V�&|�X%�Sl�Tl��Pd�<S
�y���}�(�}�^���}���w/�o)��P|5�]A&�
+��5�Vu�\
�
p���9d�?>�+ږ�§���}�
��J�E
+�%��iŏ���<ܢ{/p������w��(4�PfTp��z�-���g&U�
&W��]�n���b YTt�&��{ЗϞ弓%#�4
��SѠt��_<
�cU��~h���P����z�!
�o7� �6�>hR��7�MYlvEy�[���������z���f˳�ԣ���UIhR~z��.�y'A��2�U��[:
O����P�
u��F��{-\kp5l�Qe�&��K�L/.��vAu�⼪��Y��
��?�Ψ^�,V5Y��"�"V��T����
�.�B
��7���I�܍�Dm�
5�J�o��$�Q z#5�"V��G�7;�l�y�z�e��@����=O���~Ѷ(��WA���'�z���
Sӿ�v�fpוZ�z����f��G<�v�_�q#n
�~DeB��">LR
�_�lT�5=
���T�Fˢ�
V�Q{�OF
�͏,�}<��ﱈ�~y���|��Pdk�����(����+cKx��^h^�����0���]P�4����d��,9Tr&)R�����E ���
���{
��b}4v�m^Ln��1��Ŕ���\
p ����z���/����Ҁ����y{r߲Fc�5����N�
������(O��T�XP����.�?�g���bv,Ik�������6�zH��o�Q���b���퉿�;��aW�g�] 4hg
�
+�sהs�U�,��h����n������(_1%Z/���Q�
�X�,=��HZ�١�t�ܔUV����I��';)��������e%V
ޑx�q{�K�m��
�%�`�5�uF��@�-@!�h�4C}�!�&�⚦*��(]9�2<P����+Uz��2��&��OO��Ѭ왭Yk�;ms�����v��ܖR�5��qs��!�R��F�M)�1�3���۔�I<��-��� ��T �h�q.c(�W�� s
�3}���Dthu�ށUF9q��+�-v�����f�n_����,�-��n��ޠ)s�ES=t��)�8t���i]:9�����1�'�a��;F�;I"�hĸ��%�N(Z;��� o�
Z�/:�V���Fm�'3�l�wT�g�/��h]P
�TTFh�*"H؈Z8@
" CA��B�@�@� "����գ��p
��n�T�jY��w������;���}��~�����gP H
��!���.�"'M1M�Vn&��s���\��J�`-俦g?W�g�g l���{#t�. ?��D3_�3
��2��|�J=qH�J�F�2i�N�d��¬�Q
+q�~�(y\�0}�L���$3o�XPj&�r'������WD7=�Y��0?=��a����x�T�R�N�ǠQ6u9sqH�J�J���k˷)� ����5R.��ϖ&��HҌ�Y"ca�|�@\l�.���E*n��u��u�����RE̒�
��F�v����4 at -T��h���P�
*�]P�X�"�:���!y�!�r�"?���
�%O4�
�(�NI��69 S��Ȫ-���-�����w���[%I{�IfIp�6邅i���Z2e NK���uQ�0Fe��(Q�T.����E���`]�2b��0ftfA�A�"e_!���/��?�`zb^�yBn#'>�{n\�-��'ﱌ�3N�'`���
��Q��Sb�}9@]�*��PRb��R�y!�|5��5���t�eaz��G�K�Ʀ�$&�OL,�LI(�7�+���Wy�<Fy�"Zy�]��S�mS�>b>�
h��YL�
2)�~G��"�
e�PTZ@^5҃
W{CX�^#�z�vZu��������J�J�O�⏋��̛]Qf���azT�y�Ȋ_L#˟�F�u�4�t0���� �(:���@-���r�~�#!;<
�Z꜑^�
�_�4h�o
��>4�>fDl��Q{�S��넆Qu��%�w���՞�Z�����ϧ��t�$��`��n��;�Sr�[�WU
+ꀒz
�N�q&R�9 ��5�B�j�T[5��B�Ĩv��V��E6%�$
֔��Tl�T;~{ә�AM?
o3
+:�i��&
���38/�)��
��Ҩ��?i����=31g]}n9v��E�� D��5��Za�=CBԉC��izAj�mj�-�1��Sc/\�T����
x��e��c�.���� *j��#@f�H=4��0D^4F����쀐ˋ|�ۛ�!�9ۮ��֫Q���i��h�"��Ԓ�������*=��V=���z믾��o�0��
+1�����\��2�C��Q ��r������?`����~�a��^��7���c��@�������{3ko�a�m���ۥ���
��{Y���-�ۯ�|n�j��d�Q<�:�7����s��f �h}
������|����_����?X�e���� ,}�%����q<?I���
,zV�gM�lk�G�x<}�'��P�
���+���ɟF�؋��}o +
�`Y���f��/fó�
��p��
�/W���Z8ul�c�� �ױX�� ���0��rؾ=F\Ƽw���A4T���#��������-���,z�
����� x��X�5��v������
s{�����{}1��7��
�o78��a�A
sV3VSv�h
D5������(���� k�K���p���6��_�i��8��f��}Kf
ƣ��0�-� �1��$�XƱX|��D6
X1qxE*�A��$�G��?~/�;>l� lȩKα�@{2&�
L�w�¬a� [...]
+�Nߡ˩�N7��� ^;u�Sڝ^�0�����0�Y`�V`���Or,�y�9�s�@l'��\����{W1z\s��D�[:�j���s?���j�qo�k���p��/�ܣ
�<�.bxB<^�4
��Y�XP�
0G��u����20O?b
�<�����<��3��7'�9�H�i�tDZ;��v�ۮk�
XDA4�AMjD4� !$!�$���CVY� ���M�v뭕�
+
U뱶����L��g~���g��yg��%^,(����x�Ё'
��8���v�a�n<����E}_t
��ǝE�p{�}܊~�фqm1a\]L���;�z��wi�i��'��B���Mw":
���x
�������
.1���b*q/�
wc��N�N����q;v�bGp=�&�,
Ƿq����e�=B�]F8�Ȍit�"i����3Y2
$��c�|�����8
�I1�,
w����
1o����_���Ƹ�ɸ����]� �� 7��V��N'>c�L|�N$����5��|��������d� �効x��
�_��;�kq{en�R��*-.�L���θ(�d�ճFD-�s��Q7����sRt�sb�%�����<�$��
N"��Iī�7��B�4�FG�,��X9
?���$}����M��d\Z#�Eq&F�j�M)d���N�
�aq5縸�;$n�8*���J��wD<�yX|/e�������S~��I!����S��;�Wz�<�w��^$NIz��30�2�����u�qa�J��HpJ��R%sH�e
J��#�R£_R��'i�:(��> ���
��H��uKn��>���)%�HI���@>�D��OkY
��S�����cT:���#��8�1�SS0�����,f��}(U�=����̫g�˻[��w�l�߿d]�]��{d�wˮL쐍j�H�Z�L��J���C�\"��
�&���M�qb�<
��y2�7`�\��+9�[�
{�=�6[�;7;}w����Jkؙ�ؾ�'�m���
�.�lO��ߖ��ߜF�Mom&!��gt����u�x�!�S���9'�gb0c.�3cp kz�%ؗ��������T�ve�:2�}�����鮀
�
�-��m�}�&���F����hh��ih}: �K'��I�n�<�7��:��Z:6���&/�����џ�w�*�ѭ\�.�Z�Q��:��vE.�5G�=��גm�М�ؘUܐ��_��9�.�oJM����[����\Y�)2�
+uGҼ��֑⍗<q}�\
g��r:����}yQ�T�c�z
��X�yrn�*���n�-�kP�+�k�!5��IU�]S*9'���r���r�/��
J�|A��J�{��0.c�-,��b㨒���Н�tj�C�6m�k��m�4N�&��5_�]�.�Q���lA�<�B�0�\�3̡�
���
m��6Ճ�R�+a������;��Gw��7n�Ҽ��� ��У��.ݟ�Q�9Z��hыФ_�lЧr�
+2x5:�w�V�W�-
+pj�A�'�,�>Ԗ�&��w
-�C%��"��ǩ�E�!���̛��3)�i�<C3א���� �տ�]���j�
-EK�T���Ek��E2v�A�QY���ԫ}
�� ��$�V��[
jCKt�f�^�I�U�Q���"��2�HG�T�;ǡw���
4o��y"ȧy��{����8-�9h4G�ޜ��b1���%�´٣ܔ�Uf��
&X��A%;�l�5�
�]�����
S
+�R/�?����H<�釛4w�d�
��s����
<t���^�!-����j�r���
�U�rXҸ6K���$�X;�\l
4�m|���75
t�=B��?Rc�zj������J�$2�Z\�s8��h�^͝&vX��T:
u��Qe_�
+{
��D���g��S�%�tO�M�c�i�
���z�5Dg����6��-��*ˡ�\�9ꇩ��g��A ��_#"�1���
`����>;���v
��I�s| W�Gp:?G�3�+a�HaW�8F��3�[_��ӕh
%�jG�$�c�e�NAN�avٙ��шl�OR�9nH2p[F�@wqP�7�
��n�
�s�U�
U�`��
Ku4�5 0֬aj�,}MWW�婩V��U��V�'*�
!ٮ�ə��)�^A��T���{�ixz�Azy+�����u:��y@?��>z~�h����e�����歟��d�y\����O�L�
s]
�1.!m��-�:RZi�H�N�}���\��2ք�Z�T�2�BȌ-k���y�w���u�_�s~���;����
�O;X��h�E��t$Nk>o�\�9;�����s�� ���%lm75!�����wN�q�p��
'o�q�6���hy
f�Y�8��2�'�
+��º=V�2b�
S�%ٱ8y
�}���ܔ����=k3Rf�MKY��c��SRֶ����� �Imc����|� &�����:��{�
��V_x(�C��g~��Wf�Yf�6�I�t_;
0f�Afrff�'�S��N\Z4S�&iM9<]g��y�&�-k
��Z?&mS��ݭƤ
m
u��MTZy����6Q����:��pC�b�<�k!U�?)Av?i��'��A�s�3�}G�qs���gR�O'�d�3F�ø��Dg����X'*s����z��;�
+�J������2�뇝ll����\���S����}�OH�� ^�й�`J�f0�1cO[uf0�s4D��q6�� ˍ%47������DP�Z���۴����u�jtrtΪf�ˋ��
pP�;E��!Xu�
���@x~sB�Td����
~|�-Ƨx4�Kb�.����|�]�����^ރ��$
���ͥWhJ���L���ߚ*�@�}�\��lV�������h��^�
�?���@~���Mo\n���V$N�c|'�Aw0�|%�w7�po�����m��>þ�A4}⨜�}2�
�_w
�e���2�\�8'��\�:
z`��G]q�0î�ҿ��U��?�OB�����_S����E�
+�k6c�� �����Y����8 �/Q���\f?[��_~���
+�n��*m�=�6���[g��
3�_Zc��
�WN�|��ko��I��Qt��H緳��n9F
1lH�c�I:4��O��&鯐�\���_$���v
�o},߀YS
L�LJNtW��z�EY�I�`��i��1P
�U>�R!�P�4W��S�i�֠������'�H��H��#?�/��2��}
@�0VHS��>F�-
T�u�h�z�2�+e%�i��rBW�/"��(�SV�C(���'T۾���(#��e,�fO�/"�T�b���k�FT�mbL���$�&�4�d�`�ϻ�%����+�'ԙ��Y�F��*j���_R�Z�:����϶B�:��݄�C�ňib��7�W��|=��[h���;�d�Z
���o,�xm��+�b^X��e%ՖuT�i�I_E��������ʮk,,d��k��v�"X�EYM��
����z%���xc���6�ye������=L�m�msxf{��T�>��_
�7�`�➝⮽��3��Ǿ캦=�'3�e�$<�>؏��n"�v3ye�����ٯ���9l��!�j��rL��1�J��<v,���:�
+(T˭�
��(sV\W]>��K��{��nҔ�
�3��(�ir���9��N1�:���y
��˨rYE��:*\~��
�$q�� �\�S�z�ۮ��r-�l�#J�j���@���Fq^}F��*��e'�ù'j�%�} M
.����=�j�1T�O��,
x,�&�;�5������\��kC�qe�J=���Y@ɰR.x=���9�ߑ7\�룴Ί
����Yg�M����wGy���˚��y��N��?�#(�����i�
���e\�Y�E�u�n�����(�;�9�t
+�sȗس� ���|�����)2F(�ϩ>
Qߢ�
Q^2
�
��[�Կ?~Δx�G at 0��c)1�
#gS8r�-� �?��'7x
9��Zg��i�
+>��
���R��rC'=�J�x��c��ّP�����(�v2������M��S;�'#-�
���
š���� |���ɉ���edG���-��̈����u�#�tOD
�=
���hd�ޑȫzi��f�ܣ�>�8���Hȍu[�.=���u縋ݺy�J�
�EA.$����$$&!! �@ ��{""7� ����Z��ug�t�yVמv�έ����9��:���ߟ���}��}��턣���H(V�K�O@��Jz�j�eo�gwrV�F�
x7�g�"ٌ
�q�0�E%�-�� �oHʹ�R;}R�Ș���cE
qNJ"�E�LbLz-qXz�=X|�=P�(���J�{
+�/I�}�C�URK6w����/�{���tΕ��|�N̔f�
Y�d�(Sc��@�YGeN��7>&kM�u��d������~�\r��-ND�'\� �������t=j
ɼ;H
{�x���
`�O�?�se/c��L�oÔ|/��*dQ(i1��>�03���yCB���ꕇ�yoR�|��-�Y�%���)_��s;_p�
+*�iPI��$ud'��|&
x�8
��)ŋ���&�[1�܃#�<DU�R)h*
�OedF�������Vz���I��=�Pe4%Xy��^y>�M�{^��?��7ϯ�R���
�5�yI�}�K�_$�{%4�U���
+!fT/`B���͈i21�ُ��"�V����U�nM
�Ks(�S�`u���Au �Mݵ�U=���'y>����uA����������
�#�.�J'�WL��$�-J�k�]P�0��aJ�
F�?AT��5;�W�� �kd��5��P����Ʒ�l�V�����8>m(�Y۟�ю���
+��E
�υn
% � ��PtP���3�~)p���^��5
��|1�*
֡ט�
����K4*�mF
3`4��
V�����9M�`J����֏
+\�9�SMT��[����a����
jY#�7
H�\���kH��%�q%�L?B��W�6��Ӽ�C�h;$E�\N��U�fsM��lf5�
����2�q��0�a�M��:��4����fz,��(����
r��
�&
�%�35��!
Q�7�gy ��W�nA�-�����
+�l+�{lJF�U�`�e��u�zk#�n p�,�<�%&�XN�Y���-7�f��%��"���YZ��^�������?N��Q�g�S�}�쯠ͱ ~�N�8�ୗ�����P_�p94q�c��ac���d�ݗr�~�g�
j��"��R���A��G"C
%$�C��ۤ���y�xp��O
����
��|
m����� �{;��b���l(��7�v�:���'XܖD�ۙ\�jI1�B�z� _�:.ԺDZ4��S���P�uR�'��H/�y�$�H<�&��u@�8�JE[���Ҵ
+M��p{^�ӻo�E�z�-^�����z�,�בT��r�� ����S{&U��B�gQ�j�DX��@P�H-�_�Cҏ^�5�E0I�N�;�d�ob��y%}/��{v������`HP(�
}���
�&hu��@SrU�m���˭����|���|��c�����$����36��\� Y�;�$w���n�:
�?�5�掍���CH��P
t!)�Cr�&TŨ
+��!kBe�!Q
+$����h�,t�+
�ϕu|ĕ���ک���
ޮN��<����� w�d�NL]��н
+�����C
�
U8�H*#2TD*i�^
13�"��҈�U�bK##IE�����������(Na�WY\���;���@+�I�=$�Z�C/���B��Q9�s(�6�|h�Q6���a)J��(��!�iEQ;� �e
�u��Ǣ y�ل��;��臬�����!��;H%.�%,ăF����
��K�IUEi���P6�<J���ckP8�c� ߇��7^�܉
+�Lh��
U�d-k���or�.��f���2ē���1�c�I�,ΐ
%�
&
m� �
+TJǁ�)6�EΉ�=�Y3�w6
�����l�����'K�{N��9=v�ٱs�����85N��m�7�1w'��p������D�����#��dт��y`��T�<�m�8�2ίƶ��~!
[/db��>��p �/ʰ�
+/�b�%7�_b���^9�5W��l�yT����o�Tr�Pț�2U�
�CQH �T(%���X�^6�m��2BƔ2d��Ȑ"Z�I�e�
�>�Y��z����w���<��\yո]���E��1i;S��;vɳ�_��4��a�)"NAP6�\ �˺
�o��u
\
+�3�О��.��Aߛ�8��DZ(��(�o����
�]
O�;۱�{T\��Nv�5�ݮo 5A�@��rY���0�D�ڃ�I�Eɿ
+΅`[�l�ӳԚ
z��a?�=
D�2/����z���H��ϠS�:>YI���X<=��i�����7
���yȾ/:?����� 9������&���u���L��܂�[c��/
hW�Bۗ
���ի Z����8�Q3��4�ݎq�a��r1z[��v�_�����H��\ɿ
C�C�[`��*�U�y�G��&��К��iQߙf�a���ON|vEO
�?!����_�ï�ū6�="��
rY"��fA��>Dj�#�,�w*������m9��A
͔
&�C�
}�
e.��Itv�I
#������@�K@�a��%��6�
mQ&=PM��Z�F�
@�*�d
"�P�3�
�&��Ub#���h��z�}|0K��Qޙ���E��
+yc��j��<7��������<5oH��D��^��5��
J���]��,��w��I����O�5�|�f3o5I�ivS�9H��0o,�xm��K�^h
P�yFE�:�;*
wR<�(�Ґj�M�$�������� e=H��q��e,���xo9����Sk���ռ���+˭���E��~��J�� �Y�Piu�
+���YW�k-��+Jz(�꩸�
�F�5��v��!{bk/[�*�d<�z�P��L���
^��C��B^�,�M<U6먴��S�$����6�Ƕ��ٞ�m>�l�s�W�{�r�GE����whHi:��d.�
P}d?
{�-�_��w��!���Sxn����*��S��;�
���a5��ﰍ�d�r<�
ǣ�v̦��*�}K��Wɕ��9梋"W\����^�n&�r���,�pu���\���y
Γx�
M��LJ��p�e!�.K(r���:
+]7s�m�n��:0��O�7��&g�κ���gN{(N}1�!e%�v�$�-�Mj1Ě��v�
җ���)�ý!(
�Mw-
��6t
W��F�Х\���a�๕�ɜ�<H�W&g�r�^���8>��F~∷���������Fy��gG^{u�goJ=](��`�?WGN"�;�\���+gG- {���YN��N�&p�7���86�0GGgs�/�
�
�Ա���U:_
���m���.�ޚ��m���@�Ȯ�8qm��Fs~L0�c#����Y
7�c��8꿄#��d��'= �C�I
L�`�)����:�Ǘ��
�LwO�{�� ��Ů�>��F(/�˨�����2�V���ȕq}�
ș�ޜ
+$3(�#�ɘ0�� �I
�Oj�bR��q d5�Ct��������;4S/94Wogh�~��J����MT�[E�w�S#���û1�FP�g��1�\
4''؆�Pg2'zqx�XM
+%uR$)����3�&�e����S'9,^gg�z�
a�����o
;�hk��F��7
6�?1H�Rc�i�2���z(O�˓1�o�R؈�3�&w�Xx_ҧ
%u�h�GL`oD8�#b�9����I������:�"��&F����E?aj�����7N=�x���uQ�
�F�1\��Z
�K��|=Zj�� }�
uy��d��$3��D
f�Q$O
d�I$EG�-:���Yl����9z���%z�W鯏�d�.fG�51���cN���f�2�q|�+����V�*����[j�
]��BjP
W'CN8��lFFt'Rb��'֍]�G�4}
[���EA�6�Mڙl���Y�]��V����F���
Vj���
0Z
w�xY��&K�JM�
W�dI�G���ѷ����W�=����R]�aQ�i
�͉��pՖ��ںRn�k��V�
i�)�J<*�T30'`�f8���"����
b-E�U�nWVjg�J�v5#�}��K
~潮y��}x���/�=_�كˡmE;��ȶ�'iH
G�i25��T�^c�)�u��ͩT�m�5�,�j�[�3��������b��0��]_d>n(4_6��0��,(z!�'�d����NK�G%�v�M
+��ԟF�0jӟ#��"U�3Yg��Z�b�X�SnI�g���,��K�����y,�E�@h��M���jȷ
3�Y?ϵ~o̵�5�Z�{�{��
7�������kK�]?U���~�Y� `�z���h*�1��/�̾��*��f���P9\�B�G�v��;�Cs
[�.�>c��hx��bx��;�'c�C1��(���
� }�p U|��<M�*�mQ�LU�(����gN��|���x��x�+(t�(p����lm��P�r��s�U�Y��ӹǘ�<
��|_�V�6f8���2��g��$�[���
+[m�)���"X�=��9�)͙Lq�l�rP���J ϕB�˪�q95�.���*
�t�
u�6��]��P��uA�&t�9�A���W��O�<��>8d����CV��L�����]Y�7������O� ����u/��^F�;�,w�*ӝ��p����� ��bq׆��[
i�w�f�y����ќGP
��'�d��H�p\������l��s�w慰��?ŅC),K~�\�h�=s��Ē�YB�w%v�Ye�:�V�K������&���o�>�{���=+\5$y~}RQo���.�� 9h��w��ېUBy���/%&�t٥�d�M�Q6[���8,��|)�}V�ɗ�I�j�}�A�|��������)}��˰��ۂ�X��E���xPz`���$���*<��J���
�<��5Oa���bikg`Z;�Ե
I�/%ٿ�$+����nMBe�vyeU��ʭ�K*�C�+�
����VH|���d&
�
t8��ҋbE������p�ð�@Z�PR�Ɛ�!�U������P
��@��,
�Y�U�(V�լ�,�i�.�i���
��>��V�[��A ��y9��vh̓fѯ+�U
���!�ZM�ƇXY� u#XV7�%�'�y:q�1,��eQ�֯$�!���x������k�S�mܭ�i|W=��:���:f���:Eӓ.��E��.��@�T��*�
�u�x�zX�EOܛX�m(�۟���o�̼���m�KL�"^m^�+����ac֎<f�(cFK��-�D�
bZ�E�5_'��'��+�8,�U��$���V�Hj��m�
+K������� ��Ĭ�Ù�o,��E�:�i��x�u
S�/f��^�obR��ۊ��V�
�[�j� ��
Qm��#Q�J/:�vJ���~�Nr� 9[jm�;a�
���t�t�a&�
�
�
'��"F2��d�zh&������<יȳ��s��3G|�>��QG�2�h#�|��÷٩�b�O���n�>�B�v�v�^��9
��;��0明Q'��t�@Ft
��F���q
?9�a'�1��
��^��y����g�<v��G�m#�\'��]!��
"��%���i���K��o���"5��SZ፷ �m�� ��� ������#�2��A��h�h4��x<�.�D�˳x���<t%�>��x��"
����?��}�� ���1~r��
l���P&���
h�
�;�=(�GD�8�> ��£�B4�w�x��}ݗ������_A����t�E��~��rߐ�C��
i�뻅��%��ol��+�%= ��K��$�y��c��.u�\�?}��/���!��
h��;���a�0R/L��D�p�\��r t
+rػ%��
��˧��M~&H�H�S%��������h����%h�Տ��u�$�E�EyT��0V�(ȅ�ȅ�� T�"P�ɉR�
+C�U�u����+��(�@�.�gK��.��<����/�
����]M#?i����掺���N����������\����������4"��er�(h�,I�Pl�`�"A�"EAdd`h�$����ł�XP�!�`W�-K�5�%vc��x�1B̏g�o�?�>{���
+n��5�*���^W�1��3D{�
�ߞ�x�r/
a-�x��L�e6/,��Ͳ���<�\��<�Xͯyh���ܳ8ĝvg�ٮ�V�����%W�
��/����6�w�����uGt�9��_2
�q��k��+k-/�g�����
[���z>�rߺ�{�˸c���ֵ�b���V��nu�V�3\�j�bLJ���
+Nw��*8�����
�C[Dw����%N�ۍ��&��6��6�<���}#wmR�m��-�|n�sݦ�V�%��T��Z���s��;.�6q��4��]���
��w�|*8,9d�wD���J�ʵ��IoY��_�3�zz��$�څp�.��vq�ؙ�j��e�
.��?�����l�e��Q�ɞi��q�W3�z�L������w��
~�4���_�.����#zuD��k���y�{����Nj�>\���>39c�I���fr�o
��q�_)��/�`�j
XǏ����F�ʋ����
�s�ol$hpl{
ѭ�<��R[�¡�����t`O�8���0.:xp�q�C86H�a�X8%�48�����;$�=C�i
R��C��5t�
�cǰ�l~�m�ϱ���\�Q7B�Q�a�`}�'� ��@8�X�X�bhg��N��^��H�p7;{������0R��#
�r5��5�
�sip+`�[ [�*�<���Q�ԍn`���ls�uc���� ��5�Uo!�T��R�
�ْG.���܁�\>�k?�F;�g�'��}��
B�G$[=�l����3�:�L6z�a\�Ǖ�n\k�Z͚���Ɵ�� �X����^�Y�%�z
�1H�pQ��UE�H5�G��ؘ����9�5�
ư�˛z�@�&Nc��hj'Ʊvb"k��X��*�V~]·_WR�>u,��^դ�,��b�T��b�����6�~���K7h?���쮢i|Gv{���Ǒ�I�l�
�:_?���R��J����͊��,����ɹT��Ŀ���+�
XϢ��f假��/�-
��( ��lA���A��"�/�a
��3���>��� ���S�̚@V�P
��p���Y4��S���FŔlʃ
(
.�4��la�Z�!
���&�7���C�(
�^H�� L(�"�d
2�ܥ���!_�+�1�]ꃺSlOM�P�Cǰ,t"KC��
�"LKyX
ea�Y85����,�:��i
̊�-V̟V�(
ߢ�ߧ�~V��*7�D(s��M
��.K�yBj�~c��~[��c}hWj�~Ɗi�X�Fe�x��R�DD�MD
E��?}��sȏ,2�Y�ȋ\���֫�j������Yڛꬨg��(����
�
w��yo8 =g��[�
Ӱ&�3��{�4ҁ
+�ʴ��h}(�R5�¨(
+��̋2�7#�����(TdG�+��W�2�7�3t��t�5st74i���4�x��-b$��32�a�4�9v�F(X��@ՌO��
@�n8
tc)�M�@��<](y����f2w���Id�d�e��+�cJ�s��Ui�
��nM���y���<I�D�����d
��e
¤ߊ�MZX-Y
��3?�4�/����G�;��X?���Nf�
2bg�>+�9���R��)q%��*�)�V�h�N�`8f�`�fn4<��^K��-�d
Wd/
�"�ۤ�\���7�Ĵ�lV7�㾠��D�����qd|�02�0���ZRg�I�7�
��)>G�h,V&���Ƶ���
����"�U~��ⅺ-�e/\�c�!�����
k�r֗,���8�+���
�NAF�s�IM�'91���HL�1$��I0�o���m*R�*UqI�ձI�5��������z�#���D��r[��YY�&�;�����1H�#)1�S�ؙܤ
d%
=y8��cIN��GBJ0�����r��8��[ax
iC�T(͐u��3�A�"*Z�h�E
-SJYZ�Z
���H"�lY�lC�3�g�9�J��\�{���>������o�@W�z��ˢ�e,
+o� 8V�'x��wp��Wp��g�QᆶgP��N�3H��
�D�x8-u(�
�H�)�"[~�$a�2
"u
6&x�5��b�_�X�8�:���.,��O����
�g��
�I�y���Ỵ�Ïh��_�r
{���VP4s�
���~o����d�L
�x!2Xz��6�ῢKV�w�-
#F�1xE��3�
���̋��]����5*AcN��KT�欨R���?4gE��ϸ*�2y
+���O�zi��C�/�h at Ds��
X�9>1}��G��Ŏ�=������f�*O\V�2kU 3�V�
ό��&��5��
�p��R9�z�����S��gd/��>���w�x�Ļv��
�,Ǫ��Z�xc���ځ�^;
�����0焩�H���w�}�O�?SC����d
�~�!i?�Ig�O��}���دU>�B2(�����ĻAƲXq���ܵ��m]K\�w�y�ӓ���-SS옒2��)�8lt�~�l&m�`�F_&�1>5�q�I�M�bL�>F��d��:F��dL��O��>��
Ŀ9d
�w��}d4�##��4S6��akW&m�dBz?ƧǸ����ǘ
GFeL�LW�Ϝ��L�����gmaX�.l��a�Y�m�sl��
JER�<�>K��k�Yw����� f��}���9?l�g��vX1<�?ò�b�=��9��.Ǒ!9�|�;����
b@^
��R藗���R����&�
����d+
��_ſ% 7H2l�
�=gL�cr`�o���
ܣO��&��k�;~��7��
F�U�8�
�]�e�����Y�EQ��Y�ӽ�
+��G��Ƭ�C9R�
YwJ�d�E�A���_`n6L˃w��=0���C��f�
�iiL[`|�k�
D�#�0*M�2:
u���K�/�F�X*
*v�SQ�α::
})�i`��7I� ����=�=C����� ����1ЭT��T
ڜ��_g��>kA˳}hq�[�87���'��3��Ѫ
+B��jT�2hr�P8
k�?�*���zGK���-ngY�Dq��u���.�N��sZ��ˠQ�
�����`*��ܔ���߇�4�5�
ܑ��]y���K�
���Ֆ
�H������ f�I��?(~q[��D܆�n[ͯ��:�j�;Zr
5���=#x`�J�*MꓱP/M�S9�� q�\B.�y~�}��7_Y�
Y���>�T�,O at 7q뉻U5h��m��@�(y�zmq��k��Kci%�׃�
���P� M�"/b%JH�P0�}���W*�&
.���X�
�!�?Y�+yA2��D=�r+�y�N
Q�CJ�O%���V�����N�S���F����s�+�[�{�^p�e��C�
!�X��F��$�Tqn�h�+�\��+Q
�q�]��zM��\�\�PՈ�(
Q�J&ͬ��(�v(Z?�^��
W^���B��3U��p
��y���*�{�djU�����*���|��P����
+Tu��~ɩf
+'�+T~�p�����uPԆ(�$��=����PëV�<U��ڃ��E�S/�-��;�Ԩc����z
�թT�ӹ��N�z�[
�L�
+N�����)�yEY�úr>��>�����%��.J'ɤ��|Z��p0�
F�HouzӸ���M=o��-�^ ���8��Y�U��_�)�
Tl��6*
�(�XHY�2w�@�Q-�����B�P`���ʗ�Qt[�ti�b��bڕצ=�7��^ס��2��.�Tu�əns9i��&?QaD�i8e�Q
1���{"���p�l+��mg�y>E�%X�fo�v�z�o��i��g����CS�f(fj���y�Ӏ�
�Ԛ[r�l �,��9�c��(��M��'%V����?�{Sl��/��4���
+ÏT�0��]X�P��C:NNp��ر�X^�M^dK�dɒlɒlY�,ɶ�˻�8��,�b��,854�4
�@)L�%
�
Mi)0Pv��CgHI~<��|�{�9�/�&���f��k�X^3˩��8��8�םai�s
��u��c!�
�W8t�M*�;�BY-�������o���WW��
Ikyz��ݧ�lr �^_��+�7�xd��S�9q��)1�R9�2�э�,n��¦�
ٴ¡�f��
���{7���=W��&k�
a���j�k�����'�)�9�)�GS�X�\��-�
�b��-v���YLkf!��#�Q��r0c���)�g�a߃
�e.�'�<�Yb&�m��~�έ
+;�@��k}Yiɲ���)���7p&��~0�Y�
ۚ����d8�ma>�Ɂ�&��؛��\N7��ٽm��
Ӛ���~�
۟ ���ڋ�k?bL�0z����_���ϲ������L��,��Βf
��S9��ͼ��}�r�Ff�6v�5�+��t^���Q��{I�0Y������.1�{��
ċ�b��C��@I����ol�%s=%��l��\�Rޭ,�f�0�}�LfuZf�J�.2���B���d����Ɗ;-�f�d�xi��ҽ
�
e��1���ӫ�+=�������N�
�����3�{B���x�5,��|��̕&3S���2
�2
�
+��FF�6��
��}
��1P�I� }�T��Z��j�.ót� jx���?�B�[(R�������OH�)�S�?�_���3Wq'�*�1U��DU6�U�
W�1Te`��B��A��C�!@�:Lwu/]5�Dkf�6����*dzM�nzO��6�r�����9�_�̳$
.W���쪾�DMc56f2h��o,��XI�h��h���H��L�6D�6F�y��y�v�Aڬ��Z�O
+Q��Z�_
+-�����k���oD{Y��C�Xuv�|�)ӭ��W7o`��N�EC̢�Ӣ'j�!l��aq�zi���V�E�6D�m-��f�I��~^�U��K�\�+_�7�� .h����=)��0g��c^Ÿ�'��~A��>b��tٲ���鰕�n��ZZ���=�Է���w
�s&�:���\'T
�9������zG�v~�r;�������y2�R�GE�a
HTa�,^����7�︋n�:���pf���tpV��2�w���6�����؏�=A�{�����vy�^V;��>U9�˸(��E
�VjpZ����.�W�#���w��iL"�N!�� ���������zj�x�p7�hl��������
��ۣ��
S�}g�6����6�'*�W��7�e/��N����b?g�
6���\G�駴yW���K��������/��o��l�����쥾�
{K
[`���n���T���U�֗����U斏EenV���d'<S!��*;Al�|��d�a��4A�-��[h܍��^<��4�p�8���+����k�cm�`io���Em{
Sh��5��Tա�������nS.����5�+��G=ҋ^�� �h
^���F<�;h�X�#��=�A]X�5R�9��6R�)R�1�@u�C4BU� ��;��<Dy�
+��煷�G��>�\��2�I��)9�a����������ߡ��z�n���
,�djc�1�l��'CO1U=�T��R��@�룬7Di_%}��
@,<Ka��|���Kt1��V�=��/��~ѝj��#���w�3u}ߣv�fj�jp-C�eP�Fi���xE�t�:
+�����F;<F��^���@3�ۆ_G���r��I
����̳�F#�V�vI
1I����R:~��������T�&3�N撛(B��`[�����섟���Sq
��!}�p���
�%�%m�3�'�K�i�^��3�y�Y�>m� �GDB���O�"w�Ml�����r]�a9�k
�d+�E�h%�")�R1�P�,�1c
���c%k��J�����P)3H��̆�af�c�1��w.��t������}������<����G�_BS�NH�h�S'��6�i��O��дE���08=�A����cJ��)�>�;�����
坶6�j/(�r�U��+bh�A�m���Ь
�����A
�Ĕ�O�h�Ld@�d�sg����+�kٌ�e�-�p���w�mz�<�w��:�T���ڏ�a�&�@��rϐ���0.S��l���7�_�-���x�w�O�'�&zг0�
���V8��)�͢K�B\�cq.N��$��j
�o�X�#����a�?=^gR�j ��
0{'��-0j�O!x��[)8i�cYG� [...]
+��U�T�G�
���{�Q ��`:$�a�Z�U`�4=٘�ն4:�@�Sn4��PX��tzԫ�����Y
8g��<�����zQܬ#M�-���
�X��)�[r��;D9��@���z
:��֧��4p����R+��Q��
|�
�Ѐ�������j�7Ԅnh���e�M��V�=UǶ��
�T�Y�z�
��C�5�ܽ?��'��ih~^��s�&nX�96��jr�o�4���;��iP
/T����{��6�#I�ױN�/Q�s��SB�j>L57)ow���nwl�����.�)TF�߉;�by�T���3������y�!����Z�ڄ/7��:
�
+�uq���-��H1^L3x�\���_X�ϬBS:?��H�{�yH:��}�r�B�uD�
W�����<S
+��g�u=
���8�n�S
a"R�ů�'�l9?��ȷBO��o�|��%r�
|K���r�T�r
���w����e�("�(q�
������U�&,"�$�=E�rΓo��[*_4���o�|[�%I9�)�,9��Y�%*�;�Y}r�{��1'���x=^�[c4��h�5i��h��K��F(�q��my��9[���"�\��z=㸢5��5�@
+�vq��B�U�V地���8��.G�<��ڠ\��������a�l�a�Ѧ+/Zx�/mB�m
�M�I\���63��t�~����p��
+N7[�n
ωI
o�Χ-s�jU at e�2*��p��:��
p�ï���zM�`��ưk�a�A8�]w���f[?�n��vQ���&5vS���>�;���NSe��J��T8�P#�[9�B�S&���S�\J��
+\��@���s}�ޮ���h�;odžΊ�s
���箓��=��0�3.���b���
�:�2�i
�6��n�P��t_Bq�h
+{�R�c�=9�3���r�۫��1r�/���;2=
��� ����z���p��Y�F<p�ᆋ-\;S�Ó*w?���S�II�7(�B��t�<g���|��[�
��X�V��G����S�쿛]���9����H��E��Ol7$��z:ڌn�ߏZw+���愇=^�(
`�h`y>f��&���mr}���;��As�
�!�-"c�r�ǐ6d#�CI��`��~��
&ѿ�힀G��`s���z���
�U��RG������oH�O{v#�ϛ������ɮ�I�
�i��H
�
)A��
���KH
�f[p
![�2,��a6
?���'�z�ua�
{��0��z��q
�r���_�\���C[��%ă���:��P3)a�I{�İw�6����>���l���#bX?r3�F��Z6����u�5�Xe�O��+���`��q�5��:Dw�P�u��
���@��^���Cʨ@G�$�
��$6�'���
"�g]�\�">b��%Č^Ś1X=&�豻YYȊ�c,��K��$�0X�;��0T�[&��`�3t���Z����4ۑ:��c�I;����l��`}��"�$6�
b���:j6���=n+ƭd��8��O`Ʉ
���o��=*�:�㟵�j��z��ڪ�in�%5CME�+*���00�
��
3
�0
w��7 at E�D0�
�R��M��e�X��V���㩭�.��~���?>�}��3����~����"E �J�-��4\��$�A�Sc�y��1�:���Eknj
FK���L�1~��.>�Z�j�
�<l�Pi�SaȢ,!�҄ %��'��ȸ�¤���(0=O��.����~S�U.NѺ���U���F�!����^mzo�BS�H�a�q:u�H���R����xJ��)I�Q��IȔM�)@0����Z)��7��o�$��
>�;�Z�E��?"L��*�U��'��=]�]���=������`����ԤL�*e6�)�(5���
G�l$h�P`v�xȷ���V�km ��ٶ'�=�'�-�%��q�~�~��R/��/)�g��&�@���'b��VjR�Ri�L�u&E�Z�(�ƐoM Ϛ�ϖFn���4��!��Ux���
��r�������8C��;q�L{��3s�f��yP�O��
�r ��!u 5���HCI�B�(�G�o_B�=�\{<�^�
O�wFY�A\�8��t���ڃ�Ս�����t�;��0陿���k�ã���T谪D���~UڇR�1��̻�w�O�s9�Ex]+���rq�Rqfe���%�
��.��YG�gi��ؼ��z_%��9���ˤ����} ��C�b��N��[�
+�׳*J��#�5��.r=S�zg��.��"3;���
�fҳ�帱���斐�[��ׄ��N��)�}��3�s��%9'����˪�a�
�T8���Y��}�;���[�ν�oμ2�"���������7a��0�H���
(��!)�cA��H(8���S
��1�������X��rpH1w��{���#�'�9���'��h
�{H
N�Z8K�B̅�I��2�J�� �(CQ!�EU�)n ��1V�'��eb�OSt���O"LL᯼�^<�tI{�W~'[}�+�ᓾ,�;��`l%#���#�l2����P�C�*֔�W���tb+ܬ�]Q���
������N�*_`Y�)�U\`Y��,+
�s\98���U�ۥ[�W mw�K�R1S��$V�A|�����Ol�lbj"�6����,�5U�ʲ:'K�|,�+aQ�Z�mf�L���G�_�7�מc~�%�����ۥ�T �U�>��O�ү��:y�u7�a+6�#j�$��G��~.����a%
�0�!�y
��m�2�1���jf5nafc3��h|����D�O��+"�G���)�GC�P
K�P�^�T������`��߲�i�$r�x�l����3��
���%�h���[��ߒ�Ԗ<���3���I�;���$Z_cB�&4˄m��/}
T�w���2�@6�L�y���Y�q[`Y3��3v\���nf��QLi�3���cR[wEr�%ܳkw�Jd|����=�mqgG
c:Z��c�;�3������5��~�����*�I��Պ�P�^i�I;Q�+�;afL���^��'n�OO�dL�8FwNbT�tF����3BCwx��ۺ������
ۿ���p�c
���.��}?���x\����Nڨ>hT�����; v,~
�+ܷO�`�!���
}f7v��1
�{�r]σ
�Y�����11�.�#*��
Q"�ݯ� qZ��ء�7mV�
l�Y�vj;��E5��
�N}R��Av��������Ѡ"n�%7Zh)>��츆��� '5tzu�{��
+��
^yJ���?�hQ�������,(�Ŝ���\�|�3җ��;�E��8��4d�����$�������ZJ'jG�{Dh!�P���.��T�7 �|�?��%8}�������ʁ�]�6I{���-��p��p��0��_�M�xO|(>�j�>�EK���2 g�iY�����}��8����y%��D/(���V9/��rn�筒�<iO}�)�?(�!o(��H�}�P
+e|�sqF|)Ίs��
�����r��d��E���1]�QU�i
~�kj�L��~�{j�x�Tᨠ�p����"�xAA! ��3L35M-kll�Z��4��,3
k�D'��&]���{����|﷿��Ԥ�Ҥ�h�z�/z������x�1��1Ex�<��
�#�������
+��Z��z�P�m*��j~d;7���
�;5��\�CM�
M������
rM#�M|���E7�"���b������
����9��[�-�4b!?�N��W���"_�|����(�
��|����F��Q?������<�w�E1T�j�
��W��)�C�%k�
ŗ�7��+V�%E�m�b�,S�|����ck뜐�=>�/�4�
�V��
�>�Ag�^t}�}�����K^���l�%(��2�����m�b+V\嫔o�|��.ߛr��=�f���� �xK��O`�V��h�4F�
��)vW��u5)� 9#�Ul��J�+K�\�
+��V��_ΙU��b;o��lj�op��[]�X��9��G�?�p{�C
���v6Z��xJ���]�Ӻ?�[��Z��\m��Gm�x�]:X9����
�8�1�w:-����9�y%'�^��.h|��c��p��n�m��9��
+�������!�\
v>��c�Чmtk��nm�ۥ�vx��:
�/O��R7w����K '���i|�ɱ��
�NC�l����P�U
�]́�e��S��>u��{�]�NR��2u���v�mj>`�@��Abt�_G�}�7�ӧߣ%�v��e�^��=�S�&r|�L�
�Kà�
l���1�1�}/.fϐ%�
�î!��]M��v
��v�6j��c�F^q���ר
u��QMl~�`�(��]s�1{��������K�[sv`N
��_��Hw���ޗ�k���ёԍ�e��jǤP3&��c�Q=����ױ��2*�US1n7�\ߠ|�96���� ?P����
���� wu�~5��Qq4�
��kd�����Q�?�� 3�>a���v
㵉Ql���Չ������IY�Oʣl�j6N.�tʫ�L��x����a��Uָ�*�_)�0�`��#
��������z��J7��
ߞ��z�s�0�Oue�4��gS���f�`�=,�y�����dֿ����9M_��Ŭ���U3k)�<H��)Vx]!��[�~a��Cr��f��W�Q��}^}�qq�]5��V�{�`یAT�
C���==��5�� ��B)�vV,kf%�jV*��Y���g����.'ϧ�\��,3�$��٦oXj��,��d��fn�>T��,�iO�J��u�9C5�gW�x�c��H6�� [...]
+�#
�E���������o*��;t}ml�R�-̪�1L&/`���d��40��@
�6҃�����0���,.&9�U��;I4#�|���o�-��48C
q}�J �<g�lPٳ[�_�ʰJ�oXКu��)\8���Q���
�AV�7!�H $5$��+����X�AbX
a���i�#�r���_k� �� {���W�����< uAP%�t_�P=WHW��}Y:��0W��M#-̓�0���Y
Lbx ;�D���E��\K�uv�b��E�':ꚸE��I�|�2�I{!P{Q�Z���$X5�Y�FX'r,=ɌBz�XR"'�9�D� V?�օ�Y�qDو���
�J�m6�j�cʈ���j?L��]"��#��{XlF3�i�����Q�=rn
S�
��7�ƒٞ�(R��l{�D��1
��x3�=�{(��(�b��.&ґM��K�F��js
$�y��S�q71;~F3Wg�Y��Q9wʹEe_�J�B]s� �֚{w�
��w� .�{�4lNO��&��DƇ�%>���$B21���2���L���"Z�(�((R�:F���
*
+
+"�+ �&*�E\� .�����6�dfiSSMNN&��T�v����;t���{8p���{�����Y�G�gZLa1{�s��F�� �z&,V�j
N�u�W��Z�t��� ы
���hO���gΒ��Z���� ���۱3�7���h��%���x�������'���7�H<#(�b���Z"�(�q��^ys��K�
c
������H�&"����7��8��I��&����wN~���&&g��τ�RƧT3.�)�|�����w-V.h
V�*�7+�A��(�|j��u_��$5gz�3�˺��E��LY>�LJ�Ĵ`Ӧ1>}���
ǘ���Xͨ�����Ȍ#�g\�?�6�i?��Wa�rZsp@�+�ɻf��
�#qr/JRϡv1<
B2���#Wy0!ӛ�d
cL�hFgM`TV#�#�ϞLj�h��NfXNCr628��A9f�r.�}
����e>+GU�Z��ɽ.
��䎖{��+`�ڣ �v�Y�̨�n���dD~���1�`8C
�2�`�t����װ��
K��a
k�g0�c���w������O�3+f�w�]"w^���� rG�=S��\��a�Z���6��B7^/�b`Q
��|��.�oq8��ū8ϒTz����d3�%{�QrV|I��{�,zB��߬�O�Z�{}*d˝*��L�'w�ܓԖ��(�����wkk��:�Y�F�>x��n�qn� ���Z>���
�T��kE&�+
+q��M���8U\ǹ�.팏hW�����u.f�LZ +�;A�H�g�=��n�7�4«ۡ�N�\�k�
�R���j���f8�GS�M�he���i9v����ؚ`c��M�Mlk�?[1*�l�I��䎑{n��j���
+���j�k��>p����i��M�.�
��6���
f]�̺���1kÙ����s�
+d�
����CqSܱ�)Og�A5X��@�te��QU�'��~��o�WC
=FM�h����Х�.ħt9�
�]��"rV��6�9M�9��
~n�.
+��q�J��:�X5П���k��́����A�#�z
ڜ�fg�?/�[���;�B�]/�>pe \����qM/����?�b�^ ʄ
~��8oŠ�^Q���
L�2�W桇��=�qڟ��M��B�B���qC�ҧ��gN�j�.�7uA�f|�q����;
~w���h�5j
�
+�Xo%w����Q�
��
�Z���C�].��������K��F�ߊ�D��rWM�=]�xM��.(4��z)>��8
��
O�؟�Xp�D{�&�
+?1J�<e
O��z��r���D?����ޣ��P�]�hdw0q�����%n�7��~�o�3�f����$^jGW�G
�{��c���9rF���$ɕƿY%W�\�*�:����Y���+��;��zOe;�)��U��~�%��
�_�Bk�B8�N���C�w��NQ���7_�(e��+E�t�2�ʕ�����(�m�|;�����i-�4��9�g��,�9ل�&�4�Gw
�̾�:Rމ��4�r���B�b�+AKc���gʵZ7h�n���
�rU�S��8��K���
Q�CJg�|4��-#
���Z��tTnw��i
�j��*�de�P
���"�k�r%(�2�2��R�5
g�|E�m�jaf�V��u�>�a�f�V3]+������q�R��j�:��^���r�+�e
UUg�5O�w9��q�&��6��mW�`���fy�7�@]�R�5�`�� ��!jZ����
v�k�:<�����/`�7v���-f��Ϊ��ys��`N؏��$����,�<��W��1�}���i�Jmە��r�v2P�\�.g#;�US��@��9��C#[\����R�� ��A[�^���:r^�Q`ߒ
�;pҩ7G\��a8u����q2��©�<���
��e1;�ı�Kۻ�Q�5��nk(북�ݷ��m'�nu��8EqϏ(t�������N�m���ܷ\�画P��d�1�����͛ڞ��r��
�Tz�R�+c�9��^���Ql��3�M���܃���8��iM�i��6�#�Ȃ��ZX]`�]�7,�,,�]����k|��5:�m��ijS�I2�f:u��I3M�6��X�=����7�����=�bv� �7N�w�f�1�
�/3��MF�o1�����C�'"�۫䛕���i?��_���.f g7��t�FNlN��%���,ė0�`�@B5�]�K�c&���6&��������QF��#�|���3
n��@���ܤO�/zw )"�R��|�� [...]
+c�nFR��N�d0���
C�/}�����d�@w�5��7إ����?�_�i������ܗ�3R%o�zr��W)�c>�If��ٙ�dF&cjF2t
+�TZP:�Wz���ћ�FOV�YteO�+g�`�I:sB��*�?Ҧ��V���"��-g��~UZ�
�n,����Gv�\�R�e�b*;�����s���eOn!}�zB�&�UVv�\t��� ����]=J�z�ւ��5hּJS���]��FM�>���_��)��ɞ�sᨬsٰ/g1���cP
O�ZA� ��5]Z��4f:4v�5
�
+�h)��_��8L�v��cxu�i�]���m�JާN�
]�>���C�ಸ�I�<��gd�/L��<�@��m��8�]�; hUth
i��iњ�k�4���t^K��v�P:D�~/
�j
�QS�
+�۸�>�e�J�D��MF�,�$�3��J�<(cش�Gd?��6!��t��(M��4�V}6~}Mz
��r�z
�'ue�x�Z�-b w�4.�a�Ƴ8L/c7���=l�O�{X��(��=\U�h)��Œutr¸Vf���%�2���,���x��S�U(�V�Q_Q��BO����
�Ƀ�Ԍ�2�ü�y���-g���,���o�ǘ���H���
~U oA�'K%s�%o a���ɌU���c���⫌�kN�ΜN�9�Y��R��b�n�b���Z��*k�8f�<��a��������Ra��
+��H��r�H���yL���r2���n�;̋�[��X����
�Z�p[�pڲ���XmZ���T٫��]T:��
��!*�c���(s����9z���]�wޡ�y�RG$�r/�_b �ŹW��2A���~+xm�q���\���͕B�K�ŝ��]��m�Xc���AYm=��V�nJ=#�x��;���"�uoP�E��#�j�"Q��ۻ(��⟗�w�J�a���B�]�N����]�ճ���8*�a�O��>��
���
FJ�輵h��5vQ�8��q?��}?#����!��o�K�"Q^�w���|\j���G���Y_h������]����M��)mVPҜ�֟O���B~7�->�Z�Z�i�!��Y�ϓ�zM�If�?��Afs$�/���I�Gl����!��C�F>q�6���͒{Z�Ei�J���(�،�#ug:��9�uj�
��0�p�h@lgg����$;��I
�~�"xE�CR;?'�#�E�?+��K4
w�D�Nq�Kp���
+z�jE�o��z���k��%�;�̞�=Jv��
*&-TFj�E���!?ɽ�l�
#�w��$�^!��
�C��� �_E���~\�|���%
+햺[�-ϊjq�%�H<��e�R���6���F�%�<�ʶ�,���$�?lb˰���F6
�
"6|���g� �̺��3�>1���~�^���>$�Iq��! n����6�['��=��$�&�."a�;l�X��ɧ�4����[��J�S��LiX'����*����f��ǧ�Y=3�ʙ�������,�z��w��QN5�[w�
���&��r�6
@A2� Eb▽�~��:�]�
\�sO�zn#��X1����l~0_����Y�`瑅F
^��҅1�,
���
,��&����xh��(���
�'��L�yX���?"َ��"Ce��R
+�M�e
K���M�$��,EE$����%�ı��2�9�
c���8c�s�Y���4���z{�~�����=�}���c垣���
���c#
ߤ�S�u1X�]�ӄ?�����
-
�03��������O�t��Uh�+\���,v��Z��ՠ&���
+����i��;R��r���p�
+�ZB�]Ъ
+L��?�Nt��r��VV�
�F�p�.�m���B֬U���j�
�q��
�bF�r w�ܳ�T�5ئ=P
+C
`��[�N���49���=q��.\�ǻ� �'����:�k�ҟւ�V�Ok�:R���.�OX��N]�
����m���hūr�~�Z
��z�츼�D�8+���
�Wq~��.��*�U��Tq�
���qE�U
xW�ٯ)�kZ��{��~��L�u����{V����}@{@��?*��
���g�;'�"��eqE\�ŇZ����
s�����;���U8���B�����Q)5�*w����T�<V1�h�N(����bm���J�O)T���@|&�)���~{5
��C5 �T,?�<��B~�C�^���K�rGF:���������A���'����>W���%<&�oI�V�_��6�M|��b���J���|�~�_�T?S�z�{�䉦��B06�q#F�3�^t}��!�Ɲ�1��#�
9�勑+A�$�B���+K�
�6r��A1�R.�^����V�U%���K�^} ��?`T�k�D�]䷒{�p��KO�o�*�P�z�F�S\�Z�e�P<�2K�\m�<�
+�UJ������ m�8�,�i�ZEuJ�S��lĨ%��7���Kz�m��U������h��+L�(yȓ(�2��B�4]�lm�uz]���*W��߫�8���
G�PY��CZ����F�_�}&Z�Z��r�V�v��I/9��,�L�.O�<
8�y��<N�*W�X#�z�
+8�\
d�2q���ϽZ�*m��<ҷ��%�o�>m_����-���h�
��}q_�2^��r�R\�+Z�x�Z&W*�d���^��
�b*�A3-S�J�EY�����ȶ7���*n�LqwP�=�
�����b��`��T�Lc���mAU�h��Ƴ�t1��˩h�Fy�,���Sڢ��;��r?ŭN���e�Zߡ��lj����F�y����qwC��%
5�L̨mb���m�t���+��z��} �
&a�By�Pvv���S4%�����;���<�"�
+�lbs��V���16t�g]����x��
�Yca$�����n騭ױZ
��w۶��S������0ʻ����/�-�Ql�g�XN��r��l�C~��z%��W*뭲���Ŭy���>GX��}�F��C�l�g���7�(��^��z���-Q�kpoSvY�SfՇ�>��u��ړ�����L`�����`�m9��X�/��~�d�O&�:rY5����I
t���I���r�$�'�,m�a
��_Աz���b�(��;lڳ��%��?h(�F�k��Z�@��'��~*��Hw��*�(V�'u�RR��$�q
�
7�4t'K�U�ة�D��X��5
�_����x'#_u���;c���[Q&��
+.�oI��X�hM�P������A��iN�Hu�D�s�Ρ,w�$ix,K�'��%�D��$��pD �n��s�%��:1���v.~"����]+]E�tT)��FW�6Q��y�L�u�L���I1���$�y��-�$� ,q�B��
��%ad�#�`�r�Fg3z�
ۈ�b��I"�\%b�=��1?�il�rP���=�
U#��M���#V��g�H
V��e���$y���ÃE
~$x�9�8�b=C�I���Z�<�UD��#�g+s}w�w�9~W����~O���56�ʍ����r�r0Zu��*�I�hMʘn$y�e��
�N���$�Nj� �|&0�g
+�|g�N�_,s�.&�%��9�(bV�.f
cF�e��ez�cB_
#!�;��go�|e�ʁl�u�-V�s��K}�Y�gE��Ďu$���=���#�?���I� �Nh`��������+�1n
!�
+�6����2e�%&O�����+&�36p]�N���'���5"�O��3:dIt�-�
�
NX�(B���t�GU]�a�1GM�C
45Jq
WA�E�{/�{�/rAYD᪀�:����.��z��9��iFyl�f�\f&stLӱ
-��dv���s����}���}�'X�QJ�6�cQbL�bg�j(�ŰPf�
+��g�.�鰌q�e��(��
��5v<V;cp���o�"��g�cD/b<�������t�H�^Q�a�l� %�d5��b��9.Y�q�2������\��Z�X�*�rPQ�S��\@7i��:
�=?�`z���a.E
#�b��9��9��ʌ��x%ſ�D�8Y͓e6OS�e�L�(�&�6�&d*:a��K��T3m�*¶E��
+K:�P�y�B��:
�${p �V���d
��
+����g̉�2,]�l�Ą��$W�m�L� 2$�)6)X�I3�lPd�U)i
+O�UX�<��V*$u��Ӛ4=m����ASP�
��C?��`���ߌ�W���8j ��O�>1%�����ΊK�'c�Ť�TT�x�L����@�g�)4#F32�
+�L���
e�U`V��V�?�A~�{��6�L�Y��y=�oF����&��aW�-I�rQF|��9���]�Y���=H�F(4g�Br&jz����!
+�G*�n��M~�Y��[�)y�49�Z�6jB^�|�O�{M>�o�CM�w��
�|
�p%�2��h��B�mf
��%E��F3f�h���
+��T@�H���o�M-���0M*���B�|
+��J�l�+rhl�
+�)Z/��U��H�
+�jT�]y��~�~j���y��ni}@
I��ۘ
��6�P�뤩�\5i� M�?\>%�5�d�ƕ�ili�F�Fʻ4N�
�z�a��c�F8�h��NC쐧�MC
g5��<K�������Ԃ�����]��
v2�x�Q�C�%�R�gag�)s�w��F�{��
+/yU�ш�I�8 at C��sq�W&ȣ2S�*
5��\/T�Q��f�W
�[e���K����+�m�w-�eْ#G*��;v,�,v�Bi��{�4lyW
^�"���4h�`
���
Ucտj�ܫ�V
.�j��T��wM�\jȹ�Z�jԣf����U��
�QuC=V~��+��*;�1O�;v*��aG,�aOZ*�^!
���Nr]�U�k]�R�.�:���RϺ�r����uA�V�.�u���3�s9�,����.�:�q��ڛ��fs
�E�G�Y��D|�,���IS�����k������(ui|V���ɕ�
_M
>Mc/�&.�&.��
��v��C6�/��M�a��
+���Up+�s'�;v
+�M��`��y\���E���R�-�3��d��$�b���:v{�<��ai�%����k��Z)n+�hY��
D-Z>@��KZwQ5�w&lk��F��g�
�Kp_l���n�V�{�>��u
��z
d ;�@tx�?�8��p�|�C�
o��m<���ɏ�<���9-ay%˩�N�
˶�ye ����?�D R�a�@� ��1���G:1�p�`t����8�
�4��=��
fϰ��oC�v
�~Be�Y!�
��MR8�}w҃�
����������$z�Fg��K���o�s���&���ٗ�\�_�h����D�/�������΅�;��
z�=��0�����i��'���������/���
t�a�����\eo�3�ޤ
�x�%x���A�C��a_�4��z�g�3rGC�8�O� ��2���-���H�%��E��*uM��oU�+��ՓW7�j&��aI�X�1���>�/�>�,����>μ]P'����z(o��}�r`
���K�5
�
ri��Iν�2Rl%��j`���
V#�
����N��W��:弧?Ay�)��y;�
����
�>x�7� �M����p���q�
�K`���
+V-�
p�uB-:�ô� Z�
��RmT�(>����Nxw�m��ZO�=��M�_0�h�f��
'N.�8�<�A��Q�%�V�Z
�
NGh��O9@�i�����k��u��O��h��+=�7�jq�Z�Q�N)�������R8"Y�Ʌ������t�u�W�5�^��L%Z��o�d�����Q٭��
�n����"nNj��>��;��x�
3��̄e����8Y���ɇRL:`�k���V
�F���
+x�Fvp������:�랬�
�����Q�gg���;
�8���+V,��Y.����;���3��'P
+�<�CD�3&B �!<�C H@ρ(*U@�j�a��t��V��ڹkoݺ�ns���n�n����n���v�O�g��x]��������y�[k�c��
�qJ=]��װX��ɘ߬�N��sO\��7�]�f�~���L-��
+G�G��������w� ��B~y�ԻU���T.,S��r=
+Jx~E%ϭ�rf��gW98��ż_7'�����c����f��SL�>ϑ�rB�nrh�-l����{�<f�o�/�y{����J�{�%yu��W�$
k�]���
��
+0p2����*�m�rtc3�Z������
y��<����p`�
��
��\c4�
�>�
��;
�}�'��[�%r2r��Q ��pI���r�-��LP��q̅�0�t3�Z�8
V�dX5���q`k3�m���ض~�m���~���Y<�g���@�k�G���������
�P�-rg�\����V�r�_��pF��Sa~̅off{$G"���J�`�����G�1�7Ƃ7���X;�X'Cqnvx��1No�4��t'^bO�
:�ޥ#�o�_�T�|8�||�Iƀ��2���?�C�-A����8��
[���c,!�}�ٌ$��I*d(����
+���*l�(Z����:�G��ug�<��
�)�#�����{���w�o���d��HH�����SF�0-qs �)�v��M�³+���4��*z�Z��"��e�I��#�
W�
g����^Z3�Ғ1�=��Y�e����_А��_�g+��%}3^��=��0#L*%���}J?�ӂH�FoF<��2����ŕ��=�D[V��ZZ�m�s�i�qc�=L�� ���ԩ�a�\�V�65�`��'��"�I�_�q�M��� �� a_�d����g�� cON
��
+�U鴪T���4��hR�Ѩ��A�@��A]n�yC��O`�
�Z�@��T��¬{_�T���������W�ދ�;-q��n8$�~T�}�%t��ҡ �=7Gn�<%��,�s���c�7Q���F[�Eg����J� �q̅G)7<O���~.����kL���H�{Y�?/�y��:F�~�+O2N�?�� �m�
+�/H�Z�A�^E�^KUa1���Tj05Q^䢴���&�4F�s��Qd����'��k
FI(F��r/I
_�q�MJ,�%�ɫKⱣp%M�@�°Ec)N��8���
ʍy�
)5�Rb��T҈�����^
e�(,�B_~����3�������e�������\����Q�<z��+�����6�2�L�) ��4si<ee)��eb*�P\���l�`�������Vt�n��^��W�,��+�������c�+ԕ��\Ε;A�S�
�D�.��_*;��+�f�A�V�c����j'��t��*
+���,��[���XɭiASۅ�v�ݵ��X�ɶ^&��:���
�Y�o�j
>^QË����^��}%�.4��_֔�*���Uk1Ԇ��F��K$�NI^]6��\������i�!�����2�H�
$�v���*)�ߑ�xG�KJ�}�
>^����I�R�G��f��⮓���F�Uv����גoۂ�i;��8r���nN'Ӯ"î#�n"��
+eK#)'Ɏ~v:�Q8���z����;~#�&��K�ߑh�U�ڧ�ߣ�헚]���m���d�u-�*��m�h%�=�Tg")N%����t�pHr�I�#�����
b;G��<JT�9";LD�Dt��H�·D9qI�'��C�
�[V�Vq[�]!n������vBZ�Rvu�Aѽ�Dw8 �Xv����ӳ��
Q�&"z-l�m&����>/�}S��%��:[��aK��|.|C��!������
�U�Cfq[Z�
ĭ���emU�A��J��6� f�g;�8�
� dXC�H!�G��Գq�I�w�
�I�yO����o����
��5�{����/�e
�����RT�MdGA
ME�Q�M�T�J)�fJ6�f�X�>�j�R��qN9�8���I��tN��
�����~���{�����w%�%�ة�caGH��a����`���lk�5��Rֵ�dY�Au
X磗����MRߺ�2�OT��L��_*���3W�3D�1��1��~��˨��Z`��.](�gK����;
+��eR(l�J�c��Ĉf�J�h4�YS��db���a��
<|.}���n��
$�y"��&���1H.!�Ǧ��aW�HK�\ة��q�������j������e,�IfX��^��o#
Ȧ�ș�������K��bo��(��"���Mh/�km��n��n�b�$|g�N��L���<f�4�
܁�^��3�j��k��
}��i'�N
��c����N�����rd@;�qt]ES��r���1�Ҕ�� ��6��kw�vɔ���s���#,i��O|�J:HSx���0�r�8�r���`�;H�1?Ƃ���S�2��r�j1�
|'��N����*����K��
����0bK<x����� ��I3��@S���4����O
gy��q�γ'�1{�M���"�xN�ئ
�ɰ�aG�I���;~��< �
�a��N�3�}t]@����ƔX>0�>��>�F��KW��5z�
�s
+���f�&��E"o
U!�t�<m�;Ϟ�$G�Z�5�5�|7��0q��g�)��>CA_0�ܦ^�bo��,�
`��1��������= �o��o��NSd���`䄼Q��2���h=b�}�l�e�
+ԩ"f�2��*f�&�}͌���m&�/)ڛ�x7���$!��Por�>�����~�y���49�_
̠p'�q��dX�r�w��/�/o1�� �ψ�V�5�6�c&��@?�p/��ٴ�DrVwI�#D�ңw��gض���F>x
�;zf4.�4��2���N1�28U�C
��
+��Ry������u�"~��N��o��1\u���G{�K
�C��
��p
�9x�H�S�p��'?
Ŭ^
���WqDja���:X�X�eGNp�.���d�
G���@�����{tOư_��0�v�郯Px�ä́g
~�`,���#�q��8H
�cq�U#�
0�P����d�
dp;��Mߑ���k�3u�<�s\�G�MN�ȥ#L
��
c��uHQp��I�O�L|�B) �Ez�8v�V=,�M��oZ��F��*�l�j7�>���"c�c��}�z��rqR��ş3���W�&��hV�' N*�L���Z
�j9��T�X-0��^N� �s���I�tr�
��D�EV8�=������0�u�,����
��x�`M���x8IP�`ej�Q���
+�d\���UZ�B�V��S��ՙ�QM�����%U���*�NU����>?�.����r�k�8O�~�ǔg�Ȍ�e��Ǝj3�3駖���|���#��'Fk��kM�$��~Y��Hu/�f@�V
�S��A���Tn��ʬ���꒖Y���T4� ��Rt�{�^Or��m��َ��s[��z����[8�`�F�@��S��)�<C5Cfk�UIV��tU
�Q��b�ٖ��v��
kT��F-�K��
*�?�|�Z�Щ<�Q�rѭ>\�0;l���}��v�e3�S5
��j[�ٍR�p_Uۇ��>BS��a�J
cU☨b��*��%N�T�T�����w^�<�帼�l���r;�L���p�7z�t��g�粒����
IKA
�ޅ���W���r�N��
��Ξ*u��2��*r����MS�[�
+���>Oy�i�
��l�Bey,W��:e�Y��ە�uP�^g��uU)��R��#������6�7�n�k��]��_�ו�\�f�壬U�ᨢѣT8�Gc���3\y�S���,�-�JP�w�ҽ3�66_�>���[�d�f%�۪�~������?Q��]�_�T�~]�d�>��
�Փ��[j at +P�}�����,T8�N�c]���l_?-�
UƸ-7Ui�fi�_�R���쟮yy�P����jҜ�͊
ޫ�!PL�E��=DO
ܥs���(��+>R#mi
�@%���|-��\���
+�� -�Qj`�RÔ4Y�"����DŇ�).4G��K5{|��'4**�M������S��'E��A�)2�'������୧�h��Q)btQ>_��̔l�!��ꪤP/�
�S��P��� S;!J1a�OQTx�fM,Ԍ�
+ENZ��6���������[P�F�D�
����P6����;�ɐ���0##8���G��Pi-u�j
�u�
�16�:�hӤ������cژVm-}i���s�#�}}�����o�%��U�
d4|��*c�#ԭ���n?�����0i �EU��U�pN?�E�*'�]�Q^ʈ�UZt�l�!J��TRL�c���d1�(!�H��j���e49gj���S��c�1�Z��O�W�1=D�:J^f
6�9�C
X�k�,�0Zʍ�����0�Rj���(�8SVc�,�śbe6'�d�������&T*�Ҩh�jEY7)ҺCs�("�7�=EX
�n
b�Q�M�
���X�kQ�X�qx
��n
[�p%%��%a����d�%�%Lk�b�f�$&+*i�"��5'�\�
+KiRhJ�Bl�l;� �Yt]A)_*8���+��o���f
+h �y���*i|���,I�2'��1�S�Ť�+��H[�"�>7Qa��
+M�UpZ��0K��+5+�E�u�!��w�5���E�@���P�ej��
+���� �(ۊ�L����6'ťRL�HE��ל
o�g�Ph�l��
WмXfZ4;s��r�U,��E���\ӳ�kZv�|��'���f_�O�����|3��~39/���R�Q.�t,c2���e�e5��rQX��Br�4�K���(`����h�(��5izn�|�2�W�)y՚��L��/ib���@������wG^��hb�cm������p+ɹp.=�m�mɔ
���נ<g,
,����Q0^�
+��S8]S�fkrQ���
�Tl�Wq�<��4��B�JklI�<J:5�d�F��B���St_�E�����}y2��,�9Ƞ��`�`GbՂ
$�bɧ�)y??T��ȫ�9=W1E�+fj\E�<*#�^i��J�FU�hDU��W�˭z��V�kH�n=[uB������?kH��r�x�꾆�/�]E��`���
;>�;v �է�Y�G
�jt�0��s:/
��[��\�C5�>V��[5�~�6ȥ�F�V�_C���˩���ԟ�S�
9��Qߺ��H�+ɻ.
ߛ#���$�$؆)
�,ؾ/H��/JÖ8iв�5�>\.v��OT?�����d�R�3�v[>���h-�g.�8�1����n�{j���?�Ε��{�T�6ÎĖ^/M���0l��M���5,:k�^|^|.}G�����7�\3^��al�;
�����$:n���ZI�u
��"�Gؙ��;f3� �X�4v����f��X�6��m`�8� ��G�|Z�x[���x���6��F-ږr�17m��QtaN[oj ܚ2�G�
`���;�����7Ꮕ�w�F�m�
� m&�N��$��b!�-ı����x���x��H��Zt��~����It]U=��jj@��`G�d�y2-
K�np](#K<g��h;ځv:���Y��a�
�Ep}������Koþ�D�s�<@-
�ߧ�%-b�Ja�P�d�%�����-�8�u��T,~���|D�
�K:��b�r|��
c9<�b�:q�������&�~�dO0L'9 [...]
7 n\�L�����k*�S��TéupI�NVQ�q������ahO��S4����>����
��w1H5@�
�'yN'�`�1��,�R�d�O>��O9-�����q��8N� N3�
0����h�
*q���J��
����C����/|]uUcaN���"��H>I�N>90�a�(�1�rD�p���&8߃������:rP���e:�C䱾�c��������E��H-G��7����"�)F�
rɇQ����
U����Ǯ�Z
g
��Jtq��3lj�6�u�m�v��1�C���ߎ}_��0=�k2,?X��'N
+�
9���A)�S��k��
+����-LF'W�.�
�Co3-2���VߠǨ�o<:��S���A�b/s�[���,Xp
p,pR�d�K6�<�-�S�Q����-�
+M��ѕv���e
g}��!!1$���3$���%˹��.��
˱���
��\�%���
5j�N<�1^�j3U[�X��ر�v��N����i��N���j���~���w�
��y�������^椲w\�8�
�������W��>�����y��#�I��ޑ�$���Hr�+�)V�b��WLqzˀX#bM�5#VX��N��sIO�
�ڱ
��aE}8�#��\����ב&�$=����� ��ݦ;���%^�x%bUr*���5^�G�9����^n];ȑuA��M�u���˄ןd~�9����e&�UB�o2��
�b>�@�W�
UGG���
k�oR�S�O�o��
ܱ6����8�!�c-�F;X��bys
��xY����-�
���|�0s��n;���E�w
g*�.&�
f<���%��ф7I|���Oٟt]��o�j~�V�]��ý:�������
ߺ��mI
ّ�R\
�6'�q(����z&��Ijc:����~&����f,�0�]���uû`0�;
��L�o�g�}���k�n����XL��~�ݻ4���i4ZIѨ�����8�SR��ebfwӻK�Ju2�Z�xZ#ci�
F
�
�f(}���9�3�Зy=Y�6>I��%:L�&`����t��*��Ŀ��G���Z�QiYZ��yC$����ғ9���x���L
�,��*�r3h��o���E�i���1��
��|
��S���Gk����~@Kޯh�����/����?���P
Lpb��M),�ek�4�w�62n�'����^#��|��E��ћSEwN=��>:r���і?Bk�4-��4[N�d9��z��El�KoQo��t��
~�|?�x/�{�fl�
�Ҝ4�uB
�F1�������3�)0�U`���N{a����-
Z����=4ن�
��8LC�q�J��?J��yj
����W�_T�?�����b=/�)�G
+����:!�H��H�Yc�%�a3�n3�Z�OKQ��2��UxJh,i���I�cw��e�T�
���n\�KT:�O��5�οH�,�\�����~��ǭ��5��+�Z�6���wg�F��q�
��92�:rh,�PWj�]V)���r�� U��*Ʃ����Z��u'eUqT]�^�
����q���r��~V����+�Ǥ!��Z;�����sn��L��b�lj*�,��*��UCE�gu��}�� 9jg�P�>K��alu��Z�s,u��~_���k<m�;�|�&���ě��_�����~Y�&W$
U�qW'P]���&���\�km��K)uWa�k���Oq}E
#Xf�4.S�x;����<K��g�z�H^�{�g�5�P�S�O��$c.�^�S�˪xe�eߪ�6RY�gC
+���8�R�)��c���ꭣ�����.�}C����i^��|��-���
���`l���b�}F��+
U
�)���?�x���_�
��*�W��-ۦ4S���Kqs��4,-F
+�y������Z���� ����d�/�8Ez�{Oc�JZ�������){ھ�����+�yN�qq��jЬ-n}���le���mk��G��#�c��
�;͘:
1v9��r��
�t�b��#�g��=��`g�$�>ER�+$�����wH��D���U���/)��#��O��]lO3Ԉ�]+�}-�soƾX2�%��/
C����<v��k���n��I
�&~p���Yv
e��=�=Ζ���z�-�o�u�#b�r������{P1wɎ��]';P)�Cl����2�"�=�����$w��C�h6;F
�>j'v�Ŗ1��D�
r��4Ɨ�?˺�K�
{�ȱ�ź���O��N�r~P���Z����]-vYX G)3(�)� ��ӛ�
�#:��M�
6��D���
��%"�����3�`&,�[��8��8�d�B��ߕ>�r
ֿP���-{���>��N����;kB�s
+f��9�:���p�.V� �ᄳ$
��om��.�
���y�)I&1��� *�
+b�*�Qq�{t
��UΫt�}�'�8
����*�,�/�ʊ|劆�[wHj��c�̣���0���{�;"d�?�c_APDE��K�"n���1&���c���%5�&mZ�$�Ukl��F����x�?����̝;w����@�k��6r�9`�$T#�ld�F
Z�1�6
G���MtG��{����D��;
v8��WJn�lO(�I�J�C���B��k��J�f[�l��˶���B��6���maі�
�&Ĭ��0�ُ���+̓[2�\�I
�y�(<�ϣ���p���v
Z�^C�cC/D<6҈l"
���u��B�i�D$[+ne��ză[���."���
nq 1�/��ca�q�y�r��R?�f�`��
���KF]��N��S��G�M~�!?���iڹ�9x�$\{"��,���
�f����ȳ��<
vl|vl&����9��lC�:��Eo���%��
15���1��q�����Iw�3�.yq����Bo�Ӛ�߹�<v
~`���&�7qwus;�Yo���x�@@H>� [...]
_�t;�a�Q�x;��N5�Z8K�,g�U
�
����7�y��h�d�ݡo�
�s���
d�=/���!'�ˠw'FG1
?�Ԏ
���l�Q9�j8�p��v�y
����ާM�����s"�O�#렯E��r{���cf��uX#�9�� 80�`L��4�0ra�A� g6�r8�p��4�~3����ƻ7ɔ�d��Xw�r��h=E��;�c
gt
�,�0SF�s!�}��eQ0Ʊ�i�� 'N
��D6�P�N=�Bv�ŚmD�`g�ԓU��V�����I�{W�9�]�vrN�������U8!p���Ù '
J&�
ND
���JaUi1{RǷ�<��(��j2u
�*��\N\��GOȿ��f�o�U���J��kӆ:��e�����%�Q�
���;jٗ��i�f�*�Ug�*͚Un�Ys�����Q��qQ�z�T��}[>D����x�+p�%W!�q
�v%�A�Y/�����t�bso������� �g��*�I��k�*zMSy�B��)Si�j��Wq�*�I�/�S��1��Py���A�h��G�)g����U�����
+jL�7@���Gu��iA_{U�sUU_U�`T�U��
�U٠�=h�JOV�
)P��
����4ݺIS�7(g�neۼ�)6�isS�#��~P��g:
� ��\uk�v�h��:����k�+U�ќa�*
�k����*��S�M��G�j��,M����QE�
U�)/-T��rM�_���mJs8�T����R
����t
��
�j?��Z�:ڐ����s9W_�m��S�(;��;o��h�}�r3:^SF'+�!]�9��8C��ʔ:�F���F\w(���ƻ�Z n������S
!�m6� mG��w�ϧ=��l
}�#s���f8
R��HMurT�wM�Lg�&;G(�%Vi.�JuMU�[�����>[�
�J�|Y�^��M��oj��9���@��C�x?ѡ��v�]�����k��>��\��|��j������6\��vJwwV���&z��� �QJ��x�%xgh��4���R�_�b��(��"
[a����*,�w�
+3<@�u�=�B��})���r4
��b����5ӫ�ҽ�(��V�>�J�q�x__��i�_8�X��OR�!]Q��
,RD`�+ԸR!F�\�2������.z� �c
�����í�Ji�
�t��l��wi�=�lxQ�k%�+.�Ec�
`PT`�"�bn
���4�g+$�P��r��)0l��_�x���ߓo�'�ᅰ_�O��~�'����ª�
�E
��rx��R�跍fJ0�U\�Pń�Rd���C<꧐P���"e
�WPx�"�d�,��
�E��'�I�ћ��.Ϙ3n�3���G���Ļ~
�2Ƥ�`�^��RQR�4.�~��L� P����-�py * �( R�@��eX��Pv=�EDA%Q���Z��&�Z��$�i;��5�i�t��I�8�vc�I5�h��&�<,��~�{|��{R<�:�_sS����Yiњ����JLOQB�|M��U|�Iq�k�)ư^S��):�O���+*�5Ef��>R��&�R?���|�÷ë��
^B�=O2�I�ط�
7��
���(�0A �HMϊմ�D��c���ٚ��H�1�Q�+��N9����W�9/*,�U��\A����³j?5
�
�:�K�&&�yp
�x
l�
��3�M?Z���@��(&g���NQt�tE-���E���3jb^�����_��v�+�PH�n
SP��5��2����{
+��}�^'�_%l
�2��p�
��H�
�s5���{w��&/
���cQ����
++�Մ�D�/�����
+.^���R�1UkTI�K�P�+����-9��%ч�3}*�����fr�H�+`W�5s
1g�N�=;�����ER$�1l��Ɨ(�,XAe�S
����
+,�� s���
5�\��U����(ϊg�Q�/��Sr���������cy����o$�հk��
na6}�M̀=v����XǠJW,�e�FX���2I�,1�N�G�\�W�Z�/��r�
f�?Q�y���Լ�g��jn
���Sub�w=�*b.!�������� ;�L��"�W(�u�w��ܬ~r����
+C�JsY9�V�j%+I��3mx+��ߵqK�a���!+7(�]���صp�p�����3a'�N��������e�ƣ>��ec�p�
��a�Ȱ�3h�
r;��NC��Uv��Pf�i'?A�E;��莚a[�V�--f
�6�N��D�Sk���_I�k$�Fɥ�KG
^n�7t6����ku
\Z+��䶑�6hkBԣ� :��0��E7� �n�6��{&�X��
�>%�l�݊6���
��N���>��������f�v�h��͢��݆0�����YD=v�/mc�+�K���
��aO�=�.����6I
�V�U�R�K�Z���
.����ݣ�����c/�>�N��G���E ���C�4:���j9�*��{!�� ���9�m��u��d������\�y�:/��\�
�;.$��Q�r�}
0x�� I
3��
ћ�UK����;ig�]�E�l��;��N-��`}�8��.�.� .�'}�S\O���x���?���:H@�����8��.�όĝ
;v(_���������s��%z�q^�
��0��.�o��s��y������-��I�E �X��K*�ދ�(����Dˌ&f�CN�O� t�i�
��"ƌ~��9M��q�FIBFk��{���̍�����C��
�|ح�!�����X=��|��{����{/�us��V�\�u
�{8���x�Ѵ���;z��]�g^��l�U�y q�m��㫾�����@��B��Щ0��RuK
`��)�Q�c9��X�����i#-�p����t
$m/R�Ӕ��7�w��
Q����w�o��̻ 3GI\�J.�(�x�u
_��J��x�}�U
Q��Lv8-p��t��Nڦ��9B&^�Wh�;��z��|"�kt�D��EG�
�7�x�x:�F.��~)�W褖���`�����sDZ�lf��� 59J.�@<D��������Cϣo�~��;[�M��7x�_)��EFK΄�J
Y������k 뛩x��F����A�q@Y�C�Q�}���.v��^��C5w�_d�!#��>�˛Co9��+C��
�(X��
'�li0��?�����0*a��Y���>vi
�VvХ
|����Xq+��A������
}�
�������9r���~� � Xpb�$�0��?F���L��G��.
��j�����lb��\
6S�fN�:��N~�
�sO���?���1���^ �c�H8qp���%�tV7C'� � N9��U����fj��_��ZV[C=VCYũYI=l�S`�WC�e��
α�
u��m�!�1�B�i2+�Ùg.�
8F8��
+`�`�aY`��� g������Ct� U��w����>�~�'OƠc
�e�>�k�
ma�˝�|Y)^8�)����LX)Ĕ�+�x
+�¥T�]����Zո��ŵYUn
�t�Q�G�̞'T����x^U��m�x�G�Ư#���b�w���Z|�<\
��<����ָ�h�[�l�1��H�r�Y���LU{-��;OUÊU9̬
+�j���Tوu*��"�_����UpB��S~��
���Q�A_�z~�X�ën;ײ6^3�Q#c~M������[�>�T7|�jFF���*�DU�'�" M� ���.��3�?���
�7
,��r,�
��.�.7산hxEH<ɨ�*c�ښ����њv
m�iҚ����Imƶ��4����16��$�M�I?Ȧ�?���q�{�������^u���ѩ���j�Z���-j�VC죪�="O�I���D5�o���}�k���Y
��K�����
�5`
Wp_�l�F,Ѫ��R�mRgt��1�j���-�R-q�j�kTc�O� =�&�Q]���Iޥ��r�<�*� 9
/�a�(G������O��#�=�z�5��u�/����!���0u&Dȗ����4�$e�))O
�E�O.�'ť��j
�r�vɕ֧��A9�;T���3
��t\��Ub���M������Y�,��>�v�rlJ'#�h���i7�Q�a��RcU��"OZ�jӲU�^ wz���NUf��ajR��Se�^�37�$���'��
+-�T`yA��7П���&��(y��k;�&�I���U�6��ƌY����js���ir�3U�����"�e��t�[%�g�d�^�
*��.kވ��\�3ʶ����
�G��Rv�m=E
R�a�
l`%��5����J,
��u|w[�Ҳ\K�ʲST����EE9���U�W�|�WVk���{�S�^م�d)ܫ,�W�i{Z��2]���zOfۿt��g�ى����e�[�+u�V��ߵ|�X�
y�*�.R�5JE��*�OW~A��
+�[X�
�Sٶ:�(jQVq�2K��T�E��e��*��-�ڟ���������V��
�Q�����nŇQ-�*����R�]��)�8\y�q�)1�Rb֊�
e��d���TV-cY���W*��_��MJq
+�qH�� %8�x��︪�ߕ���
+�����`��Ư�կy����nŬ�vvβ9��/UVE�̎$e8�2:V(͙�T�])�.%W�+XLp�*�u�bݻ�>�h�QEUO*��SE���ME�>�!fpT�Zr��Ӈg#�5ȁo1ؖ��T�~U!�p-P�;B��x%W�*�&S 5���)Vl�S1u
Eյ+ҳZឍZ�١��Z��6���B�z�h��o�R݇���������^�gK�������B�sAجj)��8�;W��K����$E5�hQxc��5�kIS�5�hAS at a��5�yHs�Rh��|R!�/�yI��n(�������o ��x��mķ9@�bP�Zw�m��>ƶ�(�-L��õ�=N
}��̚���\��R��A��
<��0~ �ϭ��v��aMۋ料��fr_�w7���z�مw�
س
��RZ�v)�G/蚫9�K�Ҭ@��@
P�
P�@-�3�i0 ���
B at Z (
+\@��_��z}7�
�RF��s'y㝋��U2��N)�[Z�
+�墽g!
�b�����c��y��ij?�h�]������~��~n�~x��w���J��Vτ�F���ۍ7������R��x�(����
+�j�l��~/�F.ڍ�
�� /� /� �$�A��G��c���E@�����u
�og��L�
�
x����#%�����N�F��C�Xr6S�-,[��rG#z���
ѓ!^�!
�C$0����|7t
1�/�w�ߞf�$z݈���K����H� �
q�FKg�
+
�X����N�]�� q
s��&�=\~{9�G8pF��;�CGHb��<��ٽl�{�$�\V/3����F�ux��m�۴NJ$��M��mA�]h7��,�
����哾�/��A��q�r���ҍѓ1�;F-FId��
F�Alӣoh���Y#ޕ�܆w怔D��CҼ�}�=��Q4\���x���kf!�:s�
����q�`6&��E
�=
��<d|Q����a��Ȼ������F8bX�;rg���
.�G� ptz D�FO�c������Ǣ̌�b�$�I�Iz2I$8�Y1I�ϝ@gԉw=�\-�b�Q�<�@0��AߣA 9�N"F|��� ��M/�?��6�ij��
��b���b��(�FS�J癋�Ϫo7�R�Ț�;
��9�
+�3y
�����KA8z��<z5�
?w��W��%����q�K�
+=���C�6�W��
�����p�W��D��X�>�u�W-d��u]�J�
+��Y\�E�-�q �{�����\��~5�J��AQ���ކi?�+?#��A_��S��GZ�g
�F��yW%��*]��.��ՁG �^R^=n�q���^!���я��h�i��y}���s��)��O)�g������-tC�6J���.º�Ø��
7%��I����
����c�>�8��>�
�4`�a����
���lNs4�HB!a%M�D9�tm�4Z�j[���6i�VE��Iݥ-��i�6u[��R�e�
mS폭�pL諟m�{>����>σs���p �2�5O�8I��'m.�K�N��&�wu�H���7��_���>�zU�D-�m6ªė�n��
Y��#؟!Uf!��X�x,�X��A
+�"�.�WY�
���
�W��G�}� ���M�_ѯvR�;[)��y�b�S��]u������0�'82�0�0�a,�X����L�g�
��?.b��{/ϓY��9�����;���Α�E,n*N�
+,�`4�p��� Qލ�0�>cJ�h�Ga,�8LF���'u�_�⭓xp�
{�
:FVo��?�rZDh����o])�b��8U0��
����`���"�cp&9Q8�p`{U����
a�kx�J�����I:�����_V�������εx�X�猜Q>�2��� � �
����3�����X#
���
+��0����X�"��g�ُ}���_ 7�ż��9ڎ��ute�$��)'��'ٰ��V��
N
�v8>8�p�)°�ɈX{a
��*�Npz.�ϰ[��N�
'{Zo����G[1��Ε�y=��,Ɉ��qX�πWŰ*`Y�V
>u���
k7�aXXѭ�L��$^D��8
�4�i
�f �u�c��b>`��cp�k�
e���(ZI����,&f:���uU�lD��U��th:�[S�}���Dܘ��g4�����e��64�|N�)W5���S�/���V`�íRp
����t��"˔�<�q��Ӟ<�����LE
+4�X��$�&��5�ܤ��FS<I�+�k@��
�Ok c^��C��"k�ϩ'窺
/�g�#���ސ'�}��VI���g)q��O+�T ��
��
Z���M��(�����,�pf�BY
�vjwv��9]�3�)`ɟQwޜ���[����3�(�"w��2��V�O�b������<�~�!r��BbO�_��͢i>G�m�����+�����|
䕪?�R�|�z
�)hUw�G�"�<�Au��^
��dIm�G�b:-g�e5�_���-5�,��u�.��T��
��8-� �iӧ��-
��ݬ�ߘ��1G��"u��-����^
��r���2u��,���3j��/G��UO����,7d�|SVˏTk�=z���{p
?7�/�\� ���4�i׃�
0K��D���Ӝ�����+�Zn���Q͕mj��* �%���)��,�V��Z� �X����9Uپ�J�Ua{��۪�~���|\�s�^Z�iF�Q4����g->Z�NK�ܖT�Zr�.���L�j�j�U_���!�կZېj�"��s������Ϩ��Y��������[����d�@���)�^��=`L � �#/�X;�V�lKR�-S
u��Օ�Z_��z��
��ݪl�VE�̎q�5���|H%��T켨"�
*t~U��)���Sa��,18A�W�/���F�AZ� �v�¸�K
��:�T�0��dTe�Y��52;�29[U��UIk����*j�����]O(���
���qE��W�����]�����.�������'a�a�3t�N|do��f��i�QUk��۲dr��eR��JE�:�;��ީ���
�a�t�(˳�LϺ2��潦]�/+��]�x~�T�[���w�%�։��(�qx���0�����V��������3AFo�
+����+�W���Zew9���VFw�Һ��3���%��)�Z���翥X����3������)�`�>|��=
3�8�
�n���í�`��H&�T�#Co�2����W��>�R�,J�WR_�����*��!.8�P�
�K�&b�%�D�u��_���#p�`���`7��y%
myY�TĨbJ� JJW|(Wq\ 1!�:D҆p$ċ�^6�A6̌��3,���a�S�n%L��
��u�K���Gy5����I/5���K�>fع�R��F3N1��Lp�O�Xu����� ^�`ΌL�}��5�C�P)'������lj�<>O�
�
krc��
+�|@*fD�
�Ox�S4͜;C�{�a
�����\Q�;JREqf��͎"�cv���%E�w�t�{~���A|��
�9@���� �veH*a\��ϸ�Hh)�l^�fA�.�
�b���˾r;��pn��,~q�����qDN,ұ�gX��*ゥ�m
+f�%���F.�v�ոP�?��(���@���.�.��˱
ˡ �r��WP)���rT�^��XMLĦ�4m5��db�D
i��I
3��d&m2j2�L�1I��N������}~��<����Ú#���fɛQ��{���bS�GW��
?6��n��GNz�d�,�ý,�w%"=�5�����&��D�0��Z��o�l�����@~>���D���N4v�F��M<
����c
~l��� ~��
��Ģ� �?�����;t��覷]�R^�ÝK���\ة���#Ys ��\op7�
�*M�Dӹ
�v7���^�c?����:Hm
$'Cz�B�� ]� ]� {���M-a��y]{&l'��Rk�<6����h|���ҺO4ć=hL��Q���c?~Jm
�����0�
�k
>*
A���3v1u���6��=��Mm���}�'F�{�B��f�=��
����܃ur�ܜ�;�et��z���ac�nC�#�yA�����y����c`O���h��0���ό&�=��@�#��*�Q1FM
+� �^hGٷWٳW��+�[W�\W���,�2�/?��5�G��I̭�9��� [...]
+���4�����y�f̻��dV�;L�3-|ʤ�1Ňl�l��L;�Q�d*y��Ŕ��r� �2�^�Y\
��?�{�?Ɣ1�R�x3�>�
}�7f�/��n1�|�l��f�*�1`Jy
?�����q?^g����~��)�
+�e��%y�$�%q�ys
+
'�}�L16�_�������3��̷c�6��=3�U��)f.��R-�X�
&��a��h��AitQ"�06S2;)�������9�z������x6�?��t
qzÔ.�_�%/��1�1S�%'���N���د�L�`}�f+at���n���l<��<9D� R���
�<߭�0�b����x�{�
+&Nf֑#�
F�J�_���دg��a,���F�׳�62�����z�o���]X� i�n����q�E�ۉ21����寧ί��"�0�YQ�
�_J�˱_�4[�j�h����k�wk9���r�H����>*��J���;�v>a
5����G�7� �0,X��}'kȁQ�q]�
F5�y숅p�B�a���˥�O��
K�Dn-U�F����Nm��v|p���q
6�%��X�G�*�F
k��r.��(�
++�S�u�щk�K�{;�V�_���a}�m�ʚ��&vy#���n|�8b���N�zp_O}Ģ��b��^�p���ɀ�
� N1�2*�V
�d1��0Vb���݈W��E�S����2w
o?fw}��
?n���I>~E���Nb�F~��`Ea5
��5���dM�p
+ ��*'5���4�i�~��� Q�����x;�*�G��@��k�
�G�Z�
��NԎ�ܭ����/^4,
�dX���`屦BX��Ͼ��V˛"Q��<�Q��v�yj�'��kD%^�T�y]E�����:���?��_�u��������i9�N���
X�g�g�|��y�k�g�j��U�U��Ie��Q��B��Y�R_2�Y����P3�
+�i��*w�
��A�Ư��������N+�F�J���E<[�O�~>��Z�U�ƪ�/Q~�Mvj��J�
T2�TEU��@ӖiFp��B6(7t�\���
+Vf�i9�F�
��=�
{X�� r�5��֣1j�]���<��ş�`UN�S��`͙�Ҡx�4+8U�!Y�����b�U('�N��eE�*#�K��J3
P��
��ͯ+�t}!��y������w-zC
kG�|�21��|�oi�$��0"\3#�ʏ�*7�.W�S�Q9ʌ.T�i��͵J�Y���9�:e��,[�>%Y�V��yY-�d�\Gwd���!b�=t�%^���xQ<�GU���Khً�g&�7�)�
�ls�2c��IRZl�R㲔7C��Ke�T�f]���f%$��5��'�U��bl'e�]����LI�eN���`
k\��VxKi��i{jPb�U!���'��0��-�%@i�09�&٭V%'�eKt*1)W
�V[���goT���
�أ(Ǔ�H���S^S��=tKᎻ�K
6EKkீ��e�M�D���l�g�T����&+99X��Q���d��?=M��bR
+eJ-Wtj�"Ӗ)"}�����ܭ`�9����*��.�\��]��A9h��c!-W���3
�|�BN�UOf�ML��%-P�i�2��Ȕ��(�C��L�g�PX�l�d�*8�AӲ��ݣ)�
�w
����u����m�f��� 5�M�W�_
+{>�J8%�R�A(�=��ؚ���)S�dE�B�V�+^!9�
+�qjjn�r��W��y���"��p]�AQ�g?��!FD�Q�"��uaaa�Y!VЈUT`4E�ڑ��ƨ��$M
ֻ�iL�5u�8Z�f��fL;1�ԉi�L?�����v���������\��9�~Y~$S�
+�`1�pCX�T,)��
m�}�� ����s.z
��Y
+��A�f�����#[b+B]9E�U�+Қ�pk��p:�Z���*��(��]�}U��n��q#����Ip ܦ؟k=�
�2b]
�
>�<f �3�s��,E{�K��##�f�T�}�L�d�I�
Cv
̷�������;Mw�(�Tt
�
�&��'OW��A���-��F�P
oȁ{&kyJ��T�j�A2�1��h�z3좠.��x�e�`s�n�|�F��h at S4 \� ۣ��yd�����G���
+'e��p��ΨF��J��L Ǵ�-Մ�if�q���X-��M�I����L7�pw�dt�bē�
�=�o&-7x�S���?���:�\ã��|�Ýw��:��'��.�V.ն� .�vr�$��v�\K ���<����ԣ�ll �h�������_�����n��g('��<�
wz���\�^$�-�I-�7��e\v]䢛Km���K�t=�����J�_�z� �'V"T�D����j5v�Yg-�R�b���E��
���%/ie��>�!XMM�p��ŏu
x}
x��d�!��0ڏ��_�G�O =��
r=}����l��I�jA�pgD�Ѥ1��by�s��,����?�c?6��0�����ʠo%�[��p;`>���a6�͈���M�����T�m�;�/��W�}ߐ�l��3���%Ȼ
r ���������Nzc���S�
4����[�(�� ~{Q�|�5pÝ
w�
+i1s����y�
����MY�E�9c{�+
�鑽��~��e�*C�*C5AQ'��>��%�&�����3'�r�O�3�!���3
=��;f,�<���/�^1��X���gƢ>��
�\�Ǚ�c
�Q��8��C<�yu�����<����:��6c��i�hgD��B� ��G���+�H-�TzG~�t��9��t���ȼ^��? ����
�x��}S���R�K�;|����X'��8V|b��<�R���5 �#d�t
|Ȳx{��
�
�;����4�-|sJK�C��C�<bw�z���W��o��l��ج�r@�fw��r�a��
+�Ɛ\A]FW]�A/P�s��ߠ��#Q���
�DS��<(
��F���
���z����T�r�1��,�=:�*j�2��~\@a�Cq�E}�Ai���ƏS��+�4� ��Mss�����7-㡤
<����
�
�ɗ�HbJ@��"�ypE%
v,�K�N��N��1�#�����
�x?0Ho1�o�P��L����܇�{�g�A��y7�V�;8����<8�xb�IA�e���QE
�_��F,��'��pt��G/�P����6�u���KkOjQ�Q�Q} <x��~ '�8
�<��� :�-r�}�_3���~!�Q��Uطc��
9Z�h���.8z���#d��
����7��I>��Q�)x��{|�γ��§=�c��\���}
�����k6q��_�}+�k����k��j����w�х�Uda���7�v#Oo ���_�s���
~�����q��5��
��0 �b��~*�3�#3���a��5p8��\�4s���Ӂ���^M6��0�ū]d��\w����t��[ࡇ���
�8�n\�#�ifdPS�O
ipdau���(�:��?���
�fx��X��'�ude����'/���t�I���
��n�/��?��3�
����W�zK
��H�#
� [...]
t�3t�8
N0QG������<�
�lW���「�W��oEXA.���.M'�dxf
O><��J&�.'
,�k1
Ky����1E�t�(���ӃL����
|�nvW���Z���x��,������1�a=��f��W>\��*��
+��i��y��);����V�:�e�}[̨��ʢOTN.v�{W�>��
V�.��_�|�`�/
�h�
_*\Ė
Wq�e!��9��F��T��^���TbQq�.�
: s�)]Q���>�]��kj#|k"���V�Š��
YY�Y�B���!G@���� ����LU�f��T���Y��*
��4�Aš�*
+�9�Ws#��9���ݚ
5����ʎ���ȿ(+ꁯ[�u ��hV`V�VV�&�b-s����l�����54Va�*KWix�J"�UQ�y�*����).�OmU.���*{�����(#v�f�N*=���b��{�ƨ�f�\���<ֿ�/�J� 5�]Ǟ�?�)�U��ST45N��T͝���i�5'�Py�˔kSv\���[��@'�Vz�Ғ�+%i���(1�]%$]U|�'�>�+� 1��c���ō�`N֟^����J���q&�EhN\�f�'*'~���������b�L�*=٩��f��v(9m���.����;�$ ��P
DRBC !
� !�@@� ��Q*�ŖY�=�2+ZW[[����ֶ���j�s]�N�^o�9�k�c�v�m���v��K~�����@��}�������aT2
�$�x@Ҍ'$����~%Ɇ���gن\{���a�"��b�-�L���3��}
�͜+��bҧ�Q�CV�d�k��-��2����4,�vY�}���G$ [...]
�mf~7 k��ʺ�DI�.�4�I�eI��,
��2?�H�v��s�J��E�$>P✛e��=��Tvr;���y
��&b0@����O
�p��"�6`F�H&+r�]$�/w;�r�3M���2�`��-�J��%W��q�˻
�,ͅ,��"��"��B��B�B4������>r�
+�&xB���.��\��t˂[�tZ\ �ȭ�y�I�P�"qJ�z0��xѻ^v�v��C Ⱄ)\ʍX�T,9
����d�X�� W\ep'���[����킟��nd�֫��2���aVNS���D�0��!��"
��� �0�H
+p;X����]��%���
���P܀�
�
+Lp�1��{�%𗣁�詊��𪢨�U5��&�ռ��b6�ޭ���&�AS��PBl
��j������
�Z���W�) y��L��K
�RpMK���!�[-å��^ƀk��i�0N�q(̋atf�|�; 5�V
+#,
�6���҃�+�^���VB�
A>ȁ�v��J�)�x�˥�-Фa��.�
�V�"BrۈEF#�
�6���D��l�^�@
��TV�k|!�|�C����&�������D4��Zl�6b��d;����Zr��P�&������Gw���ܐk��.zc�
�ݐVx�s%9.
� �f��5��s&��ϻJb�ҕ�QYrD���.��ա?HN�(�!�kg�w���XϦ4 at M�A�#�O��� y.�
�
��Hc>'����PyN�
y�
u�Q�.ܓajt�s�r�1�d��������qb�i9��H>6����X/�����
�� ?���m������xa����G�آ�,\c`���(K���m�N�S�8�
jc
��`?F]��
z'��3,����0A)���m�;��
��!�wL�ڢ.=��%�6��[�qp��L�/�9�Q���?ES
&�Ob��&ya5s�%���p����u<��W�;�.�[T�=���(
�A�,��0��r�#p
��^Oq�s��
��y��<?��<C�`�4���sR
��:�s=~/ؠ������O B�������7*��
��G�"�8��X
f����pWp�M
�
�4NMO���q�o#1O��G�8+bk����1���7xh�@��rQ��5�� �k�kIn0��@�~�0����ǯS�PD�ۇҒo!A�-�r�����C�|�6�%��-��OѤ��IߣA���5����K��
�zM�&ɛ&i��k^AS\�78��
��h�Y9�πo��_�/�4�I�|������@�q�'W��g�W8�e��4�u�%��+��e�q�s���x�{�:CO��
'x��
�/�i�/��t��9v���_�M�>�*s�J%�Y�8��x��c)�����X G;^v�S<}�
��
�)���>J��{�Ӽ����r�C�g)�Y�i���
�QS{m�cbq=s�y
+-s���@
G�
#
G����aT�!T�Qd&P��9�4�^���4�n����v���.��
��G��pr{�k��N�%�XL�u�DcN��J
���/���A|�%ڍp,�)�j��9��Gh[�� ����b
�����5JՍ¯��F���?���^b�G��^��,l��
�n�{�:���_C���h���Up�~F�we�'
+�Dj=����:��w0ū��S��yL
ߋ��l/��2�o���v���0��Q G�����O+
�D���
��'�Jt�O�>͵s�o����k0
-G�1�C
Mʈ����� ��^t��9p��p�ၣ����'D����
OY�k����4��
��?B��'s?7�?�ҟ���C
�#���k��%=�g�����e#
9��N�]��Sk<!:��l�"*먖!>��wI
��%�5t[
&�$��9PF��?卭\]X��#_�
��
�Q
OQ����a8"t�Z*w�O���P�'��Kd����Z��f%��*����kh�x�&��
�x��d�+?�p�����+O=���T�RJ>�T��J.&�E�D!�������ܫ�@����p�FXϖ�F֣e����!z���TQ��h��
>�Q.�
+���*અ��
��� 7,�T��<����QV���&%p��~�s�,窫5��ը����8��m>|ip��� �v|N)�/'O�sZ����ŵ�U�Nr�7�%~B� {Ŕ����2�m����;���qb�ljs:�NH�J҆WI途�
+ʠ�:ֆ�Ѯl�
+�h�JK��Swh������
+i��M�*��vx�7~��Ol�����=ߒ���~ o�'�|>��M�:�N,�)����
:@+���E왑����L�S��>ٮ�d�jR|
+�T�R0�A��
+dt�,�O��a�X��k�����\���>����*ʾ&���
+���%�@�W�?���ރ,�3Y]"��g�����ScIUuf��2��,R ˭�,���J�Z��ˎʛ�)wn�\��r,WQ��춧e�
P~����
�ue�n)������)>/���3��� ��:$YTbWE~�����ϵ�$�@�<�<�>Mϯ���V[DŅ1��se+RA�2�9�*DZ]V�s�r��L�e8�W��cp_ۈ��z ����˚ҁ�hq�?�u ij
+P�M��kO�۞!�}���v�UX\&�#�g��\m�暣�郲�+ӳZ鞭J��S��������a���o��i31ϓF�_7�A�kԃjP��2��.7p�"W�l.��۔��
O����,�:e���Q2Ki%�R:�d�*ɿ 0 �P?������UzW��Jb<�H���X
Z����Z^+A9(�8yo���d�d�R����b��=J��+��ZI��W�,+�
+�zS'�
r�ADh7u ��:�m)�}{9?�#�j� ��g^�E|.`��)KVV Ci�
%)� T��+�'���!�
K�# �\�X�AK�p3T#N����w��+�|1?����[9f
� ʀ�y�(c�*��U��+���PR
����j��!@u���Z`,�,N
,a��0S8̍�vl8���PwO��t�~8:�h���cB �{�+/p�0(��ZXY��h��J���AA5�E���9J>�h�(�S�塙[0�Re2G��
TK�鞖�?<���O-��L'�E
��
+k���Y!��,Q�������h%�8�N���Q�/��G�%.FMĸ b�J1�vv�6��6�ֻZ
�||�
O
>��AP�g>�|Rl��tVǤ��@��A,f1D�p�$��X��
�!=�V=�|=��
�r���m݅r���ϴ�����I�2�k�Ց|.�gk3�o5x���K,q��r��q���)�� u1H,�� ?d��6
@�
0���wQO�X���h�n�Z ]#���Z���>���J��v����Kܸ�9ϼ�%'
�c!���Fc��Qc82��c;�eN,B)-B5�П
�S�7�oGc�� ���=�Ҏ
���:��đ�S'!6����,ǎ���89Y�0y� ?N,�;�U��|<���P+YZWP���n��H[�A%�>��Hcv����k��Q�o�)v
�1n�/C �Ŏ �cvl�O�P�[(���b3�4�����
?��:qU��x&����p;����!��%&�����5%x�o�)¶���D;
�s����^r������gH�nT��-�W ��η#ϭ��� �.����1��U��O�\�L�m��]J,{�X
+�KS�����C��e��e�0��6I=�S���(�Ib��iu0N#����{�;n�OBX�rհhhJh�V,Ub��Sb!1)e>�
�XH5�
�
=s;�1����o��S8y���F�c�G4s
uH�K1���V�>o1}������u|G����u\�E�u@�u
\ \ ��
ט�?�_�����
+�
uq�ޝT#y1�Zgrs��$�z����&�Ip�o�F���J��
+��%�kQ7���q�9���w�m
�-��Er?�ǖ�)���|�����o�F
� ����x�q�&�
��
�+���?�`J�Q�W��)�K�;�"Iz
���3����ngˈ��%`��k�W�;�#��������~��v�5��#t�u�����.v\w�z.�8h��ة��8g��
��u
+���C�@���s��CB��T�Ii��)߸��ܷ7���g^&��#�f���v��z?��?ð>�
'�c^cX
gz���6����=�xE�(���줄��a,9AI]�����4N������
+�=�@]�O��N�������#�7a|h&~�Dx6���[l`�
���7��7h����~�j���g��.,���;�����p?��O����>a���b���AY�u!g���
Ts~������h�9d���w�4���h��X���A{���K��SXv�(�'c�q���w��~�
/Ϛ-�Ki���s����_��
���V�� �]p̅c>
Cp�q�
+F�"���<�X���1�u
o�/@\K�Ys�L���h˧̑��X�g�}����O���bt����L8b��.�Ďر��e)u���c�0��#di�NX at CQuCt����#`�97*q
�ʸ
S*g[9ۆN�#@G�ਃc
-tG;���\�
�RG��
��P���O�QEs�G/��������Ę7���&7��ĵ��X���+�
�� p�V�S�
xZ��<���S�CT�b��j6���� �1*�����e
�t}��O�6i�I��h��I�&mB�^���6�R(��r�r
9�9��ˉ(
d��s8E��c�TƆ��M�s
��]�o����<��|�ߓ�������~ޟ��i�˴P���nɌ���SjD+�@
OK��b�T
�;07~,N8�TQ%u`5��
+�XΟD���d�J${6�[�֝��RK}��j�7i1P�ϓ̨V�tSp2rMɧ1�gu�F���
?>��*##�`%��z���
gwQASy:�.�JP��t�8����ZA<*�N*��hTc�-�8"���X��q�d�H��O86p��`���(X ���i�U+8��?Eb���2*�����
;LG���fz4j9�
�D�K�)#��M�^�<�U����l���
<XE`E���U V
���'��
S3��E|k-7�F6�#��`����7�u�$�
pz�
�$lC�7c#�և*�%�S�Q/�z��t��`��[XA�J��8������B���0]�ƅ�6��|�Vq�n�<�aq����C�Q�g��
f;�x��)V�
�uϢH�>�d$l6K��*E�< =Rh�K�)$>SL��*�d5�;�M\� �g�.v�"���m�Xl�$�vX̶�b�yNL���7$.|�r~x);�gM��*�r�
�y�;lz)�1J�%K���-Nɷ��e
��Z&��J�
�(6{J��.�v�J�s��\����,z�
ѹ"ND��=+�\:����;���h`EH"��X�}�煘/O'n�Q\v���fKnn��
n�����lW\��k��n�g��=��R�>�|ta��Gg�>�x��s�f��d���jF��y��"X�g~��}��zq��bw�$'?K,n�d�]b���[,_LtI4��B���^@��nDw��8�sv�B�u�Y
3r��S�5"ǫ��q�
a��07��<zqx
b�%�gS�U�~��� {Mz-�~dq)��C��
7�R���!&dX
���z�x<G��
\��X]#�-�
+YݼX�O'yذ�X�1�E$�B8VA�ˑ0��[��VJw)cA+c��2}�h�
S��[�
J.�<r��;�h�WE|
2��x��x'syoA"�Bz�E(�R��R81
)lj�b
+�
/N<�h�8�C�Ο`�I0�(��A��b�@���l��
��n��dq���q�<�⦩DD��"�4�8�c8\T�Lg�
�$
�ģZ-��D
�U
yYCV3��QII��� }H���x~6���88�Y
�(D
07�
�Rzb���4I�P͓����z[��p��5�&v�&��&r��I�����b��B4�T�
�;��H0��~V��x_�yy��9
iN�_%�isa���F}�����V�")Mq��H1mR,�)r���lc:��XF��:-�rA&�c8#����V��b�(�5�.�
1�z��c�e`3X�G1�$���� �;����t�"
],��`,��X�ҧ:P��/K'xͬ��`%�hE&��܍϶�G\�ۚ
䙡ީ�lZ`�L�
S��T��}8���q�i|i�h*9�C^N�>'�+'=/)��m_�XT�6�
J+�����8"&�9Y�J��j�c���=�
(��$�| p`�
�#
��~T�\���g��k�aUX��E�. ہ��6������fhbc�&|(;�kF�-!O�s����b���Z��pd�h�x,'
�v���"מ��z�%�u�~��y�����0�5<% [...]
���툸��������2s���L
w�&25,5��kXJm¶HF����f
7e/|�w
���'��ȋ=8�ն�����y�4�N�������j>h�j�]�am��"B�ee�,Ej9ًQ��%�����+r�{<H��O�9F��t/�ݍ�?�H-�ۅ\/g���|^���p�k��ְH'Oae�,hwixG��0RMr;��!.�2�؟��f��"/N�;%A~���u*�Vj؛5^wk�/��"�4,��2��8�����(��؋�y�5z���W)�!����
+j�%�ٽ��`4��-֜a�W9�.��[P��C�ҲXyE|xeU���nDCcSs˨�m�1�
c;�wM�4y�5S��N�1s�����,���k�.[>�r��5\���>|��M7lm��7�y筻v��{۾�>���w|�S����=��=r�c�?��C����_<~���O~��WN?�䙧�~������7�������}�{�/\
��_}�Go��?��/~��_��w����������|�����}�������Y�e>ە��x�Sn)�#8
U�'����^����o������ `�b�GQ�� �
��a��a�"b-L�WTl��-���(6n���*>>��
F�T�ܭ8�
�|V��9hyD��"��0�UE�3���C�
���=�������`�NJ�7G���?(���h��[o�X�N�1K�˓�
+�3|�����ew'����(�/�]��K��N�7�i���-Аc�
����v��t������
'�+��4/b.K�4/�2�[��4kN���E��,[�jͺ��oڼ��
�f��bۺ� �$$$� ��IH<���vc<p٠cBB�!�@��i���m�4�-kӵk!I��NZ;��}�c�o�����>vl�v�~�u�����jU�
� ��������X����?�FƮ��0OZ��s��Z�L�3���� wFܞ��s�Ia��vm
��܂�o߹sf����||�����������>�Ow���/���h�<�*���`�:9_
��ݘ-M�g4��(9�*�M�,��h�)��1�'R
�%�N�����k�����k��
�có
��=
��'�g�7k�7j%��������0H`� ����h�Hr�\N�[�� �����=�徾�ʹ�Fm�f�dq`�� �A�@ �
+S,��|���|�m��
��ߜ�
���̉���{W�`�����P
0p``
!�&#�G�H����?4,�a
�J�F�d�6h�)Y�:0�`�Y��9���?�0�#��t>�t��*
��4���4����gώVkC�4Ն�`�yO�͠YvAB�
�d��M�UdI?�̗�|�Q��U��s�V?=Z�Q��T����8��R$��L ����,�d�JP��!���"s3����^�=�_m�+׆'���%��#�c�M�/�a�L� �bt��
�|���� �ſ ��ߞ����Z?|��8sͨ^��� ���
aJtE �E
Ix'16���P6DLjN[�~�����
<�73�#��Y�^
�*���kV���d`Ip�8_��T�
�L4�i��ϐy�m�6{�[3�ÿ5�G.��je�*��Ѧ�ye:��]$��Q\��1
M8,��"�N[R�4�o!���o������\V��'��5k�]�>�˨V4�Lc�
+I.<(z"~��
+��[�㝶�����C������A�?6(�/��*�mT�3[�x���� L�Qʼn�dO�#��.)�;�p��gv��}�8w�j���ž��ś��ɚ-O���-�n���i�Gs�.Ս:T_`Z
mJ��ʳ/"Fs�����IK��2�gO�.��j��De�.߰�%��kL�\ƴ�Qtx��n�U�z�t�gѱ�ӛ?E����$/
�Ů����|�`v�rt��Xs�䯍[��<e��lk��,����i�]7���Ӕ��e���k�|���{={������w.�rl\�Z�b^
�X�1͛Ǯ�M]�֜6�5��
��H��q�dv#�d�"[��o�'_�%����
.s�L-v�2GZ�Y�k6��U��L
�"X�G�E,�ԃ�����õ]��5t
]C��d���<6
-�3�����q�ŢE<�C���e� ��<�c`�"�`�T�^��1\Ø�Ł�C���
h%� �R�H1�����"���B���>6�n����;�c
��7�'
��NY=U�(
���czKiI<���%(��<���� ����#0���0�,��Z<0�Vo���(O�H� ��2J'�t� $�,�
+� K�ۃ�
�6�� ��Gabr���g9���:0���tM)T���(%I��b6V��a�h���]�
+T0(g�\.
/�
M�����2�~�0���]��"���
�NQL<����I�:6
FL-i|�)�A���p�QyoBd�,W��
�S$���$��#M�d�=2�+Ǿ
+��v
���
ʄ���
5���%gX�]�$�"�/�H��s4�n/ ������3ۆ�骩��,M�l/i6�,9q��$h��
̥���$Ne�Ő�c���6<���xq۰&�?�"�ZƘy�4i��%���q��&s�H�>�
��i��
+�|�@����
�-0��=O��aM�|ahE�>W�z�\�8eՆr�#L��h�e
+
qΟ���t� gL<�g�m�Q�y䖰cxjU?�{U;�oU\ԯ��j�fͰ�x0d;|�N<���Ex_"ġ� ���l$�a�mw��!��U���b�e����`�:0Z��LI���hS~B����ݑ���/�
>�p�����!���hG��d�>�T<��V��+�F�I���X���듾�fEc�tW�&;C���$�P�%b����]����Kp��&8u�p�aBI(3��p���pdZ_�R290�i'��Ǝ�6���?%[�}hڕv��V��jW���"Y~ۊ���mڦ���t�(8���f��;|�k�`9�tl�x�
��3��e�֤P�X�E
��PwΈ3�ڳ i������"fG҄V(T�C���9��>,.�+_}mz��Ye��?Y����Zs�4 �U�΄ʛ0"g��
LX��
�b$�!(K����~����`�SՋ��.\=����Tt����)OX�A�^0YтE��
̡�9G�
I��a�)'���߁J�����_��������[�Z�gvX�Li�Ty҂��d����b. VS�
+8�/��.o��L�E`���8��S+M���w�)��}���}�Z��B�����ˬFc��M�F��j6LN�Ɖ
+b�VP��L��ˤ���ř������6���|������瑇47�:&
�?�:�5�2�3\��
Z���Y6
.Y����E�N�"1t���'���Y �~�{���W]�6�N>iy�k���ˎsc�����ݗ��7��
��l�����D{����k�t���yk
�yk
;t{�)��x��plWl{���yz7�we-��S
h5K^�n�c2ͱ8K��4eê61��d��ek�q��%HRO7�(�L�=7<7<7<7�?
s�)��L��1� _����S�C��q7�wu-����ڥ�N��S
�a�h�&���N�I�Q"8����E4��!�[�`I;����7�slg� v6ըf�Q
!�~>`4��,���X�,3���p:�$�*�B�<��d$��!�
����
���ݤjH��lW��zU��H-�������2� ULT8�*�(��d\y�娐/K
+�1D�a�Uo{�g��G�6��+���Z\5�'��Q�e&l�Na[ُ9�^�ͻ.���3t($Q|8�
�*q�쪷=���������6��Fk �v�W
=83�S�,�0� �9��x<!�
G��D,l�>L⼨쮷}�g�aG�ʐ�Ѹ�Լ
��A��zp�7c�d/�06!�� T����
�Q&
�SB�c�87.��m�}f�t`�yj���%5�ŔjU�`���($1w6A���3"�9>
KAw<���K��NR�����}CG�vR5$�GjfQV
���T����Qx*(Ƙ���p@��b �+f蔏�K\�
B
��x����ӯ
���=qT��h�s
X��ӊ�s"O�8
�F�x ��p,���+��L���=�I������Ѹ��Q
������̸~�0 �sf<��LJ���ф=P
\�
c��8
�#'�Iw�[o�
[_��Zք��{���R~D7]�[�93!�>�z��
$� �p��8����=�
�b��|��o�4�RMG6�S�R{��a˚��нL��\ep���7��k
+�,b��1'^6I�i� R<"�h��~,���ۿ�?90l��
���ӛbU�kp��=T���2�'��xte��U
��E����H�|h2�
+�I������%�H�!]}aCn}eS�~���AS-�^ou��pv�QR
���e̔7
9\
+��2�R�"R�M9=��y 1�SB�=�~
|
m ��+/�+�/o���L��3��۹��q�2l�:$�7`ޜ���X(:
�I�J�
+Π2�Dd��\�E�f)Rw_xO c
��ʷ�[O>H_��|�ݷrs-]��[|e�
)MB����捘C�M2
��
BZ3(�� ;��
�4�0)
ڨ���3����Dp_i��j���B��s�gSK���=�HEk�ݝ ْv
V[��by
f��8��`#�Y�͔��
Y'�Ϻ�������j��7�宝(�4�./��K��w3��;쫎�ي�l/O��zh�#E3@�� [�+j��!o�ty�]w������P�^��L������%���
+�w�pk��
�}���QtvL
Oku���`�2���P��2lѕ��d 'J6H[��z�H|XQ� ,�م
?��7�6���������t����
H� �!�v�b�
ހ��M�-�vaŶ!m�Ms�9�ˎ��9���
�=����
�G��v��N�4�}�
�.羛�}�}�裟��3��?Y�{>3��4 }
�ǃ=ҵ�Ƀ�a�}���hL�
N�e�SK���E�?�
�˨`����ڽ��R�@�|�T���y�5���k����C���+��WE�ejs�ubc�cl}�s� �k䱨{���g葬��CE��C�`M30��
�Z6�0��>@W>=�۬;C
��{Qσ���2��f�kǟw^
9��������w���&�{w�{vD
��`c������si��D9��}���x6��,G��g.}_���G s�
>S��Q�鷃L��{��������ȅ[��Ŏ��O�_/���\n{.��z�����K�1�9>
0�������'���?�6�N�]
Y�6�Ɂ
+)< d���
+\�#�%�*."���6�K*RR�4E�_S�EТ4����iq��k�k�k���%����iP��K�
)�\.1������ޫ�O|
�cWW��}��}�N�&����>� �q�|Q��ʨA]B�HQmETn݂2����ج,���
F�y
��
��X����5�yG����HӺsj��
+Vm�
+)�.�b�@%=�QB;�X�sj�aN�g�IcF�6Ҳ�!�>�\b4��xx�����X���f�������58���L�D��e���
�כ�sZ+>�xL3p��C)s\�"��ό_�ø������_w�(��;����yF�ֽ�ኗ5�E��T�hS�J$�,:�
n4��S���c�k�TJX#��ůH݊,�%F��+É�B�a�5Y���v����ኟ5�D�e(_t*��M��'��,��
+8e��=���vDa�
���[�69�Y�K
�̬�}��5
�y�a'p�i=05\ ���P���e�\]tA�9;��P�9G��
�q�uQwPC;<p�r at i�U�5p��
���;
�o�vp�q=89T M
V����D^���/��uk�y���R�3e�z#X���ƜM���i¢���o��
���+�k�����(;��XQ����J?��9���vZ<q�7�7��N,�jV�&EH��%F��XX��B�~���A�����
+
7��Ɔ�"��U�5�E�-E�cJ��X2!�3�'�7Vc�e��V�.e��
Υ�>��՟���vC}5[�O#�w�b�S� �h9-��� 2��YZC�a�
�
�#bs�f2�6��6�!i�t#���#ְ�~n?�½՛�������5zt�AzB�\���28�V�4��B��2zm*h�FG�c i�ޔ$u���K�
$8����{�6�N��gс�'�`�Zrh�~~TP�ヹ�
��Tx8��ި�nc.s��Ńn�xtڡ%J�.1��2
z?>��qv/��ێv}�A��=J���f����s|y��7#�
| ��������ɩ���pإ��vđ�`*e��g
k�]<�i8�����?�'��V�t�*��
*�����ie4'E��LAF2������p��p�cWG�6ȗ� ��r���+8�_<�
m<�k�=K����L��ٛ��r�X�xGc��@
Ը�r
�~���ڈ%P�c8n&!�N)���&-
+��c��5��|j+�|f�n{�I��7�3
�3�����������\ legAd:,
ahJ��)�JM�$E�nB��`,m��xa�{�O��I7���h��\��gK��V�[#+]��q�{V��Έ!� "XN�j�*-���PF�)��,M��
��}�8�0p�1~
8q�
�.��Mo=J��`~��'镖�h�V���]���rbV��f@-�`8�D��Z��iPYN��fq�$kщ��0�c�p�z؊\�&��\�i<�]n����j���]�����1cyrZ�0
�sb|O�R�( ER�
+
PX��#���I� ����5�����T27��_�;O�5�,��f��i�5rc�
{4؋<
�V���K�I�P )�Ӣ�L$,*��E�����S
:pr���iL��
���j��
I���TiʤIӪ�m�&-R�Mٚ�kӕ���4dIڜK�\
�͍������������c��/���
4@!�B���j�+�n/�����G�����o���F���
-v�f��������<��?w������i��
��݆J�
����z]��͆�S��In3#'�_�!-mY��5���L���
5�����e�EPh���<��u.���?��|��S
T
�V�b.ӊۗ�Ϸ-�/��o�ܼp��4ϼ�x�S�p�WQWXY7�V����5�ĵ�sm�&CPh��s���Œ�t�%oH���apq\.��?kU��A��Ƶ����-'kW�k
�<C}�:{m�[\�,(�~��V.��U,6R��
�tk��u��w�O���/%��`��
pag3��^=���P?����ՠ��J�v��,̢+�s���*���@|䫧����
ȱ��_y
���/��'�����w�#�Z���@�4pqG��N��yԾ[wZ�_
\ ����s �G)T���B@��>��G����m�.�����������
+v��ܞ�J�Y\Λ�4�q�
Zጠ��
ׇ�qB�;���Ch��B��[÷��;�g?7��
�`xn�
4Ԣ'���F圊�4��o����� �Z0��
lAH:����x}�7,Js�8{�g��P�}cP�0�lzҠ'
���E=�jVˤO��̜Bĝ����J��1Ԃ��Q�G<���#�>�M�aNR�����8iА�[��4�� i0��z��l�� XY5ʝPH�
�u�(f� N<-쑤!�?.�%�~���
����
��4��nFʞ�jъ�4X�3ff뤑����
+f�rtT���͒4�݆�İp@
���~��.^R�o@�uݠ%
�/�
i0S��٨E��ͥ�v�`#
.+k�y�Z�pL)�F5���d�"�<��*pDD�>AL��O�\�$��3 $
�g��u��4X)�W
�����E'i�d�M�9��E�7`�F*J+U�a�Q��]��ȯ #am/
Qw
c
+�0.s��=Ͼ1�H�噡x;�Qv�8i�I���z�E���������AF
���FI�FUR��%$!Cگ� U:�8a�a2��p��m�₧ʮ�n������۫f�H�-����2���a�\���q����
q����Z;UZ�8aD%dx>�4�H��4X�
kNʻ�]��
�����Y�͖I���f�2�h�����*a�#��G�9\���.�̢�ʈ� =:(����� {I��o=5���i:3�m���2�S�f��4xyhڃH��RMԮ����.���i#��4��K"j-
�kD ��$$��� ~�n�
nX�E��o�?|������g{ۚ��7sA&7��F�A�,����^�;`���U��S�4ĀZ%�)�xB�o �ɺ����(-x�]����䜿��N�^?
ji�F��d�`0������{���`����6�&dT*�
+yT)��e��C@��`'
���=W�r����=P���pu"�ؒN�0b�L~0K=�b�����{
.���V��6�2�ta�L
QIq"� ��u��z�8�e�yn�_�;�~j�l����@]�x��<5RW
m�
����P���ƀԨ���d>�C��I�!n�p}D��c�|�!�xf��9NnYu_x�~o�[s��a��㉚C#�K�Lm�?���&9�+&��P�&$��I�Y0�ߌu���#��,5��*0},� ��`�=�<��Q�����U��N��]�k��F�
�dh�D
�s���NrQk�/�E�"��$�J-4��`�A��
=a-�Q��L�O@�
+����Zu�ڼ�-��\���\���T�rw$S}̟�]��Z\�v�m��<�����X.�+�N-�5��O�
FԼ����*�
�@�/�#g�>h�}z�B_�/��+~�N]-�f*�rէz�k+\9:�6z�iH���$#B\
IѨ�D�r^Ĥ�D\
+vį`�br���'���~�=�uX
���IB�I�t2�&��t��Mk]'��6���x75^��u�bc�lv$� Z��ru�� $d�Y�n
$�#6�ـ `N��~I_�? �����9s@�,y��!��d�.����ԗ��R^�
N��>��ˮ��t�T�6���1�G��p��_���i5�>�N�k�a��zao�^�ۮt������{���C
U� +��AS]I?��Kx�c"�ݦ�I�=Z�s��l�c�0�Y,�8�H9"CbL�%$"�
+Gu2������<w��㾥,rw)�������
{����|k��;zG�ص��3)���3C�˴p�*-ް�����˖M�%~.
�@
��"��厪xE#z{�,,
���CN�5Ԁ��j��9�{�����D�e�{��3-��^��z���z�t�z^���X˾*�OK.����T�=^{�)����g:sZ�ț��1��L��ƢMV��&��[� ��o"��ǐ^��?&�n!�դ��ͤ�ZH! �
�65���
�^�G��☫E ��u�4�v_���,K���L�^Ҧe-��3�2�6`E�Uׯ�^�kH��i�n!*�|-zg1D�UC�qHB�E�z���
��\`�;���f�f=�Q #([������MEdچ�r�W�+��sAzZ��4���Z�����|Q����=\�:�W�!��
H;��S!�
`
O�g��>�ܐ$�J��뀟�ʳ ��<
�Y� ��� ���#���������
�܋l��+"�ȁ��T�ߟ��Bơd�>���_� P��U�
�Ap,`Gc �k4(��cW [...]
���
{�'�G�s/d
����W� �����xH�M
P��@ξ(`�u��GBсK���E@F��pP�!
1����7����� P��E�P��*�(��v�:�%�H�e�.g+ạe�9��`�_˞�5rf�m�ino���q��^���7��
�o
��n� B� #
jҠ!
���Mm�i�0¶T�qk
+a�}B���k��3kNdc�`�ia-oJ�(��ۄ~^/:��b>��/�:
8�%
iА-iВCR0I��
��+�_U�ӗ�����9'3�H��)q���ՠ�h�hB�.�ܕ
=�~�O�%
��>N�M���9iО
i0D 3i(��snĦ�4�K �R�?#7r�d��I�C4!������q��nԋw�>�
�I�Q��
���g��@@At�A�*����%1JI�%7b�$?a�ĥ,�E�9��pZ����lB搌Kj�1Q�l
�Cx�A�ꕵ�5��z�H�#
�'=i0�������(��-|��JX)�PM(cVO��4Z���D<N����bT�"�+��AE摷`
���\�OH���c��4���4�Ƽ
��#ࠜ�v��7��[e�"`̚�"�^�Nh̒1�]6*�Q�HZU�⻪Nр�E4�ly�.����� >i����4�bނ���-'-t����`S�����3iRb�:�tTU&�ת���
I��ح��jŃ�*�����@���H���
���nUQOlT��g���Z��X,��g�(g�B`�&
>��*}�Z���1�I{
�~]�ԭ��*�%
�ċ~���4�I��4��G�ޭ��������+���Z[��T�͝u
+��v 6fQˆ��G�2u˻-
D��F֧w��>���
�
�����4b'T\ݳQ����[��W����7�G-7���nqn̹��*T8��-f]����E�YV��SR!�3��w56b at UJx��WH �!����D̟??ۮ���+��JC�'�My�\lfE.4^�k�P�M���!�]�K��:}��a�5�;
�n�M�k,U�kK��bŠ�,���k�b�Pv��7��)�-7�>^la��w�6ۖ;��N��d
tp
;��z�Z_i��얖r���Z��1���:��M>��
+��C�ϓ��4h�n^zy������w[h��Z�!3
y�'�Y�F݅�
/3���]�؊I*�z���fvԗ��6}q�Yo����n�N�_��4��3��c�uY�ήUۭ[W�֝�]��3��n��vv
�u]�֣*�� �����/BB!�ʡ�X at P�
W4r���>3���w�E_����g��<�o~
�̮t���y�'�
W�����fʈ��ӷ=�a~1�}`�������#:��+$���<R��Wm��kֻ?Z��oX��Z�V���aʹw��h�ᙉ
vl�; �.�=Y���Y5}��CƧM�=��9{�{E��%��n)��O�/�Vj���,��l��������k��G�����V�9�=3#�###��o��5��ؐ�o�뒈��U���Z�&w#�/���[{�_5��OT{������b�T��Rjl
�tSsV���ةmhr�V4�J�
iE�Y�m������@�
��7��̖F.�=HZ=T����N���blk�g��p�Tx�q%�b�u�X��R�3�
i�6�E�\`W5��R=l���k�ҕ�����l���|�ԥx^a��C�L�G�9RK^��D~��IR`C��j�P��z�)��?*�;<B��W�0>��t�V��=�,o+��Z-���VUU{���L]q�u>��Wx^aC6�\<^y)`�>aiG7aYcec���랗|�'�`�Kp>�ѬC�i@!N�MU�����n�^�U�&�0��Z���n��A�IQ�+���>��{���o��\^�j�]𨇸��C�螗����<R8�
wN��2}
J����qUn�H�o�Jz�
+QO�J�*V�\U��]#h��k]���%�^n��q��{
y�#P�n�;�^��R���Ijp�Kڹ��h�����(�Q M�U3�C�`���y
�;_�
�#f
<�0��$�~�|����N�Gpc7z^y�w
Fu�ѿ������/)�p���9G:d�wis�p�
#J6ɽ,
�$�OG�<3%�Fm4�HnJ�H��-eR�լ�a��oSo��^�ށz��������K����
+��lɁ�� �3@�j��H�~V8���
+/�gdQ�iuLʔ>���
G}a'$M�)��䱻 ���D�X�߆2�k���JT3�!*���]ȟ�\��Mf�ڞ
+��+��W��� �0�G�;A�I*�O'��
�G����͡ s�����p«��Wf�.^�-�[w6B������
�fT4�5�{u�v8���5��"��!��, �J�n*�����$��K сx�C ��+�?t��
�× 78��D�M��^E��l�ټ ]�ۄ��K����2����5,{��(����yh�〹#��\�� �[(?������~�/�S�-��krL,A��`R`��/fá�48�|�����AĚX�
��( �?^ Ɵ�gS>
+�ρj�YH�r҃NC�ǧ�᷒
+�r�J�%H�֣Bɰ�`�B"�cI,
[�a��C�0���
Ŀs����S�|�$�ք��'@��h��i}0dm���߀�w^�:�
_/e�rP��ͥ �$�5}(x� U�IZ�ls«1��E�_�J 3���iN]�����K
g
RF�ÔA����
�tsG����jH��a�
��5�V �`��ؠ�m�:���>a�����{��3 ן-�F�J�q3�ⴠ$q��<ɫM��'�q��O�
� w����u�f��_��.6H�A�
ꐷ@�
F���H= z�1Ј��6��
�R� NKn�&ŷ�&��qA-}�ߑ��
0��nf�`��-
b6
�Y�B�߀�^ )6��A�
Fl0cCa����u
��s?jU��jSܴ2+aR~=iBZL��<�1}�N�����/ts
�<�� �^<ĭ��6h�A�
�@�Fo6dR@�8������藺4�F�P�Q��ϥ�l����T������O���[P/�����*��_���O-6�y�`�=f
dwB6�R�����$��1��O�,I��ܔ�ʛ�g�2ި��+v�z%}�6ـ�^�T�*�nI��-��#�E �
6C~
�������I��1�sB�,��:��L
��0��
y��2�W� qK]�Ny��A��/��<��;���O-V�(���nG�U�u�cu�;�j붵ޭ�Q�
+*�r&�r ���<� �+�
+�T� �!�EA��>�����������g~���m'j&j�r���
w���#
b "
�+@I�'���z��PJ;=�c�i2�����=Wʨ�R
sBd�4p
�zy�����
\
Q=�M� �F8�s��
��'
���@��z�>�
���"��7ک�2���bv�s-'��N(ԩ������7���8�v�CԄ9�:�)2aN�s �D.�� }�O!�%a��|ߕP�>�m}S�k��rp֘rr��u~ʐ
:Q�
�X�Q�U�.E1�*6 �n�;1��Id��Evq�ȁEN�w
�K�.`��P��A�*r�\M��Sҁi��T-�w�:=h�2+jP/�شr��<MN��R�.n�Yp�܄�dF�]R!v��ST&vbz�Kஷ�,� $
2 �����6��$�}�>y���i�G��73�Z����qjG��kQ��u�F�Iگ��Z��R�T/��K�Q�ԉK]BwA���
r�P�
*�2]�0]O�t�)eϓ��=na�l�<gkJ
��&���F��k*�I�rM�r�ݼR�e��&����"�/�;�2��]o
��D�A�
��WϘ�?|�D�he�
mg�{x+�{G'�t_#��>3��(`Ֆɸ�"���Ш�QЭ֪�U�\�\��K4*�X�t�4
+'�.�\���0(�.����T��q�!�{�%������.Ʈ�^�W���?wu�[���&3�e��pu�|Ia�A���P�i�s�
+(��6�Zm���9��\��]o
��r�.�ߒ��P�g�������G�h[\w�����}w�I?��$�;��*-
F��sqe�^)5������
+��Rk��
+m���8W���Y��N�0��,�r�wg�a��� zԙ���G��oK���~�l�O�l�Ê)��J)lf)�~�D.0YT��~����BZb�ˊlR��.Q:pwA�r��Ml$a(8� *�<��u�V
�!y��(+{�)u��4я�����~f��7������
+>�E'�47�8M6��&Vؤ"�]".v�N�����AB4�Ѽ�oє%�c�+�]���^gҪ�A�G�é�hx�v�8�:�`F��3Ȓ~
�W��ի��4b鷝X�Łsn:p��!�;1a�K�.�,#��AJ��W���D[�Wo�G{t
Rִ���4�2��L�
1.<b�ˆ���!
-{@���*�d��9t�3'�� 7�e��Q?�Ϯ��T�
���>�
���;��g4���YP�@�Ҷ�w��o�O_�=����J����� ��FgO�$��Ih��f�HuZ�p��
d3�
f�n
g�Y
f����Rb��@�
��k��rY�
Fݮ`�6
��q���4I�Q>M9��M�Q9�t^4C
�`E��sbXO��5%y\��4�8z�N�'?xDO���Ioe�
K�7��������/�P����q~��Ʊ�?�>%m*�S�&�$
�lP/f̱Y3�a�ص�ߔ�)�nĒ���-��I+)a�9�9NJ�u"�]�-&��Z�[Ѥe=q��2r
5��x�LE�.��ڤ��ڡ��_� �P$�dC�0�R�3������A������Ұؗ��1/�#���ע��#�F&��E�F�A3FO���G}�i���-`q��Յ�Q��1��́��� �[P�Ѐ~" اȐs&
DgcA�
�_���B����|{@�kۥ��O.��
�1�Bt˼ ���������f!�����pa�
.y
ps�ngA�ND�I�>2$������:�E~8TG�A{<
'B�|2:~
+�)w
��2 T ��_���)��"
�,��j6�{���
+�nI��m��=?�����+
2w��`���/��f�%(������q�]=7��C���|�D؈����7(�z0��2*��J�
�����H��
+��A��` o
����8 ҷ\��
��d��@��9(��,�nwW�!CB�{�`ʄu�[�p���
�F� �p8�$��B��%Z����|�F5u�q
�.(SGku:�.
g�,���3z:�eڙZK�]Ԫ�� *(�}�Yn���a a7��EYD�(օ�E�����<՞9��"�˾�����>�����!eeП?�_�|�> ^@���H_
�kvAầU݄a�.
K��006������)�#v
6b$x�Fg ;�C��08�� D�Ң��8��!������Z�
��
����z�'`|v+�/Z���f*ڛԍ��`�
ё�@Į"�U3��p4[�g��������~?0.
z�a��F m�PG"g�QӴɨQ�t��9�b=���~���?��� E�O
;�!ؕ{�Yw��O
S�
S�?�����
T�7���EAH H#V����@N{
$�� R|
+x�N���v 85a����H`~
���s��c3�q�s��cM���i�]�4�6w:�_ at C���
d�!�Ƞ�YdP���C ���X��y�@P<��6E��1`���Θ3G�O�Fc���.�D�=��^�u��I
���D>2{A�
:dHOx
t�w@� �xi{@l>TG���9�Y���
{��g4�������L�_Cu�~{l` k�� G���` �2�������@#�
+U(H��@R "; ������'gy=q��q������G)��X�5�XR�p<�]4�7` m^62�Ƞڳ
��A�%0��kJy2XA��w�F���p�Y���������#�R�CAO�4���`0�N���t�FS.�GS��c�-��s:d� �4��!��u��g�My
�� ����^O�{��E̪rH�'fG´�%iRx=e
wS]�A�
��[2L0Z�QF31Fo��ﱁ�
\d#�.xd�?
��P�2$� ��G�������
�#�iY�quaܨ�LҰ�!uH�E����}��d�K��-�av#�|�U����
�7y�@ �!8 r×������%�o�16�X��&�D{GM�#�FC�O���֜Nq*���e
�>�=�72/�]��]���+�u�!�W�!�Y�0�_�~�
����^��PL~����t�r���K9��!�|Y�+[s?�L�NWB�U;�7�����;x�7+��s*��F��Ϫ}x�z�F=���cȠ@���
�����_�����'�
Wp�x����a}-�';��m�ҿ�ٹ�Fa�ꚸY��i���#��z�v�WT���6�O�/� m=
TA荿{
~l1+g�^�:��ʈ��w�Y��U�m��$n��]y��K�\F���ߘ^+�O��j���4�̮sI+tn��#.�yEe:�/�.b"��C
rv͇�Á`�Y����f�6��z�g=�ݾ�'7���.��۬����lf��w��*}�®���靊r�SV�wIK�nI��#.�{��zl��h [...]
+r�%y�2k�y��|S�o�W�g(�MNy~�K��鑠D�zb@{S�
�0(��ʰjcG�(K�m��w/������ٚ����Z_+:V]���l���3n),��
jU&�U�)�_��;�4�8�9f�4'�-�1y���Rt�A�
�M�@�����s��������%��O��r�䆶�䠆V������%W���+���Rc�C�^ҩ�����E��)��sI�r<��#��A�
2d��A�6����x�����}�q����؋
�O��|%isM;#��,m �,u�ɑ�3TH��*���]��PjK���"�Lou�Gl������Ȱ)2���A�g�ïB��
h{���G:�N��x;�����W]��,����Od7��
F���"��� ��MFԸd�3.�괛Дz$iE^����
pd!��/h�cl�~'��ݺ���]�֟��{)/;�$�g�n+��>h�����%=]ޚ��T�x�/ϰ(�,
�D6��ظk�$kvW
&���
�RD���0Lcf���0C��� np�lA�`"�������)<�^�O~�����<��}�}�y.�d�4gg�i��;ْ���yVaykfQY����za��c�A':��^T�ӣ[.T�(��>Y�4+��>���o���X�ŕ�ڀ]��"��)���]�}��p�B��qE��o�g\n�0^h3dU�r�k�ȫh�[9cY/0�ҏX?.��Ӌ�ɵ���]yB5�R�s��O��g
oU��p�f��f-��)+��qALn�v��a�X�P!�4\V�5)4��Pj�u������N���2�
�f�T֏��?����t�
]nr��
�mٝ�M>�%��H��iO�rei�Ƨ�!0�=?��^�mۗ�j+ONk�!E��@$�)T>��nuK5u [...]
��H'{VSE�u�9v¡��i{ ���E�Hur���Z�x)��WƖ ��DP2j��x�4�
*��
?�6
�Z�6�L���]����o���Pٰ;
��Q�>�K�N*A�fgC�H���KӐ钊�nb��
�wM�q�Q�
�:�X4�Ƣk]�����?d�Z��G�j*������F[:�9�V�np�w`Ә"���!f��OG�����P͓@�H��&�pq�/��WK�P�y�,
ǵ���m]�<
�Y��
�KD�/�� V�/��h>�-�<���D�X-xo)�
��%:!����?���l�h~��ðoN0���r~ �.�Åh]d��Lj��}SG����)��H����jR�w���Sj�GԸ$L��`b4$��P�̓���� y��u�?vM]������֢�=oܘn�������cߠ�>Q&�X�I$�
`.%b �����I��֡
�(� ���?����!{c
Tv>Џa�p�'��y���88a%�ߴD���?�B��J읉�
��N�p�O��7� �g��.�
w���<��<�O��D��#7D�+h9R�2�ϡ�Z
+��36[/A�(K �
B�zql^ı���kE�
4����B�� e�ǐ��=N�|�D�\�r����H~����w�AҐ'�� �A!8�"p�$�l���<^��O
���A��a��'] ���A��������pZ��CsHd��!�9H��:��{�S�A���a
T��B�.g��@z��� ��ѯ�>� ��
�Ao���
��O
�.)ֶ���,�o��g�7�9$0�D� �n�
��!S� ��z�|�o^
��ϐv`��WAV��e$��!n��BӺ�0�$�v���&�Y���i����
�,o&�cO�\kC�
��푓�l�#��
���m�2h��AY��)��BV��G\H�o����,5��Ȇ��#~����X��*�j�C2s�3�d��B��7�e��|�K?@�z!2���P�
���H?ʁ����H�� �=�a��@��gc�lpc�bh�3�pP�jx�}�p�m�H�M
�e^sH�K-c���
+y�aK�D%MC�����58#��Ɲ
�8������*�!��@��v�I�ܛ�ҕ6Ң6�4j�a�҇x��C����u��9Y�0�T�O9l��ƶ��P�8%bGlM[�-z��<���R���}��c~����t?��_��4�:�/kL�ځȻ������:�9�R�9�6c�@��9�0�gl��d{]�-vD��� S�S4;
�%Z灢l���b���/���G;3+B:
gy����V݃�f][�c]�]�)�z�)��a ��8�h�?o4ǽ����9�>�b;m�B��
v��Ǟ�I#{�3w�����|����ֹ�Ы��
��6=����4�t���F����������ğ�}�K����,�\� �*{0��l�;�e=1sH���
ք��WG=�g[G+�
��j�m-������SAQ
�@vH��F+�#!,�
a7�@
+©g�uB��zo���������~���s;ٯ
ɭ�b�
+����?��Ԣd|;���U��]�3D������
+���E^wb�(������{�O����`}�(�%�
�1f�Z;\;
T��6������d�t��J��
+)�F�A����U/
��*��4d�:ݓ&���*;�/.��%���8]��ث��1h
�&zS��^g�ՈFi���P��
U+�
+҉�8ЈC�@�٫�L���5g?6�~�����i1������y�}�D�
i�Ǖ�
J��8�=�6�5^�h�f5Ŀf�ď�*�Lm��Q�`��&��~d�&�@
�ߐ�s3Ʌ����0�W����y�4j�?���P��z�4l�uU�n��.y�G�T�ӜZ� ��[�Չ�I�q/&�8eb�D<�*����^$
�Y��L�M&q����P��(v�1i�LQ�?�qm�gwkBVh�[������.m�bO�\�[+ͣV��1/�4r�$�x%�'|�d8�H2�UKLl�d�U(13
+%�5��?�jrom$����[`���$c���z��
�?���������<bo�&ڥ� ѣ&7�W+� )�4�a��K�i���!~~�pX~����6��K53
k s �8pɝ%�@�����`��OxY�9�Q3��N���������+�{te�k��=���%��u����U�˕�#�{c�"s���s&�"����"l��[E��{@���N��+���F7x��9���cε6�ez
}cs-ϡ�"�,νD#�Qʨʼ|Vv��'�i��*�I��L�O�5�͒�8Y�#�,��i��8p�ް0i
��/v����Q�3
^r��{���Kz_�ֶ�?�븻+k�J+cN�ʓ(��`�Z��(,
K-h �܌���S�C��anF���!7��Yf�5����:��
Mfg�������{?����v���q��NO]_���U��8���*����i���9tIi '�DǏ/�
�y�OR
�%相�;%��LU��@q���?��$������6�mp��{�ֻ:{]g6�x/����b'Ӿ���?�%1�+�.�/�&;$�JÊ�l�FW��+^�Ŗ��"����a%�Iy� w&ɅE�.��X �5�v
����ӻ��@덣3��O^��M�5����<���H猎8��6������&uh���)����/Y�5#,��̌)�0�4Z\ѨU0�8��̭��`.�C�|��]7���Ah��:�r��_�W
�6e�qwg�&w�
]I�^�Q�w�"��y�=!|�K*�u4�\�h���7!Q�7�
��A�G�
I>��`���t�Bg�Th����j��r��\�� ����uһ�
���
�o�
�
������������^N�K��1?�~ܟ�2�0Q7�o
��A�ħ�i��j
+��ـ�k2�nN��G����!(~zJ�s�����%�g�Ւ��M O��~
�x���`�A��5���
�nLõ��/N��Mx0�ߞbu�;�ѿ?��
+���a
X��[6 �M����*
/���v@�#�2���;�37s(p�d(t���Z/4� �v�
c�Әw�f�8b���6��s y�.���(m �����5��ʩ0��Y
��3��o
+��
+
+M��g9
٣�Ӥo��$��-�/�g�>7�[����
��ΘH��P�5h��!�m�^����|�^;���S�+t
+z�~����ѶpGp�@�DPx���5�#H��T<n����b�2?�c�
9+X���µTL\�}1�Y����N��
^8b�h�
�S��t 4� T�����@ʿ�Cn�xt�t��B��xj)�����T�. D�R?�YFA��3([y
+U�ݱ��xi�>����\�� }r� U- �� �$�\�
p=��=����y2
]m�xjz Rf�c�,���F�\/����<�������X��'�Z��/���/�q�!
��F���@��Ib ��L��b���t�gT�g�_,cI�Q�n�h6�]A�" ��"���C�0��Pd(#EA@�E5�
��vcIlh@E�v��9�m>ܯ��w���]�d�e��������I>���OȦ�#|�b?qF�t'd~ꈂ�(�e��ٛq�3k\�����I���
T���>� ���pLeR�a|,d�X�8XöØ���9�#�083{�3[x���2�dl"�4̑6���LP2y
�&�y�:5Qʻ�}�ާ�cL �|0�y@�9�����k�ul#���Gf��l
�!�2}�0=x0
�0m��JH�r����e���-B�Z�3�a�L7�N�_vP��i@�Մ,p&d1_"0u
�y
.�º�
[�O+��Zޯ������A���C���AwD ��"����N��;�'1l'�m��M�B쪁`?M�Jf!4jBR�F��[�� I�R�����6�WCxk
�u!x��۵�M�����CT�a1�%0��P��M
���:
��7��/d.��D�x""�"<i>B�����ŐU-G`�6�m:�\Ѕ��Z�ׇ���ACǍ ��8�Fo�0�ĺ^֫|������)��!�YQ>���Ft����DD��+\���UnЁ�U�}^1�����A�f=ģ���0�(��w��� l�
�iw�� ����
��8�1��2Ne�8oM$g#!D
qq� &�D�/GD�j���!�B�#��z�6�z�aL��t$��p ̆d0��yo,�Ca�{�z�O����
G������2N���8�H��FJ�c a�b�)V"�DQ��h6�o3�`:v�|$��p�+ˡ����!�|
�M=a�z���
u�|���x���,��:����D:o�dZ�� ɉK���=��\;Wi<S��C�1�᨟,�G^��]�}���^���w6/�͞��Q$l�F��F4�Ĩ��2�}K� ?+��E'e
C��Td��D�T
Y�
���|LM_=��o0���䭼�| ��7q���c/nc�"�����A���q���p����b��+[;��
shR-V2RƉ��L����>y���9#��ω]�6s�Λt�aj�體��/�mz䭶��oy��q�S����l�7��V
\.�õ3���p=+��:�G
��%��S��?BN��iː�6���G� [...]
��τ�:A��(ʼA�(g��YЧ>ld����n=}�>i�ϼW'��Fu�������t�sE
+��{�\��*=[��-9���;�Y�MY��
�ゃ���쉀�l��d�O� ��AH
�t�i&rt���ݾ��e�6���9�C�3n5��q�.|YgU�aGE�e�*��D�
ז�2Ρ�Z��ܣ�z�9Q��;��+�Ř�Z1.�RL�ؿ\u��D�7��f$�L(t�X�:6P���4سGG\�[8�^;,�w�1tIGm�A{U�EkE������M%��ze�v�!Au����_�����ʂQIe���"\P�7��ȃ�:A<�/�H��4y���2�Wcƺ�����v�F��]-���
+^|�!F��6i㑪
���\��eŜ����7
+ˋNI�*����e*�TU8*V� U{&���$�h'�!���iԏ�el�B��
4b[L��6v��cZ� ��ٖ�E'E�
mH4o�M�����R�Oɩ�(��-;(,Q��*K�d��ݤReɨ��xLXT4�/V"@� �� !�8�WfP-������O��+.�3��0
�(J��1��FQ
(��a3�
UDt�"e)Q at 2�����"!�� b�]qM�����X@��ξ�7{�\�o�s��}��;�I�
���P�ʎ�5zLi�Y�q�%�iMu�U�c7�U�o+.KuU�f��?}��xQi at VaM�1e�<C�((C�Fv�`T��?&��e�B���y�����T#�5f�`J���ʊ�7}C��;'��xs�T�%���ڔ�Ƭ+�pd��*�%�"����<n�baZ�iJI�,��<�x80�hT�V8&N�aB�qu@��.�
+6����@�����^�n4-��֯��U7ΥV��
-RÊưOJ��(/)6��
uʹ�����>�UE����*[������$�?���J�Eɧ'����A�C8�sq�G�.��f��sS�S5��ZM���:���q��gFe�X��-Ģ�%�6��9��m
i���ǽ�N�
���+j��k�D���D���#�ė��X
+u d:��Y�Hb��A��hҭj]m� U�!����.v9Reמ�g:�:�n-��\��
�6�-~sJ��
Zr\7z
l:�s��/�rw�j������
<��~�@(���[i3��I��r
�Z?�Tm���K���?��m��_<����Ϳ#3̹��2�1�%w�}�Й�Yq3��7�.�7κG�h�~�3��+��vx�k�����_�
�k��I��35�vQ;랪F��
��3�J����};R>���{���y��~?�$��~��ߎ�R�����ի��������s�1��ch7��:�#�
�-pS"��s�Po.QǏD�uD5WX���P�
���g��Ğr��4��ZiҹI��q�Q&��1�I6��3m��� �/�*�_�!���Ơ�7�c��6�`Kp�ՁX=I'�u���͠�͠������t�(��Ք�̞2^��H}ɝ�80K14��`Ģ��X㈡���4��ֲ����W5�$��ۊ��X
�b�s�3�?��c�U���
��]�'�hc��D9����҄R^���7v��Ε���
;��Ό
�6�<�Г�'H�3�&
+Lf<����w��wV~�a�{��{lN�TMt����u��n��am�YB�WR
��p�H�NS�i"L[��YB(��4���>P��A���y�g�^�
= #u�( ���蜊����w%�
�6�!����XM��Db�C7`�$
x\H4}<��S�;� Z�Ș�mgT�؎˳�p{�#�8`l�:ˈ.�3(ne����E�'
+�4����XJ�XA>�����v����D�p�
�M��D� 9mCmE�$;
��ٚ�P��5.r6�e�z������f��l���{�dψik�/�'�̘�5ӱ%{�%;6�o��6��l�
��N�{�
��-Ĵ
+!�7D�
���d�|�D�Z��w��� ��a�]"�"�"{�)Lw
m�"�gJ�aAkaôli5�dZ�i%�c��X1?��Lf̏ ��|2@ �#�� ��Z��r��O[X��[Opd�םu=oo�{$��EL��G�O�n�<�χ�9]����W��sk|���|�3������0|��7���qa+�y�똧o�ۙ�
� �a�4iC�:�����J=���ۼ���b�c#p�2��[���q�;�4�sa2̃�����Ñ=���%��u^o�7�Y�q ӂ8v��B�� B�B�APc ~�!���^�#�����?L�#���yX:̇٠ �υX�!��y��r�6�5��n��:/ׁemO�m
ȃ� �����y�f�BrR�38oQ���L!�Z
+�}� ������`����oD0b�K,�
��V�,C93߱L��vu^!�r�?y
�ʧ#4j6B��#(]�\�N#�)�uf�6�OHn.��X����x+
�|-
�
��rP�bX?�`�)l�
�a�β�
�7N+�
���g�Wj���N���
�
�����ث�Ax�"�~o4
�4
.3 ���}�����'o��֯e����X�\6��/9�Cw��5aea��h
���XK]LJ��UQAEDP�AD� ;hՖqA� !B!��� 6�A@e�eԱ��U\Ǎ[���}:������,�|۞�'Ah��y�y'w�
+�]�@�����n[���'BI�d����
�N/��p�ߙ,Ïт5��F�D*�g��M�
��2�b�6�w����
/C�>
}i�$�W��P��0���0�
ǽ#�=�!5 <�<I�8���
;@�+�+��aB�>rC
~�g��K\;+^��)��*Z��?���ϣ̞Ev�z1�{:������"�[L���
���h=
��W#Ѻ�3��%i$c���4!
�d����H�ѝ�Z8�Z�i�*���G��Sv��Ǭ��bKw�̬5��nq�ѿo�q��&������(��B�~��D�m'���
�&<H� =qv
��G
�UIG��SgV���ע3�_×?I�[�0�o|?Q��.'��'vў,;�ئ�c1=6ט�vC1��菙����PO
:t�bѡ����Xh�
����#�p��#��#z��%|J>����4@�4P:=t�}q��Ia��m㼬����
q����]a_:�7��͚:����R�oNmqx���N
l<R����}�o��~$:��Ύ%���"[x���e>���'��2���f\�a85y�@J��+���=�"��D�C�٩������7���ܵ�3�Z�AJ-]���I��� �
�#7��p�I���C�f%��e�#L��`*�����g
Fe�Ճ���WғL���
��m���-��#�I]�y]nu�cԚ�Ǵ��_�
�W�Э���eI�Bp���K��Y�ԃ� ~n'
셧
+;�_�
�T���
+��d07lu�<fCWV�i�Thٜ&�i�:� K��$W�i�
+��g9��WֳT�
jRK�^,@�"R�5d/��C��3����(�
+&�
`��[o���/�
+BVu)�7��pL���3$�5���q�K��ҽT��Y"��.N��Q g�U(D�!R nWm` �p��!Dk
���a6}<S���j\/���2�yWKO-�\|~e[a�q����.'ɲJ&����r,�湔Hʨ���q�o�x�O)~�LCo�=s�H�!��
<���ٕ�D�x��f2�`:�~Ro��r诤�v���K{ٹo��#��+dm��K�[�ڨ����s)�j�2��;Gz�O�~�_���_&E��,
=d��%讍?4�";"��]���I�^�V�}�*��� 5���]���~K�YËe��U%1��U ꂔ�*e��<E��B^D�ɪ�3�;��YҬ���O�Y蝑���H˔"Ux�d�@2�Qdg�V�����.�I�"�C_�tչ��
[�P}zyue�Q��Vu)Ǽ�Xp@�Js�Ȝ��
+�R��;-��O��OU<�)~��w�
=%�H�d!U��R�3�'�D9��X��@�t�Fghl�_XS���6d��������Ky!�Z^*��,�:*)�w��=S
+[|�#~���~���>��蕢D�i�9H�� ��,R�x��*=��Aw�Zhk2���#P���Ee�KKϯQ�GnTֲLeՉ��mZE���\I�_(��ʚ���C>���>\��WB z�TH� ��������"p�;���Ё!�.���@[�Jhh7�����_�q�KU���V�zYs����k.�Oޟr1�>�V�ĭ)������VմK3G��Dj�t�э[�����~�3酅pG
+p-��d�v�;�/}U�M����}T]U�q}eϙ��a�vEouě&_X��$8�9���GfK�3�y��h��0?P
Ha�"%V�.�
+t����
aF 0!���TC�o����Ս����!
+(����
+4H
^��e$��]$Sv�xOl��:���&��ޞ�3�@�~�@�s�DGz;:F6�cT�v���x
�#$ٳ�d�F�Ae'ɟ��@ym
䌙C��#d\��'�~J?�_AM��X�
gō'nd��L��df��b���ː�A��kO�BF>X��<҃6�]h�
���+
�X@w @s- at U@1ɟ9#z ��5�oo�Իv�r�
+������賧�N�2��DL��Me���2�yO��S*����:M��"%*Ko^��}�SiO�C�1�q�`d�c�d��-K9� )R�:Eڗ�<f��y��������c��[D7]��lz`
��&���MD懿�}D=
"��5�^�#��3�ZAt�2� �yHT\/G{�
i��y���N9�Q�ǭ���A
+)��*I
)�
Y�1
��Q
%���7�T13���4��Yp{�Y��}�
I,[`)���D�87N]�Dt�?��� Q�� ��aL�]6���Jɟ�)��{�ecz�䣾�)F�����i��j
���4y�����)~}c�~_�_��Q���1�J����DG��c��gDi�*RR�1�
ZQԐ#��xP��Z
+
Rи?I�Ce;A�
�~�V�Hq3���'T|Q�&�c�
h�X��
���q��=BT�#��+D�����r�%�"�U�pQ�R ��6,"<h�i#�
���!�|Ok�N��%�%��ql�.�y�F�o�>@*W�9�?�������눒~!
+m"�@�u�h3f��%k�g
gZwZ���5���,�rE � ��G��
�iJi>N2����F���
�
�G�WK��w�H��M|Vb]U>�y���0'7ذ�=9�L
�������&k�#+�b����X2a/���4
��8�TH��3P��p�#>=�7m~G�3J|Vb]YZ
5r�>����Y�7�&s,��p S�3��L�b5M����=i!�TMJH!�
�HKx�]�{�=�+gg��o�
+�k���s˒��H�R�*BpZ �K��P��*?3�j����C0��w�|�6�
uFc��Ҁ;�o.�a!{X�HX���������GfL��ByN��%˕!��
+�55o3��6h@��t3�Bh�
+�1��w����4 �����K��bK�w�%
Y�;֚�����y��t9l-P��D��!*S��D�5 �� �#�-�Z�_'�m�4,¤Af��A�
t{E��N��
\��y,`}�/�_O����n�
v�! o"��+���*���!�Є�R
⛓ �ц�^gLܬ3��Kwpۀn��5���E�ɟ�A�1�cJ���{��x�6����6p&6{�|x��#��"8I
��Jګ��R
��5
X�=x^gTrUwDrGoXR7yPҨ�'���"���@�K�N �>m�Ԏ��*��4��;��9��3�c���
�;�k�[���"2^�c��G�K��¾�
;��zF�/���kh����G��C�~
�`��k�1t|j[k�`��`��eBa*
,g˸g�b�X�s��;&�2F�;�Dv,.Za(.Ue 6_�k�~�/���>j�
uʰ+������:"��G>���:�]���͑�&o"0�!�_�cγ̭��VN�
������q.9�X�3�(��ف�p�ޔ$���lͮ�"ݎă��ŗ�Ɲ��w��]�
��اf�c[f����,f��i
,����X=`��J���,�+��ϳ�\��M\J#i>ԗ�U�'#D�3#^��ΝZ�iz�R�
�S7&3y�tz�ʹ��-�j-�$4Y=N�z�0d}?��&��S�\O�<i����*S��� ����hG㩮ԟ�Mݹ��#O"ך��6'U�uV��������~���#s�R�,
�8���)Wmj����K~1�vr�������Xx���\N�}��I���Z����fF��7�Ö�2��'ϋ�wo���m�o
+#��]���4?ˠ6w����f��<ly7����S���+���v��F��k��.�}u�)
��48�O���t82�
�p�\Ϲ�g��>����N+��kG�v/�����z��g�B���k=,�9�^A�����έ�=du#�2�+�眪2�/��x����&��=ng3�v&�?fb��L��g�YX�
|y���X�_���p�9u�P�^'j,��g�Ԗ*��h�ٗjX]�cr�p�����U�/��w��Bn�˹�*�3�w�+�_-;�ݵ�<{l��s�~2ne9p=���I>�3�L{��Y�A�yf�QdA�Ŷ���;Օ
+��t�����n�$^ݟiR�m�ť�}6�
K����vy�E}ea�e(�X�!k��"Ql(R�GbŠ�`Al����J
)Cg�3
0tADE@�h���u�%�Mbu�Ơ9{���·�s���s�}���7.q��r�
+i�KYL�[iL��$�q��_T$%ע�$TKɹPJ�ڠ��v
{���� x;O��q[���8�+o%:�6j��5�tV��ƌ���iR�c)���I62�]i�ƹ$�ε(�U\{ͣ �_
�q��Uq$Rœ+�Be
93N��kX�Yӟ3o� ��2��<Hϙ��
+{\P-G��[�3�
�s�L�g���dF[Vf$X���ٔ��ګ����5"�쌇BvU�+{ļ]��Hb�-GF��P�r
ߍ�yFs��~�(��4w2
�b*.���\�'����Ol��j�E�YEN��Yq����,{UZ�0/�R��rjIVr�Ry��D�B�H�L��I$���6
�^���H��ʙK=���7C�z!��%h*Y�W_�ըV�glE��)e�������s�l�r��L�0S^.��h\��~iiJ�=ϔ��%)�䑚A��trKK%m�j>_ν���
�$^��z�=t�'�f>����P�[[�kX��=ZS��Z}�"� fV�J6?[�n���pN�ш���=�/,M���3!�D�E
�l'f�[��\�A^�G?ν!��#� �ux��/@��M�sP_)±�5�ʪ�CJ+v���MPi¦�GYe��K/L�M)�uL�/v�Wչ�*�%R�m�T�r�Q�3��\r��!���!������ <��u#���_�9U1��_��V�ʺU:�u>�յ;F�j��V��gVDX���Z'���$h��cK��ZQdQ�{D�-�u�{��đ��U@�1Jj��s��g<pUt
d�R�~5#Q}��
(i\u�� �Os�����Zwdzb��*�&i��:sQTU�Cxe��Pe�kXE�(����P�2.�5$
/"gm�F�����A2p)8[
����U� 4'�A}��g$P4���n�
�q�dʩ��Cf�'�-�e_F���=ܐ��`C�]H�Y���=N!��
�ב��c�RC���
������(p%h�
�,j�8�4 �j��ܶy�jA~�K'��F���
F�큣���F�EN9�?=�%}�����yA-�6{��.
l� <M���b��6��i�v/q�
܃��X-P��O����c
R/�DR�#d]�^ ���
`�
b
�nr�+vbpg�y`�b���
+�ݝ�3�;{�v_~a��f�� kf���1��
tq���
�9��s��� �C��g��n��b��x�p�F��ޝ!��
�{
���g��f���7��l�u�l[O�ٶ��u��w�,�~G�k�y(p�{pN4�x (<��og�N ��
B�1!w�|�A�<x-�>�E�� ]��B
v����� C�
f�}T<bˣF�͏�������M>��x�L|�=���;1��,����=Pt���9 �2p�{`�-]�yd��Ofb�ϋ������O���߶b� �M���<���Зh��/w�C־l1�~y{�w��� F_?�aڸ��A3�A
{@���K��v<҅_�)6���Ͽ`��NX���oVb͛u�z���U�]8��)���?O���Jw�sz����I֗�#}�[�)��@{0�H���W�� �ۀ�}|�?_���4
+h!�"'H�
�
bZ7� �
+g
+�#��XLr�����2ϰ�H+
�d*y�ك����������*`��Dֳ�+��L
�@��#��p-�k���3)�t����4:Ɯ�T�����j�`A3�z
��b�k��[��{��g`]@H�Ys4�e"�M�\���V\�%-f-g��f�I䅿q_Lh��Ѝ�H
�T
#��#���f�
D��[n^w�ǀS?X��̦A�?c� ��d�s-�i�Y��5F�
��a(�f0-�>���D�/
+gx )�#h.��8�Xڀfq֜� �� -��n��
�@N� �tΦJ����a���dZ$�����e~���.�>蒘�~1�����vyF5�fq�B�DE�� H1��q�36F�
D%�V@�:=�PB�&"
���bWtAVg��.�EdE��9����s�o���w��y��@�`F=����ԇ�z@�mT�p�'�
�zq��[
+ ��������y��)�;z��
+1H<`��sbLa�iJ�2&��N�@0'�Pq6Њ
��
В<Ӛ��\s�:�_��~���#�\,�g��N�
G�c
t���.���"q��.0��O�S.��.ߘ_��
'>s����J2�E噠
�`ihE}��<6�kn�Lu]�.�� 7�<( �5[]%
t�T�]��/L�uJqz�y��n7���&ݞ����g}r�d}܍���Q��!T��l�-��:rL;S:?����p�Hu���
�o�Pz�
��]Șv/T�r/g~��)��w���ס4��Q�»�<λ���7����v���ʯ<p�KT��s
j��f�
(��ʙ~�����
� wډ}|����g��$?Ma���8Η�>���G�|�P��?��I�-@�5���(���S� �>j����
�q�CO\����g
�{#ʟ2q6�m �aOu"�����I�C0�)?�����z�+V~�[��ʧ^��O����)��>}O}ni��<�|��Js�w|�?}P�j���mo��������it7��k�2�sS
^���F���~{a,���2^
V
�P~���$�T��5����}��>ؿW��
���=�?�=��Y�?����%��p�U�
+qip=���p&�t�Yx���
+��
�K�V��
+����<"�1��8<e�p�H�^�d��ق��z���V���.�[A���
-��D�J�����}A��
�K�g���@�߲�v^��O��R.�f0b�7��(gx����ߋ�`݉IP
�ν���)չ
Q�w5�I�rx��a�+���W�
{��'����aS�]aht*
�N��h���g�?��=$�ܳ� ��_ ӡ��)�^�8�H�6N�w} �J��x�k�S�_�-�'�;[��7�n����է���������}Mg�K���I�Qh��&�D��h4n��Huw��x����,���d�*xkO
����R]�V��Zj�ҥ�h���$�����g�����Wv�7��u����3k��m����x���84?�fMq��h<�6ƣ�Lp��\ӓ��y����X}x!X �Ma(}�
�p5�S�B��R�0R�L�`aWZ�^gJ���dɪ�$���
���̛=�M���F��A�S/@v]Z�&�avd�']�rM���G�6���H�.��0��Y�pE��r����
R��i�̊_��0E�-#ˠ%�а9�tMS�������ݜڤ��5I�l��>�T%���L�u��,�g�[��ɵ���̃o1s�u�:<LU���Up5����lO����Ց�q"7fa�(I�9[hp43ϨAXbR�QeQ��ĮJ;i-K�l[�z߮<��]Y�Ve��.M�u�ih9ܮ
�W����*��+Ã$&���F�\(���E۠K�G�C|��V��R�u,?A�17ݠ.'ǨF$6�ʒYTd6rʄ�R���o��7ᴝ$� +�-⺙�ϔ�9��O��oi
�f�傥�+fCW�萺A��K��$@�I�� >�W[�jP]�m$�+4-�-����YIDm�E�s���p,�~E|�/�
aEp
+��=t��_�v��
��ΠP
��2�X���Q���]���T�Z_6�HI�nUq��
+q�aiQ�iq�Ԣ��UA~�m^^�CNޠ�(�%1e�����5���E�L�K�i������l�K�rpF�:��B��G8^Ņ���
+��Ujd��*+bt���IK3V�KrM
+��-�$�
���6K|�AX�wGa�(��^X���ufr2
�=tU�o��Ir>���
r�<�^ yW�h�Z�5��h�3��z0jj}�e5��e�Q��U��E����"�r�YV���Q�d�V�e�"��"}FLڥH�6�� NZ1�g�n4��r0N��{I��A_yW)yO�4�BC�=�6:A�ѽ��X�
���ºxݼ���#Y�BӴ�r��FNb�IA�
;A�S;�쫭@�� 2�J�@vb9�� �� ���r�9���w��U2�����P(92%�t���hoR�B�2�0���6�Ԥ&J�SB��tQ
��Ҡ��LI��f�<�y������[��]k���ߚ͜;9�pn��c8w�)">q<�%���ňNv����G/�Q9ta×���F��9BkW��v&
����h����
����/2
+��1���(4�f��Ѭ�X��#�篿�끧<�;{�{�3��
��(@L��J5���8����^���J�҂Tw_ޤ
yy�fD�.�m�脧���9%n�Ɣ���Ʌ����;
�/�Ap��HH"M��M���łC at V4� H��u:8�����������f��Y�؝%���
+P��
+�����k�#C3�Fo�8>nCF���3.O
+�(�
�Q�x�C/�
+M Lg��� ��>� �8g�s<�D��K�De)��l
|w�;s-���yނ��R����J��C��E
ݐ�wXP�ё��Z���%�+Ж�Uk�r:���4^z�t�7h�� �*����L�AJπ��8���
�
l����"}l.6��k��qņҕ�{�ZaPY�����Jk�v�H�Y]���<E]R�?LR^��Wڮ!)��Ť���F1���{P�o�����
�����:��A�J�7k
BVa���X��V�*��o�<�$�}!ZQ%�SyJ����J�U��
UU�<+[�=
�`�_i��G4�Q��}~
9�[p�w0)8��#�����
�q���O�px?�
��X^m�;�ո���/\j�\� Nu;���
��
R����"��F�}
��Ւ
#�(���
f�$_by��ؿ���R at rp�\F���D8�1�]�)l�Z��;X5�bq��-2,z����aѺ
����-
��e0�x�V�Y
��9�O�I��?��=�g�:��d��c��5`�>
K:�a�5ݳ`�3��,ļ^k��sĜ>}�`�1��b:Ec�B���:L�^�>#��@B:������?��wf��s`a`F*0%M�%
�
�
a at s�1��,�d��Dr���8��`E�+:
+MJ�H��<�>K�.�^�7��q���wd����
�
;E|7U��H���.M�M�6`
�����d
U>�2�@��B�=pO�=]`2?�,��-�����o����~�:��|O��b,)c4���4�AZP��P!](�>D�� c�X3Ό/�? �?Ĵ�9����n�,�6�c�04I
�sdV0L( �z �4�
hz"hF*� ��2,b�3�@3�6|�I�e�g}�k���$κZ3��9S�ϡ�Ysg�����b�0�
\?�k͎a��A�W���9���܆*��Lޣ��:M
s �#��h2�a�9gN寁 ��v\ۃ�g���v��4�{7�&dz4?��Ι5�)C�7O�c�
+�f�h3�C�9��B
�l����
g;�i|����g�1�7�6��ǵ�@f[x̻@
��dΡoQ"z-S�c��nq.��w�)~�6q
މ[�vq/��^[��ъ�
L���CSt���s
�k»a��X8d��q�,�;!�X�}V;�c
�.�c�=�v�x�-M���W�j���"A�]���aY��}��֞D5�$WmO�/�����ҟȳf�u��=�<�y'lq\�x�w�]��hw؎V�=hq:�f�h�[�XA�K��K���庰�����}�K��s�?D��u�U���on��ȍ�*�H�� �4��
����'���<~N<gkt����U�� 4-�k��P�y at P�y\X�#��JU{]�{�uM�w��Wyݕ��B����=�.�roR)���w�I��)
��^�/��g�gq�
u�7�1��b��r@���W�E��&TKv�I���J�!�D��/�8Ň��J$W��Ir�[R�R&�R)�{3�ЯsH�
��#�\&GBj��f�
L��ys�s
Z�g��G�J#����Qb����㙿?*e�H�M�@�[���b��r��J�4A�H�:�P��E��ph��Z����lY��
id1�2�hdH?���k�Yw)�ƽ���Ih]=�ҹ�^#Fe�3*%�$(
+�+کX�oPA�����/r�Ū�Zw�O��4��3
�w@�
+P�EB��3g�v�Զ�}�:��WT#�$1 1���� a
�*A@ �"�V��NGG��xt��ڱ�tz���C�/����~��~��<��IA�� A��^���n��'u ^�t��v�J� ��ѷ����-$
q�I`���SL^���H��:0�IkpY�
D�gE"�~Q��)�j��d��-�ȳ'���xRݤ�Ķ�
�'|�/��%�
hM|М����D�ߐ�~�����r������9�N��}��$a
+n'MÐh.��s�-��8��&9�J�c�%�Ěw;R���Nj;h�m5����D�A
�[�zы�:�/�Z�E,��
$�aS+ȵ6�%��_���e»���k)��B:���T�F��
�� Ν�b���r�6�ګ�P���C�Fie�Eb ��t��gBj���?�UI~����Dp��q�@{ا�`��y��
{]�F���θ)rťC\
�g�/} z�ѥ��pL!pn�����hJSz7ȵ>u��~�Բ@����*Y[h��/�\6�/�=�e?�����0
!�\{�z�����u���
�9bH�A��e�Dϑ��T��U�ݡU
�ܤJvk8rȣN��mVd��2��+�K���L!ƴ���mZ��rx����"����i,��!D�=l1݅u伻F�8�$��9�t��
+_�����OaլA�v+�Q�\�It�͒x�2Ӽ+ժ�媜 ��DYjP4�
�����#�o��)�4",W�B��������`�9xB��Op�֍si
�PMB�&mٟ�E�
+�9[8u9{�̺�1��)��To�F�S��
0dr
3�C��~��k�Nu~F���
��u�V�� �V�xD�=l9���֙��}��a��i����ߝ��n�s��u�PS=�*_�Z�'r/͕yr2|����|n������5���Y�s3Ԛ�Rk��ְp�O�25,�
��#��c
p;��
( �]�t
h���R8f�2Tm@�a稲�x�}�B�gAA����L]^n�&�$$3��W�X�+sf(rn���}�бp�O�����4�
��xr��͠O
te��十E����QU��kQj��`(�
�/M
�_"
�S,��5�|3�t�*�a�Bo
+K/<./<
�Zx3"��;��|y���Y�=,��
<����!�uЫ%�#�l�;�T:e3a,���5�WFq
+*�8�V��]!r�*�y�˔>J��?ݨJ-�
+����IK��%%_߆K���3���B�a��ww��#3�5��Z��*&��z��_���Ȯ��1ǏV���*k���M��rS�dYuA�����R�"�:�V]V�� +���rBL���O��t�
zrȻ(��������셼z>t�9�4,Ef�:���q�M1N�\�)����%
j�K���R�di<`��&X���_p�XpB-�&�#Ȟ������4�C4Q~� (�%�it���
��Y�h��4�j��o��=�Aھ�I�.t9�.sK�*��9� �� ���>��
�X�_\�
��V���������
n��=P�
H9�R~m
`$�im at j�uM���C
�Y
+Q�:{�!��I�
pL����t�x��-�f��V;~��g��gt�7��=�k�q6aW��6
�������@��
4�V@�H�I'����`N�ľ�y�;��sv���Þsɜ�s2����Q;
��
�\���p�:yL���1Qgu�2���r�������I3�{x� ���k�Q@�A�O
���v^����<l�4Q��c˗�a�
�te6^���CBl�c�p6�]+㬽��y��C�'���s��ʜ"�0��F�sq�=*�{X���i��N ����R����QX��D����������a��X~g=�}�
K��b�=!�OǢ��X����{���-,���cXx�a���T.uPA
P~���2l��4��=?rXv����<0�q �=��'O��GO�a����g���,
+<ߋ�~���/����<��������W0��/�����.#�t��)���W� �S� u X3
,� |t��+7|���ٮ��>�ߩ�-S��"�,�$
$I��H�
+�Ɍ�]jZT�ҡז�J�J�QRGԱ�\���Û�
K)$�������k���{/�s?��Z����
c�[a���0o����&�c�G}�����9����!
:�a�~p8��������V���ˀ���-`�C��0���i LI�ad�!d��4d
1�B�f@��B�7�~�
+�)
*��^��NB��C�^� ��T�����+�
+�R���
#��
�L`)A�ԡG:�g�yC8��4��!M��&[��3>��t�
dg���?���/������M��
��1g?��w�q"����"g��Lu(��#f��06�Y���8�Ȅ�H ��˷H�k;u��4���������
�����CY
����@:{��n>;�;�*�+���=bM�"nGw�C}f at h�b�-�q�hnӜ�����1��I@�A,�m��d�d��C?����
+��v
d� ����Ѩ
mF�V^�֡����
��pty.
L7���2'��������
�DzA#�|1=�N���lv�����%Z����H�ks�_��F�������5
����H^���#s���bR�����6�s�6|
��O?e��Oy�`Q�v�Sh���{�Kh���ז��dيV��� O� ����
��CylF�a��u����1W� ���A�d
�� h�ي֟w�����vb�L,��I�x5�,�'����[x:��ض�
��T�={�
v���
��
2ȷ3�c"���8�
�ǔY��v��j�/�������j�f4Mێ{��� �N/@��<q,�c�Z<rl��O��ܜ�7� לIp�]v&����!_�-��l��}r�gd�
:f8����x3s)�f���Y!ht���
x䒌��Sp�5
w]��4�9��s.����6���� ��Q�0�k��7V�h��~��A
r2����u
Z\m��:
��x��x��;�#а
��I��p�-܋�
Y��
�
+�/:�P��J��k�5��T��|#����Y�IJg�iV�Ȝs����;�x.��܆�u�(4-��'���ᆆ��)�եkpiY
�m\�JV��JQ<�.��:أ��h�J�r�
+�ߕʽ�)��4+���P)�!�c��
��M*��=6\�M��U��X
|�0@�b<^<�����l\�Y����fe�%r�9I��YI��\���I�R�$��)I�� �I�RIM�c��>G}_�)���V�K}
}I�+��Owd����T��T�u �-�F㲁��=
�Vؠ�� ��<pN�2���U(����m�Y*KV>&KQ)���>"�S+�
�[$=�^(��^ m�'k�+��9,[F�_�wh<�j�2:��B��*�{��u_c�J�P���
P���2��PŒ���G�+LR-
+���P at Z���l�������9��������
h�� �� ��@l ��
����s��&y
+��Kw�+�^��:�!�,p&�
'C��x�2
]�'(
��P*X�+?tc�}sBv�g�dj
)��>%�\��/��nZ�[�=!$J
!m��4w��Fw4���$ �
�ʵ�}~��� pE*�o�b�
�aSP��O�}ra�<L)'"Z%;"�ρ�-�2��
��~��ay�=a���a5┰;�]a�w��ގ���DL�{d����������_�+�����
����8*���(gD{ /f� 'f�0+&T)3:R%=*^m_�f������i�)�\ݝ��vy��6y��������/�d9�1��r1���N��G��x�u�
�@�~e�(������Dn�;��}��Raz\�Ҿ����X��؍��%k�Im���K�>2pkt������I�/�g���$f�L���#{�7����/��\�C�r>r
����L�o����8�0�^ؗ觘�����V%%!Fm��D�m�h&ǧ���e�%��o��0�w}І���:
�H���������2�A
+��\{�����:U�7���
ՕG�CW
(0t�"�"�FW7�'�`I
�&"D�����>
u iR� �uU���1v�d"�DP,�9��g?����s�{�{ޯ�{�AE�(�&}����(L�Ö� InJ��*y�AVr�azR��2Qa�HT�''l�JHP����m�?m�N����
bE,�ś��ohc/�
��[G���>��:NI2��x�H�!�"W� �4�fV�J�
�}�2��"5�(Y�l��ȒƥYŦl��I�+�N>e�|���E%
b�$,�ś����U��s�C=�&�N
�*�$(I�FA�'��'@�1Y�DC����
�M�
�^\F����
����ȴ�#���mH;)
O�)
W>�
W
+�
Ja�!UX�7yݏ
�_X���@4s@�j���T ?�
9Yn�T���H͝E�B$�Hr�u�r����F���E椙D���
+�u�z����5�m�k��ڄe ��LaI,��u?�^�:�����1)��WA����<g(�}�T�
+g!�p6�56�Њ.Z�Ya��p���B��ڂ
��e�o
j-B
+�Y�_�
+��c�EX�� ��+�o�ZY����A=���]��~.�Z���b�JF`S�DD��@d�<l,_�
做��!Z���놕���'��e�*+������fAe�̂J�͂J�Y�VR,L��1ׅ�W���}���+�]�(���J5]a��J7�W�ź���>k�`u�
ߪWh���$�ԑ�+� zA�����
��w������\}�H�����J˿#��r���i栉V�>�9�~)�U�@�6zz�0� ��tD�./������#�vk���. u!XV�!���,�Wj/�/�]X_����&}��+��u]�~�E?���o����(���I�SQ�>���ڛ�ԧ
��IJ��C��K��`��IX�0�
��w`�:�C������1 �s4�6Uj�ij��6]��9�X2���mھ���ᄒ�����f۩��Ȫ�w��+�7 _4�a�a�
q��GGcV�$|�<�
��O�/��じѲ�[�1�SOnŔ�����L9�S[�
'DŽ���
��d�3��@���A
kP��ҋ���>>��I����W|pv&��� ����}1��?�]
����0��1�r6F�R
�4���v����/
+��@��e?{`W!����; c�b�!�y#��P���0��F�SïZ�Oל��:
��0���po��
�z# .7�0�V
��s{
���.8�p��.���*�Q?��a졌]~������`�`
����C����
?
+���!{4�
�`�1��� },�Y�j�>�à�|
쩃��
�
F]:��f�KX�L�>v�� ��a�3��O�ޗ�_�6@��<ׇ�
SH_����_�������#&C"fs�&(� .:��`�'���>�3~����/c�� ���_s
mlo� S��Bz�ZB�yl�q'�d����P.>�
�`��
.��a
����� X~����O;
�c잌}0c�l��/�8M���C�SbM
��.>����uN�
�7�P�AH�q�=9�0^s�����B�K�/�T(Ǎ$�(�<�#����T��d9DN�K�
�Ё^<Gg�-�Mt�"�����zn
��2�����R>&Ἆ%
+>�"���T�]di$-���<^\�S��xbЋ�~�:XĎ��L�"�< ��s
�H��w�Ǒ)R_�x���%��=���\R�Wf���L��:<�6�Wڌ��g�-mE��
�?�=K�����ܱ%v}�� ��t���
c�_ �?��Wv$��E�,�e
+�ʲ�T��
�Rt�W�ˡ�
����0
9����p��>n9=Í!mCZ]��
+\}
a��m�a��v�pc]�Gq�Hf@���+���uY�
�ux��N�$t���[.
��{�ہ;�����ny��
�_q��
�
��^G
+��8���
+b������zx�
#'���s<��G�W �\��#7��;�F���l���Av�F5�^q ��[��tz�Ӟzf�vNm�
7\Q���,b@ @�@!$�@� ��"(�".#Cq
ju��R��z�V[�9N�u|z�_����>�}����߂�>�ĝ�>���eS���<�.����G����_�0Kf�0|F�_�~Ju�~��ݏ��Y�ә�+?³���{`
���J1��*wV���|�������AV�.Ȏ��
���ø�~�7�`v��l�|���
+f���p�L��`�ޠ�S���R/�ҙֽ�g���帿n#�Z�pu�s�������qnk~��3!-�q����
é�386��
�0��k|����N�%#��+ػ�`K(s.���>`�^Ƿ�?Ɠ�wpo�qs�\ َK��8�#3;�p6� g~S�S嘊4�D�~LF�1Ջ��#�O��8c�9�1w��<u�Ÿ�d����?�
=��\�5t���`�Dx��
�&���s\�[p6*
+�c�0�+
�cs1�[�cqz��U�h|#g$���H|w8�w(a��P�,o �6�/� �7�KO"s�&] /�b�r[��@���ó0<
��V��#af�G8
�� �O��؞T�&e��^%��Zΐ��iPl������v�Aq�K�x̵'y�ߝ|�͑�W����n���͞��m�5��.��灭�k{
�mp����N���cf�[8��{�0�
�#)�NMơT$
+�I��J˸�ռ
i�K����
p됌��%�=�$W<m҇�-�{6I�q�Γ0��؇ԃ :C��߈.Ӯ}.���~��_bT�
+��mL�F_Fzei��p�3U\G�ιCfti����d�.�ِW�lJ`�}.���
Ͳ e̫A�<�G���/��>���ԃH�
+e��=�w�Ww|�0��C���
Fov��p�%�����p�r4<[���%�֭I��c����,6ʏ��������M�g�Z9�ș�xυ�r:�ާ��n�ҞO�ϦОK�g,�C��O
��܍p䅣C{~
+Z�e��|�)_ͳ�����*�F�ٳ^�&0)�D��c>Պs�U������}�
+&"B"��c^
�����)�]��g��9�
��B_�"�(>Dg�zؕa�ƢY%F�*��_��5�T.
*
����n*���)� ����ʣ���?��_��eJ�MDD�W2�B/W����h��Rޢ�g�V��l`0�
=�?AG�R��֢E�
��hX��`�H9
9�N�������+�M^�f�A��W������u���Z�?��j�-b""$�����?4
wh/R�P�;�
�Ѯ��C��M�/A�f,%[Ѩ�D�.&]*��4�[���U���2w���K��
+uZ�O����F���Z{�_]��O]�|�7�5L���<��Dzԃ)9p�rπ�RqЪ�!���`.]�z�f���Qc�C�!FC�S�!��`(r�J�t�*ϒ2����û�lȷ�촿�캿R�7?���(K�7�B��� �J�s�z0A��z@�Ϯ���h0�
Sy �+6�Ҹ��`�܋��4Ni��Y[Y袩��ՕFUe�@i���>yƓ~��k�on�!��r&$����{��NHN�;���%��(5�
+Z_.BM�"�?@yM�!��FAkJ�Ɣ�bS�S�)߹Фq-0��)Lu���V����;�v�'��
+y�Yü3������`��h
���p.8Q �P��e@eІ
+�]�|Lo��~ JV��1E��P�wCiNF�%����r�,E�
��5�R�ii��0�
+��B�yN$5�E(m|!�60���y��q8���4�����ﮤ
TS}ʁ�'h,�Ce]
eS ��#�9�-ѐ�$"ۖ�,[6GfS:e�t�i�*����g�qO�
��.{�[
y����71����w���t�,��z�WEs`��(j6r�?CV�R�:V!�#i��v�B�#Ց�}�<$ws�]ܤ.�sb��%��k|��x�����q
��N����f(~�S$���n �-@�жP��gHz�@ʁ��~�����o�"�������gb�@bJ3Xlj
�;E
v�<�_����2������$t�LbQ4q�DAQ T�
2@
l:6�i��8Yi���������"�a�nJd���%��
)=�+;'qf�Å{�s������<O�uĶ:� Y�#2�MD�li�m�r5���ߐ�
�U�=g#��qY�m��
�D��$2Ǘ�]���
+%,w�s'1./��y3��=F����ݟ�����}�!y
��BvI��<�\ς/t
d��i�{�X� �)�
e'n��
�!���#ÿ�"�З��a�ZJ`��ObH�tJ�ap��
*]��&���e`��J��_l�/�¦�t�h��(?Eu�ܢ�Pٳ����c� L���E��|�W�]�9�N����S@��
��H,=�L���l<��Q���W9�>�{�M<�<*����K!K�OU�?2��l��NxKٓ�
���Ka��[���B�oZ��
Nt����O���@ڝ
���h��L���8�[�K5q8_Jۚz
�6����S�uݧ��ə�U�_ra��>y��!x?��C���k���^�m�
u<_ߑgt���\
�ťQ4���W��:�k�bu-˵�p�*\1p��-��z�L��S�T�S���2:*�g5��� mj�U-��m���g���"�k���o��k�hAԠEH�n��墐�ǃzy����z
+�n����U{�j��_����w��g/�m
Xn?����؋�t�������F���h�M���&�t�}���Y [...]
����8�[N��\�:}�e�E\t^ΏΫ�sI��.�����.{�i�����d�
|��՝9��pD*�
;��V�;�Q^kLg'LW�G7�G�W��m(w���z�\�<��.3��2���Q�ug�.�t�$Nu[ˉn��{�z�Qݣ�*�**=�S�u�ލ��2��6K�S����n��b��P/z��x�����M/?.y��3��I��9���3���
��̧��'
��)�>�8�/��~�
|e��IY����p�U
+�
��_��I�S����h���
����rç�>}�� �D��|�;���R�7�C�fq`�{��!��)��������a[)�Ϟ��
'7�";��
�yA��֧�N-�w=*��`�<���ז��93��c�P9d#(
�Lq�t
+��d�w�b���3r!�C��7j��R� ����\��.%{�1��ԑ1�>�c
�%M6�iʸ��:_lŝ [.n���|5�3��>��R:�/�D�?v��f�k�,v��
a�
��m�+���̈42&� }B�#��y��Ȼ��Qƒi,�G�=���{�Ǐ�;C�|�ָAVT�ڒC!���EAX y��L�b{T
ۢ�$뵙dN�Ö��'����
�)iѫ��jI��fYS`�Si�.�����[�ɱ�zu��Z�ߌ���?�bj��:1
+���/��8̉=�
�z͏ +&���X�'%�6�m6M�Eꔿ�a�G��[b�<.�j]\����L���|���lWş�M��a�2�جx�zy\S������08��jMu���*
�/�-91��6�?S��
?��S��0m*)����7�a�sY�0ߒ���ꄕ֫��$%���=1�ي��͗'~�|Y��KM�%��vq¯l�dz�
�^S�I�;+�����<��3���ag���
w]Ū��*���=<�Z+
�ZPDH�@ I �p˭\���ZO\w��kw���j���ժ]�Q��cU��
��������}8��f��ꃎ�hY�
#�!j!j���:&
�11�P�c�ڈ2�ͣT�%)ָ��4�nM�4_�Y���/�ќ��47dٚ�B�F��Lu~{꿥�8v
Q1o�d�%��J���EC�;�SOG�&��!X�2�Z�h�(�%�P����9%��|�<]�4GW/d��Y�}
+��¡����~��u���������^��}��>`�Vq�0��ֵ�CQ;Uڏ�N7��KQ��Ba��cQ��#Oo���gH\�\�,}�����
�vE�~�"]Ri�_SZ���DQF"�$�@��u���/���P`/��E3��&�u�!����ĩ(��Aa�"$�@�a5r
j�� �6�xfm�1��n,ҍ52��Ma1�R��'�&���"� �R�E�H_F��68�>8�>����8�
-g���(K�"��(0�Bn�B�R�!۴
+��(8M:8��
�Eb3gz[ͅB��Jf2�(RL;�F���U���@aH�ɩ�,9E^����Y��
�`$s/�;�F�^Չ��
Q�:
+y�Ip�g +-NK�PdX#�n��Ֆ�a��%f��+�V 5Z+dk�"ɺ]���]�h��L��W$XDyB�(#������8�`�����mI��d���m�\�/�l�H��sa�X��
��W�lW#Ց�G���������;ʅG�\��Vh
S�9�U����e�2"ĥ?E�w�
�p��v����nN�&��94�&�i�t�۰:�� R�����
��HΎBR�z��#�e�Ļ\^ZW�4�U/�][�1�^y��<:��,:K�3�"�v��G�ɳ<���A���H�z
=�R?
�;<`�
S�s���;��@$�/E|�
+��h
4�+�CS��vgJ��E^k�uޑ�MB���QpQ���YX�'J��+z��U�� F�}쁭�#�ԭa-rP���9��3����/�C\�-�uIbJ�!�d%֖F!�T�5�)�(�{��x�*����ux����R�]�R���R��^�bRԟ���� ���]6�"u˳���m��Hq%RĔAԺ7YᏈ����UUK��jªW#�ZUuV�X�yM��T`Ym�GH�^����
�շ=��D��JRџ3�y7����ks�#Q�H-bI�T1��@��+6����)XV��4"�!KUX��ōZ,jJAP�
�J�����;1��4�7�B`���z��?�4�=�����[Q�Q�ZN*��Z@�L��Y���?�X���7~�y�0�}>����0|��Y���bfW>ft�b������8�u�����EL�H�^��砛{�V��H��
+f?֝RG��f ��l~'0s�Ӻ_�G�F��m~�`�TL� ���@L� ���0��#�v��N'��U����᷻~�~�ߎ'��#b����dv��&z^Śs׳�� �
��
���t�vf�]���^�� ���7��1�����}p
F
Z����0��GLޛ�a�
��ѽ�{�?��C"���f�]
��6���`��
܃M����BjP{�^`�`��O�<0�
�z
��|
>'��w_O�+�fc��EP���L
�gl��-�pn��NB8{�3"�������ug��j�P[�C}jP�}j�M�CN >� ���y��� ^rÁ
c9���x�� ^�q(�s@��^a1ߝ#w��؏&�W�r��fz
�?
� ������=��ÿ���$߀Z�2�������G���uE7��\ �����q� ܩ!,�.
�{��~N
�/�[Y�v���_R�00��cX�Pj<��/P�R�.��\'�:�$?ѓ;��`<
�7x�A��\�1��'|D6�H?D-����)�~F7{�������}�Q�]~<��C��ʿY{_�W�5�#���G��!��<��{�Qd�M� ��D> "���.�<G�82��z�sa�ŧ$��"�L,$��<A%
c=���
\F7����:������L������"7��ߗ�a΅/A�"��l���HI &b�n���.Ӡ��,
��v�B�帢������PQD��*K���Wz����ED�E ��"JDTF�(��BRƨ�єK9qƭRS��˒���s�����Y�YHs;��饤WEzH�
��D����H�g�xHn{EO����� �+1�CL%+_"��"��H�&����Kz;ɾ"�+'�j�;LV�49Cz
t��:(u��G��6�r����� ���O���ҷ��'
oNv��
�f&];if�^
ٷ�TJH��q���m3�6�ׅ�zn�
Wy�N�?�
��qz���w�� ��=�����3ţ�'���N����O�(�
�Z�{�4�뗃��v�N�"��W���kp�=����5�6t:_ǥ�A��>���P��D�0�s�`��}
6�#0�˨�`#'���yx9�
^���E�?8
����P5n3��a6\���#��ӥ �]Jpid�
u
�qqt+�\�����h��n
�&Po���D����@BH�}�� s�7nc�|�t<
��\=q��?�
�Q��-
�MԢcR.N��mJ6�O�C��B|=�
-�kpf�14�8�S3�ljYw���g86��~.����0�
A��6���
�����p�8ܙ0]����5�)B��0�Ε�������V�^���
sд(������*4|R�c���?�@��m�.y�Kj�jb_7K��\8�qt*ml6����x<���ƕY�1!�/�B˧pzIN.�D�G
���
�L8�܆��8��+
+q賽8�y<Q�Նj��P�� *V�F�*���
��\I{21�J�<�*m?.��9�ퟌ�Y�98�|=}�� ���P�Z�C�J�z�q`��צ�zm����K�T��Fź���C��u���������
��.����3��ΧG%���ͥe@�R!ZV��i�t4�qG��j��������Ea߆8TmРr��6��g���<�~^�=U(��nQ
+E�(=@��Ol1�u����@w�V�h1��4cӾqa5��T�O�����qh�"���ľ ?T��`�&1�6KQ�9{��Q�ł��t��Ů�](�@~�a�nF^�e8B�#7�r��� b������ ���Ej�-����}�o j�P�i
*�,Gy�:��P
��/�Q�E<v�j�3Ԍ�0;v�mE^�N8�ː~�������Y���
�K.=�qi�
iaT�{�
�W4z�� \&�V�7N�h�w��?��AE�l��z�8����(#?";"�ȋT�i��(r���U�
ْ.S��ϐ��Ӣ��F�*H�<�m�
�
��\|�N�7��O>�6�H;�az�9�"t$J�3�;�
Q��C�yсpĄ#7F�
��R=�dd�ґ.spi�b�.��ȏ
���B����"&H�1�,c�Y�8S/��C��.�A�&�9C(a�o�Tƣ$b8
+%S��yROl��"G� ٱ�Ȍ�FF\<��H�7�
����\.YQ�[_
+�
B��Ш�%4���`��8�\b�{�BM(�)4�4�iΎ�9�(���0z0�e�]�����R� C�teR���'�aKP#Ye�U��j+gV�Fu���>*ԫ[�t�NZ�S�V���k�=p�xM�p��p�r�,�\B�F4PA�Ь-�m���V�E��ijo��a�!Y#�E+E�V �.&]2
�,.Q�����
+��#B��k'��S��a�� ����f�;�Q.�^G�4���d�o��YJ��)���vE�v&�:w$�W¢�CR�f��`4D�`��ި��h�֘����y��L�4
*L-�8S�0��Oa�� b߃�q�xB�p���F��I���ƾJ���P���T�
�
Ӑd\
��3��h�.)ڤHh�b����`1CiMC����YKrk�@f��Pj�&��<�$�!m&L�{�C/�*��9�A#��Q�LM>� �Z�w
,�0Z&!�:��e�ؼ��mDBJ )�O�"Ξ�X�2{
+����I-�%�����ӂ��NA��� "�5/��n8q�{��P.пpFJqPQ.�hߠ
�a }#�
ڻl���CB�,(������.��5�^� 3
ٲ��%!�P�����X�/3
c=TR�Fi�ޒ��-v�ƌe��cf��1������"|���z����w?ϽƓ�k|��f
S�'1����11`�_`�iL�^���Ӧ��M�0�Zm��Q��qM=�X�@��@{Qވ�ʁ܋u��Rsǚ*|Аik�1%ȞIA���n��
eܺ/�
���i� �è�E�
Y͈�0��n�7t>�%x���w�s��x���8��xH�p��m l^��5wʽ@��� ���tBhm�ַ`̆Ό
+s`d� �wgx���F��'b"�G�`X�|�F��+2�O�����#���_q�x�{�����)Q�U�,����H��k�h�{nL
��ã*㽩â��c�g1�xnv�c�'�>�ŎaH���fP�\������?�s�M�c�?F7���9��o��]�X�?�T�^�
�)�(�5�y����j�lm��$�'u�9ّ~�.8�=�c����G��8�̣g�Jz��a�j���B�R�bg~D�d��Ib�;���w��Qޠ��L��=5F��\����>�:v��f��kfW�d��s�@:ey�1ۗ���i�3��Ŵ�D����C����yH�,Mt���ʑ�ڧɟ�|�E*��W�ৱ�;�l���K��@���<�*M�գ��4����
4�w�A�;�
|�[8��9�)ZI���:��GK�U���7�S�
�=Y��ʁb^���a�b
�n��
v{�f?4-�����ъX
�E��FT,nK���N��t�5]5�S���\����%yj?��7�#E9�OPO�wU�zA�j��G(f�]��U���� hd��q�z
+L߂�&8SSM��.@������/�2tI�e
>W�h�*�W%�zP����x��-�G)���B�=]�r{h�N`���9
+�'�f)X|'�9qQ\WMp�n����n��A���u��
wu��]�K�^�{
+�x���[��u�b_�3��ъ�Sq;��U�r�W���(�
e��⦸%~�ŝ��T��V
��G��?�����s����R�x�|�R�����C�@���^�������Bn��ʽ�ȵ2��_B!h�S<*3��3���ǼtQ4tQ5������ڀ�6�����Bs.��>5�� \�01VLs�b�R�P^�
bxN"�H�)<a��r��q�?�Q������������[������wi'�� �)&�Yr.��r��+H�
rE)�<$I�4�r��/�1=������v_%{�*��o�獿��+�6��pn�G��r~)�\E�X�r�+�`���� ���P�{�;��}���<������z��8W�7�:�CQ��
����9C�h9���7��k
.U\����BK7T��l�rq����uR���i��DY;�'��e
/��JT���u=l����ʱ���s�|��#��\QM.�&?�&�U��l�{��3SJ�|��;������`�'U2(�0(���aT��a��aQò&F5�j
�T��}��M��0yq��(.V��9�|_�����Ҫ+8U՟Sl�1��
�����;8X#����SP�yu�����
v�
�]��Fe�"�Lu��Z<�Ӑ{5Zs˲+W,�r���k�p�ʏ�zS9Z���`�%Y���Q ��C��$��& �i����v���09�ϑ��6魞���`�H)�0,_��ڭ�X�|�M��`ՖR�
o����^�I~� �k�%{m���kr�-cg�U� [...]
+:8�������c;�,�)dt�Iz��l�_DZ����'�g�^I��V�
$:�'�w ��7�q��M}
�
�Y�J~��'j����_Pk+��*s��5yv
���@�� �{{��g�}'`v�NR��l�7�D�$8C|� b��y@
���4p/Q.'�p�N��ֻ�����r���ow�Q�ٳ�
��&��"�O��ٓ:�?�=���K ��
�L���
�K�l�d9QnD��'�=�0w3�=v�q���S]�AQ�g�%�$�f��M�6�hR����D�#
�
�²,�,��
+�"� F��4$QaRM��qr֘c�ql'cM�6m&��h��c�ȶ���c�g��{��}�MWh5���BE�Mb������@��V+�h̜'��~���Y;�C�2�� b7�oS<�
i�mΥgK!�[J��Z�έ>v��k�=������$�@0�
� H�����LJ��I\��<���I�o=
g�=���:�W�r0�~7G�w�J���I�Bdvnˢ3���$mI.Z��iI�Ln�9��@�����_����ƿRc���^Q�
&$nh���)��V�S��y1�
z�0�����IXHOR$]�k�L�D�1���tZRMӊhNsД�1������3���
�6s_��x3/Q�y�����d�p��?�Z9"u��iO$��8�
:�ѿ;�tÎ�e��?IK�F���4e��ʡ!ۂ?�N}N�95��6���Aun?U��xL�p�.Rn�
W�)� ��3;̷�ū�wb�UiOV�CZ ��ow��tf̥5k ���r�Ӑ��)���,j�
+����滨��RUЈ���y/��a\�p����|�҂��~�$/̗�ԃoȃ��
KՎ���GtfM�%wMy4䯤�`-�f>s"^K:U��Ex
+����(/��*j�iݍ��,�� J�oc�^���[��!��E�������K�
̈́Y:�C��n'P�+��E�F�-���Keq��T*�s(�Y(���,��(��^�B����V-hE�7)����̶�ba
sCo�:�s�`\��9�[&��h��0O��h���T�<����
�J�RV��ÑE�� �Æ�YN���3HaY7��g0�
'��u��>����#��4D�=�u�������=�u|�Y
X�Y�C���x
�(w.�Y�
+�+�ˀ�<���t��&�*�X*�0�����swa�
��y�l���Wɪ����]!2��\�
+��V�S�
+�ʠ�Ү�A��]wଘ�ݽ�'ke��1X��)�2�_�M^�Su)9�J��
dy;����#�w
��c���$�*DJ���s��>�P�G��/ݝvy �j'�*�sWކ�z�|
+j��W�8���ȩ�Lv]"�ud�哮�Z_����I�}$�GI�%��'��"�V�r��y_��yp\��K�{�����]Z�m��]5`�����l� =���(���$7ő�d$�)�mͅ�7;�k��5����>
�ab���LLӗ���6��0ou:�1i)
v��A�r��K�m�W�({���2�m��o]J\�*��=���X
� Ķ�ӑ�Ǝ�wxX� �sOw
bM���������"�U��9�{0.�GT�^E�v�<��GڶF� B�b�E�؝w��k6�w-$�{k�W��'��
O�$�do&��ZX�[ƪ�:V�u�X�~����Ѿ�<��7
��|��
+�r��j?(��:�N�<���Y
�@Z�u��^�=�X��
V��!r`�����j�
F��AK�'�d�/&b���CA
�e�1
x��o�`�(�����v�t;��Au�U�U���N�v���S�� D
�Ăg�f���<td/e��J���sFR�}4���:��zf
�Ō�a�=�}Ǯ1s�{f+�
3V�^���mi��t�K۸
�a�3�hq
�
�z
�yqw
�ɝ'�qlj���d��5L=i�����6nfʸ���ۙ41�-�:��ƿb��SN����N�G�6�@�n(�
�
w�G`�t���0s
�| ���^�.f聛�˥%��r8��sV��\��e{�'v�a8���D����8حwQ^��f�ނ����'���1X���;W�3NôW�V�+�x�V
�iz����k-�
5��ëe�]��K��}5��}
+/��o�k���O
Jw�t�u��.P����ҟ����W��s0����
�xO|(>R@�|'\Q@����-�����5]��j���T������/��
Ve���_ޭtJ�Q����2���`��"���v�p8
88(� �rQD��7Լ!^J�H�Ԭ
k|�f&s��K�̬�ɯW��g������w�k�o��W��P���L�NT�å�#m7i�=
ݏ)��+�'tψ����Ph5�JC|��tPs�&���� ��
?k�LJ�m�m��{�c��g� ��
�-�J�]��+�n�~B�����i������;q]� ~J5wZ�o�v5���4CM��������P�2nl����
snW�M</�
+O�/"�U���"G��7ͺ���_Y�
Vs�~a����[��v�rS���E��&�������<��N���"z W�!|E���
+v�M�V���U$�Ri-�V��P%�
\�VZ�k��\�
_�Kz�K�tQ|���
:�����sC\�
7�-���v4?)7�d��
i��O�V_(���Z!�u��$���x���g��_J�'���Z�����!
:�GEˆ����!�:Z��/L�b��$����%O9*��(Q��Ik��V�d�Kk�t���9����vu\�
ӪG�;��C<&���mC\\�?@����-��J�|��p���4��+�8�|E�\�m�V�7�vi��� �<O���_�|C���?
� �'��V�c�j�*���`�=Z���-Dz&�J����!_Y�5WZ�
Rm
TN(�������#��i��5=Ϯ�שky��
jŶ֍<��E
�Yk�W{峻��)�n�h2���8�"�C�b9�:��
s����o�;������<Y�k�*�վ��
j�{j?�O}�֎���;��bP#�⾾�9��>m
���i9�4}��-{���
j?��:N`_� �v�浿X����Χ�Q�mۻ�Pۣ��=�噥lzv
]6��e5=����Y��ƪ^wY�۠��A�Cͤ�'
a:���ۏ���v�x�SW����g���e,;��Om�0�>gf�� ��'��/���o5}�Rݯ���Q��l`Հݬx���gX6�
+�]u��,e�1
�
t�|�>�Q���ϣ���M��ґ���b{��l0�W���5���X;8��!��
�d��
V�4��aT
+e���,
^�b�:�
���
�/S2���E��
n0��-y��c�� ]�����
̀;�=�V�g�8t ��FP�����|9�J�=�,�`ɨ�,
�I��<�F���s
<�(���1�z}H������`���{x>�Pܯ��?'�������U�]����Z�+U
/�j�0*<ǰ�ˏ%c�(Eٸ8z'R��d��
J��P�SH��"
+�|�O�L��>r}O���%پ?1�� k�A�O#�bpY��i��Fj�P
R'6�ƣk<;Q9�7K�S�3�2_J���N�D3E��̛�L�:������gn�BrV0GM����d�Ϭ�/��Ō ��{�7�s7]���?�6h��=o�5z^#*�w`��
e�����(
�D���D�7��ܠ$r�Ҙ�Ivp
Y!
�
�`f�2B_'=�8�C/�rg�n�`��
�C�O8��k��fNQ��J�xb[J{P2��A��C^���S� � ;l*��md��2+b&3#r�QBz�2�E��Ԩc�D�'9�
�p��������\������YG��#J���8�+a}�
JN�(�#}Ȋ
+$3*�Y�&2��̈I&=&�i�9���H5-!ż�y'v��簙n�c���ȷ��3��Q�;{&��)�A�f
�P�� ?�3�Q�Ɏy�,����d��I����L�����;����8��a�+'�R��R��r�x�Y,q��N`j���U-��Zcy��Y'T=n���Մ
SG���df�@fĹ3��EZ��� R�#I�N�aMĞ�$1![B>V[����j������O� �1Y
bⅥ�K�
O�W-�s�f��HX���T�W��1�knj�
LK��6��h
��'���-�DB��=�}&q�<b
��
+19��8@��
��kD$D$����Zt��o��Vi��Q
J�Xsh�Ȍ�t�c8��&���c��
$${cM��%%���hbS-�S
����8s�r�'2���̈́����1�Ϋ��%8� (���cT
��7�����.�,�+�\�����PGP�E5�qbP��
+j0.D�,eO�
+2���H�8И��"6�����Ĩ1�iMԚX�����q�=�s�s��=w�
+�`9�
�'1���7�ڍ��:�J�mr�����
�,��YZ
�e��Z���k�
�E!Q�
+I���\�-ӻ�'5/�<B
�#�?�4h�k65q���
9��]�;o��� wc�F�Ձm�2�L>��|�0-
s��w�
>]�
�+�p/-�X��~���0yD&hN�v͎,����� ����=����
r���uj����]���o�)��&f��'LZa�EQ}�p���:B��c5/z�<�gjN̻�
�Y1���N�!������
�G��>�[�5��>�[�r�j�ۖ.���������ƀ�`f�͒os�V�3���ěiV��f$�jz���%��Ԥ)��<[��hb�R��� )�%��4��iLj��S/�9停�^�9��!�����Z���y;�P"qG��N��?��ɤ4c���S�3�5c��f��K�x�Κ*笹��%�,9f��C�f�g'jxN���T�.�l���.��2
M�7q��WsQ(�#��Hr�EZ��K
q�چ?Srɑ
r;�~g/
�9H���d�?R6�e]0UC�\�
+��V�*
*ܤ��Ѳ,�V��2�+:��E�eQ�T�t�;!��Zbߏ7o2ިX) �{��I
��lg��)�(��3��5V��
�Sb)��.uT�RW�(������l��Y�Fo���sY�L�w�c�q��ݒ���ԩԠ�%-T�.��2�w|"9H����,�`�4=_���U�K�A˥
�$�J#��2S�*
������[E�Q=
xث�s��i��� j�P����J��d��(ǹ3�Z��!m̖V�J^�<s�4�Dr�k͈������dRG#�!�0ѓ@x�}��x�}����?C��$��9F�t����jd�
�O�!�+^K�Isˤ�xGUI6x-�x���i�g�c��s��^�+]�!�/�+.4��:/��<�7x���E�Ѭ| ?��F
+�w[9 fr�{P�O�S�:�5����o��ދp��
�n��>�D3Fs�� �s;�C�����7��R��r����a8_������@�C��1{�F���l]/�e9F��&�k��/�7�� ��>{��
�Cr�����1�x�%��z�g
+�)�~V�0s.5�J�����"�v�=�?[�91w���
p����J�A�� H�~���
<chyA���Y6�
h
+
��5� (8�b�l��l�4���>0
�
f�"X� "�J�zɌ����Wf�̺��.=W����m��g��1��I����'���O���`P��9נ���=�wX �q�f���B�LQx��$3����ѿ��k7�r֭&='���y�?����f�;p����1���Q�^��-��;�No|+�k
�@<ax��{ųz
+�
��J���؇��R��:�����N��
V��Z��o�L��sy%+��w���sq-��GLX1�8��l��ϕJ�d�ʥd��ve|J��zA_�?bG/8!��@}+��j���gK�ώ8���s�-��CL���'�`]�6�(Z��@��t����3�H{�T贎q"�p�������pjZ��M[�̔<�"^+�ʁ�p<Nw��ĵ��V��b�HL!��+W�t
�L��Z�[;�d�
+�x��`)��V��7'�oG�]8G
rj�י�&��l|
q-õ���W�jۄ��m���ũ�]�*�g��C���Q�ʌϨ��S���@{:=Sqg�vu1������7_9�Ԟ<��@�m�Nvp�1�i�5�Pu�E:���:��Of�u�{�tSy����3Q��ҵ�W���ޫ��G�˼^�}����r�=�v
�r ��{h˵���� W��7�1M�uʴ��
Uu�Q�4w���3Un1_��/V����X�=7�xP�v
�P��X���|�
�YkǐC�zB�C�*�������T�R ٺC�R��̹��/
��g���u{Լ�[ԁA�*�r�ޡSUl3WE�^*�[��a+�7|�r�h�ۡʱߢ,�De��T���9�)ձNɎ���xG�NO�dP
D;�`�@x��u0�"[^��nj�^�
zȪ�Jm�i�p[�;+�a�r�fj�HOe��V���2���>z���)uL��]��M c�?�D���%�̃�.�0���#"�J�4cE��p0!���d�lv7�d7�c�96�d�M.� �� IP�`�h9Ro[pTF���th�vh�V�ڻ���G2c��L63����}���~��4
o�
y���?��Y4�/r�6]����`�b]��vH?f��cn]��Cws$��v=�px�"�42e�?����.쮠'���F:�tб����Q�b��p�&��h4|��p�z�W�b7�۳�_���ш{G�/i쟒9)���1�߉�W1
��C��2�'�>��q���e�o�3����2��iKl�%� [...]
ސ�従�Sb"N�b0�V$ѝ�
�!�eD�bL�)3�Ƭ
�Y�4���Ln�L��f7Q��Eu�A*s�R�3�;��rߣ4��d�W�&�Id-����]:��;�'������%I_
H]Jg�ݴgn�Ŵ���p�9�sS�嚨5[�+�*��J�^*,
�-��Y�Pj=���<���8,�Qd�Na�&�y��ڇw��
�{:U}��=�P���^ѩ,ؖ���ܵ��6����ךD�-�*�O�����U�4PZЎ��O�}�}�B�<v�;�O~������X�
|��+V�X��Ҟ�戬y���R�-m�[A��^j�7RSJ�=Oa��tʋr(+ʧ�����b����"g/v����8�&��;̎a.
+�[(�
\Q�_��;g�y��
8$��f�/��+XFMa��R��Nyq��\�T�]&�.+E%
+Kʱ�Ԓ_ڌ�t?���e��[v�첷0�^%��d�d
�F�^������
��
�n��_��+�*�]wQV�
W��e�(*���< ��H�ی�m�RQJ^E5fO#9�nL��dy�c�&�s�4�oIs�����e
��}xEk��j���p��Ю5PL�*�+"��ȳ{�F�v`���R
��:���l�kl�j�ɪ�`�6��� �{��$��S$z�$��)�5'�*@|�"o�_��l��:��GMҮ,U�t��R���6,�A���Ov�VL�]d�b0�'�^o$��LjC!�
�$5ԑ�o#�?���({�O��9������Ѿ �u���>8��O��qi��@�ꮗv��
��:��%��"�q
�MIn
+!�9��fq�)ZLĶ؈iq������f"[{ o�`W�
;[_%��
+a-!�)@X�"�)=�ii.�nE�&i{��U����*{�@|�2b��&�c=�
�Du��ExW<w���+���Bv�!!�~�ww��g�-=3��Ȧ���3���;ľ^P�s�>�Q/*
+�S�
����Hڹ͐��� =�_�+�
⡾
l�����P�
D<���#?��ࠋ��?����C�z����Y3�k�q_��}�w��Z�'T�W�Q��
P+�R�T[�
/��>�������+Y?
�ڑ
�7̚�P~0�=���f���V���k�����j����㗹c�
�
��UÁoxF{}L�=$�����
ivh��$��!��l�uʀG���嬜\��Sk�mj˦vp�T4�L%q�tK�
|kZ�M�A�#bV(@N)�N)N�aF�c��n�>���v퇼~��A��P��MG�? ��Ê'`�2���
ؓ|O����|�j��j�̩��t��Tܜ
67%�����u���4)�vK��
�(8�=Ы~
��A�tם��I�}�<#��8-�ܷ�j
]��32`g�
��
�ӄ�y5��j^��_��/��L���m���0�G#��i�c�t�?%������s�~^�(^//�%�
^���コte_�!{S�qA�.ڋj�*�
+�tV�]qU|y��^��ٯ}.�Wl�if���~
+6�����˾�}Y�&��%�x[�s
\�!/H�p�L�6��L�]@�����_�]�����e��
��ۮ���١�1i�cO�
��
?��L� TT���G\"��
C)Q ��(DdSY��a��af`�e at v�YP�h�$.��Ւf7�Z��Xk���1դnhbL���39z8����a�����}�b6c���
�9O��
����c8��&�&sr�{��2�
�q�����
�!���A>:AN�QϏs�*�#�`�
�
�x�i����iw��������"_�;�
����4� ��6(�EP���uL�ph
�d&�Af���X�L�$�p
,��̹�����3�w��iv�E7'�<�9¢��
���ri���'��w��
�&_�͛��)�9�Z����D~��>3�KO1
6<Dg�zz
=m��������o�
N�7���L�?���x���
+���@�3q"��T2�x�@o8c�glJ�
�)��<:J���*驥���Vz:��KG.1���,�s���\�Yf�S��
9�
v?
����s?��RzC��h:e� ->G=�,�|fx=��u\�:Σ��&zvг��n|�A|������~���
�
'
�p�ԏ��<f.�Í�E�1��p�ǘ̪�
3c�r�|T��#�Ӳ�Y�㣻��]果d.~�\��o��Wo2�#��03�M�
9xv
?���H�
�m>W���b\��I�jPѓʻZOc(����rF\��X�o�F�pO1C��A���x�w�cV���{h{��]Ã��{챟B�
z��?��鋡KƘ4��ɠ'���UF�&��
��3���
ڻ��}ܕ���.VS�8���t���d�g�]�����ω1OgN��b�Hg}�
��'
ƛ�7!�סgR1^{Ά�ɕ��{�[�5�
�S�������S�5�*Zg�C}��m�������c�3_��I<J�Md�.8<aN�����N�B�L)�]��7;�<��.�lt��c�
��>�
msk�s�6�p�@˼��>�(��?@��%���j=~D��0F���5����_�g��&�x
��i�pqC�
>x�m%�������eh�����XhA�g�=
��
h�D�W�.څ:�n�xB�ϻ��͋�B���a�b6��<
}���
x���Qs̓n^���w�W=�Ǟ��h�Z��ޡh��B� ��*��C�R�e�nY
j�JP�|�,�C�Vl^���a���?�4�J�Gq��"����>�G�ܓK8s����+[#ty�������
h��Eӊ@l��@]@,j^��z�
+[SQhFŪ
l
+*By�
��jlގҐ=( 9���(
��Cob]�w�
�, ��
��
+�>�#�8���قt�N���h�)hz�
[�Q���0T�Fas��ظZ���d�4<%�e(�&�v#Oԏ\�o`�E��
d�
##B�n��\�"c~��#�={�0{\^�W�AQꊪ՞��CyD0l"��ơ42 %�jGPeAAt.�K�.f3rc`�#K܋
�qX�g�.��4�0���~�M
���0�C�=�y�w�mᵁԬ�J�,l��[�/JcQ"GQl
+���D^�
���ȉ��*)B��
�zX���.�)�->A��:R������
�9��%��J�}alQÁW8�\����Z^+"���LGY�;J�}P( @�4
����(�5Q��D-2e&dȲ`I*@z�
��Z�;�*�^~:�)h���:�!T2�N��k���!|
�3�{��>���˙G2E s�/�Bn�rX��Ȓ�����%Ys��JL�
�yHU�!EU
���>�Շ�T����ȓ$���s�m�������6���{I9Y϶� i�)\aM^�L�RXT�0�� M�&m2R�z�f�t����C���n;����A�� ����
@� ����܇����}t�mh��}.�l�r�N��̂E�4�b�HM CJJ$t)�ЦʡI�BeH��`��P�$cd�&$� 1!��>b�W 6܇8U�8����>
3�
�������ލɜ�HG�
{��_�`��q�����J��2M
Ez"��*��
H4gBj.�ļ q��-���
"��.�Z.Ad�Q� Q1�9aG��Q�
�[��_
XR �ЧM���
+�e�H�\���0$dEA�%A|�q�z��-���C�Ն��zDX�n=���a�Z��t�G�|�q�+AP
��cI��D�,� ��f(��ڃDVY.�#�M�r#�l�A�Ub
Z��
+S�֩v�R�ѡ��h;����&i'|N�Mr��y�����sI~����B~+��[��jPKݷ�s�
��G��?�K��˘=��5}�����Q@� M ��䰑�>^�'kB�t�>W��5."Dc"
��Q��z9�Z��G�yQ�w�
��|B�r���!�M䝋;��ȰX
+ý�� f�) ��+��^��W���?�]cc�5&�O�c&hTl�F��Ԉ���]!oC��R4�`�P�V
1|(w��r��Q�1��
��9�����X�b���;
+w�
+i�J�0ij�41F��J#�:kD��|���� ��L
�����8M�s䖴T���咔������YNɵrL>/Ǥ����"�9�zoŝH/2
+�&�p܁���~#�����K>�'
���f�A��>P��
��+��qr̘����c�/c�z
�iT��Ru��#�̳�7�V��g��4��H
�rr�ƛ*ES�F������=b-�
�9Kr�i�
�v�렮yβ��]��:�����u�7��v�%jk���)E�LjizOV�pM-�U�Y�r��]H�x��F�w �q���_6�_/
dduȗ�
+��%6�.�S�R6W.
�
��WʋV:h�2�Z��rٻp��3��2�<sxsX����{0y�O�����Ҩli� �b�e�M�-̔[��m�µ�
�6��F
U
�U
4U�l�4x5��N�"`��>7��cx/TD������
�»�NR��9����F�x
6K��H���;aq��n{�
{���%�}
��'�~�6�E-8p��_��-��W�o^������ڿD�"_�怷�R��{� |���\י
���1.�ǹ���
���|¦s*X�'�z
|��O�si���{�@��:�u�`�S�7˥W+�A��x��ƿ_�>���N�)8
�O�l
�\[�5����+�#������#��4�7��+$q�/]�n(�������[ً���z����ձ&��&�y�
h/�@�P���5k.�
�[\��pI��8�rߣ7��x�I�����x���i��*���gR��8�:���:���ͼ�79/�ԍ���;��
XbF)
`�,��]z�"�N
/8��K��7Sx3b�
��|a�
�B_�`̀w �y4�i1Z�)Nϔ��0���u�&=U�R��0�=b�{@��gZ����Q�"���=O����'�h�7-�V�^
>0
��s6�E<e�p=V�
*
O
+Sl��x����X�[L��`Z��s�캾�_��|��ņ��ͽm�
����k8g��<����L�8bu�8n�5�¬{Yp�0�V�*;h��,�)��K,�:�O��z8Ռ����s������]��
O^�4�|��z�ĿG$�X] �s�qVF<�x
+p��
+�t\{x�>V
�u���J
�r��M4���Dm�k�tַF^~�k���7�g��8���q
#���Q�T<F<�x�x�f�{���o�J;�j~����h
��������ٗ�\��9�㚂g��<u�e�%�}ı�8�(A5Z�+����Q�3�Q���ߥ[6�����7����|
��zu�; �P�6��&�
+�3�|�&�Ex�� ��
+��7"W:ݐ�k#�J"��C��tA��GoP>F
�&,~vmֽq��l�e��#�:�
Dn^8���k�Y<�
<�y
V�K(�(����&[�S�U�6XU�d��r[
QN��Z����l���Ƭ��ЦK
�-ۛe�e�;�R:he9Z�g���uW��U��W��d�����v����*l�T
���c�L�b�k��
[��ۙ�e�I�.;���Һ^Pj����%v7+�������q;�1�������*�6�l�]�:8���SE]FkC� 2uPn�7��s���Z�u˔�;D��QJ����k��7G��J��] ���tV��n*��S��7+�,8�y�r;�=9
+���6s��Ֆt�Ua�~2�qWN?_�s����)c�4�;��ځ��X�.AJ����N��u2�)�m���j����"ܯ+���B��
+�7����x9�ȱ�5d;�{��_29�S�s/erQ��p�u��!���<f(~�
��@��*�3D1�ъ��U^FEx(̻R!�{�һ^A�W�����y��j�-���_���]���/�|��s����.�(�;��Am&��zKO�{Y`AXXX�X��(��&5&Q����k2��z%M�1�[�
��4���1�N:�6F�}
L�|�ї��}�}����e~�\Ⱥ��
+�38���d�B-���h˧1�
wx5
��E<IM��#wP5DE�1ʣޢ4�*%Q�)��P9F�����R�V)g��`y\]7������)k���
@kd0�Q�4E'�1S�I]l.���T*q������r�vJ��)6
��x��_q�"��
yq
�
��}�,�������n�۬k����Si��Es�?�U�#��7R�WBU�9T$�49)3�Qjj�8��¤m�'��#���g�I��-�K��
�m�8�U��������F�cG+s����ڥkG��~�7��3�O|��r\IaT&�X�D��4�R�)IqP�ZFaj
�-8���5o%Ǽ�촗�J;�5�2�XR�cI���H�,`�~���-�g�4��n];um�En0M�6�W�|*R(7S�MIZE�Z��[rqXJ��pa�h��,kV�sX�H�����'R3� ���>ʥ�������h�-Q; K�F������qT�M��2���'(��� 3G����d�Yr�r�e��]���&��$�M�m�$��k�s^'�v �����H��9�E��z�_�;��E�ݲ���-�e��P�9��������
{N(6{,�v��iXs���擞W�9�����
Hr
���G��5�
�c��
C�7�Qr<��
��^��Ks�Y=PLj�(� g�r�M~�> {�6�|�
X�D�V�� ��B+�
�H**�TTCBQ����wS�+��_%��"E�Q�
"�Gy[s?&�=��.�^��!݆,�+�ٕ�۲
ƓQ4���٘K�I)]Ari��X�L$��c,��P^Dly��f"�=�;�!�9L��A��,������z*�����w��-��nK�z�hR,�<E�L��RHvN�T1����0TSI�+�(W
+�Lª� �v\�&����5O��f7�j^&��]�T_#�u��*�
��S��/�սQڝy�iWJ;_�6i�)����P3���iD��"�~!
�n!�!�U�DV��Y�����Z7v���Ǣ��Y�t���0��c��Âz
R��z?�yoW�=��Z��.��]���_Q�P��ը�����V���aI�?��V��
�/�
<ޞ��+�;
+��QŜ�Vfun`f�N�w
·�-|:>į����y��:�aվKu�iK�wC��]$�Li��)�(���(���k`~�d��ev�\~�����L�ǯLjOO*?��aZO���������
x��gR�i
��
��o����<xwyا�����
�*�N=/�v��Ӥ� �Hi���b��y��O���>o&����7�I}�<ҷ� }��K`ܖ�˥�nq��E�'�U�\�f9��rP��)U�V�vI��V���Pڙ�NҟG���n�?%�M���*���1Q�T�d��ӯ߀^�Q"it�Tܠ8��*�
ֿ)<|$�����aP��{ԭ
Mꁴ��N�vlm�~���0e~��
��I�'z��
{t�=:ǐ>~C��
kه��
V��ʘ{�u��u�d��\�L���<-��6���ҭ]`�x�
��<s�G��/JwH�Q2��P���
��;��\8�s
�9���D/٣�QyT�8�Kחu}O�kB.��
6i�k��V�Ku[�f�@5G��ҝ�_�>��Oz�!q���W/X��L�Io�A��S2�oȄ�V�8���>�Z�*�zqN:wF�����Oi���1���Мͪ9�yX�z�v_�z
�|E�&N���xS�Nh̼�
��v��Cc$S��q)^FM?�?k?/k�G�#z������T�[s.�e�愽����̐���z���̘�C�
�![P蔆�,�HR����_�D���q]/���|��oJ�K=����u�vz�z��
�h�y��}
+&�
����sqL�-��Xh�|:�n�ۚ��2�wd���
��A�V�q_
�@M�N�
�9��3E<"Ƌ�Yb��"]�E p)���G+�UνK���F����K��k%�*y}�e��zS���y]w�CO�&>��b���7��r���!��Q]&�Q�g�UA�� �#!��d�I�ksl6��n6��n���6ɒ
q!$�` @
����[T���e�P�j=������Nmkk��^��a�>!���3��������{��{�t�����Y'�O�vq�ʼn��ϟ5��4�?h
�2�0
㸈�(<+LO�K�]�g��O�����)�!�zU�;���M��W�� G�/�F����%(FX>"�Z�x_�xO��9�)%��8�@����6�+J��E|Q�|A]��"<'={��(�s�ՠX���t������V
�ҡY�E8,1���y��y\�<�g��
�ֹ�q��yJ�hK}�m�9�+��Dz�*]͟�=/)7>a�~��� [<�F���:1�h�C��m�~E}H�
{�8���������r��V���_��
��JW�?�>���s�� �j�ҔY�b��cåQ�1:��ֱ��~q�� ;�٧��p����{J���V�.E�V���wJ�S��_��r�Ml�
��y��S�3I��s�"�1�c��zyi�E��!NX�'�52,֨8Ź����
Z�Cʊ�J+uI� [...]
'�i`��~Ʀ��oz���o�����]��e����yóαm���z�[n������ύ�eBs��u*u�=5KW�l��zޭ���53�~
����
����
E�kfύ6F�ձ{���753����
z^�ǶE�Zt���``��lY�(��>Od��.���5=���4q��#�3��1]���8�D��^�g���f�|{�atq���1b0��[n]�`�r7[W�\�����1�b���Ȫ��:AO�27�Bq���':�/��N*.��tս�@סA%���S:�ǥ����Uv��{�BFV�2
kd(.���BVWп�J_���
"��ܜ��Ƶ�I�;i��1:��"h<C��<�F�.�?0��1�?yR�
zYW��Z]��U�
��J�ר��gë�5a9kْ��fc
�u&zS,lL�N��;�G(����n:��h��-c-��d>�/�4f��'�S2��t
eL�}��9��t��o��u�K��d����,%�Oo�:z2��^_D(���,+
�u����К�97�?w���=x����ݏ;�������{����F'��{K�>���a�N�j
t͎f����J�z�)s�Y
g��M�3/�`~>���T�R� P�(@SQ'��^<��Gq�
�Yr��'�)y
[�o�)E�.��[qʅ�*
�?� c٪�s�_�-RD�ɽ�P�|:
+��^�@kq�%��M%�J�4���-s�P��]֎��g� ��]�T
�Zq/UO`�xs�'�˿�\�Ti�״�O��L���{�*�����]Ū�K��Rj P
��|
�Yx̅4T�S_Y��҉���ai�^Ս����,U�0W������V�S�o0Y����*%s��Z�s��i�=$�n��CbnV9ڣg�I}�J��y&M���T��J�U�A�5�Z� ��B�́��@uM3����>*��)��d?E��
����?���آX'uAkp6K� �~1GT�����K�[ծ�-�^G�mu5+��'`w�bs�`�-���i�쬧��OY]'��M�n��5F��$��G�v�D��#���A�S�Z������L|�i�Z}*����鳪穁:�5؝��Vg����ވٝI���2w��jJ�y)�����
"ۻ���o��=K��ER=���wR��I�Gy:Wg��T�Q1�
�,n����n��j۬n��̤ܻ��ƕ�4%RܔF�/�_1y�Jr�v��
��[��I
�� [...]
+��5$�RX�!��
E��`&~��Uݍ�tw�"��e�
�w�$� ���Y��.�6��š�Yܥ
+ZzH�qy��[���M�/�e�y��E�BP.D<UTDDD�[`Y�`Q<�R/4
$
+tc����x�j=����Ա����4�cc�l���4��]v��=��}���2�d����`O�
�/�1.��o��|�h�a�4�0F^�Hy'��8]��s�n�VߊR�V���&9W��g�q9����k�4��^�9�YԆ����v��R6�yY�L�ĸ<i<�%Ҩr�?F�j���-��r1
�˦r6���)Z=L���i�
M�r0Ȯ����[�1[��j�@�p�Gd�Nb�� nܼ
��dؿ`D� ;� ��a9�Zɕ�ѩ����\xffK3������n��eCq5�X�5`x�*��10��Z�to�O�E-��w%�&�ZD�SaO�= vD%�e�뤁,�� uo��X�@�xl싸x72[n����u�4Q�M$��Śj�me�)��}�3tqԆ��b�2�.(&�R�8ؑ<��>f���}
Y�q�
m���J㵍dvlǎ
��ʡ���J�[ n+
�\�Zѻ�����p����?U�V�I��l���P�9`�VJ�yl�:�no����F
�A{Q�h�A��|���
/���������I�w�N�܌������x���n!�N'�3�w,>�n�|y��3�����~DZ��߃萵'&�{s�
� {�f�8� �l�8z�N�Bt�'���9��UK�ˈwN=�1y���)`;����Vn���6z����@����f�֔h
N�� [...]
+�
+�w:_M'���9��_���l
�q�>��.a�����
+�j>A$?�#��n���9��p }I���2P�����e�7>������j�����q��?q/�X[�q��3��������
+Y�����w4��i���}B�?��gֳN��1�
ǟͽ=��G�(%�9h��+WO�/�0�����;��GLMըLU�d��O�~�d�5��=�v��
�ͷc�[�/�3t
]����%�=��P���
+3�<XY����N5�:8��4�Mp~c��p�!\��N������ѻ�t��?����ꍟ�V��a�L��X!�|�Ɇ���A��O��u츊
��l/2��g�c���>$�������N�t��?6<G�䄟�a����E,nh
+����0�)�|%0
0�`Բ=�a�e�f�;t����0�8�
+)���,Y�f��O�g��+J̕zS�#� ����x8�0�b�g�(y9B}
V9�*�n-�z�@�:8���
�x
����=du7D�^�����"�l#[�_�6Ok ���� X�8&�/��}�:��;`�~�x
;ڰc/��G
��I;�]�X����ꬶ�Ak����o�lU��nQ��μ8z
����'x!��Ym2�I0R��
�D=N1
�epV�Y��-X��
���-�|�5dy���J�
����m�Ӷ#�z
vR��s���+F�g:�φ�
+'�*́��
Z�uZ
+��j��a�Z;��*YNvk��D>j`/�������v%�=��p�
3���W,�xX3�ɰ��O&�ETB!(������ڨ�
��oW��qU�_��;*w�Ve��u����؎X�qx�%��n�\?�
��s7r�כX��.D�
�dv��UݦjE�D-wJQm��2��RM�|U�*U�s���^)�+T�g�J]�U�zBE�WT�����>V^_K��,/��<��
��E��`�&�����Xݝ�Ʃ�̽�i�+��s
��-F��ũ�=A��IZ�?U�
d��U�G�JV�ijNE�kU�Uy^o(���r��,�;Z8�2Y��ݥ�\w�ަ
��AK�� 5zu�i����L�U=�_�^cT�
)à�*
��!3U2t����W�,�(ϧ\��M��]�,�e��)����]P��m��{�T?K�|-����� s�fNZ�F�
+�ю��Y��Z:�C����/\E�1*����iZ<"I�#S�32S٣k�R-�Vz�YiA���E�?���[J
+~�YA�.rg�c��!m�6_Z� ���������]��Z�OE#� p��B�
����=:^
��Tf�
e��k~�"��+5�R)a��
֤���J
?��g�~S��hZ��K��'���u���Bk��5�<>2�R�/�S�h-�RN����
������S���7[sǥ)%2[ɑ�J��Pb�
+͈ڨ��]�}P��gu�KS�,���Yt�6� ����9�>?�i�Ky-By�ω襅c=� �G�Q��
���h����91S5;&QI1�J����k���:�Ǯ��.��3�?ƃ(If��h)*x��C�w�e�W�c�eU`������m�A�Z�R�z�&��z�I4U3�cSM:MMM��C�9F�#j����1����������{C�&%'�Ub�JH����R|��Gq.
�{��&���-f5od-��J��S5��fߎ�RQ����#5-a��C�����e%�����d�L)6��T�h���B%V*���fأX�qE.�/�]uxL��~;�fx�bv~��ӆm)H�#K��K�
�eCd6Fʔ:U�)JMː1-O)�EJJ�RB�C�&ŚV(ڴASL�a:�p�y��_Wx��Rx*�of�7�����7�1����)��8�}��g���
�9}�L�@�e��1#Ls��͉J�LSBf��
+�U���ZEe�Wdv�²;���&gQH�
+ɺ����
+1�)��`{� �6��c��6P4
���u3���g>*c�%g�+1'X ������q�!Ȩ�LMɟ���R���V��A�,K5ѲN�-;5�rXA�s
+��\�y����X��
�������
�l�p
M��RF�d�����Q�e�b�
W��Q�2}�"�a
+��(̚���&�)�Ц �v�+�Wp��.Z���N����g5��[�{��q�K���
�WP�&�Oî&���4ؙصT��,lt�Q�_?/
�P��&ق4�$DJ"5�4N��F�fktY�˪P6G�e-Q�����o�A���'�ҫZ�|K\����ߚ�߂]�KR;v:�$�1���ibEoW>�1U�]��c0#T#gDɯ:IO���j�|�e��j�}��W� �Vy�h���T_���[z�ʥ��6��ɽ���Ro{
5�PؙV)�T�Xא*��]��a��[;\>u�\7^���4�.VO8
�vd���H^����hPoG�z90n̡�R���Z�j
��6��r�O�up+��w
�4lb<�H�!��fK���\<�</y9���)�q��#N���v�X'I9y���!�g6,Fk��y
}�p��c��g����z=ܙpˊ%+y����(ؓj����S��6�^Ȓ��
��qٶpѴ�/�)=��BS[x`
�/z�B;�
�����܍n�bri%�&��Ri\y��6�
�5
���(
i���A��t,�Ņ��m�W.�P�#^:���
���S�v�_�
afW�����+|���V��J�#܊j� v<%
�'���Bi0�|�ǰ�q��/��,/x��'��ı�8�G�^l����A-:xȋ������-� �e�_W
`ΙE���
a'Q��7����J���ss_�{��0#,+K5�
�B_�җm,"��z^��:�p;�N��\�����Et^E7�H�
p+)ךR�w9Oh������������R�|��
��^�y鹗az����g |�� ��E
]�F��d�H������q�-��Zt]��,�]L���9n93�Z�eL�}�����܋?-�`�
t��Д�,��z�,�o��� �������w8d�@�����Ig��3��E�!��V)��R�q9���C�������=�Y�ݜ�
3�Q�x���E�z��{Q�
�z���8.�2�'�%�_4���9����fӢb�fر��9��c�}
�!�
��O9�<��
]D�<��3�͜\��~�Bx���9��|ަ�w��]@w�~�=ꇆ�@4� #�A���r��O��O�V=ni�n�f���|́���r
G�9N�*�M�L�.�Eu�w��҇�,:������
D�h
��}��
<�MY`é���?t�?�q�8.ǧ�� .�c��G
��8�s
��x�wu��}�w�����:��_
"��x�a0G�[���u���e���B�J��8��Y�xO�P�ɫ�Jk�&�8�^���u�:��c����:�~�?1p{�k_r
Ln#��x����+�\r`Xɡ�
+W�}9�:r�
��BKy�sta
�ߪ��}|c��E�~�%h������F_ �h0�����m4L&�hXI
A�\ⷒ���Rî���1F#�f���
+�֯�Tv�S���-Tg3Ym"�_B���O
w79��������� �x��د0r�%�\�0�0lt��
F-W�\�0��L�Z����r�
aR�Y7W�=*��A`^�
��=W��H�����k"�H*O.Ff�0�\��0ʙ ;�ZNF=�&��ʄ�&��j�2K�T+.�ˋ��E�[<��9�'=W�ˈS
�<I^~��M�'N*������±���3a9�4h1Oo�ӅD���=KEu�O�!'�9�����[�y���w�
+�x^�5��|`��ô�;c�Ѫ48��� V �*X5��g`-��c
ڦ�騃.��߸������z(��v�S�khs��W��.��6�+�?�����������6�16��m0��ƞ���
+v
���4Y
+��hz�*Su��M��.�m��mZ5��������:U��li�x$��ǣϠ��~�9�y�s�5�"�=�7�YNf
+NƷ�2�z�̌��qv
�wa.��c�A�ØI����(&��Lق?�:�p7
�
|����� ؾ���ݽ���֛J�A�l9�����?����qYXJ(�b�'Rp<U��4
�
�@8݂�
�3
�zb���f��������
Y���+��\�;�6�r~��s8�
91�b�%3�6G���s9v��q �V������\�f�!t��9RL T���"�gB ߊ�|;�
+�)
��p
+��y���1t�
G_�@��/�[��-�z�R�}���u�홭幂G#�r1ټ�s
�-䌓����,L
E�Hq�J�-��Wj���
�r��N��^8�������*/���
+��k���E��70��
+��?0U��u;����L�Z)-�|�v{�
+
9���I�?P����|�T��[Y
�H
+wU
\�Z8�Mp��`�f ��
�j��
��n ]�g`o�(~
� ��/�*m]
�0�op�y��5H�rG��j���8[��:�5�kK0$�����
+�4�k4��т��~t7��%�Y2�$�t:�e�K�
��h��*�PI��bP5�p��~���L�*�K� s���
+P�
ׇ)wC��Yl*B��6�=2��*X�u�w�,���p �^�$��h��Ъ|
-ʫP(o�Y�+��hVܧؙ��a��W��
�d-r$q
Jȧ��{��AY<���W���
e
:[�`R)aT���j���
+�zmj/��I�4�PjV �|2�k�h~�F�/Ѡ�
��hl���-�`��~��!^�
43��*���@/-C�*
�jL�bthDз5@�ތ�v54Z�Z
TZ;�:� d�9H�gѨ_G��U�鿏����� 5��FCm{
�a^��� �)����Mp�Q��Qv�G
tqL7j���eA�/D�A���
R�t�@a�Bn����ɍF���c�3/�Ƽ�*�*�߃��s��>���/�1Tt��s��u_%?B�
�~2=����Z�3�s�h7�Cm�@�9��RȻ� �j��"G�E����
�v;Qm
��B��ʭ�Pj�B�������Gu��Q
'���r
�c�Wȟ��9Ek at n�����Mo��eRZ�f�Hz���[�z�u�:�ڤ��SA�*�-���߇�4��'Q`��<���wq��3d��9}�D�-�Ú{��?��gs�\c
4r
�� ����%�
�P=��#��;D(s֣�)�Qg���(�Cސ�$�]
8�:���� �u
i��H
��_�#�t�%�!�$�ạ����b
��#[E��VI��t%_OA��a
�#�[��9�&d{[pاG�ϊt��|~
��!ɷ����ј�~
x�8�g�� �.�e��dO�=L9 ��K�Ev� ����V���1o
x"���@6��H
��CRP���qA��
���
u�b'�F��>�85��Q�Ƽ��#aڠqr�����vDK����������Ӧ��$!.�F�!bs ��X�!&6Ĥ�H�I
�g�i&��-�m���2� �`��8Ϝ/�=E�����Y at v�*��|@5٥|U��ɰRf�l��+O��,�5Vz�E
��<�#��n�
*�@"#�D)NF���(���/�8C�,�'k��~z'�md�Ɓ� ��0�q
H\ �bzq�^n���6��l:+ln+{.7Z�,ʅ��Q~���x�ό�&�?�}Q�S�!w��Q�a�u@��l9ٵd�2� �$�ܳ���y�^��/2�����
5�u6�
�\�
.�s�� ֹ
;�rr^��F7�vsdN�r
��?`�Z�0��s@�Q�x����+8\��-��ߢ6�+)<p39
r z�߱��w����b�f����-z��M����>����9��ݼ�;�5��6F �2����*wsoश������|��0�:k���MD�Y���]��.
~���2��|�wy��-�C����
�^��y�|7�SE���o��U��c}��g�����B��c����[\���/wٌ�6���0�w�ԻW8H���2�����#��L��Ed��X��E��E.�}_1j�Gb2�Fm4�h��N�8�m��15�M�4��c�cF{�i<�N3�~���i;��
���y~��<��It]�tz��
��.���E�g�
�ˈ���}��m�� �:g���Ay���C�����.�O9��>�J�]���$}v@���o��v��@U��<ة�
��2��Y�d��0����eè]AW-���6�+=��q�
�GM��x [...]
��,+���~��PN���
������8{_��էxݏ��Kx̋x���1�������:`t��1�b�x�z����R�����!�q�H~HV@
j?��k��81��-�0���S���ț�����a��t���N
Q;�i0f��c �^�W8H�R������`���;��
��@�^4��E7�%c���7O�����1� 3
+�R.
>�a
�Y�.���
+c�y�)��F�S�-|����H�6P�g���
+h����6z��~��x�F.(V"�d���m�T�
F%
�z2�c"����1
N7�_ at W����"�Ud|%]���YF��;i)�%��
'Ƒs���Q�v����b�U)ē �B<Ep
p*�x���O�'�i�<
�
K莧��U. �yD6�z̡
��>�.��u�;e��WS�[8�8ޖ�LL��J�� �
��O
���y�k��pV�]�����
���fW=��=�l
����5��M�5�4�X�P�QĖ/���aYٍvX�U��x���fx����Y�Y��]�tS
�=��o�uKz?PS�@����i�:��(��+x-Zŵ���K������B|���m��>��ѷL]O�4�_���WgH�������&��I��9t��B��q�k�z[�A�U��۪
{�ڰ�jz�A�:�
w+��:F��\y��|��������_�f�WWh��2kJX�:��mh�Zë�^�I��
٢�ȩj
6[����E=����>���T}I����;:�S�#�w��ĵ��Qh1c�\���
F֮�^�
���h�G%kr�H���j�p�&
/US�5�y��!�Y�
�M����ŪN\+wҋr%����˙�k9�n�,�1
+�
�O �I/�ZǨȕ?��c��ڝ��v�����H5'$�)1]�If����K)V}j�jS��
Q'ψ���&w�
���"}�
�Tj:��i�.���9z���@�N1
+�d�Ywq*#w|ԁZ�<)��G�S�ȟ+_z��L��f�ʓaS��2Ue�T�Y#רq��"gV�ʲ�$�)���ͼO�S�3�'���,YP�Gǩ�
����9�Ѹ��t2��ױsj�>3T�QQ�d%i��$���r�.И��gWȑS����s'�8w�
+-sU`Y�<��Z^Q��̖
ʲ�PV��2�d� �(9�ψ
9�9�����P3���߾,��suv��9r�ƫ�2BμQr�[T�_����
�TXP/�u��f+ǶBf�&����H� �l�n��t�}��et�
lc�YG���w���!��_��
ՠ*,Ø��rZ���6\v[��
G��0G�"��ť�/v�R�UN�x�.iW��[��e2�7*;[��7�lWI�ϔTrO�������
�}
���xm�&�ƯTi��
���z��$T��a��&(�4]yef��)�Q�ю
+e9=�t�S��U��3�Z�D���X�K���[~N1��4�yW�����~��9j��\
u�ق-�����
%̻�xO���܊peW��<&EYcF*ӕ�
�M�J��*��Z�S�{����^��U�]�Cê�*��K
u_Ux�
E��S�+����F�ػ����>��v��X^�_!Y\���[�c�46Ji� Q���YI�|%z슯q)��V1�fEy�*»@C�k�ݦP�
��L�k>ր�/5��O�V��~[G���}�V��p���MzU;�d��{0�ԅ(�~��|1��%+Ɨ���
E6*����~����
+�wh����W���z�_��g(2�x���H�b�L��>�0�������"�r
����ܛ��XD�%ފ&�
1F�֤��������8Sub�k25�UjM��L��4V��$�xd�[�Okg:�'r��{��{��{���n�b�7��"�E���V�-�C
`gÞY���
?~�b��5>g�c����D���j�=[��By�+8X�X;Ύy�c��;��e��
=R/�������nʅ�;v��y�k�X�Fo�
c5����Bu�"6����b|Ё�t� L��8��W^ʦ��}
+�H��ȻT_L��wY5 at YVz�t�6����ؔ�-��V.�6
�6���L>XN��dA'�;��Kf����ɔ�dbicric�l}����I�̈́]�4n y��N#�$�Q�4���/�|Z�`�y薌�<vKyl�q�uqٻ��]�C���Y�e�_|f7ު�e�gRr�w�>@w���Ϝ0`�#l+�'�
�ɰ�
�I�,3z �e��2<1\xI��c5q�%�u��~��Þ�=,�ӌ��V~OO�Ǵ���n������f]5-��vV�4��Ű�!��G)��=L����C���z|��g3��V��F
ۉc���=�es{Y��m@��==�
ú��B����}�Eϳ׳a�R�8>�%�#_����b�
�QZ��p��
i�q D�'�C\��8l�����Y� <�:bz:@O��L-Ժ�_W��m��mvIa��=��$�����~c ��a<��Q��<����<'��N�t'(� �ĿL����%������e���w2G9���9J#{ [...]
+��%N�s&��L��pw9,�q%��ݤI?�Y>$���k�
����'/�һ���n��[o��5
+�H}��z�t<i.�R8��Z�±|L
�߈�q\�u]!�K�q�~�&�-���NQ�s:O����{�
�F��O
�V_�i���>U
��8�,<�
]���Q�0j��
`�����
�*Z�����^�s�6=
+�M���l�-� �H����O���蓡��!�IzO�+M��9r)$
yT�j
G`>�f�0:���QYc��
���kT����1��}��en1�߈��'�ƀ+x#��5N
�d8鬔C
��o!�
+�i�~�z��F��pG?�q�Kt{���v�Xm'��A��I=4r�l
�3�18I-��G'�t�Ȁ1�
+��
��a�Q�����`�nm�:������6�Kd����G_#����� z۸b���L�ƑK��(��ᤒ˳0ra�(��Ӆ68ud�����D�Bk���W��rV~��vCs�m.�]�>4���q�
F��뱏Zl�D8���
+g&�L����*�S�
�
j=�f8N�v�Į%�-Tf/�t���I�G������{H�����
�i�ʢ~&xc�)V�'����dAɃS���K'��A�.�8�V'���DT��:���h�"�O���rS=�Еwڸ�"�{�I^���a�&���B�E���tX鰲a��*�j�V���3��-����6r����0��1�KN�u"�K�
!7;4\�~
?�/��A�Q��R�Hw�b���=iaO�'
�
���YiP�R�}D�j��T��Լ�ݪ4����'�黲x�R���>PѨ;�!r=��p/�-\�ky��:I�[�Y��[
���f� 5�"��
��Q)�?����Y��ɓͧXUO[U�[��1���m��n��۠�q}*�;�|�7����r���
�{�1r��Wyjw��ȳ��Q�3�q-�k#I�8f=ߧT�;A������?QU�g�bB��'��:�@� �J'U�d�|�hN�2����^e
Rf�)e_���
r+=�=�,���vz�1�������:����� �-`�*U
!kp�,!�*
ISIh����TV���ʛlWΔʞҩ��5�ߦ��J�8��o+%�}�D|�i��!
3q�s3�Up;'S�prgT�#_W�0��0Y&OTIx��"bT��9�3���ܨ�ʉ.Rv�U�15ʈqhVl�fƮ��حJ�;��q2ǝWB�UtW��od�q�#�nj�"9/��
ɜ�(X�fC����ۋ��U���`��E*'.A�ŧ(+a��M�V�y�f�-��hӌ�FMKl�Ԥ�JLڬ��}�M:�褳�LTT�
E'>V�٭�S���\=S��A+v�1�ڣ
+�
*�������1�N��̤)ʘ��IJKN���L�H�Ӵ�R%���2��<��7��! ���Bp��n�%�,�.$�lH�@��
�́�JU�`p�T ���
+J�H�
*-��NO�Z@�Ա�z��ӠX������&?��|'
����9����f].��Q��
�a��֣i��J��W��m*��/%� � |�?o�����YÚ�gE���\�,q=�j���,[�23̲eZ4'Ӫ�Ys���/K�G���43�Fw�W*žN���`߫)�^���)�~Yq�����&g�tt��o�P�*a�1z-�b?�g}�͐�O��#d�����J�;M��I�]9�J��Ҍ\�̎B�8J��W�ļ���)U��݊q>� yg4.��;�5�1���!��]�=�F�w�\���X��Ȗ0S�\)�!�s�R�MҌy 2�5=ߢi6%�*����Wu7��Mp?�1��h���L�S�r�����2�RtAH�ɷ-ĺ
�=����\hgֆ;�����ʔ�h�꒦ϏR��J,����dM.LU|�l��S����b���5�S�hO��<��٩H/����yE*b�-����/�9�~
v��^��n���΄�{�|��+ ���F+�$FK��%�5�ĢQ%2�
��-�p_�"}5
���c��4�X|,#>^�o��р�ɷ���{9�
+���� ��
�9��m.f���J��Gh�����4��'���� ?��3�,�KV���A�� T���^��
~�aW�,�s6 �[ʀm�m��;�
>�JT%L5
�採fZCC�!���>
���� K\��1�T`J��)�#�s���ڌߛa��\����"�����`π��q���V���kyd�h���hj�C�=H�)� �
Ę � �Bd�
2��g�[Sl�m�ϧ7îa*�Y��n���s`Ϭ��pil�4f9; +#� �
5��W�h��k��7��[h��w+ƵbH���
�����haRj9��2=5���j�]���
��Z�AN�6س��'�&�J�k�J���VtjC��z�����
~t�G'��IL:q�&��!��37�Tv0)v���,�?@���#D�I�2R�`gö���:������b07V�1lfm!.[G2��.�������t��n}������
������F�M5�*|]��*�E�i�;�'5I�������94l�0��� ��z���a�!?�s��h|����_�ǁ��x}��4�+��~��_���X�ög3n���L
��an���m
����1c
�O���a�g�Mo�t�{�Q�}�q�}�D:��29�2���Z:��[A����ߩ�N<6Go1�}��R�,8
1��㈒
�~`,H/��DIg�ۗx�^�x�b;O��[�p�9:K}���jb텝;
v�Vi�÷=��OC� �s�+�]XZ�~���:)��%�q���L�L�/.�܋X,9�"s6���3�ی�'�2l��it
�ƃK�9�2���#ھ~�~�Jxa�����W�]#_��K?9�O��'�㋏�� r�����eB�Ȍ�Q������`@�����3&�P��0��`����g#���y���=��-�x��\�1����k�0!��B�2�n��;
CP"�,��0��
+��|����*��
�x�{��{��=~�=^�`/�ӼJ��F{p����0�DžW��>&|!�Bϣ>��5w��>�(�g+4���=�qo�x`��%llՄ��
+�PZ�m�Ns�Slj?�pHP�'�O�>nu
��ߤs�
QJ!���w@������^��T*���90\����>N���Uz�-���v�Ҽ��Ȏ�#�O���q��I�>R�%���Sn�
�q�[���?�}��~�/N*N
+
�
�pQ"
����V��J(�0V�6Z(����-���{)�Cx�=<�~�5D��
}
+�]��>i�{�F��D옊
w�H[
+
��h
2�F���� �z�_�٭��ND���ߦ�}�� J/��o�����n��?m�en�{
'�S�`̄1;�`8`�`A�����,%
��Zy\�C]˭���"�
+��"n���`��Fه�����n���b��c�d)�2
�
8��?�g���N�ep��rv��MVq�JN
��dQYVO�Ց�u�����^mq��<���NE���C�'�1�d[�X��'��tQE�J��rXUp��4R5m��~���*:H��?�co��TWhP猖�x�i�
?�᧺_4k,�8NM¦��`e��
� �Mu�*U
�V�e��R��sZ9�XLtK����K�/�u4�B�m���,u����S�!<.�
�g���K��T(�ؖ�m9������+'*���5�h�v��T�q��{�]��\C��e��
z�1��'f
�HO�J���kG��D�9��'�L�g�gQE�Ue�Z
�'�0�J�k���*
Q���z-�j�{d�
+Fn�<S��LG�k:���
���);�3~���p
���2��>���!!�@r��$�&l6ٜ���
�l�]�@"�A� x!��"�@���ZNǖb;
�T��TG�H���h��CR����������;N'���fw�{}���l��~d�}w��\���E�xdIgh�G�=$A�gX�
����l5��1�L���G6h�L�ܳ�L�RUF�Qy�&�ƌ�8f�
+b��sA�1��s�� ��G��
� ��B�-I���q����;+T-Q1j�N�'&U��͋˓;�X5]'WB����ԫbS�
+��4oS�y���G�0�W�yLv�u^o��y܅4�
�:8Wbz��]�
xA3�k$����K��ZS�j�U%��J�VER�ʒ�U��Vќ&Z��t+J���rX��n
�-�R�ge�� >_)�Av E���Df Y� ց��F��Լd|�UY��ĩܚ�Ҕ�*N�TQ�SsK�[�\[��mXi+�f�D۷�jߣ9�CJ������L��ʜ6��4���۩���ч]�B�̷�{A
p��T|����E��nR~�Uy�����QvF�2
.e8�d��ʖy�R��˒�V�Y�e�~J ��(.�b�.�k���Rq�~���y=�+�醧{ВN�>n���ȁ��
R^V�r�╕�,G�M�9����˖[�ԼZY�Z4�٩D�]29�U|�Ê�ߥ��*�yJ��W��Hy_(2���<B�ג�r,�"���Ո,�ŶU�2�q!��>e�Ig���1���Z����
Y
+�\T�Ģj��5��C��}�.Y��%*�d�BK(��yM/�>Pp�g
+)�ZO�����
���� g+|�9h}8�A��)G!XJ-�.Ki����X�,S�M�˳_^��
+��*��jS��[���
+q
)ȵ]�\�7Sů�{<�pK�3kC�5����g���q�%��L��H�r)Ʌ��
+Ulu�bjL��IQdM��k���]��Z�[u���FGײyk���܈nn��
�U�筞�Vf`��W��"x}p��Y�M+�p��;�N�;
9�-E�MWXC�f4�+�!YA
6Mk ?��%�ʃ��`�W
L���s�AC�4��!��ff�>����B~�
g-�.r.�X��
+t?���+�ՀjRP+��X^����%/�x ؇���|�G� �_�P>��S������~r
>?���
�w6�ipρ;�3�X����
\*
8X
� ��9wj�:I����.�y��=�����
��o�a�������g+���JP
+��N��7+XQ><h;�
Y��Z�YpK¦.�
�\o`�0�}
U �Ճ@?�P}#|�b��u� ���{���5��8�
+�v�m�;���AkC����S�
��8V�M]t�X4�,�z2 at qxp?�_� fb5Ji5��*L�J��� ��w|>Bn��n^9��je�$9�Ī��I:H�
��W�Z.�u�1H
뙍�,�!z2�`m��I`?ܰ 0��A��w>���\4�i]=��;n['��
�'�m�
+b�gBk�!z7=
IJc>
�/[�c�7°�0Tۨ�6fs+>sx;8���K[8�|���Z��z] ��ҙ�9�Q��姈�)���|��#�
;
1�T��g���8��x�s���ܽ��$2�F�{NJ�Q���Z��zz]
+��>'!�fR�i�|�7x�
� �nC��5�
1e
+�!59
�I!�g�|�ӓc4�(
=¾:�C
�{�]U�-|T w.����yڃ�c���}�D(���M��9 ��5e�8~:�0z�8^d ���\��/@rn�t����g^U�2��.��F�qIӷ��c���~?1x��48
X9�^��ĨM�^�������;��?0��'� #�1�x�5�]���赙�Cw~#�@]�9r;��.�7|�2��?�
�,�S��qV���8�w����P]�Q\����_��08@�
0__���Be���9n��
�O8,�x��8�k
�Q���ߥio������+��⤧��8�ߎ!�p`ҿ��x��
+�դ���/��'�x�8���,����
�k��
+�"��W8��t�V��ecx��(g�O�#?�
��o��%@Y�S,���+_W�c8��w��[��%��%�\�9
��)��9�$�|��>GC���(Q
&�C�㌎�����i�ql������I�'�1("y�c$����x.�c��K��9&�p��3�堶p���O�wL���^<ި�`��T�ϧ~�0b�'�����Q��8�\�_�,
��ɡ����pp䅣�;��c
���u��by��������O�J��u��'B?���9�>��1槍#p�X��fj�G
9����Q�����Z�h��
�n8����?��`x�(6�!2ـ�]Og��A��/�e��]G�4��v$��ù��v;��؉
�p��j�&�6G��iXWZ�vk�1��:
1�n�ch�&
+E�PU$�u0!D��I\*ELZ);�P;����$@�k�$���}��{K UG��G�9s�=a��SJ�#�u�� ��q���x@
pD�rUt� <�t�
[x�,�X�>�xj/'�Mwѕ�
�<������
�
�"XQ�
+0��#J��
+�����QJ,^x�����G�6��t� <c�I]浍S�$#KL�2�Nr����Kt��\�� �p�\_2W��"Y��k��O2<w��
O!<n���S
O��+�tt�5�8\S���4
L�!m�R�dw� �
��
x|
����1�� ůFOL��J���
<N��
�Jb����f��W/\#dc���ѱ�9��S�^�����b�;��N�M��3|�\˟5�7b7�!
�dH���bJ������p�0��pU[=���k�]�
��
��|��c�,
�+l۳��nҫ
+S�s�
�u�Y#�{�vg�E[�$؈t�@_�+
�L�r�+���>?|A�"��ο>8G�";��-*�����GH8C��S�+<u��~�(>�͠чG�������b6�q��>��w�W�?Ѫ��z
�J,VǪ2�'U�-�N��!5���)�G��5�M*�6�:ˢ��#����g=�
+�y�Y��c�&��]�al
ir�xw �&m�!ЇD��g]H�Nk�:�V+j�R��@��.5��*�ƯƻԐѢ �n�j�N��6#�}Q��#r�WTjZ�����S����[ࣘ<8A���
���U@�#�{A'�G��
���3Elij��U��P�:�Ye�˪Rmv at 5�U�tȗ;��܍�8���GŎ�U�8�|�9
��xEَ��}���+�
��%���B��!9��,��
4�9���q�`n��sר֑-^���]����[P��<�Q�
+�UR�^m*p�U��r�'����l�o)�yE�p^SF�-e�S��
,�����
��r�U��&DA4� ���5E �*��紫�ء��byJ��*�VIi���V�z��
S�{���{d�
R����<%��E���T����z[ׇ:E��Ŀ��Nr���@��`�B ��
+x��e��=*�d���PE�n�W*��^�����]Z�
��;�
�.������R|O*�������}]�7���>�]<H�w�?
�(<=�a��H� ��2�
��B�{U�*��.GU�r�J�]]�u�~�jBʨi��AY����U�I�~���4���k^CD���o븝�D�g���|��5�� _
�^��ݍ4����jSd�ϐ�>G��EZ�(=P%K ��@��0k�A<E��0A�q��1�\EH�n�(5�G���}�E�
c��^�`��p�c#�mX��Uia�R�yJ
+�(1̃Mx��&�ilB�G0�R���&j�4!��(�0g��a�l���{�n�Z�k �ZPUC
@)�.�;il
K�D%��Lm,�6��hb��(��c;f�
�Ў1lG�G�Q�JB��3���}��Mp�x�?
J � p�]�ks�aU�[��v�x
���ꡠ=��F�%��$����0q}3 ы*�Ŭ�pS�`>�9C�
-¿����㏶���@���;�W��$k��,�>0�`�Ї���=Jc��̣�p�t����6�i
�/GP)#(�a��g�@{�}�� ��c���b�
p۰H�
iU?��`
�K~#�`�MR�ij2M`S�t�
�)�m<�
؊��֛^�7y����;�6���0�}%��R�<Zk-1[(m-Ƶ��`*v��T8�6�s̰h�h�yj2Os��
���9��,=1C_�0�;P��Q�w��8G��ƭ��+�-7��pۈ9m
� 0m
+�
���;M���s��99��q/5�$^���� �����E�r��{L��-M�7�Q;A+嫧��什2�8~���Λ�qG���pиx�����Q�q���8�~�D?�����9���27�����75f�.�v�5D�*�v��vbNa� |㼋&ߧ
�����)6E�I��J�Y9���&�S��(������B=
�
'�k�\��j퇻�,D\�.ST�k�x�����0 ��f�IS2zH6�Y��9��5��,���\��ų
XT�3(���3�����WA���΅;m���)�
1���?
C
�� 4Ĺ!N_�a���{��%�q�%t�������^$�8����4 at oGத�
+�s�A3�).�
�a��M���7E���9c�b|�R�0�,ðJ�!���+����
�k}���s���3ҫ�U��伔2ٖM�3f#ޯ�1�]4�
SJ)��q.è�^�*�Gü�
0���af�cfߥ&o�d�L_������|���/�@p 7�a`8�~T���ð��
�;4�M��-�M�:�w4�xݫ�&G����-��ۿ�.��6�+�l��X��1��l�1��86WC�R x�BHDhJnʍ&#ɒ�t�(ɚfK�%m��˪VY��[�f�ڭ�&E[�n�TmҺ��2M���D۴z�����z���}��=�<��@�%����'p1�lP�)�� .oy��l�e�����c��
�w4�Q!��$n��~�
~�R� �{S��
T�$�us�]�UN�
+.�g��?g�g�?�
�z�4������/a�O+
��v��
ob�
�P`�������
�py_���-�r���2�<���y�
0~
,�S�
*�
+�
~
~�
F8*�h�7����W��e��5����
+
+�2����%��v|;��j;ON���,��4'<EĖ`Z��+�88����VJ�h%~=y���P�Y ����
G~4�G+1��z��c�1��į�da�뼏�>
+�)x.����ϰ�QJ���?��KPG�+tC��lZ���9��
��49YFc>Em,a�I�X�>N�쎣�l����8�
���4����K���x��
dwN�
���&!��|�[CZ�v5O&�b�8��M�o�eU�����!8�x�A����G;�c��8��=��,:�
z���.On���D���ޞ�Z�֖�Z�^��<�(��_�p���LJ7"
+OXO?<#�s�n�
��j��}�ʹ��|·�
I����3��$5"�Ѩ��m�bFV�QȩfƧ
�j|���O���
�1F^���(?#<
��AN [}0�#�=4�
�-�\�$�i�?���Ѹ�q��Mul?B,ƹ����
����:���bp��3�x22]D/F;�G;�����J>Z� -�Ӗd�b��c��*���V$u]b�ⓎS����p�r�
��ˋ/�F�6���>�9�=F���ʓD���yW�O�H$��I-��*�ui�5`�����p)�VW)�Y�s�>|M�E%0օ�R�(�?���~x��Z"�ù��nj�M�F�5������8#w��߫��|��o��4�3��G,�`��g����l�3̿��O��nX�� ��o�~���O�SN
��Į{Sl�Ěv�O֢��+�㬄C
+{Mܠ
��{�-b���UҜ^ �� fTHcF��3=�34H�!$uYm�aw���� q(�bg!�PŢ��R�+7�(�1e��${�a0�\q�B?�`7hQM���/0�tiTiPLR�S&�\�����P���7���U
�k�^8$� �g��t@�L�b4��|�w$��cQ�J����O��Ab�(��f��)"�H�(h��o�<��
�1��T"�ERU���:���ZKi��K��<.&���I���(eOK���d�$��_IF�m�,]�'��}�y�7�1�L�6�_�0+z �@
�{��U�iN�Y{�Il�2��T���-��)�KQE����o
�
�Vɶ���N�������l����ܕ/��H�i���_'�-�X�@
p�jP lH�r[���
��^"ŕV19������&ɭj��W���%ùI�Nn��%�I��#`YȪ�R-�]Y ;��&�A���G�
�i'��
��T����/��b�ɑ��<�H��!�.�d�%�
��[�<�ƃ����=K�e��=����]9D
��� ����(R-�x at u�+�fV�"�d�G'9�U��-�Lo��{m���a=�
��� h
+"����c���>
�� Q�
^l��'���?�
p���W��@�
��
��"9>����(
+6@��
D� ���.ߤ
+�-�)��D
�+�l(6�F�qE�P����
xZq� .���j>;��
��
Y�s�"�`��B4�0j5ɌpP�F8 � VDkt0y����q�3�"���fs
ߗ9���y�
�n4/p'��]
+wa#�H�NC�I
ڡ��j�qtP�1�X
h�#F��Q1�U����Љ@�x���C��F����v�B��Ԃ`��
��#�00
+������M,��\{���(�~5�8�G���4��>�_����� ����!��g�} ��}�5j�x-|����Z���*
�ޮ�d
+c)5��;���zr���)�8���8/�G 51�p7ֳ1���;3��#�9 W'1�k ���r�M�����5���C ��xN
�q�1�
��1E�o�ȧ)�i
��S�4�P���I��F6؉���d�
b�
+_3`:�[�Ļ(?>��5�Q�sB[n��eC
�3���=�
;��]�.
+y'����
<G���&�3��~ξϢ�w$�]����셻���2H�G>ǻY[�f�eG]8vi˗� j��Nc���Q���j����a�0�}b��� ܁wy���k'h!�~��p3nDՖ�)�w��d�Ֆ�ym�.hßkǚ�Z
+���2uz��w��?C�Os�2Μ����'/�]�����lcĻ�s�Z-�,wB��ƻO[��h\���Ey%���
�U���SuI��
/����
+�2�~���Dm���2�m�<��kDZ�8��I|Ď��q�����$�0��$��$%�ҍ���e�Z�
+
��+e�zӕv�і�lĊzLk;
F���m��*v����qU�Ɛ���ߤm�
�����}��^�=��
l4ϟ�A>�;��5�]�Ot3ʿ�+;V|�����!m(׆�}���7�Z����.5�mbr
g�vϡ�#8�0:.}��
w-��#�}��o)��R�����m���19����H���x���,M�,��
p���?���D�'J;��V��*������J��ms��
�E�ʝ���<��~�(�2.�+ԎK�
��
t1�/>�ȿ��d-�=0�J�� �r�M
+�?I�k�_��\"1���<O��
����cJ�=[�v�-�$�{��r�
'�
�l;Y\��������M�qS�K�2�_e2���<��|�{��
g)R�a����4��)�s�! �SD��`�}R��˄���_��C^�I��Y�$ح��^��.���9v�Oث~�
�1��i��l+0���{�æs�-�[�
��0�t�{��=^'y�}�����"O������ v���
�.���ja}?r�����(��
19BL�=��=��l;ߧa�B�Kl�K1�C1y�
���� y7�ዝ��^ہ��6�< .*�|�d}X�\�[9g�@;�*�����
���A8V�1��'�
���]���G��R� ��!
�'ZYR?�M���l���~��O���%:�.�l;���ZΏb]��m��4�l/
���c
�(s�lA��RT�ᗳ�b��"�6ʧ����,*��,z�"x+_��J�V
�`�U��pv�bC���p4��G'
K���:�8�O�-83^�J�<*k��ќ�hL�� �׀��(<�S�o�*��TeR+�w��I��ဣ;BpD�h��
dG���3���r�4*وg��r���[I�FmCd����k�=��ޒ�ͷ�;�:�ڴ��͜o����'
+O����@�K�Y�(j�@)��=��!�����o���:����qU
5�M�[k[Z����*rd_�P3F�
7<~xSQX��j�~����R����.n߉;PJ�lE�)��%U�\�K��T�-h���37"LJ~L����5m|����OL��F�x�
+����%p�I;y�ʭZ�u�-�� ��H팡��#�
+�dc���ժ���(�O��f����h�.�H� �,p��r��/�]��×���>�
÷�l� u�7K��Q�&��
���������6�h#�6�0��N^�1
+0��e��X��
�
+�����
��/g�KsQ
+qZ���D
j�u7�BN�S>7rZ��@Wn�o��p� �"�lV��o�}#kc�N�z��tfi���
l
JXW'��F �[�_�-5��1���p�8
7KU�Cb7�r�^�
���S�H^���xv'�k�b�c��d�H�� ��(�-滺��3�$l\ !c�M.�|�+
+��(&�┸K��Q2(�
�6�z��~M,�ۤ����,��9)4���Ob(��ӂ6���
�A��n֕V+36-?�A��� X���� ~K��X��Y��"���B�`��&�^�%V۠,���پN��b�o�}���
$6������*]~!Wf��46��= _'�y���ԃ0��]�]/.�Q�v�TUTHE�[l��V��ª%R�h�bG���#bpN��I�]
HN"����Levp�*�PuQ
Сb>��8�z��(��ʖ
��>�.� ������].�C��5R\
�'&����,e^2�K��2��0{��TC`5w�f�r_�o������/����S�Iq��� �b��3�.���\c�"�"1�+����9>P�_��A�� U.H�
��A��*
����gpY�C�w�q�3��
p,�#ʚ�n� ��V�Ss@/�Z��0 �a
��E����0���c���/Fuu�]9�Lf� ��hp�8�`c/
�p4���>�.P �5 R�*Y�IA
[����#b
��X�dNjS�Y
�T�8(NG��
c�=w����k� &1a�w��5< ^A��9�4,bb�,�"�8bnDL |��A�
��a�I%
d��)�N��%��I&��Wq6Cy?4]�;��-؞���D������C�
����R�M�H)� ImAPm�Q�qh�@�y0
�#;�Fit��+u��t�,�31�q����l�žx�Pjy��3�mȬ�5�� [...]
+-0
+��U��
�!���18��,v��T��v���p8��6��4�6�ݩ�v��<��
�~{}��1o�?�M���}?����Bk�
����WCG��-J���(����$�6H�_�����m(�-(����-oK�NЎ�k�n
��cL�;���-��).LB�[B#]-Q���
��>��
ur�����`̮�
�<M���C~��ao�j%p��
�;{�����Ne�m�o��p}(!�{�I�r2���x�!�ur��~��8�QQ��GslR��$��mpW�0i��N��-,�"��S���R� ie�Q� ˘Zʬ%����)HW����)r�$19���c�1|q����>yD���
��h�y7h�-ڿJ��֜Wm�s!��
�Qp
<
����/�߃7�g衯�d��P�U�^��9����u�k>|n۬�����v~G�v��p���7�%�;���DVA2����
�ɇ$�9
?�/�g~��U+W�ƿ�%
���V4P�����6h��9\A�_ [...]
[���8�=��
�I>�^�;��hROp���ǣl
�&�b�y���9i��ePJ�f����0C���&��� �~6���RGi���m��E�s��<D{�&6G�OA��=��{/,�I�]<���� a�J�Vp+��� �\~PpX%p��j�]w?1�e��es��=f��^�c7�k��k4�ibs9r7��]��N�"e};;�4|��F��;���ڜ��
�lL
2��>�[̽���4������?�U�����9���Ӱ�о�i�1��q8>K�o��f��v��í���b�D��Ym�~B����,Uy�6�֨����ɗ�"�
��v
-pt��MFfh����RV�1�&2v+�m�Of���e_����T�yP���4�jͪES�f�^Ϟy
1��ܘ"G���:�q-���n'�D�p�q�
+��a9�X�
�p�0�
"���Ed�"���u��[��M�W�l5��蠅s��
+��@�2x�ᩃ�YF��0���A�-��l?
�ū�dN��$
�
�&T
V�@���Ē(PlA�5��t�V�3�� ���jx��i!3:��g�L��Z�h#|+���H��(��a�K���[D�/J�0VM�dT��ML�ȍ. �UW��UW+\�pe8{�Oƹ�zI�$,5TU�WE��$
��W���ɛ��W�%�LNKB* ���5������r��
m�f�au���.eި�
���o�q˛��6�������o�+�0�@��J�)��d3���F��?�P/6��p��*���bl)��J��6�/��R�Sb�#J�F��09��"9$:����w��~iI#%��4]�4�E��-��x_cG�!�+mvls���_���W��$�Mp������ ��ȍ�������ҁ�t��
>�CV.2�e
��pv��;#���% ���
��y<;KbN��8��ϗb{@"�b 9J%訒"G�����s�I�sD��Hn�q���ӵS��s [...]
+��"T\���� ��)H,�[�
�~$4��?ú�W�$@ �� �lR�K~�!�"��B�∸Ŧ�
t|I��$ƨ�X?����8Yc���=b4���y#���`�8/��
xZ9�����5��?�̒|� e�+bG��a@),�� tk͘H��h�
+:Lݮ��W�rRA��L�2�P�Z�_�
�`��� g�
%@ �>a����
�u�I�2
('�*s������D<��#��O����8):P�i�D� ̫�Uܡ�L������(���U
SZb�6�gE���{��=A +�jI�QK�6��F|���Mģ�x4��5��W�
0���
�6��Xn�C��6�\����R�
�A
��s�y�����J�k@��89�p�6U��47|��i
J�4�&��K��i��&d�!��g��-Wd
�!~� �� �}1�^�a��5)+�yq3�"��wr�nr���dH�
���
>C<�@�@?
T�=���s�fH��,c���m���J^˰5�gA��b�
�m
��� �0��f�{
�K��Q�;�G��e�`,c��
���ӧ�X�Y�]�ax�y�S���˸K��B�j2�y��P
�v�+���
k��$�>I�O�е
�����5��t�U���ЧV�����l����ؙ䵊�Q^iu�jW~��*���_�QQ_i���$6t�%��dUP���و�ŀ%
*�DPD�"u�6T�p�R
��C��4��;x���?�g?�d>f8�9�9����}�}/lq
��&uٞ �
u�!�
�Ї>ч�|
@����U��>�
���|������.��
o��`������ڲ�� �[]u��u��Fd�^��Ĉ��`{���*l�+��
�
��Kz0,�mmS�1�b
��N��j*�5��b
f�8��
�j�A
�
������!�
�אp(�+a�Q@
��}���8�y��
��`=lἼQ�v@��0,m��ˠ��>*�&U�
u��P���eE�"�#U� �c/"s
���|
X�PX�;�B0�}�C�H��"�^ �@m Mj]����H����D���l ����l7S��LP
�J.
�`���H�p /�>��C��/u��mB�%�U�<��C� ����,���
ʠj�h�
+ at e�\M�
�Є� ���9�-�y�0m4�`O�>C嶠8�
�U7�ʗH�#�l� T�6�y8V���y�v�A�
C�{��Ih�qh�a��{�"����'��Ξ3��y�|���E��*,[�⫕��|�v������E�mݦ��c��w�����{���^��8tX����~�:~�S��uh�g��70426�hjv����k�o����t��t���͝�����e��a����r�#�Q�x1�� ���SR�3
�3e��>~��_PXT�����yeՋ��5����4�mmk������
�x79�
��/q�?y~�Y$�
�,��I�/!��/$�j��$�L�
ٷ��*$�? ��$�> p�8Bh��¯��Y��O8\ .
��
+X����
�� <� L��& %�P�,I�K��d4��)�)!t*�W��� jB-Q'a����q�i�=��g�-YwI)��$>�
���?9/$!1k���0�DFFV�S�0GNn.��'/?h|��X��,Y
+L
+P,��23h�l>�3��
<DZ :��)m
ݳz��.��[XZ��;8���=�����,v'څtK�}9��3!IJ� 9!($�����Ҷw@ޮnH��������!������d�����~/Ώ�6"�SE8� ��ǥqm���FkFJ�U*�5z_:v۴����V7T�FԔF�WŦ�Rr
�r�E����"�%�si���F�������:�Y�`���f���ͨ��gUU݉*-
K,,��x������U<��G8UKz�1M~��pu�eծz�cmM7��[]��^�똬g/�"
��q���
b2���E�1��t-�Im�p��K*mM5��7v8�U6���>�y��s*X1�RNRjQtFb��G�ꃇx�%5�O�7Pi����%��K��N;㚮۶�Z<�y
ށ�5�a|X��g�d�ӄ
Q��m�����X!��j���o�v6vXj���=�}����-����A�+�UPxB%�
�<"�[�,�f<��)9\D��Yg��M��r]���U���}NV�
���fO������@6�eH�2�
��'�0<��D8q?��Ҕ
(�ɵ6,o�4Sz�w�hو�~��-��.�[�-��&_&�u@�����.�]�U�����w�����uf76�+��*�Y
)����3|�Jz��}b;�%�Ň�}���idׅ��k���
+ǀ�x��#�,��BG���piE��R����)k]�����W��n���Dž����n�
+n
+e4D�*
�쀾TC��ᵶtE��B����yS�fa��)����#������ǎ�����
��vc���E�[�p�2��������f
�n�eOFM�ec3�tl��
u���Fact3ְ�EР����oo��w�^T�į�VBÂݨ�^
=k��<4XƟ2�&
_�
����C�˯���������F>�&^c!��Q�eQ��ij)ۆJ�
B�^�,Boi6��Mvp���C�� �r�{h�`�^�y���=0K�
��U8m�CeM�H���j�&b݅���*6���ה��]>�y�'��KǞ�ܱ�~W
p��;�0uQ5�PUU� A��QG���
k˳�٥�p�����v���i�
vSr�
e'���Sq�A�9`�.Q�"_
+�/A�UQ>�"��
���Ĵt����-w��+
����Z{���7�b�6�o�
�YT�P8�*#
�w�1I��-����_R|'��;&p�eD�a2��Ϧ7;ĭ�a$�m*/�1)1�..�W��MxU�\V��G%� � � � � ��<��x� 1�!]{�9�0�g�8Q`�w����P��i��}w
�ޚ
�ď�ԧ�߫NJK���M+�.�7�u��p�����ݭ�ݵu�v�3�ֵ�:��n�
g�VEw��E�⾑�@G8B�}�;!�H ��H90\�}�%��k;
}I^��/�����g�����M
��� e��_x�9�T^}o�&d�|��}��8�i[���
�`�V��܊G��Q ]z6�C#:r�]\���5T�9V���a�[T�ャ
���roߴ=�Ą������tF�W�c!�ۍ
�CǕZ+%�u*]��^��[4���@�
L� �
���u�[fl��M8bN�>N�:Ԟ1ؙ���i���
�T���-1i��z�B���
+�Y�i���A�����?�j��o�q����nD��;7�I{�ف�Z,��Ē�
|�Z#�)T5�ܬ���
2�a����9K�G�w?��#�w�')��/#�
���*��ZK��FR����M\��P��T��Y�i�
���
ҳ^�z�wg�����������K
�L�j��δ?Cc�:J('��i���r��N����u��f���k���^K�uS���?t����y��;!��PZ�Í|T��/�wbH��x��A��
+�ET�n�hX
����1a6��z-�\Y7��'ww�
�`ı�����#i��!dzuo
Z��/k+���$�����
+�U��X�
�~Ћ�+kGZ������{(�h�X��x��HV��?/W�S�u�H�6"��sh�\>�I&&4VI<핁ʏ�;�h���;���M=���:F:�b/��
�Տe&)ܹHQoa��c>)#R۩TR+��wJ8��� �y�����cв�44f��W��
��>m�xp�6s��"%T5�'
�I�����j
C�"��>a�
Jq���i� 8�AtZ��;.���
��c8l�u��a�B�y�bJH�
"�7���
.H���Y�|Ni)�b�p1�nq����
�߉�Д�$��y
j
��y,lW�ܽꖣ�� �;��6s&'�<YW6�M�S1ä���t�]���<
p��s8 -����ۏAN�y�<
��z����w|d � $�����P7���;����3�S���IZl�'
5�O�4���'>��kBmOA�%�ꉠ���7�% � D
f��I �
@]*�P
�p��^Cr��7�ٷ�
�PO�O �����!��a�z��j�|��B��
n���<�-�'�A��\P��sـ��,@=� X�w�Ӏ�ch̴��n�
���r�����[�L7�����E a
H?�H$��2~� �=eG2 �h:`
O從���ٛ����
��C|pv
\X��@Ї� l+�z#��] �;
d�5�}��K��%��$@�<�xZ�q5d�^
���C\p��C8pn
\^��遼���A��D��%�~
�9 �Ƃ�Ob@�_b@�h��
J=����Ͳ��l{�
�/��� �ww�T�~��J�zN��:+�HIq�"v�(_�=�Q�*� ����l't�����;h�E������������6�2�@�
4� ��(a����Em̡ym�7����+��Mʉ��Rf�P�?ȕc�Y�2�H����V�
��4c;�+�
6�`��ڦ�;;
чf
)���Y����Q5�ᰒ���a�RBO���Ūfw��&B����1���V��h8 "l`��ؠ��i��s��3]�|zy}�
5��e
h�h����
�
<E��]%t0͒J��@t�+
��y���<㟆���� ݵ��;f�|��Ό�#����bjK�t��N��pٍ ��U��&���(�P[j�����0�aCl�~�`
+�1c��&���2����XW}1�
_Ң�Rl26�A,��
+q5�ZVű˕�f����_i�H��s
+��.��l�8��c��3֘�7�H�w���������L�W2�F)_�UH��Lŷ)*����"\i�
66����5KՁg-��'#������O��jA&t�Ѩ��l��D1���*y�@-�H�"�\&2+D<�D�m��7
\ؠ��f��a�v�{�%��P{������mY N:�j�bkkd���V�8|�\$�VT���zO�$�
+�E+�6�w�
k�k7L6��>���/������~�EEy�
�T�I��'i"D�Il��cpk�iҘ�=�-��m�4.���
+"�00�l̾�+3� ð̀�0
A�M@@@}�
�i���^�������{7>��;�jS)�YO��;�|k�@f.�i���<]�9_m�6+LMF��9o�A
d�
�u���Ö���þ��:�w=�͝SבI�l��JjY��j��h��u��<���$�TH
+��bss
ހ��Y���A��1�����A
ܽ��w �����3���ю�i6�Z���ky�C�RV�t2��(.��
J��k�
o�1��w�~�Y�Ϣɛ�ˆ�W����
�8�6P{?)��CL�t�M�\���+R�Z�F�4�y�r��9�SѢ�p���
"d0���,
k�_��\�
+��1�]�ȵV
%FX� ��=Yٺ�4���-��DRA�R�m6jXM�:Fc�6��M��2H�E�a/6Syt�P����@�Α�����w�_=]6�p�<B��d�+zid�
��-�;dB�-����(��r��w�[��a����?���9��v��խ�gW4��l������Q�o�dBp�CB�r$+Q<@M��1�X=|J�[�K��f�t�sH]v.�����?D�
꯱��]�p�A���ףq謗s"dS�l�_�G7�&�Q��$Y1�QZ<k��D�Q���~e&�ϐM�g%������ و��/�G�۱;����~�Ŏ��^��
,�;
ϢP�'�����I!�i��$#�<���
Œ�� �����+�@�>�/7�s�
l؊5��Ŝ#�Kʦ����>5@ȟ��G
�8�v"H���)9���OD��Yy(aF�:m��2]|o ]�f�:l�b-��^�9����&�^+��i�?�C����
7v� �;2d���#�8F�� <�r���%C��$(�
(Vb�
��n�.�
�[�҉�X��K����Vs��ZDl�@�$H������K*�w� {w2�$�t_"��'���
(�
h=���Ř��o1��W�q� ���B8�� ?�K���$��Q:ĮM�$�d lL���7��Y<з�������?ł��X�ᮣh���,�k����09��x�Et8�Z�-'@�ۉ�Q�� ~u,$p
kb �w1��Q4P~�G��!ĸ��X�Y]�0��'�>�ذ
��>��<��K�����<�~Qo]���/A�;� �0 �+.B֊P {��+rqd4�(h>P�����M��b��/��� /������9
��5��c%7pF.������q���ć���1N��nF���I��ݚџ��W�W�W��S��@C�i�>
��[�s���½�Lq�<1�
����Mk��)��
+}܄�8i\d'<��dsZ�Y�)n��֒�C�'����Ұ
�
`�[泫�
/{?)��v� �Д)�lj<��q���J�4"�����
����FV���F���$�Y��
:���
4d�#wz�!��Բ��A+�Z/���^�>eI:�(3`��~e����ʉ}
+=�GR�t
l�nn����!����S�L<����
�#���ԛ�JW>.
[���c�,��h 1h�B��/�$�����
+���oY�M�*Y�I�`�+�]Bk�
���v9:2�"�`/�g��|����f��OVF�
�L�����_F��[�$t��j9�Q�ܔ�%5"��ZX��s]*
�Slf��� h�0�A�
E�K��ϼ7]u�{����Ʊ�|oyvl�%7�5�G��I�5*��Jn�VHJ6�SU"lS�y
R#������n/ڃ�{�A���'�g�
9C��k#w�]?�_�z�N%)�UJOo0s�N��]�Q
+mJ��D^��H��E�6�Q��L����!� F���
�[}�x\
�5u3�{�!b�`S����NGfl���^[̦T��l�^.�jt�"�YY��kL�f�N�.:Exzi��� A���J|ߘuxNԇ|��9b�}W�qwcR��6#���B�.aRlf>�j�
+
u�I��4�m��A���+��N1���
�t7�C
��N�>S���xs����
}
w�&]h�'^��&�6�Z�c��&�J���Z]�F����U.�T�!��
�� Cӡs��__aQ_i �d�1$1�Dͣ�}�S�]5�hL���KD�D��4i�
3
�{/
�� � 2��W�K "�t�H�|��l
w/��������8�;߹�j��u�h�S�W]�ag~�U[O
+/�O'�r��b��y�A�J����d�&e<�%ꛓR[- ���k�
B`8a5Wra�D����<��v�0u�:6��<�7Ņ����
ƽ� �@!O�S��9i�Ĭ�����Tyfs�4�5ђ���A����!��)?�b��e]���}~�[zB��vDz�?"��7Rc
5l��R�O.�I��Tʄ�Z�����SDy�ZaVk�%�j`�ؿ�r
�d���-.k����o2����r���{����Gd|z#��\��
HŊ�D��<%QXfP��ʴ��
��UiI��
�9��
�|�14V��
���i�sK��ͽ�C�'K�#�rzb��>!E�<f�U�<���D �WJu)
+nm��US�b�<R1*��|��+�
�=ؽ�G���#s�YkS���&�ז�1�=�cA�a�K�9�/�/.B�M#�:94Q���3)���)bF�AJk-�QZ����v�%� 3�?���g�y<�&*��ǧPS��5�^�7>/xx4�i�%�X�W�)H>D��b�fI
�OIa�&ө����|v\g-���nQ |;
�A�
-�@�:{��u��){�i�?��0�m�t��z*�E1I�O2�y�x��q �>����h����q������77�Y�7aga;�4Y���v���3�l��5���͙�^;���Vχ
S�ǜ� ]ᾠ��^p=���>��������)} a2�~�4$f�:Ԓ@�{'��_����;Tۻ����2N9�d,�mJ��*��\a�!��N2��H�92�.�@q�jg�/i��Ŭ�1
�ע��- �b;�-/_��6��{�7�h}w��-��� ��K��
��fA�~*��z(X� 8
��xH<
)ѐy���� [...]
�Ϣ����F�l�mP폀�/q`�*
�_[Ңn5�/}��,CY3�"
�#
����9pa
\����x��͑m�?��A8��쭡����!a�-�~
z�j�F���f֣�)`�!� �WH�<.����6���f0�
ܟ!j} ľ
�w����7�{�M�o�ɦ�xϒ�J24!���H"�Bd8��p݆֡�,���k+}�g���
!k<��Db��\��;�^w��׀��-
+�YM��${���#<e
W��}
h�mA��뢊��B��
��̜\}��4�mVR�9+��4���MAS���q�9�L
�u�
G<&�����
��fP^X�k���4�
�I��J��s
+��syҕY�]���{F\�7-���Or���Xf� u�vG�НG�ш�d�@�
l�ca{��5$a�T�u��i�����d�����0��_�R&\�T��x&�
+z*)=��)z�ۅ`��P��~"� u�����@�
� ;a
��+Au���vs�!��G�J%�~��8?M�z�)5A#�Cc̠��8��#�sM�f���ì�
�+)Ä�l��~�۫'� ��J�p}k>��n63x�Խ;�&�I�c:��p��Ϝ���+t�
���%,`<�UqL�&~3�CPC��V��h��A�R{i�a>�W+
�@wn�/���r��sn�Ȏ�瘁�4���>���Q+�:4�m�tf�(��$(4��u�'�
+f�����42(K
����o�W
0���V,�8��5z�M��7F|;�K8?�E���s�ڵ�����P�c�I�x��"�}a��J�*)洋�8ݜlv?m��4�1�� ��;� �i�|��ڙBOۉ��]�E���B�Ş
�O{�6���je2�J��/�E��Ji�����7ɲx]�{�^�R��@�� �
�cؿ�i���ߜ*�
/
�5T
�]_I̥c���Y,\�^� YN�HR�K�zA�<G�/+��I��Y�6E��S��0���� �ۯ1C��e�
|c��c�h��N����ˣ.��n4�0«3��:)�X���t�\�A��(��e����遪����V
�9��u�hG��S8utGQY¢�[HBH$!!!�
�)ʾAMdR�"��"�M�<sO�o�M������}���>߯�T�(-wȊr���~��@:��L��Y�A�
�Nh��Ŭ��� ��W���
��٭MpR���f�>(ͤh�´�B9��@)(�/���H�r��H�!S��������
;�q���� �+ [...]
+���r9_^�Jnݒ�Jje9%z�@�)�z���%
�y? �u�h�,ӻ[
ty}��O���'��Y�9Mk�_�>%�D���j���l��V�WdgW�"ʪ���*��e�"nI�T���f��F�C�8��
���h��Ͳ�����!����G�c�Vw$��n����5-A�0#E� +]xO��+�x��
Ν*��C1��KȬ��
+��;d���� Z�<�
�����y���U�Ä��!����Δu_�.zF )hce-l�������,nc>���������t�
m��~��k*��;/;�v#(���ᦟ�Ӟs˚�|V�F�jF�
��<U<H�\�G
+�uӢs����
5�]�`��3S���O�8)�r�[{����� ;dn�w�
���h����q5�.��[+ǃ��e,���(�U>B�Ӯ�X��<b��8�1�O��S��+i�~-����H|6H7��;{>
;�
��P�=z��#Ҏ��i
Wl+��m)�ܯ�
+?.�$�M���
/�8۟i��ġ4�"�jPGQ
U1$���
Ą�C�<;|���
M4lF�Ϸ �� �1�YT��U��|����χ
�
�s�e��]ҍ,W��w�fyR���c�/�X�dl $[����
+d}���9z[�)j{d��/�BuGT>sޢ���U
+�^/��9�;�g�H�
��t�B��
@� �w:'� Pw.
����f*���5�I�ҵ[�Z�>T:�n.�X䁻�.����
��-
bw�!i7���8�%AƁD��!ć�!�n�e�b��x
4�0�ڢ��eH�h�j�?E%s� %8 9�6ˆsV
�X��kR h
"7&A���l��"?���2_E���(ȳ�ծ(�w��J�
+!�f�n1C��MH���
8-c�
�Z��M<�������!��HH�� ��p��
������,27�@��k ��*|
�M��X�P�n*�5Cy� e�=b����~^
.���n^V!@x�*�XC�M �} �+ @YE �*H]�,[?�����C�|d*uwR?B��[�,�`��
D��(
+�$N�`pYN w3?�4�?�+��
BVxB��e���q�]���<�d�T�
��r�_L���J�;+ �d�/�8��ϭ ��
��~��͐C�_��{��s�-_ḐYrj�[�2�yp~��t��zvi�9��&m�{2u��Uʴ�yڿ�4�c
+:����%*�zl���YbO�ہ$zˢ���]N����a>+��
O�l̬r��4x�d�=gX�W�����i������ɠ>�TPy�����@�tܳ����Z���
��-�Fn]�%흓�
�f:�dK����S�R�I�
߉
m�8�媁�:�>��1ٓ�:�)e"�5y:���
�8Ðq�M�
��{vP\����BA�6c~��9�贔sjR$t
�Vx��R�2����4D�d�G�ψCiC�{h#���W��)�Q�)�a� d��(K�_da��9(=�ߩ���Ta��(㿙RP
�sY�cR��Q��D�
+y�+�
������I}鏓������^�4�FI:�x�}�T�) eɁ�
��!�A��9�.X/��ͨC�O�}�?��4� +
���mNǺ�uڣc]�0�Z[7�����"u�*"[Q@��%!��}O�
a !H��E��� e_���S�7�������}�{������rҚ˹<����(2C�sc�%�H���>~S�c^'����`�2[Y�F�4���"��9P?8�qƑ�B���x����7�~^������Kq+`]��+3���U��2-�,1�:Eu
������i�
s8c�j��\��!�P?8P��g
�I��-r_1g���eYȮ��X�qC�됎�a����d��̬�y>�]���J*Y-�n��̫��#�2�$���&��;�ii8㈰C&v��g�o��V�Z��0S�k�2�i��t�_O�����s�1�*[jJS��Q/+��Jx���Rl�
+������"�T�-��@�b�����^u~�õ�T��~�.h�X]��@�L���i.��k�1��rRC��Z��0��%���~��MhL{"�K:�C+����6�w`�%=�3��~{~�\�۲�>�&�w
7E:Yj gz*(��bV��BatC^:�:[I���c�*��%w*��ѽ�G�BـH�6��K����;�T���i�!����n������>x?�P_c��]�)
mF���"~tuA�<WA5d�Y��B�NY&�*�E�$O��8'c��N����~p`�';�s� �Vv����K�Z�������i�w}XK��\θ][.�I
9�(W��f�4*�0�n�8'�$�V�K�*�9Yw�Sm�
;��"�p�5�/�3�e�%�m^�����>�;��w��!ɽ�*�Ve)'ʠ'fP��,f^^>O�S,T�k$Y�Re�E��;̽�
���{����A~�����{4�p�n���G=~[z�!�Mc]�[H�j�h���H�QH��e�\]&3[���� �Uby~�4#�4=g�'�
c�б;�p�U`����rW4�����n�U����͏���uƜ�oKt�h��ײ"��Bn�4EU�`d��\�=�@�+��H$�O$��!�8o�a
@�佃`%�����U�
�l��p����^��g��A_7?�r�6�ZS�tM��:^��ZB��3JUl�Q�J�F1��#��x|����
��A�%������sF�
���~7{��_Z-A_�=�<QfN���#�7�Aj����h%��eP%5w��j
�We�s��*��U>�e�� L��ځ{�?pM|����j9��{]�y�}i�ȍO���8^�w��'�'���0��d�B��MF��Ϣ�[���6���Ck���FY�� �- k#� ��{�
�����r��x�5M�9T��v4
��
�=��$^W<���zYa�
A
�,#���ɩ]�j����YO'w��ɦ���V+���
8��؍�
�t�#z����FM�K��o:�vN�:��b\2G��ӆS|���[�^(�gi�?3�l�#$YJ-uIDKW��X��J��l���s������h��=
�
+5N�E�3
�����
_���y�M�L�1�s��h�r�;�rgZީV�M�5+�l�����Dk](���09
?2m�s��q3�h�q��_�&�ʙs�d��^��{���Ϳf��]6}@4G<ʝ�:3g������ٴK�Y啤�|���w�l�G����Y�wܯS>� �u�&7�Q�Rdz`�����<���"�۫KU����n����&��td����)��8���Ar�wNA�L ݩx(?
ͮ���L
����A3�%�T�5t-F���D�߾E���p�Nೖ
����
+��ɐ����D`A �x���7���?�DC��Hhs���ö�Vi�:
5�,D���H��ߐ
+#98# �[ą+�t�XE��I�� ��!qS,�|����� ��y8dn
��P(�廂�i�-�55� d�X�4��}7J�}�G\P
+\X�nK��kY�����?�A�G!@X
�mM0�w�m��2� P:�C�?(�h
�F���#��B
+X�D�
1�K|�!D��(�I\\n�����/~nb��B²���RVx}��Wz�`�'���;6QQ�PAB��"ć���~�5y��l�{t[f��v��q��ص
;:v��k�ZoA9Pn����xs'�"!!�$� �pA.
�
�� �C�g�q�~�~������ͼ��y�?� 6�o�`�N$��p
���
� A pU ����ܮ�w?�~Ļ���e�[���/�jo�����+@�'�p��};����$��iԧ@���7�p+�v��{��-�y�G����8�'�OO-�μA_�{��x�0���
cd�=B^������C�{"�M&t^r��� 5�Ȱ_ )�+ �o+R|���߿$,8�ȷ
_�5��綞�g?�|�rx�f�]�F�}���W��+Ô�˃p� w9
t�B
+�M�M�Ew�X
��<@Z��y�R*g�T�o^�q��|rNXz�5��{�w��
��4�?��
G����7!C��������?W���IЁ[�[O��T�kAz�NJ���%�o�i��sr�Y��Č��9�R��T\��5Mpۮ�����2�n
���>�\�c�bH�m�+�9$�]�[O[O~�
�_]t�
K��
�Z�7�5�w3ʔ�Ny�� i�ϸ8/`Lh�>ʫ �4G��c���
���^�T�C���t!�]q�C<tH�L� ����r:�5o
7<�
1_���Ng��Mj�?�R�z�L��KL7��E<[��Ә���H�a��
�/���NLs6���p��Z
+u�/�Yl�z�`gx��+-�\��ˉ�r:;iۄ��T�==���*T�
}d_Jn�3��_�����������l'��=�������,�v ���
H�q���R��������G������G~9���>j&|a`�{�M �U�Þ�3���� �bKR[J%�������&7�(�� r-o:��7g�-D���d�����8� �9d9��s�k�8�oo�$lQ@<��fx������N�&�UnHl��'��e�FQ=�>��V+�W �h6��`�&��ĸ�*�,!�,��g��<�fJ�~7Q~k�HY��
�pO
ݫ��
lϔ���+c��LL�܌����$մ
+q
�&~�ZS����H4�-�Ż� :�ag��;>�+�����K���?
�
+��Pe��~+��"�g���l�7���-�Ji$��k��^"����.f�d�U
��I�pf�l�+ �:�a�i#+٧�9˥Փ�
���yM�gI�
�P<[��w���Y��jl�&�P�ʣ�Y�zf���mNu�s�ctS�oL����`_��
+[O
���e�Id���x���_�o~����a5�`[�����_�+�0Ic�z%֒�#��Ps�Ō
U
ˤl���8�(�O�$��XW �{t����A8
'��
n��W5�|c]�=�u���s
%�U/�j�Z�i�|��`֙�&m��^��k�9:�3�N3�Ԫ'IZ�4��
(���;���k�d��8��Z5r�o��5��["��5&�W�֔ӯ�sC��E1�f9&Ǥ!�����|4#��N�5q4�qպ�,�v��J�Jv��w���U����=��c�x�y�E��}������uKS���u�3�4�+�f�E�S �r�]���n�EU�2V����0tq�a�\?N�g:�x�@��m�\�;´��d��
2�����;��흷6�[��V�M>e��^)�d�0� �
��D]����Q��rrs)Kj��H̝
q�[b�H�N�+ ���qn�gb'���
2U~n:��?�r�z���
�U}{�
[s�I�]���:4�Pŋ���w�VNQ�%�,&��Ȃ
+�jY��v6�p�-��r�xW t���U[`��@
v���h�'��̪�^�O�O�6Uu�|[ڎ=��B�hl�_�5pn�kEq�j9VR�NH�)��":��e��1Ye�]:AfO%�С
:H��ߊ̕�
��
�y����,r���qm_�Ʋ�ѻ
+&
�~@�ҵ����١�{�(�]vGШI�6��B2���J�k���
4z�$�^9�s`��o�&8��|fo��a3�c�ٿ�7��
��6psC�#jGN_¡̧�gՏ���.V��� ��!�f���mYZk!��Z�'�����H�SI$�l�+
+
x�{��6"#�됮�ϐ{C{��o�b����7?7Gn���U�~Lu�/��Q?^?��+ ���"(�f�L���� |�hG��0�Z��DZڱ�
E������M�Ȓ@B�%�JB� ��,���您Xh����� �'�&y�
�������>緼�}^Q�_]�%�����z��`=�'�ꢦċ�
���h��|�����
�|o���{��A�9��
��ל��j���H�����\%���
5�ۓ��S��S��
���x\w��5Lfv�
��.³�M�~�Zo���-Dt�o-�<�.i=%�#��~Z��#���E�S�⿓�8[$Z��@�p�i�?������E. ڊ��ںCq�FO���W���a��贀|�,ѓjj�g��Y�j�P٘#:7q��7�3��T��t}��BO]!�3���|�p#G�b�lH�>�pr
ː�-�pa;�Pkkh�clv�;
�>�����E B��P}���-F%ztָ��� �D%
��±y_ą�%ɐ�
��, [...]
+�ʁe(
��g���
%�^ĂCf
�GC �
+䙑@�1seI��q|
+��C ��`P����
����t^ Tϟ���U�C����1
�� �FI�Y0a
��#��>��8�B ����A، �����(��@"��$Y�@��7�fzA�Ԭ騽��9�
�^ �b4C
���r���ڠ؊���3�W���0���#8�A(:a�
(�h�b ��E�Ʉ� 8��l:���"��a�ގƽ��{��A �?�� ���5��_�(g5�ׁ���}k�߱5��k��<���2���:��ڍ�'��a�H��
&��)�r��@]�C8v������Q� �#�<�R�_������ 9��(.�`U��W7��7O�m��=�����c��n���.-{�a�
����ԟ
���a�)>:P�C�M&n^��
u'��Td+P2@*g�Q![�O�\?%˷��\�<!��6.�a?&ht�8}���G��v
�
�
���c�a_7v����LQ���H������Wv�U�D���
�BcZ��)�d�Dj��1��ͣ�s�?H+
t��Z#����6�A^�{w��
gԳ�������\���gS at 4v��T�K&����U���!!+�ʨ�Z4���b<C����V��m7"/t
��9J.�
�n��
x��z��:}�r������ur�H
<�|���|p1��N�
h�7�q�Jp�\h��!'�j*��x,;~�N��0�Vl
L���O�s~�R��NZ��#��}+�����9�
�=�����k�HHo��� H-��I���@�;m
n=.n^n������X��E,֝f~5���؟%�֫��ӭ�u�z�����&�
��"�*h
+k��{�7�"�i����Q^� �'&�,>n=n���x��1Q�o�+
[<T�XǶ�ɕ�wi��O�:ܮ��o��?�U��և?ߏ�Y���$�#�` �x<��|[G$@2�`:v��B�zJ<#N�E�<�c�~s�Kȋ���V�%ھ9#plϑ��Ԩ}�d�hQ�6+��
ʯP��nG5J�ݑt�o�{c���2=�N�R��
b�Cn= n�t<#r��d�!3݅#��C��E�zs��������̭%'�Ԥ�|�q����
?*����������u���k)Z��dx��kh
+`X�鐄[O��ψ�{�x�;a��w����]�ԯ:��6=?�ul)��=:�$�����9C��.��O�����sEy�y9�5�Z�&�*u�Q���T(
�J6�b�
6n�<#4vȘ������J�̞+A�;k#��Vk��"��Q���^���pJ
T��{�ZV岺�V�Q[��w)��U��H(S�Ǖ��E_Lן��f5�G�X��ŭ��3��6�/pB�R�W�M�
8��Z��'5��˓
K��
Er������O���S*�J��*f��>�B����2zY�3G����b��l
+`~r�a%�9[�d���?��ׄ�����W�ZŁRP�j�߽�Z)n-
+��7����@�
�L ���FdJ@�
+�U��Ѣ�@�p������|?<������s�Ԝ��E��?
4x��UMߢ,��mQ�
m(����'8Vd�z�I��
+I
�P\��O������S��_�rR��N�xg��{j��8���9��f0V`�X«+�Ӗ
���{��YG��v�k�X*:RSa]��P*OvW�ҩ�rZn����^͕IZ���^�4�A��C*VS�b��6���ad�L�
F
+w�P�
6��h��u��]_y-�������"�peI�uYa�CQ~�{�\L�gg�dY�,i�Un���/���e�H2?2�c��
��6�8�ȼnD2A�!��w����(��<�����o�z��ꪠC�W��(Jb�
�.��
ҨYyY�
yS�s�����O��M�${&H���J���%g�}��l��&��I&6�{.7������.
�s�f�R鲴��wC�u�Ί:�eqU�UAE���,�5�8�'�H��k
#���s9�����%��{"H�W�/��_�US��Ł����[bc��o���[�y�����{��h�v^Ҡ�1�l
�W�u�ů��S��q.��d���t��Ry`|I +����P��xъw���Q��B5U�!3�� 0�܉�u0Rd��L`� ܺ���VӚn;~S�\I�Q��9��,<��~V��\��~�ZB��� ��T0"�ְ.^��U
�2�������>�@.q�$� {![C�a5�}�c �wwA�罹�߳_P��i�� ؖw��/KtD�
v:�5�BB�e���b���l��kE!ת�������!��NM�h���|�����+`"O��Y�]Ӡ��rh�
ONR*��-y�*���iVs���"�'�D|w�Mt�%���4�P��C�Q�-訦�;n��:���C���qO~�g7m�`!�'Ho-Y#�_C_���͏
��9TZ�
��.x�L���X���#�o_�C�eԃȓ�'X������y�
+gN_�+�O���{�μ3�ƺ=�����
^@�G��s�����h�
+5��p��~(~c������7.�į}�$��o�{�5�|)4�#�p0��`0�w0ˊ5Xh�xQu6p��
��C[ڳ![�S�M�Ikm`�|���� ��V���P�x���
+�
�ꔮt�vF�Ӽ��^�bU4��$T%�"TEl����S��f�2�1U��U��V
���2@����혥�ФV0Z� �e �M U=(~��>n�����d�NҘʹ8���H���0�߷"5kE�:x5Osq-Gc��$n`h�M��-4M�V����;���?�A
gF�|Ҋ& �V>@K
@u@Q?rFVA��VH��
�x�Њ����,
z�a#}>�*E���4 ���ɥ�E�J*�x��^�h�7���'k=�V�f���4(~���h at jo�H� �x��8pњ�@�)4t��ԙ�H�E�=�
�����9
3�
�v�������K:a�BGT~�=���QP[P�$�� '�Ⱥ�C�́�?�/� o���@;]7t����W��?�S
�;�
��.`���;��f���g1w�
��Yc�V�+J[d= �~� �%�@C�CS�B3pý�`����[���� 6�
+g�N���/H�9�,ݓ(�=�!��0�r(�1�����F��N��^��G
��?�O�g\Kj��zf��
8��
�c�l��/p��g�c���:�t���a �#� v�va�V�IО���IO�J�Y_2�2Nr���c*1�P:���'Y��ܥ�-[��ڕ�i6 at N�d�N��~���z��5�~��6a��'&d��������3qp����.2{
$=
q���b��T2�0X4�b� �[����_�
+yի'��
'�ʵ�;�?s
iدL�X�FXc?�p�&n&�g��6�y�#q�'}��N2k�D����t1�e��faH�<E/Fa��d��`"������q~���c��׳i�;�y����O��[?�G��gO��ۇظ�/�j]��Ӻ��]�aM_i���3���ֶV[�q�V;�Պ[�������}M�@�B!
�BH�B!�%@�!�.{�RAQE������|�}�������
(S��ly� {�=1&0��2�V�Һ�t�Ʒ4��7���)��w/��{�c
f�H�^����������y��w�SQ�b2
~����4��L
f���� ; .&��c
+�!k�'�z�dlz���m���W��=/�5fs��C��z��m��I�GgbƏO�OLF�<�0��� "��-�b�ac@,��r
e��è�
G9�
��M ���}r��%n�����v�1�{^0r<���g�K�>����&7�<&u���=7A�:?
���
q��( ��!��#q������P�<����L[Թ�L`���RZ���Ԉo�R�>�&�{���?͔XL��Q5�R��
��
�:.��
_���y����7Ң� ���S�Tx��4��K@�>y����F��]\�6�mռ�vVx}Ì���4/a�dR��D��z��s�
M�0J-q��R�2Li��[ܠk��[7�{y��3
:���6:�1��4`��0�yI� ȟ\�
�X�p]5'�_;# �8%&�0!�������&��
I��2���
z��mZ�G'��W[��-q�������{�&thH�g�n@��2u8�q��7x'�[�=x��Y�,�g͔��qB�㞈rpD����l{�b�.��r;K���,�hf�x7��|�C~uԇ�5�Y��;�j&tҳ�yc|�pi�@}3
���
�[��u�
x!w^1��Z=��o�'��9,%�'Xu ��m�鎷��.MI
+�z�ƫ�U�W�4�zp�q���
�c��ұ!��
���4D��IC��"o���l[0��|���c��oF��w��H:%t��l���X����I�y�j�rN��W��X�
*bM�}�\���Kƀ��i@]/���
�A�6�W0'?
���=���_}��<���
�FI�m�(�^ Ĕ�<Ky����Zl�*�0�3i8XŞ
Vs��)�S����A
��������`Ib�+l���+s5
* ���0l{�2ʬ)�r�6�i[��uԉ��t��&-ׯ ���U)S
���~B.w"$/�%N���y|�1
F}���^,ڕ�h.��b�9�QY��;0Z�Yկ���C�}sA�Y]>��^ΰ-��8j%|L�X����j\^Z^�o ���d�����������1>hE�О⠹�
^��那`��
�r^�]鷮�����(b_�:�W��~F+g;d�0*��S���'+q���4�6D���!
�H�����ID����4\ۂ�#�\4?�ټ�`R{�Qu
�:�����P
�Ϛ�{+41��j��B�A%Ov��I��eI��$
+\ff^�Q
"����G3��̷�L�n
H@
+
u^*�˔
�dx��
�
#uGAO���uޟ7T��u�{J�����S*5�B^>�%'/�C*������ �
�iY��Tik(Oz'�'}B�g-aӲ��1`���I4���`){'xR�
�����������YMm�f����"]���$�d^�>��sY�⻋�ž�
��{3(%�����
+�ȇC9��n�kl�
z����w� �?[��|xT��4l���AK���[
k*�n*�
�u�*l�SF����DE<״B�7�fv@�Z�V�Y*��
IPNX�E,[ =�Ð"�1l���`V� �W~���mm�@c�ݲ�v�O�Z��Bv��G
�Ր�$UT[aˑ�K�$��{pJ���b%��-
�i�Tm0E�O+Z`h�'��c�kH�-��txR�70P�
+t���]f���躯|R��^�
�]�rc��@�6RlR�繵\�����*�'M��Kї�+p���WI�p�
��r�p�0�Kt'�
��`�J�ٰ4u}��~��
t6U�����m�t_�-�>��
g���8�jI���J��,��
+�C�W���'�i�'�q�'�a�3�b�o�C;��CJ�Y�
45/��O@���5P�:�����L����҇�v���3g�l��[��8��z��H=��=�K�ݥ��M��CW�o?�r�k��?�����9�L��Q) �5ˀ�}�}9����w��S��q�J��6K�2���4�L�D��DȾD�Bq��8�qp�[I)i��q�j��Ji�h5�wZm�tB8���u_�������|��������G(ou���*�m!�����oe��m�e4�W�6K�H�r�l4
u�7�;s+��o��_���u���*\�o��[`�&(�T�ɯ w.\�p�A
~�0�>��c��pD�]�H�Q ��ʖ��˸�)�D�$�t�H�m.����J,9�SkY��VLY�5Cְ>N�f�)������s&�_� �gj���
@�
58!�
��XBQ��CN��z�|�f�<z�X��%T$�
+�|E�1WQ`�
(6e�\7p���K�
���g��Ҙ��e1�o�t �A9��� ���~��M(��B��*�� i�[A2�=A4
�����^M6r�2Q4=S�c1k�^�7;�Dc��n<��
��z�|e�_�"�K)
47�\���}��� ��g@.�T\���\�,�U��
�`�Z4�U�B��](���p��
��)�x�<1uVL
��ӂ���@|��/�r����ߥ�S�^HQ�j��U`�%�E[��MI9��B1B0
�1J%cU�3�T}Q��j^���
��=�;�V߆W&~��K �o
{�O=�� ��d`�>D�)D�9�� ����|p+x�'x�/�S7
W��gd�f���S��a#�
�ǔr�:��z��� ��N7@
�B8Πs�/.��c��:먆
�p������c�>`��`�!�#`
F�%�Y�\�@!��<�}��E��9V�5`8�E��wA�����WG�TYS�U2
Y���yN�U3�yc2�g#��
d��AF���Kw�1�7���f��P�?���PW���
��XA����}�����REo"rR'#'�;d���_��}v&�/�FV�
d�� �O]d��c��0��1
��r&�1�s }e�?e�
��X�V�;Tߍv+@^�*Ƴ'b�D�9ӐHy'g!�B��ƹ5�c�;��dž��WFÜV�A��yr�|~k��+
Mz�nw��H�O�lr
_�p�=������&����9 ��)(��BAѬq�q�����G��
G�W��y7��
�
�^,�sd
{9���9����q���
?s��N.�WP_�@~����aG��J�}h�ߩ�Iq�$������uFDG� O&�5\^����P
_����Ԭ���C�s�n߲N��'..���v
.n㣩20�v(?�ew�[��L�7�^�P�E{n�*J�h��
+���HgJ��I������OT��WX��kBͲ
�����Wt��[t�?����Z�q�~j�EK<.o���4SQ����t6t��T�0=Xu,3j�P&OK����'�1��rд[r̬K\n.K<����S�k?
+
XuĿZ��o�m�uox��~+���p�_"\�R����`#��Is�ZE�G�g2����0�
�:�9Y�����-����4�����Sʑ;$e�m�
+�VQ�m��ƾ)���}�3�7��M/�e�� �O��6
�h�X�����B��v�@r�(� �J�z7����`��OU^6�g?c�,_h�1G��-3oyK��5�)�ֿM.�{-���eR����[�O\D�[
+;]�
��ԋ�
�$h{7���e`e&��C3Os�Ls�ic�.�8�3��8T��3���$���Ͳx�U����'ie�S+6?L��r?��[��{]�=n��=o�{=���n����R��M�u��P����M�^i.�4���0\�
���Ud����K�����Fo��f��eX4��{�}��^�q���_]n��s�)��z˫6���&��犤˧:ux[u:W��}U&�*���oX�
�9�}�
+�Aq� ����Ǔ�[N��zS�2zzXd��H�����uw�l��[��6���Zf��Ռ
^���}/����(}P��P�6�U����Y��27*w�^A~�%ߔ�\f[�X���w�
>�p������9��I������)�neY�)(v��;�v9���b��>�YW��g�
<��"�Lz{��~�3��~&���CGe`e�E�)>�G*���t�iX�W�_��vܭ�֎��K���nh�*Q@$ʾFPAAdd �@" ��C@`Dק�hmQc;Ӫ@��������������9<3����K�;�l��;��*�?핝\�%�]��;g�,���c��K
j2NU�Ε�z7UZ�gy�Wiʰ�2uĽ��Ω4���2�F<
b
"���h�*�����m�p�5�U:^W�N��
��-?�V��Y�hQ����F�m[%�w��:�)痹�f�z�dh��>r�Cߢ�g��̷�Y��&[}w
돬OE�L�c���cb3��X��V�]�h8����S~d^�2��y�y�4��F��M��ߩ�
J�����U�]�q>��[ƿ�[ȿ�W����4���L@�2!���A�O�f�Ha�,Ë�Ux�\�{��^�`�w�kR���ܶ��KJ��j��7���?�
+2v*�9�< �H�p�
+՞9M>b�%�|�77�?��9�\�"�+�%;}��!���3��f���/���e�U�wj7`��
=O��
��4U�.֔E��*�ݨ�'mU��m��$�S(.r�<ss|D��~9�;\��)W����(��r�d��g��1�>�X=��U�"��0ŃjS
֭C_�nt6�Ol�̮�YT]yr�����2�J�H��e�Kdy�<��ETP�)�h|�$�~|�MnF��˗���. ���
���C�e�^|�'e��S�<�{~�5�mBc���M���
'V��O���,�e)?J�|��b�S���%�H�q�ƛ'��M�
rS����dy�Ѿ�"ڣ
+`
"�̇`>Fds�k�$
6���3thw�Y�2^�ʝ�n
+ZPV�\Q�VZ
�E�N�έ��%(�q�����*���K�>I%W}��&�z$�оT%��
���+��h� q�z<.�����Uh��
�����/�N-�~V�r|��锹�>v�H��Cv
�&��>�J씬V�$VV�'T�z�Ux�V
{�U��%T'����g�71�����MNĭR#�k���> -��Q�c��K{ǩz��w�+�<�X�~r��-f]Vk����i�S��l��
��N��j瘺V��+nQ�a�h͈s����ѐ�>(x��t�L0$5�@�!�
��e
M�b��-P>�`P|��D�0K������2~�is^w�˳���q�v�t�E��
#�[�N�p"��8m�{#���T���&��d�T =l�lmj{
��� �� �e
�-���7�Ssn�˼
f�z-jE��x���g��7G_���_d
ѯ� �o�
뿶���'����ن�Ҏ�K�]tjާ��-�
����F(�3��� �o
����e��k�� pF����g�G.��w����έ:u/sM�P��M�CU[�
i-C��[���
+�3fr����"
}P�!
d�r���A=��T�8���,���Zd=�F�� ):O�D]��x]��]�'Q���N���xK��ˎ�_�T�=m^}�i�y��a��ǣ恏�,p�V�c,��@
t���&��8?` �]#�_
���ܟ�p��b��F��
�"�$b�����S�BG�g����9:�57hT�i�h���j�88��π��
��z����"��Pw,�@�Pw �ˀ�&�{6
I�K��[���"_���kB�x�9`����a
~5���I�R&������^�����|�~�7u��[3��7Ƙ^��,�U at u+����)w���3��'h5Bi��v�
���.q�K��t�Ћ"�yP��;%�R��
�w���х �H;�C��^�,�5�@ �a��
���i�8L��Ok��x�5�h\h/����
Nt �t{(�;��.:[�ؐ�`��H���Ԧ��:��� �H
d�C���!�?�
O2e�+�a>
ɂ�le6L�;�kڏm䎭�K
+�
+��aEc��z��;b-�E�z���� 8}8� �<Ȑ�s*;�|�i��V0-3X�:|O���y���e=�d߱�r���
�|��b�+
+��ǔ��B��
����;�L�g#�y;�7�ټ���� 7܀ď#���.�x��5�+-BQڥr�S�G頢�Iu��)��0�e,c�0f�0Ìa�:
�%IZ���Ꞻ�-��
E"�s����N��~>��<�o>��@�L�b*Pʧ�F(
ӁҤ���3m�th����
�
�
SFu�(��
@�R@�R8a�s@
{1ӻc�9���Ig�}��? xMj�P�S��1
�rM�*��J���
�ޝԧ3ƨ�g�P�u�S��RGt�RA��
���@�����
�W8�8dI�����ĬI�����˙
+4�&�r��V��s3�iu3�h�t�h�z�>���}�3{ȧk�7�~�~��/>0�7��z��
������5�Ǟw�����l~'1��Mz��'j=Mk�?{Ƙ���ވ��a�+���n��{8w������|�,��
^�C���|a~�/�����Qþ
��q�8c��Ӂ �
�� �X>� 8l�8�=}���1
���=(_0�l���|
hZ�O�o�Go3��߹�����ߗ~��������-
��p�<�a��܌����g�a��m0�c��ӆ��ڃa\��Ќ9�!9
���
�0T�����]7� ���S�_+�ޮ�
�{������U ��җ
X��� 7��b�>`�:� ��
+{�o#�W2}Zc(:Ps�5�/2I�7"ma3��c�¨;�l凐�5��;�6�
j5�|��=�㦶��g�q����q�h
�G��L
p 3��5�v,���`�^���X�!2�>��������)�=�����3R��mx��f�ɫP����:��!��m!-?��n���e����sK��{a��.�5��*d�:�
5x`��Ď叻j��Ζ@�#Jp'}�=
��������t�q�����L�E)̞D�[���X>
�b��l�v/�_�͡�ַC�X�d�X6E�Yc$�ވcd�:� v�#x�g�c�ND�N��BFv��\W��?6��:�
���Ή2|����1���a�x���\���E[�Y�m���lnF6no�x��z�+�+�=v�#��4D��KѰ�R
�"&� �6�p'��{�;��=��
&�$�'�Atxb����"-@�)?��7~��$�?�f��Y��q�ۮ�*m��T�
}���yw=��{.Du9Բ�ٝ���q`Yf�&u�!�p
�ŷ`�^Ě��$
�Ϸ!�"�&���iO2�f��6
bV��%�\�̯&��6$�X׳�v��W����mr��m�w.��>UL��*~|��
�T `���a�:�}��o�{�^O�yf�WhE:%��=�
����Z��Yf/n�V]�5iH�_䊬j9Y�5I�vU e�ϝ�q�`_s*g�8+�_����:��
ݥL[elQr�R
p5xb�
��d��k�7�)��aA:�m�s�
y ?>�Y�=�Q���8rU�(��Bj�y
?ժ�'�Uqs��9�ʤ�}%�
.ʼnw\
^�)>�$
;&ÎB.l+䁕:�j8�=/���o&g5�O3&��K�VҪp¼{l�M���UY�A�4|e�8֤*=�\�Ʒ*�oW�e�%��Bn��"�����[nr��9I]r�C{�<���5�:���o��-#���s�j�VfL�),HK�^r�����3����E���U��
*I�yY:ϪD$�^�&�W��;��˜sSj]e)��yOܥ���R�9e
`�,lei`��5xc�e��%d���|��Wy�Ik��S�@�J�L�\tzf��oa�<d�J�Z_���\��lU N��O����2a��4��-3���8���t�;�����d�`;b�8��i���G�J3 ]Y�H[�Br�t#�U��\+;�Q���9_��\A�Oey���9qfٜ�yR�mNf�}�8�13��9#��M$��.�x�
+�x����
3�1]
;������y�mķ�, �y�]�,�di.7!7*�0w{L���)�J%m^y1è�0b]A~�&�<q�,'�F*ً��
E��L��@��"���wx�$}���qG��R�`�:��A�
Ѩ�7�|�gySH�riR�'�+w��*��Օ�kUTx�--
\ZP�\+/��(+<k���Zg� �r�� W�����5YV�Α�9���
+��Ƒ����
7v�N���)}�G��Cڤ�Q�i��"W��56���u���qMe��~�9���"tuv9�T�d[��$o�/��e�����4`@Tdp�8�����8�d DT\ �vKKh��`K0�� bF҈ T�EE=���,�@��:g�g�?���|�V���}Ҏ��l>�k�C�R����;X8?����k>_��@�k��nǤ,�K�"[M��� #�?�@}� �{�yup���#q��'�]�[�%:\���@A�ٞ��NG�M?�`�5?e��[����i���9{mn���.q9�\c����d7�&�lr�F�g��hȻ ��
��Z�����s�8S2�MFN�#��
\�4`����ۊT������ yR������^sz�}��Yѧ
+
U�*�W�z�
u��Iu�kf�I��Xk��b��o�f�{
� p�Ȼd��W&"����t2ʥ�;���]��RԈ��Ƭ��� m�=�t���ҽ�W�d�D����(��Q�|fxQ�CDQ�Md!Y1���0!���Ӏ��@Y
PP��e�}�Y97g��"��D���Oύ7��'W��q퍘�7G�\�8Nu-}b䵽�"*���VX�T\�
+�xi|��*�ʷi�W�f�&h�N�v������Rο��w[��#�z
+�<pĦ���)��%>
��Ax����T��D��`
Q�mTh���������OPVWZ�S[�m���=AYE�q��5��T���$8U
�
dTj!�Z�
O#��oH|i�����W/ՉQ��T�`�Hu�Q�:�_�:�4H��G�z�E���~�g�}k�G��z1ҧ�y���.s�4�{�$7�\�Μ�y{��UZHz*D�sľ�
�?�"�
"��V'��W���D�z���!�ЯaC/߆t����ލy��7���5U�Ț��6��~$��qgp�p�g��3�W���= b��4�-���_�@Ѳ ����i]y�Bۻ-TG֮ҕ�'�vlJ:��yu
{v����*3p�ü1X��j���S#W���
��=��V $��� a�}�9
���cM�r��2r�Z O�I��|�O
+�E`!�`>%i�R��
�ӞK�t������D�u��V#Ź������@�u>�?�u �*d4�y�5
��4.4��G��l�e&�bϵ�r-6
kJ���O�K:Δ25r�,p���H�D�� Y;�Eb,"�
�yc0�&&Î�8�ӹ�?i.�r_�A�I$�o䍉���_�/�P�P*F�
&S#Gyv�=L� ����
�����U��hș�|��\�ϘB�r�gM���8��
;��z~�z̹��<�!�
��f
S�� ţ?%h���m���Y��:L�eǚ�
r[��#g
a��e�k��vm��d�u��$S�K�e�5�.y=c�������6/�0_=I����f��
М?@�38� �x�.g
f��-IѦ%ۘ�:$9�K�|�@@�
L��$U�oK����vH����6�ץ$�,!�' ���@d��yK����ƙ{�6���p��J�=A�TZ$M�&i�I3tIzH@�<!Iϊ�IKEݲ�z]��z�����e��-�F�Y��YF�&)���Lj��r
V캳�s��ܭ8w�.`��_��&y�ɷH�K�-? ���u�O���E�m��m����_�z|�7�h�����SϏr2� '��r��MbM�
{�
����"��$s���+;���}���������������~��ï~�=�����W�������~��}�}�|�������f��/�+_����5~�Cd�5���Ǟ���X>�smA�����֔ku���[�R�_��
?f�lRf5*�7(��
(��1�����;ŋ^)>������Pt�>
��O��c%�y�$#M���l�w��\����T�^;�{-Bg�T�5"P�s�J�)<Ѱ>ls;���4y|�7A'�
+*
TxihM�a/�O�?U�
�H�i�������h�`2�w0���~��Y���
wƛ��;�;1
�Q
�U%�j^�ԩV�߯���&r}�ڕ�Lk�3���,���ǡg��^��Aȍ��C
��
+~=�VPӘʐ��7Biص0\N���T4�kpeǓ��o
��wb�Tt���ウx|����
3�����<�?l�yP�g�DE�tP
E�)"Z��R@���뺮c�jQ)"�� �
�� &��d��ꪈ�U��v�uܢk�}g������}��<�o���W!�x��"�(7l�Nj
v���)�
�.
�":�'��?�2r��k�p)
+
*C��$0P�6�}��l�wH�
�}���H�Ej:���
���c���E�w�d�t��,M�e�J
8E�
��h� _#wE��_�
&]�
$݉�\�$���:�R9
+�@�{*�VG%"�}����}/�q�<~���k�Nx�Ɇǂ�0/<�����,�����?����%A�4�'CT}�@�%����W��[9�訸��M~��I�9���}tG
+렢��4�
+���0v�S��g�}Tn������
���@�nI��;%��SB��8��?�e���~�<��.�Qm��5�wQ��:��)mU�v�V=H�Q^�ڨol�(�FG�6��
+�g��U��(
D
�7�O�
+�!M���������j��Uc�b�!Q���N���/r��]leTK�ʴ&�0�Rl������껻��g���_��
ke�+���a�����`�-���?�_x�`As�8���
S�CKƕy+�Ek�d$��F������V�"�ƭ�o�4$7�m�,,G��9����>��x���|�jb�E��(����}�,�G�G�~�Ú@����k�l��;�6��]٧*\�P��u�Tڤ�`�X�,�E7
+���1��הj�v�6p�3u��,-�qV=�u����t|��W�8�8v���*?x��?�W��l]8Lj3aDw��_�͊���՝*���� ��
�$�Z����be�Q�K�
�iZA{F
`��?���=�Q��T
KQ�P�F��\����w�������:xR�S��im(�vÀq?��zt����K|mj�Fe�6��j���
2E�VZ�R'1��ŭJq_�B4�#���F�=
+��]
+)J���hW�C8;�{/����z�;X����v��)
.��=t7|���x�C����F-i���dR�B�JAT}mM�Z�IQ�Mi�{f��7K*��#���K��-��7U*G�29�u:��
V"����?���M�2��{�hC0�w�ú:,Yf7��jj(Zg6�m2꫶�̐�:~�J#�S�U�5Jc�Dy!CT��*���s{y�Wق�wiB%J�P�+��_�����x�]�pj�a���@p4%CG���|xisS�fk�Z���Q�P�1�w(
��N
+��&�������
��;���ak���/��m�%��Q�+�1O�&V���
+x����
�tn�{�Bos t�㡥�Shn9�n��2^(X�m>�i$j-��3;L� ���<�v'�`Mg:3��Ѭj��l��y6]���0�$�Ź�u�Gx�X�D 3j�1v�&��֍`o����l0w����ql��=�[�Z�h!m�٨A�
�~� ��T�l�O�[ͻ���t�e8��r3���,�b^L���D�ź�X��M���NpE
0`��;}�z1
`���=_/W9Nz�/�Y+�.�vR�F0��Jo�E�Z5q���I����-C���������H�Ŕr;�'�Q�+P�|
s|�kJ�a�Av���>���п�/����P;x�]6p|���io��s�8�}��%�6J�4��G
A�i�)�i�?�J,q�L*��<��{1�\7�&v�W�b�g4܁`
w����`���X�яA>� ҉� �rW�-�L�{2'������U���+�8[H��@�*�d�!��H[�������ۑ��/#
�ޅ�D��
�@� �9 S���� ]- � [...]
+�w�|/Hs���Q7��|���b��y���j��y�w�����a]ރ��7��p�/w��_����{hC�]��{\� �.Y�:�� �Q �U��Y7(�� ��@(~
E?f��/�ۅC���8��[��OK��V,=��t�yX��
�W��5�ʩ8MR�
�
��1&)j+[�Mi
v��2�.2eH7���!��Gǹ]WDG%��|��>����k��]��yV� �۔%M�U�4������w��V��W[��Smu#}��]@I.���T1p����� ٟ@P��o6��i��΅��Ő|t�W�;<��B��
���w�`U�\��s���+[qE�)���+B�OD�E���"�N���Os� �����@D5�W
H�����1<?[���+���}�p�s��W78~��=�`)��aK XL���`
�|*b�`
�0o��i��%�`)��@���
X�X�� u����
4���Y��h!k,ů�
Z������,
+�L����1��a*
`�0�.3er��[����
+���5�],��*a i�F��X̥I�e k� V�e:-��,�$r�Dr�8Ì�S�bL�0���}:: ǯ{����Aw`=w��9`�|V�.0�T�lڬg�z&� sL`/f4���`B�YˆuB��0���"wh�Z
�
P�;R�����,y�L�m5s:h�h�
h�
�֍7�7
��c2 at Kw2Aˎ1g�"�hי�L���%�:4�}'z����@��FDz���ao�YSAs��"�yvKX˕5��w��1
�u��d��r�3��
+�b�&s��F��
�4)�8w(t����L����@V�8�)�9���sv?��b�X�����3Q��r�c��>��r�c
+��^Q�s+|q�'�u{$���\���$�pk|t�"��F��ٕ���
�- at 6�wm9
�٬��u�@n�y���VE�ܓ�-
+_=v+�y�z=N(~��W�_T�$.v��
+��U�Nq��M�F�"n�����$|�4z�b�w ks������Y�Z��|��
�z��W(��$(��(��T�
vJrE
�3�vI�6�5�V�m��J��3�w�F�FI��k�g�z )���R������� �,�`����\�yxp/�~��^zs'�%�� D�4F�!MSl�f�Z�{�Z�����'U�Iϫ6I�
~+�1�ѧB���fh��k�:�V�Z���O}hȿ�4���T����x h�g`���\���p'|��s'|]����
��/Sl�O5�oV~�!K�a�A���������|�[4�ηD��=�g���5��:��[t
�~Ҫ�#�J?R�Gj��h3�?4�=���\n���<��O�Y���� r@{�;ZB�)�
6��+�
+I\�]�6h߰�A��jO�< ,�8�ꏿ��}P�_�B���;�{]zwixY i��a��H�Q��p�xs�2���>���A3�j���%x/[��(o��
+�FF����C�#�
{��]v`Deh�nE���
��BJ��*
���Vp�Iip�qI�W�롤{-�����Ch
�ߑ��j��΄����S���c�u�^�{�&�_�8N����D���
���#�F��+��ޒ�u#"ߤ4�iI��1���]
{iv9�٥�^��4�HFz"i3�?�h$����=����1荚��8K4$����x�⁇)�E�a��%�j�%ȵo�o��g�.��1٣������7�rT��Ũ��E��'F>�X {gq>�Y~4�����s1�w.�t�C���
y����[����+�
MI�P'��'i�Q���>�;i��7S�5KR�t��3�$f����Ǥ(�И¸�����c�Z���3�l�S�����x*�ƞ�'�� d���=���\�Y�pцhK4�k�X�'c*�6-@�fW�m��n
+P��!Ӽ���s15U�P�Ũ e����l���GƟN<m��pq�Ʉ�SO�?�~,�/����)��4�h�9�L������oM?
��|��Es�
�2
�x��o�e�.(�\#,A�Җp�
�bu
+6��K�8�L�vӼԽ�'�9���������G�K,'U��I��:��:='�ob���rRi4c�rdm/
�E�6z��6M
�ݤ��� ����;�pm���
�*����F�ݒ���)����m��2�̏��x8�����i�R�g
���̖�ZX�O�2y:��� Sft�Y��ț7H��A��C�*]�[5P��
7����n{\�-f�S>�3�d�{X��
�w��"�v��D�]7�j:[��9ź$$bS�.���4M�45�e��nTB!��VO-������X�X>���9�����}�mT��ϸ*;aJ�$Ŭ,S<�T,�.�(�W�k�
+Eu����9����yi��=u��w�K';EY*�4s0Z��[z�!(v4~O6��
}\��
��8�/D�r ��������U��=$�2.�řhr��J��-��uaV��2��I�Y-������<rķ����Rq�KN&͒e��LB���?���Q|'G�m�����,=t�@��
'
�pL��j�Z���U;ǔ���\��5)����Y�$֊�<{���I�}H �4�I$�=�$7��߄�������A"%kf5����#�N�I�nq����bZUf8^䊆Ⅸ+�GUq�AyQ��F�{BQ��Ʌ�DSe~�y�"�J��k/���$����-C��!���r~�do�䐑K6r�
���� ����}&p�;G{����DC�
�4>�ҮD�v��F�}tQI�g���&����R���-%2�Le�cz~����9)�6���k
ɊG�d�kAJ>92��|�
���I/�w�I���q�<]
�NF]�Ux��r9J+��+BF��)ʢ�e��)��d���� [...]
+d�l�Mo��
f�|"j\҉8���Mb��M��ɧG5͌l���h:i��e��h�ݮ�W��d�@
d>�?'|Z��B�D��k��p�����3���6ig�"�}
�o�Kl�1<�l�蘳1F��
�Ֆ1qw�lJx��4�L���m-�;ں,B�<�m}m
z���8ES��`}{�i��<��A��J�W5��S����H�<qW|se�wl���ݨ�]���{GDt&��H3��!
ڡ2��Q51��e���n��_M���1 �L��/���C��g����5�T�{���-���Ӹ�t�"� "��#�g.v��!�?���;nnG���m�b���J6��5r�m��M�+�l�w���;�F���|ex��n��z��}:�'�
���^ ��8��t���l�q:�r��`�/Kt/ �mD����p7�?�ź�T�ozs��<,���a��G�������}�������4�`�K|Oj�
�9?������@�m ��xl��
�
;a�O<�Ū�˰����@,�#�|�
˞Eci�A,y.�?���E�������^`Qaѳ�Z���:���B�������������/�c�+3,m�eo\����b [...]
+�T7:�z0�
��!���
ԭ��<�p�S�������g�R2�b2�̀7�c
0�<�A���Ep�ep��p�up�-��oaCѰ�T�$9+�
jb`A�C�
�w�4��s@�e�����@���{��{`�Ó����L6p$G��XlHK�����4Z���_�ZL�`��/���g��q����e�ChO��@2�Gv}����Ŝ��;8��
ɀ�7��6��c��dS��^�I�cr�x^C^���}�:<���v1�A�&���cZ��f9�� W/��b�p
bal?Ka� O%+eU�������K�*��=ć�}x7�o�^�W�� ϡȆ�`����$��kz-�[��v�},�e�(X1�yf�Y+��������{/����ڻ/� /�s�7`�Pd�cp`�x
<��B�W> ��l=��bIL�䠅jV�j�q�Q���2�j����M�7e'�#��i�α�3��3T�@��
�D�5�B !���]��;rl�*���bUP���N��t><���/��_�|@?�
§���1��>���/a:p^�B&��?:f�y�
o՟0c%���@�!ۀ�ۍ� 9�b����4�1�
>��lp'������]�0�
���2d
+^����O���&�G YN���
�w���Y���; ���0�`n>l.�����nK9�ݢ�7��0
�Ny
�Cyz�26D�
�N}
v��8l��0�=�~����r�%��.�K_�'��
�q���؉�؉�a><>����mlx���#
+�e��2QE}
Ѡ��Ѧ��ѭ��ѯ?�8k�q��>c�p����6��O���
�?� zא���
��_���3{ �nF�="W��� ��ov?��s&��$JD����=dV�g��3��1�a
5��
4�ɼlz�9f6�|fv����bԼ�p1>��
Lbp� +=��F�
Z�s�>"�6̯��W��]���][�y4&X �`���=|�;�"Û�2��*�QV��Ht����C
.G_x)z��B�
ˡ� ���Ӗ��s
N���I1
`�,b�
���:�&�]�#
+����|�b�O�B�A|$�M������'�^M_���]�/���.
�k�:�L\��`�i�S�Wlb���L���~�>G,�đ��ļ'���B������
�����<a.nL'|O������p���.�%��e
��MϦH-����5��'��
K��K<�x4�So�-�ᄧ����]IĦ3�,:�Lv$���
��a��U�E�+�$y����p?}����f��N��I���0>��g~<C���]��h�ʦ7�ڮ'���P�Zw����3.S����<r۟�s[*qlM#���dqK:�҅���.����
��D'x���p��\��;���grw���X��9i�}\�yo���p�Ժ�Sjי�v�Ȭ�
�hq���vke���/{�e��jJ�є1��1�8 ��
�X�١�L�E�b�K���
;�r��
:
�V�`~0
���g���'�q,:�xV
�"�9��m\�SKv��&���Ƭ~�ΰw
�Om椷6듛6�д\b���B�b�Vt�]��[0�nO9fp+�
+.�����pB�
�D۠G�[�� ѸC��8�ϱj�/��Ǔ�7�)h�����z����^ڜ#���s�Uܛ~�s?M�OM.q��'�^�
����L�$���~���
��^pR��$����U��.�3n���f[5��4
+$�|9��_�Z�_�Q�kY��
�Q���y��'tof�*������8�B�1;�7�fS�a�C��<=�$0�A�;�K�=E�)
�v�z�E1F{�)�M�
�zI�u�Xd_-��*�e���j�����*A��Rp��\[^X^"x�SZ@�K��q҅l����}�D��§� N�@o�W�%�'��l�֒
Խ�=���Ifu�
˚�\�*i���PJ��(\�ĕ
+q�w�蠟\t�.]�/>�/������LB\�.d�G�����;G��7� g
+��'�Aw�ЮX
��
�Wɠ6(�
k���%셕r��b��J&�)e%��Ej�bi�w���OZx�.)��/.|���'�OIqE��B�P���E���m蝅 �~=
+�P�Ck�w�\
�)��
�U�&����ʬ�e
+�]i��I^"w���{�����~��>zA�A�=~�e9�*�7d�.d+�ұ�{S ~���N��9J���m�M�
�5���u��
���(}�&�X�N�PTp�J��le�BG�J�,.S�
�ڥe�o����<�<W1�^�����S7�Y���v�>F���q�?���_c���PW�
TkAS
+�;�ʴ{�Jk�̊�3,��r�%Ua�t�@�t��T{���p�=~���Y�1:��_VżW���q��Y��S<�
��%��itϣ��Q Ь5��z�jX�k��q(�")���E� &������E�z�m~��1��ԙ[[鞥m���
�ak���k����a��{�k�kF�ٮ��?�ijB��~�U�kB�j$5�4�Sj
M�0�&g��:Z�?�Z���U"�
iru����C�MH%���xﻇ����c�5����9��yS���%�gp�G��?y"�s�{���(!ǘ"�%��J�7���ȱ����X�~x�j�-�C�~<��x�
�Bc��
�9l�.&z��)CV��|�xXp���[�������o{m{��<��O��}������@�I��i`|/�I0���)؞$�OI�ؚ�lN^���RC�z�Ф�n��}�6qo�� ��N����l��m�N(
�>[m��o�O}�Ȥ��@���_���A�=���1 at d
�^���s�O
��'",m:6����||�Y*X� �լ��l�
��j��m�v�[U�o=��%�Z��2 �hM.֘���
�@=�q{�k�<�
d
� �s��x�`2�+K �j_������X���,/��Z���e�^����]��I�,gg'eο�,�9f�8'��N��"Gk�Ȯ5RdR7Eu�ˠ������E��<�'�G�{Ӏ-��uY�w7
��
��w�! �
ʼ�X����~�/XEA0�
+C��0\gaѿ���ɋ�E�w3D>w��}
+�E>�"�|�����|Wx
R�xr����_�_B���[��B!�7���P��o<�=����,�}2^ŋ�]m0ܟ� �g���,�ϣ0珋p��.�+���\���Z��ٶ��y���"ҁm׀�s���m�������/����z-�s�f�͂�/8�Y��JL+�CE(���`�6voc0�*
S�݇mU5l+��
�����3|�������C����|o�p��
+�����~�uV���
�z�|p��&}�����נ�e�:�m
ǘO0�s4F7i`�T qs�M;H���
�������s���|�\0��lZ{��`��8��M�h����a�0�<0���7
S
+F_
+Cڃ��aB��^����r�
������=N\����Fp� cɀ�zq�)�
� 3
K?��6�I0�t�t���盏��C��! ^t�Oq
����M��2���{p�
�cy��g
+���\�1��7�A�ѝ���s�9tɊ�S¤LƼ�ߗ�0~ ����%Ȍ��!cAC�@#l at bG��'��15hT�����ɢY
Ka�|���˞�U\�&�4�[����Y�WP?
��1�=4��2f2�b�ҝ-d+��l������,�%�� ���&Z���l��-+�`Y�:���"ԲVm��q���<�Q��<� ֠I�@�s����*��mg��!~�Z�c�b}����$��ϒ��$)@����7���ᝤo%�JV�ʿ�s�+�
�bh"�e���=���%��A,����n7��"���(��`�Qo�A�4
�y��>A��
���(sh�+B����u���h�H��!\� �-_O�=�h
r��xO8���Q�&�uhtڄN;Q��g
F��㨞y
+U� x뜊J�k(����^�^�DV�g�&������W�9�?~ Ȇ���|-㵙-�L�>�Ms�h���9�P�U�?��m/��~F�{$^�G�{
^x�G��<���g|�{�������BOB>��A�m��wd��K�ו���� 7^O^/;|����k.���Q��
^{��t�����s���
����|c}�u���u�ɯ
��w������jݛ�O��r��fY�$��%�G�~[�u�z���
�@��ɨ�?
o�nx�`!J��v�<Z��~������
("u�Ѻ��x�ۊ
���k��<�
��S����UE��e�+HW� a�:�����
����|������7
+��q�TLE��
��>x�d)��+��
�lѹ�K��r�^��(KyL?Cy��5eR�+�t������i��]S����9EI��J%)I�=��9��=��Cn�=�)�
A��
�ʉx�l�.�B�J�[�@���d��t����]Q�ѿ��蜮�O�4� �TU\�
�
F�T�ST��$�(�&aEM��?�.Ө��3�?�a
[�A@���L�Q멵3*�Z�q�����BXC $!!!�!��%��eqg��ә:.Emg��
{��Lo_O�P��;�~{��y������gw:�֕θ.�E0�8��{��w�sb�����e�<����܀��
����٩��ɱ�.r:�-u9��r
�һf�xp�����ǹ��=�1N7���-�
��̯�۹/}ڸ
�X�n�b\�D{�
X�;�6^����
<�����a:�]��ۆ��X��%���0�+p�/a���ݎ�{����r�>���~
�=�m9#��r.Ys���<n�o�e|�6�A�/���FYtG�� [...]
�[0R�Š(�p�-�w�Y]�{'_����{+0�Z
��[x��M���F�ލ����03�_A��SW�x��6�f�
}���'�Luģ
;��v��|7\,Äp5FDb�x7����S�fo+�q� XmB��UX�n)��4�
-�¶`��?�N0n\]R#x��Z�]hu!`,b| ��0[H��{|�F}���u�=f��8+��ɒ��lD�d'��q蔦طI����V�X��X"c[��>�ŕ�:Q]�I�R-:
f�-�^��~��#\/�O����>��B���K��$��M���ڵ��a��W�m@�|;:��qL�d�"�tj��,�E�f��]+U��Ht�j�)� n�w���'#*��QZ��K�
Q.�1�\�����B�m� �O���Թ�h�?K�oD����ѥX�v�6X�1hV
�kP
u�W�Ԗ �j�%�Fy�O�\˩�U�d�!���pM�Hu�d���o#��?�(eL �G�.����U��^.yP\S�*�}_ [...]
+�se�U�zj�K�5�*?��2P�1���m���H��|�X}wi��oK��Wab
$�0��0{�
�4�J�H+ߘ�<PS��U��V�\�L��0�ʐd���p�V�4��
�J��B���uR]m�Xg
+��G�tg���[QE%^� +� ���,��^P
?�9\!���G4�q
p����H�լ@�)U���7Š`�1�;�L9.������-�.�Wk���5ABcKh��7�o<
Q`��3<�,0|Z``���Z�1�Js�,N����?�'�@S�=j�Ba������l�ڲʆC(kHq�Y��R
�Uly�˼���}fc@��)8���g��1_ϩ{Ḟ��1����b^g�!��8G3���V�u at m=uϦ h��Cղe�� k��� ��D�k��Ț�\�Z��o�z�Z�^y-ߜ������̖���ِ��g�M�M
'���%|��p?��H
�k�ҷ�v#Ց��^m
�w,��sJl�ٶ��k
+����J��ue;�w�s�Ĭ�.�;�V�>j�x��l���QN��'�����9������3^{!s�=̾�@E
(�o%�6��z���¾P��o`-�6!wp��#k0ܡ
d
��
:�
ɝS�t��!�[�P�G��)��CWه����=����>�}1_ҽ8Mw�e`�
t�
�]�����! {������ѕH]�Ա�H
ۃ��8$�'�� |
�����8
<mr<p��y����3���N<u���9f�q�}���w"U�?�ݤ�jjz� :A��@�{
��C�#��j
��F��G��ڃ?L
ľ�d���B�,�'�+�k�;g��v\���13g�c��vۧ��o2I9<E�#��H��h��R�R�qS�'�:cǵ|<�
ۮ��G76`덭�rs76ߌæ[���v6>�#��;*�����F��
�p�!��|���
�o7���*�!寓�H_Og����O�H��?i�a��XX�
�}�
�>\���a���X�8�y���O����jN��s�X�+���g���
�h4����]�q1�{
�?M35M�E(�"��Ua�X�X�Rm�a�ٌm�4�鶧�%r�R�H(�B��r'�K{��Z�"aKE���~w��Q���~��L�����}~�<�o1�\�k���J`�%ί�������4cr�&���]�dLh��VW�ku�U�7ƾZ�1��:
+��a�&
f
�0��0�M7F���St�<�T�O�ګ��+/��[��N�����.!�w��g8ƾ��Żq�k�ީ0y?��3
��0$��
+�P�i=$�-:
1�ew��~p~:�'r~�����qp�/0�!�q=`�X`N0!}
'#�3�<
�5g����BH3�4�y�el5� ����
�J�������c9_�k/��`����:�� `�
�
�
�>�s��d u���F1K6�Ma�����
�C��?)�ҵ
�3#�5�M�Kr�9|!
���7%�c�|;Kg9� +b'�)v��������O�֨
]F=xÃo7&��˫��ǜ�=��52�4ڙ�����<d�d˟ lK��w�\v���rv�ͪ�ά�f��aւצ�h5#��^���d̹������X�&��g07���2.�*��(���7�d��^˽xg���VG�cU�n�3贺�����G��K4Yu��5�kdO��G#�@c���A����
4q�
d���KA��,��qxk�ݶI�KC�]6�����0^�
G��)��_�K�[h����Mh�؉���G�n���A�>�9��ƍM�8�pr`�&
=�?�9�@�C:
b��a
�
7��1͎hr܋N�x�t
Ϝ����<��D��:<���M����?%���[���Q �<�a���3�~�Lf|?������Y��:+M�*<w�G��F4�$�K
��Ư���pv�k%~r�F��=���v�j.�*��.��;g�5��
ʹ\��cA�m�#:绢u�B�6/O��Q?
��bq�m
~^�w��?�g���}��^��%����u����y�=q��
���3��ة�c�'��s6�G�p�;��������9�
nx��_�P�hn/V�W<~�ڀ�%�puI*�x��%�<\�)�y�2�J�
jg}o *|�'}[e��j���{�
g%�����|�@sx
�\��&�Yb�o<]2�]Q�7�X�*��q�?
bp>�[Tn���
j���9�������a��Tz]tB�@T,m
���HI�PJ�Á��!���k���ڜo���!h��F?
��������.���e�8�e�,_���8)����A�l��w����,Q�,WtLV�qT����eq���!�s�|Y��A��d$d�2�E�\��"����%x��f� ��f��ɜp�+7� ����Q&W�\�y�Z�|��Qy��H�]T(ߥyH�#.�h��OH��i��o�/o�W�.ɑ�x��4��$b¾h���{�� Z�"�-�Η:�
+��+����(
��q�R
��HH
+C"�B�!�EC�h�)R�,�~E��^�1�
��يj�݊G���6������3�]
+�E3��g��ý�y�_�� 7��p1�
�&�t�
�C�HX ��`�*��a���X����{��9�۵�Cӵw����
-��-��zM?-��������R�H�
Fb��9s�'��,�7�{
�k_
��j���Eq�L*�Q�DȐ��/"\='"J�
���Lg*�Jҕ�Ҕ{��襄�$+/ڡ�g��<(I�v�6%i3-&�fs�b�˟{N�5j8��<�W
P
>
%��A�j:�#ݐ�}Q˰'j%vG�
+2�T���o4vE��Fn����u�UY��U��ڪ�0x����M��GoS$�0Ib$i�Esx
�����poP�����<ͯ��!(��F~�rc�!'�
ٱRdƮ@z�*AZ�R�36F#9���
1%I1�u��d�m��5�]l�]9dC�C��
M���O���L{}
I��s��ی���r
��x�Ͻg�
+8=ߌE"'n��!#> i����8��w��3*�3
�e�
#8�����XVc[L����DD�f���F���EAcA�
1ƨ�d7��� J�F�Q�ΛG� ��w����9���w�ܛ�i��+�NL��R�Xg(�e:e�]�r�<E��!Yy�I��wV'�sV+��j��%6Dڑ��k�6�POέ��K�{U(eؙ�m� ��"�l�5��@��K�lM�Y�z�$]�`�S'[��3eZ��N��&W�*
�TǝUW������^��DF�
yW��Cû<Ѓ3��&�
$r�WYa{�
ڑ(J������K�
٩ˑ�l����L��N��o�M�XkR�e*m�m�v�\����=���sޠ��<�ߠvDFl:�
������I�]U*z�Ἥ����uÑ��rҧ#3c�3�!-#)a�ڌ(sM�
U��*1=�&!=�6Ng��+w��U;��]tZ���<��� ;"�N6
Y
� ?p���
��~-=H�耍�ݑ�크�qH���9s��Y� [...]
�v��}�z({=8N�P�<�Z ��F)��]�T<���y:b
�cX�h�J�+ 5�*Yki�37h,V2�B
�!�R�*�A�`�9� C�m��]���
��$�:ro�gX�G��^���b�u���@�vD���
^�,���R�)]��e�+
GH�z�/˒̃�t���B����V�e��W�}+�+�)�+}j�CX�m�Ģ#�V�'Ѓ���
�E��P�6�~;�{�k��#��
a�G!d�D���)���CP�bT�ceE�+�bEe<�*SL���3[V�U�d�>�⽵]|+��V�t��#$���dQ�0�ȿ�A-���_��
l��ܽ��&���?�Ip���ߡ����,��ƒ�X\�����p|���GTX�/[P��+L�V�&7L�
~b2�J��9Dv�{�q�`?���V�v�vɕ@
w��C��j��
O����C1��X�95���Ƭ�
0�f)�k1�&
��l��gR�Im!>�݅ig�����:�^5Fx��:ՙ栊�����`�zƝF��#��1���������b�EL�8�.M��K��Q�<L�[����w%c�db��-]��W�y���_��N`��T��2�;�_��3 ��@�Q`�I`�`�w�.0��#�m�������1��H2
C��!
�����70�1�0�V
������pk�
��6��po��~s@���@cO��ǁ���g�3��\��~
x�
�����>�w \
��ƢO��j�F��B�p�
���Q
���I9�-�������}(:�{����̻� �������}�U��G`�
������s+�ls���7
_�C�bd/��W`�j�_ρɛe��0��g��F
+��Fc�ӉR�멟B��}P-��3ꀉ? �����n��W�\ 2a K�
�����?_w2�x�Id�C�&1��O�tAAq�E��Q?�u������W� �}cwg�=y]9���
��ǔX��ĉ�&n����nH�C8��p�F(�DQ'D�aփ��b�%wM��|��g�!$��$�hI�
+�,!���|M���fߑzM�ڤ�&��
+#ZM���-������m ��{�� �Q�w�g�܇!���K��DH��^L��]��
����ڜ�k�e��������b�
��F<��MF�
+4w댐S��
B�ѝ��5��������y�����h�HRI6�
+=�(J�ZQ�W��x���j�)j�LqO����=<pnůݍ��C�NO�_z ��'���r�n_�~|�?��e�y1���l �k�.�x���.��f��5�\7��u+Z\w�k%
�V��I4�~����
h���no��.p���5�?!zSߥ'��Cx�}8s�'�� �y�8��<����;��
��}��o��Y7O����;��/�"�"("�rQ$"A �Kx��@L� rA at Ao(���Zh��˙]��VWG��͞y��纝������}���y��O'����<�\�1
���#
����Mه;S1:e��\�WS���iOpi�+\�#��a��oA>�@�y
�O��}������S��嬥x�'3163
��dp?�w�
��֬jܜU��fm�_;q-�W>
��O����K ���A�qn�K��Cp�r�r�-���@&�C�
4
d�oALƋx:��E��ܵ�����Ը1?W���r\\hǗ�j0��Ë[q~q����\�1�Y2�SK����1
y��z(�oX�s�h�i�پ �~MGz^�N�Ӑ�x�d6���K�q%4��cd��a
++����^���p7N�7�؊v
Yы��
D
�p�u
���G���H���=��� S}@�t�IA��~,�g�����v�t\
_�/#"q>r
�F���,
_��E\m�@�
����S��1۱?�
�b�/�z�.�'�
��bW,A'���
�s�
1}
H�d�^�����w19
W�&a8z�Ɔ�x\
�$���t��38o��x{ו�w�
{\�IhBwB�K���)?���m�����W�9���� 3�?���<�����*!n����_`x�D�^7
G�!8�~5$ʱ7Q��
j�lТ;�EW�;���TT����
�VA�b�p�b@ؒ���9�kQc�������
+¯W^������
�����+k��b�������W,���H�l�GwJ2v��Бʠ=Հ������Z�v�6�[Ьl6*w�����3�:�u/��ĥ���FI[��_�$<OH��
xA3ߝX��f
zv�E8�<S��O9�i�ع)��Ж�����ئҡI��UF~��&�WU
�T
b��]�R��ڢ:!�θ��T=�vd�(�g�]E�U�� ��ә}L{@m.�7�8���Ci�O5�A��\���h�d�є��ƬLlU�N]��Us|��BX�v���u�*u��C�GjW�ޜ}�Ǧ�VfU��˚M�5R��W
��}ڃ���T�5��L�^?�W�V�
فh� AsNrס>7��*�rsP��ϫf��U�Y�`6��[RɴHm�no
3(�`Fd��]_3�OoC$��!BOH0����
�i�yg��c4w�S�d��N�#���D�f1�j"Q�Y�M��i�Ҫ��jyvm!�R[&�im"�v��B�$5kw����eF�羥�Q?N�NG�8-�h��"�?$xFm�-�j�q�گ?Q�����x�M�!��g�>!��pl��©O�]��J}&lz�g��NXn��M�*��� -5t�p�~�b�g~E�[~�ቌ5���"a�D� Ƣi�:VQ
�ڇ4�Z�ul3����ip�Cua
l4*�Xٍ��*���0��|#[,,c�E
디�[�El��
�- [...]
G$�"���%�y�:<�
��},�A�p�U:βߣ��1fS$��5(5m@�I�bS�L^��PP`.�͕��-՚[���}2�|�7�|�7��H�cz)�1I���=yN��-:#T��u4s���i�l5�e4s� [�G(�|�e!8K8�-1`�rZ7�`UAoex�V_k�y6����Hr�-R���'�vR�i�.˰~�a}�a!�ȓ��ƛw�=,�Z��w���i����zn�7L�? g��"�\8�B��# �&�9�����r����B��g8��ҝ=�M���iUW��ο{+
/$J;SD�<�{�2��)ڃC
�"�����>`�6��)Dі�0�L��&W0�
+�b��^�,w
+2ݙ�p�AU��6՚�i�Najm�(��[�\{T����D�~(Q����j��"�dTA���Q�������z��9��8����Y�>�)S�䖶��.BW�-4g
�2
g��1
�q;
]U[�t�tu��;�p���e���|�3kM�������<��y~��yHn�6���ub�.9{�ֱ$ʖEQ�,�
�ߢ���`A����b^L$�����ٱk��I�i�n�qF��|����mxL�ix�2��LZ�I�b�rȕ�O�$����-� J� ����x3"�1/�/s�\����L����a���}s���s��[ʔ}_�����; M6l���5A�՚ C3�I����.�<8*ǟC����x��'� V%�"9&���S� O�aJ� &����Ep�?A�!�O' }
31!c�k����x|��u��Gx���;M��Z�J�2�R�~�
�$����Q� EΟ�r�˄�l
�G,�˵�7� �<=����W~��g�Y0��%�*\�{�F�
+�Q����}a%��&�y
+}nk�� S��(�qR�v�^wV���Y0�0�w��AO��?e��ӽp)�ϰ��x2�ďA��8��``��ʾd��5�?�
dz��={\�ñ�%��
+ǒֲ�@��'d=8 ${�d!ٳ� �|���ir
�M�}�vW����'�\s���>����1��7#�vk]o�����X�9L�;��|�˛o���ZI��7H�
�}S|�
���9�
zL�OI~
>}/��u�5X�o��-�U�b^ُ?W
��#O�?��㩘U/�M�
+�51�I���M����(ՊQ�c$�Ծ:���ܣ�|J��
8_�k`}:U@���
Ѿ茦�4:g�&dc�(��Fy7�M�(�1������V�e�m���G�>,����������rp�
+v����`~�*��x#�j��0]��p�I}�~c"�3%�%a%_ɍ�d���VvJ����L�8��I�>R���)}Wj��U�]-��t^
��6�#!mQvb���Ͳ�
���PɃ@m{[Q�Ei��UΙ���(1^Lb��J��6�[� �HY�#O��4�
M��%�4P�s��^~Q�³�����N^m媷�Gλ7y�#B�l�P,ߊ���SD��b��tI��G��2ɾ*�%�O��_��Ո����ߡ'�}T;iG��r�*�c�@��(m�X*V��x��7o��x���fm,��~Ӧ�R{�m�M�yfz�'&�y���J���6�m��)~�����qw�e)���t����4A>���E��|�u�i�}�K�zt�y��A�.�:�^juF����U�K��$��/���*�Z�
�f~ꬸn��*���-�Βߥ�d[�l�Q�el�Q�F�z���:�&��4t����K��Z��5T[���V[����C�
X%q�� և�c}����ޣ�K6O���g�e�T����P�%��/([sT�.�~�P�e<����Nj�����>�*�Eܷ_F��7�uX�m�M�t�ε>���'�K}��;frޱ����(�w��5�pj☓�h��@�@� [...]
+WS���<:R?ʂʑV���E��y�rjL(��Τp\$y���r�|C��wd�n$�w�~{H�K�������e�)F��1�?%��5 ����ō����U
��W
�^Z�F�q�CDžq�)�
���cȟ@��i
�AƤ��,%5�+RVs �{���I�ɾ�X���$g�r���kĆT
�Ğ`Y�ďP$_/dy:*��u�τr�v��Г�@gr�<�
+�'-4���Y�
I���������읲��)ۈ��?��=���
���
��j7=���UkoX�c+��~W��! $!wr%W $�- Qn�
+��)�-�:��n�^V�j�3OO=�ں����v�S����/O���~����MԍV�1���Y<�$ŷ���s��+�p����W�s3�SL�fb� g�����pL���F��݅�{%�(�!1�]bE[���%ؗ[�fi
M�$��N�Av����a��ل�C^\�9�s��q����;��a� ��w�(��ȝ�Cy��'ųpT���KqP�]�
h��К��}y4癐�w�1�
�A�)�P��g��l\��Ɣ�yժ��Q��J�
^X�
Vr�P<�A�a
�=o$ݷ$�{i̍P�;.�����V,A�rZ�[�O�*�*)T�+0�����7��R��T�LT��Vjzx�0�B;!('i?�5�a�)�p�ν���:��`��Λrʽ
+`�r�k��`�|t�_@�f����F�V��1��:3�:'*�~D��LXg+
ͼ���4�������ç��k����>���
�í n���P���(��VS��W��N�\��Ӑ4d�θ
5�,Č"T�PiT#l,DE�
����L�T͖���Rs�o>&�DŽŖ�S���B���|��c�&��η�����H+�Y�<Cz�q@/@k�#H��A�9q�ZTY�#bٍ
+�!�
+A�
�eV7J�e��e}�^��C���B���)N�߅ۿ��Y9f:�z�݅k����u���j@��4Yf�ֶ1�K���Bؾ!{v J�
+�i�/2��p��(��a��:�ӹ_�p�&,r�M���Rl�OR�λ|������1���ޝ̦�@���(���u�F����}�
F̹ (w�@�������(v������6��q�����`�� ���Ʒz����;�b��-��{�_��x�n�5�9�>w��'.�(���=�:�FZ�c�!�}
���QZ� �o=��
�������+@������֒c.��L%-|cI��P:"ԗ^�J>&����
O��X��c�s���ɇ -�`%�@O1��~ A߈?��G�/{
�k�lEQ ��ր����A7�� cU��P3O���O
+�/
T�[U�K�*ȱ� �L��]���8����0iw(��(��� ���X�����+a o�)�cDCD}D
]�m���RD��*�d�n^~�$?/z�/���/���'�p�,�1ӹI>����Y�`��vGh�B��ҷ��!X��0�<
�e���B�u<�x.�5J(j
ȯ�#��Y"
i�
��.FR;Ȋk/��ć��柌(�A��}��M��;0����!�l���C�;a�K��~
+���q �WB��,H�{ Iʱ7��8i��ɍ�M!�ڔ@Ns;���aW���t;��#��CVÃLR
F
ԋT����l ������'���Zg"�m>��Ӱgv��FN�fd��®���ٮ��=�wa[G)�vVcsg
6u
���ql�|���
�)5�qX?��tG��R;TK�H��- at y�jt
@n��n!�������ڛ�ͽ˰�w
6�m���l�����>���߃W��Xٟįz�|�
2���;X��ay��i���@?����j@�Q��u�C����g?��r��c3���/���B,LG�௰lp52��`�P^
��a
�
���p^8�@��X|ji����ßa� ��'
�t��$�?H�n��Ws���t&ݽG�m�IW��� �IEڹ�xn� <3����/�S�_�����X6���ĸ
�
w��
<v���8��o\���O1o��;����8
�w��;���=�� �<B
'��
��5������ ��K<̾����
��ʓ�ٕt<|u
��?�܉OJ��)#�?�����q���. e�#�N�Ō��
�~����s{H�@�R��:�%�
�N#���9W��׀o��3��3
̻�i�>K�L�.-���
���ܠf��H�~��E��r]��5�i
��t�q�g8�طjlEkQ�Z2" ��$�^�In6$Bd!�� B,�ڥ�L�T���f
DZ
��Z[Q��w�i{���9�{���>��}}~$���D��{�b>gDH�_~�K{���K����K�^�o���/
�VOPc5��p�AM�7�
��@��
+�m�qGE�^��
+���B���
V)�9��,ߣ�!��J_?u<]�ݦ
+�����t�FW�7�O▝4�p�)�WL
jP~4�����~���d�����\����J�
�&߃��qF(d���Y~��v�K����Z�(Ba���x"[~m��6׀��pҌ�BM�P2��^~c�
���Qt�D1X��"P�D�H�b�X*V�<����'�)d�q�vZ&^�
�Y����w�mq�h�m��]��2@|$�
?a�D�H�]"���\-�b~a�4?�>��<�]NJ�4�e�/��U����+&�Z���vt}�p�"�E��3��,ӥ�-�<i��5�� ��x��19$�:2gttn���WD�qIO� ��¨��^S��5��{+���{������>O~#@>�)���Q��8O~.�f�|̗��RZ'�6qU���~��|\��s����}�y���:��T���^b�C�
�*�*͔���Gc��<i��C���[�U?���8�͉\7�q͜�w�%\6/碹���
�}cg�(���s����lt���8������538*���Ѹ����܌�V�h����[�旖C��ܙ���|�̟+��\���}<g�'S�b>�[dq�e
�-
�w���h��/[��x��
kSɑvW8��
�:�FyG���
��°�'�t����&F�f<whǃN���c?��w�b�q����鷃9���W�L�K��
wH�X�t�v��H��
�Zȁ���ﶝ������y�<;{ܢ��S��4�*���he'�eC]{(
=�T�i�]�s�sw��u0���P�Ã�{M��{S9�;��}b��'��s)뻐=�9�r\��~k(
�����1�
�b��j6
|L�@��b]-����,z��*;}^��^���n�y���|���w�7e����~(���t�L�Md��T�
�d�\6~��O>(�dx)�����k�����!�N�(�@�x���{�Q�n�W��k�
����bp;
�E���vr�t��>�c�G6}d㓑�)9��Qɬ���Q�X3zE�װj�V
+��R��˝/���3K�
rŒZ�^R��i����^��rX
�hA��n|:z[�G��n���f��@ֺX)r�b�K,��X9n
�,w�e��*��6��^F��,
�E�w�vF���;n/1�r
�_=�W:k��G�(s~�
.lv�G����](�I�x?
+&��|B8�&�O�G���,��!g�
+M,!�k'�^�Șt��~b��SҼ
�&�ھB�9x�\��Y�v[�&}�
��ԭ�&t�س7E�R�5�^�ɟ4��I�,�de�w$��c��N kr*��X���u��� ��0�~U��I���}
�|�JM
n��1Z;�;
S����Cs����ImY=�>���
I��+�}����B���
�pN�F��x�OI!�!��y�
("%pɁI
+:mJ
�6%>fv���Z����p8�'���4zlW��0�.E~-Y�ߍ�X
0�쀱dz� З��A�ZI
�bnP
)��$����ĐU̱lf�e�i��S�x�u�L�#�B
bkQc�
��*��
���γS��f]���FA�=K�;��Hf�,qf�e<�o�Z�I�L%�b#q�
�LM ��4f[o]��Ѝ���rSl�I���즇>d�� ���_�T��U�;_{j眢s�]â�h��}�� 9�M��7��!�ZG�bu%���
���F|X
3�f>���,f�V0ݶ�4-��.&�+�舫vQ��H�AD�_���j��p�[y�l
��{V�~qhC2��3?�'sm�H�}�
�
�m
��|��"6�ʌ�(�G�dZT
+1Q�DG/#*����."���s�.<��),� ��ȗ��Y8�<Th
>0Uy�ޫ��H�h��3#̤E�&%�;����
���<,�|��7Ke8��Z�N�3�0��$���dK(KHv�{)Q�H�A�XJ9h��d�P�`.s9c,cɱ
Έ��|�qɜ?>�o���������=�=�_��&�7�Y����뿔e�A,
�fI@"��fQ`�iA�>���r3���|���x�ſ���u.�O���f�
�;"Y�W���<���@B��L@�H��Ʊ,ȝ��3X�����,
+ `AH$�C�� ]Ǽ�mx��1�
;a�v�4;� ^!o�:��:�T�ǔ���?7P�Fl�zlFxh
�ú��o��Y>��cY1�
̏��O��#��Μ��̎J�+j3��
�}�4=����xF��3���nh
NςR�}o��A��H�CąC�Z�(+|�;�dyO����1��3
+���̉���ؙx��0+v3V�0}E,�q�x�mbj\.SV���
+�+
19�W�n9���:�ʕ�"?� �gGC�
+բ���MŒ8
毲c^�s�{���̄a�H�g�
�LK����E�+y��q[����iLX���I��K��k�C\j��k|
��4��W�wi
ٶR됨�+Is�jX&��L�Zӌ��
�H��Ե}q_;��#��2��)�O�ɸ\S��25�1��N]�˺
F�+fĺ
�H�f��Za0<��*�DkP���ҙ�d]
+ħ�ʊ�BG/��-��������SƦ�gt�\�\�6�i��>�a��
̐�8g�✑���C8e��)�>Ni�p�hഡ���Z���g&�L�o�FØ4�A�r��h�&�Fl�_lkːLg��9s ���5�Y���I��y�����ۣ�l�zgo�W�>
�O��.��/q�f���P�G�?G���U�r��/t
,�(6#K�g6
ט8`'|�ۊ>����
�<G>���'�C�?�����c�Lz,ġ �n��t-L�sa
�
++�Tp���5t��d�[�~��.�3{��I�Fm�
͟�ɻ`T
8@��� t>ܘ�Ev�/�}�'�+�K��Aؕ�`[�F�/Z
YJ�#�4/MŦt�G�aUz��4+�#o���F��VX+w��
��[�)��� �9, t�Z
�&�
��h�E�=�4��M�J'�W���)7L��9�B�R����U�Pշ��x���x���*���J���a�
���(f�b�K�/�Т>:
���
�����z�)���蒚��#�
�!xE���zhs]S������ߓ� ���\+�>���jPn���1�~ڞ�3`���qM\��� �ԐjH��1�QcvW
�=5B��~���@�Z�U���օ
�xO���/�{�R�DqO�W�T��r���k؞��������A�(~���Ba�!<��Gm�r�L
�/j�_�1�Q>^�>^�>j��Z[[�����r���gi����Aʹ���"w����o�}�-�
+-+��x*�����Omsx���Рf�P�j�10�D��42�c����^t�w�'���b�X D��I�!��l�W�J-Y�b'/)��C���p��Z�g����X�~�_�K<���w�!>C����b����-�/^�5r��+M�o�/��+�>�pD�r�.�@
vOw�~u[W�%n��>�7wK�������(\���{����E(�r%ʕ,�-C�l�o�|��w��[����2V�|_�]钸(�� ��F4�߭MO���� ������2�"W�\+�j�R�Z�x6�T��ۥ�ݧU(��繪;�Ϸ��*]�RT�Fk�zzm��H���z4p�0���c���^�-T
��
+�k�b[%W�\��g�|[8Gg��*��4�Snv��KY�
57(��������*eê!Fs+��6�x٤'O-���|���s�܃+s�h��kΙ�b8�8�S��P��+ʛfp�*��ֹ�Y��I�4����8Ъ�}�
�����
F3
mk�ք�N�hgM�]
��ʝf�\����.�k�FU�T��p�n)��Q�6���b9�.��d���s��f����{���
+;�#��mvwy�ή:�E��� ��[��gt6Q۹!��[q��
��
8۾/���xW�v�JI7/w_�A_���/�e
�y��O�I�f��N�6�4�Q/�Tr .�"�����.���.�,�r- �r�ʱ
B
�V���$�N��66�LӦM���M�Lڤim�lg0|������������rz��S!>���d� 'BG9��G�/0���7^cn�{�l����A&��0q���ꯑ�F�@x����֊oqm�
+^
��8�mJ�t��Ű"N��q"�Ʊ��n�pdK3��v0����m#�l
0
9������Q�0�WD��
dD�C���B��ї��<���d�m�*�Þ���PNGFq2j'ǣ���)�g��>kf&���X��
�Z����؎}���@�
�N1��2É?c0�O�M�E��pw�Kp��A�o��/��DZ�q%{���~�E?�b�j��o�pB���L'�$kO62�\�����t�Oib$��Pj��~��f`�}�K�*~Bw��J��N���w��%xg�ȳ�[ѿ!�몌��s��m��\�\�f�v�2�He4M���F��
��L��7����z�2[���'k�=Y���љ�>��+?�U�-� �����C0TF����xɜ2�_��/�R������O1���Ѭ(��I
)3اT1��җc�'�Bw����n:w{���=w/m�1ZUGhQ�ś�:My�Ӡ�;�������R���ޯfJ֑�sF��l��z�ɜ�9�{
ê��S�ӯVУ�a����<=�<�y6���7Мߎ���&�4s���S�#괿���\�2�4A��pk�� �o������d����1�{?Տ2�����pz5�tiR��d�^������B#�B
�Z
Z�E�x�z�+���
¥;�S������k��/����[�X�$��,�:�V
ERɠ㲖a��
hW�]����hڊ�i)���˥Q��^�ǣ3S����UҌӰ��0��i
�籗�BU�;T�~��x�!�%>��^�>x]jpItO�$N�w��e��t��+YO�!�!���A�ې��P��XFM���R'��&�e�T��4Ob3/`-�LE��X���t�)��l���X�t���;/H�[;|D,`@�C��
���>AK�ZM[��p�Rp���1�q����F��+�,��fi�j�QQ��u��&ۋ��ޢ��gJ+����7�>ܐ�{UjpN��B��C�Y����4�?F�e�0�1T[��[3���b�j��J���c��1Wz0U�QV�O�}
���EJ
7��?BW�o!Hq��}�.������d�c6ɽUrB����*���j�VRm߈ݾ
�=�C�š�ܑ�ɡ���Diu%�7����>t��)r]@��)��?�q�BSDS
��.��}����R [...]
�16�Q���1���4�M96�i*!��B�����\o��G�i�E�|���7�ߓ��'�MA2�xS��e��g�r�7�$��Erg+4y��
f�}��<Bq�r�m�Ѵo#�=���T�Y䶫�����"��!��Gz� ��vu�&��)
�#��9)��ۖ�V
?�3_��âh�s����K�@��B�P����ﱻ{5ʞ�d�D�ٛ@z���^%��R{KH�`g��$�Db� ��v�/��ؾ����=Ab���"��F�f��!���9H
�
�9fA+do����5����u$��8
C�p���č�;�%f���Q#MD�{��c������1�CA"��$��AzQ���?�Ò�F���D"�P
��7� 1��%jb9�!l��`K ��@2�
6�l�Աq����nB';X7�g��<��.�j�|ʚ� kƗ8+1������D{P�|cR�q(��� dNA�
DJd��܃�
�k�<͚#�X5�3�1|>��,?���G�<u������L�zL�8|�"
s���N�}ͱ'$RIE�br�c'K��J$"�DRY��K1��23�0�e0�cc��O�3��u_-���~��]��͘E��jfn�&� 52�`��7j����/vE)�S�+�]���k�x]���.��%Zo�
t'�f�R#NJ깶T�mD��6X�u�J�3��<�,o�y����B����`��M�����=�,�5�9��ɔ?U�NV������
[`�V�A�n����M������P�)&G�hS�!>�@�G+��S�
�*��*~�Z�Zhǖs쐸��=o���6k�S��r�U���w�����=[�<��m(o�#P�̿]�T����碦 5��Ԍ�� Ԅ]�8.i�]Ҧ/R��h�^\|\\G��6(��5Ę
�#�s�bvW̎����@M�k%y˝���(��w�
5��$\S����ÛjNo�)�YM�
�w���j���d��-Ľ��<]+!I�/T�#�8�=Xn�
k�s==^�T<'�%�*��ⶸ#���k
x��<��<SQ�]��
��
+��B
���}��^��X�,R�Oȅ!�y?}䨏Z�]�4T;����{�O��/�+
��������-|h����PQ24/���1_hZ�Fz ����%tߥ��(z��"H�!b��
�@<�I�
�y�:ސ�k��[%/9�
NhHE<S���D_�5TCC.��������ύE;�$��@1\����)�<^�P��V�;��m�7���!W�<z�Y��:��xW��Yo�-n��OTV����E�U���+��
#_�\�䚭��y�"�dX��ʕ*W�\���\��$״�������K�8_�REa�)�y�|��Y^/9)��r����%1G����Z�h��TS���rm�+_�e�"���7��ך�czs�((C��DT�4����PO�k��)
+_9�(����5Uq͠Xk��qA�8�2ΰ�S��J��q��:�Q���2~@Q�SF����"�
��G���Y9
���5L�4��4�
�3?⩌(��5FqMR\ar��I�&
8j��r�9Tn
L7��t{���gv�����m�
�����AV�R2+�b��_A��5�4�*�<�X���u�fڊ�f��Їo,p�r0��q��
���/��g5�=U�W5��j d[�b��vV�b{�=d�8I��U�|��͵ޓjk�Ql(��#Ψ*lt\���:�*[pբ>o�I�v�8q�K������!�؍`w�q�
��:�l�If�yd�[Dz�el������Hm��Ɔ�oX��FHn��UM
���2��W�y�c�n
����a;��Xr�Ύ��Z�����F.�h�MV� 2�
%��HҚ���dR[LcC�٬oMJ�xֶJ"��FV��NR����?O��]��}ɒ��bq
��������\�{R�
����
9-���u{2�Hkۗ�����`ֵ�kۏ&��Vw%�C+;F���B;-ci�:g�e/q]N����ωq0���`�H}Rn�]��wR��HG�ٺ��nkEf���u�gc���8�!�������p
B��p�9�%��$�t
cq�H�G���b{�&�)�螹��y���י������D�Gz�b�V�i�2$�njt���C~G��],��hǺ
-X�ԉ�={��ܗg�{
"��P�Il�`bzO!�%��.Q��>+���,��D�2��
+���p7�o�Q���y��zlW�{E�~��dNJ��$�4!�O;��v'�͕X7/b�2�=�y�È�;�9}'2�#�H�Y�췀�~�LW8�k�^G���-�������^�>�,���-���ڟw�9U�w�-*u�\MHr�f�G��'�Ӂh�^���`�����5��#��fz�P���$l at 4S$��d�,B|1ɯ��~��F����*���i�~H�O���@�z��W�_��q�u�Вy:1�ljH7f�z3�ןp� �|��7�)~!L
8���s���Ād�d
x�q��
c�`t��7
j
~�8���ޥ{Wz�r0P��~��$�ϖ��͈�oO�7����Ih�/�0�I���8���
<�q����*��3:h#��3"�
Ã^1�+�ae���P�VSq��`�9�`��'h,
���t�@E}]q��7�%&m�RS��Ո\ )��
�0�
0� ��� QKY\ʦ1*�ƨ �
�b5Mj�&6Q�6���-ڨ�| [...]
nJ����H�EN�52P��0�M����9j�L�LE���h.Q��J�.EX�(����jv(�����Yzp?9�����y��>�Rb�"�tcW���)���(ř=k�V��_�L�,!��e��*2�.C�|E��*,v�B��
+���l�)[�*(�>8��%��I�}/��ſ!Vz'�^�%̢�%%�I��^��
��XY��d�N��:Y�q�e�
Vx�Aa�1
+�ORHB���(ȶ\��u��X��'ದ��iz���V.���zrފ���y`$(�lF����A1 =d�����a2$�)"i�|�4U���
��d�f�m�iO�
�"�kZʻ�:�V�s���K�+?�C~ɭ\�R����:F��T�^��;���Ș�"��S�\g�N
��Tw�zjf��f��P at Z���EijZ�����/=[��m�j�dl�w��$��;�J��5�6s�3���>$�^bx'CZ��^`D˘�� Q|2����B3
P��ᚖ�)����əS�(��Mʊ�w�]�
35qa�&,,�����}H�ٟ�=�6<�{��ǨA���@���*JŌf9��4>�oK�0��v�_�|��ϒ����E^9c�3Qo��jB�t��"�\����467C��r�W�Qy�䚷_#�.jd�42�F.q<� =W��y��W)#Y���|z�O3�L��7
zȣ���јBW�.t�E^U�/עYr)�Ј"����oHfh�
+9Wk�=T������'\�x�nz`��&��xV1{.�<@�rf/ �Ҙ?H.%Nz�������в!R��e�T歁�S4�<X�*7�y�^��T��B��X�^��J��*��^e�ջԡ�%��H��גw�B<٥ԠL��KA�[!y0�����e]菉�{�O�/ի�Y�T�T�Jw���V��i�V��bյ:M?����իԥz�:W�Q�r�|$��9�kf+���=5XI/��]�;��Ԋ/
ߔu҄JɵZr��
�Yzy��|M'u�馎5}աf��P��qjS3��S�
�6h�Z����Z��ך��{p4� �Zr/#��w�8m8
8x��=���!��oǿSr�%���F�����"�w ��}�/!
����ak��H����i>��;��j@�E���v�Q��Ͼ�j$7�C������:70�
�#p�8��q.�'��
�.�&���q��_c
�p���9�kd�s�8��lb
�^Q�{�\ܖ�ҬZi����G���CRǣxO�h�?��\FP>�)]�b�)����H_Ǘ�]��9���}��^eO����ϛ(��9��tܱ���ه�G����a���R����?ç��q�W���`X�������[\�nǿC�;
��4�=
+���p���|j
�V���/y�!Lgjݛ�zVjs��?n�^�+@)u�J�8�
���G
�~pex�O
\
�8
����D��^n� ��[0B���Y�D?(_O�LOT��Z��0�>�F=T��c���ú�f�ї�v���?y�&|��7-8�
��
-�����B ���J�5W6�\=P��^�k�nk=��p5��)�C�u}M�
�e"r�}�
.����
��!0�\���
c
y�p��Z at f����)���m)�5��-�qm�SO�
a���>W�O�'�s��g�L
u���
��e?~M�\�'G?�A�"qŒS29���ij�<��7��
q|�r\kqmµ����i
'���p�l���Zh���K��<ѫ��P�C-�qP�}&�.�'"���q�8��i�8�B\+q��U�k
�z���4t=���
܁�������
~B�=yb ����xV�Lw�$�p\f
S<U���u�8�c��j�����bOvҟu���6���Nmf77a��ơ
m[y�o��C�N
�ԛ|��;7^K�8��
Ҿ6�nkQ}�}�ޮ���U�\�j;,���r�����DZ�hc'Fc|DP�"(� oX`��]vaaY`Y�E`y�"
�|���D��M���$�D���d�i�I��1m��M:I�4M�='��������{��~�\xl�sӇ8;� �gb�
��y���8��ƞ�;G��qx��Q��#
Ɵ.Wy���ֿޛ:�����ͩܞ��3�:+�˳5\�c��\3瞶r��Z���bb����t2>���9�`c
�8��,���qp�],��>�/���ch�$����{Bښ��I��Ηg`�cܜ��+�W��h�-N�_����/)���2��8��p`#���
\�ad����w�w�!��8��ʗ��:;�>`����_��+�� �O��I��/���R�
y�n�xM���r>0���)[����j� )f����6���1�f3�״�3��
a�l_�����x�/�q���_ѽ�3�"��������'���%�������Oe�
+gV���B�[�h�zD$�w]&C�vE�#����
+���G;�[�B�z�6x��0LW�Q<ϱE�G�;�)��[�
-
+-��u������
��Z�� yv_�wf�h��i
�������Y��q
Ʀ1�P�U�ӫ0�-���8+]q<�l�o�cSm �hM�%�4�I�iJ�Gc�p%MC���B��Ga�$J�[��^N��$�r��|Y��ع
�0�Fb
�IIt'eҕ��3YOG����rZS�q�8iNuӔ���i���GhH?�3�*uʟ�P>�V�j2|�?�3�
�����ļ�&9P�����Y���Y
��ћ�ִh:�7ё�F[�
+wF>�F6+�4*���2����.�G�>jT��U/Q���M}�*�WX��
+���`�
"7^M�:���ϙ#9�})O�@�
z�
�d��#+���X���٬�ĥ��T�W��S�S���&�{Nչ}�4{��
�2��7(�~�%�K��|1k&�X��/$?���,�ϊ
=�#�w����ixT�����06�n�!7�zM:��M>v�[^UZV����6*
+z(/�L7�Y�R���?Ĥ��:�$�ܗsxKj�
+.I��E����'
p���K3���94i����>?�ڂ8���
+��h��R�+�\o�RX���M����.Lƣ]�X�*��0������=��Z|Sd�u��
�T�����a�=}2oyܤ��S�GavCU�X*
I��X�9��:J�L�U`*�����"1��N
+K�/=���6��_�9ڒ��5���7�"���J���
���s��-ki)�,�AM�l��T�°�6`.I��$
S����|�J�0�-����6�+�$�2��r���h�o�S�k��X�����
��9�ΕZ�Xg$��
+�V�[�C=h�5�iX��`��`�DQT
��<���,�y�*
�W��V�ȳ�ȵv�S5��j���d�n�i�%ʪ���~+�PVNrOj�������G�ao���]��S�c�����W�a�
+Bo
Gg�H~u"��
4�9��u��%��V�k�ɬiCY�%�v?i� R
7Hq�Kr�I����#�>�
��뒃
���bF����`�HrK-jg�s,@[�
M](9�Ѩ��ɮO%ә�ҩ%�YD�����
n�\=$����u���k(�F��E�7(���xMrpE�}V��)w�Ij�E<�X��f�˼D�Z�k*��9d5��lZEzs8��1�4'�ܒAbK. -�ķ��sۉu7��ʆ�!�[O�z���{D�?!��_����I^�:�$9���G%�v����X#9V
�O%���$�c>���%Eg$��
+b:S���"ڣ%�S�:��Ok�:Yӵ�Ю1��^fu�[�Y��5��>��LrMl�y��s��Q�=�
^��
B]���6�B���Bt�D�-"�o9�}��y�Y�'ԛF�W��~=A�e��w���������d�"~w����?���;�e9�Ӳ�c����k@�a�Ţ�d4
+*!Q��;!dX��)�=K��r�װd8��x���y�T�wX����pH0�X*#"[��!�PDP�BP�����8�D�((nEM4Q%�eZ���8[�51�q��
��q
r}�{�g��<�0D&�[Q��%�S�2u(.�Eq�̊O�OE7e^�,V�c'���_����#��
p5��:6
�SpY#
*���I=�7S�R3u(�.sS_�����I�L#���֦�ji���853���i�d�����$�70�¿)�
�U\G���'
+�]��s��n��l��qE�Y!Y�/��ڂ��
�������<�M��M�:�!��X̓���p��b��y=侔��q.�c��bʤ��Fo�<p:ഩ¿M2�!��� �㴏ax����u���F�:0�
�Я奯��k)v-�]K�n���p������絸s�sa9}�3
�ح�W��X�'�=��~��A��Q�>f(>f
d�BO0
|�Ax�|�b>ŋ�ͦ��#�u<��3����@���S�������H��|��X�M~w
��P����җ\��Q:c�p�px�����ax���*5��
Ȯ�_�v��B�^�{>��<�<{�g'>fsX�F�m��|.w��+8_�e�
+$��p��t�
�g/=`
�ߥ1��K��>�'�ɢΩ�=
���}q;�kb��GZ�=�R��� .�w���<����O��Wj�!�9�a�!l����:
�ol���;���tk���s �`��+Sϔ��Z�'Z�ߴ�{b9��j�L��H��@��'I�X�>�-���K2�v�:Bo��
�`
+�(\q����,���g9�z�}�\&\�xv�9��n�g�O������e��4��n��
z�-8�
�w
�0��+O�<
�!�R,�m�Q�B��Z�]e�j+�=��#��
��/_�!%}Jf
�ʠ�_`�iýWM�m}=��/����N|�8��L4�x�O����oX��qNYD�G��Z��
�vڸ�L|«t���+�Eb8
�9X��D
�lF��Ԯ?�
J
G�
�/�'���i�œ�'E�Xǧ����1��U���-�}��[�}|c��Ew��P�i�K��D�pw�~V�l0��_|cq��4<Qx��I$��]�k �,\��J�M<
z��Ա��t�Cm�
�6AY#/����W�
�O�gK>��σ
��k"]?���i.�D\)��JK�E9�
+U�{R���X��zlhzQ��WI
ޢ��V�2T��~N2�`���D�+=R'
ܽ�u ����t�v4Ҷ��U�j����������&V�mU�6Uۥ��}�6��WתĬR������
+;\T~����L+�ʅ�F���}�U��Nl��َ9���n�ږ]�������kkwUt�Ѧ�����
�v���]#���,�t����I*ꑦ�
Z�3G+-��gY���j���Qe�:�e��jI�'���������l�}8z8�����(���tM�-�dz}����TI� Qa�P�����V3�g=[����闬�~
�i��eo�k��a[���?�E�Ok����f��3�
+)���Qs�Y�v���
~n�ة��R��i�M?���WA7�|s�r킔=`��S�p-
���1Z<(A�R�hp�
Y��!%J��T��%;|���7�����
�s|�#r͚�oG1G�~������)e
Xc�A�z+o� e�S����:�i�c�ҝ&h��$-p��4�h�:�*eh���-��aYJ
^��rŻ�U��Iź]�
��f(����F�s�^ @�ݸsr���Ό킟��;�W���2��*c���]ܴ��[�*�5Dv
�|�)Jr����sOT�[i�
�LsG(ƣL�=wi�� Ey]�L���e�3ó��
�g���[��S3�xs���-`-�.��ĭ��߲ւ���1\�
J��U���{�W��D����9^ъ�Yީ��^��Q���)�
�E�
�t����H��5��h���
[F��^_ƾ �KX��y�e�G3-��ԑ���m�Do'ŏrW�����j�O�f��*�w�f�F*�o�f�'+����Px�zM
ڦ�Ai���� �),�PX`������>�nF�-���P��٬%�����+��5��U���b�]4+�SQ~�
����
8Iӂ">:FSG'iʘtM
+����
+[�А#z'�+M�V�>C����0�
·�g�xf췥e�%-PJ
+l����R]&PU�i
MS�̤���X�`�
+�"�e���"���
��,���^A
��T�tLM5s\ʥ�qfڜ�4��2͎w~�=e��;�?��=��~�����Ee�QZ��R���
�� ���
�8C�b
�� IWth��Bg)"l���
^�0�>���U��
aO�0�k(=��k�6�7p%_
�:DJ%<��:8��Z!�J �%sh%�Q|�hŅy+&�O��E�G(�/�1U�SY��ȹ2D�Tp�FE�U@�����
�U��O���;�G/�{3�5\�W��g��u��"�
��&;*1��L��(6r��#G*2�Sƨq
+�
+RX�Q��q2�LTpL��b�W.���`��x��4�tZ��+�V��>�$�p�4�{�k��3��߅��-�#���I��]�$c����)��.��G��
+�U@|����K�����T*���k� /�n�f> ��3�gy&Z������^z`;ZuhWs�]�N/�ы�l��f"BtB�':*4�����hvU@�(MH��_���M4�wb�|&&�;%C^)��:G
��5&�F��viT� ��}#��{rK��Ƒ@z�
؊���Z��l2L�sf&��9���)0���Ӻj|z_�f��'c��3���+��@yd�e��T�e�h�b
�T�a��4$�A����\'�$�,�\3�p�4R�z��Dw�h�4i6��Ji<�N��&K>�m�5��<����~=�U����-�K#r�4<'DCsc4$7Y�s'kP^�\�h@^�����cr��Zιw�/�����Sx?���e��B���<G̔&��g�iČ�5l�K��G���j�P
*��c5� P�
"�\���
��T8S}��P�"�zmS��&u/�B=
+�g7��'�Kl!����:��x6�P*@�
�ijƾ.����[�y��^��M}K��T2P-�ޥ
�Y:N=J
�V���Rե,O��J�X�B���/?��e��}�-9�X�0� ;Y��_G�YQ&U�#{�gOB
+�#���`��-l�:�sE79V8�
+9T
W�JOu���?Wվ2Im+'�Me��]�H�*keW�W�T��]�5�\�@�Z�5�s�X�z�w�t.1� ���ൄ��Tr^&�X.���
ji�g-�ji�*;��ZXx�[F�7��-,����YD
��TC�uWWށ��H�_7�?/b?0��Rɫ$�Y�Z����UR�5��:�]��b��v���;p �%[��үk~�r��% �\�b�1x]=
��.��
x��L�
+���+Gk:�MC+j-}H,
���
�ס��
�b+�зa{Kh/�`
;����<FO#9���o��Y�Fl�
��Z4�w������|4
�����E4�tGs���tD��6�8��=걏
�>{i?��\��.����s���S�&Ě6si�G��$�tMUx��k1���M�D�o
�ڎ��a��zO�
�� ��18Q���d'�4��O��c
�y�^�%�)��?ʥ�(�E�����.]��K��<BۼE
+�/W/�����n��m�Gmz'�rfс
�\jH�J_v�.�6����2�k
�?p�_g^_@����(�
�q��ў�v
+�F�������$���]�S�g�M�_�Es0������
�J7��]�}g�!��_��<��c���V �oEغ����C;p���c��!�`
+� ��ү�܇��_T�d��d�{���H�wI��i��,�
�t�����u�oW�;��~�7��V`�CW�#�
zD�|�dt2��Ac��/o�so�sT%Yq9ZU���z4�A� ��"�ޢtVJhէp����sx���<�N�WW<z�돦��I���K>�/fJљ��"}����u��{A�t��s�Z�B��;NŎ1�Q8M6~�o�%��T�'>��
o>�
+�Sn�F�e�%��e1:����ߙ�G��C�Ec���J��V:�}�����
Tvû���� �ۢ��/�!x������
+��l<�]��)F�T�5����Щa��
'{��Y��̷2�Vu3J������J��+jq�Z|�l����^��&����tt���Eg&�g�U�����S��o�ӠZ��
o�%�]��jUO��mk}g��L=��8�:���/]������Xm3���V.Z3�*�ʩ@Z+ѪAc;fO�����;Z��b�lsh����i>z>T
����uŧ3�C�o�YeZ��2�ˌVZ٪j�����܃�,�0�K4 �hE� �� �;�MXXXXX��
�{�5rYr#Y�1F�5�2�o�V�ڪ��u��Sg
��
۱c����1n������v�;�=���>���^>ɩ�X�ы���8��1��|������'x�|��:3b�G�)��?lo~�|7k
�yi�f�
+�^���B�tc
W���j���rf���뜜���ş5��o�7�p�Q�������x6�af�%���P��L��1�w|�h���9(~�����~�m�5m�/����]�Qxi��
�}�m瞍�}��l��(�XP G�*��T�gS3wv0����63<�D�a�BN1z��[41a�1�![��o��:�?��*� P�M�|o<
��:����M˸'h=
�C������ҙٚ��6��9��d<����-�l��@D?��
F��u��
�ؿ�
+=;IW�qGAg����/�G������u̽���y
�O����Ic��;��Nl]Ǒ훘��`**�ɝ�v����@tC1e
�Tӿ�E߮v����;LW�]�㏳/�,
OЖ�2���ђ�9�I�є�������h�$h�=��
�(Ivo���r��^�TL �a���0
��`���D3����$��Nr�N��3���d7�)�J ��
�I"�1�Q\��7�K������Ԉ�T��j��P��F��
�@�-zT�L%.g4�6���H��75����i&��Y�H+�-��VC�M{:h��G�q�z�
��wS�q�����|����pf�O�pf,���F����W$GΑ�^]{�˸����u�� �{o8�{w�nL�5�Hs����|\v2��e�Q��J������Tf�R��H��!�r��4�m
9�$��ļ�����T�g�E}��9#�u=�\��q3�pg�N�)��N��qe��2Q�m�:��*s��*r�)���2L�e��</v�E���P����O�Y� [...]
+�5�&��#}���j)��%^�%zZ=x\뿠ا%;�5k��/)ܡguʫ�j9U��U�[�
sM4Y���j
dԚH��b�����C}��Hm8H�k�D�\��o|����s}I\���G|���5W��G���{�]~G�dB��.�����yQ�|�k5&W �!�"��KZS*���Im�!����' -
ķv�:LL�,�m����Qm������"��Q-�뼠~_��
T����=���^͂����� ��.��v����DҾ�$��I|gq�vu��q[��v��]KdW;ۻ�bk�"[�!��%���@H���� [:��ԃ�U��
ŝ�5��8x@�0$�%[��W
� M����ݻ�
}���
'�?���d�� �a�@!�4s��~�'
<I��Cl
z�
C�a�l
���~�u��痴�s�qJq���wMh_m��U�`�
�$�D���G�s4�Mc۹cl�c��e�q����Rn
��q77M��f��'.�j�V��N|���7����s�
T�{�n�!͂,��,�.];�U�)�@��:L�,�v-�<�������'���4Vx���S�2��Ts�9vN/�;�&��z���c��f�k���zZ�?�G�aC�]T
�
���}�q����J�!��
�t
:|����,h�[P��u&ł~��I����ɯ%��jVi.*Ƒ�������<.�:���ES�
W40`U�` AAPT�PL%��ϼ��H��KL�#�t�h�ծ�m��決��
i�{pr����������}���g�D��
,�<�K.+$'�q\��Ue`�mU{�I�f��E!���˥�X�P`5����,�Ug
j��ڇ��E-��"80&��Y����
��_K
�s����߅��g��f��섈�ⱅxl��r���tj�\jy����m8RK>j�!&������R�3aN��[͝/�ߑz���i���6��B���C^�2��k+չ10}D<�t���s��S�Ģ�C�G�!���u��p�`��q:~�n�
��s
�Z��v��N
ա� :��?�����qrs�#���i����A��s���,�?Gr�s�9��<v|~I
`��.���I���`�^p]ᾴ��1�����:�N�S���L�b�y���e�A�J7�v�J�����9���N�o�8s�U�� ;vo?�z_7���_q?��l�/�E�b�w�mI�/k�Y�r��w�
R����4���̖�����ǝ�Y͑�]/#W��H����
���랰���r=V�
��>dc�/��}6�����������Zo`�u>�� Wѷ��o�ˆ]��/�^�=
�'�C��3V�10�ً�uW���
���v�Ď�l�����j=�m�B��uI�a�֟��<' [...]
���#��!�8�
Ӊ���دiڇ
{4�8k8٩��b3��D7����E���3���Pލ�j�
�y�X
�.+^4�D8�p299�X8p&�q��`�{z�kt>�e�_�����_�%+��5����ev�̧��
���G�)��%�]��71
���ÉI���O����?�D=�X%��a��*jc-Ţ%���,-�_���zB֬
�m�ᶝ
�_�uj��
�z���Ix&XXI�R!d�W6>��O��"
�5�'��\��9X8�̿I4g���o�&�U�`�4���w�v�8��k��� �
`;S7"�
�/�ky���آ�M���!U
~��y�ٚ㘫�M
4��$U6���fiz�%*oQ��-�ה���
��tK�Z?Qqkk�&"[
.���+� �o��Lk|�9۱�V;8ky��Z��K
[�V!������T�z�f�.U��d��M��9�S�s�Jۖ���
��n��_Y� �C�
+;�S��
�w}�<W�s]��}�(ku;�v�JO��_��R��t��v��l�[
U�1TS]̚�����욦InY*v� ���ګ�Tع\���*��J��I���kL��4���r<
)���\W^�����6�ˋ���|ۓ]���{f�8j�[[���Ye��T��O�w
Vq7�&���5��*�HV��0�y��8ϱ��}��t/Ө
���c�F2
�ګ,�S���V�
(���\��� ��^Ā�����ץ}�o��³��ܝ4��U��=Uԣ�
+zh��Q�"5�ˢ1�I坪�^���5Z#|
+4�w�2�T*��
�Ni�����
���R��#��m��N��>���|�8�
+-
+`�Ὡ>��^-Tԫ��}�j\o/�����A����}���,�de�
S�_���������_��EJ�Ѡ�
J
+�D
_�� ���;��w���f�Y��3V`KIf
ߦ��u֘~��ӯ�F��,e��(�?BCb���!�iJ1
�`�X
+����74p�%�T).d�,ƣ�5~��=dUL�3�f
����&v�*ƍ�h�O9�`�
+l�Q�NapQ��]�A�J
�Ӑ� %�ip�Y�$(1$E��J0�Q\h�,a�>O��kd6mS��"".+�tY�)ܪ���C��sc�
�7��|�-E�?��
i�t�+J3vQJh
��� %��(>,Rq�YL�kJWt�(�#
Y���92�W)̼U�чe�����h�Ye���89����fj�1xU"{�L �R�]��g���RL��I�����%��b"�
.�9FQ�$ED�)&[�1�
+�-��2K,+
�EAq+0�K�ݖ!�
k��P{{`l���W0~�O�x���y�2
[R�
��Z�1.����X/E��*"� �%T�qf�Dv�@U]�q��(�h�"���"�
&�)�Ō�Ȏ �p�d���WɅ�
+*S9%�B�d'�r�j��s
;9��f:ΝG��ө��
.��{��{��
��Ҵ�DM��P��
+���ZM��E��
�}Pџ�k
+��_DY
��ރ�
��-������dj�ߋ�;[R���eVd_��
��Q^
+��U�
M��'�LUH�S
+��Д�xM�MS`l�&ŕib�J=
_/��6�O8�� g4.�tW��,����Y'�7�0��ї2ؓ�iFƓl�%c�l�g��8M����Qz"a�&'((!X���8K�b4!)E�ss4nn��$��/y�|SZ��S>�蔯5:��|�Z
����K-�z
���x�8�Z�b�ʔ�x�
W�i)������+`��
�� ����q��4&-\~iQ�M�+��,yg52c�Fdl���
�_�������Q��y�Y�7�Z��F�Ɛu
���#*�sF���pl
+Ʀ ����"���z�0R>�1�6LԨ�`�Ȟ��fG�3'^
9�[�!�K�k֠��r��+���50��\sn�-�"�l�vĸ
?�©g�[$ՔJ�fy|NYH
��0l
+,`�*�ш�>�*p�G���zkh�8
.
+�{�T��˵(Z.���\��~�J�5����Y�ݲ7
�}�E9ߔc�EN��J�_�����PN-,�
�H%(���P�����]�А��r)D��n�W�G+|ԧ�_NS�P����HR�J�zT2�T2[U6 ��wl�D�ʹ��[�A��k��˩��B*�wj�U-M��$䋆�
r��-[S6�;�7�pM
v�D�1��L���xѴ�!�ƚ��X�-tO���
^�*��� �X
+��4y�+�s\+٘�l��+�\~�C�����L�7�"�9 d3�yɼ
1��1��]� |��7��|e�z�j} ��4���1�9ɩ
�._������Ԉ
�����)�x�t��E�n"�M����;�R�G�j~��������Y߸�� #M'�ymT��Έڧ�6�"z�'qm%
�ģu�;ڸ��qh''�4�v�N�����?n�m��
+�N��� �JX��
��`��J
��n���y��5<zU�/�
t�u�v��:���>ޠ>��}\��B4�.ꢋXt�慮c��캪�<Z�&[XI0�a�����+s7z��şu�[� :h
Q#��w]��<��a�1j�8��
�$���S,p��Ru��n\کf�S�p}��
?
:Y{��y�w
�"G
D��N��C�;�Sg�
.i��+��쓋���R� �~���壪�$�N�F
�~�>��>D��C�/�G����C� �:��a
�."J^Wѵ��u.�7�����D�6��Grr�b�
�n'sVOdc�;��`�&��(%�t��y�
��]����mU�&�[�T7��g������)���7$�k�/�Ǭ�u�U.���,:�>����Pv��D�(f8�hX��d�L��0�0�t
;��p�VW��2��%6�&�s��)�ϙ\?��#�y�9�>�:���ÿ����
��3���E�O<�T
`a��
��+v|�
a�_�p�g=�
:�]:B,C}���&Z!
@o�7Q�/l��n��o���&�f�~��G�Di0
:�
ǰ�v��*���S
�N=�f�o�>�!�թ�����^����b��?��.�s��ׅz�� 2
+��p�)�$i0
0�_�pJ�T�Y��:8[X�:��Ʒ[����B,�C܆�Z��
�|�A�;��`��������p��C�ͅ���Yp���]%Tb���6�
+��o�
<m������=Gf7Q��n��b����3D׀�
���1x��IXO�S�X8I���?�D=V!�XU�j`��S��|�L]�ś�d�YvI-��
+dB��<uEKCo[�`�
��
�F�
�J��5�j{�ʏ$�1��)V&�\XE�J�/!�����u��n-�R��*�Q �ª�X���Vw��g��öܡ
���!��
s<���.V8�H����+V&>� �����U��S�m��lw���>-�u\F�
*���"�
+��bm��9n�8�^C�|n�瘵��Wg��Ug�U�����즫�w���Gj�C�;&��1UNY*�@%}K��2�[����U�ܪ|��p\9.�=�
�eY�~�����cw���E�k��&��u�W���j�ziY??-vP�`����t���5R
]cU�6W�n�*���A��u�R��2
٤̡-�?�S�Î(u�9��,J��sZ���~ts��ч�ߗ{�h�U����L�yt����ņTE ����2��I2Y&�d��6�w�Hd�5�����(�T�5��J�(�X<�z��SEE��A�R4*=�_H���3���|Ͻ�{��އx��9NnߩZ;s�
��kV���NRg@��f�X�� �ڂ
Z\����j��LM!���A�����{P5a/�*��
����*"<?�?���
�Q��q�����^������UA^Z��9!r�F�}�Qms��8,C-aV5���^���j�E4�f^���T��*���<j�J�O�$�U�\Sq�T�%ƣ���o [...]
+�¶D�|��j�}U����&�ʞ����Tْ,*\����v噪���,k���N]��ԍ�4�RF�Q���,s����i߃�.���/����<le��g��'�{
�t2��>զI*7��$y����ʖ
���rSL��f('5W��"e�9dIoTFz��3Vɜ��R-}J�<#S֯���g���B��.獼��{
ͧ?wa
�1cۘq����F
�3m����-�!�ϑ5}��3�d�HRf�Y��J��d�*WjV�R��ʔ�R
��hݡ�ܧe�=+C��Or���V�α�h
-�d��+�g0���]IJ��ꉥ4G*��5�WYف��WzN��9 J��(9�"Sn��*1�V �Kd,蒡�1��*�6�h�K��]����
=w�
u��\�����:��=ƾ�|.�z 1��]1뒝?I��d.����P�
+#�ThP�ͤ[���reXT���j��*�x���nͷoWD�!����ܒ��o
+��p�G��
�e
���������Q�
�c=�P#�r�
+����3��e*�V��O�� J"��$V����)5+�Ŋ,[�y�E�7+��S���ت`�AV)��
7��Z�
���/��Z����q1�؊��4c�
Ĕ�M1�>�d�T�(�r�"�B5�*R�U�U�Z����ה)��A�Nͪ[���6kf�~��jz�eM���u��[�
��Gy����H[:�ǝ�F���6` J�)��L��8^a
�
+i�Upc������M �o2kf�U~�v�h��O�R=غJ�nҏ[�hJ�I���\�W����y7{t������6ja�i��h� ���;`{�} �xb� ����t�f�����`Mk����q���$���:l���R�������=�
���81PN
��i��
k\�G���C��
;�}%g��{�b-���w���}��5 �9��]�5�k�&��5���H�ESuQ�.����H�Eb.���^>1s.��
3����u�;z��ۏn�����|L�}�5�^�z� ��
��7���n
wČ6x7��Ѹ)27
�&1���vcນ��������0�{�y�[~Bo�!�M�ƍR��ز$�\O��$�W�8`��yf}�~ς�æ���C�顰{X�
Ѓ��Ĕ� ���}�3�A�}������)��C�6z�@4q�g�4�g��q�Gq�~?ͷ���O��g-�)�~�����ZwR;?�k/����uKų;���H�8Ji�.i:)Lރ�>`I4G94�d���}9
H�!�jc�C�
x�(�y�a?��G�vS*�hl�M��ӂN�^���R��њt-J
+�02��T�8<?� �^4]�c�}9Ł|��o��o��8�Z�&�����y�CW��[�^z�3�[<�sќ�����N� ��^��cF�R�<2��+����cT����E�%��%^�?PP���\�����u��D�ͼg�A�,�\g�߄�A�Ԙ� ���1A�
W�L����m�k��W���xO�S���~@a}��t���xM�j��z�o2�F��/�N<3��ʘ�1#���x���cf�C�9b���[����Ǘ���ٓ�y�aO�
��o�r/�A
�
�t�=>�[|̰V�ѺqL��Kmó��3�ѧ8�[��z �ryM�s}�S��{������r�@0D�d�yP��ǿ4h@���Z�]�sY`Y�a�DAQP�h�
5�;
�Qc4Z� M�8�c&�1�1i�i;M;m�Mm�I�&�M�����?��.
���y��}���7s�#f�/��>W
�.�0V����&� �i��=p��sT��w�/�������3Q��i?���A����� }#O�
�i�i�C��é�Ѧ������!>>�����|��������,�w(��,�9ݦ����
��A�&����������G�3�� �$xY,�N%e�H
�XB����V�XM<c��4{o2�N0뾦�0N�
+��%���&W�eV�
���̴���=�*������ b��g&�<8�0��� �F7��0�e�(���������<��N��Q��I/�ţT����!tp��W��h���%����b����
X�p�`��h�����
Y}p8��u��qLO��
c�@�O.��"��^Hϒ�ݐ���d��6��ޛ�~���k��2���x)���X�����i����X���XC�Fam���sd�0Ur�O8��mT�Vv�؛����v��ߞ>�&��
z�8}�c(9��g����
N
�FvB+1u����|<E�n���(7�n#�7��uT�(��Zv����>����q���Q|n�jp��A���"J �4��K\V�W5�FX���I�}���
��8�.���뱒�u�
+`w/wy�e3�S���=���\7W������#��׳+�zc �hxFX��`YaٵΥZ�3��V�<֥a�~���J+f�����Z��^��
S���q��%����u��9�9ǩ_Ҋ܁=�ǕȜ��q������M�1s���X��3��~�A�n����a�<
yX��Ӯ�95x�I˼
Z�ݣ�y�ꙿV�
����Yu�
�c�+j]��Z�~�f���58���ԏ�Zn��J��r�?-��HzK>���f���u����k�O�|S�la��.,P�_�z�+��_�utʱ�_����8h���w�1���CΩ.�jB����9U��]_���\+g�-��>G�����h�35�?_�����%AFu���#G�Em�6-�RsX���
j�U}�J�F�Wu�NUE�WE�K���@e��e3|,[�#��:Ujp� ց��b�t��0m�8-�N��M�Y��A��橮p�G��-2N����
����<�G[UcWML��
�Uۭ�A���d�J� �T�xZE��e1�Waҟ�?UhtN��Z�>�$��A��=��Z���2���I��apS��Gͱ�j��V]\�j�M���REB��JU�X%��I%I�*NZ��䵲�lSA��M��k��
�=e����BNe������T�#��mh!�%��u?���A=|��誆Do�T��� [...]
+�:rR�����d*?+R�Yq��NQVv�2s�[���j��Zd�_���UJ.�(�e�,�_tY�E�ߣ�gqNi"�s�x_d<;TI�]Ù@;��Z�K/^Z�R��d�wU~��r��������
+�2�)�0W)���*e�6)�ڥ���+� C�.E�
Q��UE��(��;E��]��NE��K�yr��:걑z�_��
+>/�S
�U�%
^2��J+���8H)%QJ*I��Ԥ��l��,���e(kP��C��E��SX��
+�8��ʋ
+���U�VA�!��˝�BΒ���o�
��ц��Q
-R7�k�O9�����ϒ�|�*W&C�A1�I���PdU�«l
+��UHM��j���vT��;�Ww@�u�ȧ�����O�[��%b{������z쒶Ђ�e4Z�I=v0w������'��E1u
���Ux}�B�ܐ���5�(��X~�U�mZ�ͽ��<"��'5�e�<Z�ɽ�f����O���/y6;u��^$�ð�{��~���ԿTj��T��t<��'�m�ڼ���/߶P�8b4ߑ$oG��:
+��^.��F�utkVǐ\;�hFǸ\:��;��;�:�"��/4�ݩs�����2��XŞfO0���Y��R
ޒ���^) y��ɣw�f����2�����#���"� ��� �,��*�@D
+��
+LFѨ�
jwTƦ��j4F�����َm��&U�4�&'m�xrlK�����<g�>�s�}��}<�R�/�0�1�d��L$���0\���5 Q[��+Eט(���#�L?!6;��o{5����@
+�k��$�%�S,>����s����e
̋�\3:���bf�6f���B6�%=��[�!��R�(�dk���S
�
��.�pw�:�T�<��{�ji��:�/0
�8
����.
C�B.,4{m6� -����} Y��XsGZ����~l6½���mb.ԓ��6ҏ$�z�'�� Ћ�Y� ���˿�
��Eo��r�X�|�4��b�R at V��JP֝ Q��"��l���q���RU�
�@)�i�����R������
�@�6�h�~����%k��q��<6ra��l$چ�����vj"���m�Ik@��@"n��]��
��¹
���Ks��4s.v��E�� �3|�
{ �v
���u�EM4�M{��%��~(��2�d^�l��O/;\��r��H)�w~��1r�
+uz���8A���2lc�1p��� ���
m�G��E�_�
�z�V�UWv35 ߸Ò/�����+�K���% N���5@�!JX��9y��~\�R��es�!p�&��A�
�@Mt�Z[��Y��p��i�M?�
��q���|�!@
�2�:
�����һ�䆻����X�~�������
�E�݆�F?��:x+�]o�q������=��Z��Iz�p�
B�Cp|�%^��/��������03
Ыi�G�c�q��5o��a�D� d���E�M��[��c��#����}��7���h*L_�l��`�qX�����>Z�K\��G�&x\�
���1x��g誧h��J�'�<,a�
��دF=��Z� �u?�H�ޤy~����Zѐ����o^'�.������LJg�"��3���Ђ�p��[�ܛ�'���/�~%�T�Q
�ZJ��Q5P;Ѯu�����AќC�![�a9^]���?>|
��<��
�1�-
��p%q�3�#
�9���~�.��yU����jt?���iT�ڭ��X�h�V<8��Gu��ӏa�h?t��O�
F�)U�>Z�m�"�@"�$�x���NkdG�O
Ep,��������1��J��g
�)-���!<?�I�'�{a�v;����&%[=��!g�s�s
|�X02�(�X҉%�8r��ǩ/���r*���Q��i�6�c�.�mx��(��H[���Pݛa���8���POk_p���䢕�8*b2�5��N�b
+�O�̇g!<���epU�U
�zx��^���o�����5t��.Ԃ�:Z����5�Z�Ǣ3�9����
��H���
O
+<��d�<bY �"�Lp��U
����Z�[��dr9UTE����JrQ ��1j.9�`?�J]�C=�[��z"
+!�(��k~��k�?V�?j��J�U|3�Q����-�R�p
&*�����E�/p��s.�dV�#�z{_v��ىX��5?�B��z<\��J!�4����Q��,�r������(�Ba�}Z�tD���ja�w����r�>��};��5j/q����?�u�2h�it�6�c�vr&NW�� g |a�t�ֲ� Z�'IK���䜮��Y*r�Q�K�
+����߬�,�
�I9��h��#�;䜲\�S��ϕ��tv�-�~���ݛ
p�5��\3
^�8�c�~��E.�Z��K�U<РŃ�Z�
IR�k�
��\���q[�y�E�;�\�
�Q���ܥY
-J�8�����
��4��)���U�����6��5��u��_���m���T�0-
����9^�F&*�c��5C��2��9_�G(ݫLi�+4�{�R�4*��eM�=�)��R�ߧJ��gg7�����
�YQ��}\�����d e�ėR䀧�r=�5�he{(�;L��4gL�f�LR�O�f���t��J��S��IS�4%p�&�ݡ�A��tR �����C
�N�;u�'��(�=�s`
l�}1���Y
��ٱ��4�w�2�Fj�����4# B��1J ��ic�hj�L%ejrp�&�+1�V���m�54+��.c�UEG|
��n�I���}�C�;'Q��n�T�oe��d�������<L��^J Д�P%�FiRh�&�M҄�T%�(>"G��Y!c�j��UQ�}Bc�wn|�s�
ѝ:���܂$8�:���UV�����K
�z9�ap�4���
�� A��بDŌ�&ct����e,Pd�2��*<v�B�
ת��+
+�������ٍ�x= �~V�
Hk�<�_��8����c�41�_l� P����>�(�AP
�H�,*�
*
�E\�R��B�+
+
����b$����EH���g:�I'MRcb���5��4�x��jcJ�����d�,�����^�����
�m�x�`�c���4bt�b�di���%�hhb����)*�N�����"R~��ԋ�r������.
"����p�x�~dݪ�s�,i������/c�dHP\B�F$F*6q�b�FhX�h
MNUt�IQ�y�:U�c�a�Rx�:�Oۡ���K?���
|�Th��
+M��Ar�>��
hdߌT��̞ͧ����'�g����{��b�>�aƾb
W�1JO�
��4�"ӓ5p�x��3���"�N��~���Z�djW��z�>��M��.C|{�ww
�������T��s.�ːIS�'
R�e$�DgxkPF�"L�
+7Ej�i��2������t���V�S�
+̞�>�O�WN��r�c�+o�Qy���+�|r��7�]�\�a���~��l*�LLg6�Y�*^�D����'��p|��uShnO���U��
+������3q��'��//S>�,�T&O�|�[V��R/
K�dnF��
+߿U�I߫����N��B둆+��\s�9�=�U܌OF��1���/d�/�Rς>�-�'��Hy�G�r+LR�� �+"��
+��)�P��b6�"�����ک�
�o�%�y}�|��Bi�������OI��?����*�Z��j�C
r�Y�V���je�X9dV��Ⱅ`fT�:�F�Y�WV�t���7)�}��j
��I��Fw�����
P�$��oi�c��h� E���y�y\�64���o�r�q���6��Ʊ�L6
�a�V
�� �4�"���V���
po@�Ԭ�L�9+�RhB�&�O
��A � ,��c)�*���V5p�T1�����$W�|F+�V�lHK�ؖ�=.����ĸ
�z^�������e?�r���k8
`σ��,Q$��I.j
K�?�r��&5Ԥ��W��&�4s5����z3h�ְ��>��V}�fbm���r��m��썜�
�E~�Q ��
$C��
�^ ?��a�������
;��N=�k=��U�h��&��]�����ƭ�"���z�H C���l��4��N4=
+w�B�D]��˶����3�B_���-�C��l=�tM��ly��`{(f�L�İT�����h�����Ax��ub�i�O��
�hMC����$�$�#��s���O-<���$M����s_^�mur:x��K������v�!x(�pC��#�
+cQ�b>�99μ8� 8A�'��:y
+|�:8��W��ȇs
�#g�p���^�����uر��cNA�E��
a�i�;N��>�9���ef|L��J����pJ+���[L�&x
�F�����=��������w��@q,��s��
|�0C�R�k, ߘ���M�-�6�w^�֛?���00��rPE����ur�ps
�t�q
e�����
���UC
}I��h�u
w>D�}��X��g���-p̩y�> Dߡ��)�ݖ �<]E�~�2��ƾ�0�~�?���QC�p`Ϣ
+O�O�G����������{���8�|��μ� 8#�
�+h����O�s���b�a6�m�d!
�p��Lմ�z�c
e�O��D=
&�������8*� ���;p\�
_�'�a�7�,����x����d�c����#(���q?^��q at upl�����
����
���z��������>�p���E>
m�ſ&oDC,��[*
E3�'c��cZʱ�����}�ͽh�6�x�a�<uCmLͼ�K۩Գ�A�t�e���!
�� ��g˟D�
�?���-
+���� 3
8
+�z �k<��̇g <?���v���N}������/yr�릫5��}�<�o:���䢝\�i |Cኃ'A;�?��3�O<�`�j��h~��.k�
+��Tf�V���X\A�,�{�v��.�z�+��?�
��Gc���U� �b�z���I�z1eS
���5.+\�da��ö�'�x�+���@G5�l�8��O�x�K���s�:Ʊc<3�ɩ��@|ap>�p�
D����2`�&�<����
<� ��ZO
�i�{�xrH��et})'��i����
cޕ�������Z�&�Ɖ��`�@lQ��b=
�$�2W6\y�T��-�Kg��p-��Z2��n�{��i:��t�J> ]t ����@o�� �F�؇�Q_�ճR����DZ:�h�~Bl�ĖDlFbˀ/>
|E*r���G���V��V�<�z�z<'��e{��,�K��L��Ko�~
�Z
+�����V��zV���^�/
��5��_�\Bdu�P��Ms�b�Q*�LR�g��x�d�6+�g�r}Kd���잋��k�L��hB�=p at i�e
������2������H$!��Nvsl�ͱ�6�I.`�"d�#,��D@ �4X �A�
!�@����
rHeZ��2�
+�Ȕ�0���(*�"�RM
���a
�o������������| ��ٌ�e��#&�2��@\����H4E0g*r`�����'�a�P5M0�i�,j���:��N.��)����ʀY*lQiP�J
�*
+�QA�>��B���UN�5����q�@/�w����y���:�����r����2��=�GS�T���XU�Ui�PEp��B�TR�����PA�\�G,Un�eGu++j�2�_R��5���b�B�`Xg�/�?�
ݛ���b
�vr�>N>��ev,�"J�
�Ru�dU���,ܨ���"RU�%[�MyQeʍ�U��QVӣʌY���U��mTj�.%�Qb���`�>S����
�)��Q�����T>�6�y�����i�
���Ԥ�4J��Td
���<S�rLI�Ƥ++6W�q�J���%~�R��$,TR�J%$�\��.�%?����2�\�)�&���<���E$�~xw>����*��2�i�*��}y�S[�x����jU�9Zs��R��hUrR���*��<U�Y�Ou*6m�L���Nߩ��Ê�xUaTx�'��K��:�ܿ���)bM��' ���J�\r�A~u�RJ.٩c��<Qi)%�D()5V ��2�e(Β���2�2�d̘���Ed�+� [...]
�V �U�
�x
�`
5*&�,�H%gz+!3@�a��2ʔ� �բ(k�"�K�S���&��Ε!�U���䟿M~���h;� �
�}��?y���a����
�����4�ׅ��Gȧ�w�Ԧ����%.�KƼI��
VD~����jKU��*CA�
��_h�_�lM,^� ŝ�)٪�%��UzBcK�klɇW��K�<��܃
�fgM��������o�t��|��'�ڤ���t�BK|d( PPi�JM�\�(��
����Py��+�j\�Cc+kt���ڢU�*N��s�Ӻ�FT��j����j���dM8�[ؑ6��f�M#�2�[�%�o#k��)^�2IM1Ȼ&J�j�5�&Mcjr5��T#j���?��k�?�6������z
@=»�RwW���O�^�z����I��"�����s�Zr*���xX��>!|�k�1v��s�����,r;�؎�����I���8�S4a��^�9f����&���!���v�6c ���.c]�����aT�O�$�c$�����
�pu�
l�G4`�;��
6 at C; [...]
+��r>i�TآB��>�
���8��
x
|>w�pR
'�p���4��&s2�N8�Ṋ�:�҂!j��}�~�]�y+�W�&����|�jj�4����wf�j�#�9�po8��9x�܇
j�h�m4q���oE��⭖����7�m�]ƾ���������S\
����O2yE?0���#��\;ɣ�9�dN�2'k���l�k鋵Ԣ����|t�x�@_�9Fӡ\V_g���]��i�j
����;o#��%���I���3D��?"��ztS�n����f�fS��沉���=�$�i'1�ˍ(�
�/�K��6�j+i��X����=Ă@~��
⒄�
������?z'D��<\
�.ֈ��p�Խ�E@����K��b�
;�R� 5 �6<^.����}�Y��#~��R����CA� �d��`�Mh�u:Ho2уd>P�h�@;Kw��m���>��=|���<Rb|8�����q�cP�#RO�^����q��<��>M-^���
�W�m�k%\��
��g����ƹ9�#
>7���nj��BaB��Hg
[��!��"��Y+� ޥ?/��/����������p��I/�����u��{�����
�Mp^n�J<�a�
�؎���G��ߒ�
�Cl����ܤ�?c���y�� ā
}���Fպ��
+��%J���s
�M��������#�u��_i�piט��:��pQ�xz�(��<x
�
+����X�G��ʨ�����1o�
wVG�F"5�}�øJ
Wp;�q>���"y���:�z�&�=M�;��u����,��y�x����?��
��|9 �p}(3|�� �J�7��Q5���%LO
+i�Z�
�ʹ�vx�h���h��h��2g5l/�p�9���|%�8
N���랣o(�b�QM��7���sh��p,fL��x��g=<[h�^x�� o�#�g�>|f�{�
����5�����6���n�
.
<yD*%~5�]�5
�G�ha<�`[�
+����{�]���l�i��
+S��#�a�� w��p����2�i�����
.%0�as��
�9�a'
�0!!@)�) �@��@Y�6k)�W�nZ�4�����b{1m]5e/�b�)U�ڵ�Tu��i������i���������}<�=}a���)
g"|fnȣ4��K��F�&��p�8�Ѷ�!xF(����C�DC�@l��U�F��1��N����Q�}8�߯�i����m��_,�F���*���7
M�ӆ
��.2�Y4�k\p��5�%���Tw4�e�WD���7Ү>�������
R6x3
^�i�Y���8��
O#<��ӡ��1�
��1E|
��~~��[cܲ�F��n؆��!<0� x�/k�%�2�/��Ѣ��3��tR&�r��eG/'z��
p���
�.��K
�����h��]$j���.�c��;N~��T����3����7ϖ�Z ]�V}Ra�3�ے�̌
s�݊^v��p��j���:�C�����]�E'VG��
+z��U���?Ռ
��� �D������(�;m�8�LS/���V#�̀/+���͉n.��k�o|��
�7�x�=/ �
mAc7����.hU?��
��Ŗ����2O��e�O��D�E����S�/��V���#�'����&5��)�[
!��:&w���Ψf�u9�o�2�=�G<�#�9�� j6#�]8_O'h�^Z�YƏ㌆S�3�,C��]���hu'�����,5��i]��˵%�F�-��lQmT���w�j�^U�L�{Z���T�����SQ�C>_�jXջp|�[���1p��v��#���3�,��q'kDkt���bT������Vml��cKU��R�q.��7�a��Ы҄�T�8���yl����ו��}Y�)���r���.#�[�/3�_/&����)b�E�ad��.
�kJ
���C����H0ˑ�+{�UeIv�n�Vqr��F�
+�=�OVn�Y�N*+ݫLӫ2��U����?���D&Ӫ�q�m������s��\`=8d��3�h���Җ�|����arcTfLTIJ��)Y*J�WAj���*���V��E����TF�LYǕ�����[J�<P��}�6Y����O�|�_��*�ιjbL2�E�~d���f��ʑ
�A*6G���<s�r�fY2r��iUfV�2��d�ުt����˘;�Myǔ�Y �ˊ/���?*����W�
�~
�o��x�GV�c� �Gj�>�ڎ|[ˤZ�d6��Y'�%V��$�s�d��VZn�R�l2�W+��QI�
J,쓡hTqV*L�E�/^RT ����O�*�0C`�[��"c�b=u����g]ܽ�X�y�4"K5v)E�5X��(�d,2*�(CI�<%��P\���-�-�hCY��m{i�Q������T�㮂
?Q���
+��M���mt\F�p^n&'�X��D+� ��3�(ې�y���B��J��+��Q�$���k�h�êhG�"��
+�hUXe�B*w+���ά
�N:�����
��9x���` �k-�&����Ԧ
��C���.�#S=�U g~2���C����j�"�S��:K�5�
+��+��V��P�N�b�u���X��,n�e ӂ�3�<����W;��s�e3ϰ�!F�
�y:9�<e�b�j#��mTX}����PO1�'��),�8���n�P#�4�k6M �&��&��F�t#�w#�S�c���o���\�t�W����A�w��l��d�R�,f�& OD{�<�
vL������d
��C�yح<>#ri�8����Ò�a hczj{�e��&/G�Ѭ������x�ylȒ�,�����`�
[w4��v�b�E�u�h]sA��
�{�apim��bY��2��g�H/s�58.�wz��d��:@�=��̊����R:����P �hxC [
b�A
+� � ��z����v��s�騟em���#���9D,�s��
��O��irr��y)���'%"S8��|����ύ��� �c�Qn�d�Уy��FOQ�ȍ�,�{X�F>���R7pՕ)��9�8K��=�
�>��
yrg�Cd�
Q
�����1�
3
34�|2M����M���4��F�i.>Ą6��8��2�G���ƽ���,"� ��3<��F�y�f -G1 ���("�!���,`��X��-�rd��[ ?���
+�_��
�1�4}�z�;/�����8O
��@,�9#�ڐGx3��0
z��F�
^����|^�ˋS��eBL\��d�X^�=ϝG�(���2A
w^��ן�?^�,}
|�
+q���6�P�W��l���W���j��V���C��Z@\�7�������MZ�X���5�o����}
�� ��
���=j�=��=��
lq�����L���B
�L��h��?\�{P���,o�A\vY��cX^
����
+�*D^*J0jL4�D���Z�5j
�X�q�h�N���d&Z�i�N�N;�iR�X�c'3�c�������ξ~�=������9�{9��H�a��?���8�3"o�
G
:f�.�D�e�q���� �,]C\�?�3���7v,z��ɱ�Y`�у�R,-x̗�)��ۇ���GLɇ#3i
5���
��5.#�3b��%"�&�-��+��m��$~�����"�D*���x�(�at��(��������k�͠�
+�
�7<���st�g4�h�Opl�'��Q�������UV�B�K�'����X��7��[%�2q��`U�Q�/lf����֟������ԟ��`��$k�o٥�i��(�l�/�[�x�ǔ�F� �}�ÿ�{�
��M��_����*]S�� �V��`�y�ԅ��3���{
p���8�g8H�5H��ɇ��_i����6�� ��c�>�-�S���$�=�( ��<�ɡQo��
�x�s
+�uOu��<~���8�dO�^���a�����]�����R^���/w&7.p�����]��da�R�%�\
+Y���հ~#y4sTg��
�m���g���G`lft��6��
+��a��A��R^�#�#�Ck�{^�
�Sx����g��a�����d0j�h � ����N'���@^��\&�AX�//�wWS��ع�d�:����M���w�7
+^��`0c�K+�����E>��SM>��2
8md� VX��z
�U`l��nX��U{���_���'�;����;�Qp�7GF�.��6�Ȁ��K��
8��T�S
�L�r���
+V'X
�ZV?k���0;@�V7h������n���X��o���߃�ka;1 at -�+
�h0X1
,'�ɮ�@)�
V-X�8�-��i>Hs���'�a�+��U��8;w��>����Q��h\��A_�#��&��� � ?3����VXN�\`���&�:�7�v�zء%`��k6h*��@w�3)j��)L�����
�g�r��p�q��F�m��ØDA��k0Y�gU
&QG�!���9�.P�ȭ����ko6xݰ�k���?f�
���y��J9%�f���E�N!�� =���A
�����w|�
��~�
+�V�%?+xv�1�|�\��WM^���ZL�J�b����ۮB�C*0�S���
C�
�Z��u��O�}��~��B��}I�
>�ȑ.��4��/�j�6�z&�gW�_�*�
4�P�2C�JjUؤIAm�ܣ��e�
��r¶)+�2��)=��lO
�
q�x�s�<���܍�ڒA��$����e
gp�Շ�*(\A�*�SIH��B�5)4G�a�*+�3�Z�S�=n�
��)#j��V+���R�e�~K��ה`R�iXI��t)|�װH;s�9�x
^W ��g.��R�i�R
|K�jҸM|Ҥ���OUNT��&8�0)#�R�����<J5w)9f��,���-��= K���������(&ޫ��zٷ� ������Oç.3�K����rY��g
+U�i�2����d��+-&G��B%ǖ�W����O�Plb�b�Vʔ4 �u���o*2���%��=E%?�I�� X����y�M{�X�=X�w�p�A]��9�g
�DY ���G(%�$k|��R���P|R��%�X�eN�.S�
S{�֯q�M
+��U���B�(��g^����N��
+�G��+u�Ib)� {���.�p)�K\2l����*>e�bS,��ZeNM�)-WF[���nE�OUDF��3(Ա\���
+��#C���z��T�Ywdp<�q�� 8?A�n����M!��~~%�mS�X
+�|����$S�83̊�LPdf�"
�
+�*Thv��s�;K���ǔq�ݜh'���dv"������:ƺ�y�w {�r�5Z�%�[K?�g:|j�S�s�pI�?1�=���<�B�q
+v�(0ߡ���@zb
�v,��(��'a�\�X��u��x���:B�����������F,"v`n
��N5�s���D�限�Eɯ�[Lss����%�X�å,T��&b(�V�Be�2n�2�o)���Ys/�;��8���ʹl�\��=��4�sI:�ɇ���,,��3����͐qӴn���V�@IU�5���|5&��^�
U� w��=����S;��
�A���nR��A?©.Y-xO��M�T.�F�T#���Hč
�����j�� �ȟ{ �m#&�eЀQ��Ʈ�Ł��w��V����\.���/}D'֬ KR�o�a�bx6
�\�D �9����`�P
���~���
�P\
{���LT
Ja���<�}��I�`��z����D
����级�\
,� �ȹ��k4�p��E���Ԣ�Zt0�:0�4ZIv�D��s6�1�sPKO]%���
k��`�6�����d�ݼoZF�%��J�O���]��Q�g�l�ɱ96��>6!wH KWJ!�`9�$���$I ��r��� N�#STEm=��:�6ֱ���R�vL?���
�
�a����>������}
��^,!�%��b<�b.��i���\4P��
Z=5Q��� ����� ?����-��#b���]�c
��%4�X�W1Vr����6�W���8Z���g3L3u�L.�(�&�d6A�b
�L.gF,��A��V�]�iC'w�ҍR5�<�x��.9�j����h�\��Gq�1���6r�J�r
�̪Vjbu���=
+����f>�d[�I"n*�+��G
ĺ[��
"���:�>z��^.�^.�^ꢗ"���{�D�������nfiF�ZR��`�� X��-�����n���������`�!|
��O
�
}� �`a�ҁ�t\W�n ��٠
+�dF{H?��2���N��q"O�F��c�愒��!��g��g���xv�b��<ˢgρkjg_M���쭌���K��s8�2<n�� 9g����6e�
���$9��E�
�S0�D��L�^�r����
+C�U
+�*�x�ͼvQ+�[�
��Y��C��co'
��ː��W�6�W-/��eZ�X\����||B�|Z,���
�G��A0x
+u��� ���G�̿T���ר�۸�/q_�&>�]|���3
�S��
�G4·���q���'��1��s�FR��w��a�2� ���~ w�o�η���
��o�ۯ����I����-q�E
o��8��8�W��e��E<ͯq�/P�)�_qh����
;0���g��?��6�
Os�>�
r�ళ��P�QLe���?��G
��FG�Fgq���ȧi��1
+�(Q
f����=`�ÿ�W��\J��Ӡ:ُE�����Q��cX"�W��TJe
��G�ֳ���W<k�h�C�i՝d��Ya�ۦ���?��!���fH��y� o������țYg��ʀ#��Ju��8@>��3��^.��8�]\b���
ı�8����تn��D�
T�F}Btw9�!փ[�]���,�Wz��a�E�By�bG�p����V��N{�O�8�q��p����
�����J���uD���V��N�I�
+�����N���;i����Q�g8|�p����j+`?�p�9�q�T�S�'�k���ı�si�_V�n5��RV\Lf�i�����Jr��Ɨ�q�
A���Ș�̼�
�3���Õʞl�\�u9�r�T�^&�U��p��Υ
ƅ|;�_�%S�����pٞ��U�o9�!^5��c
�5����)�5�o�Ѭh�+�LgÓ�H���d_����0�ny�
�J#
k�������
�
Tһ��M�#Y
r��yc��3��5F�V�
���0:�_"\ipeÕW \���*�
�����bxZ�������
�X:���b�
��'�
r�v�(>��0��@��-���q� �
+$�f8c`Hd��tg��G-��f���2��'��8�
K�c8�rVEE�R�%tw�/�?
+�����'�����H�
39�.G,'��d�Y��t���
S"|��e�W �H���M���:����ȷ���n�ळ9�,z4S��o���:�1x
�R���r\��|� J,yz�W?x��I>c�K�/Cḛ�쬘�
+�&�s9�
2g�X�L�5J�zR)�=J2����L�W������|��u/ҫ�ӅMY�����K,u䧆�������Oe
!�1R�
q��LV�g�Fx�*�T�,o�2|&*�w�R�f+��V+.p�,��tZA/)<�C��o*"�;��x��ȝ-H�Nd�:^W`��g�=L^��D�[�\?���*�/J~�J�OQJ�MɁJ
*SB�8�=P���Y��Wd�J�û�K�ͧd�� ���R��{�
�g6��G-�Kkx]�
]D<���3�뿜|"Wma&�P��0%�XbUlh�b�F(:�DQ�
+EDLVxd�B�jXt��,
���7渼c.��
�_�'殎���p=
�f$F;r|5hĮ-�RK^��(��'�
bI��%b��""'sT�£m
+�)$Ʈ��*�M��|�&����]���R""0�nL�v��7�����Ǿw�ۍ=kM="�+C�!E눥�X�K��K:y��z�
���0
��(8>Q� ����/q�|�&ʔ<U�)tU*
��nJ�L�4�b:��zGGs����OV0+�
`)�E�N���R��gJ����Tb��)��O�oJ�|RdJM�g��
�|&>/�����a�l�t����`C�e}��wt�u�����X$�ljs=1��E��R��SI<�<�C��MT�>2�h^
/��ʦ�sr��`�\�c.>/-������<Dpޛ|7��AB���[���>Q��~��룼��-�LL��T�s�S,��w����-�y
�K���"�x
��%3A=�8�`�J�J�!�� �PtG�y��
8;�җNk�%j s�{�M~�� �\�K"7����dg���eFӴ�i��V@�����9�r�/g!�B��c��܊���N`���8�?�����h)�-�E�(" G��N��
*��
"�
���ȡL����I��u3�tnn:�\tfed�˶�}��e!˖�I�����s���`�� �eЧ
+�T���}�7�[=ٌ�b6H����ʊ ���[|:��ztD���
+�H���5��
+C�B>*p� WJn�/V�`v�J�l�%��
5�20
��b;��0��\��Z���sؔ�zb:�\(�����5ú�ZJ
p�C>�Ί+UbQU��JW X�US�f����PKؕT��D�>
νW����R���ࠕf�=�&�=��Z���,\��ק2;��
�D,&�Ť��|LT<��D�8�� ��xJa�1 ���w�螀�B��J�|6��+Q���p�O�(���x�7���09�%'��l��LuQ-�L�|T
^�g�2;�t3b�8��|
[���=�lW-KP��
Eǥ�������Y$l�9v��B�X��"`���7��~�o�|�p��a5� �:ל��]
���g�5RUG<��}��6�����Qkg�
˓���s�s�N}��K
u.��zd�&^��)�e��
�2uY�7��SK��{V�ǵzB�.�:3|
KH��|��2�nMR`z�
i�����
��Xon�w֫�z��W��
�7��)�u?R����Z+EK��9l
19̳>���L�˻E��e�����
�/k0;�����oP�
K��lX�8�ͼlx'b�2�c��d�F�~����[�"���e�It�J. �gmo�\�3M��7C�����}P,H�A�Q�^�>.dS�v ��
��Ȳ�~$��8Wk7. !�{:i q�,s4����/���z�(�C���apL�
S������b1�jK����P�;#�=��3��x4-_ �g�g�MK��hZ��:�!��
�k�uo���{��>������/
�����ǩ���Mqķ�����d#���)��h�O�쏩�_���v����m�m�[
+�
[��U�;.0/{r4�D=�O��3�K08�_�[v*2�4�����v�)����1��U\
���Ο���0n�������e´�6�
�}�vI����@=��!Z�@�Q��
c_������4�O���혯P��l
/��/P�?��9�xֆ�
�����)��]� <$�mj�4�^żۧ]��/v��v����ls��_ؗ�d�^kLq&��;�36��l*O�&��}��k�-o�����Æ�Cx��m7�b���
[�g�H�͛���!���ױ5����s�7�GK=�Om�,�/���|'�;�2�s�H-{%_��xH�Ùn����|8��Y��i�����"f��i;�l)�,���d+=�l�D�?
-UU
�.pz�(�K9_��P�0��cጋ�jd%
��K],�S
c��lr��y~�7b^�!�¾9i�$�$������8��՚'
a�)�O��3�?�C��3*��������2�������q�,'V�n�ڜ��nP�S�'쵤�����L���hN��5 [...]
�Es�90�;�3�bX���`��5�o�ፀ7�5�&����,P�u�����â��o|b�fg���D
�[ɡ�lu3gn8~����p��� �P
�uE)�2��� xC�U»
+�xx�<��b9���
�D�/����n�Gc�s��&l&�ֱ֖%$�<|�r�v��ϱ�dL���^!�bx���+��@~
����ӋTC��@Ş��z��=������G��k< �k~x�k�N��[䪻 �iև�u�2]��x�ZGx����
�����
�[�'U�4 �,X�t�j
�E&S�/��OE���t
j�j�� �sY~�-" �=�)�\��(q�˥j��;�o����
�
��3A��t)�aQ�lL�������vKtH[�難m���N���*���J�]�l�M����G2c�=v x��5V���L�e,.�y�v�<�Y\��<z�fG�f�Q��E�E�%�$:��EAz���|Htȸ"r[\m3gDN����22[m��V{"=�H��)�~��N�>�s'�-$�z��
++����3��U��pkå�uYԫuJ�̈��ѩE^t�,�����m�;�f���V�Ev��h����h75�sk"5�h���iO��� � �<{V�����{�I�b]?=i]]\Nv������\��9��}p)��0/5�ڴ�����n�!��u��ܒh��'��i
FDJG:��E(�~S@��<�p��T�:�g埌=V����m�zd7�<ճ�p��P��\��KO9�,Gm�ӣE��h�1/�:FJ~�hV�����¡]TrW:�H���nDr7Ⰸ�+2��>����(?�}�5$�r��6g�z�L=Z]GY.��%� O=�.���"��]��8�n�Y����1��BVb�А%c !�����
_�.�n�s�;F��V��l)>e8������Ŧ���r7��F)ռ���T���~y�Uu%q� �(�@�FV
v+�'6�%BTP��M|�
%b7ꂚh����X�qu�&��k[b�
+�;�=��/n��|��;�7�w��;�?3sfjRP� �6����0;� ��2u�
Q��.ݸ�Z�3x�ab�}K,&��?�oN�.�P�h�j0a��̇5I��!87����8jOfU�֝�i@�s@�
�;���
��2�z�z�(y2�{rC{����B��
t
+�}�;������`_|���j�?�����x)B��9>x���d�q
M9��2y!��6�H/^��2�{��yq+6cAh����;4[�#�dRg�
��?���9�����˚�O�y�~V�����?�
�wa���hK#��lu�GrBQ:���r
��c�Ա��X��pK�fhu��@f�&��8�
m1
_8ړ�;�Л�>�U�J^�!��.��Eg�����4
�Ç��,=N��K=��3ea�Ĥԑ���i!�g�wI�$�3�o��?E�.����Hgo�7
+#����Ϣ��5`ҷ�Hn�b�
���Sp��?���_8:�G��$vgIz�qd�Y�>�o�n<�u�0�K4����9���^9�<�����E�K��Gg�Lc!/z�Eo�^�i!C�Nz1-3=�d�
�)f�)|���鑴�~�]JIG*�cs��
�0�oI�5k�����������(.�(���>"9�H�9�Ȃٟ>�ɡ_�qm2ߝ@��!m���q�1��:���^
�P5Ҭc�:ڬ��j��#�c���(�"�b�#�� 4��N^�6��+�^I
m�(۷�h0Cd(�w����S���
ZH���@�$��N�������@�J�N /(nCo�����G�g����F�L M�x
��2L��Y]|���l
����]9p�~ M��)�IJ=S#L���>��R�ۀf�ɼs4�ŵ��C��*hQ��@��'nZ�q�_�O�˧K����h�ӸO�ȍt�$�ƒi
l:/O�O��!�y
�
�6b�pE�������`�4 [...]
�Z��ԭ��ݣa��M�y5o٪u����:t��ӹK�7����|�gp�ޡa}��G�8(&v��a��F�=6~��w&&&N�<uZ��ɳRޝ�:o�������l�_�V�\���5�����6lܴy�m�}�}��_�����
�ǡ�G�
���ߜ:}滳�/\���?^�z��O7oe߹{��_
<|�듧9�/+Z���
+Ȉ�Ȑ����
�5�� �~]�]��k�����=���
���^G��e�z�&��A�$��da 4DK
�H"F��I��p� ɘ"٘
�%s%!�`d��$]r��|$YY-�H^>��쀙=�����L�9*�9!��~�I��`貤���6$ݗ,=�4=��
5�S���s��u2(��ėaV�)Q����'�_��
e*�)��/��P���cA#E�}�;9���R�K�!{�]`�l9��PF��� �����ȋ��d2�-�ޔ�D%����1 *:fȰ�QcƽcH�<mFrʜ�
-Y�<mŪ(Y-�l&Bc�V)a����� �
�@��P/_!�k� ����}��
b�w����Ƀ�=zL�O�>}�,G�_M4�DM4�DM�H���o .��
�/W�]�h��&�<��Į���[ٳ��|����@�C��s�ްs~�
��qu����� ��~�b�&��
yr�;��#�R��2�
_���={YHS���U�6u�g�c]|@�J��Ϩά�ڱ��k�N^�6?a�u;m���}'�4���)Ws�Y�o�5r�
��iA
GT���ۖν?R��,�v±ӂ�*���� ���;*��u�]4O��8>���\�hFX% �ר�s���ĭ�n�* ���%���:�@
�yd�&�}r��=�Mɱ�����7���*�ڡf�~DMJ��L��=��,^�h��{���E�n@�]�lU�w2�U�܌Jf@�mʀ"ͯh����0#�s�
+ �Ƞ&%�߯�=���GX��8����CjLj��D�nn��صd\L�����c�UE�)OU��S�_��v\��l����t�ǂ���P�A93��de��1J���)���V$��E��J��/ �.*���)�I{��mTf�+}5��ު{Ў%�����>ߪ�7/_R�QM~�d�X��L���͘�ӣ�:�b?6�s�������ʢ�AyH�����³��'�y���T,-�h���|^T��j��vQJ�I��$[���v1�P�0�ƾ��.�m �E������ �Ͽ�{eyT�Z��#l M?�n]97)1��ҋ5��F
|�}�=U�U��4Z�b>>��q(
��b��V3'���q$���Y�`�`j弲(3W���"_e�+
�K/"��~�F~��M@�E�9kp� 48dm?dY��6˚�%�e�5 �P�Ck�JK���qݰ8���B4�M��ЭJY�j{l ����:u���/�}y������b�vzcʐ�
g�X�Vne���o훣��_M����!/i
+��=�eu�BT$@g��֪��⍝6�~�S���Җ�5�ڞni�ր�V�8k at _+@�5 �
+d
�i�<�t�i��]N���i �
5�ᱱ#�z�
�:��{��3M�����
i����~�����q -c��E(T�t�R
!ʾdO%)K�%ɖ�*��I!��"K�4������6K�3?
潿����\�\s�\�w���s��������_��&����S�������ݩ��֍�
+7����=�`���%
O�����g+�10�v5ۃ~�u�`5�,[ �� ��� o :?�P G�� $6� `��>��� `�j�I� �)�c`wM�a��._�!4<"z�a�3GS�s��r�ע�� �~�Z���U�m�iB������~��ey���Zŀ]�qlu��-iU �Z��� ��]�V�lk lB���)Sd#��" 6�c�`�n�X z�/�F�%���km���R
|ׇE8�t��3�o^M����|�ߔ~��ㇳA�:%��%���w��m �#��
�?�``
�{�4ȓ�Ў+�+��� ���IF@` A���@��C�[Z��7�P$� g_{�D ��D8܃6"H�F�
+b)S.�L�E;�^��N��
7��T�o��7��ꁵ
+��c�ؽ̩���e<_!��ׯޗwi���5
�/�A"�
��v���J�q�t���`���9l<Ђ�x+)��D`e=e ����` G��C�#H�� � S��#8�1D6�;�ijK$����������E����>|&��
h�U�ׂ�
�+��Vh����gR��`�8�#W���6�/��Cp�Hp6�C.�:OAoR
� ��I�1`K��r:��i� W�`�x!(/4���
+n2�3J[� LC�� ��l�*S��XD�b
�\�7Q�]��~���<�p�)y�]��;���zw!���X��9㉤�}�Ci��_ž����
+N�֘KS)�� L�
Rp���tyȀt�^��(�b`�
�P��r
+�ҔfQ�X
��;v f"�
� = �I|�`^"��� ��%.�?�@��!��!V6��T����r��J���������,�:����ʡ�q/�,�r�|v��|aU+ �
�E<9�k��R �
����i#����#
+v2P��T*PPܜ
+� r��e�Y�����A0� ?�
�%�u(0@ �`�d at l�'Ww��r��:<6�B�)��E�_�y��~���ޮ�YC=
�rR�"����
��D��n�=?PT�N�3���9�9�S�#�L怮��
�c1��X�k2F�Ҍ8��Ƶ
L��\}((
b1- W�n
@,A�@� ��%҇S��x2S[����56�?~V�t��s53����5���}�?�S~<s�H\���h�3":�tjհ����Ir߮U���cU���vpN
+�6��
,&`�Dq���H��!�(6��MP�p�\��r(�e ��
-��o�@ ��D �V�G ��| K�li9�qv�X7/���c��PSZ�8�7"8p��
7�q�Çe�����MU&o;D66f
)M��G<���;P��p ���x ='�;�p�k88H�I
�$i+�mXE���[�fQ� ,�
��[�OkM
l����AA�{i��F �j���kd�w�T��G2X���o=)R
+4�_��/r�2��N�u�!
�
_1{��}�w1iݬA�Je���۶ee��
k7UeɁ�H���
+`�
�j��Q�r�B ?����r`N@�.����Zm
+<�oP�U
Hm�Wu �=̗�rG C�8�� �էD[�o���D�!�]��Bw
��e��kU�ݔ��c"Ã����.�{+3c������a��_�e�
,l]����
��B�Bn���zLT���@"�T�
8xG�?d��j3p��LK�ӛ�{�v
+��!XFA�#'
+D� ����i��������mF��l�M�´���<x�h�/[�^���Á$2�m Z:����~�M��&�M�q���E�ehˑ
��?5%)W��e9�͖
~`
� ���
,' ��xp�
��h��Y/a�-�
�����.A��4V
+=�da醝����j��{�{�J.�\%�.�w6��
��?��O�|!����-�o�#aƞ5^.��V]LZ5��._�u��`�i
����:�bIr����
�$7�������6 M� �I5@�'J���d�������(ȚVN��mj W�v��zm�'.�z� �����n��%!{�~f�o����;4�/V�O�{"B��ϛ�>i�X{��.������E��Z�#�\�/ ����j at Fg5@�>QK3@�s>
H����1z��DP��
�<�����y("��sVè��1����՚�����H�[���e���'S��+e�����<{x7-�b��'N'�#�����x��1�Ow3Sc}�ƍ��Ӹa�Rt]ܖ�s
�ꎗ��v
���X��Rv5f`*N@�t�t�E@�$q�A
+^,�%OK5��J�8��e����q��+�FW�ٷ6
6 ��\G����.e)�%�&����4����#�vF|�1(p�
+?���q�O瑶=�L�Z4�]�lI��#p�[W�!!|�"�W
��P��y�B@��^a
+���Ű�-��Րe�-��������&����&��[�PN@�2(�wõ��@p)�)"�~ʚcO�H���]����%9
+F�����?�}��уO^A�zyp��:���
+�Ӓ�R��'�(8�ko��$%̍�G�(x
L(�7�P�� Cj�R$���(
+~5��J�B�c�=�,�nx�:�����
�eW�țv�5F0δJr��f�l��!
��t�²gn���4웶���8$G�(���G���;y���=��
8q��wT��S�kJr���}=��<�c
+�(X栯"%�ń�Ag�(8���iBQ�]Z�`� �,�m�TǢ������_A���U���yl�ƻ��.(�)g
\4m/�.Ľ-
���ɛ.�&
{���=|�,���0�`����ٶq���K/Y�f�sw��%YIѡ��NvVf&�V��E�
+f�H r0"�pa{T��&Ӵ)�P<���K�9-<�ݕ
� �
��K.b���,`?HP�9�y�%����ks�䚙;��
+�c
]�v]��K�>�#9
+F�H�~}���ӗ/؛�7�X4o��i�g̚�d���gn���������`ca��m�0��/4��zH̦�ӏ�w���?��
��wəq������:
��-���
~���m�s:��x�˓W����7�|�#;
+F�(
|����gO�>�����e���S�O�5w�S��)������Y<��+�Vla�������97�˷OjXt�)NG��߲��K|�xrg�2
+?``0�` &!;
+endstream
endobj
75 0 obj
<</LastModified(D:20150706235324+09'00')/Private 95 0 R>>
endobj
95 0 obj
<</AIMetaData 96 0 R/AIPrivateData1 97 0 R/AIPrivateData10 98 0 R/AIPrivateData11 99 0 R/AIPrivateData12 100 0 R/AIPrivateData2 101 0 R/AIPrivateData3 102 0 R/AIPrivateData4 103 0 R/AIPrivateData5 104 0 R/AIPrivateData6 105 0 R/AIPrivateData7 106 0 R/AIPrivateData8 107 0 R/AIPrivateData9 108 0 R/ContainerVersion 11/CreatorVersion 16/NumBlock 12/RoundtripStreamType 1/RoundtripVersion 16>>
endobj
96 0 obj
<</Length 1018>>stream
+%!PS-Adobe-3.0
+%%Creator: Adobe Illustrator(R) 16.0
+%%AI8_CreatorVersion: 16.0.2
+%%For: (togo) ()
+%%Title: (change-of-basis.ai)
+%%CreationDate: 7/6/2015 11:53 PM
+%%Canvassize: 16383
+%%BoundingBox: 104 -455 410 -258
+%%HiResBoundingBox: 104 -454.2344 409.3613 -258
+%%DocumentProcessColors: Magenta Yellow Black
+%AI5_FileFormat 12.0
+%AI12_BuildNumber: 682
+%AI3_ColorUsage: Color
+%AI7_ImageSettings: 0
+%%CMYKProcessColor: 1 1 1 1 ([レジストレーション])
+%AI3_Cropmarks: 0 -841.8896 595.2803 0
+%AI3_TemplateBox: 298.5 -421.5 298.5 -421.5
+%AI3_TileBox: 4.6001 -803.9844 590.6797 -37.9048
+%AI3_DocumentPreview: None
+%AI5_ArtSize: 14400 14400
+%AI5_RulerUnits: 1
+%AI9_ColorModel: 2
+%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
+%AI5_TargetResolution: 800
+%AI5_NumLayers: 1
+%AI9_OpenToView: 11 -183.3335 1.5 997 645 18 0 0 9 116 0 0 0 1 1 0 1 1 0 1
+%AI5_OpenViewLayers: 7
+%%PageOrigin:0 0
+%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
+%AI9_Flatten: 1
+%AI12_CMSettings: 00.MS
+%%EndComments
+
+endstream
endobj
97 0 obj
<</Length 5682>>stream
+%%BoundingBox: 104 -455 410 -258
+%%HiResBoundingBox: 104 -454.2344 409.3613 -258
+%AI7_Thumbnail: 128 84 8
+%%BeginData: 5533 Hex Bytes
+%0000330000660000990000CC0033000033330033660033990033CC0033FF
+%0066000066330066660066990066CC0066FF009900009933009966009999
+%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
+%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
+%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
+%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
+%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
+%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
+%6666006666336666666666996666CC6666FF669900669933669966669999
+%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
+%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
+%9933009933339933669933999933CC9933FF996600996633996666996699
+%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
+%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
+%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
+%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
+%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
+%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
+%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
+%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
+%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
+%000011111111220000002200000022222222440000004400000044444444
+%550000005500000055555555770000007700000077777777880000008800
+%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
+%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
+%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
+%524C45FF7DA87DA8FD1EFFA8A88484A8FD1DFFA8A87DA8A8FD36FF7DFFFF
+%FFA8A8FD1CFFA8A8FFFFFF7DA8FD1BFFA87DFFFFFFA8A8FD35FFA8FD04FF
+%7DFD1CFFA8FD04FFA8A8FD1BFFA8A8FD04FFA8FD35FF7DFD04FFA8A8FD1B
+%FF7DFD04FFA8A8FD1BFFA8A8FD04FF7DFD35FFA8A8FFFFA884FD1DFF7DFF
+%FFFF7DFD1DFF7DFFFFFF7DFD37FFA87DA87DFD1EFFA87DA87DFD1FFF7DA8
+%7DA8FD7DFFA8FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFD5EFFA8A87DA8FD1E
+%FFA8A87EA8A8FD58FFA8A8FFFFA8A8FD1DFF7DFFFFFF84A8FD57FFA8FD04
+%FF7DFD1CFFA8A8FFFFFFA8A8FD57FF84FD04FFA8FD1CFFA8FD05FFA8FD57
+%FFA8A8FFFFFF7DFD1DFF7DFFFFFF7DAFFD58FFA87DA87DFD1EFFA87DA87D
+%A8FD5BFFA8FD21FFA8FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFD5EFFA8A87D
+%A8FD1EFFA8A87DA8FD1FFFFD04A8FD36FF7DA8A8FF7DA8FD1CFFA87DA8FF
+%A87DFD1DFF7DA8FFA87DA8FD35FFA8FD04FF7DFD1CFFA8FD04FFA8FD1DFF
+%A8FFFFFFA8A8FD35FF7DFD04FFA8A8FD1BFF7DFFFFA8FFFFA8FD1BFFA8A8
+%FD04FF7DFD35FFA8FD04FF7DFD1CFFA8A8A827FF7DFFFF84FD1AFF7DFFFF
+%FFA8A8FD35FFA87DA8A87DFD1EFF7D202752A8FFFF27FD1AFFA87DA87DA8
+%FD38FFA8A8FD1FFFA852277DFFFFA87D52A8FD1AFFA8FD5CFFA87DFFFFFF
+%A87D7D7DFD78FF52FFFFFF7D527DFD78FFA852FD04FFA8FFA87DA8FD76FF
+%52FD07FF52FD76FFA852FD35FFA8A8FFA8A97DA8FD0EFF7DFFFFFFA87DA8
+%FF7DFD2CFF52FD2FFFAFFFA8FFFFFF52A8FFA8A8FF52FD09FFA8FFFFFF7D
+%52FFFF7DFFA87DFF52A8FD2AFFA852FD2AFF7D5252FFA87D527DA8FFFF84
+%7DFF7DFFFF7DA8A8277DFFFFFFA87D527DFFFFFF52FFA8A8FFFF7DFF527D
+%7DFD2AFF52FD29FFA87D7DA8FFFFA8A87DFFFFFF7DA8FFA8FFFFA8FF527D
+%7DFD04FFA87DFD04FF7DFFA8A8FFA8FFA8A87DA8FD24FFA8A8FFFFFFA852
+%FD1AFF7DA8FD0DFFA952527DFD08FF527DA8A8A852A87D7D52A8FD09FFA8
+%27FFA8FF7D7DA8A8527DFD25FF522752A8FFFF52FD17FFA87D2727A8FD1F
+%FFA8FD04FF7DA8FD0DFFA8FD05FF52FD16FFA8A87DA8FD06FFA8A8FFA8F8
+%27A8FFA852FD0FFFA87DA8FD06FF7D2752FD25FF527DFD12FFA852A8FD14
+%FFA8A8A8FF7DA8FD05FFA852FFA87D7DA8FFFF52FD0EFFA8A8FFA8A8FD04
+%FF7DA8A8A8FFA8A8FD4DFF7DA8FFFFFF7DFD05FF7D5252FFFFFF7D52A852
+%FD0DFFA8A8FFFFFFA8A8FFFFA852A8FFA87D527DFD20FFA8FD13FFA8FD18
+%FFA8FD04FFA8A8FD04FF7DA852FD04FFA87D52FD0DFF7DFD05FFA8FF7D52
+%FD04FF527D7DFD0CFF7D7DFD0DFF4BFFFFFF7D7D7DFD0DFF527DFFFF7DA8
+%52A8A852FD14FFA8A8FFFFFF7DFD05FF527DA8FD05FF5252FD0DFFA87EFF
+%FFFFA8A8A87DA8FFFFFFA8A87DA8FD0CFF7D52A8FFA8A87DA8A8FFA8A9A8
+%FFFF52A8FF7DFFFF7DA8A87DA8FD04FF7DA8A8FFFFA87DFFA8A8FFA87DFF
+%27A8FD13FFA8A8A8FF7DA8FD0EFF277DFD0DFFA8A8FFA8A8A827A8FD14FF
+%7DA852FFFF7D7D52FFFFA87DA8A8FF7DFFFFA8FFFFA8FF52527DFFFFFFA8
+%7D7DA8FFFFA8A8FFA8FFFFA8FFA8A852A8FD13FFA8A87DFD0FFFA852527D
+%FD0DFFA87DA87D7DA8FD15FF527D7DFFFFFFA8FFA8FD06FF52A8A8A8FF7D
+%FF7D5252A8FD04FFA8FD04FF7D52FF7DFF7DA8FF7D527DA8FD25FFA852FF
+%A87DFD0FFF52A8FD16FFA87DFD0DFF7DA9A8FFA87D7DFFA8A8A8FD09FFA8
+%84A8FFFFA87DFFA87DA8FD26FFA852FFFF52A8FD0CFF7D52FD32FF52FD13
+%FFA87DFD25FF52FFFFFF7D52FD0AFFA87DA8FD32FF7DA8FD13FF52FD24FF
+%A852FD04FF7DA8FD08FFA827A8FD6EFF52FD05FF527DFD06FF7DA8A8FD25
+%FFA87D7D7DFD08FFA87D52A8FD39FFA852FFFFCAC9A1C97D7DA8FFFFFFA8
+%27A8FD1BFFA0C9A1FFA8A87DA8A8FFA827A8FF27FFA8FFA8A9A8FFA827A8
+%A827FD3AFF52FFFFFFBBC999FF527DFFFF7D7DFFA87DFD1AFFBCC9BBFFFF
+%7D7D52FFFFA852FF7D52FFFF7DA87DFFFF7D52FF7D7DFD39FFA852FFFFCA
+%BCC2C2FFFFA87DA87D7D52A87D7DFD18FFCF99C3A0FFFFFFA8FFA8FF7D52
+%A852A8FD07FF7D52A852A8FD39FFA952FFFFCF99C9CFCAC9C97652FF7D52
+%FF527DFD18FFC9C2C3FD09FF847DA8FD09FF7D7DA8FD3AFFA852FFFF9ABC
+%FFFF99FC8CC2FFFF27A8A827A8FD18FFBCA0FD19FFA87DA8FD16FFA8FD20
+%FFA84BFD04FFCABBBC8CC2FFFFFFA8527DA8FD11FFA8FD07FFCFFD1BFF7D
+%A8FD13FFA87DA8A87DFD1EFFA87D527DA8C3BB93C9CAC3FD16FFA8A87DFF
+%A87DFD36FFA8FD04FF7DFD1CFFA8A8FF52C993BCC9FD1AFF7D52FFFFFFA8
+%A8FD35FF7DFD04FFA8A8FD1BFF7DFFA8996F5227FD1B52272727A8FFFF7D
+%FD35FFA8FD04FF7DFD1CFFA8A8FFCFFF7DA8A8FFA8FFA8FFA8FFA8FFA8FF
+%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA85227A8FFFFFFA8FD35FF7DA8AFFF7D
+%A8FD19FFA87DFFA87DA8FFA8A8FD1CFF7DA8A8FFA87DA8FD36FFA8A884A9
+%FD19FF7D7DA852FFA8A87DA8FD1FFFFD04A8FD53FF8427FF7D52FD21FFA8
+%527DFD57FF527DFF527DFD21FF527D7DFD57FFA8527D7DFFA8FD1FFFA852
+%527DFD59FFA8FFFF7DA8FD22FFA87DFD5AFF52A8FD22FF7D7DFDFCFFFDFC
+%FFFD3FFFFF
+%%EndData
+
+endstream
endobj
98 0 obj
<</Length 65536>>stream
+��&j}�j�S���A�<�ap���}N�HZ6]�(ù�mZ��}��ǏJXv���b���KS�
@Q�N�ֆ�p!��*�:l�.��TF�ߛ����{4 us s(ݛVv�����6�3��f�*L�
�Yh[o;�
���]U�F��n�8�
:M�Uj�0wu.P��̼F�����
+w?�^'BU����:[
!?�b���=�U�9H�Y��Eb�ۋ�uu_���>Pq�t�1N��;��B� �,>%a�O9Ks�mn+\=�P�
]y�ߘ
�0LYt��3NĻ���z�Ty
���-�r�/\
��
�e���ˊ�4/ p���~l��x�����학��!�?N�]��i��r�K\ݕ��yؒ�����q����
�K^�wk5#��gY=�/z�
�n�ݾ�x�ֺ Q���"[���he6.Q�l�^��k{
0�Ԛ'��wH5:�)�Ŗ����6G��\�Oͭ��M&;�}�`th�<�iHY$�;�v�n-�m��l�����t��|q=|�@$Nk�b��;�:M�W�t~�J]Z�RX.��"<}J��A�0��S�[GH��Uq4�o�L]�[<g}��Ǡ��mۤ7�\AQ�
V��Z
+� �\dW����ˋuq�.
+��1Wv�=��?/߉W$Jf�!Vi�o��U��0i�v�G�#����
� �8�'f
+ �� �M�Y�WܨY^.2i`�·�9X��3m����y��qx,�h��L���X���������9&�if�s$5�S?=�[��/,v���x��Ò4��25��J7�
++3��/D�
+Б�J�
kƣh��4�'�H k6 A������)���f���x&�:bs����3�uv�C��;�p��i_D� g���U�p�q���~���~��ߜq������g)�R�aY_*aeWO���y�nP�V��[ċ����\
j {�D���&M�g5��g%.;zu�1�W
g��Wv�-̥(����ij���%,b���]O��4bFa4挘*G5��ƙ�������!
Zk�c4N��m��,�{8rƼ���ٸ.��]2��
��:Aa�v���ȞԻ
k^.m
rs55�t���F�ه��|7�R
K�8���*
V at I
�E8V7�IpONI?�Fk�}�&�ν�t�Wu���u�a���>���ڎ}�KA9{������
��
�z�n@�juG��X#����y�k�o��(2).��>c�Q�cX�
zX]��aU��|��|�Q��'U�p��bĜsVI*�D� 9�~���93k�~{���Z�eQ龹�0��V����Oe� �'� [...]
+;���E8x6���[�]���4�9�{ncZ,ia�
g��Ӡ�����X�JA㿟��d�����
Y�
��Y6�^�S ��T��
+��d�Z�*=��1qb�+a�����]�z��H_��ܥ�
�g�cbmv� {���E�,���o:O���
e�P"R��"�:�:�=�÷#][R�
�W��f��
+��y#�Hm�I�
��r�֞['nq8
^zs��/�N��,Yx$t
߀:_��BU?)�����H���id��gcP�e�h}�Fԥ@�{�Xݶįѫ��f����un���-m~|���K
<�D�@�$���C�^
��v�l�@]����0R7=y�T���iX.�����m���&�4<��
4C�ɅMq~�7�饓[�������V �
*��cA5��@} xa� ˾HdƮR˟mM���\�ej�s[���l�l�����'�~��
���=ý$q�{�����[W�WGl��8��~��p��D%l���\5�:�
[�D��l��B
�
]Ο-#�c�3�:��J�*��D�8|l.�>��>���� �2a�����ݩ<�1w�} ��j��,�
�Y�S$KI�&�T�m��{���+�N9ZO�
��Q�6���%���N��Y�V����n�k��)u��
��
��]g�+����j��̞nM�m��b����:��t�T?���� QY5����6�����~�IE� �<7w?��6�ʓF<
)�f�/����=j\� L��9���b��ъ;��#�Wo�U����%?�%0k�h$��QS)�Ҕjz�%u,&R��D*o���{�kom�s9�7�M��[8V�*2����~�F��؟7�"�x��T��M^���l���A�*�t����Q�u��~.��^�ٱt�x�O�Hl[�t.��/_g=O*h/�:���~��a�M&�
���
J�.Y��$i��J�z\�������hxsUj�\��͕E���P*2�ܴ�<K�[p^J��y��K��j��A�R���?���+
�˻
��(���JIm�"l?v{�5�i�W�py{�ϭ���^���
+ ܉\�n
��&��^'���/��Uۺ��~���x�P*�i���h�l��?o�6�IՃޏ�3&�y��9ǰ
��#V��T���E�z=EʽG��ֈ,g�
��+u�q��k�S�GkN�&��l�"��*���d��,�ؽX&�c.�� |b'в����Z#�xo�<�v{R��}� �86�Oя����W�i��f خ���U@�ِj�74�+�:�j��lnh����5���2��=��
�+�iJ����@�r�I2C�I[�
á�1�;��ϔ�4�/�^�q
>>�z��?�(�:e���qİ�)���5*�moP�U�K�:!(S����O7�ɝ��}�g�4n����A
+P���O����̆�~8
�ũr���OhHUy��� +OrH_*�ѽp|�X�;(�̇�����9��2eP��~�;x��'0~�N�����o�t�����+:N��Iе�!
+P11 �a�gO����6��'z�yN_tɓi���bݎX
�V
M���2�"߲��
+��"șU��Q��l0c��`}��g�A�]��~��
/
*�}�-��� MB����JD�I
Œ�}(�L��jϛ���y�ٺzM�_��M�y(Nn��r���v�^�ExO������a�t��Q
[]��q�:��
�e�EFC1��C�s
��d�O��*�L�`Et��h��W^ħl?����_U��/`�!Sf��Z�T�9mvg'��A
-羂}Z<��˧�QAv�c#{��-.Q�c��S�H��h�*�{g�+�Ie��S ���vu���ݽ�Z������o���)���vܘ{L�^H
�g=�`�EZ
r@|��o
���͜�s�A�z�;�sxw%p�_�"������x������~^v�ii�5�
����eP���7�
���$ΏL���
uٸ�ь�ŋ:>$Һb��Q���y�;-�p����-�����;�ߥ4����m�
aOwگ}ן[��Bǻ��.���ݲSt� ��&i[�R�U1����AZ�Ư
;��u���4é����Z��4"����*��fh�4�=��s����ݵ_h�Q���o�ɖ
�W��w}�|������Aj�\K������)T���
�sPb��F���ۤh��#Ǝ=>����G�D]3]$���>��y�~���f�MfY��c�WE�_�>X=���j[)�V�^�.�㠽D������M��D����+r��ފQ�ߘ�~{>V=�
����/�#"wKh�
Wv�؎c��ɉh]�W��ڮ�j�
�hM��ӖX`͟�:��e�D�歀�f�����CA�u�Ӟ^�j� ��)Dw�lo�]�w&6#��'�Cc�p|�RԷ��jnr��Ym˥`��!X�-';oyJaF�h�ddz
�I,ȭ ;�;���}8����8�(��
+��Fŷ�
>13-���
+
"@���6 �9! ���6gP��� i����et�����Y�U�.�h�d@ּ.�ܫ�X
����^���)G&�Z�I���
�sag�/g ~h��?j
J
p�D:�����O��3��_���ΟB���:������.?��
+�@�X�',A����ľ��_�f4Ș��� p/]S��
�b/���"�=KXdN�Lt�揨y����8�W!����<
u|vUo:딽l�R�=�_�
I
�u �
iZ�n�J�Z�
+�3�ʵ ���<� "t��d��~ȇ�U���/�Q
:�BG��>na�aˁ?�����Ow2>c��
�4k^������p�_vʓ[� ��h�Kt6��(h�
+�� d��| 1�6�����"~��%���
#
+�� ��}��|e\NM"���Qkſ!b�}VzR&Sq
�$�^T�V2x�:�u�4�q��
]+B���N�z1��jT^� L���+�h��jl��d�ŜC/ϨA�
��ڥҜ����?&���^�?�7+ꊗ%>����E���U�
�,��tMs�k��ժ��۽� -4H�%R�g@��T2�@J�=@�&�4�@-��"[f��y~:Ly���;� o���]���b��
YX�l/[�
����?�V��A�ё&-�6��ZV>��ek����)1�ΰ����_F��H U���n��S5���e��?�55o
���%�َW=[�562*aV=k\L�y�M�j
��op��M�lE˚��"
}�H��
)�>?Hn��
�/�po����RGPE��{F�h�7t1�g���+
?���.���
�®���ILOs��l���ڷ�ߴ�,�����(25Ⱦ�[~�{�y�n�/srk��� �~��-�Is:��e@��^iF�O^//�u��әW��iGy�]Ñ�$1����>�������jQ*n��������eWy�'��O��g:/���ʣ{�B�@P3��?�� ^�&�!�CPE�t�cM��>�,4J#ObFSG�D�]?l^&�wC���d�B~+���xiEv�|{�B�� *��!���[Q
+֒%
� ��t�䱒(�ќ8/�>�A���+��s�Iu�_ԙ���ؖC?*��@w��ٟ�F�!MWNԌ���\(�WPx�y�
��n?��7���ǀ9�'�#~����{�A"Ŝ �"����� ��ZJ�j��� �X�
F?{��f+�:�elO
+�EG�kC�&�R�][<]�35�i
���AAI
+�s��E����&���� +�B��N�-
�y�����R,p��r� �~IElT�a�/_gU-q��
��c�^���l)�o<�$V��9�X��U�|W�N�@��W������~�º&�
�/9�����dX��0��E� ��o��
��A�R��� �
��n3PҖ� �~�dD������VJQ�n�
]c$��Z9ۻ���B���͔�y
�g�EF,�~:����i��ժ�)��t�7���o��y1�f�g���e�k3�Q�~����0��*"�M-�}2
�g���ķs����
Dm���^��O�Y�?�ϥ~ւ+W0���t| �x
j�H;2>��0�U��2��~
u�4�ue>s
(�� <;�K�
+'�~��O�d8x�x�$�4�j�O������8�276)��� M��"J
+��3����ɰ8
�n�һ��}�w
Y�������T���{��.���dW�0�!�;�Ʊ���K�
$R�^�-�k�5L�}֭4�/���-
������I���ctW����{
+�`bro���x��u� ��]���|���%�YM��>���ͺћ�̠�W�K�d'��]�� x��
?��e�N�?NGO|<%|�i2N��H氾���_֥1�/�� e��U,��_+Uu��1ޭG7����E8��y�i4�MT
Qjk�������S��I�{R�{9JP
� ���m?鞶�T��E�P>z�CYn���s�Q�*Fd��3ӕ�J3}�&>3K��yId�iF��7��aQxYd��D
K4������d�� �4!�v3P���%bº}�Dr��� �b��I �;]�&?
oe�h�5�h�k�2�^67�填5�R�]h�s-�`o��<:5.
� h����\Mg�� �W�bw��:�8�ʄ<13�ub�� �>�{IT� 0/>��
A5+�@��g�`o�vc9_w��$t�4*+G˜/�!S�p�:���\��-]�LG�Պ�P��Y�ᾚ��" t��R�c��DzR�IJ����Z1Mta\� ;�*���(
����-��.]�y#9��#���(I_���!��t���Ω����^�]7M�� ���Ӥ׀�y��>���ٱ��Ɍ�ö|���8,n���#M�G l ����[
��\M_|k��SW�ѧ��T����1�'�<{-�:���/� %��!ÑO�D4�������|��K7�?�>t�P�>��I���Z�
+>z�e� ��*@t�j�Ed�+���!��#}��������q|{�1����e�r�;�n�'[�>
+��? �Z�V��uܶ���C%#ͽE&{b����h�ܹ�߷�N~�[�tX�9�
��WuP%��1���r8?������Pa��v���z�M��F;��@Zʎ�-���k
+qN��N��Ab�;���Y
5<1F�}��'�Bgߙ�V;?c�w�;����g���^��{.V�}6�
+�{�|A۩��z��ޠq��t�)���e����&y!f!�����&K�証��A�m�P�gg=a�f���.K�O涸����Ɲ�t{�ij;�_�1�z�"B�%��
����U��9�oY�۹(� ]�L[�I�z�ūX:I#I� i�
!@�c����Q}O���}���v��n�D�Ӗ
s���kKa�76�����ɏd
+�
����T�u�w�?���I����>E9��L��+g,������_
+,NK`��9
0�@�]����r��LY������w��<��lrҬ��Vd�*Q�u�%OV�]�]A��T��D�w��^Xn�f���2���!�a2���[��C��O�Td��#"kh�h�v���
o���XK��v]�-l���
+Rf�V]~�q�oxQ]�ݢ9�����Do���B�8s�6�G�Ѭ�-�� ����;�/���=��\8�g��8�y��w1���g+��lf_��2�T���⍍�Eݞ��Dgڞ��QoF�i��&��d����h=a
t2)
��Q�9D��9U��V��{��m��� ��[��
��ll6���
\����m��¢nF�̥Mez
����Q��+Q�x^��ۧS�QQ_��>�!k���aa�xɬ
�+�z4�����k}W��+`�.=Ǧ P��$(i��M!(
d$�R����k����T�� *�>��r� �am`��$H8X�&sG�P �-���!���:��4W4a� �6$�:l����z���������'(���:�D��Jm�)P�p��T���jx�n�P�|,P�QeP��CP�&qh%O��b[p�Nf�k�sj"��6���:��s2¢�-T�4�tH8~���թ
�e�?@�s@�r�"$���X{�r6�0�XTw�J���D<�
+]��
+�8�ʜb-�����A\��Pd�ft����r��>�tH���\�?\æ�����y���r��C���dF%U�&$z#
@�J
��RT2qRr$σ�g��� ����D:�����p���ٌ�I� �����o��fyxJs���s�
D)y��M|�q��9t��.p
��㔼��wH���}���Dj�.���N
���so *S� *�)$ � ���b��_D��$�V��n�
+�Ug���>�w�({I�>s������
��=]qY6mY�)џ�~
j�
GY�:�"� �ĞN�UNtr#3y껟v{��p
�����o�҈�jaR "��݃� �����z��
{|!�xٖ;uE-�w}�v���e�Хei�oU�}l��T��prG��`3��H�P����
��2J��8@��
�U/�%����>
��{�z���2G˽˃�[P����S^W����wv%ף��}��,f�x�顇�����_��t??����?'��
�R�*"���
`Z��
+�N�����=���a/�W|@ަ�X��$���sd��c��sӒU��M/���5������У֎�8c��"?5�B�q�����;t^���� ����I��w ]
��՛����g:()$���+�&F_�D}?qK
t����'�}C7 �F����c k<5����Rw����R��lo���g����O�|��4�����%��:��0���6rsP��T�0ruO���)�-?[#[�[G�
�a��E��˖�{ɑZ��y�L*/��k?���X6��N��*�oY�Ȑ|��IU��q��
?����K�3� �*
�r�b������
I>���3;+ں��[M�@�Q۸h��GTK$��Ը�>߂
d��(<��<���#�./nq��v���s+M�?9W�cG��u5��{�r|Kt��GҖ������` �B3���}�&zw�i:걛����1Xc�-�&����}U�,�s�����'A�{�����=;uqfFC1��섥x��ς�䟃�)���ojZh?��@��%)�OR��$um&~����,���}v�������k�M=w>O季��>H?� ��$>��rGüg&L(�k���o*��>vy��
�*��{s�L�� [...]
��#s�kعp�p�T��c� <�i���'�_R��뗫�(�@���AD����Ӗ}���Os�I�_x�r~G�-�
i
���{?~h(��9}
ɬ���
6.����5|���(3�\���/���\�E�yc%�? �����;�[��L�~�����;G���C3N_�߷r0��g��7$� &��z��E��E�ƚ�r�Qý�\*]������y��%[���/��������E��
�?@"UI�4 UP�_�N�݊O�e��ŕ}��ci�i�XR^x�����.eTu$���G�$�Zx�z����
v��u<ș�d��e^���Q��^~L�B��vQ�N��ϛ�d�����}�? �Ҽ�4P1�
�v�vD˩�D�3�3���r�:)Gq�xv� �>�1,>�k��.�k���V���0�ƞ�|/E��ۼ��3�(�A�����F���1�T\�<��ԭ�� ��It�^���Y�$Rw�V؏�}�]c\]u/{�WK. �x�r��'R�M�Ý,mv�ʌr
+u��f�Y���EY�BG�Cփ! ���]�&�i��ǻo��]���� �DI0�{%Pu���m
M�~���t��E�k�J=�^@�wv���~�|}?i�]�1�Vm{ͮ��y}�_h��H��_�������ħp:-��w�����&$ʜ��F=�USO���m���������H��s���^�s�B-h
+ּ���+�Hb�O��zS卼�ai��0l�<����yC^�����.�9���2ޗ��ӈ����.
Ři\u{,t��qA�l�v�)��#iK�/Cw��J����e����FPtn�âJ��+�D�(�Z��)G�\�t��d�e
+3�_vdn�x��̉�wLh�Q����Y?�uP�2O����{K��r�݂� p��H�PT_K���h��*-�&�K�U�����C=��� p�Z���sE �ɩ��x_��yv<M[�˿-�Xz=���.z(����
��S%@�
i���Q�*:z�
�_��W�:zJ�3m��+�^֢�=;B��r|j�P⺔ڽŧ��fG��$�1��e�0qE���wk�0�v�
��1���ƌC�J������oal~G�qkץ�ݮ;�p�n��(�0� ��~ao���r�m�$"�ےf;�I��������ZZ��gm���
�-������Ȝ�a������qW���١��I����<*Rw��lC����8;��b�k�C
���CO� ���
�Y���i-��N@�e�~|��h{����
��b�%��-A�
�t}Z�'Vf=�X��ϡf�eo%�C��N�]�.�����u;�����м�l\+&0F�\fx�dŧ�H�v�>���R�S��cT)��knn�l��l�
�n
+�9hr]�?�%��G�Α,sf��/��N�]{'3�w;�\J�/OM�af�69ɟ��u�.*�����m5� ��V�ٛ%���i�!��IJzY�=�_ʅm�����ƅNT���zxo�JT���lf�A��l�\
�̳]r--�zU\��N��m�K�@�K�v�.�����Z�Ƣ�
�s�|�͉��k�V�V��Cv��X|��)��r�/6�'�S�v
�k��8�Ɨ�w#L2��*oëm�H3PKy�o��_`
{��4���p�n2p�u㐜\>�_��n-�~N��֚L�l4�Fa<��ۿGr���}-�
N��k��蓝N�q|����Ė��Z����:����='�}{֍���:�ēX at 2�I
ʏ�u�4ν��H���;��1�ֿ�!dC�ځ&��������=ѳ�;�@�~��r�WawI{W�a�G
�y�qs��.�
Ku�\�-
A���:MةD��E�2*j��0�d� m���w�#��!�����u�P����ѹ.
�
?5��n����Ok^3������v������{����@�$���
8P��oP��yPV�.���@�d�
�#At@ܠ������| �F����3D7��"�P��Cc���*z��ǨN���d�6�S@��1���HoS
��/��8��0
P��P�p= �{ �,@n%��dϚ z�R��`�&_����� �rЍ�B)ͧE�1���B��
��
t9����8�
��gQPdT
+oJz�e>[�H�HF�l��E���
�a��Ʊ��Y�\#$�
�y�ʇ^��ʙ Gp�a#c
Z��ܫ�]۾�����|��ŗ��C�\����H�^�"}��f�O
|�MJ���� �I ��/�
�븜�> �*��Z�I�(�H�vq�{Уw ��٨��VB���BbO�zu:���Ly�NIqqs����
+D�r�&�{�RU��
+.���DQy���^W \hO |�� ��"��
+A
p`�㪭�"c�9G
){�a�
�(ۻ}.�*7$��z/�
+8��� y�A��ܸ���LYpVhtsJU�l?C��=@�'%O?
�g��6�q�x1��/�@e*?~^EP�(֑K52K�qh��mةS��co����o?<(����?d�U�[=��.;w��D"�����^����nie�����j�%���8���(��CR��/�� �0b W�:�5z��
���q֏�Vi��
�;
�Od�3
r�>���q8��Ӽ����k����Wu
�m�Y�ϝ
Ҫv؛��߂a���~Z��<Q�z(���J�;�Y˥�(O�gR=� �3MPi��D告u��Z�r�"��dw��u�#�r
���n���o�z?k
�#Ī���y�<Vل
����7m� yU�����ٴZ@
�� %�J���gP���_�^ث�@��W i��Qq� ���?��e/G=G��W�"eHK߾Ӭ�Áv�љ�z��QwY�8
���W
�;�������ոWeڿ=�J�~��$���+? %!H��C�ʠ��r���mPI�U|<
��ݟh��> ����j�z_�$�[����s�Ǎ��Ͳ�4`WV�Vdx ��bRz�nh�Ui��g�`� G�rs�sg��
T�~~Pc��=@IMĔ�������uҧ
��@V�mD�(��
�
+GÁC�k��Zà��D� �F�:�����RT�������9�+��}8+�� �ݓ���G�aZh�[�}���{7!�>^w���/�������
vŤ�[t �f��ݓ'��WGi
4�L�F��>�kDgxW-M��*����H����۲�ǚ!
�Fx�
���y��,�^�~M�p���p�Ջ e-��&���
+(��Dj{���[�^�ԥ^����`CGW.���q���nV��I)��F��:Ԅ�lW����4L�.O�;�
�k
+���g��#���W(V�~���"���4��m�S'�
�n��f�-~��?�xşd�R�E�
Y�ӱ�s��'a���]������n2����ʶ;�?z@���r��g�2!�B�Ve]ⷹ�ΩC%�2(�o��f���f5+i���Nja�!��آJ�
�����Y�͔ rw{�9cM�X��z4�S�Ֆ�KS�a%}��lF��_����=MDq[^
+�~��1)���g߯��mdg���%�:CWZK���O
�_3��y]�lP�4`�� (�P"�R�]r�:ZJ��q/`ס[6&3����tAg��^Ok�� ��qIk��bg(�Qs�ß㞫Ju�mp�45t#����r`\�L.�^�+�G�����u�U��kp�^����tBE��ZuR��@��M�����9H3?4����V���\G�]M�m��
+Y6Ч�WNԔ���ۛm���3�3�:TY����%3��%��|�ڟE�����
W�\��)�{$m�~������ 2h���QmywnZ�Tl�3��X����^����ĭ����wP,
~O;
��ُoΪ�b���xed���/�_2��u�+s�~���(u�����
E?��r.T*�?"M��dm%R�� *�����;j?Ѫ�ADؤ/}X+�f�e�ٝ|��ĵfoQ��1���2W�[7
�
a-���u��C�0�i�X�^lQ��:Kj��"kHoMj_��v�|���O�
�t����>{��R�o� Y�Rڛk1E��擼�W�с���*�t�p�ȶ��:s
{ױ&M/��;��]ᅪ����Y���+%@4u��;+xI4�N��&���X�����9�+7�K�(Z�?=-cY���J�q_�
�<"b9���%��X�k��˒�O�
d���z�q�/\'�;_S�GB���;x,���t�{�ħ��@N�-X�.�+�wO�
��.���3�"��_d�����Csξ�~��R�Ԗc]�GlI���(�Љ�_�;�C��g��{o�K�s��kC
)4l�����A� ���9co^�e2��Q8{��ק1��Z��pt<�
I��O� ELt.$/`�U]���ъ�}�~�it;+n
�˿WҎk�i�68�ڕW
ѥ`w
�V��@� �٘�g [...]
+= �� �Q��4J��k�7��z���6��� g��b��4����6V��B�����������X,h�C�k��~QrQ��@{����:!
�}cvAlO�
�e�'�03g+ at G�`p˧�;m������k���-I��n`|],J��7�
+H�$�Q�p��D
s��q�Ug��
FQ���{#�K�}cA{;��;�}�w�:��岯��{$4K��Z^�9����A篔���
�y����i
�ZP��
�?�i��
(\�Y"ȞU��N�S�P�b�OP9(W���
;ݛb�o���fޏ������l��l��s�a{v���Yɒ?HS��>���hA��!�){��+�'��%�r�K&�*n�*25h���v��#{��g�S�4�vxluhjG�UH��x�v�Y�1
*���j��{<ۆ�"�
�̆�ym3��3�������v�ur�UH��.[��l���O���\f�Un͘L�:��Ղ�:
�`<�g�{������:�Á�I4�
���D��o8ήOF�-�K��
+il��l�����z�i.\��J
��զ|�֊�^��p�{���a�4��@���1_���
K�#�03zs�
'�kzXY.����m�����S�l�`��vLv]7�;.��"���ﮞm
���by�.[�%Z�g�7�X'�^�{Qp��$���+?x�E�+����� t at k]���j�U����/�=�X~v^�|�!�ɉ��깁�+Hm��*:Y.c��#X`��iQw���b�&�sF��Y|�i�OJ�a�h%��'�cCLص#�
��\�
+��ۿ]���2r��dgn��a��+��U�l�QF\K3OYmK��D��[0sϧ�Q�ip������&�o���[w,��Q���|$���hdO�穓�����*ř���
��_�=�u��g��U����
���a_�ۨ�4֫�e�Da�0��%9놭��Mb�ȍ���}�{�����Z��>�c���\�^�s�v���u�+�ю_^���K����شl�������yǺ��C� �ܗ/���e4X*_�:'�%d:���XX��QQ=L�i��c�ʺG
����e�ݤ\�ΰ�mv#S?�A)��3��檹�5�Ԇo@�F���ͫ����Z#����� ��~P��9(T�-(
���O3u���"(I�6(�(W�P�*(/�a��K��`3Mp�%�$�٪�%8� ���l�4�p\ً���~
B�����I������ovR���Tc
+
���� �
$�� 끒��AY�@�k$:i��bQOp?3тA���&� �$ĕ*�TBZ� R�������u5���n�7Σ���AG�|�X��z��wH�����KJu�I�*( ��@�K3 �J�(��!(�դ�\��L� ,e������A~��NJTc��j*%�R�`\Z
g�bhJ�Z�*M�A�2���cg�����������
+v�/�"��k�����-[�T
e�5Pk�h�� �n�V
@�V#V��q��_�1�ԉ�]��ё+?��td�V����)N�i�A�ƽ��y㱳t���z�z��*>�=��(P�
��4�*+y�˟E
@��@7�
�^�A!F�T�ՑqT�f��Hf�aK<�w�?��A�͆~0�������x?rg�t�<�q����~6�3{�F����
�F�O��
Vd>I�������
��9�kV2�]n���~�i�BH�R#p��8��ԍ�_7�[�K�c�������~vs��q�WwjC�{e��xk!z�2��:7��İ����Mx
+NM
|1iڻfRG���m��i
l �;DƵ�����
<y��Cz^�@2
�&|o�
+A��α�͑^+�YM1�)�Blo�F�Rw���A���7}hl�+(�{O�u��6���?G�e��!y��u�k
@�Q*1���n��!C*�A_Fl��/[��n�
~l�����z'��j'ƪ�wwH�l�^�A0Q���e[Zl���G3u�5Wʣ�Y(+�9}���A��?��\�W���i�O�a
WE k�
�L�m���ɏ�7��fϷ[�鏭,�K�+=��8
�����yu��?�i\}&i�h�s�V�QP˯�7��2}��f�����lܨ�|����(�z��PHtn�tS�W�>ˠ���#� ,��U8z3��:�!��ȱ�8���ij��kم0W
-l��Q�x�
��?��y貶l`�Wn8�ƣ��
%��.�3�.��*�J}��q�HJs����p�d-�*�uR����2í�|�I���_g¤ �,�ߢ���+� �� ����J��0�=�|��̭�z2XV�M:Iw�v��o=Nz
��N���E5��U
����9�_����-q�qw�f����B�/�xJm˰3#k(�g��Č��L�Rt�D2���1T�����q>��
��Պ�~���-��[�}1��B5N�6{���"�|��u�+���as'���#���~KY��_����1�ʎ��E��
i���ֶs���ο��v�ό�
��O����DҤ�����O:������ܑh<�ѭ}��j:<��%O�
+K��"�=��
�A$~vⰆ:Jb����е�al�0neN[��v�p��GcUx���lT��辫��É~�X ^^_?C�t��)@.�y2�p6�ѡ�t<������ZP~8����>�婿/h�w|֭�mk�wm���A�Y߇�^Cm�v���Ť����X��Z?=��^��{��C���Ua]o���{�Յ�D�o��~`�F2����O�h��
�
�0�/
�µ)^�G{&
�ʈv�W��$��mpO˪�s�ka[rW
���3�������&
+��0-�%�қ,�J�r�;u��
+CE�|&J�4��?��J&M�O7 _�?���3RECb5�o4}��Z���z:�y���7?�����V`���x��p�(�͢^%���K��*r���m.�cC���IN���d�Ț���h
���� Y����!�?� ���U�u����DT����3���5�i��h�t(N��[S8��{�������R-��r�ӫ�X� wӍ����]�'f9.#���*�G�/:���'_g�/A
a*��=�b�' Z�9cY�����]؋��a*���"�N'W_7X(�]Ċc���8k*=���\����~j�
+�Q�
�)�+Z���ٖ3�n$�o��8;�$�C�;�������1{)&f���ok*�{n�b�' :V ���.>(�fE���v|b��h��3]|�E�(9�v�f?ع[�1q�Ѝ��v����C
�P�r
��ϭ(Y��w
K�=_��6tò��
=x�bx���lʉ{���:�9>��~~���������� �y&�N�0ԁu8k���+�����t@���c'�3�̋ږ��5l�F�m�h��[��QH��v��
b��
�줿����g�
����&��>ol��c @��ܜ_S�����3 p��$c)��))ן-�n{y���K�lf6;%�]l����Z[��[��\��˷��:w���z$!�[F���I��ƅ6w��U.��.^Ә�o\�
�G�mrk2�?b�̓`���o ��X$þ���o�
�5�6�Cq4��Eo�r2��7�����֦��q:=�u�eN��V�dV��rŇp��`�l�0ϯ�%N$�-Vi��>���Wl���K:�s\
�����
���+�3������`Z�؟����(�\��n�c��Э��C��y�'��l^0(�.T(�-��'���x�h3w�Ԫf�7
�}���$HX�ɰ���%=�4eʫI>E>��5�˓Cz�D��� 8R�'
+:��Ȝ'�BϽ�������[�[]U-��7U��Qe���2��.��Q�ʠe���{���d�
0�LYO��
+=�z��U��N���*o�ê,n����U���S�'R��D���%(�K�
���wvJgѵvT�gpM���K�Q�ݽ/���W�wWe���~?]��qEec�S6/kGW^�+��s���,Nګʅ�-�wcC>���/��Y�|t
�e]�
R�CR�O ���28YF��
��
ZI��my�vԸ�nI�7O����j��i�#������s6��7
��ni/>��Ӽ�E��ju#�bb�luRRo���[���
��[�ˏڢ���
�;�A�O�B�ɟb��t��A�!�ŶY�
M։4. #���yt�{�g2��!��9fz>��n�����,'��k/tt\��ߐ�>@v�w������c\��cŜ92��9�uy�TN�"=s�k��F����ò����4���қ1є�����
�2��63R�:��oti��RU�W\5�Y�j��`���2)����X��"�����͡w�3�/�����t)��i�s����>39���丄k�7R�ʮ���ԭ��7�{�h(��U����.F�#C�%{vȀ|/���#z�"�������L�3h0á�bz�̴X����[���O3S��
��y=jNc$|[�Q��+���ކQ�
�J�nm
W�q��0�Y��l/^U`�{��8�
U��tw)�*���<s�3��A�*B� S�Bc���G9[
��rs���P!�#"���%�z�ݫ��\��A�
���g�[�?��}䆤�QI�����]��-=d��U�3�Y�
d�������s�>,�ţƏNVGb���J�Dn���(]�9o���
+�W�]�>��d`�v��ة��Z;��^����-q
�[m��6���5#��J��� 3o0����8�Y=:g�r�
Ϳ9�>-����~oԇ]����5���
�#K�u�x��Ӓ�v�HJ�a,�V;;�6{H�j�dsW�
�����L��j�T]���i�B���J�o��QH��qv�'���T�����葡��oח���"���An�����A��4[�v=���Ȍj�xwnֿ�S�~mVeU�I�[��z~R
+L0+5�Y�`]PV7.�_2��=
|�|9��@Gl�ˤ9P?�o Pn���
��6s E(
��w��� �� D?5��� O ��
P�
�� �����
m ��i�N�:\� �[L���������W����sو�/2�7 4-��L����
�#b��D
_ (@�w
���"Q H�O��?n ]�� ��B��P��Xg�:�
� ����҇8o��7�Ҿy�;��
5�
>
(��A.E�O$ҕQ�2��� �J��
��7@��<@g�@��i�][��= �?P�~ ��N0�
�-�%q�ą�G���]F�ǫ��A��58�89v��T�:�z�Kx�i��� ����&�O��
o����P�^�9NX�X��֎O �
� t$^jn9.
��r�-�.O*��
+O���b�o/��;Q���>@�v��0^��c�"�#ۋ��u�s@v'�s�
X@�����
�
�Z�
+�VVb
�U`�o�Ol�k+~��c�u��v�ZѝMoQ��ɨ��m�Pl��^{�7{�
�}d� 5�Un��[�-�:
�$�*3�O$}��t�$�~K���[�e�7�m���t
�xf
�:��ű��%�+lp~�W�+� #,S
+��L�窣�挗���Q�|��J�u[
�� W�ד�(_+�j� ���/�,�v��&���O N� n�� a�4iR���< ��Q��wM�k���,��?���]��a%�'��dfw^|��y�>=Ή;2a?�����+����\��\Rk?u�f����`�?
+�9?�_3"�M�`�9��e�?��Cc@
�1��@�}��&�31�C�XҞ�@����ֽ�-_���k��Y���Jd�.��F���A>)��u�7٫oV������X��)�\z]���u�� r�E��'��ܤ�~4� ��`�|vy�<��c�Z�Ft!���xLHU�c��I� �q�rek��Ұ�I͈I+���1S������g���e��>v^
Dn�3�확���[���� 9Ϟ��/��ǿ <�Q��D�gK����ɼ����~�Z����cOƷU��^��G?����h<���vQ|�
�y�Z��Ʀ�R�&5������Wy����/c�X�.����~5n��f��q
�
�2��̟ �RM���� kL��5'>ȷ��
E��hRzؓO���k}uX�4���m��
�
+J�ᖗس��m�k�y���Ӂ�C��~Vv�[�-�=�Y���� ���A���&��������7V��%��p�M���~��
??����x�U��?�:k����ַ[�ݾ�?^�P�#��O3���q/V�l��1-g03at�m���v��#�Y�P��¼_0
+�5
+��
I5?%��]�R�����sj"�c�~5��1�矀)�S
�EƉ=��7�@~
+;1#�N��
���Y�^��҇L��K[L7S��84�#�@G�N����IV���P�5.4�c7*� �3���s�W�ȷ�#(ԩw�>��@�
O־�h����Q��.5ܪ�������Y��7��}�u��+��Q̷1}=iT����i��x��)]T������"V�FUB�'@���S�x� ����B>ӷ��FΘ~��[��y+�N�>�
��-粽[e'uա
�>e��������ޒ��{���]_?��^�V��Jjkti)�
�*�Z��5���A)����[���
+��
����s ã%��l"��v|sEp}8��wm�������W.�}s(�>1�ٙkai�"{��/��Q�]��G���*��Y\�g�t�P
�PچGZ)��hߜ�hư��rE)�qi
�?���P"'�[��頀��K`v�;�^oϽc;�~80��߫���1{h����~�m�3�3J����G}���¨��k��LT��d.;U)g��
٬��h���n��ஜ��n���o�o �OD��4��(��!�.
ۋ�=g�I͢�kag����tq��]��
Z��(/�v{�x����T� �U/�3��[��YH��ْ�����w�ݗʦ�T��ٵ2�Ru�o(��7�����T�������:�'����ͯ���v���f{���:��X�͙8���ٚ�ka�R�E$*�K���a�I����;�
+
}�y�Pؔ�S���{�W����ۉkH�wVq��18�VM�O$�S/��uW �fpϑ9������=��8M��o�l���c�[\I�n��!����/o�.M��#�p������/
�n��5����(l�vJցy픟(�
�y�9�Ӑ�O� j��ɰ�&�����zG�;4�c�j�[p�m�v��$���q���:?�v��Q��y"�.
+#M���x5c
+���)��_{�1La�sU�(���ʬ��|�
n�{�Y
Q�TqF��?�LOD�'!=
��f�ܥ%b̓ם��� Rs�S5�Q}m0�������9X��Q]
��HB1�|�*l�<��|�r9g/�M"F�
r�okTZ窋4�IO7{�FZC�ڟ�=�,���(��5�ȟ �|Ӧ��
+�=�
��{9�*���T,�k�
&0��E�t���2����Sž@����zCY�a�T��Y��#�������g̨@��E�����^Z+jE+_5*C8ENJ��j��� ���A�A���[,�¹[�s
Y6.�u:��24EQ��� af�%.����&�5Ɯ\�(V�.�a��j�'*��saP�y����*7��%�~��ZU2�ۡ.�^�[^�*�' ��G(���Q�-�
%)�K��ȗ�~�/i���v�Y7@
�3io8���Ǫ��"�Za�B�ǘe0_;���ݒ�R>�:�s�>.��%[֗[��kcU�����o�\�[%\�"
+/B�����D��2y�
��wģ��ފ%��4J�fp,*�{�y�E�<��.m4V��6C2/�,d={_�4�=
y������������pɶ��j�Y�7c��0�5ό��<�
g�%�)r�A����?���~�w�Haߜ�E˩%��AI��'yq��=�
yq���=I���Zמ��j6�+�����e�^���)�
]��4�&ο(��z���^<CzFq������!֦
Q�M��3]th�(}�����+.
�y{댋[�TJ�1P�m�(%�ʷ>��z�
�G���c���(��^uyZC)���!;3pa������
J��+܄i~
�
+4N��!���*_
�Eg��T�/�
W��}\]4����uqGk�
+&�l����X�����z.��z�j�
.���[d\��Ùkz�`�U��i��� m�^�ky��o�0��Ց�'nu�X�
Ci�
v��x�_.��4����G���U[�p
l�p�_Hc��~�I2�3�ŭ$O�0���+ٵ&���B���-�a~4���Ez̙]y$\�P���^\__Ffo�L���g�G�{��uT�U���7�Q�j�W����:L���T�v*�Z�
l��v`��?a9h�hT���2����]�2P����˛Z��lry��
�{$�m"6��9--�Yb{.��>����v�6������%�kS��g#� �
+e�>�4K5�_vj��1M��͚=���殆D���ؖ�|�g�kk�c��JҐl�2��È��1�wߙo�=��:�Pk��Ejr�Db�o*�/*���/���!�`U%�S��`S>�T�f�F��w�6
�
+
+�
����
U�u���j~J�]��b��X
�VU=��L�
�g-�?
PI{µ�wr~3ڞ/
u�z�$�5$��U�9�U��-W�Zj�B�(���S�#���
+n��H��j�>B��#���s�Q���ԅlt�jd��"�R��
�]�s�c 1�@��L�K���~�vZ5 O�# O
4��%�s`�}I�G .Y 徭d=���
Y �*K�;�1懇w�r�����5�
+\��)#�8��������:�qa@�d�Hٓ <�= S��b� �Z5 ||O |2 �:�������[?H)�<�f�z3A<Hy���,�߃�.����2��;
��[�C���BA
�V������\}����Q� �J�`ī �+>���7@�u
�} ��
C��
+5�|�~�$ ��m3����N����_��7�sʋ)iN��4?[Z���Tz��ٽ�ΏxS<�����e�[�
U�= �
+������
�����@�O 7� @>���
�sL����??3o�E�w�߫����b���U
=V�
�����yp|���� 6���
��������O$Rr���k@�| ��$-��O7�V�v%��:}�2G*&?��>�λt��_l�Ig���Ѧ�Q#|�ç��mP
>_�z�Ç�0�qb���mG7����� �Ѓ�Q�/W�M�C��r�g+�'��� ��� 1nv ]���4�VM@�Ǜ�|��N�6��
���;4�?� �>߄Ƴ_|
%���v��}�
�w�QM=��!�Aa0�^����R���� �NRx9�]�?�1{�
Ik�դ5��БK ��{ +
C�-�(��y�'x�5{�0��C����A9��>t�65�����v�
�*�Ճ�s%�k,��\WM�,T'��.������~����0-�Go�^�ۮ���
w=$sOa���~uP�� ��I/��^?W��+=���{����#�^�wD�+�_�ܟ����ޖp����,X
+r��b��b�8�C����to��
^��jk?�����_�W�}�
Rx�@�{"�f�Oj�"��������|�s�
G��6��>��;Z��?���j�ȟE�����u��9�~pzd|@
�![�p�븫���f5��x_�ygW�ͳ#棻�zF�
Y���L�C
+�7 ��$���6@��
+`��%"NN �e��П'�ա�R��zY���GG��X������E�Ȥ�\JROI
K�}�n|w<�Ew�ҽ�x֟���'�݃T���O�"꽛���n����X$�i�O�_ PX���KD5
+`�� ����
{G,��g�ue�q�^3yߊ.��T'��
R�K�iv�
+��\��Bഝ��V�5�{�\��#�`ez��i� 5?�v�4�-�3��W}�
��X�$x���"Q�Z
̭�<�ϕF�s<����\;?&}�
�������ȟY�[5�U������t�����3�X ,,k���
�L�
��yf��D���<4�z7M�K�`k�i��]d��]l)������
^�&}�����^s�o~��_��!��P#��to�ɤ�r�_���ն�����XgD[�
.�0
���>���|6
+%����3����yd)��� �R7���6q�6�Z���r����)��?!�=� �Ƽ��h;��
X�;�����9��zP��q���#��>��]˗1[Ǧ
k� sJF��b�sƪ����b��zyG%��!o�E��l0%���JgUZ��Y��>����
�Vz�d����8��d,щ�������R��]�3��E����m6e��lz�6�y��e Y�"^1=�mqZ����+��F�؆�
++h��tQ:��#k�$�gZ�V��4�?G��s����C��4�.)ο �&�
�^Y�I�״���6�i�
��+�Q�p�{�B��w`��l�&Z9������9���Ts�S[���tמ%k�Η��)�:h�pE��X�KOQXtIO�;Ż�?�n"��."2��?��T�� ��T�$:��A~U�
p5?:�oB͟ƃ�>����L˪n��,���<����L54�,
T�y�e��XV���i�H���
x��B�
+
s_��0<ج�*ϟ3�~S$����}����?���d�K����z��u���-p�u���Qu'A��=�
4s�Y�ˮ��D����)
+��%U)�t��䣉."��N �ͤ.��Xn��3ء�W����!/�<�
h��W�ѝg��%��7 �l%�r��L=���{Җ���
��nuN�>�,��ۥ\q�29zhw��s��d�%Ee�
y��F�8���1��\S7G<koJc8�K�^
/��ڬ�|Vl�&Y��� �w�1y\�Fb���_�� ��� ۟� _�VWV�����J��"[։
n�G�7�����4�r
�(Z)S���Ր&���p!,'efC�?϶��;wc�>�\
l��mՙ�wX����ր�N�Z�).̋sϿ�-�p8F��et�?,
"����tc���31
��7���ߪݾsR��[�
��pS�`�ۜ&�dSֲ_����:�Y�{&Yc�k����e�F['yFOfM���W�F��%�
R�5��7 t�*�����T<�:�w��K�yƨ�ؚ�����l�ȃ���Pt�l��*��-�xn�
q��J��bs����'�w�l���Ӽ����Da�j�:,
*�yG�Z [...]
+�P����-Sù����=�3�y?]=�^�N�D�����f֧�?پW����<��h�d��r
z��վ�������U:ӝW���q�;��
2��$�םK�RT%�$z�JaW8�f�N$���oG���D���p����y�\O��=/hKj���Ց���e�y��~��<����X<�y��>dC�g<��;��y�+ މ��E��5�
+[ӌ��U@�b�"?65�^���vƾŬ��ɎٲF��+u
+�pt�h춭R���[���ty�5y�d�l����\��5@��$����!����7�{�e�����nh��u~� q��6l�
�&S ��gהּ�k1�
�7[��
$���p@����(����"�?V�p�]'!�lT�:)���B���<�n�9Q���g���g㉖�AH�;u
H�:ޝ:K�4u��?u���7������r��2���q�-Y�l��m���j5n\���3�' RG�ⵯ�
��Ep#���>�ދ�l���t�ݯ���'���0)h0>�Rk|j���)��c�;��u��cz���q;�� k�8"F_"���������4��I�`
gvC�͐�Q���|��Da�Wc{��t��9)n�a2��)~��ʫ�;y4j`z�x���(��a{҇�R�QpV�ȫ� e�ۥ����7 {��ѵ-�-LU�eD\>k�;k=�G��ƛM,x?��5d̸j{tB��s]��x�*A�pԏCz<�.Y�@��,����49�7���1e��)�\��?��#v��nv����
N������4�=Ǥy�e�(��h�>��bH���ŶF��Mכ���p����#|3�O�����~Q�+X�3�z��<ns�ƣ�h��V�a��R����=O4⭸n�T�j%�� ��B��� &�
�O�_0���
��dx��� �hwA����9�
ރ�>ׇ>r���ؕ�ܶ�|W�DB�4#K#�Kw
+αu�ℚ�.�r_o�dK�W��p*��}X�f�P��u� N�R�� n��� ����.
\�6CxS�������-^I�4�O���1l�
�����>"�v��_��85�9���
O�6�\���_�_���&�J��l�a�
��B���js�����O2lw(�$���2N5/��6���oP>Xʯ`r�[6��GD"<*r��l���tC��f=wܤ�z��z�jw�r�S�J�\�Xl#�%�
���<��0�Uy����*�GP#�.]�\F'X�h��`�!:����$���� Ys ��(ȶ�"Ȋ�:��� ȑrF�N�_An�0��6ș��+��NJ w�� �L�G���'�B�C(�Q�(�O at -�YO���P�_���B���%��!r�%�7��Y�@&:c���4�*7��'
��_"�Pr�jtPm�M�T��ps
B@DMM@; "�' -�g�@E����
Ĩ�/���ȿJ����"&��F��p�i�a�*%N��ʿ!�ҁAv��)�e��V1V RzI�� Ю
&�a ]����':x�'�
+j���6��@����E�|Igb�``o�t���J�����2bm�7.�>�<o>;4a$�MI{�{H�/$���dsn"��� �* B�} �3
����1���c�
`:�'X�\' �;L���r����^�-�]8^ί����u��Z6�r�D��nT"��PX7�O���M"���=��Au{�>2����m�:��d�~��x7rW;��$����ي��6���+@�� �A �S7�;�ɻHf���X����#�܅��������'xF4?��~�kR�1��V����ߐ�K
���QW�ע��.La�\*���@V���� M�*���@j�����p�[��dcU|߫f��0|��t�;l�O�S9��?��`��G�߹��������m�;�n��� ��py-1C�|kv������>o%߀�'�)�_H��)�,&j�,� �v� �$@�9�e��~�d0Ⱦ�7��O
+�>�~�������Z�v�@��������z�W�k9�=/�DK������M<��:�����g^� cS͛�Z�������[@\�7$�9� D
+ 6�@v<�IK��n���ya
vFJ�14��m_���0G�5,��˰��n,�:��qԊ���G�σ]࿇��R���|�=4g�������n�;.���fW;�s�I���@n�HD}��
+Vo}���5@�+
`�.���
���y7_��[���q����V�h=�lw���Ǿ�-&s�=�{������R�}�B;n�U���N�p�2��A������m�d
V/��/�o��l�r2��X1i���f�^��5���Zq�v��A��g�V} �;8���}����p�k�}e+3;>�IΣ'N�غv4��
�ݕ���{��50쁹
?���
��SU��H�1h�p��7$
�Œ�/ Z"F �Y��{���ۇ��ӘM at u��)���I�y�$v)���Ju����Ӟ~Ƕ��K+~F�E���
�
瑣�;�^�YYD����2��t���-�T3��8��*I;��o ���'�&F}Қu�'5��X��{������_�\�=;�?wM4�9��_�{�O2�E<��i��� -Hz;3g��A�a�����w���Z�W;�zU����*/"���[]m���BR�A�
�\����-��?�ɸ�s荩�T�
3�j�-������;'�r����5� ԜЍ�v�@;�gf�F>�NW_�vIfy��el�6+�
���Ʊ�
�J�i��WOae�V�d�?M0_�)�� `��Q� Õ�Oz�+�r������Rs�8`�8=Y�go1��UIJ������k�o�rơv,�����3����f��B�R�z�H��P:��/��+��[F%����̩�H��W�lѤl���@Z���|4�U �pQ��哨X�K�C�c��`�i�
w����������{?x�����# Ӹ�$���e��6�dB���B~
^�K
M2������w�z��w�ma�y���E�#��ڑ�B�
v߉Q1z�
��4�
+�"q��r���ƙ�|���u�5�XY��l>�3V1�+��[����*��"�XC~�@����4����Uߒ8�b;a߮���L]g7����)��rS���f�ͪ�)�� �$U�� v=���,����������
�xkX�c&Mٺ��`P%��+��I��ۑ��
+Y�k}��@�֤��Еr%{,N�ە� ���l��8��Ӷ��+9��]�&�]w7���S8qx�i��O�_H�{,�Q��
A)���l��s^{nMD�ຩ��������Z�����Dɒ!���W����4�n�T+q�Z7�� \X���y��ko�qAA�9���
�Xᐝ'PVx�u�1�)�� �Y!���F�@�4�rC
٤A���^�/'"2+�h
��$�*���gs�*��ӕq�ə�KP]�E��*
+�|��P�V�?+�_-���u��S��x9�ag�&^`��i�������(cTM!��d�w�d,͚��Ojg��3��{TڡM@�mK:WDgs�����ӓ^�:�%� U[�h�"��H�Ƌ����⛒P��U�r�y7a�cL1/�+1=��[���sM�1N�.7�M�̯3գ�&���B�A�{���ɰ�џ�_@���c��Z���<M�
��r�U�����'mx �
��|O��9nh���Y��r�3�� �
�6�:��L>/��"hk
Y4���n� �<�R�2�<˪�n�4���� ЕWx�L�u�]?�Q�
��=����)ݞƑ)_�>=�=(K�@��ҕV���9�M����+w�bo6��
�
��<7�۲ۧm\��0�r�|�^��
+�dB.O��`y�CfU��jIY-mK�
��w���G��&����N�h��9f=����sp�,��ծ�ݬ�Tx.�D�1�[l��ٮ}2��]'F;�S���٥�8Y�Ts�<}mYi#G�S�_�>hu�z�J�
O� 62y
�?HC��~��џ��x�XSo��@/�>�O�[>\�=8��Z��^g�8��e�e��Bc2]�]�u;�g���ܷ���=�hfUj�%�*��%�h�BT��<��\1G�"~��Bϥyt��yd��o��![:����5m�h�����J���I(�
�uS�P{V��
3���t�=z�PH���j)U����=�ʃ�mɚӘ�CB6�Ly!
����3g��,�gơ�̆��5˶�t��e��j�y��,s����p÷��S؉S&�`8��1Vb�
��~��u2�Kϕɖ*
J`Uɩ�%�B�R�~oSdk�H�(�Z
��;����k��w�m������S5������8�N��1��Cm�/���� ��6ワr��4���?
�[Y��=�`[�B526�4�OO~�~��6��-�!l,���;':���t
��X���ӣ�3�'
R5'd@��<���G"?��l�N|k�V�٨zkIÛ���ѩ4ܔ&����C�ud�
V]��v���0�}���ϯ<v
�
+to?I���a�6��<69u�ut�����2�
�ܴ:lF���!ϗ"ѭ�������ٸ�
$���vf�� ?��(�~n��ܪ�
���Z겟+zL�>�b��`����qb?�nC�c��e�E������"����}�}(�Ms�{�u��u�ŸK�ڪ�'C�s,`z�
+'n�ҥ/m���ꭉ�n��imF
��,>�V���6�W�h>y�n>�7��M6�f�s��S{�!#���&�
U����$�@$B8�&?�b���tN0�i_�z�]3�FK(}�͐C&�η�lh�:S�\FR}T[�[5{�y5�x�Wl%Q��V��xsV��QY=�G�h��JQɍ�v�MrZ���$,_��N
'j����^�`L�"�}��!�J���[��ylv_��A`y�>.��5�)U��mT| �+�7�+��ď��(�_t!�Q1_�&��G����A:<��{�I�q�?�$0���ͨ��&tX(Ɋ�#��]���x��l��Ѥ��LĚC�j��ϭJ�5�˕�0�,.�ɣ�F
�B��}��=��~�b���d���C!~9k��55��<���1���]��j�����RU�@��!s� E�
�A� ATT$���9g��c��hƲ����f�
�M����I����-B���{���pC��8��L��q�
+�FBj�=�� ��}}X�7��"��A�%�>0%�k3���g�ΕaA�0�rܩ/ �AA�ens3E|�!���k)��28�S8<%��0�r�0<?ڃ8&�,��"���Q�P�" ؝�
��pzn
+�~���M)
��l# ��R`6���\�kF�J���$Q�Zh���oh�9��|������( �
~kB6���&3��z�x "@�^��G��{�%�rK���ݣ
J�)~1�a�v
+=�r��~��f#
�vO�\��@�r�Q�KW�
/;n�f�)����2]x�Gg�M��/>�m��8�q���/���x�A�ɰ9Pȥ�Q.1'؛�"pf08ok�'�/�����"�S�y��\�x��l���RX�䮁��߃�������~�5=4���D��t�r�������Ż��~o�!jn���4����8���?S�A�9��E���9�6S��/�
����Iq
"��"��mP�nN�S��.�߀����ߛ�>u�����r��w�����{v/^J+>�����Ѫ��A\*�u:�
��!=�P��sj��A<�n�G�U��7��眒�ܣ�B�$�R��MM�z�>�:��}yu�۟����]7�xw��(��ƚ_�xR��b�6^�
5r��y��ݤ���D��gw��߃�����/��FQ��L"�<�=$�g;è���Qa�M{��G�
+2���}�>��kR�rH�
���L��w�r�7��O��բ_��'8W�ru6
�x��?�װrwI���3����ʂD}m�9be��!l\��ܸ8���c~�"p�K���\IC<M�»���
���P�쵢�����z=��80�4
+o�Vj��v�9ێ?}Z4�|ܵ���.�Nwb�`l��7/����𲄋
���
�nLt�i/�j��\t��6�����鏬��;?�5�P��4T7�����,*���/-
XVE�z}�� ݞ��w�g�5��cP(܉0����s�<�#k�y�-@)d5�\ʨ�m����,e�8�L}�xy�>�j�Ἧ�xV{��\x�����\���,�CN�QZ��$*��Vb5��E����F��yd��}Į{~�LRy<ĥe�z��%>s��|��q�W�Fy���;�>��`k~m"ݵv2Ƙ�١�J�gU���¼ƀ�/ْFʔ�g�5�rn,�
�KK�
+�i�̥�*�0*�N����DP�!�'w�|`�r���߽+cŇ�d�ʛlέQ����W���,�Z������н|����.�\��UTB��P��fݒsO*�V��!^��XXD0��R�C{8c&����T�o'�:qT�1qTĔnTZ i�Ix�~[��]�
�G�/-I
+QcC���x�h���T��6q%\�%���,�n_a7�i���8-
ō�c�
+�]
��B}:��QI
�[���w]���ւ������0*&�['*Y�Y`�������i����t��Qg�k˙*�� �IwqUf��S���/��<'�yYܶ�-��ڍ�Cm=?������4�w��'j�'ߵ�<G�{���A��XOt�,��/3���<��B�Qi�v�r�0��{m�Vz�W����W��
��:<�GE�}VV�@6J��y[4��G���H8�q�� �ڹ��{<q&|oVK��Lc�`~f��f��Y`F�1�Uff(�e��d�1�Ȁ�%K�f��zQqR�'�
@�1�s`{
�m-J�Wo�Nu���SE��[9gH��RD��Ut�����{���|�ɖ9�B�X��f����˂�����I_�#�^hb@�7��UnsJ�M���2��"*T�ߨȍ���ʷ�sE�?�[ݵ�;�M�2����f��D��@.���h�FiO?�����Q������˵ˍ�~��t7�D�z�O�
�c�^�W[J�(�Z��+i��.���d��&"���!k�<� [...]
+h�
��s�*o�7�
u�WF�?����tAdj�
+����.��*@سϒh2!���w��s�rP�Կ<''
+�!'���Xd��
+:���h�� w:~L�h<��
i]��7{<N.9O�ǵsw�8��GذAaL2�8�.*���7��b�T���
%@�ֱѪ�}
_r����N�$<c��c�BRD�
c��({H6ݮ��E���X|DQIr���n�)���Ϳk}zm)R����Mz��ϧ�y�b���%#O�#J(MU4�xP�ho����I�ǐG�� ���|�4'�� G ���
6t��uL�:x�n���
�1���($.��ETD
+���T�O��xւC��#��/�1�bqZ��|:�
+Խ�,&ތF��
��Zi��٨
4��j�8��|N�[=>
��m-TX���o��6\e�>�fh
��
�Bw�b.ꪀ
T���/��}^�H6W|t���,CG�*�]�̂)
���V�@+����#�:e� y��<�H��,N��nA�4�C��I�
+�
Dح�?8�quu(�
b�UUm_]C�Ί�
+I��wv��o���H��|�]�]�[�V�zzE|^m����ڣ��F��@k+�C�r@�l�f��;,���؟��JbA�ʆW��B���f=�\��
��
8���7D��O;���]�$��Ӿ�mOp�ٞ8�b��چ��_u��9kuZyl�����ȝ�]�B��.�����ֻ�3 ����g`�M���� �=��r�c�-�������t��I��k�Jk��~��o�d������U���Z��z�^-��r���E��\������Z��RǴ�ȥA�!t�ˍ��J
��
2�tb�{�R<�
�:381>l�h�Hmr ���
�i;�txl�
�m�6n�X_sմ����Z
�^g����*�o �.K��٬�l;�û �CK�
�}�^���/�8�=���1�H��O��P8��ݞ��Vxv�j�ص��h���mO�w�Ȗ�0����Ѫ��[�$Df.YZ)#��Z���R�a�r��ߗ�֖%l3^�v�,Mp�x�t*4j���ҏw��0�����+�X��m�
4L��ܾq���~7����?�<�"�S$���ե�GW�ώYdE^^�������&�}Wl�6�gwO
� Ե��
,͟;t [...]
+y���m�e��s�ܯ�D_:λ�'5��5)��-�ٰ����.�'�]h��n�Q�s�F��ԝ
+��x*��я,��;?��R�^f��+�(����� �E�t�@
�Z�u�
+���qQ�^[ȯ/w����,^<��i%�n�&�!�k�-�=^���-�##Y ��u5G�c�;�Glyh������a�]�Ƿ�
��oz����H}�P'��W.O���i3���^[M���
U��e�7%�^�iQ��;��WcM9Ã�EmN�T]���?h/��u�?oݞ'�
���{�q�
+�u�ΐ���g�#����Jg!=����P:��������运�+���:
�F
�01h��V.' ���F�t������٠�(f5��7�D7����+>;���;�F�k��B�e$�V������n�xN�]�#��:�h_�}_�Ծ�Y�� \�L�6���jp�������H���
�����Ɉ���{�*[k��:���|w�i��V��u5�&�Ig�Z�ڛ�����Wj��e���}��A�n}�ꇵ�ݤ��
+*Wdn�U���
+*Z2�)`k��;���'�O���U�ϓ��i�K��?���7��>����~����Zh���5�T�S)��6�zcR��֫�l
'P��8ۚ�����A%+�C��*E
%��J�ü�䝫���e专f���ߴ��� ��dX
f㢜B=�٤�O��`�m- �\�9V at M[��[4f=t*bMd��
f]��`iL�F�v�
+y/���lI���6E�
�isa���47i� `��)�u���r�Rb�s�������Ϭ�Qu�B�R��#��/��&݆��0��6��@
a�"�0�:Q�̷�0���a2l¤Βa~�0�Oo)�&��樒rj���h
&�^��C���t��aR/)�g(f\.Nɿ�N�3oj��3r˫��揯
�c�
+���&[:
q+���5#��t~_wg)�C����
��&2�~��S��GnL�'�n?L�
(AR�cʇ
+�%�2]C�>������^�ҾZ��.��y�:O��8���^k�!-��=L!�2t�0i�Z�x
)�*�e<�;1�iy D铂$ ܪ�����L��27����a
h���֝
+JN"��~��W����p���v��ǽ��Ϩ���G
�y�뿧C�����
+�����" �Q�(G�[Q�2�(w�죜B2Q�y]�
�{��A�t�|p�ݪA�y�}sU�5�:������b��ÿ�H�fB~;���Ԭ��|
xC���h��\xn䬦��y5�g����iAZNp`�WE�X��͵�B��c�<4��H.���"NP!��_g�9�uN�:D�i����wq��N7�3���;�K�[XL�W�!�K>��JW��vZ-?�v�v^���V��
+X^z,�<mZ���C�<'�ջi�&�����[�l�aq�1����B
+�h��a���N����n���/�N[cYx)�r��j}g]�O���\>w���qcy�����4
��zV ,�x]�
�Zv�B��ֵG���Kf��H
����"$؉�SF������
f�T^췿8
+�\j�\�s����i�����A�����6Ui�o_zܽ�|hd�כ���Ɣ�g6}����X�ww}����
{W4�
:��{m�8J5�nk_��
���(���g��ق��v��o���n�|t�
ܯ�Ϫ��] g3;�(��u˰�A�a&H�k�� 2��"oY���+��Wtyx��ֿŽ���vz�x���Z���(\T8m��mܐ�c�d�Y�I����!=�4T
�����(�����g�-]o�[��
�x��pk<�f}�5T}+뺋�[�x\����?j���WA%|�����΅N����ڮ�����#�e��K�P�<6D
�bI�7c T����Q�a?ɔ�
�Q�i�Z~���轘Ի�����&
�i�g��*.�=���LWQ�
��0|���q�S�p;�cp^��Ȳ!�Jd_Z�ęT��Y�V��3^,�U[�Qm�|�����#�62��I�U�����-�3�Wڢ��ɝ��b:��מ�B �M�뒱^N�k��(/�3�_XpI*��Q����"�أ)]��K*�/n�
��gE��m���&g{�ޜ�7��iυ�8B�Q�������eM�
�*�mk��u�
+�����X��Q�
�fƮmh��6�gS�GωrF��
�ި�:�xu
+�X镯�e�a����9��Q�??��bћ:�
�
��Kn 5q��Ov�l���z*1�w��je4h�R���y��'�V�:�T+���籁�h��Vn4Ү6����*��Kju����
t&��e��X�����4��i>9�n{�@}',W
+���lu���.eë��ɉ4�V��:,S�6���6U�N�����⒆�(�/1�B��N�U��)}�(��R��}+��%u[lg5�T�B�2X�ۍ1�'��>��
�帽̈́�ՋH<��/W�c�I��gL!���*�3���7Y�.�Z
�˜�hddU���(O?��rc�~K�Mn�i(�������.�z���
+�աZ??�Έ'�s���ag'j�c�REa�9�=�I+�֓ί�
�m�*͐�U�q+Xq�,���6����c���c^�����\���(oŏ_����蜐��r[_��U�_�e��2ŭ5Ώ5V�Ɂ0�iw�����W:� �E�˪%P��Q��n����&�V�f�B4��
~�`K�myٔ��\��S̥��^t2�X�G��!=�:�Η6.>��7�
�9�h�
+��ң%��hB��<�o��d�5�87�0s�@�%��)�T��q�'d��!
�x���!x�s+�H�o��� �1<�c#�����N� ��S���fF�G6���vҋ����Qg9w+)>t� 5/�\�e�+Sb5�D��/n�� ρ}i��t�.�2�ې�`�vz�Mz(�'���z��#�<�;8�؈�o�i�R�����G)��R�[K��͌�~璏-���<�wS���k���
Z�Ls� �u~�
�ck�
\L_�����z����
+ D�R:���J��|�|��m��=ׇ.zF&�16vi8��䘻W�
&�
�_u6�a��)�NF3��߹�+�NM��
����JzBt�vB(���%�^
�>U�v%�� ۿi����߷��3x�N�Mωi���d���0��$�:�b#>\���8>�����7�A�Y`�K����b��h�+�V�_��j���X-��V��
� Sol��
o\/�uV�OsF�ge~�W������X���q��� ���
�0e��/���s�QM<��q�
+-m8����V����yoWw�����[l~�X�.�$��FF��sɩA��T�S{�#]�ً���,s��M�PaO
�}��lj~)�}�e4��:���O�Jm�<.�����NġD����)ھ����i��G7�o�L��!��r�J�ڝ9Y�n��ŔOk�������4ݼ�4�K�TG|Y��-\Z~"�Q����g���?a�6��y��9*�?h
+�
�C�i��3��k�
����;*kv��Ҷ
�
)���7�%k�Zh Ae=Gx+"���z"��G�c��QG�-����չ�m�V�Uo�Neg*��E�W�~�efY�sx?oи⭏
eY��k�o�C����)��m7�m���P��n3��5K���x8ͮș_�Wq�+I�VV`~4^^��i����r5�喫��X��B-���&�ކ�n*ۘ[���WP��A�B힏쉕���
�x�Z�o��mw���x���^A�y�Ef��t�v���Eݯ��J.U1��1���,�ȵ [�f>P�n4nZ��p=�jp�IT��͢�[��>���b+ryd��y���dV%Y%�
�Ca}�n
��@���j�Y��X�
walKYjQu'U��`]�8�'p����r���0=��$e�r�����#�[��c�Wc"*4|<h�X��Q~R��~����Y;M
Ow� ;���~�=���xv��}��[A����j�þ����^��؉�������בxxJy
+Mn�IRΏ&�9\L�=v���{��_��:^i�{\�T�#�kC�����7��;ڰnq�A_)�[��{c<�|�����pa�v��1O~�&
�ޙܸw!k��
+q1���x"��H��b�6pbh�_yj�����0Km:��_�f�O��~�j�z.�`zL��{�\=�������˯�g��=�|����P�/J�1�x�/��}��z=bq=jX�ߒV�Z����g�0
-i�\�ov��Ͷ}YN6��Hφ"��b]MA��c��X)�*�U�iծ��ޫ�u���u�n`�[��Jd��(�A��J�F
e��
�w��h��s�.��l���.ᓴ}C���������I�B�az��F�[��ʏ*ͺ9j6
�ƺѦ�N�s�=YZ��v�nu�'�U*@le3���C}U.4X��
���`�L<�E��\�;�k�U������_�!��|�;��2X;
��z���7x<x`����<�zk�nV�"��5��Vψ6������y�\l��R�������k���:9��a8*��1f�����iӡe���}�����KBvK��Im
�U~�:M�c�y&l��'d�PV�� 9t;�4�{�P�ѳU�� X..� [...]
+���4y\�U��^�5
�b���ź��a���,;�;?� G�0n�r9��y��l?��(�a��Wø���C�a$��a$��4�����,��H�)x.�=��n�V��a(.��p�g6�2� /E�gL|�{̹��U}�
��G)�|�!_��it��V���
�a��_Ju��d�K���0�{P���m{8��M�.��v���;�C���a.��E.4�բ��Zg�o�Kد�����k��� ����ly�Ϡ���Yc�{��Q�%���dwrN���?�e2kka�m�P�;� @�^��ie��2�&&IZUd���Am�x���S�W�R�;`R�k���#���������no��|hq�������_�{j�&�,���*?s�c�O��z
��f���N��&�,�I�n��?�(w��Qnq���0ޅʵI�E��k�X������K������g�j��A*��[8뭽�*�{͙�4�]W�R(��W`.>j�Ѷ;��c}�ub�A0�H-6� [...]
�
���C��.��9�ґ ෂ���j�����ua6���^�n]Q��]�T���olb�}@�2�TeT��f�f��pj��sB��G��rQ�y��u�<���q�3q���
��DZ-n�M�XS����Ad�%���kj�i{X�������jǸ��4�����}ٸ�9e�
�h�|M����ݔ�Nݓ�A%�r���
�����!��e9�E�
��W�w�`T��~���?S)9�_�ɰ�0c>��w�WJ�V����&F��
+��S먗;2o�~*c��^$�J"C7�$%l�+��z.��{�� :�f�(��;��P�s�F�}����DK��S���;*��oX�]�.;GCgS��o���3�骠W�UKk����#�aŻ��|he2�qY8S��$� ɖ�J��m�j�sD���=�@ak���[�=9����>�ʹ�
lC�wFB���|��T�?��"^��(eD���^ 1tY�b;��(� '���~^�3V{G���Ч'���TR:�J��Ń��Wp�8uYaׁ�����l�����Mچx&|�\�r�
p��s�2�Rd��x0����ё�ȹ�"���d��
�����s��'K�)��\�ظ����L+������#�����ȹ�����v'�zg�w+���X4��|�ln�}=�Ȝ�^��w�%-�l��a�uik�yC-_��*�Z@^������ו� Ԝ�dF���#ɦ�2k*��I7ZwL%7�E�;�#-ӛ�`f�e��j� $���
.�y��x�e��c��-�7Z`�GU��~�% [...]
+��?��dp{6J7��WZ7. �����r�oiU��)
+���R�|�g4���1`ǛĄ�h�@LiOKA��s��.�P�V��$�<�
z�M� �
U���L�:��p�x
�?xKX''��2�?�OH�
n�vWk�,t(�����
k9��g�5���ƹ�N\�3ہ,WXW�{�� ͌i�aJ����oGR�m�E�:�4�Й<�;�
ql`TN_��)}8uH�>��b����m�
���(0o�)��N�۴Z�u����&c
+4x�E=g�ţq!�b'�R�̺�2�v�2��Iݜfmhr��- �~��9����ySN��e����>�<
G4��p�أ���d�y��S��?��cT6�
�_~i�U��c���j�7&��bc��&�������5y��
�tn���UB�:Y��]�pύ�G�0ñW9���Ḙ́�S���S
l���U �k5��d�(���q�R�#@
^)�8�
����ᗑ��Տ�h��,h߳��Z�"l������w>�����~Z[��_�@�
q#�*�`�-�
ڃ�K�S���{)�Q�F��>=����z�n��8o>�#�ڇ��@�
&�56y�5�R���l��ᗑ~Á�ۣ1)�y��a����$
��c�)��z�P����
6}��4�;c�p"u��}�lcn��/��4a�~wǸ���[掹QG=(��y(@b�_�Ac_^
;�8v;����
(LY�����_}!�4��\Q��/�c�H��
?w��-;��g��8YCM��*�ؗ�汑
���h�9����(A��8O.���`c�U#`�W�pٗ?��ΤOY��j�]����|��Jܶ�
+�m�[R�i��?�Q��
��5%��F�
+pv�6
�w6��K�2%kv����}VN����Ɛ���
%-,
�n�y�|�Cq8���~����ag�grW�����涵�|7���l�t
Z�7jM=���[S�$���|�^h�_�lP�K��B�Ý�T�d��hO��7Ża�q�A�OW;�>�< e4��{�W�jugaN{w�V�Y�������f����@(~�+�����>�w�
����y|~��*���*��~����b�X�a�k�nK�x��<�hҟ3�������'
+�
����cء4Q�}uý�n�A�m����5皛�E���}�f��r=|
P���
2���J
���,� ��\�-����\���r���e~�y�?8��z3���Ee�Y^aY@���M�U�ғ&��]:h}��;�����V�A�
IL������R�"��� S�T^Žak%���j��奠o��k�/
ہ�X��mQf�6�h
�E�-\#�
\�#/����->?ү�w�ޗ���vT%�KѪ�[��K
��04�ܗ��v�]�A9v��t�U.���բ�X\o�9�r�JG��f�[������o�sT��筓�̜n]���}��j�{ Q����F�
�74�^�
?��#��+�r0eu�u=&��ˈ�����X��ՆR惥�
�a
]M�F�}�c�7s�Km���[�y�� 4�5�S��lO',9�D��j"D%l230q��X��
k�
��y�Ə�o����{��h�?���P$��l��6��DU��G�Q)D�
V�-�Y�<�Ǥ>��vq"Jrv���n�<`z\���H�mk���� �h���cU�x�9���x�V��A�R�>��k�N �����������
t�^{�K6}4۪�Gߔt�k�_7����آ��R��[O���00{ ��^.�B�4s�O������z� ��F
�
�� ��ݙU�̔vrÀ���k�Ÿ5j��mK5�\��M��U���a�R����l����
+�o�C��,z�y9���5�`T�l��fM��5=�f}��_�au�b�`'L[�[
M ��7�[��Y�]l�k���j}B���y�Ves
�:�o�J�Ά�3��W�)����:k@���|^����
��U�Q�����
�{�_
���Do�S�H�e6��
��.��Q��`|��AK
�3���6�ڻ�f�gT�eP�r%�;�Ry
u]
�ȓ�cfN_��
$A{�e?�tn���ɀ�@��`��1
Lĩ���'[�Ř�,��
���&��/�R��
�Qi<^�t�O(b�p&�����oV�w�
��ɮ� ��9��h�2 ��
�$� WL��Pi�Iy� �|
P�}JI, �E �I�/���nV̹Tc��ؼc(���Uڻ�}�_h\���b�s�b��D�`�b�vP��oU$�� ���>��/f@����S�10��)4�yf���~̆�&0�W)��dX�f�q)%��@W���4m��}����C�ل�� [...]
w�1�Y�SP4�Ʌ!<�S��S�f>�i�DP.��H��a�j�)�[������))P9J�f���l("�mi�
s����Uؑ�݇k�[��>[��?`����0�X��4:��� v6������8it�'������"���Mc+�)���?R�n�� H��\ ��6��_$���t����\4�����/i��i��Fq?������¨���
Na�<�0�|�]�(���a�Ѧ�Q��ƙ�0�i�7d�?��[
Z��ĩg]�`ѫ��
�ʬ\��O?ӠWI���0T�.6��b�ރW������Du\wD�2
��O�
]���9Ƈ]6�n�d\9L��lv���-ʇ�e�
+c�����A�\�~�JB��k�{fT���~�f��m�-�}v�_�CCч���ӵ7��l�W0��
1.�ϥ7>?6mܸ�k{�n���
?'ƭ
}t�X� cK��8a�0��)�V�� �F@{�I����t�!������^
?l�-;�]�`>t��\
S��`���`; )8�ܷ<���)�ˏm�ھ[��� q�����u�
1��iw�ԕ2�U}a
t=Om�?� tc��(V��ܭ(�^��ߋQ._i%[�~����Y%�ͷ��K��{gް�0��q|��7�&��ݴ��^�h��e�n1��5�<���u�l��c��
^k�p��� o5��b7m/�˓l����&W�����F�� ��i����i�}�E�'����W��:�p�v��0g屍w��m ^Vָ}ݛg�<�Ť
M{�'P��`\�\�y��k_�;��g�l���~6�]��F(�
Pd�ҳ�I�$as3�aVQ����KD �cQN��8E��aP��إ9xI�(xX
���b���r`�X������(�4˭�Ʋ{R�k�R��F����ғ%Ka��K>˱�w��ɗ�4/�QQ�yQ��%���M(��u6NǬ
+�w���/�x��/�\���{�>ޟoo$�_��I�c�iM����
��k"e�� -��8
/�)6S�C�.�egK�I��NKb
+Rn_��K}l��
+��=/��n�l��-o�j
�|�u�I
o\��?�7V��%=�S���s��j�K6L��)3饔:���o�H|$�
9�����
5pAe\�k2T�;<�F��(��ծ��vo/lX?��9�uY>�����o���sV�l�Q�k�a���4�a5�5�w9��_�Q�?!�ILf���ϻ�s�\�v�3n�VWs3d��trU��Б�
�%�Eu�+
+�lW*7�w>4�1?k0�A�5�ȯG
K$�k�x�>#*;�8��+I�L��
+
5�SzF�Jv�
+�`��o�&�>/Ə,��;Q�Ę_���zQs�F����΄��B�,���{\/YZ̢��?#�|�9�Q(��W���zt�Ϻô+2��
�_��wE0�<�u�iq��<?�(e��Բ����0"ף"N�L� �FT?���h��o���/�
�l��[��
�L�{����Bk���2�/R~��m@��@���D�+]��V�i�l���;��p�s`mI)�hG�k��^
O��Ǖ0��ة'���J�J}��-�x�PO���L٘��z��!=���/y�Zz<k,�d ���0�]\��` )�x-�Fe�?�M��G&������)�贂�Kn_�
+(�!�-iD� "��!���]�4��v
+�t��)�j&�n��`ou��(�#b��k�_�e�,\��%Kte�_R�ox��TJG�xӫ:�S���R�ϡX�P3�ٱ ��~e���Z��>�eW��+ZɲS)�Y�I����Kx���T�U?=��� ǿ�;��Xz�o�`y
Q��l�c"�
����G?��u�P�8B+��/Q>���
�{Κ
��iw�SXɖ:���9:���`
e�$���Jҩb/��TFW�؟���Oo->��y�S�
�Ow<èݠނ=�\�yF�ώy�G�}��!Q����<�p8T����H�?�����J�(���1m�<S��d'K���e�wK^� ۭ
_�
���
a�66�����m�2].�[0�LFr� �*F���o���{�~��ˉ��ǰIJXu֪b�߱�~��T�%fNs�NY�AC�����QyTIUZ�uFU��ē?�[,S|�
�uU�/��W*�"C�cW[�����F��ߢ�Ҏ��G�F$͢��L�U�~� �G֊��i�tift���nʽ��轻z?�oт���5ş{
����
�.���2eW%�@�uWs�̾�⪢�E���Ś�8¶�΅mQ^��%���sũ�#?��`1�O_�Ƣ���+�]���v�(M94�ԝ��+�_��S�izQ���K�f^;hU�NB[Z
MP�r�w�
]q��l�v�Cak��"�y��|2���.
o���1�y�
+�|g�\��6�������Y��`o��Q�mN�='�0���L�@�IGE�%eW��r�L��VG�G ���)-� q�rY\�:MQT��Xok��McNh�?�z3�˨{����8�4���D^7�:k�V(���,~q���o����$��
y���-
+}m��i�GF[b���O�qG}�O�2}
9�u|��
++�b
+���{7���/ao
Bky�����Z�W�����n�q�g:ao>�e����<w|���-���a�L0`�`�d���
n^���l���˹5��>�����*i��՟Zu�USr1�KKw,��e25 T���O���p���?
+����́Զ��[�E��IqYf&��G�|LE;�ɸݡ��[��C�+�趈�h7]��� 5�uQ_{sg�p�:w��]6<����r�P�H��rtX��M�<�O������.�>���b�zd�-�d�����\!e�.\�?g�N��GS`�Q�E��X�2�r%������tl���R
n��x����p��Ćr�b�a,͖��
#4jx��<Mz`�v?
+�Zr�aT���D�|�lW�G����p-2�>g�a�;�
S���P\.��+f�&�ҳD�V��pkqаys�7"]UBg�)�-�i��q��܂n#�h������� ��Y� <V'�.��=�m�;�u�4$9%�
+0ҥo
35��8��T��ɺ�HC� ���d
���0��g�{��"��n�Q�F�u��E
}�����,�{��� �
B�7Cdxgld�_� �y"9v�bU�s����Y(M'�J<
������=K
NZׯ��:U9����J�6��C4e�����J��
B�{
$�1;x���0�Z��ҺZ��҃�� n�6�z4���@�k�`�
������
���6f�X��j_��I{cp
8\T�v7g(
�a�
a�L���Q.(��n�M�->h���B��ez
P�C��[8��oݻ�S�U�
��ݱ1�&P]���7�
w�*}��:�vg�u�ΰ�M;����A���?u��Io9�i��jWWet
���h�M�?*;
�
+���@}&���;�c�؎|��.���>����V�M���4�7�i��ס������- u���ޚ�k)�.���Ӹޣ�o�P�p�������5�
v4"B-��$sG�Cݐ�j+��=
T��o�ܵC���)7�u͉ظ�"�SeZ;����W��
�CfC���\ZX�W*��EQd���v�
�x�
-pj擇v����'1"��m�?1;�91v���T�-MBF��~�=@8
�M�o������|�;5�PcW�vr\��mXhy�q�+s�vO�(�~ D��2� ��@�
��@��o-��|
@^u@+@�!� h�3P�63��_�o���2I{k���Ha��w5S�+��#�ԅ�ȩ�ϧw�UΗFgQ�v�U
V�56s�W���z����)��k
&w ��"��a@7����X� X�}��`�80�� ��?f8�l4c3�������� G�X�`�w��>.��|d W�r��٧���[}�5�\�m
�l<���X1�
<ГXy���j�s�� ��
+`��pD
�7�����d
��R <-���~ D�of��_���q���L���SbN���;� W�h��}�{��ԟ�F^J1 �rO����N�
}Y+ �^ ��3�C��)��yp'H|ۯ�Gb�����GC�|�-� �ݺA��M//g��
���Fv���y��)M�J.���pEӔ��
���T�G�"qu��zz~���InG�g^�
�y�^0�F�Q2���{uT
ߤ^�Ѽ?J�
���#]���[�=�
��dh��,���̢,f�'�$��EI�2��,��A��!=������'�9.
��q�(���=��2�;�>o� ܤU��1�wU�)}9R�l �P�?6\�����?@���i*�l�*��D��
��2�&?���wCn�Y��R�q��AG�, at Hy�厑�V������6`yzkx�誾��=��/f��/
�:��[>݅k}�������!��^�<!7)M��?H_e�K_
>
pU��I�
+f�Х�7���tv����ʧ~�n<�5�{0{
��
����m3���
�
+�U.�����b�>���wB6���ov���>L�Y�'�}V���`w���%�i�� ��έ�����?��������#:{�����u�����t�ȷ��
+s�B�-��ܭrk����D�z�!g�
��К=��k�H���!$�f�`#7)���
z�
E�]3�m������T��������v�d���,���by�X
�y��H�rQL�RD��*,���0I?��J?��)%�o��4�j�9��x�q�z�7�N�<7{i�»�pķ��No��[�����jys��
oE�(xi�/�m�B��B0
d.onR�=[ߧ.�'����� ������Sa��{���{G����:����u��R���$��]�i�6.P+��C������Z
�
(.$
l�a�X� ~!J�:��
{�B�It(�qԕڧк���ƕ��-�3<�s�3v�Ms+��#Qr�A��[�OI�S�^��l�)�͉��]Y����=������a����u����BB��|�r���v�
�ᥴ�CP�����dh��A�Sx3<f����$S�Vz�sFk��S��To�9ތ���#o����~�Y���������J-�
|�H�
++��[��6�U
L�˪�,�Z�t����
B�'���4��ƌP��i��)5� QUX���
+ZY� L�[
Z�����\�:O8����^��7�r]��p�3r
�����r���t��_A�"
�n��Ķ�]��1~��Vx� ��f6�ҧ)
�O���JeR�����5�ޗ��2�!�W$=}]Ἦ=�Fg���d��t����iљ@}�~�}������������?x�V~�N�ﻹ���ud���W}t=���x�Z�批#C_����6���r�f�����]ǭ{��l�0:����ɖ{��}w4�Qaִ3�����oͭ���MF��γ0`1�+d�
T4�}026
��iź�x�rM�G?�3�����)��Y����]���K�������
w�{��w�O�K�̎�\d�|g��M������
��;�% k��UzF����)���l�ԐGzW߿
+����v�Q��
w�H3Վ��������w\ky;�̙U��`���뇷ͧ2#����fW`�u���5&���,���
���m�'�|�|W�Y������Ma<�5.E
y�'���KzM\]/���Pn�կ4��u˪n�l�б�)p���ߴ�����7���,���
����R�cVk�5uN��m����8r ������s��b>���E55�J
0�g��� ��;w����1�Y��]��TwE*L��ʳ��)�B��jb���1��T���?��������[��E��!���yS�4����*���Z��&`��c[
f��H�sCќ������
�W�t�S͊^�V��{���% �s��$��l/��Ygw��o�,��P���.��v$��[A�s�şP���%1L����N�5}�1�{|*�\�����
+�]�3��~�w��J�s�^�1�I�c�[;�<�L�۲�]M�
�!y�j��;�)�6|���R����A�yNT��{:�3�ֶ���)���xu�
~���f��.(
��r8+�3h�b����9'ǭzVe����z)��<l�&^�:���׀�<S��L����/�y)Z�kc\�R�_���$�j9Ī��M����RW��
}ī��n���:�Ŗ���i�m5���}-��(9�馡Z
+���;��k�����H��E �.�����[�Y\OR��b� "�*b5�z`��B�q�]~�7�Fl ���Q���d��`.�;u
�������Wh�u�6|3We5��I�r/���
��f�f�`�K��va*��պ���CEpΑ�=���x!��t#V��A���wbE���Gh�%~�(m^����
w�6ח/1{mI/�9"0�����-�y�s���_�_煻/#��s9B�eaV�o.0i_&��FN��
^�w5 �-�
+P8r���2T7Ea�
7o,��0擆���>��
-yq'�X���V��J
+ĺ��B���<���Ȃ����Ҁ~�6OO[g;�͡�Ń��SԘ�6��������S��
�zצ�
�i]���~T��z�a�iH��F��|�5���9h|b=]����8��/�A�wb]�z0�[�cƣ[�����~�u���N*=���
+�+E��]�6H�*VgV�9�lr������ڱ�ua������K�#�=���Yo��#@��M�}������$9�J�
�,��<�)�"�>W�[�$�,kS�b��Q�P1*S
p�P�݀ ��+���c2\O��P"��Pj�a}A$��a����q4��mF��ѧ��K�����*���$����p]םэ7�ȓ�m���w���C϶=�η���O�zƜ\^f��'�J�Ci��<� ��
B��"�ak�����r��Q�.s�]�
�4vɗ�_l^��Yfj�E6|�ziިOKN��X���B�rU�-N�LJG�|�
+��w�X�+d��sC��Ub?�ۄ���D��[l�>(���=zc�"_E�^��#
+E������
+!&t
!�>���fؘ�����f���ȍ��ݞq�lM���1�CQ����;����v�w9��M0�4�_�+�ى%�BV=��_1
��8t�vkS6�:�>2�{s$\�
��
.� Z�^�<�n��^.���ֻS�W;2X��:X��_,�3�)��w��zw�清�n����)%|�yD����W:�
�w���z�
�f*����m����
c(q�6*
s�J�x�nQ��@�~���;)�� �w�̀�������Las�.2��.R�*� z
��
Ǔ��
��WdzE\�tX��"(w��-j�yܞ�W$O�ہV��%��=���&P]o�vQ�u^��ue�v��NiǢۦL,l- k�b�볹jc��p�b�� ��k�I���Lc��I�M�D%�[�k�t�=�`�}�8sEC��
'�a�9�
�7�
�I�+�
�7݇��Z�94i�r�E��:��~�����P���P�f�d�zS�:j�ߖV�O�_�
G�
+�/���~�.��.[�}�Q)rk�r.������g���`*]{��ʗ��|3�Z��S?m㏌f>��`���E�����X?�`�����Ǥ�B]�(�
��fY7>�yM�o�N����]#gZu8��
�D[
�Xh@��@�� C� �侵
$r�
/�����UD�
�i�lI�-�����f_���Jl��ӫ GNo��r���^T�U��
+ے������6p�b p� �� X< � xZ��)��B��K ��)�x@�E1�#�
���c B��_xOC�:�t���6��x"
.�q�ڃ"��� ��Tܹ�w7-WέjP�ԜQ?*S�8�'�j�~W��X ����)�D�5�� �
+N{ *��7i
��n�%��*O ��� ��.7֤ k5
���J*�
�YT7f ���6ﲲ@���&P�wW:��;�);��
��E�R���]���h�����s�+.��J �K| �K 6�P K�
+�#��Y��z��� �K�G�G���4�'��
�Sb*�oy�%
�ۈC
�W{P�
K]��f�+��*�fz�]���_`�z����+�<�v�آp �G��M"�H� ��z��"�l�
�����6@�}6�~�ʰ���w�#!�G�V�
�!M)�Ald�BiJ7�
��W��~�JQ�Ǎ����3���'���YJ>�<歸�`���d�ȏR����>ݛ��������^��\��/�Ӕ�٫*�W�>�,Nq����B�*��?
R���A�)?�
j>�M�}0 5y�t9��]'���`wۀ��M��Ƹ����~�r$�қ��S)Y��Nl�1ժ��o�s�G�x��� �#�a���Ǡ��*��[Ϡ"
�~����{�⸛t�[c�hW5U~
��]�b���
���)�6gp�8��Z9=�ʰr�c�wVtR?�}u����\{�S�ZS~���3��N�;�� �4���EY��4?z=�b��WM�|��x�rđ� ��)����!ÓWa�c*��ߓ�!�0�!o��O�ծ�߅��#�
�.�=d��H:N��P~���Ϯ�ofM�w����3�.���i�Ϡt[��V��5
�t�͐o�y�ʥ���
�C��>��xՒ�sj��G��5f��Vˏ�͑���*��N}+���Ɋ�i3���wZRȫ�`��`��;�\��x�eX�߉���!}!�~�*���ݐ���ԥ�
�N������{Nn��\��fvBUgy(���^��m���0yl���g�"���*�VX��-����z?
�
��JcnY4�ڂ�����!V��1~��]�\J�f��<�dfH(�?��4A� }���
���S����
�ou�c��:WCA�Ӥ#�� 8ۃ��7`G��&;q�R��������?
��c]�7.�V����Sx��i���ʁ���Ѽ.f�}W�L�ϵ�0����)L�*�Mʛ>;^�5��[��,�3���m����BKW��2Ǡt�w�f�X�wo)�7{Y6n����}okQ�?w�i�>��f���6�R���d}�n����nC�
:!��|��T1'KP'���4�*z�S�2:, qdpMaԫx��zp?�*��1}���Q�'�����dU+���;Y^M\V`���
\
�.9
+���OgS#��듫Ϩ��_B�� ��K�����I��]�;n��SS����R���?������s_�a��GW�&��`}Ґ�>�1����Wȟ��>FX�m�tc��#߉��0��
ڴ�Kc���"N�n�s+�O⨺o���o
<-o^�s�F�ʍ��Yq����B�
t
t~�D�_�ȳ�@qm��wm�E�ၹ0ǬY��Ec����0���u�� ��y<i����r��
�
+�F >B�Dk3B$ �6�I-Դq����'��Z��`��|�<�����w�����iR+�C
�Y��Z��C�e�ș\ҳ�56Y�u�wJ;�UX������[������^��#
n�0��l͓����>#���_)����ѹW��շ���N�
�6��VV�R;�)�'si�w�c
m���ļ�F�A�j ��
u�G���.�k�T�~�;4��Q�
������H_F�I��;�
�cp�w�hpI˳Y��]M�s���6����V��8{�Z�VtK
��\}������FC-��}�y��>�Ԏ���ڴ�^�UWu����,+�8�t�
��~73����>��������?���Ś�x)��܈��`�8V���&
�|�>����y��S��J�"�գe������5ؚj��t���ӵz٬Ց�W��^�7����2�y�=O
+K��D
?UqQ'�ݭE��"A,3#�ϊ��N��
+5��<��p)-D8�YwFa��dC�_�
�:;��V��b��"n�~��;tE��e�R�=x�B(�[(���ӊ~��u�����QY
+�V]�
:$�'r=�˟�FX�~Qj���[S�7k��rh���.�.������z_k���z��[ i�`
+ۨ�'xk'��e�ݵ�<샮`��+O��DV�@
+�J,� �H��x9v�+�[UX��}A��i�NL~�
V�r�|�,}��
j
��!����}������+�/��F�!0�"�i��n8�HM(��d�W�A��0�
+F�<dUY
+W���+r�=+�z.�K� ��'�nq/~7��x5���=Gr-�9��\����gg3`�V�e�6��U�4_�wg���-��������(�}�GF[���h���6�Ң��Jmy�h R�iSR���ᚰFH[����� vȫ���o]o�u����s�^���K���R�{�1���� ��c����s���3�U�-��sK��p�a��{����n�.��L��:ivE��o� jd�>�K�t3��
$���cI�U�gq�ko�!p=ڎ�K1ڳ�q�1w��c<@j0���ҩ:�iy4�����&�TИ�]v��9���8N9m�c~�I
t0+Ä/�6�٫���!����Qy��+9? �b\*�tպ�
�Q��gV/{��_��:���܍��x8�`�������J���C}�`�
+&6DQBE�
+��O�w�dY�E��I�^>G�N;�-���a]{�y�v���Y4�ȉ��#o��٥GXѲ.�$���J�.�#��<w<t����,D C�Q�x�|��ϱE�eLP>��GoM8�D.*��d��wz�,;�`(<f찶�=b�?���
B�� �9�X����/��1�⚯ ��N�)Pcә�.mVM_�T��]�����
}�l�+罘��T�w���J�B�CSt�Ʌ'�$�:.Y~ų�8�/��F)!�{�A�:ZO^�.��H
+�7����\
�'
��ߋ�
j ���c�)
=d�`vOx_Va�s�%���6���� ��CP����;ۈ
��3EO� ��+
�2
+�����a�����2�hEM7ڐ�w�B��M�
��3z�� :b�&���Ē
[�����BG��xE�o=�~�Z�S%�-QiƢ�8��o/0��Kڮ�T��m[.n��L�4Y��u���>��gW�{J��ه� '4��>"�"�+#i�
+ �"��0��
��y�yBs��mPiI@`�_dP��`5��`�ˁ`U�H����X�J-�/�2����ώ"n��㬆Uj���7S`���L��"�.3�[����n����H�<��_vb�K
*o
(�2X��@>
'��5����q�w�p�wb�^�a�W�2��ݻ{��^����kq�5�?���p��MT�跓6J��f��Y4L7%ʚ���N��y�zm�F^sc
+����@q����\�]����U��8�v�}�����l��'��I�6;��0m�Z�u{x�?W[
��%Sv�\�^��Φ�*r �*bm�!a֟��A�l�m��~�5�:'�m�u�q�)��,�a�R�@|
��{M�iڡ��������VI��M>��U�Tkl��n�u��^ո�����������^��WW�2٭������}��\+Up+ at U0��_̸l61Κ7���S~��~��̝;8?x<;t����b�y����j�!��wPج���ߏ��x8s+X�
��Z}[
v�kx̀=�U�
s�V�
+^EQ�oo�8�x�.���@�K�p.�\Ʈ9]�UrI�j� ;���W���=@o��"��E�Ts��GF�TF�P@(|{
h��3łY�^[8��tS˹Q�˫\�l�& +�6 꽟�NP�����D�e�Q �& N
K \�) ��> n
�� �b)���nd�?;�K8z��R���dt`��
��
�,��J���$��!�h֧�I�v���rY'���� ��X �
+�- m�w ��E n= ��4 �;��`�|�b���pVX]�X�� X�` �P�
Tc[b:3
�UlI�6�8t�0��y
�ֵ3��Mc�b�*�G�Z�T�kW�~t�� ���/�,� R�} A�; Q���+e �� ��s
+�G J�; e�y Uo0�jS
@��@'�\�c��q�Av����&�XP��L�T�R�����a�<J��<��2.4}F��\��G��'�·����U��@W�㏇~�y �^] 3L
+���
���; �]p��f�, �P� .6������1SXsb�n��~6�F�c�>8<
�y=|s���5_�Ch<�w ��i�����
믇�:���d����?��� \)T |� Q�� ��ߍ���Oi/\f�� � q��-�-���?}���Y���p���V3,iJ�?� !�g���~�_�OS|�����e����In��3�H�Ǽ��
%#���^ڻW�6q��3�֘��_��?��?���6J���GB��O���,��:�*{OT��g� ��E��J=������`�·T����nr��hp��B|�������gsU_��r
&�Ko4�NY���^=y���W�
>��?�`r ����i�Ϡ�2\п�t��-�v�?-}?��_���n�{�~��U+�ܤ[qx�#E���s��HT� t���:gp�
��� 8�2��$�x8�i���Ce��W�����?r�G��i�۞��EY��%U�@T���Z���4�燭��qk��I����>���
�
�����yBV�o]�1���m�CЎ�Cތ����n���vO ������5�?&+�������ˏ�K����TC�!
��o��ܟ&�V�F��H1�#۾W�� [...]
���fiR��X�8�t��B�S��e��{r��;(k�!�A�q�
~�����c�U��|�*'e����[�F0g��Ư�����a�M��{�=�5�*�䇓���
o�ɝ�x����:��]EH��$_F�OG]o�w�
�p�>�@�r��ݴ':��ޗ��")�cF� l2���T�R����3$�-��=��D4��
�U^qx�
+ZG��`W�N����g���v���ѕ=2�۱{��TO�(��2-
�T��6�#>�g�V,2]u���94ف��(
�]��ͺ�қ
��{
�4��"���������݂��;��k�Ϣ!�/�y�f99���]o�J���.2��
ջ��"���c���
+�b``}iΟ�Y�'cU�>��[)�[x�ԛ��wBRK̚��}��"�J��r]���
D��yX���A��
�
�;�I��k ��-��1^;��̟��>[���f�z��۲�<���/w�����Z��A29�i���1j��X�n��j�b-yЉ����z���Z�k�
�AeTX�
+��<y�K�2vu��
�������������N��m
���\9�G�Ͼ`b��r�7G��h�<
�@Jv�E��Ň��uS"�]�a��L�5#oZw>qU�}WE���.RF��ZA���ө�w��~={�l-2)�\1z8{���e��
@ay�#�x���&�[2��#���뗡�������WwO#��N��m2�����&����9�r�7��"���<���%J�*���
EA��)Ov�H�U~*}�Y,��r/���]�ב��ܢ����RyA(��P=�~��|#��L��s���C�
�p���c4|
�}>��yqp��
Y
����H��敵�|73Q�(�$����3��=��<�R~�Z"[+��Ҷ
+�+m���Z)�#���%�%���i�+�:�"Ǟ*�
k�P�_g�=^F�D��K�
D�Qmͨʼ2���g䀋�M.����K����Tg����e��v���`�P�H��5V�7�(�� 5��1�<�L��1���#�]�� �5���P�j�U�jN�;>
t{th߄�V�~q��<�u�>���� ��=e�:֮�o.�z���*}���
���Ǔ�j
_2@*R�.��2_¦��[�I��q��
�9��Y\g
Lؓ}_��K�AA}2��Ra`
ɂ��~
�>Ő��M�ҰE�^� kj&�/N@2lT��
����+2�{��a9��&�P�;�_�����v�fX�n�M�y�\u�d���n9����Ű�ݔ���-o���B�ٹl��}���W���O͚#�
3*gR2��M�ޮ �C��<�un�[>��I�� p��d{�4G�ֵh���]�R�jO���JX=�~�F�ܡ!V����X����`�2�\B�O&��I��ة�m��bg�l�)�������I����a���m2��cXy���6��/�-�`���Gν�̊-c0>�q�}.e����Q�`V��
�
k0
��*I��
x��W���D�A?wX���4L�S��f~�Qy`!���e�����"�C���êX �M]n�=O�{���o�=��p������6���bg���r#'D���ȴ2Q�q�t�����n����"ϝ&��4�X [...]
B��D�Z��{�J�N1xaǸ��L3��[�F/��u���:\e�:X������Ju���`8�`~�g�
x���Pn�z�ϼ��^!`��Ӧ�ZnNQ��@�<�
��0�A�:�y�D;�xR��xG�sة����(_5�^�0@��k�<d莌�aA}��b
���&vH&�Y7Cԃ�Ѥ���
a��z^P�R�B���~
�];m�B+Ei�A����6��ųC�ǒGl�يhޟ��z���,a��@�{5;w�@��kI!�p'��|�sx�:z
���*��<�̯@���`]m�����+�
��H��m
bC�>��
S!�+4!\�G�]����W�"U�ɍ�5;1U�o
��:z#>3�6��0e.��}�
L����ޛ�J{P��@A�ߣ�*����F��Us����w�Uڽ
���u�g��=����y�o�b~.v�ټ�~WEL�6̎��
��=�8
(P��[5aw��
��7C�y��(4(��5�P3�:�7��?���=�k�Z�w
C��� �^��]���](���=;�z��.۾���>��
+��E�ɤE��V ��V0$����8�
qlŜ���O�ڠ$���K�g���&/�%�_m����)L)��O:�uK��y��I�e{J?��a�yk�B�ݢkb�U���&'p��֘�HZ}�����V���h��
+VO��U�6^�%��nA)�thZͺW��P�)�C.QG) *۫�fg2*���PQ���k�<^w�k?����luݛ(��A6�w���^�Y;��ߚ�Z�~^V��JR;�[��Rsd8����mP��U�t�F)?8��?��Z��
[�B������������`Z�v�1�<L7��}n�Z�Ҵ��NK���g�]&������ܐYĚ_=��{��+�"#�2�E
+�����o��(��� ��
`���A�
?�
���
k�O����O�
������˹W�^�cF�?�Zt8x�q"��.J��hjz
�+\�s����|��6�$V=鞿
:OV�+���.0�i4�VȾ�
+�6�{�e>#�
�0���
K ���X`n
+ `^F ��8 X��?���.dx�~�=�, 0
+��+���&z��fe�����M�q]7�z[�b��tp Dį4�f��V ���i�
@�tdY����
�h�@�a @#:k\s���� hA ��� hys �: �I)gX��GF�d�ጭ���]��ҮG�QD
+f���f����כn)��]�G�
D��
+H'� �t��(�b�}{�/�UO���
ߟ
����"1c2#�X^:
��t������X�NLF�WS��I^p� �n�)fpm<h� �� �8 XbT&��)
�3 �D ��,
���$� c���\�Io@�)CV _��e�h��
+�!�w|͔�z�t[����8緧��>�~t�om?e%ro�=N�����������W�4�w@�{@~2hQ�
Z�<�I�
Z�k�N�h}$P��!��J���\%��.z�"u�=��l�L��Ad�y� '�{��(8,Y�fW���-/.L�z
+뙣��
����W�ݗ"@U�7�z,�m�t�04j
�����ߘ^xcz��~'�k=�*�?j"�ɽ_���2���G����7�6q�z��͆��Z������^)�z������*�;w�
��_I�٫܊�4q����V�����B��ݟ�/�C>u��i�8�
�%6�1&��9��Z
��0�.iy����F��ԍr
�&
_�5l��|�ˎ�d�Fx��Xt�S��t�V��*aG��Jѳ��w�lg�������D�L4�D>M\�#�'g�M
����]�~���n�oEݩ^��
���9~�;s�}����:���̥�M�~�H��Z�V���G�N���[6ډ/赭��jI�xP��
+k�6����W7M��l���n�+L"�K�Я|�m4&��[PC�k<<.;L<��7u9Yi�y��X*zv���ӯLT��}$_��
چ�
��1
��Uv����^Y���<��|��__�y^�
�]m,r��K����'�[�W>�yŗ�+����k�̰g���O��eDO��
��~�ϙ��V~��_l��r�Aj��J��ꦼ/+b��.�x/?�3�dn���o�j�ܴ
W�f����+�]�������s0=���j��S�:���G�N��E#�(�װaT�7vY;|d�M���?7v}|aeWl%p�`�5s�
)��{*?���_�����R��lfjQ?{�b?=x��L-�R�ܬ9!�j�u����x��a3��I�Gϱ?6����b�wnMǟkz��:sOm���j�
��U^��M��26�=ۍ˝Y���z���=�S��ړ{�7�����}�w���\����J�Ew���j����oJ�h
��Qm
e�s�
j��B7;��ʯ"��,w��}Hj�
4� ���
��A��?�u�F��@^V������)۞8L����]Sq�Fs��'-��ڂ_ �ٸH��~�vvE:^G�r95����PϭZֹ[�YX�2mU|ϗ_0讕�(+�q�*����5:W��c
8�{��s�r�`������E|5�[���N���g�U��v�8��C�K�)k+å8�g�������#�
�Kab]:5�f��8]��N&�����,U2ڵ�Ϝ��g��k�(w��Rq�u� L#�_<_�t�Z[���H���^o�L�m��2�7���a�$?mB�
�#�R�q�Y)���J}x|��aS�hkx�8�q��Z|w�L�h�
�H�kO�ҧ@�.
+M�Z��zj�2�n��}WT�Z~�?|������(��C��3��� ���X&_ٗA!�����Bf�hv
�Ӗ�
�
��ݍ�
��ch�A�"��lR�6u���cD'rw��iA:�ՊjQ
�
�
T&����}_�o�M?�.}�UO��+�a�TG��f�B
+�Yv���L˗�L3��
ҋB��ܱjG�
����f�>�u>:O]q�v���
�?gs����3���L����I-��5�TV�����.��j����>��}�
z��m�ô�D���������Q~���~֫2�Lw�m[��-I
{���Ƭ$���/���
��WcM��ܢ*N?���]'k�+��tx^ؚ��y��9�5�����
�M;�Q��R���>r)��a��R����ER�_gV�'��˩�;�����h�����OI�T艔�}�u��n�¶���T�W�Am�)&8_(���F�F����z��亻;��qoC���"O�ad
��JO~��7�o8��7
�9�Q����xɓ���!��M���
�nV}��*�%��ŵ�{�\ C�|�߄���z1���r�k������N�N�3u�����r�/�M��1��~&�����8��ۅ�B-K+�GS
\��U��������Sk<���NUZ�,^&�'J��3N�nW�з�!�I�壼��x�x�pg��rV:D9t��wn����ͻClʥ�}
�UI�U_ [...]
���5���ڋ��
m�����g�N�\���myF�Ӆ���<�Q�`��$�5xf��ꄟ�q���
[��C_i�m�±��oE*I�*��$Պ7��7�>�1�/��a',�c�-1q�
1
h���y�-0'�]�B:���
P��
+�ͧz�z�B�z4�
>Nkm/���ȵ�v�;�J� 6�2��u
+�^@n�I�grV{Qz�e�}�ݟ������ C��%�F��X����t˦*�ӱ��|����Shd�+?��
+��e[��-��T?��r�ni�`Ղn�+i�Z-�h��#b���?�c|rĨv�&X��{�l�=rz~P
����0�V���K��2E�T�
wm=y���4f�'L�G�v�H�鵡��J��P�y���]�u8���,��J��9�/�[ni�cm�?�ݯ3wө
N�c���M?�=6=�s����b���$Xq�1�Fot�8���`�C��(A����*�@��:�[
'LK�啗�0����H4���g��s�y��i��q*���A<Bw�3�ӥ��y=F�X|顾�ݣ<m�����6��^mJ��mJ-�ݔ :��+�~����f��kQF�3�A,�%kz���Ul�y&�c!�bE�R�#C���>���Cء��_����w�A+zb�b>�e��wa]Ti�x��j�\�4=��^�h#��(��� 7Σt
�e��GVБ
1^)�H\@�X0(/�Ͷ��Y#F�䃚
����z�}b���@��n;�N۫AE%/ޑ�ە�e^�*tWNs�=�ͮ]�6�$y [...]
����Xw�ͣ���R��V���R�A��c���x��r���|!��x2O�v��\��r��<ʲ��A|�!
�Z�ul
;t�9#2���*a/r�3��
��ޙ�7�c`��F��|�N7"��s!S�7�JE2`�Rj��q��\���r[��
�F+5��OQ�R�"2r��y���'��E�
}�4s@~Z9�<��^���?�l:.���h�7�א�O�2)�.F������H
k���3�@���� ?#���[H�x�����˷�
���r��&�lgG�3ˆ�g
+��M���-]�K�T��6R��.�Ұ ��
@
'
���ˎ��A��.�����@z=�ˊQ�
��R�V��dk�+0?�
_=��r��U���ZRU,t F$4�A_�PZ~L� ދ�k��CP�،�l1��_ Cm ���ĘZ ��7 ��1�m _� �m��=�%���o���L7�Ŷ6��E^^]W��O��n}��cil��
�B�5��J��F������
e���@>�h�&���㢁f����=���.��X�+6��p��4��=h����h
+\����)F?��G�^
/#�X-{��XaD�S����˶��qa����l���v�����_r
�m���A��\
h��(1� ��.dV�L :�� �Oo }�� ˮ�x"ܖc�' kxg�AR%�:aT ��b�� k�
+ ~���1�
R�~�h�"���{��>gՕ���Cߑ�Oj��C�� �
)�U@;9
Se�
+���u0 ؇��8
NCw���" -R�� �-߀�eF��if��� ~���4�
�+F�ykq�qD\U���S$ҏAF�\�Om�)�$����/���#?&߯�J̶@���l�_���4*�<cmЂ?h��5hue Zf-���hm�{�s)�`t*�r(�h���̓~���vW]��,�I�HJ�܋*�?������F���{�P�W P
�������\˂+4��M��D����\$����|��d���v�7d`qy>�r�oL�
��}�l�f
��R7
���
^�sL�i%
+��>��sZ�t
`�u+ZR�b|�8u���h�9b������8���J�D@���4���
2�'��]||�v�����W��{N�2��a��1�^������#&�K��r������%<���W�<�A
��Q��z�9|tVM��D�Mrnw�1w�;�(�W�M�j�|�X�v�{��K�����=�o~��[QGSW�B.��
E@g����cǛP!�ve��
s�����@���A��܈q�
+������^
3k���V7�j��3�&�_ܿ��!��S�ӈx0ˀ��P���κ�Лw����d��ݑ����q��?����-��ߵo��Q��\�b�RյUNA+��Ƃ�^f��!�]2������:��_\�y(��y%4곝ҭ����o�I$Uj�ׯ�q�8kO?��n'r�m���qm'^��FN<d[��
��ʮ2~�
P��,��i=.�z��6��s:=WrRi���o�����G���B���6|�&6A�ܧ[O�.����R3��/�����GN�v�Èm���:�
������3
_�~@M$��Mzs%3�f;al����ȋ��ăw���ĵ��X�&��xq]|��/;ljL�}�������A��R�s����wAr��c�W)G��h���ޯ��M}Zݬn���h����k`
2Ln�㙊u�F<,��S4����ԩ q!:�����J=��(f�=�
���s
gaK�m<�V��Qe/����e��3YH��6/8�7�Ydob��.�o����������*��w,�>w����:Ƃ�q�\I�~|S-n�V�~���ri��:��Tv2�1�Oj�^1i��Ff�Q}~�#��p���Á
;�)-/���=��B廄g�9b8lK֧��\O�6?�W��ȋ���+��Tr��עm��
VTy5^,���Է�Y�#����u�i�q:��e\�W�^�R at r��IW�Q���0ϣ�yTZ:�Y�Nق�� [...]
���F �3n����� i�
�
tk��n
k���h��or��`��N�g�הDV^k���7G���
��;��V��%��d�}�,/��u)��v
W�t�[��S
�q����[.dn�G��hK�E�
��&,���6J��e��-6A��b����C�
�3ѻ�C3����T! ?�
/}�)���ֺ�C��e��#�@�K�f��r���
��y)�YMK������=�+w~\;c��
���5�P5ڏ��gϗ�`��G����~6j�-�>,d�=�T.�P�YW�4�(�/����2u�H]��t�tf,�*
H<\�`Z͋�
��6�ũ�*5x
+U���w��=A|�3����x�r��1G��i
+��Б�Wo�c�n>�1�ϗQ+*q������g�Ór;.���:2ML�2�
�]V:Ի��#������U)O49Q
+:�X�gCa��P��G~߿d���q�����6\3�z&�\��{��{ܗ��O/Bg�����~�����z}�Cl��
Z���\w�����]v��/h%O���;�C�n�m=%0)q�arb��U���5�
<��^��C���
�ה2���:�k������:�њ
��w�5M=��xܣNyUYS���ճ���S��-�2�
م�|v#=��j���=l;���ug��\Z8뵸
+��?��]�Bo�x���3��\����{�c�չ
+[�3*4�a�]�a7[���f��a���
����[{>:<������P�f���*}d�sC���}�=�J6����LM��`�Oz�ᄢ�T���cJ�?�V)����
+�;ɣ�܍^��;�kWd�t�uL�k�g)��a>��0�IC�u{��vN6蠆I������]��[���
ׂ|��Ϯ���p��5�k��X�6F�yNTM~gJ��ݸ�fEz�B=��p!�q�Y_uFq��>^�#K�+W�Sf⦺Zy��U&�=Ѷ�@�6w�:����H�����N��N���_�n��|�yk7$N1�{k��n 6g�]]��L�{,�ԟ[7˝��z����Vq<��ʈ�آ���)�yt���
+\���|����D�F>��g�m���m>Gg�
+endstream
endobj
99 0 obj
<</Length 65536>>stream
+ at Wʴ��0]7�
+�D�R�#��{>-u"\Z
9[&�ݤC�{�#����H��\�$\�.j
�Uէ��:�
+�F{���ۢ)��߳����ED��L���)��-;`>O�fXښ���
��5GKZp�K��Am@)M)3�����FK=��K��p�i�P�D6Ό��j'{N
�}�n�c���c���x^�q�|I�l��C����l^5��=$_f6%�ϱB߇��A>�wy����a����7%��
��PȜ��Mk��Qk��w�8�ߤѺ��f�Z#�
+�8fw�G�3�["1�������TK���"�ߔxtv��le��T$�T}vC�ʏn�K�ľc惫j���φb�6�j�l/�.N�3��
V��`����eJ��W �PcG
O�0�w��4��7el�x!X����9�+(������i��3�,�
YCd�χȚ�O�Xʅ�=7T-I>�9��j�b�^Z�ƽ+�w?�c��T�)/1Ԗ-#�IN�d�w "��q��q�9�c��b�1�+B�+pE�n���BS
ud�\|/D^�DxW�M�}������� ��)�v^� m���ݣ~T���Y�j8�۹>�ي�݇9M�����4=J�V����j0�1٤���N�
�1�E}���� e6�R�i7�9{��D���FM�
!5�ٰ
�m`�K��3zV';�xp����2՚;�}m ��ix��
#N͉�p�X�?����
c�9�F#����*�)z�x��MY�;�h���!U����ҁ��@F�o4.����Ct����a]���:�Ɵ��,gk`7�W;�Yͼ�rE`Ny�@�.X���b$���9-��®�ꦶ ���w+E�1��Y���>M�o�zb;V�J�)!�f��a�:�.���I�֊��G�T�MsZk
+S�#�T�\�Ae�GÊ����k ^�����ѳT{D������)�@�����_��*?2�t��������������B�L��G+�rD���)D�
�d�O��R���>9g���v?� gF���1�d?ē�Fu�X�J�V3_��x��
�`5�l=����z�L7��ӗ���J�g�[�����\:0H����ThW�T�5?��UR�sWJ)%�oO�=K�*�,c�-;LM5'iz��1L�-OE�"�;��^�-�m��J
+���w��.�l���ҥ�3��r�T�M|פ���� J;�o@��,�f�,����(dz ʧ����y4>C 4.y;;��,�G�)��lJ�r�Z��z���w��ƭ^�F7f� ���#d at .�����J�P����+e���h|��F�0T����1�,��`j0�qY �fO1�����L:>> 3�`�}p����1�dq���.�kq�>��ƦrU�1쵻���[�.����x3�E��ѭ�;��J���
+�C�{��x���� @�b
+ ,��1���j�h�1�*@F`
����q� d�Ŀ�O�1F2@���b�!�
�
@N� �Cb�E��["F[��a
.WNR�i�F�Q��
�'�h�-Z!�ӆ��k�
+{���R�$�� /ˠ)����=j���ү@��$��汪��Kw
+�C���;@�b �ڒ��
� K�N�7@�
+�P� ���@�O�b<����کqU{�����/A�e��T);ˆ;�F����_�
��W���� �`���M�W��� c,`Ve
+�����|�>� �
� 7��| >��?
�
�/&
�xt
�Juc �eJF��Y��w��sE���X�{a��k�����t�������dO�)�[���Љ���G�?��߰�D\M�z�) ����l
+����� ��UN]@����j�Ų��#h��L�$Zu�S��CI�W��V��
���һlF���WR����TIa��W�M$����{�%:t����-h�����~Z�6��Q����^
�8&�x��&��C/Y��5�*տjb=M��d76h�H�?�%1�B9�
��u�?�%�}|D����`Bi�H+�{������[ ۛxz^~�9���ʥ��ɟ-����k����luv�E�'
�O�m"�&��D>�
+��x��2���s&����)g^�\���l��S
͛x,$��Ej_�k�s����eG��K�m
�-Xgx&�OV�7;����H��kD
����
�D�݆�B�G����&��}�I������>�`9���G�,���*�O�K�
���a��A�h��z��zpDm]���]�������ߑͮ�(�f���0���,{�5�/^W�I-.�×{G-=�o�&#$���Sj�#w.d[��.;����#R��?=�8|z��އ^�]�
��Ĉ6jjp�\�>K��ݴ�+�F���F���U�̝C~ˤ���w��0�+��a����X�D!�P����k1���OoE��>G�;n*�
+EnaK
��ن�����V!��J�n�3���JC��Hw�S����} ��<��ye�fjѺx��=x,L-8Ol�f��xg�ԇX;o~w<v���]h�����n���x:��ç+�vE�y
���ZݺݯK/-�C���95t
2ob^���LͿ;^�}
��v�V�ԛ��C����r�÷�R���m�xty�g�q�g{o;�;
��#��1G�Y
U��
�l�������Г�N��C�'�a��+bS�,��u���x>WR�ˬ
L��s�JMn���g�亘Zs>cv���:�N���J��vl)�vGa�SG�m8
���gEFec�W�aZĹb�&}ΰ��f�?}h��|���{O�xc8��\�3T!�v���8�u$ՃCv4�
h�uQ,p<ۍ�6r��z��A�5RJ��g3�l��P�AE+r�UK�<�]�İ!k�3G� E`��
N{���d��i����W���\-�ֳO�۽�����/���٬���\f3rw�<1��[-hrSk��g���4[���Q/;^�dk��h^�����6o���F+���i�V���6�ͅ.�eOC~�47_�cP�dlU
�A�o�:��{Q�(���r�X�{����*�|���Ok���><�����6��
+-��wj��'��2�l�Z�{�P�96 EXԸ�љu���q�r��Hy'=(��yUi�+j5���*�"zѱ���IWQ.���`��/�I�"�kP�N*
ץ�#̈́�� ��(u
+�:�Eu��r_8�職�{�j���НuBe,�����4��hÕ����[K�'oo �R�������[>���g�WU�!O*�
%���~M
Tn�[�;Y��n
+i��
LfR����O�baB��5���2��×C~�3�Ө
^�(��-k;;�6��s2UO�S8<�����{�4�Y%�j�#!������Om�;!S_�⣕�/�{�)�Oݷ��w����M-�Yi.�R�
C�����q�z��FO
+r��g���=<�E�;�i�p��b�9���/�����sYT������u�mKy�Z��֭y������ȇ��N��L��],V�Zڔ)��v�!�w�Jܘڋ�7u�u�!���G�o~�ߑa�W
i��L��tTS:g�4�X�Φ�Q�k{C�%;����縃����{d��3<��#�j_F�yDzє�GZ���~�ۦ�E�
+�V?z]�<)S
]�2������H��T'�PM�C~7�
�F��]��c��!M$չ�3���
�N�
��B�̫k� ZX3���3��lw�%�� �E�h��xa�`�Q��9����'����f�u�
��kt�?���v�I��g�A$MvDɦA��:�nY�;��!���\h;n����^xe���ͼ�|��Hl��h�fO����f[�"Z.ia�y�&
S��Q��
~
��Pݱ
&
+fjY\�����..������rj�T&��
+����rTX⏛���.4�72_[g��~��^*9�W�1�0m
+�0��tj�B���X�
�̂
+-
h�.h.Gu?�h�����m?{k՞�:y�=�`��R� >
y��u8���*���V�|wֽ�it� [s�df�ܮ����wgg 6�A���f
�}��yc��
O����r�Yy5���kM
�������o�z0LQ�Ӭ���s�V_�Y��TRs�
��
an�
+���]���k%K�kJe�~#4?��6z8
��P��7�N�{�
Ky淂��t��r�RgTk6���&��
���KS0��-����`JU�ek{�o[}��(]}�ڮ�'au� έ<M�k�������_��s�t�%̥
"��cs���J�`�^�y��d>���j��
Ir���hK��gr�İj
JC%�S�V��ۛ����w �
++�.UQ˃V�X�Ȩ����|�C���<�ۤ���r��=�
s�Ry}�z��
͠A
�`s
���c4������m*7��V��n��k���nq��V�ș�Iv{�ꐥN�ͧ�E*4�fk7QdLy)-�|y��m���f8)5�U�� F�+:�:��hF�`����yc���`��Vt��0����)y�)Y�E��f��=J��n)_J�.��R��M�|��>�Y��Mb;��e�Sʪ�%�(]#�����
���A�� ����g�3v�c�f�MS���f��{#]e^@ʵ��N�:4���F��~4N��8�Gf��z��wʇ (���'Z�2o7�T'���Q
3;���$���GKIN��\VD�3[`���*�c��cm����)���,���"�Eօ� 鞘R6�S�w3�p�?
-��AЉ�6LT�ׯ������Z{�W���(�U���K�#H��j���Q����t�6VR�E���� ��/�G�CqW1l��(�]�mH [...]
dA�ʊ�n5SĴ
+o�v%���46��������U*6��4��̠�P=�R���8
+DUFݷ��N������
����
+��p��u���j���耼X]H"7nX�6�����=�����U/��S�Tk������"�Ă1��
Mnc��}�{�K�\��mwR�tf����)rZ>^�О?�f��玒^�C#����]^
�~�4�C
��U��d��v%�
&5�S9��Sh�"����j�"V^�"�K
s�xtɦ+�'3߅�L����SK�z;��qR�B��П�'�.C���+x-ƥ�
�uN��:��1
����C
ө�&9CL�ʪ����Y�:��!��0�?�c�5# ����Т�f!4�4�|�^,F��;�Z�S*|�w�� Π��>1�B
5G���k4�,�� ����AC��vs���_ 4�
+lW���&��:�����E�b5��z�k�&��
����SH�0�x�Vad�bk�GJ�긘{E�O���' ��=�
49
d�_�+ ��h
��q������f���f��mi,�S����� ���{n^��{���#�S�,���껗�]^�O2ѭz�2���l@�6�l�:D�{��]�K��so�VHm��'���
��2~�_ �s1�F�9�G���Hv?H�L��H=��Ac�Z�@�� B�W A�����fd����Q4dk�j��B_�;+w�w�\����Ĵr] K��
]�JQ.��:ss�H����C{\��xT�A�x��&R�A�
�)��i�.h�n�<�_�y��@�3g
+:C����@+a�Z5
�֚Q
�i ���5ۦ�,
%��i�Yk�7IQ�m��}&u�i��ȇ�
kޛ�(N��LKt��1
'a� Y��1��$@w�7]X�3k�6��6`ׁ�46x5}8v�����<����q6��R��
�:�i�j&b�w ��V/�ݨ��{;`���#�2��G
Ot褬o%?�j�9�?���H���&
+��UX�s@�zg@���DRe^-@*�ȡ��
Mr�% y;ꠕ�נ��<@�f~�h.�rU���7�
���&e��
�K�e�UX�C'V�_k���p�]ۏ��:��bS Tͦ �
@��P�TP�}���6����ڛ[�݀s=�X�/�4���2�d��1�x�'�6q���W��^��+�&��i���,>�=7�Ʒ �g7���v�_/��+s�9���{:
��#��j���Y��l'�W�����������ߜ�$�wqy|������"���M���[Q?5���_v��u�?N�9��Y�\�ә}�O���bʎ�JyQ��������zO��b��͎��6���d��w7 �M��[�L�5Ğn�.<�
�����܂Zq����ҿ�dz�澷Γ��^�OC���V��^*
�z���Y����
�V�
tS�g����]�+��n�
���=O�i�'�6ID�|3A|���ߥ�S���*�����{�=�� �m�Gb��^u��So��_o�����S������̷+b?=.�|��st]27��I/��M_�G�\��3����Xz�s��C� Ln�~�6�e�U�[7��
2��P���v����\t�nv�������5MO��Y~���L����9Ǟ/~��y�n�ye��v�ޙ��{��+���
�)z|
'6Zz�O�Sp�W�m�xLIrҾ��B�0έ�
��ˏe���*����O���O�v�Y
Bx~ W�f��c��/�����s�Y}E}�)��2�L�z
��њ��v�C��%D�㠲�|���g)k�[p�-��(��Ѩ�ρ�
+�
+����{c�<ޯL��L�=^&��C�T��&)p7�IMY��]�M���x�fo3��)�?&�)���m�t<r��d�
�M��U�.��(�6�I��
��Mˊ�c�ґ�l��
ø9�� >�Fw��S�,uX�7�p��d�|��xy���6)1������!勏;2S3�o�9�*c~B
�}�#��ا{�
tz�Q(vW�J���j7���p��p7-��2ћ�2lR���I���)��y���ܩ3��� ��8�T_}����W+�Vow�{=���^���7q{<%���Z Q�o�$�!�BeBD\��p�1�y1R
+f�V꒥7�i�a˰�����Ob��� �o5vf
��v��K]�AZ-y�R�W���ꃣ{q�(�K�Q���^��Za|��zV�*{��{k
�������|�7c_
����>͈��"�F�����k�hZO�i����m<���+eƽv�Q�\-�A�P�~��
{��]{0f�sl7
�o��,���f����.��z�]]��
"��d�b�q� PG�$��_�0�n�xv����L?
�����ב8R�5l����6�[;f��A�#1j�R���q���C�<
&
+�沭�V2�8o���y��L�.y;H�-���
�S�]K�n��P�1߃�;�z�~�
܀
�
T�gh���"j[�hMf���я��}��l?��5��[C���R5���֛zO�/�b�2�<�T���&�.���D���S)��}Q ����;�+�g�\
+�|ox��5�q�H%8H�Ď�B�쵿
��ϰ���f
��|��~���)�����:�f��d�HM�a���w�k�/)J��Z @����j��v֖:�J�ͦ/��)����oi0�k����j�5=�C��H�Z
~����|)�D��2Ϭ�1�v6�
�63�~��������Ÿ�4w�84�Z�������n�v�+��3{P�e�X_�;F��"H�N�tb�.�3�kBb��$�J���}���c���av�]﹨*�n�^�����ɠ�D�,�9��?ȬZU{}��yƘʐ>{h�����
�;=��j����F!p־��&r�������V��M���B���[���Ԣ�J��Pn��A���^�}��Hyh3\�E�d[a��mt�U�.�:�;W�A�Z>g�Z�l�
+98sef|SL~w3�@����8�X�C��j�
7�
�4Ѳ��J�����n�JtG!Ş;��������mi�GS����:�xr�M�ԩœ�
R�e�{����q����.0D>�w�q7����f�U�=.[���6�S�T�ES�[�!I-A�NC�l�e
�u���jA]w�� �_�˛����y�*�;��% 9�K4ړE�u����
�z���T��R��K%���R1�����棩��u-��WΆ��A�j��6/�Ui��OB�wo����}D��6�V]�yI-D�� �"7 �&�O˕��~_r��T���Z��I�Χt#H���G� o
��ߝ��4���l��n~L�� n?.
�Q�pS���������
�`2h3L�Y�aŪ���y}�]�ou1���aG*(s�e¸+�������y�d
����n�;*����
<�P���'n����̳T�f�S�����]�$�]�.��{\>;�X���s2�
�aq#\���i��oo�r��n��[�����
��\t�꒵�
+:�!��;�D�۴ؕC�tO����W�������?r���֜���-7�n\y��zh6*�(ֺdL&6
�i��-�-E�ve&!=�?E��?��9���[_�NO]��ܸx�5m��K��Y��g(�CQ��ğ9Ib��K�H�$v)B���V
���&��uln�EWɼ�lT�OX��c&�Zg��]2�nNt�=֨��R��>&�P�ؒ�'x��&�X2ۥ:-̟�|�;�ܳ�A�0
�྿z�rq��v��} �V����n
3��n���Tn�w;��G�yx��
+�X�UPY�dFe��
W�
�G��5�<.���
)6��d�R�21g-Bz�K|��/��@
+��;�cq���Ϸ
8���ޏ�:O����j9nh<��ѲY.�][,e:����r�3k_��1K��(�0M���S��Fq��"{.�&K
�#{J��d����;�a���M/s
˙L
�.�c�h;O��U�:.���Yu��Zp&�d�
�����4�g���嫷�s\�]�Y�p�tL��+*z)�b�p�qխ}I�n�w$o��M��k�x:���E�h ׳���*5+F.�����%��WNV��U�H���r�
0���s���]۩���Cᦕ����P�=�M���K�MN�-�^��$^W~���y%�������+0�|�N�]m������˹'j
y�YF��:���/W
n��z�h��bA;�K�
��E���#�h��^ �^
�켷[e筨 X_���ق&����~�٨��!ij�A����ls��~��Ԑ�e[��D�n���sQ�V���H�'c�
���p��ۂ0f��V����F><��\�BP?���ץ�-�7SC[#�i�7 ?���t�sM�ܬ��N�a� �
�g���\�c�А�!U";�� o�(��0c�m��dk�af�z��u+1�8D�����h��
7���\G�e�ea
��'0
F�o
�O01�ͷ�#@�2�} �=�$x�q����/ Vz �Y%AZom�,H�7�\�n��p�� Lk8��l����RBlv�����@1X����1�L���� h
+��N�_
?�<�v�sK
c �'����%�$ǟ� /����T ���Yr���4 at .J�^����e�LFc����ҿ<�z����N�>gz��/,�
�-��n Z[G� �
+� X'����do *�!��� S����b/��4QH�#F0�IIIb����� ]�
;@#����4��e�k�Z���Fs��26Us���.J�I̅ʳӡ�}��W��
�=$�+/@��@���s�P���p����`d�HP�S=�qK��`Bv�`��HM�L���}�L�G��J8`�+A<L@�~�����|YkKq[�5�^
uܯ�t����!�VM|)+*�5
4��
��t���
X<
k��pb
�����d�v�{�URk/�;�C�_��n8����e �X� �lN ח
�
����8g���^����8�|�\_m�|���Em�7Q�>�iU@��?S�G|��
�W�R
:U���
��&R�����G��~��k�A���5><���`>% �F;UՅ���2�<�<x@��+ ���ƍf���՛�&����J�;سG�5"�f���!�*����)ա�#�����i�K����a+��r���=����@| A�!�J�
��.��ii��D'
%���
+6�Tӛ���(�p�v��4�o�u
B����m�Ӧ�%�������:�:t�+�O /(��
r9ɴ��� e�6��|̀rt� �ٿ�қ�S}*u����
��ѻ���П���
+��R
�9).ԧ�ޗ��w��#�~8���;�� \h|�6�����,�_fvE�~�/��G��U7Ke��e�/?�^���j��%���3���ҋ�27�O}U�=����n
��-f-���,��z��+9�����J�Q���B�N�j�r�1�\�0���C�[�v�x�o,�!�3�u�O9���ަ9�_����GO��X��_�?��v���έ~����k~aF������'1����� <Y����~
lc��lvzڐ�L!�r؟D�{���
D�aDʵ�^���d�\C�yd.�4��O(B
Q�$#��[��#>��f��y&vaB�=�MB>�0Z>��ܯO�Y�ek�e'���ڇ��*��a�r��H9gg� �Z,���zQ~ݷ�H����{�5���tg��ɱi0���>+�{�p�/�O����n��>�)�����/�t�Ԃza��1,�n��%�r<���� ��)G�^f{&��eiOhuրhs���)�F��&�:ݚ0;�
��
�=4�7z&��h�
��� ��`n>�A>2� �����eG�99�����:�}���A��O�=�ۋ�^��x��ns�=����yJF�DŽ�t�c�r����#��a(���;�C���ٱ/*Y_��?�
+��:q{�V���z���;�r�^��\�+�h[Ǔ���Ye������n:� V�e�
�Y����\���ǩ�H<#�P�#?s�P��\CAT�.
�{?�
�>�Ɂ^��@=�P,�
��u/~������V:��V�Y�u'���ͮ��S�F�v�rۦ�F>߽TR��:�?w���p=w?��6�n�j��<!nچd|�c:
ٳ4��f�Z?�Μ^�
����p�3���sÅw�מ��o;�p�+��Q���N����.�gn�9'_����V�2Z
��Ͷpǡ|h0�'\�L
��+�.�F��
����3X�-��(dlir\ȿLȑx�C�1��
�تC�
��w}��x�S2;�b�܉!���B�8���;��:hۘ:n�mi�jP�Us�ٻ&yk��r��_��B]А_9�Z0�h5������]٠�䬩�-ת��*)R���
L��9Y���WF��^��������w��g'� �50u
+�woT�d������^t�&�Z�Sg�58� �=s�K�c^�Pl�dk=�egz'�*�q���t����ޫ�g�}��Xy�)���l��z��٤?��5Y=k�`^ܼ���m
��
`��w�Ǣ'?��
�j�v�t�-����,C7�!��vɨ=��]S�Z�
�
[w{}k�
�lpV�ͪ~����8V�_�U��f��6�y\��q��q��[C(�a�A�u�AM=8�)v��}
e����d�#�ÜA�!X=�L��"��n���
�;4.�|��O7WS.}ܞkޚ;k���f5�s�*��Z�� �ʻ�/����<a����{�Z��
ᜃ�G�J�rv��,��{��4����$�N7-U5���?�0�1Z�����an�x U~�%k
��0�f�
+5���.3gr_�Pe�*2V��4�&V/���Z��ݲ�i]۸n�-��Zz��u��3�>(k�[�e�3���
�漚�X�k[)�H��jV�+�,��a�/\�?�:�ռi_��a�
�V��g���U~DX����u9�<�Ew��������Őy�Q��|���E�Y�4]>2m�25M�*mufZ���21
)Kw�T,5w���-�{KT�勢ԊM�ȱsѽ�>"3�K"���"3�)V� �g.
+��$���;� ՠ�������O n�]�e�ӻ����2=S.�-l ����ϡ�k���l��<>Q��>.+�|���o֕�H;��Imh��n�)v�P�L�|I �������
+��y���I�ڂ���)"�m����
m�_ݑ?��z�*2���yK������(�����^���O-k!Y5�H�G+�ȱ̲2��D��Iɢ�ޮ�� l�l!�.����˱���7!�gs�[�X~T�X<h8!7-I7n*�,�����z�e�>��Г�qXp�Q�t�M��5p�ȵ��^����~2���M���?�W��?2^�BR�����mO�.�S�TjCxpRMd:?G� mw!?"_K^}�gnZ�d8�'ivtM�Z-
���zfV�bV��AXK�����<�֪^��â�����2P�ٗ��7~��*!�c�-�j�jDrc'
���~�^�
+J���
�*H�&ſ�#����H��!��L���r�|�V{�[,[_�E8�z�A7o��M�ё&�&�������b�� >�A���`��wn�7����<��ٲ-�-T�#�z��
?O�#.���U���@��kM����a�c��#��x��7���ԞP�A�Ƅn1�&A�E�f�⫒ݎ�<Wڑ<�a ��m V�K�.#�~�̀,�������E����JVl��r��zC�rK��³�[�cfp�f�����/k��<���P�n�
�A%�n9�N��gS�x��(� !��Kk���D�[(�FG�C�t���]c�κ�+�����}�W���:��d
x �������q=J=�
�T]
7���o�:���IG��㧳`�A.b�k�D�0�A�A=C
�~1��fy�
8���d�
B*h-����]��$�O�QA�|]��?i ���m�#�Aϡ�(���f��r��V�
Ơ����ǵ;ժ'w�7��6��Mg�W�&S5e� ����/���銦�a�|-���n�����
�g��q5�Il
+,
3�C
][-�9Y��A6�=�$��{T��(�p��&�S�����
���͌1�l_��n�{����2�\��84��WT[���9�v�[P��n����fk�~K�Z� ��
3~�.&���'��Y��D0�9�H�п����"�~�F��,�ߌ�*_ZT�9y=+Bc�S����Bww����@�B�}$R�<x��C�z0�y9L/wi*w~[��Դ|7ǎepMꎆ��`�ܧ���D�Yw�a�0�gE���y�
+<�{����77�>
+�7�nSBv�1�l��2�W6���������N�B4 V-�飘�� La Pw���q�r����B/��n��7�Wc���6�KSu�
'����Б
TW',�/��yg }/N7[��a&Z{�AƮ/� �m� ��/��\>A�J�V �؍������8�� �{m�
���K0a�;J��F���n�#��i���'Xg���V�|�W��'����W����#����U^�*a��h]@�t���L��B at n � �
+D �������5I�9B��!�$@0�Kp��'�2�ch2�s�O^m�Cs�9�S�9n
�v�+_ͱ����
g�U�9XY��F���z�kA��8
#PH��'XM � ��9A�Jp�RM>CR���* 5��� ��(" V K��UD=�[I�S��Z���f�}���+uZf[�c;�����c-F��R�6�y�
m@\���K�.�+@��
PMa�@]&�l\�8�[8H`� �4�LM��|@
�k@
�W�) �Ш j�� �=���Y at 5�������0Q��oL���E������{���C��>�Tp�$
� ���A���G@���/�q���X��+�� � ��� }9@f���V/
��S�Yd ����:`��`��0�����%�L�?�v�#��R�`�!lN��]�Jf$T�I�.�h�����K�,��> SP.�i*��/��O�e��`���_���緎�8��J��-\�΄i���w�,�q� �9�����M:E����Ԩ|��ކ�4�
�:�����5Ϩ�w�PJְc�V�6��W�b�De1W��՜�s�
+���?]U�b�+l"�nE���j��W
�R�
�A>�b� �A��*�� �3��d)��A��N��TE�TJӘ�m=z��P\1���Gqk����$d��~��/��?��4�!�|�L����������=Pr ��,+����p���V@<�2@|m%
�hu�`�h朊��: ��d�����
��( �U
�����Q��~��^����������_f��w�D�(��L����L�
+@
�
+����wq�Eޛ@�� (
~�`�����nTZ���bz�*g��?ٷr������h2�l�
s���
��T�״o1�5� ��42p�p5�
5�>_ʅә���S������8�Om�T��GC�ۙj��d��y)���G��Q�<�w������^�+9x�/�xW<_�
v��G�v�I\]�c�^�÷u���e���Wk+��
]&qf�k?��&J��́���T��%#���TM��B^!0�g֪���^�o�s�~m����I�)�S�c��Ä�V��y���}��b��~���N�\��Ld>�>��W�f�?���u~1�g�<22�
^Lw3,.f҈�?�� CHM��+_���/��[L>����N�"�oݢ��/l�ϗ
�H_��vy%�l;
+)���pR{��
��\T{�|(
�6Fsxj�g���ۿ��ai;96��ٷ�c?�zG� ��5h7B�K.���'
+a0�Z������O✟���|
�,ٟ�
��R�,�"?���ΰ�KN���
k-a�l���'-u�[�(`���ի�ð�u��a���q8��eU�� ��O�������ꩤzُ� �S�b�y<֩o�O+�E���%;A�a|�r���(�s���K�2�t��j����(�/�0�w�ar5}��{��
��&?�d�p�7X�,��~l��>�9��6q������̵���%��݇~���m��F����s�����l�Y�v��4�6���Kk��|i+�䭪N�ѽݬ�!Wm
���T�v�4�ǖ��c���%���?:��gΥK���
]�.��{P�x⻜�
9u������T��َ�O�
�i��n.�]�I4�d6ɷ�l
GT#E*���8J���sFi�3�Ę�v�aȊ��\�� �S�vW�c�^�^:��w��ڞ�<v;�r
��d��2u���©w+'����6v?��������o��S��10��Ժ��Z��ܚ֤b�gK�_�1i���f�x��ym���^N��<�&9��깡��;��v���3�M�
��Q>�YGp�OiG��ц��j�A�~�M
;z�f�u:M���5:�ް~�&u�;�j���ٯ��f�p.cM2n�J��]֭�/��:يm��
+B�|���\ݗCk^˄?up|ïb2^���V� �x�
��wV�wT;:��|o�����T���H�#0d�2`�:�aJ��ZWko��p^�m��mY�ӸkA�zX�l��AeEw��|�7�R��l:��c��pkx5gp~ҳr�W4�ƽ���'/�0�������"�
%�v�B��s�z���\��>i������[u!�?k����Z�/Z�V�[��c���"V��K��Qƪ�}�Yn��^�8C�U�K��
^�>�=��u�+i����o��S'��K�O~^dU�\U?��أ�6>�������V��ZM�>
��@$����q����`�m��Ye��W��
+*�c�X�T�(��>c
��g�ϝf\�]���K2�6��.>ɾZ噦2��E�L���X��kI)�5W�g�ZFZ�����`�J�#����p�;�z��IO�����T{�L���P7�ԏ�y��Ϻd�ckNƓ*ܜ��;+:�G�4Y�5|*��/N蒁3�WEMuTU�|*e�X�Me��=�r���U5�IVF�ݛ��d
��J��|�"����
r�3*�J��PJ�L�#��O=
�2^�������jg�_J���}L����g_E�xb�`�W@���N����Mˎ uZ��*tZJ�[1J1��Z��I�bI͑�����4G"ϥn!��[�1;��υ9燮�M��m��C� �X��tһa��A�؈;���]w#砶:HHՇ�j�Z�Ĺ�l�������h
��tW8*�7rW���k[��$W��P���A��"��ҹ�)��ܻ)�"�D�1�_�x�� ���c8}�X\�^��s��e���Mp��9����=?cy2��Y�g����3'���3�W��I�+T�_�fv [...]
+D�bzM^4n0j�L�(��(��=|�
+��xO�w�8s��jd�� ��f��`�������r?+�Ej��O�St5��9��s��nk�{:�9�;�9([|��
+
���Tu&zw)��J��%�ҝkR��P�X���z'��&���F��o�(1�Qb�ѫK)��-�
�[N����8�X�N��(�O誏��f�
oʼ ��6=��r���B��<��!��[��7�J��$���}���散�}��r�'OǡFz�s��e��%W
�$�?�.��<��C2��&],�tϘ�al��
+���'A߆��t�?��Uw|�fn,M��縮ߺ�jk]`M�8�ܱ����?��3ٟ�͠$3��
>����hӺ$c��Mr�$Kܔ
B�&/
+6E���*6Vf.�#�����{�2�2�e
x������
+�eX
��S��8|Q�!�,v�{����ew���n�|0W�6��k��Z*�M W�J
$��g���&Q�<�ѐ�˜�W�k�y�
�Oްσ�`�E#5�f�>����捼�X
��LM�C�>���p>Er�c
+Gk�($=N\8��P�
g��i(�-�q�Is�U���q��)�� ���
�
=���Kl(>W��''6�)�,w
<,
+
6�+#,�s�R�7H29"6��pCB��n�RE
+mȅNn�/�o7/ԬeNj�~�k(L.
H���i�;��
+78
��
+.��-�0��OV�j�ٷϲ�n|:��^�f7�h����$;
_4j~e�� ��G+���s
7��nq_ڄEj��N6�
r���0�z'��A
��:{5
]�F�*���6�f52 EH���4�ك�~���B��k�wA������w�c��擡��Gqdc�Ѡ,Z|]�s
Q���[j�;�}��� n
W�|i�|
ƅ�
ej�~��~ƙ%�[f�oy�Z�g��
<1��ͤE�k
�����!�K0� zl� ]�|���3@ǃl�+:ho6�7�4��\��KFγ8�K}~�o-�ߏ�������d��֫� �,�p�
�ו��S����:�B��`;�(�L`
�
gr �T��
+���Jp
lj
6�
�=;k
F��
`n���B�����x����s:�s��^r��j�+�{0��d&%����������*�ܶع�cȈ��g��>[� �� �y��6����M�!
<���� � <*/
�n uQ���2�}|
�
�x3$��ދd��|�t�~
�q-`9��ޘ��P>�����%ڛ�E��>
�sXns����pq�; �~��8�#D�
�mA� <ա71���VO�ߞ׀�5߀�t�� ��E2�@���y\�1`���`\�����]�j���]
.�Mu\/�s8(�>���}
i���Wfb��! ������
� �S�����/��B1�O'x��*X��P��
Pp1�`%
+حT �(ɟg� �=y�j�ϕ�RZw�/��p[���r���`)����ao�$UjN#��
��k��l'Ԧ�� �lz������ �a��l�t
��F���3t�pN0- �eȀnc��=��3hkaڦz]�]6��櫧��e�WzϘG�?��<�CMJ��
+�_�X~z_�D߿%�y�T��%��&������
`�"
+�Dz�
�Z{Yb�,�.+
���8`e�
X�6���֞Ҁ�5�ձ�_u�
U��6�K9m�P$�
�$�*�>?��
+�
��x�߶�?>㟿��-�O�������N���T�� O��s �d^
+x�n��)|�)P�OD�O����20��҈�z.�����6m
�15��{�_:�y��c��߂oz�4[�o��5�q��W
9;s�SB���4 � 2��6O ��Y@
��@\���1���K
OJ?1����>/�VAU��ѡ��{��
��8�_���|S�7��j�k��� [q
��
�U��& ��;@��K� �,��#����^��w�����������
~��S_��9zC�֍�[�3s�;O�V�ޤ��hםX�\�0g_�*ݾ0S�{�s��t��I����r(!��7��fiM�4�6���ϯ<�4�S
���O��r��_�Li>'�V�Q���w�Њn�_�^Ɂ~�0c�z����t�0����2��s�o
�͡���s�@�����Gi��Z|�B���NuW�v{��l&R��O��/�6m]j�M�e��v>'��7O�G؉�aުt9�
�|Q7���
�߆�ݗ�\o��`��a|4g����N�|�.V�F���m������^����Z̥94������O�a+њ���hҡj�!�ܬ�'A|���*��y?��u5����{
��#�El'�i}qx}���U�&3>���f�_�b^��Hq�s�۳g���gآٚ�^gJ��ޤ�y��ݛ���h5
+��)|�'T�&642+m0������{�W¿K��i��{��I���;�8�
9��� �&˯[���m;�G��
�
�S2ځ ��Cc��Gww���˄
_~Ć�c���HJ]��Hf��ʠ��ԃ��rx
�؎���T���{�g�C��˴�����
��ܓ��,ſ�d.�m��s�q��>����R{��?
+h<
C
�
'Ra5�k`;���1����Q��o Ч�m�l�M�=�@ ~�!��ŧ�.�(I^ �f�5��
5��qp�"�q��p�����Ӷ�l7u˦�G���:�7;�lE!����p�L��":��T�\��`�
� 2�v�Qt��]���Ƕ��)�v}Νz�~+y3���
+�mG����v/���>����:�x�o�x��b�%��
Sn��~�q
�
���/S��A�v_z��y���w��ꥭ��ʂ
_j�b�\n��\�~x�.�ڨA��Q`�{;�!��� Tv
��yj:�5p�Q���;�ߊ�H��N�/N��Nn�c�4�{�����ݧN�&�V�
ڈn}7�gMZLle��|��+l��X�p��1̿�itpj7�0�3�61�����Fԟʑ�'���˝h�Sɯ
m�������;w�5��Xlt���H�w��˳j����@_���|��jaX��mjew�u�B��j���Tl���^-ǁf����o����lxޤ 7�
K��i�Ŵ
o��t{��`�鵣��ݻͅ�
o'�
.Zqc�o����ܭG����@�@��=�m5_��oԠ,ip�y�.U+DG�D�_����Vn��
v�I~�
���O+
!�_��ߚ� \������5�S�����W��1�MmXn�|�5Ա��dd:�tl���I�n��AM�����[Lm��q�D{�Y�^�
�\��sϯ(���y�+���~�ަ�Ӆ���5z�,Esu��Oj��s��eyY�y���O2
�\��b%-��a���3�D�)=�2�Z
�����1O�����2��?mW+g�W�a�I�)-"ө�v�9s�\���o.��NrQj&�)h�Sǭ��f^+S)ۏ��社l������������
=�H��n�8p��R�%0�˙Z�L���
+�gP
����>��\&�����6��v�'ulZ���k
�5Ϋ�H�ݚ
�w6���R�L�j֜��9q���� ���C���FIS��ҳŶ{햎WdRb��^��� �>�2d��v�-/�/�Q<���G���OzX
Λ}��v$����jы}�.۽�U���
�}��eښ�|�U���y��h�neF�R|��n���� �r�h��Y�%v��]BG��c`��Au3��|�iF��29�a�y}�ͱ�5��Z�g��q[l�0���Shu����u�x�ӯ\2
���WŚή�U4�~���1�@S7�R��
q�@j|�S���Q�ԞmK�{}���](����3^�x��\�Ӽ��e�b�5w���Vk�*�oz]ߐt]��D4��"}��},����Ñ�
�X'���k�ՙo�J�
(bC�!�._O�
+)�;�9���tnIM�i�4��%N"�Bo%�����yy��o�ѫ|�`g�<Ö�
as[�e,R���kY��\��ުK�5{?�c����;'�"ݫ�<��ѩ��p��
+�^_�n�0u�֩]W�#X -��ɔ;��YW&���^>�ҹv���1vx�����Cvf�S6�Kf�w�e2Wz}P�t}��iL� ���앫d'7�H�H/_
\��
E�u2��)���z��GRLnVu�G�џ��Q�ﺵި���3����i�9������Q2v�zB�v�9�)�lyhwkR��1T ��>XP;:XS���H�q�Iv6K2%�j��5�`�;��8L����0��
�45jI?�5���f�"�
<~~k���}�}�F
�\tsu���P�͔y�J�4�x|rOu��R���ÚL��tC�Z�n�t)���N��������'�������8��������S��D�u9D��z�
ה�#�}���^��<������7�&�����;��|���8��5�A�V�+w��<�P�:P�S�$��Ӝ�x�C7��Bv�#��
�6=|@>F�{�Y����J'��'
+�FR����Q�^ ��;vq�����W�
��-�A��{�)�Cu_p^ [8�x~d��up����������Ǚ�o�
f;M�(_Z+Z�:˂#�C�%���ŕ��
�\�*>�jeL��
t���R���e�7F��"���i�S�Vl��o��p�UV|�<�ʹ�A�@�K0��e��
��
��ߢRd�
N&�
+�m�\6�4����ج��aZ��O���K���
+�n��k�nY�=
�|C���������
c�Ylu���*�>�����KQ^�����^�y��U?���[,��9)3��Z&?z
���� �G� ^\4 /�!��=���sX{\2��~f�6kպe��^}�k�?��;]��";�����p!��&��)jN�&���5l�����$Siv#
f�(�'@T����H�j'x R���&o�\
'
�_�ֲp�I���[��s0f����W�rS�X�Dw�J��i��&Yv�Ǐd/�����\��):M��FY9S�2@�v9A�(�����u���d$�� �J���>9N�' ��ɳL���W�6� �
+�l5�
+�����Y��7�i|��P����5���J3Y�I�jZю�=�,���#>�3x;g���䬌ռ+ cb`H��@�$�S�������G�s
`��$X� �7�q0��<�'I�2u���+�~�O�7�/)
��%����o�9n���Lw?ٮ,͊}�13*�p6��F�����"9}^���-f�E�HP�%�; '���4��N08%x N���
�0[M0�S��-� G���x�I^�l�ē�׳C���*�E�^�u��|�����9ɽ��D]9xݓ����
W��z�&�U)�X���<��x^��j�& j�V�ۭ
�T� FQ��
uO�d!�@�$9A� ��� ��!R7y)YN�`
+�
��# �]rp���i>��xg�x�����
u��gu]*�.�f����nL�eX����v��beH������
��1$8M��q;MK ��
�
�OP�
u at z���6d�'�W����������SM0:d�·�����績)�EeZ�mE��H"��w�����P4��v<�,��O��7�m��P[ � ^
��V9��W� ��Ҕ:w� �l@��)�>�PBN�j�u�R�qc����vl��F
+>y at r�$�.
B
�<����b/R�پ�R�7=͛?�>��� )��28`���!j'�M\3�Y����י.(����
+�"BEFETQQqEq� ��?HVuU���y*3�LB�+�
��b &�7��"p�k0���2z�oA���^Rw�&����D<
�ݤ�
֝�r�U�~����F$�������L����П 8�$�qjnbL7%ۄ(�.�*வ�v� p{@
�h�O��_l&��A�P_@���5<�t�
����H��i;�KRMJ��3]��N�W��|[��K��{�v�A�[~M}
e��`�>�0�
+���MP�mW�20*[iGƵ�PW
=蝺���*O��e0�S�M��;�k��?Q8�ٖd:$������f���� �*�3(5�#��K
�f������֍�
��'��4~�7T6��Z
�u��;�
+������~��ܵ�h1�P������ܩ��eG9E���5>[S+���ɱzF�%����;��K�J�'���x��d��$i�ȼILoTz|�ջ�AF�
>����G�K(��'���aCik����q;x�|?�v��G��ώ�"ЖZ���ʦ�P�BD�i���3����i�����$����(�d�����=D�Z��i�l{��
+�
�����n��� D#`�O}c#��v���?��;�����>�`������+��%<�7^�EP
�
�O�9���3+g�S��:��Ylt��J%��_v�"R�0��IKJr��#?���n�].� �6n~-��g'���Gv��o�����EP=���+̍�4
�����w����hS>\�&�u�N�׳=
߅��3FV#�¡��~\_{�.�]�R�?QI�/���q��M��6���E{5�[}���BO�9��_��B�)��'���>
��k�q�`4_�4�#C/�z
�ŋr}5ͺ�:]�x���;��P�ж-V�/����O��s�e=�vR#,q���9kl� �sy�
|��K�k���ѕ����4��]e���ѬX3�^��~�4v�Ue1�ъ���R�P���*[9%��t�_��G��*�+V!�9Q��j�̙ҏ����U�w��;�����KG�t{�
+Z����~ٟ����xïLu�܄��vN-i"����+�
��c�u�͋d���ֿX�
O��i�%�o~f��9��� -�Y�.���F��w��N
����J}
��K�:�R��]�����GM1{��v���?.�Sѣ���2ѡ�O�H
��r���P�ٳo3N�W�w1�3�}mp&䕘����^�:A��vt����V�Ѧ����N��3�R�eK%�����+w��s9<4������TF�5���M�mu�6
+�CE>�H���Qtɧ�"q������ĥ���.F·��Kw���nmmʩR}�� �ȫ�7��
��p��h��d3�<������X�|�c�2�,k�Ƴ�AۧV�:h��T_m��D ����Źf�!H�-Vf3�f�����,߫>�V��'g3����ͮDz�>�D�^�Kz>�]x�8
����-[v1�4ݲh�k��6��H��UWI���
V�U���Pt~I��Q��$[��R�x�]��o]q�
�������a�s
+���w�tG��7��btILǂ���Ii���u��Ϟ�֭[�e{���]8�����f�ᠮ�og�6�����5�5��<��~�YP���y�U�
��jf���Ls岼��1U���q��á�.�s�ff��<W$��pX�օ�>�}�
�[x���S��Y�:�Z��`�پ��Q�ӂwg�
��ܨ:kL�S��NΊ�[��Q��5j��v�r+w�?���Ѫ<��A�|�
�y���@I���Y�� H\o(Ll�[lq-*��0�.�t{,����M����(E��{�g^1����������Q����
�*�&u���w�>q�[�y_�5�Qv������E�
[{�<qC]���=)S�ܒ�F-�"~��y.R��^8�T�)F��_�4qU�wS�{�W�Wo��*�7
�
�uu��F�m��;�"�
����o
�tV�o�R�Z�k�X�
<��q�n1k\c�J�"��g�J ��S$��Q��3�����8�\�Ԟk��=������m=Õ
��|HdӬ�1����N��F8y淕�'�v�M|�|;�z�0�{��V��
ϝ����F���L�����Ǿ���
+�#ջ� i����-_*��*\�XSr�ɻ�r��}�#����x�i�Yy8��)d��KĨ�t<
��8�$]>�
FJ��)=��<�.�\ot��Ƥ���*��0�\o�?gvw����9,�?
z%u���o~������J�L�<��*ou��3�^����߅�Ľ��:Z˸���]f)
l&����u��f���o=��o�ux]�Tw#0�3oWs��V������v!Fr���+Z%$����r��b���S{���s��F��fw���m��皲���u����
4�@��P��ZKp¬ȁw��,��w{
����s�V�=(���u�#��R���ʝ+�C�����m�K��J�+R����
��P�b�7�ap�\�i�y��`���>-���s�a@�_q
�{�K~RJ�����R]�qi�dw!
�*����lc�O�!3����Y��v�Eo��y�wr<���۶2$����xf�_���������Λ8���Ly
+M�/�.��=�S^!^f!��1��0�M����'���
lky�v�#Sh�#5��l^9]�A���
.ҺT^�m��˔��_)PL{��xsQ!��J<�]����.�13�zA&�'|L%{!��O�!!qoM
+[5k��>|Bg_�f��f d�����1��'����{��ǭ�]�G���ٞ��u]�*f���K{�Ϧ���nw���xz�V��\�;��-�"#1�����$U1o�Ա,��M�(&.��6�����g��t�O�
��[>#Dx9=T{�Z��P�w���i
�4i�=hҩ�#��z��+���117/}йhK�5��4MO�b-b9�
+�
(��SaP^z�*�[�)�W�
+���0ȶ���ղ� ���)��vU'�X�8� I(C��
�����Re
+M��
�r����@z�S�+�~��^
�zpF؆[97k��CRqn�ٸ#hw�%O3�t ן3o:�.KFA�
�v�3G�r����G��g�<�~�l1]��24�U
J-�NjQ�9��9�M����[�h�% �J5cL& ͫ�a
�4K�!� E3�b��0ׯ����{�����+
��
r�\n*V�pUI�D%{~�ūT|$�y�C9�g}j�z�_̸X9���I��Ÿ/E'�@�@�!���N�h�@9��<z��;��z�Qzÿ�`1 =��
�@���e���'��ɬ���q��u��tM�^�u��1�(W�t �MOf;�mr�24���m+�C�i��� s�1�i1�X�a�b�{ ���u�]��ac>cAlBWb�M�M��f�;�S ��� 6pv ����?�+�y6w�Th�%s����:I�Pm���I��V��V��ר��j��C�ؘ�ӕQx@� ��
1�j�� �9j�)b��1n;�J��,�]��1W>��-�G�4�-- �ě\������v*ɎۇI���Ntx_u٭
�%ƫ�%ڡ,�(�P�� ?Fj�S�3
�O�z?�G���
�1F�o2��h�bl߀��K3�c��QB@
�s�������۩{-e-<�x�;�\��/Ъ��E��_^R�.^��K�4F)q��p�Yl�{�<L5�7
��~�R���W�mюq�2�&��ח1&�� �t�m>ѡWl%���/-b�#@�9 at N� �r��N9~];`���M<�]Ψ���c iG
+k�NmZ:]�_��B�9eaQ�k�&�+��F�8?�c
+���/���i��P�p�a=c�@a2((�JU��5� �
�t��G��ԍʅO
�N�r����vlU'��ܑϏ�3
��j�T���!a�
!��8A�U�j�
�r���H������F�wݻ��ň
+ o��1�C�� �qi��ҥ�>�7�!ȷL���O�12�*�w�[��g��x��n"�\n��X|���竵�e;N���L�6�ũx��� �
��A�%��H;�:��
0�x
��c�k��#��0�*o�؎�J7�Y�OJV��Q���1G��fn.~�}`�������
�w���v�����������i��Rp��
n� �_1>
����0���NN-����ꐕ��k
�V����e*>�Ԍ
5 �U�,\s��D^�����z�r�?�ſ�%�59L"�R5��h�QV���>8 ���@X��@ؽ
D� ��c�����]��+N�#��a�3��G�ڎ�Ƚ?�O�����0�C�-��@���6b�<�[K���q��A)��A�(H�$���${���|���
+o���j�6w�};F�y��Z��w �W�������|����g��H��O�u���f$
?���� ;��
��pkd�m`�����nIIPC���K�+���EL���}|jwWU���^��F�b��ޙ_�n|����ѯ�#�]{�?�w�X_o�n���.���qsi侙)~����G��^��%�
+v�Kx�ky�tm��Q�Jږ�"�(�_5�Y�4�H�]/W�Y~����Z{�1�G�`�]�᱁�V�
�J�➬��)][�8P_AΫ�T
���K�}^�E �
by�
x�P�3�?�+��g��sr�
��}sn���O
¿��l�.��<��:>Uxv���,�R����z��c֎KO(\=�{.t�H͍,���wM$�
DN��'?�����e>¤x�K�q��>#H�$�5�f�9��E�m -o�6�q�aǠ�e��џ��tX���("��&^�$��GC�����Ys��5������&��ĥeo<�˛�Ldw#hC5�^]_��'f_��A���2ξ�!���|��vh���4�}[�ɽh�ԭ��:���Ɯ�O����Us�Ӆ��c�&a'�ɒM�O��,�_�J�d�r74ZT��lZw��= 6ӡ��m[ysؿ��i��^/��^���Ze�{�
����G7S�L_�%᧻p�z�؎�P���6�m���7�%��V<G.����;S������s��
�?Q�KVy�ރ@U��c�����^�d�9%K��eS��j�S�_1��"�c��{�h�� :�A�_����]��[����[��p���M�3=�1֮E�ڬC�5(�d�^�UH
� [...]
+]�g�ڲ��̀�z���)����
+/2�5�����٧�ԥ��`[�aGj٥�܌����N����F9;�>a�f��P�v�E]��;��ё��̬���~��j<��J
��U��H�
�|��
}�]|�d3�k�)����������N�Rغ���M�GSLQ��Xɧ��Of5�0
��su5GҪo���`��آ�w�Q3JzW���B�jשK%ڸيH�ѳ<��2�=H�������O�`�ot�>Kw����^1*,�^Ms;:13����Z�S6�sr���/��:���T�=*A��]�)��t���K�; [�\��oXUȼ�����m�R.�*Mif:�]N^I-�W�m1�Q6j"����`1�uesJb:fl�ˍ�η���a�? ��9w���e�C�M�����4Iiux�6���Y���r�p4
��g4���ȫD�Ѻ""�my�
�ebq�f��!A�x�T���LZ�����(��W4��_��B>����
>�˞�y{�5x�nLx�
F�
�Gi"
5��8̌�{�.��j��6͛�
�,[KqE |8 e��b�2
�W���sm���N�H2�Z%�R�|���?��"�s��>���^�)9�z寚���%��a�2��q�d+�����
eL�3�05�<���C��ǟҫ��M�`
��e;j� ��CX|ר�.us���J�!O����˗��SרS1{���u�p�
��v������됏93�P����C�Է
씿#ljɲ�B�5z5}Z4J�V��9��v�GE�qv�'��~v����d�A������`�3�C�z�U�j'M���bt����
�2���KV8D�pFR��m
+U~�W��ë뜔�w�i����r�,v���ؑ^�؈F��֙o���W�2E�,#N /�B�i�%���R7��#/���F־1���s�{��T����%��֙f�ڻ՛����4rX��c���w (�L�����v��>7"
�7Fٞ�
�~��̘4�ܼ���y̷�Q;\ra��
[���]�ĽH���g��)���.�����]�a��'�)����5l����k� 7�K�(�G��X\�Ou�
�� &��.e����"�A�bg
eTV��F�g���*�I�Z���B_ϝқ^���F�U�W�ԏ�P�<�R���,��m`�Zy�.��EX
G��D�}n�.ϓ`R����u�
���s�a����E)O6����R��T}2�'�t��}�
+?�
9�+h^�_P�8�T��Y�Eҡ�*)��1l)]�D���]��J=����R�e���<
�R
�)5�H��r�;�>fsG��B���P�Qv������0]Jv�$����Jꯨc�Akk��(�2u��-����������K��P}<wzϲ��Z1��y��[<>��$<U
lt,�#z�Қ��n�A6���_E(�iNi�!���U�#��I�n*]�6��(���
�(��ƙ]�?�șٟ@���O��d5�5
o���0��̙箴Mm��kv�x�!ӄr��A˅�i���B�X&dte�E�w�FZ�x~G�n�3z�p�Q
�8�c�_M_i}b��QDHz�کY��둒�t15�z��gV����6p����H�L�=ow��Qo�V��I���\�0�}*�q�\j��B!�
pi�k�
��q�GP?�
��e�e��6�52��C-]��K^��w��v�rz�� T��Aj����4��% ���@V֚ [�g1�w�U<Ȋ�V�p0ԋ��S�@n��7�n�}5ۃ��U�n�e�gzW`x�(����hצ,����*|�
>'.8Bjk(sE8(}�KXZtkyh���h��)y�`Ӄ��W��uc���d�:
�H �Ϫ
��@���l�vF�.�
����=�S{��'�j�
����m��MU1��<��I�D��jЅ�
ks�S
rĕ��F9���2P�s�
{̂�s& RL11Jɂ
)� Q�C
�� �� �@FZ �L7��H�
җE��T z18�G��ɴ�����k��0�7֝�����w}#O�K�܈L�(��k�.A]�x&)�*��@LZ�3@��@9�Qab8b�C
�<َ�;1�
�
+��������KRQ����
b\�oK~�LP6�qn�Ժ
G��NW��͛�yv�hA����IM9�b�;��$]�>�S
�%���
J�
nN�}'
0��,ߣb�� ��U�!��6c\F C���
�X&c��+�c\� #�#�H9�+J�35��
����P֫g����o;���!����z�D���.1P��ʹmx}Z����[�2�x�D�� H!F�
+p��b�; �%�/ �Q�1V;�ùG�
+�,^�1o
)O��7�}��{��Z �9���w����Q����sj
[���jF�>K�%J�^���`���'b;
��J[i(ߒ! 4��-��z�,ю��c��1
> ��)� ���b�+��ǗU"g�' �*�g�L� �L�~f}}�{e�2�X���k�{�QN�I�y�;s� \��
1�A癲��+L
����A5ّ��MGRctZ�
F�W=��T� �zc{d� �X��������d��$G@���" �� �����L�t=c���A�Qh<2���?E�2�q �@V��[������q<s��{
+ړG��x߲�
n���/p6��k�K�lpL�[[~�آ 爅a
�:��\�r�&��nO9M��\���
+�'u����:��8�����%��Z�BT*��g��=|(�q�7`w��;��3b���5ԃ]ǰ�1���2�"��2 ��,b,#@}�I m
@�`Pj.�W�1�d��YN�f�*�4���c��
+�_�s�r�'b�w�Ŀ�DL����*��M
t�C�oV=��1�k@ύ�,h�z��wyD�Z��x����kK���{P|� ��W��.d*{W�op���-J��՜������� ��J��M���s��
�N]�
c̎�u�,`�L�nj�tl�� ���?��|�
+����$lv3�M�ڹ���뻆��Q���s�W�t��v����X��,�d
�����雘|=��;� BzsBn@������/�m)
b\�@��V�
΄R���$�_?|���g�@>�;�_?g��$Z�
�ϡ�h͋�����|��u�ί��]� �Q.
D2]����>G@
�h z��!;�o�鏤���YQK�
U�
��vk~
���
��JᅙR�
Q�)R����R���$�P�a�qFa���{��/��]�}�����a����� u�v�������h��d�́�[T��#���
r'"m�nD�*]��Z9E5�JA廾9B]���ܻ�#������N��wc���:ҥٺx(z����է�oW�H:-=Q�{~����Ō\~T�S;ŜYy�7l�M���+�%FYx������j�7�j
��������A
��K �\�e�w�&��^k�Ryϗ��ë�}
�:���k��V��S?�b�S�T�N���j<.:�hV�~F��,f�~3�������d�
+C�������l�
+�]��`U=O'K�
,A��
X9�,L�L�
�D&��/lj��Ex,�t��Ĩ��4���
+�E�W岋��@�펳�����Њ�6sS��]�P�hr4� �?U�~\��{%�0��n;�B�'i�/f��^>�f�f�Nܼ��9�
͊=g蕻_S���.�j���
D��;�
�о�l��{�m�L�"���_#�WV��Y�*&�δ�*�
�Nz:�
���
"r��k|���l�ʿ�������Tv�I(�6�? �ѡva�f�}�o��ދ���+>�=k,����Cs&Z�_T�~���A��N`D�ߙ�,��n�m]&�ZK�(��ǰ)"g��
8��U�'d ib"LZ�76
�H\�_=-P���:~�m����&b~�܄<��Y�3�&W4�
W��-��VNm,��C�n�V�`�.����?�aӕ+��s��4����Z��WR�9���ê�ۂ���#�J
� ��$����^�����B�Qx�o�łoB�����KG'�Q۠�o����9�uq}�ſ|��V<�)��1V|N��^A�5I���\Ws{M��KGE/[�
Ĵ�)����e�����jQ�
+Xw^�v�{��3 ��ķ
#'b�/o��s��g�`42|�p:�>�,Z�s�7�s=�>+y�ɨ|�{�|�Ç�C���GE�5H��ZV!��7�f�MJ'mNfS�R�V&J�m,����>(�)v%�,�&ɜ�+y�H+���+�o���ȧ�=�����D���jl��K/�]�H��?֭�X�������*A+�
�"���1��Y��U�Z�X2���jȽ�
�O�LRi��q :W��ʛ�軫F1�ܾ�C��J���
+y��a wK���Ml�����t�a���4�D�kz�u��f����nӕ�&g�%��(eEg%�F=�f�2}��
��gĔ����n?�d*��<+�O�5X��s����T$>ѣ`�Ґ�XB��o�~����É�h�>�R�
�
+[.M������,�jC�����o�d..����U��[
7*輥6�X���\ծf�a� }���
��|�Ć0Ԋ��i�w�S0�=K��#X��[=����K^�[��.츗�� U'Y�i�D�t����kH��:�R[zT��қ�� 7RT�P�A��|�h�f�v�����ag��eổD��
��Sי2(א��YdD4����E�#XJ��/�Y��@���Tc_��ΖG����!�v/^gT��9|�����J!w8��{�rt�<#{�("nԌ!9�Ոq���LZ�FWt�ц�uDvq��������UP�XcTc�B�"u�RIQ8x
+௵ŋ�k~�/�o�2[I9f^&}
�rWi$
��f�iS;D��\4˙BjO�����S��2��n�p�Lϰ�e
aչ�a���c��ΝH+��n���,���VmC�F���a�Fm�:�9̟�¾k�e����|K
}w�f���`2u�A��B:���X
�7(�#\�vK9��W�K꩓}��ޞD��N��d�����}�"��w�z-DC�h2F%Ⴀ�Fڳ��~8��D�WV���զ�wB����WIi���{��%w�]�KuFъ�AZ���
+a�����0�(�
+r�uʐ�� %�E6O�0�Ű\��e���1��͜�K��
+U�� Y�
�`
+Og�p����N9���z��C�/�����q�lh�����F�jjg��؎[eh��P��.8T��uTj~�z��(Kܤ��;J.�7"���<���/3�4��88&�sK
�"�̐54� -�q��6
�v�8������t�L;&$A������B ��T.�e�ƨ��-�~i�����Ӻ�f*��X�5g������αR����=��*�69:nT��.�;^>b,m���z� 4�, H)�v�r�vu^���ӥ�7�$õ�qډ�
�P/T�Hj��b*5d:���,A��|���.�R=�n$���߬ޓ��m#�Z�9n�����$�+�sٻ7V�>�|?!�R:���.���Bļ���uFpqrͶ'�7|ďi���
7�Q���Ǡ C��S��0HU��,�3��S�y] 0Mub<�I �D �YG0v׆�vt�
k�������GE*73�̪G�C�R����~'v�˙0D��]U�
+�G��<B6�9�
+az`�����>�T�fR�c�HUG+,>G �m�`�g�xy ^�W {X��} ��� �c! ��JǸV <�.uy�m�l���$�5L������d�4V���+]��Re-�9�&Į��1͚��9؍ǼW�:y�ƍ�1%��P���4>�G!bL9��2�u
d��wW�r�5�V.w���8��p9Ʀ���
d�:
+�b���
�-:�O����L�~��8F�396
�����V?�
RFǛ���g�$D�����M�]8P
W�L!��R�-r�#�Q�b
�Gd�\)F��ϫ�/q��)�c�@Ў,�\O I��m6r� {G]�q��ޢ��Dw;��e��g��K\[jI�%m�T� ���z�q.���b�T8T�_O�lk� ��.�Y�,2q%!�S�q��N���s��r���@Bg
+�u9��2�� �͙�؎�
<��]㴟��0J*�}'�I�č�(�Z;�:����o��o�$@�:�_����
Oo��R@�x6F3Љ���J �bZ�� о7� b�� MtN 1E�.*
��u���u�@5�h��?���j\̵qz�����y-8��h
�d+E�j�[L�+�P;���i����T�߽�p���R�� X�1&8���\�;�%)�PU�
m=��ب� �9: l��c��_����X_� L�
X-�h�y�Q�89��
�h����G�����M߱V��sF2��xɟi
��O���["s���yW�2�H�Gd��E�b��c9ѡ���˅<�F16>���Q�.��6 �]���#�� xc� �2\�g=dѽ��U�:�#sk��⒤K$�_��7]B�<�9&�^��OH��.�
��
�̧H
+���*
ˀxR�-�ԉ��T��X? ��!1�D��V�(~��Ģ��K�?� ����)�c;
:�g��=I�H*���^��v<7�@�
L�Oϵe���8Qn���+g"���o&��0Fw�t9���qȁ\F,Ǹ�/���e� _o�️ /���ٷ0�.���:�~��p#�cεʭ7/��Y�����hƃĮR:g*7c�+��]�����+]���n��z(3���/1��ﰉ��^�T���x���K�j�@)�k�3a��EcB�x����O<���T�������33�
+�v
'����#&���� </��-���5 MƉ@L�O��-q at S��|u
+h��4C�6#txuF���U��,|�v�a3���(<�W�w��_t1�h��a��g���U����?p�gs��
c
`����1X��L��[�Ӏ�d+�t��U�َ��At�ֈ5^]���l&;T�I�_��~˽?��KR��T����G�M�Wj(�*!W�v1�
��M��
��u��A��4��D��{��(��3������0��%91��
1�Ӷ�YI;��O����_o"7'&����#�&��o�C17����<@�h~���R6@�!mA�Iec����Z��K�bx�s����
F[wX����
��(�\̗�8�)wurac>���R����q�S����f�@|=����
��1��4v�߾�u1�˾t��W��u�T�$��!$aI��Kv&�^�5b��^��'j��+�f�ӧ����֮|�{���� �/��Ff�:j�[������m�>=����tg���
�3���#�EP�w��^�Tp 3�&�6�*���,���(�o [...]
5I
���>�f��RS��Q��lߟ�K���
:�
j��ڢ��Z�g^�f�N+NmJ��|ؒ���c�ѷF3i:
z�f9�W���@��A�.����
e?Q�U���(������˛h�_��E�ʪz�[��
�1�P�M�6i{��6�xj{K�u�D�6�&����ЫX�!��\_q`�{�@�z��o;�C
��b�%�ž�}���cc�k$d~|�f��h��j؏K�+�'����avb��O
����'��]
}�[u�I����}�W��l
� VC;4V�GxZ����j��o�M/l���sZ���j���i�j�H�Z�v�-��\�� ̅��;�e�z�2z8>Tu�� �����d�d���P;/��c�,f[�
�6��{n�����LY���H�0����u:��
v�Sz�6��צn�e�W3������qC�]jr
�&��i ���~�x�
��u~��4�<�r�������)��Ϯ
+R�<ۄ;z����f+צ.�[���̽��!ٲK����
��V[j�鵚��:�j���֠�h\W������IEoՔ�wlm?��<T���2�M
� ֑�)Itp(�o
:�BHD��(
�G��j���[��a�ٷl
+���6���Q�Do��H��\��;ZWs�T}�*w�J`c��~��k�;����V�lU/�=�
+�pWq[�O��߳�2��K�K� ���;������xy���3>N
_C����:s#��h�
�����dd;����Sy�W�^/Ptnr���s�z:79
O�2
���]�f*�j�VDtE���Q�f�[U�.�^R��+��m ���1�Hf.�DR��]a�������b�
��mr"������;-�1�7�2.k����
j�R��٩Q��%3�_�eɭD��""��<n����2!m��!�%�$�J*W�D�}D�ie�$p��QۋB�
��:.o��{^�Y����cN�U/1�'�� �Шo?�s��?��ڭ�sh4�лR�w����á]�
+�Z��YQ�>��"�T�Q�^����+×S$ޯQ���fB|���`{�n�W.��
'�';��'��,ڛV/�*Sy:����l��%��(�DŽ\�'ef��&n�m�Yx��@0���CVH�g�ve���~�f�·�GIer��F�H�v|�����ؔ��x���s�v���ܦˎͣ�|.�I<}���7�B��������`�+Q$:4rF�\��ˇ
C�k�%-+R&C�M�d`��f
+�2t:}�m64f�p��CIG>T���^R�W1p�W�(R��gx�e9��1vܵs�\m�0���� �@ѸD��L�����Ra�ҕ��۟��\�28�l�������N�E�2�^up�W�k+��q.�l��=M���N��!��1��
e?<��Qy��SQ�qz =lz���3dˢwadκѪb<�~������ �l��x�S�I�*��f����_`o �)X���f���� ��(���&_'�
�c�w��y��R�J�e`
�>L5�X��!����Ḽ��sK���X�x��Ԍ��j�ǎ�5�F��\W8�����
r����@��C��ޥ^ �����
��7f�V�ͅ��nP0��j�B*�4�}
�*Cf���C�Tb)9�-�&��mQ^�ݯ�f���-h�����i�R�uK���X���ʩ"DkK�;�逸u�>�����۫���ڽc������+��0���WT("��V���Ҁ���8c���e�>�hq� 1�(�ƽg/U� [...]
!s���p�S)�"5](<�2[� �|[!�)ξ�0y�\g�y�W�
�g��
+O�i��{C����(O�^vGLUҫ:��)
�?�y��d�!2�(�
�c
���6�
^p�R�>�(v&�?RU#oTE]<ZLC}9���k�ꋢ���~͊�����2VY�n
y
+H�P����n2��2��Ch �b�z���T��
`��� ��}
dJ� 2�i
d4�2��cvUו@��S5�a
�6`��s�9眪n͇��ײa �ꞵ�
�Ak,lwK-��Y�.��
;�ٰO�/�4\%�i�K�)
t@��J�#��Ƒ�@o
&���'v���i��Kx=� �j������XNSҌi�^CV[2��%r�)�>U�ց�ʳ�u��4
M����o�f:B�fF�f�qT}�T-� �l�= �a�"�P�.Pc�PSt
P���6cq
+&��
3�>M2�I ��\��Sk
+��8��lWWt���s�A�rƇE�8�����$��T �Y�����
�C`㚳M~�6
@
&�m2
@�@[�$@��:����Y_ :M�}��"lsn�78�߲�NG��"����I}+�ة�h
aO�pl��,��ދļ�+��n���{�6��
+\�F<�?!j�$� X:9X�4�s��Ksa�6%�l��6� �� �(�X��X��>�� +� Kxz
� `A�
0G9]��ץl/)�
I��c�;�v��.�&O��8�rE��+��Q�L�A���;�A->3�Pf4V����� |p�qp���6%��!p��a��m�1�;�e���l�! �r9�Ve9��;8�c?GRA���R��BkY�<���m_%~*�
ѐW��K
���ӭ2��<Ϝ��a0���@!�\[�3�]%Ԁ����Թ\\�ݽ�͖��!)@��J#Ȣ�m6!@P�
�����)� �7��f��!QF�~V�#\]� ��y$�d�3���
CWDCk���%��C�_�M���n��K�՞����䉄�TY#Ж��I95@�`l����Q7�B��>��ā�s��Z��Mi �Za��hI[hU� v�
�,pb���όrX�7J���s�uz\u��i���A�oߩ��o�;C�9C����<Z�W04���, �}�+��2�� 飭l��Z
��.
H��z��l wlS�I�� @�qv 77�
b�����2]�i�o�L:����.����ڼ��K �5a4�u*0���{�U��PՎP���a�,�ܳL��6� �"����r����l�:ʢױM�(�/(:�~�
+��y�� ��?�
���,�i{��1aw
I�if�jt-$���Դ�gx�
6�v8t+,��L��Ǧ�dk�S@��T�&���+@������.�f�e�e��6�@�Kj�.�d�;@�w�zʠ�����܍v�>^ul��0-ڍ��>~!ҽ�X�q-K@�;�8;4]|/1��|%�M��9]�U�n�f���%he�K
T�&0 �
0��40h0�Z,5�
�^�g�d��$��;��g����r�^��6
��6MlՁd�}
7��*��������"�9;��)�F�n#@�RZ@�Q'۴Ӏ������.l��V���ޞ:_էv>`���M�L�V|̱w��I�eD1d\�D4��2y�8����KjJ@
�CK
?����0�,z�֙^��)�+S�=�:�Sn��ưL��
��9s<h').�� ̆�Zm�7e[g/�)�=�w�>�m�
ξ�X�QN�n��2�r�n�^!7(4��� s1�E���v? �R���z;��7�}]<��Îu�e\��M-�30GD���m��J��3��+ �
�F�����6[���|
l�
+lˊ�����=��f`�2I3/�ġc��d%�}`��mG�`dc(�����.˚}qQ#f�yS�:�bsڷDۓ���O=do��#S�<��bP�m7�cFu�]
+(�C*Cm����!:�\;�϶|=Ì��[�8�T�,�z
�mmצjI�,�c��I�ix3�G
��
p�<(S :��5���k��
R����C=�E��H'|i��#_=զ��\+����El�l�S�A�]���}Ǩj5G��^�Bէ��:\︪�\��
z��
;��,w/��TG
O�6�EB��kn
t;Vմ>m��a�]��o
�Ym4։��a����.�$��uYW;�ƚk_�K��t��U���T�H?T��21D˥8��StcWX�Ƃi��s�ݼ�\�q��\UY�ְ�d�z(� ���
ʆY=�� �`!�<N�w�M�v�m��Ki٨"�A��~�����xV��R�o���`_4̺��"=G
+��
+�,}nW�Xr�3�ͺ<�
j�I5f^�љْ�g�,wWXr��f�h�ml��s5%���*�X�/X�is*h�0��.�(QC�[4L�P��8���
�]q�͕m�b�X=V�5ץ��4��Lӏ�2H��:O���6E�L�d��)K�_�����
(�
+>�:���h9
D
�����r�rh��d�e��
07�ɆZ��י
ȕ�Q4[s���&���;AƔF�5!g��8aAY[ I-��D�l�%
O*��yr\�j�kʆ����E�2
�>
�
u�EW];J�r�G3_K6|���"����OoQ�FhO� m|���d\7�$R��>���.qӮ��
}<��wȨC��G��1�F�0Tv���}w��B�|
FL�l`T$��i���.��/���
Iﺗw{��hó����@Yn=�
~
Y=�,��J*�_�i�_����FtW��#ǖ�������B��:$C�"�#F����z �-
�vN̟r8Iߢ�}f���-nO9�
���A��6���f6�p!P�;~'z��
��q�x���
=
\,/����W�7�fu,Zv���K�
ub�L0B��yU�O����pX5}Y�]7'}�U=
yv������+w-6߹.�,���;���GHG�L�
����=��m�>�l4�XZ�1��j�钖���a����|
+�����Ql��m�5�
#�<�:����.
_ֹx�H-�q`٨�M%\�I*���yg')9��T������8�z��+;�M��u�-�f|��`�n�p2c-n�(�2]�ý�Ym�L>�3�6�Z�@60κ_L���Û�1}��0��ɨ���:ј=7u�l�t:Ϯ=ӻk����ӧ-Π)dwD�6�}Ta`*��:3[�k
[
}�j��)K!j�3� Sa
g�\ˆ��f1�4!���t�(���;i�f�2����!
u
�8��i,�m�� ϟ
�����%qɉ�܋3�E)�T��H�e�-*4�q�
�˧��
�|��
̖�صV3���B��ht11��b����eu�|�c�ة 1#z&��NG���a� w
:�����n1u�ufz�
+yg��Z�����$Y���p��R�C�vv�fиo�4�B���io�s>�Tm�\ �������Alk
�+˺g�0�8u0�����c�gc�4@��q��wWk��zCܿd���ީ���.
��2��[�ڤ�:]hkUZE\.53���c��zM<I
�`TEV����� Ld�]ih:��\��`
u���P�
����T����n�l���`���c�e��;����W7SC�W��]��8=�W��l�r��ӆ�*�&8�[��ë�j�)��h�� B
W��T;�"��
{6:�,��i�����Qɹڼ;�J8�5�Dؐю65.,!���i-!
�7}K1�nV-~��Ê��][c>�,Kc����+0u�[թ���"�h�G:����&
-�ϷDˠ���C�0�Em��DǽUD�.�s����E�����l������9̃�N�9�W�G
S(\X����S�
��mS�
���� ���>�e\t�{��Cu�-�運�F2�#
��&�U<�"�vo�h�G��
kxȅ��A
`Ѹ}����&���*?��
eC�NW at U
6��bմ���^$�l3� $R��(�x+�Y��:�h���mK��E����MƎTZ
�����|`y�VPu�4�=�+x,��6uQ��0
��:�h��z��*6Lwr���R�� ���
+
d�ꌑ��V
�Y� �djf��w^�L����۴� 9�)�
1?۬k 9�v�Ս��,u���� �]�d
��w ��ሾu
+�ə�Up�\��ڍ�c��
�m�P2�5�*�3����Z5���izWD��SFuLbe��hn�f�= >sa�`qjҁ53� ��Υ��c�P��}�.���]���0P�
M�NkN@
*�KFOћ� ܝ!�yGb��b��!�Z�A��`���Y����d�l[�� �b�=����`
��Q��hG`;[O�aEM��r@�ڔ�:bnu6;f����f ԃŮ���j�/dh��h��
А��6�8� �.ШÜ�X�ߚ�y��o3�7��D�Al�V�L��m��t����F��1�o�6�y��~�1�����B�h�$�
gyT���6�&���
ڰ���r �`
e�
4阛m� ��Fk at S3���@SwX�����&?M��M�i/�}$��DCi���OآvWԿ�ZBIU���%u^����k�O�l[������-���("�)
�;۪��Q
�d� PՔ��� l٦ ���.�U7���̰�١�ۜ0�:jN�:�y���3�jq�m�ނâKdC�A<��0��a�DQ���U�����HnO\a���|�\��!���K�#Gĝَ �S
��M}��\c�)�:
:"P��c��8 �1��E���}��� ��H��Q@��2@�9��������82C�:�\]���k��p��q�%�w���Iԙ������5N�HV�R��Dt9ҩ++��
+�)���1���9�f+�L
�sq+
��~TW
��6/�� h�lSf?R'�� �B k�� +���{�R�t�mi�2T�]L2�|
�<�� Ћ��$�f�x�ኲ�Ď��P�Ppu2$�U�ѵ!�S��# ��- ��
@h�M�x�B� o�4�K~�tC /k� �[ �
�ir��j���6�l��h���� �j(��8�H���z҆�j��~\�Dw�lȸ)%|�r��cI���c�>�u �H�nÅ4�ZWq�N����Np
q�ՀX�ar�p�B�xѰ�٦YD�pȀ(8��(E��H�F�`I
�.Ӥ��ƽ�r�v�
�Z��jV
�*� '6N�]s���#��W����
l��3��iS��ꒀD�Z��uul�7���Q��Qh{��VK���'�i聶��ͩ���h�Y
+h���ڣ�Lb4��1�5�w�W��^�m�e�Jr�%,�Y��eIWfd8�����3b��P���V]6\� �7�!|
ۤ�!]j
��� �qئ��D�d��)cf�e�
T���ٷ��Q&@��, c�eza�mSV?��.��aKVo��5��)Gl�R�d\
;g*��B�.�X�n����3�>���
W~�k�W-�[�d�
�
+���یw@��p�Y:��H��Nk�
؞�N5�j7(j6:�1�0�(X]"�"R#ow�+:lֱϜM)=X�wx.NuU�.�~�4ΝS���FXl6yM�7�`щ��Vlb��b�
�I*�6s�A��}:����7��
W��N�L��*<�d��lu�y{'�
#=��\
� �|>C�5�|�`}�l����>5�7�mX
ڠlS6����f[�����Ҧ(h�;h��4E�S�r������
B��5�hi{�i�&��#�g�y
7�l�0����í�"�9���l��R�wc���� ���͠
L ~ &��
L�)
L:|L6�6��{�1���L�S�B&� ��4�6\�G����E���� �k
+�b~�h
�<hm.�0�P�0,p�[FOz��T����)kMa33��0
=u8�ފ��y�� �Q06
�^���[h/�ֽ��Ca A1���
�{��k�����kS
�X1�mVF`#�I���
��-�Ā����e�w-�W퇙�:�)VѤ��Ĕ$:問t��%j�B��<�(��8�;��`�;��*'�YX�nϛj���
�F���,-->��%��Ź��ch���H�g�Ă�P3��]��fYu�X
+f�V-��W�8�[Ӄ��<�Re��0|���Z�F��t���/�n���K�Q�vt�>Ⱥj�.7
���e�l��ˆ&� �]e3�q��[���������ᢎoO�������ӄ��^�v?M8�!A��&
�H��Q@
+�wc.���E�t�)hX�J��
��
)��1��ܪ��]�
,V
���bҪ�x��HU���n��
�ERG'�
�qd�3f�t_c����=�'$3��
����ɹ�X���3���l�|g��
+x������Z��>BMw�h$3�ƺL�
I�M:kn"U�
�F����K��"?�XtfJ��-\�ڵ���t
�L�ɹ�
+4
�1��)U�ҹ�?e�u&ͮ{�l�}Ky�d�]Ng�Xs��:��PD���)`��g��mW�Kn�Z
�Huz��]Os�T�q����a}k
���壜�
+���?hmElx5�%�<�
���q����
���N��/
�*�_^�z���
{�HO�9�� n��Vq��^t����d.`ʴ����;Ψ��'c�m��U�g�R�NV�6�
�B�B ��Q�\���M=�����q:8�
Hq_���A�{�j�E��s�x�Gm���L=��������ڽ
��;�YBj5�v��xjZ���
`
K�hAc�m��~���m�Bxx�# tf������RX[�*�fOgs��W2Jz������0�����4�!�B2C�#�Ygrp��#'�m����m�^�
��#���d�бf�M���v�R��d���}�.˶�ٟm
Mt��x���w��M�#�'�l�"�r <�Ty��]�����E鸭�k3=Z���zM�Ҁ%�n����Z.�
nJF�R���L�~�b��*��cu==r���-����.A˟&��J{��O
Uϴ�<�U�(~����E���/�_4�h~����E��
͡Nzz
+�X�
�"��Q���h�h~�����AC����m���Z��ό�����S�R�����//2U���LR�Gcӎ'�F脼����'9�B��V-�?tn~����E�BC
�h�Q��
+W
+��
d 3A�����x�ѥ&%�
+�2�3W&��@KG� _��d�e#Fb���2W��D���ɍ��-�<��k�k��Kk�A
�L3M�;��/�_4�h~��b��"����k���Yӆݥ�ĒȻ�,�
�}f�'
/A^
+�a� ��S�i��lz�P:XT ��:�JK���ל��L/pWb]�;y �����K�|��@��2و�ф���N����ϣ�F�}=������B7��ƴ��?m����E��F�o��JM�
��:���jf;��0Nӝ�^�O��%wi4и�/Cc(o0��Y��Ò��W���2��_�����[�
^����1g
%.X ����w���uw�I�!4�d��לoTv/��Lz��/_�$
�� ����T����W5�ֆk/��~Q�!�an8����/�_4��T�A�z�u`�g�
$@S�c�ڤ�����
���˅b� �;�
+�fh��2�dهe
P�^F�����ӑg�U#��j��ˎ6hǦ�,Q�5�w��":�߿A
��t����_�-��N'��M#]y���kк9�<�l�S[9ױH����S5��c�MQ��
�
�J�����o��~$\�R6jl
�K��/�_4_n�UV�*���+-�Z=����
hmߋ�*�=�P����GS�
��*Y�>1u��2p�6M������.�2�P);u�.�RcQ��g)��������7�f��/�BL
�y`l�,�U��AWA}�˱�
E�}�����6���
-
+3S���)1Z����22+Ě
f�VK��r]�Hv�\e�X7�Z�o��4z���
+��/�:�'Tw��T+R����/4����4��W_R�JY���RB�k]A���K~L���܉��y9��y�ڂ2�5t�۲���,ˏ�,pVG��+2B_�
+�k)]��_X�+,�w�/����$g�������f
I<�����
��:zwQjZ�}�e_�:���b
B֦N
%ئ��sL]2H 1
�^+���%�rr�`�hЁ^+�Q�
|��٥������ˑ�H�T5,n�r
�4��/�M�]�
���}������٣1�!�m��#�l=�[W�+���h�1�=v��,��4�r�C��_]߯�o`S�l�ۭU�R�&%�})���$�Û�$�n��2}��_Kz7�J���ǵ���� ކ
��'/���g�`��,�(�d��k�;�+�X)���
�Ҩ=��F�<[S�Ps����>���
c29*,/����/��K� L���#��6����_ﺾ�E/TBQ]U��2zm��i�)ogO�9�捄����h���������V�ef�����+vA�S�W Y�d��-���#���no�%Y
+���^
Iw[�X
+��9��ƫ E��y�!���u�B�a��3W���
�"��y�>� #>Y�Չݤ-U��Z�gY�)�ڨ6��/i�c��G������cv �Zpe�B'�m�:3���w`-XѰ�^��7M'b~V
����$�W��`,šG��6����
6�\|m�V�
~?��v�/��Ec�t��_NO�l��T��y˪(�])[�U��!M�ݹ42���KE�P�~�l,�%�:
�R=/^8с\��q<�z�+B1lr�s5�
b�1טݴ��~�����{��8��d'Eˢ5xem �SXm(1MŅ8YP� [��jV,���j!�R�6Z���R��8�B!�!ESBL\���K��Rn�xj%'�7�nə$��
Or��7%���_��Dp_�ZT����=:�k뒷?�
rA��[/�76�/�TiP��=�d���hG��/oX��ېL�;�35YΤ��^�fA6g��/\O9U��)F�pch�s����x>`�K�������:�
�s���N M�'��6�$�QL�ڸJ>����~N����3��iμ*��Nۥs��f��~`Z�p��k���.dV<�o-�ȇ̱���cS�<�\���#��z��d�q6��)�W�]^~]Hfir���
+�Mz
Pa���4>ot�˕-~ ίR���&��AcS%By����l�4�����v!Ed���,4�/ײW���/��|/�
+(fyv�&��M�|H4*����M(G�uD,���
�XX�╠+�
\�����.��I�8���
�/,!*ܷ���PLbq����J"�C
�ſ������e���+�Ǡt �
P�F,!U�+הLn�e�T�'���mE2%a;�9*�11l���ݷ�,_����>SxC��b�F��fA���,O�w�/P1ޚ���
D�
2��Q�)R+��������X��WN������~V�eޣ�y�+r
��ݗ�gcy#�S� ��IR
�YJ1�f��z\N^�,���-m��ۅ�V�?�
��=���C�z��ͬe��*�@Gٳ�@e9�D�(��
�cp(*���T���E�5k�3��c*�0` �=Do�I�)ҙ��U Bľ�J=�,
=���a�e��Hu%�k���A
�\n�^r
CKڞ�>f9TDn[�Xq�
�No�
�i~H;��8}�
�z)?�"���Y�d�͌����xz'
�����8�j�\Kl}�+4GK��9�����ӵ$,�7�[9�
��b�P%�X����R�o�������7��W�Bh�KHK�
ҮT7��اW���&qJ^�G�I
����x1
��"�G����1K ����itO��ۀ������5
F��Sg]�
�/���6f7,��
iD���I�iJMz9v���0k�O���vۚH ��w�S'Rb�R]9�d���x!u<���_,GVb.��7�fq�='�ܔ?.\
����o at s�F/�h`��xN9ܹI�'��uw=��>-AbpOA���1��ZkY�]b�B4��Ot�iU��U�ma�cp[��
�Qc�]h�B�H��]� ��T0BA�լ�<��߫$���B.��m��<�̕i��o����S=���Z!i��t��P���D��̝����+y�
�����23RR��Vx
+f�n���%�0R�6�
+zP�-�6]܍���%�iqٶ9?�Lz=W�;o�`0����b�
{"ۿv���ЄG�]�I�u�c�ċ�sIctY���>�8x���s�r�u�3��Z0Q�
+Y��#��tT��
Qtf�&��*M@���**{9
*P*�QC���$a������[*}:?
c
Ϯ�g�4"�|�����p[ڮ\O4iV\{�J�8Z{V\�m�a6��KI�}k
I,j��^)&J��8Fk����
ԑ�
U��H#���f�9����JV�E�]�
�uų"UӚS�x���\�T,!����VV����$U�r��i�o�B�SÜ�`�[��
�f3�̢��j�4��A]�eT�sjzX�)�a��� �� ��P�MѩI�z4�$z���kN������>?���f5e�F�ڡR�7E
�O�u�
�I���l"$O<<d ��8R��E
�����J��FI>�ck/
L��$��⋜.�!U�E`��\DS)N>�1)��|yA&(����#�JX^�ѕ���pa�Lč�=�2 ۘZ^����9��mr��1o�����N��4^�*�3�N�\�r����>c>[
��E+���go�_4_h(h%���n��fb�D����Y��`]oit�������C=x�ߣ�WVD�M�Yn�����_I �"��D�zek�W�c;2ԟ$�|h�
8�d�y�دf�D[~�
��Z�!���~[�{�'C@�鸩���$t���`�p�&�W����Z r,���@���8�:�
�蜹,C9H�
R�-)��6��z�_����V�Vl at i��/�g��TPy�1-����
������\�h$�
k`^�v���� [...]
+>����2E�j�kD�����KƮYZ@�Aa�
�p
�l�B�kyy�慖b����q�yq�BDsRI"r�:�Xo�]��ah��W)Μ�N�v�wl����ۀ��.ɩz�!��
G
#yɢd���KD�@���)���*
v4��@��.�E�E��Y��N�9K�|���&���.��XҔ=dg*�Bd��G���@]1{��pp�C�~��P�wb���ځ�8� Fȩ�ds)
�R�Àɑ�`ԯg�I�}oC��MRm}R��#�B��-�
+�����Z���B��x��)�ǂ�s/t"r�Ɖ���+9���J��(3�����}o ��bY�U�q`�=[U�>��c�.��#p`��1Y7'Z+K#)�R�NN�2�_�3~��_FC�v�
b��S]���}n�ԣ!��u�{��2B4T'Y�z���B$�ߍI����C�:rn�
�SXg�x�
mi�FR0������kϟ��d��'�[Wպ����J�11��/;�"6�����pa͇��"��
D�WAM(pq��/r�S7�j,�،Pr�M� �bF���
+�\k�*�z�T���r']��|��swi7�&�%J�AK���,�}s֘��on��8(;3-Q�:��:�^u�f-�9�f�
��h�
+ ��x'�f�
K�n���Ϳ5����cK��Ͼ������<}G���F� ��Z�&%dY�DY�?��C��=��&"�˙Z.�*�(\]1r쨦)Q���X<x0?c�Z�[Q�R!�&.�r+
>,�gI�i)]���.��$
o2.bLy%��
nn�no_����,�_4��h��Y�i�Hr_-W����x���sT�J1�y�0sU��E�|����&��&,�u\���G퇄$b
өC�Hڀ
+u�MBr]��:����gG-�|Z���*!!�PNU֍��Q�=+gd�Z����|۴N���,�
eU��
+o�V#bC�|R P��Š=��>��Q��[�!�:�M�ޜ��V
v
� ��ļ������/�_4�m�*炦yg=�WS��{؊k�0L*��u�M�Im9Y
~UEg
�r0�5��r)R2��W���E%�(�,/�W�"Gv�|�Ka�'\^�b6y��
�ij���Z��3��{��a�Y�a�*��K7�K;���l�Ph��t�i�n���ڜ�|��1q�b���q\��>�O�\�_Gh1�[�Q5P�bV�x:��\��ze�
+8NV}+�ZIj�O�
@�&���O^��h~����f5�
���6-�R�
+]2�"��
� d��4\^�^O#��ʩ��<W"Ne����U3��S�I)�����>�Qn�e�o�H~0�l�]$����V)�qP��M
+�s�.��BKě�K:�}�ј��ԓ�V>�Ʊ�~�y*YProIHA�l���
��d$V2C�;��t�������|mƸ�9=����l�o��_4�h~
��a�&�ء��z�[D��V[ g�T�~FŪ��v(����*���$�9�C�X%Q^��y��f||�����2�%�^�(�l�8��D����5��,
�>��
.�NUU���H�ò�
+���-�T*J��,������e�tMU�����F�1w����wr�gF�'���I����t���{��i�M���/��
4w��O�Mc�g���F��Y87a��=k��9n4��ǔ���p�5[�`c at 56�ls^����4y�~T\�[h��l{�ȣ�b��;J�cQ��>l��њ���H�B\����
��2ٍS u�� ��%u
+&�oO0���;6���^��eX]�H�
!�Ǽ���k.;�K6�;
UB�Qj���?l����E��+M�}���קvfW)��V8m�
+(
������;��4��Vtf
��=�V��
�W��;
�h�"Vl�L����~A�� ���@�
d�cMd^�H�Ձ�,�k�E*���r�X�r�1M�
������
Oi�L��j�� �E(�>d$3��M�8�Y4
�."
���T��
+�ۊ�E�����.�]/�pWI�Bē�|pWl�e�]�|�
z{��&�F��{kO�Z1�Ƙ�h�
�b���b�e6,���(9�H��GS�*�Ȥ�>0�� ��.ײ#W��^&�c#��$7��k��6ڦwv�Ђ &֤:U:��Q23걩�5
+.+�M�/�_4�h��h��fԟ�W�a}�It-2�1֨CK�����(5�Q�zaS
e�
r�p�ά
O��J��֫�F�Z��b�uL\��$<�w:�|�j�o.7ު,ˠ���N ��6S�G���3���?
���Vs9����?���0�p��ahr��<�0��ލ.������q7]�'� ��?|�b�����c��K����ۮ���sq2�
Ǔ��7� $
��v|���~5{��l�-O������c�
���?�@)�H�-a�x�A&�����U��@ft�o~6ÿL���4<(|��=p�}�s0<u�Vq����t����Dz��9 �GP�n��:��ȑ����� �7� b�Z�
\�O���[@�(0'�)��.�b|���
���֦u�t��ѝ�f����t�7 �h�G���K&��rNt���,�?܌VK~Ù�:;���h]�o�b���Q�K�:IC�?-3�[c8��ڀsw�Y�0~�r ��U5v���
��L
Aȋ��L=
tt�D��)�aQ#pnn��� �.Є�N��14��A �-W��� [...]
{R�`���Ѱ#e�"�+�v�
���u��K�O���M�W��gu��ɇĻ�����m����h�}s����ڞ�
Q?���4u���������!5���֯7����}�pX�]����#���c�7/�`��-힖�ڵ6��<
q
Y
Mi�n�:!�F^k��y��VR
++�1��W��Z�Z���Hceu:Jk3�XUѱUm+�;�����r-,�Պh�@@k��!͊4֘����P_�$r{9�^��1L0�f�y=�r;�y^ǎ)��Xy�G�8���ɄH+�-��;*�ղΩ�rX!�=vQM��� ktd�bV�$�S�c��gv��۞
J��0z��z����:RXI��(7V+¢A��Mz�L�EGS��XUэC�d�)�tt�Hޱ¹yF�fr��
�
+ Mi
+gk�fe��X��� +<ױX�F�`�
V�"�5�^E��6�t:�0C�Z�X㫃� �+�F8��f:��j�D�C9�]:�Ε���ѨRX3���RåK�Mk:Ƥ�-�.'J��v<7u9�ұ�Mk�>/d��'Y�\
++wH3�]�b^i"�
XY�$֚���b�p�ae�H
wA7)OWk61Y������2RX!���W�5��!r�Gw�Fk�T�,����7�q+wވ��jt�i�n�ʨ��
+b%E�'g�*�{�bu
�X!�C]���u�+�V��гm�
VV��Oc%�sw�@��x˖
��"��Y���p��잾b=�H_���
�yL��3��(
+t$R�B��;V���5 ���5z�E�AW���)� ���,��쫤�O2�y
L��l�-n��^��n-�5 �g��!o�l~#x
+L��T����QB'�9����/��ѣ�S8��{L�^( Oj:폷nO�"~�.�{/�������x!�3��3�Z/�4wY-O�%�R����4�埖����S��Δ�v��b^Y�
nO���Y�"���Ϋ�&��<>�?mZZ���3�:+<'�yg�/�κ٧�Ck^��
F���?����Aü"�1�5��?�
�.٧Nt��"@ɐ��B�(���wu{:rA`�Û����� P��9N�C%E��{½gyUf{�B�b��W?���
�rxe
�Z�$KaY*�u ���A�#ZoG�w���`� �
v"���Y_�
U&̓�q����z3ƫQ�
�j�*Ը�_Cƾ�X
�~��
+\dS�V��;��X9=�YN��oX�T�:2XmY��Ի7
��@�;b�
+�b�z��5�~���#V��~�p�bz���(�<�X�OX-s����2DG��E�4܁^+��`eUFV7��`m�xWf����*��2XYq�4w�p4O��/��MU�BA�y^��)������� ���{���=��u���ܫ�vg
���<���v0��n��:b�� �щ�dcZ�T�zhB:m�C����ߊ�]���B���)�w��+
�
����ۅJ��_
+p�
/
�q(��o�����*��I�F�5p4��=>._�i�}��]��W�
�\����$��
��.��-�7�;�V�8Pc�>R��h�
�ٽ�S�$����u
1R#�֣}�ـ�އGR�+/��5�z��$Ͳ��jW*�n��y9�
��J�4Z{�y$F�Z�9�hN�}��d9�*�ד&-
���h��8�s����r�eI�7��~���
t=�E���K��"m����(rgD7~%�'g�A
�4�١�V0=��Q^X�/5�ċ��.��3�#��e�[7b�\�)i&.�=)�G�j~xޞ_��Y���S���D��v����c��W,�^��Ӛ���ei�u�T�
��m3��
+���T�S���n
� �` ���ccI
�A��x<�m�H�̦`ӑ�@]ϛOBl��*F>ᄄ`�m����z6
�Iq
���9�K
�z*�Y}�R
?���r]QK|��'��kdžfB�c�`�w�}�0ߑ
�t�bZx�iZbB���d#bD���8f��Q�cJ,J�K�I�|xe?�D���a^T�^^�TJ����k
Sp���}<�e���i�����;�>I8��n���rŏͫd9A�Q#K/5��9th^�!�{*�F��U�W���q�&/ }j}AP���}h����D3�
���$����.7J�����D
���JΦ`}����.�l�-&��>�X�ޞ��Ha���<��oWڽ[Wq.eI�5J�Aw���G� DO��k�(h���hz�/����Q���Dr߄[�dH�
+{�$r�Θ?��T�ā�l���r]��GR"~�0����fo�
:�9���)
r�e�S
+���!�Q:�����>ݘ��Y+=ȟ�O\@ +�q��#��
,f_��Qn������!-\��>
C�s
�
!<�N#=��OX>
U�g����OZ"_ЋZ9�C��Ю����K�ٍɓ`��Վ���<��r��M�y���p�W�2=R�s$�½�1��6)��6�gC���=
���=�_B6I�I���^�B
1yyV;�
I,ܲ+�`�۟6%9?��X�m�N���X��4�$�ݼ�@w��d�����C� ����������m�UH�ݾyO�}�i�v.r+M���,`J��ܹ��o|�w��>�|$�2�B�h��_��
v��)�Y��! �@Y��kV�,����
+�,�icU@��bn�;�-hEb.�w=G�������~bB�L�
��8���ةb�9�
Eu�yzO�7V�(���
�^z���p+����I
��[�<V�|�F}�@
��
�}��!�Fq�>q��sp����r"�
�g�:��I����AO
+�R;�F��y�{Bh�wG��S(MM~nJ[)��t���n՝����GF��{D�(6���n�@
e�M�x��(/J�� �/@�+
+��.���w����Ҿ��X(r�M`
T �'��
�g���)�
A����}�ُh
�J�
Hi�e��e�)���U�����rc��e�_/�Y8�oؤ���XhB��d�� ��'�@1lj��ȧv��=���瘩����]꿯�����@���^j�8�t�_i�
k�ݏUY�����c� �����Gn4�9Y�f��0����M��+t�x�������6����
��)�_�Xc'��E�p�ܱ�z/�+9� �oJ�W(O�#/r|�|���C?
�אx�N�|�+
4�D{w>��/��Ǹ,��?�7�oCs\�o�Լ�L9�F��:�4i����6Wp�i>������R��""��ͮD�
��]������/l��p��b�[/v��Mv;���
+�>�T��Ϩqp4��)o�T��1)��ݤ�l�}���O����^���~�� B3��?���'�vh����
�"}9P��!�I� y=�iY(����7(+
��n8i����g����[)�`:r�zz
+��^��=
��J�#_��qK�'��d�^s��<���N:��\�?�����=`���{������:���S��7��^��=�W����:���S��7��^��]���t���A��H:��\��~�Ϥ�IG�ܢ�����H��{=�Qړ�D�j�a�&��[o����v����m�>*+��ߓJF0s�����ˤ*��c�2%��=�ql��lFڣ�0�9%���n�
=��!�J��] �m���yխ���U%}��D��m �
�?�齡�E�$��>��� P
+�m���M�yc'|P
+�!&���:��@������ ��ܣ
-�Q��?_s�Ha����ŗ�1ô�/Y����ڿ���捖�qH�WT 4����m <�RhŒ� �NuWʡ��R�_iƃ� �U`��D�+�)<(L��
�T�l ,�^8ƕ���24
�YTV���e
�;���mT6Mb�Ƥd1A��gr
+�4&���&��`\A��x
+�|����Oȫ���
*˪z�z*�s�6�ĄVO���x9��;���^j�����:EG��{���&��3
�6ٟ#ڋ0�/�M���Dx6�ރ0}'X����'��{Q����Lޞ ��
�7EO
�|��5�1����}�T��������ji-��Qh�Yn㲥\$�[IʞL���Y�^�?
:�\ &۽��H*�G�����{>�Hy� �ݎ��
+�����Ӟ$�e�Y�|����݄
�M
+ԛD=��^\�҇G���O�i��FA�������$�4e�:��'x5�����l�����DB��l�^[oxmMi�>e�y���9���<%��'R=[o�j���l�IJYo^�4�!�S���!ϡ7��ް;Uh�xo�ag�^NIp�&�m�
���)�<���zs
��|��[o>|�\��w�7�0eA����"���@�!-H�u����X_E^b��ﮈ�bw�ﮈ���# �X٧��=SpH;
�����7�4������w)~��h��SJctߥ�Ʉ}&D�FQ����@�o�� b����-�
Tv� 2�v�OD�*3�F6l�g2�+M���әy�
��rf�0����=߃83O6v�g3��D��̻���%�ff��A��<�y>Y3務y�s�yn)X�����y�
�!���[{�]��%�/`��C/��Ӯ��^�M<��N���R,?"\�I�� }���$�b?��{ ��ۄ2���U���\���My��-����o�4��?�%�$�H�z���Yo�����#���^?���ʶ2Q
��ԧ���E�����"�w"��
Ч5n������/
+zo�3V>�٠�I�;��f�û�5e�c���g�d��7%_>�$kT)�.�$�U� �\
��$فj� ��m�l�G�dk?�$[��$�ڏ$��!�J
]����ą��Ui��(Q�f�U${����/%�8�~2)�n�o
~�N�{$�����'�$��%����D��fR�]�PP���Iy�A_Lʓ�����EE��^�
+˦W��ϧ���
.��lAh_�oCª�e�)�ɨ(eͦ���/���BFwP7+ǫ��0�H�Y�xpݒ/Ρ���ocx�
��%"S���ߴ>�m��_h�
��@�tD ���_
��u��r�O*\
��9�PL)*��^�zJE;������������~s�P.K��.�v��=��'���4+�`�"He�n�'�5������ْ,VԘ���'��_]�,=`��!�ɝ=�%�)<�7���5d����'��Q��#��gE�ō�+� �2�����y����We��[s�r���WX�س��<����X���+?���q���u� "�
o�K@���e�}��9t#���{�
�Z���8La�S;p�RwpWg�^�R��C�}��,��^�'S+,:u7?(M��cQ#��
h�jT+�4��]�nұ҈�O\�'%�
��^O�� ��z=������R�
�)N+������
�7�ɂ�D�w�JG(�̣d�0H���]A�ObC�֛�'���fp���q��E�����'�M�ꢌ+�;�}7��Y}$.B�fb��$~[i?��'58�����}���?���6�g�^W����>)�D~A9�OBp�J�]/��c�
����Մ�zb����g��<oB/�$�=E
]��^ܟH�����~?�Oj��<dH�Pb���o�K��껣���>)�����hb��
J�(~7�O
+ԟ��(��s��/'�I�ₓ~6����2���D�Zb�l���&�=�[V�S�춗���B�; �P��'� 79��{����>����\0�'�� ��V����>)
+��??��'���".��>)r�y(��C�}������d���SV��,=눦�i��
+jN��?O
���-�� ��T<�v�?N���oR9\��'n���]�o�S�<��1�_&���!��ެ����T����
����aW�Tܯ��T ,���[��S}�
�V�i�>�L�������=���]��6Ԋ����!� �7��}"�Q���Z9�x��p�H���9Í��_����������/!/��5�(�nQx����|aE���Jkۥ��/%�i��͗s<̾�M>!��C���<��p��͎���
Lqx���ى�t^�D
wm߷o\�U4���E��G6��$+W
&=�DJ�M�
e5
zoV����^��|w¥���V,�
��o�x��3��?��B|Ψ½��i/ i��8(�[֩�ʇ��- ��ڔ�=�Aho��>��K��oT��c�
YP�rߓ��� /e��Mp��\t �����
|�Ob�}AdQ��Mü@�k'�c�]��Uw�>e�y'9j��Ci
+�i��^��;�V�n-{w�aI��G1ߦP�Qr�R�;~�ݓ��2
i _�
��=c�a�Ҋ�7-��>��@��5`^`�5
�P\�����|O������|��{�ߟ��%�����%�������{�$��
����6z����|�"����
�+����O�������
�3پUQ���'yZ��J��\�oM�ڃ��6탂����A���}'��#�
+��l_EN4�G+��Z��zQ�NY��}��DB~>��w'R��}lF��AE��
WK�
��B�TN�[w� L��H���C��%���,4��+[�3Ѭ?�{�ZU���0�������sy��O��
�n��y��zC'̻�{��yWVh
��}��!����0���0 at W$�)ϻx~UU�ê.�w��(t�$�Ə��OR A����ې���0�TNb���a>]�
cy�' �W��Jm�e�a�a��k�˶Ri���Z��l�����d�EqBA�"*����n���W��~�~��"�ceVQU����r�@��?:�?�G�v����tI�$�F��x� ��˘#�BΑy�#Q�Aj.���[<�L��B�['/�ya�2|��Q��
�J�6��c��՝�S<�K�u��z�����I���Z�n�3���)F�92t�:.��1r��k�СW�o�x;�rQ�D�6�=J��J���5��Ax�E<���t;
����2��N� [...]
+^S�`L;Z���TAg7ߢ�q��[
�� �`��)~mV
���fQ<\�w����8
+˛��1Y���Ӎ�X��X`�ºz�w+�Z�6mQq{Q۠�E,�U;^mn=�^W:��&�b�W�
TV����cf���4(�E�v��f�"��]�
�`�J���
���y-dn����x���Dנ�5��Қtm!2�����0��9߱w����\s�{ɗd6��#�S���s��x
hK�V4�G�
2Yp^�V
�܀6�Ӝ��v��"�*��2�ia�i��"���M��s�A;�����bK߷-Gx��%z���
[�S�y`>kb����u�iΜ{�Ԛ�h�Z�s� �最.2���h3Q����x���f��D��v�@H�� f��D�B��#γC� I��hq�\" �S<"�\6$�k<"� �DH���#�Q/!�^��k�N.Ӟ��
�9�$q
gv^L�"��1�\�_s�B�='Jk^�B������+�j�r�Z�X��&��b�>R`c
�.�
+�/Ǐ+�����b�n�WP���x8�Zy-x�
+�� -^�p�����=S,x�nj�bwR�P�Ћk�
+
�W;4�V-x�9��j���5d�r,x��
+c屮D�Cgi
V;D
z
m�Ҹ�вI/P��O$W/x���|8 ��ݝA<�:�<�V�d傇4 ����3�K���=�-xh%cs�C7�^��{�C�M��R�W�E�Y�!��z
���
.�v�\�pL[���L+��`;X��{+�
]
<ti%��p���{h0c�+<���=Zͭࡻ���A��
�I�
z9��T�Pp�v�s
ZZ���z��V�7���
+
�W;\�
�<t
Ԩ�
:�2c�[��᪡$#o燒�f
+
�ra_�ô�
+
� B��'�~�|�Cw���
���o\�pA��\��=��W����S�:=:U;\T�u,x�ފͶ�\�C�Vfl6��(��f��v����
+
���>�bb������V/xhD�٪�B�Z��]Q�7�,Q�І3p��F�lC��_>u
+W�'u
+�P��=T��(x�
�o�lV)x�n�;�^��4q�C�mm��+�j��V/x��;���������[�Cw=F�\���B.��<t�I�Ck7K<�.��ڡ� ߣMZ��=�G�g͏�[%Hwh�1<
�j���Q�<�{�����A�>#�tł��1Y��t¾Dq���e���j��}�����ef
K6��Yh�C�����(���Y,`e��u��jb P��ֆ�a
�
l�����F�5R1�zQ��g�c���<��R�s�
��ߓ���H5���دdN���LI��&E���7(UǪTKW�R��!գ�'R+Y�K���t��K�;A]:
JR���^:����[�t>�ے.
+��Q����/]M�]iЌ�K7��m�&{
�Lc����Ub��hN�3�����W[�oj��q�O��Ҷ�
�����˳���D�mp�9ͤ@7����b�Y�(�?Ύ��l��Tc�V�,�P�x1���J�n?
� e�����״_x� �1�Ȅ�6�pO�fc[x!�� ���б�\��;
|+��^;��I�͏��W��
���gBN��j��q�d��,N��|��g�i
S
#�|n�mNֈd
b�m��3
`D�r�����
ك�R�*�#]�^Wa��A�))U������ݿ��*���Z��l��Om����P��h�7�1�7��?_�V$�Vo���,
}���A�~��(����r<o�Ɨ�P=�6�p����q��4eI�k�ZU9H��쇹qF��aq���n��]K�C����:92^�����K;l�
0�3Hb=g�
ˑ��C~_/G�ír��h�a^:�� �F9���ݪ���[������k�@#�B
��R#R�F��{�"_Kp�A�Fԭ����U���Eߞ B~3� �
+���9z����
��@:q���l ��
�ԲU�قF�9�&$;��\�:�����nW �Wh��=�M�8����Y�yO�j�
�2E�3��~
lV�^>��'C� �t3M��m� �� ��wp�ArT��MW�o[�0���x{o��|�����
���^Cm��~9AMƐ�n�"���/ѫk�Ǵ[ ���dD/�*��گ0��
|n�ټ�%���Rjjgt
~(�M�ڥ��f�����+�~�Sb�
��Ԓ8�ƍ^��gג\��!p5��ս�~�� ���Y�"?"}z^���;�������vm�j`�����*Aȳ+mr2�YH �<*3��ʸ��r��qV��=��^��H:�<Zj,c6�#�
!hc7�H�������j� �<{@3:*�0s�D%�nPe��æs��9��Tb}A�\�+a�1$ހ��8x������D��k��5WoJ�� �P
+B��Z�K��PtC�^&�����}�U���0������9(���yv:.+��=��> �m��̰��J�f���X�&~6��
#^�9$�s���{Mn�j2l�o�Q8���8b����oӦJ+�[�\]0G�s�
�H�
+W:��v��*��`Ss����e�`�o���X�P�
+��~�
+�W�np�xp�� rړ� �1ਛ
�ў�$�x��o%��-�n"?ڍ�p�
gS����w�-��
�M
���[�9dOJT!
���N i�
Ԉ
����
����?�fq].��е$
F�9�C
f�ܓF/�
0ü�DJ�P���{o��x8����
�N9�T.�`��~vݐ3�=
��D1�)����Ì5��oMd��굎m6'��D�:6���*���T��]j��V��?
}
�4�E�q�������
+�?"<�����a�
�g*�tOeh���l��*����L%��Pr�[��$�=����ŧ|��4^�)�ɣ=�>;���z��.�[��
�I�4��y�C�M
���
R��;o'�X��.֛fs�`�O��&��l7C�P�n�;9���ޅC��+���E�uP����)�2����>����7R(͉��&�u�b'i��z}*#����iu<
���k
���K��ƈx8���E���v��� ^h"�%�θf !�
+��w
+�ȶ1�H�8S
^{ X�=qE
D�~���xA��K��7� ��;�#2 at q,L���ʱCa~Fܑ�
#�(82*ϝ�C&]r"�����j�dD�aˁ��e
P�����r��-��҆G`�<Ln�|��Hj�UN�m����A�1��VSF
�n�~�%��x�O�O�@��h����,��mk��
�Q!��0
{
��i--�J@�+J+cZ�oh5L���N�湍���%�h´��\'W�&��D�i˶Qo��O���{ζ� 93BO���sФ���V���ͥ}� @73�gV[��VQ�@���D�=�F����ɍDK^ ��֮�ߤ'yQ6�hh�x'˵q{���@7i��Q� c� Ʋ=��Ap��
w[�؊�S����
�&�}�.Q�1�u�����.�ǝ]�HH�.#�S�mٹ�
�V
+ [�
�[嫽�&��Ej���?�Տ�`
+�Xur�����ك8v� >��_+t0��<R�H�
~FM�!�noS�|h6���PT�vEظR� U�
�D�.U��b�%�
>C�Xt��@7\���� mr3h=�dQ$�8I����z�bf� %��Ӱҍ(��R�r���
B�t��e^�������F*�Gl(6��y
+����森sݯ���](M���PmGݝ<���
��P? �pX6�nK�\�~���W���3��R�T�
��m��pZ���TOM�hU-_&����m��;f�5X�ԕ��x+@����+��}���~\
D�
+�����n��
�ζrl;q�f
�{%?�
��G�;j�lZcDF]��z��AYxx���LQ '�����8�+{
W�R)��٨��7l)�T�ذ!O���;��m-=�th*�
+JT���\V�ێ$����@M[l��{)�$�%EݍD��Q.�+Q�6�<��Ī
�9#��d�W���KJ����}u��2���&I����:�珂5ʷd�M�ah�
�!�jj�i+EQ|��TpX ���FM�
6/��&n؊{�
�B�?m1n�+�v�.�
+
_���!�
+�{�+�k��
�ăsL�
Y!$���B�v�
7\�B�6����qÅX!D���B���R�p!VH6�%��B�Ї�8,�
b��
,�
�X!�|
3�4�7����d\*�����9`���lϝ��Ȱ_yb�
D�
E�C��e7�/0�a�8�d7H�as`�
+
��"��
���QEDM��U��T��
"@0���R9�i_{-�সل�#�㘹���eͱW�̽vQn,��6 ���gf�Z/ ����c-͆A�a0u�s{�`6�^�VF���-H{
�g$6�C{͘#�y <�{�F{
�F�F{��(DƔ�h/����J
+�"��&
�aG��h��ֹ4���Gs�ͪ����� 6�Iџ]��<
��Ӟ��$�3�0��e�lv;����t��F��F���}�rY� iM�H7�,��~�<i5`�� ��!䣗
+þd��FE�����Y#
M���Q�<7�{Enx���nI�Cn"��R�L#���h+O���|8,�H7n~�ڤ���U^/���{=F��@��_@�bC��:2!!4�`N��M
�P�V�<eX8��w����2�F|-�/̵�����I,k�kF�gz� �B��i��9) �
���)
�H�X|:jP�UN�~(w�LA�
���փPT�Y�a�֕A
z��T9:~+�Ϯ��eE���Ğ�,p&݇Nz�3
=��6b��!��#?�l�6�4�x*���q��U�n�u�)����,���
�<.L2���{�y��$X�,�:��h!n~e�����/����q'��}>�oU���7����Qc��]�HI�"����R��"t�"QJ'trg��D>���Q�lT�����9���
�\f
�
+�Х`|���?�]��e#�%00:��c�v��<-`Z���{��8�{n���CZ4OPR�6iמ��a�u4i��H� ~��ox^���|~�|ȑr���KFU��ܔ�H��B�$x������� �}���O�^��i���RXQ��,�iT�ҰPȌ���f����!~l�c��?0D7 =F����o~)�s��b�����r��L8�R'�zf�Nٔ�3�I^���%6�cGΒ�&���}l;OU�HNǰ ��2�Lnr�z����x�T[FC�Y�ؐ�8l���c�C����Y�8$<#d�~#(�u��q�*O�_�~�� Uݍ��r�q�X����=���~
��(L&U��9��= �Gh8�G-��i�(�D�Rf� !��d
��
R�"@
M-��4�持7��g�
�M��z�P��
��gTn4i�t,����@�c�`�N
�0f�-�(nG�!�� a.���J?{��%��\ �T۶���V���N�FІ[+Ϫ��#�
�6aGx>>��t�=rk�=�gU�y�S*o@�
+��&����6vT��
���P����kv8��E�A�� �C"���6�V���O�����"�Cg\B���=9�i� }k��y3
Cm��
�� �oܴ1���{&�f!d
�
���G/nn/.>E�%��D����~�bP#��"��+94�d��F(��ED1�`�U}��
9�Oc@^N��[��7���@�=��Rс�t��xv��|�X\/&T�VkS��A at Ge�+3��]��[-��^+��Ivf ��$�i7�`YfM��,�����5M��ZȈ��R�����y�uJ����S2�Ǽ`�^��-��
ċ7i��9ml�����mNE�l
�@�g3��%ma��������la���h��-_Ƞ-�IsH�hA��=�x��(�H�!��p�8���S(�a�
��`�:���H3�
���`��U�� .���\}�@���o�}�+/�fzV��
�O�I���=
P��_�P%Y���@�t����@t�5���/g�+�����l��s�}�E����vge�d v��zdR��- ����.�\�u�&�"��S��e�� T�d2f����3��w�4QX�?�>�1e)�U�Щ3풣:�
]�C�^���,ț`c���%ȏ���4�b��GsB�*�0Y�Z4
]����s�
,<Lz�|W�
�
qԗϨ! [...]
(
�<-
vӚ��F��H��s?�ک�c���=�0��"#�㐢 �2��|8�A3 �lu�r8�ˡ�8dg@Ԭ-�ݘ��%
+��<�U�Ym9�*��a�l2��Ea�l`���-x{�W"������[T_�Ԥ�>���r��
fGm��k{�
+����{��(�_H^Y
���V�pc��uN��C ���9�!��e�^�9����9�2��s6��9S
�l�q�a�l>��E�-g���>R��|( l���mf���_��VIƉ�Cp�g�y��x�X�gʴ
�_��1�
�#
�[e���C�S�Ւ�]+ݮJ{��8;�1�r�C�i'G� x)!�k�V]�K��Y�Z�?d�R��(�#���/n�贐�&Y��,���jQ�v!z���} ���KҢ}��XN9�9!�p���!X8&�Ȕ�X�^O��K����kRp�fo �*�n�`�.[o��d=��)��@^]������@^]���¹��|����W7Z�3i�Ձ~q�lBy�3j)pqh+p�w2���B����g� �I7�( P`:T'�� �p�E���ۛ5�!�` ��� 5H���j8/
r���قW�O^8��
��x�XӤ��g�6��g��]f�LC��9��-Ҳ�c+���/;��ɳ����N�2Y [...]
@�S
+��c
Ԯ�S
+�;L
�I�,+[��Gx��UB�_Kt6����vR �8�U^
+
��C���� ytvH0)��}��CJ˟�r
���
ʗ�n�q<m�kG4�j��8���xg��W���)�ac�$ʍ����ث�r�S�/���L�[�N��CcGts x�\�l���
l`Ś�/h�Y�����ZHN��&�g�%��նgS-Lme�>>���(ƾ
S
+endstream
endobj
100 0 obj
<</Length 3633>>stream
+�>�h�(7�j�z�z�K3���YlT�G��ڵ0%�} DZ~��
�x5�����I��b�1���)�`^�2�Cˊ�To"�\oX�)��m��Ƭ�����5p�ę�DY��Q���V
g�� ��� BŞk�Vx7��^����{�3d�A"��L3?��iTM��6�F�Ty �Ȁ��!�?S
@0j�n~�< {��+�j��g��� ~�< �
���?T
�� ��\y V ����`% ����H(-{���p at 7˖��f͎kA��?��B٧���������/ ��q�!�p���bk���-rc�� KZ�j�B� }"X���b
e溼[���2���5����U�
���t��^e�R"cv����fu�"���e�U!�]��4�5�^����߳<
lpxqc��&�������T�a1��n���y�|�;"
v�g<��~�O�z2�V7�ɤ�!�|��&������`r;�_�nS�;����ht6��i����m�>��l����f3�WFw���(��\$ � �m��X 2��C����<�
+R/o��
�}�8Bh��
w�mtp��G�ک?�����
�b�" g�N�+E6+�I�*
�.*�M���<��9�C'��EitR�
�bc�r�rY;?-�S�C ��ܩ%Ir�lsށݺ�p�P����9�
Z���菆�E�x�/
�>�3<�/
+�خz�
t�������&zc�^m`�
}pE-N�@2{�#�
ᘐ���xc��*&&(%�����D:�VX|�n3!����&Z5�u2S����0�g��d����� �
n�4�㪴\)��N��k�<�- 9؉
T�H�`*b�
���Jvb�d�Sr�����]vx��Qb v�M:�
��e�+�
��2ǬC^p�l�"/�
<ݬ$/�
ȸ�|9!�����D�!t����*�]��2D��w�2�`��3X�.���5�βC�W(��#�HE�A�)� ��9���@5w�J��2\��E5����lS|�N�T�S4# u�o�V�p*
+ -��O���vEH��e�B��
�dR�$C̸��z&
� ._�ѧd
�z'�,\��
K>jh(u�N�\��~H����9)ǿ�
-�cWY���:[N�K�
�bSa�R^���Yk�Ky�)w�F,�E�O��+�H��">
���
+#�������k�0b)/��}~���;�]o�
|��ɚ+����C1�?QaĒA�璜�
+#ľHˋ�PZ��W��
+#��">Sr��U���-F���`N��3%�__�Ky�͏T�i�V��qƴ�*�x��uTY�
��
+#�[��U�4 1�'*�X���0b��[��+�ؔ���
+#h��f�F,�E|+V�q�0b���o��0B��E����
+#�AP.��
+#��"<�\g����s-F,�E���l�R$���#g)��\S�����
;�
P�_��;���&ƙ����
�%�+9��ˉ�
&@X��L`^� � L?��������9
]�$���h�����V������?j7��Q�7^�i<dIV�c�p(��(��� �{L�y����D>�1�e�}�"�((E��Ǥ]�F�]�3dB�
|4�iG�b��`����ږ^㏑ݣ���Ō��ѐM�U.�
gD
7jYMڵG\�g�<n����>=�կ.S����[O���#X͙K_x��Hb�Z5l����Y)$
���w�r\�,�B� _�B���
t
�-.T�J�
Tw���2f<
���_N��q��
�|�ùT���-j�|��l.�� ����h:|M��2�
�'�C���W\El5nC�^I��.�1�JF7�J�z��g��J�s\�9�+B*\�U�S�|��K��Lbi�0\�}ҫ5qIS"�i
X�4%�~-fM\Ҕ�YȚ��)�<Z?�Q(�=<��{��<��NG��1��>(�
��[���v#o���&����Pt
���i���+���?��_��?�
���
9��zm
��ɴ�t7}�xN���AϺ�N����0}4 �l����
+�"�N]p��/ic���
iw
�����/O轼�/e��ox�����m����F�Jڸ����+YN������7�T\O�S��ዘ���Y���
����k��o%��5�'�&w2���ZOm�K�k�3y�4��
~}k
]Ւ�DT]�ND�U��4M���Ce_�{�6����։��d��.M�o��ٸMє47MU��T�v�/M!o�P���
��&�)�u"��m�K�D�ۤ�k6n2�t���3��N�'�V����扤��=���Ca_㡢������۴�k6n<%%s�wt(J2e���Թ�@��'�������Ό;2�k4T�6��3~K�I�f�6��rg`�Bj�F
�����krOh�ީ�!T��6h��Lަ�_�q�&B��KY'B��q-c(�-
*�����D�a_c���6�뙼M��f�6���q���
*Z~c"
9�[�<�kz�s�e
��
�M'����ґ�&Ԛ�A-zG��5��uf�
+y��ʾ&�x��;�:�<�m�Z\��-
�j��Z:n>�B�E��2A]�ͥ!�u�^���Rt(�����&��m�kr��`_�A�SmY��m��57Y4_:zG���I�DU�&���i"��4M�qg�
+�5*n�N�����_�q�WDJ�+"�gVDV
���̊�����>����XWDA���Ɨ��oS�ٸ�+�'bܥgV
C�N��)~K`n|M������PQ��DX��-
�b^c"���Qe�_>�Œ��l
�
+ ���uJ~�fR�
�e�g�~��%]M��xJE�\��t9��S�
+
%�I]O�G �ZR�t�� v)�RqE�e�g�iZ��ZZ3�'��ZR5��
���������7�3�Hľ��J�g�
�6�r�pҡ���w([%�'�f�
+S��� -�� ����X��0taK 5���d
]%��k����T
]�h�$h�v��L�0t_��H{JC�� "��1��0�W�B1�+�R2
�&�N'O��Ri�hr'�!��Uk��6Ɛ�ڬ���5槈\o�
+��6D�
=qa�v�6j�ߏ��<8�~L�m<P6D�����i��4����.�63^�+y����X�!�X.P ҠZ!C�ST��U�ж�i��HCU9�LJp���(i,$�Mh��W����H�⪜";N"%cf
�@RU�S)�$��94���O����63&�:�E
SN$�tYO�G�_���[J`a�
h��
��W��MZ%-�1��i)-��j��F- �I��"_2�e���6eÜ�s�u�Ȝ,ר
����
��!'S�e�
�1�2��5m� �
%1�),�+�&h���ʨ�)�1]B�{�4�1]h�
���6���vj zU�9֠��5�]LR$
^h I���c
�/
O�6[�MC�xy�#&�H��?D���%�H) �)���?�kI����^W��l0 at _bY���\W����?�U��J_��V�X«���
�H�G����d��
+
�_��1���C�g4�6
'�/��h���ǿ������v�]�������
+endstream
endobj
101 0 obj
<</Length 65536>>stream
+%AI12_CompressedDatax��M�^I�
�/��!��[ve���h�sT��Bw�h�3r!�̪J5�I%��S��ӵ�^��
o
زe��
��pa�
��9�q�}�Lf�T�"/��<y�~E��>�����_~z���7���e��'�'�7��7?�#y���_����G����
�:�,U���W��W?���-~{��?������{?�1(_^�>���oϯ������Os��������M�"'�rV:�v1aϘ�����x���w�^]��
��e����g�W�
]��P���aϛe�S2��{���x��4�o��{~)�.��\?}���������^
_?��y�����#��__<~������O�>����VN����ū�_���/ί���Ͼ�9��&�ӣ���>�=~�T�hW���ų�g�u����Wg��/d^���� ;��د�^_>���/~s!��%�}�W��+y����ߤ��>{!�_^��ʗ������������Ǐ������� [...]
�\���O��m�%Om?�~�Z��W��_}{p����}zq \��6�\���Mu�����ka���L(�~vyq#o�j������9�?x���������C<����o/�~s.{��|��?xz���z͛g__��������
���|z��������_~{qup#S�J^������x,��2I/ET��ׯnw��|��뛃�oo..�O�O_�^
�x-��
����?���������r%ٍ}�<Ћ�WO_?��_����72������z�J|�g�=8�z�K
�
W�y������!^�����>��)��r�\�t5����L��Lo�����9���
��7��|�>���|���y�����˗Ͽ?���s��_�����j���_�/����FV˅��+Yj������}�W������"��
�O����z��1X.u��]�Y�z������
�
Wz�k=��=��j�u=��{v��%�1^���z�����c��_��c|��O>��TYa����|%r`���Wd4�WO�� [...]
���tK���]����zs���gW__?��G�n���SQ)E�>���7�P~����_e������!?��r>����D��3�h�+_��-�us������Q��5����'_��5.�T<ڟ��Z���u}�П���_A��9�:n��Z�W�]<�~y�'�w��|�}�����f�����݆wx����n�?����K�_��\>�i����� ���d����Ճnu~��h�"C_M��z�h��~����=������o��_�z1����7����p�~�_MD���W��7�_}�������V/����W����K���_[�V�������z���<����0����|���ӻ�����l�]��-�:z�����ZO��v?����;��.ϴ}�?�ǩ{pOR{wp�{�����o�~�����܈�w�v������3y�_�����7#�%\,{����%�8�lu�n�ưV
+>��~u�.{GW�S������O�~����*|SI{Fn��*
+��;zF��?{��q�y�zx
���ax,z
��8�q��
GO>9C
�G�G�y
�
���ax,z
�
�=�D�>�q��
z�Sx�z$
�G��y8=䊖���(g�8�q��G}
�E�?�G�G|�I�r�'��]~U�
���z'��!G%�U|q����i>���q�r9�
s�>�l��K:K��D�G���PI9�SH>�d�IK<���D��H^��
S�1D]���%���p"Sz$��
R�!�LX��?�'2�G��>����y�_ܙ;u'�����]r��s���3{jOd��3�'-6�d�
�[gE
�~fN͉,�#����&�h����fYΖ���
+Ӱ�k/�����'�
�3H���cv
v��v
^��w
a�w
i>�����(;�ÝG�rţ�8�y��<Nw
r�3
���m�ޟ|ut���H�U9N}c{Xl=u>��Ȭ��qz|r�?G}\�&��x�
+;� �gٗ%)SM'�du7]�
�^�������#�ꁧ�S6�����KaI��S��/��������e��S��ƩF~����9]��M�
��1z�f���o9W;:B�ɉˎe��X6�����#o
i�w
�a:���m
v�Q��ǟ
C��Ʊ�kV�J&��{{
�8����+r��#m
�����������r�gܷmr�l<4d��J�C
+GH3�3�h�i*�
_
�
���M�"� � �T�A��\4�v�w�x*�(�!� �T�A����O>��
TIxL���P%"d"��
V�"%#d�J�c**�"#!%UNBR��������T�yB�*G���S�'$���'�p /��*KO�r
QE)U�B��T�\U�j8Y����*aE�ʊ?��0UY�i�b�R����JK_s��t��*�W�X^ў��������(���6e��(ڟ�S+���������
��x(
+U� �'���DZU|Pxtѓ��j��:��/��Ofj��:#tŅ�� ��õ�y�VW��0Y�GV
�}X-Lt�����ܻ
-�!���\�=��G��gC?��W�ܯT�IԎ�p֏��qҏ�~
��:&y��V��w���]�U����i=N�q\5q�ь��#�#�#�!W��8s}��!�+g}�|
{os>d�n��&ըT�jz��g��������i�%�'W<������I8�i>�o�[:��A�n��\�k�W?��&���J��I2KEf�Hf�Df�L���tG�_dn��q��>�9?��ھq�G�G7��<
�y��f�ͬ�m}�O9�g}����Cl�;-G���8�
�U6�nS��PXJ����8��
�V���}�C����W��;
�;C^X
M.�ቋ1�ﳁ
3��a
+"��"IJ�#F���e�ޛ݆ѣ�����w�I��r����,\R�K$�=Ph��H?�g��
�p�-ܦ�uk�q+Z����
E�g���
��?�g\�F�'��Y1gE]��y(��Q%D��j��:Q3䊢nDQ;��zˎD
MM�i���W,UdOujs�
+]�c�Z},j� Um�\�{�!��{�1��?P֡��k
�<<�'<��c�CU
X�*�g�/�����S�_�7��ᤱ��lZ^[V��Z3����E�+hv�tg�\q8p��I3�s�����f���L_�M7���o�[
1��*�!p���ZX�q��#�����H[G�y�]�\����m�N�����ŕ���|��[��逜D�C����*����nW��+���{
�[Gu�<��;��)�����,��_qS��e�
�"d���,������彩�3�S
��UУ��S� a�VD�?"��q>.LJ�G���'ǧ�Y.'��'�ĉ�
"��I>)'�'G'�'''�'g��ͩ=u�^Db��O��������I[���Cz��$��mJ�*�)���.]R���f`Ge���B�|L���R��L |D�{J�
i�(c#�ja���������Cv�Cy��9�����\�A|�
#�����r��}yz��䊻����!W<���_ݑ
�?"yH"��%���<�|嘼���ڞ�Й+c��af
9k�9��$�p��k
b�#��+�8#oZȟ�3ŒO9�*_��JO4����&
c�1\�7m��M���C=�G����C-Ֆ��K����Zv�������6��x���m���4�ף��XN���^w���E
�ڎ���j�]`�y���nŎﶭ-��9�:r��Az��
vt�<��/z���o��
E&qm�?bP��7n�:�}�b��B,���o�Q�m���F~D,��F��Eey
��<�EieAFY���
Oe ZY|�
�H�
�XhGXd���,,lYX2wXTXRXP�M �U�C��W�x�Ct�P�
�Nm*T"6�g�+U]�j�U�L���
1S��CgU�2�2U��'T��rer�C*^GL38��uJ�
�f�Y-1�b��XP_<#�L�(�դ�^�D�4�Ega�Ûl��������Ѽ
yu�~
���q������ӝbo-�6ĝ���o?���� ���}�����w����
*� =��s�yT�yT��)V|ꔢёS%�DD�¡
š
+C�*�l"p����dz���a|l�
���0?k��S��U�+��
7�+o�*mkum(j+%Mxަ�֔3���J1�����*�;&��/|�����BS�.m�����3*w�#ף�xLᢇ�g
u�y��g;�,�l
�d����?Hn;n��w
A�b�q�
i�AN��#?�+>��t��C�����}���@��L�Rr��D�v���A�U�uCC|���
�
9��燺<S�y�)mF�6��m���f�R�R�R�R�R�Rz���q;��]�cH�cH�cH�A�����)���+
��!W|���}ţ�
�#>��`-6�a# �Bb#,v�k#[p츛t�r���<�BeKW��T+3kЬ��B���3�#���#
N���^z2��N{��2<7b����!6�+S�j�� �5�e�ݡ��ֿ
u�Ku5����SWޞ)_��GM�?�6�I��YM
x����j�宓˳���Ӫm7��u�9V�/WM����(AV �U��Ty�l�a
{pX�*a�fV6!�g�.T�3[�~�2,�2<n���.�y�]X�Lj6�i�Lj
�)�8��ٲ~�m=��նYܾ�]!ǷK�I>���!�W���Z��N����`����?x�ԅ�
!�c
�a_��>.@���0ƙ�\��O�Q��� }Ĩ�vY��.���]����t
?��KZ��>��:��YԸ���!���u�v��d
a�w
i�!{N����]w
G�q�����_
��jX��.��m��(��e��Og���n.��-���E3nUV�����3��^e��q����p{�txm��z�n��܆BP��
�������V�{T���ꅹ�9�UQn+�=쥎�ر�;��G�<��8�
e����u��܂�o?��G���*��K �,�\7��� )��e��ԎbU����Gk�4`?���Q������T���%��yaz#�y<�����vwWk6�a�
�,L�p, ��
+
��h��c�Q_/,�,N��k�P����ön��w�8e!�I
q
����%ť
+��67L4���͝
n��hnC�@>�Úۘ�܆Ǻ����F
���f��Mks����f7��7�Ъ==V�o��7g#Se�;^
k���
�n��n�ӎY��RnSn��m�K��C�oz���
jC���=
~<@ב+>D#�����-��G�?;��ߣ4�K������sI��(.����4���V�_V�"z��!��|��("U�5�D��&�t%����Z��*�D���&�Lm"֍"Z���jij�v�t"��o
#N��GS㈼j
i���B�Q��%�h/6o�K�W��S�����FӖ�a��l4b��pehv;���H����}��{��TM���ػ�L�
��w�d]6�ݔ0�N������lj���<��9�F��p ��j��:��#Yѳ�Ȭ� |w
i���L��UJ]G���Σ��h�@Z��v%��H]w�bpG��ڱ�i;�
j��p��I#�����
+LM��t��A��eES�l��It��&���m�7�ե�\q���6�ioZ��]�ݶ��ۮ�lٸ;\��
]�+>.���m��!��cW��9n�0+o�
7#���CF{ö��4�H�C��X�-�v[;b��2b
rv��-1��?ecr\y��V�q��%���[�7g
g�p�Oݐ�v�����}_�˅�6����ݿ�p
��w��~|X�!��n�'�-�M��R�_D[Y�f�<�_��%�_�
��P�K�q��~��M���ryX����
�T"1wW
�sh�!uT�
�Sm��������&��F��bm������ح���nnS=r���]�m�����mN-
=(��6��z*�;%{ݛ�ǝ�^L��N��M��M�zL�VM���9e�}� >XZ���Y�l���a�
�����Bw������rTfd����溺U���)��[o&�0��d�wzؙ�(�mQ��u���C'�xs[N���
��"܈���5?Ģ��Fk<E�q �|ך������%o���rg��P8SS/���YB�-
d�0:�b
+�e�{�;
����q�·��7����\���f��O[�iK?m�'��6�����_
��5�!
+
A]mvjzT㤶<mMOs�cl2����W�ڪu�B�.Ix�gD����~̨�ڭ��D�,���#�t?fT�ϒ[z�v�� ߍ���~̨v���D/Ya�Q�� �u9�}��n�1|�"�XE��c��*���c��$����*��UD9>V�a9��*��UD��>V}�"�XE�RE�~�&>.�}�#��S��J�Ly ;9��8}б��nv�ۍ��Bc�D��0�Q��P9uԙ�qY�g+6iz�
Y����.#�f��LS7��m��EW�̚C�m.�TBc �)t��,s���
hkF���v���
B
�
�X�N ��[���5��_�L*?���᮪�����͵���&�SfI�ZI��h^E��"_WP+HV��:ٹ��
+
+=�eb
�$����5t8��ӵ��"� �C�M�������)W�ݘnˡ9�5�j�
�brŷ;8O�sT��Ra��9Kep��2�6ԯ�I3�5!k`Z[+b{=ܫ�yQ�j�Z
~C�����y��������k�n"?4n�nٻ]�������r��F��x'�\q�*s��\�؉��\XAîv�vS�V)P��������X�!�;�f
7�Ba��0�`����cE�+bɉ����5փǼ�:�;�Q�oS�
�>m�M+t�]jӦ�4GXv�KD�\
���K�m������=E��܈�uy��;�_�U��D��O>�
+�ڢ�H��iS�aU��n�#�N*�.L�
�i~w+N�E�6�X_Yw�LqC$�E]�+�x��t�*ڵ���n��8��]*�n!)�HV��[qҭWR���Z�W����R��jz'�jK��V��oW����]e��RXh�Cm�KiZ���>��WuX�
T�ޢ0�s7_�,e����W����Uv�7�M�+���l_��u�N��C��Ī�
mǠ�W}���
��nE�N�� �n5�{��a.t��6�����f�n�&�ի(�^����Y��
�/��LK~���WH��T����U�v�i�P�`�A�<�Wˇ
�}���+~���S��e���m���9�"a�s"�f�h��N7S070k�M�M��u# ��zk�����z��9�172�5���91��f��̖��4s�Sn�i�DM*G;�5O����t�͌A��O>���:��w
q��+ƍ��
��aר���ўl��+>輇�a_q
��~� �c��X������k�{
�I��i0d�
��t�C���X��ۂ;h��@��Itk�Ek8��'5������{0��
+�g�g�G̀
+ֳ�S.Dπ�YC�ay*$O䙡xf�M�]`;+p�Q���$��y��n��Ý��=���C��I{�?rœG�p��+~?�+n��Pwv�S+��xd�v?�IL/w/$�#m ��������~50zb��D�|�y�=�߀��y���\Xt�=��;[Ү+l��� �n���6+p7p�
+�6��FQ]_�<|�&��� �y^������u��}g՜�z�=�'�9瑟�����7?��7?��7���o��y��������7?�o~������z�p_��;R���{����W��IgucM��� ��:��[
k)����}+V6����k�%?��y�-7M�ᮼ��S����������)�ۨ~[!ҝG�H�R| ��=Xӏ/=؝ԸUg�*�[�q�6N�6n�Ǝ�L�
��c�
��m�
{�q��Y����ǫ*�Z��k���o�9��x���o����
����jF'���O�9�H�=Q�u
�.��'�W�[-0����w��
U5��2��b
;���g�j]PY�cIb`G �H�Ex���~�g�?��#�G�%����-�t�z|���
�5cv�A��֪�z�y�����伞����S��K>��veV��+���ߦ*��+ӥr~�Z�}��.[y�6�wbm���y��OI�[�}�*�oD�z�����������?y����������_���{�����OT9{� y.7�x��_f,������f����i
�z��ںk�[ϭ�P��DC6���pF>���R���s黇�C ;���s�c���� mY&D��՜p����F���I��Qj��{x,��q�ݑk�_;v,�[�q��A�}:�eܰ��)����x�����Ȣ���'�}�N�;�0'��^'�
r������X��>��M "l4
+L�k�{����"�6z��ՙ�/��]�e�>�/�f��ʎ���_vN���E�X���?�?�������?{�7������o,�M���q����Im�ˬf,����ds���2�~��%;��/ ��~~}��������7�~��2��<���/�;�������������
>�O���we[�=k�)���n�D�M.P�
):������
��Z0uv��{������P����������'
�
���ծ�����t"�'��t�;��E����������������~��������{?:��~��N�]�^�|ut���q������W��xz���#�S��_���O��3
���� �%�C��+q�%c�uAu�o:��#!�(�
�`�!|e�+����'��~(%�yS�M�a�s��"�����8�_��u���G�C:��x/7 ����"$R��@�^P���7Z)1gRD��+Q�Hk�-
+�D1�wN��
���N����aߦE�_� >{���h
+������{��$̋��������J�G��ב.ˀ$
+��E�w�rb� 0��"ڔ|p����!˷��yA�%�d+ ��~�B�Q�
�d-)IL�12ج##��IAW[P��j���zS��:0�Ä��s�;�dDQF�O2={"i��R�Y��k��$��|�8�3��ȩb�ׁ��D5_䱂E�`�� �
�D9<
+���-��gW�Ƀ��ѓH]�`����%�i�T��(d�G^�sx%�a��"�_T
+o� $��3<���+� (�a��"�
��n�*8Q�E��
�yYj��Ȭ%y�:��#�lj����l�%�
+���z?(���+.X0�D�#�~�/;�4�\ ��%�[S�`�8�=vuT��v�wݰ�)䝼슌�de����w�`B6J��4$X�Iq�OXJ� @�c�A�x2
>�;?c�-P|
+��Ex��%�V��N�����;&�%DG�)ˊ3�(:4
tX��,ʊL�̷1����˥�Gy����.�m�!�iF-�l,J��1�}����ȸ��J�e�'�ʱž
a��Ƶ�\JX�)N.);K�3
2���I��
B
I�R2��PDHYRd���
��j6���ETXR�>��>��P��� ?�e|F��1��d�Kݯ95�+F��'�E6�,�����C$%P�U,�\�sM8��������<�n}|�<[X�ȹ�.<
�O(oC�~lYma�[.��"W�[@�.�F�Q�,KL����
�9U_^��&/IVӋF���`�I�gaƄ �w$��@���
3�N������ A>�O��<$�9_��M`<xCe��d���$o"�Bݬ���Db���-0.e��]�d���q�8YT.6�X�>�Q�I$���
�V��@,��آ�|
P9Y P�
+�$�:
.��٧m\Ц�E
Nv��&3B�]~��}aij�� �ˉ�,���xidE���D%8�RS::U�`��
�x�l��
¦���s�l�4��B.D�;
��:�eiA��`G�U|ĜX����ٔ��
,�{|:����,8O-+�i�
��B5X� x��@�
+�@�ʼ���
��x,�2Q�,�
V� �s��REz���O��(
X��
�N���p� l��f�s@���9�A�H��U��"|VN�n��
+��C�f��X3�B��d
�3����A��ؿ�[�E0�E_O�yyxXx��� -�+<$��������qB�N&��k�(KZ��
lk!$��5V��F��L�PE����"�.V!$��`}X�|�Šђ����\%@�Rq5m
��{S���g0��e��Ƽ2�5��0�ZE��DA]�7�1��Al`��Tod�u���n��"��er��@�*�n����
�[Dڬ
+l
;����q��z��W�� �Vu\Q�G]&a^�˃S�"3,?[�:t��MN�qpQ9�Z8�sDҐiʧ��l���:aU���:"�r�E���$���i�j��]�@"�grD��
�t�����rZ)��؋h�`]6�M:!-�K�ˑ(��-"���
��E(M��A6!��#MPUu���tcU�iP�d�*�*F'����le�Բ��\�D��`���N�{:��r�蝊
����y�,��������
Y��BxB lv��:Alj��Z�O�WS;�!����U^5q���e���z��Q����F(h�4a��XȞ.�/� �[J
,�Y�K2X X"Bp������
ceֳ����s���A� &�
�f�<Rt���J����
+$w W
��8�+���H39�w�K'8�uX�B�D|� �Feѓe��
ߧt���5��,6(���r�p����ߩ�0��/��SU�d�
c��}ҩ#7*LZ�r�0~�0���j�b�q��*��֩W$�
XҍP�Q��WT�
Q����a�+�\� WwPQe
D�/ Dh�.�wu��W�������� 3DԆ������0����o��a��(�Dq���u�f��3N+:��e,�N�jtt�TxU$�֦�R�.A�b�`��a^�
�d\B��k
+��g�P�Xw�]*k�9 ���Z
�Jy��V9�QG�|�"j�
�g�Z#���C��Q��5�|o�
��tfM�bJp�f���R�$ĘW'��sir�
A$
=k�P�(�
�d0t���WM��|���k垦���N���@Vȓ����>�T��
�;�����h.�F6�
+3�ݮk^�A-��:X�
�_��h��bQ�WT
�M=�g�
;�����X���w�
"�c? � �J/&�JQ$��cg�{
+Q, %��@�|�X��|%�����9�^���仐 �$�r �R��8�Պ0p�z|y"5𰟼��Ї=���py�\�Qow���P��#Y�ܔ�U�e��3?'#�H+�Mb���B�A
I�!
�>鸀��J�J�X�X�wkJ���T4<�dDK�E�E����-�폛�a�(�� snoY�9�� ��D|�j,V����
���
/V�l�Aׁ;P��5��`�P���ҡX�E>�q��
2�RTI�
uaQ,����:8�rT
+U|�t��8��>4�[�hx
��}Z�8_�
���E���A��{�"P@�D��C
X���9�Aθ%�N�So�#��nZ��ka�H�
]��~LZLVO�D����`�?o���Ba�k9u���?t�D�7j�uP�ȯA7�� ���q����PZ���'EL��z�G��r�:F�fQu�Vr[�ň�[e��tJ�(˄��E=Z���5�)�H�
�S�FuC/���j���Pm��?�
f�S���z25��% �OEJw߃L��+�z�n at Y� !%b��d;�r��
H-)T�N�I�i�
Z��P\���4Y��Z�+�~'����N�RP�
�x��{
S�D<}�<m�]ڑ�D<5�c�T�,�̈r�&[����]��K
�<!
x��n��T�ŮAV9��XP�jJ8�0�����9q /VO���ȩ�Q%�p ���y V�Jf�!j��C
ܬ�
_c ��ӊ5$*k�w�2��,-��D��B�^(Yd7�
�1�4F�;�CU���ڼ�Չ29b�ʫ�$������1z�< B�<x3^$�Ug%�We���c̲�s/S����X�̱�Q^t�%'8IA�
�C!�@����
��*�p��|�ڠ��Rρ��:�2�;�ׄE1仢}�:���.ɼ���6J�
���W�����
�O�6xdFH���~��<X���5>
f��T
� �E��UW���QG:r\�r����6�<hl
8b��R��^}���`2e#�ƊR4�S�62����eԋ`9"�R�p
�y�Ր��>��
�l�hS��v��d~9�>�
.F�%���ik8�D�o_T�L2
ep�S��0��ȇo~�U5j�"��E
��b6(�qeqCO]�(R
�A��K�
�u|
��%����ڮH!o�3�z(���&o4蔨
ʡ���e���&p�s�x�=H�F��@�
'f�Z��?L
��Y��hdY�S=ǧR
����*=\u����\8�dYr`���Χ2�Z��k�y
ʨ
+|A2��2�Moܯ�/�
,�
~�@㯨d|50�c)�RMQ����DX����$�v
+D(|6:�Q���B���
xV�2#�P�:w��9GL�p�\��
+x_�x�1=|��W����0�k4�r��D�!
CGP��]�!s"9������$� �\)È(�0��Ŵ= ��CO�pي�g��`������'�ߐj�W(����������H��P`�b0c�c�d�N�:ҩ����b��B���އ7�� �"�-8dW������/F�
-"@ /��{#!��"ё��~�P
���Ɂ�ՙ
E-2`-�ZZH�� �d=/c_ V:�S�`����R�ȇ�3��t�D� V)=h� �ap^�)f�����>� V�֔E�:����,�y�؇����E�<9t�Z������=YH�?��)���A�4��Bͧ*H8s�
=|M&#v�BV����Bw�e����
܊B��= ��)�~E
���QhIfB)pb��.��(���>�_��m��*�9ֻ�S����+�M*�^�� �.��fr
!�k$�C��7��E��
Mpg�Tˮb�8�Ţz�z��rK:ݨY�Z,����X攱���(��
�
�9x��[�� �;=qќ����-��Iq#ڢz�f�]�E�3�"�(�ǀB+���#�#�Qx5,
1�n�E��`� �5��T3���`��
�% ���� �������@�*�d�Vm:���`�R8�)���?�;������7{?:::|����_\ߞ����͚�1
+a.��@��E�r�n��!�C�]#������
u2�n"4i�"[��
+�� x%,�@��x`�
����
8��S��f�gF��?�
��C������36�8=�J��.��
b�8?s�Z���;d��K�J6Ccd�aS� &*�U@�X������EoG����/F�i 1�l���bV E��r
mL��_$��)*S�(y���t��5�h|�'����.
��1Q�Z+d��"�F-x���;�B�1�Qj
+�?q��:��/�g
3@�`�=ê{2��v�C2%9.4)��aV!\�.\@+���3������+&�j��B[}
�0֊W-��X���A $��Uf��
��(�AX:0��瀷�M��L05J#�X5�Y�D�!
C�#w�ᖶ��6�?���~g���,��3���S�;���.R����P�4SR�Mmp�g�5�C�5�Ol�̧3d����{fuՉr7ۙ�]T�AQ�
�$</(�������d�\*������+�uȷ��,W��j�4�����ON�����|1��Hw9=��oNV=��T�o��c�,`R\Z��8 ��j�#>V\w-��}��K�_����$u0�
X���319�Oh�L�
������Ǡ<��
�h�!B֊�1���=Bא �54���f,r����
������`����۹[��9��]C� UyP��
t[�3(��V-?�� h�k�
=��ְ�L��3���
+��n��7?� wXu�2[�f��f�Y�bQn�//&���� �
g0��t���I�
J�6 h����
C�~�ZA͋Uj�<�.Ĝ�T�L_k��,��P$��B�t������(,r�}���$���z�["A����<N���� �b at U����%k��l=k,�ە�Tz�|]I ���^I at F(v��+��K��(U ��
�6�ku�Q���� ��Qo��$X�~9\
�"�.b�VY��p�f�p=A����=�f_@"b�;����7�iո�5�
+
�����e���M���߂u����{%q:Vɽpq!h4�^��>��S-sH{���~�wi�k�[MA�|,�%r����d#f�KO�F�
�_d�c
$��|b:�9u�3�����(w�"��g�S%�PV��3F"�J�E�xBijQ�Tn>f5!& �T�84��p�F��^�a.�
w����mP�`�F�V�75>�&���t)@��U����})�V��
+�9�L"�V1Ѯ�7Cx̒Zt�2F=��-�LDN�Y�Bqu8�����^HD����d.]�+�d�
�c�F��F/����D�Wړ��� k
=zh;��D�T�AS*�(a�w�
�?t��L���3�Z�`����Ք^��2}C��vxƤ9�.�3"Ƕ�H�9E���z4(8G4�;��墎�>N
j�&Ese@ȐL~�:���������V,6�<=� ���p��BȊO�v��Z���1 at p
~��v��LP��C>
+M��X��ښ�[S!�SZe�Q�'_�1���TA�K
�d)R�|��n�
U%X��r�
`
\VHfDB�CTf(��eQ��˩���B��Ћ�z#�F�*G��lǀ���(
�S�B��K���c�A436jRڱ>���l�ͅ�KA�j�ΰ��|����zI��M�tΥe��P]�ƷˤBu
+��� �
L3�;b�b\��׃QX>�"ȀeJ3�}`j�?�j�P�Ğ����k_��3��
Z���
��0��֭!bW���
+�
ў�`
�%�z_e.���J���d�C��^�2}��3&w�ͩ
+�@a������#��J�S)iAєy�ԥ��
��M��r�U�d��G��M�?f��|%�5�T2�$�F�5�*g��,�EO�-TMkN��.�F>σ���/A+mYgӠD��r�X��x�V-�u%C酉���#
�е
�]B
�v�ܲttaio�2Ԋf�4ǩ ��j���y8a��-�R��a
E~��
��M+�H%����%U�Y,P�5
2�-I�z
wG�RYY
��e���AH��>P�cdq ~� `H�Q��bF%=D���u�3]-��2u(,
X`p0� ;�����
++�H �Pdf␌4�$�)��z���C�
w��
ò�Q��25h���m�)@���V�!�KŬ�}#�W��c�hf��5 �4 �U��}Q�mДK�@�w4Յ��HV[&�0=������c�����
+Fa���,�
+�:n��b�_��$ׄK��ԭ���J��b�{F� 1�6AP�W�
��h��H���S���!�+E82�H���P*8�
�z���)`ŠxF"@�]7�/�6��Vp������se���K=S*��%� 9(w�X
�Q�.�;�P���r�NVh�UiiDQ�Ӣ��3�P*j�\���K�x�A�]�q�۲425]��`]R�AaF
9$#�L�
ڑ������I����,, _z2:�L"��i@�~A�>
�V�B������z
���v�8@ӆ�/}g�6��X�am���� ��%�\���!/|PLp��� 9�Cf��e�[Ix��
��LId6Ǔ)�����B(���K`=�
9�HՆw��N�&��nM�1��_� (#_B
��
-�9-�7��O��+`�<7����K&M��Z���T
+����Â@r�##ӠP�P�b�q�:4h��gI܍� &d�c��b���M ���p���)�)�64
{k�1��
���
��c�mb�U@�JV�>���q5��B
+D9���ۥ;�qm�8-� �?~���Q��� �7��P���\����y�pv
F�.
#��QVơ�Bg
A���Eᓖs!��1>7�q�T!U=��b5�=��UB[��i�)=�5���mXt�f���h��R�
j�}ͳ
r
�
Z���Y���!����O
���JFV<0"���X��pi�S �+���d�"�M�;�}�4BG�
+�k�G��O2V�O��)�~Y�|�;DM
+d�ab'���z�(���fRj�,%�_�8�&Ԯ#ӮՎ"b-��k��]P��M�b Xdi��7Q�"AE;4D�R?A�@��!��FR+�� !O�0/^��o�S0�ӄ�D���2�Y{����e�E7ȯ�"��q�\VV;g���z.Y/ W.�|繧1��ᯆ�Z
�
��h��h����TgN��m�o��C7���
+��
*F��ތUO$��JOE���^m�-?�wukRӇ��Ե�D���o����3
�c���E#�njd�X�P�T�B�8�R�.ϭ�\D
!~B��B!2�3�(X�?A�3���3�.�%��<c�gx5���f�\P�~��["�J3�P�G�/&rjz�^��fK�1���W��HuC67}_`|�V���5:���RO�
+���U"˅_
�B10�
]�&f�J�B�#�Y�/��Y�
+'
%<��蔮;&Oֻ�@���s����rHNt��6 at N�XhM��e�_*���P��
�v��̗�b�N�E�q�j*��D�����a!��u��o�I((c���y�`��
�nc�%?K��@`�1�-{H�X
�|D�)���5�������*�8 a�լ��{�6i@
+Jc�yY'\5*���R۬�h�Ê�\���Z��㊖"7b�jg���� �t*� ,�D���hY�� ��Bh�SL
��k� R�cQ�X��JM`������A��ʢ�'���ɢ�u��^�VuZZ������YR��W�
2�Y^HK���R �Q��m����
+�Or�[
z��`�F���z0���.��b5/���j���Mf��Ŧ<>��>��
R���LW��½�m�ޱ���*3I'�H�g���H`L��؛��5S� �q�,���g�0�u at w���zjE�k���� �� U U�l�(l
_c�
Y2�Z'�jE({��
�
��T���##Ep���zL0l�fl ��D������B
*4���?�L�ղ��QR(Ԉ�IP�i�,ǭ�;��˄�S�cY�{�A�Ms6ծx"g:՜P
�T���/j��_,��QD)�
N|m���#����s
���\�n�b�(���S��.��d�b��"ͅiJ0&bBV���d��^%�(J3���#5�|�H�" f�!Ӕ�0
+M�\�����(���a��Wn)�H �̊���5Z��/��%p�S$"�A|ZD�Q7(
�u�6�5}������us�<m�l�l��{��$m��J��dQ�O�c�=��d܀�aiYp/��"��
�07��=�ͧ����=*0mT��Qa�nRvp�x�)B�+½�jB�)US�{-v��s:��("���s�e���N�
���'«e.
+��xi��>72�
6�`�Cu�W�{Zb���H�>
5ڣ
�e��ૣ+��&e�%�� ˘У5�yZ�$��s�Q�Κ�
f����hЕZ�U��ES�B/�^��h2���i:��b9�4���0<N*�P��Òa�X t�jS�ngZ�r�
��nh
���^�#��I�ѩK��9�L:�5f�����cv"�ե6���n���L�� ;�mUه�C}��S)�R
��ηK�[�Xy}F�W�5�6b��
+`��B�yL����
dv�ɯ�Ÿj|��m8�
XB�K�r;�Ӡ~�%(,n�YØ�;��;R荁c�3]ʩ�ʰ5I.�C�� )�'Ԫ��w-zS����B&.��ļ�T�)�6�b�|RɌ]�Z d xY
�J��U�(�UJ7r���
��\
\8�9��;��D�������!(�6��k��2Ao�Z84*�*kK�E5C��Z��@���
"�ȝa���:S�lM��w&[ڠF�nA �N �6D�m
�R��]kΊ�zd���1TJ�������� ���6�32�X�������d&R����P�T�e��A�.:���x��J{/çʦ�.9�_WC��0Ȍ��&]߮�m$�٥E�M-]�Z�Hl���^��IF��D���a��;(AC5uh'WW
�j�宩Lmt|t�R���~:uu�p�
+s GX#c�3؏vW�
��ʉ����(}A�y�8�ؘs �
r��}��l�QpM=Fc��Ub�w�fRg��6�
'.��9nk��7���0��݈���5��I�'�5�
����d�i^��>p%�о�߄s����J��ɍ�a'koТ]PV)�\�u�Hi��.�~6�̬22~�� ���Ԓ�:��Q��I
� ����hq�r�����E��-Pى}?rMg͠(��{v$��Z���8�wR(1�z����5�;c
S0)1��
�) ��n4+�S���6ɭdVA�K
����X,���d�#�f9����
yrT�(å
��s�
�|�Иs��U%���x 8�ŗ��B4�*G=����h��F�yC'��;�X�]a ���{ �ajb�q�=Հ4Q��g����h���ͣ�
B8U��$�����F��{�(�56��\R�bb����l
�E1���5�|U����(٧zbl��(�Qr���m�4Ygр7��9�O!AsBj��>R
5�?b�<�i@`���bkmz/u$�s9
Y;��dM �e�����Q#
'�O�6i�P����S�P���H�vm\�X���E3a9��%�
�crL�e�k��Qy��&5�
ܶ�
:�p�L-�E��V�>(�$��J��X5��������g�v���N���h���1�q<R���A[���>���
+*�t�W����&],�潠R���i� 1-��3��
��0��l4cC1p
8��aWܜ�sG��y�v�&5�i
V������ązn*�p�ñä����t�ʵc�JS+uE�֨p�Ec�fl*A�S�I��4��0I�b�j�\m��Ư�\����J�I�ho���]�Rj����*5�� H�Dn(�2�)�s�SN?^?
�I>>�
yh��u��21��cxÐ���**-nQ��ƛ����;6�K�j�h�6ey^ϳRvX����3T�R�
$��2*��hv�t��܇�T��&�"O�~��P��q�~
��m�z�9�(�(�M|��W
μ��Y-�D�7T��]uH�b�A�ҳ
!��naʯZ�Ȯ)]��AN���Fw��eez������>avS�{�-y��}��1�a_�v�,��=2\m�����4�
�����S� *�� �z���ǸE�9���S��w0�<}/5�hT��1�*ApV
�ZoʊU�?���P������\O����]�\�lu��� n)��*"�S�����q��n����r&�cq��
�g�i-��-.[��>�ϑ��̬׀sF�#
n�C�8vl��fp�ai�X���Z
�0������z"5��"�)�LA�ʿ踣k�����~��fZj\T&��(mh�bB�
���j�2(Z��kɍ��nԒ8n�f5
����E
�1�L��h���)��i��)�Y]���:�Q���0k��xj��~�brP+�j9�p߲�pm OK��: �9��y��8\�qU����ÿ�k�"����!�b٣
J͵�w�a���I�hO�:�*O
�-�$4���ZX������j�ß�������}�%j�ڣ�P�
�2�(J��{Tz�Zp
Fl�!k�]��P�Ju;+�
�P��JEk^��
���0-�a�_h�� ��W�0�!j�\�p!v,R�XC��p�%����'g�-����L'4�.U��5�03��+�C�_���>�FE!
[.*����X�ᝊgF� �~j����
jK !���l����"XiC��|e-h������.o�v�'���\�mƨ�=ÿ�ޏ~���ޛ� ����W?;��������_]Mи?��~���|��_\��8��x���d�)�x�]9Z��m&m�� �#;*�hPA�}�:�e���M�sJP���,��q�"�c�yq��g�:��8G�/n ��9pC��x=<A��(�rZnr��
�9g=�r��l�O�s�-�����և�K
o�2dFO�oβ�a�o�>Z;���v(320�́,l2�9P��+�9PB
+ip�d�� �#E�*�
/歙 �,����Q���a�!X-��N�s�6���I�
+p�s+��lE��s�����$�,���8g
+��̊�G["/V!�L�ʒ��
���9G�
n`"�l60�@&�[��A��2 �@�
7 �4A �E�
�w9BKh�5�\�6�9��s�<�
�w�n�ޜ6�+`:úNxM�ܠ���
+9�aݛ�*s.�_ހ�C���@����8G"
�
r��݀��w��ts��T��h��b��fJ��9��6���7�9Cq�J>T�|'�9�8�]�����A9���\:�lXN�:�:�
��l���b�Cn�L-��β9�P���䜳L8.
rα�j*�
���9GJ�n@�9&E��9�M��s�64Ś��
(��� s�Y���9�,S����E�Ens�aZ�X�c���s�96�s��X���#�32WA�@�� �s ��ā:�p�8P�@1��
�9�2�P�{2���f)
й�)=��]�L�Q�@��)
u��a��
��0�j�ܻ�����s�Ρ��v�Q��9��Oβ1"1IW�s�&HL�a��u�9
7�� vT>f��#aQ�9Z��1� ̸s���g;�
��
w���[CSXbM�wŝ��XƐ:�E�PFC��E�G���Y�/f�y��� wnPk(�ҲXJ�#���p��e�Ii�Ʈ�1vܹAX��ubŝ㻰���Y$Z!�7�Y���ϑ��4V�q
{��l��u��` �;�
~v.�w�j�U�s�9�,�U� �q�:������
;h�rP�D�wKS@~;
q�
w�&ܹNm�s�
��s
8��L�s�
x�`*�E�����[��7���(�OV/�� ϙ<g�Wq<ρJݬ�Y��e�x�-Ȟvf�����]�@e�t�9���9��s�楘�<G�R+�
L�_�P��c�*Ck��j2�A���C$"�&�O�����Ǝ<�,"٫�#ϡ��u)��s�Rl�sN�D|G�c�&� y���2
�l�
y�WV��<�ڔ�t�9���!�c3�
�&'v��D���"���
+Ѥ`�<��]��sjǛ<ǟ��3�
��r����F�#��v
S��
^9�IV��Z�lG��5�\'6�9�r�^� �
��`�f�9Gi��'zv
�s�1�cf�9��3 at G+�
Q�)��
a��=0���B9�'"mߦ�u�<ש
x��g�w
Qα�n�q�c�ߠ:D���
w�&ܹA��sfmYBG���0];�9&�-y�F$D���^�l�b�8ϑX�Ƭ��<���ϥxT����s ȯ]�s̪3v��cy[l�#�u��C���e�s�w/���I���s��F���Vw,���C����yF��2����4�j�
;�&�Nm�s�E'�e�
��m�3�
杪r?
-<|N
+=����:�A��*��
S��"]�
=��K�+*v�_B��sڐ(M�slAd�\I��)�ݐ�
k�%l��
�ʸ�<BY��+ӄ<��wl�\_�%��54H9��9ϡ��"v����d��5�ܠV�9�ج
y�CY�<LJ�~i�s (�y�M�J� �S�K
|��
R���9k�9ș@9W�� A�AUO-�
�5�\�6�9G�Z6p�ֳϢ�3�
�!��=�D�ց�E�g�96��x�
+=~ ��uL9
�<A����c���K
z��ި
z�!�Fdd��s5v��sKR��A�967V��Bq���g�9�h�x����e�8aω�P
�N$�
�c�A��Nhu�9m�
{N �������@u"�;�
pP6�9�/3��|\6v�9b�j]���Ll���,�b:��E�)�j�s��
+\l��ն�|�$����v��Z��5$d�T�9%,���q
��>gѢ����,{������]�(3�
��lǞ��PB�Ɗ=� �\�v�9|=z�;��e���=gٕ��=gQ P�T��� =g7��@�&�=�HR3��,�j���r�t�9( �
�HĘ[C�Y��c:u����V���ٴѢ�4X�=�1a`ρ�n��=g�S�܌=G2��
{�C��
{�W��o�k(���s����>7(�\'7�9K&
�!�Y�qaFN�s�8u�7*8�]�H
+��n�
L��� ��H`H~E���x�eu"�c6�nP&����Y&��P��>�:����l�@�Eب
(t����
:��;
+
)y������8�ЁLE����i��i�r��2��(t�O���� j(t�0��
rC����
�f�.����5ޯ3���:��H�p���$�����̄N;�
�f�AV:�e�lG��cB���@�9s�
+
(�R�@�#��� ���G*
+
)���Bǡn� ��"���Ҭ���;���(t�2��
rC���p/
]�&�tl�Щ(����i���B��
�AlXQ���,L��r��1��F���c���4�l���_�
��vf�Б*,
;$p�1v��d�Bg�w�
�k�PD@�
:<]
ZA�,bz��5�e
B7�
�N�c�
[N�Xc]��Y�t�qu"r%�Bga�3�7��Y6�d����A'�`O���Q��� t��0K0tV!��@��ڗ�o��Y��#;ND6�w
�nEY��
r���(t��/1�(t
k�7:PҲ��BG�a��5
+
��t
��#�j(t|�Pa�fW��
:���u�(t+�
+�nEU:˨π���{�s
�N���OCE�
+��ҝo�
�t�� tV���@GeԲ
�Э(k �An t�Y*(������6�< �
��Q
b�:+; ݠL t�� ���=̣@�+��@���z�
<R�m�s�Ȓ��s�E�����|����KFT
�sh+
\�/���h�
+�وʲ���F�VMT"*�\�L�s�Z��X�!S���=5�ϱ�3�ZS~Q��[���ś���~����J��?���<ہ?�����sN3g7��
����*�
��Hݿ��a
���Hf���ρ"[4�9Pl��u�sZJ�s���cǟ�'nq~�ɺ�>�;��l�sp�jZ�?���6�9�~4ۆ�l., m�����)�:3;�
�%�=��s Z`����K
�/���HF<���!�M�$-��zF�c �Z`C��,�d:�K|_��@G�
(
��*��
����p�N t%``�!�;E��(�ct8�
:TwkzUC��[�2 ��Eu) t ;f.4 :PĒ5��=���7 �躃���HqK
t�01`�Y�@�*����*�
<cpSw�9�f$�{ß*��s���C�'�|ǟ#��!o%���~~�6�
�3å�ρs2�7��9��C�4�9��
b~3�
��_��s�V�N�?��iҸ
�9���u�9R���s� CkƟcp��a��14���a��L�sbӣF7�9�dl�
8�'��~N��
+}�,֛4�綹�`�}NK�����
�`�b�7�9�j�p
?"S��
eQ�
���0��H��l�s$�����3}p�
�,~��st[j�;�aql�Y�
?VO�R�����t�9�~�7M�s�T
~3^��+�
��~Ta���ϑP�~l.�qY��V� �� l�sN{�Ď?�5y�|�@�M?l�ρ�L���QE����ρ��e#�Zmß#�i�
���l��Q�f��?�|�m��s�zk��
�_��;�
&�:SǟC��L����Ys��
SzJŌcb �Y6����?�[P
7�9P�)y�&�S���S;�-�*�
�̵��3�HM���b���Y6ӆq>������M�����E
L��nk :���� ��o�v`���6ؼ@�C�5��-��`�@g n��
]"���@���
)L� �@^Rճ��I)�5:�T��tx8ѷ����gc0�a�с��W�Ơ�3ɗ%
:�+��\1�,s��1�0���
��"�/:x|�ԟ �,;d�2 �8h�U:DE���tW�Z
�n$M�mt��켸A�Ֆ�B�A�Y",f@�Yİ� _C��a,��:
�Wx��@��vr��H��"Б�t��@'�
+��28�ĎA�߬B�Y
���Ú
:<,�G
�βWIà���f����85�-ˌAg �-��a�A�aBk���
��AG�GvO�����
����A�|
+�!�H��kt 01�+���ϦC�YBr�ˈF�Af�ڞ2I:�k��Sܮ
+AϏ�
+%7 �@
xȊ@g٥9��@GB�eF�U,���@Ȉ�6:�:!��Gd`�5:H/j�
��7Z�
8"��
2bE�
��wb҄ �!nІA7uFr[��4��
+
��b��������CG6er�a���ϭ��1���j.x
�M8t�te��Ҟ�PpK
�SI�vB���1�iHt�i��T$:xD���7!ѱGt�D_�l�ԑ�$�ʌD�ad'
�
+y��V�7�ك���@] mT<U)ZM?5 w
��w
�NǕ���pe��e������;
����44:�b Sf4:r_�d
���ݘ�Fg��$o7�с�9��F�T�
x�ڢ
+
�}
FG�(.���"M�F��dz�F�AU���!�̕�����X�
s��
�ibE����TY3
�=aF
��5���с�� _���r65���d�pi4<:k�cN�t���j�t$ ݣ�Y&�7ҁ���;
���i�t �:��J(cS�3�*��٬g��� ��Z)/^�
3}��tp�0d>�� J����sj�t�,�X?+@:R[��2��%���@��<�YvX�
�?sI5<:%�����jpt�(j�w8:�k������ha����A��pH78:��a�����_�Fg�<ZRG��obQ�F�t�����R�70:˨�L�FG�I XK��l[-4JS�0E��k0:�
�L�ht�*�z44:���2pB������ht����u4:U���Mht��X���蠀k�}B��x
74:lx��jht��a����蔜�@�SJ
`t���Xt��O۰�H���aс��� ���Xt��%,:P�sf��cQw,:f%�b��!�E�7`t$3���с�u�`t �����Кg��`������Xk,:��fPâE�X-��%C����,qxU,:D�Ƞ
�ޜgU�
+��Uh���E�<ayv`�9d"! sƢC�ȣL�c�il�հ萫]r�Xt�0C����[&��E����p熷K#�
�# �I�?F�
NptH�Ml!����0b4���9"���X��kk G��`C�
(�o�с�X;���)�Yi`t�,[[��9FcY�`t��e���
+F爚�FnjȔ� ��z�l�F�l �X'0:K�?��F���No`t�����`tN�s�F��D��40:dž�`
+�#����C5���
�Tg�F��(��~�
��A�F�l�Eu���c�)�(:
��
ɦ�d�(���E�gLb��s���
(:���
(:lX��E��ԅ��*
�#L�B�9&�3NPt��Լ9��c�A��x�K��CDo�Pt� ��jPt�Bt�5(:��Q
+LPt4gP�ޠ�l��iPtN���HtdA9w :�T��
�D�s8t$�{ށ�@�<
$:�^�.l@ѱ���8��4 ^•#�L{¢Cm������뿤
;
#�PJ'0:u�����X�1���!p�|�
�eң���
�I
����v�ht�,j�dC����x[��
/n�N���
�0
n*�0ht̠�.lht�4�)
4:>/�� �N.
4:R�n:
��z�@�C7N6"hht,S�籡�1_
[dB�sāg�c������X*
�8b��N���}���
݀L�Ud$ QWٺF�sL�^�@�s��ht�rS�Mpt�a!8:Ԭ�:���P�1��蘛_rptx�P�pt���i���
prpt���\�pt�9c�� �N+�lpt������@�LC���@��48:�d�3��ё�ًh�G�x:��
�N�l9
@:֬xg@:���[�!�awhfDE�C��Q��N�و�B��Z��"��!�fD:%�
@:�-�6H:���w��t�FL�����C�Z���I�>�dd
�η�$*
�آ�\:N2:54\:�g�UM�t���
��q%��q����@�<W��B����!���K���3��!*�,�#��pဥ�J����`�
��K�3��&X:(�,
m�t�`A���dkX:�N$:L�
~Q�U��cQ5��֨t\Qm�ttW ����m9�?���o��y
�b�
P:�1p�72��+(
��\IvV#)���aur-VP:�V�\�
J���ґ�e�6P:=CѥVI�t�;�A�@����ҁ��L�t��'ĠɮY�0���B�@� "�w4T:p��ʵ���,� ��BDviC�C�
?yC�þg��KDŽd�UX:f�DE3�Ւ5q��#�IwK�]�HV����f&`:
$x$0
�����%k��K�lX�4�)uX�AX��
j��c#lC�#lB
f��#eȢ��b3�
6X:6膣|
KG"#����f����j�K*��4\:��UP�.�W%~��C3q-u��t h`�e��?�a�:��ҡ�=���J���tML�t�ϏB�FE3}�j6X�N�'�Q,�B8�`�0��a鈅��(T&&T:RS�t��[��ϔ;kP:��tҀq�0�@XP�<��a�0ݡ��a��mxs���4N�t�̐jTj,L��t,���m�ґ���K�f\4X�m��6��ΰtt��_�Kg������9GO_���Te��Z�2���4K�d$0P]a�8�N�5,
��TX:�P�F[u�T+���
+���F�i�tȷ0�9��K���0z&X:t��@sh�t��C�h��c�
�
&X:R-q��BBP�:��q�8��!BR�c
�O
��
oӌI��F�+&
f@զ�I�5s�|�0��e-kL:��ᨘt<���0�@1��&L:����0��1e�O��Tj+F� ���z�}+*���e�+�9t�"��Q�X����uƞ
�*
,
+ƙfT:��㫡�9v��i�ҁB�o�c�=U�JG���t&B��J� ����{�dK���v*5�'�<�}�w�ߺ��Id E�A��h�fA��ž��w�jU���igc���`��Ɔҩ
��I_@�%z)�Dd�2ǘd[�GW���y
���
GgF�Ԁ��h���T�0�`t�j^0:
+�F'ž��c���=��
+5]�-
��f�x��
+ϰ~U���'@�ht�r�wl9ht��VOȜ�w����a�AN`
Ȉ��4�-\4�-��������ڬR����R�E
�:n�u�s����)�G�G�h�yB�Na_�7��h0%���c'7�!
�d2"�2\P:��ڦ�I��oP�X��E�#dK"�t(]�Ύy��K�hu�F:�t
+�Z�(�t�"WN۪A/0�*�Mu.]N� ��K�F6
�n.�d�
.��j�.�
zLJK�
C�������\:�
��
Lg�i,0]��^� �e�_
+�\`:u/0�R�Ϭy��2tM��N0
U6��L�2�7G>�*qR��鐧�V��PZ�\:>���
L�R���x�NW�
Z �l�"ә<�&�e[��Ω�b��LG���~H϶� 2��&�6�B�a/�8U�d
�~u��T/Cf�"�-�uX
���d:S�
�[bp騢!�\:U)Y%
+�:6�N�0�Q.�V..�!;�.�0q
�\fh
�n���S���6m.
�R#�t��V��;%�tR�9>X�L�U�
����RK�X:)�o��tķpyp,
�|V�:�Q��`�2��8�Ng��Ё�;�=uȎ���֞�ͩ�o��~�t4?�<P�O�T�%\P���NP��ӝ�{�$���W[�D�҃@�m�Bҙ�Tf �T�1;�O'�e��Aҩ������
+f��Ê��'��Pŋ?g�a����b���K&�b�In%�ͤ�b�����39>�t��mC�h[#t(r�kwA�4�at�dj��Jw('���,�P:}f�9���U�;��@n�3�T:�l�T:��Q��
+�EP�엦��e
~�/�J���e�*ݡ�T�-�.��C�:��̣5y_�ܣ�yL�H֝
\:�!�}O0�
���cY��8�����$ӱ
���hN�A(]d����Ò�L�Ib���t�H��q����Ib���jIW��锞��
Lg�Q�Z���%��K������q�a��v0��f���3��\������@yC 0��T�-0
J}�&ӡX��I�#QN���$���&�ia����ө��L��LWp���gm����d:ɖ|
2����c��� *Z|��0v��'�t�B�>�lѲ<v���O^l:��C�32�"�;�L���]� �I��e��r��L�:Y�H%�d���O2
�He.0]������vV���J
"�t�o��,�t�1��F��}%RP\: l��K�:��O%�K�$
ՠ��S�O�m�\:��
+�NBUD>�t�^\:������:U�'�솞{�V� 배1R��
0AT��~z
��t��.�@�a��.��������TmjnIΥ[�ť[jp�K$��9� �h7�N�?��u�Γ��L��
M�Ug�)&6�8]��� �CL]����
���n�^�N'�11�tV�Aʁ�s7�N��p:}��йB�P90t��|h^��x�
+���-��-5�t����P���
�SQի�Z|w�).n;�
N���!ENG�����{
+�әZ���BU;�����iJ��N'�
4
NW�5,�������tRm�p8
�b���u��xl8�.!�x�+T
���tK8�tK
8
9����Z��g������k
�i���T�R��� �[j�C��T��9
v�:�N�]V��d��X��x���o����I��`tV���];�t�����ӡfg�Q[�����N��N�oe������#�n�}��Lmu���sa����}��T����(���Xp�B�dk7��]�{�N
�np:�� b?�t�
���NG0T-'����J��NQr��u�V����+�
O�U��Q£����y��t:����.:�3v�x�O:
��U��x#�=��[�c�N�*3���Q��C��p���x�B���;��%��l6*�Ê,��P1�ͧC}a�|:�����c�h���K��O:]��+4����67K�<{�U���N���V=a����>ƻl:<�� ���mXg�f������Se�����Nup�Nц1�\l::p�{����L)�t
+�1_9rN�GS�ՋL�ا�f�(mz�t2�n4ݖ�M�1�y:�NM�P&n6
-T���*!���6��ψ�ߏz���ΦŊ�/4�ʬ4T����i�$�t�'�nx���ҽ^s��t���n(��ې��I��q�g��
5�z��n
��ޣ��c-<���
� ]0:�3eJ�*3��>0���q�0�֭�=Xt�k4n���M����i�Tg�p��)$�
C�]{�Щ4y��a�Iͣl��V�&��}j���zlu��S���r��x��sڞ=�]�f��͞[�E8[�"�ə`n��
+'�;�Ŏ�u�k��ŜSE�D5q/�
P��nޜ��9�n.w�in.w��.ڜn�ݰ���U�5�UYkm��p����ܬKg��s�&��f%��H�l���9��b�=�lEk��j|�r�X��ɩ&i�/P.�+���e��/�\q���+�s�,�bA���+f��!�M+�Z �
���Õl-�7G�п��P���F]9�ׯ�,�L�X�h0�c!���ݼ�*��z� Dž�c�"ȑa��.�
��
�"�%��� g�_y7A���R?9=�A��n�
�M��An�+.���g��.�
_�'P7A�L��;A�;��(rJ��y�P�,� �R��I�� 9ɿ�n� 9)�e}� 9*�*�� �t=�
��I�m������W]k\��'ANj}R]9{���
+r `?N�
���Sm���4�����o|\�w��Վuq�����q�6��'D%���wx
m%2<�q2��
t
�q�599N.
�qJ�j�
l
����BQ]?'TB�
+2+f���
+�2���'�Ȗ��q`
�F*#�eK�}���I2��*Jv
+�
x�+NO�Bg!ʆIF�A�[��М�0Ӣĩ
+ � ��a��8��M����E��!�{�l�Ϻ�� N]1
.>\ovz'�,��
n�}��B
6������m��9�p�S�m���*/�p����
1�p�Ѧ�ڡp��F�QP��E�S���K�����oJZ����U�Y��ͪ�ҋG��B}��B�NӐ��O
�T.m��Ig��6��H�W���4���h�H��xp;���lOp�i�<�'N �
+��[T��1 at s
�
��y(
}�RY�'����0 /����
�Wi�
�eډ�ӆ6MR������
�
�T���/\�Gs�E��TA�Š|�7
�����g;g�8!=����>i����Լhp|������ۜ�E���~�
Z���I�[b�ഛ@^�7�u�.�M�S"��z
���S
�j���3/
���
+�0uPހP-�.
��dp�:�NN��p��88|_Jy�-��m�yp����n
�4��z��[�Ń۪���
��{���
z2#;
<�9db|��J~�M�C��48�Ǡq��{%�48�E�P��$���w��$��θipx��w,
j���n�^o�j�Uе��r=��m�dDmգ�,z��
ʛ>��^n�n���}
&��d��-��-5`p�&�Ēl��7
N�U�:L�C�`p�
�Ԁ��]8�Ay��eb�vT=b�\5aJ�ʂ���F���P�.!��6��I��]���s�e%��̡���7_48�k�1�~�
�f*iq���CY���È���8�ٵ
�N
�V
�I��E��Ǎ��M��K�y �������p������bX����1����8'
N�Lc�s��O
o���Ԁ�e�ſ���
+]q��
��[��jP��k�AK�qp?��"��Ӏ���R$8ob����ݒ�W�09.j�
��G=���Qs��
��v>���Q��eI��f�
`��@"�y��;�|8�
㔧�
�}�V�q��X�!pp�Y�����`p����??ӡm
+Nis%
+�7c�� 8��
+܋7�
�1����IP���
������
����"������ֽ,�o�iut�ߔ�V�#�o���~Ӌt_���� �iVԖ6�o�{i�=�o���M3�*��_Է�m�m
�7W̳��[ Vς�iEBcڂ��x#�L��7�6i�
{1��}K�x%�i�L�z@��� ���7���k�RQ?Q�Uv��c�
���Q����&U��|�`q�@�������|C.��v.��i0p�oN4�B��G��ȷ97����
�KO�I�/�6\�j��nx��w�Ƞ�A����7�m��vKp�C�녾��톻�^���zہ:5��
�v�wKV���ƏI��O��v�
�&�<yl��7܍l�倻Y~��n(��p7ɬz��1AmK�������Qw
&&29w[�
w�r�����r�-�֦}5
��de�q��ŭjV����z�ha�x�
E��k
�e��Y�����W�.���Q ˅
��j#�Rb����}��w3K�wn����iD��n���e��(�-5o��V.�ۖ�����mz�(j��n6�jH Yx�<6�m���n!�I�
.k��$ }Sݸ���U��.��u�����u��:Ǻ�4������=�n��"g
�M�
��º���Kc4W���V`��ĺm9�n���.hm�[��Mu�ޟ{.TՇ��r����IJ/��z�I~�mD�%�n��i�B�|��Ϣ�i����m��0>Yn�@���p�Y$�-� ���Mi��-K�M{�٭�hu{(!̐7�)k�� n�
�n��TNU ܠ�<�kc�����d�Y�6���> �-
�-�M�7u`�p=[}=��Tp�'�mxT����4�L��n�:����F��S�۶p�ۖܶ�#��������l��Pg �u���n-l�V.lۖۦ���~�6�b�h���4!���)p���� [...]
�<�
ۦ
��mC�yS�ph�lj���7��+:g��6)d���F����Cmӽ�;�ms�D9�ńcۘÞ��MmS��(3�*/�Z�6����m
+
[�Өm
+�t\�6�5���6�V���6�{
��K�j���_�6䀓 &��9�
m�B(����mHenh������mY��� m� �m
+)��^�6:�3���چ����mS��P�;�m��l�h�:��)�m�*54.j�N6����&�ƌ��I!
��m8�����mD�tq�
�<eS�PH�_�6�����l�Am�9��EmS
6�¶�P�baۄ1�G��6�E��/lD����X�ƻ�m��e ��m��dun�����.n�&���<�Z�����I6w����36-n���<�ۆ�m��mC�L�s�P��`�Hb n���q�mK4x��;�m�����[�6
+Pz��0��6
��F�z��ek���� �G��
n��np�n/�Y
��#��~���c���ۖ�N8�m��
�z�f��aEe�mCP�=�m3��m����ۦK(�mV�c��m�P��6�*��-ay���m3c厜ۖ�Q����mC���Qd6�¶������˴[��mZ���6}o�t��������$�����G�'�mT��M�Tf���ֽ
z�$�27���Q?�6-�Ɇ�M�<�'����¾�b�){5�ب6YY��vR[��q~@m�κ9mz(_G�Qs�}S����>
�Ҧ���h�r#��h�1{�M;6�h�ۦ�M���u���䈔G[t6E��Q7�
�q0AgK�����Φ��؛Ά;�*C�� (ۻ��P%z��su���Ζ�C{ϸő4�Sy�وi���t6)�
:J���hq#�p6��߀��;9Km��0�ӹ
6�N��`��P��f�Q�<���l��v6�0�ѓ͆�9CQ��tUؚ.8�b�l�/6
�����lөTAf{�����f��\�Y��5�l� ����i.XS9�M
eB�M��#���N�m"���"������6#d�<6�]��86JL�
c#5���b�
9�
W-A��Hl�'q�mt�{���
��������ab]�b����ag���Mۃ
�&Q�� ��$N�`S��bvM� z�����[}�zz�r��nF���`P����kZ͔o�ʊU�E��l6�Wk���k*����opL�G]�5��9���u-c�kj�R64�k�^�>�"� ٨�Y �Fv2��֔'�I[Ì
7��-�����Яν#��
�]��6�d.`k�Y닞�5�
ȢL�ȱPk�Ix�Z#'G����H�5��I~i1>�5E�0k�d��5
��Zx�:(�!>k�}p��
��(aM�%
+�:`M;9=��W�FI�
���������|�f���f�) ��D�����*
�f�
�f�4uq�x�\T5y{j콠j��������3�Ah!�H5�햂�T��
�f��� 㩧6pj*�UL.��ԋ=�v���$��058 =/�ڛ�6�B�i[�o$5%ո�AR#���F��͋��WYE�s��n
HFM=��vAQkV�
����V�R� j2
�Z�/w��Z�J�����n�"�(v���R2%�i��ipY�2��nrZ�oq��c�JǦ�SKӋ�&# �סiTÖ��iŚ�/bZ��E �4�j��4M� f�&�:j�
�<y���k+�ƀ.
���d��[&Pi��ڍJӋ4
+R�R]
+�(MiWF�����#mäi�h$�l6.H�h/�y�HSA�I���+��i4x��ij�l
�4�|��`�Cou:���b�{�M�7�
��.4�
+e���J�[~����n4�3�M
�f���!�pol0`��T�
F#k?�$�*l.i)
+0Z�J�$� F3y�
F3����RX�h4d���FCa�
4�7�*�h4�����(g�e�Ѥ�"��
���
F#�?�Ht�]�V�
�ѐ V;MB!��d4 � v�� �Q�d42ŵ��F�2���D�i�PM���V��Zu�h4Z/��
�FB� w��f�F�;�h�����E��9�mc*�FcÓR�h4��S8�h4�-[�υFK0o��h4g��
��6>`4�8�M� �MZ���)�m������p���b����&Y�W
��� yi
+A��\4�ONm��8�V"�"�4,��ђ�F�F�֎�F�4u���@|��FR��� �Qi@���%B�yn0fT|T��@��Q���F��B�р��0ޡX.0V��%F3'Cp�������E�Ti�F�O�<V�є�V�x�Ѥ2u/2�)�m4����
Y+��F���hC�Ѥ@D��h:s�?�htkJ�Jt�6�
�F�&#\���
�F��Z>h4��V_fh4j�_'�y%���B�iL�o(�hX+S��h4�{����:�����%�h �/+�<Ja����hz\_�<AG�o�_z�ѐ�G��4���P�IF��b���h�b�i��P�\d4���0LAFS��F� ��-Ԃ�"�Y �-��F�ϫ�9MɱWћ��i#Ѽ ��
p^d4P�<=M�;�\�T�@�\7�T����f��67��V�AFӇ�~�"�QLn�C'��uC�`������.2�%�J�d4KZ�w��x��c6M)*:僌Fɾ�~AF�v[O�EFK��G�d4�24�,2��$���a���T�Ѱ�d^p2ڊ&�d4}K"-?
H[d42�,�N0�Rm�E,0���7�o�0�(��hT�S�`4}
,M)2��-3V�u��t�����h�_Y�� F�f.g��� �V
m݀���O[��ӛ��f/�ʐ ����fs�HYa.�e��j��3��C,�~;�^P�H\Sy�T4�?Ix\P4�@W���Fw��M_�ᦢ����W�l`�t�7�
Ǣѕ7�8�hJ
��
+*F�
bAE�n�qAє%�'{0Ѹ����D�ڋ.&�����h�J &���F+�U
:�M��Dàa+�h��)+��hڛ�
X5ip�-��h�)�
P46o[L�Dg�R�'�|�؝��0��$�L4�
N$ڻ
+�-h1�/�
�Z���&�p�<����T�}C�?���C�< ;�l��(�.�b
Aǡ!
�1����
M�eV�,ph�㼳�84���
+
�2=�C�#Ƹqh��v��C�@�=ph���<o
Z�h�)Jg�#�AM�1I�������F��4��Ѯ�:1��.
����ME%����W���C��DeY�C�z�E�,��
�����>M�rH�C��ihr�
+C
-g/�
+�Y&&���C��Kw�:�m�<圇��ǵU�a �����0��P�6MC(��u�s ���/��'
�����d"<4 ,.
Z/��e�Pj
<4 �jK. ZƖ��D�0�@��� D[j �2ɣ�M��D$."��sirr�2xhK�/@��C3���-�� �V
D�?>��
����� �!tC���P�k
]������@�pж:�h
��n"��
�
+����F�5Pg
^+����O����D���M����
vM�U6��a�?�7��@4�j��O [M�D�Ζ�^ јR����y�*����䉝���X�<4��4
qS�Sݨ�0(��f�TM1T��;-Qz�ߛ���<ե�C#���e��� ӝw��P���CC��M�x����
�F#�
x'��j��A ���TG��Ħ6�l[
��k`�&G��q������<�%�D��~`Z�#�8�+=�ϖ/�n$��n �a��5�z�h�?�hڋ�=XD4-��3ЙB��7�>�r��(o�^����٣����gUѤ��[D4)Pn$��,���^�>�@�e3��$~
��F-dv�����X�ÅDK��*
��J���Y@Ѷra��S���
�c��O0����X���+���L�_2ږ���?=�h�
lO42OT��P�F4���- )�`|e�\�~�H���)x��2Os�4�T�E(�P��-M
+�c�t�s���p� ��SX����Ѷp�Ѷ
`4
+���-�N���Ό��f����ےU��T��i��#j��h
+: �Z\4���8-���n��E#L�x`���M�n�v9eC�W5-*j:�h�
�
(��=��hk_;�*Պ�0͎x�?7
O�TV5k��� ��9~����F��D��� v"�j��5���qh�ݏ
��V�,�cL�
3��F��z)�,Zs�ŋ�F�?�<��$�@��)h@�t .Vz2���f-,x�Бf������ �I�5#��|9s�ϤN���[�܃~�ϛ�>�}�'��=k��n�l �
ul晒�Z��lD�s�T���I�`XP����Vy��d��8�����A1�=��1�,�
B�!Ds<�=
>O���t�
+�w:{�5��Q�X�Ɯb&����\��Cv��|����e
��������KU]=��8{
�s#Τ_�iN�TѼł7�L�_J o�v%%�L�2��썄����
�|�qGxvi��Too�6{!�^Vӳ��[�U��)8n����[]�iw3� �����-�
i��
i��@��ͩ ��q:)�&��k���
�_,�f[��f&'�
�~�v^�W*���%�O����v�=�g֗�I3�C�h�e��|�e��F�8��]@�
+��j�����s�=1fԊ{c9
�f� �Z]��-Km�::�l
'�l��e4
�z�\��Ѻ�e��J��z�N���o�HT���P_s�e�բ
!�e��duޛZF�E��B
t�R��,[���Wּ�m���$���էK�@�~ށ����L[
n�T&(�36�
n��n�����}OHC
���Z��l+�þ倔���}%e�^�� �Qf�B�nF�*UZ�2��m)vR�����,^@��=xd�
K֮�8a�ӛ7�L�A������\B��tgu�.PF(揄qw�E)C��Q��V�q2��Xӯ�2Z1R��Q��Av��
)�I��3 etK�Ҁ��f�<'�,�F2���I�
���Z�7�
�A:^�Qv)vS�-t�,�ܤg�e
�N)�}��
�2�3�xA)�b����m墔�le�����`J$�ڝ�2
+�4��,aJ��1�"�I%8�2
�}�c���C��2���
L��6%�)� ��
S�9��F�)K
���)���'�I��.0eX�+P
�2<O�0e��Ȏ)�u�脯$��F��JKӔ��)c�Cg}�.��B��l
�0e��,� ������L�v�
+";H5���3"
�ʅ)[j`ʴ� ��1�Ҹ)e�g�䭣0��
R_��%:�LA�1�,E:��!��'�eb��'c]��s��$6n;
CGq���5�m<�ޛg5�d���1߱cZ�A"��d{H^ǩݕ:���-�-5�d�-�d,�5j^t2�
U@*��-�����M�E'JF�8�d�[ٍ�vg)���R��*Q���Nf!�9n:M_E���\i���' 鱋N�SIi
N�ߚNN��
k��p2]���
+�J�g7�dK8�dK
8���p�O������fe��/�0�_v�d at _�p��Fϐ"E����
�>O��p2n2e��a*�x,�@h
�N)7��0c����d�Z��*¨'�
5;z�"
+�e��p2���q����u��'�p��� '3�
��l�kc����p2�|��T��
���iu�x�'�
V�F'�����L�FB�L�QQ�p23/��Mjk��d
+W3K��@�89�%\l��:��Bո��ϛ��W�x��7�d���M�h�;�d�}��x�<�&[�[�
mӂMF�R �&���&۪��TP��1�c�1_���^�CUН�`��ß���&C���b���f_d2��
�l
'�l�'Ӿ���vU�-�����Y>�a!�QC��Bx�M'[j��0��%4pX��:m:�
+��L�
+��L�e��]l���`�
M6�?�B�iF��$�d�Ws췀4�L�`�b\!�ؑdl�N'�1de��9��z��
!S7Rv1CYl����2��� ������d�)MZ��Z�
+C���^��^fI���9���0
A8�\ �*Om-N|*Jo-Y-�ܝ���EVA0}�lU\@g�В���|���t(�;ޤ, Y�^ݙ#2R����FU_��(��:����IV�գXRE�Z
�����⾨�[+3�7���C�m�����`�Q�d�˂�o;�dޅ�lh��D��ɒ
NRN8Y2��W��%��Hq<Y2��'�3�~��*�p�MI�
���p���e-�戃�oQpJt[R=[����e
ru��#j$:�bQN߳�21KUs�S�A筲�[�u��:~���Ҁ�|a�R�I�ݡR��,�[��H&�(� �D�Qa����e�vx܃�6�g�Er��,�J;�eKV������Ɍ�9p�On�
��^��*���kLwX�u]B}Tm�z5
M��芓Ssx���n����{/�6�<�5���ģ2�C=4�ѫ:�空��I�KU"4G@���]Q�V
+&�tu��~�i���c��T��m
�{�ۭJs����ɬ��ڈ���1hB�z�H[��
+�m�4�
����ERU�
�Dހ��~��j�S��N/n��@iݔAgxa%j�Z�zkK�}}Qh}�B
A����|ͥ�f)�L�"ZR�����7�m�:��R5�/<8���\���xfW�g
0
���U�=0��G���NK-h�]|3T��B�
:����_ c����fR�Bq��B8 �N����ȝ
�jհ�����ﴠ�.��_�����
x3���;�s��^�"G-�F�04�w��ZcUW�Z����]BIn 0B��mNb�6+Ea��7����qՆêk�A:�=���.w`3I��ד�D�y[�R3D|�
��x��"EP�iͲ�=����fXl���`�~Qh햲����H���u[_�b
j�ᾨO�͔�3+rVe�c��f1�
+��n%Gw
�80h[��D9�*�E�̰Z����������8L������"�R^K��62I�,��V��ݷ��P��SP2�;���k�K����\�sɍ�
ui�A�,��
������_=�����
.`�
?KѮ��|��yZٍ>�"�L!�j��=��K��<E��9 "p Uѹ��
شCnN�8�W�������Z3φ��du��%��J9�[��
�
�V���
ᇪB�܌�Ed�ʘ
+N}�EQ�l�|ʚ
�X�
Bt:�4�r�܄� �I6�����R:ֵR���U�� ��W�L�88�v
��R��C����o��T:%8����4Hy�U3��#�P���-���Z��N7��]}7j%�
�px�lGéd��z�K�f�)���2�Z
��!Ǩ˪����!oO?���e�آ�NJ��]� ��`
�=t������:8�u�DN׀ժ�&��k��ၢY
+��+LP��rP��
�j:�`���CU$���s�^����f�2��31��Gm�������
)��q��ʗ�����P����<P��x��
+�=�K~��t ^"Z�Qd��s�p�j��~Z�+
�K�O-~V����X�D3�߭�q ,�B��ي�h˅��|���K���'��wq�����TT>��̶�=�v�M�g5L��3
�t���N0�ǁ^�� ��}Zpp�X�U2���
+��p�d���\,e�~�Z{g� K��Qǔ��x�eK��g�>��hi����K�P�*w�:_B�f����%��h��f�PNא-�A���
U�g��N_�
���K��O��:P;e[ <fv(�o���[l�3@�U_ at 6��*���u?�Yo�ڏ���{��O��
ʶeu�s��H���iP �e�B�����a
e���k7���7o4[�czXF���U�o?�]�,�2�8���mZ�t���=
+O�n�D)������7����+��#�z��>p���ܺ=���=Y�����F��yZj2?e���..Jf�S���2F���ڨ6i^O1l\�(Lv_�������AkӤE8Dg*��f�gi�ʻ�N,`�!'��m���b�h�f\s�ta_�
��JT�b%�ΙX@h�3m2�7��4h�x����ES��w��kOOF�ڄQ���Ͷ�K�ƅ-+l�_�
�d����T���!U��"�U��X���О{X/��A�U�ֱWI�ڛV,nZT"/
�u�۪�9����$go�Ҳ�܂Z9�
�@�ɺ�Mт��cfJ
%���Ȋ�>�=�p*�$�Y>hnU�-�wH� FJ�-A6KJ���mGK��>���4����jQㅲ���kҀRރ�V��A�F�Hp!|d�=� ���&�^ɔ}��D�Z&��`RE�r-�b�)w��igW�̂<�zU����z�n��s�3f�Q�#��h�w(�zز
+t�G�����똫Z^���E�O�MKr��쥘�hça�۾8��<�`�I�M�/2�])ԡ��Ф��
/]�P��^�wL
��γ�������n�j=���YfUͨ�/Ow9�}A�^˘�G�\�
+iL-v
�)gU�}/�^?�m���K��
;ہ\��
��_�x�[�Q \�����$KP����/5:*�@��U������|���߇��߇�e�;�[�Yՠ!/j��|��&U=C��gƑVǁ��|���v)���mY�t-@���Y`(Җ�q��HG�2n���٭0+�����
+*QVZB�
��=
Q����
��-��d[��ӗ��Ť�
�V�l6ܡ��C�:?\�&����YZ1�%kM1�gpW�r�>��z)���u�lZ
8���j=�ڞT�
��C�U�V��,�ei6g��2���v�ඬ��:�
AI`Xw��|H��+ɔ� ?���
�K*����K��r��$��u��&��x��FPv�TF�j+*ꚁ}�}!��1�<[��aa����=zB
+i��
�������;\����x
�^��+e���!&ˬ(K���sV�.�Bz��-n@�d��*1 �OH
a����hMh�P�D2��(ʱ\ؒ)#�l*
�a�}Y/��U�Rf�>uL~{>�p�=���L���K���V�W���r�h���\�$2����)?�ժ���J/��F):|�����ki�j䟇ek�~(�g�A=J
+
��p��#3D��d��
E�D��q�j��%�酅e��V�a=�e%q��(+��
7
m
'�Lې82��Q��<
ߗ�x��e���E����3���4nI�]̖e��
+�MZh(����������٦�[MV$Y�_=�3�����_�;]��Y��,`�8^�k3�j�/���wd�/za��Q�g�J9 b[V� Ӹ����&��P'�bKYS;H�}��j2�u�k+1���j@Z�p��| ӽ�����,r�����fV��t���c1���F�
��
����#�&���K*�X��Y{|��[���5��R-����V���W�e\G�<�'�Աe:�u�mM<[��$h����Ռ�N�r�*a����F�wD����c7�\L!��V[�P�e7��@�ݥP/#��_���P��&�B�KgY�l�xͽZW���N�F�!k1kķ܅� ?XI(
��Dٱ�l�ZȝHc6�G�L����|����ME|Q%4 6ey�5�ӧQ~��I�/)�h[�����
~��!�*)yeDY��WE�
+;{Z[4YK�NN�
���ƿj��
'7 ��K�� �&������9�
4#�I <���:�V�n8C�L�I
+�I��-�V/6�F+��ٿѹ��K��Z)
D`��C��/k��4�r�M��z�UrC����o�u�Z�7}���U�U,�Hf8t�h?�r���Hƴ�a����[pu�{T��c6U�k�v=�vJ����h��M�������1S��֦j���Z�E�V�� �hfd��l���95�"Aה�SA�� ȵ�
c��d/
Ԋ��<�3��Qd0��Y
+��W�
5�MAU��R:#(9I]�M�S����
`�؊��>^ :AN�c�p�rz���QD��b��t�$�"�w�p!��mT��C���
] )����Y�<Gڿ�<�.F��A���z��EB�Yې*ں�=E��M����lk[�l[���{���9K�hS��˅��0���l�
���ȀV-���Ѣ�5�����XUK�O2~*�L(Օ�ȡ&�Pj�$��b�����JV�V.!k�ڤ �{�*�ˋF|B2�Ѝ�ӰO�)g�81o !�7'ef���'W���3'�qGF����1EYf~; Oݿ�!!r��J��W��w���7�~�a�(c �W����K���~�h}��'��
�+��J�N��-
+���0��7)Y�_�%ma!�C�����H���
+n�@i-h�^��و'hVׅ ���I��)H�ɛ��}�'š%*E��j�٠9�Vm&Y�|j�Լ"Ŋ!�3ͥl�
rfFL�H,��'�v�ӝ�PnN3��jh���IQx��-�"���-��z̺b\�Z5�6BUf%n�G�O�
+�JI�z�
ݒ�V69�={��KH@���`���Z�I�b
�}�+>Aߌ����h�G�� I���
ae1��ΕnO�e�O��R\�f�R��/ni�Y�[h}�|�E�������zI����"
#�!�8�p��Ty,F�M껋�AVY��-i��B<�ؘ+��6MXR�
+
[8 ?
I!
���Pg"��`C�
Z��ji*�Թ
+
+�8J��VA�(D�>���������9�k��*`�([nx%2��+ at b��`���dJ��a"�-���
�J���z�
'����8X<���f2��
�d��N�7��b�%�
��ᅫ9R��RN��
���E�Xy�1n���]��eQ�It�t0�'���k5dm���P�?��۪��G�����_�)U�.�_�z.
�S:FX��4!�g�\
{)��`.����뵍/�]R
��I�����m�U*�e�l�����7��N��\��۔oN�d�����D�������;�
+�J&H���K
+�O>�}��Ģ,kGŖ�t��dS�i��
oj
��d���&�i��Հ�O&��B�बX
���xG�C�5�s���(7<reu��ޖ��ˍ����=�9j
l� R��D\Pc�"h��
�i�?Zi\K�z#i�&�ɴ^x�z�������e?����/H7���r-+��k���V�U��
hGs��t�R8Y�+�FD��l�u��o��^�v���*�p
d�K]�a���f��
�9B��D��,���:Z�Q]2�/8���q�w6�ByȝElm%�ͯ��U��6.^ٽ���u�`��#�V�����A�ozw���j��\�R9�l��)�_�4:����Yhg��3��GPN z$��apy���J4�����1�IA({m����T�Y��|�4��B7_xw�V���LE�þ�<��
+oDW��/my��G��Pm�˗��B�i;������
_�Z�oy��_�Rٵ���+2)�����tc�$?/���[}���H��z����Kw��(��/x<��PN�hK�����cqk�P-M^(vfZ��4� Iz� �/�
��p��$V�L��R��
*k
:xy�� &7�����ə(R��P�I�K�.ȴ�����7�W%�1;O/�bQU���n*V͆_/�o���z�
+~��I�Xri�HK������쬶�f��zb�߂�p��CIHDy2��N��z�
�'[Y-+�77��3��(l�
�|�����
�2Mk�dS���%۴��aD�PU'J��_�j8������2sV�s4_�@(Ҝ�:��_;�z��(���N�|��k���zz=IkjO���Tw\1��Fڒ��3�uYc�)=�!D1�)�۪�ݪd�z�F|����R��J�-
�a��i�R�E��f?�V���
��z���ե/�1Y����%õ^�}��qV�I�M!���y�RX>�f�^�(n�ʣ$�� yw'r���R,dY�YLJ��
�&
�5��`
�VP��_,���R"��\S�p�0�i\�־��e�_e����T��OV����)Qe���Kˌ�T魒!�R�<�j�[\�4���L�+J��x�x%�v����z��W�9NK�O���s�����7W�$�(%.��~~#��!�8�=�z���^%[-���K~��H��6)��'�"!d��9����fkK�|�SW�,�a~Ƅ��
#�G�EM�3��
]My����#��.�&0�ޒ�
Je��z����ױ�z)�|��
�#�x���#�;�)m��`A��f���7�ʏ��a���w����z�սr�@T�|5��J�٦O��m�
+�T�ʘ�"����;��_�u��j�/
OiH�|=d�BT-�
�l_���XJ��U�����e���
�3n��
�x��
�*ji���N
�{PA.h�2-��-�������J)�k�74WX�W�Ҧn�Z��`Oサ�U?h(�
+���
+�b�Rfo1�� e֚�m5��XB3�)�V�Q(v���&3
ZO�sPNj���Bi��6h�J�b�H�
��Ҋ�0J9�<t�hÄ
��q�(�.R_�?��(ؖ)EhE���9\�I���m�@�Y�@��J�5�/���zQ�Gė�z�e�ߚ�h������(���g�i'xR(�X{JtZ���*t�X>�@V�X�d�����P������ �_����@ lO��!��n����g�qnw�Z#��.-Г+˦���d_(
?B�hu�K����k`���Ҹ�k`��L�=�*o��Ǫ
s����eۯ������c��O��T� H�+}j-������^�sj�0�f�7�֘piw혞q������ kTW������5ؾ�yB��E�
WQ����xO�b�R��Gr��#��e
�?�u�)��gdk1k}�rd�d��W��_
)�(܄2
�DN�*�������
>�$k/||�y{$�qט���|�ke>��Ǒ;_~Q�D-VrE#(�
*��
+����z��.J�j�JӧL�E��w�Y�qA��활����S1��4C�vכ��K�ߵ��8A��E�S
+��V�iy�1l �l��Ns�f��'��:��ɻ�tuqÈۭឫG��k]����"Xl[r�FM�4�c{��R1e\(��?*�5��ʱƴ� �-z�uOUZ�n���|�+��+7wO��'��$%�5vV�1�|����& i�l
�Z��FB�Z���j��CS�2�����K �(Pd�P-����"K]�/
_�R��0H&���r
��c��;J��#���0>*-`qiG�`|TZ�!X�UZ0cNV{-��?�Ts2s��Z�t���M�#ᅋ��x(D2m�(Z�&ej|�]�
���
K���ơ�]2,F�쥝���E�k��8[���\�X�6M���a�XfAQ@k
��y/�ja֫��M�ӂ�=��3U�cW�7�����vk��
��;�̡�#�j��Z��χ�
Dj�)E1�7E��9�wu��dF' A���^GI�A
5X����~w�ٌ��˭9+���m���݆�y3,���I�Y�oT��_Ϥ�a���4�kQ�C,d�`�*�J���cC9
�R�"Kaq!e'�$�O�f�چgiQ x�^�W���ݐ�g�d��
���p�v\�U��l�����4p���TV�R���K�@��eS*l�*[���}Mn+�X�B�H�*��R.42��u3�M
��UmO6�y��k1������_��Ɔ����U���O0��Z`�Q��O7���ǼnpY8RH��I��*�#����l�w��_<����9r
���
�Fd
�V'�< [�z���ٴ��f��k�s�a~��j9H&y�;r�7&i0��5�+#(�s��骣?���cO#&+����~� �"?֟D�0)u�)���~7��'Y�He$�-5s�tR��ь+�#H��C(�/�M�
hL��*'�WYp?d�_r��ÌBkv�U�Tȟ��`���H��U&f-���%н�\S�w?��Z�Si��O�x�-�ԗ@)��_��!7L������I�Jq{u�շ��m���ZeQ��U�EP��7����4�]��8(uXC�
+��Y ޝ�����u���R|����5�SZ�
+*���!�
Ն�!���=�"��
ց�0���3�y������>q XGܬS6��H�o-�l��G�4&z�'�S���
��U�yr�|�
+H�V�6
p�RR? ��8NP�*_��
����䯑j�<pY��Մf^kG㖇9���%����24��T�v
��*$%��iQ�Vp[�kxp�n��cߙ��frC �0�l��[uԊ��DφX ǁ���'_�YIJe�4P���%[���p:���7�;
���۟J�l
�
��C~��A���-��
7ag�(z��e7����s�4B+ź�6�O�PV�d���z�[~v��a'��E�#$Ma��L
oG8[jy�
v<V=�$j8��*�$0���Gا��i��Nr��؉u�/��
�R�ɮ�l6�e%� �kA�*{6�ϱ����J�wM��Z|�#X*5S]���t�t+5)��'ٚM%cf��wLLU�ܔ�^Q��^��m
+/���c=�?z�o'�)a����
U����ַy/ }m�9��C�*+�Y��v�Rkm9����h��*ȺIQ,4-a�D�l/�&y��
+^����P|+aq�T��(�tܫ�
5Z8-��
+��8i2I4w.-,���W��Jg
���v����X��e<� �4ɡ�Nh�>���~C�Z�Z&H� :AvK5�
+2�K��\�!���LYǰU�)���}j��P�T����&}@"*����+8@��:\��1�S��DvW��ȹ~�j��8/����8�c��ø�
��]h���Ņ`�r�*��
Qu��!k�G$�
R�c
�/�Jo�9�
p�J�WQr�J��a����1$��s:�v/>{��/GX�ǬF��.�i5�d�>tJ<��V�P�;�n�Aʊ1]��c�B�*�[�_Mn�:P��Ex�B|hW����0�z�Y�����*
¢b
�@�8,�U�]�LlV�����팜�*ڋ�����@G�G�/��[�/�,�|�*��j-�D3�^�
�ث�g��
+YV�
�ŋ�j�K���(�L��pV3�.
����N8P����U=�
��i��TT����D�gy�h�T�1�7gm
J:�[�؏譈c?mս2�x��z�*���e�����(��1�Z����5ܓ�0q�
��w��Z���� �:G�����6��Ъ�Bi� n�>]���c�+�L��?�۔Gh��<�`�i�:Ғ�No���
en8�q
+�ɮ�ͣ���<���B�P;���C��%f@�=6���x�K%�I�N����Π��T�\�(wq/'ٍҖ���0���HF*��PA��r,�,i��P�#ֱ��-�6�A�{��Q�eF��,����u�?��2ByCyWM�g�x豬;��| jA��tP��S[�z�d�đ@�H��'����
+�� 'VD�C��K�\�֪x¬��D��${�;aHa�oΉ2�Tf�t�R�>n
.��S�Wб����Ip�t�䈓 ��S$A�~j�5�SP{(��n�����w;ͭԃ)h����&�y=Q"+u������hZ�$ʪ4FXv&��V���N��XɈm�%{/㰦[����3�+�x{
�̙%[}#�����J�̸�b�[ɜ]�
%����m�Bԫ*����;,�'e3%�q#r�!��2I��<���q��"�a�[8��T���ۇ��|�ή�_�n�F
�`��p?k������ ��/[[���[����{���~��a�]�F4,�^���9��� dҒ��b���]ɡ�$;��8�1=U������:
+U�\��)hF���NXɬ���ӟ�7�H
���=�9�M�w��� =l�DT`
��}�D�춥l��>����}��>��Rm
+^Õ橺�|���ɦ�Ĝ�������8��U�EԚ� �?�a��:*�aϫ�-�քLX�ꍲ�l_ۋR
�8�
+Z[�xx���0��k���01^e���,�D��Z��96>���S���J�َ�_w���@��@�C6���hBVC�])ֹ�Xΐ�>�ڲ����f3��8�G���<p)j�Xa�P��O���w�j�
>���
,��ՎQ�K���9Xl�%�f��٠kE�����ح2��:nA`�@�W=�B`_�ie��'�U&���5
��P�(�B煰Vg: �� n�����#PP���'({ߪ\��2�?�
�b at -fX�� $boǐ�ܶ��η�Ѵ�Z���.ŧ�l��p�W�����u��y�
+1L�J� �PٰX7G�Tw���q���#���d���W�w��BS$F� �8��Xj�0�{�Jؖ��.<�Ǻ�(I�~�q�
>u�m�
�B
+�d�m��,����(�V*o��$w7jٜg�[�1y3Bxރ`��6�<�wXn�,�&,m�-S��|@
�+*q�dY6:�F�i��}h�s��3
5�d��Vn��d��
e�7��;w�y�V�f)6��v(���p˯���:y�k�!]��2Sy
�Zik!��3�oS�1��N)䔼�S.��5�J�O�E`�Z�:Y^�֥��VVE:$0�jWݟ�&�Pa �* �n�fg����]�C��QR�����?EY�����Tg5�]�
+�Z@/d5 �!�p�a*����P5@u;�C�N)��q�i6��G,^�v�V��=�7<��C���?���U5����H1�;����H.��[���C= �%Y��C��&��S�%�ov}? DE�܆��Rg� D;F!�����,����u}^>D-�#T�D=�3ӌ��z����������4~s�X��L���?�>0ƻ�F�y�Y��������r=��4v�6>�C�<��?D1^��y����?dK�8a
�
�
hCH-O��0�#}�:��=7�p+g�P�����n�!���}� @dI��:Pv0�7sbR�I�@DN��D���F J�]��A J&YD ����D)�E@����2{ "�@ n��.5��忁�o�����}3?��|7�D�h�Qp��\f�F@�"؞M�����cV��L d�� "ҴD�\�& ��q� ���
��J�O���(Y��@T�S*��gT8�Viu�
�h�<�I@�$5�!gx�Z8+�=B6
��� �f��M@�s\�p���jMO^)#�y."���n"b�i�n�e�Y(�C@�C�� 9ў�^6�<���7�[Cߍ@T���@����|�F �x~��D���@ *'ٰ�>��}���R�*
��ߵi��2��!�R~#p�Dʤ���RsCV�{竱�^���NZ���� J�O��ȁo-�(�7����)HP͘�M��H�u�Q~ہ�i��- ��
+@�����^D�h�έUW�Z���i���CA�l�7(�(O@{7s�9��� J���� f�#��D��M�� ʔ�yD�v
"�r���ATy�oK5n
��S��bn
"������
ʉA�r`3��qN7d��ttc5�4�q &�o
�VN
����68���hl�8��ӴZ7����B�R~��A�ܺ#q����� J(Z��DJ�;�>� bH�R�ĭ\�Cv
�>�
+��P��ߜq(~��$��ǁB<�\
���
�xȎATeHK5<��*<Z��
�L�XI� �-�<oͧ�?
DE�Sb��
z�i.
"ֽu��t���橨���T�9����,��A�\m+�.2R~�ѹ9�7�}@��_&� !�0d���17���is5L��#�A�s��
+��|���lom�o���~O�� D�b�2�Q2��B�O�7Gm"�[�So"r
�V������ D������M{���
D�~_<o�rڽ��!�pߺA���η�!��}6z�� �26ѢisR�"��ÌۘQ_56�}R�A�����:l��^�8y��r�� D�0ަ���*�>tMo�
+�*����;>Q�t�?҇����7
"�n�
��;�ً��;k�^�^�s
ĭ\
�-k�R��
���(����!��7�ET�=�
���� RI3������7n筬����
�tcV�����O�p��5����80��O�{,��A�\�7o��߿��A��ޔ?
Dl��̛����c�
����AT
|3/�u���l⡜��-GF�U�����{���Q�X��u��ɑ 0� �-2���
p�J>��p�,����J���
^$�- Q�� _�C��&#�IB���r�¨���hvR�!����j��.֚~����h���NA����(e>$
�hǼ�!*
[KK�(;����|C�:���8�x�? ��7�%^
ĭ\
�Cvb!M��!�C�%�!�]��6QJc�� D\����M.c�y��KM�ݾ��B��?����%N���r��Y��Ϳ�=ۀ=�o�{��.�o�4͒
�X(�"Vb/��I�A~�SـC1s��/"�\�eʴ$ĭ�Ò��H�hKi�
�۔?$Dj�Y �`��
�m�A�͔|����3p�!N<O�����ը���$j���s��nwG[(D���ڝ�Ś8P���P��A��;���
+���J�T��p�)Z���n,�כ��@%)>���P�,+�c�XP��ya��>e:������
,D�8Sqf"7���b���B�4aP��,DS
S
�W07���,D�j����F��s�,Ds�c?Y���7
+1C�ҹ ⡜(�-
+1c�M��Q��ߞ�!!궙Z�/�FmR=�$D���%H��sf�$D���6 1�c��U ��� OBPNB���$!R
Syf����]wst�e�����!!J�m��F!JaðP����8�BD.�o"/
9/"�N��B!�g0�
+Q�A
q+
q�AC�L�C��?6�;(E����&?����D�rP�
%m֡~�
�P�
���ǁ��7m(⡜P�-�+V�E�'%����洡�R~cm�PD)��vAIJ1���TO�PD����"J�5y@q�&B��Ly�<��Sc0_�(��Oq(�V.(��h�1���ԟ���d�Z���-"��=��Xj%�PD��S%�"n�"n٠��-���&�%�V?PD����73�rIq�k�E���F�"�Q���h4+�PD
�}R��PD�K����Y.�"n9��zB�&�;�Ӥ
�
E�){��qbae�E��E<DG�))�۶��:ԕ
��� E�T�v���7m&"�k���D���ui3Q�S��B/M)��6 ��R~#B�LD��fpQ��_�LD�L[>1��[���[&����Pwq�4E�LD��{���`�s15�g�Q�'����9�d�b"*"����f"f�P�uCE$rJ�1`��0�CE̸���8$�NE<�����"*����PD}h���PD��)������
EDI�N("2�.����Q2(������
EdA�G�PDJA�{�P(�V
���hm�!
9���*m��<����CԂ�n����s8����S�<D��Y���!
��C�r���`��h0Ьs|Zj4 &-Aw�B���-
�V.
▃��[�jK�x����.
"��G���#I8DP$����'��q�z�l�p�
+�����q�j�jś9
j%[w���:�d[�q��o�q�[�p�[v
"�e�
���8���!�b� �zմ`+���!�;�q���XKk��
��o�8DT�}��Qf
=i�ܗG�!j,�!p�.�������!p��U��n
��<
��q�\�9��!J��!
�H��)��C�M�ˆ!
+��-��T����!*��r��(K�\��d�@�E�
����
Yp�
+$@]8D�[g�8D�3=��y��Bxt�,�2�
������!�yS(�:����@Dr,Z. �,����E��
x�"�X�Z!x��z�i_<D����x�@.&��DT�Ph?������ ��"[@D~U������[��Qra)<D)�=F�<D��
"q@���<��!�P�p�%�^�n
"
�- \���ׯQq5E�6��;Q���o~?8D���38D�-ԍQ�W��MCT�.?�oba��Ƽtu��L�4DM%3G�f؎����%S��h���S��EC4�T>4D,eX�
E�ECD���!���s4D}
�m
b�/�y?8D��ΊK��)��o
"C k���h��Cd��il⟣�
��2
�r"O��uw
�C,=��C,�
��Q�31
Z�9r�+��ʦ!"��<��RƆ!J�h�ECd�
�l�.�o#P7
�ꬦ}�MCԸO�i����;7
�໖燆h&
�Ŝ��[`-ރ���S���
�m
"��O5�ʎx<�1�
ɚ�ޘW�,v�k�Ss�����?Dd�~
C��h�p�,� ���.��
���U��!�P�8Dތ$�Cd�mn�
sW`��y.
"D�����E�CԆ����Cԝ���C䆡�,p��.MGRi7����S�¶i�(���~p����
6c�m��M��1+����!*DHh�^b�r
��|O����!b�ϊ'x����s���-E0x�!��n
"�X���C$�����!M�h5w���CTl��� ��Y6Q
+!�DD���""�F9|�]�2K "���
7�â'>��:m�
�H�cp2N$"��S��@"ؤ�ۑ���lhO$"��O�DD]��P��YDDb��."b��4�MD��`K�DD�T��N"bf���Jf��� "���56Qw�+S�ED�˜�MA�1W\DD}�L�U n�j��N��>o� �-8k at D�� "ZY0!��h��O_HD;gN\4v�V25�Q_�RO�DT5!+�@"�9v���
c���
�H��b��7=LAD���$�EDD�T"9��D0XADDE��ED���y�&����H�
��LN�K�v��H9�V^AD�+o��!"R1>4�Dk�mS��(�ݱ���(�
"�3N5] QX\@Dɿ]껁��3�
"������;QM�,�i+�DT�-�MD�h��(u"��f�DDL*2 ��By_�9Q1�W{��Hy=��$L�6kL��'�m*�1H��"�lT�nQ�
�1Q�LK�]XD�eon�����S��l�5�_`D�CwO��䁰��[�U��F�g)״�����������b��
F�+m� 0��yT�D�8�"ĩ��,��Kַ��[���CJ܃;�Lɻ�y�y鴕�1
���w�s��
��.:"n�ՈS�,
+ w�G䌑�8"'kz;��4�'
Q�cal8"��/��]�p
���`#u�����[26Q_ת/6"�B�������6�F$��|�)��
:�^j�
AG�l>��.:"6�\�#���?
�H��6�
���(��b� ��l<"��|ߋ���F.��(T�Q�m�.>"��[7�@%���#Jy㕻�_�R��G��.:�����>>|D
l�
>"�%Q����/>"e��Vk�#2�+ߵ���q�4/>"2{��#J�JS,>��7��w�%�-xDS��
�c
:b~
�+[tD���:"5Z$=��������鈉
���#�`���frn]����6�H��G�nEK�`�B/����h����F�֦SlČa�����f���b#RAͺ�Y/Q�pDV�V�p�I3c
�<$�b�m��R�#��?��ɒ��6
����(�+��|��#fJ����&�
+P�?����8�F#�24"
+��@#�@%{{�Y�j D3�����<T�|1�FԌ]k�~MFd�KL%g��H�P���FD�M�؈R
+y g#J�]�z�!�����~�}�%X��B#jQS�xQ���<ͦ��;f��F#�^l�(C#R$��3�J���@#ڮi�[��l�s��7��r��hD�x4��$���b����s{�
���K��^O����� ����Z�
t�~+
�#��N��EGT2` :"a*��
� ?j(�
�j��Q`�y�,���(�B�9�DՂ����q� X��Q��7k�
+6�����F��s��و$�h
6"��0^l�L&��1g#b���b#��bF�؈���
6"�*E{_��n6"6�O}7ьD��lD�݈N'
?�47Q?���b#*�7X�lD�L��F4�n2����9�+�_�wP1�EF�R��~Ȉ����&#bL0��dD=��f�����0�����<Ȉ���x� �S��dD�-^4Z}S֚��iQÂu�_s[�9�`'3�EFd�$�EF���Ȉ�<������E���x���R
,"
4����~p����m����^���&#Zv~�MFD�
�v]��n�و��=�훍H��E��F����R��U
���FTN�m�_lD�Ss��h��i,8��3?�GT��!���ì�f�h��|���e��g��8�>��/�G�M�
J��Ѝ���pD��-�N8�%%��pD��1�:
��N?f����
b�i̠)'����\pD�[{ӆ#�i�N��d��2��R>5�蒒u8�ا�� [...]
��߆�1��B�k
��6�l<"�~���G���6�6�Z��Gԯ/��H�_�HT����MH4b<)Q'$�����
7 �����G,V���Y�D���>� ��oR�p�Ugm��Xo���3k�ܐD��cԁI�2㘱���"�avaݥ8mL"
�0�I� ����)���X
� ��&Qk�m.J�v/�/�D==��}R��RzaQ�7�Jb�c��%`�AI��9��)(�:��7%�����ZԤ>[�D����@�Tc�� ��>����~h���H�Eq��f$R�C�ڂ�*g$"���c�ў��$ꞵ���;��9d/!
5"��HD���.1�c<gr��
���m,R���P0
�>��6#�`�J���t,��D
�$;oF��[�$Q�F��9��U�G��
I�¢'��
��
�I� a�%��
���H�Nw��5��7l/NJ"2�$���J"oƨtq���'Q��
+���}�CI�V�xȕm���x('�o�AI� Q[^�C
�����!��+~�ңoJ"~���OJ"*���$��Q6%Q
+����X�R�6&�����y`��P+Ƙ+�%^��{_��-\��CsarnyC�} �qCa?�|�"5XejP�r_�%%�Ų��(��:)��6���x4° �ID
FD$������|;���6QX��l�.~!�<�z_�D�V�r,F��&�?����� �ZP�d'��%�^�7�%�.�$J����?���l��oS ���$�Y��%(��S[\�D&i��ޔD��*mSQ��_�D^�P�MI�L�4(��nUI�(�b_��'%��ilJ���ҭ�$f*K�PU��蛒H��lo��H��)nJ"2�[PQ�'#�';<�~A�����Uk��GʩfWvfX�x*
���b�@$�yE���o
r�t�\�D�nL�W�ȁ���(%i!w#���^�DB�4E#Q���]�Dmsu�1|��|�������
&7$���r�)K�, ��Ɛ�!��3�I�_����cC����X
��F";��\F�j�#���pm�j [...]
+
+Tz�`e��M\�qFG4�
Gܪ��AO2#;�Ro��؈ȅ�x�hѴ؈R��_lD��9P������ۂ#b�k��'
��$w3e�v(T�
�P�z�-
Q���<���8�������.����
�x����ft��`����V��˦#&�6]�M�X�ئ#*ԑ-��^D���m�w�m<"Ai����~qz��٤f�@�f$"�f���#���g�Ku��XxA�
�J"
+��$�1O���$��j�� �%�W�I�s ��3���nC��IԺ�T�$��M~7&1g�Z�1����~�D�xdV�0���$�0�f
�C�s���x��wǬ��$Z-C��H�u��I���F�p͍��9��Pxf͛�H=5�:'�����$�
�����G2ọ�X���
+N"Js���kV�{q1�y|<��+C��%.�%�<�%��'�k
�\#4{�)�"n�Q���w@��E�3�EJĝ�q8y!*
�J�:�<�
Jܶ��<ܻ5@�����$R�40�4�QK}�����I$(N
s`�ra�
�D����:��sg�'&�5�=�
ںs�$R6�4�)���$��
�D)�4�$�̢;(�R�
Z�D)���(��z�Y��� &��-m�sSUl�q��$�x^�)��r���)������C��MU�ݔDڦ勰�O�c7oK���.D�>�� ��ν�!�� �,�@R��ĥ܄D�
+B�m촨
�!�-��]�D������X�D*�R�
^�W�
n%n"��H���{�\Y�%�n*w ��T���lq "�}6�
?}/��.�H_"�[������[��{g�"6
X�H�6���#9�l�ODb6�tیD7z"�;�ٽ�����y���1�#�PNF▍���"Z���~�|�����Š���5�@Qhg� �&��!�(�I�_���Ⱦ�i3 �[z����
���$f�z�WO���UJ���ݧ�d��
L"(2&ዓ�����J�L�������/P"���C���F��J��=<��@�z�̿&H�����x����MJ�^+oN"���f���hF\����r��ύI$wǢy
'�{�N�Du��7
+asM�!��:~�2%(#��$j�MY��$��NjmA����H�>|J�O���:�
�4�V}sy��(��Z戹�Y��#\��bv7i���=j��i(O�<��D\7��
T�`f��-���Nj����Q�<�4P"��;i�H_��J��
s��%�����J�- P"�6�7^�D�������S�ۯEK
+[p%�nN�d�rtN"���M
�����R��10�����D��Z_�DL��Lb�UA����
�ݘD�f��D�
������
���^�J`9UE��n��ֽ|��0���$��2��Y0E_��$��X��
�-�S�0�����Re��M9&q+&qˁIԲ���⣑z�p�g�J��1���A��r��
�D��:f��J,+;r�Q�s���7y;~�Y�r�NV�T�KD�2�g����?`/v�-��J0�4[�
�c�>N��ٻ�<l�b%n9X��'h�5V"
��
���|�· ق�s.V����GoV"�D���J$<L+��o-�b%�\,�b�C�زc
V"�5:�/V"��x�+���
� vO^�D
r��!�JD�Fg%r���.���{j>��J�Ŵ�=X�[9Y�K]�DQ�@�"�⛕h�3�U����+u$K�X�K^md
+w=�'�z�I_��D��z
���)�!x��>�D��8�J��/V"gj�Y��9@�#���"�`�>j�KԷ�SKĄ@�Ѐ%.�%��R�F&
�h ��·�����8����D�
�(�%b�,��K4{�l�e�x7EZr��u )K$�:=h��1zN.Z�"�XB�r�~�i[�EK<d�%R�DEq�����D*�36,Q�J,���
��̵
Z"ư��U w����D*���
+Z⡜��CvZ�J�F��Z�W������}`��%ʈ�Z.�:�
��O���Y�z(��nX�R���M+��K��VY��Jd�M�B�(�B%�2�~T�2BT"ޙx8�
+tS�ƶ�J�Y��^�5�[�l�iV��
�Q�Z����F%�M��IJd��D��l&t��J��¼7(��2
+��8m�̫�A�[�H�[Tb~�ݣ�i�5v�i<�n�W�r�
m������Q��EP��3��x5�@TM.�R��<.�����j�4�G��U�Ӭ���v�7�P�O��:E��找:�pF
��=�g5;��3���z(�����<Ԏ�z��<������y�b:�n�a[8#
._�
xh֒���
F���
jE��E;�F�:Ԁ
�u�-뤋t(5��A�Z�s��.�氮U�S�S�@�_(����0��͛S�0������7�����Be1�n�/_�qаx�"���Z
+�
�"3[v���;�0�;7�������}�bʹ��i�����7A4�Z��Q�h���h�� ��I�S�������f�I}6���\��O�
�x����q��[�Z}���
&Dta
��
6�0;�~A
�cv/daq��":vd
����i�c
WH�z@
��lm�7��M$�7ZԝU؋w�^��^�1�I�j�T(@�
�{���T�?oNa��}�)LZY�\�0�^���)L�]�B�Q��&
+�K�p
+�
+m 9�PJ�c/8�R
+�S�Zw.`p
+�4���)�͟*3�|��&��A�9�I�"������'��)D}�����s�6L�4�0�����ga
+���V�p��D��":;��<��'�[�
�¿o��]W����7�Pr}RݜB
elNa"��?�B��/L�����0 o�~ �i�\�0Q�Y7{0�
�����c�Pe(���(|�=77��u��(��O�'�'���
:�R�B�P{���fJP.�F�ACN�A&lޝ�����/.�|
�%"&��_[8��K
&a�v�E�X���E$ԞO����
���.��n�h��-�k�U�z����g
X�F�E"�F4F���!=B������-�����;��6wv�j��c�#�WK��[u����v�+�{�O���5x��%�A\�ܪ�Q���A����N��-�;]��ZX�&ʘ�]
H��"�����B\��ƻ?R���E
�M�aSwR%~2lV���dxhv�1��A�4�-�
+c@@Q08����G��Wڤ�(t
+8u��1qϒ�Z�E���z[���uP%GY�u�:H���Jfշ��xV=un� ͐7u�'�9ȉ���
�õ
���z��|�nz�9t�W��2�Ԣ�*��DЈ�-L��O�s3�\��A�n�!��A��o�
D~l8����R�Mn�Y��X�b�;��YK?�I>��Zh)'sp��
T,`�Q7JP������
4fW=��tPSC�1�
L��������kK�%h���� �����e]������\��-t��RƆ &�5~?��Գ�.�Ŕ!C���\��-uP��춮�\K���\��Mn3e�t�S
�1�ɏ�n� 2�f0Q
�� K*z]�fJ.xXs�Y��GB�R~7̎٦O�z5�d�e
��@ �C��?7sP�2�2�q�ܻ�Pl�$�m9��"���k�H6�)s]���F&�9��@Y��*����r"�
��D�
��X��"��A�y`�T?�����rpˁ
�'q�IPa�<����A%0(�j�{Z��Ashbl:���2%o��m����n� Js��%�D
J0�̇��3협o��Q
�͙��BϤ��` j���2r>y�6��
:��
:x�
d\�y3�G{N��
�<ϻ��6G�sw'��r�T��
�Į�q �p�Z'r�
�g ���E���[��������^Ƃ
�g!%���
侼zz\%?�Yr1��'
wCq�|7�҂<�i
������/� �: [...]
+�o�
J�N��
��������2�T͑X����1�A�o �
�U��c{qI�Y���)��2�}˱�1�NK�,� �cY8�G��
jႻL�5��d�
+��t����]P�+U����\j�)�R�,ȂI�MNZP
��LO�&��������W�-��d ZP���Z0=A�Ђ�������@
rDp?��X�9vD��}zF��9Z0)JC��ILl��
J`O���)��������?�N�xY
+�'�x�;"�Rtu���sc3�r�AL�N�������:L�^���;�p!��D6Α���$��:E�'B0��b�'�
������r"�
�d5��B�{��'By�w#��'�����F�p�_A��m�DQ��FJ�v �}-�d�D�M�\��kh^�4 K�@n�Bn9��7��D��6����A�͘}
�zh1��eV�8(�
�$��ߺ�[��[6�`�;�b1��B!��p!%�'[3
{R�
rK���FJ����(c80P -N
t����)!1J0�A����Bn�Bn9�zC
+.NLɋ�o��M�
+l�,|T� �>�Kr���� $���n�D';�'�:P����
�8���Ox�d3�x Js� �!NMO������K��(�R��t����T�&�I�<p+<p�L����,����
����]�*���Jy��UCw���m�]�v�+-l��S��Oj ���g1�-��~Dt��.<�����zo��u;��n��.5h�J�`��@F�7ݰ@%�S*���Ϩ�!c�
�M
+|��g�_y.N �6&�V��(��<P�l�F�
��R����#؊�1g����?�=��"��� �r�+O߀@�/�����[8�K
: �u��x�H
+C���D6I�}��F�Q[p��\p�-
Pct5�2�*dk�k'
P)>�s
�p���
PA��2��
+Ľ�͛�Sg��C��v�E�~��` {+��z@ }��j���gn�bn�ـVl;,A�Ǽ���V��ҷ�Vߪ�e��*)G�w���
��1=��L����ـ
Xf�l@)4��p�$��NK��q�%��u
�z��k�l@������=�c7�;g�l@)��
Hp�a�~��H��k���
+�ؚ· ���a`�9m6 ���x!D����ـ�'��
+P�
��
��l��
hy�'/6 �
��`@��9E
9H70-(Oi�����Ѐ$BR�
hz�Ѐzg
��4t5��H���`��@���0�FR!��d�E{
��A��OeI��U�
]l@\�T�s�1�� "�&4t,6 �
z�.6 �:�c�D)O�l at K���a�|?�s6�9�c�Q⯆���$�R�p@��:�����D���$�Kp at X&D�~�b�M$E����[�a�t@
�^}{����
����E�Llg�I�ilZt@*
Xv\t@�X�
p�;,: ��?p at r( ����A `��
����L .8`���
Lp�F��m�
�Q�����{���x�����������ه(�
�J!H��(5�C;��t/�
:
+����@(vH?h�)p6
Ce
�K-:���֝
���
�t@&.������:���
1�n�q'���) �(�A.:`�p�
���Q��I�Ԫӻ�/`ŷ�����O��g���/�m2 �Uen0�&~�������Jx��T@
+�z�@��&gL at M��
��=���8<l������Z�D�h-�P�Ĕw
P�;
�G͡���_�����,@��gl��4��@-��26�$A�>@��
�`�-`R�
�ߋ����l��H����
@�
̚�b &p,n ��)ۿ` ~5s���$Q����0 �r�˷������
@b
t�P���%�R��5�(3�@ �'9�o# ��`1P��} �Rt.�I L�=y �KR����-�Փ ��Y@���
�x��G�\7 P�>����C��J�j����xqo�� �����?M�R���ԳF%�Jd3
\�?a(w
+�������:�����+�j�?��a1�*n�F���{�"�q��(ɁZ��~x#@��Sy��ʢ�}�~�V��bυ���?H�Rd�����7�O*+�����/�YG�N�b��W=Q� ���!�I�����h� �i��?�O3��O5�@w����͉����d��:�o��^wh]p?L�{�l? ���O��}�M�S�� �с��?�~
R�X��꧄��:�OC���S5-V;���=۾
5J��J̑~�9��4��`�W��D?
:���藜յ�~
Ki�j�>Z�o�����F��ׅ�Shk�
��~�y-����d�p�]~�`"8� �iuNn&@~zɉ�\
?������|�����K�o���A
%Q�<��z!��MՠZ��'��'��hz{4��>mr��}f�}�zk9�ۯ��'kČ6�oxri���X�x��}``���7�O�n~�u��{$�N.l�Q�Ɵ��'�,�z@�T�L�DX���?��[�>Z�kO$n
L��;�ed/���}jz�*�>%���^��ˀ`/\�#oZ�N�B����p���NX��X����
t���
��WW�s��
N�c���
�עE4}^?�,�k�:= }���
+@���lW��ה<��m-W�?��W�',^x75��|���w4��Ū[�H����x�da�To��[P�T�R
���|R���UZUZ
�#�ʰ��M�+���|z�y�ȇ��
��y���O�6����X���O+ ��S��U�;��\Rn��0t�ħ��t�,ch-V�qs��{-�c��js����
�r�k
>�h}�Ŝ:�����
+L�
��t�)� _º�ߌ
��c���#��� >[0�o��V���ܶ
���K8�G���W�.�^��
��grw����I���KQ)v�������n �=
�u3n ������&꽧!�0�RKv���0�\ >�
&�n��i>cJp��[��= �T���$�rw���u�n�
�����I���KX���|R<b�Y,�]�
��4�X�� |�;1<�Ol��� �l��Ou,- ������|�
Q2� |��Ы >q���%"��o ��x�8��~O*�9Aߓ��3���I���Q)H�����a���)���=�f:�.PV^��!�"��.����2�{\H����Y��{)�V��|�5~/���)�Z�4�ws�a͔��ji���}�����%��yn��N�f/�^�E9�~��a��Y�=�5�"_�=�+��΅�K k��=���G�"%�5.�^R�����ǓT[�=�v҅q������gJi�gg���!�� �����I��w�t�
+&%�K��;�XOt�6��
�G��AF}�����: | �t- ��T�9��փ�
@���=� >
�w >�D^�� >���Lu��Ԩo�R�- _*�2z������wh
Z
>:J�o�{ �$���[���ߣ�d���{���i��P0G��{j3蕞��ō���G���߳��(��G���T��)o7���{Xs�6�=�����A�����X����hֳ�ª�n�
�,�^��=G���{F��c��2����������H�R����m�u��,�W����"�������l�
�0ĩ��G�
*�ߣ0�W����h�:FS���e/1g�Éb��_���uZ�D�� t7���=}�q/��s��Htk�u����xc��h��1�S7�����Q�?G��=}
3�
������������<����ւ��y����� yxoJɩz�*��:�oկJN�m�
;�����C�Ϧ�QOa"��
���=�U*�|O�
ې`���0"�{�Β��{�#�FE5w!Ť^}���W``��{&?v��)�G����o�7
�G#� |���7{Kg^�`�e7,��
+endstream
endobj
102 0 obj
<</Length 65536>>stream
+{��{�a�낼G�F��������E�ӺЖ/A�Ӹ����)f��gI'喙�*
������\�=UF��X�=UFy���K�c_��=e��yO����=-���4�{ s@�pA�#4ɼu��F�z�H��X�v���>�=�l�
+Ꞣ,����W ������B��fg�m�
e
O=d. EK�C�~�1��a�6s�1%�tOMPuLc��B�:�{(8�tώ��S�˻)
��X3I��@@���~��{��m#
h
���,�Flҋ7u/S��-yM�LF!t
]��Y�_�=�h�Sp�
!8�AP��T����̡{¼�d#��o3S���Lu^@�P�kt>+�ׇU��~�d�<�
L�5h
��6��������d7ҭn�:r�ݶ
�=��,�e����.�_�}�aɋ(���{8�����J%�{(x�u�@��u��H~�5}�XTP���V��=��7��=
f��}�/+�
�w��S+��M��sXю��Q`n��'5�A���}W�
�=C&d�0d�lX2��8g�=�6.�
2h��Cy���֔��-�
��9xȨv
I
��
c��{z�(�X�=�Or�
�g��)���{S�q
�� ��ݣ]�³
���:R��%乱{���������St���%PM��}L�
+Z�/�{����_�=�x�l�
����ǙZM��=ɄJ��G�����{4|���{7��Ʃ{�� Ң����MݓM U���GÞټ�Ҋ;
ɋ����+�{(��|�z"�}a�����s��D$�
�=rG5�|+u�pe�2�n������=��?��(aH���K$��
�\4,�_��;��{)2�
�G�v �<navq��aO��{ F?pz2�b0��{,� �ӠZ�W4ې��1�w����I!߸�{R ���=���ax�-�V
���u=�{D0:
�^�C������[7��c�7�D����6zo+|�K
+@���������`��A�����
�gB����G�D����Ӱk�k���|(��
�b����$7$�L70�A��
��$O _�~=b���#
�w(g�ɖ��?jЗ��QI�
����aX��nl��-\��C��*U��3N�K�=�3� .�{yV�i��f��%����iB̊I�g���|f����ISH�=�����$$-3燽����
���W���=b�#o�
��>�O���.7R�s�f��Up��
?��)�z��ݫ5���kO����`����5��� �����z��E܋xm �t����kn�y��(IHy���q(V�=fߟ��:ݫ?H{�X
��
�uq��2��c�$t��{��� �Fl\�5}1�ڴ��b���MG�.�]�y�x��B��z�}��4��7f^������3M��Qu�sZ���ԛ�Ǹ*��'RO�Z�?Qo�@��>�y
+����O/���S�N�c��?N7M�"͚7LOK-����V.�ޖ�7G�:"���=�yq9�Q>]��3�
�Q q��Ȯ��9z��pR 4ܩ��ր.ˀ�a����B�Z�2�B�z���7�}%py<-�y�?�P!�yvC�t�N:�V��7<
��x�O�K{�� F��UL��I��l 8/��^��xxj������鶛�P��6P㱸yK��y&���y*� ��px2�f��� VO�u��͓
hsn�nmU3O��<�9o`�~if�xy2�#)py�쵿�<
a
�',�pߨ<e��\����9
7(����R�c�L�NJ�R
�ע�*y��gnD���L�'3���,�$��u��PG�t����
�ǏK����Q���W-ѽ�x��
�b@�1��;��{�ܝ�/��x�X�c<��xr}�q;qx��?}����?c#�Ԑ��^(<6�����c�
+o+�˾��K� #��df@�>*��gNM��8 O&��N-^"
�d�?�TX(��8�w�=֗,a�qbx'�p��S�`�i~Xx&��k��[�r(=��ju�m��P�&��o�
9Ix��i�t��ߢcn���Ov+��S)��
��
Z֩
��霙�(<ɖ�
����@�g��&�aIec��.���[�./�y�:�$7s`�����P��}l�67ܼ��vo���d��������
&-�
+^,<j��~��դz�����ޝ)�`x����ax�|J�������'��À�I�2���q�����fC�>`xJ�Y�h��T
d��
�'���'�}��3\0<d���T�fa�LJ1����E`%`x�j��n
+��
��
^b�K58wx��8`xI�|�s��T�j�I5�T�\0�-
O[;�2�q�oD
+�ݻʙ�_�u��=����I�[j����sc��JW�<Դ!x�z�y@�v����j�mg�!M
J.����w: x 3��6�N�{|F/���q��r�����r@��O�?���N��fਫ਼ʀ'!����q�j[ś��@��t��G��*�� m�b���S0�(seg
��v�o/�d������@����sO2I ��-��{8��n����
}L�iy�
�VN�R�B��m����t�νx6?����u;���!\�%�V+Ŝ��+Yk���V
"�x �I���~<�A�]��Q��'u�� x�9vT�q��uN
r�
e�c�
�'��Ӎ�ӗ�S����^��@�-�F�\O�^����a�v�\?<ՔXD{
(�a�݂�G
��E�a�e�m����5R8O?�k�N��2$x<g���m��q�h�c �T��t�xO��r�� xT Q�<��t`]���]
�
���
ǁ�C�'�B�!���b�
+�*Q� x4yX���')���)x�r�� x�$�[`;��/ŗo����R<,�Y^]<d�6.
x��1��(}���e�v�&�m9x� d}�lr�2��"�2��ԩj
���f0�LGӦ���`�a���L���1_��������((�
+����\<-ɵj^ <��n ��!U�nD�up��aF�7�N���B%5��;��
yG\�awe�:�:,�Fݩ�+�
<�I�����������`���O�����������������G�'����
U��ēL֒���8��fR�B�,S��S���UkD:�M������پַT���
��:>Tă";')T�1�O*�qbbYWi=��9����^㊙аO�l���o
n5B45�H�!��7+&�-x��,�B�U�фy�ׅTm5�.�_
���Aȓ��3uxu��v08����©�$x@�= �(y ����%�����d0'��KFS�⤼d�DRhY�Yu�T��[�#�ہT���Z����i�}�p�A�k{+�l�1�2nۖ�!�XL !��gTQ�͎�Yf�8�*�ۇi?���;��fT�3�,rQ ���^�Wųq�z�@�,�b�T$I&�)�9�FO�
�Q<��^�ݽ/�j�k}_��-e擟����͑3M3=Nhj
R
r)~y��p�@ܣV��K��K�]5A'���u�
'�U�C��z�
���Z����a�
+P/�
r2�]�@Rh�!h�{ $l�
����*A��Zn�P�O���"����娓
+���
��K�'2���b���jQ�\/
�������
�Y���T�R(Uc��m��QyϞ^�U �&=,���q�����P�A��`��8�9����3�3$j�ۨ��?��AH�l/C�7gOo
y[U�+�mo�kgR� ��:sa���v�
/�����M����L����`k�Ujz1��6�`�Y��T�C�����iE�N��$���i�7�ۋ�'զB�3�kD��.��2
��;MWկ` �L^q�u��
���u�k�
�7�=��w�)��q��șK��W�E
�'�z��YVm�+R@�e�_��Ȭ*)6CzU�����M�$P|^Ӈ��+n���ؙ)�9ׁa�π����udc�5.4���|_E&�`�~���}���Ӻ���A��惬QX
+�/
+i<)��l���q
K�bn7x.�*�
�� ]���$�]qQ�U~��y)J�.��!K�UaJh��ˢ�MEK�Z�
�8���0F�C���w���?KW[�
*
��w_��CY�J�dQ�H�!���Y��N�bj�L�YQ
+�
{?�м�SW��������:U=>�
�e
�-�[��
*����Yh���R|�����>0;)�����PF;h|��
�Wq֫fIiC���J
�(Z-����k��v�T�ͳ��[�h�\17����P���Sڇj�����|�H�M�|���̂N2�0kW�ˉ���=+w�@�ɔvKƌPʋ��U�!,&�ԡ)�
-��BS��?�EY��EN����F��4Pi���Lo ��F�=�6|�
��k
+.��VJ���f��յ��J�r-5�c&�%�^��
:�eP���F�!Ǩ˪�Sc���Ǻ����ESa}���`��eS���p>�Y���%t���ŀ�2f�U1ǂ��v>� w���E�.(X!`c�J
+$?���Fаʋ���萗��|�����(���� ����R�"��m5;o��t_��Z�/�ɄF�t)v*4�v
��Cj�U����k��v@�t f+zU�vij?a� ��ph�뙗b�x��>��܃#�;E��e4��"�:�B���q�<�tW�Di�ةj���t
�$}e�w���(^�|嶬=�v��1�����ְ�*_�FN-��(��\�|���Bc�Vɶ*x,��3�Z
+s��M�l�-������zP������G8���ֻ݆8)����(L���I�
�%72�
��P
�i�r��B�,ϩ�R\Ac���
K�S����T�&�n�l[�'�`�5�_��#҂�$Kxe֗��[����7>5s�2S/(ߖ���>�}��[!�9T�Z(�e����E��=�������kIi�;7�M*;T-���+P�^��3�H>W8�X���m�s��I_;����
�Z�6�����c)���s�������}
8�
㡮�c+��m�y �FU���<�?j%�*)XP>�
��d�=ŦY(cRVL�_�'��?����f
���Gۗ��O���C~W���f��
k�q*��XH�-+���xc�O9���k�5�*�]1�S?�D��8��i%�bg�(�����d��a!��m�L��C�����吵 �l��k��5.,Y� s��H�Xк��6�L��:6�O�J6W4�����˅�W���
�'���W�̄�S%�� �6����jO�a�٢Q�iX�Z�(]H>T\��;���
7�53���
+�T�h���
+-R��Rp�Ү}��~��A*�T@�C��lP-eB�P�c��XT`t*nC�җ�KL��W�)��^�7��Q�����8@�$����ei�O2Nʒ�?5E�c�l
+%�ڙnH_��r7�Y�T��J�a��yI�����i7D����'{�3X
+J;`
[�{����Ԃ����[� ��ٗCh��X`�N��G�Kî��
�IDc��$����vE�
��
f�z�t�2˒L�}b�8F[B$�V���8ˇ��:Ju<ڷ�̪ +tWSъ����Nʦ�IV���Ŏc� �Ұ�
/�����~1���J�VU�
AX�>�
+�����B� �$KP�ˊ�/Uꐨ����?TY�f�dK�}�ca�u�K���
g��U��RC�Ֆ����Q����D��M���)�Y
��XY�q+� �mY�CZ����]���-�cv��Չ��R��v�`[�Қ�Je'�JK��Ұ�'��7,'%�2�>R�>�gm��${����yL��RꞰ�^�?y>��U�NK�%d,�R�Q��e�)��<�Ɋ��*$�y/��"l�,�*(˦�/��'U q��(�Jh{,�j��ݖ�gK�� �mY���C��¾ڱ(`B�M��&�I�6��v -p(�R)d���}X[gJ��
�T�^Ls.�5N���ܧ��Z��X�Rھo�C�Vf;�����(��zCgo�����[
����x>w۱Pѳ������'�R�S�H-u��tc{iu+�$'�Tᜒp�����e~�� M����H�lE9) �8Uӓ�
�@+�Ǘ�?��;���ݙ��y �����nn_U�l�1J�XJ;�
+�`�+!��y�7�υ�����D�7/ů��t�U���
��d��I
O����F��Z�����^C�
��R�c�hǯ^�<2C58|�}�J��P<�Z-~��2�T��
>�KQ �2�8��-Y��w�y�ȯ���ɛ�G��Y*y
����n{��2K;��E����3����Th��ǼgPՏe�:$[�n�B]���[����P�Ⲑ��z�wEp�V`�V��Vk�9|�+U��j���"�~�5�ӗ���'ڔ�V����%�M�hg�Ao[��Ӹ*`�R�>ܪ,ԙ��U��5F�"t�}�p����-e�,>���ZR��
_�C�������n����D�ӌ��
���(�B܀�т�1��?j�ޡS-(o��S����^xL(��,��]�Y�Q�bAK�
l5�>�-)�KT��VE\Д-����� kB���<�я�aF�0[!tSV
4jw���Q�
Q����U.�jj+��@��*�}E9Paw)��Ԩ F�;
=�L���h���[w���.���!�~H��+ɂ�,
�M�(;���g
���lf�|���������*�����J(�Dlj�d�$[
f�'�`�R�<����D�a���6
�״f&n�ҁ�S���;��E�؇��M֒M�,}���<�U�,Gn��;�m�%P:!ac��WU�A4gd�m�E���:�VT��ٖZL�g������C
�߭#
+#Q�����*��~]�����@f�Y�������r�M��z�;�r6w�iy
��ּ�N߄.@~�*|If�����'��K
7��b�R�n���U��n'�W!�9�~�h�sw;�h��M��lW_i�}Z�hm��a1�b�X�6��U�Zq�r
��>Y��)S���F�uvo]k��';�;�nɬ+��
�
��)Lg���Rjl��ľ�宑��=ݔ��m@��/���aˮ'eS�$S�C�R=��<�(���{
�r���If�f��L��5R�ԡ�v�.��y<�˭���=�����SR&�$���^[�
w��筶t&��@"7�;7���f��md�m
,��������g��PA��-��%$_=���35�6`l�_[g���2�dE"4M�TW�#��,C��`
+��`G!����jd1Ƭ�ڤ U
+]���\g���Cd���a��S�nh_�y
��t�)Mf�4O�%��TɌ;���VI^�g �YΤ/=������Q
�
+Tk�Ýb�A/+�:l�šl{,+�����ǟ
��S����+4��~k�d�\2B
H��B��
Z�?d��4�
�i��=����a�=ٿG�]� ��)���Q;�n�[-n��r���Ys$�3d(�ٞ
��j�^���S�Z�S��6)V
�����C��dc�N�a�`4Z��f��q��T Co��N�Ĥ-b_�� ��W�Fh�S�E�2�kT=I���OҿE
+!�Ly�D�RS�=œbŭ<t�����i�^�~��6AX�-�lkI���S��sbj��1�|ҷ�6 �`<x�f���OA�
���J{i~}���+Ņm -����F�ž�֙Ѩ�wX�?}��Oh�R�%#ۨ{�q��
C��Q֮~����ClS�}��0�UĞvl��NĴ����) 촃��K���~@�Ӡ����fb
��J�K��+?/���J������ܽy�hO����@=kV������
+��K��ޮ�*��x�� ���4�J0"����NU���$� ����B PY
�j
�{v߅�=Ӣ��
���R(����g��j9��͆S��x�ц�{���vՎ-ϼ
�l
�)u\�ګ�hZ�_6�Մx��~O�����F�C��aUq��Q�+ٚ����߰�Nf�
$���(K)�Ԇ�|����p�
�y�"kf�6ێ������*^+m3�v7�W�@ɪUd3%�����|9��SE'���=b��-J�`)D>�أH�&���ݤ�ns��&�i�/R�@c��wp�j��נ�'Ɠ���Jw^�4�����
���.��8q�q���k���]�T��L���q�ׂ���a4yՍ�� & ���f�b�Я/�մ�jx��i��&
u�
+��̹�Ul���)�RM�^s~C^3�`��������U�=R\��~1��$���7R
YF��t���u��mh��d�!�M^%u�@�z�����������d~���Z�=�V��<���5�K�U�2�/��ɲ�,r�~\�z�n����Դg�zd9�-������\�
E��aOUGa�f�_�$\6�ؠ��z
��N�'+a}�Fk����yVa�v�i}]�j4���������A(��3�-��� ��ޥfTPh�.b:ъ;�P`}
4��
+��GT�pX�
z�4 at Pql\;��
`������Z҈?L�b,��}Y*�wɽT�;��d�B5��-�r )T ����*0�ވ��m���Sw�~���&���G��^TU�Ң%.��
+��d!Y��P�̴2
,�(�mň�/}=P�A���k�\P��ǚ%6]P�
#�-�d��7�p:��g�
d�QÅdʌEӳ�-;b%�1cP�RC�� ��^��R`��2�o֕�� %Y�i�yќ`�vMH߫
/�bV?�/�@o�5\P�ش� �9�D{σ6��2���D�
+�
+�t
����W�>��O�+ RU��@�i-��PA�sǒm��B����q������
$��j��1
��,f��T��,��A
d�Ge�~:}����1[�A�!�Zw�d��`�mג�@i�Hv����S�P4�D5�)��J2#���ګ�QXVK!q;ҁ
d9\��r����,:Gk���P
;�ɚf]3�U*��JBQWABĆp�X�p�`fKJ[&X
�VGZ��MslE��F��JR���x�:���ie1˧��>��4����0yGY͓kZAKX���C�+
k��.H�aJ`�W_}*�n�m��qZβUSq[�Vv�
��>Z�m� {;���PK����FP��
�6�L�����U �����
�
��t�q�X�l��=��W*�����w�\ujJ ��
+ˢSJ`���u���~a%��3�[$��k~�H��
eq%[��e����alKF�௮
+Y2�ӊnr�p,�J���v�_+/[��mH���yIqUn���
+xq+�->k,c��&��a7L�w�:��
����NQ'�,���X�kYR��;�
7�a��kˈֈe
Eh;E
�BX[���W>���Ӷ�J��bLJ�
*o&rDy�-Q�)V�������Ad�B�-�
�|_#������ ���La-q�����-f��
ʇ)0�X]Ӳ�cG�_�G��@�m��Ƨ���O�DU!���e��w�;�q�aԖt��U2R��,8}6]`q� я��Z8�XB3��
�L�f�mO�F��Z�[�zY����Bi�Z-� �kA+��^��(�j� �CDk
����d?�>�B�����m��c[VrTiw>kU`�)-��?���Z�@���%P�)���lͨJ$�I��b4�%�)�
GQFas�m�٦T
+,�2�$�lc�D�H)<��
�ʂ�3ŽWQ�����
�$xY=u[�.R�Wp�J5c?����N�4P��WV��
��f�%e��Y"��
��|
?�V'��S�E
T:��
���kvF�e�U��煑��*^n�%�FT����� *�d�̨�ܧ�W�z o{�;���
u��
�A}[`�� Gq�xӊ� G�w�i|S[ �5��,�1�����o
f
+�;�2 ��T�kY�
+{Ja
��*���+��B̭�
�?KQ6��
�ҫ��;m9�G2��+fm���[D�xeNHu��U{+�!d;�
+j�J����W@�:H�{�ײp��V�C���
�x���^Oc��+:Ai�NcX
[�⁁�{P[��wmU������~
���`�0ɋ:hr�7u���D4ׅڭ��ê'���o.�r�,��W#�
d�)8
����sL)u����k1������~?�Z�
��뇺�䆐�
�
hDǮ�.¥d
+w|�%_[�S �-=[- ��
���ڴ�g�~��4ޤ]� �Y`!� ��|)@qLZh��RN�^/+��:e����B���e ���e���8�T�%�8k���O
s_/��g�f���
C�nY$jC�w��������)�(��{7y�R
^���Ԃ�e�G���3��f�l�J�Ӱ� <��)u|,�q
D�!��o�
��,3
�b�
;fz��R��qHFRӓ̍��b�H�<��E�PHV����3�F�䵺<� �ʼn�=�-4h�KV�{{=Э8��jA���
i���������9�ÆCU��@��:������"[��ߔ�� ݛ��D����1��
�t����9_B�hЈ���;5*��lF��r��_����pt�͇9P�2<�
�1�N9�
�`'*1d�?,���עZ��'|�j���}��Pn�
�4��n�
);�$�~T2_֦�U�:��j"
9g��馛A_pwrIS�
��>�Pϲ�%��!Ѻ����[�.�����:ئ7{��*�Ou��՚��+[��a�
+X�ML��4�q��zau;-T�w�Wc:#�&��
D�
<ˌKa)�x��F5x[�t��AT2�*���l�
e9R�LIX�A=X�IK^ݦ' ��&3�&.��ۿQk�Ê��*�����TE� ����o
�V(�d[�z������knt����Qj�
$��5
�[tb<�4������R�Z�ƴ�� <��ӈ�*��l�dB�ȏ5(Q2�@JF�WRRvв�8�9mP��D����Y�QX���AE�ғ���x;m�5���nv��,� r.�
om�R�b
n�J�
+�s�,� -b�����"�
M�AsB�y`-�
�U3_���ź�T~�}S���??䆛��m�J5&�*��s���T�����"CQP���B����7M5[7�����f�ދ��x����}*��d^;~%̉τL 2��ɍص�IV>;� 2c�
+GL�h^����%�)��������V�}���T����>~C�4`���ζ�C�³�뵗zͷ-��U�z��S�@R��6
��:���XN_�
+v�uP��n�u`x�u�՚�U�G
㖫Y���ȫ+���/�hP��d�wT�(t�b�n}�R�(�����;���n��{ښ�
+�����q@ot�l�r
���w=�T�"�C~�>S���A{
^k�^�?�nq�|�l�{i����;
��f`�D��ny��x{�;h����%">��M��G9��
+u�&�D��^;���-zG���&=�'�|����<e��
[�A5\�jH��ZX�7Rh$�̴{t�����!�},�;¿�F*RN���ݵ��*`z6����5q[�+�y�
Ԫ��ws�
Fa&���^jl�r?Z���,���`C̩���4?�4֩kܞn�S^�a����};9M C�NگU,��S�i�f at E߷͌٭鶪�gv��xf�>�=V�M�
�]�6
����Q��Y�6���G(�kJ1�� %�N��D��E����BHuO�m�=�I�I�Uk� �OtW���:[8��mϩꨈ�AT�(��q��ĥ�@���
<Jd�T�H�N����T�Y
��䲾�Z[k�U�
��7o4�V1.�L֑P �a�J��
��47k���Z�g�3M�Pdf��8[��Wy�������j��9W<*BW(�>0Eӳ��DU�.
�=�Ȕ�j/I=�=1�m2�0= X�S�?a��ڭRV�V4���V<�[�S�*a��w��ʰ��5����y+�K�tG��X2��V�P�0��������U�M��B��`�TX�{㶒j����|��������4Y�z �ba
(C at j !�Md)��B��yE{��kX3ͧ4~��2ݭk���~���>�q�
x���X�}��e�n��£�m��#!��sְ��>�q>��
�;��Օ������a��դA���n�&��m���Ѽ2�p��ف_[��������=��c��^�@��X�!_eZy=�L��
/�f�B�
+A���V��2�����/��k���#a�p�X2q�di�-0xUoiUc����:�<�~���Ֆ�����}[��M��
�1�˾:Ҷ�No���^envBV�t��Qx���Vt��P;�U���|~S;�{lX���f*�\jT�B�yr��z�
������9�D��|��f/�������ז�x�fIs1B�ﱎ
�����zf���R|Z�>
ohr
.�����PF(c����=�ug��q�@��;�!�y��Tϒ�8
��F�fdw��|C^�B6
:h-���V�
�t�L����ȏ����=��\eVJ�E�[*��R̪�X
+�E7�V�M�۳�N�"ԃh�*��H
k
�Au�p��db
Pݷ����Os+���e����o �y��i
�l��ReU5<;�5y+T�
��A��ϦJ�f�j]�����glW4!�����,��B�D�O�!��IR��c(l�w�.ʆW��Z�
�8c���٥G� ��t�|Gv�
��LRj$�
���UN�lu�����*
U���X=�o��̛-�"u��{ZQ!j��p>k���5�0�{pb 6}�hk�S� �Y?H���ѰP�X��>5�\�`I at 0�zV7�c��vw%v,�8�õ����v �4;
+u�W�
<���V2�ak@}�ݗ��5dF,\�V:dYHw3%R# !��Êf��۞�P��k��,�H��M�lX�@6!�#��:N��<�n�8����I>�'�5�P�����)+�G/*��!�י�4O6�q����
q���qej�쪌�5`���R��x�͠J�,,�TRK�ψ��i�ӏZ+��w���!��q�0,��i�X��I7�!��Cr���xk�f
��3H��sIx� Z��W(��0�R��X��d�巘����ou�]%��h!8m��# ��Ѫ���g�ʑ��$�T�L�T
+����f�����A��c�hvW��t�k�P��b
"���!6�D�9�:˨�����ް3�q�����!�tnǐ�ܾ��Z;[��������qh���
&wfUL��I�
JG?�8&�TV� ���u�nb�8���h���:�*Q��.^��J�M��-�ˁ8l���y -7߷���q�e%��DI��I�Rs��:�l␂��z�I�x��P����u�_wj٬glo���ț�J�����R�E��6���\�<�[��G�
Z�,
]
+�ߊ��md?t��xl:j �
�܄C����Ph���SجLI�k��i{)*�^��-Wg�iw�"%|�aq�G����ʫ?����Q�1��N)�ߓ�e���d%HU����E�C�c�S��"�2��8����Ԫ��?Z�r�E�Z�&�m��\0
琹V�6��網nE�g�� s)����]��Ț#i��Tʿ���6���
Ύ*���L���
?��,��
N��+B���8�����!�����
��۹���� Dɿ��3���"[��~ʟ
�(��oI�6 1��b}������]�u��Chb "J���#�c0�D>�.�@ Je�a䥝2n��b��F(k3#�#���
+�G�� �� �bп|�
+���{�� ������f�'�g䴞ɴ���@��V\�Cɿ�sl�! �\� Ji�� 9���(
t "Vs� ��z�;N� /8��``&��<-�9��
�S�A�*t
�C9A{[ b��M6{���i"�h�6�e�V3�����y��To�a�-�d��Q����M {���71a4d*�X ���7�ϕ�Ay�?7Q߮����
�p���C��R�wc
\-7D��C�ē���@:`���[�o̒
��z�w3� K�b���@LZ=�x;5K$-fƟ���HB1�(��C1)�$7��1����ܝo��WJ~�+
+;'JV�����D���pJ����T�-3y�
��Ij�C����\D���
!��\R�D)�
�7��qyϟ^ZV`T?� �Ē)�-�X2U�s!
V�}^D�:�F ��Z6�P^��XT�3�r���
�b����a
+��{��f �LYV�
�ߚG�W�/�
Ģ8��Z����uCZ0K�|������ʆ��RCG6l�a��؋�(����
+��R~#�+\�Bi��sS�zV�;���+X_�M
멿o��]/�1(�}(���� r�eS
��>D�i��1�R����"����m�1�8(��
+@��ۼ�7Q|�B��:P�M��A��{zn
�d���ADy�z��$�=p�
+�� J���� Ja^
D��燃��-�hG�
Ĝ�ꛃ�
��~s��S����<�wcŶrqٓ��M6!�7d��%��9�����q .����|(�P���Ϛ�mbV��d�z�%�V�!�?�^�l���B��^g(⪑�����(uw�
i�z�
�Ar�7R��A<������ �o�����
�
���⏯hu
j��T�r+�J5<�~�G��GK����v�9�A�Y�z%���? �L�>'
��j1Ss�!�Ym*�A�<�7S0�d��<��8�<*/V�A���m�ݯ��ݝ{H>;r/��$D�������0d ���27���i�3�-t68��Qtϫ�o�xx��"����&!�H��v�MB$vR���%��\$D���V7 ���(�CB��O����ѩy�MB�㝡�A�z��|�!'{A��!ok"�e}�MB$�7G�C;���o"1�^�rHLĢvm<���7��a�m̨��W��g�O���EB�O�:l��cN�t���EB�j��M!�
���K����y�X���;Q�o�Kb��^ DPݬ
�ohs�֣
w�%T՚��!n�!.y��*�l�a�ry~8�Ee�o?�R�
+ETt���A�rpE �-ڟ�7TK�o��[Y��M�8���ά��c���� Dd
� !�<QJI�~�ʼn�
�(�7?ZL��B�Ө�֔�@�Hv�v��y�3�Y�ͣ�
l�Q
�w��A���53�]j(
6�҆('��=# b����Be�����
nb�G�T<9 /�"!.y�
�:oۄC��~c��<\��-�ׁr��;
+q��F!n9P��$��A8T��7[�
+Q��VO���ic��N��$D������N��:�&!2�4g�
�w�꙱I�R���o���{��&!*~>��B8�(���Bd�|4��F�[
�C9A�["�:�� !ꏪK�CB��n ��^ �9�0D�u��ș�\���t�b'
��%�g���/l
�r��
0���_/�gXLi�{��/�UҊ̒�BԺ����B�Jl��Q��LO�N8T��}��Bd#��y�#C�:7
+q+���B!U'��6
+� �M��B,����7
+���
�m�Q�뇅��oV�EA&S6���jTk�w���z�%k"���7A�;�b!���b&(�s��fJ
%p
�C���T��
sƦ�%Uk8�,�,�ȬM�vG�;��ZY3 �;��,��H��B̲����Fk�6�^,�L��?��QF1��a�l�*�4'
Qr��8
єgl"�j�`�Y����!f��/�<� �X���
Q[��TA�3�:6
�PN▃���I#��^�����L��
+1���As��; ��?(D�9��Q�R~�h�(�L��גoX���zZ(D L��B���E�-�H���sW\���-���O���B�l�[�,D)l
1��qƋ��L�8X���s^,D>����B�l�r^,���ڃ�C��EC�r�3ӟ�s�� N���{D�C�X��yTVm�"n9����cڰìV�����<�b�����rR�
T�LQtJ���OJi|���#�ME��k�"J�\���������2�wSQ^
�N*�d�䋊��K�j�3�E���O��|�"�[AE��EE�rP�o�|z����o�N�
�2U}CAe{z��(�j�\�"��\�"n�"n٨�E�q6�NET��7��Q��Q����������mT *"ʘuS9ux�ۦ"f����AEԥ�M`P�rQ����zC�&�E;̝�Ѧ�9����rq*�V*��LI�߶%oءF�^H��TD
@Ҵ�@�e�����7��r�@%�~]�PD��D
-85���""���P [...]
+S5�TvjY��/(�dOJ;1�HfQ��-,71c�:��,"�SL݂v�
�P?XĜ�E���Y�*��
���
�xȎETL7վ���1�}o*"i{F�"J���7���EED�Q��$S�����/m��TD�)��˦"*�@�cQ�"
�Q3�?
u� ��o?K�Qu����� "���
�
�(� �
D�������,S�x7q)7q�D̲��re5�d��OK����zE�u��iUۿD\�
D�r 5��\�"�̡�ק���l�����8���!*��{��ޛy�:s��~x��7���w���mś9����H�
"M���l�[9m
�V.
▝�h���� D��ͯ�u�i�}� ����؆��������XKk��
��#o
"*��x�Rl
=q�E~ ��F�!bmf�!�F�ۻq��,��H$���y���w���!rk眛�(���.
"A���QU.���XNb�
b�'2���M���!�I��T�H�j���!R�i�,<D��.
"�'�3><D˰<��v�p��U�V+��y��J�, "��B��$N~ɱh=���V���""�q�y�ш)i��צ}�{W��"�P,l)�Vh?����w�""�U�-""���
Dįj��"b�EqF �y�#m ��<��"��Q�36ђ,s|����
�hT��pe��g�z 夼y�� v~�������!*B�;�x��[ҲK}�K���!�
+~T0
8D2V*�
�P2�7Q�{�8D-�L�8D�T�,
")ç��C��Bː�H���g
�h��2�CDy��<y��f�w��5�m\<D����\<D�gf�
�y�����n
b��5?8D?"ClM}��
�����-'��F�ޙ�X�HZ
�lܚ��Q*Uv
�(e>�\��
+���q��#�|G0�
��1��.��Cd����,��XF
;
�MUk7Q�>���Cdު�
AUL�������1
�ӰA�3�)�!��dɴ#��d�d<�4(��*f?�:��x�c�e\���C�O��aP������ǟ��;���!Jf4Z<D��B��(�2��Uo�Q(�
"����!�6�����7���CT���T?<D���0/
bfy��!�&�w뇇(�³�C�xi:Ð�H�y�8D�L?���L��C�R�
�Jg~�M�<D�(��y��|Pj ��_�- b�dm,
bVn-���!*���g3���8Q{�
+a�"fX5�:�P�T��
�u[
b�-qq�Fl7Q��J��ED$f2g�DD)� %��A"J~���x�Qf)�D��r��F"���Vbm3u��;���n71S�$�d0�l��;��Y�b��
LD�� J u[~c�u)�uT��b1�|�矅D�ᨬ�
���J��ÉD�J�
$��LV�
H�
�п�F"�i��1×x�F"f��
�O$��LN3o$"ѭ�n"��h���""�7��NDD �DD)��v33i��]LD�f�\̖M�c�Ӈ��/k��`"����L0�
<�� >��wF��b"fX�el&b���
P
R�������UH�LmA�Ej���T�\H��;�]��a�] s��ōD�z���/H�
�M/G"f�q3Eu���*�J�Fo�jI[{����C^�s
7Qr��:1��ݭ��@�Q�o�ju[�t���%+!"ˋBu�EDTh)QNDD�j,�Q)<��7QC%�
���ߪ�n$��
����b"*qc˺�:P�{P�P�̖�~�����}�r��֔��,,"�X��XČ?Y1��
�����ET�<��E$^6�5�b����z^+C�aP&L[㛌H����!Ȉ
+��������j�zM/2"MK��EFT��7 �MF�*��2?dD���Ȉ�z�Vt
�+D���6Q������^tb�(T3\dDd�� #کӖ�@
��q���Z$��]xĬ��0��A���#2n��:�>�Йt�
���
Q�c�ذ��Z�9�vOo���H�u&�
��>�Ī�,
Z���pDM<�V
Q m
�GT*<?�}��T
l�
��S��#�Z��G�
Q���V6
1g��Y|D�ږ�:���bKQA�0�{)
������$"S��D�7Ý*=)�� ���1��h������(eę��_�
+�����=V��B`�ش̾�I&,�
�����V.D�|��r�7 ���-p� �Y�4��S Af��(�y��
QJV�b�� ���~W�֑���M���G�D�����$��,��1.^xD�~�� <����"�
��HaZ�m�������rnm��+T��Z�z��]�o8�.7�G�!���
���
T��3���%d�֚��.8"��
1멠%��}�y�5i1w.:"�Ț�#ڒ��
��
�AGԒ�� .:bƱ>�Q��W���~�35n dN:���e���ς#f���و����FD��
q����x�6Q�[��q��ԸO�%b�,�wis���z�&#�v������o��>pDd=
�(�(pD �So8b�Y�=T�K���f#J����F�ط��وR<��y6-�F����F�ZHG9QI1ʝ����B���F���u�U���f#����қ���UU��b#Z����`
T�>�6b!l&r�X��\J�9�qG>�����#�[�;
Q�|iռ�TH�$
xD�TJ�/<b�~���(��������">R@�]tD���ȥ$�pD�g��XH�fpD�G����sK
�����
G����w�)� �{�3��?��S��$��f�?pĒ��
Q
�D{
Q��M!��X 2ױ�:�ңG,^��#�'A�:
Q?�R~GTIkg�{�
e�M��h���A#"'?�6)m��шR�2$7���Y�h���ǚ��W�>�B#���r����=v4b��]��HK,�}�F��b8��
+�dFJ�D#jX��l�5Y�1Ј*
+���B#�I�B Ј9:����އ��X4l_�ۧwV!��E������""��m0���Ҿm2���K��i����hDK��w�Qp��؈j��=��#������pDR��#.8�e
���[�Nu8����)E|��O%�tD3�N}����̹�,�^��NG�rm�<7
�X�O������MG4D���
+Y ���#�'�KtDڱ��7
�/�B�#ZV��MGtdH�tDN�~̦#b߃D���)o:"���3
�I�^3IT�l�8NG,��0�ا�W��XF��舅���:��
�EG,��f�tD���|
Q�\��xDCz���?��ѻ�t
P�xD}�6s�xD�1��_xD�4��
:5��G�;��
�h�~�чo���#��s��P\E���(ډV_xD���|?�H�
�0�
+�����j�
��__Jv4�Ko���
'$*�LJ�F$2��"G$곌"�D}
.B����
HTp1��D�
�f��4p�dp!i90�g$�m^;I��!�$
���I�6c��DBzj1�9�zG���I����0�I� ����˅�B�qU�Ka��$jM����$�x�?���$�x�{�OLb�}�Q�1�J]�Ꮳ9m+����$j
m���I��9j�L�
+V1nL��,�&Q#��&�6vJqNJ��j�U%�ЇƉ�$�
6��C����D"�� ���$R��k2�W�!�~E��X�W�IP���1�!�����"�|�"����Z�T-�h�8��V���سmc�b�$#�(���:�6$��^&]n֓
+�.F��n�� �����nJ�ƍ���m���i#�(�z��DA�S�ٕ�{�)�R������6�
�H���=��#|/NL"2U��ID)�x��X�Өt���;-�J��W�,�!����ύI�DO��>�mI��N�`+��
��6�Ŵ�.���\�D
��^���~GUe`1|�պٷ�T25�IDiݖGfҜ
[eܘD"��[���U5r�'Q��
����h���sm��I�r`�]h.%<
��=nJ"�Z�CfJ#`�+KL�1.�e+��Q,�ubY�ӏ�DV�,N.J"r�����!�8Lo�[�DԔ7#h
��`$b=�f���NJZ�I��$����9L�z~��
[2��=�H����IDV]��$�[Dp3�O�5.�{��H8�
��!jUKL2�+
Hlqa���Ѽ0��ki���1���PڍI�L�40��nUJ�0������0��91
+Lbf70��$�.��0��iɣ["L"m���&�6�w�pc�s6�\"0(�y�
%Ԯ;sS�Q" �D�-�u�C�#�T�+;3�1,C�1u[l}�Ŀ����\������L�R�+�H�@���H��������c3 ���D)�ݐD�2�qP
ܒq��vf��EId�XN����Z��8%QۘdE�'%o��$J!W�(�R��!�x
�J�Dv��+�@����?�D��U}���ʧ����5c��Ȑo��
VHy�Y������r"���
2X����#b8L0n�q�G4�KGܪ��A4w
Q��u�]pDd:���B�@������l9s�1��������������IG,�ɯql�ڋ�E������吝��?�� =,�}]?tD�NHN�1և6ct�-\t�Cv�E���
���_Oc_xD�J���#&l�l
+gO��B6=z��v?P��(�̂��#�
ݷ�,�_�ެf|k�f�lH"rjmS�X:(�;��>�D"��=��B�tp���p4���(Q�fs.
+P���??�+�n��(���/6�:'1'�cs�����I�l���I�
C=oN�f����
C�s���x��O��}@�Vː�%���:�J� ��0q��}��{�U��̚�,Pb���8�J�r��!JD��?$-a�E��1��c��}���Ҝ�?:�ŷ6(Q�K���R��L�>�+��EJ4��MJT�S+��"h
�
�DJ���A����CJTѨY\�D�9
G���ұ
�D�X��"%n_�u`����DS�����$RD�18�*�����$Z
j훓�5��N'q+'q��I�
���:�03B����m�s��>���I���&����$���'Qʘ��I�_0���$f̅J٘D)v_.L"�4l1
���"���"������8s.L������x('
+mˁI���^���qR�wa��a
�ӻ)�[8!�K
F��@-Qw~k� �,d��:P�ܔB"q+"�d�M��z��Ҕ��C]]�[oD�J�G=e�kF����js[��ċ�*&�H�g���49�ٿ��>��H�����H��ތ�lL�!�tn�
HD��ٽ�!���
Z25q��I��I<d ��(��
����ҸwA�*�
�͌A�'�k��$���vQM
sSQ��%�~i�Jb���$jR
#�$n�$
�S3a
ug���\-�q7usk���}�M������B��$|���PP�H�� Ӏ DM
��)���띡v�
*f� %n�
�
�Ĭ�8�`�J4�x�'*�\��rT�
I)�rPb!���%��{ @�
��p���E�:NT���A�JU�7�(��r�~��,S�2B P��ۏu0;(�>m�Q(X�H�d��8)QB��D���UߠDU��\�D� 3g���z�
�"%J��o����l)�}"������f�c�/7�l���w�P�R�U���M�NJT��a#|����fi���Қc���C� ��p�?fʤ��j�M]@�0L�J�V J:�J��!C�̹ F�f�A���^�w�_
����
+J�*�������
�S��1��8�̤D�
+_w��gK��HqSo�I����W�;��w����;,�D
{���)�n�`[p��ToƨՇ'#��f:'�ǰ��p��Z��$"���UqQ}��&'��u'#a~q1b��I��_�I䟢HPz�<}(������~�8����w�!�g.
���ع�+��է�<q;���P��$�H�$�pp�F2$�!�4ڱ=@��T�'���X���idF%�p�:;�eKXb��H�%r�9��Zy���,�;�x
,��p-�#^F�t�~<`������ L���DD��Zi�Z�u�zxi^�s��s8`���,����^X"����6�-8|]�%"�n�h�%"tm��%2<�V �[)�D�g�Yb����%v��Xk�
K��8,#�r
�,�D
���D�0�
�D����. K�;�a��0��
��#3,1G��vt���Xq�%�F��Ӂ�d�] �u$(��i8¡( T�u"�}��I!b� [...]
ޠ �j�='��Dy �-.�跚�
�q�9
�D�'���,�ï^7\Kh�8�[��i��P�7h�
��˙��a>��%�d�ٟ��7���Kd� U�KdeZ�e,sd�%�p��n�^ZQ)�\F��7[ۧ��]��H.
��K�0�D
+/�
��^"�S��?��BK�h�Q�HKE��h��Q��� |FI�J��k�G�-#���H�̝l GZ���olKV�zx��X���b�X�lVd`a%"�q
ە�D�A��JD��1�����@D��E4S!%"�؝���eb�NJ̑�J��`%�W��
����_�L*+��g�+�
����-Y���/��3+����r��D|�XT5zt+(u@(�/�DW�7� �M�H %
��VH"�o����H2=��@$�~B"�G$����#b��|������#b�e�M�G�> �~�#�����8�)��|�M��'q�r���0�Q�Y���u&
��Fj��ӱ�&"Fף'�Ȩ~$�m/@�ᖆx�h{ٙi!�*)�8
+
~!g��7G�����B܋�$!B(�J�!JE�'�_�e�A���@�y?
D
�g^ D��Ǚ�C$g�����7c��:ܢB� *U~2�>�烾�5P؇9��C�;�2
ǫ�C&˷���$�py<�E��ſ�@
"��z��L|C4_^�p�!�������݀�n؍5�l�n��D:��A6���L`CƘǕ�¾Z�f�2�9��嵇N5D\1��`�1��z2
��~
�4|Y>s��*��f,�A4l-�����
&��
un��
���I4����$6Vn�� 6Vm��DC��P��#}�ǃh�6Oq�h�
}M��Ѣ
�|
�ݬ����
��� �}3��B4��~�$rd� 4� _Lb�6<[
1r�-�����x
�L6WTe&�Q�jߒh��J?�[G7 K~
+��ci#��<��g
1��$_
1J�q
1�lǞ@�����?p���ƙg�V�c���^�Qɂ3D��F���B^�����MeB�W(C��]#I����V�!�#1�pF�k�p��U������0D��ژ
a�z$Ʋf�!�5�w C
K�
���/�QO��+���3 '�Uv�
��E���D\ns`�q
q/�W�z`�8F��ӭ�-��v)��xՅX��NХ��vW
�IBP
�p����pw��
+s`�j4X�pT��9u<�J*�>�����cVp
+5P0�9�BC������)��BvlV ��rm�����D�O
+��!����<t���'l��1��'�0M-� "��
+>a��d>!���7[tR� ��-��xB��[NxB�p
<!G�(|��LH�"Y�Sa�a�W|��51wI�춼�|���%��Ik�z� �P���?��+�֞|B�[-�J>!U��>
|B�I'��at�54�*�~r���xB�如
xB$���I'�m�FKtB��aT]�dMtI'�~tCZ�~�b=�l��H[�`�xB/��
�ÿ��ϵ/�5[�N���}{�ܵpK�e�:�c�� s4��l& �`C8o�� �=�| ��Ƅ'l,BJ�� q�@d[xBR�i u���Ve�������a<�Ix�
)xB
OHa����6@�|�v����>3z�!�y�� s8��
��
��ĭqU�'
����\��$J�uR)�O��u�&��rxs
i�D9�8Ɛ��ƥ�;�p˷�R�á��"�f��� 1r�0;&աpyc=}�AG�<�s�6K�M�}��t�v0�5
G��a;��idf�M�
��}_vk\���}���pB̰�˃��n��� s�� 5,8ac�
F�9�Џ�
�P��,o
��F�18��Y�9
pB�ɞw02p̀8aCLc����Ʋ����ӾU:!՛�w^�[
+���
�@0���&�9�-�*�4���cM:�
s��N�轂�I'���Ր�� t���� W��k>p�
x�id��p� Wf�פ�G��
:!���V� 1��v:!e��/pB�k� ������vY3�����3�؛)Z$8a�8a�p��oޣ���\֭� �^v�6Ju2�A'�:�qOH)�������,�r&u�!�ɳ<!�:�t �S��'̑�4İ�
%A۲'��G�
<a�9M�6�;҂�C�|�q=�0
} �6FQz�-D���z��,��T�_�
Z�
<b�^o8@�l��8�c �P�;OkBf��ry"� 1Іu�%��
��K���û��9��=(u8A ��u��$<�p
\�堌�"!�q#y���!n(
!�ѱ�!'�h
F3C,B�
CDEx�
�H��r��%��t1��!d�;�r�!���Gas`�j4 ��?b ?�
� ��
+!�� -JV싄/�6��Uac��~&�#�������
���a���ZB�#��
��!��Y��¶�� ��Y�Aeb����O ak� T�
�~B{���a at G��/!n��z �+ე ���ו���
�`�l ���
�u����Pq�
+lP���_�B<1J#
+����b�����@<���Ff�`l�Yq�.� ���a�
��/� F��
�6�a.��
r�Q�A���a���-� ���$1�sΉ*��Ks
�x�J��
)��
ؠ��>�ᜳ����>�jwM"�7�nVU�Aju� ���s��s�`�
m3��
6�P�u�� �O���
bd?�@���e:6�a[=6ȑ�6�?=��6���Z���A<Js�6�#6�a��t�ݝ!ؚ�xVؠm�����"�B
ƿ'Р�F�1��:<K!�2ș�|�l��-� ����3�a�Ca9�9x��!�i[�f���>3�����������:f�!%�Ǚ�A�T�`f��
+��@D
/�͔A
���G��
k,�����@
"
c�]'
�W
+� ��6�y&��a՞�
�-_ڞ�@�q�قㇽ�Q��S $Ȃ(`�
u� "h0���w�b����TAT�,˚PA
�h*LA��QR'��DA֮;�/�����&��
��m90�s�`�X�ڵ%&����Yd�Iphm�c�
ͧN� R�_� $>�r$J
��68' �@ j48�H
+��P ��hՎl�L��%��&��F*F0�#�5z�̙c���m�"�g��"\E�Uq�����D no��
A��Ť~�"@þXq�üuou`�r�c����9*�:����H��Sفu����=�qU�"��ScEp%0�[y�)=�D�3���(��
a�W�`���q$E�"D.� F��S1�
Y�����O��I�A���#��&E�
ѓ"��:� ¤��^�H� F��
� �s�z=(��R�sݒ#��Iy$F�_�� ℷ�֒"=t��D\!� ۾R�����"�x��"0°S����A
w:x�J�����r8�8�_�j���b���
+d"��+!�Vɷ��؝��ABIh
+Ep%}?A6�#�Z(�$BpUr� z��"�2ۼ_� ��Yn%� 望��A<l�*E�\:D����R���E��:�\Q9җ�A��ޠR1�p�(��~��)� �
�JD ��@a 49x��]�7]1�hE�G/� �',�� �0'^�"���5Gp
q��be�r?
+ �#���w*G�#��k�8���Q9��&� GjG�#���2���S
A\J ��Z�J�6�� P�ƚ��#������tL A���� |]�s��� AK_,��BGY� �+��\O?�
A
��tp1� �8�
�
ʔ����r��� ����U� W�cxC����GK�Ƃ��l��G�5̓#���uT�#�
�\���u��Q�F�rd]\cP�s
��A\����/)�Y0��z��'� ��
À���ҏ_|��d��� �����#��`�B�UL�� Fi�@{���c<�0���@l��:������'ŀn��5�\�@
�z=���)�5��{�X�@
�$r�b�(Qq��Lf �d�����4T�������0�4��T-3�ҡ�
��۔����@D�iڈؘӧ����:0=\i��Y�"Z c���D
d���J
D��ڽ`���F��w�3ք���J
d��:Ϥb�A< [...]
+d`��
+lh�5oub��, ��B�U�@4�ӷ/�@j�#Q����F
+� H�A��!ga�s����70��P��OJ ��N�0���<J0AX(�>#��}�I��!=4�q> �WT��3x@`ж���{-Ml@>#g�� ㄥ�
xF(���zٺ��������ëd+��
o���n�������s� 1JNwWߺ��|
~��(<@(X/�G��m
pxV�� ��d�`uƖC2�ڬ�+[Qd��.5^��qC �s �P�+@�GA�U@�Q.����
p��sZ�
�*�6�=��^5��L X�+ <VGK�����A���G�R�?��:���(�#}��!�b�X��t6Y����v�����â�@X��{L�?
�/��v��r2ֈ�?��6VD�2~��w�L��h�]v�'�i�̓��?D�~&��dr&��FE@��Ј��m �P�Z�?��z���Ģ��=ԝ
��Xm��J�(Luh����~f��E��&0�
��j�wި�9�[YV] g3?T�? HXG�?(�a
V���:8"��
�$�
�g|�����Ƿ.���O
+J�X
$4�e�t�� ~��
����Ǣ�1
h?@R
��d?d�M/"�~H0cC�`?V#����~�C������W���v��~��̈�7�/H��e�"���
+T���*+�o^!4?
�~������巹� ��|��$�A��w�����������I��A!�N�?V
+w�v� �/��1����߇<hw�^��0j5莸B^�-���Yƕ�� I/��M)G�q�mt��EgA�C%W�C��Z��^�������Rv����J��a���InqŻi���*5*���tȥ��٫����yYp}
qȠ�
^O,X�yyƿ��XB@�?C�5D�X���F�w�2Շ-�ۜP}L�
�:��
��A�32䑠>�ۖB/�>��e~ԇ�ݺ���X���l� ���9��E�XE�q��h��8�7'TF,ZP}�{?��X�}�D�adt�TvXJU
+��rx�B�a�_�m��8�Pa��0Бk R�sWH}�g#R��c���"0ZQ}��j皨>�x���X�]��
���%�)G�!�d˳��P�֍Z8���Ͷ�W��P��%����+�>$�X3#T��"�
������T_��x?��g��+�_n�ԇQ
+���|���
�TN*o����@
1q����a�9}f�X`�UƼl�q�p��>
/�����w��m
�Z(��f�a�@}H�s@��F��
�������Ū����&T
��1ܿ^ �ßZ�F������ ����������@}�.
���kD���>����׀^�eN_���7oY� �5��`�Π>�rk��F���>�˱>P}
�q�>�l�p�ׂ�WQ}�u<מ�����`A�-������Xh��SpT�cc;����
dA��ד%p��c����@/��{��>,
��pTV"����s�T�����E��P}��o��`�q1��>|�'��A�cK e�
�������:���okY�I}�;����>K�_-I}-�#�ԇ>�cd�F s��
����d����,&�$��k��:���1�J'S�A�su�U�>��-URR�4#E�C���HR�ь^R�!��+I}���
R��
lQI},��W�>�&�ǚ�> [...]
+���.�s9����t~2��ר��b��@�=� �!�s��$E��_
RZ,�R��Τ>\
��"��4��+I}�t�k+�>�Y�!P�X�@P�=X�VA}��gI{��p���}��
�o%��a���ĭ<�@}lTcȫ�����Yz�X)��Z��0�^�� �a���
�>6oYL�A}
q�'9}L�S� 8}�b;�dž��C&L��/(}�:�2�)}H�2�R }.gݎC�p&���҇K���P�lx�
�>��Y�+L��f��>62��`����]�>�?�S��P,)�>�����>�aj?����V�ч��5�b��.4�%}X�7t{<�Y��v�`��K�}0X]!}(�bnB�>�Fy��
郵� �/H����Q��X3��u���QF�?�補 !�3��
�܋�wti����}{ �vO�χh9Z��{ `��?*��u
�S��ǺN�f�M��q��6|�����a��H� χn���7�^�E1��<G�x>;�𦚬�f�c�i�%#�<F�~�x>4�5����BΎ(���b[�T��a�0�$�|X0:,�-
�n�h�3���
��:��@|>�
d
<kf6j
���0��ۘ�È�:�x>�V���8��+�|<ٸ
t> ���g ,�Mؽ�������Q�
$�7�8U��r���a��"��:��#�0���[iu/�tX�*J���3�����8�,J��858��0bj��χa�ɈϷ"lĦ���a����qtk�
@��� @�40�r8 }P�_��=�t��� }d\9N �>��F�[�p��
��Z�au"�%�f>9�Q
@
f�@��cKBGvg�����̈́>���%�����������$�ab�hB�>�O��#P�o��`\�9
Ä
�c������û���È]F �^W�?���р>�kS }�R�D���<�'@wh�2/[9ۮz��8@ ����/aMV>�*
>㵨���
_�.>���� >�9�?��C%3�����
>;���|�S���8LQ���qd8��"ZK�
������F�c+�طD�1w4��-�)L��}x1f�����~���]k��}��e�}<o_�>��R��>
�c��![
P�e1߿���O"B_C1�rL�=�w�bR}��3���^��%
L�zՙ��aj��#�7�зR��(���F�)��.t=}�鳯D#
T:
D��,"�q��/��Rٌ�k�v�Z�#�Ps8(h��id���p������p���h��=���D
��0k���@}60���i؋&xcl�
T�]�]+�>3�
�>��D?P}�;(�>���Usne;03'��j���ͨ����>Շ��F#��dvT~�x���ٓ<�����ЛCT�d����r����a�J�,�Lp�;������_�F@�>�kzfp6w�͜>D -�1i�tL��4�+��1�s��G����/�2-s]JG��À�҇+*��1�sMF����
����rcJ9�afS� B������Ŧ�7��I�m����\a����.a�f��h��G��`�aW�l>�ƚ
+�/Rd������cIB[��c�wA�c�
�����փ�
<J0���Q�C
�9�v��a�p�
s��Y��o
�v����B�������`�A�#9|�b1ca�4P(|
=����{�Ќ�wD�u"�^B�c���
Ug�
�������`���?����ޓ
D��7�yo�י��� �H��� �aQ!ѽ8�,�
kb�`j��B`�r�`�r8�{�ͧ��Z�Ot�x���i�`��=�aQ�� �0ʢ� �a�j�ۣ,�=x{h�e9D���\FFC�=�
/����z��wz���z��� �1��B���9��s`�hi4({̛���`����0����-G�f��L�NŸ=�b��N7
�
��� �ᵳ4_íy��{9R{-��E�C�S��e��
+��i�<��T��z�e����v�7[�l�uM���M��G������$�IM;WG�}<�z� �C7ñAW{ڻ�H��en4
+���v �4Pxz9J�
VC�A�C��k��k�Z��3z
+���6t�
Gϑ
=
4 F�7��E������a�(B�ſ
@O���c�m�Ѣ
H��K+��Rab�
�<#tޱX�i�@�
��#�~9���4��@�� "��a����Zм
){4����9g��
�$3Ϥ�����<�dZWzP�Zw��R�L �*J�l�9��~�%MX
G�4�pN�C�Ե��Aͳ�
���]\�r
9b�T��ˠ��Ǒ��<���#��Ǵ�ulb�a�6:�d���^V��Nh
Jq�O�m�4��s�b4C�0l9�ad��c@�賍�2���F1��'�p��e1��`�;3�������P�r��
�<87�s���7���<�Z�n�'1��G����y�U���Z�hV�,}�e
��+U�
+6�����<�|������z��a������aj����!,--�<��0q=BH�jT�<��;�ؼư�
Û
8}6�Em��q{��y�SR�B��e������@A`�Зh��8��z
6/
l^��F�(�N�u��5��Y��u���H���p`���1,#
�#Z��v�3]� u
��u�ˁ����@�!�u\ �k��(�<������˃�^Ղ��(̠�q�����qd�����o:py�P�DŽ��sO�v���ڭ���
���#��Á˳��D˃�����POeկ1�P-k�����������@��I���B�TR�Z�
�RZ
�\�.�����pgZ
�]|�iy9Z
���xz���0l
���8�����/�IX
�(���g�o\��
�ay9�<��)x
��ڹ�g�3�A�@$Bw�#=�u(��i8B�� �2
<,���ϰ<N@�t *hOn0֎x10���Q2ゕǁ��;V���^VX
�� �LF;����>X
.���<v�39鰼
(�<
�V/���N<��O|��5r���@�`���<�_�� ˣ�/�����)��@&C!���2�ay
x^A�ۼn��
����8M�<b����3Y2�̬�
V
��P�+V
�r��Z����È��,�#֓8��8�O�<�����<��UV
B���Xy,�:�5Yy������`�r�<��<�눛o�-�F��5b�Al��Ue�q�E���.�u)�F)�ˑ�����52Jڤ��/�Z
ѽ�j`�5u�N�-�FΩi��J�Aˣ���.FG 5f��U,iym�a��BT\�<���+�<��j*͑ݑ��ʃ��OA�;��:x�)%지��n�a��uD
�w���U��%� ��7��Q�x��Z]
�+��C+y�����z���
2���/����ݯ��������z���O?�Ͽ��q)˻�䫟������?��_���W����p�AU�ܟ����_����������������~v?����_�&ny��]���~��_}�?�������̸��n���ϗ��������y
�[}�-��_�����������}��������_����>��_��7>���������������������?��a�9��f��+���
�m�i�c�����k)a{|������{�n��ݿz����˻_�
��O���_������ڎ�Ḿ�*�x{���7����G�����{�����>�|T��&y`0q:VTR$
�3�b�
fr�d2���b��ab
1UOdmCn
�N�CD*<E��3<*�7��p��;G����3D�Q
K�2��<�Wv`waP,�q?�z�@#��Z�vs�9���諙�%��l̇
��B���5���StG�m����F����n�@�|x'��x�ہ��Q����q2�Po3�
+r]�~o)���f-�+��=#�(ɣS��z
E���UĭZx���Pٶ�!N%�FN�k�XY��
+��۰Bg�UH:l^p��
+JT�� ݢ�U�I
C�v��I4���G2�.��~,�g|]�]��^���T(C�
�y,�l�!��d�C��֙���8����ͬX*���>��z�㽧��v�pM�
��ʋ(�Ղ][�Q2?s�ȳ�n ��k51B,��~h����x�%�F�x���#3�������L������������Y�Ψ
۠���ၠ�jN��LQ:#�;�Y�r`�Ĉ�&�
lq|*��r�$n��7�~��x��kP�OQ��=��
rI��i� ����t�~�[P�_��7?��W�x���������ۜ��w� �
E,�А�ۦ�CCL���{Ji�sR{��H�w~���_��w��Z�3����
�=���)J,�
�`���r�������y�;�5y9��YF����n�E�8w�7z��!�w`��q PL�4�/���|�n���i�>�jP�i/�>|�ܞ��y�ݏ���wo__���+qC�6͖������p�|��_�'�*���}��_�����:���|������������e^�����:���~����&G<��궆�V
+���
��U�;\C��.�I�퇳T��F�s��+B�ﴜ��1����N�"4�k4��l��g:
�$j��ۿ7k��ÿ'�4v-�
Ӏ P�nh�
�B� h+��X��@�ԯ�U�p���'XHog����g+�eA2B���v�M3xm5�;d
4��~
�X�>-���i4�Irg
���Iw��.�Y�x�n�v�Q��Z��n�g��^h�
e,��b;>
Ӻo� I1�;��H r���mpYN
0�A>�bһ�7��ߡ��|U�;���z�
�B!�m��\�����w �Y;�����|�pY<�d�8����v��woG�y���{����nww�T
�u_��.F���YXm$p���Z�˪��LX��fώ�U�|,�j��RT��Q�Z!f��"��aI �<smP
k<J��p"�{?�
le� WM��YP$J9��!�w:'��&�g�Ƙ`|E�Hn��א�ǃk�A% t�~K
����H
@��
�P�현P�m��
+j~,Ż�
@a��/����]j��x߱#`�So����+
��Q�Y�I��}���K�#�r�zz
�`���0�)�XC�2��byo��_X��-�Gt�w�
ʋ�m8<�t�~�7��+�9�I"�r��;��.
l��A(h�G�k�b��l�ܡ��4�}+���ՌG�I)0_�]���.
^���ߓ�����y�H="��G�(��(��Q����0������ؓl
!�1y�
xkfb~xh�q�|�)V8Ț=$:�L7�a9�w�1�f�!���(8�I�lV���#y�Q���%���{�7���8@�.��'��_�h\�뜍�v����
�{���ׁԣ�?L�|~��8W�o���Qa� g�R^�����6q���������:-�-y/i1{6t���|z�)2;en����jZܨ��
7�`�y�o�غ>�
�
qe���Μݔ/��
"�DƧ�3S�|�,�X.��'�N��
�ܮ^/�J�NXı�@��ރV-C8ﱲWeZ��Y��Ң�(��4V=�Q�}�k�fM?G���
��{�
+�[��R�m��q��[����7�����(
������{����êRc�����mڌ����nYx�n�mm�
��|���
rC�,�ӱ�n0v(��;�ʆ��ط��;;��ne��U0��V
���?gK#�
�L��_X,�W�z�?�*R
��(��ų�DG�`���ù�aq!�7ٶ9���m�.Z�a��` �8\v������!�=�Q�c��y�e�g���T�
���l��[�0K23xs$�e��(���4��)�7���O��6'Gh[��w�?:;Wg#����p�1�[��2ܓ�
�&�����`�e��6
[�
���
aP�z��A�p��&Gh#�k��/��a�p��w��{��Bԏ6J��tX�ql��_�
=�ފե��������F�#�����>��/
P#�Jc:�����Y��s���,��;��^�fi�u<m^�қ���;� ����=(9nT�c}�-�y6���5<�贼��M��rE���B��4��qR:�r�
ڲàw&��U�m�
�����VS��S�`x�&��n�T/�}�&�. ��姶'��"(f��8𗨿�dž���Ϸw/:�WИ��{�*v [...]
�%��#l���?�� "� l�{�f�6�mQ\�;|W��c���_��F-3���
���K�12&[ �w��RtX�����홺s0M��7*��!��^#�b�E��̀p>vk�*�r ,��}�#a������#����U��&��(7�#��0Wۉ�&$nd�1O�!Yk��t�e)�CG�1��e���|O؇�4F�iؑ���D�;�LRdY ��d,��T/d�66�
O��R&Le�z�'Lj��8���Z/�Di���
x��fJ��|V�
k�#Шk���04��e��cA�5����7� ��]p˶P�KG�y�v�:���.�'���L(�N�t�w�6o�ya��_䆅����
�\r�P ��a�}L�Sƞ�����
�=4�
�i�\�חC�#5~峢��z���
րj�FF��5y�L���4�βG'�n�����/�- at pWx��`!J�v�{�h�fm��1
+D� ���㍰����)
=^� 2T
Q�Z��A�"1/�
��z�Df�%N�#�WsX�q�����<�Q�x"��Eh�>܈?�;��ޒbX�u*֕�=�a�
+�='���b�)����8]����i�+䧯���cQ�P�"�����_�"���3��_{�>˪�1�X>2�K���e)ʘl,Y
+�jYSx��
+k��@q,�
+'�WQg-�
+L���u]���^���-.�D�c�Q�]����<H��,�����[���C�7�>��Bݐ���έT�v�
)f@����ʡT�C�)JƼ52<ӰF���vR��Y�'偑r�Ŗ��b�Y+�?�d"*VmI��dt*�&�T���~U�Nv�rx����6�r�2��5����b�+
)�^��0��Ϭ��D(3*?#��Q�U�Kdb��(a[} �u�WR�W�2ijץ<��3����)%]==���*�
^���ջ���
U>]����էU~^�o���A�d�w�;��r���upK
+�
K�=���0<�;%G�f&��
8������;*�ۘ�
�̣�ľGkN�*�^�;FLc?}{S�Ö�+��"Jrо���RtR}���a��SE�&3�<���E4(�"�F��۵�R>��>�+Q�|���[����V ��F�,_|��^�A��^dS
+G��*��Y���Ȑ#xf?��:&��B�ݻ
cĮ-�g��l�s�K߉���U�QS��j����7��u�Xmi�ۜ��/�|s0�I����
��������o��z�n1��D�_�$�����q*� ���2�<������S�����d�����(V<��1'���{<T�����wct��!�7v�9k��
�/�m�J����Ku�Ϝ<QL���2
��t�.?���m�1'�U�fL���\`����m�� r����y���<Q���Ou
+�zQ����˫5k4����&��щ
��S6&9&u] ��̨6-����n"�pnj�
+�1#��!2k��ݍ(ui{��'�+�}�0�
��w�'UB�K0�w��-\�~
��.��0�v
+v���iV�f{�>t�-���/��B���f��e��Z�At���
�<Va� #W������(�p]�3��:�-����<w��tq�ht�(Av=�Ûuz��t�R<4����t�L'�5lg�ǫB����n�
��o�8��e����&��1�P0n�G��3�K�
|
�3"pmӍc�D���b\�P�Su��@���6�
�����=3Ԫ�����t��
���)��8,+7�B��T
"^��<��K�E�!�� >
S
�
��d�\�Z����U�?�G�����gRN�S\������4���
�!��xV�
�g��F<�\[��"T�5�V��sE�i��Q�O��1�^���j�k��!i��o�*���~L��5����m�_�?�߯�2�{$)�f%ޥ<��"���*Ү��������7v� a�5f3�
Ds4및y�b
��-d�@EhsQ�( v(:KF�jaX+]��1�� ��vh��+��r��(���9(��0
�N}�x���ֆ�U�?:V�9��n]�����
�~�6
��
b?P�BO�T)��S�
���� ��T�L�2}�p�l�Z\
T
�p��FC�F�7� ,��n�V��X���Ҍ)��W�1'�7u����w�i��^�:��s �}J��~��^ �}���r[��A����7�d ���ϊ�*��cV\��g
�pK�p
+����QK�Z2���};��
+и��%��u<�_�����B��������\��K�wk��^�5vq�ܗ�U��Ğ�a�:�
���\m�F�Y����6X`&�L],�V�
^J�
���P���*���2\�zqT�S��Y��]��Fp�ş
��?��
D�\��-q�:W3�������~m�[�!�
R�'�v�K�-v�[�i�����\�5��5W���
����(���<_���.�t�i��<Ss(x�d�T���6�(�����Li#�A8CŮz 0cX��G��}��g�<�ϖ/)����xQ�J�f�/��s��������
y��F�_�ٖ�32o!fn�WMq=}zp�^��+^�����z~�x���
+�R
�
c+d
-V=��b�f����ՋEϰȥ�ÖیfWl���jv�F��u�ŋfW�>SNͮ<�xiv]Av6M9ov]!�Pb��6k�+.������)[��uE�����tHê���u�%���V���Q;]W2�)�❮��ۥ��Z�-2
���@Т:]���N�������
+
+��:]���
}i4����-��w.~[�����5����xo-������8�sB6�:]�/5�f[A>���D�JGo��v� TLsoC������tm�;]�g.ʞh��N�{����p �~?�C��ퟟQ�[]_(Pb`��,A�
+�>���
�
,1��1IPP ���AAE�Ʀ}נ@��gE��epb�AA��Ԋ�J��S���
R�ߦ�
+�3z
R� ѓ�R�@̟U�bm��
+��(�9�P 9�K�*s�O$
+n��(��Y��/�s:�4�P��s!ثxU8�?��`�A3B����jP`i�g�����4(��k�hPPtv�4(�U���e��W
+\�ђ�X 8Y' ��W��=~��Y��z�
NQd
p'^�3
�I�5�ȅ��k
-`qu�J� �{pW��{/E
�YR��D
�AY���-n��h���X-�Vs�i�H�Q!�F
���F��o�VE
��(�+0�A� F
�<#Z��d��-h�#-=��c`e�����{D
����k����V���!�=?�<�������Y����O��
U=��u ��p���-���`���тR��?Q��-�Ɯ�9u�ئ���Q���
�u�
�؍���f!��a��[�\�tDd5��қ�â� ;���y���G�^(��w�[�
�2h�� ��^�Y�R:w�]�[��uY�����
��~0,"�ь�18��W�e
+i����m�oP��&����
̹w��~�z�h��.)��K�
��a�#(���%>�辣R%k��
=R��<�V>����h��=u��@���:����h.l�c�=��#
��X��uD3#w�
��b�(���H��Ԫ��I������e/5C�b���1P�:s�L6�x;��;����`�F�)
+�0��
5�]�Uc0ZZiOr��^��\zKo,n�O8ZhQ�J
��ز��J��e9�E���|x?������dV����r;���k,�Y=��@"�l̋0
��#�Ź
S�2
+[hKDs3*�z���
�\Z���a���ș}�VkXP�ϔ�l�,T���m���fFg7��B���q
n��I
�ސ_�.r���J��q�S=����FF�z#ǻ��v�M��D<��أ�G��0��Jo����p�bqB&=GO���ҹ���,�����! �pƳN ��BN��� S�� *|i]�i^����L��j2��{��4h�"�B 2nCJ�m��1+.4�(
�Rn+i�j�
7h��;h�.�Q�W��F:�K�̰�H@��y^;A���J��b�f4��Z|K����O���K�h<
ԆX�+� ��9e�1#*��x�
��^�g����|�z���p͏�a� �Bh���
C{���x��t�W.�)��l�2��nO<�
D���_�� �L. �6>EH��Gǿ����
���P�����U���^W,��6�Nc|�X}��k�C��
��p6�l�RuB�g9���
�9��ĢJ[�!�s�b�幅��
�xl%��"`:2r�J7�/j��Q�w��?���2�zݟ /I ������������nHJl
+.���hW����ƨvhlD�洅��fZ��Q٘�x
\�^�]����LE�u�NȴW#f���a�ҟ&�e�<��uXB��$�d~-�=�j�5��Ș�C��,s�*.-�,l�=�0a��ü�q�HG1BO����zy׆�
3�P�ݰ3�,FM�2��ӛ܊m}8YS�ݦ"�NT
yP !�.}�ù��%w]}}x
�Q�
�t������:�{r/k��pb
��yú�+DI��:"ᖅGuo��) Ǥ�߽�\��>����/�6F��HU�p�lX�T�#��귨T?HJL)��.�S ��)!�LR�|�<�C�VUu�\�7/�GU
��Eb�#
+%�h�
+@��@�
ڢX���`��=���}�H�!~��>�r�?BW]$��R�!�<:2�ރ?�T{�W'��W�ߘZJ�J��$_}iO�Q�ϡ�t������Ι��j��Y]{pt���ħ��<�զ���_�ڇ�S�=F�5g'���U�%�!��
�Z�beIU_
�{м�*���Ɗ��6mł�]�`��+��&˯��|yV�Y��1-Vz5�i/P�[ns3����i�Q_���ڀ��L�z��Oci�����@m��
�V\�
�eO�����idnn���
2��i����Q)�D���[ԝ�#��3���3,%��ʠ���2��d*�L��n��~հ���f�:_e-V!��J+۳
+9�F��\�aպ�vn��
cX}�f*g��ԏ�b7����
Y�1�m�G��������:��I�
��G��:��輖7R:��x#���z���M�r��=
n���٪��[=<65�˱������"
b4�ˏ����n�)_�������H8��(WM9��
��
�rͫ��<x�
���9R�r8�EQ�)��q�*ؠ�D
���N������E�$o!B+�{�J�x&�������U�G/"�B��"x�x�d��q��"�zL��ki�E�+'e�
�7i�抵�KPL�~0����RxO�^D�h
�c�p��t,�B'c���e,0�r�eH��X�-�z��j]�}�� m�����eV�^-NJ�z��q]�_��t��TW����Dܻ
+7(>��W�е�)�^wBE�a*h��j��o$r��4An�1P7��aI�4
"y�21G�
�,�[#Ŵ�ᰁ"�vR$h
U$r�����u��P5�"y$k/�KiF�a9F�*M��h���W1W=A&�V)��|=�V
d%�dH+e'S;s{�$WP����a�+�X� %
�WPZRބҗ��P�Sމ2�r`�1�����E�U���[�4�|/ez�)#\�8e���)�
��r��m��»�l��O%�������L��˛���c�=
���M)�l.�|�_��M�+#BXz±�������� 0���G�P]#-��@�!"0�B��|�6�R�
q��F��@Ȋ]��<s�DGE8%O�`m�uE�&��h6�F-�O"bE��JL)�mĞ��#8��TBXz���W
���*
���
��E��k���w��Y@!��q�+?��-����<p4��������:
o*��F�<W���Q��:
�;���;��ծ�fRUm�Q�ZH
����VD^s���D��r8t�~t�s�Ő'/�
ث��o���s=n���1 ���o�P����P� 6m�'�
r���͐C|L2(S7ՅPk�Mg����贉�H $~��W����ϻ{c�㟅4�
+��s
��7�����1�&h����j�~ιY�a�'qX܋N�|��'�Yͯ
v��>��oy�l��-�Ӏ(�����������k�Ӈ��֧
+|'��FQ�(���iM;�:*y-!7�?5��P$0
��.��Y�{4��$��&
Q�
[�'t�k�k��B���рa�t��{&y�f��ǯ"MwH��>�غ����ǭ�h'�3��~#�
+z)ZY0�b����l��Vl����/��x�D�˿�LrM]E�I��c'��k�M��{�_ә�{>����E?~^��獖m=�H� �3
��|�EP /%��=�:�^hQ1Ћ���!�����&h����&d(0h��:
��:*>�G�J�=}S�0��t��u�;�W�'�/]OKKB}�Z;�����
�:Tߤ�+�r�i���:�Jj��,���3�A��@9;"Vi��T�-ӘL�q��F�/.�cݸpWM
:�u�g�K����G�� n4�Z6 �!��ù��-�,舦c�#�cQM_���e
���^0+\�;�s;�;�a���e:��]�\ÊV�?�}�kk�ح��I)�r���㭇�V��M�k�
�<���ի��
t����fL�q����7�m�����7�-���98�t��v�|dM}��lK�r��hr����BK�t��<0fG�,���W}���4u���Vc~���cӷR��>*�����e=?�t ��
ө�����<�\�����\�I
+Z��\P ��\i�
����H��NJ�K˅�j�
��ˎR�u�rٻs�$�_�7C�9H��
+-��S�NZ.��&�HZ.��4�\��R�@Z.;�%�L�Z.�~wd<�傦
+EI�
�:�\���t��\`n �\�~]u�Rs���yNj.���e��Տ����j.hT"� ���XΈ�?�\^�\�TA!GR�\ @�N������� 1dAh����ry���;=�Y���y��
c�e�?���$��ޣ��6;o��G��������>|��O�����~�����^^��j�a
�N%H�P�䚌�[x�0��
+r�b�O��C�d���������Tha�Հ�4�%��b��Þ'H
>�~�����
=լ;���R���Mт�o��-�
�j�� ��}��
+H�b�
�
`-4)�0)K]�
�^�-��Ѝ��h�A�pqH*�hE�F7[��
J��\���`����7�6���XK�ޠ� �P���4��N�+Vg�r(���00�8yE�����
!���N
+�9
� /N�,����v��<ү
T�Яɕ�+�jС�*�x��ۏ�{�2�܇�a�T���O-�P�y���п�n}�?<γ=��
u�$�zv�-�$���0��� =��
R���T!��)!y
�O�e%�A�ZZʉ�#h�X��;��
+?�L�;*ڙ�
��K���t���WB�{TvJ5�#᱅������ʇ�:k���i_�����d�c��43���Fn�vH�w$�P]e?�v�A��|G ��)Gߑ�z��[ߑ���uh���;�C�C�+����������э��.���ؑ׳�
��۽��t���Uj���퐖}`:�{p�
�[s�F�:L�|�A!��[�R���^� ��F���`:��
YJT����t��j^�"���F
�б��b�;�3�� ��Mg9���`�p;mm�; �����,����%��5'D,;�3=���c���{t�EN��z�6z[��Ɖ
ؽ��:~�;�JH�
+�?��5�"���i4t�WST���O|�/�:��bwߑ�!� �i��\��hBY���3QVf1�=���9I�
+� I�U';4�El9�/
9
��@����3E���+}�٧�O�RdX2Ĝ�L�E��ixS]�*�
UFr��Ĺ�ۘvJas(c
+gDh
� {����S
�ڀ�`d�U<�{��:�?��ň�Q�HVGP�:h^��n��1��Q�P�ć�Ԣ���mD
���Z�Pg����bcK�R��y�
u�VZ��e�n������
Ǖ$
JάD�;�/-�Tz�����4R~5���D��-���ט�z(�m�S��<��w�[H�W�'����5L�]d1�
!�
�(Pe�m�
�Y���i�
���@���ʦ�*�m�� �V��$�ŧ�����'���.$~.�D��"�(��%�.������&�^]E��b,>����+��~Z����5\����
'�]A�A�
Bj����CmEb
jϪ�mmn'ja�n�B1jG�Q����u{ 2�q1"���H1 r8l�)e_aY��.e�����h�H�oʎ��\"z�A���&<h5��=(Ԩ
F1I�e)x�LP��d�
+�Z�YSe�TU���Ն�UƶH�2ȅ|��{�a��;V>� ��Y�V^����xl[
p��$W��`��%sW����r���~�8�r��v�N�����-
���r"�)��f
hN���r[�F����r��Y��, ��j�M'7�#Ti���7D�
4�ڽ?�Kq\4F��z �;�V�~�=�yK� {�Ψ��l#�ݜ��w��
]D� cw*y.A�w���R�������s�F�zP��XD�*dH�:� �P�WϋZ���]��
p��u<�ݝ��P��G���|t��5*V���¢��0�n�=!��`��C���6�Y��oC���%,YW�_� !>��r���Ū�9PrJ�8&�@��^�i�?���s��ޢ�4��ݼ#-
���R����@fm[��?Ձ��6Q�Ǻ�e���u��c}�O[���2P�{�^�f��C�f_��h�v�l�[>�g�n�͠W�g���(}�
����iE
��ȥ�~1�^�4V��Ɠ\:�����
��
S��';�h0��a��c`���[�m1|�I�
�e5ѐܮ��JϷ���0������%�$��&�˘�c7
,��F�;�@�FC"��
�+����yc
��>?X�}
ih�Slʹ
�@7.�HX ���?�
2`;R�:��
�gP0Z�g�G��f3�
5ؑ M
��<����IB�cn�ݍ��0u�%��n
+�3�Js#CaWt' {�1��� +�F
���}A��@����
+�w��Vo�ǃB��ԫ��� =����o�4Td��@�Wd3�1ʏ\��؆o���
Fo�Z
e\U
F(q"�#Lj�_��2���z~�@>��k8<���+`�>�Yy�������5v|�#fj�c)R.}x�8�;�T|X��L� /�<�)o':�.cŽN
���[���=�pay. �����v/v[��*����q� �Z�z���X�(/|�˒>r�Ƕ���{���M|����
+3D�`@a|
S&������qe�
7F�m&�� ��7���
1��7�/ɑ�Y��Ct%�� c��b�CG$L�W=V����r��j��"����z��I�q(hO,b[��zL��#dzC
+��W��[���i^(|��@
��LS,P�QA�:m]��VR߀*맢x�>)�<�Sht�6A�'�(�>s�c�z����v��(\W!E��\)��%M���)F�E2��ZG�W[Eŵ(+r��[!���+�� ���,������(Q�}�����E�!�<�&�֨$��P%:��*#R7deN�s+���=G���a/DJG&�R?��P�HF��Ho��gv�H�+�NJsU#K��<0rf��2�VL;K�� T�NF��y՚T�Ofgf�4U����4��U6R��Җ�nV~S�r�2�3YZ�u%Ue�+�*�_��"(�+_B��p7")\�%��y�첼%���l��%e��R)�]}/���)�
~�����SV^��2�r
��^f
�ި�䰪��z�*?�
�%
+�&g-C��p��-̳�sᠫ/l��}������V�A4k�!��V�����؊l�
���V�DPnES�a�<0�3y����F��S���
+�mD��һg�g��|x%f�O9�[z
+�镕@�^�j��#��Z���&���^ex��
�N��;&4v� jǀ]]��u���;�
+�m6���m�Qh�e�a�2w����b�_V\��k�쉿���8*��O�Nů��W>f:���=���������q�d��Ҁ��'پ
> =�2R�B�� F��2��Ӂq�y��~zy���sBl=W����EԮ/I�m
�[/<ޏ��ٓ'��?8�¼�8,�����M�1'D�>hVW�7���1����m՛F.
R��t\��u*1��)퐣П]� �}?O�yr$=�
�5�w
����
��Bh���Z
S�O
+�\ɳ�+�dz�oq�U��,
����n���a��"/FL�2н�n��
+
ׂ�3m�� wx�p��
�4LT���8�d'wHc+��] cXv41�:
�}m��+F���K���@�+�
&���`5ǥ�9/>���.E�����
�@��ɊH�W j�^����}��
�]�lM
]E�BBok��έ�(��F<F�r�N��lӭ���4.�
)�~�<���>�N���:�H�w�7}���t�Y%|o\����������x����W��������r1�PR�f"%+^�n�h����1m�5\6U����o`:Y|,�G�M���g��g�����y�
�,ׄ�ls
L��\�����|.j19�2�,�e2f�K�˚˩�'����)z�c�yc�Ο[E���1;�i6w�̄X�.�D�ٖ��
+C��F�Ѱ^悸
U
��"ʁ0
�
t<T
l�ӂˎO��̖-��@�ͽ9 at kz\X�Y�rXe=zo�ƪ��<f7�(rw�쁭\%u
�T�
+#b;�YN�o�m;�Λ
"���� <�ş�h:�`�!&
�l��,ڀ4Fc$�ކKNNu�
y�8vk"��-GN+!Dқ���O)�
+c��g�9��#�q�~�P E��BG��m��8�!�
�^g�ǜ{
73f����K
�~��ދ���J��Īl�Il�}�;Ǿ|����
��{�v������t`X+��-�g��Wt� ����Ǜq-��Ed&^<b
�){��
���p�˓��Ͽ?`(�~ $�Qٹ_��R�>����@��?,�3
��4b
[ >��T��
a ��O�l���
�M�a���t�2�=V��#*(�� ��d��H
s�1��3�8��
����I;0#�[�>�LN�~��
���:/?ُ�
�v>� n����l��/!(�zQ��Ww:��F2�
+ �L�� ,�vud'�:Dw Uq�y�VoSi)%� � V�
�!U�#�s
���"v�
�����9ɢ[%2��븘
y��F�ߌ��s2o &o�S�r=}zl����7?�x���/��3� Ɵ���7SZ���\x�f"*���D��ɰ���kl��<������x>4����1=�~�nYc4d��S��*���Vwf�C����n]�~���lJ@ W� ���a-V;�GP��$
x�W�r�}��Q~i�4jG>Δ"��T��6�ӾxWo�5
ͧ�
�a�k�ڟ���.��k|��9=������#g�c
+��ٴlq�n�
� IT�}.��^�4L��-���g
+������Bl������g
+�����=����
?����<�x$�������iGjФ˚���ɃjM��œkP��~>�$�$&�
k��C57%��F{(��Mǘ% �mӢt�\�cQ��IxE,J�s�sQ��~�,J8pi��(aW�@�%�{�`�E��8V.J�C�sQb�x?���v1�(!J
D�IL+R���Ic�6��I�0s�I�o�{,L�
-Z����������z5�s]2
+�N\�q8a�s'@�{��
VQ��
��~��K����_x]����nY�m
+խ
_
�A���T�8`Ӆ�7�o��a�M����l�
+%��]}���
�!&A��ʬt9
c}T�
+t��P�E$
�c
�d;��pxD�&+�(��
u�@��`��H>*w�]�L d�*6HY��ec��Z� A�h
+�8ćM~�X��ځ���+�X���P�@�Ê��G����Rzx��;�?�4B6����0d�.�#�T�d4Ծ�iW�&]@9�k
M��>k,
}N��
�y����Sm� �Fhw���zTt�W�ޢ'�m�P��B��s��`�
�-h�B�����{1�\
��S�[� ��u�{�-*��ܓ�=�ڛ~��:+n��w����9��
(��'u����g����@/�@h ^�!�|�9�
>H��b�~�־
+Qr��DgLUT�Q��*������>���u<3����ӚMMq��\ÚfttF���CM{�/���$��45Hy��V����Gj�ǘ��^I1Q��
+
�hō���n��
�'�����}�Xql�F]/No
b���b�~Ï����K!<<!������2M l�j���8��8wIY����\"���W�٭C��퇻�ޠ���
1�>Q�wy� <Ry�F�D�'Tb���
/�Y]]n��D kd�c�G
+���(�u�C�$6���,��7�k����O����Ϸ���i�j�=��qdbOF��U�ɬ�8���'�/�ў�S���-:sx�eC�@ ��ڐ!p�.����3]�2�#�Q�
��z�}C�4k�놌
9�"d;2t�N"�bG��|ʎ
Q�
�*���3NX���ج�����W�iGƟڋ�
�4��H�wd���ڑWF^�|G���]mّ!�w�c�
y�$
�_ߑ_������\��c�f;���z:c���c�f}�
y��9�4 ���a�����*ŀ��.
j�k�l�F����2}�!���v �9��=Zl�����I
����^�Ѿ� ̹�~<��{�Ǩ��?�؏" �*�~< �2�>ߏ��b�e?���7O*s?f�
�������~�z�vm��{ޏ�YA�X�ǃ���r?f�в)��
2ڔH�[��h?�+,{2.s�
���"��m�P6��|G/z at F[2
����[2��w�[2އ˾��<PH��Ƨ-���|@ڒ�d�Ll��4��ꖌ���bKF�6ڒOs��yK�;�4El��
���v����;��<z5xǐ>Ҽ
+�1Ɏ���w�TH#1�w��Q�1���Q�ݱ�'
+ݱ
�d��Cw�ҦM�;�q�i#tq�s=Z����~�
�!CtlQä�
.�ĻT���+��
NϦ�����{
+ݱ� ��
+���}Q �Cw�U�r�НI<,S�c�_V�<t��z#v���+|}��;v��wV���?�w�ߌ~�[^!
]�w�s}�d��N�S�s_C\��{��}��Ӛ~?�1�`� p`�g��~Q
\9� %^0
���N������U:�Q�[�\
x�5�\��1�pr��c�`ur��`Ӌ��v�fU}\�����ro�� �2�^]\d+X�)�r���M+����+�vrqyz���q�����"�O)��qɪ
��9#e�l�w:.Ү�X'��
���r��.����K7�DžT�>�%'���9���|y��>�"'lKkG '�<�Ncʝ\��ogtK�Ʌ�
(����=��י;�["���2���lq�q3�,�k��
H�M4�ݬ�oj��'
L�C��
�o�=p"�2I$���9T�����t�����җ�;��P�f��ՌZ|V;2���ŕ���Y�"�\@�cц���Z++&�T���;�=S�~Y��$����WS.�/a�>A�6R (�g�t���;Ox@���5����~^���
@��E!��J�����( �K͌�a9Y�d
�߮�����h.v
����P[���gC�
�� �^�-J�
+O�w�)�f�����9ͨ
A�����!Bm�03�� p3C�h:��
�+���s�wbY�e�r��}aB�ζZ���}�
��oZ�mv�x �c�h~4k?����7-v�#��P���#��
�2�P�T��)T>�i ��#Ra?�aX�hY ���bt�8�K���G�-��7h�eu9!��?,��j��������Y�W�'A��V(�mg>
"� q��
+6:"�����ځ���k�*{¹
�����0c ��'F`�Q�+�"�Gw3���
koW��x���t/Ħ�B��F!s
+�q�Վa9�4���ڛYd�����#a-�}�s F��"5�uW'Qδ!��f�
��Ӣ��ڙ
1��-�W�*G3�8_2��Y�7��=�K��
+ �̪)�<���x�u�7�J
+�
���_��e�'C��h)�$<�(���$��$A���#7�w�������!�%��@ͥ]�gl�1
D������!��#�b�.�^3�]4ɧ���_Z���:�Xz�"�{��Y,ޙ�
��a?�J���b��h -+
�3�Q)��wN�]��]$�ckg���Q��m��A�4RRú4���9]<R�+���]��N�c���(
�v9��>Zh�$�w0ܑ��Da���nk������rv at bk�̢
+AXP5��D�
�pu��q�1�i�ڪ⟁�۷��P��T|W����S�
�l{�)/�=�fJAU
_<�~4П�Ҁ��k=�\B�j� ���!3LSף�=dǞ
�zzX\�q!\eD���Z.a���HK*��8�e�Ł*��H�
��{����_]�{(p�bվ����c�
+$�d�7�A��`�k��~��Q3�{[�|�O@~
vGl�xՆ����*���
��*la�wfD�5�
3Kel�9P�
�р`�N�q����M�0 at F��e���� o��f��e��t%]9l(�������؈��k
��>Ξ0�P��LP5��a%�i�?�ח�"
+��Q�/��u�*��}JG�UՐ�5w�ŋ��# ���v]��|Fp�aZ��,��I�8& ��j��0�d���'�R
eF����ψ?!��E
+�ױB� .xuO�
������F�����!���k&�^�3��2�e
(\��au��5*jG@�
V#t|VǏ�����C�D7涼H���gw3
��2��+�J�f����/"
�L�����.Xάp�����'�@�b�4ű9!�0�Ͽ�ۏ����E
��O�$��B���7 �mV�Wŷ������'��p���&�/�O1��u_�%V��K���X��Jx�'X�!�{ED����V}���J{; S �Mc+i��=�2��H:;��m����
����zy�5�ԉ�`E��ᮼa�X�����
+�zz��5���1�.��}�r띡�m�
��
.��`_̙�
x�jJ!.�G�iw�[ƛ���XOu�j���㚾
+(f
k����y�y�yX�D�d����""�]�[}��p&��MS����L� s��� �
+ZH��a�h��U$
AKe�W�ӣ
���G
�
��K��b�H�i��F�9��ȩ�V���
Ì1�su�(���3v-�(�`��T�@._{��a����fsXL�GxڳX�&]nn���k�C{ׁ�Z�$�!7��P!�wZ/���cFK�3������n
��!������Fܘp�a:0��3S?)G�5[��
���:���sz�HX?p5w��I(�8�[
�*;�.��C��ar�[b�T�3�T�
+3���2'��i�e�fĈU?�qɉ��`Y��_�R��������}��1Y����5Y��SΕ�ځnJwl/�;����u9�*� �Ѳ;�P��O\&>>I�L��$Uȅ�����/�
����<��!z'O��
�{y3=2�r{���ģ��y`uZ�C�Ŝ@'��0o����N^�-�1��O
o�R]^��8��3�[��cr*���Mey�}��
�C�/
��#�
+�
+ٞ�w1e���f���lg�����箳��X�i��¶��j��Pr�S�F�$7�}���3�Zl����h��A�R��Ň
� L���z�yY�G9�,@�c��fª5
�kQlE
��,����
塜<O
�ߋQ]WĎ��#��G�)�a���+[��|%˷��댸[����ij(�W���}�j�tT��ZE5����pe�R/J�O}s��֏S�T}�
+��K��l]���C1^-.
+�UHQc-W�,kIS�,}
+Uk�T8[˨��u�����e�еv+�^y��c3P�>����kc�Xځ�0�Ved
�*hGS�A��u{T&C���
��FV�n�J�h�V�E;|�f�)�ò�֑]��O5@�(
+K%�I�#�왆�>�
�L�Ht=L�H�������6%ת��,\X���sc13zŨ�̟�Oe�@U���n<�
+�n�Mae-�ɜ�Ͱ�3�w�Jg;=s�a�g�5l~�g�s�D��%{�i(+\<e��(�
�M$��
� ��2�
�Tf���I��ДH���{�����W����
3�_\�<0|�,5�
�c�e�g�Bx�Y�P��}��y
ܗ�7�2��Q��A�ȶ���f�{I�3"0�z�}F ;D
+�pc
J(
�
���Whq��܈k@��
+G@l�怌���
����"���U}��K
�<Y�p�W#��^^D�t=�|�n7�L�H"�GWBV��#���!�_��J�,_lD���G�����.��D���~
_:��@�������z?�݄�Q���&F|:-V"��Ӂ{�}
+W���#B=��偗�$y��;]~�_�(~u:.oಀ�����f^�֬IE2(���1�M6^�2�)���n8�S���0F��6�)G�'?�lã{s�j[�e�j�:;f+�K�.С���u������( ȍ��
��Ԓ�c]��S�
FBc ������g�DS*
6�o,Df<"�y�Ϡ<Y̲��2
��t`ނO��{}��>���}��:
yc#t{
r.&��Ȩ��g�
�d:S��O~*�)O�fz�
�3�qv�����
����\/��3���u������)��"�ck&�|��@W0V(wغ��+ߤ<T���wX�u�z(+eQ�H]��
�'�Ü�H�v�bE�?���: [0���ʧ�G{
_�2�BXg���&�̜�����@��q.t�
"��I43��ٸ���١}_ܖ�
v
ʘb]�+�N�֙ �N"t�I�`��kC?��x�h���*w�E;�
��D<��
��,2&��6/ ��
Q��E|�
�z���У�١˨��w�u�ӭ��^NI���1����@�l8�'
�p yuXU���
r��t�e��g����)�s�
��-��I��Db^
J�=�d/�6G�ͷ
+�ԙ��x��6P�1f�������`�h69�VW$�i�{Xc�.ޞ�%�f��ӗ�s铩?��.N�n at _i�S}�z$���ii�OWk�^���*-H��j����� �˨3I�eL��%�u�������m�ǽ��&�nMX �̴�Y�;��~C{c��P{�:1�ިN�lo,�joT'��Չ���ډ��Fub���tb��1:1^����ډ��Fub��Q�jn��jnT;F47�Cݍ�úՊ��F�X����b��q:0䦢Cݍ�Cݍj�Pw��1��X�1�ޘ��ޘ���X�1��Q�joT3��k3��Ռ�ы��B?��m�/+���C�9x&5��4x�k �摞�;��؊�DFj a�+)4�Z�>�?J
��\�e� B!�E@���
+o�в�}-
�vze�4�pr~f�����6��T¹�sZ|O�E� QW�r� �{��B�y~�jN�M��F� ň�i� �;A�&e���M�$� ϖ,
l��5+��h��w���c���K �hӼ!�T����C�F�~�� ��r�q�I�}[X�3�-���~��)t@�F
�/"@�x�����/����S�����R��X��+V*�Ċ%���bI!E+V(�h�r���\I!E˕Rb�J���\I!%�+)�h��BJ]�����*5R|�J���^�DJ�W)��UJ���*%Rb�J��X�R#��W)��U���z�*)e�J��X�R'%֫����Z�s��'���Fʪ��^u
")�c\���/gp�$��o
RŨ,)�V����W�kվ>�Q���C
ek�V��Ϛ��q��jqU��
u�F�
u�F�
�C5"d���
�$�Ҕ""�)"�)"�ш�Nш�Nш�~�F�u�F
)~�hD�P?D#B�:E#B�z
+�{Aa���D#$B-��PW��PK5B*�R�(��[.4ߠB��_#��:�����ц<%]�o8��
��" _J��Rԟ����]/������{��[ٕ݉}���_�
4�g���>I�Ǵ�~���V�0
+���棆Œ,�����p
0�L�ؘL83�����
�ٿ����{Y��$5yYwz�"��ϵ�{��=��JɈ��1�4�e�'C�D�[�N
+���k*/� ��'6>�/��@�"��CV� �[a��q�pl _.��MQ��S��#;�x�|�Q�I�I� t)!�4����Dߟ�&X�O`�,T�B�����$B��&G���]��O��:!E1��@���O�4�O�8���b(��4i�I�O$��\_���\��;'���>*�g����I�m��D�g�T�c�`K�-�
���l�"^�M2�������T �Dyw��
+6���cΓ)���[;C���h>�!�M�p�`�;_�a�m��۶~e�۫7�N�_>=��[�-3d�]|��L���/e��5�
+�(}9R>!�DS�A,9T,�� [�j!-2 :e��o
LI�
J�A�/d����o)�����O)��]"��O�,��!U�ç5�clBc��NєT���
�O+�
�$;J�lұ�x�8y�9��iF�+�L����T��zV�(b�����Y'�1�J��I�>Ej�����m�5I�I4}B�aL���z���~��U�w�B�^���H����RTXuh�Y��o�
���$'<�2��B�
O/pB�xx���}|WG�k�=V��q���7[i
�WN*��"��
%%�
��
��tC�n�
�Lϑ1D둶I�E
��)�0�Rt�:�͠
$�z��@�w�b���c%���1C����#���(#)f��{�Y��%�y��Bo�a`�
(�@D�M�Hz2�5̜b����&�S�G0��v^!
���<��Ϙ�l��I,�M�\�j�u;����>�c�'�<�;"'nK�A�D^$�JI=Ախ%����0R���ђ����4> :
�x�����S�J7(;p��D��H���0�7^��X(4���/۽�D�@ܗ
+�U�,R�,:��da�
�v(9
k���Tj at O����Ғج̅E8
������
��6,�AOZ"�J�uv�O xm�'z���$B;s���,���r'�D�}���n�L�8�+o r�T�c*�A"I�<��Y
d�
š���G��.o���Ȅ&G8 �
�G�dHle����
|�p���K�P�Q>S�����
Sd���B� ��'���+jn`�ot/9�n
9Ŝ&���c��,��2�_��$?2����?��ZH&
D8��N+ѢH7���O3���,U�����)�ZDI�W�B�z,��d�^��ϑuxS}4smP ��(TJ��ؠX*�~S�6���w.Z>2̀���^��&>
�](�����
� ���
�F�O�F�r*%n�S ��dp$�(/t�Eq����!^r%��-t����<�1]��Z��
��Rz �)�#;�f�͂/��D(S��J�4S����K���
Bi*�a���.m���hM��E^A��TZ�Ϸp�G���vd�Q�t�@\����k`�
ϱC]��FH��dԨ��6�?���3��G5�MT��m �����*�ڦ �B�u�`փKyaᡣ/� �����Yx��T��
l�#�W
C)�,��
�(�l
+^���P8gh��c�
�s�|�u�M(�9�1U���f9P!�H��9d�P����b�o�����"�r�k�;3���A�;l���aB``qy�Q�[ �`���:ECѦ��'
+�W %�
�h(�$��im�{��E�l�Xr�
�}�|WeN���(\����Qx7�\D`c=HU�7�GQb�J�X��Q����͡,rEd3�)��gC�!�n�b�ڹ��I�de���,W7Ȝ�ؤtL
� �2�9�8�y5ɤM�K�����
�<�Z9T��d&$�Q��\�B�9�a�Ή�5I
�N�;��|��LL�CZ��������ˑ�]TA�N/� ](EN �НK�n�
��
q�֮�0�`�
9��$�X�"�\�Z$o7H咹��R�J�#6
���'9���t�Kݫ�r��v��L�TR�<1UVdה�3��Ԟ�Gm1�jG��2��("�eA�*�"��c�NE�5�k�JTtw���%Tݯh�d�k" h�DZ+V5A�ȓ��(i��LeE���j��]t�������B�&�
� ǡ�edϝ�e%gVBmb-�)A
r�[[���a
+���N�A-��i2Hp:Җ�����Z<��H�⼸�o'�^z� ���QI�����s$Q���=���U��X�:� G����'��4'�oӮ�Az�.n�F�(]�(���&ѻ:��U�V��f.�k�A��'B1�8����#�.-;�9ե#@M[�!JEu�6���
,��q�9�.EL��6�z�;��Fv.Q�vSxRn;����-��.Q��EC�}C���NO�#2�irk#
���
�mJ�Gj��~�֑� ���l����yWڎ
�A&;�*)RC�Q����6�Hr)���ԨI4J&)�����b��M�NoJt/��e�A�e�
��*y��t5y^�
/��1
+��S���Q��j�:�F���5� �,h�Ë$����Ӕ��
�
�$d٘,-�Iubđ
V��ʱ
r�̓X����l E�O P�c^�8�?�=�9& �M"�Dn��
+1�p��TЉ$S
a���� Q�4r]T�BT3唛����^��pi|#�{&��P�P?D6F�
��!ES7�\�GD�]79��ٙ0�)B����I��_�5�����0_��Dn�� �����!h�3�����7�H�w�`N��],��T�h���
Q܄*��{w��)�m���ץ�8U9"
+hY*�(&��%�K5��~"���#��+UB�1�S�p̾,թh!z�T�o�gT7��֊hQ��O�*(���V��E�&H}����H
����[�~��X
��$d��J4�r�T����0�ɶ�
��S�=�ʜ�`O*4ҞiSM�FH�C����O�oM��
�FqDUD�6 d ض�� R����ʀ�e����N����63b��p&f�0<uY�7T�I�� �Q
l�S�M_�Zv�+P��ٞ�-iao���A
S��Ԃ�p�j��G�氎
j7[@#5�u|S#\GI��-ச�
���g��l���b�D�Vfoԋ�f���T�e��bߴ{nv�9=0���
3�i1������r����wN��4l����F<��<%�f�6Bl&k��f۞�t3��7C�1��9���;�Q��OըL������,�
sNh
c��e�LU�
�W��M�g�3r��BM0PWJ
�� e�s��#��Y��6
�2���������J
Q��:��tf^����.����K[�
��օLs̙ j
���*�>�l�إ_q΅ds.�0mH���r&��G��w�z��o�ѹ*`~TS�ժJ��d纇�nEC1ﮩ0���:�.6�H=ʦ4��y�\���t0sb��f��.gNq���qnj�y���co(J���M
5��\[5߿i�=>@�
H0S�QM�+d�&M� Τ�6Qbڌ�N�)v8���#��U�G�<W<�Y���9��b
���A���*����;��<��d*�-F
.]
��X1�u�˱i���������کY�w��Q
4'���
�/@�=\��V�v��j9��6�0��UK���٪�f&-;T�|��W��r�
���p����qP
+ʦ�۷�]u䪌b�,iat̞"
��
E�ť���6E�k2��-
Vo�bp�XW��
T [�T�
�N��鏼������� H2jU���th��8���Fu
$S�A+ڍ�!2��x��/����!H�J�����^}JB�X�P���ZX���>�� ��0�}ϥruG��_��H� ��p�E%P�
+����
����Lo�hc�^�hS�9 �OZ�xim+�@v�=H�s�q'@5uA�&�����`Ҏ��$��x'S�C
+_��y�N��(��z���i�ÕIC[�u��Ǝ/)�kv��k9�E���8ۄ��v�g����B-*��T~������o�fG��r�gg�����
�!�H^|��ݨ`FqZ(���L�
+��$��"���I�#�0�si�e�O#����L�n�o��Ja
ꂄ���9�l �B8zt�08'�.-�:LvbY�*��U�w�
�|�(�'��P��b�l�$E�qq�P
�_g�2g��=C�*�9�\�)O�30�49'J���}�XϽi���xG
��
�(_�N�
/V����J�� Zg�G̀>*�f4�M�hg�G+y�t���Jg̽o bÑ*��y�E���
Zܲ��9���P��b0�D����!��ѓ)���
�rsi�D919$l�C�����H�#W��.�����8��=�م��j�Jg�7��7ta�v�mG�ۮ]�o�;#2vRJ��'j4KO�Ț!��b�EF(
ݖ��"�%��ƫ��0���~Axx�?T`��uW
�+VǁZ�/�b��6��Z���Hl��VS���I (�eQ��Ѹ��'/R���U��(����$|9P��"�7_w��Z�8R�98Yհ�-�b�N��̑ٞ!`\� ��g����1F�
��w��To%�����:C
M�
+oB9zc��C�����Tj�)�<ᎌ2F��
G5���ΜT���C;����v�E�*�c�+T�k����x���
+��4p�~��
��
+k!jPx�&d��U�ӊ�E���V)��I���9LI
F(�š�
�-
+�"l- /X!���|��9�TZR�#�b������`��pv��� �'u�Ϻa(?'�A{A����=�y{P�
��
�b�%*�z���Z��E�AB�&�<QE|�|��ĕ]9vEh
��E��j�ڑ����|)OF\~3��֨D��`���� �����A&~�
�+���z�@u})tA�������&�Q,S�=+�YNR�1g�qf|�)����I"��`c,�T
��~���Ɠ�bD6�FsH�I�l$T��"}轳E
8�T�>*�h��
8:ܵ�օ!ZI
��&KZ�xYބ_�]'ȧT�f�ۈ��WVę�� ������{
_2��
�4�#iWg�*����J)aQ��x/qd�K^o��<( d!D 1����u�dzr�
4��Ui)Ҭ�rʲ�l�BjD���(R�0�2N
+'_��XtG���N��
+h'�]6�@��yZ&�(�^M��*ď�Y���Ԟ�
+ui� :E���2�}�( G���e3Dߏ8H\���}��w6I�#�+���E��̎3iX�c��J�x�ɨ�5M�gG ��f� @�8�-��4Y*�I�:}}�P�
���J�m0DcX?����F�I�Y�~��N��w�h�0�����0��o�;_���m�]۴~[f�k�ʎ�_==��;ڥ�[�������-��ϏonN�/�����_�>;=�9}
+��H�&�������F�&�������5�s�a�s�W�>rtu��N�ҥ�)�Ͼv����'��M>���x�m������g�'g�?��wTZZ�����>ۼ�)� ���@�m��-�Ϟ�|r�l�N?�yrv���W�z�M����g��=���g���[�6����d'oo�˫g��t���u��ӳ�?Y{�W�:�[qHys<{��ϟ�ފ�?h�������O�$ �������g�7��������m������O���*����?���������=�������o
{|��[/����������>ۋ{?���?
���/>���o헊��P\J���|u���4
+qDp��W���[zm�K����f����<�£u\D�瀲��;�h>*�w�Կ�h�OMh�j��*|i@�
�<�J褏�aa0�+����j��+���Y
:Fvb,��š���!.
q+��ӆnڮ�
n ��)'TȀ��"
=d�\�w�,�
�һm^��/
<�OGH�����^�}yPR�
+
+���
�'��Z�[Z�<��HX�
��*:�����n����k��f:��,��P�p���V`u���d�@��0�HvQ�
+�o�=G|�M$d`�%&T�#'b�9��\�` =�H��˖
����`Bi���0`��\R��4�P�)$���Ԓ^�
�|U�a��e�t�Q&�Xf"���dt%G:��P����
��
�xm�3���zv��͡���z5\&�3�^
����,��p�)<1
+�% ��y�Ѐ�͕'�'�x�c�x�Z
��H!5��`E�6����9����
(�H˱PK�RQ;>U���� ��L��Y��x^��BuUz!D1pH.��g��=D~��z(�Pxō:�C�& E�
�"��Kf�@E�No@�pU����3w
�ƨ� k���P��a뉂�!{�H0'�ȑ=w�J�"�
�^�`� ���t�����[���S����E��X���/�ST(�h5%d�9���nMC��vC
�R�-�r61y�Y�ΰ�cl��uE@}�J�#�|�%�]Gփ�ҸT�� =$3��
�9yc )e4ጘ&
+�q�Q�#o��\)zaH�F���rN��G��b
+��
c����_a��sRVu�K
L�
�1��� �)�ރ^�w�I��?�����g>F��1(�H���\���ة~�0ͬf���P��\�m�
���W"K7�{.I�%a�E���lS1;�@\�;
�|�$�tX
j
-��*��V�{��!��{yO춛
�
+$_�ҫ�X��iy���^3Gؽ>z���CO�!H�����l����l]Y�]
z�a��V�l����������n"O��M7�y5|>�R�64|�LU�CO�!H&Y1�>z��.���gCO��!�Df_
�
����,�9IQ[y^$'ty7�(q�M��9O�`��NjS��G
��&J�
M?_ ��o!,�)e�:�������/���@��ЀR[��|�p�q��@�gh
��,=�TUo�61noy��a������+y�HGE��#������#2S�n��Ȇ�
��i�:����
+�
=�m$o
Z� �S�ݡN�P
M�v�d*�0҃R*<����\u��tN�Y��s�1d��r%/�V�E�� �*��up��у�Ix�e��^�U��
J�
<'�0����}��؍~T`V��*�
\��BϱR t�}Ձ�WNoޑ����O���j;@��|�#��Q�I@�w��(�C�"� ȴ��%�7��m�s�C�����rn��i'
+���������
+�
���D�e��r�K=Oh�RƘ�M��A}%�
�����.�m�%ȭw�cȤ1DI���^qAb^����ܦ�.6�PS�G���
E���<b��Wt]x�5� ^�AfA��943i����9
NȔ�T8n�LQ�X���7%&%Vm���5y!kc�ɠ�=�&R�S�[9b�L����8����)<��{u5ɞSL� �L�Iy�
sn
�r�ӓ��
*�(��
��ʹM��0�M;��
�x�L�u�n���ډCZ�m��w0�A
cJ
�F���5��
Jۇ:|��N���OTZ1;�������
�
'��J��nl���A��,����'����L!����
(��D�C� O�pԀd�QfB� @\c��a��5i��n$��e�d5+pavJ#�?*](<D�7�QfB!c��p|���X�1��k�,1��va��
\U�K?����I3�F�BYa�,�x%#M��v0���s�V��
����ު�M�ܺ�*�� V�6f�8d�2�]6%���`�gv��8�6
Gm,����ƥn�6%�"
?,jD�
���KV?�
��߲#�4�<<�8���HF�&��V$F
*C��ʷG����n,��&%"T���nJ�p_�5
Uh�:�+�p2ٹ����&#�5��(��ȫ����A���Q�6��4� ��!���4����(2E]������L&�e�w3��e,r�C(���Q��#]AQ��m'��ay
�^�@�G�XJD�� ��@g�N�JA�I�A�
�q��;�b���w
�Q��V7����uz�
��[G1�6�&9�@%������
.,͡�k��M*��V���ʢ`3���zYH�z�ܲ�4�Ȳ(�S���0�)�4�J�:B�
��SI7Ɍ��U"!N%@[[��g�Q���nrc�a(�QF�ڸi��1堣�]$�
�*\�I1U��:]�06�
+x�~��܈2� �(Si<�
��ֵr���o�E;��� �CJ*�
p�10
+�o�
��d��+����L�����
֙�3E��g��BIzY��j�h�MYL5�rNק��W��dp��E%C�w�i�|�(�_�*
+-<�AnVL�&���J�r�aq�&#�=8i
�����+ʸ�w�w�
��e��K�H5b&�II�Zo�&�J��
+Yփ�,����9p�
�dUS��XD��_+��
Ơ=8�5�D5t�
6
HF7�\'�k~G.Y�
�T; %r[������ޥ�B��
�G�i��ڏ��
#8h���W8��r��9?A���B`Rf�B5�
+2��ݥ���+9����Y�D��Z7,o��&�C Sy�hW6� �!�*�Y�
ޡ�^��!E��љ���V�L��������E����s�Ŭ=�*<zO
?�j��C|�LݎFD�Ӊ��l�C����:�����r4{,���n*��
Rwh�^.^F?�9{#�U73'#ݣE�hh"�'=kvb���fz�.�ƒگ
+מU���[���Q�M���`zF�3�\���#�m
+�l��t�����]�W�q
++g� �NQ�-�+E�
!��k<�
��4�4�(���sUc��
+��r���1N8
��M}�J�c5}qa
+���Ԁ��I.#
+\���j&~��HyT[*�ݿ��*���X��Ds�m}�K��BM ��j�Ve��x��Z�4U!E��g���VGU!�=ԍä�,r$�{�iHS2��
sa��қ� $m���v�!���8̄�w�X�}��epz
��#�4q��s Ѫ��T�������4p̏q�N���
��s�ȴ@n�y� ��(��;Rx�Da�T���~l����L�3��Px�!�N��z�, |�
�E�jW�l�V�Y�3��g3'R{b�:h1�#5�E& ��P
��=۠��fXB�Ѕ�_)��`]��S~ �SP� �yc�v�Աq�a�>R6-
��ʙ٤Q49!+��.
.&���_�Q�f��Y�E��Z�5�X
��00��h�\�N�뤇X��-�lÉM=p�ؕ��.P=�� ����3'�䘢�eٶQ>V6&���
ۘxX�(���NC�.1�e��
�78�k�
�cf滲g4zvć�
+2���P)�A-�T��%�+k0]=�&p
��pfaQaty�+�N/7�?Q����Q�~�t�*�����ٜI�;���ʛE0���P/c�
�ǔ���PxȦ��� 0�Ar(
+��`B��5
�>gT�-�%�8���I�8�u�V�O}�!�
�K�H�
��j���#�Ю18[�
�
)�b�``��,D��C�^5����kBOQ�u��
t��2;�0� \����+l�
� ���b
+f$G
�7��{Gp���U�9Jj,��ز���-�v��8]U,�q�
������1`QG at Q��p� �f
�/k�����UӦ�何3��xs'
���0xqaW�����ݻ.�C�!X�p��E���
'��u*R�O���A
W�
+TSR����ہy��
BSЭi��n�0���0�����
-9G���(�b5l<"�<A�v�cT�R��'2E
�Y��tzɂ�F����N�BЍ
+Ec[�$�t��dHc1K
0A���0���=D
ۡ�
V�°w,���<�
��i��
p
+]�V
��
+t�2�(��E�$�O�b��]9�.D~:�����!���J=�r
P0�m Ө=�ɛ����V���O@�h�(�q��|jF������U�F�(���*�UN��~��ce����R-ryD�
� '��ZU��Jՙ��Q�\0ǫ��tB+�{N�: бȪ��<�e4�H
+�`��(�
,t���i�M�G
+/��L_}�*���!���*X���hv at T��ƶ�1h�(����V��
+zf�!=+e=����#���ߢ���e� W
(S���H+|���
��N���)XϷ)z��v
x��b>�({����|�2`6��d�2j�Yc�
��ԇ��jeb�̑�)�M�xh8=(�q
-I�e
�����
G�
P"7�%f�&_���H�B�
)\]�%'��H/�R<�^�P�[�zb����R�
+�*8��i�N�3��g�w���Ȍ���1P gSP;�/�z�mTA�9��
Ɔ0Y�O�2ٝ0YU���Df� SN2�ڍm%X�$�l
(�}��y���T�U>���
`��$�6#B��Hn��j�A�7�ʔ�D���Vѣ8�~$��!=@1qr�G�Ҙb/�̪v �b=�I�NSF4���AH|!(1���D ���'JMm�%Ρ
FA�ycK�K�V�
\�ۍ�m�$y��TsX�F�����פT
+Ue'cfe/W�6ƴ�����S�䓢Č����g1)�HwD4�!�&��ؑ$
7�I, ")D�M���0��(���Ȩ~I%��`� � ?9��G��s��#�{q������kU���W����Ћ�����`�:赨�;h�$���~��6V�/�KY��)p%�
�9X]7VE�T��ﲢ)kA�.�{9�<:�u��$iZՙ`;z�3~u����Y4$y
�z�b�F������kHR;k+�p�Io�Y�PSh�vQl
�S�Q�� d�#ɨ")E�
<M�n��$�h�x��9@֢h^�3�
��`�,Jm�-V9|&M���O�D �*�M�ߋ�<Z�<����H���J�-k�$
�P�h
+#Kl�g`̺;�����gr�
��E�H
�tn���H*vu\
\��1h����7�V����!Y�
���)$�J
t�+�srB��T��1�
�fq�[���$�8��@
r�Sv��*��n��
H� 0��(B�z���N�����1�
���Pf����ʡ���R�/���Z�YEG"?
Ը/��h"3�1�V$��qI�^F�~��#�ub��'�,���d1�x��~beJ� ����o�Q�h��:�ņ�D��C��N
�df
/�P�T,2(�-���qZ*>�̏�TQw����Qu��Ff��vy�^40%V"^�JJ�&
+[�b�����8������d�����5��l�J��a*�(�H�Qr���9|ֱ�V2�zB�h�Y at qP�?G
6H�
V��sdQ�+�i5:e�U7
�g
+endstream
endobj
103 0 obj
<</Length 65536>>stream
+T`6��KbI"[� Hʱ
&#�ZK^=9���-f"rQ]�E6�8��
�Y��҃3^�a�յ!x��$:i�
0������؉u*&�%��Kq�
�Y��Q"�ЭS60�Hl��l�l����Qh_�4�#�CHN��=9��L�Gis�~��(�%�bP"ϫ����y����
+���
-\/��YW�(Tf-��4��1q�{&ۋ3:z�f�*����YJ����\�_Ƶ�n�L:�{r�`
G�h�&0#^
�~����/
+Be��Ы�S�mZ���̜�zHEi�Fr�[�^�Z8�
OSE���=��U���,�X,"���Hgvу3c�2����#��z���NmB�v��*�N�k0
"���L��IΫ�Jo�i*cE�`����#Xs�9j�D�Ć��2�EѪ!˼(
�z���U&�
ꁏt)�l.1��"Z�S}�0PMJ�=�1pډ�c�E�h��*�����
x�,=LP�Fԁ��S0Й�A7�ܧ�r���(=&
��;������OU�u�P
̹*;�
c8����r����h�qp�J�
8l�n�32"[I�{�Gb�s��P�
GY��
��W[�em�5C���.C���%ȹk�(����8L�����w4+S
P
+Wc����m"�Kn����D,��&Tג����������ѬL�
��CE�uM��5u\��0ZV>4���)���6Z
J�IļrQ�\��{(��z��h�ԁÐ������QM
������n�5�8Pؓ�ģ�G&�����w,f��QAθa�9�&��^��=*��,���� ��=�`�8U�� �y� o��!k�)ET��R
F�_b4���8��l�%@x�FT.-)��A��}/--����CGj��ۥLJ���X�<?c"s#�+�@8Z� �}��3�d
�P
+
�>p���G��6
"���M�͇�T�mtJ
�=J��A-2�|��d
()��2-Y�J/j�
�궭���I�V���uP���;(Nk
�lGԣ��1��W;��Ź��\���4���5���!L��iT��k0d���va�=��XÑ�V�A�\�=�ܛP�w�X�X6hDv�Ud�!��>X&E�2�
k��OTEPC�b�Y&��sB5����`n��S�c߇ʑ��4�b��:�QS)��zЂ���G��D�C��{M��,�:I
��w2�������?pc����q�K \
�4ΡHv
�{����)��B2;�
&)%��<k�;���r�l|�<���^Q=�Wĝ%�3��i�:���= ҂e4��
d��G
+VO���w à5 4��+=i��4N�J �F� g��`��98�U�X�6�<��OT�D��ЃhLYR#<"t�*E#��6J��^j�,z��0�L�Ӫ)f�z�����H65�O�\gn|(�v���gX�'�b�j��&��>�T�/�Z��a>l�y��Â�/JAC������ i�
'� 4�$�����Ms
+���T��i8egA�� �tj��<�g{
�V;���U!��8[���Tv��l]���f�Aא��G mBtv�R�y���殣��8TRO�s�
��Rz�Y��Z��j���AB����B��tN�-Ѿ��=TR*S�eݬJ�n�}
���k�<
?ht!���O�D�~�4qN����i
Nk� yK�H� �
+8�
���e�'�ޠOj�;�g����18i��ju�ڠ�,L�c�
�V��<f
�&�f�+�)��B�=$��њe��XǓ2�4ƉA_�1o �
+=7�%V
���jG��lʝI�(ll��{��7��TY;lF�ԃ�
-z�}1r5����m��{��wU����I�����<�U���
��䡦�CPx5�?���q=�C����.��G<��h�|�=R�����"c����&����r �:��]�p�Y5�2s���2_���Y��![:��y-��n�܋d!;w�
+��qTEʄ+ܢ�s�ƫB�|�� ���`Iy,ʾ�fU��zN��*L
�d��5����#��C�kbn^��
=
C��}/�M���7�Ę�UaɣU��S�U��$�����8�7�k
���=�`Dކ̍�#�w
��
��q�%�j�`"����z�%�r[�mq��6��1�i���&��j��;�
X��
8�d��dل�;Z�$mNs(��rB��"-"KC�)k��2R�57�e:�v�
+h���fƖ`�ơK��Y�Ƚ�,|`)J:0�&5�Pe���|���F1;8r�
�aӺ
�4���6TづŤI�&��
��\L�
,����W�$%�����$�I⤇�3��/���y���W�D"���ՉBU�I&��ګ�U�Au"�h�FQ]A%zωx�ݪB�b<��^��5��IQ��S��
V����'��s��d=r<�VR5��;�
#߹,��3���E�%��M�����*
�L�'���Ө���
��1-�wbҬ���
:C�S�~ٚ�"G��R��Zq�F7
�$g�M��˅��C�ro���x�ү#3�?�fCԧ�j�
��@�3�&1[�,��y�
��~i�xZ�8��zmJ�pj��0^��R��`�Q{8���=$e3T��H�u蜑e�]����S�=�k!�հU�/ӿ����j�Wj���'v{��$��S6�l�I�
+��&-�[������a��\EK���Q����}��]S0�n�
�NJ=ֈ��8V�:�T�+��"B�9���N_[��FB�2�R��3n
'�r�ָ��1j�*�4bՓ����рb�i@�{uC�=T+)ͤ5���9���M�B�|ӫ�
�j
Gp4�3�
���8:�LpL�� /�NX�`�O�
��
+^�MP�U<G� �=j�-����
+y
8x�tDi�
��p{�Db ��J� �q(�� �
��
V���^�H�!Ou����x�٪-��� ���v��57
c�)
+�T�R��X�q�T�� � % G�tv\�Sz �Ts(�2����O
qˢn�u�(Ǵ�̣�<Rx�KK{&@��)@�3x�h��nbբ��u����qC+��5t���U�pR`�3W��^RQ
���龜b�?���q�{�y�H�-ɂ]?�8����� ��J�/��m�VR"�`����<���8ܘ|�T�+bZ���
:z��*�;)�%�{s��(�@ +��B����Y%3X�9X���!���1�}�N��\��/V� Il{�P,R��{�lRKHy�<
E<"�ìM�+I�MCE��;%
Em-8���')�L����XF��RH�h���ńR�%{:�����=���hNMi�h�2��b�s�p-�tZ�v�G�e87 ��Xy��$q%�~mG��mqWIEe`pNI&��[ZF�}�H��h�G�6RS��P�A�
N&E �A1PV��%SW*�R��j�\L���z%�I��TWw��t
+u-�����kNL���D+O�DT��Z,��Q��mr0<
��1�!D�dbk�`
4a��
�J1��)G)��z�2�G�
�+i�
m��
�������A�Y���ts�F
��N����dL�P���17f�0+�
,��
a҃7�*��z��,�lҳ7
T��F��A��
Q�hܩVY�,k�֘F�!x=
+��
�ل���X�Nh
�$ |b���T&���7��
A�@�^���x����*�b����d
+B�f���¨U�b5�U}�c5+NbOZ����&�KP��Y6K�As_&�
+�:5��F�@�Wz�����J<��3V�0).��)�H��X�TH����ՊJlR��J�M��]hbU�W�e�&Yp^V�/ePk�e����,C��=�oɍg�`��䣐n��쬁�iѵ��(�<�k%���Ë�4��^?�)T��Z����n_�C�-�͟�EXғu�R�5;���ɟ�űE�%4���H�M��&�b^-u�2Y9�4�"K�2.��w���eI���3#>��pq��T�� �&Hi�����ҏJ�)�Rz�����,��P�V���&�k�(�X�� S�����
I���T�*Za�\k֚?d��ҁF��<O�a�
+�Z�I�l�C��#�
� ([(=À��ª�x<b�iPRN��x*��
��0�-=d��5�Y��A��$�����
�:18K�A�zֈ��:����{o���^�:�IFLe&ζ�2�oe�ɬ_.�
�T8��,L[�P}{iZس�W
z�7���p$��r�~E+iYG��6;�*
���m�]jaQ�F���u��@�2V��
�D~�Lb��/��h67qE�r2�Q�Z�o��Ȭ�i
U��El������X}1���jڜ�UH��"qI0�&�q�r�>�
�����pg��_;�NSg"�U�Y�l ���މ�� ��؟sҳ� j��~�k��3E�Y&s��lE������|�氢g��
u��Zf{��v�t6#(���B�H���b%�^2�jl(s��}�
$ ��L�����P�y5� �b�Id+����JV����/�
M�E�FIB�
+���� [����:mzv��43���pNخiQ>�s�U��P�
+����\�"k���ӴQA"�aw�V��~����$���������u�^?H� ,����&&
#���
+��a V,���-\�:r�S
gEm����6���i�Ks��Qؿ:�(.���x��I� ���E���n��A
V�8&m
�������
'o&s�~Uw$�J^ܢW4A����
+�
R�^d-��è
;-���W�O�D�ZD
+=�c
T��Fm\�3l�ŗ1Gbh7�<y�*Rֈ��s��Ncܴ�9iCz<�Q^��О�-F�ǐL߯��.U+�a#��Q�6��+K&h�d2�?��A��
S8��";d���p(�P�I뵰��U$�DF�,�=�'���rbV�
)nNՎܯU�Si]1�Ѳ&�_��-sS�K@U
���^�C����
���^;/M(��20J5ǽ� ������B���O at h�ª<
+��2-[�<�>mo6��*TL�i�
+��M�`�6�T}�"
�>��+��{�!�E�?z��>�R���K]��t��=�JJ��Z�=�
�z��H�s�JV�$n'�I
bԗV����CG>���dAR^���9��YX at _[�@�� +|��U��n��#���h�V���O.�n�j���n��
��p8��X-�ا^�Q
H8+M
�y
E� �t?��t�=hѕ��wB����)t
3�b���
|g
+\҂��cw�O�A��~��<�
+�bo>"aL��$
[���
+��, at gI��uI�N�
�i�S�9j9�B��c�rj�Ӛ���m�ѩ�lDIg�i�C5`�%��l�`a��6�evJ&V,�SN{ۀh������[�~ʷS�5Up8����;���W
.�:*
+�ث����%�#��5��0��I=�#��
��5Q�9
-2�_��m
v��y�/��� �<l�jń8�+�!��G��8�B͈��N��������YɊ��^�F$۪`i��t��
�"�<�Ét0��DL�Ӥ�Z��k�� .e P6���~z!� mXK[F+|�����z�J�⦦$n�nQ��'f9-�*��%B�p-ds8U�R��
���}�
+��cE,��(YX��d�
��������D8��K�N� u�ّ ��j�.Njp���Lʽ�P���Ŧq���/�L�m˽
�
au&�
�`�=�~R`�[�f�
�C���
%������s�4�
�>���ߍ\r�2��
�
�U����KQ"
L���\�����cԪkr�ZY|�}2'���Z�&s��[��!�����S�.�~�¹f
T[9bF����x��{Ф��X�G��ƽog�?\��[���>������_<����77�ח}����9�ۿ��<�8}�G��s�y{�{������
��������o?�I�}�熽����{O�'��-��p��P�]{���T\��x,��Ѭ���I��Qu 6ы�a������v�� ����I�4�g{q�'o���Bj���m��&ݘ����Fz�6����Ig�1�9��㈡p�>{��F�5���j��G�W�'�s�}��٫�����Pd1D�ά�m��{
>�sT-raH�:Y [...]
ڃ�A��nq�
�#?m8��s��m½�����d龼�C����E�5ir֭��d� h2S��EM:�˟�>�+
+�i����-tہ�L�6���dQK;��W
?
x��[y��/ֻ�t+��9Kڠ�-U6�#*2�G��t�p����"~�.>�����p�F
<��-��@�ٮ]��ͧ���oo����T85c�w/��}�O�#�WgV��O�F~y����Gf��f�:ܾϿ��P��YeBFe�v�����)1
+_59�� �8�{��>$�dSĪ
Ԁ"�r{�ء�@��`5�'F
/U� K3���V��/�
Y)/�
ޒ<�����Qk}qmH��mX\<?��xm�k�
����B.��|u�s��ƽ��'@�������g�7g���
�8��/o���g�77�����~xvz�����{��~��'G?�zzJ?����������;���������q�M����7�Ͽ����������6'���?�>��~�{?����n>vJ���?~��������/��/�����^~��^~����}�W�g'���m�ˏ��z|�B:8{ښ�jA������w�[�C۠�w�����~zv�i�����̿Zs�n[�{�RV�d�������gǗ�^{ ����C�f�y|������.��o���]�݅���0|km������On�G&m��mX�ggOo>Ym����v�ៜ�ܼw���i��{W��:�[ۛ��v��}�y���|��}�
��|�
���[����˿}��������mY�͋�_��^����%��nC�&
i�}x���ק��Eێ
.��g��T��:/_\�������
���Z����7g7'w0���<;�d����k���k/������
�m�R�/�$=s��г;��ɒ���^�\�/�O��
+D<���͘&�ײzq}r����g���l��M�w���������NG��;
u���t�{�Qw�
ݙ�����q�ӫ��UK]� ��J��H�SRwJ�NI�)�;%u��.ݯ���Sv�����/���/���_����g���{���o�����>�3��G
�w�
��yh�m}m��6���h��`E(�O�Q#݈jl
)����7�>קO7��[����V�5�m��_�ȷLc����ǧ��mf
o�n�Z'��N�L�1*�.<fOh�yB�q`ߥ��
�hI[�
��p��w&���[
� '�L8�'��Gg��`E;�΄�3�lÑ� ���v\;�΄�xL8i�KÆ��/6 Y�|�3w�n�/���_�/��(��/^~�w/�����ۢ�Ӌ�O�+s\8� ����/�.�_���ɋ����b;��E^�>;?� ����ӳ���N|�J��������Gyr|~�M����Z�<ez�:���B�>��g��˧��]��8�잝
�|����Z��?ҧ����}��������_XS�o��7�����Z���!��m�����
��;~�s��w�k��N����N����k�7����*tǗg����v��[������{�GH�պx����s���P�k�ܖ��G��9�<������o���r�
Y�X��;��'���&;����{���_����H�6XQ�`E�
��볛O.No6`U�˔7U[��%���Fּ�����
�x��y���d
�Dv���g�?T��.V~�ٟ/l�ٿu���ه_�x}{�γ���°��3��gK=�$�·�w6{w��m2�m��h�ͧ�;o�WS�v��;���������N��$�
���W�&j�/h�}�ы秇W�M̸܀�,}x_k�����공|�� ������&N���
��2��gm!�/����M��
1���pvVEQ?vVŝU�>��>�ߙ�δ�v�ŝi��Y'y������w�4{�N��g_��������;קO߹�>��+�ags�w�-�o>=o�mf��|ro������?;�x�I�J���W�?#+��F�D��M·��#�J����7ä�H�ccz�����NO�.y�;J��'��wQ�cs����'�o���鳫���Yn�rg��Y�v���%jg��Y�v���b���0,QbwbK���� ��Dm����D}]�������
S�k���
loD�ǚ��:V��E��'�?�-[R�f�'[R�f�3ڒ"4�hW��!1�:��)��
�'E����gw�8v<yǓ�{E[w��v<�����S'��/o̹��%�
+�mȓ�1�b�������y y���6z���Ӎ�����d�M����M�M������7Xږ�Z�ɒ����/����߾��?{�~��ޮ���'����0W|�5_�S$z,�Q�?�my�~��^���E��������\� "��O6 �}~��F�_�������m{���G���f�zm����z5m����w���ߢ?�G��hQ[b�H��ic��}
+:?�:�E#H���b'�r�N�zP��.����E
vQG��!oβ���"�w<��N䡱��0�� aG�~!�[wH�ذ-�
sl�&�ۮذ7���G
�c�����������?r����ݼ�������U���u�܆�4>�w�x���ק��Eێ
n��g��Ժ�:/_\������MJ,M���^^�svsr'�E���/��7Y���Z*��cש�&�y����S��ƹ��ٖ�ɯe�ک�;�t����ӝzz����*�cWO?�>nZ��O��6(�]
+���#ۭ���Ν~��Ow��N?��;�t����
+�
�~���v��C�O�ݣ�P7Z�����?��?���~��Τ��ܹ+
"Z��R<��ᖽ�����UD��/X;�����f*�Q��5J�l/%���/�_]=�j/�����=]=;>9����6��oW��
�ܶ�������(��������
�7l'�<4����W�
>fB�(J����O��כ6�����}�u����<�>]��w�d�"n����vz�=>��m
p�g�����M~�q��Yꖾ�}����C{���LC
C�7C�|�d�G)���_�~�B������;m���|�+��)�<r������mw�
+�l�Q�I~mqy[�$opF[R$y��$?$Ƽ��|k��㎣�I�������
v<>��z�����E-��X؎%�}"���(���>O{�~�c=�ot2ی-��@��Y㷃
�9Ź7p�犯�2x�!T?[�2��ˏ����q�n�::��
�� �[��A�^;���}��[t��;��}������'2����5��æ2�YR{#1�%����=��9���|���ZѶ���]Y��eq?��\��$
�_p��p~��
����P�mpx�|ʬ?����:�m���Z�M�w$^����r�
7�����]?�C;���78�m2����]F�
���r;�螉�_\��b�����Ã�7�Y���
&>HLtoI|�!��~�<�_^_>�h�wr
��x�f��ͣ���k���$��>$�g�yőQ�����
���&J�"z��d
�D
�zx ����?���zrG�bݘ;�x{�T����O�^l �k���ǧ�w^�7T\�.�|u�쓫����Q�ף�yGe}��Ď*��* [...]
���L�zzv~�A}�핳
gH��M��ଶ�b��I�;�����s����N����v��'nI��K-�p�G ��<���-�۟���Fm�|[B*�
$��.�~
ҮVԫ�
@��G�1��Ҷ��=��W�欑@7�X����x�5�͏�c�Alض��
7#}��_Z�x����������'ؖ����ޑm8���j���g������ΏON/N/o~r�l�y�#.���6�-��f?���m�� y�f��9r���K�2=�T��䀶�:�o$ٶ����_O��~���xh�����?[�
���]y�
q��ۀ�]_]l�*j}_�Z�o�6>��oE�W��#���ɋ�w�dL7��y}JJ���|������MVi_����.O��PU'K<9>?��� ��/�k��3��Y�
~JkY�@����C���4lPՍ�ע��?;�|��5����z3q�?�7}~��}x��&�4�W%����b��oj"����~�E.=x���F.m��-���"��8���~o�|[B*��;w+��]z�K'�7vi��m�{
�K����� �mM��#��'�7vi���b�v�K�إ]����.�7.vi�-����.m��-�
I��&�-�i��ݱK
��o�����X�
��D�>��j�?���$vpw<����F��l��|��y y� [...]
{|��[/���>�o��~���l/��d��x�{ھ��mK�^ٻx��}��ا��?п����Ϗ�.�Nۗ� 汄�K�Q=�P"��>��
�iKp�`�i�o�;�Cv{�`H���r���~���R�Kq�)�Ń�R�{'ƻZ���G�X+`��>:�H:�>F�m�}
+����~�WmS�4��_�o=���v<�������������/Y��d���{WW��F��������S��z����E;��7�y:�����ƽog�?�⍜�+�/"��{��7���2��|����B�
��cε
��S
�eL%y�R���1&�z��(�A����
�?� �|����
F�F������NN�o�N��?�>{���o�_
1y�ſ}��߾��^~��_~�/���/��__~���������i�&���W���v�{���0
c!�S`nW9��M�m#����?�뻏��"�_�vy|fP������'@E����zX9�{bg���Kp��{�ڰ'6N�
�Wβ������p���|l��=_�oݳ?�q(<b)�
�1�}p1����i��]�{�d�m�Xc�e�a�)��!�;�)��y���A�9�5N ��ͦ�� ����>���
�6�
���P�2n�u�dW�]ߔ�1���a]cdeB�T,����wbᾢ���ݮ�64�-��q_���_�a<� �8����}p�����R�;�j8�jt��qtC�>�L�o�m;�;���A a�z��;v٦�����x��?��o��~|3�:5L �u���O��� áÆ?LD.�vC�ۤ?�����_�|� �Ks�_��d5����kD��\�~Ŗ���U9��ɬ�ݬ����T���+�X��ҵ���p��#:��+������ۿOۤT4UQ���@
�}�K���$
T?T����5
b��O�~���9�
+�o/mⷞ�܁^c���5w�}��>|��k�ķ�\�x�)�X��B�{-=����˿|����ll�L��o��X���C�l]������
u�~���Jw�>] �||)3�_�W���gG�����$Ų}ߤ��Z���~�����s37���p�
r��c@pǃ���d�J\���i`����]n}"�SN�F[c$�R����< a
L��Xc[W�q4`o<��M�%�-��H��;p%�Hm�1b��VB]9(�ރ26�놔�0��v�t�!ap%U���Xڡ�5U&��k�k��*gC��ئ6��q(�M�8�d[�0�@���C���+ù6!u8Hؙ��#��[X�� ���J7��:i�6����̴�a� ��T�(�Xbv��2�m��@Gl��l�w�I������Sh��76A�¤�J��6>���4���(9etX[7CB�+�qd
_��8E���R��oԆgX�D��~��D�YC�6�v��$"������@RA��m
+�M~ l�ɏ�p���Ї��\ɏc�,��]�#���Q�n�F�-��5H �5�[Z�umT��m w
�|��`~C1�B ]�t��ޡ]��C ��r�\� nt,
.2�MjM���-)5��� REk$�^ϩ�끊��[�_���i����k����G`�F^@J����&֛��{%Z�c�'����
gC� Gm^����UyVL�S�Ch�V �h�f�c�v��Hx�Y�DA�
o�O�]��������iCڸt��<M�:ۆ��ް��Kiǔ#��֮�v �.�ފ��h��ϗ#MǍ���D��
qy 4m��1��L���B#wBX���J���P��D�qHQ�v�}´�]�a7H���{Ґ� �b�0���4�W#@�k$<k��qqK�W2n;���'���Z ޏ|��5l�7�ߕ�
�`� v
O*3�e�-�9;�?��e!zn
-v @�
|��4�v��ny��7sa�OH�7�]�
�<
`ڄ� �0��p�i��`ɍ
1��ma�v�5J7��$���l#�
�XoO����R���B�E���2H��<k��g�+dJ�/2�2�Gc��N��a�&q�Dqۇ�c� �8OD1A ��Ck]�>+��؎|�hy��L����c�di����6t-�F�ϥ
�k��d�HK
�������t#ɟ�=�@�֬�:��~�~ Ya$�s��� b+ Y�1�y�е$�- o�"� ϓ:q�I��7��w|���L�
�w�!� �i�@hs��Zy����% �
1sn��?7 Ki�ʡ�]@�p�0�Ab,�!D�y#���>l��y#�������%A�l7�jf�O�Ւ��i/�|Ăq�#&0��Ǎ� �X�l��m[��K'�pLt�Ai�A"��"�S�U �_������6����أc.�v��� w0�B2h��x�λ,>�F�(pQ��@��PX;�c,%����@
�4�2֪����O�m�ql��5��R
]��?[�;�sl�j����T*٧�&��7d��MJb��C
�#m�*���(
�ԃ" [...]
+!�I- �
��wa��X��`-�ba�
+!�q|����VMX ��0�}�-�="�
$�71�V
�C6)���
�pہ������]z��k2tY��v||_��876R
+!0�"�|���@�V�t!%��hAJ��
�
�$�&�m'�?y��Jnm�կE}��TL?�ԑ�@�N�7�6 �!Z�$�!1j
@(K�~��?���F�4�����+1��c
��
+�c�*�F���HH����?�[��4ץ�,,����G�pid6v���-�>IU�XM�i��
�v��i�vs}l;��D�L[C�)O>�LRc"DM©`�r/��
�n���v��{��)bW���
�ِ<PO#�`g�yr�Ҩ��@o�R���z� ,�&�A at C�m�oL���͘
2@��A
���k�$�
�Ca������뜣*c�����
I,+Cpmj0�o�1�l���v,�0K#��
?\�
������E��J���&b;"$,˶?��Z����L�]�֗q�Aہ}�������
�<�oHV��RD���m����
�p� ��������rHK!ɢ�j�d[5�;�����X
+0����b���s�R�xEi�k@�o��� �,���w,dֱq�D�
F6)�]��Ҷ3E� �>@ ����6�<1��L[�j��д�&�Q��ͼ�游�;�C�֡CX�.ȈA' �Ԯ
�'��m,�N���
�4�V�|IY��*�v2��w��L$M��5�{Zr�,N�.vɞF����
+���tGt.8jk1��� ��@꓃�0���0�h�?���w֍aFW͂���@
h*H;Ʊh�.��߉4��t�Q�m��~'��� ���zY
��M�E�u�YId�"� i��[
��ŏ�zϜ7�O��yBQb�P�S�Z"
̷�2�,�K&�v�Q,A�"˅��@�m{�ʊ���&�
��H6���
9xE��
E�96<4^X�Ϫ���e�{ ��"C�!�!�� 8Af#����� �Ɓ���%c.�Œ�w�&��� �¾,�����-Y4�/�g6�"b��L4˳.m7W�� �w
6
��C�ng�O ��&�%
�
+3�P��{�8��yP�&0m�5�6���lN��&�V0p.�H�j _@���lT d���H��y��/���!���
��K쮟���-�9[��h�j�dW_4��a���P-�dy��� ���&֕�P
+�E�q��z�d�hT_��3��
+�
Bӹib��HX�ҩ�E����ya����c^��h�U}��~��D?��J�\�-�ю�
���.�3S�
ƈZ!V��ZY����* }M���& :"I�
�Qλ�
� ���μR���Uޟ lo��[A�5�f�z�{
Eg\�Q��
��D:.��"BU+?�c��~MG����'OJ�-����ko�3N�s >�̆U���ia!waвσ�%\ߓq��@�m��w�7�k#��ѣo��`����1�x7��@2D?�I�㺶D4�Sb�
?�ޜش�I��0I�-L(��F5�H:�/ ,��7��t*
+����#O;��ȋ��a�QFbk;�����A)3�"
"
���cC��#�㏖�B�;�ΣE�Ҳ
�p��
���]�Z�\,z7�� '�2.5ӷű� #��%�j�m(U ?���x��@�3�(#�{�h��x�Q��ә�\}���N����%ݧ��ꡳ ��%h��*��*�N&+&��K�
+�h� f�W
�O鐖
s�λ'ى
9����L����Sur��
���v�`<��O��
���Ǒ�)<ۊ�B���}�W�
+���"��%�
;�}w���G��-ު�O�S��
�%��-��G|/P�<��h�b�N��lJE�
�,fxW
��_��=��ؕ ^!��O�����2e5�
+�A���ڶt0b�n�����Z�8��}��ϲ��rډ�DU�e�.��
+��,^�ǒ|LQ"G032�O� �n%��$�:�� K+g���-o��^��Q
+�$!r�8"͒��lA�x��
+цLN,Ǫ"q��vSw �
����`U�Σyi�e��S��kR��t:w ���$n�n�kH��1���M�
���V�ؿa0�ρ�$!�y��'�d
+"
1�
���ߐ�
9�+���g,u�Ȉk(D�*=13Y� �\ܧ�\�q�ь^μQA���.�Q��IG�$Q�iS!��.:�?�p�/z�_���ed�* ���
����N��7��
�S�[
(j���t�(�z����!�d�lvkzb~dt��8=
�`�
+Z±9&
��ץ�35
)�
+W��,�\��̗��/y�O�~.8����>�����
,z����a�b)�K
~�Cvx����'r�m�)����ĥ��E7���ug��e�*��G���f��b�2�,�u��c!�`E��bP���Eo��Z�J/y��۲9
�e'�J_}٢}��A<�G�FX�
�bD;�J}��R`��d�Jd�&��H���s-d1��-�<x��H�w��n�2�)�#Y=�|���5�v
� c�f�*��6io
{b��r"*B��9��{8��lY���7��G¶�?d����f�p$˧�t�'�y�5c:�"��,�,�
,&��l�+��P
��q�nc�4�#���Ή` �`G������O��D�~�L�`%�8Yp�HY�kY0]��5��=�l��α�j�:�ʐ� g�X�g;���v�u9�3D�@�+2+"~��E
��F42 @��-d�j�H!'Ȏ�
�=G��<�~3���aK�9b(������gs�I����FnIJ$�ڈ�-l�P��!,
��YJ��Ј!+�I �',�ȖȨ.a8���e���a,�����8Y�z@�H�ށL2��̍�Dɜ�X�,I������.n0�,��l�!�S�ֻ����+�18
+ 6�/��P�E�Y°9
��Յ��pWCT��x1N��ҋq1B/��3K�5
q%B+�O��SbXN8�%�oUb�rTA�
������Cf�4!DST2*y�]J���"^
�/��*�&�PF D� ՚��ߚ��e E�l,�jK�TkV��,�,��|ʲ�4Rd)�d1|��
H�����Y��`�A$���d�و@���Q��BL%S6���)�ȗ%��]UP ٘{E'�ֺw�R39ˁ�����G�*�¹-
���
��J�JFHǨ(�,�,I�B`�R���Y��]�
I��"d�`
h^�9����CZ��힟�ґ-�+cC"U��A�Ӂ��;L��{��b�d���VN���F�o��GBvd��*c'h?�b5b9�ۖ�0��Fa�����;�9�=4���M;SeC���T�A�
+��g#l E���W�
8)���D�
���T�g���i.-dq�b�!K)�D�v�?{��]��kJ�iWM.[�����R�[b����VGJ �P���Q�����z�\߮K�M�%�ON�d��&V��t���5�W�V��g��Kя�I\� �~�f$������{�-���<���|��#KM���jպ��L\H
+RS� ��,Rtc��b��ݠH�2�
��>I
_bG�DZ$+��8cXJ��aڔ�8�}sV���v_ �Hô���U�n�f����UM<���Y�L/
L��>+���,��pV�/��H�+A����F.5<�:��T"
��Q����r�l�c'���W8U�g�
pV�<a�h�İQ�)��;Q@��H�48�^��ɴ��b���WW� �c"k�#�j
�Y�;�0iDu��Q���lO�3#��w�b��V��
�6���^�9��e��������#!Ba ��æ;��� ���`�
���85�Rʩ&
�նK
�F.uc���S�
+�q�Z/��jx~�s3���m.>qc���\�Fwq�i7��wN at j��I�X�,�>�Ttf
v�n�x��'2>4��S���L'o:�3�̛s����ط�t���C��
i�T)�6
���H<���d�M���/0v����So��7r��3���)y��c���kpK-Ip'����U�e��L
�R�e��#<6Vh�'���`a��S��[e������9��^.~_�z�ߡ苓O��,�"F
o�\�e�]���Y�]f4��m���hߨX<r�{��[���#o��ӽ:���vY����
�N`j�?���
,s�;hL<8&n
s\Au
2�f>�>Pem
]Ş
ѳz=a~H��ȋ���0��X�/a�|NA�T",��{P�Sk=�.y+~�VJ�")|��<w
u|��Yt�(�t���p�
�".�V
�����Wm��6qy���J��Nk���Po���{Mܒ&�K#�9�SJG��+��xJcl����ة�~�.h`~�xqV���놝JϜ���R�e~@S_���ǜ,��?d�C2v4��mE��
+#@�Q�K�3�Y��5�����
+Ry��Q����m�/1���3��O��3��@PK���^,�R#��{�t�Zm��ݑ�O�#k�2�ai�yb�Xj)�%Q͇
�C�{�(XI&�z�="2�f��ic�db'�XRJ�����4�g�ik�q�>c��Xo]궥SXLK?D�1Qs1�n�a�s�a�(jK=�������O�f�L�Xg%}Fz���k���)t��|J݃ܶ���Vc��u ah��Ҷ���c�}$�SY3
�*��&�EB�
+�z����=��'�;���
+�U�3@)�RX,%ױd;�H�'C���R��+U�Yc1l,Z��)���p2b}��
�E
��XX�
h���ŏ�dx�
q�
+#Q����S�F���\�A0E�
{T�2nH�Bp��:�g��g���d��)[�v��A
>n2��&\+J��0J��C�ө�b�5
zGZ/{��V%k_K1 �+��EO��$�N
�j�':�j�a:��ݥ�T�rZQ[]��X�'�3�],i0
�J�]$1mUz^%'�0�!���7(BX@�
,`�䯒���Y��;�Yu*� �S�OE����h�\mG�W��Y�
x
+�e6���������<,�uͼ�FM2̲�ҷ�2�]�A������B�di����h[��
����0$�'^c'��cIV�Z���\,�
bJ
&�V�� (
��J �8�T|Ve{pn�sT�Š�12���ߓ$z���8: ؆)���s ��W��ˈ-ak����\���6�_îE���-��*�
��$��$o����8flѯ�S�{8�"-�)%X�s��hU�( w�F-fG��
+�����!N)RD@���3M��|��QN�VN�^�Ld�AՊ��|��8�l#"�Ϡ�)��ӗF�ҝ�yf��
+�8��.�$��P��W��Ф+E
�p;�Q0�ڥAV��,8�m��&�q����o���
++�%_[���
����:�V�m0
1�TB���l�=!�e���I��xmhE�L�R�0���Ol���d<��F#Q
4���f���B��Ķ��u���,"
@rϦ�?�LC�.�����IGT 5F, =��͂�Y�[B���OZ���0Qi�c�8�겱W���WG����F}�{!%F��yC��Ny�˻Y�T��e��R�Y]2v��c
��%ɔ�g
~U�0�
2ZE&���+`Nw8���l����H>�����Az�6�vFN]aR�$���T�}�]
cuɸ:
�kD*�:b1﹚�N���s��*;�oZ¨&ʻ�fq��%��l
�j1"�:�k�+���լ]���`ŧ�S
:��q��%#G2Ĵf�w%�m��5o�3q5k !�����Ȕ���o�c�4���W5��;�^\Z
��!Wmuh4U��);Z�D]�u���@�#�yXIo�w�ң�?�54K��5����Q����
�#UL}S�4�겑����
��������6
+�����3���Ώ�~uL������&δFIU�zz��R������J���ݶ��f&���:ʩ��g�m�V�������C#�q��>�9��
�H��g����`+F�'x.~j<��?��pV���s�]���C�M��}
�d8z-�p�S�!�&��>��e8g����C83��>��2��P�e��a����1\��9�f2L�Gh��c��ceX�!��u_�t�t
�
K�c��i��c�����̰���/L#��I
*
*i�Lw
ތ?�[���?I����
(�wt��cd��X>➩����iTK�Q�9X�n��26� ��ՒH>N��-N�����]�$
�u�],�bO��5t����F!Pm�y��|�9a��J+�wM�{
ݹ��ڣFg�W\\ � @�1v�Z@%�)A��L7t��>ۛJICf^˨P�
+��6PM����D Ɔ��ש��n,]���ķvԐ��*�k1�ba�
����/��YmH� @M�FP'�i�6����S�q[���gv� �b}!c_z{v^\7
�@H�����я��D;����[#ˢ�/v���-
�)���y����ҩo�j*W~��]-��a�&f����c� ���1Ę �p�Xl��Ja�Jg+��U0xT j���g�'��mT!Ē3q�h=�^I
��2�Rś)<��&��((�:��
+h����
+ة*]
ć$�p
j;nȰ|N2���ES5��n��� �Y�srХ���
�Z�do�8j�d��4�F�T�������$B'��N31���u�)a��7����wY� �&�@�P�����S�4A(A=\g"(!�!R�
�
�$�&��P_.jXE���c�|_u#P��
(�3��~� u�H���e�K�:
"Q)y��M9� d�A�.��
�ʰM"��ǩ��/� l#ul��$���
�NQvJ쇸��O?������
\�>�q�~`���ק��E[Ů��(�@lF��&��Q��\y`�J�I�F"W$g���`p$�[y�6
���4Φv~ܽ6N����5y�8�n�
�gɴ#9��
���#��B��6��n
P�ԥf��&�.[S���p�eu�F��/f%
+�t��6�4�E�a7
���0��D��Z<R��/��2
ϛ�x&@M_��(�<$?�
��K���xh���x7�]���:�C?&���,�P´~�%̥�Oѹ��_��1�3�b��j��H�����r�Tl� m|dt�$[��5 ��v���edg~<z��ClɭDP� ����
-nD8��Hzu�4�D^�� Ġ9��d5s1A`�-�*I)@b$(�Jjcպh�b_ɯQ4�f�1+�P�����G��b.\C�k��b2�8N�����B-����<��6�
����Չ��V�ϼO� �\=�BɓT�lγFh�B|�j
+\Űƌq:����]���/�.�uq���IcHLdy�k*��&DΦ�qi�叐b
��}�)^d�
+�fBՐ �q����Oq������� 0�iD��[�S�d���|���PK���3R3c\�ܤ�ޤ
4�]9T�8|M��b�>��9g�(��i�h�����Ȟ�t��绦�ڨ�H�� ƛ13Q#8�`:j�\s֤^����=(��Ռ^0q�M;pd��bȬ����}0����� Q�{<�T+t����m* �rd"{���o��o��c�?A���g Zu]����*��Ű��}��ObZE�nd���Ӎ=�b5yÄ�6o+ ���з�d��q�f]�|��-���
�&v�_�;Z3fh��Vʎ�^�G�A֒$���47G���3�&ٙ�d�NP˜�c(�E�
+� c P�'|� h��h�Q���P� �E�����*���+�_!� �A�f&ɪu����U�;&A����@�&Pǀ����LP$�Z���4��{�k�$T���H�P�54b��i��GBo��䄍)N��� 4�f �+�ɣN�j�ch� ��m1~T��9�ͤ��Kq�����+v&�A�&"�SM�������rɠ+�8[D���ƍ�+
+�%"A[��S(UT�7%$�Y$ibW&��F�I�y+C�
��� M[�6�s�8�4�xnu?�
N��G��m@�[Օ ]�M����k`�J�X�$��s�g9�����߸@Id)
��6*��TU
���d��%�A��
+>U�J ��ǯ�Q��)�DPzۘT�lX��E9@�q"��0o
gl#�Hn�*
��
Z����ŵ����\-�����l$
b� �}�j�� �,¤w�*b@sUd��>���u�l]��d1�D�p<}?j��GkU��:�k�V!��ʡEkU���j�X�V:��Z��V�֪(?�֪Z��$�L�,�� ��Ǎ�f�hB� �
[��;4�m"�$ϤM2��`s��u
5.�����r�U�+�u�h�� ��^��V�F{��
R3��?���ۗ�jM
P2�u4
ds^��\�����]2ϖ
@��*�DXG/�0� �dZ�O(@>��Y�֪Z�&c��x/<�nAӍ�H���I�lt�kU
ϻK�*����s�`�ʠ�ZU��i�}4���=�r"�k�*�R����V���ZUK�@���N?W%�DTd��9��`��[��u��P^ŘJHJ��
�e��S��W�l�^/Y��t;Eeq��h��@��*A�h��j��uTs�WV�W��,���;{��f��^�* (��
�P��3�U��Q��{��;T�Ϲ(���`��C.\�U�-�6B�A�r���_��6�ȗ���
��3��Ç4�m*j���9�0�$}�ԟK���M3�
��ȑZƋ�d�q#���33�5>K�#� ��'��Lɕ�8f���E��Q/�L�
+Q�U�0�bWp#4���0oA�
��>���9B�]��^G��$�Pr+���P�"a� 5�2
z�v��i �d��Lp*�A�k�
U��U>�K�a9��4�T�,e�ɳ��F�/�pZ�s��I�]w��F�pi�t�@��f�FM� H�,��]w���D"<�n�@����MK��{R��D�
&d�2ю�+��YE%8
�Sm7N2���7������64�gK�H����"
���C�bh�y��IA��˭7.1=�����ht��3.7��"�Vl�r
o�TƘ@���F9�.�pƧz��8�YW�H
y]��&����"
+�-еit!^#Fqtڄ�隈Dy�4���լgPt��˓�7,�2��2��K��B�-�o"�0�$`��@C��ol�vk��w
�Ӧ�c5���X�)� k�ĺ
��j��/ �
+][<��f�����h�ѽ�3�� *L �t{&�b����'�|:��ő���u���Z��|��e�K�
�
�uw+�O��ڶ��x�
B��>$#D�����hƌ�j��S�oj7(K�R?;3(H�k�`�4�7�V�x5��&g #��ڜ%�W0�$�kR�63�v�P~kY��d��`�.Iަ#��iKS�$�(�3�WI6u�!g�!6ӵʴ�
`Ě,.ޓ�_��n��� �'�N\[�b�{u�d�Q�y
"�
�i
(���y0�����(0 �:��P��^zf��k2� �����cF �����t����o�� ����s#�S#(��:��AU��
���Aą���MB�! �\$${�
)�t7H�h�c=
B�AN+5�E��F�8"���9��ޝ@I��1�Q����[�Ɇ��t��/�IL�_av����� ��zMV
�rqȠ�XU*�3edžR�l�)J�E�u�N���b��v�2]�hS�z�b��ro����.�ѯH�*~���Zj�GX'-a��Yg�᷉���:F�0�\���9��c1��ƨ� W������)��f|ѠI������py�>ܟ4H�l����Z�CT �B"��f�bh��/漌ty&�8�'���E-Qq���ͯ�^� �Kr
�T N��' �mںx(0
}{�%��Eч'm��:��ˡ��y5�g������S*�W'��5���T>��>���`����,2��I��c�����d<H ���'���lmB���N5f�f�fZA��s�OΠ`�t~%�!���A��GZ�,$W�$h��d_��zm>,=-��$�O��pJ�2
���'r`�۬���WnԽ�]=$]�b6�0Bô���e��@�wl�F7����8�\�O�, [...]
+��A*�)T�|���(�2z��E/�c���
8����t1���ɡ �$\/���T
�ShvvQד��80��;6F8?ȕea���+pf�w�����3�]��b�R�{���ðh)�Zl� ��p����
����s�up���{q�i*h��z�-��$+i'ж/eG��ӛI�
8�j �m�"����ΰ+
;�C��_������G6�xpV�"��k#�R W�v8�b@�`G�@
JW<�������e��.��6Y
t��{@q��7��q�~�����'>.�/�q�~��b�����e>.e�*N��q�~�����'>.�/�q�~��b����j����!��u�������|\����X?�q��#��q�~��b�����e>.E�F�x��B�
+?�q�~��b�����e>.�O|\����X������������
������X���������[/�q������c[/�q�������*|\�v����[�d����'>.�����z��KR� J�ꉏ������z��b뉏K�>.EC�qI��A�h�%>.�����z��b�e>.�����z��bG!���b뉏
��6��K��z����'>.�����z����'>.�M|\�[��R4���'>.�z����'>.�����z����c�'>.�/�q�~��b�����e>.�O|\����X���������;��.%vn�Db�г�D̫]J�%U�26j$�S�jƐ��nc�~��n�e;�#���YJ�TJ�ZJ�Ew�؋ADb�Fd�l�Q����H��ne_I���G�=;�(�'){{n��ĢBb�ڥRb�@��$v�'{Ta����
��Hb��l"�[?�ح�H� M%vr|��ΫVJ�4m��}��O$v�\J��Db�ZJ��+.%�rkr�Hb�v:J��D�=;�(�g'
%��%�=Tb)�J���-N [...]
+Hl^
+J]��V4˿V�S^�醉$M��$�{e�Q��4H������c�Һ��,�;H�Q�T�u�"YN��l����i����Eh�.�4I�b\.�G3+"�Qf>�%!\���]zr���咴�WR��LZT�Fa=iU\���τu�n���:
�X��K�z I�h�
�^M�
+��N��
e�&F�\XO揼��a� B�y�0�AVo"usI�m4V���z�\VϠQVoR _� �36���쌈�IV��Io�s���b۷r�P/��m�o2
+� ��T)�+ �^��q&N϶�䏹��U��B�xGc�oֽF\4�^�@UZ�R��U�{��n
�@<E���
IҺ_т6�ֽ
�Mº���m�s� �g�(��c��*�cL�Y!�J�5
O��"��@�P�\P1O�$�{V�P����ӹ�����$�{��aL��zor9��w:o�Z����鍪�ʵ6,���)K���U�(erz��(�7���UT9��\���ֵ^�(�7�T\�3R���a_�f�����t�%9�k�#>Q�pD�e\�ӽ�����S;��ku21�t<��q���wY&:�s�`=�(��t��$Wf�4y�^G)Ĵh�(���Ew)og�b�eՌR�iDu�B,=IC|� ʝXh�"��D�M
��g%�"�t����k��
i���;��&(>Y�XXnB�)kݛ�SP5J2�����'�N��LQ��m� )d�
҈���ecq_��4b��]����y*�he)}����9b���;|�]S
Rk
�e]�x��g���'qJ���p�F�C�͌�|�������DB<�
V�K���[�^zE�z����d�2�\b���r��^Q [...]
+2J'%����D|����#X����
_�P"v�݀&!v�'�.�Y2������I��LFw�',ϴ�Q��
�p<
��'�[�9
}iK66�U_�2�]y˴���y)�4������^��,��>��롑wix)��=)��z���2��Tx�%hr=4�*�E�y==�^j��/�g!�Y�
�������}��0̬;r�}��`��2���M"bIΩH��r��������`ǰj|�p�jޟ
���Gt�����'��u�7��v�
��k�
#
�Y��E�UG��ZM~Z��h�(�y�yo��D5�
e[Ƴ����Ŵ���T#�1��(h�<����D(gcL
����H,u�U�(�;�Ǻ����d����B�64��%T�D���U���s b��A�j�g�e�椓t�(�5�.�mJJ��)���h�=K�ނ�f�Β��Rc^>�M�U�v��ZU�
�fIy���͂&�
e_҄��咣�y ����.d����]$并��#��gg��0L�u� ��c�@;�+�d��D(�sN���P����C1E})Fka)�r͒z�ؙ�o� M�J?�D���$�
+z�3N�0A�T���K��$�e
M�v�f|�Ҹ�Y,L�7�q!�b�
g����}ɡ���׆]N���#���6���"�%be�/P#�#�t�xW���p=
2�g�Г9��"�ѐ0���J�� .�B+n�sI�"��
�-0K ,0'�ʬ\Ĭ��dQ�AT�`�*�
�kT��Lʕ��
+������ 5ɋO�D�6�g�3%�.a������U\s,��`�S��*���@��_�$q���-���)�ZI)h��2�>�o*d��m[�ܰ���
�B��W��^��*�� �����3���2(�か�,�0�Һ�2SQ��v���za��찕��X
+E��� ���F�_��#J�&�T�0�H�� Pr
+�`��z�9��w�Y����o�]�;��Ù7���<^�hR�P�0�w/��=H���DpH+�˰�F'mb�]��e at Zq��R)(iK�VC,� �#-D�*;
9�@��s e��|^P45]1{�Q�X&đ���E{g��J�5+^w/����%�Ӄ6I��%d�Cu��
N�f=��#Z3��N�o�[�
4v��[�;xj٬fH
"��pyH�p`�=G1�X ��Ǝ�+�%����e�(��%z��~w�^3���,�LN�V���jR�NR��:G�����q$ɬ���ʣR���~b�1)��̈́�ƓQN'��s��m33>:�ԕ��UQ�KJ�0es�
I����U��,]pz��Eyч�J���wͥ<<�1O�R:������f��:�(? �
T�zu�]��J��7����>�S�2ޱ���j!K6זl��hu6��J0m�
�O�Õ<˵ܛD��k
G
��7����Ǖ�"w=���ioc�zj�;��T��7�kVŊJ��^䧥�~L{�r��>8\7�֬����Vx�u*�+2^�[8x�H���Ǣvl�{V��~�xW֗
�N�(��h�|�����c��^6�)��p�L`��.�s�@L�-I���Oڊ?�E:�������_����Hj����W]n̾`f��B���I�_�l�r9�tb�ݨ�lKt��JZu�=]aRKZu�����=)k/��U�}�)��OQe\|��MFJ����aE��x�@`�Xb���HBM�"q�����\e�l�H}��A�
+<)�6ǯ�J�Lh�v9���cV�t%F���=����6�js��T�I���G��E�2%>�}f��d�c�1�D����> ��'q��I>N����AN�G�]��]
�E�&c� �,��J~=�V<<YbB���;��O%�U����ۘ�#�*�Ǩ\��@F-�)�q~Ԩ
�Q
��-P�/V��+HȒ�Y�G�[�K�b�\���c�|�4��M]|�
����(���X��
�'�>8dzdW�
�u�c���6<���rܛ��{����V��&��"�o��]�~1��Y-ӌ�f��Kv���LQj�uS�,�8/}A�L�i�oS�,P����
�Ń�c�$l����t#���ѭ%d뫏}�3o�;�wpic~��������)������ٙ�vp���~��ݝ��W��]<>{R�\���,m�]�\�pkc}�����S//nl��a���}+�M��~�J<,¹��~�����k{�m�����|qu����}ㅽ��//��oV�$���w�W{���m]�ٔ���� [...]
+�k?|8���+��)��؉_����/.ٟ�
�p��|u{{mk�>�������g
��1�v��}�F�R�R��
�jÌj͎���Jo��X�z��������/��U'�u�ua���Sk�)ǽ�E��XW�I�Z�R��k���;�Oӛ�}�u�
l
5�G��
��De�p�r�s? �J
>]���_L�)�hg0�f$�j�jV��n
Aq��g�.�R��OM�R#���(�FǴ�w+8�t��������y
9��'Ҕ����]r���Z1�L��^IT��k{|�B�2�(Y9�*��p�!KB�`�Z��
۹5+Ւާ��@�rJsK�&���Zib�Ւ�1�2�Dv������
}k�"��]*����7�!�K�3`���?��&�hjV�V����0C�p�X7A��� |�U,�w���]��bW���_�e����d����Kd����T兯N�Q
�M�wE4�����{
�e'�A��
�����ۼ��w�m�i��@{
+�:� x�2�
��k��?�����;�=��![�rՍㄫ:�VFd�@$�@���E�Ǖ�w�֑�\�
*�j�
�b��Tj�e ���ۊ�P�8 ��w�h��y�^�@ɦ�J�"^�-|v��
����D�H�R%�\
�+�F����J������2��a3�!uD�"�]
�N�b��a��1e���b��
+A�
5m�.�EP���l
1��ȩ�o�'�Ő��e/-;1#H����Ӈ�Qk$��lt�^
+���ثA�v���zެ��k���fHdCW���.4���\��ϰ�����F�i��q�j ��2;�g3M�v� :M�����cB�(:����W%|���
옳5���/=
��z��j
+O�C�
�d�j�x&o�8ϔ#� ȝ�@
�
!�{b�Fx�)/
+��\c�@�Zgb��"��
A
f��7��p�
����
tl+�R�� }�Pc�\��J�ഀ��:�a
-��Xw�G�I�
+�Z H�
��E��XU$�3��V��;����c\`�h���3m'��u,4٢@]�ϔ3���l=ЯeB�zܲ�����Z�8 Mχ^�:�
�vH�X
+�kb=j��d�C
?� ��i�D�0��Ig� �X�����:.�ф�M/�;�
+���>��g�[�Q��t�f
S�
��,VӲ<S���@��,
��� ����[�����-yu��!}�� �o��<�A+���`Yc
�k���r6,������ZG �y��y�Q�
�k6d�5�x�� ���2�.���x�;���v��1����'|KH�7��*�$��W��w�)E|�|�j
��������k�)[��`^1�H
G�8�ptH��ik�*��v�(��l��H
�^N2'`{=BRۘ�јi
���Z2�H/ �j�������.�v띐��2v�t��LCx������d*���c� ��z8b��c$# ��"/���Y_�2
+�g)��zi��$� qiS�٨@-$�)a/�I�*��B*��y
��eF�#<�
�&C�^8D��3�W��@!�PX
!��GNU�,i%��#г��tṯ�@/��
~�,8�j��|)A�N�+�;
� W���@
�א圅>��H,_������c]JV�D at G��u+���J0
�e���7��P
+�R��ڦ��:��;�F���y�+�n�:�\8�k�2�A��Ա2��d��s�n#�UH�sy%}'��3q�F��8��-�g8�tjI;�c�!�����]G&�I�x�',9�N��y
t�i��M
���I�j�W���>1��ְp|Xf G +uQ��j�U�
Ւ
�G
+>���
+�
Ep8��5�NJ����/Û�#�l�b��^�ٴH�λ�J����04l6��e�� w��N�l
�z~�n�u˴�:T%i�B���V@���O
V�`
E>V�H
2�V4�m�י�r����[$����d�
�G�Q�1 'U�@.��4=Z�{ʫ�Kp6@�@]A�aH��R'�jk�֭��y�H����{<��)����,?n3
�J��!ܠeа�J�@ȃ�.}jI�
pH�k$T8 Ra@�
��qt�0X
���$jn4W
�����s��
�u�|ҝ�%N
������h��؉ �[�$v
5�찢H^��6���P�\�cV�B�� a
i\C�����F�*��Ԃ�D�N�[��5��Y�9
C�}Z���ʔ?k
3M���lJ~�^
+\@Hk�s��R�0Y�c�TF56H1�:��t@x$�Q��r<
�Hd<Z��$��9a
�^�5v��B_\]�ǐ��|:r�
0��؊�� '!�P�n�֒l�À��ZM��>��x�D�-rҵ�]��
L4Of�����؈�7�h����]P�h$ax���ȓfl�]���ߙ�/(^+�
.�E%i�Z�
�,`$j��ߚ: �h����:^��Ì7�s��e��9
�
1�
+����i����i���0�
+H82
EƾE�^���n�0#<�j����H0�@�V��YA�5 �<b�:a%�u{d���,7�wS�R��b�7�������U��hW����+��<��o�zUa���3��Ӥ� ��RH� a��tNY���q��l+��P`�����pi���
^;`��5PtLdx[��F�Y�ID
���!y�,e�EҖs��W� �&�"�B����^Y/"H��Wz�BSiz����j��!m�(⠋Ӵ ̌��? p6=��,�*-
�W�U�]/g�-D�1��"��
e����0m�t�+��^��wW$Z
��oeȐI#y�`4�!ɩ���
+�5�>2���oH �$]54W��ƀe`u|��$��
,1U
������ЯU̇��(JB�3
+� �xZ�axC(�Z�9�5UJ��Ua�
�*�c �"��&\Ȯ�
|
��Z'�2��������XY!֎�!4�L�U ףUD vv�LE�J2N����Ӫ�L�.D,5OE
+R�R�`
��Pbz-�"���Z�,�4h�!����Ǵ��;#�|���;�������i���LL�
+�a4�9��E
��Y�L�7�J����1�um:�o�
%��,�S�nhJ����u���I�\�NZ���R�R蓅���4R�DyE��ڨ�%@D�`:��������y��
��
�:W�V���KR����Q&XS��Ԛ�IF�N݀+��fـ>�Ǽpx
�Z+ �+����睊���I�{emҀ49vI�ܕ`���}���B
ڐ3��^�Xm��� ֎ڞ^���<U�1�ց�5*^�ŋ�%bC����cd+�))#�'����ûY�^]�_��d� �]/���.[C�`'@�M��,F�?�Dp糢��ޜa�Ф��O���Gu�����TQ\�N���ji�
ٙ
�Eɤ�_��W���� v��
z���W��f)��T�|��G�ӌ#��ر�$@N�C h�tv�8R����LW�(�;�=Sk���pGZ��� Ŵ��[�3�xj�h� )
+��a�7([���t��{-�� 4uj��h������Vo~�X|���=�a�+J>1�d3
�-��
SI3)�
8��%��F$,�8}9!���{��0�Pbz�L.zFyIz�q�&jLx%:R4�4l]��E�-�R4���VfW�q1=�Q�,Ѩ�վ��Krk��;Y� �|�+R�[��)祤��E
�N�4�(fp2���,z����#�
_*�*���Q�Pq�M��@|(�YX��~}���^���]�O�WA�xX�h��*v��
Hi�^2
��@\
X��:-�B4���y���}K?�
0�
�
+�
�ЂxTM�Db=�]�
k��'
�����~a4�
��袜�Q@θ͝�9�-�`�m��{0�x�
�j�?P
k(�;���>�X4�'Qwbu
x����jy��
l5X{#�RHm��VKP�aEcc�Z4�v,�T�2̕0��W��a�i�H©�f��+����W��6U��<��{0q�e�<���p�(&;+�Np��yf�V̂d� �t�R3�V)oa
"^
�
S�u��T�=q�F�̵�����;)�솸���d� *�
w5<��pB�;|Z�k at Q���%�I���v#�oZ�<L�`O:"�u�U+�U�
�U ����dʜ;T�>� ��ZhM�VTݶ��5�M-4T�~��q�P(k^�
�gh�Ѵ�$����z��P
�?@�e�^.L�
� `�D���%���"|!$c>-
PH~~hX����j��²��5�;�0
M��:7l
�Q-�
+��nƇ
$���
���
VU*h*���`I1*#%m)�t����I}2�
Zh�mkq
�4��bJ ���|��P3�fzh�zX�{&Q�ƛ�Cna�lDz�����.g�"�Y��P/:��e1o�Ssn;��
��@�BAs�B3cU�f�� `�_�̥F��dك
+2gL>D#o=�xh�_�
>4�(e=蹄�vrO�;�*�r\P�&W�Y�`
+G�U�=�
�PL� �C6�c
@�`�O�3��1s0��B��R�3�
��z��/E� }{�o]�Ͳ#͆B� ghr�vZ�W�0�I Ùդ�n¹C�Cf6�k�u�;�w��5a�P%A���K-��(�~�^w4�S m�T �
���݅�
+�
+��5|�QM��]9Qʊ��kĆ�h6%�c����t'�i`'���
JA�����
�`�;u
J4`��m��/�^�0��{�9=����jҭ�V(�
��C[&� ��Y�̃GyYL����x
��,�.�6-��<hC=���
+57�KG-E��e%�X,�e�J�PCG��-��g���������
ۈQ�F������
"�
�@ O;:Q�
+1V��E5����`$At�2��o��3]��
KQ=眘E��a����^l�ԉ~5ceLKG%�X��Ctv�(�jU-+�q8�A��C9V�>α�o��ATF��^���JK�o�9.nZ�����S�Ży�,���
�:l�إ5 �� �P�h����:;�Atd�
�an4�cd�n
���Б�m%�>��|��
x�
J��
/"��T�Z���R�NN������#۲��)` �)Q�R������B.^>�����0^
x84T|<�F5̽�KC#H8���T3j͡�u�Tp�� �Q�6h��6
�����;:']�
+Cm:��b>Y����*:�v���$vt�j�G���!�K��sX2|
�B�#��
ZZiCI(����@F�
5��ڑ6����RA�v"YQ�ū/�e�E
"��������":�L�kM�M�/ �LztQ -cE�.o�D���Y�/E0(�|�R� �D�ȓ,+��daK�Gv�\�6x�L'���c`kUY�
QT��Öo������Fq��Q/��ě22o��ք^J�OlFս���\X�wp��,T�$�Pr�|�A��m�%�]FQ����0[�c
�?�dl�v����V4u�
+�T�wB^ZP�@)X�)��z�wt�%{��>������ƃ��_�|��m7�7\�&5n%�4.��D�ż�`ZU����W壴GiT��*Z��A1[�uQM���R�fK`�Ȯe
+�е�Ϧ�@Q�U1�j�
����rc�*5������◻�W�
y5��l����^���\�]̶v��{�
+E>�'��C��8�
����d
�*���i��C
����w�sx�o��!_������\�%�<���d�R�,�p��
�j�{x {Zy�Y+<��j��Fد9��eQ p�
-�A��Ȃ�ϋ���b`������
� �{ֱ6�#�n���\�Yb��mV
�j�� �'�!�7�3s�1�
�BK*��C+Ӂ�bZ�
|c�
�夼B)j-��E!�ݓ�c#�����w��Sʅ:�h�*~l
Y
�&���M�MŠ�aJ��x=3t%�RT���'�H"�^n�-�j�P�9�Z[M�کu��GZ�F�
u�B��c+��R�ʈVQ�)F���lj
3�e,;������W��6�^
�â
��rhD5���o��sf�XNK�@��)<>;w5\���3.���om��s@"���̅��UЬ
����p�o^�ۜ_]]�*����Wv.,���E�r��G~0�;z�
�J���m�%�t��F��Tj�F���_�ii�A���=^/ڀ�ϖlpՋ^�լ��f,�`�@���7̦��v|l1�
:@8���
+��CH}��;
��Pq���X��4��)!.�kEȋ ���rN`jQR�4R�1t�֝:�N*�8�Xî�tu��
+��3R fNm��#l�@�u��T��*�"�ޠ�ޮV[��ċ�#��DZ���ʢ�ڥ!����7R,�C!,-њf�VS�7�m��r�6`tM����Q�H������B����eHlM�{��O����^�V��{�O ���ѹ���B(� �f!脵��Ɂ�e
�\-���]��
��<P�9�D̩3�Z����� �䩅��5��
tљ�����1�>$6��t����^�w�wHsʼ���pS�7)q
ĵ�@
wm/H�Q��oj�x�g�
P5䍆��4���U�~�kp3�Aegl����)8C�Z~��lC�Q��x*�74��Р�E���
9������1�3���`�'M�N�
��^\)x�
��;#�æ@,�Hq}.�lOk
�m3(
~ ��b��P
��=��d��hܰb�ʾSĔ��6�4
SVW�ʯ�4�D��8��0���`&�
+k�Ф7<�kާprfF���e�R
$��4ЊŤH��b%7
��Z�*���Y�fX0Ӡ*5�����""
+Ѭ`
���T�rĢ�MO
+H��e�&�h�S
�Gj�a�6�KX�v�hsM+��CI"w�a>p+��I$�3V�'&�Xй�0�c�t��Bs�����}K�dZ��HD��U�]��9^
qˇ���I|̅�D>��̆־�W��
@�&���ՐZ-T �o��g%V�����1�{/�&��U+EL���o��ʰ�4��⦍�P^�r'�`
U19�y�ࠠ&L��M"��@L�
����<+X�;�E��0V�����`/�O ������
+�d�~���%O�X���qx|@�+jg
<��
�+�l
�Y��0l� <��V�� n��B������e=Kx�¯�#���)Xi�ךV���'���P��Y�����A�EgZ�w�>�tFľ�8��5pLk}�ʹ��S��Zܒ��2�
�z�L�.6��T���I[�H�U���ъ�j�ƶ�nA����I
^ൢ4]3��^�B��y��C�p�H�9������U�(��β &SS�"��u�h_����I�?�@AL<�}-�L
�q�
�o�
+�
+4��D1P�2e�c�.((u�4�����EP���e'��2!��P�
+7
�^,�ae���4�5�ܕA���;U?
�=C��oB� %
�J�
N~F���
+��X,�^Eb-��Q�����
4�*{)��o2�>TRll
+��VlȦ1�
+���
����W��G��|��Z���:^��i��
\�*liE��c�l# xx�+��C p
C/�
���3��A
z�X��ʳ%3(����Zm�;'�Fp;J�q҉' c�@"#(�l�y��`�V�(RnE#���p~��"���M�<
4�+��/ר���!��k����A+W����%t���� ��I���ijX�`���3�A�
=Kp�F���i�N��fp����f��5��9�U�ס�R_�S���PJ�hF�����(
�aKㅖG��x_��ǂ�p�#:7�{- ��*��>��}�Âb�TFFK�����7��%��-_�*�i4UB/�a�s��$�
ay��>�^�jp���
h�9K��RUcd`ڝ�?PmC�ų�C=wx��I�ֆ
+*f�8�ƈ�^�|�b��pV��R�Zn��|w�p R+��l�}
�e���&�
�%pC*�����E�
�0D�6�e�(�����(����
Ŀ
+�l���0؆�u�0
uL!��c���1�tI��K�r�L r�U�C�iy���/$��P�ky��Ɗ�|l�t��5j��f
]�$��A��o���+<8R�&b����(%�.��\��DG#p=]
-���V�쥘.�C� �� ����щlE?X�t�RB���DW�)0+%:�S��
ץ�:u����AEM�
/�k�m16�\fF
�q�$ZUAI��ȄkTC�ځ{�6e�V0��x U���
�
�6�pb�.7=��W�S81X�h������ �A/F|:����oz�m�Ɖ�62BX�@��_C�<H
���=YʚD�i�Q2�V�P����3�F�ڙ
C�Z�G�o��>"3
��m�/
D㖱N�S�k9|O�:��^T�-S= �Z��܄�/
�����mb
�AJ
�� # �i�P���OP����J�m/@��I,iJp{�U ��"=Z'�A:�����r���#OI�~��g��u�`b��3V����
V ��T��}@�4��M�����^�ަ��F��D9��6�S)�MQ�
:�z_m'G�ҏ@l��*
�4Ȳ�zC;�%;��E8o�w��Z�DF�4tt�6��� B#u��&�
+:e�.�FB~�F,x�=o55�
+�?E� Q��J�*�i
p+��Ʌ��
�h##j�XՊ�&�F,�:�6��h8fb1��>�Ȫh:$�~
�%�܇���Zm^���վ��4�� ��.
�vT�a �/��
��@
Rlw�����������ք{1�<cF
vH��,��U�Ƥ���[_�پ�tfu���ii���ا��˿u�+��¿_������O�9��sm1��wk���ŵ����K{�awN��L�zqmss�����͍�6}egg����vVfo���m+�/HoZs����Ό>b��+��N�?Ҽa�����3?p���St�qN�б5o�{�B>��
���:{��L���� �e�l�A�r��
+C���q�϶=b�a�0)Sq��g�E�`�6�]�.��"����ϕ~
�VS|^�|
�u�����
n�x�:��lE�?ܙ�?��4ٕ�i���ûw��!~�f5�j�I�p� �Y3;��
{��
~au�Z�
o]�Z��^�-۴���k��@l�H/����G?��o�{K�T��Ŕ���O�>'�8�O�����:~`z�:C(g�
���Շ�X���!������]sP�������1����1��G������������������b�]i��̹Y�W�c�.2�4�C�
眒e�
1x���$���~�����;��ٝ����W��rx�_
����z�a�̹��?�G3&����o���=����oǥ}e��sV��3�]�^a�rT�m������-��Ճ�6��=���om�7py��Xʯ��x�|��Y�����.y�ol�U��śk�3i"`�
}N�< F�ܫ��6�K>r�`m��=}�����<�������������ܕ�����
+
��ۋ{���6_�Ӯ�j�?�
�9xy1� L�:�*
ucg�X�$n-���� � 0 d����,���<����.-�Ϟ����Ɇ�P����@Nw��r�tc^�~}q�8�r�'�\�ܼE˝��Ża���C�ED�����n^��3����
�_��]ÿn
��
���0:�W6�� �\��߀?j�.m��n��'�>~�!�
y�A�#M�u���q�G
���(?��y���ް1��)*�dK
>r�J>L�<��I
�_�_<��b���u�
3�ؽ��AS� ���%I���s�K�l��\
Wt��P�x��:�
+�9�O�6���o�ϕ�zc����>Ͻ����d���r�2������Ս��́��s����%Q�MU��50Nu�a��>ռ�C:/w�y5
[��j?�yէ�
zΫoX��C���xJ/?/�c)R/l����������{{;߂Ma�6����
+[G><|����~���{!H�/�9<5;�?������A�Dy���V�v���/,��~kS��DnmkC� �ӽP��<��p9'���!<�C�<"T�F�f�
~�H�yD�
����4��HӇC����$OI�w�ꥵ�����#���j�ӤZ�#���Z���#��O�<�S����G����_�up��N�RRn��<�ޥ���`S.�+?�(�6���?2)?¡
��̅�G�S��,2�96�5��O�Cd=
6���k
�(���>rQxМ����?�w����������<�����}�̈KWdNo�>��[�w(!�w������_|<e�����H���}�x�TGĽK{;���7��w�u���5]Y��=Jث�M���I�{�z5�j�6���)���W��^ؼ%��.껮E���w{��k��7?���r�>4ñ��7�J��ݵ����`}m�m�!c*pgwm^L����z���;{�.M��9����ud��=���ZxH$��,��=����
��# [...]
+�v�Am��ſ^?QE{�}��B}s�`�{֦������u�lmnl��1}����w�~8�����
���û����O»��
W�����c���S��%���,W��?_ψƛ��*�<t�^�aR���9���HrH2�,�>�L�����??������y�����돞�O���P0�������;{[ʷ�����Ư�^8H�ug��<�
�����;�Z/*uڇC���� W1b��ߺr0j
�X�����E�z��oA�[�^�WӗLs�/����<l�h�������kҡ�F]�,���*K�nwc��Ά�Ӻ������?�j�93���K��j>��]8H����?��:��ۏH�'��
$���KHME��VR+����?T5����>ѯP�`_��
�+�[
a˽b�CgB��6!|�)���#Q�<z�O��Ǒ���1������UO
=Ə���A^a�#l�8?��[�>"Kǣ�X
bӢ�
�!�
{y�YIe�Z+�q�}�>0�(�#
+�s'H���Ѥ�D8@
+
+(^��0�9j��G��5��@�
�>4Ԩ.x#�ZGj�X��áF�*�ۏ�
Ԑ
y}��~�{������o=�?��Z��{=��R�Q*�A��5+�k��q��(�nN��?G:�"{�~������w~���������
��3;�=�Љ�r����gw��{�H�1vWԔ
2A]
zUWJG�(�{V[���P����5x��}��eߞ�^ϊ��\=�J�r4W�I�
+��$���Ώ�������ݟ0�w��͛ج��%��1�
�ԕyq�g���ûM�o6��?�
�ݻ�w�:�9��g.���/�8��û���/����
�g�Dۘi��zx�/��7Y��l�w�,o`F
0�
�T�����8��b�S@���g�g��g�'��3}5�r�qXv>~���Ah�g����
Q �/v�両���<Za����ӑl<�JE�,�
��������[i���+�h�j֖�ZD��G�*mw'���v���i�s�i+�h���<�r�X�3j�uU�F]�m��|�-��K֖7��x�yCT
�c�/b=_{�M�d����7��
y|�y3_
����p>;-7|���d���RS?�fn�-�VoGH����U1��uٸ�]�͕�5�]�8 �c��fq
vק�T���ض��h{L�a{�F=�z���שu��y ��i.�h�]�K��ݥ�t���iȅ*v��4��}����m�K�
+�;���6�i*ml�1���s���wf_��t���.���|��obh��D����0��[������������������
�>7Ү�%� C=�Ғ�
>��o���V�=͚��{2���0Ӭ����x�e�"Y<C��� ��ʍ�oz�Y@ؒ�Y��������evݒ�ݸe�o�KZ��
-�M���\�ȏ��S�[ڣ��-�Q����Q�1������T��'rx�w�#�x�g��d��c
��K�ŧ���'˘�#X��)�^R}Ƨ/i���B�3� ݚ���\D�$�[��Ս��ǖe�{오v�(b
[����I��1Tc-���-�M���,�m*��d�ǧ�/��X�����?�����~����Y\H`��?���c�9���OI�*��������8��Hi�Uw~�������;"���R8æ}��8ה/_gz̪��/��om-�.�
��[�" b5~��d^q�+;�#����̻[�ۡ�ٵ����k��l
���[�H?�F���onl��-��U� [...]
+m<\��d]����z��c@��77�
2n�fź:�<r�77n�����v�_q�q'.�[��y��iˇbygk_�� �;���{H�e��W�����ò�h�>r=�v����~���FjO��i���� ���sko�� o�����C1�����z`�
�d�<�O����T8��&�[��SU���b
�j6B�>����{~o�&�K�8���l���ڶUw}z�sUg^����+�>����^�9��
+i3� uS����r�_�ޘ���5g�gr��r�e�ޯخr��]mV��o�9���|e�e���������?�4���̘v\�?�wpmgmo����ڭ�RZ���p[���O����v�v{����[�k1~�ƘY<����;�wn
�n����
] |nMǛ�w65
"l��mwd���]��f�����{�^qc=�����pc',d>��v�S at 8��i�%%L��G75��Nl������
L�:��Fu�ŵ�w���f�
����_콳���x�`�����ڵ�͍��$g���?��?|�?��_��?������W�n5A�vg�o"�h; ?0�p�Q6Xϋ�������{�N̛��gw+Cº��ҭ�݀z't��NL緺�}��ڍ����nB� �qM
uwm}}�n[
�.wtw�`�nms#�����Z��X�H�l�l�=>��˳�v�"Ck��
�;��6_^������쾲��S�%-^o���3|ӣ�Q�ʭ5 �lu��b3�'�̕����4��pE�"���6P����^\ln^
�@�<��]�&˾{a���m�
���͝�������5�1_}!��G��-v�
��־k���������=Xd{vd[
pѸ3��uum&/��Ճ����n��a��
��lY�a}$r`�ϯ��ol�]<z��n,��5��k��ʼn��\��?�D��#H���
+�U3��������,ܮ����D�eߺ��E��w�*~��K%��>�@��u
s=�U,�!(s�Dd��(e����/�
�
\�]����&G�]� K�cR��[�U
�
���20ñ���/���"�g����W�v�ol.b���X���m][�/k*G]��r�yx��;U����ex?3����U�?����^���rx\��7�;�Q���b��9c�j����0��omn��Sk#��.A�e�9<���8z�u���<��8�����9Ӝx��W6�BI �6|��o�3���3lNNٽ�OAM�
N$<˓O�� ��;W|�v�ܐ�+�
9���
�͉�x
+s�WS�l��w<���y����
M�����u��{d�ξ�@D�,0[�s���7��k����>���r0e���xyXY�
���p��O�Y��w{�p~�=�֜�E?
+�O��i[�xx$
+
�����ŻW���{�Ei��%:��o�����\
1z�&����#J/-{��|n�����ε���7v���=Zɸ�^`����b���
7�
N��o��Ǹ]�<6��pf*�;D4��Q+#~�mn��Y�tf%R1�H��s�����Y���\�{����K�Kqҙ
�-�6��p�J��ORD�}vol��r
�����+��
?~��[k{o�O�/ۥ����U&��Z�1'�c_pgJ�d���͕u�-qcꝀ*�
2e�i:�o�?on�~^������.�`wwO�
w$��N ���.=��07����
+K��+}sTˍ�p�W6-<}냝���}�r
��{�T�����/�_JL��W���¯����_�������?/|<C��i>�ޣ[�{��vr~�ύ�MP�ͨ�<��/�7nl�W{
���֓c�ɖKN�pm_(��߁�`�k��[�$֣� 5g�;;nAh���V��[�ڥ���W���ڵ%J�q��
Keb�ܸٮj�E
|c�xd�Fѥ)�'�͘X(}�Ć�����|,�Nͷ��E��� p�I�~�*Ñm��b;��q
��؆��~��l?����l/�>�,��n�"��qt�S^
+�#Bu�;R��^��G��X���A�`���wEƅ*���^���䈲��=���
�N��%ϕ�����>�q>�e(z}�`e}��(�v���lK�n?H�I������r�����</����l/n�e��#Z�'��#�7j���m�9�fIC���W�o��hq�n��� ��v��pFK�7j�.{��])�u�l��lo"Mأ�ޘ4=��>���m�
EExB�͍�(Kh�5���������8����
?[��JR� ��Q�x� ��^�#�]��=?]���iʜ����v2
.����D�d��3\g�����=�(��2�� 篟 nv0g���A�r�l��j���q�������EaM����>�s
�̼W6�]l^Y�]_
��܈
Ĵ�g/��|k��j�>��,��sv~Oz�j>�U�%z�{
L��b�{�t���c{g�#�6��������oX�����I�c������73sAܡ����
fn��Η�$�|��%��Zҗ�Ԓ��Kj|�Z�B����2�\�6b}?����/�*�Qۉ���6NN��;��'m�|�{�ڳ7�lw��I���~�r�oo���l��$����3�洡�M�җv��^�Š��̊t�L�|=�`5{�������?|����?(fw���o���e���j�6��
CXc���I��������
�ۧhm��D�zگ
�I����[�L#ݾS��RV8�˯�ml�k�8�2�
��M��|�x�l���_�#��Fۨ�4(G]�������ݙ�r
�f
o�����|x�?2P�ۇ��wx�o�����?y���V"��������W�%8��]��7�H����o������w��������W~����KTz�yx��������˼��
4�D��ߊ��������??���>xx������]���_�����wx����G��������J~����o�-���x�G?�����a���������a����x�ú�{�'0��+{k���*4�(���.<��<.V��͍���l٧^��ޙ����Z\��ֶ�yM8�㈕x��yc�@�@��ln$��Rq�
̬K����S��|XB�=���{{ +�����kk�k�-�ͺ��r
+ro=3�V��2O�/o$�i�O:��l/CC��N��ͱ�Is�3.o���w,C�ġ��I�
+����6�o���t��b܀��'k8���9��x�?������2$QW�(��#�a�z
�
�y�'���rM���x��_~5�gY�n��:zƧ�U>�Z�{}�$7�z���)oBx��;�6�F��_��qX�)O���v�x�歭k�k��ۉ��J�ӥw�i�5��2�i�����R�����2U�{%�t�
:�
��ot���y�.�<n�G�%۶㸚��/8�+������)�u���>
�����r�/��体_�#��l�I�9B�oQW�M��B�
uh$_��ر�`�i�����.lDQ��Ջ�/w��K�_�_~�_��=��^�K�/�����
[7����
_z��<�k+���|���5�~�ٯ���_~j��Ͻ��ޭy��s���3��?]U���y�Ɠ�/>��7V~���?�������0̳O���^l���
7��+��~�^\�����VV>wc2������?�T��/
\���_=��������
�|�
ͧo=����.|s�s��a.]��tm��~ [...]
+����� ?}��]��~�.����篞��L����[a���g��?7��r������?�3�O\�ʓ��ij?���/.n��^�ҧo>=�����6�x���M�T��ڽ�_���6���
����ϝ�{�[�W�~��a�?��n�0L��o>{~{���'�y��s���l���������y��L���җ�_
;�~nѾ���6.�[
�l^|���'6�+[����~�ً�?��מ{��H(|��כO����'>���ן��>�&����τ%}���O�X����6��
�~�9����je���έ}��������a���
+��a�k��嚿<��?�?}���,�/>�ܯ�������siq�Y���<B a������=�D�s�#�y�����8�M*efe�y2�D�|l�
T
�
+L
w���~[��g5I
�SI�'�x)�a�[�z�o$�6��wH��fu�q�D�",�X��5�N/�,�.m��Q�a�W/Bˮd� ����oZ�7�i��x�����7�v>����_��I�?*��.J�As�V)�
��g��C6=���������Jm��@�*e�ڙ���?��]�?U��� ��
V
�IH@��
�
��ǬW��������k5�����{�T�Ĵ;x �V���l�b�V�Q#��P�6�G�h}�$_���%fB�cs��I\V)��Z��_��6�g�P��̌�B���53Z��O$��u`���/������%D�&�c�R�)��y�$�4�m�Sǭ�w�{K/;�2�T�� �?����y@?��:��R��~�
�t��ا�Rbdr�/�O��0�i��jN��l}&̹@��"�E`[�P�;ܱ�C�u/f�+Ct�K#7�rU`&�v�x��
zu��r�8J��
+��qA�ce�@�
�>N_pq(,4[�
�7��t�E�f��ʫ#�n��H!@����)�`�Y)��L$��M�Z��?M p�#�|�
��*{�+֪+Rwc���Am|�f��}�L.�
�(Q�L�FJ�������xK�sd$@`�^�o���@w�����z��UԔ`-y��Rv:��#��/�6Y�GCh����DrG�7�ױ+,G
+\�4h[���*�3Ѷ��?��u,�s��N�C-�0H��>C���$�zr�p�z�ʫ�MB�J��uv:��
�%/,<OUY�ZG'�ww��;E�=���U
�>�[H���q/�����d� y��i����g62��AH�-QsG������K;8<g*�F�%Q ��Y�_�$��{6-�JiB���
�,�Q�U�C�3���B8g�H<M�~f3�儗�7��Z2]'�i��f2~��.yq��9��F}���I&�� ��Z�j�$/�1����A<�O�#Q��\��pw��m�1r�߫�uGL�C���BS�.�
?�̪WsY��w�#�g��$�Z��$���^իf��Ə�!.��݉q�o9^�=-G�0x�~bs�,^<��~
�o=�cf/
�1HK�i��~�j�[p�b�Ɵ�l�������q8+C��N�E-�ɴ4��8��C4NY���l��վ
+P��V�MJ
ޛ�ِ�
a\L�0_��.K��W#��n?��Q��k?�p�u'���JW�?t��$��9�o����l�h��A `�o��A� O��
���Νا�y�H�J�10a2��d��>J�'&K��Z�d#R[�i��8�"�}�bpz���̿0�O6����
5��W�*C
���pDk������j�[-c}M����7?��Mb6���
��l~�����Gi?A�O�*�����_
��`
g>�0ڗ�Q�0�w�ן���b�����J��i�g b��LR�I_���F�I��Z~�e��l��V�"�7��T}�sڈ�xJ�r\F:뷶q�C��6��t���R�u
����:ש�]f��PpiM��HW�+�M{���3� �������ι�1�^%[�[+I u
�g㟕����b:
UZ�����y�uz/5H���%����@ppʌ�a�[
���O����2�"y��1bҶ������S��S�/������
AI�W�'���)�ϱ�����Ӊo�^
:��OV
�D?
c�}�O�*a��c�6��۩��E��p�ډ�m��
���g�;z
bc6�EL�zҳ[}�cv�֍��(�m�ڑ��s�F�X
��+VՈ�l~�����n��������ߩ��n��?=��;+��'sc%�Բ�1�_���$I�'��LI�0�B�<�'�?I�ʨo3�~�q�=Ii���U�M�ƺ�w���Wβ�4s�h��&X�ݯ��a�O�6��f:OT��!
K��S��${��a��?��$�w#��m<�2�n����֗����x�-���]��}#����<�,?Y�W�Q�C�[>�
+�(T���*^� �67U�`
4#53�w0%Zr�7��IV����O��L��Em�zP~N����BQ?�@��)���t�YS
��;տďe��G��&4��d��a���
��Q�W~��b�����63������9^�]
+�W����z��m�9��
�+ݶ��*S�vJ�k�/ԗ���+�&B+U2:C��hN:�>��:�]��C[m�
+�S߇t�����C�*u�B\#����^�ɨ�iCp�~����G?,�G���-}����7���� ����4��3.��'�er
t�z�H9�l��|���a5�����M~�c���T�L �)
+C�������qe
�(&f�-��L���
� � �ч�Am��&�7�Yb�=zY
n��/��V>k2�LތgX�����{�um��$�bW.7Ƅe�S�̐�EW��
�a�W���1�V�% ��>��P
�՟���s"h�hu�]�9'��4I�?I��"��J�K������2jx�{��KF(�/46��Ȧ���~�,������?��?���N��'�����5ɏB�Y��n����C��M�[o���k/B���o\������N�'��)[1��i�;���|�|s�_M�O�����Hm;BD-�C�#�=��.�O��c4�g'���j!%�����u����m��F�窺�8X5�����_D�0Z8�J�v&�G R"�
�*�����
�f��_�L
+���:�6�;:p�A�y���7�
�X�*@[Vk�s� �%�π�1E�Lt���a(M6�ܭ�w��d���?�Y��7���-33"�
ޫ��g��ʳIw.�GэỬhI�.>��$������E�=���g6�D¥���4�a��"qݫ���*~i������o�K�
�o8�4��6�>�Rv������D�,��{�j��?��d5aja�a�~ȱ�vlU����/���6�g? ��&����{�L{�V�
P��1vj��:�>[Aئ�r~l����������
VI�K#��Dc���)�l�
|
Z3Ʌ( 6����8a4�#����[��s���;}ظ�ޢ��F�o�g�A
><�,G�ȱ:E(3�s��
�n��k)�����;�ڊ^^��_�~�7��ZywB/�|�<��'��e�x�r�m��E�O���t���k����ʷ�}|<&��m�曌K��\�V�����8tD
�N�k=��J(�d���������S�+ϧ~��W�+�����ub}Bf�OZ[��ߣ��~A��� [...]
+l��xH�BV1��'��8��������
��Ď��~�eѷnx����OQߴ�c�K�6��cy�p��法HmR�J�
+�3ڷ�ݟr�*�~4��(z�w��8tpj5Z�(�P[��^�Jܟ��W*���?�s��e�3��g����w�y
q���' k1� �5J/-¥v�����
�^�~F�� ]E[�8��
+�ז�w;���ɾz!�}�g
�<Q�#
���oz1�_$�_�.��z�� ��.�?E+����_�t��7�-���̀c� &��)�Ѵ�[�0�k�eO�����/7F�պ�m�&��4OH�?ܘY=���G�
�tԋ�8S/z���k���Q
G�*�A:7���0��}�t�_F�LM� �{p����m�=?�J+(�=��8*�I�Ȣd�yA[-���@�g\�![�W�t\���W�^�~7��$A� U�ī�^1�Eh�ݒ�q%��[�ߨLE:Yj�����D��[ţ������
+8���4�s�����Vv
M=����q����?Y�nH6�����0�-]`p��f������Z2E+Ul����&v���.`�˟����N4
��@�
+�5R����
!^�U�D��}��
�:O�gjӛ��و�S��V�T �ΪrM��,4�ͫnj&@%G��S��c�ߕsu�1�_:�2-�;t ��{��qM]r��������?�
�>?����O��m�w�:ܢ
�ׯ?J�P�%/���>�7H^���.�����������_Δ%�O�z�ﶸ|��?���_�7w��C������Oj�ONq�R���90�
�r��cO���zFrM?�
+�T�'
W��
ywI��>��W�'�*ͩC�B�Ŀ.����Z�k�o2τ� �|=~��'W%��7�G�T�|� ��2������+�8���$~������Fl�����&�_��ѯ���~���9�ijJ��B|{y��#f�}~�y���eR7t�x�癩���b���_1r���+ڷ}���tҁ=C���~�;e�+p���k���?��Is+�\
Q��b9�K!���q��W�c>��~����DG�
�M�h�ppZJ
�K�~e�L����2�py��n2�-G4�M�q �yu�[*wg[����|��.�%�v�r���X���{�+V��ҮBC
������W�e�Z �i�wЭ�Iu��4a�~��m]�5�:i��ל�PBOyC;u�ݰպe��e�%�N[���N��9t�]"Օ� ��Ć��fڻ'��R�&��>,N�:�
�p%5<U�
��xH�=jL����t��n4H�"*�>2�
s�4+Z ��Z
���EYS=����|z8��������A�f��:JfaԖ�c�TRKu�L�D^��pG+�I�����(��@$4�Bkh�[���X�݁�3��g�8�������;�p����H����T�
��i<
��0�̛�RY)!�8M�Z�1��Hcf����O����`-��8�-X�)p�����j_��ky*�7pTQ7�ͣ[m��vM���ES:ث�p?�'��aG,c-p��);���
FZ�X�h͂�y�]���N.�O2�XB�5Xj��
���l�Ƞy_wZ�ꏎ�`O��B��̧Гj���q�'���!��!3'��lg�G��v�
��b.j.�^�?���4y��C�/zn\����8W�mn�M�=(� �(�ȺQ�&R-t�W�#*;�������]�b��ޣ�ү�W������
�e��:��]��ej�0�@H�TDө�u�=���>����
��N�ݩ����B�]V[�0
l ��=Z���ka؟�* ����U��
g�Z�t&M��˔Xx�d��z�8;Z�&0ŷ�9��O�������S��
�`8�V�]P���$�
+��q�n5�RR<����eY��s�yB��=�m՟�R �
�
Q���V�V�f�l��
��V���m��xN���8�s\��W���ml�Sz�
� ��s9��������P���IG|5��4�O'r�2�+f{^q��|ןs
92�F�B-/��2�
z�-���
Ϥ�X�X[�>_�Jy��TGɦ�^��������Ώ�-� �O�Lш�~�:��9�Q���a��r��ߦnn��ݻ���~y
�a$�ϴ*�E�S����1l�l��KxKO
r�iսkf�m�h^�
��;G�Z������\��Ϳ��EAɘ�b锋��Z=喦Y��K8��ݾL<q,���}E2� 0���Bb�k�Y�5p�ٷj8�k����doցvׯ�
.�;�e
�����Q�Y菱f���i�2��$Tj߭��UZ���k�l҈h�}~�qغ�m�u�{^�9L���
�S��n�
�B~~T4�<X��ѐ9J>^
+��W����dQ
#䢆-F4��R�
Q�ޮ��N�^1kc(����q�Z��� ��
��&[� �a�&ڼ��z�RYN�V=yz
�'g��a��NMۍ�z����ً4B��2)ȩ'��R.:�!��m�T�����8ow���
zt�-��0��|Z��.���9~a�q8K� i��i��v�k��τ���כ[m
�
oa��ɡ�eGkF�7|Ȯ�G��&�*�)M��f
T�[yǓ;��z�{�5�<�˓�13�F�)XܝF�!��\o
q�q{�2�{�k)�/\��[���i��tվ_/o�!���3�y{ �x����lr���真�g���L��������F�Fvyn9����D|���F�Zi*�
�)��xf��6�)�z@�d�(��`�n�2�6e�l������W��� ��+8�ݖ5�
�V���z�څ�WP'E"i��o���
+4җn���-�Y�t��`����}_!��A�����-�%�x�����V�8�3w��~�.q~��W
�1}���j�[�V䧦V
+����
��a�f��c���ue��!�V�
�vi�ӡ�(�?Dj���t�O����� �|��
/���W��n�g��'������TW��#�T����7��Q拍
+���z��M_�N�ɮ��3�jFpD(�l
�V�T�]vm�*!N�j��te=w%+y��ۚ��[��,�]w���]�c~����:4�
����^��;��������m��V
�ϭ�{p�
��a[_쏻�Z��.�0�w����`�
+w�o�$�}%�j��L������+ޓ[�^��������TG�Ci�3�X�\���%@���|/S�~Y�:D�Q�6��'J�s�@@F���J�Q��k̅��K�ٚ����4�
&�{(�9�˸y��KGY��NY��-J�1r�Y�yQ;��ٞH�H� ~�ܵh��
+�=tJ�����v:����A�g�
+�X���rnPU��.�i�a��зv�\��
��}�o�vA��/�.G������,ͧA�Ø�����\���;9���=�p��[v\W��e8DY�g�cc�rv�S���x;������ӗڮ��
��G��_x6P����gXt�8�bv�&8 �����qt��x�ic��Ί~�G� �uA͚��C!��н�
+��[�G��즕aw�nmJ_�Ӵ����ڛO�(�q�
+��U�&����nO�
]/"^��LW}B�
kÙ�v0�
k�+���t��7~���<������>&�3�=Z��8��nE'�)��gti�R���g�]*�'��6v<9�i�}� ���r�*/ӽ��'�
CO~p.�qq\�R��$�zS��]^���$e�M�q�$�H^
v�T
k����Z*���Y����
+X�kˢ�<��1|�#tH0�pBs��H� �ĵ�X�ڜ\�<-E�~��hi�⎟��j'�Vh�4"MVN|��j}^�'WQYH��Z4�j��Cb�[�G���(�Uۊ�F�����*/��TZ����m�^��Y���-��.�5����
�tV�a{��G���iL��.����\�7�-h4�R�)�-�.M-z��z4��U�xÛ�uvAX���ej3c&OB��,0xP2��G�ΐЖ�9�:��zn �pc�"_T�����ش7j�ጉ!�(���R�B�dŲ�}a�eR96�����JM�>Rë���
40^���ؕy!7��r7}X,Pi�
EOٲ=���
��R�p��Z���wn]������
+á�ȹ��m�0H�u�0���81a���(�4�5i���sa,����Z�yI�aC?֊�Ղ�z�R�w����c�
0�E9;<
ע�h�ݨ����QU��yze�<����CQr�/��߹I%ym�3
[��Iw���y�����
+����֨U����K�"�EA��E^\�ܥ<_>ѝ8#Q
��2�I�� �sٓ�%�6�-�h�3�(F��s�#�S^8���}<ǩ��RI[�M��A'�ˇ2�'r�؞������ʔ�KSXx�f��1y
{��<fC�Q*ry�Wq����=�I+I���ܭ����+@�^�.����Z~�v��d��]��m�'Cv�]3}�@)x5�m�T����͈�4{��ܾ/;2����-{���J�?�!���Q�pn�Y�&L3�������e�<R*T39�
]��vLp]}���D�r�4嘍��w����sl{�y䤺����=4&�#��Y��kx> ���W�c5¹�Z.2��
⮢t�a���e�����rOm��&e���]H��.��>:h��
n�zg�)S=mk��z9���-:�H�^�OI��Bh�����P����}(z�Jv��b"�!ܳj�8Ҽ����u���5t�6r<<�*��& ���#Mj>;
`1�K����>���슲AR_y���o>D�����cK+�����
7��?d��"^�.k
���Nyb@][A�N� ��/O�WMf��?z=Gn唲�X/��2-�duVh���(o��\rr@���ذax��j˶ێ@��D�
*�rl�h7k�*0�Z�?�Y����I����� ���/�l
-��5�GA|o������
��p�'?u?��Ak�����1p�P��Y����)��n��κ�MYTi��RH*�XW��RX��D�Q�f���LAA5�1�*�f
A�|��4�8��������Ëʹ��h{�~���
#�7�T��`�
+ƃ�)��|@�[��/�힊SǪ��m}4Q�Y�B��3:[;`z�a����
�kĽC~��\V Z��ԋw
|n�^����0�����H�f���)��J��-3�j*���F�y�
��
+��䯶!�|%�4G{ k��lZu��ȉ
�`���ɹ�
��@���]�יi|K�8]��F�Y�_y�ǜT� � w��D̽�ָ���Ӭ�2�d#1��u�6�nz�*��{g��
�ԛ����<��P�X��*�ѵ$G{�l8�w'6S�!�?����jV��
�юL�Is�
˯J�@G*4��-��E�L���\��li����&;�n��������W�Y�"ݲ*"AM9��`�:��}:��<�����Vn�F�8��u �o�
ҮF�FτyE�>�Fz��"���L�V��5wV�9c���XM�ltK�t��ϻ��
�V�h�0�)_
��e�T�r��a���Sߡv�E�}9��9�d__��}��Wg�)��aY��Fz٣�XT���g�%q)�����eb�Qq<M��C��)��`ce�1�nN]�� �m�^R���)_[��.�9u����9�]&�6�Q�(%z<��B_w�����{�p����{�
+Gw��:i�`�ؤ� z��/&�����
nP�nqo
��=r|�Y��V�u�����1�g�V�����F2d��kϙwO���Zͽ^S�XN�p���-�6I�>XO�7a�S�ݸ����v±�VL��O���D�D��{n��x���
��'�����Y���GVÀ�v�f��TOU��V��De�aُ <��S9N�8�����U�~f�Z�IT�G3�
�h&��x�i�A�
P�27y#|׳)�Mfk<��*j��B�#8��#!����%Ga���
+�d�'[���j��2�jp-����3��7M����1�>2tr�M(+���m7O-K�7����:�q�w
G��6gf�edT
z��Bj�B��P�;�6���n�H���ͅQԿqY�ߚ�k�i�[���aE?<KxiE�Z��xڮy�m�FSV.T
�d~NT�q��K��վ���
�:
z��O��
����Ņ
�G��mNܣx
+T�SR3_���@ �Q0Co�>������mI�[��n���,-� PZ�zG4�c�F�y�r�!c���l�~<8� .�����b,?9��ܜ6��ji �qO�9;���bS�ޅ��Y
�Җ��uA
��[5$�]F��47n*��US��k7��E�
���&���L�#��O5�����4X�5�P'�2�?7n��
6|����i)<�pQ��0�#�U!�����X��n^
C�Ò�>�?e���3=�T��k�zΐf��xq�V at WׅV��)�
��a�uu�h���8�-Yd����x�y�tG�b+�����3s�d
���&��q�����9���Œ�GcK{b�ΰ���#�!�r���m���Z��QB�eb�Z���QH�(������u���::����P��1��L�
]>Tjn�~��/Y*�S�U��d�����7��ӱ�Z%
K2`bIN�s}I�Q
6��϶��aO>nՊ�jP���
+�W=�����c����k��:?����v��6����^�A�h����~"��� �e�k�W����䌊)
�%9�ZCh�'��b1�8!�Yq��͚wfg�߽�� �
�U�\�#e8�W��4jd�6}���S�Q��@��
l:���V��k�i����8�f�6{
����<�5����wJ�^��ę.�
�ja��k��0
��� ���x�����;�}�]`sX|H�qN��KrY7{�= &;M
;��
ֵz�&3܄�'�n�tY�q%]i�p�*��ٸ���Z��.�Lv��b
K��$�Y�� \ٞ&I�ǁ`</ۭ�
7e�>
���+��l���H�
&oM9g�wZ�mn���z� �"��
��(?�/��nx��q?�+.4%��*�=��g�;�<�baZX,
�M�L����炙��x�k�}���� ^
>�a�E4��qxtj%N�gĖ�QK�Vb�%�}�>�{�${�W�4'�D.�K������T�q-����oe+��9��8@�N$i'j���q�˰oo��h���U��s.���}_�4��^I���ߞk�䷳�i���ޫ3�`>�n��Vv�^E,��č��h���'2o!'
ű�����7m�F��C�X��N�
ߕ��8NP'5J
q�ذ�ٹy(we�� \���т�m��!�8��"[Nr�P���:׳:_��6���?6��mX���J0;3�1�d�}rd9�F�Livqi�O
��V�0�j���*��,�7靺#����x��C�g�qP퀵sf*�h{���;���JO
WaM}L�:�<,��=��;_��ΐ眭.��t��H!�s^3���ߩ6
y`������5
�%���$�RݛK��x�
+�#|�:g��E^��,?Ό�����!
�
��^J����=�/�\i�m�yT�/<�yj�1N�M����
��!Ft�׃��dsɚ�kݼl��ǒ��D���^"��@ ��G�0��M�
el��y
��~u
ӊ���uo1�̛���7x��o|�iV&��;7/��0 �i�N� �GB ���`�W�e�~Q!�@�
�f�f�����D��P��K� �[Q
:\yz
r�ɉpz�ɉS��� ��g�k���K�w;+���/4���Ә�y�K��ts�p1�&�F�%J����5K�c| �Qt���#���X�h��{�|�\I⬬ql�txl�(oǐW��3��d�� �姾A�7O�
�)[�uр��L��&��qǎ�
+���{a�7l�(n�[Vr����#�j<\s���rs�=��K
,�^�\�"#Z�W�� ��Y�
���9+�ߦ�z)�P,P�`^3�\��0]���E;��]�Oi�S
��a�>�v�|
�z�Kw��7�$
+��}3�����.�)sì)�:7ir�bk{՜)��S�,���L��Pb�aG1�o�
��m����jdp������//�z�Ab|;j�G�[��:�1��
�u�<[��53n�%�O�cW
Yq����iy�&9��qnU,�C����ȕ6�Vy�Tk�m��SLc^,����"�
��m��F30'U���Z��� �䚸�g�����7;/��Xn�����a�W�&��� �sq<��j�yuY���Su.
+N+.���*\��p�v%U,ɧH�и��{��Y��=���e�
+�z? ۭ~�#��"���Zj�6��
+��u533ϫ���-����P�G^�=�r�h�W���*?<IA��V���<^�f�y�߇d4���(
^%~M�U�b� AOy�?���4#P��$Գx z��Y$�<�(�����M�A
+<O?
�����i��z��^U�
�9?���ΰ�ݴM{� �u����U^
.S
���TrMF,�x=�潺��N�0�����W|q7#���cЦ�T�y4l��l9�>�w
3>E7k��-����拫)�ճ���\�
O
+�)�͆��p���h1y9�N��np�Rf=9�ޏ�(x�\YC��PJ!I�s��JG\{��Wb<�������p��0�Eq=^��[�P�s��q�M=�X��~Xs���®"�l�s���D�}���A���z�8�
���l6�;��9�q)�"�-o{gZi5�
;�/�
�
��ݑ\�Y��s�l�� �����T�
�e���e#l��St��������@�B�>�$=��[ҫ�F
В�L����@,�L���[����N$Mș���4ץ�c�IX��v�#��8Á�ّ�5���G�Z����ȃխ���̧�F�ۺT6�����
+��@<�m����c
+�|^��t���SRnGA2G�,h�g��*���Bb��e(��c
~
:�h�]�zMt^�8�-6�#U�Ǖ���Uݧ3ǧ�����f.]B
˛آ
�
+4��2~-ő�k�BfTc<0
�$߲��>aH��iI�^��-�h�q���n�����
��D������^�R�Fl�#
+��I
lNB�.={sx��8s��*-���R
�Zej5ӧ��V�j��C���tG���#6{_�R��t���·|pk$=�ew�D*Uϋb���W���{��
3���\)
b�6{}� ������D-f�����֒��t�����Pף7�R�4�F%���1sͺ67x5���ؙifń���U=_xT]`��B����6�0�c���"��c��F�wt�*XغV���R]P�
+~
/k%+�]3Pꍻܴr�)K�]��D��#w-
��s
+����x�x�ɼ����!"���Z�2;��j���+�#���j��.�Ra�>6���9��
\s���<]�vi+u�-�Et�������f�T{����D�W��L"���3�ޑu��i��I�
+��L���>��NƱY
v��s���sv��A�Y���a\���U��(�1�G��(����xtK�Hy|b�cJH{c�ye�Tʦ��<���c���m9����p��5�}���[NF璘a��M\��'��I�����I�b�
+T\�@� ������Y,�ov�t��K7 �Wԛ
�q�ё��k-�z�'�t�ljb:fEaUM�.NG��f�P��}|;ԇr\��%�xvsb�'g��T�@�;1�u,��1[� 3W:��>UiF�5�,�eh]��ɾgǦ�{v����|� �(��Ų\֘�������ש��Ĩ�/����-{<��S
��]�wf��i�
�����SԼN�L
��X�����fΗ{��G�� O��#�K�pוrm�M7䱓ע�8[��:�e���
Hc_Pmn�rՍSш*�2�=�ޙ�բ2��b�|RI+
���(�%[����h�^��Lj96߂�~�̔>t|�t�U~/�tU�k��4�h@�Yk�&x_}��G�%@n卪�ç��̒_Rs^����L��?uc)V�d`�
�hR�0�2|Giʨ#5�֟��h�纨Ç�.t�p��a
��v�d"�h=����3kԜAIZ��|<��'Z�
�Wn.K�l��ML�(VF�
���N[��1�z�r�@��Y���j�e��D���X�;��-�J���v�t;g$?$�O�������}?��̛v�2/�N�a�
)�6
N��fe����̆U ۺ&�E�O'{�a�g��o�r�
f�xuk���M��q#o�>�Ș�=��=2�{����_VR��BQjJ���kJ*s���j v���|_LL.������\�Ġ�v��O�Tr>M�:��YV��d?Hƾ�@���j9�r�U��u���G�**��h������F;��a�˙X�j\�Ey��U��
+D�Њ�Nj̥�d�])�G�Xҁ��:gW�ݛ>�v���2�K��cͥa���q\��6�J�Xŷ
^���̋�,�����u�7���Y��@��KZ�G���|���¤C�W�ғ��H��Z%�&�)�p2�s�Fnκ��;�W�ͼ
i�E
#5�頁���ϥ�����1
R2`R�7�;bl[aI9��O4����f��T���5
:������4Y�w�Z�xs �8� *g�T_������b}�9
+����ϊ��.ɞjƨ�*���u�m�
+i�f�9T`ӹ1~ ��X\V)��#�s6
>��5�]�����@SmwVzQ�
�E����
�����c39d1��6����|c��,w8`.�\gkb�2��4��*s�
��K�y��5O�@P��>Ku����#��%S�U����)�=&�F�S�x�rI o�wi�y�s>��J>宔C{�_�y\L[������bc��Zؚo�dd`�xg�Q��0��
+Qa�
z3��Ri�tՕR��V�p;`�=ȄЩ[�9V��,(@��쬛H�%�H�a6_FP]��҅�v��YK=�u�/�ò�X���HPgn��;2�f3�Us
+��];�g
�G�ѪV5L��M{�_������\;��]�Ym���^+==s3�\bI�IY����sw�y;�WL�BgIG������`(Ւ��B����btL@��܆x��T���
ɗ��Ƅt/�[i�6��\
�b�D��6�;^�ޙ�MU4�&��
j���U�ca
+�X�������q�.9���N��
���Voi���r�Hy' �
�ԓ�N���WŅ�v
�a�S�?�B<�gnj�y��^�W.�y
Jy�rj (��
uB�}Q'��=�$���M��-�`��f�bnyqW�ly&�ΠES��Rv�Ԟn��)�����h�WJK����-
��-n.��N}��2�)e%1��e\x )�Q��b�b
�=�
bI^�X�91[�&|0ٍR��=����X����~q7Ղ���Rz���!G3+��w;)u��D��З���+���y���qތ>3(2x��L���C�Z5X�} &���B�0o6�ԝ��m��xk�D�c�_
{ ÷����;�Y+���������&gc�r��ʢ��o
B����;����y����_Kֲ^{y��%D��4}p����%<fוvB�G�g��/��X��,�
+�M�
��U��7�6��%w�P#u"N�@;��lzMΪh�w8��I9Ɠ��(#b��G�5>��83SZ8�S>g�q/��
+����T؞��xOOU���{��@�D��P9:�U��t�^�0����(9�`����2�>���;��z���B^�`��6;�NC��ׇ
p�������e���!;s�0vef ����K\��X:��E�I�Z��\b��B|��!�\���ś�����&�I
v�*>z1��b���n�L�^��iF9n=R�Q�;/��~�y��+3Mg�B
"��q���Ռ��]�J
C^����>"����G��,���jQ�g��n�!p��
�o+��ô�R]=�=&�,��}�#��塺_P�Sܚ]m��x�h�a��φ��^7�C7P�x�
+���8
X
d][��W�1lx�L.�������X��B"��8�Hr�a��K��[f\�!i�G�
��#y�r��g�D�)S�
�p3t�M�l
+�i�x8V�F�g2oL�ێ-��fX����u�*�t�Ҏu��%� ��6�&����e�l���ێ���6hF����}k�A�����
���,+3iF���$��4��=���=��ZD=x��j���~�^F S�
ǡB]�m�v:�瞧��(sK�� 2
+��Z�������T�N���T7�����E\-��,898O1�
��D��*c�������{k۟��Һ������0��_����"��˭
Z2䤖�j�Y�3��q�����kw�~�ɧ�%S��V�,�TP��ӐNF�
��"O�u0����V^���
+��^*X姱���e�b;�n���cl��m�(�lM��[Z��h��
��jqs��w�
=��Q����1IZ��
(��� ��������e�N�ŀ��n�W�o�m��j��o$$�@���1�W#����!a�P���p��j�٣Et����Ӽ�K$o�ݾ
���vYd�`V�fqg3O�)0w��f�C"<ü�� `7�zcA>���/4��-3s�9����j�q�M?�]�[y'�,�1Kn^^���Ґ�o���%��~<������%vr�8����B6�����*-bɁ�(�ʗKKT��=�obd�J ��x at P3:��P�.���;}n�_��d�1���n��
�5D�&P�f.�
<D��<ܮ)ޖƶeS�v�n$��_y躒0�;�?^%Az�bir�o���:��J����Gɕ./FwTF�0M��n�,���
�M+�轥VUA
�J`[?O�6�)�W}J�uϣ�U�7���y��)�y�
�'l>Ѻ}p�����Bi`�y��� [...]
�hT7�,�.��F��r��r��o�4�
:�R�
�ѼHM~R�3[��s톎+�as>!7=z>�V���E�M��|z�
������Vf����K$�f�Gg��:�R���~�� Za��!���{�ۚ8��1QB�
���N�|$�O���X��F?Aۋ=�GБ柡������3�
����S��I�q��
,sz�����e�z�
u���
��\��}W�v�&i�Q\D
�r��P��`�?(��HV��G�<r����/݉���
+
+�� #X4ZL�_��<ľz��a��}���qn�$~XW�:|�~^T��Q8p���T�*7L/���D���}ۄ�̖�[�g++M��n�)��MJ�W�z
=L�<G%D��{uXI�Ƃjٕ7o�j?k�a��-
�3Jj�y��Ff
��
+��\v�)�PLn<��d�S<6J�z�S0y+�:=���n�%g��o�4��۞z���#��b��f�-�3����F����$m���~�G�?����$꽆��m�2Y
S�@}��/��@�
Qt�h/UC~��K�[G�M|�d2%u_�v�Y
E�][����=g�l�n���� ��P0ybx�9/�2��O�+��Y_�� �_
�t ����
�yH��7�&���K���} D�\��F�:�[�kT-o���D:����\�'F�ɤ�$���;{G��q�v�-S��O��
����R�
�w������ ��V~�Қ��V�9P�Pi�S�t�IQ�"i78��;��@����Z�ҳE�U��L(k�]�[�\��锟R�Թ��k �W�0z��T�'�T�
a�w��B_|
�����b3���7��L�?6�� �:0�.��+�m-D4-N�֥����f��#/+,�ݳ�k.�z|�
����ǵ���E�����B�Snp�;��by_G��-�`/�ɟ%�hL�O�,�j�-��~
�ԅ��� �*h�Y�7�
���m��:���q9;���f�A��X�G�%_?���V�F���>.Xiٯk����
��U#������H��
+�z�A�1�$��Cn!p3Vޥb���N�j}7ɜ��U�zJ�5� 6 �s
�����
(�ڪ�GU܃Rd�]W��J�ы�uw���m(-�
�
n[h<����:�@�ko�l*����¡^���:�[D
�|�L\��R7�QW�CHxP[��k¥�+�)DB9U&z[��^����F�
.fJ;�-i�v�X����-
թ��q��Vf(?z+���;����q�nv�(�ƼW{�0�<G,�V\p�!5e�����I��,p�K1��3�����3�\�ҼT�_�YTMs��z�ob��5�
.|��G�pA��;kf&�ob�|<﵅����Aoݾ���J������+ID�*٨+`ۈ,�Q�K
�*�3wl����<
߃�
e�
t*u�"R�Ɋ�����QC���X��b���юD)1�G�� �����l �@�2���l���6+ɪ �~A�� ��:��C�-[:�M
+x�usI�
���}��CH/F����_��-��p�V��Y`䎢Q���7�,2�^[hϸCv�E�Y at 7>���
e�^��Le6�S��g�ZV�����l�k
++bsnN�xR-�{H�6Ύ�H�<�<��?�W���u�*L&�\���4�L���?S<k�/*Z����A��+��_qq=�M��i��
�
�h��
ρ�_]{�D�s�>��x
W�f���
f��ӈ ��#�R�h���iBN���J�WP)ۖ�nw�d%T*�R��l�u��
ҔT�9g_��}B7m�?Y��6����jA
�QA�������<�����č5
�v&
+�N�����r�]:�XD�k��q��
��$����[�_����p=h���3�Օ9&�9�O�ON/�oњ
�.^t�@�.#kY��y6{�I�ܻ�����Y��Z�6g}�
����$3vc3�
�"��#���e�A��{�6F��e�D�r
�O?���� �p ���ٱ=�'�l5���-���ukW��w�kJȨ��A�WC���/oT�{�g��i��5�P?�TC�y�Y�so
��X57�3i�A#W��d;m���i�#��%J?t6�
%e2v���j#h;iu��/���9G��η�
�;�11ޛ�M��C@��ok8$�� ����}�+�
+N��n��s5c���s�e���79�ߢ�������$��9��|�������{֓��,@�z�fx_
$S���Ύ�T?4?��h����\�
�����d�
+0L��,�Pg�\�M-��@��IH�p[7���so��Dy"k�C����ń��ӛ�og���� ���'��%"����@7s7ߖ�l�£;ݹ��ŗ�ʸ+���J5�0��/���0��C*(���U��P{OK=����.���e�ۨ��� ]���yj^�G�c$�oXT�
O9WNM5��IuW &�MQ�l>���ۖB�qe}9�1��
]�l�GE�[��|K)�.5���˾E�Cj�)Z�>]]%!?�b���U��_�}��M��}zC�)
+����$�r@[[�����.:�W�hxk�����٬,;�܍[R�E͒n�l ���Ҡ0U �P
O�RD�s�w����U/���}���@���m�ul�2���f���5
^�^6�0���0h-(i�
+�
�oA�3�u��~�D�z��
v��Ѣk�ǭ�
��
Eώ�Iͅ:S�lQ�(>T��wM��L_��8��������
z ��ƥ W�
7�:���.������.t}J 0�c`�d#�Y�4���کp�#��PS�6��X��J�pȂ�,<u��{ �+����u��ξ=�A"��Mh�@�+�.vmv#��;�nW
������+��H�dӝ��nL'M;O6��~
5�6�ʒ�<6�R�m6v���T����1��D�����R-�X ��S5]#�Kw�����
���Gl�5*�uf4�
���r�9��ۊ{)�����2�?�
�,]P��@3�L|?@Z@�
���~hd��6�־m���s)����vA��H��T�w�EjZh��
la��T��K0�6Mqc����!� �B0������Vy��#Y�?��{��
g�#ar�(���כ��Y�)y��-
Uwv����nI��U��+�S���'�
�<�iۇWӧ����J���m�����5
���$�7�x�I���bO�L.i����*-[&
���i�O0� Ζj�&}�1��%V�X��ZG�z�Um�G$�PD��b�\��{��ovl�j�biQ%Z����Q���S�%2 at m*
�<��Z ?����ݖ�
�����/V�I����.�I,T4)�5*�w��J5�4����B�xb�x�"�;*Sx_������n����Jڒ����=���Z��z�Q��O��ݗ�_�;�%�#�����.��]#�u�,��$)�����+ ����&�����F�
�5qX��;Tn��ⶔ�o���q҆
̆Z��hI\��P�ؚ����
�Fa��@r#,ՙ��Y��~$I���\�ـP���y�|�R�v��+�1D�i�qu܅I�_2:7��b
.;���וVf�_
+��Э#r
1�<�4tLl`}��#�%i�.��,�?Ǝl��elho���������?q{S�O��U�����s����6������
��ܾZ�S�
�����)zȮ��*����0��i��J�Ix
zSv��;�q�,iqA|q�^?
+��Kwi륪qpUC��$�
�`��Q��\��-`
/�
��(�On���H�BPȖ
�|�Y ��or��
+c�K-�[no��!�fƵo��ߗ5A���_�5o4/"U�I�����3s\��T�':�{'��.5�
9o}*�4{��n��^ם�>W)�7}�
+endstream
endobj
104 0 obj
<</Length 65536>>stream
+�l�|"�N�ۜ�_W�+�[^�8F
.S`#���pD�̬[��S���벇��_]��,j��sO��D����!����
P%����8�=�M$EI)�F�3�
��ڜ���j�b?4қ�aj0�R�Ѩ�D9��=i��N!�g�z���:��c��e_Y
:|P�>�y���ʰ�{
^��8�y�f,`��Km$N�ԉ�q�G
� lC
ʼOژ
�Uu>Q[,76��ƪ��]��$��h�*��c�ŊƊ����c!
z��ϝ�z���s�g�*��1aSx��:��a����y���*�ր�5z�?PB
m�
+�
���y�7㵬���(ٓ+���&}rQ^���
�r,g���O瑵��퇲T\����[L�H�i.�)+��y��*���n��9� ���w�m>�;�V�%A��6�B�1�eD�Va�8܄/u敫
4�S*�
]��]z�
\-���iԀd0O6b��E�u���-��k������a
�N�Ec���FI:���/�pDXx�Z��T����-m��Q���k��"���)��
Dʟ���Wq�7�{�x�%�f��U���w��C@��(��`/J�o뛗x �'�����f�3rjn/�wZ{�ٟ�G��>�0��
�����le�g튓20
��vW�s���n�*�*�f�Y��L�u��FyX���
+���7ds:>Q�㣴�o͢xvYq�P�Mv������*_,
�Lo���u�6��z�1~�@컚��Y�앻m�R�^a����[��5�����]��S}�
V��$2���J ��+�~q���"��a+�i�ܮ� {�y��˧�Ӵ
\�9#:
�m
\�G�0�l�jA�}�����T�,�="a�L0�r�tNGL���.���R)̌�j;�8��J{�4�o6�3�<R�e���w|_���G����&T��Z�*�!�`��`KӚ��\�s}9yIU��_W�:G^�V����̥�
+1.�=�r�Ihiu<��
.\�wiT����<���Tz>+7�y�T���\�+��Mi#/*:AB[���4�|Ѵ�|Z!eGRo?
SE
+�T���%�9tʦ��~'��{Z*�܀���%:�JqHoQ4�
^��SU �l���L�v�ɰE��>"��J�m�u��qu�1~��Ga�r��k�k��¨��4�a+��JI�p�ȋW��t��0�.�F*�>9S� ��
�e'd1/w��1�~���q��k�Q%����]���S������u�*rmd�a���io��*t
b�Q��X{�:c�?�UQ�f���NI*�]��Jܪ���)���L��}�`��G
(�0�
DŽ�>��o5�KbC�����*�u��|��l&Ju3�ױIo��_�?9[�pP�̫�_m�ȧ�Yq�{�A+��I��M�`��������j�Y*��@ټ8*p�{�l�y����0�%�d��r�!(Z��:�"UA��+Okj�eM/��T�P��j
���
�I�y0��f+Ir�;�]:��vv�Kn����\�
�
+�ɐ����a���Z� �(�ݎ�3O�?�%�M(ڴ���P�:5V\����j�$�}V��sW��a���I�� $����h
SU�l����kh~®��ݸ����f>yEI����̃��B��A?�S��� E�*�0�
�:��S�t��Q0�/���Ō���6*h�������0h�ı��h��)��
�*r|�cBo��+ɲ��ޚ��Y_�]PQ���|!�Q>*�}���
+͆읖S
�.>7}���U�Sg�����3�eU���+ϔ���w̢��m��d��ſ���
+x\��Wg\n���@R���R3�
�]��D�6|�'Y9��`3�����:
��9�_J:=�l���u���xU�q���
�0X��b������e`�
s�eɈ1�MG�7�a���y߀�c4bz\>����ȝ�K4�8
z��x��`��\R�9ɯ�A��
>�=VzKej1�_��L��c"��R�7
+�_���p���
+ރ=(
DOWv�+�5���R;7������/�hS�hI�^cfx9�=eX�x������.��{�㡐�Ai�y������+�L��z��/O���^��7*kSS�vO�5��"
�0� �K���*��6�(��:�%tx��8� ��ڹ����8
Z06�M���
��л�g�K���r�I�?�9�w1۔#��vc���r�L^��!�I=}�n��k�
j�|� ����A�L*���5���
Z��R�I
��z�O+��[��R�v�o�V���5�i�n_X����(�A�%�=#�+O����P���d���.�2]$1��-*�]�<o��������
+�S�6�U�,WK��t�q[2j��S���O��}sc�����˓����F�g�
�>GN�J�H01wh
+v_.W�I������:�`�������|�lR�J�+ԓC_����jM��Ҟh�W�蠿ݪ���}�?���V0�����n����c�Yk��S�
���xf��$L?�4
����^q�}�o�k��M�Iڸ^��ku���8(���T^n��R�¨��nm�%�)���G���� ���Y��QLO+�C��B�Y_ͤv��DE�I�ɠh-җ�?�Ed^
��ڝ1q[���Px��_���В�~�fFm`����w����}�Ԑ��^r�s�f^ChA��u�^?G#Ѻݞ��mK�#�2S3���
+�U
�=79��#�|�P�>�܈�o�tì��F��!�l6
k�[��u�L��>�.{ :�����(UoP�%�M퇻�
�\�
+�t̞���C�7�p��}5F���\w`�q�|���|���m��\�6Us�ܶ�L�Lv�]xȦ���T(�
�
;t?v)/A�܆��"�nH
Y�rwQ�
+�s�/�#t�>Xyu�[i�풤���wc�j�����xU$�o-/��1������\���1�9>���{ �v�F
�)��8���0���|I��Q����_,,�.�@<�l��NӋX���5�#���>�Ǵ����w_�jK����n��ZU3ܲ<-���\��Һ��H�#�3�('���|�v�ˣ8�v
+/u�� �g�\D;u�&W�
H t����
G�
���i�����%iU��!����u7C��[������;����
L�o���?�
������K
G:�E�̩z�´�d%CO���3F���!�gi4}�D�a�QҾ
ׂ���s
������>���>`�.0�ƫ�S�`�WuѨ�ͲCLZ
��d�#ٮ]{U���������˚20�@�;X��z�e7��9u�|��y��H��ۮ�|
+��N�S�8
+=� �r��H=�2�����n�;m|�,�;N|��N@�y �>�)��������'ߗ�_]�|������b�R�\�
�;���t�p�.��J[d�I:�
2
Ӧ��T�� s6#}O���JV�%��H��p��?
l��÷V�0\3��b�T�����VP+�g�2Z�ҫ|�A�;�/��*]�
+��v��,eB�z�� s�/4
8yI5���h\i=T�dcެ
ڵ��)�F��8�
+�U6����\����B��@i���J>=<���w*z�p�.!��$����q��R(, at e%��),7z%�Y�ř]��s�K�n
`��#yYC�6��
�#�Yܝ ��:�O�Q��>�VN��
+}A!�ߛI>�ř-���>4|^lH�[E�nm���_�Y���w�p�RxQxCެ���LC��6e�FU��
+�Q��P�'�{n���{���!��C��4�,/:S�.�i@?�,��2��=�T�
+m
�IB ��]��L���-�V5� �
�
/�l�.�K���{@�Wx�'���$�
&��xJrP�cV��튂��T�QZ��DŽ9qq�
�
XY��t��R[ �D9���
��
�����M��*����(�zAl�����_B(���?��Ȓ.r�E.��`V��F�5h�D�X*I\G��|��?��t�8�$ҽ�G����60��ZL��Igڶb�\#X�]k�WG��i~�n��" ���>�n��|;�T_�==�\u�/�'W�8W7$��
;�N�s����,o��g��M�F��_�o{v��2S���%
�$�l�1j5l��h��2*�����:����I~t]فE��i&
�K����<J�
+:<-��`D�OZ���)
+�a�Ml��B�#�g�M�V����iF@
$;�#i9�y7/w���m_�
F0�'��
��ogi�0+�/PSн�KM�;(�~�p���k�뙕9A��Ie��܂�ˊ0]���������f-旉��W���~�_�6G���~Ty�{�9���$��Ra��i� ���[!Q�"Wo�c{�k#�I�%�
��_U�I�0/�/��f[�.%�k����P��
�7�^y��I��m6�L���sFw��uck� j���1�PƋ�i�,����f� _?g(w����P7�ǹ@�
�b�k�TZ�V\Vq#E.8��VKM�g]=�
+lg\�no��ܙ�s#;��%�Q��<��t��*v��
+��}C��翉cO�}b��:F!-4Ǎ4a���@�{ð_�o/$>�$ԁ�E�@\��W�i at _�����N�
���C
+إ4�[�bkæd1O6�h�vU/<���#���ڋ����Q���%d9bl�$K5"f��x
������Ř���x��N��l-Lq&��Y41y�HP�̧ZQn�cڒ�D�D����1Liή,�Ç�էN�����W{�7ƛ-]�r� �_D�4��(p�$��œ :0ΞS�!���N��G������}H=g�>���C��w�f��J��Vok>k�+Z�"m�(��v
��)�+a�Lz���#�*�դ�a��g�G�7l���f'�D�j���
�r�� ��V�6��0:=B��:
i����}�X�a�ʸ����'�TΘ��IJ[�������:�Y���� ���Ah��S��o��+&������F���w�*�o!�Nu?M��q��jX25���<+.d�Y_k�/]$���w�(26c�5��E�]J��ڠT�UM��B9'^m;��k}����Uj.���Q��ީ��§�/��
+���P�Ⱥs<(
v�dwCB260!��a��5d�Gs
y��0:�N�>�B�An]�r����3la�u��=�y\ l9�
+�:���S�θǝ�JĖ�9^wؤkXFؑ���`��U'3X�O���d4Иe��:xSv-�eޛ��g�~���?_��
��3���; �R64�g��h��K�y��'K��0DY� R��i�����0o�s�,����:^M�=��Eǫ
�=�
�6IN��cn���R�|�k�6[�$�f�5�
+�B
�)yu+�|}3~��p��"u��o�L
F
�|I���ֻcq�����4�͕�H
2W
+��IBK
����S�ȁª�YPH�e�5�)�֚��E� o$/�Т�X�d���1�w��o<?��ґc��1y�SS���� �Ej��@j�~�
\���z[P���K`�UطG�<��ݸs�<����9׃x�9������j�۴w�ͷQ�S
a��7��w8���!�i��-�2̽��N2��
U��.J�OO
�+%�)��{n�Zħv�j�F(l�٨X��|(o`��!/��fAp�;g��=�EO�U�;CR�q��٧��@�4R��k�D%��w�w+��(�����BN�QVB�/%��e����r�
� ��g]�Ҫ���^�P`�P+�
i.߆�^u?d]3�ښ
+��]
��*ͧk�)б��>�K�E�)A�(�Z��
+�Y�m�=ӫ�OEۼg�|�ME�-a�}չ�(#=�����$
�QM�P�y�z^�H�Is���e���o�R��\b�ɑ-���w�{S�do�F���DL�$�ņM(��H烙,V�
K�`�v'ry�]�G���Nr)H��-���ٕI��
��x���P3��ߩ'_f\�c���~u����rj��j�$m Ջ�]]H6��19�*����,�-h��
�g���33պ�gv�Q�,J�����
d�Kg[jԚ�Q�L�=��5�5���5墟�e
#�1�H�EF!�i�
o!�+���M
+
��3=���gkX�����{����J�gZ�w4(�^ل��
�����p��Z#=Y�b?����֜�����.�4^�hO@����:ov2��2�4�]��� �Q��"W/�C#`���Eol�_{�� ��QڃfZ��G�
!�IE�Za�vӅ��-8���4.?�&��T���
�k:�T
��+
�T��?I)v㒫
+���rb���X{��;��
٠�ɳɼ3y�U�4-�4.�@<L??�����,��]��?2�j�ƹ3�W�
+#]�j�K�ҿ�F*�l�n��
����p�*UM�n���g
�j�����@K���0��
)��U^UW_�����E�E��F���oL��=�Oܪ��>��L�t�F�}W�Ԁ
�ʓ�w�z�T���{P6�
+�My��j�G�;�?F���V7�I�MjSc�Ò����8�^Gz�N�/�ݭ`h��e��~[���>���Y�9��~����A�Gַv?�
���ժ�Y,-�
+�/?�EEt�˵*Ib�]������F �X�k�Æ�G����y�
�qe�o�Yi;ቴ�K���͍�|�V�?�?�M��컎
���F�Fcz��f�j��ɯ8d{_�z(�Arv�
`�kv���ZW��h�/ (�
�\��jtz]-��#����6xth�l����5�I@{jz̨^B:�����y�S��O1�h>%
���o$;��6f�
���8���Ph�kTGQ��B�}
��S��U�V<�=���>]�u��Q���ɖs6�ot�d>X"L�tn�
�Yi4�i��k"^��KR�5�8%��$t>E���r-��
���aQ
N=]�Z_�z!�$]˺����X�6o�:=ͬ�~� ���
%������R'��2noR
;���6��#&��4����땊��6��,�'��@��$`�S�0��4w*,�pcQ5���5F��Z,�I.;���Q�F�7W�
o����'�kbS���'|�l,�%úf�f"�^i���K �HJT���t��&e�
�l
��t0�(<�� �60�kPMʋ�
���a�k=،`�ܕ"7F���MC$�_��40�����iE;����곴VB����y@
ir���� �� kD�s���Hg��$�u��:����ľ]w8�ނ���kU�.�BEC��{�I[
+*
&��ǎ�gR$�i�w6�i~�ľ
9����>�uZA|��|�����
�/]�Q�g�`^Q�3�
l��w�}�a�_��#K��ΐ��x���I���пk�A��̴���x��#��R�"����b5�8�x��
�ۢ��raS8�� ��
+�&�R�j�H�!��LV:-gm5� loۂ!�2 at 1%�@���Ku�К����E�4��U�L{Vh��5����q�g[�xũI|�"�+��
kώ�U�A�<��r&���D9�^_�u��� �c��цxㄌ=S��h;�T �� 0c}�E�T��z��G�����K
���ު�
Y_�[���,�\���~@̑����7���#,v��W~)��?0�nk�Ywle�,��O�m�43��-j�j���AM48dy����A_���>nM�+�VQϬoƕ>�S����������
�rx�/��qm�<���ٸ�TX9
+�`õ_���h�Az}� L��֧A��Ƴ���m
��
�%���b����Pae��wf��vo8�F���;��
�
2�+������/P��5O���տ����7g�ߚLO��I�H~����*�;���F�}��o?�O�% 6�D
6��Y��֝N���C��]��Y�]��Ů��<m�Τ���祖K�� K��n��(��4�*�6
�����r?y+u>i�
��?8R��n�3 nC]�Ə����I�̛/�|F�6
�?X��I�.�I�n0��N��^��O���mW7|>c����ۺm}���θ(�l��KĩMw���g��
m��� -�g�矿�C��
�Ykb�K�C�6C� ERwT�h;YE{��F��]٘�[�m�%�P(�s�r�?b&L�
=y����QIX�0\R�٣}��
v�H=�L���
+)vC^���K�W
�-
�bR�h�Ez�V���n�&0�
C�x��3�����0po��oYj�p�}���<O%��
�E�G�c�ͅ�h%�o[:���"7˶�`q�bŘ�x� �1��+Q���G���k����P_-�7/
+ާ���+�.��C���
�#\~9��H�ҷ ��0���J�q��(m�n%(#�
����ѓ^>��
KJ5ҹH+�xկ���L=�u*頯$W��f��&z�O;%
Sw�J�H��S������Un�gm���#+���W0IW�m�~����C��㣅�8��֝.�H�SV�苨V��D��t�
H;�LTq�A�4�wt+F���._�JY��uZwUs{�:�\���x��זN�G��ILl�w+
+g@3���Udvw�<Mj%��ʶ��u���'n��!� �?+��>W�2�/A˕��F74�
�N��ʎ9G�+w��9�
�mCa��+T�>���/����t��f�����B���D�X
�X���yA�
�z��?�fæ5�<�r=F�ٔ�=D*�08Ss
+�h_��b� ,W}��c��E��@�w��n̪"�{�Hd���X�
|�7�cƁ��i,�"Uf����>_��qu�� ���Y�$��ww�Np}�K��}�9�[�ŗ�̬5�Y�є�ӡ
+�H
+,���9rWk%(8^y�b
j�|Ӏ�ό�l�e��'�M�:�ba#��Z�2XkU�2ÅV<&�a�EG�`1n��f��oJ���R��dQi�E_����*�NxO��r�J3&]�3���l�6���J%[����
��le-F���>�&��-�;� ���Y��2��n�`N-�!�X
v�߲n�I��Ů�
��v=!������1
�����
�7�0%�<
�5:y�CKx}�9}��9��8/�@m�
�A����!-�P4��鐉���n��lYc��ݩ*|ޝA��k<�V)u��_�$��D���5I����3G҆W�ziۭW��*,��uAvs=ysP��s������e��<Q9���jc
P�ZAW�%�c��
KRi�9Ԙ�&Ar�X����Xlzfw��r�K�X�������Ŵ�:^h��e��oJ6î5�a=�N�Uc[�@�^�4����VIBQ���'jG��̇��hu���m�+��U~�j|��&0_��n��3���t�
sQ$^����T� [...]
+k�שd��nMn�$Ϊ� G����x�E�k����g�#
֮�P��c��� 9��8����W�>iÇ������o?�7�٥�"Z?<�ۃ�%
�aRsm���
��=0'����(]m
8E��w��1�lz<:.r��
���~���ڱ]q:;c�9��t�bÖ+�o�M-�ӒJ����'��{�g`7���(A�������!����l�{qZ��Ɉ���Ld��fc�D���L��([�3�q��z�a��K�F6�h�4��#����6��D'�%�b�Ү-4p��P�c4�`���[=ǐ:��MW���F�� 3�#��闥%���J/s��Lgs3�
�uRRzmO�W�Pƚ��8۔M9�iŮ�ׄ�)/_�g�A���o~W
����L�4u����w�q�o
+��eG
�u���W�]㏵�_ڐSg�$`�H���=��tE���gk�nܰ�o�_�J��pJN�0m��C�p�@J:���R
h2uN�Y3l�'�Ϯ��M
_s���B[�v�wc�س�ڌ\�QQ�jU!�} ��(��C��y�?dA��"�Dm��'�!x��J`
N�Ǵ�,O�;�m�a��I��h�4 �J�k�
MxY��&B]��y8:vtuwV�9�LIK�
UI@��Z��J� �r
+� ȝ��"�*��B�ڮ=Am�o��RGn���M�(�}F���K���vD��"��,�
od-(tH��WS"}o
�R-o�q������f��
+�s�?���¼GqO�j,`�r��Bb���31�goӁwV��;�"���J�#��n��'@���uj�1��'�Un�ޞe�G92y�`��7���/!�g�U/�����k-�ivԇϽm����XK��o�[�^yc'L9�?����^���Ʃ{ѠB'j�����W��[��=���D|�a�@�nŗ��d9$6�+s�T�6Uqެ�`�O.�t'դ�7���6�jϑ r�������b�gϦ���7
UE�љ�8F���Y�
7?��of8�k��d���!k��i��
+s���s��Z�"��W���@{� �yh5Y����b�܄�F(ʜ�?�M�B-H����6���
5���0T���y�� �1d�Ru-�v�
+�݅��4��
+ �(fm ��vN~
>�I�,�P[�`���sMIkQ��(o�%rZ�њnU$���y�m��|z�43�E=�����27-~���1�����i+��C�p�Wk[�
)�:H�5�
T��
+q�βPn��W�3�_~�5L����IMߪ�x�J���-
�2�b�z�^~��- n������`��z�pz������@?L��u2
+�Xӧ2�<6��]�b��b��?
�'ִ�T��Ƽ��6_W��O�ͳ�;�'�����^��n��ь�
�A�Y�զٸ�������RΠ � �����< 3������̀
�kxٺ\�!�����X5�YΘ�u��
+F��|
;.p�Z��
������w�c3����l�,A=�P�'�U�$
+c�1���^�O�1P�Ҷ�O~n(�������
�#������̣�ӂ�GQo���
���u
i���
^�����Cr
cѦp�jv�V�6��NM�A��e|�ñ����
0a6�yh"��CՊ�$��W��EՅ v<�>%| c~4:�
�����H����)��2x�B�1�A
.�)�F?�����[`ȉT\^�E�"}~�b�^-0։�e»�5��� �&2���G9�Qj
�9%,$�_퍳@�n��=�lG��tڻ�)0/��U?���u��;�w��\dz���٩+t�!�[C}���|��3�!�
�IWVw�|��3~c��3�I�x�:~s��C�`�<oeWv|6~���|n����r_���<���c���_p��'�d�5��o�AL�x~����.ط��S�����?�T��'���.���v4*SH57N�R|F
�w�/'�,o�m]j^�������%���>Q����k}��c쳪�Bo�̇I�+�x��þ��B���#�Un�v��7��]'�ϲ�\7����V��Ƽ�=��8Ӝ�����mG6�ݾڥ��Qx
�M�9*�[��k�Ml�S �C�y�k��:���c��-���N�Ӟ0��GxC��
+k����|4|��K�J�<�k��b9Mj�o��(?���K.T~u�HD}x
�Z~]�n"�g�\���CH�vˡ�m�� Q��p�=`�;�
+}%����MP��h�V�L�Z0��Ch�S��y�Ɖ�ma�uP
D?�"&G��-J\#��5�
Kϗ'��X��ƌ]n�v��-`��
?Ζ 魅
���8�;�j5PeJ`
k22�.��
}���t2����.�^����e��a�
+֛l����,���9�B:���k��7$e�o
+Co�=���4kڤiH�����՝�vQeǮ�$nH�������Ly��Z�|�H�
���ΖGC�t�z?S=�n���;Z�A����\�����n�w�,o�O�
��^e��4��f}�����cw?gOw�ҧ�ǥ���}��b� �YZ��t�Si{�َwL�e��;��r0?�c5�_���0��Z4�D~�p��{��Ϡg%��#�cM�w;X�U�`v�ܭ.��u� g��ٮ�Z�ĩ1{��nKiO<ɮTK���oqH�I��}��1�,�[GY:ċg6L��M.�X�~������&���$�<&]�s�;^�u�Ju/��J�Dϸ
�rAlh#�n�
�.��?�i%N����g����5n�N
��fj�a�bT�U�L��B$X���O��ah���/�A�Y�
+�ĝ+q��W�m$>ҎrK�S=�:g�1
��0욦�+�K��A�Hf��l�� ���ZW
����٪��5 {���
w���X�s��eT̎t;������r��!���
+��s��@ر�puc��NPu�<-8���©���iR��p��i-r�y*�W�V��Ѓ?�V!G � �� �T+���żb����y�-��-��ȵ�f�д����i��b�#�=j���}�P��3�^�JߩVt��"g���ʍsܮ��B ����2��*E[~|,�Q��b�L/�jϞ`ֲ��@�M���W���B�cY�|��Z);ڋm�a:B�q��q�a�~�Or�on
���>R&cügj��B��T�\�ez�ڃ3Cy"n�=�l� /��Զ����Y[��|���<�{K��O�/�VL+-swu��݃��"
b�u۩�Kx��ܯ� 륭�s�������|��4���W���%�F�8�
����
+=���n�ϒ/w߁v��d>�/�<�>apeګ��s뜫�� ?�dX:"��.1
�M���5y�ݼ&�>��οH���V���<�Oe�v�Z�\/�Ğ�Y��ׅjh�l���
'N��1}�
y���W[���#�ƭs��s�s� MA.
�ݔ��3�q˗�Tκ���
ִ��۔���ROÜ�H�/����ܦ��掾������ ��a7��fH��,�M��A2�N��-`�[
"��E>9�w�UF��~����+���B�ʽv�
ٔP�FR�ޏʰ�j�|ђ"r����
��*kɨ��i��I�
���>�h�N�)To��Ѷ���ۏʑ�{�_����w w4����o��z��n�����o錥J���Ύ���t'��!o��k�R�Rf4��{�A���G�
lBj���u!��l
+Im��l���jJ�h��36;�L�b���Q�tZ��졆f���d��*ŝ��71gS�Pآ
��o�G�UN�e�\ ��h�:o'[�H��/�t�5�lc�z���=4�
y���٣Qw�
���y���m�z�L�I���r\~�3Z_l
X�|�H�,�dgc{�-�
+Z���7��٪\
[U
+�Џb:��M[��3r��/~� ���B��� �
ZT�5�S��A�*<������t��J��hC��� ��2�#
��f7-c7��"*Ǽ{ؒC��89��
_����aF�c�S���krQõmtؓ�xi��C�:ս�8�:�^�W��@7�S��O��>��)�@��5���r
��<��K�����O�1�V�3^�.�-�8X)��n\j���%4��V�K��+
F�o�� ������͔���HH�JG�����ˤ;�§�i�~��}�0���s�͉[>E��`�g�W�I����Oq�i7�9\�3�X6䱖�+'4dDь ���
+9Y�\L�ߓ���;����v�_B븏�
:�Y}��^��=Z�#I�U�K���b-�{�Ęb>��J�F��
ﲮ�+{�=wվ��Κ�7��g��x5�@n�]g`�,n�
55��0Y�ns����B�K�����X¼��E;|$���o�⧤�K���ape`<�K2W%�
��큕��%8��È7&k���,��E���~��̲�Gp��D��jn5:�h�Ls�� 1�#��9
ǚ�c�h%�ug.?� ]~p%
�"�ǻ\Z2 �a�7�mӿ� �&E���n��ߤiD�h�znּX
PQ��um*�Hi7:Q�&�b�z
Oe��n-'\��O���
;/�e��ΰ1�̧�).�L��
V�
�ޯ�2
���6�5�#%�ؕ�Ϥ��Χ��:���ꭐ:��Ԥx�Ѥ9۰�ycm�.~�F����RK���ٳ��r��TLy
+2{��>$1���ֹZ7���Em/7yht/_
<��
��.�Ͳ��-��W��^j�
���+�"{���j �Ҷ�l
���,�V��Z��m�W�?��浃���+7�q��
9�;�~L���j�_G��
[)$�U�=���
+��Y�s��d;a
��"˂?N{7 GY;ު�8|�2�����>=��הc���ܞ��&ǜ�t�l��b��
+\s��B�F�7�m{�dbJ`��J���.g���/�������,)rA5����עJ2���/�I at I�]�F��'V�5'�!!>����^xmX��YVb�E�l��loL���-�$��ś�̴u��$R�I��b��͐<(Թ������&�
� �u��
�^��w#��s��+�i��>��ZK
$[ZyK���K�ʧj���eQ|:Imf���%�������
poG�u�Y�X(U��0��h�����0��.��l�Ǒ��
���-�6Z���>�e�hћ��
�g���8�T��9��
+ܑ-}
�Wf7���J˴Φ��cf<o,4����d���"3�r���(g�4Y��
vQ�~
�N�m9b�!E#�jm��p ��
!N�.S5tz����'뇖�A��f1���Cs ߐڎV��֣v�^Y�fg�>�1��U1W���8!��t
"5)b�o\�oo�f�{X�\1��$�
\2/@La�
^~�,�4��H[���?0A*쓛"8��T�mM��G���&�<R��:��7�e������ W[��ӿ�V��Hf��}�Nl���7�KE�k��A�|��B��?{0tHXE�������Af�����9o�
+˒tY�08t���!r��R.���X��Ί����@n�H���
$�Zwh
�L��k�W��{�4k��+4|�e�d
�UNJ��2g��9L
ܬ��*~�U����_rk
w2���J[�U���Dɭ�̈D��D��ѳ��zas����<0�V���Ss�/��_�V=�m�8���.m�&ˊ
+d��vE���Y:ةL���ȜQ�;G��Gc3O�
�Cf�4DŽ���'�J�a�q�t���1����ب�Tt�G>�#Y��9����kR�_JՏ�9L�ʭ��玧ދ��)<��mB�܍��kӥ�oo���mt�*c�xT-��P[��+���c�Wy�� �*����ZeD{�e�Q~��C���_�o���kc~�����f��myI�W����4�{MV
�l��W_��uݏ��9)������1�}-��'C}����
��l����G�c�ׄ��m�
���'��^�ɡ2\v"�,��Ɇ(�=��f?�)^�|�=�0{��e�k 晴�t�0Rm�4��:Ly�<5hi��^�
3g�_��ΦZb�����<���#& ���spuy����MkAJ�r�ی>�⺝���gW�|�Eb������` ��t
��`Ӵ
WEk*(�jd�5��¤
+)����ng�O<��V#�\�tW�z�
[d�t��A�ݲE��z��Y��T�:����Z�Q�8��
+�Z���������z�����5�*{j���aIS�d�
+���ť��Ʊ)�`jg�,�@v!�%�Գ�f�\OQ2N�0&����Ae��
�����������H7���`t2��RJ��&���>#�-�o���f�iV�S�3��|l�_�����h��#k�
��j
���5 �[K1H1����Կ�Q�e��lS_.�������� o��G�
+�B�RƸSi�
���`D��&u?�(���}6��]����
+������"D�S{��ϟ�[&��3%��X���j��҈.��)��8��v?+�L
j.f�z��-��N<�&�����x�yRjBk�
��Z_����a(@�㲝�Ja�6lOb�.�pz��֝�e^�u�i=�0��ڄu}+��A�xR����N�b&��$�^n�=ʸޙDw���a��C@�-�d;��u�٧�����s!�*����O���`�C��9���
j�yb.���q{���9B�o��U
�i��gbV�r4<�2Z�?�I���t�r-e�o�U��v�dw#�&���G_/�� {�*��vk��,�6���(�����o�)+y�B1gϛ�F˟Ҡ;Z�%[�HO���]9+���2�,��I�
+���۽��b�~��Vsns�s�F����
V3�)����:yюQ 0� G�-Lޝvﯨ�y��Z����F�h�9w�V�
%�!v'z�4��(�ŧ���7��IaH��k��\6�7�v����&�B[`���}y�<�g^Ţ� s7���'�4�|����(Yb"n~n���i���V��a&R�) !�7((A�ٷ�^�$�)Q�YW�w����
Ԥ�.��<�
�t��'��SlA�S7���})灵V
�ͣ7�R�9�d�X�C"Ճ�x��^�Wd-De.(E�A��)��Ì�E
+m����f�ڛ���ߏ�������gc�{����
�^
���"<�u�x,O�5��ޤ�;��}���u
%�S)>~>�F����p�$��M��|�<[�g��X�
�yQ��ku7���Gu�
����Bq<[1���!�j�����Y�'��}9n�Mg�o�\^�lG��v
��
_����{q��7�v�^�j ����=s�R���3���2Pv�����`
ZБh>�*6�Kʱ�Ui�'�}X��k��t��i6ȟ�@aX9��F��Q�Z�ꢇ����v�գ
L�b�V����^'�_l,Sk<�&$��i;1��/�k at t�0�I���z4��Mr�K;B/�Y�YZN�Ip��FY�T�_����c�w�+n/��`�'di�[ 6D�J�14�˺t��j���)��[��)I�_�G��_r��)l��؉��A�喙�4�qܯJ�"��%>� [�"���(߶��:���
���p� ���
�]�~U&���
ͦW#�=�j&
���6�����]F7w�a
�z�A>�s����zȗzg�0Wo[
���U
�����(���-Z4^���*�vO��h��J�y{رL��G�%�\�:6&�9��٧�E�"fy��v!.���[����B����oJ�\����^s�U
��w�����ܙ~c�~�,�2*�0B(�S��� ~��TA� �(��Un
��a���3��
(���{�x�c.-Y
���I?�@���"�#�y(�R
�/�5-?�"�n��)I��CGSg|
�Io��Oa��xQh�����df#����U�"�<n�%S�A���Ox���c�2Vl�E�Ըj߷ţ�KP�{���&��\����
���dg�B��4����N���+��r��)�ys欦8
���;֢�lٓ��1�,d
Db��IfZ<;|�0���.�, :��exa��<�ָ�%N�����t�70���nc�3[8Mu(���gܰ.9�>��
�B/7_5/�u��E̷���RN�V�C���L
�)����A
+9�tr�߅
�DO*,y-"�i��L4�H
��u��R�˄���R�`�{RD��g�G�e9�}�I�7ڭ
�
ɝq�'6j�d3F�q�;x�յ
+�!�,�H�
Ń\�B7uh��Q;b�̀9����}��~�
j@Ԇ.�b���j�3��
Hv�ذ2%��+� �*���R�3�jYz���A���&e(�U�W�O�c<�|�U�|
�o�-��.YGm��!���[��^���^����F+���Zrw�5�=���lp�����.5߸C%y
E�%���3�=�ӕ���W�З��h���
���W�
+g�G��qF�=]hKs�3�9U
K|Fd
z6PV�RW�ٍ��{�^>}�,<�*#����V5��� O
+��X��xh
d������n��KI$���.#�f���_?9g���̧1>��s
�9xu�p:�v��*bL�d�EZ��Jw��[��'B_~^�T_�1��?�^x�Q̽��I7^�_�j�>��)t�ʬ)z\���W�`�RnJ
>m�(�;$�=.)���%g
+&X�
+�Z=$�>���7�)7l�"Ѹ2
>�����ȎZ�>�H�;�!`e���r�I�:Sh�gdc
Q^9�PR�Za.L�:�by���ڳS�"�%��
�����!U�xa�ޡ傛T
J]`ܵ]T8Aؗk?��]A�4
�/Oy}P�םD�S>I��J������׀nL-�g�@��!�V�(��l̵hP�����_")Dڢ�
�NVȗ4˙I9>ϱg�����%�(m9�Q� ˷����ʶ��ň���IF���/���������~'j���o[�ݝ/
�^��U�<ѿ�nje_��hf�5L�w����11d�:㗝���\"�r���6j56�ɪ!�����*0k��o�9ڬ
+6ג��
+�o��|���7��j�ū�ִ.]�&"u�T���J�6����_k�)0��)/�_��
q��Nһ�\Q�4g�U桝cW^ �^����s�����f%'Df�
�Ւ��L�ׄ�Χ��6�F�GBɕ��K�o��
��|����R�k3�l��ћ{,Q�@��X�p���xx RMS�F�m^F��\݀�3�ss+L� i2�
A���
�k'��*�p�[���V��{i9Kn
�ݿ!��l�uTn�:�!?`�n:
+�U[�Q�v�ʾ�W��gR:��
�ɞ�dȯ7���Z�ᜮ�vo����LG��%�D'�B�Dvl �Ś0�p��R�%]���˧�Z@���!� ���;(�Wi��I+�5�j%��7���<(!�s���5H�U�%�q�x+�#���r�5,OC���Q��}K�N�iL9�t{9�EoEZ챤#��ܥQ������{�C�
�|H�`(5�
��Cv�����d���kz�$��L/�Ț�-I#Ɍ�r]uX�=��r{H���[b�����i��>
�?��3��6���x�H�b�C��Y3��(Ն�ݺ���C��xK�?0щ�����&_�Zw�<�*�z�B�0O����"
ZQI�#��j��}8���Vm?��/E
�� �wrX_�O�L�Y"�q@
��QA��l��TFճ�C���}�"�? �kgj۪i�'
�Z�a�F�:�sw�V��r*����5�뜺|mD2�M�+�
����{�6��rE~�w�E�X��}
��n{���qS�z�y[��5��[c@�o
����b� m�x~7�KK̯�4s7�8
,�/CF�OJ�ޣ�R>d�I��C�{cYN�d�R�xM=�;WǏ�z����jMg�J�}}
� gyQ� �4n!��
�I� ��h;��a\Wz6������AtW)�����ZY���F-�zn?iU�0��?�V���i{ۓ�֬��Kk�
�'��oS�y�
��?NJrѾ
����� ���WԿu��EL+蝫k/�~���\O�C�X�eӫ��
��B�4+�K�c{�S ���=A���A��DB���ЋA�*A�
� �X�r��A�^h��ؐ�MH>
Z�b[�4�O
�
������[�Ν���b�@���� ���?�lT��ZeH��>�M�ʬT����v'��;3�vD�J�U�i.
�p�
���VV[s�sv_ߪ�&�.�t��30��k��wyk,������ۆ��
C�e�s�$o
���i
��P|����D�@�4��5;y�Ċ|)��-g���V���]u�DW�'Qp6Uqrw��YJ�u�����U͇�
��
�<d��現d�7m�rMy�1zZ���jO�L1b/0�1� "���s]0�O�t�\
��C�RS풧�D
W��R�>I^�%�Q�h[Oۭ�g���*��ߨ���f�X����|����
�A��"k
�另��f����htC�,{"�v5#�w�FghN�Y�!M�_$ҩ��@��R�.���T���n]7d]+
ݰ����iS�]�X��mk�-\�K���
+in+�0�cn�.�Un�mP|��&���i�AH
�j�R����.��ci\���3��>��-��6���oy���y��q� ��N]���'g=���B�~�j�\��t���2H��_{���pާ'�EY���
)X�ir;�|\�[��л�ly��ݺ0���P�A��L��J����Mp�rt�{�I6�,6
d��q��˙�w��zEP��N����C��
��8����aȪh������1�y���N ����e������d�nr&�w4�?�Z��|T4
i+pJ���-��ED(�
�g�=JǢo�U���fT%^z�l�}����p�Y�-6*Z������&�3���8E����9�ǘn�pfSf�-�;�
W��&�49-W�ӣ`� d.�<n%#����z@����
+���*;4�
�D# g�^�P��O�q(��H�����|�'
~��
7�۪�v�~�2L��\����u
|�"+-�~��I���]߅��l
�_�
����V錓���]?�~��F�L7v4� �%�h�+5���2&%�����@>�'��,zF�qUk�O�fO�0��\e�A��ͫ�2����%[��;ob���z��n�ړ+�1����k�KקB0)�\�rˏ�垗���T��~��
�����o�ս/��Q�.���6\���I�X�B�h٨/�nY~�P�c7�Le{�;�"��1�^�8rQ���-� �T�s>'�@�RaL
�.Ky�v;���a�y�w^ ��4��֚B��
J����o���vjm��ͭ
�4W]�m-J�l/G�o}P
+\��{�u��kS
+^;��5��������$� .����u�����y at 8���R5&�)bw�
+�8��q,}
Ӡp]���03��X�ר yD�g�5��_�R0�m[�ԣ�֚�RЮ�$���Ǖ�j���ѫln
8���Zl �&����`��Q���n
��Bc<�%G
�*V*2,����,
��������Z_���/����r���5
���ܻ�gw�H��<�7{���ͭ���j�������W�e%;a���ˇ���$.ئz8�!�=�פ���X���9*��Ǩ�y��Hj�#���o��a���g5l�_�����h{�>H�-
�'H/���=�S%
>�$u�����������������F"��D}�e��CM�\����\�A�o�_;�>2��C�
�+�#�O��m9��H`��.BA۵R��
+{�3d�r���r�-�S���{=EU]��"��_$fA=����W� B���5~�Y�\6U7�l
��r���`GU�u��{Ma��n8�t���~�o>x<��c1�C�����_$�/�0�^��%�
\�50ߴK��9h=S ""es��6��dz�������z-8O46�Ѳ
Ю�k9@�K;o��2�k�i~<-롁_�D��A��r8]G�
�+;zj���3%J�x}���|?`�T̵�<�
��CUQ�ڕ ��;){����2/�� G����3���
�b�C
���u}�.��[��g
��~������7Y?gbGA�D���jΎ/ �[�~�4ȏٛq~�^��
B9�qY����*�X����w�Z�ݘ�����`3"�<��o�aN5��=:_(0o�4A���W� ���Ё/M7=uw�xEҥXt0(y
� ��x��H�9T(�%�
��i��굳���c#��@�s&�2�͢��0[2���Z�K1ѩ8|i�G���]I9r
��RV���Գ6 [...]
ENK&t�S���B���
���Z� *N|:
9�~?���%Za4d#�C�3�l�;��]{���˧��
�ލ6�
+@ռ�lw$�n�]�ٴ��n+�xr�`o�w
#
��Z),��A
�.ڝ?&$w���8/ vx�Ը��
�0�5*s����[����6.Ϟw��eM��5a���z���7w.�]~���>b�w��>a(_c.��F�_e��]Ř�Xn���ؕ�'<�����}s�����^%b�r�����_�XH��{�֚5�|�S#t�h{�qN� d��,`ʹ�IX�sk�d[/m�~}r���N������*��)�{��V k�IA�$�5CU
=N�5� ����}���
���C
�~�F�@<q(h4�q�j�5r�,�Lo"���PLc>=��w�?���*}r
����0[�,�)m���~�� ���{5Z$���S�l��更�L�Lĕ��������7I���rDG
e\��P������:��C�/9�vGB
9�]�p
#�x\
+����mK0N������ �{RF
+V�^��P���%1��5�R�ҷy��ͻ�Wz]`�X���r�ZSNUzGabu1�>)��Ȧ;�Ӈ�d�z#�)���g!���h�uX��Y�u�����l�v���В�{�!�J_��X�u3�՛�Lz�0�/W�"�~�hc{�D5��˝�/?��O�[���[U!��-��1;ä�g�l��Q_4�����t���W���Ⱦ�r�{����K�7%
�-Z�ƾ˟"8����XZ�2-"�w�ˁlzbQ~j�cj�k-|3iac��M�����!ֲg��1�3��|#�[
��U�
�|��
+o�j(Ζ��,��Z�ffΆz�K<W-��Z��[lQZ�h��
��k�p^�TE,sֿo��B�m��
���Y��f��M�K�I���M|�-3�٫P%A�pij;���
(
&��ë:�5���n�8�ʬ�T�v�КѥK|�̚祭.A���KD���v�<y��C�XcidM}�r��&��$�wC��ve�_]���o�>��&r��˞�Q
+�*��i?��/�R��>7q���tz�߷A@�/���=�'���n;'OxH��ޱ~5�g��]Xpt
+������oR^쩰�c�516g/u��Ԛ�p��V��X$y8���ar�
&�"i��i���ã{�c*mA����Uo��O5�&q���gG1*p�Q
�Z:7���_������K at z�X���
���[��]�YA���ʔ��?���Iu���� �@BF䐐�� ��e~������w�tGG4�JY�ke��T�
����-_�q�ۿ��ۏ���
�֫˫
+)�R�ϱ]�pc�#���� �����3������� y�Ҧ�^�($�������)��C����J�u&~18��2`Y6�>
��2���5�Y��`A
+�,T錮�S
���FP��
T��pi*�U���|�}��u"'�W�
L]=�"����s5:����Rw���4R�����f(��R�����r *��b����@l,�[ADH n�XAKz4�Ԝ����5tǘK��c���!��w��E}�w�j� i��K|�D���IK
�P��`s0
���g�t_j�[��Mǽ�;K�Ҷ+�<g,�~m���Ѯ�d�ًʻˍ�[/�r�,T����ߝ��p+�W�2��.H���D�oS�����-�~�Pl-,��͖k�'
�G���n6#���6�'��4Z��|�?��!+ny�:������8�d㼮
�^-̸�k��>����5�
?w��v�pq�tظ�~Y��h��
�F(H��_�+v/��?�xCk��}���{�]3
�)W�#�L�ZO
+q�O���jz}S�PɁ:��+������Z
�!}\�%��<3~��j��O�#�T�a�_kTz�FnX�r\˚�Bq PJ�n�m^J/�oE�~>m*ct����rȢ��;��e^TOy�V�֣�1V*�aL�ݮ���O;���I�ln�
�
&:��*·5����ɴj�"���v��*O�,Q���U�P��e|��ӅI�1���2^Joc��~��V6�P=���b��O��Ev�W�R�����$+�D�
"��� !�K��U�lc��7��?�q�z�t�
+Z�KG��4S�֯>�'��i3L}�)�eg����
+
�*��X
��9f������_
����e|�T�k*����\$
+$a0���(vk���b4�W
�|�]����,�Qz�iy����'#������"��v
�ʁ>��T�[��Gƭ� ��jOG�PVX��Qq4���b�����]�s�����r^�����'}�x=m�5~���0fP��� PL�N��oX�l�o
�
+�����GJ�N;��a�C���
�� �&��^E{�k�)-F��w���X���8�&�V�6~�ȅ�7�Qs���v�h(�q���˰_(/W���I,5�����!�Ê`q�qg;]��Q/ȃfo[�WP}�%�[�I�����#*���P����͢����Gq��颈�]'z<���l����5F�E���wb�@�Fԏ�b���[ �E}p.w=�'(��*���c�0s�P�b�WX���r�> �o�Tv�#X��q��r6����F�g*Х�_8�5�m���V ��6+���0g��ˀ���$:���Fm��J�z�b��a�NW�3
���±���T^I:,��=z��_d�!%䉓*U袝U"��놄���rML�\^>�__sSA���rQ|�m� ������}�|~��l��?m4�(��_���)��`���ƒ��d�
+ 1фْ�����oR��Iڻv�9�PB�ܝ�[�B����(�mJ�r@��(� D>TJ�= |����
�
�C�K��2��ʍ2XC����ED{�]�s��U����k��#_�
�l+�܍C�r�o�MI�mb��<
�ˆ�ݩPڙ�黠����j�����C��7j�V��KӲՕ�H��~z��Z��A`wr��6�j�ڕ�#��ɭ��+a̮-�Y�X���<�lXC��=7�|�OEF��]�V����7��t���f
2����*^�!Ʌ��8Q5�Z^4���{�ttO$�F�M��P
+���P�ܱ��>�/���B]&�P{%u���}��w�t�h�TP�g%'��������?���wʎ�FwHł���n�ݼmWՁu�Z���HM�_�
�N 5�c���~T�\��&S��C��H�4wِo�f�Q�}8�?���$�"����(����2;���1;2����xxaXi< �0
u��Se�'����Z�%�E�P=��"T�;��?
�t'���DGN1�'~�#�O��K��,JΓ�i9��F�֨�[ȇ���tz�)Ks�
8�`xLL�A1"&
��e7�צ��T����I�;7�nx�Qd�vU�jf���7�lK�U
�Ey�a�Ա<Um����y7�\�c��r7
�����I����KB�N ���`]�m�*�
�wf]�}�5
�+U�z��/�
��AdŸ#�a��$���q�����B�n�IJ�+����K�S�p�< (�z�Vd��װ���ŗ�j������cM1X��b��H�#;�g[H�����%��t�g�Z7������
�>�i�v(��U�����R�]���-�R7�gt���~�n b����^�g�f �tj�J�7
���-��i�ۿ3��@u�A���U�9����z!��B-���(Q�
+V�~hv���lh�_�JΤG��3!8�xU����t >.6"l�z�̿�]�s�?*e����~����,���K�uU���$,��Z�)Aap��������?�1��H^��Hv
�gOG���Z���B�� Me��j��~�|��j����Y���G ��D
�
+�����.�$�
b�+�pV/
�+ ��^hM��O�>�1ߕ�E�^
u�ߕ��� �*ֆ\W��pW��8��
+W����^�h�T�A
�`�����^㑖kM��
+ �qh��6�x�ʭr��n�� C��G�ڸ����!���Ps�߽Y�VC�N���.����ُz!�gp�^���Z��N�5%ڝ�8~�� �
���3�����N�4�A��ڌ�7��2�A�f�9A���
v:����a-���
�y����%�Y
/�QG�4_[��Q<�����Z,����Xn�d�W���AY�ǁ��z���U�?���$�������bT��F؍iQ���!sLӿ�]]�݇�3^�K�>�?A� *�
�P�� j<��h�
�� +��[��G�,����+�L���1�t���\�3��<e�
��k�s��:z,(�2X��U��'�T��k�1>��o���s�ڞ���w�~�Qk��9��2�_��Κ��~��n�̴O� ��"�l���\<o$�0��w����Ke��
\!�-�T[�N�H��|c=]���8��%�����U=��E��z'�
t��
�g.
��}(b�|(.8 (ۼW���H��mj�sgU��'�R���UUǑZ�a���'�f��O�M
+�
+��6�t���_w�ƝCݦv�P�0�P<j������wai������3Ĺ!1
+�)�����
칾|-l�_;��t�C��r\��
+�Y/�H�w��}[�r�`}� ?D�Z�[��H��>�t4\!�)��U�Uj>oNi�j7�ʡ�2�Gk��
��k6ZU�+�
���o�3l����
+�~ �%��&���/Ñ�ݶ({w�W��(�Y%R���U��ހ/���Y�0���윺5��m+Y�
+6��]��zΡ��]����=��ޘ���+��b
6;�fx`�0rB
+��O5J
+���fBƧb鵚@I�99�mꜳ���� �N63��\hz�E3Z�=���Xݣ�j���յR�ޫ-l5E�|����XMǡ�վ^���-�ws�b�fO��q[Z
�}�vB�!{ʋ5��S���I�x��$����O�z�e��Tv�{D������'�y��1}����(|
5*L�#���
�B./�h|+n�Z�F���"|��
��o��"��]�S*/Bq���j�.Ѩ ��[h!�g%�
����+��1z�ï�,�M�=
+Puw��,rw Æ7�
o�
+
�
��C��k�`��Ӷ<���˜c�qn+¹ҩR�a'��a�h��
��=
�}�3��G��t�eB��
�5�UC
Z(����2����Rjeq���ߠ7��+70�QO�z���tM�ƏƊ�i�.�l
�� �Ը���ǫF.
"����X��1$��Iޘ_�1A�|рڑZw��w-P��N���4���4�c�"<�XPr��C�����dN��-9���s��`퍑���Z��v%p�5=�ߔk����h�6��P��Is:�vZ�����h&}��M���d:������ް�l#=ع�����ً�ӎ�^a�\v��`��zr��
Bܶ>+��
}v�^��]1��w�:����'�:P���XdJ�c��'�8L�
�����xt �"ye0�}�W*�[����� ����?�����'�Zd�]�a�p;
(]� �ҷ�T��b�|����٥!i�V�^�zʴ<��J������j��M��W����"���>���I�^�&] ������A���F��l�qo����h3�!x�1Pz�A��78��W��q5i�/i���M�
f�����WL�,�
\T۱�� �NJ�T�<��M�&zLqp��`��pUc�~N��¾1^|x��7����[l2t�=يWUruZs�Ȭn���
� 4.L��;̱z��Ń���G�%p������������ƌuZ �ԅ�'4�.�^Ra��R�#�2
�J��8eV�V�Q�\k������
c
+4@��4����T˭�X۵u�?[�ِ?��5���y��-7=v�
��
��N!_Ģ���ݰ���hnѲ�G�ַ��W�Oӂ��ӕ�L��������@�C̮�C;�
���(�?ⷠ��f ����Û����q�Rި�����C��q_�Z��dN�B��'��Q�|��ڣ̳��6!i=�\��o,i�w���<0���<^o>���������d��:I���
�hС�"����'-���L�s�o#�ϩjo���^U��c u���9
��3�p��Q~
Ksi[ c���s%[Ֆ�Y�7zk�,��+�}_Xh�
�P�r}����
�%��Ekqrn�=DІ�������<a�}���'��O��
+�I�
��ʚQ~�
+���u�*������[q�*�W*Ϩ#��fK�T��\�S'23qmF���>���'��e-����/�8�-�Z��^{�Ǘ�����[H���-�u���|�+�r�"
�Z��>�� 2�3�3x���N�D=?K�ҡܒcsZ�
V����G�G�U��bҕ�G�2�(�Ugix�iVod��̜��nI��ɪ�R#�A
�w�ʤ����%�D�Y�l�ufU�]@J C�y����k���HW�Q #df�V�d���\_
b���zx��+��w�&�R1�\E�|�*Q$%�j1\���,��r9�rf���Y������cd��pg��b�|ə}�:�(�(���VJЮ�]ZY<GՏ�jpI�T�UQ�_�
��6��4�V�J*
m���hg�B'5C~�tt����ZM�t��ĵ9
+����,��s-h�t��E�mi
��5y]�Z5�DJ�ݫ��:j�6���5�
���7��G�=i���"~�
F���r�ަ���٬W�ԫ�<U������ڟI���
+�V�幾x�X�w���)�~{�F���YW[�V��2�Ѻ��w+eu�7tj�%��]=�=�1WѨ, n�t�K���́����jOr�u��r,�;��[�wjN
�艹��nU�Z��Z%=N�3��=��N�s�uǝ��� M�֭�G�x�@w2��kJM53����&~���"Bw��%�«d��̴{�mf;��~Wm���������e�m"�*
&�݉�J�y_�{�'��./��O���~�2���E��G�
�:)��Wk�7�xUS�7�v�_�-��J��ϯ�0��_�N_��%�'���;i��z���}��R<� �?\�
+�R�еICW�\�B�Pg�T{�YY��5}o';X�ފ�O���ݖ�.��f;�#g��atG;�6�y�� ���F���������ۺ�k���C#��>7S
`n��5/�z�
;%�6l��ޗ���~�_��7�������9�k��0h�5�J��!���|T�E
Ӎ�4߶Qہ��C\�n~����V�H}�<�n}��Vs��P`��bl�g\�ԫ}2��-j�мm�4GW��]���u�����`�-u�����y6���l6���lS��������V���RB~
�u�&W8hѭ����˿)-��+�����]�gw#Z=)s���������e$�O�@�
�y^��B������
����Z��j��?���lL���~�9�L
+�܂њ�"-ߢ��9�}v�>X��ѩ��!Z2Z����R�>�P�[9�OleӮ$Y�*���##nusP����<�S�
��%�C<�
+�,��T3�0��0��
����2�x�L����-.�f�%�F�������|~M�4~S,��U�)����
���4��j�Nb��W��&��؆{pEj����ʦy�� �i<���?����4��D��]�?�R���
��l�@
����d9�)hZ�l���&�+��Ra��C�^�pt`��� �^݇V��O�jy�*
�{HN-SHYQh
U���IO*���a\�N� �?u �"��nX��(u����?�(h�>/Xw�t�Y6�α�l�g3�a0�o��ch�s��|��oZ�2IU �uF����\v�s<�R%n�)���6^��Mh�i{gk���
X2
qB8��{����'}0̊'�X��ʛ���h&��/F��//���
+F��Y��,ͺ1kS���Kj�^�e��e���$
żPF�z$ѕ�n,�G�`�ֽOqY�
{w�d˯ю�����8��E4T;�������|A�$�ّ�9C�M#�'�n�f����m���'�0���5�������CҰ�Rӓ�� wwxr
V+_�}����&W� X`�>o�,�QG�~�9
G�^�1H�� �.�Bux�>E
u4a��n qS��MÚA� kM�D� �Ь��qr�^s��:>����Aژ ��m\�+?=R�p>�m2�{��q��X+q��#���@Ѵ�������
�Ű�4o���GE��kK[��|��[���Ȯ��N7�0�����!0RՕ&}�B�.�g劅Hձ{�@߉��'��>��
+i�:V�
�y��5װ٭��{������6fA){�=�(�;�[�nպ~!��mK|��vI�9�;1�@0��0�1
&�(�v��V�'�R�=|��E���
�%g�Z��s�s�U~�lq#����Nc�/�W -Ad���h���4�?���k ���ӕ�U��s��$=yQ �}�ȹJ��|`��KG�d�������K���y���S�
x:6�Oc.^"p���_x?U|
8E� �acLh���㔤�ur���<vx-��ϝx�щ���w�~w���q�
m~�
~a��֕%��V��W��
е��Fܺ���gUU�q��W���IIS�up�_���mR59�e�øf(
�{,���:'c'ʷ`��Df-�i'�=
�?�α��~�d�e�FV�eh�ҸgzD�
��F�O�7MI�&�ql�G;����k@���7��Џt����U�,UI�&��G�7Ҩ�
j�Ne(����=�S� �:� �q�U6|6��E�C���}��k(e�ibC� [...]
��r�(�y��x��}>�t��ra�^xZ��1�v_*x�m��U��K�ശ߰>3��CO��y9��fʅ_ Z.V#�]��Tm=ը�3�N�b�~
�h^���}�1����'u
b
E�غ�ߞ���-�x���$ɣt�xW9�-Y�w�_
�&����ж?K�Gv����
Q*v�� A�S�O��97V<
�W�
Ƴ;;�!Ϫ�ƧA`o�D酗T]�&���lSj��-�7�\���hV�9-�I]��W�?��>����z;�Y�+���Ba�Sk(�����@�VC�
�ƍ�h"į�1�5n6�=���YW���^0��e��a��a!���ʤ
d̹�l�sӫoD��1a�pxk'�3�g���Z|7C���e/|Y�o
+��|�wj
�j|�ōMH�{c������L���d�{��_��ַ�ab�
ŋ��gݭQ6X�Y���`��*����.
K�� ����iC�~���H`*�6?]�;�����B֡�a������Q�J�45��~
��d�2z$��
�-�N��ݧK���� �2_���Ƒn�NJj�
�ǔ�oӜ�*��u�_��X��I���lٴIY��
����]Y�ߩ俉1��im�β ���"ia~�
C�&v���������t��y�~jǸ4xUz�yQ��6S��Z5���Rb�>����dj��At�̾�*RES�o Il2��f��r�����Ə��J���,�gD�pP�Е�me�L���@�8�ͩ
�k�NM-!�ro[>3ڮ���K����[j<�í���5Y#�l.��l�z���va�w�o�6��j)th�n=
ڡb������;�д�@�i
�.dܞ$�#w�qsQS�,�$����������m�b�gp�՞�v���~r��R�59�� [...]
�֭�]mf��ޭ��癤���27�O'�_���TH��+���RǤp��.�5��Y��lfv M6��`rgJ�8�i?
6e!��;9$���5Zg�Wz�
3;�za<f�
+�_ўpF����v�%��$��5K
f#a�S'
nO
+��5��n��(+���-���2w4*��K���;+��sq����Of��֧?��T��^�I亼�+Ht��⛀2�ۉ7���K���ZcWS�@���R���e�r�z쭎���
1�Y\&�:"�׀ � ������Dݲ'�~�*�.q2q�B�
y�r�[`��$�����jS�y�8�99�ֺ&?.��t
߳� ���N�L���
�ky�LǗ?/@!��i�<��4R��+R��} ?�����e���w
8�j���;J�|\&��ſ|{}�& ���層4�O�N$���bk�2�[�[+�`v�-� ��%?�%"�%io�-т
Q���
+}Ŏ4Ytޅv۪l�M�Ikh�f%����L��T���E�Z�����ٰ�C�^6P
��,WDC-�
�`!�L�[�E�*+Ν�m���2�é�_ַ�K���:�
�/����_��1B5��̸[gJ��|y]o�Y����5�
��}�j�疖о�-��U"�gH��NJ
+w�h�z�WJF~�Xt
(������E�v��F}������s:�w_���[
�K��oG�q��v8�����[�� ���L����&��h�Sm>
_r�����̖��������)d4���tiz��]��;Q)q=����?-��l����]뼑����59��ۚZ���J[m[�y1+��.3@>�zb�f(,$p� �::�
U��
�\oX�nQ��@U�
��>}��<����zg�\�:M�v�e�wC�6�)3@�F�/�m��y� �A����s!z�D��B�N��0�8�?��M��c�W���
���\Z��d�z=D�y';���=�%�ڄ��E���N�wgѝ��t��BS�i0B�e�4D��9X#��7�c����/+>�[lط���j�
+A�zx2��@�~���j�ĕ�T:�����g)�ɦ>O6ܑ\�_�W]z�� ?�(i
A�J!���#�][�|2���x��8���n����t��K��J�y
}�I�
+�Z��r��
+J�,ѧ�*����,��N�Qq5|s(*�(����8J�;�R�s�[��j���ڦ�_\�>k�;�P�A*��~�x����|x�^�����Z�3ur��Uu�5��ɸ���zo�q���l�F��⬫N~���m�W!�ʲ��=|�$x��7aYE�A[��<L�<uL
,��
VvY�n�\�$���H��T��g�s�}tr�r��V�
s����_cx�x�IF�}��T���]��n����ף�N��a��XQo�,�����bv���U����~���uOo�x�/Y,F�U��3�F�V���+�O��
lĶ����2��M3���mF+B��p�dXqY�~RvRr��3�g�iWu�����ݪ^S)��Yd�$����
+��#3k_��H�� �{6t{��Gʳ�
�g��
+�)��U�yu�1�Y�����
+�}*�H�P'�v���I��Np����S-�:vq��
盷���F�_��?�f W��V����I{��
+�
��\3yj��y�[��
1����"��8f���\#��ekඋ��-��W NG�Z|��n�%I���
+��
�E��t_�X =�ˌ�
+ۋ 8lu��I}�
}�*���щ&�ч��>Ȍ�2Fe��n�B5T' 6�ALv�md�'�G]tl��F��O�å�yT��\o=걶���
����p� ��k��)����9;ێt�!�}����k.t`
&W]sr�Nڤ�TR
��)�5��`8*ot�����T�4��{~c�����7
�����k0���D��Z�K��%���k(�8
6��rД�g�,�'v�M��>�_�O�mO;i橎�e��
+���pm0�G���<J�� �K�x?�n��\�ky��"�
����ќ�e�<�۽ji
T��
hBy�<�hվUj?;
+a%�h���9�`�'a��Ų6����A�m�]��Z�b~�P�**c��V�4�
7�ڬV4cx�
���:�i��K
,.�
+,k��8�.3'������
�!�*U��?��
Xa�z:��N�a���_��{#�sƪ�D�Y�R�*PӺ)���Iݭm�D�r9�i��Rm>:�K��|�>!�Q���U�<��,gp�j]g��<���q`*��N/�`���d��J�%��G%2��f�g�I��0��ٚ��é��'=�gM���q�
�� 4#�t��L���?_���i�a���V�u��������&��暇3U�ę��Ahl�(��uZ7�ˈ�?����5����&���M����w�k�Ƕ=��c���Vc���4��P�FJ����Eh���}L�z_�r�����]�bn'(l�I-�w���$���ӎ'��s�&�1��ʿ�lU��x�9c�W[3�l���L�'���ρn��G��Q.�q��;�g���S��$֯�:
{�{
��2d����PѪ
h0-��r ���h��b�s8:pNJQ��'5���{ �μ�%f7㑵��
�V��Ĝ7�E%���F-��)Ď�h2/����_�zx;����]�c����F2���po�s���
>�k [...]
0��T��W���:Ql��i��T5�C��oX���r���s�7��iѶ�i8����NYn}�2� r�����1��V�4�6%��������U�ű˯~㔥�M<OE��OC�`���j�̬W8�-Ry�ݼ�wv�ƅ
�4r
+��YvbF���Uּe0=�ȕG��:�`^7����ț�k�bժg��n既�
}z��.�\i'���Q
+M�v�&��(}?22�BV�eh�җ�&�o�1�}@�6��>{���^�i��<;lJ�>F/z�3�L�6��=짤�kn{&_m<{�"�w���b@�>������/G��=ɱ4ğ��ı5
��xb��/���!}V�u#
�D�[�vQ�Z煥n�/`��Y5dB��\
�-���^w�!���.��oe�s��HV�b��-h
�
\ �c�
c���/����v�Gm�
s��)���\��=���Q�.2�iy�k
v at S-�مIƷ��(D��;�pL���x��6���k�f}��Fg������j:1T��5�YE#]4R��w�
Po��Jޚ��n��!(�o� m�'`���L%lm�����ZKh�uw��YSFY���
��I���o�gT~
Ѷ�"�z�gE;<X2�Ʀa[
�����PFd:�Ҹ
���#4Hˏ�Y�ʂ��'FЉ���8�O�r:!����NK���L ů/4TK�eC
�
��v>�Qoؗ��
+ 2\,_G4s�#����6B4�
�_�-)TM<.�� ���]P�<���d6/�A<?��^k�Lyv��~��NU�7B��n�v`���ZHel3�L� ��"9w���� �5���"�J=��>+Pni��i��
�=��مբ�р��i�SĬ���f[\P�Լt#\���~ĕu��euv
�ō-u�쟶�%��\O��x�-Omؾ
���-���N��5�3�&�4�U�����jG-8*IR�
(�v���"��
��R���rق��i�ȝS��O���so�r8���E�
����ٶ|�I�dpR,��g��
�����^����֜���5F���/��ZR¼
}����^ �:�j��f]�����Vց+Y�>]n ���Qn�w
>i�
V�d�a��*���/��M
2ӹgMS�����%;���r8w�']�|�&.��� �G��^�dv(hnm�|J��?m���E,��>g����}*!kVJh���!|_����m<��JLK^0X�^p6�C��k wz,�^���!w55R��߷�*����4���~�b�5�L�w2zG��5�I>
+���9��
�(q�*�dT�hh�aM/��{��QOG?T� 6�X�B��:���:��z�U��!HO��A�o���=�ù͠��I�������
5֫]��?�a�8Ŷ�
7��qm�q��;"�aɦ�^�`�"J~I��CeΉ��<�װD�4�8�oJB�R�Tᖐܶ�M�#�P�2��綻�|vP�s��*U�4�m|�-�]�v�
�-k}&x1u9�;D �h�)?�1_l5���1��S��NA�h�����!�&�8�G�H|#G�X�6~�`�6]����6�7�V�]#X��f<���)�qw@�V�_�������h_����"�qR��,���_�v�)�
�yysqB7���Y�EwTד�M
�|gZ�0;�<;�]Tx�q���ԇl���ٽw����Uz7�T��ܝi]u{���˺Nم6��l�
�}���)�9��}�� ��1�l' hyR�2A�+H���Z��t�O?Y��0CO����@
��s3`�A=�A�C7.���IWm�-U��=.i����Gs�
�
�
�y�
o
�m��c���Z�
+͜�]���z_n�ڀ���F��,����ZK�<�-�of�����2����j�����gU�8
�U�o�¯��|����Sg[�w�GA(*�2;���6��������㝕�e���o�VMe��8�t�,���x]V�O|� �P���9���B�v��/�0
z�Z]�M%F&��-ٜ�����~6����Z��[[
�HAf�&Pu��Y��
7t�%�6�}�v�+���>�]KZ/��֬����ձ��2��\+�2w������A�6��qBZC��=��H�=�v ��U�
k���ؽj��sd
&գ4��+a�6t!�@ş��e<&����ߙ� ���O�֎*m��v��
+[��rH���Sx��k浊\aR��P���x�GQi���� `^���}.�_�C\�<n�t�$�ɝ
"̼9}>3Ƽ�P������C�j�}M�߈�['nۦ�����,�A?��5;�N��哵
��p����h*��*�E�ϼp�up���
�s�Z at H��F��XsU�cǞ~�����K�.MD�+��&`r�sz����.�r�}�����Kw��bsT��k5<LRF�!���\!+f�l:$UU���qg���nYZ���x�]��939( ps�%��� ��O�|9���M������&/���~Ɨu�(�s-�%Jo��"-.k���
-r�|v7�
C�f�+4����$�
{�u��ڮX*_��r-���UW��5
F�7|F� ,������?���z���
+8��A����������� Jw7
+vw��{��}���̜s&�1��x ��� .W�C�m�_ev��ԭ{i�o�lu�m��L�Ŀl��v@�w��o�h���U� �g[�/�
���Ȕ\o�Q]��~�<<���tZF����5���$�����ꍻͲ�ĥ�ޤ@9��[[]�՟�
ص
���A'��V�����&��bwޤ
i�euE����a?���|��
4 j
W���A�k�ar>�W�]�5m�b���/B��9^ɖb����]����E���B��
+h at .>�X���z����9�t7ף��2��Yc���E��fsr�������h�V:�Ec�����*5��J7�X��}�}+泎�6C}���
��&���
��_
��Ǻ��2-�2�O̰}���4{��鵓���7Q�f֯edrψ�
#-^���1`S�^�do@��(,"�aY��0�QT#��@Z�{��80������o���
�(�W
�ƫ�S
n*�[*�?�6*��Կ^�����rYKy�l��hu����Y�71�AS�K�w����t���Gzd �
yC��ְ�2�j9�TM89VW�����6z~5��I�IJIknH�s�xh��
+��)���͇��7��Pj�q���^4�>
SEc\��'tak��9Ǭ��}zj��
�[)�F��_^I�~H
���
�`�q`�������8U4��|V��ŝe�hc�40
��
k
u�F}y"���X�Fg8��8�b�]�����K���!}��+.ohD��q��{�k���
ܽ�����]��l;�ݡ���Q�櫠�)����_t�j-�VKp�hw6���k�~
������� ghg��jO���u���� ͍ew�o�GL�B��W��
j��_K�ݲ���4:
Z|�v贊e٘ a9��o�o6�_�vǚ��~�C([rV&ne��N�&��ՑC�*w�;ݐ.��dߪ<�5�?[ms�mNV56�]H�
�!sװZ���ڿ�{3oi�B�=�v
%�\� �rR �;� ��i�z
���37��x
zH�0�Zn
+E�g�[z
�����"R��vr�.�0�[�g��
�6�/&�~P\
+Є���m��\�5<L{Q�����U����.0��Td�/[I�mg�L�{4�:1k���Oؠ�.D�`<���F�ش���ج���J.=ķ�3�R��
u��Y6���1<X�
�L���Yd�I(�C{Pe�g���j֯�~O���ҭ�c�x��1�&�Z��\1���2�,�����ˡ
ik0���8�� �X)
�DzI��.��
�*7�Z ��&�w���{�-̀f�O�8�pΕ7�C��@4�R};�n_`���rz�q%y������W̹��t܉��te�B������
��٤�9ui����fh�R�6��������x4*ם���/��ᮜi�6t�U�~. �;8���S }��g�bY��6SM��
���5��qχ��/�9.�]g�|�}C��H�n���͕kz��j�:�p�kzu�%x:Y��<wF�v1Yw
��n?^���
��Kr�f��i %Ņ7/Ѻd�:���_
�
��5aȨ������N�Db���68`6����)%������i�ts�4�"�
Aw �l�F�w�7
Nm�%�f�4�D~�?�q�;����{U>�-o���p}��u�R�|9j�̻`m9�����˲���%ˮ��B�okI�X1����N��_����X�T��
+�xY��� NC��O&p��n=Yk�G�<��qJ�̳�]�'=�-
�����^*��ZM��|
y͜�a�U�Z�w��'�앶�<���T���̓&C�t�D�u��\
����h��Rx���73�<�b��t�YD:%�p�=�L?�]H�/�/R�?�Fi~��h8M��U[��;����dz�'�#ۘ�=�$�)�&M�;i��{l���>0��
q��·Ef��' ������v2��������|�|T{� �n�z,�$1���I8N5�Q�����n�1W��sیߤ�;��
+��uE����=o#�2���,U]o�/(�o�����ӯUt�?zT�^��y�GP��=�Y.˪HA��S�zژ��fU�Z(�9���E9�tp�1�{K���J9+E��K �giF�V�X��|aa�����N�1� tZd�
q
��J�5M1�7�.v8
/|�rx���
���p�S�)�Gl1��,�ה>u�u���?�ko���?�k�#Ӯ�k�(�� U������
f�x����
����U����������?�[�J���p���p����h����?ʡ��9-��(LQHy��8Xa�R��VVgW�L
j�gqY��V\���@bIڨ�Db舚Z�d���BHֿ�5�g�
���~�ֱ�5�_���M{�o�
|
+cj��8����npU���O���a����W�Z��
���
l#�]1���]R���g߭w@Ǭ%��HQ��7jᄲ�-�G�T&��(�#��eo
+?ӎ|�[�
�d�/��`���_ڵ
�؞%U�C/=�����Bd��;p����}��?�@���Ҿ
}��.����\����r�:B8.��ʊ�9�W��?c�߅���}d�a��v���8�.���[
�լ��Eܽ��_�|/��
5� Hw����'l���;lH�w��ޚ�?n���m"��T����z�
z�u��W[��-�
��5�>�
�����EŎ���ViO
�7�[6��4�XJB�yK�h�t 8~C�+2���U�So����_�n��D�d���8�#Vn�m���Ϗ
���%�-� ^S���L�����HU��
�^�`�梥����
z5j��
�Q�q���s
�<w���s�
{k��(���֏�u=��U2��ǂ�����e��@r��ڱaoM����
���<c㦖��!m���e��)��Aq
+rls�m��^��~�`�ٙd��+zel��kי���-��W� ���:�v��
:v�$?0����hT|�O
ؘ����s���VP=�'^J�y�/�����o��Hxt������
��;�����
�]��
�0����Φ����F�8�d1�?�h��<Ǜx�9�������
�ޔ��Q��|�
G��~�����
V�ɐ��Rc��!ݙ"�f�����Hi�+v�b�Ay�VѴp՚�m�r�n,�S*p
Os�G%aw7&.�vC֩�f8[���cf2%������袂�W�8
��P�6g�*��h�$�a���XYA���5\��F�n�h�aL䫷V���S�M�%�ѡ����!;^��VK���(u�t
=�q: Yc��(�v�
�K��*��0�a@�>���ē�Hէ~��H��_�T�e�
+i&�Z��l�i��y�Ϟ�F�:�G��������E��<�����dۜ�F�Lw��{�v
\
+���o5(���l�����k�x���ƍ;}�W�k;��O����W<yFV^=|�ז��j[E,l�'��z�|@^��&�y�p��� 7�=����QG
��Kt C�� :?�q����a�4#�
-��v�ß` �:�a�'.1�]�9j����H�<<�@�}��D�\ ���w.��Pn�j�
�^�r������%h
�W����q�
+�no�!�#�tV���6�|f�G/g�{&�
����%�pO}����ȝ�g��I&̡~�v8Ƿ��0<5w?XK����H�6������p�e\
G�
2��l��m���c5M�r/_]��i�S�m�����3�F�t�� }�)��y'�m��I/G?�3�N]ً���)���cWѰZ����.��u���)]�¹�M��
�� X�ܤ�g"���x�o;2[.�
+����h�h��_�-*��E�/e��-ścл�`)>sj-c}eT�ȿ`뾼yh��f�e"�̰~��|�G3�o�s�p6dc�ŏ�!g
̌�_�w�:�m~�"�e{��nY�$��� ����KW��*z�*� �{;mg.�=?̖�jV�
���}���S؉�y���ְ���6'9 ��d��>&O�fw �
w��
��������$���6?�����(4�cӳ��}l�J{�gۅ��=�^^e\A��}f�?&��/��5�n��ó�^B�"u��u�z�p@��|�2-\��GFn���h��l��� ;U������&έ��X��&�Ɣp��~+���)��`3 �1�?&��_�Ƃ�i�8 V�JB��j�����v��&���j"��,?���p8�����2b�)��2}�f�<��\�ڃn�7n�Uͼ�
M@�S6<,��m��
f'�3
T#z<�i�W�
q�X��%����E��iNJIl
<�r��)���GkşlW8Z���d� z�`�TR
U�T�֫O�ޝ���`��K�Uģ5����U���t:�p'�`��_?�h�c�m����A��\��_�S�
͂xT���Cv��z抧~Bz#�G�Iۿ���,�j���`�� \S�f�Ɉ3bnS6��E�A�]ղ�{�/nא>q�珪�Dyk� "=d&c�TK?�P�^��
+���)����!�� �ߛ�R_K��* �kz��, �Dh"ɕ<���,K��D���
쩎�
?ٯ���/G�_�G -����
�](=Pl�Z��<1:�W�okؕ�i%I�._P���
�:�O����W�͚��P{������*�b EI<ӃI^?�'�+s-Z�B�x]Hq�鶿eWt`ߵ�
9���b��#�����y)�0�>���}%�ˑ��cI�&V���V�L� �˟�)�?t�p���qI¬�e�&��xr��#�{��Ze0�*�ڽl�+�ӯO�LC�Ta|~w���ҋţ���W���
����ӛt��ԓ�
߸�{ķ��Y���w1����x�82����8
��#g�4ϝ��!// ��40���&�Tq����3�U�t!D#:l>搲���F:�|
�&��O*�6����ڻ%vƩ� m�{2�z�ƴ�Q�
]�^ڀt�h�:"�K("
�X
�ә1���&l(�?�-����Ӟ�`2��4���i�TU�(5���Շ#�J?F/��p��>��²=0;��˭b�B]�l��� ���S_��[7ŵ��Ļ�ߓ^���Nߡ'낎�Y��4�ϣ�K��AV��/AZ�r�J
�RQ�l.-J��X�+kH�[��Z��^����~&���s�<��
<�o;J��`�8��v�1j�]/Z^D:����2`����'���
���.����s
+H� �r���y�}�Orv����5�Zu�P��������H5���rx�,1��im�bGV;L��A�J�n!��������R�t^2?����E��
rb1��o P�&8�N(U7�YG�F��j�
6L��N�
;L��~����{;dI��1����B�o�3���i�h'���V�Ì������/�Ӟ�݇���L�h�C���i�Bwa���C.�%'� �sZ�,����A��%~�@d����H��гzǑe
��l,���_��|&b�g딎������'�N��q���`�u�Vs���?}b��vi�h�7�M�1��mSw+��tr+�A��4�ǻ��`c�C��Tl��=گݮ
+ݍ�t�������vRh���
�L�I1Շu�����gދ��d�g�}4�9���^h�c�?�u��W�0[�(����-w�m������J7c��{��L�师�7
��8[�Aʐ��P���g�r� ~�FbM�Zs�+����>$ iy��[:��<���t3P��e�cT< �.p4�4 �V��� ���u�t�H)� �"�]��8���)�c�:�Q\Zw�6J����f����[{n���]X9�#�5=VԤ3�����!�>j�S�l��$L��E�r�c�]�Sc��ۆp�v���
+�.k�<�5uе�5�4���
��״���h�
o�{X�#������|a9����a\��n��v'��s�X�����6��:�n��C|�.�B�E�EX���}������5��vb�'�_��
�+s�����!�*-�"��f�[n��X��^(�U��_h��-A�m-*'3�LbH�1�*ٓ_�NA˺/>�\���O����\֛$Z�|�ޑ
o~=}f
'm0UǼ��
�A
�'dd��k�+�Y3�s����F����=�߄�9)�+H{�g6�͖�7O�a��
�a[[�W�Al>:S�2�/V��@Qt�4z�-��֥
3W+��9
�+��xҙ���$G-�z1yY�p��+�~��`
"$�c��ܾ�M;��!��ߜZ�� �����D�
���:�B�rՐ���.�@�;5Wk��u���o�ʫR�5�#˙3��%���6��Af��Wc����p�ٲ��Z��"�\
D�$t����W�h��
��x�y���؟͗3 ��_{��+�#f���ș^�-�&ԏ1
�G�����s���r����|?�ح�GwG��i�������t�E4��e�� o?�ɩs�6�ow��ߟ���]�f|��n"�V�:S��W
g
Y;�[3�c
���l�*����3�lXRia����do�v����<,�ѹ���4�߄}��ĝ�
����R�e�3��9T��J�:_�}k:,yV���U�XWsF�5�t����:�n�:�-q�Pڷ����?�ϝo|�H�A�lm����7P�ؽ�v,6���b����Fݞ -|X/kx��W
�^|gӥ^{hͬd�z�`�Ouw�Y�����9i��+���
a3\��{۶�7�F�Ëd:�Y3�Ĵ�]�P�h֚.� ����|"t���X�\�k��
X�1~��)�5ѽ�a����
b�bZ{��q���29�� Nb7C��7��f�`Ԛ����$����V�u��ʥ��sO��y��������s�D�� c�!�������0�ʆ����>�|��1m�`�{���H����W5��Ls����X�5��O��梾�4"�n\��h�.��>d����=Rs���N��+���ܹ�t��80��
�؞wZ�j�ҕ!
���M.��~���NE���
[�����mR�bk����٩��
�m���W�+��W�7%��=W3�[�H�Px�ݭn*�p����#~�Q�FD�J�ƮB��;$�^O#����.ш�<�� � �k�y�A/��_��ٍ�S���c'_Y�=���V��c��{�����x���\zT��8n�V�(B �.�{p��l�ON+[=
U��rw���r[��_�xTrkG��k�$�F���'���G��;�>q"_�D~y��VlkW�[���j�^g����
3��Xb�A$�a[6Y9��I��.Ub骩�<po_L�����Ʒ�K�ϡq����4���*�k�"0ډ@kR;��P��K�w�No.��k�Ƚ��.��G�9���&ɹ9���K��q�%�
<��
�@��q�qSa��|t���
�!�2w���n
9��������ry�����@Cxʏ�d���9���ot��|�'�{.9����\���@�k�"(��s�zX�iQ��b�o���&�J��Rl�����I�3�Y٪#��@���7�x%��ӅS~CKe�`���3��8��ʼn<C���cӯ���0�0�o�L�cP�*_�hF�
i�:�I՛߿R��*K�
�|+mε�
k����Pݱ��iU��XeW���1
?~X�nF �cJ�7�~#^$+�)^
�k�\8�hW'n��:
��P�#o�#1��&ld�n �A54co���F��ޞ[�ܞr�`k�u�ާڵ�\��u
���g��C�a�5<��H�JK��U�i�'y�2
A�+�P��w�'i�P���C�
7O0|Tb
�YWt�t�>QK��§[���m�o7�� ���f�]�2���
_�C~xe�a!� ��2�4��[�u�~�b�A�p}�j�v�?�׆�h�H [...]
��G$�����P�L�&��#�"�>۴���b�����
<�v
��)�Ҋ�*�o`i]~H٘hk$z�J�﹇��gi��J�f>�m�@�/��+9�N��I���
�;��ȅ�-}�Ca�6����wP�ZWXKw�OG?�a�87w|B7)�\(Ë^x��@:r��+�����/���F;@f%{�����=l�Î�:&�UO�ډ69͎G3�ٯ���G�؟t��o|�x�]J'��'�(�~�![�
_^���йxPr�
l�'�8�k�e�3
��
�>�z���39����u�s��v���'g�zQ�e*����#���'o����
��!ecu ��:�J�6�������c >�+�Y�����U$�`����^a�æ�,��4��m�h�:[u�Z�1��Ux')���<j�s��|~k3���K�&�V� %b-x�O��
���j
�n�'�l�����x�䄴h�E
t����ދ���
ǯ�a���W�62�
���� ��67�^�
�
d�4���؞1ƻ�
��?
��u� n5��MZ+k����ޤ:��N�}�����A��0�dm�����T�L��
�8*����m7G�16�n�������s&!�.�ݛ��0{{e�N�唤�'�Y)C�|8�z�SԀ
��
���8�q��̈́}�-#�4n֒ F��ao��o�ݽ��g�514�Yk�Dϧg0��l��4^L;c{�����q3qBU\���!}^O�\5����56�8�Ҟ��R�a���]*l��zEU�W<ڎ�ɋu��c
#�z�%
P��2j�q�k�
?/cK;�]�A���:�=&���D闝r�[m�������`�N��uG���:
w-���:B��/��/
UyV&�����3���:��ΟPğ|�y��J�2�V��|�O8�C��t����U
��~�Ҽ�DI��«����禮%vf�|R6/��/��1x͇U)sf<�
+)�3\��؏r�k�:�J���^VG�
�Fv�S��=���!�P�n
�3_�0�|�
����م9���B���Hz��B<�vORo�m՚M at n�� �$�}6�����p�UN\
��^jYa��s�8����+.6���
�
��SZ=)��N���
e�7��h:=����MN�]ɮ��W��/��0X
3?A��A���WQ���H��-���r��9o��^�A�F�lϯ3�+��7�2v�\0>��y#E
Е�˱�A������8��5�����
��)�H�֔8'�'G^:~� ]�ڹ8�>D�>��OͦS�5Le�U���m�
**T�)�5�VN�z���������x�K�'- w���Z�ȳ��B�@Q��!�je<4n���,��ˤ��Jk����/��1˕w!V�:�=�~gTUw�Ǐ�j�E���?��~�B��kc���G�7�Y�A�d��������
#+���;�k\J�à
�P�4:2�j��Eť42��F64�̊r&���=�|�
4�/=֚5He�y�
��E��� �g�1S|�v�):7\�����7��F�f
Z�gU��:����55 ��s��Q�@���
j��/Z�S��3Y����I�Zl���70H:=7��-
�@o%��3���B/�nzj_��$��3s�U?�BQ�[��˧��w�F��MzWo/�-n��Y����R���;l���Fm\���)N~�Ug������S��\�z
λ�!��!6�Ȧv����瞑�L�A�=�3�}2�J��$��>+l��L1Q�
>��� �۹4
��>qL����uF��fu��
��E�<D�
~*���^ [...]
(�pQ���^���Q�-�G��u��>��JM�^�%5�pJC~�(Y�,�UH� _�3ݠ�
O���|Ufc��e���2�wtk��˹���m|����#�FQqۉ�wI}����x���: ��Tj��g��g0�Ц�)G
C pu�v�O���SްQ
-+�����i�ڊJ1��
�Џ�D��k�N��_�wPV�#
�}�mĭuђ���$>��0���
eY���%\&�a^��Է�y�:�����s�@NH��u}��I�+zA��ܲ��
��ʟLǖ·qfl�2Od��oK�wiY����O��N��R�
+��} ��}��('�HR:�,a�jɴp0�.<V���o���
�],�P�7�o�yRZD,Uۚ��OV�x-�E��òq5���
��B�
�'35��U�\��a��v�yS�`����+�W��oY���z�U��z(�A����Ƭa
�O���?�'�D*C��=s�Q`�=�7��${��i��5�uѤC�lh���T�u�8�C�:�o�r�����7FEU�M�i]�Y��w{O9���13(H���������ހ����*�bx؉�
9C�p �"�s´W��3h����Z���Z=��������
+���\�%'PLF����,�q�c�U��f�2��~io;BǾ�
��d��L�S.�Ǔ�ɏ�
�uOA��DCڭ�$KgնS�ǩ{JL��N�W��lu���N�&��UX9�+��ȶ�Hl�,�JQ���� `���Y���h�6�=E6[���X�3�����SΛ�-��u럭6��QF����S�qZy�k��F
���N/U��;8
S��9���K'��(
�uq�)Q��'�}N
M���<;�۷�z ������1�5MWs�G�@�
4g}.�Sg���G�}$նq�[�W��R��y˱N1q����0���~
�Hn�Ԭ������O$g\�
e��
U�� +��́Y)�
�]\a�C��l��.����
�Z�-
H�ZT� ��k嗣a�Xe��F��B���տ�V{h<�Y����n�
��#��w+Kz�-��_Lm-�S���a���Z F�H>����h/,Dw����e<!+�p=Yl1�U�B�a����sa>�A^����nrk�g�5�ԙ�s�����~����V;�nr A
S�H
��<n5�ki� �-a8lN4o��j
+k��Y�,|�0�rq����=��V���$C��=
c���:nΡͪ�
��]�B��6�|3�}���OG��6��F��+�s��FjDM�?�
pɆ<��1�S�{z��cqa���!��ǯ&�g��+�[Ǘ|H���*תr�{���/qVx��F�0�M�E��x�o��Be���j�IO���p2zd��ި.�o5O�WS�w�8��s8�/o�i�tg��%b�nZx��m��*��Է]���ӽc31�S9w�1��ڧ2m�����
CT�+�/
+�'��
��i���ΐÙ���g���aN�s*1�7�mg�}�C�5����P�J\W�Svy��,�Q��cqv�q�E��OZ��A�sV0\
��QT�v�5���I�Z��D��
�뢦~x`�Ρ��!|��j�ҵo�hI��d�8��d�x܂���m��dž5~鶡��Z�<^_���˄9�Fw��vգ
���p�ڂ~�b�H��(ɟ�`��2�ʼ�]N+�J�<�
+��
o�k��j�
+���K���".Li��ܽg=O��.^�ӌO���aJ}����7Q��n)
CѨj���t�
-�v��|��&��FZ+����&O��q��4���#n�VC���F�N��S�ӬM!
�����W�~oT�}�xe֨A��4�Kt���S
9��A���&�c/����%'�`�r�������@y�PQۓ���Tw�9��/
ptS����;C�wR���8��o�n�Ǜ^��C�6�A
���+r gbd�A�;��K��=6,�3��C��T�Z�i.���u����,�4v��v�^c��4�H�`v��6�6�:�
���;�I��!����
�h���i^E^�:ݐ��Mdޝ�3�C`<�������<��� ��ۓ���RzX���.�+�u�.xq�ໍ�:���ld�������$O���"vdX��@Ķ�8`�iŇ�ڡ�[��&þ�zw|�9�'�����'��
e�
PʖN��k6���td�N
+�3
����w(�;ߍ���;��G�|9Y�X��ǫ
r�fm���`�6g/��r'�P�%yd(�D�E�SU1����[���u;k��BRUOi�W�v���H�ty�x-\��-��"��"��D�mBg��*!��i#Tީ��Y�z5o�jN��}�"���8�u%���Ø��ŷ��'$7�o7�ݎ.f\�C-C���t�u�EiQ�I���x�&+]dt.~���E��[�j��� N���/�
+�kJ�D�� b��}���:T�I�U�����u�eaF��
�K����d�[;@�a���Rؠ2�*�y��Z�6fg��
�J~���%�10Lf:�5����
�:�{�(�bd��6����V�c5�ݚ��K5�������H�
zC�A�R
�(��k+������OkSK�/h���
�J�z���o,9�?�q1z��;�(��f
��'�P4�iJ�Ԑv���dk-#y��Nm�q
���s�Sީ ���*q��x�ګ����n
1�ۘ���ԫU,�8�.�+ �JϚvw�m�nDW8�k��㳜ͩC���E�|���
��1�I�-NFYqB;��T��w��4q�d�۷��39W�'`�%XKJ;4��|@�>�$���"���=��J*�i�Bv����tmQ
\�Y�
_?����hG�Y�%�)��y�D+�u|��F�.�_&p��"���=5-�����3�
����X ��U�O�"e5oM^
+����0���W���>Y�B�t�_!<Iӎ1<J��G�Mn@��Y3�nF
�>]>T�(��XA]
+�R3��LnE��
<|�q;4aw-�b)gB��v�-�� ���ֺ!���Z��cW���q
:h-��9t
�)ZvZ`6s͔��
~Ţ
�tB��V�$1�t�Q!��ӌ�c:z��H�h��K�
[{�ҖZ_�\�
i��¡Y*��A��7�[��@x���7��U�=���vu���������i��;�4 ���
���{����<]=�3O[Kp��~5W}�}���ܽ���~�n����9 �o6��Y)���
��e��w�51@�Me��\���Ȧ��o�A^�_�c�ڊ���|O2�kIb�5Dn����On$
I+��M��(���V8��C�J�h�
�ҺJ�
+
�����K���Z�����T�&3�+By�1����N3�v����iD�R��+�M��
r 5y�����
*�������w�����3�/�
�s�����$2��~k���jy6������6���jj��4��dq��
+2v��'����0����4]�$�f��p�h�6q�J����d�t,e�����9ҩZ��p̆í{�=Vɞ�g̑�]�
�u�����
�Ro#8Z� ��SZ���Ghދ�b���t��v�SU_[�8x�"V��ڹ��o�f<��.�T��>o_�a�9f��H��������y�dHf��n��`E��v���ٽ���;(㹲Jl�M������a��bZ�1��
�9J�:]Qؔҿ�� fX���um�
+��o�!EE��ދ���
����x��Z��f2���N����Hi�d5~�U=�
�5�
���ϻ4>��?�
-%m��z��2�� �FbT
+
+�LK���̥yC�N�1�ݾڍWi|i {e�X�5�>,�Y��Q�o��(����[�Cn�f�h9ɕ2&�8��|�������r1P�G�s�����'L[}URB����X^�5��]7��i���x
�UcB�EC>���L����r�����*#�|�K�^9��J��o�{�X��Tk�>..����_��9�8#�e�R�2�}��""���I�M�Jok.�̫��U,W˸���#C�Xbc���v���1�
U�p{�mBO9��/:�`��-��j�{���9�=ݹu���-���\���̾7���ܘ$ϣߗ�����'�+_�,�O�'���'
����5�ma��_e���]��ƃrQ��~$b�o�!!���l�ޥ�K�j)��$�Rc���N���wz��� �ku�嶷
� >�?�9����$�-pq�=
�rhuG��ܐ� �ØH�7���y�|�y6��P_����J�Q._L�=�T�H�����������r�r)U�<ﳌ��JL��e��N��\���ז�n2���K^���*Gk'>:j�(�f����4ڭ����N��W����,��Id=~�.S����選��[�n2'^Oé����Ũ!��!=�}}ҡ�ў�)�C
�Ğ9;>~���N��*������Q��swˬ [...]
+vT��eW34��'ȧ�P��
+c [�� �Ӕ���{�����p���9�N.�{�٭�
����\�/)};o�W(�D�Y
S��Y+b�{7!�o -w�&�D�
����4�!�4uj>�J�D�҇:sϕ /P�&��IWN!�(�������gzg�ݓv
b�W�?���k%it_�ŝWG^����c4 ͍Z�
M�Q�;)��a�K���Uxy+��D
h�i�
����d�BV��˲�>�6�|��$���Dv����Z��+��@�Y��nh>�V_�g�R���MوV8f��tmqU��dm-/�ZJ�p�*��f]�D�iy����&��1z?F`��R�O��J�nh��j�{���K_
�y��X�
+G��w<�.�e�3� W���^ܧ
?�O{�
+Þ�Z���oo�I_.͎��=O�
�k��.f�^���|�[xq9Z\}]A����J���f���wk�lU�4L�Zklp�9r��ίx�{�l���ڌ�P#�۸oO���M���@�qS�m��ӱa�V���v��х�7�T�K��j�Q̪%�2�e���\d�
}W����u3��w���^v�
�3���p0,�If�%�`K�ꛨ93�K�$J�m�}$ӹ���HА
+�U�vF��E:��Գ�^O��Hl�GiT5���;�0�����dJ�����ϒ|�'��[�k��)��xğ��Y�L
�*y�u\ߝ� �ա<�5d̍�Ӿ��ɟ���y�m$�$�$ϼ�}"�X�Z$v1�7���|��
!@6�ȵ2P�Lo�gw�� l.�Z[g/D�/��9.w�x��I� ��C #�䜤�g�s��^�3ҧV�7~Zu�Z��N �h��o���wG�饁�SL^��;2<^Q�.�z� ʖ��o}�轴ة��mss��M�{+k�#��t��� F�
�4�6շ}�K��*w1��eb����̂�����M
�k�����y�{]5eݾ���W�8��5��vͰ+�֦���-(�_j�f�A�y.З��>���W˶@��^��|k�R��u���:�&�h<_�IR>��g�Z�(���l�@`��\8x��`���V
H�zy���Ӳ-�Xtq��������ʵ�~��Q���jדUl��#e��!zH�
��
t�xx0C��]>�
�l��7H-8�f��,� ���n�=�c�hh��
V5�I���8m�zɂ���e�5����"�Z�4b�N��/|��V,T�5^�����$�J^i����W� ���e]�H�H��=���[~\���D����p|ݧ5?^ {l!�Mq�[T^2|�y5��}�Ӻ��<)�Yy��%�s�G
+5�/^����Ԙ�����[�M��p:ӆ��f�g�����hCs���^mNex�]��������ek����E�'�
��f��yH�W����f,��~��51�jV� �sI�M?����k;iY�
o�
���+�l��m��'����c�5Zs1��Q�ͭǤ��C;�S����c��7�ϝ�1�RM��[W5f%��Qe/��j��
���,�*�/��!���-��lb�/�ۡ�ϡ�(��� ����G���b�b�c����g����w����hW�W&�=�a1N
`�B��u����J��m�
�� �ע���N}f��D���.'%�U!
Ͳ7|�� �8�h��[��0A�c� Zu��+
!6��AN���I5��0Y
�qv��X�x�v��O<�öm�)����I�ێE{c
D���h�VR��a�jM�� J�4Oy#
����˫���w��� ��]��z0&"�
^��t�� �B�|�\�����w~��x�A��Q��-�3z�j�-�$~���
6;zT�����DW�N�- ���
Ek}W�W/����
������w��
���M��cuF�"��gT69�I-
�B��ҕ���D�q�XsoTB
t'9s��n��(بO�ޞZ�E�߄�����))��i��
�d�%��:�|k���u7��eX��a"_�X�:���eWUZpt
+�q������z�]�îÕM�~~{�{}}N�e���ԫ_\
f.��&���m� a ��y ���nz��;v>����Rm���٣�2���h�φ��Z���ʹ�>�����ǾtyN9�~����$�O�t���3"4r�mD����1s�i��^f��������� ��>3o7ӂ��d�2���F���ސ{�ݒ�x��3a�z��A�!����w�:p�Ú���'
�I�r� )����j�ohN5�* k��b�}�A���
c���/��[��,c���x��
<�� F�f�����:��ѻ����Ɍ`��)�٢~;�@�s��,�nȁީ[K��<2�|LH��@/��~���05��;�;
� @t4wG�M�&R��g(�g
z��p��}3H1N����ؘ]�������AC@�̛I��z�>��17���2H��ek�{��uw��j�"�j��x]��1,�u���h@��ac]��=���-
�bo��5,��Q����/3h��Ma��zꍸA�c��?H�ͱ+��S8��ͽ�q+b9���Du{(37 ��N*l5
�Qs�
�T]w=v��U{�v>��h���l�;��z�
�������#�bן��
+��%���u��
�-��������/,qrQ���KA�r�TQ�Y~%8������փ
+�<lV�K����1G�^��r<��u&������� ��g2�*Y�Ro)�l��t�z����۱Պ�
�����R���لې�Xjo;��
��w�m�<��Ձ|�a��Tiݣ��^7�[^�1|c]OA{�MX�{)��/�Ҝj�./�Rv%���P<�c�m��?$zԝ�W�%�7� ����,���'����v)��P���w�!t����/�7ZF�Z1�
�~������r��U�
+����H��G�.Z��D�ٯF�dS&;���4X*�z���&��y�m�ӌ9�Z>n�}.�^����}
+�$�)lzT� e����7�l� ��|��5P�7Ʊ�������zS���am��n�]<�Ǣ����l�M�N��8��x
������9a�ݺo�-����
!���q��wS����2ٗ�ߡQ�6ug�j
���n#�s'+ ��2�('P�o�g�}쎳A�?���D����D��$�/P�9M/!G�k�;�A�����ߤo
x]��
E^\�:�@<E}�GOr�eJ>!<.£w�(&���+�=��t5���P. ��B`,+��&�hcz3a��-�&'�4P2
�Wf���E�+
H��Ͳ�h�^h�Η[
�e�6���P]�Z�A/G{)D@��|$i7*�k����R�њ��Zg�56���q��4>\�n�X��wvn5�V�K3w~ٌu����˼
�mi�mU�US�**��5�AՊ+i�o
�u��"��� .Cɲ��1���X³��IB
�:�����+���� *��w��&b7�� �l��Tx?
�}ri�Z��E��c�
�%�ز
5���m_6���2[ {�j��Wc{&�
+O��ϱG<p8��
�ޡƿf�Hܸ�u���P:���q�^|
<5�M���,�9g�2��z�B|���^���[����,-�{����
��
TH��<�M�PuE}�lg�
�z������C:��Ij�e���E9e8��%P�i9$��u��rE6m0U
x�h��w��RYE�֮��$�n��{��+
К�Ä�
Ee틙/����Bϫ��/� >P$U�b��B��t���?ՐTe��R�
�fobC���S��۟�Ͽ*�ɡVP�Y�7_S�R�O��e
�g&p
p������)u���^�G�S'���^yXS�K��G�p�iC��rGo?>����I�mZ�O)i�G��-^�ud���m�u О(��N0���H�t��pk�+��߆�A���=k^��<�P��z����Tr���v1�P��-��p�
�/��� �eF�6���k�u�^|�����ަ��\/��L��q����O��fO���7 at F�z���e����Љ����|�_>jC�/�ڷJ�3�������r����8��]�TWW{��V���Q.7&���댜�����[���x�U��B�ހ'�u.쒶�F6!7���7�
Lj���K��
�O[��y��xd���uj
��}��`��$�Ҽ�*4=�f��������x?*U��w50��
+/߶�W�۱�����nMX�
�n9�O!����0���!>��R��Ƿ�X�ie��50�l���t��U[J��^;ozW��B���~�O@�<q+���0�r�+y7����b�?�/q����g=T
�GgM��:�/'6�7^�>��WĬ�
��#���'�,е�w�<fos;g��
���
䬤���x�kO�/6���6{����Q�h�-�c��UŞ�ԥm
Ɗ�����S���iZ�:7����osO]-��aU��nƩb̞�2I���c��A/�z\^�טYky1�5�x
yhW�'�*���Z����ka���r��þ��U�
坕�-<�C���gz�0�<��+��pP
�ގwoZ��;�fn��/�8��2 �Ҳ�HŲ/B��`�H��PP�H��5M�=
�f������rb���i��j���c�
o��)��?�̥d�z�L�� ��i�4��oʈ<��3����pS}�do
�/}%
@�&�-�R��$�?V�W�\7�f�Ə�l�u)
��N�
Ͽ�u��b2�4I�^m����}k�b���h�
Xb�`d� ?�ʦ�d�3
���K3�ç�\���|x�SԲ��˿����'�Sץ�#�x^���Q
8�� ���Fӯ����H��L>�L5�mw���
{�9��P'X8Θ�u9c�sSx˟�rf���>����qc���FvW�v����~��%�ZE��,X��V����K����C�$�d^��5%����`��
���BLR�9
�hK� �Um{V����q�N��^iԗծ�k+uK�e���e�c��������l�����-��X@�������+\q���s�ltc�Q�X��
'�p�/��F��n8=ن6]���(��gN��:���q�t���C������ya�v
Ի�xҫ���Cq1�Ua�j����N�m_���+=8�YV�"zu5�ӫ�K��N��_?�Zx��k�PR�3<l
{�������0�MW��Nx�0ߋ�ٷ�~��Uw$���U�6�{�m��^��'�u�z8đa�Y��;4U��G,�IhkM�� 0�y_<�Y��K���ؽ{;���ɧ�X�-o���
���S����ݬ�亾�;��%%�$ ��p��Y�
�Z����UX���z��iè
[�2��#�?9ul����M�5��6��F)�mם
L̸4E����
(�k"��v�R��0�uY����D$�5����ff��5?�WlL��L�-o=
�p��`�%�
��V���̭�\q��,�@rk���|/�ֻYv��,�)�l�k9F��������Sҩ-�m����3۞��h�:f�I`�d�g������W�W}���px2&�?�Ily=��S{���ka���Wa�]8 ��Z��p�yS��~3m�?'J�b� 76{=��'VɎg_}I�an�'��I�
#�ޥ٣�'�x�֩n*z�,b�*�
Z�~�� f
�g]?ʎA�N���~K4
+����= {�
�X0���q��<���o�7I��9�ڌ��_�)#�����H��0������Bn n�����R��Rϯ6!����]�L�/��t���;�w�>ke�/�K�-
��6:<��r��&o\����/5$>[DK �
ግIAg��W�q�td#�v�u8�4�_���Au�%Ɏ7-g*F.'�����w���k�I��3���G�s���t�{���0�z��4~8Ui�C�y;���Q��i4�����*l�;�iN[t��C؝��ٖ����v�ӵA�9������YX����
�lM��M}�m��X+.;k�o��2��E1K$�[�Z�#�S�Յ��U�"`k]w�
+���3vV�
�n���G���-m:���>�J�!�m�~H�����+�*��b>J*��Z����fW�:C���}жܢ}��?t��ٰѭW����
�T��ߘ
+�J�bvg�a͋罻���\X�{����{���Lnʤ8m�تqnI����H�u~�1�f�
+���Oduw�wѕ�_�j.6�H������ Y�_�^:�D���g��ŝ?���0(�8�ki�wǹ��4��}8&^}�ɐ�8�<wp�������(r�_�c.�l���
"
^�hM���Y:i
�0�/og��7�
T/K{ӿ�b�0�徵���=7
��q���{�mnl���o _�����ǭ�;¼�
�'�#��f�[[6
/;���V�u}7N�\�?�D1j/���;�yo�|�b��3�~��X�?e͆|��e5�}|�!�� N]�������̴�J� ����a��h����QvU�Î4j}Ůܝ;���9Ŗ{яy0q�CQv�K�H�P
r���p�������\�9�/p0&��%;Z��c�_�NgO�!]G��y�x&���o}�}�
N�m �u
� n`J�I�?�;W�����;*c������K}����>O��v�ڻ?$�B
��,��+q����Vs�aLW�`��q����M�����s�v�<��#�R��e�
~�UmQ}�q���k�L�
����MXԵT�Jru��`
����W~�����5F嵩Y�����;$A
�\0��DC^̬�����V
�i"Ote�680�/�S�:O��-�a��&��
##\�o�$&�{� ��;4��
�j&I�4P���8���P֍EZ���'����1��;jSp/�<
xhy�l�1�ީ�%�Ŀ��ܶ�kc�|g��1�1~��L�F� *�4����D��ÅB��'��a��
�Q��
[02�{�eshW�Gn�I/p���x�]k@��8-��]�@�ߥ�)ӟ�+{��~�������ډ�x�|�aJ�ڲ�?L�I� �xn��5t�c����u�`�㽧Mi�l�B���u�z!w��
v��w��?��AN�����BX���:�<
����[L�|�I] �I��Ȥ�?���uq\1�
N���qu�f�����t���_�16������pa�� �~ J ��% ������4a�MԚ�q��K�*'�^���+'ˍ��F� �V�� `���� �@F��9��+�f�f��8�q�l��s9��b���G�yY2`H`�K�5���s@; [...]
eNDM<ؔy0�f�eG9��Z�Q_���D�.5������a��A��h�4J,`&5=�9�`$ةVj��O�1�*��:t;j��ȯuxúФ�[��*�a=����ި���
�{[��N�v/A�H�e�J����A16��C{����
+�]���в�6���Au�V~�`j�ۃŵ�V������n�s;��̸�i4�0B'��6�'[s����E�a�Q�2g+K�+�/
|[y��gT��
�i���.��L�|�e훬 aڬ
+XDV`RX�A��ζ�*�8���qd
K�s0����>M~%�r;%�����ԉp��3�cl]�x��e��
���b�FøOF~�R��۠\��P��y�]��բM_�J�4�)����I��\4��߅f,(�4���>�
ŧ��̯��U���rs�7�r��/߬'XK�l�a���(�压T�L�����>yX���F
+O�S�o��c���CRV�%Z�Ě .
��R�|��d���R|i|�6X�&z�95b�<2����d��C7G�ú Z�
jl��'E�
�b�\�N�~�
�S@�3���j9���/�|���A�<����5N�*��*��Q�
k� ��]=�z�ACe���x�k�.�-��
9Q�^�&e�i�x�7+�V��
s�c!��\a������u�T�X�֛�"�6�(��V�H�q�I
t
2�[0
+����6�0�Ǫ��=`�
J��7�C �i�/:`m�h�~=����qrqn�H���|�h$߸���X\`-�W�b��2ۏ�Fb JG��"�6����VG���U��T���G�=��2�_��I�U�a{���k[4*��\�kS@(9���&{��N���W�Ҏr�BU)�]��O*��i���5Yϖ}���
�2ٍ�.���M�'\u�]t��C!�#ui����k5����z�ˮ���ګ�Ļbi9�����f,c��^"d����7kT�<�'��6{��i.�S���ir���y���3��ܟݞ���|f��
V
K�*�
N���IJ�W��RS {N@�tqI�=hsN����:ؠ�����Z�O��7FQԛ���bWM,���
�k�tN�}��L����C"Sφ�r���Wk@�|��OW�Ϗ*ny����(���U"��xx����_��N�c�'��ϊZ|�X����,�*�`^xjLx|��Jt�/2F��>��p�Y
��t�
j/�:
7���V>l� ��|\8���!�<�
��l�V}��p��)�,��DR�>�:f�� :�a��킜QL+4�ϗZ��#V�k���:��KN~�n&*�S3�z�iu�~T-ӫ�|�-�Z�p;�n
��y���O��<�F���У��f˗|?�|�H�����J�Ku�A�]�I[��[��M��
í���2h/�C�awX(�.bEU���Fӗ���-S���6����`[묎f�=����uE�Gwlu�
�$��_6=�a�Wvj������bn;zIJ�^W���o��� ��Ӂ5��]S(���<"���B@��H^�ϪSY �$V�GFE��^��娿nmz��z>n�
+��D��v0!�}���z�s/�
R��1�K5��
͖&�����
��.�� ����hp]G�,�f����
+e�C����"�e����.��P�Y��JJއ�8
+Mг6�n�n6o�ua��;h$�s�v��QM�����
�|�u]!��2���Iĝ�rX������SC���q��ahl���5a�g6�X��\
)z�ߛ��Iw�Is�h�ų�c�}l����W�����
�`^ߝ�Fa���)ݒ�1GO��W�u���o2�bpT���(�w��+�v1u4��k�:�e�v�
h�Q;J��SS���.^��I������a�Nչ�FYmZ{�z��1s1�q�� ��-�(��
+�]���ZI���17,k��6�s�Ja��C����un�jӑՙ�hʒ�pnٶ0��N���~1����L@^����� k�uG;,�!����U����Ԏ2<Y��֮6'ĉ#�����l���rp8%t�j}w��YI縪ح�-�!���
M
�^��3�F��L�9
?��΄ٱ_v���-���Z�!g�Q��L�����n���1���gy��I�T-�+
���
~28)i������-#�t�$��5wV�
u8u{��ϻ;Sp
���P�E"���#J� rr����P-���)j��w8�l����_�{]M��4��͝�TXKQ�+e�~u^w���o��V�
^s[ϴ_":s*���}�[:4�շ�������Ԇ3r����l������p��b���{��g�$�u��6
��W�}m"i��I/��!�庩 ����X&?����;Î���wge�J�#�
�{�����
���!�藺W[= uQ�}U�4q�t������C��������si [...]
+�����"�G���JkT3/�E����5���~>
��bd�����
�4�9e�>��<&��;��Y)���]�����BG�{{ml���1���cDIŜ6�!Q�l�`y�XSf�T�A�����&�ܸ"�)�CL�.�[�4sꮝ�
qoaa
��Yڑ7�#��
(Ne��R�7a��𞁚T2er�<��
�c=�K�-�G�����o}��~ 7�zq�s�b1��/S��n��y�:̆{0仵6�<�"���x����v��L�P�,>^�}����VnЏ���ˣ-X����X�U�D��y`O����_�e!�G��2'D��!1jث;��[Ҥ�!$���p�
�9
y:���p
+f���*�
ǿ�jE��]?X�z�i��}�C�E5����gȂ�9��1:4�)ՠ��9�i�g�>+�E~�{}�N������d��f
�P����Re�����g��ay�ͤ��Y�\����B����Ȫ,e^���+�6}C����.B��Z��
�����Q�6O�c43�F l�X�K
6^L�W^muZ ` fM��?V�\�Lk��=��~@1͆K���:ַ
F0���
M���
'2ю�2kbo��J�'���xj��Bˣ��{�+�h����%�J�i*Y:���T�.�ś?Ш�-�}T
m�f
I��.w�d�]�vpS��F�?
�3͜�
�<��[Gî
��Y��_+���z���&
*��9]Hâ�
�N���
��'hg�.VT�=�=¯ݼ�3ْA�����pC�X&�ϓ[
�5Xz��5�\\����V|lr2�E�'��&����}�����&� c�F�]�x����AWoS
+p�����es7�
+�;Ż�2=H��pV,?�X�Q�
�_>�� ��p�A�9����
OM�`�D����I�/l��%��O+��v+Wm�/ۛ�a���}����T&�&�G��n��q����5�����ڟ�$���L�ЮC�k���]�S
+
v�3=bS�N[������e����k2q��˦?1���
3�b(�F=�|ˤO˷�^��][�s~���3@�&�/U-*�����$!��K�u��L�X����~��
��s��:���ұ��`?����kV�a}|�@j�'b�{��n�u0s���w��T-����Hmz��c.����a�o<vN�
-�W]5�RͰ�Yٵ�O@���in��Z7������>��+�n���"�1�_� ��? }���
8s
Z)�B�Fm8H�l_��,q�
+68��p��[�w�|���A��A����g��A͐��((y�=�����~�K}�i�U��q�����&�� z��R
�
=�P�bJ�X
MLh���
����ٚ=�E�P=��v�v����5���i�@� <��r�{Zw�ո|�2֜�ReW�R�kfK�n�ѫe���YW�a�����h���:�k M�M^���[�.
v�_X3>�q�
gV���(���
;)ºڍ�n�Xm�3�\�wn�pN�i4��݄Fۑ�ֻ70w��%��
�
܃�3�������!�݉3
!�t�Ţp���=C;�+�
@a�2lW
Xݙķy����%���8
-�N��-�t�X&{��r��4z� �6��F9X�
��c��y��C��+�}�NP"�/V&J�۲��+��E�ݱi[�mnm6�ͪݴ
0���
�%.�a;�)�#M�?���Pf�t�OC���r�j{ީ��ӷ�3�
�Dz������I+��,��s�
ު��Ъ���(�E�_7�2J���6�R+����� Z�
?YN�/Ъ?��n��6
B>�a�j�pH_{��`]���]�� i����o(�����xN DS��t��#
���݄bBE-���ʙ����
7�z�����b+� �5�:9rܹ$z��b�2���|_��WDe��*����6��֚�翺9���?����-wrC��
~� u'�U��w�WV=˕���&��_���r�yv
��u
M���(��Jڛ�����ڠVս��f|����9�;W�j��x6� ��̍�
p�5E���7Wd�s�&��`HZ�Ǩ�������$���m�`��(��߿�;
��&��� Yu�
�&��OJ��R��=�S9T�Z�I�<�DW��V^~��
��G/��Z��@6�C;��bCED8Y�j�~+�����D
�w�
�w�
���U�U�o�=ol#�uA�f�'{�ߝ����(��88;�s5�x<hi
z�`s��q��-��T��R�.�+�솮�w�/mG��J~�Úv��:0]+Y6ˁK�%_�W���,�}�~I-q��1��MsT!gI�
T��ׯ�H�ܓ� �g),-.7q�b~4�Y�o��",�M��o�ּ�'��J�^�
+�&UL�u����
���Q�Lޜ)Gd��l�u��2'�}�K
��N{����Vx/�_o�Qډ��+���@SS&��A��߾ի�M/
��O�^M]Ǭ�U�_ǒ���wCH��J��nA�G��"�l�/סu�d��k�O>j��!kG#�7�'�Б
��
w
�
'6l�"��$̇g����lo�Gw�(�xkc���g��c��
�q?�� u�
������|*w�&�'?W3�"����:C�Z��=r-j3���yFS����m�q�X�o���٧� s��Z�W�&�
-�t����M��
+�7:�Ƿ��F��zƩ8�qJHן�.G!�{�<���YԉŪ.{�尭4c?n���BDK�Xӣ�p)���*e���gnG��1H����/�B%�SK�O�D���6�$��:��)���Q4gZ�3ur=��ۆ�?^.���so�9B�WU7�G]�;o���~
q�04�}���^�(�
���5�0"�
+����>O�M;��H�j��QG
�?�;9'Q?(�@�����*C�B��Q�!QX�{�dp:\�M�C������Cr_�^���^�l�6m�7zR�{x�vuͳ9�Ѐ���m�զ�����b1��A%'A0�7���5�^�9O�t�ѢO�[cT�E����$��
��Q��A�2Z�^23���u��P��������� S�{j����etd#j�,�o<�����B��
�x�
K���e��8����
}���OI�c�T�p�@$^�w�sҤ6dR
d�IT��W%A��f��D�n��[���tC������|��]�{^��=�b� V��
�ӧWtxG
+�qw-�N9_>FP�$��D�֊
@�V����E��Eg�ل3����L��z��ݞ���z��G�X
Vl�]=��f?;Z�Fe^�"ft��r���}O�rS�x�!�)ޭ�;
�?�M=���\ �T
�[�̬3Z+iW�&�B�>�w|f�����]��"�N�������\FZ���Anufh. �O'z�F�5�NaO>Y�7�w�w�&�=V���1Ǭ�^��-YǸ6�r��y#�d��Zw��H����
�ō���=��"��,�XU��m�
��9B�����q��Y���"W�P��o�/1#"}�����:[NS�N�)�ʕ{.v�5.g�-�����;��3����q1��錰��=
+����jL
�,5���Kl�V���ݖ��/�c
+�e!:�K����W@[�-�Y�J�<��Aizy�
b��'�I�~v{k�@ �f��%|�����a_[��.7(�U ����m�XL��I��
>�Zw����^�r��eph�"6%�9T[p��
i3�� ����tB<%_a��ؗP.=�S���R)~���qB��?%
+endstream
endobj
105 0 obj
<</Length 65536>>stream
+
0�T���H�H)u���,7{��ݛ��l^s5z�U�Z^9/"�����O�袍\j�A��W�!
���
�$Y_�H��g�z� `ft�8e��ͼ��*W���EZ^⸻
��
GF)��ϑZ %���$�A���/u�^OLĞݸ�~����
����҃�B��zXn������u�{
�ȉg�� yyq
?��~q?X����B���u<۞����-�Q����؉,y�"��
�5��͗�u�GEk�s�.?��ˠ��{w�>{&R��lE�֠'�(.W�y�\O�
���G��Z�"��TB�����������V2:J��I�^����E��,�T������Ee�6F0�l�]
O��:�{�A{g��iT�f��l��pU�%wq'�v��bw��L� ��}�Yήe����U�
+-+�{M�tn�)r������=������ќDs��ԫl��t�aĽ��5�B�SL�� ����bis�/��:
��,?�g����8hCb�_��݈
+�
��F�Z\HaV�Q�W^t5MhH
G��~2���
Nk��أk�k��(���(��bvt��)`�ݪ��M���v�C���\�F�!����M���dTG��^ԓ\�8�F��zzԁzHOK�G�O�UG��!����:Q9�?p^[d
Siw�.��&=T#X��=s]qOl
�c��R��۪>�W�p�Ê�10A[E��pGY+7��dR�PS�s���,.qj�Y!)6[�(CrjJ_����&��Eb� K�H4)��H�+��n��&:�*�^
n-��4���(���!���jf
hht��T,
d���QPǑ�߬
d_ǁ����R��g�% ���.]٣��QE�3+9��a\�%b�S*;{��*v~w��}� ��r�ұб;���-�:��-W)#۫}���X�[�FY �i+�/f����XǼxU ���3�7�x
�H�,����(YsK�Of
i�F�J��qh4��fۚ QZА'.�x`��Q��>�p۴[s���?\2�j���A�������0�
�61��%k�GT�J���]W�>���
��'�jz�Zk���sn$�2
��r��t��!��:�D^zd~
ͳר?T2�4/�r��ͦr��
^O�G��]��/]i9�q���^�
�n��N�!ynY
F�fn6z��u�\;��|1�t�-4s�+�#i��<a�.8,��f9M�
�߲�����m��YaW�q��3��t���<^k��Yw�~(��
C& ���~4XL�ML�V��j��@
h�)�0�h~��7T���\Gr�z
Y��dq�8�u��Nh�1�2�f [...]
�Z~�
�ow��0U���%��P`١(���Dpw~g�)û`�jf�X
k�6�Xl���W�
��}1��:�k�Ԉ���=���
���=����y�*x׃�y�x�!��I�
�_�,ҹbep�g�xv�nQ!Up ��-T�gE���Λ�C��|����n�Y �� -�����#�"V�!���ZyV�@D&s=�$ɔQ�5{
�a$�y��tN%f:r'V��Wt��G��� L""��7�J�g�Q�LV�˗^�Q�;\���;sl�"��Y�d�H���������T*�s0.D�R�oV�s2�
��P�o��B��t�9v��n�ٓ����}�],
�ʆ+�>�V&QAY��
��+�/��& ��R_��#����t�=:( �nӸ�;��s��쥪�iMV��6�`�z�&�[{-�E�H�pa�I+�£s "x�@bv�!��Zȵ�g��`��F����}�UP07]k���Wm^���7V{�3��}���\7D��L�>�$�^j��&�U"�Y,��b�m�W���*V�^��'N����yXv�̛�.C+,��Ѱ�bR�D}�TO������j�@֙��b!��[L�P@�.^8��3*��;�$��Uk1?4gy)ـ{�=9�4TU&
��
+�)^��W&;|h�<�ف���7��t�m�5�F���ee�д�0�[<:�Vk
?U*��4�+|��A!y��I5\�K9Z��BGl��a:_��kY?/�ΤM(���9X�[�0�S*͒ P���K�<Iթ
z�
F�Q�M��Rk5d8Q�N��$�2\��Y�
+O��Bv�1P�g�沿:g��}
���5�Ū��L��}�.���,/uksL����OL�M
�fY/�4A 5`*����qvm�'�J���V8^�����T�̵���ӝ+A1חԜ�p5��ʫ]SGh����A'��
+e�6��ur�� ��d�����k'�0��� l+���8�=�c
/��E6Ct�ܩ��ʫ�n���Xm� Bڽ=�^܃ �େ���I�ܰ�)/(��op��E���a,�.!�~�����T��W�t���9!|�D�k�e/Q�n���
��W���x�8������
u�j���%,���R�S_?
�{�����a9��%��ł���]<�F�KA�J�=öI�=�ZF��:U/�W�a��M
D��}�Y��ÞR�VJ'Y5T*��c��kXnS ���r�{�U��
:��˘�m
��y���ͷ�7p�S
���S
�F�y�0)p̘�ִ���.���-}�
R��iz*�ot�~>���̭�3��f&STi>\�Sg�4����uDo��Y��.u�
g��uJ
�&
�:8?
+�L�]oS�u�d��j.�[��
��=������t[s����^�
+s�Ls9��]��>
�����+@�t_�v�4q�-�8h�T4ؑ)���|k3�Bc�`�I�R�����,
��P�
|�wV<B6by{�J��]�_`Hl_�|�:�0,]�-
��&)QΪ0-b�y�= (�0[ �8U*��]o�e�( Q�N'���hX� ¿.�+
�!m
lc����g����{'� >`w�fuŷ'�\r��%�j�Q���y>8cn�����Wn"!���t~3��t�
�H��{%*�^i���0�����=
r@Ԑ�����V� VR��:��l�WR�~J�`Н�0#
���XOv
+
F�(�*n��H�n'|&�jԣ
�?eYU��������R�B����v��U|
�����l��:{i*�|�F���8O�q�Q�f���ȸo*����P����ƭ��֨f>�h��t ���Q�<
+�^���>���.88����2�S?͉2��W���]m���e3Zx�BuU9�&Ȋ���t,uG��`7���A.�ѐ�K
��<֪r�M�_��c��\�x�W�k�<���'` �Er�SF�
C�����%��[�
������bU͝�J��\o��hU�6s�x��;��dQ�����{���u0�Ctw�
YʥvOL���t^�4�4�
.W߅r�zZ9��}
㦊�í
�e�����%9 ��
*�a,'�����W[����d���ܣ�ڍ��I��V�-y�у�'���؆Lp�q�V��DY�0�{"�%�_�ׅ-f�"�u(�u��ܪ[ �8Yl�� 6�Z�W�Ss5@��T|�q9�^f���'�Ǭ�X�;ޏ�)�ۀn�m�bS��g
+�����E:�f1
+�Z�Ln+��[�aε�H�=�8�����-l��B��������?cȤo��-�!�K��W2.��l�YCF�w��d´�dKk�qUT�&���U��Ph.h8p֣��Ʌ��{��,�� �s������qʼ2郉�Eg}�Ԭ3��P�b���gQ?��Ө����i�Op~�h�E�g��~���U�_���7�w�4.�7{�Ǜ���4.�7{�+������~�]&����������I�b~���om~��C�*g�^�om~Ƥq1���������m��L�������O�4.�7{�?�����eM�N6U�cN���bw�#�γ<��hr{;@'
�Bh������mu<wO�ף>�?
�|���y�쭚֟)�~�����:0�=[�K{�0��uE�6 ��u�T\����.5��{������E�w�<
X~�I��0;�Z������_-1'����Rb[��u���Ũy�]�w�8�Q�B����٧��n�Ǣе
f����Nf����n�2F� <u�7��� [...]
e�p��f.n���[�(Y��>v\N��]U����\��
�\S�b]C1%Ô+~��A����wQ��
<��K��Һ~{/E�:�P��y��G�Yl�����W>9�N�sCr�
mCY�
ƒZ\��t2�/e�VΨ�Z�pn��1t�*7D64��4�6��?��>T�Ǖ]B�y�x�
�R���H^-��|h��DXaߜ�v_���o����I���ۯqũ�To����y���σ�y4m�8Ln�WΡ
ᵊ)�=�.�UV)]
Fr�=fϤn�{ț����;��߱U���w�u3��C4 ���ui�8����#�e�����SR��.�:���6!�����߅��,�K����d���ѫ�̻x^7>��z{y�
=ʝTG�B(O+��Ƴ�OuiR#T��`JypD$��D�� ��pBv����9�mIj�����lq���x�x���n����fG�m�6ݚ=M~�u�8
k���
+��-�s���/�
+���N�xа8��,Z�b�q�q����p�c�7ʗ��O� �8Dۛ�|�m�:��j�~G>>�]��P�}���m)���n,��X�;�����U:�_(�-o����|��Jr��}��-N���y���DTek��\e]���gE
b$H"Z�A�Ϋ(��sn��5�Q��ٟ~���OFWm�r|�7�c��B�Y���}�j���I�y��k�)�Jǻ�yPɍ->�4S[sZ�l������o*�^�Ne�5��ۻ��~�;�.M���`dD�e�麴�)�m��F�(̐��E=k�e�G��\��M��˴��*�Mxue����!q1~�i�j`|����?Í�?/=��
2���.7��>&l�����s˶�ڎ��9���s�~�*-�:=h�
*
+A볒<c�ɟ^Na�~Xo7}�3ۋ�l�<���T�.o�ǣ
�Sg,6L��Z��0�
��3J2�5�i*�갤�9�P����1�e:���,Ѩ�/Q�9�ŗWI���}�I�S�����&y��
�S����_��9�p�ܱں�3��y����ݎ���ms�Lq?�?-���H��$�'�s��i�&ɔ�E�\m~��Y�g�L����\m~�I������G����M�&M�������6��C%ɔ���Ώ&�[���M�L�ܐ����Vm~�p����4����oQ�2JA}_��>���Ɯåq�e�tղ&
/��
�a�H�> �w����m��ݟXn�Z9�RC'8N�z�����U��J2a����������$~$&oT����f�&�
+���^S�yAu���N�t�z:���1��7g%�Ɍ�"F۔Ѿؗ_#_8
����yiRɾ(��Y�6q��uv�k^��H�Z�p(�J~���g�1�O��=
o�d.YϪ�H`p��K��K�����C�Z{��Q)�T6�b�ǜN
bD���N���* �s֧�T�M���
T7�`�
'��y鑎~w�G-��:�z�����??��u��w�bkR~h��\L9m]�Lg����m���}�Y�`�Y�&P^1��]�a���n��>���p�_#_8�["���[��cN�팯�,~W
4��N-�,
���Y���=.;��&{3
�wFdm�^5��&��n�/ұߖ��O��Cb�U�/��ٺ�[��w�����^2ӬxaT��tg~�/#�9���(`�����
���{ŴUY�X
c�� oO�*ן�$;�
�ڄ���|��}����M���[nI�7w
�
�S~hMa�[��5
~����V-i^F5X�{�����a�)5�������:�R�HZ�}~ҋ�>abkBI�y��o��X�^'�|�
����n�����K��.�-X��j�<�
�� �2�QV;~B��������� v��
��{���q'3�z�q����ؼ�����G��[1�"~�\?b���ľypp�!�La$��_#Ԛ�G��MŃi�w�u?�F
4��ǝ�,
�����K�����^3
�\D��eD:g֫=C�W��L��I��ȭѼRo��������?�G:
�Zϫ6
vt��y�[��e?:�S�Z���;%3ԴLa���x&W% �_j
x�QLXD"�I�^!K��S�g%��7��]��m��˕��ZlM���y�����f��Q���"�S�&֕���g���Gb2��
+z$���#���
+��v1v�_#QM2�|Z�?6
��o��Z�L�����d�^�O]TK�ItѨ��D�&>S^Cx��0~�ۼ�)u�
��
�
m�2�S�b�q�$�]��%_��ǧ߇��)���d���
�+�ҹ$wq�rfT��s1���*iὑ�Bf9-��,m�{��j~uc[�ڦ��7��v��.I��_�.����7�5
ӕ@S����mu�"l�䫪"��"1�&F�"���/4��m)�~lо��T|+��rDy�� �̲^ɳ�~�<�]�M$��Xw~����Z���y�"6,H��1ė�[�
^��A��Kx6W��#ˤi�mnQ� ������w���=�!�"�9� yl37(@W7��
�#��rUc�0�]�
%v;r����}7�M���%�^�ۖ��w"�ݢ{Z��=X5�U�i�^)�Ը�2c)8�/I��_N�^Ѯ⎵r��V���7S+����z<(�u�����Ԕ���9�DNk��#PJ�V�)5IRU@��g�d�*�{�8��-a��kħO{���l�����V�_E�}�qrY]��Hr
'�az>W���Q����:9Oڄ9�z�*{�
�pg�Op��N�}�c��&�
+�}�U� ��DЍkD5�_P�ǩ���
����5��.�+�^�N�=2IV=�Ji�����
�C�y��F�&�/��<3��{n���0�}�ѽ��$�������~�3��,�'8?f�?�� ��k��G�g�^������p&M��z���#�����&�3&M.k��������gr���z���ce�o��w4��6i�~���S�ut���iQ�3S�t�=[��{���c)����_g�?
�U}qAu�����9����x��O��Ξ�{�'e'1k>��I���k����Y��_8� ���X���n�wq)&������K���j� �[^��#��eK{�i��{non�{}��nx?�mX�#m������$I�o� �z���ioՂw�Ʉ���0������ {?��W�\�â�/�T
�ɁA{�m�ܐl��ӓ���D(��ɺ��p�vk��R������P�|��lHt6��m±�U�����nh�V�ϟ}�[ż+��0ǩ
n
s�l
+֩T�������i"�N&���/&���s�����
���� ��j u��.��X�4 Z��n�/��Zx칊�"�Ə�FsJIXn>ǘ�l�W�T��PGU
+=U�`�� Ifk_�.�`�����/�s���ܤ F���94h6.����g{~�������<��m� �pe�xy�����%�{��h��S�~���^Q�*����������53]
+ ��U
~�_��慎�I
�
{�
���-�ԅEc���'B���F�oN����
���$KF����
j����9���"Ob�/��$�C�����f>�N�35�y��Gˡ}��c�U���m�ژy/լG��5�3rI�U �vd �4��J�R���E��r<B
�Ai���I����خ��?/d�.B�$'t�4Գh=;4z^q�I�d��Z�vj��0�@�I�)�knS�����3A8����@�����XO�y}����x&
+x^�_��-
�մ��w��X�����+#�6驄W��.���%�D�Z51�d�?%I
���'�
�$�ƨ�O��m"OƱ�{t N �gzO�<L=�L)���i�W�b�^G��BG�A�';�m A��d�#X��,TxDwA'Mˑ�]��T�~毨2�<��^�I�Z*Bإ�
6���S�L��
p����0�
����MW)�D��.�N�"��?��
+
+���p�On
����g$���9������dhq����Ŏ�z8~νДQw2;m� :?;���Z
h�����MW:�jow
}q0���)��ٽ������+g[�u�H���_NU��Z.�}�lg�n4ck�}��!Fǥ��8D!<[
���H6aR�S�-C£�o��-Q��
a�4{|���
�0� ��Vi�H�~I]��A���m4���F�F����eo���S
�I�wkG�7�)(��_r]&�ny�>�eQ<8Ua2��y,�����n�5�H��70��\���|�g$���7Ph��N��5��KM�
K������$ӻ3�Q���
'/�+=��L،��r��@�<������7�ުs�-��
�g�9�EX����|��H]O���N&w��(�c��Ṽ�٧mz����]Uҳ��T��~3���h�N���LJ&
+�7N��l*����#pLVXj��1�p֎���$
.�cT+��q��[fm�>�o���d*�
�͙����3�()ح}�os��8�\�`�O�C�}ހ�S��|g�#�d��� v�4�5IdC߰V)�n�g$
�*�g��'�5���:pܿ
�y����t��
+������)b��Q�vU�9���Yߒu�yE-fG�L|)8��Q�L
�fHE��ڝ��X
+��J����>$�I���ze��f8:�8�:3�h�
T�J���S
"hm�ܮ���(nȲ���1�#��д����`7��}X��1�U�t5k��
Y�lp?�ٗ�S�@��T���a����1xLɸ�y���C�S2�mE9���3�0=߃��q���<�Q�f'�C�$a
��|������A��6{�x/�ͺ����D����ŝ�騕���rd
9F̟�&7�7��d�J��w�y��<�
+��
+u2����*����0I���L�b��a����N��#q1�������M^�z.����{�� ��Eo ��en�D�ޛ� �7}���^�4��8�g��y�QL9�zD1�ҵ\.�rm�E`
0�ʚk������s3�E�|>� �����j�u<
TX�I�W�;�[���U��ƹB���puAN
�R�C��*����
�GB��I#�#��w���Op&��Ϣ~�[��,�'8���Ϣ~�� �V���F�5���L�)���ߪ�/��g2)������h���?��ߤɌ��z�+������
*A�"��q\��Z8Y<}��"]�L���|��P�N`���b��ե��, ��1�Ǟ)�tE��m����?� �r
+!���|ᄜ���l����'�{x�lͨ�����
Ed�´�F{�y�x�n`�b�z��K��>[�z�
���^=?
��v�h[�X���u��$K��~��U���
*���{flM�#N����Kʻ
o"s���uVf�iTXX�:G�G��
-|z^=4�sK�w�ơ����S,!��^
��ok�$.��_P{��
�t�D�R��v���ؘ��?�^2�����{
�r��|�2xͼ7u������
�C�Cn�$�8
�-L�F���.������S�ͣJ9O?�%��zt���>��m2]��LM�˖_�
W��O�F�
7�߬�njF�����륺��K�gR
6�V���ɫ/L��!��_N��DU��#����r[��(���!��$��U�/�k~0|N&\��
��<��
+^�:���J��uZRC�r���J��~=�Y�a�*�䭢���K�p,9�TY=>[X�:z�[�3�y>��K�q9�Y���K��E�jw^u���f�m�lf�
���C�٣��p�%��*
I��SN68��A�+��\&����6J��{��l�Z�Cs0�C�n_/��|{
6+���8/w��&��5�
��
NS���*7���U�u��d�S`%����M�$��S�����:���Ũ�3�]��p#V� �d<�{���{w�=ΛN�>�>�i�k���h��
+R��lK�߭����K�Ac�
+g���K��$CgU�x0�f���Sܗ v|c��
8�\-s�������T]�,����*h{�,�3� *ԪK�
�H`��� �O���yց�y�N�����vZE����%�x���4\��-� l�D@`�%�;�ڛ��adr�AF���
+��RlDe ��t[;�����D�a�ມ�*IJ��?�;�2
Is�}بc�C�ؚ�R��X�;rv
��,�|.7�p�e�J* 4�I8h�:;�a�!v[� lka�'YA�#�JT5�#��K٨Vy"�K���ݩR�
_�]�t0�[ys%L�K4k9P�ꛛ{殧(����3%�V�̾�����*
��Z��ǧ�ܒO��d�?^!����N~�l���m�U�!��4}�'��b�I�%��s�w�b��@��M]p�]�v�ob��ȳLNFe��
��6.��R~�7K%6m�qߖ$��������#i-FE�c�}
��
�`�T�64
�T��
�I�tK��~)
����!]��g�v��w2�R���rqc� �/
��笛;�84��P�p���?(����
�j�����w�2����Mu
��Y��\غ|?��R�yJ���&>G�H� ��v�Wr��)qU��u��e�
�bZfMa|�O���8~�DՇ����4���"q��[S��N�>
�l�v KX��,ii�HI;�����1��^;�m*�}���d���Y�a�n�iw����(�k��OH�����T�䨖Y��,�W�v�bk��)��U�����݉�/��b
�N���`��y
SO�
+x��\-M$k9X�����
���[��\�N=��>%��%���JTk��G�e��P�"�ྦ;4�<S�
+����
���[���N����C����4t����y� ���tV����n�M�\�U�|;�Ƈ$K���AxM�j�r��S�i���}J�v3�:��\�t]��T�F�v�y���5DܖϢ����ȶƼ�t{s�V5����C�)���O*��FN�ԛ�N���JR�������|���
�:ٴ��6���ǔ�L�^o����B�g֛��J�A�B0[ƤiF9�Ewxj|(��,���$gB���Ah�%t��:t�b�~�A�je
����Ƕ���&�lbʖ+S���
ϩo�[�
�۶Y�
�'cN���_Rs��Z����n� �s�"�z���r�zr�JƗ�#P��$;��3ߖ�f�
�>�a۱�vS[G<F\+������_8oY�37BN�t��7TfW(��T�F��{� t���E��Wl}����
#*�<I}"�G�J�t�$.��Wx���
�3��U�P�p���
�r
[�^
@S��f�y=�`#/��b��3�)���i:ɝfц�NF�u���$�YY��i�mӍ˳샦s�\��#��QZ�k~�ȭ3�5�`���Ð
�����B�"�t�p(
��:��5�\(�m�U��5b�H�18��b���
�������!q1�v��$��4�J<� ���u
Y=���x��L�nl �A���q!F����J�v�sn;���B�E-����lf���y���(�6��n��ݩ��.���8�
�'8��gQ?��
�$�'8�c��A�g2)����Om~��?8�|�����nj�z�sM��*`��EEb��!��u��S�4�bN~
�7�t�y��{TL^y���cT|f�k�?��
���;�m��
h���B��%'���L�u��"���"ȅ��lE�Q1 �j��6�U���q �G{
�n���m����l'��S�0�«@�,�`�oŠP;�>�e�n�u>2����9l��|�F�F�����Xlȉոg%�)m��φɶ9�pX�{F�o�}�y}Wϙkڡ��L���n�����"������*l�i�mSDV���@��י��$)կ}�k
+��j
*q��ؚ�9�
*����g+7����[��
�{��k��W��˺@>��I�ܐ��}��<7�>�n���q_��NAY�,�r�>�d�_�pÏ<���I$
�����U�={t���핹iW�AO��q�Rg��OH���ݼtf���ە���UX�
+^^
�f�p%F�����'I�N� ���OԨ��`<�
����d0���R��.��m�ݒ8-ԯS'(�w��Go��{�
+��;3.
�Ա�,�m�F���:��U-��0�w�OJte�ے�R����n�QuY_Po�U>z�֬Q�?����%��+\�����Υ�YgϿTC����G��R���2�z�K�(Zx�Y5I��6.���h�3��H��7\M7����_9���W�L��.��(����6�4�а)���OM��y�~������w�b�"��8�EV������X���@��������\[+�i IRC�����2y&n��ˣk@��A���6�@n�
�I��X�=�üz:,֨g������m
~k�\�U_���N����±����\�CD�����R�ۙ��E<�g�/����i�.62�[��m���4
�G�ʙ�3�Q=�,�LԎV�1��
���y�2�O}���XQ6�$�/�z
+�ʑ���~���N���&
���u��u �+,d�!�#���~sD��N�`�֙�;F�.�Z�
}U6̫2��
HŬ�>���P��!�Y��W,r�!IJ��>!E��xx�0���o�·f=�
�V _j��:Jgs���Ʌ��ؚb^�����QU�W�\ 9~t۟�cj��
`��M1��"�,� />+)��|�@�X�קR
��A(Y-�>6���6A��pU̷/��7<f�p��N���>H]�XKY�Q:�
oO��`G{�d���
��pω5��|L�~���Qu��s��Iw�!��z<<Q죫?�G�������Y����>?J���.k�Z
R&�7}��*j�r9��=y)��Vo���Ώ�^e�t�}>5K��ݡ��S�����|U"�b�&5����4o�Ó�������[*��V�6+���`�&+�lS� �J�i�vO�eok{��]��: �(��J��u��+��~��B�z���l��e�]��=��_Q5�Ձ��&I�C�0��g��ӕf [...]
+�{��
�(�Q�/��|�W�ũ�/N|�ٚJ�U��flM6�Q��H5�G�~?�SMiYq�������%m�3rw�- �I_�+�ژ��P�|a�E��x6T`���4�u��2/���T���?$���<����q_�М�jl͡zRɛr��Ӧ[L��wuT�a^��%a��^?�i�
��o���U��s��:|u#�ۆ���KmJH��]���#�����H~�y\�sq, �K�<�
�`�-�S6eޞ����G\-���>��9q�2x>�z�6h�VY-�B������9E�ח$ e��%3�K�/=d�_�(*�FP����h�2��ҧz\Nj��!��CK�g:g���PE�=Lj͚���
_x,Y���-ۼN��}�q�H
�t�T����<2�v/W�B}�'
+�;�o���>$�Ru<�p-��h���?�}���^HX���d�
P�ѓ�?_����Ν��\�Z�p9���<�j�5�
+:�w��^|�XTQ8E/
)�xI�ֿ_��1&?���zDt��ԑ�s�#=��t.�����j$���*�x`ߚq�r�dn�
B�G��݈���#s��'�A�'��A��k����r�C^1Lʾ�_"(G�Q͆� m4���Q�b���
^E��Abw���F����2W�h�1|�i��+ݧ&�Ռ��:K��(P)_�>�W&.�
o��A5}�����RHx��$Iȯ}A��ݤQj�T��k���LĎZf���^5��?&���\�~]���~�t� ��aN]� t+I��hQ�`���Ǡ9B=���tm�D�����@��We���v.z(�d�!#�h\[��U�K���6
�b�-�[45��`-
+��HmHk�*۷qg���ݼbD<;���o��=��~��\����
L�u��x$�r���t���P�Y� ����&-٧�{��� _Ips��[l�T�S�
�$Sȼ���hAA0���P'71"�X3�/��ޣk��b��
[�G�s)O���4[|[�b����N)�Wʾgmp1C
���y������2��& m�Šã��_��{_U�m�<�9s �9gD1 Q$�������v�=�����e���^���o�J��m�a�s魣�q����Շ�&k�V��j��fV�UF�o��b�-�9�����B��O�
Ώ` �
@�������
+��j8��{
SPy#mPa�8>h� ѳ<@��9�I�
�a!pVv%8~�ݠ�KO|?W�����Bgú���j�z[Ƭ�QR~x����_�O�?���5�����Ͽ�߫��3�����?�����g�o:������^��g���k \] �Y
��*�MT��>N �8e 9P��;�b��@�ءA%�RFTg��K��m5��~�=�O���E���N�wgN7
^7NF�|'������'�0 at et���4~�֡������T?�>$��>
���
��M
:��A���
�DZ�]뗉7T��{ϼ���ښ���x�sY{U���_$)�o/� ��dD���Ak�9��G#�
�B
�
�
�q�
+z��å�}AA��:������,�;�^�w�r~aK�!a����8 ��y]�Hu�
c�'
?ER�J� �� ��{��_V���-P��#�eW&�u�Rd� ���UгR��%�^Z->����r��K`o�����Ӗ��ӑY���������^���l��ѭ�J8�������ڠbe�q��S������hT݁�
��S)k�e.K�}������c���^ο�6��:
���H�D�N��AVm{'����-�#)��������o��/UP��U��Y�O)��Bǿ��
/��0GR[��D֪���
�R_/ڞzO`���u���]a�Z�bmE
+�
Y}{�T÷�r��p��g�
+I��U��� '��w���qV���V�S
�k��n��[0����VH�6�\
���z��(��<���(������X@$܋z�����AC���7�9?�L��
+�<'�!
��n�YŞH;�TC+����)�Ϳ6]1��
hȭ����.g�����%�S��'�;�I�[�I,
t�f]8w�Dfɧ����!��T���w �t��R-��dF�:��"r�YAX�s~gjn��
l���P�v�A3Ch��R���$����E����L} a����,��ǃħ�T��Mk��ra��ł6�W�z~�7_�f͋?�h/�mOQ���@1�v�:[�߷J����|r�u����A��6#:�6��ͮ�0,-T>���L)G��_�ߋ�e��2�'��ƍYhL�~u)����Q�U�{R
���=��=��`��Q�t���5Ĉ�V<6W��bR�x�
��y�?�)��:�"�x�
+�y,t�7,"�
+��*���j���·��7�`^��R]�bU��UU� ��Ӿ�vK�kٮ�Ӧ�?���P��U��.$;��DtrR*�:9-\�+��X�7�o�af]��
\9��R}t���A����/O���:+�E �~|C�(�\��͙g䠐P��)��VM[#zG6"m*���F��J8�h���1,�-oWs
����/m��Oΰp�Qv�
e��=
�=7�� �����7'4��>�H�����(�TS|[^�&�*�y���.�H�jJ��6~
�ӂ�q:z��M�Eng�z���
Ey��Y*s��3ʖr�σ�2��s�\�g�o��T�����B��IŪ����H���(9*�;�U�zƙҁ&K��l�GU��-B���qE�a+x�]-o���K��f�g�Lj�I�)s�i�?��ث�{읦E�������]���s���}�Jϙ#w(���2��9�o�Xj��\��<R�b���ޘ�K��j[���5��z��W�!l%J��
��
�Qc2U���(9�u�~����j
����pw�N:D
��>S7m�#�l�dF�8��0�ؾ�w�Y
ݚ�t~�y�-sO����R9�E{� ��+ϡN�m@�%"�68V
+��?#�p�����V|
�@u�Ījo��9� А6�w{������'1�UY���A»y��O�r
t&
�?�N�JqG���<&:�-C
� ��C���D at 0�D����p
��@Q��Y�A���g���>�`�3�ꛧx,,T�j�25��hJ �4�Y�z7��Q�N��驸�Ԏ�l���A
���D'�#��鹿5�:���HO��W�OvK�
�84��9Riw��'�
vq��k����ZS���Zv�AI
�=V�u?���:�z�|�U{�u
S�8�:6zw��(�˞�s�>Sk�|3��<�@x>���3�>����o/ ��vA��n�6~��
�����ؠ�4\������D��a*t����%%)���m��ڭ�'�n0?���
1:o��);K���
a�ara��ʛ��Ӡwa�
+���s����>��
j�
+��
<�n=)�(
�؎-w�#�����
oޮ����J��t�U�.
��#
�
+�D}-q�~�����A
}�� '��X3к�[{�A��eM�H�(���{5���
$T�s{s,;T�A��<����v
���8ؾd&�����,ոW��dO�"Ľ:j�fm��0Ŷ��r�g
;���(a=��=�푷�m{���2?E�6�#�
�1��MF���L��;1E>Ca�����s����<{�#���n�����CD�"s��>��҃�v�v�����
j���!�IԹ�Z���?mv�G�ѕcc �_T;�@g��!�Ŋ��j�=�C�ި�ɚ�k�����h}V?
)��
����?8
v
Vʯ]����[��zoۮ����Q���'��.v}=���ՇKOV�Ye�;���?���]�V�
��Ĵ��Noվ|p+�H�Y��>�6��q��S\�f�Z���n��ι���-�
�c��U��uX�b7H[}�c5��U�Q �²�^.���B�����m����-�s��q'�>~R
��
��
+셁���Ų
� �ax�m�Q:����1^}��t5�L��0�,�6����}�fx\�� �(=W�
�����
���<��F�F�c�t�Ҋ�AL�E�\_gR�/ӏ�Ct��-�Z_����ܞ�j��R���˼De�2����iq�V��
6��
ot����iLMjԝ
:����_5�P��#
�6�
����nֈ@�� �t
�"����,�=s���p�! 8�&�W�'��",_)D;s\
���g�"�B�iuO��wwr� � .�2+/}�S|=� �U��g2��U���7)�/U���oU�\��g���-��N@��
m��V
+��T�����
�Dv��-,���h>�vozh�� $�LXWC8�g�vк
�>�Q�
t ����)�]�NP����͢��@%
�z� ��� �<<P)���l�A�v�=oq�]k�7)Lk��v�-��%�F8`�㧥mt��^0O��=V��Sû�����&��]�&;��u6����'u
��Y��
�������B<��ę��k} )1�wdl$���^�r�Y�9�q�a� ��]k��~��䡗�>��;Yd*n�j�7Y�Es���.��_[j��f����O�'���K�g�tA�@���O&L���~jP�
v
?��
P���Z`�;��yG�ڪ��6
[*�>��^�,�@�Pgf��o_��h�M�]u*+��[�2�) 4dbU�
�~�����gZ.�bE!�<W��xW߁ߓ���4���
�#w��Wβl9N�rC�,8`^&^�|�z�����(��Y3m����'���Ds���-�l�-�T#)N��
_��X4�������Z [...]
+;J[�S�i��p
lķ�& ��C����|6PW
q&?�Ս�2MB$g�Ӄ.��
.�`�Є�~��W[��#
+irS�ռ/d��S�O�N�*�U�>�ϣ�
+�۶����ˁV��f��3���;p�꺜����d$�#u��#T>�t�§n��M=�uԲ�}a��{�&�l���e~�Tn�� @�W��(N��
*��N�#2�"�w�ʹKMRm��p�cM��w��
+<�l:� �ؔ���8q��0x�K~,�0nF���r>fY��QٲK{7��o�~C�V���V~�$�H������Jm�iiP�8��=O�����T�2
�4N7�}�[ѤAQ����×��0�C>�9��⦵f�^��=K^��*��x�_*ֵ>�����X�ةt�b9!�S��\d� �������a�-6���������q?�!_����eE��@���n��ջK�ل����
*ؕ@.��X<�/-�~�O�^:�R=ӁXI�|��T{� ���GU%�x�Oe at m�gF���?٘���N�)>��")OOp�c��z��|r �\wZ�
+0�a�Vex�^����N�g��;�{�9�\pBe��78�m��
��\����_U�g�
�.��*���vf����2/�����E[O��l�(K<�a,�En9,WY��k�j��q����ԫ+�
+��ӽ�O�(�2�D
�G�~>e� |�LV?�� ���s�A/�#k
+����_8[MO.��0��m�{Y6X��^��q�9���C[���Y��J�|ή��h�Y��=sG/�:MI�̃*�=+FT��~��x�
�����O���T��Ґ�d��t�2~ۛW���w�+��AV�
���u�\����
+����
����S��g�v>;|�I��}���SJ
�7G�{%���I�Ϳb��#���Gt��~
+ � �
TV�#
��� B�]
��\5��
�]���[�~��#%�dn}��,>�|�m�\8_�b�I�&-n}j9�ceǬ���@
��=Y!Ix��Ix9!wh�"�`ay䧈��l|��A�<�_�[
���N6�eA����F ;����6�3�T,�}q���N�@t��|��.nk��]�l:��Qd���~��QV��)~�C!�����>
F🐔T������T�c��j��1���Ǜ笌��HS�gF9�fS)�)A�������8/����
0���Co:��q|m�
+y ���CGC�O�������������gKQϦ�&>��՟"
��s{Y}�^M
;���z'e>W%�S�[�|�;SH���X������]�&#������Jd6�D(�{v>�����s���-C��)C#�y�S�X����ɻˏ`�������s��x�Ơ<\(�}���`
=�����
�d�}���6���
d�Zf�
���&;�Y���"��.��!&]�%VN�
:��P]�1�4�C�:���ݿBR���f ����u�V\�2��D1
�L����2
��l��{}���g�Þg��DkoE?���u8�L@��ef?[����xNW�
���v��}y�-Zﵨ-y]����em\oVܸO��S $M�A�R�{9|��5*���8:�q�
�Y���}����~�?���~<2�r���)�
\|�#Ly/s;=�-�f�^C�zw{|v��S
�nzW�^_S����
�j��S�g
+�Xfّ
��<-B| i����t'�%��P��ُ��ԓ�4��$e�c['����\������Z�`���z�Fq����^j��^!��$��6W��{���Z�����1^��"~�?�xo7U�l2�HX����
��PǭK��3'uT��C��$�Z>��RI
���P���
$z�ҧd��5����ɰ�VR>�k�`�\e
u�(�S
i;,.J:ќ�8?�)�B'�^�v�6���5���b� L���h<[dx�ks��
���ž
v�h�L7�T���0��x
�����
���X2�t�/�\H�(=�I�g�ᔌ3�)z?���.�I'���a����F�����w��pm\I"s^��vx��l
b�<X��Tˎ݊�z��}V��'���N~���兴�EI�V�h�j�t�Й�
j05��d����9_w���m~��O���]�ۓ��*����3��4��,*
�D�V��mW�[u;e��E�s^H+�]�T��������<��T��|j
������ap{�ko���p�O�R���e
+P�(�(�= ݰ3��K�
��:@*�u�}��i n� 9J @\:��]k
��P�fA9|��F 'ڕ
��5�C<�4���Mj7�����M���^6��sOK���oU��
n�K�(�?�����m�k���Y�vS�L�� �.W ?� V�4����HW��C� `B� \��x�-ƿO���37 ��e�F��^_���;r\) KP�w�V�Z�6��N6:-(�w��^���N��
P��(#�4(s��
�
Y d7n��Q��˂�����
aԻg/)w�D�Mv�c�{�e���������b�Ď;��Ql���
�=�w^��i� I��a-Q
Ľ��� �۱VNJU5�
*�`�
��M3�/�
��R
+g�
�������?�O�ߕYλ�y��
�}��iw�i'ٚ3�z-�aNֆ����r�=Ñ��M���ٙ��:���}�{3�J��J���֡[#.��kFH���zy�g�
/ZT���joܷW:��*|u�׆��͉��4"�ŜZ�6�P7���3��}�
�ZK凕��c��I��ۋ�(�-���
��� �_u!��z
+TFVT���=$Ͳ
t;\���a�ᙊ{?�}G�
+�%�������.
gm�WՂ�5�l!gE��:�H�
^]�_U겂y�'~P���@�`Z���
q���m�LŪ��6?�]�R��r�z�
�r
#�lK�e�>��?�k�S�L�Q
��&k�9���Z��U.�J���Ŧ�]
kR�""'�?�W�):
��<�@�PinbO�
�
�|3I���T]�86���
m���Y�Z�V��}9��Tg���s�x�5�V��EA�/ކ�ڶS��� �au����G�`�o\�ߑT���;@y
b��-�P�@��XuMg@�0�Nk���B{���sV��p�uL�TK��
��Ữ݃U�;���� ����5"䭗�Jz�$I��6 �{8�"�>��"�2?|�J?@ܛY����{�%@(���G&)��¶�^{7K��7}��>$���h��8�x�9/�>
풲I�5�] ��S��ۇC��G��g��BO�r7�4���\.s�*ޅ�\�~����k�@�G�ل������{���S��4ʪ�i�蔪��٪H��
+�1s�KZ�"YI5
�[�
�~��8��Q��pw�zp��"�
�9w_�EV����orBRR���C�(;Z��� �
�FV&jX�5kw�
P�7q�*g���-/�^
+<(�QESb
!��d��0k�)�>����8�{�����N��r����ѸpCFP6A�����d��{~4 T� R�Q�O
���YjKk/�W�Î�,9�)�J��9~:b�Y�ep��c�^�f�w���>��t�ݴ��!�'s}5��w
���k���]���M���_sA�c� ̬6��p�0��t��eՠk?�r
g�k�-U���T�T���k ���h
+�4
+��d��rW�p/���M��[�
+2_k���B���K��g�<b����B�x��%VE�_�:��a���t�Dz����Z����ƉLO�9A�(��EKd
�u��ߗ���e�*��=����FdK�
i���}���J2�ۜc�lڍ��������J� �o� *e �'�����-[S�-�
%+�k��ܥ��
+�R�
G�۲��H�UNP��$�
3V�+A��K��W�]��a&3=�e ;�����x��I���B;u�/���K�� �\b�CJ����O]
9�9ؔ�6Ӫ<�!\Sth:��S:Y�����
"�����Mwe�z�?���癨���O~�<eR�1=�
PJ��gj5��(�I�99��s���o��T{����QH[܁�T�Cj-�^�٤,��2�H���z� �Z
���`'���+.M���J�H��A�����=�14��E�V�Va�T��FQ���<8n����h�O���� �X<<!r��"YGR�y|�==;+:*�`�E}�s����Nh�y��W{��.���fn�;<M=*E��<U���G�:d�SX
�ׂ<
��|8��Y5�dZ�*�����Q�*u��
O��$�������zI
+��I���(� �[����
����������>3N3������9jn'O�t 'n�������>`��>�&
ѹ_>������@�
�kt�L�u5
I�XdVk��Uh�<j�� |H�އe1�R�l��qeI�ݬF~�za>��q�3�Rӆs�XD6*�,�A�[�e��~�.Lq�������5w�[ ��wVH� ��HU��?�Ձ0�ҹ�(��p����G� R�r��X"�L���gw
CS���h
��ʱ6�̓�
�!F������ib¶9���z�������˯29,_w�i���?@�)�@E����ycf�δ��z��z���iH:�2��;��ZW�kO�쫺;�<��ԓ�r���)�ʽ��N�����s�u+���fQMppT{
�F�]tWfQ�1�� �yu� 2vj�4��z�9R�1nBa�R �w�)�oທ�T�3��
+���D
!r;0��D
i�3���篍4V�K��6l'��>� Z���֜U��Yyx[#��ĵX� �qj��T��� ���9��B^�S'�\H
}������>W����.S��:}�������2�/!R�6���ە!���sh��"[�q�mܻ��г�i� _��sm�7��,�ER����_!>��'<�)� }�R�b���Kw
�W7�i ׳��/i�[>)�g�2��yjJK�]�v�9R��uh˺b�'?v�覡�im�3:ڜV��:t���B��w�ڬ�˙YM�5c5)O� �0�5��H
!�+����%˙�up������x�'U�Gg2�
���%&�a����9�@RC}%5T��RM2Y�O��貉����^ݧd@�2>�Kjԗy�2YHh�ݭ(�� z�3�\�&L�ׁݏH�2���z�PZ��7�P�
�c�K|�
���ARC���
�:�`q
����l/�÷���'����2/��b
=�EIO�s�V3�\�c���#)����w(HQ��x���T;�m��1Z;R�����P�cl7b�H;��zn
bgn������{}
��ēR!v���E�S]H먵(i~o�V��L'��
o汩I�Դ��s�K?�c0n���%�W�@h/�j.�:D{(��Gb/qFc���j��bK�Et�� b=+z5M�.Ka��y��X��%e��2�9���^w�Y����퀉�XI 5i�0�o�x��d[�H(t �Tz./�^����$�;���an��ﮇ��Ye�V2�-��()Zm��Z{��rV�
�I��i���G�'��3#E܆]g{z�7���݆u��N�AjB�6�
���
ɺ
����@��
@v%�G8�I�0P�
�C6���k @�|)�����an
+ʍ��4T.��H���:z�_�^Xu
+��ЁrA#�B>5� 7�Ģ3]�r?��<�o�_���3�r�P�l.��<A���S��b�
�Ɗ�8p�� ���I���n��Zg`�r����G�z�;���M#�SG#�S�ٳ����a��r����#�9�Sx�=fcC�h~*�
:��+$�T���f�ǖ��W-/��R3 �<��2�v�������=�
�,��v�#!��
���8���&�1�dmT`աkpP��fv��Y��돉�{�Ew����H5J�V����Ӌ�T
�@�ŧ����
�g:���Xl� L���w�G�}�Ơ
½2)�?l�b2� [�.y��4$���=<@�{KC����3�T��G�;��*���Q�;� �wܥ�� ��� ����{3� ��\�
c9���dT����8C�&@�q
A��r>m�U/,�]�LfޠZB] �)�6Z��}ѝ����X2���A��?*=ϳ]�yޑ��Br���(r(�e��X����s= �$e�ݲ㶌j��!p
���E9
�Y
��M�;�M���#g��+'��&S��8��OI��옕b�I'���>�
t�yu�
�? (�b�Rag�r�.�hu���e+�˾���h_9���>c�wň�{oM�K�ɗ�{�UK鿺DZ3� �vfeQ���>^$�6uZZ������n⸠<|%�4ڌ?? (�+�j��@y*��� �.�X�����
[���?�s[o��
���������n�����Ymu�1�7^�fn�{���ޘ���NZzВԙ����R�/Y���ź���djor���?۠L��T�wE�A%5zG�
]
��x�ec�<�8�t�����d��f�
�
+��}��>�RIˤ��:�:=%�����"��eeNp�s}yJ��D��<�C�#��� �EK�=�K�T<
-�d���*#<��-cy�W���<vlo���iԅ�A�}^?�HE�롡.Z�@YE����;e�6R��
DC���F�@=�KG<�d ���s�ͱ�'Y��=�3@ H���P�\0s���rd4�w�k
�^���9%�ҷ����8NP���'-����+rk���5oK�T��C��>� �~�z$9�#��C��q���܄������{~N?@�)139�}8�Ռ�N��U?/9�k��RP���
�ү����Ձ~�Rk-�B���aW�u�"�=�J��d�|$�
܇����ǫw�\\��}f��%���㲥�(��)��b�qܥ����Ө`��A�d�a;Wv��n%u��f
�U
"/戶5�KΔ-.b��UOb
e8!P�2����F��V���b��X���l�u���zx����q�)ͺ�S�_kY�K�~K���oJ�2�R��^���슒&��X��k��`D� [...]
+(#� @����G�����
Y��tE7[�w�lMO�����%�&�݇ef�0 at 1��\�^J���s�W�</X9gכ|�@j�Aj�:NZ�n�6s�E�4.�ӭ_�~GRR�c�����) �3��1܇6u�if,��V�.uR4��8Je5ȋ�h`�L�̻�����g�d����(����j��s� O77�?�+H����:W�):Wފ1l���B���:��2�
�O�zB;
�����]��E?͙�H�uvY���&c��{1��m]H���+l�
��I�ji�r�Oܹ�i�̰�1N�����o�B�r��� (� a��ty�*�ğ �3t�z��
�ƞ��>�-+�S
��v2GM����h2�G�t�#���=^T��N��V�g��b
�ܯm���O���SR�q���~�0LC$�[}�Z���jѿ����E>���'$ �_4�Ru� ���������`�v0���h�n�%7.5�q��?~J�mqݹ�%yvq�z��<ɤ6�����#Pk�
�j�x{�>
j��l�A��u
�FP٪vh�+� e����| �����h�PW����\��w�䁋���iz�p%�)��ɨum�Σ�Q�2�����
Cm�>w�^�`m�����>���i��A$���\pP/�{f?1~ Pn?��Yρ�>���3����u�/��Qo��{�}���'E��ܰ�K�\�~�z�⌘�t�
z�9b5h�@���Xd$���~@6=��-sx�Jױ�!�a�
�`�IFƸ���+$%�?�����(
� aKM�bFm���@ݾ S�,N��*3��A�
����{܂3X��^�.�ާgG�?n�C�A
�/?�f�}����gqx�1�a��.�[]�ڮ4n�v����J�P�������}x^J
�:���D6�R�
5�7��܆��Xc�$o��V.���3[�7�}���s#��?-������a��sm�������Z��F�\۾Z�|��{�|�(�V�C���Ѧ��(㇗(�V�"نz����?Q4�6�����<�˵�~2B풌i�6*�fGn���lD\��r?��8>_
OX �s��r���v�n
��l5�����bc�I
M
�
�̿ERR���
��<ωy=��˚>{�����ۭ���%z�6��ߘ�����j֊��~�#f��g��
�Bc�S?�}e��@kKQ�
���q�7�t�mh
��q��5s��5��? ����:�����R�ǰ���jD'�o�'���� o1�L~w�,�zy[��Z���`���9��1T�
�*�{��){�%︡��u
N<q=xA֊�>���VVi*7Z�[�6K.,�?�S ����W����r�k��g
k-M?�
E����8/��^3���t��6����V
�vU
�P"���T*��0�p����z=t�����1Ka��y��ZH[,ְ]^�^��\]��1,�o�����
�L�
�%'J���-�8�̯)��ϑ���9
��:Y����>���X��iI
���m�
7�`�Z_������UFhז�B#�Ҧ=Z����
�N��~���TĩI���Лg~ �Y(N��a/n��d�d���x��U�CzI��Fl CsJk���1z@���m�ئ�_��! Ϋ���V
����J]H빱(ig�V��L'z�Y��'{��s^4'�7:3f9�g������s���f�{S�K
�Ǻ��텮�����:x���<X#$���j�r�C�u)�^��Z��y�"�|����Y��n�汀O~��P=@��kp�Sn
[�)q4ʧ��}����r3�Y�H�7�
�G���_���G�������e5yk�b]؋3
�*�C�'T7g����E�;]���h��s��2_N���@�f���W��I&\�R����Am���~*-�x������ ���\�����&џ�2V��2�n�X��,(�(�'s��P��;()�'(
[(m��b�&�.(u��H vX�=?��ik\Xm��`ܗo��7��Ǵ���qR��
����A��ccߓ
+�l�J�(V��7P�x
��L,���'�]IJ,��<(�9
���R�#�@�ƾ�n�"�i�}��P/���:9s!p��
����
χȗwzn^�%�����3��:A�;�Ug�߭2(w��r��e� j7
+�o� ����1��xP.BF���(B��\��S+�7
�wz��
4�Y��o�ƢǤ�O7��
����P�N�z��
P�Kq���wP��(
�0(�B
~�@�\��n��oI��m(s��ݠ"�
+���P��~��LX+����M��aL���Ǯ|�j=�L����aT|:�u�t&��i
S��V�")t���O��H^�b����
eM� �dcU���ʶ ��Ų�2�Nd�o��5?��!bݠ��R��='�Ny~��{̡:����*Nj3m
y[�����ڶ�x�*�禡��� �{�Vɹ�� �U��r��e �Ͼ��r�d�nh,�y`�&��5��|zݖ��k[2.X�r���F�uh���:u�F
��z�����Ѓ�j�Ǟi"��2#��;���� �
���;(�vq�q� ����.)K��8e={PH�D�[��
'~/�A�K�?���p�E��pG�s����
�lnnݒۅ����p�ا�u���3��_ڭh�T�˿#�:���(��tܵ'
�ً��d���b�J��Ah*|!��u/�}.��WF��
��"^��ͭl��WN�A���e�5��~���T�gB��IϜ:ː��ȧR�[�\v��?˓��eP�k����v�]QVxR�~D���J_�=Ъ"�t%u��k1��vag>#�1
��uq��ZT�z��b���OF/���:kke9��,��]%i��4�e���r��?�?�Ų� %D�:�=��
��6٥��A=rg9=o˝E��B���0���E���g�'��m9��We5w�Z�R+�����N�NE�>�H4�&&�Wy�A�
��B��@U�?��'$��?��bsuő-Ɵ%�
�5�0s�G��R����K�ߞSl0)k�o�
�ǵt&̍�;�Z��t���D�,o)���<y�)��������X�-Yn
�LaŇ����8�~��̍=J������"�ğ��
�H3��R�o1E��������"-;bW4�'�
+
{�f�3WA��0�(rʟ���J�B��[py
���p�ޞ|�r
?�(�-��ܤ<���
����T��s�Tf�kGdK���� �5�Z��e
+@�
���ܛw��k��3<L1�3l�z��f�%�(2Ӑ�����|P7
������}v]��
!�>��_��ڋݛ�T�ۖ�31��
��UϾ
�$���(
�o��tKU&i�>�� Ep��YA�gqB������^�o�ڵ�?W�^��$23"2"�E��P�vYP�O����;
$���
���������W���g����ܩvܳ���M�7�b��"��P�5�u4~2�!�8�c���^^��І\�Ե�6�ΐ��ޒ����;�%�`uEO�@�����9-.���C"�u������pNC�a'�������������&�����2<S*�nY�y�|���\ώ��'2����mwb'�h�
�ԟ�*4����6��ȪPjwů������p��ɩ�}����#M
L|�P>����d���k�T���4�o\
��X���W*f���
+$J�%�D���
a�����8�M�8���%^��f
+�W�!մ����xO<;ʼZ��ʟoس�b�(e�Ή�M U���շ)�ry*�k��t���0Q��&=�d��'vZ��"
��+9��g�a�ӾĀ�i1���u"��jrz�a�
9��o�J�g2�q/�6��[Ϙ���g��5��,�$29��=Z�u�FiK?��jò��AG�~�c鵄�bкm�H�y�%T>s��
�<���
[�2�چ-
�
[x�i������
q�2(��.(Ia
T���[�O�n�w�ݴ
����ݴD{��a����/��Gu�jZY��D�!y��P�w.Hs���r����Z��u��E�P�3��Ӯ���l���bv��������ǀ�5-=)��������':Ϛ�Ԯ��\:�����^<Hk8�Ucޭ�5,`b���r��� � rƙ�SøѥY���<�N�ok��<6�4�d�i��E�a�\SK��? ����S$Q�U��:u����?�VRO�ҢkE�acf酨#��ίְP�w��N�A~�
~67'
��Vg�!��� [...]
+�U�ͫ��n�Դu�nU�#�͋I��܋���<Qr�#�5�� 8YA���4:���A2��GP�jA��.��n��P��S:��
�'�}d�Z�
����|��؊�z����N��@���2�Y���m�T!�"\`�J�b��|����%�qO����k��߸���w���n���L�71na����X�����SbJ��*'
�O_̮wU�H�3.qU���4��l��#y��
S�Sٮnr���Ԅ ��ߝ��ͫ�j�6馏���,A
b>�7�o��
������{��m�Ǯ�X��g�0;u#N�[�?������.�B.���왷��hy�\v�"P�ݢ^�H�C�E�>�g��j�.a{�
6�
���:��u,V�u�#�k�K�A�p��w~'>�z�����
=��Z/ı�]rN�tb�cv��}�TV4���N_�
+U�LN�Ej<��V��F���u�m*n8
na�6Ɔ��z�(��:����~˿Vsj�_���*�������
��t�ڵ�glN���O<mן���
s��l��7U��y:�z�w�koA���n[�
�!5t��!�Mpϻ�~#b�Z��_�\\C��Z�k��1�/�hM-
��P
ܮ�彚�ߒ.�ߠ���8��k�=i����X��+��.�(�3����l}���;�n�O�=�����P�
���$���d�!CrVK�,O,��!^U!7��Zy^�N��}OgͨIN���y��L��A����w,���kvX
J�<�l��0=>_��$���聳�N��|1���ut=ˌ�e��Y�փ�C���!0|Q�/�c�gi�k^{a�,��',�i,�aB���`���s��)���Mw8����ߡ�*p_>�r�/ ��ͯi��v=,�����1��Qא�<.��~Y���;s��?��y4�D���-��D��q�
*cy&5F_�o����Agi<4��bߎ�V?S}g�H?� [...]
7��G���`�*{�;4���
q�Q���&#���t_
vZ�;]���e�ۊ�^�%o�hk\�՚�v�n�j��OH
�
#�
ȫ3�_�
�����ff ML]�2�
Plt,� -�
�f�K��
@�����f�a&�r?v�U��
�G�NcU�
���~�&�ûmT�w����"� ��A"�c�]z� x���]� =:@Oh"�i'B��߀}{ m7W -�L"��$B6@ލg|��Q����T�Ѷ�腏�g6���}hWw�GAΧ[A/�
�Hz�~D_�����&����#(���
+Pi��|,�"�w 9]�
P
t�O�':���9P��\S���}<�-���E�Һ�
��~�γw������%:`�Q��z�`=��G������$�{l���"d
���E�_���7@"�;4��m�\G�E����T�j
n�n�p
��1������p���
��z��yz�}Qz�MY���
+ͽ���{-V�� ^-��ų{P���?�E ��MP� �?[�Ċ�����_�w)�g�^�!�~SoO{so���Σ��u��:����[��kh�A����S��>��2�Dq(-Zrq�Ħ�~�w�h�| N=DQ��|��@Q��T��D�1�
>Q����`�o��L��B�_(
+j��A��
��}o���(��Av�y�x���M��D���%�&��m�ã�
+��)�ٛG&o�H;
�Dԕ���?� -<?I��:��
i]����=|��{�s���꾲+
���[y�+�^
�Wa
��)(8Ol[��;.��Rs�q�<�w��Ln,{Ǯ��N]��w��9�hB��; l1���7����%y�Hz�H�
J������#��5�y����?j��Գ�:f��
�q�g)�ڸdu�<����kC�΄���o��kX^d�ʨ]2m��̌`q^��\G���G�.Υ�
��%OS����Mt���~~�A��{?a�6p�-d���]�wo!h�Z"��Un�t�տ��Rj��8ǯ�v3�6�
}
�NN/_�Vo�>h�1�m�.���T9���
�ǺӤ�}�K�
��?g
����+]Y�@iL�A��؆�S�����-;���엮[;���uH���v�f̞30��Jol;
3v �'[�*D=���χi����Zmh00�%�6{sg�jk
���Pș .
)���'(��v��%
bǡ<���祾�
�Zƹ�Cҿh��ׁ�c�6+M��~NU[��HX��x�ڌ���E��(�
�Ԇ�OQ���г�
+��na����?HC�����B�H��~������?�5�����;�ym�.�62���,i\f��v>]��]~��SM+��f�n�[�~cl���ʐf�V��^�xYC��6�6�����ʛLU� ��U�
+�ɿ�7
+ �Q�'���z/�2l���z9��Fe��O���
wT�=�x��lW$�?2*b���1�Ԟ��3�8�7
�5Y�%y����^鎇R����~
��O K0�J�M�
�0�C~�X>(��B���v k��kS҇��e8�NnAzl�]���q?�V�������n˚��45�P
����T�ӗ��~�˵~�(=ܵ'5[
*��QO<��R<��m
+�?HC��}���.�O�LqV@���ILe_�.�g��kݢݣ{�?��}e�̩!z��[�.��@כ|F[Z}T�6q���
�'�m*�..5%f/
<Y;��!��,+�wG�ˋE�#�ǘA�
�@�w�s�J�L9�
+!�˔=k�)�
:(_��i�|��ǧ��Z�*H�Ю�u�a��UwԢ���
+��u�jK
�
�,=X
o�K
�p,���/�S��e�&�͡Y�5�i��� (���ʃ��}�R\,���
��L��M��э����
w']=�"#{ -���?g�)��
��2Q}�U�R�/
�̂��-�A�"7�άi
+!�
V��ru���u9q��M<��?H
���
+:D��
A�;~�r��� BBORW�����ȉAO]KhkC+�X
�ں�w�W�jG��
�b�#B�(�*���k�3�>I1+��jq~��
��&,�81L�a ���#Y��DNs~�Wa���Vz��Ʊ�^�ڳ�*��e�;�nnr��J��l��#7KWO
d�#H�b�W>�2���6kٻ1�dw�$�n�'[���9�d��3w��gf҈�ߑ̤5��
Jk�
�Y[�u��|v�����rY4�uc&ԧ�=�SF���e�Q��w_r�ҏxU��E�*��®y����t
�Q���S��Ѿ�mlUH ���fV �͟��T�}�L��=(v�3(
�w�9L��0y�
+�ƮW�s�
��W�� �T2o���$0����Y�
p���aQJD��<U�}���1�ViFw����=��
�JI�d���g������������ �)�����
�����~�n:����8vբif��[G�=���ғ��f-�Ճ �������+�a��$����ÌkL�4;F�;���P1�����*��v��f�ӣ��U��\�n���֎<(�����ɿ��x�$����P��9�q���Z�����-��
��Ϧv??
+����Ł��ny��v����.��I���p;s�i�
YX�N�� q�Z
��jM�B[���1?-@�HLt4����\��nf�(dj
��TGf�<؉#w��*
����~�c~�${�y�]��}���@1����>���F��\u��{$B4VDi���WD?�3�qR
�8ɍ�8I2�#YB�(=2ֽK[�3^Ώ��E
�6J#P�C�$
\
�k6��o�d
{,�������
K4UzPx'#=�<)H��-�or$*
��
;�6��77M547MM�7M�[�4�r���M�w[�
�x��>4�n
K��^Kzs:TI�
�1F
x�Ey�;[y|��F�_۷����~��;eW�y�3���s!7-�'�*��ﴈn�ľ�i�� �5��:d��:��x
�Z�h
�j��_�z�v�m0���+�����J�d��O�.�\gz�ݪ���j|d���Gø�S���2�}l{����5�
+Pw���7p��`9�/�T�qu0Z�$�\}ǐ��2��R����5�+�O<����y�8������l�ݓ;�Û�g�P��t
Z���V_(�~�'S+o���GV�Ђ�/�[�y���
���
d��V���:C���5W9ə-W�^�,�ﲰ=W��A)�@%mc�+.�6�<vzͶn��Ҹ�]a����Vw*jԨ�d&����N���?��"��S�
w�Ƙ�ki
��3w���x��Y����>t^
{�c�
k�G������m�M&����=�gsF3�hF���n}j����f̦^[y�؎����
�*;E!�EW0��Ե
ߛ�0������5T ++xZ��-�
�Z8]�X�-j?��Xa^{i������t+b�����
��l�c�4�V�
˫�y,���_a|��Jnض(�&[) �
К0q��
Ϯ��we�A������m?�
�\��fM_�N=�L;ѵ<yKAc"�>�q�}cy�LG�#�i�
5�� ;\V6���� k�� ���J=�%�o~�?A+�lK�g2
�Y"%z��9�
+� ����2�.D��f.��S�;�&�OS���5� {hn���B�O2l5~�
�
�˞���
�jau�aX�x*(w�Y��~[�a[X�V|fɖ��|���+�����N�^��C��#��7\G�����64c��D����O����
`��=٣:+��
�L�SڇN7[���Z�)+���GmjD�7�{pl��s�W�:�[�
�Z���M�2�:�*����䮻 ���+�{v �� ��
(l�E�@�@��/���Dn�� �� �%�82r+A<�8�u�5�@�D��ޗn�
�磊��ú�6�����G�pk��bt���R����A"*9����re�&j8�P�e�t�1@��+��Oo7�������'}�4K0"b��HO
�7-ƥ�aF�����R��E.l��;Y3�'�}?��}_Ԧ_d�ح��
�I�n�DN|@������� e�
+����
h�x� �
��>KD��J|�:�xs�q ���Zl2����:Ǎ𑗜pw|x�W��
�j���Q:��C���>���S��ЛPߡ��{��\"�ac �bIo�gP0&1@�v
��
�Mj��� Zl��N;��l\��R�m��㐮ȫ�a���k�q�
+k�ӱ������e} qQO-�5/+B��
ģW~Ƕ��$�?Hc6�}�K�4���x��0?^ R�'z��4 �n-*�,@��9�m�oH;��劍�Al
��՚�aF$��Hw���&˾Dݎ���{*>��
jVx
��D�l�=���-ų����G�m��;@~bϒ�� ����d�?�Fyd������W�|tsnzȬ�뛝jabt[������\���waO<5��=h�S/#�$k5��_p��>��)rq��l�~������y�r��5�l�W^��/1T��
+��\Qϕd���
+@&m�H����\Ƣ��t[��ti�2�*�gJ�����ײUj<Odbp����u�=�-k=�q���&�ww�{����\��
�$�՝���9f�˶���?H
�_���9pc�x�:�
�yt�b�Ѝ+j�+�m �]�π�����i��нty�qG֥G}�n�[���������%>5�˸8U
m���xEg���m�W��
��=�r�T~ŝ�����W�DN�M�}G�u�h��9q��w{��M��<�f�^���+��;�����st�tQ�㢣�����Uz�X��
�ac���.��DP��H
*� ae��dR0��5Y{�1��A�W��
�4��JF7u @q����7�=�
$�19}�/��[CK�{�u�v~Ү��瞭��H����x"K����TL.�瘣��
��ϝͮL C�X��~KW�~G?�
=C��?!y�O�LN�(�b&y��#@��
��^��]�W7��
g{nM�f���&.S�}p���g|윮��w|�3땿���\19��6��q��A�za:P?{}�kzƲm���ZΙ�U� ;ꪻ騅p����YX&
+�&f�a�S�]�^
+�ޭ��xxp�Zr�ܶv{���eV�g,GPv�Е���?Z����h
��C���ʧVӳ�ZO�Sj٣��ڨ�b�W�P4��ꯪ|y�S�I5�I���X�,��'�r�f��ø:�r����>��"w��/r�.r�|�������rg��e��F<j;���}��A �EI���B.��,������k���I�*����%�H
~QNp숯�����Y=w�@Z
��*��Q�}�EF.5
��쎾N�n��X�
��2��1d�*��4:i�'SO�m����W)[y;oդ��M
��W��X�}�L!�����bT�Nj��όZB���
�|?K�Ķ|���%y�0l2���C^w�0M+�/9�
ٗC�
�ʥeucnf(��V�
^��\�����B�͗���Hr+aNj���ؙ�;/�3�ߨ�x�@h��� ���}��7��B�y��+�a�%�ʼ�O�y�{�'��t���6�x�-��iGq9+Ȋ
��u�����m
��f�zJ�_��:�~H���-�
%#�
���}�)�S��B]᠁�Ƨ�gM��H�S�~(��?y���
%u�����]J��9:�m��u���0cJ�bd�աf�L-�V*צ$=G�)��"������6�i�v�����'r
�6���Xv�& ����+k��_
+]*�@j qˉ�o��Ctt|�x�v�JF95x�-Y���1T�Q��֧�n��B�n���!A�
GB�9� �|fY���$�c�|�r8�H�P,�W{��s�
+\�&�3�J�[M@�R���O�'�����dP<?/=��=�Y
W��,�k]�@�
��C}A�z>��v��ɍk����
+�IU�W�3;���������[�CQ:�{»��{/�`�toO?��3����L��lw�)�
K�|V�Y=?�
�t��c��ɩ����Ϗ��m<
�I9�V>4d�^�� �b�Dh
��(���+&�:���F�^{R� s�x�~�
��i��#��]���v�|=J��;nQl�h�
+��1�"���}hԡ��Uct.-���
[ZE����ϟ8�a�����*u��P��x�k99��c�E�9�P�\�}5�L�#c�P��;
YרhzQC��~Vs}��
� lPC9������? S#���S at I��{Ǜ������c|g���uxI�=_7�1 u�͒ jP���90�E�]n��Twn�ho�����՛�#h�-wJ�)��I�6pr�7r1�}r1�����
�`��_�����'��*���4�ز��~ӌ����2���}N�-�c5�]��M�����p�1|O��0�/�]Z4v��R����j�4C��D�`�#��9M!��P�
!��N� Ժ���d,�I�~&�����
<m
��a@US�zK�H�>E���(U����&d*�����
a���vn���>O)��mukcos��K"�<&�`Z�� ��܍�r�
��nX|nv
�����>��iH��� 4P��g��/���~j����5���W%���
++n=$D�o��֪�{�<@�Uo��}%q,�>FA�;��+Jz(�";����
�.7��a��M�tmb
+�c���c
{b폟��^����J�W���A��OӾ������Nʠ*�G���=��7ý�}�
�i���3�
���]��T������ �]
'�fqJ�Ս�Vl���N.ߵ`f++P��W��N�JV��*�:�U�0ŕ<[�~�7_�}����c{gVts��*�Z�*$ó����ﴸS�Ȋ����]͞�1m������z����G�2��}�i��㡻����\_��J���UV���2
-�_ο��r���r��r�9���4���/��Ӯ�
��UT�Z��QW,s��U`�u
�r�)O\����5���o�����m:V5��wd���:V/���c+�i0e5k�y��h�\�L+�L����y���㭵9A��s��}�Do��s��LiJ��b����������BƓ����5�X+�a7�5&a-��i��V�*Nj�r�s��3_Y��Fk���ƋRv��_��ݼZ�3g��̝�JVf�
+�?gBN��Z�Ï; �
���J�T4NԒ���SB��G�f�"�w����Y�@.����8�>��˧���Af_�FT����"7�4��I�� �]���,��jc=
I���;��Թ�#��C�����.a.
S�O���#[�V7��R�a��noQ�s�H9#^��;�\"ީ7��Č�N�i�>R&���8
C#g�-��dO��4zN�`�e��0����}�Իql�G��Aוދ.3nR�V� w<�u�x�0�
5�+�
+_�g�
�<G}�"�w���R�z�isB�_S�PlL��8}��rh&
+1�*�m�hXL�v��^�mI]f�(
O�N7�Yma��[2��4��ͣ9��~ä��{\Ǻ�j
�����H�Y��_!F�}��)���xDT4�Rbҙ]?��8�v���� +�H����]�_4;��i
s4�u��#<j~��9+{�Ʋn.ꧽ������1�W�1FU\
ۗ��/wQL-
*K�(�
�}1OT;�ѯH
(h�6A�{��
�A�Vك<�Y �
| �; ˯n2}n� >�O��y$�E ���3�-� �No�8h�`����6̈́�
�hE�op��3���7��8t�N�ߴ� ��P�1 9x>��y>�i��
��)�>(�9,�@�1�h�1 ��'gV�1�j�Ŋ<J�^E��F��G�a�k�ޭ���z~X� _�9�?���N(�W H��y?C�[� `�D���R8�QPX��ɿ�pP�b����c/�E�����R�W"�>nG�
1
�
aR/������N���7?���x�)u-獟l��l���^�
?�4�"���e
�G𑿁\M�k{-��m3�wH$���͊���ʺQ��p7P�a
܋��������,�u?�2tA��ġ!��M��kޮE�\0�?W�B�Yx��k����G��~o��f0
��P=�A�_}!��H�O
��#�k�(��N�z���뻽oAP|��v^�ڮ�'��}���S.��7��^�6�^�c?��溛�?.�K�Q����=���a;U���O P%��qқ�-(�(�'@Jj �I#>��$�e�~�>N��G����#+��5}�˘E�W^
j���=W���h;��s:��"��N���vhd�����H55�|���Q[�ߑ
�l�K���`�L�I� i=�(A.>�7��-L��ߛ��MzZ�!��o�x�����۾{~5b����[�S�?�N�Noփ��zX]�S2]G����'��N��y�s�G뛱����F>��tVy�'$/>
K��I��� �\O ����q�QMȗ��l�폛��
�/�:���T�]b ��M�L-=�/���#
]�o.�|gŢ3�u���J��p����
+�N�y�
o�u|�Qӯ��;_�~�?Vs��������ۉ� ̒�,s �>6@5� ��{��Q����Z�m�2]�
u�����mJt���prP�r^Z�G`����F�
��l��S��j
o�2=�.��bj���jv�Sd=�c�#��~E2�'�Bh*�S�2~Tx�C7�>>��3�U*�լS��[Z���ԙ�~^e/{�u�D\H�x�o.��h��m[��6�
_5ޯc�X��L=}<�m��-�lV�h�\h�J壚�
�@~������ڊIo�Π�˼�]��{�����܂V%����w
+�ǂҳK���Tm��c�Z��'PM��8!u����`�e��-j�[Zb��U+k0��l�@�̶�Jqo��#_�"�AR���
��"lwZ���$/ѽ�<}����������uɞg�y=X!�+�n
�V~b��3f�T�1��Z�{a������ �u\�b���*b�b���x4G�CI�,��t'?������믾R=
~R�?�z"'q��)�Fo��1�s2�z����x`�yQŜs^
��t+!�cs�����q`H|�������d,���;鯯{SJ]7���3#��aQ�ݞ��3����?�
�����{A,�+p��� .؉�Λ(�H
�E���?��+��
x"Z��X|
��c
+�m�;h�Σ�>jS
.����;��7^��.W-v�)�:X,��]A�VK�
�K>�/��+?�Z�o���
t����{"�����҂s�ģ��W�8\�
����D?2���|{��7��ݠ���@qz�R��KR��ƬD�Z�x�s�IB`fnB��F ~�\b�θ �\Vq
.�vެ1]|X��� 0�����n����?����iz�/�@�'
+��Vw�
������i��[Q
]��7��K.�ڈ�*G���/������r�o��i�a
9[e���p�/���ci��a����zY���k�� [�A2�6��(Zt�ښ7� ��OE�3�ر5SyLգ>{
�Z�?~�KKH���{��H�V�,�aco��ܗ!nzٜX3�qYx�}k�(��g�Ǐ�v_
��}��=nß�OHC�i�,M�@�>�PU�:Q�2�.�[�X��j�72���V��C-ƇX�s"훭���2A �e��"�i��>�5�Y8j�*p�����!��l��B�.Ssx��=
�%g.S��� E�'�Bw0H�ށb�*��������'J�)G�
O
�w�e�T���_��x&��96WD*��,7�f�
+c��$͢o��
�5��Y��P"��W�[�m{�?؎�qꎥ�����KF���(����m"*�����Z�@
�lW�r�
M��Ϸ'B�\<I���Yz�5_��\V� �.�D�:�|���+l�>l�UjO?
��<4�I]�t�~�;�
�p�oP[]P��F�jx��,��/�������'�iK��bss�i錡'��|��1�ԛ�y�\+�HN7hNG��0��>�tp/r���"���P��}UʒL����mʐw�m��
��~��w;�@�m6K�H�l����~�f�n�`
���4�K�<���ۍ
T���-$
+���sڱg��F�U33��
�B<\��n<Di{js���mj�[q�g�cvJ�>�f��W
=%q����v
+�d28������cb]���
+����:��膿 �m
+�m��߇�y��
����g����I��8��s��:�[.����P�
3�z��+L�Zj�]$��uE����β�4��F�Z�C�������ef1����/o,/�/O[a����((��`�c��\��(q��S�R/#�1�K��Y�՚-�"w�\�־
�
�~\�н|��G�:�L��V�g���7d���D��e���O��!yس��c���aL��c��r������
+�����9��(K�
��������Y>#�퐵�u�z
��DŽyU�;:m�]D(���~�����G�<�-�<1FD���8��f�8��SM�-��k>S�V���ZE��nݣ2�**
�̼4:��B��Tz��
+�'����=���UN
�
W�>!��l#�����ڮ)h�උs�"O�ՃD�}L�@J�p*{�l���4O�c�*�~�Gf��ԕ��_��d%]j�W}9�r��g�R�m9�
�_���|�vfX�S�A^C{\^��d���V���s�o��'f����%�z�V7�o�6-#�ĸZ#ƺ[�j2N��j�秫��L,�h�-,��.�UO|�m9_Jbs{O��������{��������g-Z���p&yaR:fd��v�
�H�;�oZ�z�=�u=k롸���ƍYe5T]~Y.�G �>����Akz]_�#u8ǵ�b^&���V����dݧ�
M�Mn0�����>����i��/��S�Q�ׇ������؍����e�'�����Ye�V�|37����lM��ۮ9e��3m-kirR��`��Mx�:���8���X�\�� ,�#`���B�� ��HaN��؏��8@����yՙۈԽ�Ә
�0�
���7y���O��R������լ�t��,&
_َ#x̍>��2�pKs��
���7�a����qb z��?��Z�i�~)��u��i���Lp�m���W��� ��^�(��������>�P!�p���2/���^?/糇1�����G#h<�NZ�cF��~2\�
+6X[:��_��_V�R���Zץ�c��
�;�<�o3��Bܒ7�\�{����V�6!��hB�1�0���Xv�n�Q��1�����D���m�=�z�[��%RnD{9��Y���|��!|�|�u(��6^�2}��aNja[��'���_��hg�ԈfZ��0w0ـ_Ю�u�C�`�z��j��EO�\��Yl��E!_z_�ZI�� F�?AP�O2Q�@i��k�����R1�)=�塆��~�{�L�t:���߸�m�����s���/k�hS�R�U���ڵ2�B��9�.�ר�~�����9���
�6zQ01
�|
��9��9�ȟ��-�Q��A�u�6����j� rc��?A��fA>��@�z�|?�vZ�N ��{ O�� �L�����@�է҈u�Sf
���.���.}� ��������/�c��A�z��d;�"��jU��
Z �7+��\���� _�{ �ur ON� �]� o��{䯡��%>R�g�
0q�
���=��� �Ee��
��l�
+���,���S;�>/�m�?�
/�8�'�����OHD�KIoNk Z� ��7 a�O�P�U�6 �
\ y�n���'Xm�c` 1ڿ��9NT�d
��z����ֶ$�vkJ%����ws�^���w��<9C(�/)��v/-M�>��
����l��?d � OD���D���Փ�����k��0v�ħIc9�
��Mz�IH�v�����Y�w3zzA"�q5t3����wM�WF^|*�/�+�OS����hf�'mpq�Y��pLस�R�3mA�-'��R
�����4��,I ��S�������lV�Y�oQ��s��"Qr��E@�����{�{W���r�]EW�3����ĕʱ��F�Y�(G۰K@������i�O)���d���X�}��d�v�B��>�h�
6(o��Qf<<���m|s���|�<G�Å���e���D����ѥ�@���on'ņ���V�\t�L��3o���j�|�;$H�
�j
+������c���y_��� ��{%iޙ�V��
��n��\��#y~{��q�
.YDp4d�9.'�s?+�/��I�p��
sHSBR\�nR�4��?����<��ǽ��/�X���~�|��ޥ
^c�o��k_�p��J��2���,ߊ��^�O{�
M �
�u�;����n�5ǭR��\������~�"
1��Ng�d�&�aMJ���!>������3��8�P�!�{��n�3�]9��^Fń<O�O
�)�>ͣ�OG�g���
�8��
Q��V/ŕӈ�;{S{�7x�▸c���c����2� �%I��g��S9)��!jx��5j������tOn���p��u�����'���Ǖ�^6F�pOP�u1��8�o�r���������L�����_���hӄ��1�ގ���49յ�m�O$ ᥢ&�q��DR�`�O�7���/��
���5�+�
����@�1�IW�U�e5PN�'76�')+�0��6�n9�
]4�P
�ۘ
����n����m5k��UB;{w������
x��?G��$)�!��C�.ϣ���X [...]
3��B=f���3ˤ�ȸ��@�?��s߬
��u��Z.j��V�6�Ќ���6������=��s*9�+�n�m��v6�{�p.��!*Fp�'BO����
����а����qv��S�\n�N���`6�BRhͤx�RQ�)�r���1n��{���#ճ�=te|��N_9��mN�a_������D� ��ܟ5j�(���@���T����0=B�ˑ�/���9�ƍ+�i�{��-v�eQ�Ud�j�6[=3N�/$�NU��橁��?ɔ�=��
<A�z���s������v�m��/<�s
����H#3_�����8����Wk
�
Mc�2p�Yl�_��V�6���u� �)nӄ�v�����
IA���ɢ�F����y�Y�Xэ�>jT
}z�h.�����;k4���C��Y
+���_��8Ea���M�8����2��J�b;�Z$U���N��酻2��A���A4S��
�~R�����Bxh%��i�f at tr�ptjq�6��ی�eAG�`�k�ZmQgV~�n{�=z
�~�bnxH��@|���8t��L���� s��+���
��t@�\�W�����(�w�S�p�RR�aR� gg��BR�;Iɹ�
��Ή7�VXˍl.�
�~�ʺ�Q[�l)?Y��䕬�{�p�0"�����dTa�\�ʹ(`�c
�%��8��b��5�Lr� /OYΆ��)�+�hF
���g+���i_�&e(�y�k8-y �f�I��?�8gC��y
�y���d���:�|ha)&�V�+��O���9��j���Zh�O7���J8�&� %��+C��A,�� 5]��� Ň���ZM!���ֿ�j��#ݚZ݈���� [��9E6_�Ƃ��{�X�˯V�&�9��e�;�<�
wm�����ɍ����w����
T)�r�L��,O2�q��Rwi��=^��/�V�>XuY�b��Ƕ�R��$kf0�BR��]�V��ٴ��͙�I�f��#|�5̋��ü����|�N.��G��{�"3
*�w}�u��WRJ
��o�Z"���$V;}�;���M'�Zɕ�$�=l�u,F=��J�z�E=�'��
�c��_HJ�>�( ��0L���|{��ė���,&���Y�:sg��
��P:|`�*@�g�N�+�H��`ʼn�"$�8�Qk����:���VIݢ���6�[~���A�m���z������ ���]6���ܼL�������[�jv��%_X��K��ˎ�R�\�G�OkI.��"ҕN&J������B�
#6�w{;�%�aS�1�+�Í����z߭'$>�#{�YA�x�B��5���=�o�_�����6M<�m'�;����gi;g�3-��4NxD��[
��1F��k�,n���m�[vQ�{h��zoDͯ#���}��h�#�qL�L���
+ wY�� ����
+�j97y�l�?�M��Sc3gt���{IJ�[�y���wO�9��\6�fu}@��'�����F����8}�Y�.x���4DguY�B��{� ����BkK���J�Z�V�[�͝�J����m����ͯ�'7���/dK�Q
+k���v�����N�ۮ�=j���u�s
+N"o�$�<,�β�5f��B`
bs��ཟ�Bў���u�&���o�����]��/����L��QmN#�ԁ���
+
�O
*9�/�<�'�u?*��Rn5��F�
�����ژ�ִ����WE� ���U�_2�E�\�GԮ?U��b:=B���؉�'���� `=�c�n�c��Ώ�ɣ1.��ӑ��*L�jV�Qee��F��r=�e�/����S5'%=��W뗐V���,��Wę�C�)
�͉~ג �*c�5ꍶ����1.�]6r
;���4h7KF�q
�=x}�*�Oo(���h��w���N
�ҝ��{���Gߌ��V������+���h'6�w�<6������5`f2����1��i�
��Z��������~O��i7�ċ�6
��
`Rc�+�&���([lZe ˾��<���۠��z�xp�n�:�6�ufS����3�V� ӻv|� �GtP��������:=6-9k�7�F��K��7�g.����H�Vj�̭�< F�Y���5���̂
���k�����k4Z�[,]^��d�g�THr�����Yv��j��_
���m
{�����f�\!Dz������3e�N
�� �'�rw�}��o�5��wmx���W~��!T��,=3,/:Z\B�O��y�j�A���J O�ͼ�9U��s��S�|
��0Jr�~���$'IP��:I�-��2 ���)�K��;��B̥v`�i��M
+�J �%&�Q��vc�`�1�0���=��e (B�u�{��!;
�������?���<yy�<k�#���8�Qx>��b*"�O x�>_�� p[)t/�?E鈗�z �
�Sp��:
w1��ĸ8,i���Uf稲a���l�o�A�:�n���v����
�
�%�
ƾ���Ʋ�~�ͮ+����Z��B
L�ط� ��8bO�VEJ�1�$�R���Z�:� ����Шb���6�7���{k���/
Cz1��m�x�ص��J~�)��q0i7��^[~�Fs#$��RZ�h<d�v�`~!�&�K�}H�����1X�0
�� ޏ N_),0.�N���zoB�NC�TC�6��_~mμ�p'=_cN{
+��<�{�DX�(����P��?{xY^����}�*�ޑms^-�����&�0!�&��z��*d�����L���I ��H�_S(Q�<*�n\����o��Uu�Ik
D��&���� �kfM�竑�0��cň�G�����<L
uo�y_ҷ�9��9}
�:�)���i��dU����$?w� �)� ��z 4{o����P̤��n�k��
�=�nj!W��n��Bk�@ xyw7
�^>!�w©�6�W����J[�� �Wf</���=K�8�3:�
9��y at H�<��w�pQf��B�� �әB �_S�?��
듐����J����%����_L��Q�o�{e�ֽ����Z;�vYz~�k�,�[��������)������G��vw_v�w֔�9��ҩ��M7r�ݺ= �A��jH'�P,%�ޘ�����\.��7�\���}���-�>�}�_�8%
V:ͦ\�h��|s��z"�ŏ�����q�@$;���Fiy�iL�X�w�m�� [...]
+�7��R**�Çċ�~�
��V����y�:��if�ǥ�G�u��6������rf0��Q
�m5�nY��LX=�Û��F7��x6"4���eUӵ�q����V3g��r�A�G���F��6�� ��Iq���Y�gk�3�$�c}k㷶�ѧϩ/
W��y(צg���?l�Տ���,N����9n��!<2�����?O��%��w�j�i'Р塚�,�?��2�mTl'Rj�C���_��>��T��T�S����ye���|��N��-�;�&��}G���7ܬ^��:�ӈ��ט�]o��:��
ͪ=&Z�-�n1��e�ȫ'`l���zʵ��+���{?D�ݻI�
�@�
����� (`���
�T��")���Kl��2 �.#��
�"k6��ne̛akFRƏF\�u�G2����5)���I_��fY�rM#�ygw黺ir���@�>?�t�p�.���Di{�2��j��(�I
+�������'yN+����;x���[�>Gvw�\���`
���:H�M
���
}%O��|'j
�A�:�jJkudFy����YI�Ѧ�0J���G!��߂j-&�Y�V�5Q2Ee �Bu�T��C;)���+#�d��2:��J�����)�;
+�fK{a��z6��X���Ci=������Ē$�w
�s}qls3!Y1>�ި7
~a�O
����1`��y�(n����S\�O��-�ȍ�m�����:-��í3��5,�Z�lқj�u�����ZQhw��~ny�^�$���^,�|�w�*��QW�����em��lj�r�o���۾We��-�V�g,EB�U� 侀�8O:��
��;��~?
r�����i|j��͢�~{� jÄ(��VE�w���h�D���
�y
+3���F�x�49;F\�UX�[��c�/Lc�ug�]iw�@��O����@e �BR(���F�N����[� ����\2��pB�t����Ǖ�SOs�t ����'��&N�~v�!h���MD�yh/F�&�B�q���m���
|_0
!$vt�TvmU���� �\�2�9`��`�
�_H
+��O]g�
����e�K�B{���8��g^�Mo
+�$:o+�! KaY܊q]� ߉�sδ�ŝ8�!�\���X�d ��RU���;�ݒ�L��
�{�@�^��D�� G�
+�>5*BkJD�T�/$iVL��J�^�W�s��.1�>8�nts���X�Ve��4�p3��j}��dC ��I|���&!�,�_y�u4
�&���v�q��6��-&�x�Q2��<�x�9�i��R�9e'ټ�F�/$��(�[�Ҿ�+���.<�=��$����8�}��r�
TE��bRX�ȼ�s�uʱ��Tc��Qv�ʹ���AkO:8�>� *B�4-6�X����ׄ>�Y�N6n-�o�Z�:)��%2����ؗ�/��2��r
���g���� ���^��.���%�G�(�c����W!����
C�
��
�4>���S�;��d��$̽k���� p��ڂ�Ә���� �*@
Cw�4|ؽ�
8����/$E�V{�.����1ǃ
7S�'gm���-�{QMO �zfܶ7n�Ċ�04*!;V�H�]z8�k���$}�=r�F%IJo}q[:��b��b��{�=KubK�ym[���Ɲj�_Ͷ��K�eT6b��c�
�b�c�0�۽@� W=���Ƒd���69��jW��{�w\�ҧ��xA)
xK~t�!����y����Uɺ��\��e%Xu/�[2o4Qou�����[\�p����,+�
��I
+ݰ7g�^�s/��5p ����4�7}�P2:+]���YKa/��~�M�z4X�t-7�9w
f� Da]'�ͱ��e�1,��k
�n�,�J_&���}u�Wσ��|g&�
�
�G�Q������K�Ds�
��
�1���n �����"�A��d=��_�#�q$��9�U�]�T�N�I���ٖ�趵z��G�(��mE�<{�i3��t_D�1#�y� �a2_-�1���]�3X��ioִ�
+L�YJ��?~p
�N���Ü��V�ڞ���`Z�s�s�h:
^Y*���6��#u�6OG�m��h��r��z��aȧ!���R+d�{�H
�_VK��\A�mn�v�겴y��'�/�B�/��峨"�֢:6�E�u\��h���4�"
*����HӍx���Ғm��mNd7/�D�'��F��L�F��Qs�
��\��c���\b��L�_K�5'��e��s��}��f
hw�`f�����.�|w��|�Y���8���9�
�'vC�
�=a�Y��ޕ����
z
+�w�
2��{�95Գ�sv���gFA�7�< ����,̦R<E�c��' �H�}�eL�W�2ə�{l��b���1���#[��#���1x��Ơ����1��0�S�Զ���piX$_�g
+�D����A��|�'z���-<���6�1Ի���U�F%��
�ȳ<�ڭΰ�A'��&e�f at b9hjB�bfg;�~g�Hz�T���Jo��9����^�«��t
�F���'�P�I�H��Ћ�a�5��l���HYO��Y��:��z
��� �W}������������ƽ\Wr�Jw���N���
���;�U
mM�m���o��b�V��ͮ+4�8kn�!߬���f�s(�x�~a߬�c)~-#��<艰8b��_+��8�]b��u��>k��o�]���̮cwf;��^��J���U�_���<_k4��N}7i
k�q����4V%����Ĩ(>z�L�,x����<J��y���"}��(K�����
��c㭱�Saqr���-ף�p7���x�����p$�<�#�q]���=�&�]���
���*mK�<��Ͷ�2��2��Et�����Afk� O�����Ct��y�#�b���L��zĦ�7�w'-+�����O��"g�>Lڀ��7�!8�3�V@Z
�U��u��h�b �r
��B=���s�Ro�0�M;9�۞rp���A�b]Mq�"�
<
�S���M���_�?��5�V�{��U?�&�|�C�V���Y
+Or�PJ�w����%9f
'9u_H��)���[�$w��:�
���x��'�R_K��������ŀ\H ��ޖ[OVl���h���i ĝ?�>&���[�E�G�u�A���b�G�$?�����M��$�x
�|s
���)���H�x�"'O���ZE%Rھ�M�zo�PxW����Tx����̓��[]�O
ˁظ7�H-�|m���[��\�O��.���8HED�08�(ג�������IAgi�t|�I�5�$��ƫ���
�V�ʹ���V��lM��}�Iټ�9�|�
�}u�'�@�����5+�ďz�}������Y�ݽ`���w�C���RE��T��3��O�V�@�p�4��)&�~l���M�>�x��D@��k�/�s�i
��_$� ��U m��`���8�%
0�������|ߑŸ�2պ�Git�Bfza���{h��O��In
<,��L��1̚c
� �\/p��(qq
�o��:�-������9��@{%?��M��݇�_�
���=@i�����^<�9o[����Lu���
K���6�'���
��mx�9��1�1�,�!�Y�T��<H�ݴ�JW
$��@���Rk ���
z�z�d�=�3�x<�,��xǂV�Y�g�s����O�饧�g��aן��d����8o��a5
��
�l;�۲�`��'�Z�����S��$_��~�0�f5���qm�M�Zt� �9|�9��(w�yY
6�Ϸf�{\8Zy�EMIN1����4�N��8Տ���w� `|XY��@���y(�[f?�S�f�M�L�bz����C�_]��`��$�mRm:���Q�+�H��=M
+�.�&�3�
���a�H�Þs��Ѿ�y�jǯyu����; �0p]�]t����*:8�4���ٔ M�{d�-������ߛ���
).�����}n7�s�i��uz��js�ڜ�h�n&��m��d��G����v&����ϒg�Q���vE}�G���mp�n����֩�����)��%s�y�
y�
�2�!�YI��� 8j���ku_�����d����������<+�r�rn�n֣ W������Ǘs��홻��[��F*��s��p0�!�<�����������gRҌG��-�YG�z�d�6辄y�X�m���#��!���C�N��_H [�%P���Xh�
E��ы����E��{�����\:Ñ��+S�5pC9���)��JX�I�g
r���A�p_:+9�H8E��]ʅ��;DdO 2�wç)�*�8�Y���AO|]�CQ$[����u�@�
L
+[�+c���sk���ш
�s�/%�C̎��l[ӿ�̧Ok�a$�7j^SO9�Qk��U�B�@iN���}G��Y̫R �R��İ�'E��
q��
��.S������_d����/ H��J�T���|/ڟ��O� ����vg��F<[5��}3�
+�f�/;;\��"�\qMV�7Ӕ�t��LˮcK|��!u��R�[��)�����R��-_����:q�b��P
��_H
��d�bT"���I�ZL���a
WPUw���ՔZ�G_4��V�5���iΔ멳���%w'sAⵕ&���% �q����D��Ń�b��y G
2�m�b~�U۱��?�(���J��b+mb̜��0���2{%�
���Mn��8�敵�
��j[��J�;VA�m��P~��r�L��K|c�{0��*H¾X6��
p�� \yp�|q���qExQaQ��1g�Z2�[c�:���[u���z~sG��Q�a�����$J�I�f
�����;'j�ڴv�9n�M͆6O�<@�.�
��Ci��sq��7�~�B�=���r�s6q����f�=l����C4�"Sw��
]F���J�bn�l3����"ef�B:��0)D��.��+[�i
+e�
��������<��=�ɽ>\� �>yd*�8�/��3�p�%��
�3�90.y��M�v���A�E�]�z�%��ZV5D
���«Z��0��'(>���Q�ƀ?���`;���L�Քt��%�����
�X��`I��`�7���M1�%W(���4s������,�][F�4��C��'��u2�Ǥ��qr��u��"ⳬUS����"KtecR%�׳܋�\ >
��Ҳ���p�����6���E} l���q�s����1�I��7
�i�;���w
���ܺeQ�c7;[�F@�'#k�%�E�Jh[{H�ku
7)F�Mz���uP��ͼ�b3����t.U�������aZ�����M��RX��^l�>1��+��q�Pek�}�!��d��o+:�?0�{�X*
ldj�&���#�
��=�ń z���
�ķ5�����j�
l�YEl�7�)F����3�݄��\=�N
ϛ�'�iZ�?I�/>hq��������i%f�z��cړ&
htf� 攄�7d|0(R��D�{�iĢ�pq�yzx��~ch���}���]c���Zz�R���
+�mͮ�3�~!
�*�x�����c=�����TS�5#J��/�ΌcO��ȴ��
$^�z��5jL5z��L�dn�\
s��eq�d�P�-
=2؞�p[�} �:W�Gc;�0ޛ�0w��a�|�{k����_Ԅ�/�~���73ǔ��6h_W:GF�,;^eOW��1aɠ��LL"!sw�D,��n�^*@s��7X�2����R�6k
�w�mw
��������t2F���D9�EޯQV��/V
y���_x�
+�� PG��{����z%j�$Y
���#|��VjsaD�wʟ'v
v ��lj[����T���
��~���T�M�ۖ�/}f�G���(k�LK~q����j^7���뫼[x��*SNqj������np�.���|4�v��Ov�b���햧��4Fp��X��Է� vC;�m�0(�� �XK��`=:n`D��2
Mb��|n�O��j�fǫK
#�e�j
�.�h[X-�AWY���kQ6�¢,X�E�P㤏�g�G�}���
$�
-�D�
+���4��~z��w�8�
��
��ٲ��_��
+\Q��]ЛK�
�E�<_���zQ1W����9Q8����z���m<�{^~X3~�E
~��
~l�,5?�R�/������YIe�:+���$��a�o�p}Ig��K.��!v��qY
<P����ü���̫_����d�Ja�j���ý?��pk=_z:�:�$RH{�l���s��ǚp�5�%����00
k�q)\��wb/:2ogMN�vJ����aܢ��Ɗ�cd���5<k���TT}t��z�dj��Xo>�������
!�muT��;C����踂
� LN=˪p
8
�}2�_�@�O���F��m=�*}
+���`�k��H�.�G�w'�i�9�@◀��Wbe6�ȼY�2z�V��!�I��m
�O8�w�'�{=�r�>���+�è;�������:����L�ެ�x[�rr;�CN-��U��V=�i�j�kk
�����A����?���bscq�em�nۛ���:oNڳ�
+��CT�;=vVl�?S��*���
�Ds���fY-g.Gㄮ�
��=���[��@�N��z����4��k��L�>��s��|u`w���:�Uޛ�"���Nq����go� �'M��c�58�'�?'o��Dev�a�����+�h�u�����R�����V� j��ϛ�V�ת���X���{y�nF%�Sϕ lQ)�C5�=
G$\B���!g���x�;�R;�
v�O�$uU}q��ȣ��1��I�'��9
+�DU���<�!�n�V�H�c���R�
+ͨV��ä�m=��\�P���c��GN,�D���M;������~
<��2�9x�ئ�
<�.)��_���OJ5
����n�ŏ�6���e����w
}��I���'��T
+eՎs%S�Et�
+���A-P ����%��tNek�
��S`D
+�K�٧�Ύ)� ���۩��E
+�N�M��h��B��{j���}���}�!Zן�������q5�5�?!�J���4����-oǟ��K�S<��'����T���v32�^7Z-�� ��c�{�~���r] ku4���w���q�Gd����?���o�Rn���8�����+��m��`���<���#9���|UO���t��x�>�#kr�F��
z��W����ƻl�:�i��xi6
k��}]��j���d��J��?n�߇�ߗ
�V.=r=�t7��?�R����
+�L���
/NI�X��
���
]� In}!�ܦ-��wiF6�>E�5q�G6
�56 ��n-���
�ԛc�,��|̡�k���
ׁP�i��5d|Owc����e���+�r;���[
���\��
�7Ww�/�I�y��\(������C/�q�h��C&��4�:��Y�p�y��������=
������
�~�\�}�N6
X�=��3y̌��n ��C�+��z�����n`'g�~O��A�ќ�qm����C��Q'��$y-���u��%@e��ʝ<�ԅ{u��
���GO��t��
�s|>��1�����sn'���a�v�|��ڢп�vmz�
��9�c�S�\�c��o��uc
r��
r�mt���/2*S)�T���R�A'�����d�F&���~!/!�@Z5 �Ը���b�v�B�z=����r�����<�ktz�Ә3_�4[�#�½������8a�ݬI�&O�Y8�v� ��͉A�]v�V�s~!ɭx'��˗X> )�$��� [...]
q�����]Y�y}ZZ�~!�]t;�6^*�(���_�m��{=>���7Іw�>����h2;��״�)-�KK�_��EZ69f�w���nk�V���MN�����Q6�òc���L��uJ�J��������_�]��J�~�MO�@�� (���A�7���䎀ޱ�~�/�U8j���:�6p��9��mjk��#e�K0��J1�Q-���A���U�sC_�����N� ��Oco���
����^*{��D��)>J
~�?�o�3�
I~���?�"|h�/�8���
yq��۬2����9I͒ݪ6�fw��;�_�Ic���ݜ�s
R�:�j�B3��m
�Eڿ���h��+�����3P�Nu-�eZ�
x��!�9PR7�A�Ѐ(L��_H�v�J� � ������E�4v��BC9�wt����bs`�wVM��f�OS
<�W�u��U
�ة�IST�ZSUln+�y�ij���-'�
��(��͎���(�%N�J�Q��-L��=�/�o}���u�zA��tƕiVœ��3.z��
�=CVF����%
j#-� C���3�80k�멄L�N��N��Ɓ&���+���U
������4qP��O-���`~���|��
8هܪ���t�_H at pwH x�����APN�@a�%$mz�FT�q�<��u���5WS�+�z��䛃��/�QQDaR
U�TUg^�
��?�{��k��J�[-�W��1�M�ݠ�-�f/��Ҳ�3
��D��\�����?�-�˳Ж��Ҋqή���%����7c�W.�#{�,�sK
�C_
ힰ�?5P�T(b�i~�tE���4:E�
�
����9��%
C��_��uHZ;2��]S��Sl�
�/$����o��
���9�<"�=����P�PuZ+��Z����H�א8�5A�]^�#~���9km����@�.�`����0'�h3x{p�]��y���F��KI�f&��|�:���k�#(�
��V��4��^���O��#8d�3_����
WO㜖n���A�
+�W��ߠQ��Y�C��>�
'ŶK�t%�
N �����
�
t��z�hF*>� ���߷��]��Z���m���~�ʧ#�
�
�ϰ�9_��vpJ��11c(A
�
+[z�P�!K�r8I�������l�U��|��l?
�懻[
���h ���i6���)h�P����
H�Zʓ�
�&�"�-^&`�vK�|R��
�/$�~����o��d��#�/�;]_TR���].yq�o-!G
g���-��~f/��M<�v��ҧj4�{�ϒz�%��
�v'
+9�,m"9�wb�8g�D��n�����ހO���>��HM:�
���G!Xا���8�4�Q��4yb
+���{�ܭ�s�y/3��J�j����hqW�Y��S��إ��3&��qN��kK|:/��?K�6L܈�7
�
+1f?Ulmla����
VB� V3@�l���E���w��q��{���H�
}<p�{�31�~�
+[%?��7+���j$�
m���<���p�&'�nHhS.3b�5�pH|��#
۔���_�[�~,o�^o�^v7%���l
��!�
a���n�Gb
ʥ�b
���Hy�QyeY��2Z��
'�v�b���s�F�t��.�<���1�4��y�����b�[aYı��ᶘv٣W :���{n�]�r�;~�.��������tV���3��~����ُ�\��b$+@�Ju��٘Ņ<���X7�w
�@S�p��jy��z�me�em�Xs�DArE�9���������3�?W뜎A�PT�]���7j�0����rq�,H��I���#n�:*�/-J�[/h}��O���&�[qW�}�l����3t8\:|c1t�2t�<0|����+���oΥ�
�J{v!՝n�x;N�
���V�T!
�(#�tDenm&�px]J�U<��G�!6����rY�D�ɟ{�>oޓo&�w�
+��iK��X�
�5+b����ڛ%�.�V{�20g��vbx�f8�����q\1��Ŵ�z3�z���l�[�c^��f+�7`%O��$��.6�/@�
�#as�n�G'Pa�L����@C\��]�h��>�R�&��.�x�f�.��`�E}�2��e,��ml7(��G�e��x�/�,ߘ9��:|�
g�[�&'�敖C*쉊�t��q�q���
�H��*�v�-KW���xo���E��|�+���D
T*K�7K���dL�^����3�"���P�X(6y��c�
^ɣ#?���:��o�i�</����&w�M 2
������h �� �&ܮ���k�a�5i�gPY�!-��{jo7J�Co�����/�
�[�~���k���*
�?����sq'�lq��R,��ژ�y)�7
-�d
�dѸ��4o�A.��}�.��캰���D�S3�{�#Q��ЅhYy��s%�c�|�M�W[�8��b�V�b��p\�h�j(C�:h�p$��)�)�
X�6�F
�
+TVp
��p�!��Z���[z�f����MrZ�
5?��~Љ&�/�a�g�M�e��.@���0G�q������g�A���j�o��}�x��{����u�~�{%�k�wD��� ��[�t��s�N�)���$����q�MQ�=�����:��]�A7w������䴥���\m�
�,��e�
�*�[w+}5�r����ɓ�IΧ�@�&B�+4�sه�o���]����)͘ �������5�&*4��[?Dʩ���Z�]��No���7u�Q\��oD��y�{;*]cÖ�3�$�F��ф�^��U��ќ���I��y\� �1IC�����w����ūh��W^��^qqZ!�0,���<KȤLGq�
��hiIEriXg�b���AQ�ם�f��9{��������^���Lӄ�jީ9�H:),�����!=���{�\�`�;��jxR?Vv�*�foeP����T)��J�(\�xA~t�Ð����0���r��e�C����F��B'���L� >�������� [...]
ۺ^ugz�_����{�}��y�
�ܟ�t9ͩ��4���R����s�yzCd��̹�i;77��1_?��&N��C�#�>����7���?��O����:�[
+<<0CRO�����<�
I�z�!�2mWų߯� �[��_�
�\iv����P�J�^�6�;
ɟ�g�t��*��f,S�����
���SrW��P�W+��]���c(������wa�����|��$;�����&���#�Y�|����Z
�o� ]�e�;-j�WR=�M���
�ko
+Ҷ�k� ^�֯Y�Y�Ro
���0�9�6�)Z��+*�v�w
+�U㰰.n�e��Ofiב|lJ8p��^���gu�S`B����C
+�ׯ$Z�Ǿ6���4w�r��~��77H��
����h��B4lY�*2-kU��,n� V�QX����[B��y�9����H��ּ�������uf~3]��>� �q��z�*��C
+4�F��y�l��\�Z��p��c�]OKvz�kD��q��'�'�R4�.�+ᵇC�r"���.�g".F�G[t?�Q0��N�4���y�9�[�Y�^?f�
�g��]h���,>��W���]�����[�����SOs�d���d������F��`�/w��}���8�uw�nn�_�߾Q�'
�2�_Ҁ���3{;�4�R[�����/ē복��[iŵ�c�ū���+�Iݭ�Y|�:o�9���1����H���Z��?d��{��j���\k�����q`���\6��AQZ�Q4��n�Z
��Ӣ�_&�f�Z\�ѓ[�_$)�)����z��M
�>oܺI��=i�S
�����st�V��t�2�� 2�k�6~�
�1�1;;I������iη')��W��Sקм��K=�E��;9�x�4���N
��>>|�*��"/zU at i�2�w����j�O9�k�9�}��.��[r&0��ϊ�;���N�j��
η�&��lݙo
����/�`��eg�]ߐBizP
3uCP6+g"l��J��5?�+��
�^�O_�C��[<
r
���Z�۠ٛ��6~�=��~�]Ɗ���Ȧ��g(�]�X�K���ng�
����SS4�
��Y���J��1�z��&�
m���vU?L�
!�
`u�/���tF�i;?�9���=K��x�jc
��m߿�m�z�V�/3���
�Vb�Q�N��2.�5
Lq/|�
7
�B2Fs�q�」3̎�������?�z1<J��hC�i� vٵ8�WD^}�>�b4=�oF��wO��~c4`�D�d-jF�*�F{ĝ,xT�V��&/CS��dc�6-Cmqs�y
+v�A��ɉu�H��1�5tl��;��o�G�_�� �٭��|U���p1���I
+�f�
�K�1��j��2m���dݗc"���t)w��Z�J-��rҪ��i�u��*C�F�i
��q!�q1�+P�5+��Z�
�ի��SL��H���w
+���9~q���y����`��_]#�ѥ�
��p�k�_�����侟�c�Z6�Zm�bw}
U��Ӭ����7�5�Vu#|��Q�kYNh�G��+�����N~7U�c3VC�+��X�?c�?��H���2�����/н�l�)����#-&唛-�2����7aw,���3m� �z��+E��b�ƞ���I6R�s�A�n�%���Շ��� �T,�aO��lO&��r �,_>���[���&�ᷥ�4��4$�}�ͿHJ�ds\���:(�z�oe) ����15�G{�N�
�*�(2�)3��U��ۨ�4[�<~'�c},���\U��)��G ����*�r�fm)g�9a�,�e:'
+�{_6�.
+[,Ȱ<�B0���G�u�V
�
>��zQ[Z� �i'�<�x$���i۟�AF�1��`c�����n�G�>��A���M�A0Q ���U��Yh�y߃��ڐRiq��b<���Is�z�
����c�O]��,���`���w���6^v$:�����<��m}�8�ymk8�����|��Y7
m�7��t8_\�`���
z}I��$�*��r��E�습�� ��|((^�
M����B��m���.%�.eJ����ُ;�M��;_��.�k�ߤ���j�#�*��
#_pn
���2�ܡ���<�!tCV�<Vr=r.Xa-q�v�U�+?��m�v�6/(�gUhF���$�Um�]O�,�3�z �
N��k8�����y��9 q�������_3�a�J⁽1
���X��d���(V-���*�#
+���\�
�� �(��P�m���j��a
_|�3�q�kP������<���5��V.l҉Ƭ{����ߘ��SefɎefgn����*C��m��њ�텃D�l�����D�q���
}
7�רVVrI��+�(Z��"���1� �9g���_��ЁK�!���dJ�Y�י���0s�1��1�S0��f>�Ӡ���(�H:��Ft��_���� �[
�9��Y~
���K)�_���}�7��kW7�ğ�+��>���Ynl�G�,�0
�F&�ۿB��AX{��V�c
i�B��t�hjK�2�ԇS��?mɃ. ��)�I���H
��H�&F�`]�
�K�ך�¹��~p
�1���3�`��
�C�<P�|��!��uء8�OTa�
��ow��!�%�M�[J��3y�rOR�Nrd[Y��K����;)~�4|lG8�#W�K==12!l�F%lzY8ث���Q)���,U
���;�$9�VD�x��rp%OM;t�*��s�����A�1ܐd�� �n����N�Ih,q��m��|<c�ty���CgO����IY���nz*R�}��� ��
+�G�!��
�G귕$����ug+��f�s���7�C���Ԗ IT�=nR����ɓ�>Jp�>ʡ�ӹ��*�,0�
US���7�s��������֡//�G�вs=��Q��
�a���X��P\w��f��S�c
�c_^��|�r,=��Lq�<���.
�_/��s���2-t�\���F�ڻfKkrǃ��;��i��xջ=�
w�eq�_����F���6
B
��
6Ь�]������n����o�Bs�=�&�1�f�־5֓\�Y�
�fyٝ4���aV1������
��QmuѲ���0y1�*-~�E���{��o���Z�V�P/͊���So�Wh���U��uVB�u��5�);�n�ZV�G�P�;����j� �X9m�Z�K�q��2i��7og�3ߓ�p�
9��Y�� Н22�����=�7zW=b<�jȪ5��
n��>��Y��w5�w�rj6V%����,_-�+#� ڿ
1
58��w��++S�7��4�N���%wQ�Ŝ���\����DL#`"� ���
��)�R���
�
=��5
~
��ۓ)�
(q'�Z�݊�wK��_�56W�P���u��<�&!
�)�]�Q+,tB
t& �,t/B ��� �� ?\ C�-����4���6�i`Ӫ�!:�;(f�/���i��@ͳ�0�7�O2'{�N-֫�^���A��h4�����m��5�
4�[}1
��0�
�W��G�
��� ��GU ��a �hC '���������{
�/c
+��� ��
+ ��a���'g�h�p"
�W����.
+g��,,e�B�{]�@(/⯺.��
+���
�W>�]�x `��
�����Q
�X�p��/���<�� ��� �� ��e���<�x('�̗� وa�D�R�� Q"Π���_q�B����g��IBS럤J��$4�F�
7,I�� +�?4^�fh?����Y������}���{��ַ=6<��T�^O��\�ܡx��i�b����!z�X��6�S�~�q��?
?�����Xg���a7�L�2Lϙu �X��"<��y�9|.��o��,jg�����]���m��[�
�� ��k'�W���^���rv���(H�D
���s
�1
�d�#"o�+����С��I�H~�$u�$-]�$m#~�$�gvJ�H.!�x�E��ֳ�����͈b��;��4���'] 1/6��Ϗ➒y�u�<_
?fw
���ai-�}会;�z#[m�3
��n����H1��
c�!IR~��O%��&o9����N��������~�Q�Yz7�w��o:��^G�
���#y~n��o
�Szx)'�}�u��
� [...]
�w,�Y�P�߹����%ֹ���K�k��n�������-ĉ�nb�u�Fs�D�Vj�J�� ��m})oEwqh����j;
�-O�����Wm
+��TrS ��`�WIq�whx�^
������-#`����mWT7�x��
�S^�c�j� 6����I��[�+�����z|��E��ZnC��l��d�[I-��Uj~�w�
����K.�3ι3�q��!y���+��zs�uR(nv�v=����:�ֿ����~�~U�[�?�w�(o
�U�P[��3J�g���R�W��S.�!,�3K&��� ��i;KJ��̍���� ��,��v�F̢��܈Z�� ����5Ԟ�u�h�����L��G���Ncz �V�7t�}��TS
X�5�\U��O�W��?�<ǀ>K��`�)[��
�?�����ʱ7T6W7J��[%��T��$��cG/N|�T�$��ȥ�Z�����K�Y�������z���
+�R�ڡ,��Ź�������5K�KnFn�%?@r
?���^H�`�� ����aEt�Oߘ*x���kڬ�BG�'�
os�Ka؛��=?
�Z�Ӿ�B��?H��Y�L�W�Ƨe�A�N湻q:=(Z��� �������
g�p���{� �W�
��]�UЭIFy����i�Yt�#�C
=�����N�zS��
�=�`��-{��
�6�?7�O��,�;�,�R����b���� ��/�i�e�ҒZ���خ�<D
,�v�l�,���ͼ��
��r�4m��w��r��r.����Ə\�1�,��U-�vOe抷>Tΰ�]ϵ@u�
-��sĦ��Ic
+u�0+��ol�����R���윆c���qA�z��Sk�]�wf��4�VoIw�4���I8���f�?���]<�d����+�[�գj��e��bo�
����Y3ZMS�/�K��v�����W��6����%u-�5
m7��i���!͝�8��ՃB��5]��z��[X
]�}ڧ�� ��u�1��7)��hk6��Nd�Lkg͏���w��hy��Q �
f��jf��Cƶ��
�Z�������WG:t�/�����q)h=`L����cv0� |}Z�h��R��.$��w��u;7by���<�����+�,F�c�N��ɜLۯ�V ?����G�Yr4E0����e(m諪�
*�z���m��j���FڇSo����g��"rᠼ�L���F(+� 9�
�� �����.��{�j#�ϛ��,������Vt��?~kS
M��O�
���̬�핡h�V?�����y7�|��ǞA�^*��܅T$���5g7��
+������9��~�#S�*��#IZ
ni��]i��?<7�<=�ە���56�?�T0�r�?|'����'c�ڶ�U��
+X2��O3v}�Տ����p���N���EE"�ݸ��gC~/��<SeZ�[�,-|БXJZK���-�����
+q1C<y��~�u6���5���Y��3
Ps�{��(=��H��Ǹ
�,�r�����j/��vr�5�|u¤K�k��{y� g�F���'��
+��iUb�sG*v��� ��f,VT46�u"l �+H�� Hk�����Y���lh9�N���}z���)nS[6&��vn*�F�Ǹo����.�XR�`�$�`�
+endstream
endobj
106 0 obj
<</Length 65536>>stream
+F
ȳ�6�Ax����"y�!F��G�\Y��}H�dA� 7��P?��7>ߩo^#�'�Qķ��o=�����p�@�ܢӊ��o�a��O>_�!�v:o���
�R4Ը�֮(B�N���q�<'ı
�u_�ǡ��F�ۓ��wA
o��o�}�4xM
j�,w�
LΜo\�Ao�[�Qފ3vxM��mh���u���\�z��'R�37/njW��䑓�"�rf]
��b|��X�˟监�,���(LWؼ�@�gb�@e�k���C�oj�
����չ�L�oҁ�
m�9�t[WvJlj촫�i����Zo�Ns���k�9������U~B#�m�<2&N�o[�b��$ŗ��lA�4��HQw��
�
�q);��o�^q#��
o1w
���s��V9�yW٩��8��̻tSMz
%�
�L�!�\��\a�2��=��S�5���~\����G�:6ׂ�<P�Pk�Q��)3��-ƳVS��i�?�Ɛ��&�E.
ޭ���v���^�n.�f�E���Y���Z��ə��`�=�l��
+
]�W�sB�%yK�ץ\�N��Lg��ΰ������
��2�
�k����@x$
5
��Y�b]
��Kw��Fe��^��
f��S_`�.�3� �`��
�Y8`�ݖ^m�'���^��b�<�~uJZ]�.�����GdK�G�7q*�0qL<����m���:?���>b��e�S�s�����_S�#�����u�;E�<�l�o�X
��:Ȁ}�tĝ$��~�Ʈ;�
�sr?%V���{��v��i}��F��_D����DS�
�9�-��0�`��
1�}�3,Z�jZ�<B���9U'��j0ZZO�-���v�
o,�;�����+-8q���g�<�!��
�2,1*�2~5��߯6E������
�)3��M
�:�0�!���5�C+8�
�4`���a�0��q�?,�ի�?%�n[
�qΒh�U�U7f�R���
��_L��.���n�
r���.b��j���Es��F���0������^].�䨿�����_�쟽�R-�T��t��i�5Hz�� �M�X:������Ò���;n,��-�*�U���nW0X^Nz
��"�
�W�k�}��J�G�=�+��/-Y���&�^�_��'�MvM�6�\5D��7���S��m�6(Y� D�����RBZs˖Z�2o.���%���^
�jL
����Z�������aT��@ĭ�lq���+f�
L{��F���Y�ɼ��+�D^մ������f�}�M��"��+�7b{�5��Ÿ�]��f���
�~Zk��Z�����(�ڕ{�t��sQ���x�W��?x����-z��;����"+s�<�_��K;t��:�<�-�'\թcgL�Q+X{���{s������б2Q�GE�`����e7�wK�j/�nW��˯fS\>~!��6���z�ק��{��e
���T~�7��?Lo�G0|�3�C�P�*ȋ�J
=�
�����������;���������;�L>ʤ�G3��F�\`��y�E��q97��� x�j��}*�� 8�H
�dH� R�I R�_u�J�
A�n�+k�����ݶ���!r�6$U_j��V��U(�ܝڹ��M���zš��Ah[W���Ã��0��{� � �hq(�l�0 T�d
7
�
�C�$�����2<g ��N@�
r�W�<4��x�� ���?o�;��
L �S��t
wo]~_3G�� �,����\O� Z at G ʨc
��nw���
+�j�����$�`���)�$�j�pr�p�z��k�p n� ���
��0�n~��[GK�=� 7A�B*Ű�y��W3K�N��ĥ`~��6��g!�
��b������S!����K����
�u��jf�ˣ%L�pr+��O�x2�
O
+
��-p�+�m��?���Hg���#����#�n����e}:x5����B���m��t?5��
ݺ75������'���v�����K?�
g��N�Z�N^k
�]�:�7{zDzsX"��2�*�$!�*E���TVfem�at��L3+�ʋ^�����}ӽ�������ׅ���7w=��� r��ʔ͋]h���6=;$8%2
��w8�ۣo�����Cq�k�6t��=n��peۊ���$��?�������>�abdx����&��������h0���]��z"*��u B�~�����]�S"�'b_
?ZK<��zX�:�Cq�wv�>��N�m���Y��v#i�����?��NG
�[��7��?V:�$1?x��U!I�Ufj�@N<�>��z}�t��5�n����<�q�s"v��q�ʗ�����������Nz��"�,>
�mk��2��� ���Ԉ
�:�Ed��Z͗p��1���}�J�\�=�!�.�&�)��t���Gɻ�| �F [...]
++f����6�����h
���$�����9܌s3L�:�w�h�
"�
+&�����
���j��r$�����gO�\3���*��
��Z:"�KĊI
+�W�S3
c��[n����Rυ����~c�QC-��9��
z����~�3�Q���I>��</X߶Y�1H].����LOū&MksYrv�����-I�����hN�WI� �ng�
�����v�E?���☙��~��~X̃�{
����0G���̅�O��?����ܾ^�Z���uW���<5c���Q�JZ�qv�
;�:��&��M:NJ���@�eX
��
�ɧ�"S ��g<�
�@�6�� W�ܜ:��J��0�8�;��}t����.�,����{�]:�*]]��&Ӎ�S��,L�k�ѐ�@�:29E=�v
i|�
�c�m����ml�4,?��$
`Sy�����O�v�v~7������uf��b�H��`Y
���%�
�Խ�
����d6��I�
��ց��qrf:�Iw�I�7
��V����Mq�)�ul<� ,ߨ����Q0_#��G��fr
��e2�5�U
1�?� J��̝�e
�<Vx3Z�l1lT�$�^�o���/
:^�H���4M��1�Io`���Ћ�W����ut�������Ԣ�yp�(7*#f���U_FL�d�rX�
���F�r?껹���z��C���4�W����~y�-r�w`$�B3T�N)�M;��g��
��t�-aY2_NzWH�_Ӫeeسf���ܞ�G,D�F�T��<�=�J�y�ݡh�[皾K=]���v���x�]��Lv�C�j��+�6��(��@d�ɷ��\��
n��Hm����iZ\�Jy��*�_��tg������ƓYLۄ�-z�e���06���7+�maH�gl�'Ճ�&Ջ��O�$�9��տ'M����[� �d� �8f4V�^-���G��FO&�wV&��"}�9�Ϛ�I��8X��w�
L��/��+1�����7��k�m}
-Eeh
+-N66�b��@wt����i�Z����&>�0|�*�,dP�U��`�ؐ�N��d�� #��������xI�Q��Ӳqňa�%�a�"��ֻ��ö�ċN�,O�{gN
��?�����
���>�rc4˰YEk�� ��)=]�MK���o �<��Lq�x(�8����~�ɵ��랓�A�&1y�'���
�k�
� �2@?�xB��Jt��,��J��U���{�E���.��Kw���� ��Mo/6I��0ZU�-���ze�k�ƎU��^y�.���_�
į�H�Hb��A�?ě.��X�.�K@�/�� �tJ��O��5�W��-é�7M�⛂%f�H�Ɍߎ���:<�Ǟ_���sn��16
����\���oO�W[Z6���(�
J�L
E
+bÐ
+5k,r��et����F��Y������&^ͽ ���H
+g�!�k�����7��1����FV^V��y ���cT��
+6O�U����d��60ϦH\���>�Q�*�w�#��
\Z@
F*�PQ��&�Q�[5$�"~��+���z�7o�#w\4���� �i�2��lh��4�Ӏ�>@��>��; O8;q[|���N���é4V�5XlPKs�|��f�bt���,��6���I�d4��֛-^��m�2];��BrED��Ђ�$
�;^5;#�x�L8cLϸcE�ka�Z��}�7;9�A�� G�Ew��$�v�x����j�!����1�
�p�
y1.f\���s�qF�jɦ�jj���Q���F�
�Ik�w�F\%ZM�T�
�G��r7,g|N��*'��n�����N��dя�e��{a<��f�f�2��&���}R��6ó< �a�������� ��f�S'<���L�WZ�
+�4�
xuP���A��b%�n��
+�6���ж5�}�=�Ÿ�ʤ���`��c� �d>�?;��`ʞyn��a9)��
ڡK���b�gQ�k���@UG�>U�U�L�7��Pϧ̜:���q�|}����ESZ��:�H{���X-����w��o�!�,v ���C�`v�Ci��k
jބ�͌.�+J��{�r��ARђo�$�l�q�
uB���F� �n�
�]�RH��x���y����2�b�L:�y߶��i�h�Ɖ�٣{���ͫ�!���
�?��K�!z�; t��Q�x��Tm��r�L�9!
���
�(F�"\/�U����ݬa���&/c�;��Y�B_6�B_rL���o���CT�4!p��Г^wr�,lhT-�E��r�4<�<�!#�U�.��:
+�p�R�E9G�f�lu�a�9��0�n�|
���o�*6ٜ-
U Ml��/�|���@��r^6O
̞�)�f�
f�K
f-�0f����8�������yk:�|��J��%b��:
'�n�������,�<���̵=B
İ�zֱ�|
�Os2�^�q
J�
����mԯ��so�V�^�����t�.�����
��
�D�
u�.T}]���~X�<&����i��G"Rmi��\��M-叓օ���
]��%�m�}�KQ܍�B30W����y��ۧ��.�P�YD��C$�]]�
;��J��w��C���أ�m�
��tW(B�:�[o�*���>l��y���+��o�h��M���|Uq�EN��}3������$J�=��Q�6X��= ����'3���&]#/O;V{��ǹ�6�)���<D�����tZ4=G�-x4aQjۨ�X]�y�����<���ܬQ�Wz���yNk-fy���RSU��a���u�?u棵���>}k���X�Oq�fɠ������#.��W"?�
?��j7�Y܊�F�u�?o�n�R��ݤ!
X=�z�ˇ�ʭ��+�����l�1w9+��ʡDn���.h�_əRޙ�֫��`�3��\��l{�>�fk{%�OvD�z�
��
�
0!,�qA���i(��Ҳ0m��`T�.��2m�O� ��U�u
eE]����6_s�WpG�`3�rGFm�ګ\̲�n���YbԻ�9�
+�w�$=�}
�^�+����7)L��eU�I�݈�˹�����Ò�"y�?
(�����۵�Lq�,C�i�B f��KR~�q�\�*�@ �l��s�謁�s�]-! �
l
��
�[���m
+���`��˰�0o( ,4�
�5C��0fjy�lC;E��KFl��ؐx����U0�f�M_��s{���fy)ϫ���K�?����� {3 la, �
����
�?V
��@��@�c
@F8
+ �M���ȧ~������v
@{M@�m �4vPI��`I���Q�bȕ�$pN���p�]*�w��풋}c�����*v�K�2ʝ��\4
@��ӡ��
+ Ǻ�M�Pf���^�B� �� X]l �� f�2�m;�
��ݥ"�=�(���
+�
r�!�e��~0���
Ջ7B��s��ڮ��Z�m�wۍ��
^���fᾳr�&��4�h����C���
+�T-�?���
�\z�t�����\WUۺ��E`1�d ��"�bN���
]{�:�z�����0F�6� ���P ��p{P�(�Q ��� �Wj� �T�
������ɟ&I
3,����~u�Э<�
+ּ�P�{/iqN$}�jd�*]���e�+�E}ZΥ�O&� ��)<���Nq�>݄��_���S��w����imc�Ѿ�՝?�Y�}�~���$CJdQ��?�)�
2�'O�����oIS-^�
�B#�uQF7=R�¡�M��)c3gdnp�oOn%P�O�3���sa+�yk���y���t
EPa�����8��5���+���`s?��\���?!��Q�Q��_������hu�R�pQ��[
+��������9��4��_3[���u�q�����K#�� �
��Bp��
+��ܽ6+um�J�x���h鶒C�비�
��p��r�E~���E�52��������.M�q�Nn�}GprK��Hm�݁>��{6�\w�
|l����rg`}d��5��J+\TW���X���<�3�P�^�Xe��{�5g?V'�BWd.���o
;�����,6�"�
-g *���m=�����x䅣pQoe�/��!����dל-�o��qLW�0�V�z�,ݺ�N���]ÞPg�����eA���<&���+'�8��}/!Uj��&��&n����aG[��Q�V
�U�1�۵�@bx>}��|����|il�^���n�A�O=����mZ�r�G~I�;%��n�bF��\����]~/��&���C�Y�i�X�sv����~݁�?6��2�u
W����S�+F��4���ڻ�.��JD7�|^��_dװ���i���T�@qU
�y"B���t���ʍ�=����_���Zk�.�QS�y3�x��i�,]7�t
�&t�>M�1�{�����J~�8
?/���
��d�D��W�>��c��[��wǘщ͡�|�;����)�Y���ϡ�/�[���/��g���P,s-tvʵ���$���c��KaF�ށ��%G>�q��\v�ۅx|=>y���:��k~���Y��ۨ3��>q�㶐WG֚����b�`
�l?�m���7a�����
+����
���r�3~���Y���r���zJ>og=O^�=��e�=��oxINs̉��]�*�˚H��xR�������8����t�c8ϝG�X����p��M��i�m?��wL�)͕�Y�,:��f\��&{w��dE �S��Z#���h���I���k\o5;�ʧ�1��O��-�
+6�V�Wr՝"���D�}�9��Ĺ���q�����/k����'R+T;/�i�E3�Gu��q#�vc8����
o�lL�k{ik�M%�N��4
+��'�'u��kl0p���
r���}mmo=��1|&�It5��;D�
�b�u�&����;���
�O� ������eC_Kjv4���]�(���4�������
wN=mPK�Fǥ��M@�<�Me4E�7�������݁�����H�Pav)��o��p��
�-&r���'1*��g�a�6j��g
�o��J2��n����7緧+Ne���ϱ����T�Σ�ڵe�ʴa����F~xS�(g!S ��!�.��'��pD�<�Y�-8�����%W.�Y�W��V�rr
%
��3
+�
6+�okdC�K��V$A;H����TϚ�v6q*��*R���J���Q���]�� }�זDK
J�#و�;���?/�$
!�D����&~�
+]�c��Gl���n2�I�Z�
Ө�\�9ڌO�U�<����<��B�
��4tU/!�a�I�|�T��
+�x ��g�hK�ej�~WHJ�ӘKt��I���"�]<'�"�>L�+1
�DeX=�Bam�wAF�`��tw���:%6�h
+/D+�f��/�Bgxu��
lF�N�4L/�����#�jڏ�ʍ
Q?��2u��gt%�qT����D̻biφ�HX
���<����>�5A�W8��վ� �ES��v�oq�*��9�;Ud�;�9��S��#��aԙ�9�
��ü'�؎[�رUb���Q3 ����^I!�L]�uz�iM
+g2!�-r��
��&���
At7����Bu��a��k���[�|�;)�Y���u���^�腽X�
+;B�;�P�/��w'Y}M���؉
u��t/?i.Z�~�n����
����
�*�{��W�I3 ���"��B�;
�˄�A�P��9~O2�W4�o���}�d�1��S;�[���e�+�#��� s���4�D���/�$����`��?���~�M?���۩����ۘC��]��������p.O�Ib>�K����Pl/!AA�m~�1^��=�|��%�E��{�
��(g,�}��G�&o�0 �O�y����� ����OE&7���\����D0dR���ۓ��z �ƨ�څ�{kԉ4TG%t"O�@*|:��r����7��y�·5�+�q�i����`ǹ��Ţ�p�^�<�
�m1S&�+����Ln��ё6h��i��^��E�o��Q%�_(J3���
V���|W�"ao�4&��+T��\
+��f��@!;�D���PܝV�Z/|{Wxq6�-��~7��}x�
+μ�z� ��н��䁗E�*���ӥfo�_<�c_�?�~U
B�u-�z�N2z�^Y� ~
� k� JA2���7[ �
�������ٳ��b(��Q�On*E��f(A}�?,�9g�'{6KJ��r�162tRl2yCi�BRti$��I��bf������`9�A��ڍ��|�8i�U5����;i�֛4�7D�(��f
��%+ܩ���0i��1&Lr�v�ٵܿt��U0��r�fol��=l̈́
+�ұ����g\���W���3ܓ'o�W�j4��`�bH�<�-�4������+���Ί�}P��b,�DB�81�=p²��0N����5�M�d�F�,��Dc�wSul#kQ��>$��V� ��m������|��6L�N�u��6[!O��$�y�K\�$F�a��O��5'�����n6���� �U�
:[-�� 9�b�������Z8
+�
6�ü���A>��r5�T?�����G+����
ph�=ffU�k���Je#̘<�ل�v�#�E��i
'��*tKM�mv�ܘ�P�$�h1 d1<;He�
��1��֞�Gg;m�:j��4��iܛ_�H�����V�4��F�h_ll�
AДs��z�_S)N>���g�)[q�J]��v�V
4u,X�S,�V(;����?a�|e���+])���
v;��Hu�^���*���Zu�N=���C��ra���/9��
M��s�l�O��n�Vm�[�!
� ;1
8j����K?>��,Rܤ[n��c�h�^�M�n�ʾ/î�m��f|��G��
�K˹�Q����M�EDw����NsZ&�& �Ƭ�+4
+�_�^��^�.����y�ob4�
4<l
+�pq��0M,���knړ��^F��_\���
���⧗��
a�@���+��R{�V��4|ˍ�sEj0��?֪^�gGhU�� �j[�R�)�A
<0:��3�z
+F��rae�&�
+����C�)���^W�6h*?�����+�&�^n��~�h#:�E;'�N�7^��헔9y�8`��H�ʙ�kג��p�B��쁰��H��+n W�D��e�3^����P
+�õ��>@���V
��v
+ՃG�e���v#2�i��
�~0�@0��1p��e���1��U
�ژS i�
+_/� o�� ����~8_$}�������t�+����������y�fa��s� Vo&]�d �\�ˠ-�n-=]yeA�[���tv�@�ўd��nS) ]%�n+Ձnۘg��~pJy��� W�>���B�}����J���+���@�����U
q�PZ/߰��}b�
V���)jH��3�
!�#���@
��� b6���ُL��@1CL �Z�3\�Nd�^�`�]���5GHK�o�
+�'O�����٩�R�e
dRF#���
�XI
&���ߍ��'
+ at s�
�B� �Hh}O��@e:Pgq�Y�
�� �Z�̰T
a c�g ��*�)t���� L�����4�Eev��Ão�l����!���%
]���[}�C��ޭx�Y/H��',�� h�p �v���ɵ
`�G0�r�M �I���� <
4�v������ _ ��x ��k ��e "�[ 1Gg���c�rU�y�Ut����17����^B�.8�P���߭o���~:4�.�6����4�����M��=@�;�lo� )p=�LJ:@>Ws�*�w�j�� En�3Cd�|�c���ʧ?_��W>���Sq���x|�k�A�r���Z��UDnU�H\�k���5��>����פ��k�)<�?Iu�v�Ȣ=9݄�섯��ѯ�N���y�R�ǨH�r"l��L������b]��,����0�W;�5o8S�LJ}�y�������V5�+4����>w��)��)Sj����k�͓ǧT��]~p��,������̏�2P
+6ZZ���}��J帴B�xy3��҅���2�Y�C�_a҇���TdX��Q
_��^�;�J� �?#q�r���ϯ4t��!o�K{6�Tw�}n��mv4��4c
^�e
]��H����.�.%~g�,>��lA?�t
�f�9��q�0,�:?�ѡ;�!�����M�3�K�-dip�O��2>|�}��۳xWu��f���G��]�I�r��yy�ߗ%�ܓ��{'����!�)-�|mξ��8�"��,������l�A�)<j+ 4[�j������
��W�����)�WZ'|~���z�k
f6�Y^X��MY�P�'Om�]+t����1�s����/�!o�� <Drq}���s�\_��(Ԃ��tv��}G�)���-�>�9<3<>�'<��7Կ�2�U:��Gjyx�
WX��Syy���:Z�"?�y��{���h͈ß�=φ;�����rB�
M�N~�n3��~=��
�)A�w���
>в^�z^A�� w�/ܥ.]\�\�\�
�
� [...]
�p�z�.�'+t�w���g�����\�����������}z����(
+^iZ�'�ZE�T�m�]��ą��p����XN���fv
u��˹��
��^6��ǚ6?���,�e��1hrn�,DZ�_�W���#-L
���
�U��Dj����
�~L�|f*���*4&��"���x�x�q�� ?��۪��ge8��c�`��g���&���z}ȃ���C�Es�[Ƣ*�,}5�7�T����W����
+���]�y���7���+����v���G���1ܗ��3u��*���ݖ���~Ƀ#�Xm;W��9X��m�Y�=�E+��ʭӌl{lo㩱��
�Z>�.}un\u�fs�.�hhY�H�Grf�p�.�T�=�Q�(ȡU�*����#��K�G���KP��u�x
�/��=�@)��G������q٦�uâ�cƭ#a��c��G֨FQ�KU��UK�};�6�T�
#{�vJ�IIO�����|�
H���U�E���־��^�/I }�e�� �!MQ ���FyI�ί�8i��G�c/��'���cX���B;����V!�˛�`�i���j��Lh���]|��@�S;�#*,��qt���� �\H������)�K��83T
�s�X�M��<�\�<7*+�y�/���6g�PZ$��;߄�+w�9��O�M�w�k�!hǵ�W�4��-5������BIk=��j�
+-�2+#
+V,�Ĩ�2 w8�2��g���+��8�#�H�>���Ce���� � >��PK��
�.�V����j�į��W�ש�;�
;\uc
�<�Xi�5#P�X��XWL�[�h�yS���Q0gR�'�)$��iK�3D�I{R
���X�^�pA��a%���J�AB�+*@^�<�l�0wH�3f���3��s���_
�Ks�����$K���:��[e1°�g��Cˬt��0
�z
�+e
�O�ǠO)�9)w
TEԇ
������ք�T��6���\�����
�sDz����̦t
`���d�}�
��;��i����`�n퇽��[I�2*�фz���]�2�K����(wL]-N�
��
+�^ΥO~����U,uO���º\H,6xu[�����8��98Q�ti8�X�swY4���-.w��g@���|=���c��Cg�������
�Qs��j8y�o�6?
F��aaEv�R�lj0�(
+�����PdO���p��N�\�o��
�y�J��E �zQ�u�+¢`VZ�.7pG�2 ��j"�gv�
���,W���6��̎u���e����
}7E͎����o�7W
���5i��G��,�����
�-te�5�k5�!�k/�ݱ��[����
�'�,���^e�7���
Uuƿ/p�70
`�%z��|�]���\*���O��-�%���۞�`���
^���
ƚ�jS�M_��
l�`|�AC.��j,M�Ur�ȩ�(l�Ո�
3?�5;j�N��Q��
0S)1�
��]jӃ��
�E���g�_)T��r�{=Q�/{5��]�Jm>�2�lZ�P�:�`�5� rr�B
+��D�XΘZ3�M��W��sts���Q�BoՆ���_WY�=��[Jc/k������a^�`��텞��/�H|
+���Z�Wh��[A4�w*Em ����A���K
$eA��L���"q��P¦d��;HBt/э�n�9��������[1�G%Ѓ6�����|�^pb"�*]m
�"�nT9v��Hr��L�Ff4��6}�,
{+˾��n
P�hW�T�Q�r�{
��X�H�K3��jK�n
�V����R9���aOD�`�
1o�c�B�dX�0�KK?,j�"
�|���^�a3��^���\�
듟�~|Vx}#�,�ڱL��,]ʅF���~~�����#���d_D:�
+��U���
�m�
?|z��k
+X
��(�,n���,[��u�
�!�
���������{t��
V������ܷi�g.�ׄ?��
А�5��
[�O��<Ά#"=�_��@�x�%�����W�?��X�h��C�P&
��y��n�
��QR��w���%�
V�v�Z���.
����ξS��N�n����(�@<��+;S�~7��j�<�$�~�٣�:��O�!K��M�@'��쥊�
����Z8�+���Rɛ���9�n��)uk_�)�H��o(� �o��k�ݕJ��R���>_laz at 4��j>�º���k
넟�>�@\+*��Ewz����N��N<�VK�u��[��q��zu��#fI��]G*�7ӭE��Q��
L+�a`�l�g�}�f�k�^��I���� jz�Q��~,���/ˍ<ȹ�hs\�KM�k
��
�-A�`C
{~����S��'�K&�Tn*
��?���q7�=/���馐�^�ǂ�EwW��h�Ui�s�n�m��e�I�WN#�~�)���X�m�\�<C�=x at C�����
+��|���-�ҫ�{aV��~@��8 Sqۯ�Qn����01ܟ��f�bA�/�M]d7���CO֔���2r��S8D�x��f�#�~������)�L�{��A
K��ɻ9U�W�V.dQ)®|?���<1�@�
�k�� A��*=(�r`*��</�{���|�֒�b?������u�]��f��2u�O)�
�#>�C��%����@K��i�ۃ�T��P��凭@E6�-
��jI�F��%�!pn涛��k6
1`��- w� ��J
`:?��y ̐�W ���ϰY�q��f�`s�NS��JQ�
��P�6O�cO�i!�#2]�=���Vg�����X����@�4��o���
��W
:h gx�@�r at g0�2��@�mE at Gu�>O���`�ttU:F�:��
tL�t,����~�F�LeQn����$��y�XM��nm�����4�na�i㵙ZO
+[
4�|��/� Z�fVJF Ѕ5����@w8�2��kz���ptW��O�>�
�* @E�0�H�H*�2�} �#F�(�A?��BGp���
;���f�;
L��Օ��o:7npC��*<�ް��:�L']��TZ R"; ����:
+ �% .�H<�εK& Zh. �ntP t4t��h�4 4f� �/=2č�@�`�&�>��~�VJ�c���l��E�C!"�ej(��tLjޘk�
�>E�����ay! D
a �ݐ
+�_�`��v{��}�w�
�L� �WN�t��0���<���1@�
@��9�h.� b�}��.~Pd� �a����u�5A+�R�ޱ�զYD� �a�*�*,����'��)�_�����b��tu������ �� ��ӡ��@R.�>=�en��� ��
+PU@(X
g8��W>5���P�C>}��6X^ay��ǵ�k����U�V5��U�D��
Ћ�X��ʆ>��S&��Na!�n|�����<>���H�
�!lWV�����%Wv�鶽��wo��H��
!;��h����t��|��уN���d�&
�ǫ�no��z��;Ο��[:ݸ����N��״��:����ԐCޔ�={R����A�͎�e��{�*�8o�����mC��i��G�hB�n����Q�l���~�����sU�ή��u���z���x��3���s(o�;
���KN�]��f�_>6�h�^�� X�C��r����)Am��V��+t�q�_]`��<�s��uℱ��ޣ�0(Eru��0m���?��&���a�@��E�N�sڳ�]���/�Ek
�ѷY��80�U*H��M��%����o#IB���"D��"�f7XL�yi���a�Dk�)EP"�g�m��l�F���e�\���6��S�-��
����3 J�[�O���
�Z���<����hw�=uD�
+�"켸y�]�y�;)����q5�ؑ\8�#h~����i�K8k�^�Є�� �^��i�/ӛ����M��>1��O
��vF^>N���O�B����, W�ԏG��~��]�I�����S�<t� �IP��AP��gZ��.��!����i�� 9z��fF����
�l�z�\����<�H������
+��^٭�ݱ�P�1t�LF;��i��~�z�Q
�����?>�R��܉��
��E�^�$�����f�^�Ta�ӛ7�&�S�jV}�q>P;^8O0����$>�,���2SU��j��N�c��F�==^�t�}sN��t�b_֢fc
+Y^�9X�A��o���X�
�D�nN�k�5�������y,&�h=t�Ykp���'������
����ℿ�5wE�MW���x+��XEv���ݱ#�{~mp�y�T
ۆl�z�={
Ks��
+�e�懦A��mI#n�
���,�DF����z�N�~xR��}v�����$O��Hʬ}t��͂ˣ�Nɏ?���q1V��+ݫ��V��F&Ҫ8�ۂ
����ے�&�Z���W��z��Y@ɗ�0I
��I]��J�Qf��><�7m�{~3M����Wߪ�ӹrZgŒꏿ��K��Kו��V��"z�����i���_�I��[G���D�[�"&{��/��o��g�j_ at s�\f�pjs�� ��5�k���m
��5���
�q����J�
P�t~I
wJ��]<IzD�X�J�c��S|'���iҮU~��v%�$s5�
̟����U���*�9=n]/�3�<�
���sp������ ��Z�jj]�k�����U��������(t��`�8��$o%�%�N�bX@�"�_wļA�q�
K3��a�̰y 6y��m
X���%�U�1��'4K��Ȫ�Qwk1ߊ�a��E7&�Y�n"��^6:Ŀ�Z�
�q/JJVJ
+��
�2��v����%�������E&K���5
rD=���AH� ���]��o
+y��狀�
�}�����c�Y�/߽��5p5������� @���:k���R�С=��@\(�N�)hk��D�-�%?� ��.Jb�,@��Y5����
rQ���#
��,�������-�����͵^`�=-��$�g-9�g�u��v
�������iI4
�-���:cSNm�y+�f�m5_}G��iY��|'r��+K�wŎ"�l_��^���ztNX*BY B��F�W�������JN��X�d��Y�v��zp�0����Xd��x�W���W)ޘɻ��a�O���j��7.�
-�:IlkV�����`5�f|���E�8y�F���,|q0�·��Z
��zj���+�Njۿ�9NKe�-#uֺ�
�;1���_q�1\љ��M��.�Q���ôF>�uw�t??�鮺�s��%��I����j�9�R�).�n+1��k��&�$�~~
�n6��$
�R�C��E�
+X
+�-*,����qF�>��ni|c���k0&�� {��c�o1��`
�H
�ɯ:��\:�
,��{�a��/)@��4�Q/)!�
㴷x.
?���D�B�;��|a�
w;j`� �6j�%���v O�)匔
+��(�>%�o�
����mx5�Ўy��C��+���:��%�
�u:���o�>{��~i�uz ݈�
n����F�ZO6$%S�CɝҒ�A�LA���2lх٨��y"o�G؈
���zc��ʸ<f$��!����{�����}JF7��2O�8g�$]�a�s��ϥ��ϕz�~��@��L:=HIj
A<%��E՛��ܽ�GR�
+d�1�Th}�Ig���8>��
���_כp"
oe%�
��j���yMJ2Uci�I��3!��"/Yf�[٢?GyB3=7��3�/��{�^r8�=N�(�(y�V����I��`d�KY�ԃ��������5#������Y���j���u���B�Q�?�on{����v�S��jT���!���
r�%8����yǙ���h��>�i�zK��@��SJU�P��{"��#[�݇8M^%�[��e�C��|�
C�*6�� F
+�}��7:ݬ��t;��iܙ�S��f�]2
�sE�+Ӣ�]��^[%9hf�z���N{����;~G@��P.L��,%j3?���|��m�0#�y9!�|g�_��
���{ �<��O5�ͽ`4h=�v%$B�#�-P R�
݅ 4��a[�.z��㺋.�ɠ��������x�
su����Xk����K*t���]jp��\��~n�(e_AI=�
���
/ϧ�'.c��|�4p�#J�M[o��2R�M�]A�`�*��;��iu��1�wy:��� ��|1�UO����I`�,��H��=)M�
x���b����7U�_��.م�^���{ ޯ�N�3��
��gs�C?����ۊ���Fv�������ywX��Z��:rc��@�\
�:5nb�m��[��)j+M��
+����vXl�v0ռ��y�d�r��2�Aޖ�cǾ_�e�^���6��b ��/o�4
� j�&�bM��C_��*�
,ݑCiة3�k�ո}jo�m�[�;ac�e_N
����]�JM�|n6�ho��P���Q}P��������8��
��+w�
ZmUgbl�O�3mMS�Q`�
+9D����[�Y�q����'Ix�F0l�����`
����dv[X?�7���$��֘��v�o��撚��� �7�"�8C���*\��W�x��WM�
���j��k�
���ė���9ɠΫ����Y�-^�NZ7�&R4(��6ƾ�L��APh��p?�
'�"�̇B��-�r=2fH`�m��(�5� 5��I�r�d�q��dz*������Oġ�e���'�~G����"�W�B�~�
�z�+��Y�s�lZ����|��Gd(��)�o|KD���Y�F�'��ަf
+V��сz�:j�[cM��������:��8j�+�ɣ^z�r�Ro� ��_c��
)��@/�#7?\̣�~�r�Q��Qhyh�������M�VV� -�;�0��G��̰+�����ךe}��u���p�<�d�GL�l��9,uL�k��pZ�\�\�85
�m>z�2,m�m��ڶ�ݏ ;.���
��a�ڳ�=æ��
��&�����}�p���g�@�/�@�-C×����N�ح���4cf���k���i
�f��Tc�m;ޘl�Z7���[��hկ�mW�' s�i�u���Fxr��k� ��l >�C >�����z�
G�C�%
��\���
� b�/��ׯ��!
i#p�g��:l`�
K�N���U�7�[��u��}���K�ږ
��X�7
x(G�
+�ѡ�9�##���FM����,й���+��nm�nz �4�ɐ6�.#�R43�����@�-�3�,Н��
�w��:�l
Y |x�u<2\:�5��g���e���!I8]q
VN���.߭ �5
�?�o������� RRp in Bt����s\ ўs �K' y���6��j,�6���l6���&h@����=Q�Cy�\
�,Pߥ�����rn��
>~�ᄒbh�(�U��d
��
�~��OD?
��=�i�?�/R��~�� �&+@�y@?��z�3��A�[
+�$(8����qC� �� <9� |9� ���3�f@
�}
+�f"�-W>��^��#�ח�Ʃb�X*Hu�������j��t����(���e8� ��� Dw[�D
+ I�t�
�� iaw��� ��\��
�4��G��K�ۨ������l�����I�b� .���ݪ�M8
+ūt���
F�/M�j���pHcg��gdN�NngN���~V.|%ՏFk�$8{��;�i/�2�H7Z ���C]��[Û�p�*+�����O˹
\-��u~|Xָ� ;�%
黙�u
���zg�)
�韞�nz�b=��`�Ʋ�
ܳ齾���VzOZ-�w�GN���r�_!ۉ�]=o$O�
$�U>,B���=�h� ��>����K>}�����!����yF��{|
�!�_�}ɞ,�k�_n�\�U�+���͝��e�F�<������*[���ى����x,Er���v���i��=k�`x�k����[���Ǖi�
+Y��9��Z�gV��\�;�J3
(�߉˛���S�:��"��"?6�9�Ԃy�7�xh��:s֑\4w���|�v��ڽ�f}�
R�R
Ŧ7���#?�}j{���d
�e���'7������4��r�V!y���2���
4�1�ͮ�ƣ5S�"h^afZ��͚��04��
»��Z�
+�Sm4�Y]�_�3�9�W>�ԏ^؛>���Z�p�v�M�#�
���Uxnu+/�k5>dX��r3<���VU��
7g�5Z�WH2������6�N�iE�笙�����rHjS�S<�u|M�o�K�w����}�~��1� ���+��<o��Ju�VW�l,C�z�Ӣ�y�
a�|{Kv:��C�"yO?�B�����t���s�]#3c��)n
woR���Ƭ�p�^���+�i���:�~9�I�w>�R4*� ;���d���ic,�sx�S��Hk�)�h���)|G;
�My�|�ܕE��{�.i5(A#|z���g�`���(
߳?�iJF�N8_�ć>�Xx�;3��w�TRzS��>uUt/���ͤ
�cĖ뱼8
G���2j9��s�r��Y��E�U��5����քq�1�T_�&�~Y�@�FQ�
u���i+*�h�
�����o��V�٬,�#��ZP����z,�76�'lJ�s
�gM�08P��l�ceƏGFq;6<[��p����fy��e�ߏ\V"<����|�R3�}�i��nW_��^���&�,Q�ܓ�j��L9��^1�; ��!,;�H��7�����X�����z���ɢ6��~�6H��ʽ7I�]ĕF}�R+�I
W�v������
yla�����h�'�r������'/�ջ^Y��V��bW-��|cJ����Q�-��V�m^?�7�D��[q*:o��t����I�O��b�[fXl~8�V���H���Կ��p���ڵ�;�Gjٷ=յ�3
����og?
ܞg�B�V�~Zܫ�\�Xj�._���<2�� ��4�ѐD*vG�>"R�{Wn�5mX
���B%i=���o�R�
�P��qۘ�Dz��嶮�9��s�H�<�؇����z�mU��k���(1K�I���0�(&�Y��E�Z{��������
ǤFYV����/B��{m�]�z���\%�i퉷�Xil3���1�]?�ިNo�s��wV�P�
�8�&��VS���skϚ笭���K�e�*g�v�j:��k$�\���ͥ�u_w��5��)�z��~�\�)����:�kxZ���aoPYw�=&3���nOܽ�Z8iqW{v�����iq3�~��9���[������Λ�βV��*u���ܜ� ݜ�k���7J?LE� ݮ����Na�;�ڽ8�j���h�{�5���/�<W_��a}���(�g�Y����w��ӡ��9���$�p�:ӒI��v�Z(vkv�ߑf�8�l����ya"���hxϽ�������R�L�Ri����ŵ;�A���W�k�c�4S�<� z��is�)UR�)�R�x~���j��/�S�.�N��-
+��V���u�%x�љ�3qF. at k���v�L�,u��m�qu���oLuj�XT{������
��k�ф����Fٜ:�eT��L�]�z����T6�ţ\T&i���ʂv
+w&-��:E�Y*S�������K�n�a=��)F#�Y����iH:�uNk�y�Z�G֬�/�ѤAMos�F��{�}�ȕ���AŪ"Q5S�O�t�}(��Rr�,�{������N'φ䔭o`����v���Y�Ë��
�-=ᡈ��e
+w
���e"���a����x��{�/���'k��[5�,�h���'0������
���P�츥*�iO��#%�,��y�d�^��Źp�V�6�
bY��)z���2J/�(
�ְ���A��X����3�
�Ӎ]������չt
k�9���R�]- ����F��fD�e�.����\Q�
+\��
������Y�Rt��ɋ�ٖ��Z 9Fs"���\�
w[�k��(S��p���l�1�,��ӕ�Y%ws�5�7��{�������x:J�Zp����������z\>�M��5�m�b����=�Ԭ_��Ce
+�c�*��ɕRf�[��.��LMJ熖�
Ѯ���c�Ϙ�@n{k���|�=�۸qA�D8�2���l����eA�����8|3ᚧ�p������7�R�3���� :��ߪm6^��X�Nfq���d�ZўȾ��
R�K�Z���$�
��o%����ϛk�g�̀�=+!�ʒ}�� ;�
�����h��b�f���J�iħ��hN�N-�F-�I�Z��>]�j��8
���
�`7{D
e���Wwlj^˗ւ���*?-�U����q at BB���1O������ZUn�v
���7�1�� �����*Jl�y���$kOjN�TM{T5Ur��4H����
��6`b��f�U�إ�m͊���٧~���ڹ$�{�O��n�ّP��5T
�o~�lRN�Q��@�Gn�F0���6S��L�[2��
sis���UQ�S�UkBU�YL�o�
�r7bo�Y�Xu��\��(v
,�X_Ҿ�>�;�
wYkX���X?�bW�4��¡��
��3�z� �5�u'\Am��b�� 92y��2�%_L��di
�q�\���Ez��E�I�hy�6~z�xgLNqF��X�?a����#TD��� afe j����m���³� !yn E�j[��vp9tԡ���o
�xϕE�n�eF�/�,�՜��x
�
+V�ij�ar�ϋL��'�y�;
�
_,Ȉ�>�����F
��m [� ѤCG����F��V⽟���5V^_H��p�F)y��Rc�{��1[JVl-E�]��������.9�X�ޭ��w�lry�:XQ1&%���X�+B2��
Q���ƻ=ꆎ>���*x.r(\�(te���J9��Mc锑�U�M
+�QQ��I�.����T.8�e��`��r�S���{��V9����{M�n^�d�?K|�qLBw�-�v��
��1� .��6��?�������J��(��c�p��x�T���x��l��8�]�^����J+9��F.3ٙU�fsge
+Yl{
�GƑ�؆=`�l�`?�)@��
�GO��÷z�̽�t_�N�
�4so/<�/A���d�GD���Nۻu�h�
�F�lA�G�塧���젘�3�Z�q+O.��� v�
`G�M1�
�
�Se���
+�]L��l`�|�b� �����d��*fs�t6�D6B�Q�=#]̚Z�l�gU~P�y�T�$:!�Iiq�
iV���2x��� �o���`��|�� ���k
�7XHa�)V
��+@d+@����2 ���D�� ��x�t���Ǭ���^"m
}j̬����{ׄ��^e�QN �
�/��֦X�����;T�� �s�q>��RM/�
NH���q"I@�; �W
�%�Hr<$U�R
� ��H�X�����V)V ��*��X�.4�� G݅qc-{
~oEHD?�s��Ť�*�[b�%F���Y+��$��:� q��`� d�x2٦���r�ʪ@!+P\NTլ��� �OM5�~�^*J{�JP;]ԣ��'�z�Y@��鯿f�u����jJ������Ͽ�?�ɔ�M������W:ճx
*�,�}~��
��t�S ԧ_�K���0��h�f=T
�]@�^ZX%s��� 0�-�V����،�l�?X�럪ά0�~�V;z��6�j�����4�f.h��㲎��B/����;;2��/J��:!$h���?��ߪ��2�� ��e
��- lhŀ=?.��g%��p
��*^ �� _f� [...]
+�?�r��:Ծ����0�ٹ�:/O��!9�qx8���e��m��c��j��Z,���$6���5������lo�,{��g�-�҅H�k��Y@��|n�t�W����B�J�#�_�L�U�
+�=�f�+��}˨39��[�m�V���z7��J�ȳ��P�Wg˛,o�:]�>��M�/��#%
����*�?";�efk�.��xDN��י
<�
}촘���eҥ������?���_)�f%���z̠��d��U���F�~�%W�"�/�Q��-���{$�\�jQ,m�Q)�7fkmӞ��yw����[-�����B29.'�&�M�S�2��A
I��0
U�>Ԡd:���~����.�?:���=�N��d���d�>���2(Ow�O�}�Gl�Ţ���U�4M
�bK����LΞ�O�/�o���J�GϞj�F��-
+�����R�;���pi�� ?�&�]���k�)��ݖ�%���k��q����C���k�C�7
i��$&Agy�&�B=I~d�J�Y`�To��`}�
q?���<����9�Y0�
����N� h��
��|�%��(3AiY������-��Os{��mw}*uνd�a���.о������%�9k��H����Q
}9����z>p��N�S�%�&�(���4�v����q���=�
C~>D�t6�O����mv��������zy�%����v�w���C]��:���2o�}
�T;Q�N8ݗ!��
+�qЂ��E3r�[3�\�Fܴ����s)n�F�tk_�C���
��0^%��yC��.��U~z1�$�bͫ��f��%N��Ò~����q��
�:�u������s���їˋk�ٿZw��i-�/5
���E�vobx�ܣ�!�2��ݩ������-خKF�a�L�ˍ���sC�ŐjV�<�
+�(
�A�ؠ��רּ
��.��J���v[������>��V�L�Zً�l���isΡQ��K�B����d=����[9�rO-Ur;Ҭ�\7���sf\{<�_3lM����)˞\����V�����^
+��;�c�6��5fP�L��~r+tO���RW�iߟ2�O��ܚ������R��k8����>J����,lY?��m�tɽ{f���
�s3��ß�rmĬ�-���B�l�=�Xњ��һ��C�L{x7Ͳ�uR#cSn
w�^2�/���i�I����Q�{�a�FRjKW�����im��,�%]���ن[��w��n�e�x�Q4�����6:
��t�=�S���������Z�����ښ7�7�0��2��6�w'�����c�zʕ���B
��>��t���(\hFG�B��Z�?U�J����M���w���Wݿm(�W�H~�WT���j��6�~�2�ؚό�*��\
�ĬP���a��
��rE'F2]=�Q�J_��v�ufZ�(^�Dz��o�ǩ�����W�]d���h9<!�J�^�B�=�m�)���>��v�Տ'���h�,�Xm|
��,?լ5��bo�N��1+��/��+����"�ŕW���U;�|Ѯg����MI��eJ
�eE�����el����Q��z [...]
+6����C�9�ϭ��QF���9�����ۿ�홞+[�G��)'۽X50ɬ魰֨��f��4��v#��L��S�m��=)��TB��>��@�1&Gݬ$��J�<Jv��Ke
+ʋ��B�W�K�
��v0�/���g�ߛ�=�^��*-B=��V\��j�%x�y�}�J��{#a��~0�l��\�*s�Z �
�9�5T�t�OB
�'
+��r������I�-����D�
>�E���Dd�
��K�&��|�s
�!S�X쥨
�zy��[��uҶ�Q�$5�'Ug�\����_�osm�w��o�*z�*�tHM0��*�:�n;���'�l�&_/�\��]iY~��r��]܈�|�,"��Gh*��@Tj,��L�
h}�����!�2B����z�N
+b0#�v���w�םՊ�����|�@9�3��ј�Z���m�}�^��S@XA���hW���:/ʅXҤ�4�:J���Л�n��
��~*�{ɟ w�ۛޛ����ד�=Q��Fm�}Բ
vX V�����xr̻��Xq�o��"7��������\�&R���)�/�ZfЬ�8�_�K�x���䢂C���.ϧIYZ��T!o��j7Ih�o�@Xy�o�a��C��]5o���ł�v�
;��;+�Zy��̤'j��-}Jg
z��
���7��u�~�mZU��0���o�����1C�
pmύeŬ�
�Ng��&*��2}:g��XO�2�
"��"��I�Ct9�: ��&&�H��
;lB>+�̀����:�
1�+=���7=���'���f�*u_����]�\c7�*R3E�?��ѰOe#�76u�k
��(R��^�����<�h�S�̰�U.nȓ�ϋ@��
Ϙx��X�}2�J�-1a�Qe��FGtܤ��G�#8�bC]Q�c�D�����7��H��@4̌K���?��
~�dq�j��G����2a�Nt�V
�Z��X�j�РL/Ӄ�}d����)�6�%]�nG�s��
�^uV�lrL��azeI�P�<��2e{�I��K���C"r<$�ۜ�=l�1�S�u�(��2c#b�ލ�
{0z�(c����������S����D%�r�-&��
K���%уd+^<�F���,4:��1�0Z�=�[�P��^ 7�J"�1E4ɥ@�狆���w��ti`����8���s�FE�yA�9#��kɔ�*<������6�<��<
�~+h懓v�[^~�N� I��]��7Y��G�I��( ��/�{��z6!7�xK4�
~*�38��X�C$(tX4E���4dj�r;��Lx
�ꛚWN�P)&�j"�˔�t}-m��f�cgq��Z������V�U˕٫��M�q˩�V���
�Β�W^�6���l7���ׇo��-ݙ*m
��tL�G�~-��dL���x�m�<?D*�hBVJ�^(;��V�=�)y�/a��ͪHΐk���
��|@�N�O�Ӝtl]���C������q����L,x�h-�M'�'��d#Ig�
�jôL��<�k�>�Ҹݩ/����ۣO�XÑ<�ˮdmJ
�s)���]��\�?�Bw]"�w���惝��F'����g�h;����*8�{f �˙r����kw�.��LY^�{L����-l7k�3�#ѕ�����̡"����'�Ж�~�2r��wo�d
�M��[��%8�r�ͳU;�C�����Y��L����悐 �X!���^���j�)&�� ��7X�P)\TNk3�:� �1�SiZ��d�=�!k���I�>7 �����=W�"ڭy,�M�ox�����y����`��`%|0�qO�� �ʖS�d�P
� ���)�1���
`Z1}�6OZ5� �����5�5�/��#��O��\�$����+��sa��Z�S������#U�x+oi�X���&�{�,O
�=���
+��9��p
ϥ�a��k��
+%�F�K� �4������f�.��R�{ �u�;L6Ŗ��j�hkۨ��S
�U [7yn���tyw��k��ݪ#3I������N�l�zK/S�g �
�_�% @� �]Rh �����}
�La}�╾y�1+�o�E�O N� v� �<
�bc������H�=y}5
�>�K�9�0D� ⎅r�,�B�wh�J{@P��s�#vdA����G�Zw@k ȴ���!9�J�ܧ��|�}@a�Y��Px��f %Z��J�bs�]+J�
�R4�v������;��#�bgNM%[{�E�v� �i�0� �vZ� �bNiKZ�?4�@ P����z�/��<� �s%]V@�˯�
�m��e� �I��8�i��)��`��0
�F��hX��������P���K=٥�BU�^]K�l�YxL�h�s�_��Nᅳ�mџ
����g�����ĉ���K�����]z��u
�����`��'`/
p�
+8��
�|gh�i~pu�M11��|���K�)S����-
���Vm�-�Ĥ=��k(����4�ۦ?��j���;V�g��s��7���P
������=�ŏBZ� ��̀0}߁�� @��*�M�5�/M�����~�
���3i�>�x?����Vj��W�;�^���y&'�ϩ
5���p�G~iϚ
����CL#��/P�|g�Ұ l�0�}0f�ͳ֚\!�U�'�[�|L��v�<���5���&
�j$��u�z+5����
���9:�����S//�P
lv��1ٮ��n�(���U�k?�\Vg����
�\(�g����Y�,BV'Р#��
��J����-��_��������2����Wέ'�o�
{�V{i5Vzb];���jeoN�\�ɺ
������/U�+�F|w2ן�(�� �����2m��wx��bH�Y�L�
�n���g�=z���h$���4�
��ŻT�N����~��l<V�B
,�m5��Ud�hb��Ld}Pa��*����f�?V�.���Xe�2
=��t4�럤:j��X�A�с��A\���] �Ai{>����#�^�^e�ˣ�������>�
�3�F֫�W�@#߹�{��S89� �
+����y��FlI�=
�.;T�#q��20�P�� �¡�_�n�>���^Ұ�
v�=�>��t��J�t�J;E�{���e/ �${u�V���\@�@���5Uv']��
��W01��� ˡ��v�H�N����v
�����2��
�;U>���
��]�\e;�nS�0���Ĺ��?��?��e�3���b��^kͨ^�R�Np�+��O��5q��#Lx0����7o���˂���:�?[;���F�-n����{Xr�v�ǢK
�N�>m;��qh���s�>n�s�y�rʴ>3����$҂b�i���dш�+�ac�����K�\
�����
�"�[�c/�~nݯ�
6Fݹ~eِ\�J��#Gl�rs}x�"=l۠�>6�;]*�۷^�]o��#j�#)�>a�B-
��y6#s=o�s֪;ɶa÷��n<o
|���I�*���wA$����8]U
8,tJj�y'_
�o�&H�W~H_k�O��9���G�����Ķw�C];u���j���Gb
n�j�lAQ�o��ڈ�c�a+����
[��ݻ��������
+������q����w��=�j��د�,�
+9�t�����8X9�U1ٌ`�sZOQ��pPoD����A�
+
+(�#���P���_��֗���զ�f�;�����4��w3Q�����Q������\�M�ᦻAm�
'5�]����ղp�f=�i�s㼹H7Kf�b�C�p�A݀=r�'��ccձUN�
�IQM���К6�?���?�K�'�f|H
+
M�q?6V�v�m�ڹ���{�\a��xSoW�wqk�
]�?
m�a��l�2�R�l��|�94cm:3K���p��ހ?��p�l��k"Up�KIv���<�؞wV�:���7UV���
+��7
n1�
{үSJ���T��B_өl���O�Q;���SL�.�� 5?5��3fw�[�|�Z��B2��U7���6���H:R�Ʃ������mH�W����z�����7H�%+�[�W��d��P���\�
*r�gI)Vv��7/�;����*}�;��q�7�ma��O������m"Gؠ��<�nmm�[�
˚�"S1�p�!��7��R=.[z���l�r�54����#��}
�7��e�
��7~���$-j
+Y�����7v ���^tĠ,V>��2S
�3o�ׇ��v/ւ�s����.������{���-S�Vf��?���7gI��>
`�*�Ґ�M?�:��*
0]�P��d��'ϪzG��.�egv���=Dg:)
+I�J ��4̿�y?�Hx��<�9��cߺ;��܀�b��j�gL��EH���䜡�}ٳ�y������
+�JoU�m���w�o7 uXw����EU
+(y�y9���d5êT5q]ʷD�[u!a����N6��y��$�s���n�X�X��aoOv�c�O�e٠�.Av&�W�
ԅ�֞d;Lc�M�����j_^�egc�L�Q�:I�+�;��'��0��Q����n�$Yw
+�"E��J�,�vk��!�y���� s݉��Xgrf��
Xa�b��ܫ̸T�>�����)� O����{<.?�}B���t��u�y���
�9��ut�V��T���h�o��)�Ie(��Ha�������0����\7�
[˪�j� �h��v=d^
h��/fπ��CO
��LG����A�b{N����L9K��Uj�G�hZ?���fi-V*S?W5����y��o�f.U��lU���r���=aW"ҐO��|;S�p�|5���j�
P=�yM�,3�ndF��ɀ'۠�#�;�\9�Q�+��̾�$W��L֖0OV�
��2�����Il�%AlQD&+U�
���屚�\3��,bGK%g"R�U��gu��l�9��zn��
;��m���z
���Q�żAb�:Q��{��C��sR[����J��\q�����Z����ύ@/F�Oo
��-'
��
+;-�7�xױG'>�1��r�H��5B�q^%��:g���[Г��
��T~˱���#��{!;x�cfR
�Lwy�s��Z����*�30�9���
Ol�J`D����e
o��!vβ1�ٍ���fћԥ� �l�����SW��Z�M
�'�j�!n�
M ��G���Q��w���|��_�x6�H��h#4oH����r℞���؉ �z+gvjO�K�
���z-P�
�h�[y���:z
j
ʿz_� �\�#D��=���
�8��#
�>LP����.�
m�
�UjJ�l^+��:�90�<� Fs��i�{+Ճw�Sw�3xa�J���..���rm��D�^�q_?��1s�X��F��E�/!/�E ��a@-X�^m8��~�8��J�_n����(�g�Jic J�^�;%d�~��K�ɗ6�J���ԛ�d�:�G�X�����>�N��[.�"����O��d�a-���L�+�Kk� ���+D�y{xju�p�<��*_�w�\�p?���E�(WJ_ڬ�j e��bs�� �XN���@��|��6�<�g�����\�
� ��/o�mk��뵃�Z��]�D���C���>�)z�����;&�
WT��-��+����4D2Hү;Ѥ\��e�+�w�}�v.��U88T�Z9
�x����������?|�
Y(�
�٬���v�3��g,�fJР��4��Y�r�U�]��vT��5�Wa�cN�|߂���h�i�q��9��z����(lT^M�^��,w�A�>�I�{�
��*
�{(��+��w&�j�Li�F�[�� ^�*�Ͼ�
4K�?�ʔR\e '��w�w x~� x�-��:�)����� DD�&���P�φ���
+�
�78����dԙUJ�mT<4�~�����I��{+ ���o�H�:?�x�2�)H���m�8w ���+@��2 at V�
+�5�$
% ��U
2
�:?�8�M�U�|�2��S0y w~�F����̝<{�;�^�|�DzbszT<B�87F/]�p� U3~
+n Pg�Hq����S��<@�<�-�8� :�~�^t�]4�> �ˡ)�@F�ť@GQ����h��c6vk�:�^�ZE���
+�27$Gm�O��Ψ̘���Y���n)�)
�=�0�b{]���6��z`�2L�f����{�
�/,��g`K�M� lE�S�� ;7 �]p+�m�m�
��x��NX���
�&֚��qQ^�
�_�j��wn�ı�����Ke�����[�2[����`������\y
+�*;iI�I
އ�?
z��؆�o
Ȫ>5�(��= �,K��]@�zO�� �D9sO�]�O|LUWYl�Q�
G
B!���`b���^و�-A���ͪ��_:�O��_��J/�d.�8z/@��E@I
�D���69lvR�"@��q��" 9�Z�\��� 7U4�N2I���>�Ӗ��K�U��+h ù[��0-γ�#kL��_
��i��!Rp���4�����?q�������'�"��3
PB4;��� �J��#=S�P@��*�{\�3��v�tBQ)��:��6��Z0��p� ��E��!��8\��h6;߽�i�i����OK~��U�����U�o�����G�]*� 0I2,�$��ҿ���h�z�`<lt�vT ����t��}i�|��d����RT1Є��
���g~���^�j�?��;�O�������?9�Q}��ܰ�7/���2�o/�g�͆] p^���;�@L+�����F}�HI����}@vg|�Qo~u���������fN�._�7��������0�d3�O��ݫ�K~��R����y7�M2����1��Ö7�m-�îK��|��_�B}���o��:�
u�ѷa�+�)|�C�39F�c���w:�EDs�X71�$�#\��ٚ\,�ni�\���z �]�l�t~K�E�
(�2��8,Dv�L��,���M0��b���D�������1�<.��=�4���8
�ӏ�o��v͝��A����%�PZ,
��BM
�y�ݝ��xyQ,�[Q)<�gk��
��
����;U�n&�f�8aN�k
0���
��Ht�?I5�χ�ֺ
�����'d��y�=T?���J�ƞnci�>-�s�1��Ld�[�
��i����&!��韤�/�����[v�Z͡�q��Hk�Fv��9����Ȋ�����K|�������ߑ@��S�OW������\���b4��
L�H�ߚ�~����t���P��Ch<�
"e��])��e%��4(ŗt�.�>�y}e�^�
v���O��ι�O:�#ٶo#
�p����s��~
+�q���~�E!�}�-�cW��a��
�
�NJ<���5T�
�W0 � �*=J
.�%q�K\n�k J��v��ʹK��{�ܩ�;���[�ʷ�W��?�ܗ3+��'���z3������i�
���E�&
+L�tj�7S$�O2�$B�[@m����c��n��{�W�kcM��Z"t�Z풇���R�7�ֻ�퀇��3�d�����X�eP�Za5��
�iA
r�4Jة��a�3��n��%B��t�b
�c5�0\_J�s��9�*J�h*)��OՏ��,����2D�����88v�ƭ�%��v�6��s0�[�ɀii�XlAѦ�4
+�זNî������\l����ePO�פ�]^�{��.�D�b�+�7�Mg�ZP��5!_�m;�\~��϶��F>oi�N��s��&�D���udڇ�Kں�Üz
�(q�36�-hV�5�q��gS�=�z�z�j�;rº��Pp}v����ҝ���
�uk�ɵU�k�
ׁ-�3+t���1�E��i�nħ�f�]��o�����׀�>ְ�>!*��ԟ)z5[�
n�Nma�۴�e%j�ɸa���s5�'Mg�
:�ե�8� )��Rjg�~1y֖��WR�����W-+ۖ
s�x-��
Ʋ��Bn����UG�E��L*�v2��!��F�>W��%��
(�_�
?i,��b�i}�i
��@�t${lT�⺾om������m�����60��=n�;���-\?([9�@���ƚ�e^2�J^3*W��=���X�jW[~k���d�u6�o��7������+��R��iɟ�k(���I֊B)E���� ��H��a�{�����g�y]Nu2F7N�
��
��5
�*�\Z����[3-����1`�(���E��%�~n�igk$i]r]Uo��V��P�{���$3�?��J���E�
%H2}R\R9C�/�@,������C�6�F�Ia�]��ow�e#��U?f6g'�T� Z�͞����Y��Sއ[
����_���+���
��B
+�2��_;�DV��E[��
ߑ�L�K��<kDi!���I�;k �,��ͯ����
w*��T��S�L�0������C� c�����C�4��LX��r|��;NT�daX���Rc��^N�U��[Q/+W�qI��Ljd*;J\�v�Xk EؼʦP�
~_i���5���Q��\'�L�����}�RY
�u��n�a
�Z.ő`
q�M&c��[-��zF�#������ΉםY�Xo����nQC�cv}U���8�o�+W��Q2��*�*�X�*���袀�D�o��M[�N�e�cr��
�.��S� �-3�bO��w+�䕗hu9�i�QV4�V ���'���%;���e] k.}<_�
�]S.���Rg�����i��C}
� >���k}(Y�q,:�4<np����'K�7�qǰ��<��ay
e�'i*L:�,��
}:D�#+*��e��"��
D2�[M�rq�= mQDI�h2�8�
���-@
+.��o;�P.���N���5;QT|
��L�+�hO�DȷD̝Ie��X�����
�܋�V^��~:�@[��v9����Nb�Aƫe@��
�,��w��\�@ ���2T��I�6���wp�wM�&�ý}5[p$��J}�xg��I�L�剜Wz��<�.pW>wn�6�ӿ�I�3y����5�z��P�IF P\*��x���I%��H���;�8���V=�qkk����E/
k�^b��Q�E�^�o}�oVѯN�x�4�j��z�pX�T����#)�e��.�������X�k2/X�0 at hM�l����mC.�ّ,�7bc_?D����>�]��n�8��X����
�iN���u@
���qC bǰ�7
�S�o�XW
�`�"z4O��������`�����Z�gEs��O��w���z�ݜ��1#5�j�Ԣ
+�|���)Q��%��H ޜ�.�)�yb�}
�W2)�}�'Pn�
�utD|l��{��a�������̼:V��Q�
�a%wj]*z J`9��)���aΈ�~�t0]/�� 'r��-��>������(��S�#� k��N�è����
�a�s�:��Q�TJ{i���U?����ê9B`�x`*z7�V�ꖭ�$(��ܲ�.�o%g�����@-&�+&x�P�� Sr��{��g�]����X��v���J��I~�9����M��t5q:�S~6���-�z��-t�j�
��
j�6�˱�����
�֍r���2^LƾPl(�Y8$p��7Z���O�n���?��tMQe��W�/"DQ�N�AQ�;��^�� ��j�����OY&_D���
��� z�F&�k8
��a_7�
ܘ�j��K[�j֏~����#Vq��Q�8�|����hpHV�J;7)~�����haF��@��+@�)0B==˹b��=��.�=ˍ{����LY0�W|�HˏBK^R?� [...]
+��~�Cn~���mY�P����L�c�fQE�K���Y�;[�;a��)U�~z�̏�e[[@�[ce��55{m@*W~ �:�X��2��ß �I]b
0�YM`�|`��`
+}K�n�qW�5'����҉y�&�_JTn�+v`����1����l�x9a
�� �
z6|���t��4S��׀mIM��v7�|
�8V<��$O���#p����i /�^��
���
�Eĸ �[=�3�C����6�O4�v]=�
+�c�
+W�
E����g��)},�������)ym�_�,Ojv2�:X�l���
����4 �
�����6��
+�\
+�а� �#l��1�O@�
��x�F�H�d���F�ќ�)U�-�����)m;�G1��yc�^1�
+6#{O{�gv�
R
+m���\h�.M�L$
]��d�H3M�ؖƀ�u�1�{@��G�j:ƚd�I�U at RTc�$]� �Iq1 kH��r�}��6hP�Z�|�)�Q���$<�q�=���lC ��
���q��Si2v� S��X�}�S��rĴch=@.g3@����
($x�}� %���F�QPe�
c2�����C�R@iP�g(���H��m��K����K�2�IRY8���ԍil�Y ;�����ա�\�֊+�4 �+�Uiu����{���C@��9�
����h�� �;��
�A|
�`�t/?��>�_�z�J1V^"�+@����]B�(����/cʕ���7��7}
�WB�j{d7o/��"��lu�ִ�
~��
y��q�Rį��9��������)��L�7q��vb�#�r�
����d�[
�|3 l�x�q� �Xb��2P�smV�1oC���`��=E����<����N�k"���[�O%����{�+�&N߿��v�\����|W�� �]�}�� �t
��@
��A>=��(��W���(�g�u���������Ze�S��1����䇤��v������+�&�^_���a����<ਖ਼x�� ��L ��`s1N(��(��
+J�$Q�P Ph���
+�d�J�r�����Dr��@��<���7��o �?<�����3�?�����M��ȽO��T�
����V�0����݀�� ��t���&�'���=�s��*��)*uo��W�G���\�����x�W���
�:�약u�MY���
+�s�*�_�m��YS�kz�F���GO�o"���:��Nޞ+��`f �<��;�o
+�_��� ����.T�'&[�����>
����2��f%$ۈ�����9�^��]�
��v�00P8�����r��gSᶚ���nj��y����xk�ZL�+mt������N#���
o��'d��/o���5;��s=
����,��J��ʃ^�_
��Y��k�3�Q*N#�X�"a�<qҤ:�V0c��H+<ع�E1�p�7X֧����*œ�k%
�־�,���\$��d\�Y�߃�m^�� ��K��d��&�"��ⰳ�\?���M8�o�hj��������.<y�
���|҃���
���
�����z.�K
�Wށ؛*��3��DFd�b��ld�ŷB�H�t���P������J�}��?�K���Q�����))ǧ�4��~U� >Ϊ���[#~{t��������`ڇ�E/� |S��H����:wW���u�׳�u.�K����d}�M�>{&�_`�6��VPj��s4nz
7?3��
Mi��AmBk�K
� ��$^�
�D�D��؟
=�Qv [...]
+e�F=�R�z�?.ٟ
�oZ�x�V�D���o��]�K�Z��uO�ݯ�6���p�g�%z�(�O�V�j��J��0rh�/iߍl.p�-=���¸��jT۶�u��{'��
��A�y;
�;��m9U1ˎb�o�sY�����`
�\9��'+i���O������l~��s�4
�CndMY����v������@�\v7���8^a�;��j��f�w����N5P�~UL�&֠RY��e�d���cB�
V�6Z���f�
+|
L��#<
�dc
���]IɊGu�K�2y[8�G��~�K=Y a�!�q�0��9��7��u?�/i�M�jP�U1�b��
�-^�Ot���zj&�~~���i
�U��2"Oȥ>ם�h����G��F���
&����&��P��J��t�~�x��["^�5��~|Җ�抖�
Z���]�g�OwR�����3?s�l��7�U������Yֈk̰�
��F���iQ��Us{��
ޮ�rv4T.|�f�G�ބ�1ų-˯N�%��Z.S�=FJ ��l_Hn�Բ�^kvC�<��}#6���^��^��܇m3��
*F�83i�1�F��;��wMZ'F����K�Fo+9��5���e��b���a�K�ܒG�t,�F�N������ݨ�Y���dq��
�奘��@�����:[��C{oI<�v��q��hV�/���V�̜_�J��r��(_30���I�j��l��ʗ����5 ފ�ͧˏE)W��!��#+zG�&��wW��c�at��t�Pt�h+�
�%�y���=c�)z��>�=��dK��o7'�x�
�Ҧ���g���**w
|��t��}�iZ3�9����[�4T�zu^�?[�#w���
ޤ)9|I�c�.E�)Yh�W
,/��$l���@K�F�[�A��X����
����=t�
��Fj����x�B��1
��U��@z�����
+O�bE�Hߑ\�y���D����*��+��
�ߡdh���m e�oЌ�ś_�o����⑩#E�=�
{_,t
+���g��k�z��'��C�O��
��<��2�r�i-�c�
�EM6Ov�\r���'�̙�Gq FZK��=�y�!zu�q�iJ3ĴK
��*���@$�����GQ��N6E�<.�ӭP�
o�~�`�dx���������h�T�]�m��2�xƚ���-[0�tP������d{��T�C�t�&�z*
@혿_���{[��\g4?T��=(eO֊KG�~3Y#�~
aw�k��
��y��Uj��6�<��u~�ԏ�rԾs.�n��P
kR����
+�\�Z
�/���uq���r�:d���4�
қ+~A
����g��N�LaM��J9���ji��֨
�
��vg]Y�`M)'�m��C*3��µ
Z�Ë�|����j�M�ˬV��0���lYSc/�r/����
.E�E�"Mu$�:h�&���y��;��
)�����mJ;�-�͈[Ͼ��y�|� c
�|L����jV��dm���"U@�:��R��n���nO�[����/ɲ�Wj���M�c�{H����w���2������Z��� ��(y�M�߄�b�vjDN��Xc6�`�y�G28��V<� &�l�g|�
��h�#�Za����b㣭֮
��A�d8�芛ϲQ<��jA�F>D�og�M���Z�W�q
+Y����6M�>�م1��ւ�gK��B��ۇ��,�RT�S�KJSߛ%:s�O�B�)4��U�l�}e;4��
љ�|Z�b�ՙJ/UM�W�jw��P#=*��RG88�f!����s
.�I+��4��
4T)�8��Ky�$
�K��Q�!!
�_U
��^N�G,
�<0M�������*WD�@��s
�De�[���\mY�s��Q���#5g��u/}
1�jW�g*��b�
���J���}$n�b��7�
^�U.�t�y��u�xБ��^����[�S\��i�F�e����gs4g^�H��� ظ
r�L
ɑ�]>��'$���r�va
V��fҏ�"��T3#@�E��˗F��b�㦥*+�x����+��;/����^
���|z��Yt�t�ީ�5[�v6���1
9����d"v�]Gpk�������q�٫.�ӻ��y{|��<���XZ��Pu*�2~j�3����=R���)}�[)}�J�a��j+�*VU0\���:�����#�;ģ×q�����aH�`R��B#�TQ�ts/"��)f�^��A��e�I?7���)�넄>�~��$JM;�]
+~<n ��4@�:�-k� ��I��
���A�@3��;�E��gQ+�ʤt�}_��[ =��1�|/�B�w��@�֨SH[�3�0�)L���3/e�6[H������ʆ����,j t1���yw
�qh��uFK��r��/z<z =9s���@W���u���n�y��8�
P{��E���m�T��x�Z!?ʝ.w�[t��Ia���Цe�(���c��
ܦ_сOU�V`�(�1�5�ՐV
���d�nj���1�, �C
`=�
c� X�|l@�o
��Z�1����Mښ�cTo�]�����T�v"���Ǹ1�����ԯx�������6����qvR��#$��Z���� G�2�9�
+p�+K��.��M��^�-ު�b�? o3X�^�!?k����a�1�)�כ<�ݒ�5xŽV6��>&(g�[�^��vPX�ʼ2I���m͟|�&Z�k�S1o�G�����Vxc���
@��j�Bx !2S@�
���<�C ��.�pm at xP?���-)���c,<@8�5����"���JJZ�&
��0(�%��
e��Em��˰�V������ 11�}��M|U
�ԾH<�$_ i/���G@����u�k��(�� ���ǀ���1N w�2 �b�
�-
P������� ��p��PP�����0L���
��Sd}��J������+FW�u at .�& O����2P�^P��PMn��$:��
��o�@�'m at 3�й�
�l�4J�1=@c��q<��L/g�nN<j�O��
[G�{��M-0dώ����f at 3���֖������d����8}�_w�K�L
+�&�S����%�,�6`V�x��zm 3v�8]fBsv��3+Ɵ��e�U���b�S�r3�SAi|��~���>S��9q+�:��%5}04\��
'���|�
�%��'`w
�t��F�������� p��\�blZ��ז ���1zd������蘿�{V����>�vι6�ߤaݟ�6ڷ�~j�Z�b/�9�:N<lj���R}��<}� ��ȃ�sW��u�×1�/��u�L�7Vx�j�y4�D��b�&��F
�,��T�sOOG��W%O���v���G��k�Mb��1������L�G����Ȳ=P�rP<,aP<Ɠ��)�~,��y�����@�����&�����O���?ջ�������˖?
����7ݘ
(=߇dz��2��6�g�ĥ*�6�m��[
��~�F�i��u��g�lRP��Q�\�K�L7��H�6�Ȭ��8�D �D�H�]��X{u��Ex-s��K��
��3��i�$ac?Y}uP���υ�"��j�t�Z$
- [...]
�G��k�����;!�9
+��z��ú���K?K�́�h@�_�x���
�m�)2��|ڦ�n<�
U�ٍ^
��R��k�U��p1�c��{�P���P����LfD� dub��ڢ�u(�;����w��'����\9���|�Z|�
���0=���y;
��q�lo��z��ʎAoZ���jj�
"}�&n���Z0�[���]��K���\��XA�/��m�)<[��̷�Ԩ����{N�q��
þF��1��d���6�����p̔���C�C���3@���c� s��u,�l�ܴ��/���1��gO̱����ߘ{+�wKxIioPV��gb~Wq��>�P��Fz
x3���+>]�!�.r
+�$I6A��M���D���ͻ��gwe�p��D�?�
�g���9�;To��
+��{�
O��f�z~SM�A�
��i%
7�� >�
�\
?��+�|����뿒Ve�}�}
�g����v!�}m��kG�1�$^�i<��'U"���
��˲��7�gxM5��6�F�h��
�FU&��7d����:~`���˛5�+}`�Q���x�r�a��}�7�6��̪�:\W���b
�
�d�J���E6URn��Z��B�i��b��yH����i����i��ڏ|jd�k!�Y�!��ڶ�?�����9��)��oY�
�0����m�d�����)X�-9�h�g�Z���5���A��
+|�|�7�ŝ�rͿuGh�:��m;���v��4W9�5W�r�����[���:�[_�+���j���r��cP�
�i�={+k��_�%g������DZ���Xg+��Q�N
8}僢�PY��hCsKjM=����)ۉr��;ů�?J���mխ��ZiT��6�T)pK4�R�s�֮�S�
j[/����V��a�0?��m��J�2�k�
+�m�F�#9���5���uvֶ��]s��K=
���0�'_a�<����g��-�
+��*+�s]�ʃ�ڗ>��D
+=�(A�K�4�:Œ!"n�0�R6�X'��5���;�;+�kw0�a��I���H�b
'r��e9��pMG�v��F=�]Փ����'��N�J�د�Ac�/���E~!�K�
*�MuDRgmFJ7����ə��I
.���TX��@"�lq�.��F��*6��Y���7-���_�-��~����w��+sg�v�T�I��h
�5:��To�ʅE��]śɹٱ
��P����'�ض��77R�69�*��^�џ�X
ሰ�%F��s����"�+u
+��p^�U��wg=�L��"�n��5W1N��m�L'�e�V�M�=��52���1�Ƹ�5���ڎ&�ҍ'��G� �K�_��ۨ"���+io�S�+x��۲c��H�^�F�W�cqm~sՋ�n<�=��l��>+K"/lڕ�@8��r�<����ĩ|)�N�u�5Jn����E�o��sun�o�m�ټF�džFd�u�è�P
���(4S�C�)KS�-J0-Kf�R�Uj�[�o�7��K�/��ä�g�q+
�-��)�\����f���#��p~+pi��Xc\o����;)d��v`�����H���P��^���oq�K��{���9�G�������(.˪��C��+���䢈_�@=�bѓQ�p^s߮���/J��~�~^v�1�����-��
��q�|�l("L��8���f�uj�j�F'���b"�O�@�G�l
�)y|}�.8�i�=
�m��/*�s5Ҏf���D�)���]Z8�.:/O�M�P�
�|��
+|/�P��ܬ��é�]����M#���E�2UE^��i��]sOj��e�ƒ�)��Id:�d~&�.3Yų ����b��]q�?���%�ѣ�b�CUn��ZG�ey�bS��ͪ��~�
+
fH�K��=��懽ˍG�";��6GWL˗l��-�4�7:Ԟ��(f����2ؒmL���k"��� ��~�1q�|�`���1���� �͢�U�� �2���xJs�y���ROͅ��#�-:�6�4JՕYǕV�
+�/�C>����x�q"��p��|-��&�ݒ�b��<
�:��#��r�T��ffk�?�������PLY
�BuTm$��3�J5�2����XH<�
�,��'x:���=7f�7�)��ocؑ*��+� �Zl�C����R>5k��g�'$Mq]�<g�<ɛ}����,̫�4�7�O3�Ŕsn�Aa9B�N�{�-
H�Dz�)3��j��2�f���$��k���8|�*J�� ��Q�vc�@�P��B��ꨜZ�:%[Z�� VA
5?Z��Ś�b���4�&I�{'���2!��Z�
z�&j��m�
b�~n�:Mr�dw|��uo�|4
$�ʕJ�߱����O�J�w��?hz��bZ�؍t}��;��5�`�C��b.�X�#�Ñ[�[�����u���
Oy�!
E�������f�A'��6�v=G
+�(�n�I�
����L�k���K�.i�;�Y*[uJq-�u˭TF8F`�r^`v�ҩ
�SV��Z
+��2��Ag1�{A�G������nA����,X���hZ$
�����˔(L�n8R�zhv$�N!����ô�ti�ЈpkPy�S��a�ʌ>_/����v�7��!"F[�ֈ�����y�܉f at ny�@n%u�b�~V���A���H���H��N���./
+�3j��8��Dq
컐O�y
�<�,�["��hF(�QH��DJf�,
K�
^T�(i+�܌�b<� q�c�- HM�bl� �W<���(F��~ H������~U��rG��
/Y��H�·_ے�W���ZZOT}��
<e�y47Ù
�M�L��E �=C�%Vq��z\��f/%��=����1�C�"�2��
P�J��3 ͓Z��P�X��� J�
+ %�u�©Ќ��C��}9]�ѝ}u���k��fVd3$��U�(��y���4
9��a3���Z�! u�1�y!@g���pM�
�>�n
e
c��}����v`�T>F��
�Xm�q�w/�o�ڈ��tW^���#J$��}���)H�X�6p�vT�VUш�J9��/�Lp��P��%
Q��G`*ՑE������ lͶ vi N�S�`��+�#�حRx� �{�=����9�C���5�r`��&�\/k2�/�F�B�{�q��O�83+�H�ij��bYX�s�n.gJ�e&�$K�#r g-
�R ��* �`3ѡz�Ѩ
��#DV[�_ ��A1jd��
ĩ�ǀ ��ݔ�����ۺ�sP���]�u����e�+Ϧ����ա7��d�{��`�k�H#S
+$)e��B\�c�*"�)��@�
+]0 ��� 1�x�ؒ@B�9 ������1�R�&4Yt5@
+P+F?���x3�d� y�v,���Q��>�$���h���!U@
<������s�h��U�&�V�D����߆M�_r"�~����o|��p( ]ʴ��2
# ���� P��P�S�n��5k��<��@�m_e�y%i���u��iDt
����U�P"�JB��um'�%5}+�Q��7�
�U�~���H
��~�
�7�
0�����o߀��T�Z
��O�)s�T9��
=Z��?e4
�D�)=x
�
�Ӗ�b5'�ˇ�5�
0{
�K�����-�'��?�����K�h�I��_�7�Z���=8
��仙\����$�^A^ĸ=G{���ܩ8�u
��J�!
'�mv��/m��m�Tv��ΔZ?��k��e��ќ�{�%����.�l�$���
�& �&�w�!�<atD�[�&��W�r���ķ
]
�%��
}ó��!�-H˔}A��$6�oS�(��8�$��FL�_���($�a���w����(F�(.0&��ť;�{�p�űT��2o������)2��:o�7��m]�7�s:���Q�@�q��ݔi��$#\G���
���d���|�E�l�7�t���;����F�An�ҷ�_�ߴ뱋�F��m��F!�έMn(<�߱�_�
q�_��>s��m�0�թ}�7
�(O ����������"�p���s�Vg�����95?��d��� >k�c7�h���
�mg4���|xk�wC�}
b��F@��k�y�Ǯa_��EL$)��si�Ct���:\�Qk
��j
���lZ(ߦ�|N
c��C=��sm���}�
o�-5�3Bn ݣb?,M���>4�*=Z�Ad
���t��O��vr�
��P���������_<���'���0���������wZ
SsP �U��/0�w�����C�$N�� ����zxm�H���Xe/��]|
>�e��`�ZeKB�֫j-�ݫy���䴳K$U�5U�Si�h�ׄ��\q���C5+H
8��KV� q#�q�� 3��ur��ŗ��qq��{��j�[B���o�ֺu�Q+�IKx�so K
O��j���f����l��*H��s \d��T��yөm;�}�*d�z=1�&H�4��C'��'��
��r��G��6V?��P�z�^���1���fBS�frcj̾I��UgU�����>k�
jѪ�]���.�u��ӜC7�L�l_�vt2�@��U�5k`m;֠��X2n�L�� ~����%�P��H���@̄Mh< F�v-��]a���ǭ�8�m���ˣ5�P�W�X����/I�Ϳ�z�j5P��9�����6�Ϣ�au34��#�L���k#j=(Ê{֯���龾�C�>���K>M
��0�#�n]��
Z�o������iT�
�M5�ϧ�>wk�}ޖ
g!3���f[*�ELhM��RxOpF�,r.��ʷ*:~wkڶu4�}��Pة\��V�s�Q|si*�5�)���h�F��
'�
:y�!�RE�j�b~f嚩�j� -{���'x�X����qw�W��Eǯ����^^�+�S����WΠ*�")����@@� W�r`�̲�
[�
�2���1
IakP�T^iH�m?��{~�
�W|1�U"����?zK��eZ��
+���EIqsx�B��_�5�-6��C>T��d����\)����m�ٖ���(?���<�O�����A!t�Ҵ]J�mb�Q/��[
����٫��="J1��@�x�|y�u��e��c��U��fI_=���]
����,^9�<Y)@�^��*?A]
TCO�l֣o/ ��6��մdp�e �|v�%@ga5@��#˙�v��c��A,
�l��
�]���ּ��}���1�{va��9��|���<��`�Y���+�U*%��Iʖ�{̡�t*[�aw�,�ׄ<�z��Y��,�
�J��X)�����(qi�G��>�/�n\t�ƢpT�}��W�Ҹ�#�
���
Gȗ
+�*7�K�B�kv|�S�V;qlFh�1�d%��%�}�2�Z��Z��M��Զ��ʏݳ$�l��&ԝ�2h)ʹ��dQ�6R�>ZA��K�Y�մb������Z���/�q���a��}��Saǽ�ޝS�]����W\��/W��>��Ov4.Q��,�#j
n�K�u����i�},�Tb��C+���de�*��,���%�
�l&W�+�ȸ���am�^�J�|�(�y��}Uun4lu8(����z���}�DY�� �j�vRc�Ʒ�H��S%�m at z��!��s��+f��M�F���7�V�F�
�Q��&z��?կ��4 �
J��O�jߢ�l�C
��
�o�(�bm</u�<7z.E��
+���c>3Mze�]�ᴐڎ[Kʭ�N��~�^T���y��~.F�%���?���W��ݦ�*Ν�j�M=��:�
6Q�W��V���Z��
�O%��W4�\�a.����:�9��c�<��+"M J�r}Ӡh�_#��e���>q��QXi;��x)��b�}%��ٱ�ţ�6�i�����E[�
��W
L�3�F�UZ�ݙ2N\���ey<���SveY,\�1���"��K�K
l�͚��:�4M4�
�ق�
q1�a �(���ax ov��m3���{�����F�4�q2
Rٕ�H��n�q����=�)ZDv#����;o�v���r��pj\W-ZC�2���_�]�8�D���p�2�!�Y��0UJ'�
���o2��i�x8�:4��<
nB +w�:�?�
�62/�C�L��ܲ~:�lQ �Ͱ��xd�vJ��[�7�K�9��s���1_(�Ӛo�)�YY���7�"��
�"ٖ�;�J�!�&j
��� f�4�T�i�u2?D���c�}�Ha�2�E':A��C�C�* p��r
�9����� YJ�&�m�`��yf��3�P)���
+4��.$
�ԧUNAҒb�_�# �1�7d��X�-��d�T
�x��
+�G.B>��86םt
�9�Ԉ��c�����B'���?f�܊��mܿ������RsB�=��92~�`�o=��s^z.�$�c*
9��Z��T0]-=�͐��'��
"�ٷKj
�t�c�Ӿti_��y�����H�y�d��'�f�B��2��R ��)zx!V�d�+�{�J&SPJh:�Vh�EW���ؑ ��i)u�vRi��q,� ��7 ۆ�rF�� ِ�cl�R;�d��;ƚYW6���im�h�f������]��A&�x�
+7���,��X�>�䙤P|��
Z�)$�?����.e:9���'5��p*}9a�R<Q �L�1Je���U��ƥ�jr�ar��q A�5��2��b
rX%rx��1�-��]Cک�u_ܜ'n�����G.(
\� �}#�O�b�4Ȣ�2���5��i� ���3��:/��21�:s��Qc
�S���U�����t
+r;�+K ��8
c��ܡ
�{LoAn1�?��⏯�Fe���j�t���Z��B���i|�Ƅ�Z��H�b�k� �N�����J6 at r5=��Z�q
+z��q��� ���H�H��*�X� i�V
�c��G1���4@��<@&X�"�q �q HEb
��u_�/�U����;E�b���5BM���y�շt6��Z<���
���2H�����x�c.ƫ�4;� J_D��h
��h���DF1���@=3P�T h�f�F�w����G T
���� +�`���U��N!8���:-vAr:Moq�����2�ܦ�"�v$cP�t2
+�@Eh�� �v��k�w�,-�F&��g`5��(���,�{0����� f�K1.u�U� �L�0�I��T����l�W�5v
��Z��
��N<&"
�����*"x��^�/�4���om�0�H ̾���敖����4�sx
�V���|Ȭb�.1�i��5:�Q�� ^����6\�� 7�u��ǩ\IK���Dž�#��Q��d�Pm5k�kEE�¤�[���L����)F'�os $��0���'����Q��vQ� 1�f?�ĝxƈ�Lb���d ����@,�4 F)!�����K���Z�ݴ��J_�?7wm�n�C����*�ZE
�ض���^��6�/���#A�����#�&N�D�LT�6��6 ����&� ռ@��
+d���2U�1�/� UȠ�"�e@��(Z�����,�x�Y
7�t�W�k�U}�$)'���Y�U���
:�
�GR�������Mw�~Ith�Yz= ��s��
0x]
�j&݊ ����~��D >8@���ݏ�9$�
Z 'I:8�k��,�5j��e�C�W ����+�8����.���������8z�'����$���:�2�!`��
��l��� ؑ� �*3�ѹ��yI�Ԥ[��
�5�{ ��W�w��+�'I����o���W��+�&Z��KRF⡮����K���/��<
x�T�;�F��o�p/��o����'>nj��gd�ΰ����LZ��^?�x�9�u��l��:�ʽ�<�"���ޟ��7��b�
��|�h���U����*��(:�������G�����ʐnHCԮ��r��k����;
�a{�쪝m��:���W��,Ϧ�E@�ϰ/�
<���m4��l*l�<8l���p����{�
z�+��
����'
+!�tb��C���_%�Xe�q5�aN�O�yd?`�ln�
�m��𩥟��ѳޣ�!Wag�b1?��La��a�@��xk\屛}k������Z
���
w{����;�j(W�}h��z� v
;�n�7N�)��w��
�)5ެ�qsq37�H�̓9�
��HlΦȰ����!<X����k�m����P8#��ӧ��tG���پ�F��TI=x�f+�滫j���7��q)��<?���y�>w��6�R�x��uc4f�@�|��(�K��!$I_�/Y�
�ۼ8���u�/W��n���N�7�� �*awe']|���l��1���~]��v���o�G+��2�ޠ\'��I�o��^mL�d�o:7rշk1��Z,��q�~:����g+�dðd+�������w���2�Og[-
j#S�w���H��
+����
o yn�:ͿV�ƴ��F����g����t��:~��j�v:U�n����DO����wK���.��_��&Uo�`Ŏ�V"L&N��
2�-��a��TS�{c��AÀ��
] �B�L"�~�
�!ԶͫTsه�
���x��鰏�c���k���O�@yj
*���Y�f�d`�U�i3�T
����
+�y�X���WLI�tRe��I��NՀ�l���������j��3s<
^;�=��@�پh����U�����
��KX2���'
+����� �R� C��@��Şr�{�S�fڶ�>h�
A�p�˫�I��z��qL�^�A�G>�����o���^���z�*|j�5P�mo��(�um�w!H��
+v؋}/��4��(���?`eV֮]��j��j�\�+3B n&3���g���V�Ӳ�b�}
2Q����s9�e�
+~���9d?eM��%g*���R�TwQ`�~��.z�q�8*��x�
ӆ�^����;�ϳ���s�Y>�wO��w{ϋ�IS�
����
��Ƨ9�;>m�ʚ0i���|P�d���Ӛ�ί��{Eou7�#����ĥ0�%�ǂ|`JP>O�Xn�-39������.g+�TO1f��Rρ��f�B��*�FebN̲}=c��֨U/vYS�e�b�)���[��IWRj?�f��2-GE-_�/|ZP�U;
�A>O���6g�U�]� ��d�}��"7/��)��(x�?dSW2
�D�YR�M~Ji�(����u���C�ʣ!y��$��q�k}n�>�k>
$�:���Ã(��'�"�d^�����*�95�s�y�d+���E�EY1F���?֚l�]�z�gy�f:��2�n_�t�JےwL{Ҩ�������iM
�U�F��ݱ�O�,���
3�JO�b
�{��~�2��J��'�X�ɿ�;"�&�dv�8|�����vB��!&kʐ��ג�t
+��g��^I�˛|Z@�%iT?֤4q�D�z�E�IL���VB>_5��5�xu���m�e��q(���u{�e���Dţ�-e���
����Q�:P���5�勷�V�/|��%�cR9�I�:�A���
�N�~f��5��m���]TJ�|J��<FTZ�(�gH�s� �Z�ƫf8���|��Ta{��g��6r%���e�Ie����F1��
}z`U���
+��
館;���
%�V
>e��
2Q
�)��VP��-3xK_��BJ���2��'>��8�՞�kԁ�<��u�O��u�r����0�̲�Sf�,�dl�6dR��*�+�-�zﴔ����}�(Y+���iew���r ���[_�S�=f�x��v��e�$4���j(Y���e�W��C�F%y�K����%,�C_H���/Ì��9$థ �M*�[ƞV��t���0RR��Y���ߤ�ҧ|��S�ah��x��9�O�ʐ!��5�o��
���
ft���,f�j[[A��b�h��q�<.���ߗʺ�io�Q��� �g�$�mnp��8��_��¸0���r����$=�]pZڠ,5EP��]%G��z����{�s҄Z���m�q4o��C��0�=ϡ�%�F��x��("�{�J!'�Rhu�Ϥ����
��B�)�ٺR�e6u��Qb��F�$ ��6#�j�a��+7U�
��.寕;����K0���IB�,�o2�K�%
�
�����2��բl�~6�H7g��A
I÷s����(
+��3��_��W���-�W�J��Ws��h���z
^|��
ꦌ�� V��
��ot�ԥ
됯��!A�u%�
�G2���]�X�ƈkWD[�EMQ�ҝѽ�`�N�;����Ը@�,�����x5��{�D��>&��;Qг\3�
+������qo�*� z�H���L:m�8,l��"2ϝ�H=�[{�Q����t� ��0q�Z�1RY�����F��F���H�7�
I ��b���:�
�3��e��LI���
���� ��@�-�A�z=���}��E�lj�;/;]�_xv#[��bf �)K�8�� ��Ǔ�i7��D
+zPw]C�������Ǝ��B�h�F�Dօ'u�=��
���p��,��~�% |��ѽ�L���b�2z
e�H'M��RmRK��F!5 $_�P{;/��u� Z���R�bz<d�B�cyL�lk�I��X�C�
�Ie�՝(� ǎ�jov�K�,H��NbE�=���~�����
+AB)� b�V+Z����\t���@��P�(���>6c�<'��I8��\5��\
C�~n76��B/J3�]
+�#�r
�I0紟�9��@Y$t���+�@�3�/J6,?�VBU�@�����
�R�CYr �'�����{
����@?tH}Bٲ
+
'� m�. m7W�BE���b����о���ez��k�e�~�d�����e'�E��L�Ǩ
���]X)����sc3��VwW�g.�ҳ� ,y��$�P�y�1��Xx���� ,ۇ���M�e
`Bi 0��rJŀ�TJ�}z��$«�ԉ�KOC�
�� �
�7�2B�J
g>J��:Dl�f�;O��wX�nb]O: ��6�J�+�Z���`֓���s
�]%�
p�h��MC�
���[(.�d3pk,�p�?vx�
Mͬ�y;�����-���pT�
Q�wkҴ|u1RU�I�(� r�� Ί�[��gÈ�1� ��h= �?���aӃl
+�E�G�o��t � ��� ���1 ��D(�,���
�
:܇���N?>��
+EŚ)ms�MOI�.Bc���Ǯ�:
LL�S�$�����
H��#$���p����xܽ�
� X�R% ��q���Y@�*e@�N�{rm�}D���b3�x�T@\
C@\u
�
+bM� 1>FǴ\�ޝ��c����y�}C�\�%0֤P� И�������
+F;]�[
+2�#Y|���X ��N>�О� � JX. %&��4�"�I at AY!�SPpg�'u�ٍ��* ����Y���z�q�Be�V�nxT���s���R4��dDC�����ۗ�F���
���,䘰��Y@PPA1*;aO ��� =]�݅_�tI at W_1 �k�p�<�
+�x�ؤ Mq�PnsY�ܤ�q8���Y�|-��t�$��
+�q��5%7i����`<�8h��=�
��if��ݰ4���
���\��!�
`�V��4 )�| )���]��٩R=m�[�h�W3��c�#�AA�Vc��
nS�+h_���}y�Y��q�n����ߘ�~��N��� �4� F�?o����;;����7��`
�.^�S�,�s�-}�����*\x�o}�=h?p�e����~�q�o�Z_r�Y]��d���l�@�1ol��_�
�P��p>�JZ�e<�
)�� r
+w����-rQՐ������('�&b�#��7����ƥ{��$%�R�� ��]����^;
D+
�8^�8�"�[�{bq�Vuf��>����4�:�F
�����vb'?L�I�QM�_��z�2��
��W�x}��Vo�Y��2b'A搑@fq�@���@F�\A��$� �
+���)ߠ�xo^
�[����{z��ѸL�c���2�S��l�͠���>z�O��7��t��L���]��A~����bc���(B�Z�Z�[z�XJ�xXLӺ��^TKU������+�$;ј��_
��/��=���Z�N[���f��-'�}L�xCS���?}ە6�����F�z�ک4�'��̡Ư�dQ\z�\T��[��bq!ߊ=��5�\�?�V}����i
������ u���N�b�pw�?
������s���b���t>QaY���u7*���֝�E��6�Ŕ۞t]��ϴ�͋/�>��笒���(W��������'�բǝT7:B��|W
z�Ei(=n��4�^�w�륭��#�A�c\=�Xλ�Tq�jX\!r�y/v���mDׅ5/>k�l���f��&�
3dumM�ݛP��p�8����f_�eGb;*,���r��QX��Y����<����"�Kv�)Dj��r����i�/�VG^D���Q*�X4w�jq�q̡�
8K�A�J|_��e�
+n��믡�
���%����z�J�>K+�S�C�7���_�
+yhup��kk�5lS�e�����o[�/v��ӷf��i鐪]��uVϓ�W��lҡ���5ZSd �
�v��~^t���cԚ�nέ�Fo.m�t~��3�hux
���k����
g������"�ԃ-����Tϣ�Fm�(vj�]�q��媊�g�RS�
+
N���4���,�,S����Ĵ<����Z�����_�"�ڔ��֘�
�FxzZԃ���륊Y�';��g?�}/�:}U��:QEN3�bt�X����
+~=�eM�H%gz˖:Y���K��
+Pe\�澘ƨ[�?da�
k�ik
?S8m@(��>�%�4���QfW��*V��du�hG
u�V��j��kw+�%9)��Ԣ����L�}�#gL��9[��3�c��
+�⨔}��һ��{ɂ������|��gs�
Vͩ|c�ݎ�m���߳H��Y�E�C��Y��c^
S��b��cwQ��|�<Zug*��o5�>
���ZLCf��o�naZ ����O�z#�����}
|�SY䐃.�����%�܋O�.�����U嵼'e�
U�t��~�E�}�=�^i�8ˤ�Z}J���<�q�q�l�
>4�R�Q���F2�d>Od�ܪ��b���m�O��E![�w�,�Yu��>h
+��:��=�e�}�d��k�a��&��h3-`��
;/)M�Q�?��8�jeQ�>c!�&���夠O�R�T'�0��q�q��1�]�s���A�q��p��R��������)ED�^M2�,zL�S��6�����<��MQ�c%N�%�
ѷ�
QI݇B�bz8U�v���8�jf�� �q[�*q���Ρ Mg�-���B����d
��ǔ����a�n'�f/����cL�
rN�_�]�B�|�F��[J�}H��)*N�)'=%��-���4��Y^����u�������&l���0�v��`�*�bh�M�:�k6���N�M�힍�6��7�O�T����*t�L>��,z�C2�g��E?ߥqJ>���o�JS?
+��1�<�E��~�Uq�����m'�!�e
�D�81��~I�V&r)�U���>����;�nr�N��F>�49#�MRٖīrs�W��������b��C�¬I�˭�
J_���)3^ޅ7�������ܮ@���ep�
,��.cz/����3uJ�T�Iҗ\!N�
��<K���LeR�.9������D�����s���\�����Ī�����=���h���B��|2�%�rʱ� 3���&�g��w��F.\�]9l3!
�[3��l���`��6}��δ��oԸ�~R� �0���.��lK&
+�Sߌ�
����ժ�#��Ht�m�*����0�\+ɫ��%�3|}n��.�z]���v3�M��e�Y��Rg�s����|�>�+��R�f��|H��aG�ƚ�ϲѣ$T�*��y�`�{[����I$.s�og
G�7��}1��F m^-�Z�3�C�$�\�Q�� Ksд��@�'���L�"hL��(�B&6Ţ
����3./��|h�B�y}s�sc���\9m���ɠ&�Ɔ
�����Q�\�xY����6V�15e. at 5�������"��YL�K�,��*��g{��/���J��J����R��
X� f�A}�/���.rU/��O{#��d�+�������&t�
�a���;�̽�5�&�
��LfX]h먖)�g?1�_��������&��]�����,%t�� �c�k��f+�c�����.�� ��
��@m=4J<�)��J��ց�|�Ij����h�b���d�L=¿C���P�����K�����)%Eip���p������ג9'
+K ��%e� �e�@�� ɅS�$���dnwɼ�r
�-�K )�S��l$�6\���V�'�щ �8#%���b�_1��N� u����3�J_Ld���
Vw�K���zRx����������n )�HVp/��
$;�xu��
�Bi�@r��@r_����n��� ya�wF$�m
$W�$G6^iV��B0n��Z��7~����ĹC�1�j1���%�{����"�k��Q�ۡ��~�
̥9�A�Ēu�L�V y��(�� P�e BCD(E �c �
��n���b��T��s�Hi�b�·
�\ϯ�RI>�iY��
� �C��V
��
��� �Ge���ǫ���^��<7^�����ԛD\-�f
+� C9l}�� r�_ 1��
�H��g r��߱�k�D�H8�C٦�(� r�v �[�g����:\+W1�R���f��Ldy�i���M��"POĸ�
+!�ً�5�����
�s�u�f���ru�\�
@���\����h�O���C�s ձl̡�F-�����6�貎t�(
m� mU�?�!�V@���?�8q?���2Bi�`8�_�n���{1<���'6�
�V��"r~�,X����Ϫ��*�hU
+�5�?�[: }ܯ Ke^ �
� k=S k��Pj(��:�4� ����j ��� �c�
�
0q����q�u�{ت�[[��Z�ΰm�Hĉ��D�}Ȣ�}൹rC�����m�J��M�iVއ�&G�Kc��ؘ�KObV� ���p2A �P��Xg�U��n(��56���
�%)ʽ
py08�v��$��^-�����}�W��c���k��Ȝ-�H
�.'��Fi�
��óD�M���͛�<��R�j<��^? �_�/$�JB�d ��P�Q
+�?\N��m(�
�<ʞD�PD]B2G, ���|>�R�� s�%�_���
����8\��Pyh,��B��+M� �
�v���m�� I��oՐWN
�7i H���nr��99b��f3����[�q.�q
)��i� 5D��8�<. !U�$��r�YU� Y?�
@TD��ηRQ���cO�3!��on$��������Jf��h. B0���po4 �M:�
+��LҀ����� ���ʗ�z�V`��T�*��(
+'+*)�'$�l����a�q�K1�o�0.5
��o����fI)vB�Ƿ"R�
)+���n�.�Cy�AJ�� �-�A� L���
����tv�T��)'�UN���~�0�B���H5��1����ݏ�?�o�Y���;��V.`��d(
حT���l��,wz o}���o�T*���^i�I�T!��;��|<��p8�
�G�����9ǿZ��L�_�
�w1��
j���'� B&Y B�������� �B8hx�j
ڬ��m���m
+&���vb�22�$����+^���֏����q�$����1k\�7��g�� �
+U���ЁT�
e��� D�Z��ҁ�'�S�M�����S��CJ���]L��D�8�8
+�V��Yo���<�x����ޯr���C��o�1�{T�9��${r�N ��� s�U at f�2�p�3�
��>�
��P�=��1��E�N
֒���l���E�g+�s�:�{�ju T1��Y=��~�:j}���}8�h���Ĺ��Ko���h���U�:l�^�a/�!�Ѓi��so�:_��a��� Β
�cڊ����Oc:y7��{�����S�v�
+i�n�L~+x����z�w�t��ŗ�gCmqh�Ad�'<t�\b)�M�{e������ffv-
uV���ԨB����WʙDhh�\)|�OcZ�w��{���l3�8���A�鏻1��!6�� ȭ;I�
EXz�0ZJ'%�� ���O����=|1���
Y_�i=y:O���:���}�h�s̜�Q���7<�C������z1S�}��QoUU�
d��n%���Y�͡�o9�N'.
��C:�)|-�Uk��)[~�?�:4�'fe�N4��L�#R
w(�:�]�>
�6��Ng ?�^?�;�~�cLz��9並��n���3�gv����'�ok
�h9�:�b|#���|TN�m7�u�
����W��^4�Դ���Z�1�L�ꮯ+�(ɢ�Y�o=5�x���9ك�խ��1I��ۉt[K��6�&�q�l��%*�;��L��(�8mL�º
�Zf=θk+-����
#՞ЫV�VE���V� #�
���Ʊ��pu��g�s��5w�ҵ���5އ½�2��H�
!�JB��y��FI��5Z�i����S5����mK���T'W �^
+',z����A�z�R'WvTwu���R/�
+Hi�
+��
+Xx��
n��§Q^g�&c�'M~�g��g{/�T�]�AG�[�6
�j�jE��ۯJuvgU�u.k��Z��ֽ�L.A� N���*�g��g��`L1����PkA!fZ^o=f�����U��ȩ��˩�s�SӻW,q��oSO���*bK�N�)oʖ:�~t�Qb
+Yug^I�g?u���;*��
�#U��pn^�V�eA���|p,�<U�r�yΩl���.�W�"naŘx�RWxY6ͪ��c�����&��X���c�F(��pĭ��Q�G1��_�4�*�4~r�:dCy�9��k�m�݊�V��c�S�t��Oz&k9z)S��.�Q�V��;�t���$�x������4����Y������fEE���t�����tƁ
��rɿ^DAA
+pn�Y���z*�0uW�R�!����
�jJ���ל
Ŗ2��Qΰ ;�Ŵ��+�g�R���E�NE�!�j B�f�B^h���vx�Dy(hI\8
h�bn�Jq��*�$�UJ\�+�Q���
v)J���/w����T0����Q -��iT����^R�$D�
!�T� Q��>]qB�3$~5�ʼ*9
�*W�B-.���z��d hc1�{2Z�G04�Ȧ
3�OKuZy3�i�d�Ӂ��;Nݎ�~�g
#h��ܽ�kɎ4��q��vB�7�������j��xU�\B��v���<�����a��_`,v��v,C'o��c��T��4hת��~�X�C9Ԩ�|Qi!HQiq^&}?;'�}喊o�T���
�|^��dX�>�<2ly��{�^��_��
��z��k�
s��+-Y���2�jl2��8�����T�w�=.�t�y�@]�;%i*͑�_
Q!Mr:�Չ�?
}&l�|V���pU
I�Z�[8�|�pٽ�CQ���������3!�[�!�K���:z��E�˚%�-��W�$��
�Xe9���|B
�D�<{��F�����͑����w��'�od� H��W�1�������BC'�zP%��«jD���=��B��.�z���2�Yqe�ƕC7<�\��C��s~�6��i�g�Tw$��A�<�ƍf��$��і�b�C"�ψ��Y��$!U\=�
��N�.7�cU�zc�Q���uިH���k��b�eBw�@�q�J<3�B"
�������U�
c6��dA��u���Ds�Z�#hƞЇ��mh�!.��`?!�2�#
+�O_�f/����M���'�ai,�F�ߡ$�XHk�_��k�
_�[
� ��&3>:�@r��L̏�i"�e�`yZ<@��Q� X D� ��k�
+;�˕�"sn�a�i�~��<�991��%��!��N��� ���(�OzA�N�.�ĴNx�`[�n����Ez
+�,���l�3$w�G"P�p"w���3�dP�*����v��� �})
�ԟF#
@٩��R�`*���1��:sX���3`�c�vŦ=�bP�&>�yN at ro��oP��^��Qa$�
���£
�0Ne6^�*禷�wl�� �}� Ni Sr-���t����Ԍ0��(� zͽ�%�Bv��f�EI>ۃ�6��D�&��6�k�=�s�5Q��s
���}�yr�H����^�hAS�%�Ү
V�S��50��,�- ���
p�Ox)��1�^%g��l ��p��I �d��#m \y>K'�W�EJ���D�A���{2���О!ؔ��Ī���my3njzy��%h�8�Zġy_iC�n%t���|�p�4�N/BQw 6V�/��W
����\({
$��
���DI�d�� �� ~�#�:|.������)|l ��V4�t:Oۿ��H0�cu�8Ai�3L���.�`�VbA<Z��<���
H2�$����g3�����b �S���{��';�
� i��&����gArH
B�� ����η�i:I
+0CAqvyJhO/�2zEgOp�=K�
�2���sS��#8�h�Ģ��A�d��)���$=I��$� ��S(�{([ �4
R�5 �
�R��e�v���p� @p�
���_a^N�,>F�܁�L���^�W
��������H7S���%ެ6 %��A��~�M
���?H�]d�
r�x��@>Th��L�* %2�Pv#���>�P�N䁔 r�ÿ���{h�Ÿ Ot9%�
�`���H
�ȃz�+�(����L�0M��m���j�xO� (�1m
��j���
��-
ڝ� �{��,C1�~ΉP��Wq
4Xk }�Pt�W����l���W ��@�/Y�.ZV��U����_���Cȓ��#�,d�^
�����^)��j�ć�]�@1h��H� �����ƥ `�+��~� cw�0��2]�A�v�1 >�$�����-�- �b>���JVLp�o)�12�x��KO��Q����
���خi
^�1���'�6o��;�
?& ~��@w 8�J=*�
^m�j���Q��l�j�S���x�,H�:P�}1q�o�|�$��y�6�����G���>~��{0��CG�;~C}��p���R���LLn5�H��d��dƶ)g_�d� �R�:��<��_�bQ=)?R�>�`_�������0R�A���0:���(f�?*N|�
G �����[��|Ã
e����
P/�eq�Kj95"�1 ֶ:�J5P
N*�<Hw��UY�����
rYu�P�<�}
Zl����x���q�L���=�����Y�g��;ހ�I� ��|@J�� U��C c�b�{�B��/g��A�7f�<g[rj��G
����v�
+}�ˈ����:v����� �/I��¬�S{3�`7H X{D v
ɀ�4�e�s��[g�xa�É�
�q����;�
+��;�[�bJ
�+f��9�oJL��9�R�����E|c���ѥ�D�m A�f��
+��s=�!����^1�$p��
8�8�Zs�F�
�n�'2� �e�+rqq�8�86�cY�8s6v��Ƶ
��
���\��+�6&�qm�A�y�@�rg@
+'�@�m ��?��8bi�g$-�n�ED@��ǷW��t��
��b[��������C����M���Q3n�r�8J"s
+~=e�ˁp�Xr�3��w����� �k���ث���x�����[�o�W�����,��B���(�P�
g���P�- �kP���ey��,S�
r�v�*������*����"�DPuE6<��R�Y���xh~{��S]��DӦ��_��i\G��!�k�N���|
9�n_B��2�_��:ܬ����%{��g��ӻ&=8
����qJ�M<�2H��+������^�����`�ҽ�z~`���u�%���E��߉��\�����g.������O��A�OѾ?9��I��f���'�
����YM(�'���&
�@R~��6�f$��a��oL�摾����6Ͷ��gf؞�����.�7iQ�c_��zTMT��E���s
��PГP\gWU�
z�rf[2+�$��S�_l�{�~s'�vQ\��;�"�t�d��g��2
��
R#x
_j�ȚF��t.���X:��ߋNy�,-��F�
lJ
~�]�I��� C�
�a����)�\Y�.{���T��P@:�Onݕ���e$
���D�sQ��{C�K�>�
>�r�����^���W�^V��/ї��? t�`�6-<�Z�乓7���P%�
+��+��"
=�
���G.`z�c������hG9�a���z�Tu1�
JO%����W{�
Qs*�l����f����ـ�&��}
+/�"���*�&��6��y浗
d��4�rdhlj���:�v��������
]$�p�F��;�0u'|/�W��A
��&b�0�D�A��
+h��S��驅!m���~[!)�
�տE`5�'q�P ���#LL�Ya��3Y��-��$_^
y�yz�x��,EXZ�R�9D�H+�1b�϶O'_�g������֘E]i��֡=g��ۿ�F��OM���?�����
��?^�e�d�]8"��W�FЫxp�Nߤ
�u4"]�<�W�CA��S=��w'�}�ͮy��籙.���U����)��h�
��x��!<ZT.��s����|�;��ف���˟
Ȱ�ߋ��fd�畝�틈�g���^��L~�:?
�qZ��ᨏR`���c��0jj����%������
�
zRx�)�S~��oZ�>���,�3l�[��A��V���h����{�����
��gt%����_؛
Ұ�����Ϳ��?m� �a3�r�����9!�������ϰ������!
���{��ܛ����������ϰ������K!
���{����>���
�?�]@��������(9�/VO�X���q����Z�9I�O������l`�}4)7M]�L�"���~����D
n�:�]�V��?���r�'�aT7T۽�LW�hf��SXh�
�'�9���{X���mj�t�财gw
'��bc��[v)��R�I����D�}^.e���\�v3�|5��"D�<c��n�v�z���������2i@�c���7;
;��E
�`�{��v�۞�6�g7�冟W߬���R��g�z�Z]�LY;��n֡p�M3�Gg
}�C�� �w+axR������~�M��H�\��/�U�q��>Z8F+
$]9g�vz���S�7�ٻ]�j���瑅�����o�k*�_~���~x�r��g
�L"���_~������2HZ86�CH�zzk�h�q*&����[�Z�1�'��w�z�R}��)x�e�z�rV�-�禼|���D��On�i9�
Z���'
B�����'O�3�p����F�I�Ԃ��Ȫ�� p������ƽ
�]�ָn�O�۔�wo
���'J�L�ӣ���"<��y�y���|J�6���a
�z�6V�p>
Oy�=�Oۋ�.
+�^aN�]�h��j2u�T��i]�槕��?$l�7��M�:�zsos�~ή�ch1�_�&������skZ��sd͏c�8��O
����k�f���]��4?��N�Z:
��K6�'��vV��f�~%�f��
4�Z�Hؘ�lZdc�>���yN�a?�Pc����paܹk����7���V)��/�
t��]@��{��*%gS���~YmYGGNY��<����0�����Lovyw���-q�>`�������Y_�d�菽��=��o$B����_w�����N�?YG?�3��
��y�
+Pt���d��nѾ̷�U���=^���x�y1��E���؝��j:���_�������M��a4ႍS�բ:b�0ч9��Q͘���na?�������<Ms��e�������Ԫ7��抧
f/�2���$�d�]+�JV�!�9��C�����Q����t��w[k2k7�ݩ\[
���>
����<�ϳ�֜-�tcV�ӭ�K�O�f��?!�q�r��dW3;�>������{?vk�6�1W��=z�i�9�~�����go\)��R�%h�4]���4�>*���Q����?z�t�����V�(���쯕�Z�6d��XJJ0)�s�f&�i����� �c=����@�)q���,�F���0b�����٬���B��������B�[�+�F���ۿ-]��؟��8g���4{5-�MJg� CW{]3=[�VVG/k���V�� �����F�+��y�O���gt9�O�� ����KV�����O�� ���W{����
��r����?؛�����h����������k�͐F<�����ޛ��c�����B�)�w{����h����{�����?t�_!U����_|F��W�~ku��l�-�\'�
.����mx�?�
�Y�Y�PnA
����' [...]
�DS\;ɻOk�ھ�*���C��
�-����96�x�u�^��|huo}���C����U>c��}r>��s���.#L`�����l
N
�$������~4O�D\�_����O3�|>B�h��x-#��ٯU�S���\}{s�l��@V-O#�Q�a&9����q!�m�����g%�i�s�����eU[̏�vp����}���:�U׳.�ٟN']=g���|���tP�,ߓ��̱]= 1����2�����ϑ�\
E�
wd� �
6��]��ga����^��iop>飒�Y�cWD1ͼ�
�A
��>�T)����]�a��v��!���W���V�
8YO;B��>�ҽ��a���|��to
8p��b�~t�G��rc��7���G��n����b�In����/I�5����*ݘ
"��7��w��*�ڽ��s�%o�S�["���Y�������/���] ,�vyM9���k���9��!���({�3�߬.�l�7�EVۡUz��Bh��>�]�{�`��7�{��z [...]
}
����V#q�;��=b�����.���v���6���k���j^���#���.1O�����
nu��_Obo�&�t�]O�v���)�G' 7���^�����ݝ��V��l{ {m47V
�J3�s��s�����ou9(D>#�r��t�^;��y���T8�_
�]�1���^i?���*
6�}�X˽�2��}D��%sG�
��[�'a3���_̧w7<p���r��˥��Wvr���`ݳ�nbc������|�l
�
�w���3<Շ����{�s�WKV�7
!�l�Q���M�����C����6we7��eP�p��<:�7�[t��w�l������������u����4�6]v.�tq!>���rgq3��|���˟#���x���]
��77e?�c�b:��\0�"�Id��U}��dSMa�5q\V�S,��_
�`��JF_O遼�#�͕U}�������o�f�o�kǚ�ܛ�L�O�&No�e��%
���idf�ɮо
7��]��1���Ӷ� [...]
+i<
�ok������q7�?�fߗ�����s
ܖT��O%^a��:~c�$��B0�L�:��ڽDg�eu��nz
��L=TPQe�"E]yK'Sy�"[����N=�"�=�c�&� �ǒ/�wԱQ�Pu��-؛��˧�9�b��| �Z�a��Ӎ�H�z���`���ɂ��[S�RXu�I))��H���z���%
�@�!���X�
K�E/uQ"
+endstream
endobj
107 0 obj
<</Length 65536>>stream
+Tt Gq=�*ފP�չRf���V!/��<~��#D�6n ��#
ʼvN~[��Jux b����SF@��^�Կq~k1j��X����FQ`���|3Z���w!K��ࢩLil)\��(�R(/ҧ��;�sOɫ��S�ކ4�.?��$�5��+j9
+)���������9�G�ِYÞ^y�E.$�����F��TƮ2
�P�@RΗ����]�">s�v��y��U�� I?.q�ݯ'�P;*_t���
�� �L;E�jW���a_���
ײnk�����x��aJ�K B�e�����-c���XVo�b���G��
�N8�&��s�bԶ�f�u��
��н�U�B�o��"*�$����*/m�r��N�W�7�'����N�p�!��ĩV�ٟ�P']8B��ܙ�w,v���y����*����SY���dw'լ�MT�Ox��֢|w�<�3�z����]C�}dD�_Jlt��羽Tr�B��4\�=jZ0H�fc]�u
+,�.Ё¿
+�o��� �
��"s��AFL�Y>�
��c�v���l��K?#�j��~��ňS����:T����D��٪V��٠��pUnr���>��
uk�IA[|jP��
S��|y1J�m2������.�?��G~��U��7��dy�Q�6��/Vu^��J�+[t��3�>�"��@�}�O��0q���1cq"t�Y�J�,��L��:�^���4*F%�T���#j��87+ ��8ZU�JĹ�w5Sޙ�.�4
fY��R'B�Sz^�ا�w�2�zl��~��G��}LȂg���&]E?���?�s��c���ǖ�$��I�
�\*=�8�S��\(�{�]G����J���=Y��~P6����TKN9�,�;����ŋ?��Eg5�PWȻ�~��%�
+���1Ә�z#��B?5c�
�
`o���<�n�E�2/+��
��CN�=_�]�GU��M���H�l��M��@�N�z��b/�;+�-��z����'�-�z�K<�m����
�O�k�#�.��W1�+}�Y�Sq�}��N4ʧAi�g����/%p�o�P�%#��C��r>E��V����<N�e<Nk�~'�=��+�=����Z�#s����}�&�}z"�g8���PDb1�� w�o>
:W��Fۢ�����5��y��+��$��S�P��jy'�+��B��=�̞�]�
S��7t�h����|�:���V[���w�(�FpnQ=��|��3��b�f�v>~tj�q�HR�/�v�Z�h>D�H��w8�o3s�=;�5[��K��A3�M�S�3eg$Angxcw�� ~q�sį��+���DŽ����K��
�`��Q�)
�>k<%u��~�u�'�^�ϵ�u���� S�\�
�&�R�xݑ61z;Dmt�[��ǧZn�g�& s�-hs [...]
+���\����
�u�gD����h��A���D����|���l�0pjpl܈Ynt����
�T�G�@z^�%T9;��vFÉynGc���h�'\.{�ޮ
A������M�����
"�a"T3��~�����>�[�J�b�j��z�؛ή���\�2
���x<��������q�T�crWd�L�v�@8d���#!���F��?$�e�T"����@7�L'a�Z�Bo6LK�h�}@|:���g
����
ST�s�'cD��H���7/��.�!�x�Tȹ��|4dž�&�Ձ��� �m�Aud���L�Z�_�[ r
���t�h����*�������Y
oP�໘Q߸n7lJ�p��*��7���G^�ܥjh���+��ܑ3���&��%�,���x,�_�?�ͿD�g<)�Y�/pF���k�G��τ4n�m���n����p~��Z�θ ����M�����_���8�!4��cT�/P�?�J�A(�R�i< �P��q`ӊ
�26�
c�Ao:
LXY�N�d
�����ƉD�|�H
-ڌ���exQÎ��aK��:��dY�$�gf��\�}� [...]
��6��V}˳T�}nS�Q!���J<���? ����&*�qt;M7�8&B
�߷�����{�"/��!(���)���0�5i~)�f�֫HO5$E]%߬���,PƋk��<
�GE{��h�p�����̤?�,6���)�����^,�s�^�h��3n
+M°IFwS$�wrcA#J��
+*��딡��W����{<���y�,���[�)j��p��8��L��Y����
��}� ��!�78�<�ִq�9�
+�䖢�/��JW��Ҧ
%�#/�?ŇZ\�b����D�<����
��� |MF���n���>y/9~X�V>y�y�x��B�}��F�G�`�
�tll�Z�0�S��;��+i�����S�)y��:�<��
+7��)�q~�=?�z�����IR �T;��w��I�����`'���5y�*3���TL���rRz,��91�{�8<Um�76a
�-@�}�?��߅+�g�8� [���͏8�VZ7L��y�
�ڡ%
/�4m����*
}%��r
urOٺV�Ng��A
+sn�:+s|��q�#BA���b s�� ;־������T��x����'
��i,$
H�N�z��Wߙڰ��~m$�y�qJ���}S�_�&o\nlq��dE�قԣ�������d��wl�1�{��mg�ZE��4a��`\�9M��eWKl/ y5CO$��?��B��
+|r�Js�Q�fW�$3�{�3�I��H<����`�4�����s�=�D�:�����wg>�p
+���B� �4{��7�牡��/?�z�D�^��C���鋻�P�]�]���ʔ�՝��U���,��jգ�h����˦o���776&k�ĴW�Q��k��k�S��+o>�d>��}�ee�%��z�i�y�3{l���0��v���Z���q�N?6�(��8e�{���K���Īl�[�h�
���w
\YhMQ�u��㜖�;�&d��FON��
,dv�
��:}�ge�C����j���o��,�g�S�B��~�E!
ە�c��ˣ�)��Y�z���s厖.�N���<L����}�+��-��"c���R7���E�]0ғa��\%��P�!���_O at 5Q�Z~
=���"
+d��$wn��|X�8�q(*wFK����`N��V�0�>��<��ܺ�
�p�1���d�F�,� -�uP
��V�)�ZlC��r���t�m
x)����-�
�q�N��y�iOwǏK]Eī�S�h�]oµy����
r�npj��I]H��\ :='�D��\�W����g����(�+�Fg����k�]
+
Q��Mcw��ఒZ�d���
m�L*}� �(���J5e�
�-}
�[�
�[� A��"ATO��U��43a1aLI?.��Au�.Tp�1�\��tޏ3����7�2��o�V��C��
̥��3��+
�s��
�9��T�CE�;n���D�/�q�P�fBZ��h�.X�kS�R@����r\�5[:+$p��vd)��7z6JM���0YP��Ҡ;�ϙ��
��GvDu����W�[���Χ����[狵���%w]��_�'�o>�M|���}r�v
i-�~>��f�>O��@�/^��^�VT�y�tOf(|^O�T��crU��u�mϖ�l9w`,���Ik�k�%����
t}�bp�)�s��o��M[2�k��/.���7E"
�i[g8�5Phw�5H�_k��������&��A�3\
.��
+\�u�lS��
��5�s���O�u
+�KQ_Ӆ�,��l\嶴�M�(X�tB������4�'2u�q��&�k�
\/����n�Ν��9b�v��8e�H_��qTI+DŽ ��LX��
�+q^�?��2+�VuLp�^fE���
�v����=��J:Od�~��g�K�����ՔV��
�
ǧI�8����0��Q�N�+��98��
+�?}v�Iɷ}�7��R��$]���;]K>�l���-l��ar�Ů�_�LS���Ӎ ��8s����C�8q�HA���m���C��x�@�l��rk �f{�r�m�|ċ^{����<��.
�Dq���P��B�E��k
/P�:j,.�(��x���v��!�齴(�#����`oO��o��ޠ
+�i9n~�]��︕u7JvV�0?�g�.2P�
��A
"!P��3P���iYMx��Pq�eе
�qn�P4��ㅣY ó����=Coؤq�
�8\�qؽF-�R�jX��N�7dn�<�),�?$�q~f�?����L�Y�/p�f�Ϣ~�3���E�g�����p~��Z�ο ��a�8���[��@%g���^b����c$�0F��j���Fʣ
D͙��%
.KS
s�CGξ/�~�p�P?��gcԦ�ݨuS�Q�aSoBo��$��wi�� ?$����� H�
T��e$9lܑ�7|M'7L���ܚ�ev0a
:z�F���#��c0�5�n�U�����i���=��G,9
r�g)��}$
��z���
�VhT[�q��z�*�A�a����K�(�w�
՜Y����(rYF�^�b
A�jԇ
�[�-}�Hw�IJ��<�m5(��<ݛ�s�����Ή�ug� q^�'��
����%����U��
M��W��P���FK��Y���a�]�8U!��Uy��Q%�]~����;
�d+g>�������Jm������
��"s�b6^,��r���t�|������RI
�C�&���\�����{l��Z�-9��p
+��x�
;�%��ͅ�j��f��Hl��z��*�wҩ�E�h�;jJGrA>�>Y�9}dj?�仇~p?ߞ�#t'S�
t<���K�PIT
+���q
ʴ��5�wޢ�`�<�0����R���G�PyP+ܱ��B:$V���� V�q�]��h�`U�)j
��/��Ȍ�8�Z/�**U]��v����Oq��\|p�ӛ�1� ���D�a��O<Bl�B���y�
òe��Ũj�l��+n
;}�8�V��G^#��S�t�P�-
��
�?�͂���<�
+��� _b9�&K�%%�rHE!ݙ8�^���u��x;�$y3�1*Vܛ��b�7��e�<rڸ
����wԛ���cMM�CO�}:�@�;�;3z<�(�Fn1.c���
-�~H�~�QTW�B�t�
���&Tɝi��)\�Gk��yj���f���T�e2��Y�_���o9�PWn�����rE�K�qe
��)�� � ����/����p��{l�?l\�Mܬ���s�X*^�MT�� E�-��'oV^���C�p=~�1A��J�:�$���W��ǿ��R���>*D�TF*~G=mJAwz;xl�����)��ێ���֖�j_�s���A����-
�֤��h�ě
$��ylQ�f+�y�\�ҴJ$0�i�P�߹ς$�飼$j��ɀA�{y�YI��kR��86���^�ʄ�LO����"�Z)��Y(\?��䓱m�ӵ��N��\�Qf�ǩ�Z8������}�|���'�/-KQ41ĝ���S�ucK�:��E� ��6��3�P��zwɈ������8N� [...]
+��XI��
�g;���PS�f�-��Z�x/l�%�5$K���y���G�Ix ��|~8�-#�nLU*�#�C���B�2O%�&|�@#��?$��es�� �
+�a�u)?�̊�<X��g�j6a��('fD�B�Sr9� ����
�g��+3̑6W��Ǔ$@{��>r�YK�q����!��i<�T�B����{4U ܭK{��E�00��JWz�Q���穹�D|�
+/�����ք�aHwM9��!{���H�#>y� Lo�Gd��y<i<���n���i(��O��nT(�6y�.��f-�$�z_
֕�X�<�����^���g{g�m2���s7W�d�8}4�%�i�1�8`9��]����̡�ei�R��!p�P�
�o8~
�4�uV��7
c(�
Q�`s}}�g
�>�R~>n79��l0�
֦\:�%�
+�'h�=�9-1�3U0��%yy}(��Z�&PT6{,*���
+;*���IX�{�H=gó�<�e�9�{Q��PYBr�f�X��C)p�E���TY�q���昡�f�@�;D�
+�
+���5,oʍ�D�Pev��,=F+��
2r���d$U�%�̟J��
��J#\���5g�îz���Z-��i��z����z�Н���G��y}�b"
�W ��W��H�H��7վ�]�R?M��]
�狼n��̢w���"n�Cb/_ T���ܮ���C���>lǷ��@i�
"
�o�
+3s�����.���
+y�j�$wv'��
���8��
A&�:R�J�8
�
+���4��G?ǯ��i���YZ�n�f�e�S~6�1B�
>�F���:�zuId��
���xd������>����Sߘ�G�X��#��
� !
�_<d�O_Cc`#9?
��|A���v��>�x�;��e���ҳQ��۳�4{�H�F'�%���} ]Z�W;Q�S��v��c��L�Do����Y��^��xp��<��
��NM9�n��ɝ����(�(\J6p|�!��ޜr�����
�7�#qM�boH����q
��a�f
d�>�{i�K��"�C�~a����@F�m��6���ݠ��p�r����
v�.���?��̵�{��,4���@�.v��Xt�gooG���vѕW{i�!;u-�Ө
�p�����>]�M�9�k�z0��`�Br�����/��%�Kv�/'i��U�.�9�1�D�
+Ԧ����×>�����|AK�D�C���Q)��)%�ۺ�W7�h������*$n������;,')]��
���x!�}`�\\3�|Uzj��3i��� �- P��
P
��f���T
����r�H��$�o��n)��Rvik� a?t&�����ʞ�=�g���.IK4/��Z�UC5ZO�I�w��2��G�<�_O�V��
���gQ� q�~�
����gQ���� �����&���U�ok?��Ư.�����|p�/��������o�#9�\尞B��&��ky��d��u����.ݥ�S�;�уO�ʬ�Vq
�����,ϖ�+�z�dlzwIh��PNBQH�AT�&!& ��S$�`b���b�I!����^�f�.�T�έ�
�{>�f���X�y�`�,j�k�6w���ܺ{]?��.������s��P���x�����
*�
`��9� �������
+썙��f�莗z��h���g�
k�B���)�ﳹ[� ��,�fYiIFU�*�?)�4�ݟ�]�y�j�([ʗ�;�s���1q�(�0��
+`�
�j[
��N�jg�(��z�hZqSK�mߵ��z2��U⡃�3SW��)C��C��栶!s3G�r�4~�?�� ��m�Pn�^�l-��9�v����jy�� �r3&��%~3@�jޣ�s�M�ɮ��.ks��}/u4+T�z���}*^�8
+�i(Ңq
2������\���]毊#�:��j�ĈrR0��:�c[��Z��&w爔<:'7
�(��U�6���`k�q�l��a�� oF��U�N[�$�"
����Æ$��j�*t��
��U�Q7
+�k?�
O�ǧ�|PU� UTL�Zq����6�� ���
}H�
�;
���sn���΄�l
�!�n~6
+��)@{�*%A����� �� #
��^
�!�j�U�ޛUɋ�^l6��-�27��|���j��n&)L�u��2��qo�� 5�7��2�������L�����|,s�'
��:�ܒ����%��?���z���e=I�(�H3j�
�y!QnA'�8�\2�?(��bف;��
{M-6VY����]u�\�i������RiW<柢�� ���*vݷG�V"\f[����g�c�L,�5�� �,��`p�<F�</զ ��S}w��.�'��ʵv4��z;��g�/?yd�Y���ʼn�7_9�F�e:�c�'�}�_P>�#���=)�x���%Z�q��˅�������H��H;^��ƽ�S���:��*3�
��I�EC���܍��*�\�>���$wd�<@�MO�2%SX}AbK�ד?�VSlT�Kԃ�A�,���rI�Yac8���=Ԋ���qM�S-�җ�F������t+u�Do���!�lӹ+!��V�cO���ޯ�� (ӳ��ό ܝ��9�{l� [...]
uTk�x[�A�
� ���:W@;���?л9�o�'Ϊ�:[Z�͙��[���;�R����R�qxa�����F���i��0�y
����D�B��ݞ�g��W%�T�#(?f��>�l��j��E})y��8��o�G�MDi�� ap�-�my�OsϺ���TZ
ܖ�Ő���졹%�>�>���� 9{�D���O.���g�6�L�_��s
��A� x�>����ܽ����b>�0�?���P��!CD�|F7���b���[�
��.Ց�>�L�XN1O���$c3�a�$E��h����p��`�����~$��_O�V@�\F!%��uP
�� +���mfޖV��z�@�j�P
��S��{�A^H�xŪ�>L��Z��t
�D���zϭP�,���,�ץ#�X�9_�[b}�r�!����&B�)�o�u{x��:kK��e8��Vg�DJ�n
Q�鈲f
��q��)���%��Z�ol����&�t�Ë��R�g�hK���{���.��즧 [...]
�� �G�;���'�����]�RO���T؞[�}6I@]��E���B���7���%P�
�3�9�&m;lngC� ����"?��=B�#��2�I!�V�5�ɡ ԝ���M���YUi\��.u���¹u�WO�>�
��uq
U�t� ~rʋ� ��1�@uj��;�\��[Vug���8�z�,�p�
Q*�[�2���J�c��=���${G��yi`+���=�s����qX��o��������0ɤO���?$��3QHw�%�^�;�MJꭷ���kr'�M�'�g��u+1�!�Z�[��Q|Iw��~�Ǿ�ܩ ��8��q
Urj�U�uH_� ��2ך����h�WO�ݯ���O��Q������*pK�a����`2�
�)q���8e
&hou�ɱ�h��2��wrvii��6������ǤS�
f�
���F���|i_BLm�䀻�1�Į2^�#�U�*�SY�@�A|Rⷹ��y�ױ;���B&e��}�dh�k�j��6A�.e�箉�ol [...]
��?������
�
݈�v�ZJlO�Lf[7K�
��T6-��\��|w�
k�UH�֫ab}�dw�+��:��XM� �Q��M (��Ӊ3n�
+�:L����K'���#�t)��p��w�
���ۺ�?n�F[{�Z���%6��T��;�\�ْ�d's�Jނ_t��s��!yV:(�Om��JL� f���A�x���˹���1E��0!�`��o���_{� ��F������7�j.')�����b���sq�]�W%h7/(��l
��dtcj����)�X~Y�w�9�&�9�K
+/ha�>�M7��C���f������>�v뮷����M��e��y���
+6�rg�J6���tb��sى����S;W���rc����q�՛���|�j��]�O%�D�5P�������
�'�<(O�
P�;(ߚ P��-P�
V
+i@�� �.!�%Ӂ��@A}�l�����+��]e�2���
W7`��4]�Z����8ٓf�����_q~�?���8?�gQ���1��
t�����c�xM�w��O�u���
�q~@|w!�
���>M@&֠R*?#�e@%��"��
�g
�՜
"�4N� ��K��_l�巶���e2K�;��\��x����~�j"�jv�tT�
��?�/H͉�l" u<��� ��R T��T�CT�\.��?���1��YPF���J`&�WШ�
�5�C����7�[��+��.wn��$iCm@�f/pT2"���
g
��(��NG��2�n���:�A[:vУ)K�4
��̍A��@A�
+����+^���z���
���
X:�'�����soBT����+�
�%~7�?
���������/A��dPvF����O�s� �_.�6���5�F��Gx@�v�L&S~��@^e�.%�#wX���7��������x�Om�V�=@%�:=<��`�(C��#������
+�2[@�b�;��P@�q��
+�_ <� &�U Nˈ'@�E����{��LƓBϏ'��l�C��:,s�8)���y�}���GI��C��Zp��������y�T�uV�P�K4��5TV\
�=
+��� ���H�
����P� �wG��G�uإ�L��j���nm{>�(S�
�Z{��7�!M<���Y�
��@k+\���{�V��ۉ���4�8��??������.ND�����ņ>�.���n�n�
/��7
{��N�HA7���<�H��!u9�h'�
o��|��ɰ,�� ��� �7������z|*>��"#D&Uj���<�����/����[�(��;
��
+p�ڲc/6��D>�ѣ��P��y\�zNj��Ё�9u{���6��_���d|� ֎P7�m�Fs&���N�
ͩ�Wx���� HЩ�Y��r͡�̗��.���(j�8&�Cͱsk��I)'�Y���\��:�=�~�����vuK�'Kn:)Ͼ* ����p�'�(�K�p"p3��'9i��y�I�v�����e�ڵρYݤ2zKn�W�{��}���F<l������i�qR{�M��%+�`�.g�'�]��(��w��0
�=z��V�F�
��6lv�/?X�M�%u�^҇)g��־��
k�s5���̫�x���F���cO�w�������`��2��]���������Sf�&_ �o��$c�U#z.�TD��k�e���4h�y��!L��u����MS��y�|�eڿ���͇�b�6nk-.cW�l����&'��M�cZ]��z��F_���$
+)��A��s �P}[�
���*g���&���hE�~ܔyq��m��K&O�Z>7oԪU轹����P��^P�m=�d �S�~:�+�-տ(Е2��>_�PT!{�Q��^V��C�boG^ߪ�Ĺ�P�IKX���%���&����[,�x��|!u����M��V8ڐ-�� /FgF^�攴����������]�>��Iq��nY��T�u��,�&V���h�Lq!�A��8�xB��3ˮ��o�՜ .ѯ�2xB"��P�mq����^"?#�b~�ּaeBx��� �5 at 9�D�Q;s p������p'�,n���2����I-�7��(�� ����d�݄I�a�p�N���B
�W�HP}.f�k~��`�Lf�':�>lS��<�����R�c �d>F�FQ}�� �~ԗ���ɫ-�7�<gg�6�t
���KL�g�w�P!�D VY4i��"�N5$l>=��At[��/�sٸ�h
AKkuͽ��U�)Slr��{x�*�9K�<�j' �8:4��Ƚy�ST�3F{M<"��ti���M�wJz�7i��thr0m��}>��
I���a�>u �qj��ӹ.$7���/.J�6A�'Y\sr�U�
��M<�;g +� �jP�Y�Z[�:Pw�r<G#ĕ�@��ʝ��ϗ����X��To�!�� ⮐y���*a����<����a|O\�D�?�@�<Y�>=�=rx�!��%�l~=�a��/��r��U~�u
��C5�0����[�����yaqY�z�8Q�K�i�]˞A�
l"�zrZ=&����C��)"��n��y�x���ͱw)-��Z�.k��U�
q�j4�_1Pe�;�q2��JuҒ��&�3��R{ i�R�*X8������U��U!/�K����h�H��
+SN��kоx!��U��!��:$���0���}�_P^�-P6=�����4O��))��
!�W"��1
+���At�:�|K�����T�_�rk}
+K��8n4·Y&M"
���k^Vv2 �nw�����ʸ��n�����/Hl���(�Y
Tj�
+�&���m�N����vy��Ӆ҂_�_4�c�Aw�v��y�|�HBb*N�D��q8���
+),��:���#r����c[O%썅�S�K��ܜ������
+�fG������-z�����
+iň�
��c6`�p�LQe�'�xN�"��~i�7���
+��8iD�ȥ��;uC�r�l��u�A��y�a�ƫiy�5��*
=J+�O�>���������J��|B~*k� 5�nk
�Y�L������
���B�����j
=������{`U� �������>i�M��3k���V!�6V��k�d���r�����;�-S�����YC��
�� �"��d�֜��!�g5� �X�� ����(�P��a���6w��`�EΨE�kTX����j�zݖ���X��W�ѵ���"��'�+hP�IȱI0����p�ܻ��a�L�w�&�����-A�&���r��>�_�v��Y�>��x��XQ}(�|3h�����<k7�����
�:�m+�|��n���ɃS '�NK�ԃ���D��Sɟ��x�
��I<ﻫ:�sW+�|W�!N��ԥ���5l��.��j
+��$�>/���
+b�ofҖ���t��"M��I��=�
���?n��{��ΙQ/I���L�ޢ6��ܲp-6S��vv�~/M��
+S�� h?�)�m.��0��Ө�B;h�T��q^w'uw=���l�Q�娗�o�Դ�
���y0)T�>���w��j�'
�r�`M��t!�_P
O�HL
��4(� (��,(�Z ����v��� :P�w ��g�v��O;�(ev
(���b'�Q��������a������a��Z��#��~~������7�*�8��Y�/p~.�^3����#�e�����G�i�z��!�?�!�Ɵ8=��/_D����bk�u�͚�ĉB��YP�3P��[��O螉��y�
�_ߠ��k�$��t���4���i�R6��pT�D����R��n�����n���Sc'HC�vY��$q��_��e�^������
](w �hp]��"!(P�h���nE����bs J�%���(͚���K��3
+wC�Sp�:�������g
Ci�3�Jp��_Pdη(�im9���)\ ��z�r�-����ɂ�>�2\���44�"��>$P�E_��ѽ���pG �@s�(����jĺ����L��Ǽ���� q��I����|G��(��|T�%���
��| �en*ɲ �J�elZ���
q��*
+7�0 %�Q
V�p�[���Am
y���lO�b�
h�Y�j�
�P�
2��r���Jb��%��$�(�e
�
+N�
�(T�B�(�Pi�-����HPAP������ d< ���f-�g
(��x��db�7IsF�u17
x�Y��߉�X�֓���#;��[�� �h��a�R�L�hk� Z���J�Z�su*����N�:�4�i��$� :08N
�w:�/��[m��a���%'#�Zv�g�H�{�ݠ���+=6*?:E�����ܻ���Z*��0L� �lAy+���#&��f�U[p��p��
k�O�p���A
�p;/���q��+�v�Tv��xlgK��O���
����r'�:��R�+�
��{$��[�gk����K��#�U���fʒ
Z�&�{l4a%`��6حb��Da����
]���!��J���
+�7� ��xbFŽB���ʿ�"R������w�:�О7o�v������S�
䂀J"g[�h���gPMo��Q[�|
IT�7w�;��ka/{ǣ�V`ʬԧn�W�f{���+U*2;�L�ⱴ���T@����
��m�m�9V�ř)��/�w���%�];Fݨ�DќD�~�
�����a�������cSz<�2�Q�ި�%L�0iVI8��$ԓ�s����v�����r��qt��I�������-v�x��ܚ���Ėj|��v��*B�0�<��ѡ
`d���
��E��n&���{�0����g�<וU��}�A��#
+( �( &%�Pz�_1�w���;��s3a���A�1F�A
���-��r!ވ��py\K�Y(~_���$=�!G��1E�zzVmm
+��z
�j�"-TU�Ȕ� �u�G�3-��@qoK��i�I�W|���R��Z.��E٩/�
��\
�
���6�Y����=��x<쐻�/k_=km
q�
uQ*�b�k;�
���r(ĭ� ڟ����Tn�Sj�EG
A9c�c��ل���
�%?���gg���/�,�p��\���,N1�P�};mvg��b�
̱R9'�������X��T��Z���
���3VTE�caLA�4*�R^{�r#lE���´���ۋ|���
�r%���2zcb�vn��j��n,ߌ�
�r�������ɰ���OC��QM�k��R��R��R�������C@�WP�*(�
hR:�zG�Ir:�+�4�f��#j��^�o�h?w�A��5z�c�9
i�T_
Jq�SĬ����ƒ{�|V�͔�����
���]�}+�Z�sq�:
?HR����+ b
@�g�
ȒX�=i
J���d�d+�l� ���Ĥ��f�'k�E��y}���9M�*��Y0
�C��͔�vd��m��f@�"�_[ M�ym�Y.+[��@����sc
r����Oxj ��(|[P�����t��x��]9ͯ���8�>����t.�1���Iv��AGٖ�cy�f�I&7"n}���en
+�j�u�8R-KycX�&��(
�!��d��� ���&}�I'F
{�
�x&�Z
���|��|�uڹk01���pm�g�4�V�~�����I%��e-��K�Km�B�*gG��V;���vC��K�MaQ*m�k�(RH�/�*�o$���'���)��#�tk7@�dؖ�w�5ij�Tᑞ��l_�W��i�}��
��U����^WXrpH5Y�sݍmϧB-M�9��=���y�ޗ�
���|��/�.�!����7"��
@kf�s_���=.�m�b��qmk���̿���õ�b�ߪ�nq����4������a�ڤv߬�m�%�"�b[�O�1�m��u*詫�����cc����\��Fe
Q�8��=C�o ����-��;K�~R���W��E��OߊP�,�Nzvp:.�gOu��X�cZFP
�C�,��Y����d=��֫��;�ؖy3&�j��"�fO�mm5J�+�o�Z��C�/$����Рe(��&�yzp�L=x�v�S�-���bC��-�F�9.�P]�k���K���@|TF���;�f՟<��g�St�0DqG?�ݓ.��"]��
Y��s��HkY`���7 �q�
+�#���0yMT�aa�ڿ�����sǘu��Guu�'���6��g��H���%lS�Vn=)
J�m3k1lg0���1�l���b+����r�����
kt�%�h��Wh+��ԩ(���W�I��
�iY��
��iO�.
^_s�h(�$S�y�
DgN���Y��λ�f&{�w�dG<��z}ncjߟq��8ϵ���ޠ��[[Hy�
c��WHV���PH�&(v�Ț�/�K�'�6��
�� �CX�8�}���Y<y��ni�
#M\Q��%oY�vX�Z�5=��Zȭ�z�-2e���}�gys,N/L���̦i�4�o ��uW
��&�
5���?���U�JEz7 ]Ɣ�+����q�"|/���Ir��$�:Kr���"��5�>����3cz;M/��v��gB�
rl
jlo�I�s�j���� �����\˛���ԥ��e��n�9��J�
�z�B�|E��;z���d�i!I
1%��Z������ �,A-A��$}v������r\�C~T�2�P��
�PS��P6��8�#~�u��͍�I3C%�
�\�/�#Ҡ��yq_��]��7�5��:cϣ���"�lWԾ3�ڠ����6�_��3��.���b�dn���
��5='t�I[�~?�vz�";�l_�NK��o�ԭg��Tg���m��lom��d�5cϪ�eùXT/Z9f����b�5:!m�0^�����$����Pǃp?��c����s��͋|/c���=t�J��67u�M��d��l��MS&��c6k��\�J�>��`A��z�7r��fTqT���@���~���2��=
�)n_;ƾw���M��ۤo�-[�A��vSMg��5��7��5��hf�z]���z�Ok���
�5?W�:�5@/�@8}6
� �
C��������Vx�~8���Mp���6��
+`����uX� �8K~�`9��7n`�T-b��r诋�K^x����yD������~R�%u�����HU[ ��#u䚉�T�k!�Y�o�
��ھ�������K�}� =T� �z��a�|oh��{ �=l763��,��X _�> �,��}n]��
0m��� ��� ����Z��6c�
����������Jқ��^�>�;~^�g����A�-�n�xq4�*Yj�
�ۦ��/���,� �c��z7E�w�}�W+,���
*~X �� �
.I�&6'���Ѥ�+�� �V���*
�k�NA]��`�
�FP�۵���K�
�
+���𧦑�o>
��t�D��Ez�+ �E#�C��=A����$����v"���B�4����jê���ҳ
��G
�~������" ����,� �� L
+��X�-Թ�t�VY'��# ̙
Q����"�N*�s \�
ν� �٘�w�Ȏ��wm��`�j{'j�t��Yy�F�p��:(��\����:��e���
�׃
�.lb�� 2��!� �d�@�7zښ��rgb��#.��3z���v�R�����9"��:\DZNN�!ȵ��).p3�x�o3Y��X����*+8 �
H@
�
OcZ(
+�0����
+E���;�m���R�ٌ��sU���H}�g�{x����2 �c����z�
�UFj�@����}D��a���� I���� ��
J�['�Mw.�G�" �d
+Y�
+�z1�5�"�±|�\�zG��6�n��pk������z�|X�
���׃�f�|�%ƙ��� M�XE���t�_�:�
+��;y�%�; v|� 3?�4
��2 ;F�'(��i�$:�HP����
+A�Q��W�)��������ξ��з��K�x8��yrh�l�V��9�rɑFW�����
g �V[��h��
��`_m��P��"U�R>
�`7IK'
���h��w0���饢c'O^�Gt
��^�����)
�:�e��.w��k،P3�M�.ww^>�9�4��
+;*�f^�v�����7���>����[j����%&�^(��q�ޜ��|��o]�d������y3�t�k��ܶ:�~�2꒽]��|��y%��若��O
N+
�Qӿk
�3���&�]
+��
����I���u��FQuP ?Pj��R(F�cy��j&�{�Σ�����e\����C�ӺQ�Qw�s-����(S�\5y��8����u;�3W���)qȩ�ɨX<N�
<�� �Y_�� �=�+(*�"?�ba�:�l�]z9N�F�e!�?B3o�3-�裝�2G
?�z�v?V���c�ou�������w�J�L�`:����C�VL�� ������|�F�� �
�! �}��~xʋD8
�������}��So��V�����Z<��V�QE/
�z�'y�B'2��UJ+>�U��x.�_���L�R�[x| ��PbZ���Q!��]~�����+�
��++�e��#����T��yeq���խ�X�BC9Y�c�h��L�UUc{�]���q���K�^^�=��[2H��1�
f�O�; N��7vЋ��CN��?�}%�
An�
+ЬD�
9�?۵{�:O�dn�V�Y�s�x]
��z�̆ڜ��Ý���7�R���lך6����r�ݍ��;u��w��W�-�@�
�������*sЪC��9��
۠X�m�*�y��o����J���aύ��\L�o$����|:�
�C�V���f��}�.��pI��r/�m�)G���-
;dz����@�|��a���A�D��:�'��K@� SLr at S�fp����累E5l������rF�g5
E/�Z�"��6�}w��G�_vU�&z�+��ݘ)캹NJ�������>���%1��5K:@�����S*ѓ?���C�
+#���`�Dy|{�%º���f�41�c|�h��gk�W�������@:!g$��)l�g�-��ڒwN��;��#ح�w�����M�"j=��<�D�RM�Peq
�eB�R�0,A���yi���r�ygkfI0�L�z��
��!+4���s��gL��H���n��5J(
"6
S�yW}'Yu.��s���4��o?��U�<�Sb����p���p���D��7M�l�+��V�1s��rɾ�G���5-�o
�]Ύ��[�,�89�ޗW:��*�S��r���o>�w. \;�������YY
ޛx��j���V?��)1_�*�����
����<`�f�g@m���t�s+��dQ�{����˭t�(�@'�z��1�P�vR�q �%�>mVv�ɋ:�^�~9��օ
+kl��2wl���|�ɬ���wu�)��k�ͽ~Ǐ��w���lNM(u�.�e�-���ךW�O�N���袛�GZu���}�
w�n��n�t�y�,�����3��Vcq�f�
+]b��%�a���pO[�VD��^��n�s��?��S#V�(�� ���k>AaA�������+y��l�8���d��3V�Ղ���Sn�&�՝�߇[jC.7N0�f5�q��d�
��^J3�T�WUn�t$TY�97\V�"�\k\�.��/m��6^�L�����J��
R��ۿ[Ӿ�_�9-ڃW5��p�����T�}��gv�ޫ�%�aw�:��q��
+p��]�ґ%�
�~X�h�>��"��֢�"X
+FWjW�e��"��Dv���R�E����a�ܰ�*�\^�
`
��Ɣ�����V���(i�`ɳ��#��Kb���u^aV��d���0���]��
�6�]z.�sP=�H�ը��#�gz�����ّ���C��4ߔ����w�=�����e|��h��*Q�sy_��n
��
��;�<Z
�d�8�5��y-[fi��bJ�d��Hr��䀱�n����̘՝�e��L)�Ӝ�k]��զ ��ӳ�{��B9?HV������S���Pf|�-*3��^��ް�vY�Gbu�����&|�i<�55u=��7֜֞L�
+���E%�rP1�
�3Ƥ7�_��)v��&���ǥ�l��6�Uc�;�
�����;,�����'�=�y�6�7���t�� �A�e���J�K�Mf�E�ro�lxw��eE��6���l��ߧ�s't��m��9b
��fe��$�
t2����z��
߽��+�4z��
����s=e���9�:�v�n���
�����yǡz���������M�lJ����\�� i��
�G�P���e������u�ߏ�C�{��{#�}t��wԹp����f�n�M��ҿ_�_O~p��l�P]|�۩�m��
-�xӫ/��D�^�yl3�~�Wo�A����X]���1y�F���e�\ԝ���sa�ts�\��y�M|��j��������2m�#����X�w�����w��O�'�Z��PO���YX�A�h:����Rc�*�� 6�A?(Oz��{��e��LkՀ��;���R=<�z'������T5�~�f
7����S�j���)�ɏחHp����-*8G?S�'a�w d$� Rp8���8�WKg���1 at 7R`�H XϿ�����/������� �#w��s��� 6�N?=���K�v"�[h�f�o�Gv�f��� ��ڲ��!�r����2��
y�b{��5. �ξ � [...]
+I�����&)/ ��8 d|���+b �Q3���_��C
���|�a�I �h�0���mK L}�&Vf ��']x19ǡ����o�/��`_�����.U�;��ı~@|��1�s<Tb}ૻ���=.]���o
@,s�EX� �A���d���
��2
E���T�NL7s��|�hUٝ�<�?C�x�B�
+���
�9�m��l
Nl>�
.u�
��
(��3�mt�r��K�H�4 �
>� <�
��7���Q ��3ݢ=��T�
+���-�o����k��rN�B���z�k�I�3�|�)
ۑ
�d���
������$`O� �B(5�B��2��`|�7�U@,J, ���3�d���������r=�o�u~�A���U�`���R{u�p
jy&��=�g�漽{�
\�a���F?u���9�
��v틥G�[� h�uZX��'��: ��ϯǑ����+��b=����8pЂ���ի5�@m�a��r�X,��ө��O�r�Yr��}}VҎ������&��:Lp��i�V~���
o���
����x���52�i ���D&Y�Md"������q���t0�3��_I�؛o����P_�%��Yj�
�
=����$��v�9^���՝E�g���u�m��8*Hh������C�����N {#1 �T�+���nE�|÷}&_���ퟨ�̣
��Ⱦ�t�����=zWS�����
7̜@No(;�~����z)JO�\9?cc[���.�
]]�=}���P
Kt��u�+��M�x�b
��] �JJ�n��"[�?��U�^�
�
+�d
~����K7�{�]J��z
���~N�O
�+���T�\4c;"ݣ��F��n���w�|�z�s������G�S*��c&R�R�����Y����%��
/ȧ{)��~I���M;�NSKW�8q
���+���K9+:��m�r
1ڋV��
�]����!F�6��Cu���9���?$��~@��ϒx�g�����/�Y2���Gx�����3K����v��ނ�5���//��/����:0�q|
�������x��g+T�{\t�
��q�ۯ��s_:=
�3;Y���4�~��!�a��:Y��P!T���_R��)wջ9�fw�3����}y
�s]�yc����A~wѳL�Q/~::�F�
�O��_5���Z'���<��
������N
.�$)��� �4h�w
���k�Ǹ
���R'[�3ǜ�������
Ϥ"w]u6�s�3dž����4�'�]k3�rT���:
%ؗ9��X������&Ϊ�n,<�M�
Y�Y6�w���;����G���I^�P�, _�VT�p�`BU��j��
���X���~+�^�
�K%#���13ڼ?ި��rS���Zy�+wS���В��~<I����[�}7��@�m���C��
��P�����sF<A�o#��������
y�>fkIM3�~����v�o�=F
��*��=�Q�zg�ɏ���Ē�p�d�⌎��Q��I��R6��R�z��8�/��T��� �o@��:�Z�d>
�.���G�t [...]
�m�k�Z��S��h���:��
��q�g������d^+;�á`���ڭ��-.
r��{�;�D
Q�z��C��ޖ������}/#�,��+�V�4_]U�'�
_
UW���%}��/g
+w������P�$��ZKNEif�A<E=s(���}��G\�hr�#���<N���-�T�����"E��|0��m�UZ����m
+k�{�����g-o�u��aם���;�y
M�{o<ל\�
?���' k� ��* ����(vM�m�2C�\�㲹fr�^��
�.h���
�e)R¾N�_�hns.7�y��M-=y�F
�o�[���V��)��za�ꋯ�J-{�j���u�Ӿ��n��; �.i�7�: s�
+�^2�b+�
o�,]�����0> ��Y� }p�m}ߔ3���H���4��������"�{����捝L�ofޗ�v�S
jc:���ābNF�dG6yY�2y�w l�1��
GJ��Y��K�������6:ek��
v
+�zǜ(Q#��ԷK�L{;�S_��D� ��
��`��u�U����k�>�f,�G*����e��
V[�:g�&��}���
����BR�� 쮰���0���u
Y�ky��G�O�
�f�9�J���oZ��p�����6EV�cv�ŷ�z�ZV9�A3�n&�4�Ȝ�\��Zx�\���b�5 uQ�����n
��K�:�����ٷ�hƩ��&[�S��Y �Ϲu����N5][�DViK�F3ɴ|E,�LShΦ����:��H��TZ
-��ܝ�������z�d��,��Sv�������. <�֧u�����
���kN驉����{C��;O��p�K�$%�7�%��Ly�r�L̩��v�ć��d�Y�5
:ܑ���mi)<��B��)�
9n~ �6O/s��H
����^�r(�f�jV����>Ӗ����T�+
��:��g������vx��p����"�Qc!p����"
K��Qx�V��cϒ�ә����rc.ދ��Q�gN�5rٜgV�d*b�?
�S����Bz���
��c�PVƬ��N�c�;�Ы�]��m��e�'�����X̜~&�>
������.��<�¶
ڡ�~.��.P�|V���ј��Gk6�+ޔ�7��d�ٱ�iő#��Q5����a3Պ�
��d�l�
��5�;n��i�^[�w3�ݾ6j�yQY�[����]���B�����\���
��4�*N/�@�bf�7�
���^ז�W�F|��
���a
��~|�<��<���k���w�]�u��i�s�y�DG�ϥ��X�m�͏�"-Jk�c4���m��?�4���aB�+��ã�PlF�����~�FQ����z���P
�K����d�C���&ٶ)��m�5gZ��"7���Ҭ�[a�?
��8]O��~Sy9������h�<͖F��aL�S*�I�����F(����t�囫n�
�LIm�{+�U#P���
��t��G�R��%�[1k��yJqeZ=f��I��(�(ѽ��D~u�'�
+���c��6��K����h撏g�F-�5
��p��z_=���o
٦�j��l絆د6��k����c
��[<�flsTɻ�i�nSTq�o.
+�����
��}x�@����
�Q�`�����+�*r�{
+r�,
�aG9-sy� 2M� b_a�� �ȓ� �| d�g!�;�� Bڅ�^ �JBH�
@�'�cc��"s`���|Wҹ�����:I����o�
+�q#%�� m �'(
�:������(� ��� �a�Fbn�~�[
�P���B
� �
o��<�c<��Q�W��B�Wݒ����W�R]��egPearQ���Ȅ�B��@����q�� *MQ�2,��;h�'@��OiJ/�[o�"[XEgC�|�l|U���&bV;!*��B��^�%=�`�ݰȗhR��6�aJ�4(��> r?�w��
�0J XՇ."�x,%�
|X�{�����|�*���3�Y�
���4&��*b
=��kw-�+F
+�zWz��O�W���w���?�;o(�S��ܲog1�����0�Cu��C�
�I
a{�0�.l���>d F(;��_W��EX7B.�Vg2&�O;b���͕[�pS�n_�ck��N�� R<��{>ļs�������� �u��hJ���m���Ï�u
;�� /~a��^> �W�I��0�7[���F��r���-���J������;r�p�?�^[
~_��m�o�u���&��ig�pj
����;| ����' �0�@L���
�8O2��ߏ�뛍i�[�
6��m�}�|i�:i���d�Be
���
y�M����K�7�η�;INNr�
�>�XT���ݘ_��63·�#@�T�Rg#�
�
��'���������Yb��I��y?Yp�$�Js��z����9�b���z�j�-�2^~yg��)��
:+V�
<ū���V��H7��xk�^heH�����|�2����N$��F����z���Aꀨgh@\�z�Mn���T�X�f�M_���w:��
������j��*��,x��
+������d����p�2����+eݥ�7�OB&dO5��3@��
BkRP'�%�����,ػ�x�l@�m6r��!
��|祗
���k�%�E�)���2G7v>��B�X��ֱR���
q�6�����Y],榜
���C7��B
��ĵ^#揀��@��H0��a`�-2?���~m��Ӑ�o��t�?]�O\:�K�xl
��]��Ck�����i����i���b],��I8��g��I�����hu�ݱ��%}�vxm�Ϯ�\����Dn R��ie���0C��F��=ߌ��3{�5�w��>��m���Q�[�]������O/�����[>yl�L�����cH/�{��BU��>86E==��Z�GDu���6:����# Ҝ��]5��3lߙ�
��Y�ˍ0��p0:�K�2F��K״;x�m��~F7|La��g�|
����hSu��H���rSO��6ɪ�z��G*j
�0ѕ���l���w��/��u����4hR��6=+���
+�&�����ة���V����[����,����x�teC>v��>�����m�Mn���C�|��G�@_��>���
+�R����p�@T�ú��3�z�1��_! ؓ�?��6
jJ
�b��ILFU
!���W\f+���`dM���mY:
/��^+mt�A�⢦f��#�r��sU���E)��M�2�W��_'[��Qev
���p�e9�����(�҈�C�ST���=D�ʆ��,��w@<=*]��綉
���g�s�>��K]F�6kn�*~k��;ߗ��Z�
e��LS�Ǚx����j/�{ޓ�_wq�Ǐ�OJ5���@D
J�c(ըa
-{?G��`Ϛv�����0k^���uU���b�
%�n��
�䡿�J̆���
����wR���w
+����y�Kх��-�s)��l�R���R67_I�1�g����T�@����u���v)�
+t�N�\�,#}�od�/�99u*��u��vɧ�,p��sS*(���ܵz���b�zd7R��$��DĨ�
+
�
��Ǜ֖6��P�\�m^D潵���?�uR���ԩP~�W巏�
�����q&�
_^�ӻ�
������T�����l�
.G_ݪ�ZO��8�Z�fq|h�O��g��\
���l#0#�,K�&X�
�G Ĕ���p
𥐜�@��f<Z�����_W��<��2b
�U[?�V�jM�áLlE�T�CN��b�ZqZ�&���5�G��{a�y�nq���^�x�����6H(p^�_��������j���?���������\���M��ѕ�9K��f
�״~
+
u
�u�V�;%8�o�NH@�.�OKH�FlL#�
��n�W��r
2i�>KI
z�����ng�ۮؕr7�u�0V�`��� ��|� �أ ����HE�hix[.�K�Ӛ���t6��#�;��\+�(/Q�캷����ȑ�"6�G��k������]j0[��ώ��1��1�V�1.4�fb�c���b�m�^�&��4��W h�=�ם���
�;�͙�v����y��Re������suL�~�c��1���?�
;gV{;$�m�naݽH�Uz<3�o��oٵF]�jP� �_�DJ[�ך�2S�_2������1���d��YC��+��?�T �vu� {Hn3\(r�0w}RIˣZ�"��\��Hڔ��/��O����ֶvHef����?0K�a
N����X8x��x�b�1�j�d.̒���ҒV�?�Q<Z��|Ѿ�m�$��M�4���~i��}��=�'�*U�:H��������B�u^qo�_���jL��8 E[�E,ܣ�piwF\aGIUӣ$ܬQR�7��l���m��6�=��Ș� I����� �}8
Ԋ1���v�0��q$f�jq�5wq�ِ.�ެO<'����o�
�Źes��*���ވ�\]�Ҙ'[��Ң
/�l]4�~���d
�|i��/��o�W��������3ur�g
�g�Ϗ��_#��Њ��3UJ��
��_S���PڵBM����
Z5N )i=B1ge���
+)dj,�-
�²�,�2�]���yl?�Υ
�|��S�֚��x1=Q�>��dc�tj���TH�2�P�k:�����.�y��vوQ��Q@�)/�P��T B�E����R����}r2,�^p��Ҿ�h�� ��mh�b,��{�4����t^l�'7�B�wm_�cr1z>��ǫ�WouF���:�|�=��W>�aY��Fm/ĵ��@����Gl5��Y���˺��Sѳy��Z�5;���,?�
+ӹ��O1�6���5����
�V���C_6�a����~l�����-��X����g��)��ڽ�G\��t���ʡҮU�
�$f<�AVcDK-�ZP�]z:3����v��Ͷn#�o=���z
B���v�ks��ϲ��6��z�u��}����*9_ at i����M7�ɉ�m�}h�l��[��4!��8j0W
�~EV�BaS
+d5�.��B�_�L;p'4f7F�ڟ
�I�パ�i=m"J]����
C�
�I�ۤ?��V͑��M�W���zdk�CV�w�Y
����qi����f��(ߊ!�����ߨ�`Z�)�Sqc���J,X��7=^�њq�A;nezڸ�w�&Zm�e��*���f5V��fj3���
U���˪F����.%9��e���X��Jd��˩�X�'y�)�#d�����
+������|u�G(�7(���
Y��h��ȝ
�uI�6w�
O����=�U
+z���+���Um�*{͖/�)��+�ʘ(8Z�$�S�@�W����[�:j5$��\�y?oj�iֹ��虭�
.�,�&
C� ��
2Ϩ 2ը2��
d�@ Y�8�\s
�\�+�|�3 ���C
䗣�h����i����2yb��� ���J
+���+��x
G��?P����/�$��+�2��[ �O@6/P k�$�k�7�Ӕ�d�?~��A�zڀ�W>��m�Bi�7�� �؆� o�Xn����S���q�M��˪R�1�S��������Z~�Z��{5���ݦ+P]��� ;�P�jrf�'���F�h�[ �b�nJ��^R1�T�,U��tR�S��N�!�z�
+�D�!�x?R��{�����XI6��˭M-��{�?d�9(�D��][P��]���VA��=��j �\ �u�GS��[ 9�@���hE�A�C��Б�o$���C�/��'��g����*���[a-R��c�/ �54�N�} ;��B���N�
�e�c�Ⱂ��#�G���&�p�h3� t�R�L����B, �h�⫓��
���>�"�R��x���T���
�W�+���l�Q���d�?�q�t��{�Oȥ+P'ۂ:_��CsP��
�m%(��9���=���5@��Ѐ��e����܈��&�|?���]9it��|1�`������ͪ PP��Y��L�� f�=�;��z��)����\Ao� G�j�
+�� �`{��"@�� ��:�[X���ҷ�Qig>ߜ��b� �
��^��A�)PAo������p ^�L:~yyX��۫Sr�Ҵ�d�����A��N�ν�(6�!��� 7���}��Kd� )b2�e:9��Xw]س?�l�����>��!e�:
�
�볼?*
J�A��^^�M�KK`]L�eǬ'��
+��鍓D�-fDž{[m5��AtM-���ؾ^���e� +4��*�A~֙D��zh%k��)�=N��Q-'�|�`Wf^�Lv����w��{�^��U8�N��֞�ƶ�����-.��]�l�֞:�L�́��7��E֯X4�^�
ٹ��L��r��f�����W 9a�.t(�-.ZST���TYO�V�Q~�3V7�ԯ3|�y�V4������C[��
H��ﰧ�~�
���픥�7���\��v����?������S
z��x�����:v�ٺ�?[�?�kXU]w��ٌ�$7��&�.���LT�0ī{������N�T��E_����;Pl at QlP�
T�AQQ�����k�3N�?/�5�
+IH>B���Zd�E�3s�q��_|tr~{���
��ue�����r1�ծ������ �����&
����H�"�/´�n�D|�mL��FJ�7 z�&�����@>�:�����q4�"�w{�o���V��}(
O�Sc�S�Y�?ɝ�.�� 7�>�γqj8ݑ%�Y �֠�ݙ�ڍM�[��Ѻo� �.c\/�+mm�}�HS����_�U: [g W�r OW�P� |�ׅ��є����H�K�I~q�j�[ ��S��1p$u��U������+�W���ܦ�]v��o�3'i�,_�
Lh
�A��U�Ϡ�֥]C q�� z��}�
��y�b>��?[��Z[�~��ǵzNڞA|z���
�nd�v��i�����l�ie�2��_0����Ms�-+&�ӻ�r�i���o�'s�K�ҊUBic6.?5�-K�� ,�v��T#�
+:��������-
�a~m
/�A�⻝��p���fw3��۹�K[GǪ5b�IAh0E���c&�-�DM�v͞~IFiw6�,����7dT��FGR�>!�G
+OjK�q����!M����B�vȤTc����w��0�н��y�h5����^�:q(����Zϭq>'�Y����"h��V��BZ���*���ؑq�AK�'����A
�e8���A�����ɷ���W��tH�V�5��&q��N:
���N��ry`���}A�~�C�9�aN��X6ښ��v�Տ�����Q�B��"\.�,{VA��mS4�ۡ�9
8��f
~?s ��3i�����H�&���87��
d}! u� ����'Z��>U'h�
���Z�[��1��G+=7����s�h���P[d�t��P�
+H�<ΊȬU�T��3�d����-��{[&�Մ
�e
'A��[ߑ��=��`�-'��$T����g��9�
��ڻ�g��
�
+���hgǏ�G�Q-�IK��5�-�w�gb^E+��PI� ?��#��7�:�Ԃ��m���.%�6�q�e���δ6���W�Y�#���L)
+p�y�����Y4�:}�暇
+9l�x�[ٙ~ngN_����O%�R{� S39n|�pMK�ڣ�0�5�|�z|�5(l�©͵�!����z�o��U
+�.�L73I�����5�L6��S��d� � ��)P<��״�Gs0�
�|�'aa]�1��m�g�[f�U�üK�d
+�F�s�.�e�=�usEo��M#����Ry{�4V��rXWN�a~�]L��4H���l�͕r��~#M��Ǥ�#�9�褎��
?ֽ�5_ޅȵb3l�dZ���:�ִ���1Xv�y���@�*�%,1�vu�9�f�v�:�C��/|z�}����2�H�vW�~���}g��
�vJkA ������$��r
�%<}���f�_�_�s�Q�l�x��鵒^� M��:�Sh{2ܕ�:��|&��'O�u��p�gV_+�e����r��~�
W`gY�/���
q7g_
+:/sPk^���v3g:�w/�%iK�&(�iP��5��FEW�e�ZQ?��EY���)��i]6�9����Ţ[���l6�<p��ɮ>1$.m�`.vk��zs1��V6
��֬
�g
_;:L89�L�h6���Ԙ�j�Z�(�+?��ğ��$�ƳZ��.r�6d�h��[AG���J'�?���v����0y\t��ɜ ʯ!i�
/�y�b}� �Ϟ�ή�ue�7�F1�\�ʫ5%�Ms*O;��o��xDTR�S�S(M�2R���gj���w�
|��;j��7������
M/��Ң2
������=]�����t�e�C��b�Y%v!���Zq���s\3��Q���o���D��� L\�����O#�2�"=.�z����F֣¿��N��1Ӎ���#s�g
z�s
�
���8�9"c�e��'��C�;�f����g��`�^1�:9��N�қ���tb��$�eM�.u��^���+7�B.Z�}�
��G��w5;.�Xn\Z���%liد.��=��F��(*�I [...]
i�������@l�
��;9��s�o���-��b�"\4߁����g�z!�@MF%Г�?��}l=�}m�!�~�ץ��ix� �_�}��HU��db���w��C���9�������a�N왈'�-�D�����|�(���7\�'r�~�-�S,�;�C7m�K�
��y�M��r;��҈
��͜�{�oR{��0�M�fz
���g��{�ן=Z7=�k��B�=+�k�mޒ���"��G�(��-�h-��i�+?�R�Mi����'��炤R���[�O�:���N�IB0����Ub�V:8[ϑ�U�:�ô�hE֓kƻ������wz���Nm�{~��g1��Vj�v�|u�^y3�^�r3A
���W��(�\v�)�ϒ�7���GMܝ=ho�z "g�F��s���П[2J���r�̹P�c7�Z�'s�j��6+կ�)7�5Q��&d�(��Y��֘���B���cǗ;V��t�(�=
r�
�����EZe�k8k���(�EF�����i�5�E [...]
+
�@��
��B ��p �4/ =�q�#)�W��ܠ/O�& }S|���8�}��%�}U��3
+��#�x�5���a4����$�v9��O�T��O�-/
�f6:@G�$V =�+ �B`��`��
+�a�K��6A c���U3ޗ�~<}g�8���w���W�UOQ�3�O��KY<"�{=�������
����P}< 5��� �Ly��Iy}�W�530�6v2A8t� ��
h�O͊�s�
����/�]C��9��_+� ^��f]#
5{
���d�ٿ���0�C��'
-�8D*��� ��IW���C�0���e �;��
(�~4`�� �]� XL��d�W�4.���|z��u
�۶v�������f٧��g'����
�у��]�L+
L�6�^�w�^
w�
��7(_���e]�u
�dv�Br��$N�����)��O��>�.[o���|<#��w��
Eau�z>�
����Cy����|�B� �׳��J;D���mb*���Bz�����U{�[<�9�q%-�cO�����z�����"
��\!)�S-)�A`��.����}���3��{q���|���C�����L����m�v.z��>��u>�|����Я]����̪U��ԞrRϟ�?l�W��?��:��P}�=�{���i�K���_�9��2o���z����e�� �Y+���^��y�ܰt7��N2}��W5]��^6X�=
P�|�~���oD��?Tj��óCr�amyy��_k?���ny��{�V��`�s/\_�Gvԕ����]�3WH�ec�ȝr`�,"�z�'~y�{&�b�B�\
V�{�,���$�^Y�
q��ǽ
�V�����̾tm�w� �^��m\��#���-w��+`iS6ݬ�"������i���o ��K��A+ խ
AjlAnZ�������t�#���zl��6Ov�G��?�
^���ˮ��Zؗ�����=���{��(��әP9[6�
�c+�&���<s�"/ù _�V���%
��Ǘ��V�?]��T�>H��ez�h��f��������V��ޥ������ޮ6+��.�
+�����y��j�ζk������˂�=b����B`��<iЧ�J?��^��v
ؐ��ŏV��zY���:�~#��A'�%q
+2�Obr�����
8��A�[֏����r�K�?�r�]#�����o>�g}Vsقm�
K�1ٔ���X��"�)jGu�k��u���sG����r�㰲ݴ�J�YL�@z|ˏ��
�
�夎n�P}3 5��
j�x>&\�Wdu�E�7���~i-B��WGz�u��S�5�^�h&W��1��u}��کcZe����;f�����ք�ʢw7�.;�w'��_Iy�@�[�)v� �៙4&+�d��� �K���j
w�&�A���|�
�s6�;W
i}���(��ƾy��>ꬵ�WP��2r�FntV���%K� ���u��z��X�$QѨcWq���+s�G�=>ac��
��rI����M��K�*zt�����WN}�
�ʒI���KR
���m��y��)�
�uvl��Uc�T7!*��l�R�R�����ސ8�s��&�@���΅�9
�ߝ�ߔOJz!H��@��2Ȗ
�S�c�?I��'��}j���{f�D\�!�;�n�~L�`:�0�ZmJ��H{�S��2Q|R?v���\�b}�}~W��
���Q�����1����o�@J����o$�}7�s?ɔ�w�ڰ��Yߞ
+�a~!PW��M�"�tg
ǘ�ӛ�`dD��lMy5B~M��7N���""��+d�ə���-��r���K���꽵�"�%8`S}Dߔ��ޛ���F��[�5
ͤ���I7X��z
3���5hw�l�Y�c!W9��Ҙ-�^a�����g�V��J�~�Dk�/�YK<��c�~�\ʕ'w�U�9_�ւ���t��M�`~R�������
��4�^
d���/��`��'��g��D_�%בq�X3fV�т�FQC!>)R�������cS
��c&��حo���m���ke�ۺ
G�J���%Ѝ���&%�>+⾉S^+%/D��� ��%�
�t�q71�S���d~l�щ�÷�ӂ�m���5A�'�A��秔�����*��'��du�M��
���T�Z��K��K���c{�>'�;3k1V��2^X/&�2��0B?`�,���r����о��?�_}����`�~��4����!]%�25[�kL 0�g��\n7�]nȵ��|�v�mI�2��
��F�tq�Ͻ+Eν�ؘ{
�=��fs2!�$��#�?�k��ᇤ9Y�����F��D�_W���5
7��,Y/E:��M1[�΄�(<{���*.G�-T�8ᝫ� >�H��>��
m��^��0�;g�mvblV+PĬV
+�Z�ΪQ�5��k�?,���7�
+Z�=��n��lR��{�4�������P���%e�ƍ?62��#
6[�p�����!X��G���r,{��d��ٙ$1��U��.G�`n�qfZ�/4�ek*J�tϔ�H��S�=�b�xL�l���$��s-��Oi:���1wh�]3 kR��{�+�̖��ڊZ+�
��
eI�+���<y�O&��8_�R{�i�s�$v��4ŧ�~�
�o�[���o���?��ic�\ic0JhWz��%M���C��n����n��lb����*�Vb�
��]�T�쥏�e�R���W�h1�
qu�
�y�a��4}5��)!R�S��͍i��/idt�)�2�QY.�S�-��h�t�lq�m�4fp���o\Yc�=x����څT���U at B��{[���հB�g��O_��<��0�n� �-��JSht�
�]}z�&�K��Lq� �H���}�jc|^�
<��=
N�t�6䈌7䰻7�o�C����n���|��xk�N�!i��9��<�
[���|���db8��}�-��t���:V�a#x�w�H�Trst
+�=KR��
IP�&I�p��
��s�c����}�8Z�����C�c�����E�|4=�4"ˆ�����vB�������
qu�#�|����F_U=kݛ���bC��A#r퇋�dpċ��Φ��p�b�ʝ`��u��yթ���N�vxSf�p)�u��a�(��
�l̃5�(�wF�Yh�~_�7v
���픘>��Ƀ�C{V�k�U5�{���==�n犩�Nc�1m��Z2�͘�h��u渞���Y�F��>�ӝ�j�� W}ힾ���q���e�
3�QUx�Qq��}8�.���ޟ
�X"��'����V;�]��6�Ȥ�f�2������Ȝ�F
�5۵���WY�<���,Uތ�Y�+��
��B|!��7��� !�QG��3��*��s~�є�o�+S6��Pl�ݴ3�GҺ�������oNj֣�f�$�F��='�U_�ϕUoq-_���$�ݨ(�*qA[��ř
�٧���2=���h��4��
]G$?�į
+����%p�ߐ��
o�-�)y�F1j� ����nIB�!GSv�T2�1�sӶ��U��%a|����(�e�Ϗꂔ�"R�|
���N�2;V`�^L"i�f��K���A��:�$��Cd�I���*'AW�� �
+��/%
J_ e@5� %i��� P0Q.
���g�� 8[�������? � �x�� V�.����;��I��~���1�\��V�b�9�S���!_��; �6h���8N
�I�Z6 0_p�x�Zx� ^֒�^
+o ��
��U
���d��"A@��6@����Ȍ�d�A
d���\gfաc�����F~��Hz�)�JWB�Λ��� ȡ@��O�U���u@�LA��'��*�?_��ooC�
�2���8�8
2���#���c�r/ ��d�^
g�rL� �$�:��&�`��6����#���:ʳyl�i�����S�$�}Œ(��a�ta��(� ���@�H.�H=j �?
d���d�"&,�'��IA9�����>H��=�Ȼ����q�F�S�yޮM�!Z
��]��]y��{O����P��~@�
$if~j�'%7� �N� i��+!>��*� Z�v�jPo/,�E^�q�xUv�]p�%��gԀP�ɏ��g]w
x��V���q�pZ�n��X7�t1���k^�+Ÿ�k�_p�� x�� Өb �|Z y
�
2"@���I����qޥ|���v�è1�Ϟ|�n�m#�
r��<�K�|�����.>�9�����ntn<�����]V��u�P�$L���z�Y.�?ǿHι�����0 �9�j�� ��e�������]Rx]�Z�)�~�A���]s2th���iU��
O6e�R��z�����=e���
֓рJ
_
���I>�� [...]
4sB�&:�7a�R?kXo㦧h�ڶ�Ҕ�>��T�
��4�'1�����h
ġ�hS��M��M���ѷ�1��o<v�G�F�05
|�#;j_���nix�[�� �4�A�{�7��
![r���*�՟��8�����MþM
���4k��� ���i��Ք�O��V�#�z������깳��^ki����=��
�oJZl��^�|�mf�#I���g�ϒlix�1��l�M)63bT2�x:��d��&��v��|
+�4}Z)x���Fr��0@��'����
�&K˨�!g!�P��mL|��6F�[��\��Q�FoG�e�V0�jR�-R(�
6���7�A����]�י����>��ʈ�SW\�Sk
�R�w�Q6�d)�o���%Mt��@P
(��������U�a<�F̣�(��LLGr����حۘ液
�~=�b2cA�N�D�B˘�
C�0�2z�-�������^ڵ�Z�黲�)����
Y����qqKzM�N�-)�����F��$��3��W����&���3��;(
{Y�l��3v�<1G�{�ٵ��f���ט���>3���O<�J͝����T�KK�{ב��%�^v
�z���a�������A)���k�X)�o D�|�E���g� �i��t����
����y��9�*2�{���J氖��
+螢��/bZ�,���a�+<<�O|�J�f��z��)���,�y
ֱ^��m.�Օƻ��8)V��i�+=�1 ��I3�ך_��.��PI��atwæX����4m�4vwB��.�kK��T�#J���lu��
H�:�1�VVs�0���5x�9%�l��v��CM-Aإ8ۢŚ)�o ����
0��7!�<��=�z�}�r�8�w�2�nL=���/H�V��Am�ˡ"d�,ù����MѸ{��)�h���V�t�S�����.��6U�Es�{��`�I�i��悀�R�� (��A6��&u�lg���
�����~œ��� c_/���y2U�]P�m�U:��52�@"+aN
�w5�F�.��q�ߞ���j.n�7���.��vn�ߞ�5�Қ��;�\��_��zn��O�U�Ί�Ʊ
��n
\.��28��y���AXW��B)�i���X4$�\.4>�D�o�B6� �:���p��
��5�?�[�o���2X�d���HF�r�_���I�R [...]
ޛ���m5�F��s��}_K�Z���_c���wN��ڔN:��>wgv�����f�w��-�33Ř������F��+�0��
����T�f�/��`��Y�.x_� 9=7�'E��RgK�t�s<ȳ�hFIk�)9+
��ery��QC�*�ټ�j���h�
�sm_
���o�{/.M�p6���M�i�������z�r-QF�M��݉�鄳�v�.��������Uد��4��\A�
�
�Wn��)v�HwTf� �Ώ�a</
6���
+� �����f��K��?�`e'��N��Z���@���+�Ft{��Z}�t����&ˇ�(f&���@�_%sݔ�9��
���O������+��tv�0����L�t�����^�3�Dn�f�&mdWC����]���%Q�
<�ƪ.Rh~"P�w��$��Ǜ��É��Ü䬇V�u�ҷ�<;8{k�u1�yJ7d���b��L�JX���Ao�
e��|mi���ftf�)�z���P30���Ì�Z_�B�5*�9bT���\^s�32�K�����9�Ź3��;n�yX�x�ˌ)�]|̤q���[��΄�\����
�W�������Qy(��K�=�^����)
ep�
����
��(&�@�
�Gv�w����S�u�U�/o@�_������d*��8xY�i��i̼cZ��v
��o��m��c^�f\w'�_"ڌX�� ;�ò�)N�@��
���
�ۄ����\.����=�������k�R�'@��b����n�~��%Q�u�'��έ��xO�W�������XY�d^sѶ���+��rg��T�/�������t�N�3x�e�7�svF�N�8@�[.[l7��f��^�-1�3�
qM��֚�G���
5�e���a��z2 �ꖑխ���|�_�b�+ٷ^
�>�v��|�3��
�y�W�9���1~Tn��^�7�s�n�n����e��<�Kè6_
X�d�TA,�v
=��_˽�xu>}�*K�Ŕ�wm[nLY���ϗRۢ3�hY"�2KE�W��ϫS��W�7�}Y�?B�e<�=�I����k�_�$
/Pa���[�-�͈��
(�'uL�*��]��T�����,ޥNv�-�d�LV�\��P՜#R��^�0v��%��.�B6,|@�e�4+�N�~mn2¶��ک
�b��yq]m�nB��'�W[
^
+�eo@�β?
6�IT�>hU��|�R-7�xV�v������
^в{�51vб����d������
�m=��NN�V!��
&�[�����g
�Į�_~R���AB���{�q�zg˝h��<�4;�
�����>
ֿ�
+����(>�J�@��A>s��^��1����˵3"`�V�Ad+3���V�N�/l>��O���L�ma �v/1M�
���G��j���%��K$l�;���Y�%���e��9�'=�\*^��
^�o�E[��u=�V.D��f��g &i�L��� �N������SRӭY^�Z����s��_qċ�M�C,���?���<�_� �oas��d����PN�&_mL��@��B�N/ ��O��ꥈɯ
_����
V
��3�L^Pi�K� �̑�s�w�-�_B�G�KH��Q����y�r��4��
� GI�6�Rۇ �
@5�k&̇ �@\O�T? �A�_aF_ m ���,��L fV �[��R
=?F˹�{����/բ
+�w���1z�-u��ai�h����)q��lR@������@����o��D�Y���x1�<>X ���M�[���c�tc�
�Ӗϼs�h�����C�U��~t�����n���w��w�W�Pä��S7��R�Q�����AeH��<�� �.� �G �e�C�y ��Ɣ}����W���P���t"��
+��k2�}ns�l���������_� &BB�����A\��|����r��
�����~�?5-�&Q:�$�v��'ݛ �m�T4@(�A1���ױ�ޢՃy?��y<�C���>Zwez!��p�(�B�Kon�)(7��sϫ��\��^�|
+�r��\���[ߌ�>L=�*��0�
~@t��PzU� �@����߇[G�.1�<[
�tW��=4������s7���
x�
JYkrY��3�<$S�
#8{8�K����K��,^�7����5���Kz�ܱ�2ؕ�5� :�B �dv( ��S�@��(�ޞ\�D
�����X �ñ{݁�%��fѥ�͡�P�c?���������e��/��F�pqp��x�ٱ��_��Яc�2�h���2v6Ⴒ����������7���ß�7u)�'E��CE��X��EH�ݵ2��0��2dk'�L�)^��+�z��~4p����Z�N������4u/�|��a5��8[�yrZ�e��Nu�G�#�'
Ȁ2ah76,K
�����T�
@
j��Y
`k��:K� �ك�u*��ğo�h�Y[{��^;����H����̼����q�f���f�~vi��,e�����W���۞9ة�a75��>y�S=��i����
�ٷ=N��?�@������V���Gm��Z�r� d��P�09���]nL�ϭ���.?l�c~�݊�5?�c�
/
�^C��!s���>
+;=�d��|"W��
��N�Q�6U89�S(%��2=�
+��牕�;��G)��Y�z���LP�\_�����C��]�
�r�ظ��,�\8�f�v33FT�B�=�-��۠���I_+I�zƏ�Z݀t�N��b�JC����]�r�p�K��a$�(OR��/�ϟ�_ F�-Y�;y3��������
���^şM�u}`i���4eE6�����#�
�c��� J�����]W��7�4
(-ߏ���A�$O/�D�Q[B=��ٹ�GL�4%ݩO0�� �2� %���-$��f � �wT���ً��[��o;:�%��={&BW�Fv;��=�Fy(���g�U��V� u$�e�EP�")��ua�����u�w�2����,�I��@ʻ$Nm,�����ű��9D��m
��� u����s���
}�<M���é�kKWn��Aiu{7Y�o���W�K�>�["�
�83gy�6d>��l7�=�Ux;+�m�r�'<~`6��q�B�@F� ��!���
��s�?W�=乜�^e^� ���)��3��.��*c~��9o����
+�w�H=�D���E������2�m�<�-qas<هM�V�p�ۻ�]Bqƭ�?LS&)�X���_ "'���5��������m���x�Ng�WL��|���V�u%���),YGv����,ј�N"�xw�ʞ�^���&��(��-j{|�x�i.�3[��Q�uH����i��-��$�f)??M~ ���U�e�r����m>
8nse���1a��V1��*~Y��LOR�6#~�˭�is�@ɒ��n��Ϸ�x[���f�0%.8n:\���v�Y��f�p�O'-�{��|�IBk�2M��H�@
�[�3
��A�/���8�ˍ�c�t�0��(���dM /���ϙ�ԗ�t��8�}i���+~O�
+�?P�-
/��?�+ف���̯�j�����`wV�e_9�ocx_�j-!��37K�.�L�P?��T��!��'��!�H������{�������3���(5E��W�$Dpf����!_����b�f%eL�z�x\���ka�I{����2���,�{�Q�ư�|��t9e�K\a��4J�F�S�z�t
+�?m��a�����ӡPY�n����8�
m��eY�oqT��B��}�G�Uޖ7DoS��)w;
�
�ں��ݕR��K�����w��drϺ�[���
�9sf��1{=�X�)$_3cMj0��t��m:�����"������ۭ����
#�l�j#�U�\��<cZֶ��=���έ�C:�]w��h���Dz�R�l�%\���x.���j�7%;/���R=����1��ޛ��Bvzs�=�������p�������:Zd2W/
<�T��}��U7o��Qy�^_m�9TX���y��`xi���%�l��u�B+v�.�l.���9A�f'�N�
���NjҔ'-b��D�4g�g7�I���'ݐ�&]o>�t
j�����:�{�e_�m=��CF���զ�O�(�֬�l��g�R���2�]vwm=�<cg���1;�ur��̬��8fӼ(L��^�L"����
Fkc�E}w� e2�N���5�JiM
��!5t�5���o�(<���=�-a�N��U2����
����ͱ{�:���і�^���� �i�m��,&�ߚ�7�����z�����B�!��Qc�v��]�;��'�сu��Y�F�+~Ͳ�ꨰ
�F��0h��|�%8f���{<Y�z���<ѥ/R�������4q���C���ǘ��J���y�>�`<����W���٭A�����67\?�rn�/B�8�!Co�$ya�v9�I�{ϓ|}�M��L���ѝ�ϝ'3[���:��H���ȗ$�Y�� }[)[X
��nv4
O��`��g�*�^��'���wA{1����#�"��}A�\[&F
�%2��
w�|��u�妎ӓ�;�5}�w�~
w&NBO���. at okT�z�V�*x7�
+L��_��`��O��R(��������X�s�H��E�>�SfA��
����e�� ֺ=�^kkCL�������R����O��x��u�-6ͮx)4��G�)Z��V�
[+������nU�"]�.ܣ�q0�y��(L���=�0�v��M��x"�����
�/kN��ը���0)�W�t�25�T̓�S|M��+�J�Sp�d�.��U^ŞR��NP���˫�C�
3�w5����(o�67\����`�~KQx�p�z� L
�v�����J�-J�r�Tʁ�(��g��t�V�խ�Eq7
�
+=���r���F���E=V��{xf�����#b^��5l^�P�D�_h���d��{n/��y����[
+�}��M}0&Fbo� �����j�W/�6��-J�#^P_Y:�����79���{��1ֱ�^; �B���TjO�ht�5�����9�9�ć
Dm
"{-"��>����B��?���Z�͂�'ә�f9�L4�,�D��Fr��J�d�
+���G�pe��a�n�ՠ�����{s�W8 ���(a8K��pZ����lW���o�b/H��A������������rg�
$!�x22�PY��J�e��U�ӿ1���53��-����_���A����9�
u��gz�{�
+��cc�ך��F�Oi�Ӳ����D9�x/eI�"�F�
��b���
|5����_�7闣�+���'y��%��w���/D�JQt�o��f�R1�зE{�"
��������Q4+N�'�g!���
E��M�d?�-�&�"���9I���[ n`Q�y�-EtE�wt
+����*p����ϧ����s��O綎~!��m{r/{i|Z��RX����(^y�(
��(�2�w:�ǐ�@t�
.Q�i<��Z)AЌb�1H�N
�Hm��������Z�F�s�^<�6�|# Accd���=.�c��zJ�z���j�Eoct������O
+���<zK�U�%3��mƉ���O�� �l��5*Ѥ�hDw�
M�
��
�z�V]�yЙc@,�ǣӗ>w�|,���W�=�c�&��
/�����أ��؊>@.�h�F'zE�+&�;���G��E�&D
�"}�����>�Eۈ���{���ҫ�+�'�����?���(8��e at rG�q���GwIz�d����E#�k�7P����z�M�zY���/Do=���z��>�������J6��
+�xM��e
\�L4+��赭W��v��dv
(r��y��X|�Ƨd1/�;H�����^܆*E]��-_3����
Zi��6M�x�
���-,���eXr��K�!�Á}�Qbesaƙ��g�l!�|�N�`
g
�MX��ԓ�OB��
R��
��uo�
������� ����T��lҺ8
��is�m>!~&�%�Թ������������d�
�ȕ��~St���E������k'�g2�>μwa����8�;u#�iL^��<
:�
+�Åu�<��o� ���'�羐��+M����c��
��w��[��t��:�������f8K�zߡ�*g�Mź@H�F���V�E�|
+��T$���@Ij���J�8��T�9��շD�1p��
���_�ɕ�Ȯ�S�7ܰ9����9����7�}����٭
y�����A�v�<6������ݦluf����Qvm��Z2l
�e]~�K:����g(~!DɎ3cI��}�s�
+�s��V;r�!�n�:[���Ň���]�MWMgOg��own�h�j��`�������bڣ��y
%��MsP��DuW�V]������[˵�����Z�3�9OK��j6i����4��Q�\�t��
'���pE��'<_�8rlW��o���%��}>T1��8�Qes�����'6��
�X��4���6�,Z���jq��_{�G�l��xT�zj���z�J��/�����l�9#�'&
+ѫ������{���dm����s����Z�����H^�ʎ�U!�L!�k3�}��ݱ�.��S-�\Fه��REn]���r���:lی��� ��ȗzb�)�.
+�WAٮ�BR�g-ξV�8�oa5����n�t��݈Zq���������j
��@��:Sm�9iu���Zrw����vJ5�x2����i��_ڶ_DG��X
�7!�S��K+dڨ���L��5����Wễ�����n�g���ɓ��
ƒ;�&���f)���l&��!RQ�ם��Z~�ʆ/��s���r"m��ho;\Ҡ�Y�J}r���O��-A~B��E���U��N�g��*7��-��
6R�Y�Ԯ�B���PY��E���ᯞ/�(�/�~Y+�;|D��f��u]��W�0���5���n}�_n;��IY�پ.J
h/D{�"((����ӂR������uYa�-_�
+�r�oE��o�h���B����p$t������N�;i��j ��V+L�N�r+۪m��(�4_U7=G �
+��T�ټ
�=>�n�� �y�z9H7�����i/�Ф)��ĭi�h�hR~���B��!�1�oYdd���P�/�gӣ3eB�:��q�(�p�Vϊ�G3���q�'�<F� E��`m9{�X\q�
��ǹ���f�|1�hiu閎�)6w��N���5TL`�S�R4I�"�!���+�_
.l��#�u�I#Y}\�t���j��[�- �i n�jAP�W�7�ܐ��g�$Wj�"��L�\r�=Ө3�����
�<ի]ۤ@է$��y�u���V(p
b���&-)��}��_�W�:���k�}ވd������h��
�����M��>ߡ��R߃�
��*�K��0'�?Ph���0i���x���!�6����� ��c�v��[?���I;E+E�P���ҷ��Cgk�0���)Yw��@���
+j�[����Cd)�fn�q�N��
�`��zT�p
�1}Ѽ��^I�[�D�_*�����Dxn� ����i.U<s��ؼU�����b�����n����Z3E#E����M�K���S�s�) �ك)-{�v#�^�)o�3i�W��l-k��f+(д�nS��
��$>#������� 9ث�:��r�`V��T-mV�r�&�,�nL�F7�@7R�J�@7�=������w�.�q�Ƕj�$�MV�wAE)����*d�̈́=���ۢ;*x����%%�P#"%�
+�
��nz�:�Rx��El�e͍#l��rh(����Yht�$��V�2�V��y�|�m�|Ԫ������oD+`��
Sg��e�3
�_���ơˊ2�F�r�<�}�9��J&a�t"F�|��IρD��+�n�;[�l*B�E��XE���Y����Nw���
� �%��M��(/f��
�J}9 ��r0g*�
h�9����vj�@3�����#m��:'dW��q!%}1$����o��i�Ɗ
w۠C@�z����]{�
^S[y�n/Ċ�~՛V��`�������ͮ<�Ad>���|�ro��hQ����A��V�o��[.v�I7�t�u��h
+a;�)W�[O.(5����?�j+�D�$����]q�f��]��R
�%���\K��2�,H�&�jJ��8��L�q����t�����ANWSś�@8?-]��iiW/LKr1�
|ʸ�K�Ms���W�O�=�7K�ƞc���*Ϗ�3뮒�����61��9u>�M��,m=g��+;+�����!!��弜�J��`��<>MwL�p�j��j������F����3 r#��ʎ��5�
G�:6[�X�)��B�}K�N\�CW,G��
�V��du�P��Z��J�N��N�
1&�3e�R��Q��� �*#l��
���`9�r3
��
�&
<^�Y8S�p�b��G��qU���
��G��l���m
sx
v�������
�l)&���x"��lP�6�-���
{Ps�zMK�X�!8�57��E�P��nU��Ug��������6�����鲜� ٣�������{У���&ף��x��w��a�=�~�
+꽽��T�j����;�6�ӐxR�'�F=7K�؏�h��!A�\��5���m�ۿ����L;0�(䥶����Ѻ|N~�z�
�-��f����i�����]�xX�o�h�yr�,⾹8���x?�
!���194���\NR(�'���;��
+�6����Ҡ=
��Z�o��~�@s�di��M�h6��_��8oV�������8l��`
VET�~[�rT����S�bK:�8x�R3qka��g�~�ӯ��� ���R=.J�60_�{�#}�
�����@2謄�G�~a҃
+�Q-���e(�U�
�(}j�[)��s�Ŷ�)�K�?�W�|ݒSi(GO��5�峽��y��BF�RP\ui ,N���mC�'C�v�aQ���|c7qr�.̵@:D�joɝ���jzBrԟs �l֍�#�Z���SǝLX�ܳh5�����s�S��F�
��Z b ��3 !���9 @��>���-XO�J~+���"'?VM@8[
�������2g����u��<y-G}фAG�[]��-7�u*���
Vϼk0�̣vLw���r��'�v
�FF��<A��{g�?�Th�
�����+�]`4�_H�
�R�#c/��
(
sӄ7#��@��v�`^�4K�K�����%5�\k�=p�&�"���1�Z����Un�������Զ�/�7���D!�Bb�<�8���(�\�L@ 8*�I��Io�����i5��m&��(��� &�S��y�J�:&�� .�(Z�H)R�D3��\?��v��ܿa�ۓ�� �=ˢ} \�H��` ��/�D:�
+K0A�7 v|be#����'��-M�ZL��.0�����-�
�`�h9 h/��)�[
~��L89F����6^�>W��<&�8#7��42�ݟ��?`r��!�P��~�^����$���;1�Lj�`'���TlVNL�{��"����F�Q"�Ϛ�i
B�
ya�\_Vc�zd2�\}�ԍ
+܁�z��.|��e�v_v�[�-�����_a�<��D�����A�*��4�>y¢�k��{z���l�GoPzG����U����h�f�D�9Y�^��Yy�D��>8��s�#����;ლ.���MVҹ ���:l'�X��<x�
+>]·�.Unϵ����|"���QlW�x���X��>]@�>��E���>h7}�|+�*��y�`���ᩇ�c�Gg))w��Mt{���M|��5ZD��R*��g�����v�`~p)��⌵
+��:���sﰭ@�|lz{̞�`�z�~�uA������"*�W�$�i(2$WN%\���;z�k�8��
0�����,���V]���v)�-�C
]�|dF����u��^�*�o�/�8���x��`�>�������]���fr�ص��Y'K:�B�����C�D
@E!�d�n���ߴa�%
�Jwpæ��u̎;�]L\�8;�����M��+R
��A� k3s���}�����������郍]Y�`+)����ɐ�o�c�f
ƌ��2�
�9�~!��
}�-�X��ƙC�gKZ��tt:��Lr�ewԀ�����s��b�uv3s��q��F�֊�����jcAfgy��ɢ
+�ye���vO�a6 at C��}��tM=�-�$��/nꌁ�j���!�
�1�s���^j�&ˏ�5Y���e
ϝ��q ��0� gY���j�ܳ�;bQFai�M���k�jk�.m�!puy^���i�jS�2�Cg���Rv�����]O��C�����o["y~!f*�T�L�]�8��OR�[�E��!څ}_���Ӯ*4Ӵ9�w:(����e�[��4���h��Ni�,�V�����d�4�S���S){弌��m���[r�o%�~��n����C�7�M
��4���A
/"�PE����~����d��Z�����Sg�Xv���M��zDzY��5-�����Eg?](kV"�c�{�T�L_��d��z��q�b��:v�R��4�ǂ���[u+l��I����Wa#�GW������:�W����u֪�k��mZX
��`�����nn^���*�>�a_�����on�JE9�e��[O�̒�� ����5#J��c��p>� T�
[���k���� [...]
+!$���e��Zs��]�9s���<���JA�Ue�3��2��8b�~�E��� ��T
�χ8ÒB��s�۸Oqg��ɽE0K��:����4�G��R]�PI>�mwKݯ��5�9QDz5!t�=��C��2漶�6|����9ӭ(\�ٝ���r��
留� �hb{��&B�)ȼ(Z�:����L��>O������v��7�mO�X�
T[�F� l���}�O� �{��ͻ�k�F��.�7?�&\���깥زt��M|5��V<�dv��U��b
��
���|��}o�Lp ��R
����}�u�g��A
�ϻ�����7�T3
'P��h�)
(Q�3� ��^�Q�t������`w�-?#ƵfK�^\4��
ݪ�:�{����;ɳ`�x�.!I�
�
��'�p�+��*�����E*t�e��v̇0k�
qj�{���-�Z�o�����n/v�'>�4. ם�gO�#W��Ov�����5�>?ti����Q�^��b/����Tȁ��-`\�xfp��������bbF ��5aS)����/|wwn��k{���7��ֳE<u��"Bw=��Q���sBb�h�g���N{P�`�
�D]�Mu�|�1)��(�r21��$<>�w�8��0c����1��ظ��,�X�o���c�,Bᦸo>7E����?}Ԝ
�n\�
~*���Ƴ-S��Bd�->��u���qnѭP�P��}+�Q(� X�a~�#�;��
m����g7
��cc�K�͒G#t�:�PTFghu4��j�~[��k}<FA��/|wqS��d�cI�v�H]�6
+6oϤ���Sf�d+��i��3E���N
+w�D�" �������������; 6�!c,o�fU��.�)
+������j?W^]��dE�9eE7tE�����
+Ϗ�<[�exg����~�1�
��,���� 1WK(m�4���d�\l�/I��z:x�V�b� c�,�߬H��)��]�p�
э�_��Y�\-����[u����Ha�'����>J�g�Ru0�X�"�+��E����<��L^ܝ�>g(+�R��
�
�{���w���: ^�
+���)f�]v�T1cS&�#���i0,Z�ׁ5Y
���Ӣ��Ee�b��xyW���;��y��
�)��ѵ���zr>���|��
g�������
�lg�vh7�;�vG����%�1~��p������PqVų`Pڬ�6��B
+]��KZ1F�^ug�˒����g�Ϋ���bk
��\�c��������D�l�@�S4��"B�Ӣ�#�E��L��6-N��i�_���ڀ�/
Dє̬���$��=����)��I�w� ��s�����0Zl�
b
py>���̐<o6[V^�|i���7�2]r�δԏ��n-'�%F�O%_���mt<�#*<�F�C�#Jy�k��\��>����g��/V�n�wQ!�� ��`]x2����-�qsս�
sU��Y~voMK
+4�l*"9> �혀Ji
ԸY�y��#<G��@n���pb����82|��PܷD8�IX~ ��0�
��,�'X��#,���/�w�P1�U$���������g�ɴ��9PE�G��b����p�:
=
>7��z�c8��8<*�s���qnr�;���ߠeCE�ئ��vIU��Z��t���
,�c>��c*��1�v�c�i�w�K�����Ϧ�G�'s�&��p�G���g��6 ����̼�_�+�h�z�/���;�Z��q�GM��^�Q���p�du{����٠�l;�V{���c2�7�t[Z,���o�a�j��mZ�|�����n1��U���Z�o��M��\��2�
����!�?tz
�=)siM��,��@c���+�KǴFyv���f��o��T�)�];�9��<��/
Uf1�V���T���g��K�j' �U��իL�����8[�����
+i�%Wk�5R�����W
岄'x��
n�Vap���n?;��� }��Iǩ
�]�`�8˯_���X(�L�U(���(.���Ɠ�
���Ý[:��誜��,��l{��d�Yg/͓�k@�od�RHo��J�vT�V�b�C,�7�V���p��*��g:��
�oZ3ӯ���-o��`ۂ��
7 �'
��=�#q˥j��� ����s� �
� |0dvx!� �d� L;
f, ��t���?����v٥�n��ŵ�~Ç��!�6F�u��5��v����TR
�ɝ63-�_�d :
d ��5
�?_s| �6��a��<��;
ל
�v
հ
�%0�+0|p Ɉ# ɲJ���8q ����M�ȼ�
1O�fz
G���i6ѵ���yw���\�w�n�>ϒ{5���\�c����2\`��N�p�M����} �K e @���WR�U��1���_�7�\��=��= p���~��l�3Dt&��m5{�8}{��M���\��̠84��Ƃ _q��Ģ� ��@0� ��]�~���-��z��ȷ-0��a�F.���6�?�xA�0���_��v���|����%��x=��'��DW��yVK��EJar�g㇟��@Y�W�w89��0Kdk/���
+�j�t��\=5p���+�>��A���F���
+/�J�I��_~�߯�:�$&L�s�WrK����O��%�z�JD�2_s�r^�|z:�����^�2?����{�������r���4�v_�_�w��fe�/$f!��i��8Am�OF����!�>HLl���J�&���s��ЗUϑO��b�e6�M𒃚�3
D\t
M�{������1���/���s
���i���\>�#_&~{�
+��Y�T�Aˑ�m=� ��_{Y�"��m;����
(�q5�K��k~����%�5f"�/�������7y��%.��Rzb�*�AÏ���G<ܿ�m5�d�w�+lA��N��# ���˰ �v{
��{��(�ϣ�%�]�P[7,z�fb{��ա�����
����1�L���ңn����x�^_unr��ZRKo
�Y���"�-��]�
�G�?�+s��ru�.
��'������n��q�B��� �%m�d��}s}�[.��rz���h���t>�
���y
���*w
+y�+�.������Ԡs�!�f7�
i3�v�����&w� H�G���+���|�L�L+�ڮ��L�ʨG[u|�5ɰ-��]C2���h��P��7�|��P�鴗�'|p1P����0��؇;eW�y��5���f-:vG����(V�n�ޫ��tl����rgS�f�
���?<��{�:(���59[��
���S1�
7��v at ka�%4��W��9�U��l!z�i�~��1��0[|
�0�y�
���q��\��NTe��`g����pf7��[�쒽��
봿��f/
�~�>3;��ڸ���WQ�-]�N�Q�H�!�UV�
2V,ɤ�b���4y��4�R=�[��)[��D�R0�>��"�"g�
�U�X�.(��e٪��=�F�ww����k��Z
�n�h\�����aF�4���ȸ.5�(�ԯsjNYkʲ�
�b��(�(ʕ8�l�
%Q�I���Y���^w��B��oH�W�F�|p�ڨ���f�m��6
����
+2&��tc�N�0o���q̗�<�h*v8�+���
a.Wyu�=M�̖�ӥ�t��Dw��x3r9�K�t!��� ue����pcp�
���L�p�Xv���ɉa��AqKu�b�%��hi� �q��P()��i�
6�)���7�]a{����f?�H~�I�7����x%ro���Q�:` �7�ye�����r��s�
���2�N�l��lA��3�j?�����
+�w�0�ޱ�
��wJ�SݮGټ!\:M��Z(%
�����yX�%�~I��<+�
�����ZK��]_�{7����%�X �-���̑\n�Y;�~��ţ�������e�>�;]'?]_<u�+��Āp����JϫΈ�����:;���]�x��iܹ�8��R��'���9C|dNg�ռ=X��EJ��4�����i$�\�9�X{�ްŠ�2{q��x0�h���}%�U�Iy�J�[�L^�O�dѳA�cG'{E����_`��@��a �wM� ���P)(<�l��\��4�Z���i� pD
�qE�r�p��|��cm�PaK�fRUd��7a��ݚ�/7�n0
��
���/�+
�do_\b��t��N!
B��
����?�p�����+c���A<��ꢏd��%��#�����d�x�
v��\�M���d��~.}�n<ۤ�B���B��fA�t� ��eK��i����w���G��{���i
ib�zm`��H��w��gĉ�gS
�qFʼn��� � �m�B.����ף
�c[sy�ؒ}7�M�|�O:��՛�)2Ou�V����ɹ�x�kSB�&
9��Az�
�L{L�
�Xv��6 � ��f.�f
+c3ǻ����
����r� ��xY�P�e������",��m����n���9�K�ޖN�5ߥ:dt%��ND��A�xn�2��&
I� W��G�5�'�eϢ����mS�m������~��uc�C˻����b:����h�*[��穃^U�6��g���Cԭ�%6h��7����m0�5��\��:�L��O���z��9��Gp���a���aS�B6��L:A�A�+��kvwY�����Ѻ>�r�z�b�·���U����_��������k{��g��Hn<?m*�J�|X�0�s�D�,;$y�!�qE�����G���rǦ�a��+����ʦ(v��
Z@�:�����!�x���<�Hݨ��f�WV��
�.���Z2ϣ�g[��c0��岣��ϬMP;�՝�F�{�o���Zb���M��!K�>
��o0,��
6
��^W��e��{a�DQ����0y��յ�nT�����NVm��,���]�F��" ��B0W�7��2��9�Y}�R�tL��_�b�b�R}B�
5���T6�
"J=��-�v�n�7��>��ZX.�L6�@Q�����h�q�q\7��}E�[����t���t[]r�cg,�B�
V
���syp���pδQ�5Ӻ1Ӫ�>��/��X
�?��,�?�a��Hϒ���w���0��m�XbK�k6�p��~mJ�Z �r
�n�/�=��˛*�~
�-������c
��\�J�92�g��0�i��l�m�����ia�M�ZM��S��B�윆2Y�Jj�䪛�pٰca_|fIZ���\��Ŀh��G�6���J��fB�����$�%�ܛ
1����hNcs�Ѹه ��$�;���>O�9L��gZp.�ɺ�iM��p8vE
9it�K��G�\m>j�Ҩ�]�Q�>ȣ���~��viy����)��R? ��&[�mR�ۥͪ��W
�y�G��,���0�t�;-֝�d��$c�
+�ǘ;W�u�ۍ�����w�I#W��A��t]�7|���p�
�R ގl �i
��>�"�0��0koX�o�m����z���daH�H%=��2�2Z�2�\�>�
mz���먝a�K\��G\u��a�a��ɑ����7�<Ac�CT@�����3
v����:(i��n����<9(�gaPj8�/�م����S�g�n�!ŧ��
+�[y�
߁�1�<ǍV����2v��o�
�s�A�ކ��>�o�ޯ-c!�*�Z�����?�n]��:w�U��ek��!��K���7�b�_���:�~��L;x��]�A�,hK���y
�oh�H�}ot��Ԭ,�M'39���00�p.�����1:�F�mK;1j�e��R
�Vk$L�0�M#!�S��z�
�;N
(��E�
+���ڮW��E�>�>�gjG,��+�Wp����3���d�
+� ^
$��epr���tNu�N
��N`�����=/s8�a�7����zi
��mT<U���U�
�\9�FY�`*H�R�<%��T��@<5� '�W0o(Q(L�VD�<Z�b&诋�*�.j�
���M}�h?
�Pa��/>{��u���'�
�:X�pد�z��ր�FIZh�N^K��N5�����W3
Mؙn�p
@)xcU�c�8��i�v���bwK~v�D�����6���̄�TUߓ������ݤ�b��c�j_ѱ�R����gŪp�Q.N�.�Uj8 ��5 �\ ��
+���
�Ig@E�൝>� T<�(yhhU8 }�YX
��2 ��� ��} :"��|��H!�
���ԓB%��/`�x��&� j��X�7�k���T�:������
�[U�\�& �ԓ �<�Ќ Hж t�: �1 ��� <ٶ �oM �~g�aE����
��.0�x80Ĝo��������r?��쁾��4�|����x5��ZT�M��i���V#I�P����;�B}�a��诤�����U�0
�^�p{����f�b �% �� ֗�(i@�
x�� �ap��W�&���S�a��xtz�5�C�n5�Ma�mM�ՠֲ��R�R�����an�
+�h���r��bt��G���� 2�st�
� ��Un�����Q���H��Ms
��?��+�6�?�iM����Ng�?���~�*���7������G��`��u�
�
+t '��#��t��V�5�D� �%��
��`�����ޏ̛|�W������D�T>
}F�Ua���Y�'�+$ض�D��i��+�0�UȗU�r��7J'�W�ZhO�M��2Ǹ��W.��y~�m.� ���ݟ�����o|������~�j�y��
ÏȲ�
�L���~+m!��Xi��G>El���j��@6�S�כ�`�~��1� "���#T�'�r��y�����\y�U��
_i���������a�>��/��e�ԩfQ��X?�g��4�i&�������t�P/���i��o����{a�|�?���>�uo}�^����
+
�3?� +9#�EoM�K�]��<���*����!^���=�v�������'���{�D|-uؿ��
��/��A�u-�����?]`�'�H�^�Y�2�r���p��ͻ����G����7
9��x%��{�syk�1O5m�9�����*�v����W������=t���r���
�X�`� ְ�G�U����(R���[�(�Z/�C��:�[��2M2�i
u��]�G�{ɳ��q^O���|e��5#��.��>:d��ѡ��������3�J�8��n֥6�m
�uӽ5
������)H�S���13� ���h�&?H_qSOF ��kP7zk�I����kד�5�W�(�<{�^=3����7��
�
�<'[Y>vs��m'/f�2��,�4���̳�@�f.
f�F���:/T�+�Gj<juT 'g�4��JN�V��L���3H
�o�Eϝjbe�}J7$��J���
&�'A_�;'���
Ĉ�9��&v��nkW��mշ�Ѥ:ջq�{���A]�& [...]
�JV,$~�
Y���jp�+�)젧� l.�G:�=����>����N"k�obo6�Bf���|���c��Ѝ�����q8YsYf�y%c��#�`V�j�>(ƌ�>^u<�"@�������[���.�O������,�D�"�tz�����6b���l����>����2#
+o|h�^�>>�������?\�>ʳ��U����2��
3+����:Bӛ����H�J�K:I��l9!;�=Eܑ-Ip� �;�� �������e�V���
l��`S1{���yW���s��u�f_A�s(/{-��,��;��
�K�F��,��8�'fʷ\�v�A��&I��-�H�<'�� �n����#x�(�ru�K���)EaqnIbʶ����V�
�&�sk1����I��IU�6͏�J֓[�}���
�HcA�cy+.{�i��-n�59�h7��4��>�U�'E����"��
dw?�����/�#�p,���}��8{b��$7�pLm���
_����B�#��A����.TS�V�k`7
�5�Kƾ0��ָ�.TjƬOAc�Q��u�S���'���#{��x8dL���_�cߚ�.>��#LuH3��1������ڱ��7D�\GK���zo���E}
��o0�m�P��ʬVS�~
HL'��������Lآ�DcDy�rC^,G�@5
� �� ��[��Ccb��2�iy���/^{cvbx3�kt7SxtU��ׇ��^o�p]5Clu�B�p��� ���t������{s���/����Y�z���M
�@��Eg�8�թ���=��"���Ɠ�n���c�m�-"��9�
1�d2&�����N��y�f�|�
%dK��k���W�XZBn��2;p1�~�mʬQ2f��}
�� ��.�覯�:�\g��6LQ���/M���s3GE@���s�ߩ�ڻ��g�3�&yb�
OP|�W��o/��}�Nߎ.'�Ȳe���>����x�-A���lMML�3ff��^���d���COkռnnH�4
Ls^[I��W�\<V�~SNzW"��3Q���Up��(���q�:Km��ifզ��Ȑ��5�vڽA�5Z�.A��lݣ�o����۬J!�0l �Z�f�������~r����2ꍽ�6n����%P��WY
QN�W"��(DSI�u=�4�"�c�j�c�ңg:R���8r��L{F�ա�nw�%<w$��bPm3�� �L�����ơ$��b�mN�Gݘ�0��V�-��i����5��P�?^35T�*jHg%ZO��̊�z}�F���HOc`I�6���
�Q�m��RE1�
Q�[���_���ZfeQ���.?��32naJ5�ܤ���K���ז�~S\c>.�����me�i��[P�b*g�
�6��ɷvg$w��Bf���o�
+Y �;�8j_H1�h��t��
+�*���Z�_ĩ������ū��Ͻ��u�e��sQݡP�/{
�C�ķN��
+s���2�v�m�h���3��}�.��-3b"K��ޖx?��#eX�/J ;�f��I(y�'�D�E�x;(�����Ӷ)�W�eֻ�<�'��&�u"�/V�[٘n횒
���zp��Q��A-��8�|�j�4�'b���v,��"e�nA���0k�X�t%~�6��^���c�&
��֏�3��Q�9߷ ��8C_��CS
3�
H3G�����i���P���j�_,��jN�^E�ϮG
N��Ĺ��c��^��^��k���f�ر��DB��ܦ��sp�Zb@6Xd�f��>��~��k��4�u��J�R};ْ���J&}�H�\#&�J(�x@�ޝ(
y�(,�Q.�+
D�5R�b^���Q�T3��XUۃ�������9��nZsw�I�q��湞0��tiZY�(���R@����ɜ�&���fkDqX���{�u���]L0���b���D=aQE�9�EBu"X��C0�k �*!a�.!��$������d[����T[���["�;�]���^�n�g [...]
�yU5�|)��{6���N-�:��=&�̮Ѝ3ޢ��4�C
�׀Gb=�4�u.��Ff{a��z��Daz].��Yٓ�7�r��X��o7�3���5�I�ܧs��_&�(H�T����A8M� W&�{P��sx��xOk|�� >�B�П�No�?� �^ƀ ��/!�����n���V����ز�*�i��I�q���R9�|F�,mdJ�To�ڥ�d�~u��)���
�B at e@��
���D�,�
O�8
Y at V.M@b�H��������
� �1��8r�����������y��iˤ*���y&�
����|�7�P,>�c�����{Vݭn�;͇9��0>1� ���O6'& ս
�Y�T���|-~:�c�5~� u�4M*��k
h��t��zRb �y���}�� �h�t�"͈&�U�:V��6�'�f�m���z�-��
M��>�V�u-)�j��9��غo�����|�|��G�nS�`�
�Y$ ��� K�S�*���*`�.X_ ���\��
���O֢o+��ތ�$�=�揍�4wX������M
+ʫ�K�� �.���5
�_:��Hϸ��?ro�8�#��@��Oү�W�����= ����o�t Gi�K6�?��S�~�ӟ�'����K>%�
��7꿮�y�`g����}��(�&w!}/�Y���M��7���;�y�#n���R�ZnC�ż��
Ի���Y������~!��ȟ����N�X{G��Lx�;����4b�Ys*�&���ɛ�?VY��\˭J���������<��
X�S���I>T�QQ�Wcb���+�Qu��{�{i�4���|:�>p���y~B,�>w��ҽݳ�8{+8��
��y�a�
��fkg�~N{v'���E?�ċ}�r/�p�2�����~�>ݽ=f���m+_Dž��*�k+K*+�����(�iPy)�:��K���J���O���.���r�k�w�(j
�p�s?!�
�?�Š�A}Ϯd��.���������;�X�9�N��Z�� Y��vA
�̼����;ް3�ӳ����^!��_�����(�+K�������3
�_���ģ��U�?_P��]e�-�n�uJ/��
?��{9���<|/���]\m����=h���Ȝ=-�YB\�����B�t'�'=
��a
��w�s�����b��V�ۤ9�A1�W���=���Ӟ2��C��;a��7ڥc�\�:)2C�%���ږ�~��f�Vy>���tB�wS���'s
L�
��[C�>2rч��ǂ���}>��}���*z����ά�P����!����J��x��.0��/i�/���
l��[L�
�.��
6��n&�
m��iw���hR�G����'�ze�����~��|��#�dl
4��C*�e=G0�����x�ؓ;�bw^lb�r�G��#�y�5��P���s����|.���n�^@��E�e�Q.s��}%թ�آ(���Q�GH� >�:ë
$C�ޟ��d=��q @��IS*������
��E9e��
+2���ŵ~��i���vHe��<�|g�Q��a���i>.�x^ˍ�
�����Y>w�'�ɢ�9$�B�vot>?Bɰ9�!#v�� ̀ח�Z�7M�a�T㾋���-Xw����K�klo��������0�V�jF���FTn�m�|��
+�����-�/�Q·
�x�Gů�'K���[�����
F��`;��2�5��|W�{�cW�Bّ;�6�잷~�_V&����֕۵�Ip��F�
Q�m�� �����&n���ãL���?�B���^��1�e��)2�Q^-+�?<^8�^��Ms?¦��"�`��˗�.l,�
��L�I�2�}v���C2v�y��>
<�M�V���^�Z��s�Fq���S(^�W0��|�Vu�?I�r�Uoՙ��z�Z���(8��L8��sV����i�<��
��>�Nzc����[�s�M�\��*�´��
�kڅ����[�v�p�#�|�[�i����CI��`���
}���Dn1;��^�{��z��Qu��w���P�e_�ׅݡ&9�>�q��˼�\�|9Y�/~�%Ǯ被S�Y�1<��C���`T��{�0?�7�N�A��s�
�|���F(͆L0c�ZPZ�\߬�#o�#���w��KF{!�W��=�
\�*v'UQ��~�A�wo�����3+]1c�(s��{���_���iO�<d<
O�r ��:x1a�ӭ_�m7�v|�t��6��oe��L0��%<������$VǦ�w��$���J��oɹ}�ԍM�³�N_�K�{�!�شy3������(� ��l�������h�j�5�v���������R!��*�'�
.
3�ͽ�V�N�8N�^
�c�M�23~�P�]��)���K�H0u��i�v
/����[�e���8��2�+s4��~�g/o(�WC_@�뛑��t�Y��[�E�nk{^u� �6Ԉ��s�-4A��t���8Ȗ��y��r�~������yA��μM˹��;)9������XOV,n��0��
a��G�T�,
��������UgX�l�Ĩۅ�]�Q=$�a3y(�J7�s?����ʼn
+��n�l�x5�G�T���'����{�@����'�!P����sֳ�����9
+�����MC��(���ط��vf��<[k�8sQw��ܬ*GtI*�3�
5���{��V���I� ������~�#
�l�%��1.�a�L�]���m�a�B�uf~�8�h��]n�x�LI'�����FIJx��m4��]�>g[Z}��ԝ$��_ﬔ�?>*-���/#�,w�.�gU��vW|�k'�5���!�q"�1"�(�qF��
̦�Ŀ
��d�/��LyD�gv?�}���0}��k]+S��Ƭ�����,��
�h���.qe���������N
G�C��2%�;�Q?���]�����X�d�k����^��$�EV(d ���[�/v��CXH�9��
��'z�C��{8u�;o;���m������Z97ա�r��f7����W�SN�
��^�������P���ُ�>��ŷ��� S^��K�!�
+
+�n�sOx�yiqin8�Δ9+`8�e8�P�
=ký8[�lr?�x�v����F?�s�#4�2v�g�^�Xsb��"��N�7��
�FYz,�M��V���<%Q��.抨'LJG(Vkk��2_�z�}��'��E
���a��1�f}��W� "�d˦�&�
�c�V��O]Ʀp
��1S+����ݯ�ǝ}_?�?��jp�v"���O��� :8����p
���
�c��(���459�~
�m��
����H_3�4���y�H�u��n��Iu����F1E?Kѯ*N��:I���K�j�th�ufb
��,�����%�ӹ�B��|˔�І���z=�`3kζ�Wv{Ӿ ;�Mg5�XZ�L�|1�(It�F�4�5��j�(fy���Z�@�[c�� ����3 �3���g�^�>f8>�����h�7j��|�a4�ӂ�<»C�z{�>���%�~i�����ї���TF^S=�w%_�M�
�R�&1^
!;�Hుk�˷�^���
KK
r�7�94�( [...]
Z=n���y�\tAa@��z���/���)���C���[�aL
o�|��v� A���.)=��S8�a�-�L�H8�kuhj�����L�
0r㦽��<���-X0_?��#�y�K
��?s��*��Z)���ž�BUT���fT��Ա�+�ʕόL*����E^��Y�je�l?�����lt���;�iM� �)��|��1t�{]"�:3b"A��
���]��n�"�f%����)WA�e��r��NR�<�i��
��L�Y쭝r�u������*�'����(�
�K���5�)trsڨt����\�P�����= ֒��䓩��Z�����IT��
v�1�W���
��a�
��\��{���U��nHHƝ�,8Tl��P���f �G��h�h :=� :
S���
@�Х�;7
+M��ϧO��C�*a$�
��wig;ժ�_<�4����v~�P/�>ū�G��9�zaմ*�� ��ͮ
0�XX�}���u� l��>� [�s�
���
��pヱ���[}��
Jx��!�����j�����Za��.m�߁�Xq���
���I�J:��b�@q?�+�U��k��!�R��X��?$a wڟO���S�F� ~�� �C� �'@Hp����K�%�g�d��[ĝ � ��,�n K5ꇶT���a�3�<C�ZK�"��(W~�Ȣ58"mN��K�J���կW� S-�篪}`!�D@�hK]�+����6 Y�H<�y|, ��p at m P����� а�&U@����_}ZK1@��C˄s}�7
��h�D%r��H{>\�K+)_�R�/R*@�E��~1}���
���;�m� �y����6t�8z)�S`����?�;敁 �<��E��r��T���~����]�~딿S��-�K\=�� [...]
X�۷�D?
E���-\���|�&�r�˧������?����O����G?�z��f���
t�B��TF����Mޞ��
ǫvB^�rd�.�m�^�
���w�}���쏤�Lw���������?�4n�[i�'��W��_�^�r�R�.,
�6�l�Vpm�
l�ZC�b]�u�_��yC�:g����azBF���$��#>7����j����}��t��(�UF����j�?M���������Jiq��Vp���
��y�g�N�N{�j��ǎQ�����q��R��}H�v�T�� ?�ʗ�h�=��54�}7Ƭ�y���\�왺��Cu��Z������(��?Y���\���չ��G�E��iO�����
��������c��7�]֟f��iT�h���6_Fu�f�Z�W�f�,$rU
~quBm���=߆����l��*�bc2���D�?�Iyv@~��T���G��W>��Wm���pg�
#�VԬ��ޖ���G��6��
+
�F)2�M�x�[,�Zo�������
�f���넜 ��k:�'�ia�V&z抌��^mh!#�:�&{�&ȡ�
��uia���t
+�B����'�g��z�_��re;i�Ն
��*��jr¼�@�Y���Y����њ̹F<)�j�q*�14#�#�L�Fp�
��f݆'��
��4��"�t����Ͼ���;1�=1�{�S�ޝ���/�;�����@Axؽ
�ӗ��n+�y�~~΄ӥ0-twФ<�!ch�&rwq�%{c'%�z�
Oq��R8�
�� ����x�>�
>�X��艃f�;��X��<��(NF��?u��jo������/�,E��-?�T�ՙ�U�]9O�_����Is7�̕Y:�}���@C��9���m�a�3��C����g�鍍zؓ�d��_�����7����66�å�ɔ2
g���=���Ȁ�ʮZ1����"*�}�ʇ\U���?q��)Xه��9�RlK
���M�eA��fl�v�����}���\�M`��+�
���
>NGc5�Vgs������K��Y�Gg��D���ں��l�X=��!��@������z�%�*{��X�
�Q���C�d.�,z߿���
+-h��dFc�Y�ɉz�κ��'���)��[�rq�\�u�uo�=�[�,��M%j�zV�.V/��/�2�luf��:[�%�o{�ט
��*���s�;w��\���#�� Z���\�/~K߁�E��m�h�< ����b<�]g�X=�~Ο��j�0����n�"uԴ��
�h���P��R�Ue3���
+endstream
endobj
108 0 obj
<</Length 65536>>stream
+Z��׳þ_��'�ո�&�c���'�kd�U'�J�}:��M����E�5�|�sU��:���.~Z����+L _���}H.��l�yκݥ��b'�W���e:�:���
�W(BA9P���)�W��୲ͫ���nT�6r�9���A�å}v��x���m`V,���́KZ&߸M�Q+�>7F�z�����Z��V{��^�|�K�Q}O���8x'�W^wz�����
�Z��
���neRx�����ؘ��qD��B���0���]-�=�z6�@
�SC��ks��
�&�:>̌��
��!��1t-3iKE|h�si�p�k�]U�U����?����_��"B�Q4H�}ej�cw��ۄ�����h�9���N�zv�^]ot�:���@m�0ֽ
H��u�5���������7�#|f���p��v�^F��l�I;]u��P���M��aU�;횂�j�/NQ��k_jVf�
�K�K|�U^��C��˸��O�7��7awwhc�
m�d_fS`�O۲�J�iw�z�`�ߢj�i`��Z��v�����D3����UukIN�{��
�3��rD��2��m����Z��
+V�bP��p��D#����Ԇ
�a�`��u�_FwI�������vwZ�:x�<�)����D��6,fZ7
+���-�ݱ��oYK���Y���Q��|����t��|.YY9Z�ҭ��R��w�g�}��zY�:$rd����e�u�N����1���s�����G�A�@���}�8����C
�D8��I�v��K2�Wp����.�Ք�n�Am�OM9�G �b[>+�@n�s��?�'������=߂���0� �^%!�g !�ޫ��,���Qt!n��K6���ڗgi��p�m�h�Rն�L�4E
�j�F��.���:i�5ԭ����Aj(!��
+��r�y�Pd��2��R7D{�+�L��8ى���)HQ�Ք�UWh�f��-���
��^���+���?l�I���ܷI���7�Q�r_z�1t�Y�)f��q1�| 4��MTO���a?}(w/��q��p
��{�'w3�!�C�"?�bF:wi_
�@\��9�qK�9�0��(�����z��غ۫2��Yf�O���:��.������A��=.���/�_kl���"S
_�nz��]9�����VW�]"��s�8d{%��a1���\ϳB~הy��-���Bn�n�
TK���䖅�Q����>��n�[k�e@�P�?�.H釴��e�(Y.�!��)Tf��=���z&���p֖���`3H�z����&�Ù�-]��
U��dymjV���48s9$�
��Y�z�X�[u�������&t
���k*n.P�q&�'�%��o��K$�_������L���'g���g-=��)��z���ĉ9�N۪wvL��4�+�<�ؼ�����`��&4��Ϟ�~��1���ҧC�����B�� ��x�1(Zޅd�P� �WDrY=�
�����~R��/ք^�%E�p�
1/�$|Dc��X���Ѡ{�>����f�Vb|������-�����UNb7�ܧ���>�IB���V�G�ن�s$�)eb����T�P�Ժ��J�6��
�`�3t5�~{Z���vN�g4���_��y��6r1u�*5���iϦٰ�1��e�,��N�M��H_s�Nuv[�Iԭk��'w�nW $w���%�2ǖ��Ǫ�uE��4���s��O�
�ytu��j̽�%|�
�����#�%����3g�3�EfF�
̴�_/��:nC<ӯF�f4������ݻB���ё�<����4��3�N�?M2#�,V]�8��C��J�n��q��c�
ʷS��.N0�l?�V���¬ճ�G���T�ڕ ���*�
��UI�Uh�[U(����m�UMs�Wuy��a����3m�|�nD��V��]�5�.z��L3�7�g½n���� �
�l�a���A�V�c҃�V]e�~�#q��8����*�`}*������J�,��1�+�.&EE�r�Ρ
:��G���9.<���H��/��}ق�͵�����b,��F�r`"J�=fwf��X�a��X���Y��} ʼ����XS-^4 �����
[ʩ���+�Vv���j]d�r|����
�D4ױ ������K4gO4��4���_|�C�(��3
+{�㕳F��M��7�5�Ny����~��|�4t\�`��i�*GX��Mky�[�3N
+g҅� ����"@f����;�d��|�� �x�<- �����
���(`* �:@��
������v���՚�=���e||(�t���t�D��w71�&-�Iom�?�d�
+l�J�X���W3
�) 4�?H{@�y�IX8 �;��M�= �,��,�AG��t��O v�U��s
`�r 0_z~0+����#��Y'_�~���nr�`�R�7BwIІ�T�@Vs��n���-�
+B�����
w�=0�� 8�N7
�+Q
�na�s���D~��@ꀀ�@4� ��V3�K
@��G��a:�}��.-���B��P��P
�7�7l���8m<�nZ٪_�p5Wu��'
��PN|�b ��q��U�ad�T����U�%�� ��eP���J{���3@��/@�?��Z>���P�\� ��1Zꊜvl�����l��߄�5�ͮ
M�5X|{Z�y����%�b����������4�
�������'d�s@���^�o���
|�ff�� f)}�{���_��+��> ln���/c�4_��pH�1�x�]�w�O�uX�ߍ���<�������'�_8���(����V��m
��c
+��
N�?x� GL1���8�<�`x�O��_���(�ʧ�S���h�ɧj��ڷ_Wo?_��o��ߓrþ
)��&5"�UF�<=���
��������V�
�Agx�0���{'d���ڷ���P¿��|��X$�����L�����2�`���]Xf*� Tj\�
v-��b%�u��yCյ����Ӟk���W�:�$�{����pզ���Z]��Z�%Ȁ�e����w��-�j�S~�6��6X�����ɧ��V�_]�
�xع
���&�v���;
/P������}�_i�e���$�!.�?uИ�{v��N�]6H��|N��v�k(��<Mz)��/�QM~-�^Z_P�2�%������N�t�_Ӧ�=���Uۺ�j�iO��1��Ɂ�s���n���_�n��y�6����̈́�t/{��{�eTq2����Ω��H�1{Gc�'�ގ�t����\T�Iyz;�S�(��4�G˨���4���/��r�������
#�A��d��X�h_��ݣ��<�gq5����n�s����,
β��c:���i��YMt�ٍSi
[��s��k����$�G���_�!~vƃ��
��>�����}�}��ɧg���e}����佸F~އUh��* [...]
u0��dc���}�qx��Z�e�6ٝ(�[X�X���qy}:vR'=���y��;س��`����U�G��(�چ�\Gna�J��&?<٧��]��b�Gt"�}����{Y�%�,�'��;��^<W�I\^��bJǂ����c+m�y�}d�"�v��N�ܪ���E0����4du�
1��ys��y*_���I0�g��0���A���
��z��>{��9ם,��n���"��q�U�Ί���]��mx��
^��Ä�DX�߶ί,h���
{9�
+��bdN��G��/ů.�����(�egq8А9[5&��lD��xU@��K
��'G���u��Ut�1�����%�.n���r{�!�6BsXt*�L��w{\�%Z����ἣ�=��{ /�����
O
�t�n��f0qkL�츃�?h���8O����j��v>�l�cgi~E����4��|�2�Yx�bH�
;�B_G��{�jZ��P
��r�"���� A����Z l�x��<����j^�v`���y�]�p�2���|�[̘Xd�p6���fv���_|������w��i�n�}4
���3K���-
�;
��Dmp跘Bq�
��ւ��zyiP����Ȫ��'��
�:����z������4�٭�:�.w�`Q��1{�i����91���O�����퇯���^�I嶛 ��b A��1�%�
φݪH�&���>C��m��Y;��v�fn{B*w�IȬ��Ieǿ��}R�
����ߤЊŢi�9�7���5�fj$����吷��1�V���5RӝtT-?|��f��ZY��p:��XS�9�5���*����PQ��r_�eDQ���;��/�/�d�A�p�����A��Վ�y`�J͒E�Ț��U�
d۴ ��`�[�ȅgW�
+�X/N���p';�rx�TW~n�m|���%�!i
���n�����_ax�9Yo&�A��F�F/G�u��= ��A��f��
+��B5��&&�ʢ�o0?��� �Ǽ1�K��{��t���j����x�ftF��.
"�^�F��7J�3���@26�dl��9��i�(��)v���_|ns�0���ѥ�8(��}���;�(�n��5'Pڼ�Y�1�
,c���ku���
,ȥ1�H#/�]��z��|f�X��K���UF����B���{���n(���P���J��M|�[U�Ax=��0
����矂P}}&H����}�1J��#s�������
JE���Y�[6�m\{�MV
���M����ȏ^3��/m5�#��z��i�J��ރ��D�S�HɭUF��6iH���6���m)�m�"�nI��w�����._p�-7/�0{��?l{�2W����Iѻn��D
��%���wU��
�3_қ6�JA�5Ɍ4�7
�N�^){���
+��?�F�d�$W�k�7�X���c��ľzW����
+I�v��;��|�e���6`�t��Y���,tn�Yh��~X�ҷ��L�sC0'�qS�O[s�����qZ�K��
�2���47�
���i�/d���I���&�b6#>spI�<��L5eT[&-���-�+����R�ӗ̘]�kݚyfˌH���-�@fW��<�C^����p�a����{���se߾�I��&��ۍ\�R.�1��ٟW���*|i���L��X�[�D
d��\�,�ç�
'Y~�_+��-4�����ѐv::[��Bf;�'L�(m��X� `T۫|]CY�/)��)��("-_X��uy
F�Lo)?���|Z
��]�
.5��lX�QR(9� �^p��g�-A��!?�?��C��k����fW�����bv`�0����GR�p�yԅ�)r�Y����$�E
!�ՑE�}N���F���J�����B���#r}����
��$ߚzC�m����d���021���@_�$m9��m�Xq
vMc�>���<�3����y�� ��E�2�a�*ٳ��O�%�1��
"��g�x���|��i:�a_�~.�
�U�2����b1���!�霄�>Tm�T�c�t�J��䶠�"��� [...]
紴h����m�
�4�w��ZW���&��k�7
��6�JDr�.�V]�ͨ�dR�xhn�⢺�!��r#F�,���Ӿl&f�������K�2d�ڥ!0�hP䳺��G���#MH)�w�X�a�g��Ps�Qˏ�
4��1TڗG�e��U8��z�|W���R�u
/#�L+�:��xyLw�� ���V�/)�uw��wkU�NN�C�f��%ro�~���c2�UO9q�P���<�"�m24>�Pd�<����V��.5S��l��륨A�%�~��Ř�E:��
+}�瓰8�g/�:�P�5Wx
�Y�o`�t
k��8����6����s�Ie�Iun�C�y�k�l ^.ޝ�� 7�
+]���Iz�?�P��1�sz���|�����h���|?�*�R逼���=S;��
+hf�hfq�����% �
�|�f�{��f�� MؕA��tA��9�f�����M �>�?��0W�]j������G���.��4鴘#[�М�覲ct����V��4�F���c�5��3h
��m�
4��*h�( �
��]"�>X� ��;�p�
@x���C���D4� �$ �������
>�O�����s��X4>k�������7(v�ؘ��J��vؚ�M�JӺ�
C�U�BH��xx���h.�hM��X���(Y *&@�C�
n
+�����'+B''
�ۖ�
� t������� z
�z�??h������
��,���Pb��}�A߲Z_���l��6cX���:^H�.�q5���nx�K CfU��k`���>I|Е 6� {�1���9��
p-[���!�t >��>H_ _&$��V
�g� �u��A��#,��Y�U�l��aC�X�?�γkQe�����G��P� H� � E1'L�����^����9_.��ǖ��Y�YՌ�
�ӎm����]8D��
�X5�g^HҜth�1�_��Ɍ�e�M��R�+��6���>������T�UTMS �6���c
��:
��D
� #�1`$
I<���-F�����+�5�;�e�)D�/6�L=1E�S�$5�ۦ��$���q��&��<�H����ْk�o/����}�<
�
+T j��T#W%P���vj]��AT� .9r��~��g�-��
}�
�7����k�������m��{���D}����'��g����������U��NAb�-
c���*����m�ϖ���o�l�D&��WM��:,�hMB�Ώ��
-��g���-���=��;d�۴t��d�[��k�NF@��5��.%_ڜ�O7>��s:� �8����}��OԪ9���&8p�x�8g��'_����D�W�� ���.g��=�
��iq��.�^�
+{�b��9��s�>a�7���{.�bi��:��7��x���#����
+�!�o�P���e�;�/Y�+�����A��� �G�XO��θ�Y�� �M
��(�g+�7g����Ĉ���)z?��
+8�
���ٽx �nJ<Kт>��umIl"qH�j��&�3e�)�ܥ��Gˋܵ�5��C֮����K>��e �em�z)��B�|�5�ԏ�|�هH��˶���z��
:>}
�51_�W
x�Z^���-;�'n�w���!�z�!?�̔�45 ���UN������-U7c4Z�BOB�x���f��K����g���F��S��҇ ��;�pE6��k/��+j����
�k�
�����px�L��ٟ��`4v���]V��� �Qܠ/#�d��>5F�G?���m
�ai1���K���U���uh�>�̣����Y2��!�6D�:SnM0�GzvR�*ű�ӱ�+��(�s�Q����S��_��!sn�APm7�>�
Bn
�p?��W��΅�o��Bo�d�^i?�Ǻ�W�v�3��
������G����t[�
wɬ��
js�)<�c7��:^����0���5��k����@|>���4ʕ�*�F��)B�
������֦����t�z����к
��k�z,
+-_���t�@͇?೯Q������9̉�g����
.���� ��Mo�Ql-���-?��2�
��2�`���.��١g��k7�w����S�C��xD��!�2���8զ��w��}�{��M��r�f�s�M��N7f�Ah亢皙��-����A�?b�nZ�{��&䉭�ɐx��Cm�w
��)��v��B�=�6ov��}�9��Y�2�m�ݚyjW��{�ߞ�VM<��A<a�W����5�WWm̭e�������IK���n�zG-;�Lɴc��
�v���Tg4������5�[v��1G�j�
R~��k2���C��KT�-�}i�ڭ�.3�����۵]s
+i�u���Ƃ
A
#���u�Rvm*C֣i�Vw]Mu�Vݩ��D�Ҧ]�f�/1���0��>4Ac�2�xoiH��V�<Y����h�{��g�%;���[8�=�z�CQ�}ye�VP�5O�^S5�AØ����G.2���Δu�b���d�w���χ}Ů�uO��V��r�9<�zf�?/
yB_�L���䣯k+�h浾֊����[�^W�o���nV(8������&�V�-&ϴ�������I�)��
�l�n&�[�=��:nL�N\����:��C�f�
+X\�˚��^4�j7S� c(�I6�����]���3�V2�g5*
�*Z�U�y�
+��F��U���U��:��i��M��rj�ǝҾs/֛�)��MH���[�Ƣs
+`Ǿ�����(��5�+s�
�Mq}�S��J��{6�/t��0��pܬj6=�h��TW/w�C�|&�.�;���(��/�
+�������Al�K!��n\S�O�ȝ��;ׄK��[��r�(#��}�z��|��m�KCC����C�;�����5�k�*Ji��ȫ�Z��b}�RZy]��Vې���=)���Db_��8�29QH/a�� � ���h�`��t����qH~����f�Q_�ͅ���H͒N�e�'@���4���]�4�Ѣ���@�h�LCN�Fݵţ�C�r�@!�0+��1"W�GE�C('�\E�Ǟ'���H�@�AȨ�,��
��KX�[��kny�~o�lx��
^{̊�
!�>�y��k�A_o�Os��yW���j}�
+Ec��}iz��;=����>V
+���D�ru�|oiPT!�v �∙����,�Bf+6x
��j��q�0HS����g�V>�Zye���G�G��.�./�.����n�ęҀz�C�פ���аYQ/�e��AŇ���[�-�o(��\�V|��'q4��"�E�0Y�y![�Q~~�<\�$�Z��ZTP��M
u���r�%�
���q�iO���i��U��]�<DZi��vؕ�5ͪi�I���}J�鳬�nQmfk�}V�u�Fr������}Q
�a��W�����ϼ
GO
�3��AJ��ɓ5��졳�X��1
N_V������f
�~��h�W��x~�K^��e�
�=v��Ѩ-Pv��
éu���
J7����d��|yX�qB��+������
;���
���s��rb�jѮ�]�a�g�rx
a�"����z�
����9��Gw*|38%u�.%9� %ɛ�/Tg��
+�`�/�]�e4G��ʷ>�
nX�-�
�
]riu�
��k�,J��
��
+��2�j��٣F��+
��oƬ��-���1g
;3tD?�}V�T�g���A�S(���5���H��.��-WL|�TLX
W�wcQ1bs�`^���0}�n�\���r.��aA
%ꥆD�WCF���^�� �m01_k{{����d.c3�ު�.�~���c��m,��b��S�ݕ���7�a�yR[�DeU�
��sv�-*
��w8⍋]�q�3p\�x�O��F�<K�9��00g˨��sa�>I�� w1����a�V%ީ�u�*pȑʲ-� U�D\���C
{Q�S��C��I��Ks�ԑׄ��E�_��؆�K=��V%� �̧Ēu��w=�7�����-��R�o���}������^��q�!������0;r���eI�����CT:W�C��9��EhRd[�l�Z����h��)�XӐ!��Z"�����ěW��bU �N��B���~�]���G�e��H(�E��͒�
�
+T)���Ņ�
+��8�-e
&,)e\R�\8�һ{U娹���g-3W����%���~�.b�ƳY���q�R�|����śV
+�ޗ_�e�U6i��;
�R
�^�4}�AI]NjⲜ=
M�Q�pa����*��(f�����ʦqɝ��{W����0���8��=t���6\�6��Z�f1��K>��� X�|�cLo�i�� �l�{�6��r��
z;�
?���g���?�d=����
������,{'�}�6�2)c\H��
�Q�iGf �-(
iaJ�fq�Kg�e'���m����Vn~�֫�;2���Қ�m�q�pyò���k"�C-U�/#���%(
\�^4�f�os�(3Z1���r�t�2���LF��ջ�R%��w��9�·�^ �
��>X':������Z���� �W��h����
�jh� ����#W��<�C��Z5��*da�p�E�ea��n���u�@#x�B
+^�
�U���'�:��W�re �2��&����V�&��`S�g kc�Y������3`rz���\ؚ����5��ie
i��SǗ�r�M���9���+x��ʢ���[��l횞��=H���B�x�}8)�.�y�[���=���{�
�' �
� ��������6 ���<`{L�ě&z�>
���f�l�U�%�E
�5ҠuZ) ќ�T9��麗�N6w����|~r����I� �)g@����
�F6�~��ٞĞ4qv@%��>bP���1
>��*���J9��"�
+�>h�>���.h�l�zCwWr�!n?"Z�0�Y�,K(?��E�@��]��ՠ��ۻ"�>A��S��P�&�Y[9P�{@¯
+ +�H~c����
���\�7@��%@�G"���
�@v<a@�b
P�$Tչ~0��y�6W��2���@ �Ju̲l�Kn�\
�5�Jɢ�Z�i�ph����K�^�_��$l����8q���*9�.]@Kַ����y��j���j�
�*
_ at Uz`�*�,PU�3Pu��K�����1��
z^$��!-d!�L�6b!]8�~�9��C'��O����3���h��v,T��z���}�ck �-��Ȃtk%�^d���
+>��
|*���J�h�M4"�U�:��~��>9i��~��i�Is�jɯL���+b����߫�w�6g W�X
��p�Tp�#�L�<�l ϼ^�g��o�l�/����DO��O���?1����!�S?�^n���0ߠ��[�MK]�DC�����U?��˚
6.�e�9G�fpF��$>�mLL��W��d�����ţ_<������w�l������?�i��*��s&��#���]\j���վ��U?���:3�sTe�gt@����O����c1B:%J߿]���Z\{����M$_�tQ'�^bg��$"|�9L��{װɧ�6��
��-�!�a]ȣuYPp���,&���xU���at�����{qo_wJ��#��=��+�]�۸�;�>(��*6����`KMU�,��]ٝ���x6���,;>���<��a�jgܦ�e.�]���hԉW��C'�}���H��������+j��,���/��߭8���c6�z��Ly\��=L���:��0�
��J$��U�^ [...]
�T�O����.���0��o�qb�M��j�)�M��&&��"@��ٔ�L�𰽞�&��]�n!�i�G���|����[
+��
�}�2k3�F�W
�Oũ�W�������G�����W��m��V�Ρ��:�u����;�٢M����uԘ%�������9���.�,|.䚐f���Z�&�qE
=�PQ�\gȜ
+À�f�[��r�g'��7�Ƚ�6
+��g��J�Z�떫�.����GhT��??�=T����|���
��l<>
ݛ�n�M ~k��#vjY�� ���?�iT�=�|��Æũ~�UB/�*
}t��y����s�½�ó��+��~�-��uZ��^f
�xY�;�%jS�ױu�3���<��My��;�|O�rS�ZdZ�ņZ����W��a���d��D�M�qYLw�'�$�C�넼)+쒈ѫX��I+G��(p��ݟ֚/߀:���
�.�
�q�6u��_]��c�n{<
�a�6%�̨�L�Pܱ�㬯}�5�
�:\w�o���h�im�>���Mf����_i�f�ٿ�
���=��T��
E?���l��
,�-dL`�+�f>�
z�&�t1�_�q�Z����
3�9�%��~w�
���+�=r��쬾mR�z��
���~u���O�E֦���p����"�Az�o=52ĸ��C��j
ֳ�-
���/�D�\�eg�����
k��º���یP��ݿzõ�l*�ڀa��$^��o��s���c>qZ��l�n,�_:X��]�`�=M���ch�i�@�3���\[�k&���zP��>�4辢`w�+��
�\��Rͯ�cɥ�~�|1�^�\�|ʾg.*xiK7
�р��
��%�p�1�GT�f�u���ms�z�)`ө1
�W�,�;}�}�uͅ��I�N�\�%u[
H�܋E��,9��l2�};�KՓ,����#�g_
��~���ϣ�rh�������g�o��ғ�u�Q�L}����s�r7��;E���S�p��̔��
�Xi�s�����1�Vuo�
���]D��we�A
+�`��P+2e|
+������\�� a��.H
+���i���`7�'�e?Ad�����
+�`,����f�X1!Ro�oY�"�o������JE �y��u��14k�l���>'��6R<;S����c�=���摮�
�X��'� �� �B@>�:�[
J�P�~f�E�][OZ�_�9��80����5�6�:�K�!y��B�h�E
�v�Y���2E~�0��mJ��2���BMEx��.��-w�g �2`"�{l%>��N
��E�����;#ҍ3ʫq�喒ap�٢[s`b���u�m�<�-���s�~��Fw�9����u�i�Ԅ�z�Nl<�zX�� ��@_T��gq5�p�*��JJE{�r'�%�&ɖ���8��}Q�oBal��L�-?��N�V�ܹ�JKs�R�Ts�]�ݽr*��F�iM
�Ԛ�jw�}�����ެv�x�����k4�^��z+���m_�*j��a^_��@C�
��]�敬�'�y} �P���xE�B���`�s�5��jkr�Wlm�5�r����r�m�"s2$Cn7r��b
}s����g����ԫ��S/��S�ک7����p�=��D�xj�(Տ9�j=95�c#���-PZH�!W��]|�J��buLȴz,�]&2�R�ga��m�{��P [...]
*�L�>(��S=�AٹS��(C��
JNe�#��S1��X;ޙ�Q�$�\�;zֳ�#����ڗbg�?��$J&��7��]���k�
+�V�
�\m�^���?�yоrVW���f'�6��t�+�PwT��:cҏ��]&��ޥސ
+���Ο��j��da@��K���gD�Mܝ����0o��0��00�^����m��me�Gk�������vm �uU�rOL98,����׃ѽ���\X�������I?�t���A�!�FIӵBΰ�"�Ԭ,)�W1!�S!���@��=� �w��{Ku��*$z
N�
+��徺�!�U�TfߪVf�]�Çv��[�`���Z%��cݹ�+�T�����{�bAP��J�ރ��~��� M�I#&5tU���X)A�p�9�(3��7��q�kb�M�c�s���{]��D\���2�,�Hʀ���i7�s��,j�W�8ϝ���~��R7�R&/5����t�e"hl��ksBS6`;d�Xc�~�B.�b����/]/�L��J�;Fx3}<cm"��^@{�I��S
4f_U
y�6"RGI�r������|eo�0���~:o_��
+*�V��nO�G��M�����]=�6u��8����Y�S���%�kA=K�ܚ�u��~���4�/�v�b����SXt����aT
D�5��cI���B����Ɯ,��'�zy
Fx=��B7_�I��������f��VJ��G!-�F���]��дTZ��P|��-e�N���`w:pشP7
�Q�J[b�a�K�KkUd[�k�
��'���W�>��%|���ʯ���>L��9z�\�}��!kd3`��caJ�ӓi�O��4�f��Շ�a�@��� ��
��] dc� ��2 ������UQ;�Z70�
X�<��ȆP�jI�DYnT��;*U�4M�O�
?�e�ٱ��
�k����м�
�m�8��3吾|����>��(�+$(o ��Y�������Q�����
8
���8���l�<<Y��L���>Z9� ��R���ʄ.צ��[p��f�)�DM� K`�ⅲp)i�p���&{o at sH�s@�� ���
���Ax��t�#�o��z�{�y_�IDH4�Uz� �p�Fh
���
+Й�y�l�7v7}e
$зn�S.s��+ּ4I�a@!�-e�~�{��hy��L���:���q�C��!�dl0�X�;= lRz}�f���v��CM�{
�im����L+p��>x���� ��K ���
X����a�6�6���H;`dG�b��� U�V�&�eŪG,_��k &&�5#��]
+1:
���8m �C�s�#��!ן��=`@�\�sK�F
� �f�
/� D� 1�K\%@�F> B�����ǻ<�������X�٩J�U_X�o��O��/�
NY��R�ݟa�b^@&�;]@c�
�8��_:�t����B�7HVV*
+���à�Y�����r
;�,~�I.6���o
���H�N� �������ld=@�/[@6�7;�V��/�Z
$���4ԉJyΕӭi>���L�s- �6����
����
'�o��&����lD@�RPQ<4��Z�2�v�
�{��}c �
z�r�>�z�#@�i
�_G�� �&����Ht���{+�lXML���V~��?:t�B��z��r�+bBR�i��7�T�GT��)`��0W�
�tA,r�V�ǀ��>��`g����s;�{����3�*/�9�
��
+x�uo���O���?��/
:�{���Q��-�2L�O����&Zo�p�y\����� ���+����R
px����
��-B�QѤ�o�T���r�+�A�=\�ܬV��y�C�@ݔ��
֮
��]�� ]֤�]��f�#Fs�h��b8�S,g'j��
��:<�Ye��*�O��?a��i6QS�>!����#���O+ ��.g���M��
2���M�/�OAu�������t�|��S,
�'j��d���\�n�`��S�M+��x�w�LB�-
�b�[Q�i��"�[21%��"|���N0����}��V\7e�+W��;�R;��������
6ݿ��r7���H�7��P�n�Iu����q�yEm����ߋ�@3�w�)͡�HΔ�@�.�Tk
+���Ćq( C������?,1����\��z�<�h��=Q�t�=b�-HQؠa$�:���d"I[�d�C��ϡ^����`Y�7�Dž�d-WƓҼ2O�eÃ-�Bb�F
| �
�2��
�
���1x��� ���?����&
��Qv����A�m�W�x\p��u.���,��e��]�����]*����*����9�j���f�����=�u�{$���������7`%���;ٳ�}��%�V��_�l���a�m,���nG�l�ݜ������h�ӯ_`D���!sZ
��Z_!>�p
�Sa��g'���P6%^,���8�����t�:��`t�
+���ΰݩ���5`^-_�h�1i;^�������#�|/N�/��=�A�1ZQ�:S.4=��>�-�
2GR�{�9���ώɞod���Zf��&���ݴ�
�C�8U���-��
J{����|�
{�a��j�'�)�VZ6��Z<�݅��]������U��i���߸C�zKBy��x�=���A�U
^)5��봿��Z��nd>�Ρ��ڱw�����l��w��\���ٰ�
C�f(�VMhoS�86�k��.l�Ӓ����IfJ�t���K�}��|������Ց��Eg��y����m��#+ݹx�I����i]��+-�c��t��9˶|zX�
��w)��
-٦��T=���h�F��p��]�ћ_/
�ЉZ���^��}���x7��w!�.<Q����xL]����z!]�*zZ��[�Ӎ���r{!�O1zb��X��f|c�<:G`�4�Y�����g?nJ�᳡f�Yרl��z��ꈂ�{�����-�Uh5�s��S���
�j�<5�
X�5�>Í�4R���C��漡j�͵�Z��ŧXT��W�RF���KK���;z��s�!�ڦ^�\���j��6'4844�<o���-�K�
�iwN�M
2U���y?ˆ9�\�i���~�7 n��X�Y'
i�*{��T [...]
+6z�r
��ҹo$�5$ž�T����
+��
+ >�q�x�:�|�.�<2�|���� �;L'�ԓ&Fεw���.��M{��b���
����
�ϐzI[jR+�V��U�E/Ki4�
��»rk%;�3��J�k#���I�-�OaT�焔�Ux�9���Xhq�h����|�"�V\_us9({!�u}��6�#��2�s��$}����1���.y0d|��5�i�zy���+{J!|�d�66���pnH=a_��{[
�Ł�z�ǂh�VTt��?����`��m#q�E�Ţ-c�4�X�!�C�!��
a. ����k�Z+�/a�s��v�ľ�Qex52��Q[Q���eŵ�o��i��I�g�;HK�I������[�U!D� y�&?��>�
�Fܢ^\r����pe�q/�b�=�xF����a�J3��]��[K�T֢��ۤ���;#�-x�����
^�2m��t��U`(N���V��ZwۑB�Z�2\,>�$����&�Q�x�Gen��
��Z���n�k� ��cw�|�b�~�x�̹z�(P��z��#��l���p:or��Ur������1���?�5=�S]���j��
� `S\�̯�֯��
�V�h-��{/H�xu`� [...]
+%m�Jm�T��wţ2�IEJ[b��oD
�8Z� ���T�`^�
��h�� ж
�-�5�"��6��=�V�����;�qH�iwVА�>%�g�CP�+Br�]���-vɜT0�^����o�;�zh%�"U6�twU2[}
+}QЉuq�v��qt.1~�h�TR(��вO<$��m~O�=��;f�H�����T�{Ԇ����\���X��~9��c��������C�ܩV^������f���]�J�<U��Y�����
a�"QzkܕL��]�3�O턅~����eV�wH�Z<K�-],�k6WT����'�b�<(U�&|`*�i�Q���y�l%���H�έh۔S�/�J$sn�EO,!zQ��W40��B:��+�Ď%�y��
=��
J/'���<e��b�!��Y5Kc�L���5t�,,[�s��j�`GyV�[����ߠl������II��t�h��ތ�Y�����
���b.
MHȢ�G������U�E*�
W�S����3�������*���~{/e�T��\��(Z0�b��;����K;�ϋa�
��O�9~eD��
Ѧ��طOK
��3=�FX�Ţl��3��ف�f�ڲ�h�Ұ�Bբ(��4��G�Dէy����x����ڝ
B$e��K
��y~���iyB�.��~�(��f{K��\�Jz�ki�4H�^j�E�l�w��\S�ToӠ�j
(i��j�,��F��>�
����˜<J_K���
+���%A��L-:O^U����Y��#ʴ�B{��
ܨ�z-�ybYh��q�
��3L-V�Yʰf[��v1@�� 8����� |��~�g�p� |{�>�0 ��-��� e��̂��3[�U��0��e��CP:�)�r���1������Ll����ȯe��֡Q���~:|��T�i�2��~�M>�A���~���*~�R�Qq��� �l/
�5�e��� �}J�B��rQ@9�3��%i�{;�r}҉ϼ�hQ9�%1�ʪ�^��n�G��}UXߕY�ô�-;`�/6 at yU�@��
>XΒüs@a��� ��+~`PD2 at I���j
PJ8T��lD��� �L�
+P�N�� ūM�f�{ƲwrT_K������Nc��;�HQx�W$�j��S
�r��c
+�?s ��6@}�������wd��w X�p���x��`��}�m'qC���q���*,�T�
�`��`�<0{� ��$}��r��'9�b6���;�Դs���,�[��9�l�a"w���_:�X���|���|�����p�{ �5�|��|�U��e�m�<׀ ��
+���Di?2O"�Onh"k�>��Zs�iIo29W��U~2��SX,���ta���s��rJ��%�6��Ws��9.��9NL�I�D�Mv(#��7���
��sT��*�
*z�At �OU *7�����}�d��d�V@�%�?8
���2I6�L�h�^J�U|�7�픋박����gj1�_mKt�o�~����n����6�c��Ϭs#JU[��A3@�_���\ P��
���;V��Z�������]�bz.��>�_�
ZY-5<�O8$7��|�����_?���C'�j"<�K���-�j�h������
+0�
�mр�I.`���Y8
X��[v[s��
`�
P�4��<L������h�
I�w���]
M����/koҒ��_q��w��������j�
�͍�=�6�r�
�j�ള�f8 \�
>�S��I&��D;��ko��Y&���~��>
Rzp�r�
�q$ ��)Q��.�b�
+��u��R���돢�r=&�d�D���ч��!@��}H���ާtW�
���skC�F"�&�DC�ȧ�;��Wx���ܧ�iᴾ����bœ�\�
�3���j>O
Hy��
�%�=E�t�S�"�.�M�u�Lo"�̯��gb�)�ZKSg�Gz�߾W����'
a�֗x�*������~ �C:K^�
R��ڈzF}�9�B�ud����m�;��5�n\p
+�^f>Y��d����kn^���w��!ߺ͔g'55R><Y+rRZ2��-���m��JA�g���%��i�0;������Prm�(���Fq�����j����f�jW�e-y
+��:�Ӳ1���5v�
,��TYs4���!s9?�!�P�}K�4
���F
�j����+���d��ɸy��~��B����/��<�ﳙr�l���r�ة�m�.毐Ј�w�5��'<��ݲ~5q��Xe�Ӆ����ͷ߳K̬���S�fs
���
�f�[�Xe����^��M��5�un�k��XPgٞč#�����i���
��p�g8�y�?7�B>�|#�{k�v���G7�_�����Ρ��w�8UJ$�^iS�*��k��=FݺH`�|��]3�s�&�^K��õ�r�~�����7�A�C-�G�V
Q�v6��\q
����/$��5N�V��uKu��az�
��A��(���(���^�+k��}�=n�M)ӻ7��"�P�(�.��e�V_7�f��N�m|�s\FF�C�{�� 9+A,����!��/A}��\{k�q뢛c�C�o�6߰V��m����JSJ���TK�Yj
�܅U�F ���.2��=�����qIc��j{�2e���hu�1���4�
:4
����v��KwNG>Ab�^u2-�C�
4i�o�
��gSٶ;�x�b���㞳kSJ�@Cͮr��8�]xs����q��w��"هnJ��j�AƵ:\�m^C�o���]a7
3se����WǗ.!�6m4XM%r���sը)����zp ��B0H���r��#���ͧu�I3��AC�X���{ߥ��ڞ읨1�8�i����:cuب`Q�f�µb�����
��T�t[�ZMOO����o8M�%���B�vS��(/��-7�q]:���V"��["�&�w~%Ar{N��
���N��Z58�k̆Յ[��Bg'A=����~Y��N�1�'q1���6�T'�������
TӴVV��-�T�T�����Rg����K�(�'�ݫ��X!"c��0��Z�S#~���8
+��
/�����J��4�����Φ��WS��s=J9�}z��V�A��{k�5���\6�'&w���`�/�V0�Ԓ�J���tRRd/[2d� 6��u���C�-Ͽ�c
A�t��D�%�^��;��*�W3z�M��|*��S�~�2 �����@��:Q���
p�Z�b�ag>v��Z��>U��5��W�χ�j�ً��|8Ky�"�e�\)�n��x���~�^a�<
���m~�1�^[sN�'�ڲ�
+o��:��cv{����fU=��ߓVm�
+t�UG���� bI�:�
��C�c���b��ސ^����᩺��C�i_�tu&{��I��קx��2b����a��`��5i~�sy^��8��5���u�jft��m�4e�#.��|��ڢ̺��`D���sI�`N�s���7��7��^k�?ë_m)
(�n㑫x�)��"�'M��&
]g&�4)
�Qz��O�wy\���^�6�F���*����z����^L�������.�n�!�~��]S2�q���
���s7R�
�[�
�f�4��u9U�S�lâB�͊\�O��9uI�
}����]x�QN�:��^U���䔛@�7�X�27���K�W�U_��}�C�$��J���ph{c[+�Y���5�
~���}*B7荞�쫆��[-�[Ye��p%�
Y� _$��C�ҹH8�p�bG6���
��;��a�sᡃ��ln³�6[d��f�"�%`�����įu�E�eipӇN;�`R�`
���.�Ł�~8���`U��ʼ>&�|��
(���Y��SW�t���I y�)�*$sY���
+%�\�;
+���T^��)DP ������q�L8�r���z�
ĬI�e��ӥ�K{H��⛦�
C�UJ��kN�ϒ䝔�w?�ף�����c��b��iN
�~�5/���Sm+4�d�0�I���*���[TF���*��%�i�7?���-���![d.mf=$&
���9Ptř|��
+�(��l�U"RB3���i�e�D�Rψ�ٳ���>�
+v��'^I'�m�.�f'�6�)zS�3�}e�t�r킵%q�I��(i)���Q �փ/����O�N���9��%Uf��^r|���7���
R� �%�q{M�R1�~���tv��*�����K��[�NC]��қd<+g
_+>
+���ϵ�s��>+�tia
�[ٷ��k��r�9��]
+�-A���y�!�%�����+4s
T����u~uH��*D�m�������������e�;
u�~E��uMCg���|��lҴ[��K%�f�&})m�+�iv��)q��ku� �2���Zyt�iz���
���)��PTiFW�ގ:��
%�7/�F>Ӥ
eQ"8MhkKƇd`�Pu�c���F�
<AV������g�4�ܡ���j�vS�!
S�'�,�f�������wz
+�.0>cqw���0��({�����R�M�s���O�j"�/�%��GD��
���[���NkO�vl�/}�sY�
+B��
�K-nζe/�f��
�+�R�tZ`^�Y:Zm?�h���H�x4;��n�y9�fq��M\�Fa�Սm��� �1�f�Y��Z�j���������
�����!��������=Wקߩz��� Y�J3���iC�lh���p8H���
�f`��,�u at 1�>�E��I�k4�� ���x�]��N�5���_䳲_v���^��x�LY���R�'�$�鰊9ث��z��m#L�~W2��q�z�TC�@T\�fv嘂�+'(a�4��2��˽����>�]Ư�,�m`
�
��~�`�m��\�|���]lq�
+m�5���[�
B�X�����]m�C�k��k�mbNC�"d4-g�.��́�~�ҁ-�V��2�����.mci�by�>ph�7��J9�� ���c
+��] xg�xw�x����|X9����ՃbW�#�Ԧ˜�>Oo�ڳW��2w����c?"U��a35j!TT�rU*Av�m��,@�A־
"t���覟 ��:�X�, z\>�I�<��tD��b�8�h*@��4 �+�'���ʜ���
1yS� ���d��
+�
�g���C�=y0�f�O����B���=��d�W$v� R ۀ��'�,�րl�X��?dQ�ehrL�c�� �u
��f��^���l� d�E �/i�l�t
��t4�wYc�<p��ڦD#��� ���'�Y`�B~
�:�^TGu�^\ˀ,^@��Z|��8M@��
���P=s�Yt�@�z����9ًe�4l�by} ���F��)kh��u'�IϽ^��yճ.�Η
����
�!�6Wjw�ԭ�>�9����fv�.�^�_mS˭�c<�����Э�l�G�З�
0)� �����znSru�4�_�4�}��@��V?~#��t�`�� 0�
� �3#gϵ}KZn-cV^ˊPl�Bv���͋�ħ��n �u�
+j��~��ˡ20��
M� �Mk�
�/�Nq��A<G!I
�Ӆ�,n��
+8;���n�k� �v���ş/���ks��OUs
�$LD
e�
�>B�] l ]�v
Y�ٰo�~�� ��n��M6��K�
��/櫊@Ⱦ�@P�6����ՀB�/��.b�C at X
t �����ƺ]S�$�Z��G_sRR���&��])�)��ןN���qA'H5i�����4�1���|�|O�Rb�e�>�"���ҫ�2S��-�W�Z�r�)����ҹ��ٻ��n��*^�m&��y
���W���zs�YU��+]�r�^痿7a���
�.`�Z]�:O�z��W������X>K�����d�I�$�7�����E,�S,��O��a���O�~�W�6���
�=��py�*��t�/T�T8W?W/��=v�}���~Ȑ�u+<7+�$��6�E��b�'/!�S;���5d���N�M����(5h>>�fp��������W�Yڝ�|<����x���Q��m�}����gg�멭{/f6�@�WƖ�"�,n����V�f�V�=�?���G�'�۶����ᡂa H�ߚ������Z^��� ����ɾ��m�_�j�R�
U+�CA�-�.�X�|������<���ِ���Y��b2����a���Qk�Ț28א�@�췿s�gD}mpI����������CȬ��dp�C�u۔����RXԳ�gP�f�
IL��7=A'n�C{q��7ʈZ,�a
�}=P�s0��a��;�8���Y=�
�no�=&=hD�v�:s/�v<�^k��ڪ�S�Ï�澵����o� 5J j��Ei�f�S|Yt_��}�0�̇��
�$t�w��5��ã��l߽�k����ک
�c������.B_��VH�B�:��f��Z Rm��
������ԕԬR{N�я�'X�wY����
�j��I!z�3z�ӆ�
��
__:��5��W.9h�+r�
+ rь��u�=��ƹ�
�
��o�ϩ�/Ԟ�|���\�:��O���HV*�M}zt�"���
?�m-q�~���5A�IY�$�!�u&ԯ7ǯnv�~�~�FZ!���前s-�¥i�;R�X{�:aM�4kաYkV�t�[�8�~ņ��e-���y���M�
+W� ?
��mM���B�5�&���K�|cT�%P��2��A���D���~i__>P&[!���Mv�Z�o���)�W�3�d��$�V�
LW�
^
=�W�U����X�mM���E*���Q�ه�(�{�^I��G�۰�,*���{�roOG��Bw�d�$�Ѕ���3��!����^e1���C������2��w����N
+��9w��`�/��mey/S��k��
�|�ᥦ��+v�Y��@��E6nzzNp�aQ�]�j�$��M�'��v��ȕ|Z�v��WF/l��F!̇��i�0��D��$.�F'�;�еg�
U��V�U��
kU�P��}�:����dY��ۃ�
���9���
@����
�s�c�9��� ���$B�FΊa��n[��Bu�2������.�6>y���7\C��3��7=:2��#�c$� /��ދee�^G�̶����
�%�p);Z��=������=ׄ�cgR�/�\�8�^��٨j,Y�XD���[�,Г�`��fr'�η�J`ܷa�P��T��G=�����B������.U���%��e�&�y��[tmr����&2�����AQKEm/U�U݂Y)��n�wr�B�.��l�����Q�,��y*S&����dJ��ܔ5
Njlh���&��C�Rլ~�S��BE��E)
��
\��tP܊T��m,�TCxL�~H4������s���Gŵ���^Em�]�v
�
�6��+(�%���Kw�fcq\����!/O���<�?u>�
ӡM��l�"h���;UW=��*�
B�r�3�����
�fD���Ε
+����/������|���Au��g��ί`[\
K
�t'[hd�.v�
++��£P+U*fSɔ�>\�+Xq`�re�������
_�|@��$Qe���RF
��+;�L?Z�T�FeE�$&��yG�?\C|*#~� Wpe.��W\�g֙� Md �$�M~ �:�&�r��=��r��ϱU!��yi����mT����
Pޔu� w5����lT,S��!�\�>�ݹ��+�}N:W\�+F�j�"JC�zD��ߕ~�O5�#�J{v�T
� ǔ�f����%��3�XJh"�;opͳ��>�_���o��m����á
�+F���4
���i�k0��p�Pʻ�P�k�RfV�^j��U�v���v�i�l �&
(�}ۋ|�~n��<.+�,�TL����[�~Ӕݧ��R�(�GfkΞTu$�T��"�q�p��2�õ}J�Z������bF��)���0^���i��Q@]�m_ �(WU-��jO���SQ�7k�w�
m�=�!/�P�r�%�l=�X/�S��������!/ETM..�s�{�b� ��u��#��jB�o�Nt�Bܪ��"�z�� AE��E�e�
l�
Bf81�w��T����}E�ח�0^��[I�h���ֈ7S�7 _f������G�'�y�4��@CPE��,�+Bפ��L6��ѹ`s�%����{c��
+�9�G��A��p�p�����Bͼ6�r}i�Y<+��m*g�M�mN
H�D-�j�+����|���!r��zR�rҳ�zsd¬Qj���H�$�Jӳ�M
�a���[�l�7����_�"Z7�RU�,}&Ϩ#�`d��
B���,�f�-�\�.<��c�P_���u�����v�M�yq)ۈiI�]�*���� &�֛.���Y�J��
k-�Iw�T�2�R<sX����H<�ύ����ft7
���H�2��F�⧂o��(�L�l�錕�I���9�j
r��
�L��-�
+�XI�y����ټ�ٍ������#�6|7��;���hUb��cH���vm���+ zx���;D(��ԇ���0��e6�u�5�,�
����A��j-�˶�i�>�to�B�̍�Qχޯ�2�1�#�s�OCm�ŠZ��$�Ŧө�C��W����[ģ%x�����g�3ӣ��&z�b
�����H��DV䨏���>�u�`ޏ�Z}d�U#������w�>�� A�]��az ��� ;�
�b���,R����Y�+���%�,�
}�$�^^��}�۽��BG�1��S�!�}\�x�6����{=w8�
+��d�g:�q-��g���
���4���{����+Xde P���r� Z,ZJG�L� �C
�e��%%�KT����we%hbb�w������;���K�u�/
�S�]���ja����"������I�;P�}捻
����9 #�ABn�l3�� ��2�� `�bY� �%5��0ƌ?�B�X$��Y `X?�8�T���#xS{�Y�f�Sr�a��w-���\�Iƀ�B�C��5�c�n�Ed��V�����Q�I)�� [���g`�pP��2<�Z�R��2� �T,?NH���� ����,K<� {綱L��+�w���`u�|t��>�W��';YP�� i���A��m
7OD���������gqө>���>� �vd�W�&�#���:���/rKq�������� �I��@�: Pa
��
�ԀԪ��<��$�A�1��OG�Y���'�Vh��
��Q��}ɡ<�.���G��
�P� {�1
4~�q������b
�� ��2 Ƨ nj�R%�����HQ�2E)b,�
H�jDz\R @2��ˀ�f��<Y at b��v�T�paLJ����˷t��'>�[��7����81�#����v2� 5�W�Y��k�$��1��;�Dž�t �
� �[@i�P�.�H'cYi���~,��n�(
���b9�U
�
���
ҷk
Q2��A�|V�d�#
��T��51��&(��FY�|i���
��cr��$�9�Lw���=NL�����-(3@��
���'��a0X�K�P2cyTCǀ!s�X�`�a�H�Y#��V
+�� ���;�$HWMp��Z���L�n�����-���Y�[�)�[��b�߆��ބ>'�ㄫ�
6��&�^e�l��;
H�}0n<�\��5׀}�>�}E<`OV ؏��G {%��=�A�Q�
7��$�c�4u/(�X��ǔ�ZFR���h�O�~[{��o��;b�/��v"_3����|&
%獀
��R��7�/8b96���Q�"�s�f�
1�Ϛ���9�G��/��o�x��'� Մ9����(���IP8T��@��o �I.�{H��
H�ҥ�+��,�F��n�ep��˓C�Ð#�A�ܻw�������_k�Os��$����W����q6I���s�m��7 at yWr@E
�:�j>u�������z
��z�����Wjo�N�Rސ �<9��*����&��#�XB� ��ݳ�
���1q]q����%x�s�SUOg��?ޜ�}���`� ۭ݄����q^�Y�X�Є&y�IVCy��$
���&䭔��Q�Z}
����Z��+L.�=;?����$�Wۣ<��+�C�vN�!�_vV�m�{���Ǫ����M4H-:d �#��̆�L�N�Ty27��T~f@?
�:x����
d���FL��c�
�os�����"yf#�; #^=v2{��^��J�;��ys�Mx�-�����gC^ gP[�M�'לx �W�?�g�7�fD��հF(�A�)��������s�Hc���p�+�
w�l�.�Wd�uE����!����*�X���f�Awߵ�<"��Y�<����>$gG[[F��"��
B
�T���j��9z�#�
��jx�
�j7;�
��Uisj�<��Vy�E��_:�S+�&�W�$n����
j���7����<gƋ�!��k�&�t���=��
}ދ���
�'v];�
;s+���A��{�G�����T+$3�0ڬ�<�87U�!܋�zG�����ީ�i{S
� �d�V�u���Ļ��L�p
ċ����kA��QV@��b:s��;�T3�>ly�m�
��0_k��|�������}���q�i���e�3�vU3c��Ь���H%H՟�!��q�ϲf��g�r(I�2��p���\����o��k �JPZ��~��!����6�s%]���]��]��
�:�/�*4Y*vn���z�:V���ԮY��v�2u�
�C�5��gzSj��$�r��)L �9Gu/�&uOǂ���Z_/ǏGvn�D����#���NT�@ކpj�j��VM�U�lfzh����;�I9S�V5�L�5ү�[:we��T���7%���N�*(��ʞ����aq�sM�1u&!�s���Ӟ�����T�Zus]�Wo7��j��":�U
<�ɾ��N���xd�Q�"�s=���F�:Nz>{]MKM��)ޢ۱����{��oO�� �3�a�D���(gRV8'�W${^�u9{��jFe
������yRk�f���y
+��;s�"ښ�
q���5:A93��+�
J��ʚ���6�C��܋��y�(Z��������4ׄ/�|�ݾv���;��)}�V
�m�7,U�v�\�z1�y��ɥ
+B�<ny1;���w���
�ף���>G��L�&h�-_S'���ګڪz�ŹO�ގM:�Y#�*�ӽ^y�
�J�ֽ�=?�
%{݅��nz�=�����~y�
+�6<.POxn�txmr����;�ʋ�n�f0��գa��us#h�}*��5�W�a��,�Dž�Vͧ�/��#k%��F����.��<I�w�y�=��e����p/�3���]�gy����гJ!,gM�gK&��|�\�w�72��x�����n���V��V���I[��T���x�%+=,9H�_�%U�b$�ǭ����V��vj�c�_Ʋ��rz$CQk����..ʕOcT��Uי�A�ڜ
+~��
�������(�Ve��3�]I�/T��؎��t<�,f�Rg��^u��UY�2OW)H�2"S����NC�qA��RA�J�
+kn��g�Фų6�WY�.ci���D�=nެ���Z_0
+&=�]��&��
n�)��G�i�`9Wu�9Z����{Һ�*�|�吮nd�5>I������x�l>�(?s�텓�
c^�<7|�\Ztٜ�,�0}�k^�h"�4�Y-hg=���OCjMn!�W��g7�:�ٳh��=�w�
�5��4K4;���y��(�~�TlȴukJ�c�/quj"�R�J���Х�+���o� Q���8���8��)�Y�\�^���yMr�%Ui�d�w�I��H��gd����z �w�����^>X�m����y)MF��zzV�ԅ�Xʚnj�������
���V��NM��]��X
���9�S\v�Z�#�)�֙�)f��PkF
]�oU��@
y�&��3B:�nxOlػǻ���x��^�^v�-�����Lu� ���K��3�"�Q�~5�������)�r(�
���噖�r����xc�ܘ5�\f�G��l�Yx7\2��v�`�$���7���9�e�l
j2ў
m��{�p����|88�㓀�Y�d�V�2F���A ����m�2��G鮫��
vV������
��o���)Wf[Klg9MP�G�ϧ�"g�S�uK��ܾ�L�Kw�-�
i��L��n(�S;����A܊k��7w
�Z���nb�8���L�k�F<,�W�
��cÄ}�5�W.}D��ym
+�0��^|����~!3���}}lj�
r��=���Hk�UiI��tD�t3:̕���:��;{
�����#��eHt�`�?��-�[���7���0j��
2���0Q�D���gkk?�x�?j���^�6Y첇��\�k���A��
�h��[{�3��|����RC ��@j,!O�=�7!.�*9
ژ@�jW�ln2:�y2
��� ��F�r3�1:��K4�Z��H����u5��� sL�,g���K߷�FZe�9�o�^ؙ
d�V
�[�����ϕy<�pg�c_8��s#�#uE�M���Q���C'?�<��O-�;�Dq��@t���s b�t;�:���,N� ��}ޤ3L:�$WY2��I(�2���L�Rnz[Jy{-U��s��M�F�u�
����\�_�Hm����+=l�tJ���l?�s�z]�Jȥ��A�W
g���/�:U�U����"�B\�+
��k��Um�̞���n?�8d���H
BP�Z�,�z ���� �
$�P�R,�@h�Fa �� fc� x��h.�2�����ud8�Pl��A�JC
y3z���-���)�����������2
�SP�ؔ�N+��6��
@�vˤ��]Fů�.��
�e��� ټF �� �ux��
���@�ʹ|�8������H�������^��ؐ�z�RB����֫l���CA]�*�T��f:�I at ix���L!�d�V83�ˤ
+�
���cY
� �
�>��2� t`� :�> �n~��h�;
���+ӯҳ��
B����:h������� 1��\e�B�DR�<�f
+L�X!�x5JW�[tOBN1�S &6m���2��T3��p���%��KX��c�� ���XV��f��gi +"��k,ݬ7y�s���͵�W]-�t��C�^;��fY�'���A�5,�NCM�j.��*b؊` v6E�}::���pN� \ot ���X�����629���<��i'�(�TK����<� n�F w� �G:���7�l#��Ts%��鄷�.}�n5���"[vr���kQLh9Xj
+�Ȍ�U���� �HT�y\D��q���q�X�8 fi9�f s*��|D��bPt�rӜ�lñܤ�����|k�D��ha��LX��둝϶���r�$�n:u��r�ү6ɸ ����q�$�k���>���Ǽ�ݥʼn4�С(,>ũ�r(�|T�����ʀ||���BH@
��YΠFvB�4|]}H
+m'�=��3�$ʊ��l�N�~ M���G�~8���o������J��E�Π@K����8D }��c��%'�w
���
+�3
���
�
<�>> �ԣ �K?a"�U����W�@7`~�[ev ��
M &H�������ڛ8��L��|���y�_��
�
����\!��>�<<�O ���m�{����+`-���ˬF�%D
�t�L
Cl
��Q:î[�:��
�w��Om��I����N�� �����/ܫ�X�G#9�
��m �w����~���^���C���
�w��?`4r!J��nhy��
��9���������I#�`����&�5�����/���z�"�-�zJ
|�>C�d�M tH�'�[zK��+)�����
+��+�_�gsv��s�}��N�x¡�p���w�D��������ڒ���k̀�?��x�|V!PA{ T,� 5_����n���|�T9K���ҫ=�����l��3�v�G~�}߭M5u�SA��J�tq�K��A�����o�3J>�K�8h[��Cu$غO��3�jŮ��Jf��;�6 �M2��_ڙT�������c��G~����Z�^KqC/Tg;:��hz�d��!B��~H�݄ۭ{[��[�٭����萩�<b���P�ѩ���xmYM
���L�-
_�sn�lR���z�"\��tʞ�=qx:��-��.[�k��3W�g'������_�9�_���z������Y�����B����rgp�����]����i/,�S�M���M�%I?H
+�%����Cj�)��] ���l9��Y�F�!�Y̠&��f��e����5<���C��e�g�F�H��ާkS������w'yO�f'���r5��*��6�v[�_6k���8w,��T���Za?V�o���;aɣ�sm{�4<8���~�&^��;tŋ"��>�V�����
��μP��Wnq��Wκ��O�l�)\�F��n�O����ڳ`5=��CkoT�V��X���|%���b��B�9��$.�$�6�����0�oPk�z���m�ZۢM��M�7kTSm��I�!\"�.?j��j�����ܲ�4�T&NgP�.���Û��N��Oo/�m��.S7�k�����敚�R�$��T�6S��\��$���Za�U�'IN?! C}v���߽V���]�X�����X8�g�!�~��$
\�rȾM��|�~MJK�^*( ���nT�6$;E%
�s"�X��e��Kה
�TƙT.�c�ñ/3��M �eM�I�'F�[ά��k���Q��d�3��J�/�(o+ШL��_ؽ����ҹ�K�+��
#�yϱ�z�U#��<dܡ�\h�T�Iy�w���cϫ��F.P��%vd��j�w��w�1c�l�lbcr�]��`�&��ӄ���O'���fů��R�)-�bG��sxi{z�5p�.��&B���O�
��0�y���
���UCJY�P��
-�J�6��`��?��N^́�q[�C���
�(�uz%j�Ӳ�}��6l�މ$������?�e�p��&|7nc�C{�9�b�p���c{��?���-lۙQ!�ɹy���Yә]�<"��fA����2:��ϕ
Ǜ�u�Ji��L�L�ZP'M2T��r_���AA>-X^����[�^,�M,��]���7�����4��LN_�+�6��q��N�w�C�<t�y�}���yy1
Ռ�o
+�GzTB����3��֚Ik{uR�Ϊ�/e�n��9�e_?
�v�$:[����c"rX��"�a�DzWD���Sg��E'��d���~<D諲k/��aœq�<�C.a82�l ¸��r�
Ѽ���fR��AO���n]o�94���
+ha����j'���U�G(�.�/���w
T�{�c�@�;*H�@�l�y�Z���n�H��Մ�\�xsg���,rs�M�"�ƣ2��7Nк!�q
D}B3GZ��
U���������r�kJ��ғ*�p"���R䛓��&n��C�~h^CL���Y5�
6���
�.���~Q�U���r!�6�א�l�erөM�iy7z�@6v��
+��|l�n�P��,Mp����FeeY.bJ�Q��;Ue�|����*��}�*
+��+.dߜ�>N����;;���qY�+m*�'5����${<��*'6�
Mm=&�:X&�R�i�7m�Z5�iQ�b�W@��M�c��З�O�r�iQҁ�1�m��ظ��ps*yA>u]>�O�]��r����7��7�o��������?���
�y���&Ѽz��ݎ��!_1}|�0}�/c��8Ģ�t�$pW`���dG:
�O���z��h9�`(~_��cf͉�C�"��E� |�L��Ҕ�8��Z�4��\�Re|�Š�i�.gjW;�(��:�u�~�y�х�/uW���z. at G�p�f��q��@`,(!N
�#�Ae�h��!Į�*��~�h%�\7�����m^�7�,��>'tE����������1�N�6��{�)��<���.MRX��DL�bt�C���!q%+sB��x���c�2��RU�D
粊��/]��ۘ�c��qh��S_l�+?7��F�����<�Yr�2��*h�:
h���ȻEǐx�P����)���f�1����TFi�Ub [...]
+��w3��4�b�NƠxJ���VB�탎�٧
�Eȇ ���¶���ӭQF,�W�ξz��s���.{��A�@�@N�<@N>J G{������ W�Z�w����LFyu�h�Kw������b�Pz*�nC��mvC��
����`�N-��x����*��s�ڔ�u�32�Y,|��]Q/B��_�
��I�J�1���5�
?W�{7a���M͝�e��8��ro�ۢJ,�*�M�(�����~�ׅSa86R�n[ٜǡxö��
���<�u�2S��<u��4ѩR8���
;
����7G��(� �㐩ѫȥ2FYθ�p�.8D���Xk W�;�����W�Q��C צs +) �l
�>��٘�-k}M��M��F�<Un��{�`��Јȳ
�U�m��f�A���Q'�A��F�6��j���
�2�w X
+�Ebb�ȱ�
�s~,v �j����{D�4"�u�ȅ:@t
�����Ҏ �f�˨���l�.m����T�2�R�)���9t9�@���4����z%�Nn��B4�`_Y��6 �g�o��S�,�x��.�Qțv���XV
�|�i,�@Q�Ҡ�a���-�B~��"���� �>�O^�,�
+ML�越�Zg�b��V~x�"C|�4��V4��:�X�xS_��F$�����<��
�p
+��� 4�S �$�N�<@w�"@��@lKc���g)˕諒��M� z:
z�� ]�
w7 ��/?K�|t�n4��
K�r�-��V�O�>C"i��ꪆYHO�7�,����qz�sq��4@�8�����# f�Y�5M`É
�է
p`� �.� ǰm,��SW�PQx�b��_��9�
����)�
\�8�/O3���V�m^I*0=�?h7X�
��ur�qHf
�U�Lg
1�����Ѹ9�ؙ��j��
����
�g��쩗�[E�� �` j� ����6ぃc���߀��" ��`���'�>�c��Vܭ�I���(�,,5�3��aq�"�y�>�Q�O1�"�m�'��
g>�/���|� ��2 �L�������g�
�:
ȋ�w7���Z�
_� ��Ҁ�u at V��^���ޕ
K^>���s�O7s-�{ƈ��B�лz��u�&]2@�Z���7Q~��֛ ��s<�T��|3
����w���
+��@�;�;Y�a�
h
�x�{4w6�q6�����t:��I 3��f��\pv��Ƥ�e;(6A���9��Bⶵ����}�п��?v����+�=ʗ����`
�l/e�Zi�K/ �߀���
by,s?��y�
��h���ޑs;�ZJ�0D=�ֱ�X��հ8�o�����o����_��+��?��'��?�^�5
�$��<�����s[V���r��xe�kdEc���:����Y�.��0U��?��Ǟ�DL$
:A� M��z�g����
~j���+��&��
���ؔ��$�^
-����ed
��GSn�5�[5��r^�C ��gh��G�\1���qO��ђ�8����'���k~����T\���"5��5j�|������@�����%;���}{�>�yf�c����}|���>���ۜʃR��W�Ee/T������Ѝ:vr[�
�}�0Էs�f���_Y��h��U��<Vb{�Xe���)Ez�U���o�c�9[ȃ�wkM5��Ӷ}����I�����!���?_�娲m��F,�^$�w�{���R���v����g֨
�d)p����x������Yo��t�����N�N������|n��};&����Ҧ���� [...]
�0��I�ci��[yD�N�ާ�����&�MN���|�ګ̩���n�"��Ce3n�����Q�e�֞���s�s���?l��G-In��4���Z�+9��*�j�VY����m{.U,�\�^V������d�L��TO����O7.w�<���ƹ����w"
�n��7��Y�Qb���]����l��/
+�
���W�[��*{앤�}RtMX��бԛ(�Iu��E�b���[��
��d�K5
C^�AGJ�:���
|��Au�j+^v����͡\
�ea�}R� dI:K\э�¹�ʅfT��`�; 5�{N� i��)}�R6�g�i���P�������a�5:���Ѵ�:�����#WB`��������q�s�|�� [���r���b�i�n���zy
�I�9�-s�Ts����%;ʎ
Y|�g�P�P�1��A��Þb�^�i�v1S�H
�\>�&�F�<��s�ߖ
:�)&qKLM㖤}|IHP��h���¹�
����2�/扌��sjK֜�̴
��ҫz|���E�bF�)��'��ٿgn���NDH�w��q�]�v�x2b�=���j�`f�ϳa�1�c�z\x��K�7�/,o�\��g�"�?���c�>Ep����
+瑚�D�F��=$���x�ͤPOD����~�ḇ�/�g�-Ė�Q%�����):��Q��Ĭ�9�,����b<�4��Fը8�$rX�n���"n1h���D<x�
�?�su�@L�%C''�_�#&�(�'���Mf|ܢ���.�m���ʐ�%%.��\9�h�ky�P������&f1���QncT��s�0����3�fQ��ۮ��;�g]{��K��
+�m2 ��l����(�e_�}����m��4���3�T�m ����O
ߝȨ���kb����s��f1�_@�C=cT�B�0�V"����|7�̷��m3^ꖴ;j�:�4�✚L��
e� �
+���7�r�y�2�R�j���0I�
�/]\1��1�t�|��f��p��Qzwŭܻ���B�m+a0C�4̨䳁�>r�ִ��n��4��#�����kA�6XM�|[��2Tǹ�R����~��r�fx�TJ��n�(���
B���
�%W./*�K���G�u�,��ߍ{1C��t�K��������l�
o��+e(�9��G��{�"�僅[i���G
�e[����:!�5����<'�(��D�2����r�~��=
:=0Q�~�`&e�7M������
7BΗZq�r��l��c)�)0�D���&�\�ZqGq�`��9n/���ȷ�+m
�{ƴ�+����K C�?
+q����
e�8�I���-
2ﱨ��e(|�OB'����D��>Ӈ��K#xR�:�b�x��ɩ���!�x�X
����ig'6QK�od.
����8�Y1fJ��d��Ei��L\K<No
��
�<��R��>)�2���\Tq]ڎ��$BBt��l�|2K�H"�:�Z�ɓ9o�O{.9%��N�̂oG����P=ӧ*78�Gk&Qr5�P�ݳ^
�IQ��#<d5O6�k�N�T�Z-,��bU9ܙ�y
��N8�x��[�Bه
��w�2�@<
+./j��
j���Pdq���~K�����i���y5�Cs�5;e�gy�����.�>4UuU�ԍl�0b�&�mk<j���_D��6Y���Yd�x={�*tq��&sτY�БHd�����4��
���}p�D4�R� ?ĺ���Z��K�eZ���&��cR��Rn1Α�(�f�^���Mz�>��������v���j'�����'�w���:�?0�2����J����c�m2]�.�x=�Es�C¨��H8JDe-��y�~�h��\a��dߡ+N=��az��^���|sdo
�6�^DfY�kL�E�MON�k�)5dW��)��3�cNg�%��
&[�J�@)R(����1��j�rϕ������U?��C/{l
�'KDZ�cD�g���
+o��T��0Qo��B���ڽ��y��,�ڝ.��G�NU�
O3ѡ�&��Wxl��a��
��>v���s_���
��5+Ԁ�)+�� �����[ey��~?�V�ج�țJ܍���EDK-YYJ
^�,-�2����qS�|�^=8ʨܘ;S���Lt�����QX25�a:�+@�{hML�R-�r�
w����@'r
��O
�Ȥ�QG���g��5h�_/X���)As�Rn4���
}����� �f��,o�/�R,��G�s��^{Of�M�h9D\��&s�ƚ~zN�^��<����K؟T�bԗ���ú
+�Q����~KO_�Пt�
���xz3��6
@��^
2�e긷�9����S� B��d�5���ȒV��g�>^!����0�y�I�I�Ft�����<����)
)_�!`�zؗ���:L'T��E��33|�K�̜���
���3=`���FH�H����YO/�%>�5�8��
���T
E(�U�v)�B����I+G�\�,
+iyU|Q}v���� �1�z�܁�! ˽Y`�q�|���J[����-_nS`��#��3l��[fr��C`���h�D�Xmt����S��e|8}���zu#
���"svY5�m����c�<����.0�
��1�+]�����
���o`����_QS8z��pU'��B�|z�e�
_�W�r �O.F�\���� 8��'1c��%.=6�8L������gY��ͨ
3�A��',��㈧N9���)���z��
0�N�n�※-D�Ct����y.?6[����O�
��J���W��x�U�>�-���)���>X �W��c�e�8�HwRC/i�:���[���<�1]J�U�(�#����J��<��Z�1 �h�Dž��4�N��-
B?]��A��.Axu� �0
�eIaE�Y�� �;&*B�ρP���QB�`�
�YZ
+5
}��a�*���
=�8�m�
Z�l�P��߅5��x���'N��ЛvD�Q1���x�@
�^ 6w
�%�1�-�hfG ��Dz/A�(C��� ����
SY�z6�t|���pR��et�vOY
'
�����~q/BЈ>#��2
�9|� �V�91�_
�����LU���
��ʓȌ� �}���D at Z���O�'�*e�&Ҩ�K}r&�+>�BrEF�4N���9b��s
T�O�Ͽ�����/��>@UX��<jV)��
A�(�;ʦ�e[�ҍ?@�)�
.*��s�'Vjȹ�B��Ŋ�c�ʍ�w7~m��/~�A������C���X{{�!�*r�
�9�n��g����^T#�GN�
�h�
�K��U���㵕��f���.1:�*?{
q��v(��ݼ��#���\�mӆ\��FZ�y�CL
+[���Q/<�N*`��90��"��
"]OA����ю�\���$E#�6�
��C�?��!k�%�(�zs���EfQ�~�hu�A4[IBT�:�G��C�m�k'�3_����:�_ٷ�dC�����q����?�T9����
+W�E��{#��pE���w4�`E���s�n�%�M�C]��ŭB����]�#����f�Ƌbd}�����>��<���t&��W��p���@k
;�y����=^�w���Yo�yguH���&�
,:!s��u>���,����
��'��Qc��ϵgipk]�WI��A^'�e�As��j�}n�.?�%�'�������n*u�M�!kiD��[��z})#��vED��f��p�N��PW�^d��esؔұ��ͦ��V:=
+�^�Skw
�7�xY��^|[ط���foPB�£�PQ���@�Np[C>��-���w�Qd�
�O�S���'¸YoS��X���sq:�'���n֪7��]D�]�.
/-�;�z������%�jI{�G����4��T�މ�2�s�k�6�\ג�d�:-Q%w�U�,�:UDS��"��5b���2��W�{����ûg�K���j�a��H{�Q�"�ȶ*�Yl��Ti���_�f�cR
����n���F�Ϭ��>˪�R��W��UU��p��Jxj��{�\t��E�<fYh��B�
d�O�+=�
�(��ۊ+��!��MpU���ݾ58����U�D-��|u��R�˓Z��`�rQ|�e�@�K
K��
�O_.�Z�f�����,>��L�
N�M�2jfZ}�3�&
2ԕUP���3)�aO
������l�ߐ�P�R.
+� �u�-I�Ϭ��UQ���¹�¯�;߉�X�9��\?�d�����#g�g
�13Ծ�trj?���WM����^j�K�R�g���\���(��8/�/�+����fw
�>d�D��
*����r6!:�Qfd�L��ŗ�~fZXL3�v�pr�b���!]���p=�Ss�JI��t���0&�h�=~�Usv��hض��c#w���
$��B���ݗ��_���}�4fٜ�O�3�|�Dt2]T=5-�oV�bP��P
�C/VM��l3q
e��f�<��f��v
�dj��\�Wv����>��96����
D�џ��u����jis58��b"�0�33�s.iTr�ė� �A@#�ͨ�`���ŧ�fEJ���ŧ�t���ӧ�2m�{ٶ��N쳱
+��)G��V�:�ݲ��յr�32W=gf
+���؎�'C&��H���
�X[
7��T8"JM�S�o���,}V֭pr�3Es�����L��<te!~��)���l�~����
u�a���R��?,��l���n���e�b����QI��a�#���ϋh3�̗�mS��4�j���ٺN��v]S��U��N_q�B��M/�&Ɋ/�6:��0:PD����/O�F��'�D�+&/檽?��ss5*��i��!"n��D4�
�Ϟ��#��o�pp�-1
מ����k��9�jj2��(��r�81r+{��C�6#3oCܮJ%�R��,q�/ۨ(�f�I��&��j����[rq�ZD34��ܟ�#�p��&�R{���.z�~k�]��U�V?'�WG
GR�ኮL;S�^n\�����ϚT�]qG'��~���B�� 9�����;[��[�{1]�{���N#��)e���NU>�p<*b4�)Ԏ6R�?�a#U;�ј��^��F����fO�{u��jrpx)3��+t�N�
�
��BV�u�2��5���f.t�FՐ��z��f=����`��9L��,�%
&�:uF*
��Q
����誉�Bd��<��C^��:�b�(9Mx�䱗�ov6�*�=�\+���R�x����CZ?� ��#-��'$*.x1&�05K�zɔ`jn���un8_
8��,Y�_6V$���S�y8G��r�h��q&<��y
���~�wxl�H���{/����ۄor��>��N>�����'y�����\K岼�m'���=t��¥%�
���
+����>%"��=.˦?�*�+=zU�̩mcL�H�:�fA�S�c�%��l������=�d��j
�AlVH��M�~��&B�s���
�5|�+�P�&
��I�6���J�&t�A��F�5/k���|?z�ǹQ3�pQY'S��4�2\x����W��,�q�`DD��&�;f{c�|�"ݯ�d�@Dä/��
���6��b��<
�i/�,s[Z(����i����4;�Ūz�d}u5��E�І�oW[
�
v��L��X��{1�׃����C[4堪�
!u�������n��
Z�6��
���$T) 1-
+��V�6��k�@�I�X�G�L64.'nZ#
��M�8������:}���Sኽ�T9�7Qk�N�ݎ��W������̈́S
�w�+�T���5s��t�C\�N�4�w5 {��a
+N���s@�Ć/�)����I��f��m
j
�"y2y�Le�Bk�o:���kN���V��
�C���C��K��k(�l�Ѷ�awٰ�Bu��\l������r����=��M.X��?a�8�@��
�wU�h�|y�"3-_.
PT�M
�xI ��.���
ȋ�����1~<#HK�j�
�cis�GLd0M��ף3.)L��ln7��VN��%�9RYo��6���u�#���
�
L���B��K�������A�Y�|�ǁGK��,-/}�@M
�.���U�?�
,��r1;��N�|KUb�YJljf郮.��T`e1y&��2�F
:}� Q�s�Rsb�,
�--��q#�~������
�wb
43� ���@�aʗr��� �VR��*@ǡ�Ket���2E/�ӑt
hC�-�8�4����Q������Q��ӑ��6aE��+U�["tM�o�~>xl\����u�%��%n�����
���Z љ���d��}zo0���gȫ
�G}�g|��������{`�
K����K�@w �� �m�G:]%#]!<,���4
+d�"���SwK"�������
]��G�S��8��%8���&��c`'`J�0� �
�e"�\�qġ��0�d
X|;�n�}9��<�0�̑���B���*0��<��:1��,a~�F�xy�z��X��X/5
+�it���kf�%?��_�ܗ�c�Z<s�O�r�;���l���]�`_�(���K��˹�'��e� ���G
�븅8�rvV���k�Fw��X�Ѱ~�ʹFU�֏�\k��sN���꾈n~q�H; �*G
�͵�_��>��$�/��R�uZpۋ<�L ���7ئ/� ��i<� _N2�Xpo���sn�
7az��/ט��;ƹ[��#��N��
m�(D#b�(H<Q��HAt�����������SӗC\�|�E}ώ��M��k �
+����^��P����z�d���9�?n<A�j�� �S�j�����Վ�DC�OBaʘ��Y���s���hЂھ��y���������m���> ��3�p1�C;D����\�С��� F @�P��1�Re��_�F]OQϒ�[�S»�Y���*�O
���9�?��'X����?9�_
�hfu�i//@6nO�M�Y:� ӉH�� �a�RQ�AJA$�6��pF�������TE�9^u�=_m��<�g_�AC��ڎ�1�Z���.�W��o�/"�6H흢}�VkaP3�
���E��} ����2��AI?��X�
(ʜ7�4xz�p�I�W��8G�������>
�?4��p7*�^�T��8w��G�����Q���=�������
�a�z�,�N�
�
��{�n��
�heGo�!���i\-b9���x��{%8��T�u����/��(7!�o��U��pU�8��4[O0�����W�`��Ԙ�v�$�d�������<���p������8t�C���
�߱A������T�l���_�{�����E�����#�y1Q��C���y+�`m�(X�u���Sԍ
�d�7��oT}���τ>G�� Ǧ��#�����M�q�
�p�>�������8��.ux��~$i��y��
+ލ,��nja
����ݼ��ADA^^���x�ҪhI�i)�����l�B�.���}�F�w���}�
+��ɭ��Q9��Au?
+�k;����ߨ�����
h�mg>ҽ�ljN��
t�a�9����3<�ipkvr�~��E&c��Ep1�ߐT��":s��� w���l��?w��}tZ�x�<;ŏ�,��<q�3�ۣ���L�i�K
5���o nG}������}��D]j��vإ�k�F0h��B��CS)5��}�R�b�A_.y�K�\�_��*���
zIM��EW��5r�cf�����\�ڃ���z��.8={x6�:0�w��x�a�M�ȶv�m�ujI����*�W�n��[gȹ��Dqm�aג�^�N�iū��J�?�Qa(KQT7�o�
+�2��9�W
B`��S��Ւ62�
E8�����m&�V1]7Ŝۏ劵�ȩԒDҭN3v�J-�Z%'������$]�K�5X�<��B�8���-��#����ŏm+��i�%phT]7�6o�ʒ�7S���-�����ǮJy���㢟� ��>��*jL(
�1���M�p�&�B�
��; 3���l&�w
+��gQs�I~��L��E�:�W'�Y�T;�d�u�i�S�FY��C�3ZQ���.\�%��Z�ƥ���������/�<�
���M�A�]�3�\�I���L��w���1'�T�l�M�]1��
�T��E����Ij�VK�����%�)4��j���~q������ٶF2E�
5�
+�ƕ
�i��w��
L�+K''�l�=4r�;���ھ�
j��Q�лN�A�p�<z�������9���3�~�T�!����i)���Vt�x��=յ��ko�b��0�����+���4|_�W�i�ܑ�
̰���M4����~� Yq����Tr�s�,�6߬�Fe�KJ�Nt�6�QGM,�5�qؙ���b����T�5d����O6|^�:�,�p�R���js��v��s�̿
U8x�o|�N6J�I��b��E�h��Yu��Y�F��vhd�J"U�
��Z�uJ��yQ퇛��\�mv[ݒ���<fh��a�s�
jҺM�d�I�`Y_=$�҉`t�U����j@EʼnX24~Y^C��!���Q�'C��=r���z�7-�T��͜�뷵d蝒ikϽ����tN��
�
���k��}9R��c�P��M�%����3�T�.jR����Ҥ��.�2��g$�A��v������b���_Xvш�
+��j�0�R����G�}~��h�"��Ic�dXT�fɊcY�B�rQ9/&e�bz[��g �|x:l&ϐ&��p>�[��lTB$R!bئ/^�/&�F3 �����r
�nȹ�1��S~M���َ<Q?��PMjDZ�_�se�涊c�G�zZ���rΎ<eΟ�H�T��Bd���,�� r�3;����5���ιoE�
�d?��ƎƉ�L�
6��/��$��<��m.�c
6��fc�`�p�H
�Uǎ�)�8L��
ȹ}�/sj|��c�X�.��,�+��!tXV/!�1x
+|�
����
+)�VC
��� O�8pZe6y��YX[�
9w������B1IwR�
+e�r�1�/7
�*͎b�.���"u�tӣY���:����5O�]�$Q��jQ�
+��Dy�
Bu������Zac��;Ɖ�:��Z����,�a'�%���d�b�η�2���}R)u����%�bc
<�ƺ��E�������1�/V�N4�X�.��X�aa�rzh�J=)Y��I������<tU��u�
�v��
F}���~�G���d0�ఁrf'�̋%�5�ɚm�^zK��\NQ��ۤ���Q��{��=��
�5g>pu\�5�ͣ/[]?3�^�&Z���B+�t*>$�Xj�T��t�
��N<P�2�X�gB{��9�>���%ʽ.;94�lڝLN�-=�ta��Q[[ �b)�\cy��d�"h�l�_U�
+C�;9�$>�78����ު��w|�r�<��I���h<:t4��* �p�Gj�������I�`��g�j���b9P�H
ة�WI��m�]�
�h$�T%[X�Z(�"������W�*��X��o��� D|"N�2q�(Fg@$wW R�f�B��E�P�LMʽ�z6�;$bv"�
��yJ���:l�h��ɭp�|?��r�3b��e����.�Z�mJ�<[D�6j�]�a���C�v=�al�@x�
�8�K=Q�/�/��ą{�����4�@L�s � ���5�
'3���-$b�
6\���&�8t.Yx Z
j�#[�J�<0�G̘�����Z����
+O�xTn�1
�����_FK ��H+� �鐾�D 31
��&�8t�h��[�s��_�4 ��2������?zĸ��t�D{
KDم
�D"������Y�!���I�k���Kn�����O��aR�R�G\��ޝ����[m;~���
��g�-v��q;�@�?XZd�@��.P��e��@@��.�g� �ZAH�
����ⱽ�0��
�����.�#cy�R���"�x���
�H͙��MhzC���;xt:ma� �
++v��GC���9P��q�F���5R9�Vmݗw�u�������x jJ����@uM�j�
P����5�����Bl��$
���uX���|�
?��������83[�
��R�1%��p��.L����\_�P'j
+4�X
����1o_�/=ї� �w|Y�@�#_@\ߞ�nT8��R���q-��i�����b��x��� ����B�%<(��Ƒ;{/6t�%z�u^㱢:��q��ȧ��_>:���@��;`H��Q��)��c��k��m_v`*��/��j���0�F-5�O0x3
�=\�0��j�ׇDUW�fO�ję�"��su�R���`K�KW�4ӓ�
�<`��
+��f���g`��V����S2�����Bn$����6�-����TB6�Iͻ)���C��9�1�;P4��VR�������
��(�b
++�DF0c��V=�������i��|!��fWo?.�/�}pV*����� q�S���n���r:�O|=��� �>�W(����
pb�
Uݛ�Y8��VB��a��M$I5V�M
�e���ϧ36Α۟A
(�F����_
:0 O�4p��CX�Q�Iv�!���`χ ��
z� �� ����d
�9���
��j(���
���͇����q���I�M���gЂ���
������6�
|%*��m�V�Ѝl�(
� p�нDA�{�!ԫ�!�
+Cٛ+��
+!�[G9�I#����q�\fg�������/(ݾ�~��ޯ
َ��W��ׯ�+������n2�<�,��X�\��' Ҡ��1H�K��K
�{�q�t@�'
�8nVQkM��X$��~c�̓~"D�
�'���=ǿq���8��R�
���E��"�t�j7!�Z]ڠ��
+��b�:r�t �"53�Љ�K�~3˖ʷ��
��+��>N%������e��
+�h*o�8g�7�����KXQ������yL�MW��oW6�m�A�Гit�� ��݂f���]�����B�g���F�
��w"?��|��M�3F��q�_����K����
�u�f|��`�Z���Q \0��"�@�{�(��d �g�
S(�x���_W�oVo0 at _���Vl����"C�^��Ԇ�p�A|Qy���;@�x! f4-�>�*D������k;(�g��_�����
��o(���/[�g�]��ij�H,����7�7O��ו�~^����\{�����3o��ā���"���N\]�7q�{�cw�x&O3����l�-��|C��>
B�� ��<3#���7/2oٝ4NN�t���C����x�]ج�B~���:{�´�=+���S/�s��
�M��6
WX{;Rw�}pk
�~?�9�QR]#���
�T
f�e�^Mh�:x��t�N<$(�v�\{����!�e�[o�<\���>K�S�);�aJacɻ#u�
+ZR
��>30��
�ߎ��ҝ&����$��*�˶���lIG�k���5��&�2���h��o�@2���OQc3d�
p�?ɷ��9l�Wqp��֠#����*�>�|�;��F�K��;�{ma�
[�=i
*�yS=^���~��o�ǩn>�w�g��(-خ:���*��g+�A闋:�.m;�,��k��CX
�TDx����B���~���\nג�֮��K��V���f�_Jݼ_�n?z B�vu�
Uj�MWr|+[^�녲p�WJ�^/
Z�nQ}�&�f�����-o�y:��v��^u��$63��Md�
�j1�)����8�o�,���(���շWQ8���N����ĺ$��_z��z��
+M���A��w�M6����7g�w���뇳I��O��*����J�Z� -<
+�T%v�$㡕<L�e��p<������w� �^3h���z�
ыl�~8Y|�W})�}��2�0�9^e
Xe���8����ڶ����\�����Lj���4��o�n�-.<����Y��Q�1�zH�N��G�zGoH~�O�F6�oB�*�d�JJ�[��k�I7Z
X�*x�'��o���*(i ~���x'#���R����g�.b�JbÏ�˟��>e�σl�m��vŨ8���
V�z�o� �jIX�W�)���
�ms ��H*�Eޗ���8���.
�k�r{�Uw����^4�Jb�5d�>��b��n*��]�p��<�\����5�xD5�|�5ۢGHP����N,�F
�S���82*l2��P�Es~4���ll���Q��/a�X(�cJ��z��K��m���N)�Ҟ�BN����s���Q�1V�Q��j@��s��[).�ґ��ѱ��1��̱X�ߖNzEYT��K�Qa��X݄ϳ�2
aF�~[6�z��_���7���vӞ;����2�~N!JM�C���4Q�vlM�^IS����a��TL{5)DS����D�_>C�mB
+i�#Ҕ�B8_dٗg>��T]�R�2��}�v7HD����*�4[���#w7P�K��L[݁���/DžB=a'{}�,��˛��^R��A����F V�)!tX�Ր[�Z�y�v�f�����;�Ֆ{>"���
ζ�M�N_�g'�:ϿL2�m#��L�7Ů�AKN��
�+�t�\�iJ��.����-q;=u�J���2�{!���B� ���8
ٸ�c�N��p��P����~^|�M�SU��v�b
'rbh����r�йboN�J=�Ε�0���!�FT��z�~W+
k�Х�@Z�zG�l��Б.TCZ\* �+[�e*8o���������
71�--;���쒳�ڎ�<�6��X��'Ŋ�7��4�62T�xm���2'�f�NhFT��O���_�ޗ�'��I�1I�VJOd��^
o����TZ��Q����j�3�|����WmU���٣Q��ȴΎ����}F̌yNgE-�`
+����4���Th8�c�� ��I↿����p
�!y�A�ǂ���
�,7����GL��L��:l</W�
w)�[��X
E�PHwNm����[�
�zE6���Y���Y�)2ũЋF�I��
���1Ur<��ֽ
q�n�*}Q�X˩�.{ ��
+`�Fp V/�%N!�"�,`�;�������$�Rl�餱��;�
�9]YIe�55"�!�l:�{Rn��
Uc� f������J4�Ђ,Uj�Kd������&�����&7�M�]c�~�n��D�E�q�
R�[�/op��\͇�
+�U����ʔ�2�`r��x2r�����O�r�n�Z�8�]}���.�S�&Kq�˰ĨL2n��,�2�߆JD��+�������W�SD>9b�K�/��
�i���'����� ߲�/������76��Y��� �Go$"'M��
+_�[M'����r����"�D����~��dG�.t�j�T()a����R��� ��d�I���Yw� �Y
_�!%����|�F�H$��\��E�[
�B���_� ~j�g�����h�c
��6���ŃY
��x�}䐝J��i�&���\Z�Nk��p�D���q
�9�6Z��j� Dv\��G���S_�k_g �
+�8NC@�˗�����ew b]e���) :�1�D�m�v�`�&���;H��F��-��)t���sV�qI�=d)��ar�٢W)�AU�~�h:t��/�@�9 j�<�q�ǫ��
i�=_�; ��ݗ&���U\��`��(Y+���'_���~�p{dh���̧�z�iF��]���{Fu��K�䷧���g
�c#�z�z
{ j;;��.�{/`К���9�O.J@��0ٶ�@^�#�p|
��8��{��d���5�B�$PF���� %��,�� �
yz��r|)�<f 㵢?_Fɍ��/2������Oo���>
J�m�踸��*\�~a�Η6Qr#�@�9d��>PC|ԩ�꽼��p_҂/�� :���@c����ԭ��K����w@�]����xËn��h�M�F���ْ:'�բ��Xi-ؙ�L�������'/�:Lx��Sf7�i��C}at&�z�9�0>�4_N
+�O=�8�sP ��z@���O ����a�q�n��@;�
�u�F9ˍ��ͼ�RYP �p?t�����/g�?#��X�nWmH���w�����
�&_�J�j��o�f
�
s
X]}��\
`�H�o
l�<s�R��k1`�x�z��b
+Ÿ��jS��
����$Z����!mo_d�$�+��]gx,)
�����
��|��q�/_�|���
p��
+\UN�����:?a��
8� Nji`��>�[��voI`s�2b� K�'0�����BƔ
+
Ep�ܟ�HVi��>���C���01rd��M��5�"��8!��,�a�A39.� &���/��Oژ?�5�+��Qw
+<���?R[}8�G��T�A�ٙ���Eo����������?�c�T-��
���9�|Q�/"��^B7c�ik
����L��P�2�Guq�
��à�qB��kq��"��e�
JB?1��5������
��=/��QM��#�K�Q���i
�{7e���p/2�"���=�����ƀ�
��T
$~8 �_@���]��"fo;���ʾQ1Rj+
��sģ��������6DS���
�����b��� ���·u64��7K�@e�]PF/�bޟ�<C�ޡr~~�fZ'��U��
��R%����
_h����
����m��M�E��43HK@ 3"���s]Q�k�ނo#�Y�9GD@�$Jɠޭ���+���s���qє
�N�(��Q�r�K��hz�er�D
ډ�N���{I4a������p�����m/�l$*� ߖ{o�C��f��W�{O�?����ll���o��wBo�[l������[.�g~�?ٕ=�'z���nq!�M��Df �m��b�Y.�c)��f�7�{��ȇo�Ł����o�wV��@�<��v��x��y�b�ms���
q.� GɿGxQ71jV�c�Q��'��|�B�kb�;����'����E�#�&=Y����B��vZ� ��4�zD�3S�*�(D��r5~�ԕYk.��[;A�R
?w����
�1/
Pz�ģ=M\�2�¢](K�U���i{�]�Kn��@��hnb���܊&�;jq4�x��)9��:c��
���9w�b��]�.�
����cOB�
�T�t�8���T�uv�;Í
^&���r��
I�l�����W�;���T����pџ���~�����wl��
U�=�}�pџ�h�������W
U��F�y�%�h��W_qǞ:��m�l��l�E�ܖ^$�S�QL���|�2�Q�S��n@����u�[C��0%���i�O�k�7C��5�G��i��K�Q�z�ѾȠzsr
p��3��0Sت.�R��.k�d�Fdt{iQ�خ4`F�=1���I�P@|��q��x��~�Z��H�W$)'
�
���>O�9
��<<�-}�g��U`���NQl�� 27 �zr�݊��C]���/'��S7�F��>���/^��k�fZ��V��t�!�x���Z��D��w�x�:n�=�i��:N�d[��q��'��{����ٶ����dL��{��:Od��uLn<Sgl.[��JV�];�o"����BVZ��)�9-r�+��"Y��ܵ�
4
�n$ ���G��
�"���Q�t�5�#����G}� ��F���49/�ݼ���
+8���
�� :���<wv�[�P�
���T|�[{���
+��Dy����^W�S�D2��T��9����^~B��=�5{����=H�Q��Sd/X1��вj]8a�DѾ-�i��n�mb�
<��;���-�W^ӋG@[Z�-�!������g2��{��ن����-�4dt�� �B���0�փ�#"�%�sY��-��]:�v�
Y]�e�=���#��{u1~��Y��ع�����N���Ψ�/�~�3
F|��ow�s���3~��ߜ�&�K���&�)��M��z����'z������GM7�_����>oҨ�_��������7�2i�~������G�F��b��������&�C�x8�k��ٻ��I�j~���v7���?� �;gT�/��'��w��
�u�a#[����_n����2
��&B��G.�����˥
� �܀�!:�m!^�3����
@�����j�!��n�t�Cbn�����5<گ�^�F�M�K�R�Mx�Pa�W��7�k|v�:��x&���OI�vP�
�����p�����XD��j"����~��џf!ue
��C��t�:(��0�uOgQfy�,5��K<[��
��ZK���^ht�
���4�������,V�� ])��߈�+�]�Xe/��$��,-���
+��Y嘟-!���w�u8�yL�~����i6����OE?����m��$
�f��`=2�8ot���psj�ʎ�����$�懟}@ި�wit k�֑m��`��J�7\�7�'���9U�+y�A
�W�� s7�?ow�{Ljѩ����u�V6�Q�j~�Y
����N#�6Xa�s;����D>oL�e�nU䑖�-���d���T�5����o�h�,ƛ_Rla�'g{o��%�<@o��:B� ��d2z<d�S��v4��&wN\��6�oR�W�v�'|�`��P�
�y�X'�ҭ�C����
~(!p��a-��F����
�T˄)P���Z�w:� v(��
�3a�~�8��c!����*CqG7K�_�
Q���cy,U�"��w�C�v�P[�֞x��B��߹�Z��7�@
1�ه� �ng���3�
���=���~��t�:V��8���Jv�gK��s��A
C㧧�7�EU��g2��8P��k
+Z����0,����0U��tT ����K6p]ߚ-�X�M��.q~��}�?$�5HX;���>��>)wJ
8�����+
J�ej�d�b�w4����(��K<������tp����u'Ɨ%��%am�!a=�
��.)�
��nu*�:�C��ζ�E�~!�z�x
�yk����:�08�L�@�6ƠC���
��O����!o=�[yJ�D*���D���
���3L�$)�]���s��UNG��kh�5��*w��
"��<GR'`�����o��R/'� �.$
+K5Hr�sФ_p�K����\�-��U��{\Et���
+����ă�Ug�`r/����:�����V7��h��툮ӟ
+�yVb��$���$����r���RC&>އ�/f�_�qx_��8�,�
�eN�i[A��ˢ����?O�,au)O�*��ªQ��+d1
֔��=�[�h��>qSQ�����j�Uw2���u��L�x;=�F�7�{Z�]д y���e�m�k��D�|ષ���q��U�O��WP?�� �}ŤQ5������/�4��Z��~7���?� |�3��Z��n~�I�j~��ߜ�&�K��3��GMS~���ϻ��_���_��7� �R�� |ʤ�b�����MX�ﳰz��4�j�
�5_��`�m�Z�{7�o��WPw枱�
[�6��w1J^�wBD��^���
�H(+-��o�
�8���5�
Lњ�(��]�1S#J
�FU��rק�,@�a�acgU�
�@� �NL�>8�:kX��f+O ��ϋ;��ߓ��~�C�j�����L\j
�C ��_1��p\[�����-��X�y�S��U�j���䛙6��������F���?J<��{�7���َ�R�lX_�k�
T/��%q�%��Z;��3�B7��Z�l�z[g�W���h�`���j<�B���p�9V)s�W���
R�#���٭�;�'Ո9XPZ�M�
�U0�9�؛4�Xy�g�{��oW��X�>Ӈ
n�u�?�8���C~G=��P��|X��ܺ�sF�%��M�R�^H
���"B��钊#�'�
�k�8a�;��*L$n�j�l�v_���?O���TdU`t
k[2���u_~Rv�yռ_ �篁�/+M��w
+$9����u��Q¹��ü<�d�'�W�;�|��ϑ�z���ĸB�z��םh��U�a
� 16�'jh����������v�l�ܟ7y
e�p<5����voe��%���W�%Buf!�9!�[�a��>�c+g!_/�]oW
W^
xZ�(6�G>?�2!ރF���y
�]Ƒ����^��;
���җ%�u�ǰ�?�E5��G��)�BdM�|�CT�����:UD����<ꝷ�A�[���z�y�� ln��3��v.�"�}��|�Jd@{-�烒��{s�^Cޣ�~���S#ث�c`ȭe={M�
+U�<j������פ�Ц�V�GΨĘȗ��q3��H
������h2B��"T����*;��kl8j�ѧk0��2�F�s
Y
8����s9�v\fO�2���L+U�&4Z&��
+p�O�&�BT����ϑ��3�_���A�����Q�*
��E�@� e�l�D�a�/���>WɆ:"�'}�-_T�j$ �[��
+\����Q��
���8l������sgG�X6��Y�{�n
+V��fX�_f�>�z�2�Y��ɱ5�f�ރ�8]��
U縫@>�!����`g��3�?*�����5[��� :x�m۪
�P]I0 7���z���z��l[|�4�X����$�l]������
�a-�w?
5�B�\�G���s$���{)"Y;�,��
4EK�뉮ü��M^�Y\T#�ʄ\���q�m�xCy
�����~�=������ȫ��VښJ
�{ɧ$��*��8g���AF�����d���O�Y<۠��Nƹ
��^8�2��pc��0���#��
��
��5�"'2 �(�:�IXo�OI��Ï>
k#j�d�Օ�/�:
+e�����}U���L����
��.�Y`I9�
��
9@���DR
����o�/J
Ξ��^�Y��:�~���n������yVўyrW��:
�D���1k;l�
���0tq8˹��:m���Œ e��w�PY~�;
��}�����C��[�Qd�Q����y� }�ɠB����O���툮
�ʼn��@e�X��K��Po#Ѐ����0
ۭ�>�HBt���m�I�������h�� +�M��bF�h��oDӾ-78
{
�Hq�Szw��7sn8��D*�����`��ʔ�L��Y��c�P���1�n\p����"��|Ϥ����8�⫨��)_E������l�9���������j�Ѥ���z���x����Z�9�c�_���6���4n�����_��7gT������
�� ��"^�h=����;�����mw�.='��~�'�Ytle�L�d��
nn_��Cue���Ũ�+S�ӂ����\��J
���
��?�j��2�
�C���8�ټ�
=�e�C��뵊}q%1R
L1o�
��O�g�q��w�o�ub]n�ҥj���z4s���F���n�jn�j�x
+�,
�N�vX_�ɠ�h^��
\�R��]�*�����fu�A���w\�����ꄪ(��6gI�,�][{ 6���H�_���� �y?2i��� �D�[���'廉A�~�7�N��Ě3N������5L`}YX�����uP�\娈�#%+��YҊ-El�UM�G�I�"��G9����A� N4�s#�y�'�q辮��#p+�^Ó�Դ\˰v˅�
+P�4�q��R�ཤg3����c
L!*?�1�3O/��ț�=�z����s1Be_��d2�
�O��Bc'7����=�E�s'Wɩ���Jٸ�Z���Vlr����!p
�z�o��j�p+��:���(Q�t#k&�o���5��
���F�V��a�V����8S�)�fn-}��'��N���[�}u���F�ڞ����8jWV�;'��H
���g��JX^�C]�y�dd͒������`֟L��7omu�����"�w''�$
a|x������4��"��=�`N��M~E��|7�ՙ�f�n�����=P%��0��|>2��V0��"�O2p�VJ��zI�=#?Xj8�3�0���h��
|��&�
�i�i�t�-qH���OI�@W�Ț��7N��G=i�2���Y���UV��U���{�������^�#v�[OxY�?7cN6�
U+�S��!�E%h�;�Y�s$��OؿS
��#�3���
k�B��ہ��h��l���P�����E�&�P�j|Qj���<u�K��q
+�Xඈ]�U紛�w�z���3����W䯜�{��@
^���2����Σm��������j����*w�=�&́c�\�c
�Z}Ʈ�F4�y3j�;o�i�AB?w!�����8����HX�o#�J����s�p�=}b��ڢ��?��ռ��BOO���5;
u���M
+�6]<oo��l�6C�
=XMGTd���l�� ���8�]>%qH��%�P�:=G�Bԓ� o�x���#�h��S�k�v�>&
ǰr9O�>_��,k�K%�̵+�+C$�wZ�2Ի�ȭz��;��`�DHa0_<E�� �8�V��+
+a=��[8�X��N[k��&�*�T�[�3x
3y���������&r�N$SirQ �q�l�Ҋ=��5�����9,#���!q�;�?���D"��`uOS�w�`��~YOu:SEsk�x��O�>�:Ap��N��ڤNj�K.3�Oq�k��
3�G�`�T��IP ��]$@���%��qV)vV�%
�Ɯ�Rʿ�y8�h�a$u����\
��
+��
�v�ގd� ޔȼ3�����q��ձ�6��u��+�۷4r��edt_���_!P��?5�WQ�moR��������l�h�<H�
�4�L��������p8b����k��ˁ`1�ݭ�s=a�mI���:��I
��g��H߇!p�
��(���KI��<y9���>h�m����I��]� ��:���7^ag���Q��ڣCw�!\E!��aa���"ɛp����(��������qJ#�,�N{�_f�T�
m��Y�t
+KCd�9��}f�`8p���
#�p=����
#�/�8�˩�^��w�����/�=�+v}���7[�ǵ�pQ�w��'��x���;p��M�6fm��p�C^D��� >�*�{q����kʄ�U֍���B?
��Ei��h#��C�C��z�[��/�z�k�rW�r�)'2Cm��+_z�Ʋ�
H�!\��ً��)�D*˹�N۾_���˵=h�h$�#�֚�xtحu]�xk�D�_��{swʜp>$�J=�4
b�4I���ithi
<�W��n Z=߷r�m�ڐ�{~����'��N�")��̰4X_�q$�x8�zq��W$�$�rX)�Ga���Êr��Z�%���IX����@GL(��}K�0��i7��{ ����n���]�q�y�0������!�i˳ ��z��ӷ�z��P���^��p�����~��=��"�8�O��
�Ʃ�����g�9�s�#�_��7� �R��{�sL���Z�����D�9�&�k�_*�p
V&&�n�����h�M����c�|{`
���8z�^���$�\&yk:��c�b�9ɳ�ؙՎ���L1%ji�ł|��B�^|�-qh菓��悔�5�t1���6M�Úu��t���[c��q��
I���T8㤌e˞��u�[���s�z^j��
x�X��/���R���>*����%a��T#�Idխ����#B��a
//���^��ne�����^���7�ev����|���is�@6Y�nΌx�[w
+���i�Vr�/�� vm�.��8��:�J�
�[�=62.;Ѧ�O�Rm�4j:|��>;���t�
�:�&�z�@3JY���Ty��82P�������^��������h��'Ѱ������E���|T�
�Y7U6���!r�v�+�f�V*�r���w����"&33y��ג���x�y�zІ�0��(�x5�����?O��X���)*!�N��TY� M�}�ݬ#�݅]8)� ``���S��PӬ�V��gG�V�PDt`v5���H\
-� �)u⓫)�]S��?�_9�g�}��.�賂��{SGt��+�d5ka�Ex�"�2TP�l�����
���v.�F A]�5��ٛ�rW���r_��C� �w��'�P1hV�LdR�y
km��l���s����5�.M��]
ˮx�Pk�?�q˛^A��K��S�-z<��B��=g�b�{}RO���O������7Ԡ��� Y��K��c*���+g��ʬ�\��u�*�VJ)�o9ќO{��Sr
��u�u�zR�[���Ĭ��������Q����� dG�)-���F�5��r�.o
'�������~IF���+"/�
b����9JuVy�:l�}����e�nO����{g���?�*�D�WJ� ZXÄ����ʝ䋽�fs&Rol
bnIڌ�
��
w���e��<����Q����� .w[�!���氧;�R$���Gy?=7F����
�d���*��#�<oA�r���=PQᶭ�
҃+{��<
+)��<�i��*R�T����(5�n+9�(bWC���@������rp7髅� ����3({C�7���;��l
RY��VZɝ���ģ�r. ��J�ں�:5�T�v�z��GN�d��.�D3+bv�L&����!����L̢���3��)[q'&0�����pnJ��VvO��gT�D�_*7���r������%h;d�aX*���Z!�+�s\�2�ca��������ӫ�ۂ$
��6ǰ�4L߉�r[��� �e@�*e:C�f�+Nx^�-4�a��������i��*���[��`z&����s<�� ���G�P�ȤO~
V���/ˣx��GhW
��Z�3�ҷRӎ-���;�O1�f��>�i�Ȼ$�*?��BJ�I��W�q
���V=nP���qz<�����}9>U
��k�(-Q�w �
����k���
$?jEC�d�2���nN
ئ��p?V��L6��o�A���kI=�5�s�о�5�w����G� �s���y=q������.d�ֶl��
��k�)ˆqډ��Q�d�^欎�
�%F[f�JGjv� 9��
�S��
r�>�D�:��@�������*�h<z������%�&P�Kg�J
֝��7=��7٠�e��µ������I�����2
Q��iGl�*�߭;����rpdHA}����`!l�
�y%
��Z�4��H|7�)��^#����qZ�
ͨWQ�kF��"\S��3�[�D�*�Յ')������8Z�ϰ�No=AP���3�E"�8|*!�q��*��ٹ�گ1�%�R�f�v'��ǩ�
+$(�k��>���(s�
1H�(��>��&
�+la�JE��<:t �znI1�Ʃ�H@8˷{q�e��P e-�o�.�8���@�hy�nv�uv���p�e`nr�
�c�z�J��M��O�#�������{@d]�I0���D�؋3�ݯ3�p
E$�E
�:TV��N��n_ ���oY�- �TQd�._)�|�%zO��q����"
���h��8�
1�L�Q����:�XB�rAey�����������u���E��*�x0��uP�-��Qn�>@_]� ��<<���xǡ�}�&� k�sy�gYT��R�P" F>�ś�ʶmG���=�n��l�!��ɦ�����u@vkfH����t�S�j�Q��"�{�,aM� 6�1)v��f�e4P��y��B`ރƮ�o����\'^�\3}_Z�N���&Is��}g)�}o),��"WH.�R!I#�7��b]jW?%Q5���^.��L#,/�yX�L<�X�=�����3�X�,��]� [...]
�&�����<gL����K^w��y�~s�F�gԥZ ��y�fs�����y��=�2���D��tX��fX�7�a��!�j���Z��m�9o�
s���Bg��&��Z
ɥ�
�
���
���x�[9������ɞ*����<�;�)u�
@eNgߓx�����WT��+�:Vםh@�� a�R��2W�Τ��Hr4q�qw^��LVv`��=~1������si���h�,
L�nة���0Y
�[�,@��K�XK�� !��
+�"Tfa�����5����r�zT��wO�����a
�M����i��l��T�Q
c������@t��fTF
ϲH�q�^Ԅ���,����7�7Na�
+ܘ���op����\{�Ļ��s>Tf�eR�Z9�&8&
�\(��c��M����l�&���6ˎe�ر��/vB[�
�P��>�(;�Iy��#�*K&�����
Z�!�Q�Ds�´�dƕ�%�m��u�a8rxo�s���?�}�G�,�D[��ۑt�@ki7P��&�BB�
+.��
}^��|7m
Y���ٲ\���������\i���U��4�Ճ}��u��a��a��
�iy;l�%(TE����fҘ^[��N�f8�'����9-x���7T�j��Y-
��+nX�Zm��M��V���M����k��]��w��hڸ�rn�Z��V()%u5%�x!�& ��~_�
>Yh`�Y�D��]���w�#���EmP*dxq�l���
�N0H�W�ljPscX��I����m�]�2hS�hȾwmK�8�F2a�Z�?I�Zg~`��k'�c7���&�q�%���&5�V�nW���̽SP��6h{�r�8B{�م���^ssw�%���5U��c���G�A��|�+�g��幫<�Bj�g�
{w���)��h������J
+Z���%��RAp�-o8��h�@+�&���F�c�����z��~�u!<
<w��2
��O�[-_9i�z�lk�tg46��? qH��%�A��o�el
V��9ꡲA�j��.k�����4S���q\Wڔ
��,p�iK�N�o��H�煅����7�O�&����m�h�,(���Q���y�+g��8�6�[^g��5��N���.
+��0
+p���MZӨdhk�J�� Lr�t^^
��]:� NJ�ǐ�oH��2t��� �L�9���[��'��P+�W'�L�MX�{|X�
_����m�jS
��*zR����=E�?�.����g�[�+Y�r�͜δz'��nc�
�F�
Y�2q�}"���D�I>*qH���Ƞ��7TL�~����/o�S�z��x%߇�p���H2�6t
�r8/xI�S��p2*�Ĵ� ��G;�d3�x�cb�%_NjW(
�U�dy�oR���q."��S�l�!Ы\���{�}(5S_+�{�k��Kg@J���$�|7�Λ��fkh��t��
��t�L�w";�;�B%����T
���V}� QC�J
��{�%�&��]��;y�;J�D�v{O'˯��A'��N�JyH��m^�3�
)n,Һ��e��v*�iT����R�A�na{��<��B��UŗImo��$��ǰR�G� N?/Aa-��<�^�z���)������ʼ����A�6
����h�*��c��I�}Hi���Q'?{�uv�X��
���
'���%���|X�6�T�1
����6g�r3B����#�
~
Zw!
+.�MƛT�t�I��\���w�
�9�늆����t���|榻
�����
���8E�;����2&#Tvo}~D}�A�fm{�gؕ�s�
!fP^�]e� ��
Jt����
Տ;������`�� �
FDB��#���g���3�\c���}��?/賂�P���v����+��������8�w"Jd�5��թ��t*�M���Y9B+���zoz 6�5JC�<
�B&͗ �DV��a
U�_�}v_HhmH&��KX��bX�ȣ�U���ᒕ�m���7f�oB ~C���Ԓ��C�[�PF�
7V��+��g�k��Mu�I�aa��E2
�٧d�z*��S�V*����$��賷��\P
+�[~����C2+��2+������M�e��'Z�n���>��`�V=
����
L��V��
+�H
ý8���̢�/\�u,�=��D�T��n
�v�
�?/a��Q�v����nX咶s��1�SOM:uX���&��Z�a �e��0d�{q� �n���T���n_ƣ?�qh�EDk�l��x�}ka��o��ϋ�R-�ϯ�p�Z�Q�l��z�I��<��
\h������
���s�/-���`��u�zm��q�m��z�
O�
�=#�<�M��u��53��(�X�>�w3^�>�eN���3'����
Z
�?s�^��mN[��6d�����X3���z��xAr�M&��45�E��V)�.�ֈ��,9y��J���r���*��}
+��Gm��z����R*_�m�`���
�k�_^���`�f�~���B\��EA ����s���e�%�4$����� �V#N"�x/�����ډ�˅���
�
�&,�U.��s~Xmꭰ:
�a�ż���%/�d�
��>Ԥ����GU-�D�o�*-ϒs���B{� �#�N�7�����_�JT���?���8��U�p�F�*�8`�O�~�3N�����A���s�!�_�}4���6�!�J�{+v-�k�
Vk4�ܓ^:����8�@���~�_��#_
.��^g���N)7w�ym�h�_�M�W�G
u�Z��&�}���%d�~CE���ܟGë醏�9
���
�!�����&�g���S\�x��^���\j��ݾ�~9a7_r�k�匆���R�=Mis����������i���x���IX�q/,1��A#�=�
+�A����@
�ѷJ��s�K��%��KW)�y6`�w6w��\>-��6ұ�U<+bx�2���inn��x,�0��)�8�Ȥb��S �������F�!@�� �Y��v�����;��Cg����˟�K��[9G
�u
��xT2���!����I\
��^���RR�ב�Ր�[�!��O�]�ҕ��d7,k�>��nbX
nq�47�Ax��h��&UpR�`hg��x+��Y�V��Z,�F�rKߛ���$���5UG� R�n
�� ��7�X���Q����7T�V�
�����yÖB �S�!#�s���
gz>�\c01��yx@��7ꊢ�N~jk�>�TG:}K���������E]�l)˻�q*�.������) Kw���ip�h�j�����t
U�
n�Qc��&�a/�p�**��c wkh��o�D5�
4���mYb�P�-ĴT9��w^�+�}��!'<�L�g�)qH��%ߓo�A3B
�u��Y��x�fַ���}���35Ӓ3��Y�T�F��!Z��߯������(�mL�Sۺ
�lx��b�ұ�u���S~��F���ns
I�J�O�?Pˀ1����U�ݢ6����9pǪ�۫��0U.fߜ�����I�(+�*#A,-\�SV�83E�����!����;��J���6d�ͩ�y��) K��;gϊ8���[�lj��
�iO��$���(l�w�t
kɎ �#TD��&q�m�қ1�0,,~�W��L.�ŭf�|�`7����.v�H
R�N��j9�/��y0�z�*�NA
P�����d�`�o��h(˒N���|NWr51��&F��P_�E��_�){���]����Ö�k�%�U���L}�o�f"|J�rF �KoT��Z���As�ϸlrߵW�x0�稷�t�E-�6�J�M�D3S/
9A�D�������|f˽�t��كAv��id��o���r�{�"�j�S�F��
���0��;��?�j)7Ƀ
KA���|<v�q�S��Mă�t�ѕ��W�锅Η�����:ɖ��1֥+mu��F�>EX�
��}���&9����;����~G
E&Հ�N������:���mU�lؾ�� �Q at J����<�И��g7
�$��
[9Q8��y��q��ȥ|#��l/�&��!&2�$R�U�S��F}����ۈPW;"T��Q�J���� �
��t5?g�r��Wr�� ���a�Tb�
�Jw^O�
a�#D"�}�q
J�k��(�1�ڶpqѫ~J"T-x����p�-��d<\6&"����@=�^K����,m�S���V�,
zcVk�+ƌZ�
�(��:q��\L��tZ��n��]n��@�W���Y��)�]+�j4��:��4��*hB���;�i�oŊ�*�+��M��g���Q��<Y�@�185;�9�s�k�KT�@1_��1�niL=�y���`j�n5[�.�P�ڧ$,ςg��G�,6{/�wu��{�^���RzA-l.�`�'�'����칤=k'3[��Ԡ3!�YjI��
�������p�g�*⢴���W �H
�Gz���) ˻W�J�հ���-P#�7%s��
�*%��l$��:y�.��+�ga^l㤖領m�<6yF_�� <<4Am�%j��!Tx�P}8���3p��9���������D��WX�����#Y��wc5~��dc�$DRw�Y�����uaQ�f�av��R�
��Á�>=���]�qT
~����Z�~~�k��
Њ��P�6�A����)�
��Ҳ�!�)-=
+9����X* E�bn�.�668ߜ�=p �
ƶJe�(>�
��
+endstream
endobj
6 0 obj
<</Intent 16 0 R/Name(��0�0�0�0� 1)/Type/OCG/Usage 17 0 R>>
endobj
38 0 obj
<</Intent 47 0 R/Name(��0�0�0�0� 1)/Type/OCG/Usage 48 0 R>>
endobj
47 0 obj
[/View/Design]
endobj
48 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 16.0)/Subtype/Artwork>>>>
endobj
16 0 obj
[/View/Design]
endobj
17 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 16.0)/Subtype/Artwork>>>>
endobj
73 0 obj
[72 0 R]
endobj
109 0 obj
<</CreationDate(D:20150706223509+09'00')/Creator(Adobe Illustrator CS6 \(Windows\))/ModDate(D:20150706235324+09'00')/Producer(Adobe PDF library 10.01)/Title(change-of-basis)>>
endobj
xref
+0 110
+0000000004 65535 f
+0000000016 00000 n
+0000000173 00000 n
+0000051111 00000 n
+0000000005 00000 f
+0000000007 00000 f
+0001147795 00000 n
+0000000009 00000 f
+0000051162 00000 n
+0000000010 00000 f
+0000000011 00000 f
+0000000012 00000 f
+0000000013 00000 f
+0000000014 00000 f
+0000000015 00000 f
+0000000018 00000 f
+0001148066 00000 n
+0001148097 00000 n
+0000000019 00000 f
+0000000020 00000 f
+0000000021 00000 f
+0000000022 00000 f
+0000000023 00000 f
+0000000024 00000 f
+0000000025 00000 f
+0000000026 00000 f
+0000000027 00000 f
+0000000028 00000 f
+0000000029 00000 f
+0000000030 00000 f
+0000000031 00000 f
+0000000032 00000 f
+0000000033 00000 f
+0000000034 00000 f
+0000000035 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0001147872 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0001147950 00000 n
+0001147981 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000053972 00000 n
+0000054318 00000 n
+0000053833 00000 n
+0000053639 00000 n
+0001148182 00000 n
+0000051607 00000 n
+0000480926 00000 n
+0000099230 00000 n
+0000099117 00000 n
+0000052696 00000 n
+0000053077 00000 n
+0000053125 00000 n
+0000053717 00000 n
+0000053748 00000 n
+0000086790 00000 n
+0000086815 00000 n
+0000072082 00000 n
+0000054663 00000 n
+0000054930 00000 n
+0000072363 00000 n
+0000087113 00000 n
+0000087283 00000 n
+0000087352 00000 n
+0000087632 00000 n
+0000087716 00000 n
+0000099265 00000 n
+0000481000 00000 n
+0000481407 00000 n
+0000482477 00000 n
+0000488211 00000 n
+0000553800 00000 n
+0000619389 00000 n
+0000623075 00000 n
+0000688665 00000 n
+0000754255 00000 n
+0000819845 00000 n
+0000885435 00000 n
+0000951025 00000 n
+0001016615 00000 n
+0001082205 00000 n
+0001148207 00000 n
+trailer
+<</Size 110/Root 1 0 R/Info 109 0 R/ID[<F893EFC9C38F7F4A86D9DFDD589A49E7><3D95076B64FC3F4A8EB9B6A1F61F911A>]>>
+startxref
+1148400
+%%EOF
diff --git a/doc/change-of-basis.png b/doc/change-of-basis.png
new file mode 100644
index 0000000..61765d4
Binary files /dev/null and b/doc/change-of-basis.png differ
diff --git a/python/ase/doc/conf.py b/doc/conf.py
similarity index 53%
rename from python/ase/doc/conf.py
rename to doc/conf.py
index 0ded924..78a74b5 100644
--- a/python/ase/doc/conf.py
+++ b/doc/conf.py
@@ -1,13 +1,10 @@
# -*- coding: utf-8 -*-
#
-# spglib for ASE documentation build configuration file, created by
-# sphinx-quickstart on Mon Feb 2 14:53:46 2009.
+# spglib documentation build configuration file, created by
+# sphinx-quickstart on Wed Jun 17 15:04:04 2009.
#
# This file is execfile()d with the current directory set to its containing dir.
#
-# The contents of this file are pickled, so don't put values in the namespace
-# that aren't pickleable (module imports are okay, they're removed automatically).
-#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
@@ -15,21 +12,21 @@
# serve to show the default.
import sys, os
+import sphinx_bootstrap_theme
-# If your extensions are in another directory, add it here. If the directory
-# is relative to the documentation root, use os.path.abspath to make it
-# absolute, like shown here.
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.append(os.path.abspath('.'))
-# General configuration
-# ---------------------
+# -- General configuration -----------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.pngmath']
+extensions = ['sphinx.ext.mathjax']
# Add any paths that contain templates here, relative to this directory.
-templates_path = ['.templates']
+templates_path = ['_templates']
# The suffix of source filenames.
source_suffix = '.rst'
@@ -41,17 +38,17 @@ source_suffix = '.rst'
master_doc = 'index'
# General information about the project.
-project = u'pyspglib'
-copyright = u'2009, Atz Togo'
+project = u'spglib'
+copyright = u'2009, Atsushi Togo'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
-version = '1.4'
+version = '1.10.1'
# The full version, including alpha/beta/rc tags.
-release = '1.4'
+release = '1.10.1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -87,9 +84,96 @@ exclude_trees = ['_build']
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
-
-# Options for HTML output
-# -----------------------
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. Major themes that come with
+# Sphinx are currently 'default' and 'sphinxdoc'.
+html_theme = 'bootstrap'
+html_theme_options = {
+ # Navigation bar title. (Default: ``project`` value)
+ 'navbar_title': "spglib",
+
+ # Tab name for entire site. (Default: "Site")
+ 'navbar_site_name': "Site",
+
+ # A list of tuples containing pages or urls to link to.
+ # Valid tuples should be in the following forms:
+ # (name, page) # a link to a page
+ # (name, "/aa/bb", 1) # a link to an arbitrary relative url
+ # (name, "http://example.com", True) # arbitrary absolute url
+ # Note the "1" or "True" value above as the third argument to indicate
+ # an arbitrary url.
+ # 'navbar_links': [
+ # ("Examples", "examples"),
+ # ("Link", "http://example.com", True),
+ # ],
+ # 'navbar_links': [
+ # ("C-API", "api"),
+ # ("Definitions", "definition"),
+ # ("Variables", "variable"),
+ # ("Python-API", "python-spglib"),
+ # ],
+
+ # Render the next and previous page links in navbar. (Default: true)
+ 'navbar_sidebarrel': False,
+
+ # Render the current pages TOC in the navbar. (Default: true)
+ 'navbar_pagenav': True,
+
+ # Global TOC depth for "site" navbar tab. (Default: 1)
+ # Switching to -1 shows all levels.
+ 'globaltoc_depth': 1,
+
+ # Include hidden TOCs in Site navbar?
+ #
+ # Note: If this is "false", you cannot have mixed ``:hidden:`` and
+ # non-hidden ``toctree`` directives in the same page, or else the build
+ # will break.
+ #
+ # Values: "true" (default) or "false"
+ 'globaltoc_includehidden': "true",
+
+ # HTML navbar class (Default: "navbar") to attach to <div> element.
+ # For black navbar, do "navbar navbar-inverse"
+ # 'navbar_class': "navbar navbar-inverse",
+ 'navbar_class': "navbar",
+
+ # Fix navigation bar to top of page?
+ # Values: "true" (default) or "false"
+ 'navbar_fixed_top': "true",
+
+ # Location of link to source.
+ # Options are "nav" (default), "footer" or anything else to exclude.
+ # 'source_link_position': "nav",
+ 'source_link_position': "footer",
+
+ # Bootswatch (http://bootswatch.com/) theme.
+ #
+ # Options are nothing with "" (default) or the name of a valid theme
+ # such as "amelia" or "cosmo".
+ # 'bootswatch_theme': "united",
+ 'bootswatch_theme': "cosmo",
+
+ # Choose Bootstrap version.
+ # Values: "3" (default) or "2" (in quotes)
+ 'bootstrap_version': "3",
+}
+
+# html_theme_options = {
+# "nosidebar": "true",
+# }
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
@@ -136,8 +220,8 @@ html_static_path = ['_static']
# If true, the index is split into individual pages for each letter.
#html_split_index = False
-# If true, the reST sources are included in the HTML build as _sources/<name>.
-#html_copy_source = True
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
@@ -148,12 +232,10 @@ html_static_path = ['_static']
#html_file_suffix = ''
# Output file base name for HTML help builder.
-htmlhelp_basename = 'spglibforASEdoc'
+htmlhelp_basename = 'spglibdoc'
-html_theme = 'nature'
-# Options for LaTeX output
-# ------------------------
+# -- Options for LaTeX output --------------------------------------------------
# The paper size ('letter' or 'a4').
#latex_paper_size = 'letter'
@@ -162,10 +244,10 @@ html_theme = 'nature'
#latex_font_size = '10pt'
# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, document class [howto/manual]).
+# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
- ('index', 'spglibforASE.tex', ur'spglib for ASE Documentation',
- ur'Atz Togo', 'manual'),
+ ('index', 'spglib.tex', u'spglib Documentation',
+ u'Atsushi Togo', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
diff --git a/doc/definition.rst b/doc/definition.rst
new file mode 100644
index 0000000..67c9a81
--- /dev/null
+++ b/doc/definition.rst
@@ -0,0 +1,363 @@
+Definitions and conventions
+============================
+
+Information in this page is valid for spglib 1.8.1 or later. The
+definitions of transformation matrix and origin shift were different
+in the previous versions.
+
+.. contents::
+ :depth: 2
+ :local:
+
+
+References
+-----------
+
+Some references about crystallographic definitions and conventions are
+shown below. Though spglib may not follow them fully, it doesn't mean
+spglib doesn't respect them, rather it is due to the lack of
+understanding by the author of spglib.
+
+* `International Tables for Crystallography <http://it.iucr.org/>`_.
+* `Bilbao Crystallographic Server <http://www.cryst.ehu.es/>`_. The
+ references of many useful papers are found at
+ http://www.cryst.ehu.es/wiki/index.php/Articles.
+* Ulrich Müller, "Symmetry Relationships between Crystal Structures"
+* E. Parthé, K. Cenzual, and R. E. Gladyshevskii, "Standardization of
+ crystal structure data as an aid to the classification of crystal
+ structure types", Journal of Alloys and Compounds, **197**, 291-301
+ (1993). [`doi2
+ <https://dx.doi.org/10.1016/0925-8388(93)90049-S>`_]
+* E. Parthé and L. M. Gelato, "The ’best’ unit cell for monoclinic
+ structures consistent with b axis unique and cell choice 1
+ of international tables for crystallography (1983)", Acta
+ Cryst. A **41**, 142-151 (1985) [`doi3
+ <https://doi.org/10.1107/S0108767385000289>`_]
+* E. Parthé and L. M. Gelato, "The standardization of inorganic
+ crystal-structure data", Acta Cryst. A
+ **40**, 169-183 (1984) [`doi4
+ <https://doi.org/10.1107/S0108767384000416>`_]
+* S. Hall, "Space-group notation with an explicit origin", Acta
+ Cryst. A **37**, 517-525 (1981) [`doi1
+ <https://doi.org/10.1107/S0567739481001228>`_]
+
+Basis vectors :math:`(\mathbf{a}, \mathbf{b}, \mathbf{c})` or :math:`(\mathbf{a}_1, \mathbf{a}_2, \mathbf{a}_3)`
+------------------------------------------------------------------------------------------------------------------
+
+In spglib, basis vectors are represented by three column vectors:
+
+.. math::
+
+ \mathbf{a}= \begin{pmatrix}
+ a_x \\
+ a_y \\
+ a_z \\
+ \end{pmatrix},
+ \mathbf{b}= \begin{pmatrix}
+ b_x \\
+ b_y \\
+ b_z \\
+ \end{pmatrix},
+ \mathbf{c}= \begin{pmatrix}
+ c_x \\
+ c_y \\
+ c_z \\
+ \end{pmatrix},
+
+in Cartesian coordinates. Depending on the situation,
+:math:`(\mathbf{a}_1, \mathbf{a}_2, \mathbf{a}_3)` is used instead of
+:math:`(\mathbf{a}, \mathbf{b}, \mathbf{c})`.
+
+Atomic point coordinates :math:`\boldsymbol{x}`
+-----------------------------------------------
+
+Coordinates of an atomic point :math:`\boldsymbol{x}` are represented
+as three fractional values relative to basis vectors as follows,
+
+.. math::
+
+ \boldsymbol{x}= \begin{pmatrix}
+ x_1 \\
+ x_2 \\
+ x_3 \\
+ \end{pmatrix},
+
+where :math:`0 \le x_i < 1`. A position vector :math:`\mathbf{x}` in
+Cartesian coordinates is obtained by
+
+.. math::
+
+ \mathbf{x} = (\mathbf{a}, \mathbf{b}, \mathbf{c}) \boldsymbol{x}.
+
+or
+
+.. math::
+
+ \mathbf{x} = \sum_i x_i \mathbf{a}_i.
+
+Symmetry operation :math:`(\boldsymbol{W}, \boldsymbol{w})`
+-----------------------------------------------------------
+
+A symmetry operation consists of a pair of the rotation part
+:math:`\boldsymbol{W}` and translation part :math:`\boldsymbol{w}`,
+and is represented as :math:`(\boldsymbol{W}, \boldsymbol{w})` in the
+spglib document. The symmetry operation transfers :math:`\boldsymbol{x}` to
+:math:`\tilde{\boldsymbol{x}}` as follows:
+
+.. math::
+
+ \tilde{\boldsymbol{x}} = \boldsymbol{W}\boldsymbol{x} + \boldsymbol{w}.
+
+Transformation matrix :math:`\boldsymbol{P}` and origin shift :math:`\boldsymbol{p}`
+-------------------------------------------------------------------------------------
+
+The transformation matrix :math:`\boldsymbol{P}` changes choice of
+basis vectors as follows
+
+.. math::
+
+ ( \mathbf{a} \; \mathbf{b} \; \mathbf{c} )
+ = ( \mathbf{a}_\mathrm{s} \; \mathbf{b}_\mathrm{s} \;
+ \mathbf{c}_\mathrm{s} ) \boldsymbol{P},
+
+where :math:`( \mathbf{a} \; \mathbf{b} \; \mathbf{c} )` and :math:`(
+\mathbf{a}_\mathrm{s} \; \mathbf{b}_\mathrm{s} \;
+\mathbf{c}_\mathrm{s} )` are the basis vectors of an arbitrary system
+and of a starndardized system, respectively. Transformation matrix
+**doesn't** rotate a crystal in Cartesian coordinates, but just
+changes the choices of basis vectors.
+
+The origin shift :math:`\boldsymbol{p}` gives the vector from the
+origin of the standardized system :math:`\boldsymbol{O}_\mathrm{s}` to
+the origin of the arbitrary system :math:`\boldsymbol{O}`,
+
+.. math::
+
+ \boldsymbol{p} = \boldsymbol{O} - \boldsymbol{O}_\mathrm{s}.
+
+Origin shift **doesn't** move a crystal in Cartesian coordinates, but
+just changes the origin to measure the coordinates of atomic points.
+
+
+A change of basis is described by the combination of the
+transformation matrix and the origin shift denoted by
+:math:`(\boldsymbol{P}, \boldsymbol{p})` where first the
+transformation matrix is applied and then origin shift. The points in
+the standardized system :math:`\boldsymbol{x}_\mathrm{s}` and
+arbitrary system :math:`\boldsymbol{x}` are related by
+
+.. math::
+
+ \boldsymbol{x}_\mathrm{s} = \boldsymbol{P}\boldsymbol{x} +
+ \boldsymbol{p},
+
+or equivalently,
+
+.. math::
+
+ \boldsymbol{x} = \boldsymbol{P}^{-1}\boldsymbol{x}_\mathrm{s} -
+ \boldsymbol{P}^{-1}\boldsymbol{p}.
+
+
+A graphical example is shown below.
+
+.. |cob| image:: change-of-basis.png
+ :width: 20%
+
+|cob|
+
+(click the figure to enlarge)
+
+In this example,
+
+.. math::
+
+ \renewcommand*{\arraystretch}{1.4}
+ \boldsymbol{P} = \begin{pmatrix}
+ \frac{1}{2} & \frac{1}{2} & 0 \\
+ \frac{\bar{1}}{2} & \frac{1}{2} & 0 \\
+ 0 & 0 & 1
+ \end{pmatrix}.
+
+
+.. _def_standardized_unit_cell:
+
+Conventions of standardized unit cell
+--------------------------------------
+
+Choice of basis vectors
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+Using the APIs ``spg_get_dataset``,
+``spg_get_dataset_with_hall_number``, or ``spg_standardize_cell``, the
+starndardized unit cell is obtained. The "starndardized unit cell" in
+this document means that the (conventional) unit cell structure is
+standardized by the crystal symmetry and lengths of basis vectors.
+Crystals are categorized by Hall symbols in 530 different types in
+terms of 230 space group types, unique axes, settings, and cell
+choices. Moreover in spglib, lengths of basis vectors are used to
+choose the order of :math:`(\mathbf{a}, \mathbf{b}, \mathbf{c})` if
+the order can not be determined only by the symmetrical conventions.
+
+.. _def_standardized_primitive_cell:
+
+Transformation to the primitive cell
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In the standardized unit cells, there are five different centring
+types available, base centrings of A and C, rhombohedral (R), body centred
+(I), and face centred (F). The transformation is applied to the
+standardized unit cell by
+
+.. math::
+
+ ( \mathbf{a}_\mathrm{p} \; \mathbf{b}_\mathrm{p} \; \mathbf{c}_\mathrm{p} )
+ = ( \mathbf{a}_\mathrm{s} \; \mathbf{b}_\mathrm{s} \;
+ \mathbf{c}_\mathrm{s} ) \boldsymbol{P}_\mathrm{c},
+
+where :math:`\mathbf{a}_\mathrm{p}`, :math:`\mathbf{b}_\mathrm{p}`,
+and :math:`\mathbf{c}_\mathrm{p}` are the basis vectors of the
+primitive cell and :math:`\boldsymbol{P}_\mathrm{c}` is the
+transformation matrix from the standardized unit cell to the primitive
+cell. :math:`\boldsymbol{P}_\mathrm{c}` for centring types are given
+as follows:
+
+.. math::
+
+ \renewcommand*{\arraystretch}{1.4}
+ \boldsymbol{P}_\mathrm{A} =
+ \begin{pmatrix}
+ 1 & 0 & 0 \\
+ 0 & \frac{1}{2} & \frac{\bar{1}}{2} \\
+ 0 & \frac{1}{2} & \frac{{1}}{2}
+ \end{pmatrix},
+ \renewcommand*{\arraystretch}{1.4}
+ \boldsymbol{P}_\mathrm{C} =
+ \begin{pmatrix}
+ \frac{1}{2} & \frac{{1}}{2} & 0 \\
+ \frac{\bar{1}}{2} & \frac{1}{2} & 0\\
+ 0 & 0 & 1
+ \end{pmatrix},
+ \boldsymbol{P}_\mathrm{R} =
+ \begin{pmatrix}
+ \frac{2}{3} & \frac{\bar{1}}{3} & \frac{\bar{1}}{3} \\
+ \frac{1}{3} & \frac{{1}}{3} & \frac{\bar{2}}{3} \\
+ \frac{1}{3} & \frac{{1}}{3} & \frac{{1}}{3}
+ \end{pmatrix},
+ \boldsymbol{P}_\mathrm{I} =
+ \begin{pmatrix}
+ \frac{\bar{1}}{2} & \frac{{1}}{2} & \frac{{1}}{2} \\
+ \frac{{1}}{2} & \frac{\bar{1}}{2} & \frac{{1}}{2} \\
+ \frac{{1}}{2} & \frac{{1}}{2} & \frac{\bar{1}}{2}
+ \end{pmatrix},
+ \boldsymbol{P}_\mathrm{F} =
+ \begin{pmatrix}
+ 0 & \frac{{1}}{2} & \frac{{1}}{2} \\
+ \frac{{1}}{2} & 0 & \frac{{1}}{2} \\
+ \frac{{1}}{2} & \frac{{1}}{2} & 0
+ \end{pmatrix}.
+
+For rhombohedral lattice systems with the choice of hexagonal axes,
+:math:`\boldsymbol{P}_\mathrm{R}` is applied.
+
+.. _def_idealize_cell:
+
+Idealization of unit cell structure
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Spglib allows tolerance parameters to match a slightly distorted unit
+cell structure to a space group type with some higher symmetry. Using
+obtained symmetry operations, the distortion is removed to idealize
+the unit cell structure. The coordinates of atomic points are
+idealized using respective site-symmetries (Grosse-Kunstleve *et
+al*. (2002)). The basis vectors are idealized by forceing them into
+respective lattice shapes as follows. In this treatment, except for
+triclinic crystals, crystals can be rotated in Cartesian coordinates,
+which is the different type of transformation from that of the
+change-of-basis transformation explained above.
+
+Triclinic lattice
+""""""""""""""""""
+
+- Niggli reduced cell is used for choosing :math:`\mathbf{a}, \mathbf{b}, \mathbf{c}`.
+- :math:`\mathbf{a}` is set along :math:`+x` direction of Cartesian coordinates.
+- :math:`\mathbf{b}` is set in :math:`x\text{-}y` plane of Cartesian
+ coordinates so that :math:`\mathbf{a}\times\mathbf{b}` is along
+ :math:`+z` direction of Cartesian coordinates.
+
+Monoclinic lattice
+"""""""""""""""""""
+
+- :math:`b` axis is taken as the unique axis.
+- :math:`\alpha = 90^\circ` and :math:`\gamma = 90^\circ`
+- :math:`90^\circ < \beta < 120^\circ`.
+
+- :math:`\mathbf{a}` is set along :math:`+x` direction of Cartesian coordinates.
+- :math:`\mathbf{b}` is set along :math:`+y` direction of Cartesian coordinates.
+- :math:`\mathbf{c}` is set in :math:`x\text{-}z` plane of Cartesian coordinates.
+
+Orthorhombic lattice
+"""""""""""""""""""""
+
+- :math:`\alpha = \beta = \gamma = 90^\circ`.
+
+- :math:`\mathbf{a}` is set along :math:`+x` direction of Cartesian coordinates.
+- :math:`\mathbf{b}` is set along :math:`+y` direction of Cartesian coordinates.
+- :math:`\mathbf{c}` is set along :math:`+z` direction of Cartesian coordinates.
+
+Tetragonal lattice
+"""""""""""""""""""
+
+- :math:`\alpha = \beta = \gamma = 90^\circ`.
+- :math:`a=b`.
+
+- :math:`\mathbf{a}` is set along :math:`+x` direction of Cartesian coordinates.
+- :math:`\mathbf{b}` is set along :math:`+y` direction of Cartesian coordinates.
+- :math:`\mathbf{c}` is set along :math:`+z` direction of Cartesian coordinates.
+
+Rhombohedral lattice
+"""""""""""""""""""""
+
+- :math:`\alpha = \beta = \gamma`.
+- :math:`a=b=c`.
+
+- Let :math:`\mathbf{a}`, :math:`\mathbf{b}`, and :math:`\mathbf{c}`
+ projected on :math:`x\text{-}y` plane in Cartesian coordinates be
+ :math:`\mathbf{a}_{xy}`, :math:`\mathbf{b}_{xy}`, and
+ :math:`\mathbf{c}_{xy}`, respectively, and their angles be
+ :math:`\alpha_{xy}`, :math:`\beta_{xy}`,
+ :math:`\gamma_{xy}`, respectively.
+- Let :math:`\mathbf{a}`, :math:`\mathbf{b}`, and :math:`\mathbf{c}`
+ projected along :math:`z`-axis in Cartesian coordinates be
+ :math:`\mathbf{a}_{z}`, :math:`\mathbf{b}_{z}`, and
+ :math:`\mathbf{c}_{z}`, respectively.
+
+- :math:`\mathbf{a}_{xy}` is set along :math:`+x` direction of Cartesian
+ coordinates, and :math:`\mathbf{b}_{xy}` and :math:`\mathbf{c}_{xy}`
+ are placed by angles :math:`120^\circ` and :math:`240^\circ` from
+ :math:`\mathbf{a}_{xy}` counter-clockwise, respectively.
+- :math:`\alpha_{xy} = \beta_{xy} = \gamma_{xy} = 120^\circ`.
+- :math:`a_{xy} = b_{xy} = c_{xy}`.
+- :math:`a_{z} = b_{z} = c_{z}`.
+
+
+Hexagonal lattice
+""""""""""""""""""
+
+- :math:`\alpha = \beta = 90^\circ`.
+- :math:`\gamma = 120^\circ`.
+- :math:`a=b`.
+
+- :math:`\mathbf{a}` is set along :math:`+x` direction of Cartesian coordinates.
+- :math:`\mathbf{b}` is set in :math:`x\text{-}y` plane of Cartesian coordinates.
+- :math:`\mathbf{c}` is set along :math:`+z` direction of Cartesian coordinates.
+
+Cubic lattice
+""""""""""""""
+
+- :math:`\alpha = \beta = \gamma = 90^\circ`.
+- :math:`a=b=c`.
+
+- :math:`\mathbf{a}` is set along :math:`+x` direction of Cartesian coordinates.
+- :math:`\mathbf{b}` is set along :math:`+y` direction of Cartesian coordinates.
+- :math:`\mathbf{c}` is set along :math:`+z` direction of Cartesian coordinates.
diff --git a/doc/index.rst b/doc/index.rst
new file mode 100644
index 0000000..8705efb
--- /dev/null
+++ b/doc/index.rst
@@ -0,0 +1,90 @@
+Spglib
+======
+
+Spglib is a library for finding and handling crystal symmetries
+written in C.
+
+Spglib for python is found at :ref:`python_spglib`.
+
+Version history is summarized in `ChangeLog
+<https://github.com/atztogo/spglib/blob/master/ChangeLog>`_.
+
+News
+-----
+
+* SpglibDataset is slightly modified at version 1.9.4. This may hit
+ some users.
+
+* Python module pyspglib is renamed to spglib in version 1.9.0.
+
+ In versions 1.8.x or before, the python wrapper (pyspglib) was
+ considered as a special extention of spglib and separately maintained,
+ but in version 1.9.x and later, it starts to be a part of spglib as a
+ usual extension, and this python wrapper will be maintained to work
+ following every update of c-spglib. The package name is changed from
+ pyspglib to spglib. Following this change, the way to import python
+ spglib module is changed and it is written in :ref:`python_spglib`.
+
+Features
+----------
+
+* Find symmetry operations
+* Identify space-group type
+* Wyckoff position assignment
+* Refine crystal structure
+* Find a primitive cell
+* Search irreducible k-points
+
+Documentation
+--------------
+
+.. toctree::
+ :maxdepth: 1
+
+ install
+ api
+ variable
+ Python interface <python-spglib>
+ interface
+ definition
+
+References
+----------
+
+General materials
+
+* International tables for crystallography volumes A, B, C
+* Online dictionary of crystallography:
+ http://reference.iucr.org/dictionary/
+* Symmetry relationships between crystal structures by Ulrich Muller,
+ Oxford university press (2013)
+
+Specific algorithms
+
+* Space-group type determination: R. W. Grosse-Kunstleve, Acta Cryst.,
+ A55, 383-395 (1999)
+* Crystal refinement: R. W. Grosse-Kunstleve and P. D. Adams, Acta
+ Cryst., A58, 60-65 (2002)
+
+Mailing list
+-------------
+
+For questions, bug reports, and comments, please visit following
+mailing list:
+
+https://lists.sourceforge.net/lists/listinfo/spglib-users
+
+For more information
+---------------------
+
+* Repository: https://github.com/atztogo/spglib
+* License: New BSD after version 1.0.beta-1. The older versions are under GPLv2.
+* Contact: atz.togo at gmail.com
+* Authour: Atsushi Togo
+
+Acknowledgments
+----------------
+
+Spglib project acknowledges Yusuke Seto for the Crystallographic
+database, Dimitar Pashov for the fortran interface, Paweł T. Jochym
+for Python packages.
diff --git a/doc/install.rst b/doc/install.rst
new file mode 100644
index 0000000..92a3ad3
--- /dev/null
+++ b/doc/install.rst
@@ -0,0 +1,89 @@
+How to install spglib C-API
+============================
+
+Download
+---------
+
+The source code is downloaded at
+https://github.com/atztogo/spglib/archive/master.zip or you can
+git-clone the spglib repository by
+
+::
+
+ % git clone https://github.com/atztogo/spglib.git
+
+Install
+--------
+
+Compiling using cmake
+^^^^^^^^^^^^^^^^^^^^^^
+
+1. After expanding source code, go into the source code directory::
+
+ % tar xvfz spglib-1.9.8.tar.gz
+ % cd spglib-1.9.8
+
+ The current directory is ``PROJECT_SOURCE_DIR``.
+
+2. Create a directory for the build::
+
+ % mkdir _build; cd _build
+ % cmake ..
+ % make
+ % make install
+
+3. The libraries are installed at ``PROJECT_SOURCE_DIR/lib`` and the
+ header file is installed at ``PROJECT_SOURCE_DIR/include``.
+
+Compiling using configure script
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+1. The configure script is prepared using
+ autotools and libtool as follows::
+
+ % aclocal
+ % autoheader
+ % libtoolize # or glibtoolize with macport etc
+ % touch INSTALL NEWS README AUTHORS
+ % automake -acf
+ % autoconf
+
+
+2. Run configure script::
+
+ % tar xvfz spglib-1.9.8.tar.gz
+ % cd spglib-1.9.8
+ % ./configure --prefix=INSTALLATION_LOCATION
+ % make
+ % make install
+
+3. The libraries are installed at ``INSTALLATION_LOCATION/lib`` or found in
+ ``src/.libs`` if you don't run ``make install``.
+
+OpenMP
+^^^^^^^
+
+Bottle neck of symmetry operation search may be eased using the OpenMP
+threading. In the case of gcc (> 4.2), set the following environment
+variables before running configure script::
+
+ % export LIBS='-lgomp'
+ % export CFLAGS='-fopenmp'
+
+Overhead of threading is relatively large when the number of atoms is
+small. Therefore the threading is activated when the number of atoms
+>= 1000.
+
+Usage
+------
+
+1. Include ``spglib.h``
+2. Link ``libsymspg.a`` or ``libsymspg.so``
+3. A compilation example is shown in `example/README
+ <https://github.com/atztogo/spglib/blob/master/example/README>`_.
+
+Example
+--------
+
+A few examples are found in `example
+<https://github.com/atztogo/spglib/tree/master/example>`_ directory.
diff --git a/doc/interface.rst b/doc/interface.rst
new file mode 100644
index 0000000..0ae970c
--- /dev/null
+++ b/doc/interface.rst
@@ -0,0 +1,38 @@
+Fortran and Ruby interfaces
+============================
+
+It is expected that Fortran and Ruby interfaces work at a certain
+level but not as goog as Python interface.
+
+Ruby interface
+---------------
+
+The ruby script ``symPoscar.rb`` in ``ruby`` directory reads a VASP
+POSCAR formatted file and finds the space-group type. The ``-l``
+option refines a slightly distorted structure within tolerance
+spacified with the ``-s`` option. The ``-o`` option gives the symmetry
+operations of the input structure.
+
+::
+
+ ruby symPoscar.rb POSCAR -s 0.1 -o -l
+
+
+Some more options are shown with ``--help`` option::
+
+ ruby symPoscar.rb --help
+
+The way to compile the ruby module is explained in
+`ruby/README <https://github.com/atztogo/spglib/blob/master/ruby/README>`_.
+
+Fortran interface
+------------------
+
+Fortran interface `spglib_f08.f90
+<https://github.com/atztogo/spglib/blob/master/example/example_f08.f90>`_
+is found in `example
+<https://github.com/atztogo/spglib/tree/master/example>`_
+directory. This fortran interface is the contribution from Dimitar
+Pashov. `spglib_f.c
+<https://github.com/atztogo/spglib/blob/master/src/spglib_f.c>`_ is
+obsolete and is not recommended to use.
diff --git a/doc/python-spglib.rst b/doc/python-spglib.rst
new file mode 100644
index 0000000..49003c7
--- /dev/null
+++ b/doc/python-spglib.rst
@@ -0,0 +1,621 @@
+.. _python_spglib:
+
+Spglib for Python
+==================
+
+.. contents::
+ :depth: 2
+ :local:
+
+Installation
+-------------
+
+The source code is downloaded at
+https://github.com/atztogo/spglib/releases .
+But minor updates are not included in this package. If you want the
+latest version, you can git-clone the spglib repository::
+
+ % git clone https://github.com/atztogo/spglib.git
+
+It is also possible to install spglib for python via the following
+package distribution services or from building using setup.py.
+
+The following pip and conda packages are made and maintained by
+`Paweł T. Jochym <https://github.com/jochym>`_, which is of great help
+to keeping spglib handy and useful.
+
+Using pip
+^^^^^^^^^
+
+Numpy is required before the python-spglib installation. The command to
+install spglib is::
+
+ % pip install --user spglib
+
+If you see the error message like below in the installation process::
+
+ _spglib.c:35:20: fatal error: Python.h: No such file or directory
+
+development tools for building python module are additionally
+necessary and are installed using OS's package management system,
+e.g.,::
+
+ % sudo apt-get install python-dev
+
+If your installation by pip failed, you may need to
+upgrade setuptools, e.g., by::
+
+ % pip install --upgrade --user setuptools
+
+Using conda
+^^^^^^^^^^^
+
+Conda is another choice::
+
+ % conda install -c conda-forge spglib
+
+Building using setup.py
+^^^^^^^^^^^^^^^^^^^^^^^
+
+To manually install python-spglib using ``setup.py``, python header
+files (python-dev), C-compiler (e.g., gcc, clang), and numpy are
+required before the build. The installation steps are shown as
+follows:
+
+1. Go to the :file:`python` directory
+2. Type the command::
+
+ % python setup.py install --user
+
+ Document about where spglib is installed is found at the
+ links below:
+
+ - https://docs.python.org/2/install/#alternate-installation-the-user-scheme
+ - https://docs.python.org/3/install/#alternate-installation-the-user-scheme
+
+If your installation by setup.py failed, you may need to upgrade
+setuptools, e.g., by::
+
+ % pip install --upgrade --user setuptools
+
+
+Test
+-----
+
+The test script :file:`test_spglib.py` is found in :file:`python/test`
+directory. Got to this directory and run this script. It will be like below::
+
+ % python test_spglib.py
+ test_find_primitive (__main__.TestSpglib) ... ok
+ test_get_symmetry (__main__.TestSpglib) ... ok
+ test_get_symmetry_dataset (__main__.TestSpglib) ... ok
+ test_refine_cell (__main__.TestSpglib) ... ok
+
+ ----------------------------------------------------------------------
+ Ran 4 tests in 13.147s
+
+ OK
+
+How to import spglib module
+---------------------------
+
+**Change in version 1.9.0!**
+
+For versions 1.9.x or later::
+
+ import spglib
+
+For versions 1.8.x or before::
+
+ from pyspglib import spglib
+
+If the version is not sure::
+
+ try:
+ import spglib as spg
+ except ImportError:
+ from pyspglib import spglib as spg
+
+Version number
+--------------
+
+In version 1.8.3 or later, the version number is obtained by
+``spglib.__version__`` or :ref:`method_get_version`.
+
+Example
+--------
+
+Examples are found in `examples
+<https://github.com/atztogo/spglib/tree/master/python/examples>`_
+directory.
+
+.. _py_variables:
+
+Variables
+----------
+
+.. _py_variables_crystal_structure:
+
+Crystal structure (``cell``)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A crystal structure is given by a **tuple**. This tuple format is
+supported at version 1.9.1 or later.
+
+The tuple format is shown as follows. There are three or four elements
+in the tuple: ``cell = (lattice, positions, numbers)`` or ``cell =
+(lattice, positions, numbers, magmoms)`` where ``magmoms`` represents
+collinear polarizations on atoms and is optional.
+
+Lattice parameters ``lattice`` are given by a 3x3 matrix with floating
+point values, where :math:`\mathbf{a}, \mathbf{b}, \mathbf{c}` are
+given as rows, which results in the transpose of the definition for
+C-API (:ref:`variables_lattice`). Fractional atomic positions
+``positions`` are given by a Nx3 matrix with floating point values,
+where N is the number of atoms. Numbers to distinguish atomic species
+``numbers`` are given by a list of N integers. The collinear polarizations
+``magmoms`` only work with ``get_symmetry`` and are given
+as a list of N floating point values.
+
+::
+
+ lattice = [[a_x, a_y, a_z],
+ [b_x, b_y, b_z],
+ [c_x, c_y, c_z]]
+ positions = [[a_1, b_1, c_1],
+ [a_2, b_2, c_2],
+ [a_3, b_3, c_3],
+ ...]
+ numbers = [n_1, n_2, n_3, ...]
+ magmoms = [m_1, m_2, m_3, ...] # Only works with get_symmetry
+
+Version 1.9.5 or later: The methods that use the crsytal strcutre
+will return ``None`` when a crystal structure is not properly given.
+
+ASE Atoms-like input is deprecated.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In the previous versions, ASE Atoms-like input was supported, but it
+is deprecated. It is recommended to use the above tuple-style input
+for the future support. ``DeprecationWarning`` is issued at version
+1.10.0 or later.
+
+The reason to make this feature deprecated is that ASE Atoms class is
+too huge and users may expect spglib can understand its full
+feature. However spglib actually collects only the following values
+from the ASE Atoms-class instance::
+
+ lattice = np.array(cell.get_cell().T, dtype='double', order='C')
+ positions = np.array(cell.get_scaled_positions(), dtype='double', order='C')
+ numbers = np.array(cell.get_atomic_numbers(), dtype='intc')
+ magmoms = None
+
+Nevertheless the ASE Atoms-like input will be accepted for a while.
+An alternative Atoms class (`atoms.py
+<https://github.com/atztogo/spglib/blob/master/python/examples/atoms.py>`_)
+that contains minimum set of methods is prepared in the `examples
+<https://github.com/atztogo/spglib/tree/master/python/examples>`_
+directory. ``get_symmetry`` with collinear polarizations is not
+supported when ASE Atoms-class instance.
+
+Symmetry tolerance (``symprec``)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Distance tolerance in Cartesian coordinates to find crystal symmetry.
+
+Methods
+--------
+
+.. _method_get_version:
+
+``get_version``
+^^^^^^^^^^^^^^^^
+
+**New in version 1.8.3**
+
+::
+
+ version = get_version()
+
+This returns version number of spglib by tuple with three numbers.
+
+``get_error_message``
+^^^^^^^^^^^^^^^^^^^^^^
+
+**New in version 1.9.5**
+
+This method may be used to see why spglib failed though error handling
+in spglib is not very sophisticated.
+
+::
+
+ error_message = get_error_message()
+
+``get_spacegroup``
+^^^^^^^^^^^^^^^^^^^
+
+::
+
+ spacegroup = get_spacegroup(cell, symprec=1e-5)
+
+International space group short symbol and number are obtained as a
+string. With ``symbol_type=1``, Schoenflies symbol is given instead of
+international symbol.
+
+.. _py_method_get_symmetry:
+
+``get_symmetry``
+^^^^^^^^^^^^^^^^^^
+
+::
+
+ symmetry = get_symmetry(cell, symprec=1e-5)
+
+Symmetry operations are obtained as a dictionary. The key ``rotation``
+contains a numpy array of integer, which is "number of symmetry
+operations" x "3x3 matrices". The key ``translation`` contains a numpy
+array of float, which is "number of symmetry operations" x
+"vectors". The orders of the rotation matrices and the translation
+vectors correspond with each other, e.g. , the second symmetry
+operation is organized by the set of the second rotation matrix and second
+translation vector in the respective arrays. Therefore a set of
+symmetry operations may obtained by::
+
+ [(r, t) for r, t in zip(dataset['rotations'], dataset['translations'])]
+
+The operations are given with respect to the fractional coordinates
+(not for Cartesian coordinates). The rotation matrix and translation
+vector are used as follows::
+
+ new_vector[3x1] = rotation[3x3] * vector[3x1] + translation[3x1]
+
+The three values in the vector are given for the a, b, and c axes,
+respectively. The key ``equivalent_atoms`` gives a mapping table of
+atoms to symmetrically independent atoms. This is used to find
+symmetrically equivalent atoms. The numbers contained are the indices
+of atoms starting from 0, i.e., the first atom is numbered as 0, and
+then 1, 2, 3, ... ``np.unique(equivalent_atoms)`` gives representative
+symmetrically independent atoms. A list of atoms that are
+symmetrically euivalent to some independent atom (here for example 1
+is in ``equivalent_atom``) is found by
+``np.where(equivalent_atom=1)[0]``. When the search failed, ``None``
+is returned.
+
+If ``cell`` is given as a tuple and collinear polarizations are given
+as the fourth element of this tuple, symmetry operations are searched
+considering this freedome. In ASE Atoms-class object, this is not supported.
+
+``refine_cell``
+^^^^^^^^^^^^^^^^
+
+**Behaviour changed in version 1.8.x**
+
+::
+
+ lattice, scaled_positions, numbers = refine_cell(cell, symprec=1e-5)
+
+Standardized crystal structure is obtained as a tuple of lattice (a 3x3
+numpy array), atomic scaled positions (a numpy array of
+[number_of_atoms,3]), and atomic numbers (a 1D numpy array) that are
+symmetrized following space group type. When the search
+failed, ``None`` is returned.
+
+The detailed control of standardization of unit cell is achieved using
+``standardize_cell``.
+
+``find_primitive``
+^^^^^^^^^^^^^^^^^^^
+
+**Behaviour changed in version 1.8.x**
+
+::
+
+ lattice, scaled_positions, numbers = find_primitive(cell, symprec=1e-5)
+
+When a primitive cell is found, lattice parameters (a 3x3 numpy array),
+scaled positions (a numpy array of [number_of_atoms,3]), and atomic
+numbers (a 1D numpy array) is returned. When the search failed,
+``None`` is returned.
+
+The detailed control of standardization of unit cell can be done using
+``standardize_cell``.
+
+``standardize_cell``
+^^^^^^^^^^^^^^^^^^^^^
+
+**New in version 1.8.x**
+
+::
+
+ lattice, scaled_positions, numbers = standardize_cell(bulk, to_primitive=False, no_idealize=False, symprec=1e-5)
+
+``to_primitive=True`` is used to create the standardized primitive
+cell, and ``no_idealize=True`` disables to idealize lengths and angles
+of basis vectors and positions of atoms according to crystal
+symmetry. Now ``refine_cell`` and ``find_primitive`` are shorthands of
+this method with combinations of these options. When the search
+failed, ``None`` is returned. is returned. More detailed explanation
+is shown in the spglib (C-API) document.
+
+.. _py_method_get_symmetry_dataset:
+
+``get_symmetry_dataset``
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+**At version 1.9.4, the member 'choice' is added.**
+
+::
+
+ dataset = get_symmetry_dataset(cell, symprec=1e-5, angle_tolerance=-1.0, hall_number=0)
+
+The arguments are:
+
+* ``cell`` and ``symprec``: See :ref:`py_variables`.
+* ``angle_tolerance``: An experimental argument that controls angle
+ tolerance between basis vectors. Normally it is not recommended to use
+ this argument. See a bit more detail at
+ :ref:`variables_angle_tolerance`.
+* ``hall_number`` (see the definition of this number at
+ :ref:`api_spg_get_dataset_spacegroup_type`): The argument to
+ constrain the space-group-type search only for the Hall symbol
+ corresponding to it. The mapping from Hall symbols to a
+ space-group-type is the many-to-one mapping. Without specifying this
+ option (i.e., in the case of ``hall_number=0``), always the first one
+ (the smallest serial number corresponding to the space-group-type in
+ `list of space groups (Seto's web site)
+ <http://pmsl.planet.sci.kobe-u.ac.jp/~seto/?page_id=37&lang=en>`_)
+ among possible choices and settings is chosen as default. This
+ argument is useful when the other choice (or settting) is
+ expected to be hooked. This affects to the obtained values of ``international``,
+ ``hall``, ``hall_number``, ``choice``, ``transformation_matrix``,
+ ``origin shift``, ``wyckoffs``, ``std_lattice``, ``std_positions``,
+ and ``std_types``, but not to ``rotations`` and ``translations`` since
+ the later set is defined with respect to the basis vectors of user's
+ input (the ``cell`` argument).
+
+``dataset`` is a dictionary. Short explanations of the values of the
+keys are shown below. More the detail may be found at
+:ref:`api_struct_spglibdataset`.
+
+* ``number``: International space group number
+* ``international``: International short symbol
+* ``hall``: Hall symbol
+* ``hall_number``: Hall number. This number is used in
+ :ref:`py_method_get_symmetry_from_database` and
+ :ref:`py_method_get_spacegroup_type`.
+* ``choice``: Centring, origin, basis vector setting
+* ``transformation_matrix``: See the detail at
+ :ref:`api_origin_shift_and_transformation`.
+* ``origin shift``: See the detail at
+ :ref:`api_origin_shift_and_transformation`.
+* ``wyckoffs``: Wyckoff letters
+* ``equivalent_atoms``: Mapping table to equivalent atoms
+* ``mapping_to_primitive``: Mapping table to atoms in the primitive cell
+* ``rotations`` and ``translations``: Rotation matrices and
+ translation vectors. See :ref:`py_method_get_symmetry` for more
+ details.
+* ``pointgroup``: Symbol of the crystallographic point group in
+ the Hermann–Mauguin notation.
+* ``std_lattice``, ``std_positions``, ``std_types``: Standardized
+ crystal structure corresponding to a Hall symbol found. These are
+ equivalently given in the array formats of ``lattice``,
+ ``positions``, and ``numbers`` presented at
+ :ref:`py_variables_crystal_structure`,
+ respectively.
+* ``std_mapping_to_primitive``: Mapping table from atoms in the
+ standardized crystal structure to the atoms in the primitive cell.
+
+..
+ * ``pointgrouop_number``: Serial number of the crystallographic point
+ group, which refers list of space groups (Seto’s web site)
+
+When the search failed, ``None`` is returned.
+
+.. _py_method_get_symmetry_from_database:
+
+``get_symmetry_from_database``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+ symmetry = get_symmetry_from_database(hall_number)
+
+A set of crystallographic symmetry operations corresponding to
+``hall_number`` is returned by a dictionary where rotation parts and
+translation parts are accessed by the keys ``rotations`` and
+``translations``, respectively. The definition of ``hall_number`` is
+found at :ref:`api_spg_get_dataset_spacegroup_type`.
+
+When something wrong happened, ``None`` is returned.
+
+.. _py_method_get_spacegroup_type:
+
+``get_spacegroup_type``
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+**New at version 1.9.4**
+
+::
+
+ spacegroup_type = get_spacegroup_type(hall_number)
+
+This function allows to directly access to the space-group-type
+database in spglib (spg_database.c). A dictionary is returned. To
+specify the space group type with a specific choice, ``hall_number``
+is used. The definition of ``hall_number`` is found at
+:ref:`api_spg_get_dataset_spacegroup_type`. The keys of the returned
+dictionary is as follows:
+
+::
+
+ number
+ international_short
+ international_full
+ international
+ schoenflies
+ hall_symbol
+ choice
+ pointgroup_schoenflies
+ pointgroup_international
+ arithmetic_crystal_class_number
+ arithmetic_crystal_class_symbol
+
+Here ``spacegroup_type['international_short']`` is equivalent to
+``dataset['international']`` of ``get_symmetry_dataset``,
+``spacegroup_type['hall_symbol']`` is equivalent to
+``dataset['hall']`` of ``get_symmetry_dataset``, and
+``spacegroup_type['pointgroup_international']`` is equivalent to
+``dataset['pointgroup_symbol']`` of ``get_symmetry_dataset``.
+
+When something wrong happened, ``None`` is returned.
+
+``get_hall_number_from_symmetry``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+**experimental**
+
+``hall_number`` is obtained from the set of symmetry operations. The
+definition of ``hall_number`` is found at
+:ref:`api_spg_get_dataset_spacegroup_type` and the corresponding
+space-group-type information is obtained through
+:ref:`py_method_get_spacegroup_type`.
+
+This is expected to work well for the set of symmetry operations whose
+distortion is small. The aim of making this feature is to find
+space-group-type for the set of symmetry operations given by the other
+source than spglib. ``symprec`` is in the length of the fractional
+coordinates and should be small like ``1e-5``.
+
+::
+
+ get_hall_number_from_symmetry(rotations, translations, symprec=1e-5)
+
+``niggli_reduce``
+^^^^^^^^^^^^^^^^^^
+
+**New at version 1.9.4**
+
+::
+
+ niggli_lattice = niggli_reduce(lattice, eps=1e-5)
+
+Niggli reduction is achieved using this method. The algorithm detail
+is found at https://atztogo.github.io/niggli/ and the references are
+there in. Original basis vectors are stored in ``lattice`` and the
+Niggli reduced basis vectors are given in ``niggli_lattice``. The
+format of basis vectors are found at
+:ref:`py_variables_crystal_structure`. ``esp`` is the tolerance
+parameter, but unlike ``symprec`` the unit is not a length. This is
+used to check if difference of norms of two basis vectors is close to
+zero or not and if two basis vectors are orthogonal by the value of
+dot product being close to zero or not. The detail is shown at
+https://atztogo.github.io/niggli/.
+
+When the search failed, ``None`` is returned.
+
+The transformation from original basis vectors :math:`( \mathbf{a}
+\; \mathbf{b} \; \mathbf{c} )` to final baiss vectors :math:`(
+\mathbf{a}' \; \mathbf{b}' \; \mathbf{c}' )` is achieved by linear
+combination of basis vectors with integer coefficients without
+rotating coordinates. Therefore the transformation matrix is obtained
+by :math:`\boldsymbol{P} = ( \mathbf{a} \; \mathbf{b} \; \mathbf{c} )
+( \mathbf{a}' \; \mathbf{b}' \; \mathbf{c}' )^{-1}` and the matrix
+elements have to be almost integers.
+
+``delaunay_reduce``
+^^^^^^^^^^^^^^^^^^^^
+
+**New at version 1.9.4**
+
+::
+
+ delaunay_lattice = delaunay_reduce(lattice, eps=1e-5)
+
+Delaunay reduction is achieved using this method. The algorithm is
+found in the international tables for crystallography
+volume A. Original basis vectors are stored in ``lattice`` and the
+Delaunay reduced basis vectors are given in ``delaunay_lattice``,
+where the format of basis vectors are shown in
+:ref:`py_variables_crystal_structure`. ``esp`` is the tolerance
+parameter, but unlike ``symprec`` the unit is not a length. This is
+used as the criterion if volume is close to zero or not and if two
+basis vectors are orthogonal by the value of dot product being close
+to zero or not.
+
+When the search failed, ``None`` is returned.
+
+The transformation from original basis vectors :math:`( \mathbf{a}
+\; \mathbf{b} \; \mathbf{c} )` to final basis vectors :math:`(
+\mathbf{a}' \; \mathbf{b}' \; \mathbf{c}' )` is achieved by linear
+combination of basis vectors with integer coefficients without
+rotating coordinates. Therefore the transformation matrix is obtained
+by :math:`\boldsymbol{P} = ( \mathbf{a} \; \mathbf{b} \; \mathbf{c} )
+( \mathbf{a}' \; \mathbf{b}' \; \mathbf{c}' )^{-1}` and the matrix
+elements have to be almost integers.
+
+``get_ir_reciprocal_mesh``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+ mapping, grid = get_ir_reciprocal_mesh(mesh, cell, is_shift=[0, 0, 0])
+
+Irreducible k-points are obtained from a sampling mesh of k-points.
+``mesh`` is given by three integers by array and specifies mesh
+numbers along reciprocal primitive axis. ``is_shift`` is given by the
+three integers by array. When ``is_shift`` is set for each reciprocal
+primitive axis, the mesh is shifted along the axis in half of adjacent
+mesh points irrespective of the mesh numbers. When the value is not 0,
+``is_shift`` is set.
+
+``mapping`` and ``grid`` are returned. ``grid`` gives the mesh points in
+fractional coordinates in reciprocal space. ``mapping`` gives mapping to
+the irreducible k-point indices that are obtained by ::
+
+ np.unique(mapping)
+
+Here ``np`` means the numpy module. The grid point is accessed by
+``grid[index]``.
+
+When the sesarch failed, ``None`` is returned.
+
+An example is shown below::
+
+ import numpy as np
+ import spglib
+
+ lattice = np.array([[0.0, 0.5, 0.5],
+ [0.5, 0.0, 0.5],
+ [0.5, 0.5, 0.0]]) * 5.4
+ positions = [[0.875, 0.875, 0.875],
+ [0.125, 0.125, 0.125]]
+ numbers= [1,] * 2
+ cell = (lattice, positions, numbers)
+ print(spglib.get_spacegroup(cell, symprec=1e-5))
+ mesh = [8, 8, 8]
+
+ #
+ # Gamma centre mesh
+ #
+ mapping, grid = spglib.get_ir_reciprocal_mesh(mesh, cell, is_shift=[0, 0, 0])
+
+ # All k-points and mapping to ir-grid points
+ for i, (ir_gp_id, gp) in enumerate(zip(mapping, grid)):
+ print("%3d ->%3d %s" % (i, ir_gp_id, gp.astype(float) / mesh))
+
+ # Irreducible k-points
+ print("Number of ir-kpoints: %d" % len(np.unique(mapping)))
+ print(grid[np.unique(mapping)] / np.array(mesh, dtype=float))
+
+ #
+ # With shift
+ #
+ mapping, grid = spglib.get_ir_reciprocal_mesh(mesh, cell, is_shift=[1, 1, 1])
+
+ # All k-points and mapping to ir-grid points
+ for i, (ir_gp_id, gp) in enumerate(zip(mapping, grid)):
+ print("%3d ->%3d %s" % (i, ir_gp_id, (gp + [0.5, 0.5, 0.5]) / mesh))
+
+ # Irreducible k-points
+ print("Number of ir-kpoints: %d" % len(np.unique(mapping)))
+ print((grid[np.unique(mapping)] + [0.5, 0.5, 0.5]) / mesh)
diff --git a/doc/variable.rst b/doc/variable.rst
new file mode 100644
index 0000000..3883971
--- /dev/null
+++ b/doc/variable.rst
@@ -0,0 +1,120 @@
+Variables
+==========
+
+Variables frequently used in C-API are explained. In interfaces of
+other languages, the definition may be different, e.g., ``lattice``
+for Python interface is transposed.
+
+.. contents::
+ :depth: 2
+ :local:
+
+.. _variables_lattice:
+
+``lattice``
+-------------
+
+**Attention**: In Python interface, ``lattice`` is transposed
+(:ref:`py_variables_crystal_structure`.)
+
+Basis vectors (in Cartesian)
+
+::
+
+ [ [ a_x, b_x, c_x ],
+ [ a_y, b_y, c_y ],
+ [ a_z, b_z, c_z ] ]
+
+Cartesian position :math:`\mathbf{x}_\mathrm{Cart}` is obtained by
+
+.. math::
+
+ \mathbf{x}_\mathrm{Cart} = \mathrm{L}\cdot\mathbf{x}_\mathrm{frac}
+
+where :math:`\mathrm{L}` is the basis vectors defined above and is
+:math:`\mathrm{L}=(\mathbf{a},\mathbf{b},\mathbf{c})`, and
+:math:`\mathbf{x}_\mathrm{frac}` is the atomic position in fractional
+coordinates given below.
+
+
+``position``
+--------------
+
+Atomic points (in fractional coordinates with respect to basis vectors)
+
+::
+
+ [ [ x1_a, x1_b, x1_c ],
+ [ x2_a, x2_b, x2_c ],
+ [ x3_a, x3_b, x3_c ],
+ ... ]
+
+
+``types``
+----------
+
+Atomic species are differenciated by integers. The nubmers are just
+used to distinguishes atoms, and is not releated to atomic numbers.
+
+::
+
+ [ type_1, type_2, type_3, ... ]
+
+The number of elements is same as the number of atoms.
+
+``rotation``
+--------------
+
+Rotation matricies (ingeger) of symmetry operations.
+
+::
+
+ [ [ r_aa, r_ab, r_ac ],
+ [ r_ba, r_bb, r_bc ],
+ [ r_ca, r_cb, r_cc ] ]
+
+``translation``
+-----------------
+
+Translation vectors corresponding to symmetry operations in fractional
+coordinates.
+
+::
+
+ [ t_a, t_b, t_c ]
+
+``symprec``
+------------
+
+Tolerance of distance between atomic positions and between lengths of
+lattice vectors to be tolerated in the symmetry finding. The angle
+distortion between lattice vectors is converted to a length and
+compared with this distance tolerance. If the explicit angle tolerance
+is expected, see ``angle_tolerance``.
+
+.. _variables_angle_tolerance:
+
+``angle_tolerance``
+--------------------
+
+**Experimental**
+
+Tolerance of angle between lattice vectors in degrees to be tolerated
+in the symmetry finding. To use angle tolerance, another set of
+functions are prepared as follows
+
+::
+
+ spgat_get_dataset
+ spgat_get_symmetry
+ spgat_get_symmetry_with_collinear_spin
+ spgat_get_multiplicity
+ spgat_find_primitive
+ spgat_get_international
+ spgat_get_schoenflies
+ spgat_refine_cell
+
+These functions are called by the same way with an additional argument
+of ``const double angle_tolerance`` in degrees. By specifying a negative
+value, the behavior becomes the same as usual functions. The default
+value of ``angle_tolerance`` is a negative value.
diff --git a/example/Makefile_f08 b/example/Makefile_f08
index a6e62c1..081af09 100644
--- a/example/Makefile_f08
+++ b/example/Makefile_f08
@@ -1,17 +1,17 @@
-
-fc = gfortran -g -fcheck=all -fbacktrace
-# fc = ifort -g -check all -traceback
-lib = ../src/.libs/libsymspg.a
-
-test: example
- ./example
-
-
-example: example_f08.f90 spglib_f08.o
- $(fc) $^ $(lib) -o $@
-
-spglib_f08.o: spglib_f08.f90
- $(fc) -c $^
-
-clean:
- rm -f example{,.o} defs_basis.mod spglib_f08.{o,mod}
+
+fc = gfortran -g -fcheck=all -fbacktrace
+# fc = ifort -g -check all -traceback
+lib = ../src/.libs/libsymspg.a
+
+test: example
+ ./example
+
+
+example: example_f08.f90 spglib_f08.o
+ $(fc) $^ $(lib) -o $@
+
+spglib_f08.o: spglib_f08.f90
+ $(fc) -c $^
+
+clean:
+ rm -f example{,.o} defs_basis.mod spglib_f08.{o,mod}
diff --git a/example/README b/example/README
index 3f38fb4..382ef65 100644
--- a/example/README
+++ b/example/README
@@ -1,13 +1,45 @@
-This is the README file for examples.
+How to use spglib example files
+================================
-To compile example.c
-% gcc example.c -I[include directory] -L[library directory] -lsymspg -lm
+This is the README file for spglib examples for C, Fortran, and
+a linear tetrahedron method example.
-To complie example_f08.f90, please follow Makefile_f08.
-% make -f Makefile_f08
+Examples of spglib functions in C
+----------------------------------
-To compile obsolete example.f90
-% gcc -c spglib_f.c
-% gfortran example.f90 spglib_f.o -L[library directory] -lsymspg -lm
+To compile example.c::
-Togo <atz.togo at gmail.com>
+ % gcc example.c -I[include directory] -L[library directory] -lsymspg -lm
+
+
+Fortran wrapper
+----------------
+
+Fortran wrapper is required to use spglib from Fortran.
+
+To complie example_f08.f90, please follow Makefile_f08::
+
+ % make -f Makefile_f08
+
+To compile obsolete example.f90::
+
+ % gcc -c spglib_f.c
+ % gfortran example.f90 spglib_f.o -L[library directory] -lsymspg -lm
+
+
+Linear tetrahedron method
+--------------------------
+
+tetrahedron_method.c relies only kgrid.c and kgrid.h. Therefore in the
+example in tetrahedron.c, although spg_get_ir_reciprocal_mesh is used
+to obtain irreducible k-points, this is not essential for running
+tetrahedorn method packed with the spglib distribution. To compile
+tetrahedron.c::
+
+ % gcc tetrahedron.c [source directory]/tetrahedron_method.c -I[include directory] -L[library directory] -lsymspg
+
+tetrahedron.c is written to work with OpenMP. To compile with "-lgomp
+-fopenmp", the tetrahedon method calculation is distributed into CPU
+cores.
+
+Atsushi Togo <atz.togo at gmail.com>
diff --git a/example/example.c b/example/example.c
index 6d35470..8482fc1 100644
--- a/example/example.c
+++ b/example/example.c
@@ -1,64 +1,149 @@
#include "spglib.h"
#include <stdio.h>
+#include <stdlib.h>
#include <math.h>
-void test_spg_get_symmetry();
-void test_spg_get_symmetry_with_collinear_spin();
-void test_spg_get_multiplicity();
-void test_spg_find_primitive();
-void test_spg_get_international();
-void test_spg_get_schoenflies();
-void test_spg_refine_cell();
-void test_spg_get_dataset();
-void test_spg_get_ir_reciprocal_mesh();
-
-int main()
+static void test_spg_get_symmetry(void);
+static void test_spg_get_symmetry_with_collinear_spin(void);
+static void test_spg_get_multiplicity(void);
+static void test_spg_find_primitive_BCC(void);
+static void test_spg_find_primitive_corundum(void);
+static void test_spg_standardize_cell_BCC(void);
+static void test_spg_standardize_cell_BCC_prim(void);
+static void test_spg_standardize_cell_corundum(void);
+static int sub_spg_standardize_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec,
+ const int to_primitive,
+ const int no_idealize);
+static void test_spg_get_international(void);
+static void test_spg_get_schoenflies(void);
+static void test_spg_get_spacegroup_type(void);
+static void test_spg_get_symmetry_from_database(void);
+static void test_spg_refine_cell_BCC(void);
+static void test_spg_get_dataset(void);
+static void test_spg_get_ir_reciprocal_mesh(void);
+static void test_spg_get_stabilized_reciprocal_mesh(void);
+static void test_spg_relocate_BZ_grid_address(void);
+static void test_spg_get_error_message(void);
+static void show_spg_dataset(double lattice[3][3],
+ const double origin_shift[3],
+ double position[][3],
+ const int num_atom,
+ const int types[]);
+static void show_cell(double lattice[3][3],
+ double position[][3],
+ const int types[],
+ const int num_atom);
+
+int main(void)
{
- test_spg_find_primitive();
+ test_spg_find_primitive_BCC();
+ test_spg_find_primitive_corundum();
+ test_spg_standardize_cell_BCC();
+ test_spg_standardize_cell_BCC_prim();
+ test_spg_standardize_cell_corundum();
test_spg_get_multiplicity();
test_spg_get_symmetry();
test_spg_get_symmetry_with_collinear_spin();
test_spg_get_international();
test_spg_get_schoenflies();
- test_spg_refine_cell();
+ test_spg_get_spacegroup_type();
+ test_spg_get_symmetry_from_database();
+ test_spg_refine_cell_BCC();
test_spg_get_dataset();
test_spg_get_ir_reciprocal_mesh();
+ test_spg_get_stabilized_reciprocal_mesh();
+ test_spg_relocate_BZ_grid_address();
+ test_spg_get_error_message();
return 0;
}
-void test_spg_find_primitive()
+static void test_spg_find_primitive_BCC(void)
{
- double lattice[3][3] = { {4, 0, 0}, {0, 4, 0}, {0, 0, 4} };
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 4}};
double position[][3] = {
{0, 0, 0},
{0.5, 0.5, 0.5}
};
- int types[] = { 1, 1 };
+ int types[] = {1, 1};
int i, num_atom = 2, num_primitive_atom;
double symprec = 1e-5;
/* lattice, position, and types are overwirtten. */
printf("*** Example of spg_find_primitive (BCC unitcell --> primitive) ***:\n");
num_primitive_atom = spg_find_primitive(lattice, position, types, num_atom, symprec);
- if ( num_primitive_atom == 0 ) {
+ if (num_primitive_atom == 0) {
printf("Primitive cell was not found.\n");
} else {
- printf("Lattice parameter:\n");
- for (i = 0; i < 3; i++) {
- printf("%f %f %f\n", lattice[0][i], lattice[1][i], lattice[2][i]);
- }
- printf("Atomic positions:\n");
- for (i=0; i<num_primitive_atom; i++) {
- printf("%d: %f %f %f\n", types[i], position[i][0], position[i][1],
- position[i][2]);
- }
+ show_cell(lattice, position, types, num_primitive_atom);
+ }
+}
+
+static void test_spg_find_primitive_corundum(void)
+{
+ double lattice[3][3] = {{4.8076344022756095, -2.4038172011378047, 0},
+ {0, 4.1635335244786962, 0},
+ {0, 0, 13.1172699198127543}};
+ double position[][3] = {
+ {0.0000000000000000, 0.0000000000000000, 0.3521850942289043},
+ {0.6666666666666643, 0.3333333333333357, 0.6855184275622400},
+ {0.3333333333333357, 0.6666666666666643, 0.0188517608955686},
+ {0.0000000000000000, 0.0000000000000000, 0.6478149057711028},
+ {0.6666666666666643, 0.3333333333333357, 0.9811482391044314},
+ {0.3333333333333357, 0.6666666666666643, 0.3144815724377600},
+ {0.0000000000000000, 0.0000000000000000, 0.1478149057710957},
+ {0.6666666666666643, 0.3333333333333357, 0.4811482391044314},
+ {0.3333333333333357, 0.6666666666666643, 0.8144815724377600},
+ {0.0000000000000000, 0.0000000000000000, 0.8521850942288972},
+ {0.6666666666666643, 0.3333333333333357, 0.1855184275622400},
+ {0.3333333333333357, 0.6666666666666643, 0.5188517608955686},
+ {0.3061673906454899, 0.0000000000000000, 0.2500000000000000},
+ {0.9728340573121541, 0.3333333333333357, 0.5833333333333357},
+ {0.6395007239788255, 0.6666666666666643, 0.9166666666666643},
+ {0.6938326093545102, 0.0000000000000000, 0.7500000000000000},
+ {0.3604992760211744, 0.3333333333333357, 0.0833333333333357},
+ {0.0271659426878458, 0.6666666666666643, 0.4166666666666643},
+ {0.0000000000000000, 0.3061673906454899, 0.2500000000000000},
+ {0.6666666666666643, 0.6395007239788255, 0.5833333333333357},
+ {0.3333333333333357, 0.9728340573121541, 0.9166666666666643},
+ {0.0000000000000000, 0.6938326093545102, 0.7500000000000000},
+ {0.6666666666666643, 0.0271659426878458, 0.0833333333333357},
+ {0.3333333333333357, 0.3604992760211744, 0.4166666666666643},
+ {0.6938326093545102, 0.6938326093545102, 0.2500000000000000},
+ {0.3604992760211744, 0.0271659426878458, 0.5833333333333357},
+ {0.0271659426878458, 0.3604992760211744, 0.9166666666666643},
+ {0.3061673906454899, 0.3061673906454899, 0.7500000000000000},
+ {0.9728340573121541, 0.6395007239788255, 0.0833333333333357},
+ {0.6395007239788255, 0.9728340573121541, 0.4166666666666643},
+ };
+ int types[30];
+ int i, num_atom = 30, num_primitive_atom;
+ double symprec = 1e-5;
+
+ for (i = 0; i < 12; i++) {
+ types[i] = 1;
+ }
+ for (i = 12; i < 30; i++) {
+ types[i] = 2;
+ }
+
+ /* lattice, position, and types are overwirtten. */
+ printf("*** Example of spg_find_primitive (Corundum) ***:\n");
+ num_primitive_atom = spg_find_primitive(lattice, position, types, num_atom, symprec);
+ if (num_primitive_atom == 0) {
+ printf("Primitive cell was not found.\n");
+ } else {
+ show_cell(lattice, position, types, num_primitive_atom);
}
}
-void test_spg_refine_cell()
+static void test_spg_refine_cell_BCC(void)
{
- double lattice[3][3] = { {0, 2, 2}, {2, 0, 2}, {2, 2, 0} };
+ double lattice[3][3] = {{0, 2, 2}, {2, 0, 2}, {2, 2, 0}};
/* 4 times larger memory space must be prepared. */
double position[4][3];
@@ -79,30 +164,198 @@ void test_spg_refine_cell()
types,
num_atom,
symprec );
- printf("Lattice parameter:\n");
- for ( i = 0; i < 3; i++ ) {
- printf("%f %f %f\n", lattice[0][i], lattice[1][i], lattice[2][i]);
+ show_cell(lattice, position, types, num_atom_bravais);
+}
+
+static void test_spg_standardize_cell_BCC(void)
+{
+ double lattice[3][3] = {{3.97, 0, 0}, {0, 4.03, 0}, {0, 0, 4.0}};
+ double position[][3] = {
+ {0.002, 0, 0},
+ {0.5, 0.5001, 0.5}
+ };
+ int types[] = {1, 1};
+ int i, j, k, num_atom = 2, num_primitive_atom;
+ double symprec = 1e-1;
+
+ /* lattice, position, and types are overwirtten. */
+ printf("*** Example of spg_standardize_cell (BCC unitcell) ***:\n");
+ printf("------------------------------------------------------\n");
+ for (j = 0; j < 2; j++) {
+ for (k = 0; k < 2; k++) {
+ sub_spg_standardize_cell(lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ j,
+ k);
+ printf("------------------------------------------------------\n");
+ }
}
- printf("Atomic positions:\n");
- for ( i = 0; i<num_atom_bravais; i++ ) {
- printf("%d: %f %f %f\n", types[i], position[i][0], position[i][1],
- position[i][2]);
+}
+
+static void test_spg_standardize_cell_BCC_prim(void)
+{
+ double lattice[3][3] = {{-2.01, 2, 2}, {2, -2.02, 2}, {2, 2, -2.03}};
+ double position[][3] = {
+ {0.002, 0, 0},
+ };
+ int types[] = {1};
+ int i, j, k, num_atom = 1, num_primitive_atom;
+ double symprec = 1e-1;
+
+ /* lattice, position, and types are overwirtten. */
+ printf("*** Example of spg_standardize_cell (BCC primitive) ***:\n");
+ printf("------------------------------------------------------\n");
+ for (j = 0; j < 2; j++) {
+ for (k = 0; k < 2; k++) {
+ sub_spg_standardize_cell(lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ j,
+ k);
+ printf("------------------------------------------------------\n");
+ }
}
}
-void test_spg_get_international()
+static void test_spg_standardize_cell_corundum(void)
{
- double lattice[3][3] = {{4,0,0},{0,4,0},{0,0,3}};
+ double lattice[3][3] = {{4.8076344022756095, -2.4038172011378047, 0},
+ {0, 4.1635335244786962, 0},
+ {0, 0, 13.1172699198127543}};
+ double position[][3] = {
+ {0.0000000000000000, 0.0000000000000000, 0.3521850942289043},
+ {0.6666666666666643, 0.3333333333333357, 0.6855184275622400},
+ {0.3333333333333357, 0.6666666666666643, 0.0188517608955686},
+ {0.0000000000000000, 0.0000000000000000, 0.6478149057711028},
+ {0.6666666666666643, 0.3333333333333357, 0.9811482391044314},
+ {0.3333333333333357, 0.6666666666666643, 0.3144815724377600},
+ {0.0000000000000000, 0.0000000000000000, 0.1478149057710957},
+ {0.6666666666666643, 0.3333333333333357, 0.4811482391044314},
+ {0.3333333333333357, 0.6666666666666643, 0.8144815724377600},
+ {0.0000000000000000, 0.0000000000000000, 0.8521850942288972},
+ {0.6666666666666643, 0.3333333333333357, 0.1855184275622400},
+ {0.3333333333333357, 0.6666666666666643, 0.5188517608955686},
+ {0.3061673906454899, 0.0000000000000000, 0.2500000000000000},
+ {0.9728340573121541, 0.3333333333333357, 0.5833333333333357},
+ {0.6395007239788255, 0.6666666666666643, 0.9166666666666643},
+ {0.6938326093545102, 0.0000000000000000, 0.7500000000000000},
+ {0.3604992760211744, 0.3333333333333357, 0.0833333333333357},
+ {0.0271659426878458, 0.6666666666666643, 0.4166666666666643},
+ {0.0000000000000000, 0.3061673906454899, 0.2500000000000000},
+ {0.6666666666666643, 0.6395007239788255, 0.5833333333333357},
+ {0.3333333333333357, 0.9728340573121541, 0.9166666666666643},
+ {0.0000000000000000, 0.6938326093545102, 0.7500000000000000},
+ {0.6666666666666643, 0.0271659426878458, 0.0833333333333357},
+ {0.3333333333333357, 0.3604992760211744, 0.4166666666666643},
+ {0.6938326093545102, 0.6938326093545102, 0.2500000000000000},
+ {0.3604992760211744, 0.0271659426878458, 0.5833333333333357},
+ {0.0271659426878458, 0.3604992760211744, 0.9166666666666643},
+ {0.3061673906454899, 0.3061673906454899, 0.7500000000000000},
+ {0.9728340573121541, 0.6395007239788255, 0.0833333333333357},
+ {0.6395007239788255, 0.9728340573121541, 0.4166666666666643},
+ };
+ int types[30];
+ int i, j, k, num_atom = 30;
+ double symprec = 1e-5;
+
+ for (i = 0; i < 12; i++) {
+ types[i] = 1;
+ }
+ for (i = 12; i < 30; i++) {
+ types[i] = 2;
+ }
+
+ /* lattice, position, and types are overwirtten. */
+ printf("*** Example of spg_standardize_cell (Corundum) ***:\n");
+ printf("------------------------------------------------------\n");
+ for (j = 0; j < 2; j++) {
+ for (k = 0; k < 2; k++) {
+ sub_spg_standardize_cell(lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ j,
+ k);
+ printf("------------------------------------------------------\n");
+ }
+ }
+}
+
+static int sub_spg_standardize_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec,
+ const int to_primitive,
+ const int no_idealize)
+{
+ int i, num_primitive_atom;
+ double lat[3][3], pos[num_atom][3];
+ int typ[num_atom];
+
+ for (i = 0; i < 3; i++) {
+ lat[i][0] = lattice[i][0];
+ lat[i][1] = lattice[i][1];
+ lat[i][2] = lattice[i][2];
+ }
+
+ for (i = 0; i < num_atom; i++) {
+ pos[i][0] = position[i][0];
+ pos[i][1] = position[i][1];
+ pos[i][2] = position[i][2];
+ typ[i] = types[i];
+ }
+
+ /* lattice, position, and types are overwirtten. */
+ num_primitive_atom = spg_standardize_cell(lat,
+ pos,
+ typ,
+ num_atom,
+ to_primitive,
+ no_idealize,
+ symprec);
+ printf("VASP POSCAR format: ");
+ if (to_primitive == 0) {
+ printf("to_primitive=0 and ");
+ } else {
+ printf("to_primitive=1 and ");
+ }
+
+ if (no_idealize == 0) {
+ printf("no_idealize=0\n");
+ } else {
+ printf("no_idealize=1\n");
+ }
+ printf("1.0\n");
+ for (i = 0; i < 3; i++) {
+ printf("%f %f %f\n", lat[0][i], lat[1][i], lat[2][i]);
+ }
+ printf("%d\n", num_primitive_atom);
+ printf("Direct\n");
+ for (i = 0; i < num_primitive_atom; i++) {
+ printf("%f %f %f\n", pos[i][0], pos[i][1], pos[i][2]);
+ }
+}
+
+static void test_spg_get_international(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
double position[][3] =
{
- {0,0,0},
- {0.5,0.5,0.5},
- {0.3,0.3,0},
- {0.7,0.7,0},
- {0.2,0.8,0.5},
- {0.8,0.2,0.5},
+ {0, 0, 0},
+ {0.5, 0.5, 0.5},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.5},
+ {0.8, 0.2, 0.5},
};
- int types[] = {1,1,2,2,2,2};
+ int types[] = {1, 1, 2, 2, 2, 2};
int num_spg, num_atom = 6;
char symbol[21];
@@ -115,19 +368,19 @@ void test_spg_get_international()
}
}
-void test_spg_get_schoenflies()
+static void test_spg_get_schoenflies(void)
{
- double lattice[3][3] = {{4,0,0},{0,4,0},{0,0,3}};
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
double position[][3] =
{
- {0,0,0},
- {0.5,0.5,0.5},
- {0.3,0.3,0},
- {0.7,0.7,0},
- {0.2,0.8,0.5},
- {0.8,0.2,0.5},
+ {0, 0, 0},
+ {0.5, 0.5, 0.5},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.5},
+ {0.8, 0.2, 0.5},
};
- int types[] = {1,1,2,2,2,2};
+ int types[] = {1, 1, 2, 2, 2, 2};
int num_atom = 6;
char symbol[7];
@@ -136,14 +389,51 @@ void test_spg_get_schoenflies()
printf("Schoenflies: %s\n", symbol);
}
-void test_spg_get_multiplicity()
+static void test_spg_get_spacegroup_type(void)
+{
+ SpglibSpacegroupType spgtype;
+ spgtype = spg_get_spacegroup_type(446);
+
+ printf("*** Example of spg_get_spacegroup_type ***:\n");
+ printf("Number: %d\n", spgtype.number);
+ printf("Schoenflies: %s\n", spgtype.schoenflies);
+ printf("International: %s\n", spgtype.international);
+ printf("International: %s\n", spgtype.international_full);
+ printf("International: %s\n", spgtype.international_short);
+ printf("Hall symbol: %s\n", spgtype.hall_symbol);
+
+}
+
+static void test_spg_get_symmetry_from_database(void)
{
- double lattice[3][3] = { {4, 0, 0}, {0, 4, 0}, {0, 0, 4} };
+ int rotations[192][3][3];
+ double translations[192][3];
+ int max_size, i, j, size;
+
+ size = spg_get_symmetry_from_database(rotations,
+ translations,
+ 460);
+
+ printf("*** Example of spg_get_symmetry_from_database ***:\n");
+ for (i = 0; i < size; i++) {
+ printf("--- %d ---\n", i + 1);
+ for (j = 0; j < 3; j++) {
+ printf("%2d %2d %2d\n",
+ rotations[i][j][0], rotations[i][j][1], rotations[i][j][2]);
+ }
+ printf("%f %f %f\n",
+ translations[i][0], translations[i][1], translations[i][2]);
+ }
+}
+
+static void test_spg_get_multiplicity(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 4}};
double position[][3] = {
{0, 0, 0},
{0.5, 0.5, 0.5}
};
- int types[] = { 1, 2 };
+ int types[] = {1, 2};
int num_atom = 2;
int size;
@@ -154,65 +444,66 @@ void test_spg_get_multiplicity()
}
-void test_spg_get_symmetry()
+static void test_spg_get_symmetry(void)
{
- double lattice[3][3] = {{4,0,0},{0,4,0},{0,0,3}};
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
double position[][3] =
{
- {0,0,0},
- {0.5,0.5,0.25},
- {0.3,0.3,0},
- {0.7,0.7,0},
- {0.2,0.8,0.25},
- {0.8,0.2,0.25},
- {0,0,0.5},
- {0.5,0.5,0.75},
- {0.3,0.3,0.5},
- {0.7,0.7,0.5},
- {0.2,0.8,0.75},
- {0.8,0.2,0.75}
+ {0, 0, 0},
+ {0.5, 0.5, 0.25},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.25},
+ {0.8, 0.2, 0.25},
+ {0, 0, 0.5},
+ {0.5, 0.5, 0.75},
+ {0.3, 0.3, 0.5},
+ {0.7, 0.7, 0.5},
+ {0.2, 0.8, 0.75},
+ {0.8, 0.2, 0.75}
};
- int types[] = {1,1,2,2,2,2,1,1,2,2,2,2};
+ int types[] = {1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2};
int num_atom = 12;
int max_size = 50;
int i, j, size;
int rotation[max_size][3][3];
double translation[max_size][3];
- double origin_shift[3] = { 0.1, 0.1, 0 };
- for ( i = 0; i < num_atom; i++ ) {
- for ( j = 0; j < 3; j++ ) {
+ double origin_shift[3] = {0.1, 0.1, 0};
+ for (i = 0; i < num_atom; i++) {
+ for (j = 0; j < 3; j++) {
position[i][j] += origin_shift[j];
}
}
printf("*** Example of spg_get_symmetry (Rutile two unit cells) ***:\n");
- size = spg_get_symmetry( rotation,
- translation,
- max_size,
- lattice,
- position,
- types,
- num_atom,
- 1e-5 );
+ size = spg_get_symmetry(rotation,
+ translation,
+ max_size,
+ lattice,
+ position,
+ types,
+ num_atom,
+ 1e-5);
for (i = 0; i < size; i++) {
printf("--- %d ---\n", i + 1);
for (j = 0; j < 3; j++)
printf("%2d %2d %2d\n", rotation[i][j][0], rotation[i][j][1], rotation[i][j][2]);
- printf("%f %f %f\n", translation[i][0], translation[i][1],
- translation[i][2]);
+ printf("%f %f %f\n",
+ translation[i][0], translation[i][1], translation[i][2]);
}
}
-void test_spg_get_symmetry_with_collinear_spin() {
- double lattice[3][3] = {{4,0,0},{0,4,0},{0,0,4}};
+static void test_spg_get_symmetry_with_collinear_spin(void) {
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 4}};
double position[][3] =
{
- {0,0,0},
- {0.5,0.5,0.5}
+ {0, 0, 0},
+ {0.5, 0.5, 0.5}
};
- int types[] = { 1, 1 };
+ int types[] = {1, 1};
+ int equivalent_atoms[2];
double spins[2];
int num_atom = 2;
int max_size = 300;
@@ -223,19 +514,22 @@ void test_spg_get_symmetry_with_collinear_spin() {
printf("*** Example of spg_get_symmetry_with_spin (BCC ferro) ***:\n");
spins[0] = 1;
spins[1] = 1;
- size = spg_get_symmetry_with_collinear_spin( rotation,
- translation,
- max_size,
- lattice,
- position,
- types,
- spins,
- num_atom,
- 1e-5 );
+ size = spg_get_symmetry_with_collinear_spin(rotation,
+ translation,
+ equivalent_atoms,
+ max_size,
+ lattice,
+ position,
+ types,
+ spins,
+ num_atom,
+ 1e-5);
for (i = 0; i < size; i++) {
printf("--- %d ---\n", i + 1);
- for (j = 0; j < 3; j++)
- printf("%2d %2d %2d\n", rotation[i][j][0], rotation[i][j][1], rotation[i][j][2]);
+ for (j = 0; j < 3; j++) {
+ printf("%2d %2d %2d\n",
+ rotation[i][j][0], rotation[i][j][1], rotation[i][j][2]);
+ }
printf("%f %f %f\n", translation[i][0], translation[i][1],
translation[i][2]);
}
@@ -243,19 +537,22 @@ void test_spg_get_symmetry_with_collinear_spin() {
printf("*** Example of spg_get_symmetry_with_spin (BCC antiferro) ***:\n");
spins[0] = 1;
spins[1] = -1;
- size = spg_get_symmetry_with_collinear_spin( rotation,
- translation,
- max_size,
- lattice,
- position,
- types,
- spins,
- num_atom,
- 1e-5 );
+ size = spg_get_symmetry_with_collinear_spin(rotation,
+ translation,
+ equivalent_atoms,
+ max_size,
+ lattice,
+ position,
+ types,
+ spins,
+ num_atom,
+ 1e-5);
for (i = 0; i < size; i++) {
printf("--- %d ---\n", i + 1);
- for (j = 0; j < 3; j++)
- printf("%2d %2d %2d\n", rotation[i][j][0], rotation[i][j][1], rotation[i][j][2]);
+ for (j = 0; j < 3; j++) {
+ printf("%2d %2d %2d\n",
+ rotation[i][j][0], rotation[i][j][1], rotation[i][j][2]);
+ }
printf("%f %f %f\n", translation[i][0], translation[i][1],
translation[i][2]);
}
@@ -263,47 +560,207 @@ void test_spg_get_symmetry_with_collinear_spin() {
printf("*** Example of spg_get_symmetry_with_spin (BCC broken spin) ***:\n");
spins[0] = 1;
spins[1] = 2;
- size = spg_get_symmetry_with_collinear_spin( rotation,
- translation,
- max_size,
- lattice,
- position,
- types,
- spins,
- num_atom,
- 1e-5 );
+ size = spg_get_symmetry_with_collinear_spin(rotation,
+ translation,
+ equivalent_atoms,
+ max_size,
+ lattice,
+ position,
+ types,
+ spins,
+ num_atom,
+ 1e-5);
for (i = 0; i < size; i++) {
printf("--- %d ---\n", i + 1);
- for (j = 0; j < 3; j++)
- printf("%2d %2d %2d\n", rotation[i][j][0], rotation[i][j][1], rotation[i][j][2]);
+ for (j = 0; j < 3; j++) {
+ printf("%2d %2d %2d\n",
+ rotation[i][j][0], rotation[i][j][1], rotation[i][j][2]);
+ }
printf("%f %f %f\n", translation[i][0], translation[i][1],
translation[i][2]);
}
}
-void test_spg_get_dataset()
+static void test_spg_get_dataset(void)
{
- SpglibDataset *dataset;
- double lattice[3][3] = {{4,0,0},{0,4,0},{0,0,3}};
- double origin_shift[3] = { 0.1, 0.1, 0 };
+ printf("*** Example of spg_get_dataset (Rutile two unit cells) ***:\n");
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
+ double origin_shift[3] = {0.1, 0.1, 0};
double position[][3] =
{
- {0,0,0},
- {0.5,0.5,0.25},
- {0.3,0.3,0},
- {0.7,0.7,0},
- {0.2,0.8,0.25},
- {0.8,0.2,0.25},
- {0,0,0.5},
- {0.5,0.5,0.75},
- {0.3,0.3,0.5},
- {0.7,0.7,0.5},
- {0.2,0.8,0.75},
- {0.8,0.2,0.75}
+ {0, 0, 0},
+ {0.5, 0.5, 0.25},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.25},
+ {0.8, 0.2, 0.25},
+ {0, 0, 0.5},
+ {0.5, 0.5, 0.75},
+ {0.3, 0.3, 0.5},
+ {0.7, 0.7, 0.5},
+ {0.2, 0.8, 0.75},
+ {0.8, 0.2, 0.75}
};
- int types[] = {1,1,2,2,2,2,1,1,2,2,2,2};
+ int types[] = {1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2};
int num_atom = 12;
+
+ show_spg_dataset(lattice, origin_shift, position, num_atom, types);
+
+ double lattice_2[3][3] = {{3.7332982433264039, -1.8666491216632011, 0},
+ {0, 3.2331311186244847, 0},
+ {0, 0, 6.0979971306362799}};
+ double origin_shift_2[3] = {0.1, 0.1, 0};
+ double position_2[][3] =
+ {
+ {0, 0, 0},
+ {1.0 / 3, 2.0 / 3, 0.4126},
+ {1.0 / 3, 2.0 / 3, 0.776},
+ {2.0 / 3, 1.0 / 3, 0.2542},
+ };
+ int types_2[] = {1, 2, 3, 3};
+ int num_atom_2 = 4;
+
+ show_spg_dataset(lattice_2, origin_shift_2, position_2, num_atom_2, types_2);
+}
+
+static void test_spg_get_ir_reciprocal_mesh(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
+ double position[][3] =
+ {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.5},
+ {0.8, 0.2, 0.5},
+ };
+ int types[] = {1, 1, 2, 2, 2, 2};
+ int num_atom = 6;
+ int m = 40;
+ int mesh[] = {m, m, m};
+ int is_shift[] = {1, 1, 1};
+ int grid_address[m * m * m][3];
+ int grid_mapping_table[m * m * m];
+
+ printf("*** Example of spg_get_ir_reciprocal_mesh of Rutile structure ***:\n");
+
+ int num_ir = spg_get_ir_reciprocal_mesh(grid_address,
+ grid_mapping_table,
+ mesh,
+ is_shift,
+ 1,
+ lattice,
+ position,
+ types,
+ num_atom,
+ 1e-5);
+
+ printf("Number of irreducible k-points of Rutile with\n");
+ printf("40x40x40 Monkhorst-Pack mesh is %d (4200).\n", num_ir);
+}
+
+static void test_spg_get_stabilized_reciprocal_mesh(void)
+{
+ SpglibDataset *dataset;
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
+ double position[][3] =
+ {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.5},
+ {0.8, 0.2, 0.5},
+ };
+ int types[] = {1, 1, 2, 2, 2, 2};
+ int num_atom = 6;
+
+ dataset = spg_get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 1e-5);
+
+
+ int m = 40;
+ int mesh[] = {m, m, m};
+ int is_shift[] = {1, 1, 1};
+ int grid_address[m * m * m][3];
+ int grid_mapping_table[m * m * m];
+ double q[] = {0, 0.5, 0.5};
+
+ printf("*** Example of spg_get_stabilized_reciprocal_mesh of Rutile structure ***:\n");
+
+ int num_ir = spg_get_stabilized_reciprocal_mesh(grid_address,
+ grid_mapping_table,
+ mesh,
+ is_shift,
+ 1,
+ dataset->n_operations,
+ dataset->rotations,
+ 1,
+ (double(*)[3])q);
+ spg_free_dataset(dataset);
+
+ printf("Number of irreducible k-points stabilized by q=(0, 1/2, 1/2) of Rutile with\n");
+ printf("40x40x40 Monkhorst-Pack mesh is %d (8000).\n", num_ir);
+}
+
+static void test_spg_relocate_BZ_grid_address(void)
+{
+ double rec_lattice[3][3] = {{-0.17573761, 0.17573761, 0.17573761},
+ { 0.17573761, -0.17573761, 0.17573761},
+ { 0.17573761, 0.17573761, -0.17573761}};
+ int rotations[][3][3] = {{{1, 0, 0},
+ {0, 1, 0},
+ {0, 0, 1}}};
+
+
+ int m = 40;
+ int mesh[] = {m, m, m};
+ int is_shift[] = {0, 0, 0};
+ int bz_grid_address[(m + 1) * (m + 1) * (m + 1)][3];
+ int bz_map[m * m * m * 8];
+ int grid_address[m * m * m][3];
+ int grid_mapping_table[m * m * m];
+ double q[] = {0, 0, 0};
+
+ int num_ir = spg_get_stabilized_reciprocal_mesh(grid_address,
+ grid_mapping_table,
+ mesh,
+ is_shift,
+ 1,
+ 1,
+ rotations,
+ 1,
+ (double(*)[3])q);
+
+
+ printf("*** Example of spg_relocate_BZ_grid_address of NaCl structure ***:\n");
+
+ int num_q = spg_relocate_BZ_grid_address(bz_grid_address,
+ bz_map,
+ grid_address,
+ mesh,
+ rec_lattice,
+ is_shift);
+
+ printf("Number of k-points of NaCl Brillouin zone\n");
+ printf("with Gamma-centered 40x40x40 Monkhorst-Pack mesh is %d (65861).\n", num_q);
+}
+
+static void show_spg_dataset(double lattice[3][3],
+ const double origin_shift[3],
+ double position[][3],
+ const int num_atom,
+ const int types[])
+{
+ SpglibDataset *dataset;
+ char ptsymbol[6];
+ int pt_trans_mat[3][3];
+
int i, j, size;
const char *wl = "abcdefghijklmnopqrstuvwxyz";
@@ -313,15 +770,19 @@ void test_spg_get_dataset()
}
}
- printf("*** Example of spg_get_dataset (Rutile two unit cells) ***:\n");
- dataset = spg_get_dataset( lattice,
- position,
- types,
- num_atom,
- 1e-5 );
+ dataset = spg_get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 1e-5);
printf("International: %s (%d)\n", dataset->international_symbol, dataset->spacegroup_number );
printf("Hall symbol: %s\n", dataset->hall_symbol );
+ spg_get_pointgroup(ptsymbol,
+ pt_trans_mat,
+ dataset->rotations,
+ dataset->n_operations);
+ printf("Point group: %s\n", ptsymbol);
printf("Transformation matrix:\n");
for ( i = 0; i < 3; i++ ) {
printf("%f %f %f\n",
@@ -335,14 +796,14 @@ void test_spg_get_dataset()
}
printf("\n");
printf("Equivalent atoms:\n");
- for ( i = 0; i < dataset->n_atoms; i++ ) {
+ for (i = 0; i < dataset->n_atoms; i++) {
printf("%d ", dataset->equivalent_atoms[i]);
}
printf("\n");
- for ( i = 0; i < dataset->n_operations; i++ ) {
+ for (i = 0; i < dataset->n_operations; i++) {
printf("--- %d ---\n", i + 1);
- for ( j = 0; j < 3; j++ ) {
+ for (j = 0; j < 3; j++) {
printf("%2d %2d %2d\n",
dataset->rotations[i][j][0],
dataset->rotations[i][j][1],
@@ -354,45 +815,48 @@ void test_spg_get_dataset()
dataset->translations[i][2]);
}
- spg_free_dataset( dataset );
+ spg_free_dataset(dataset);
}
-void test_spg_get_ir_reciprocal_mesh()
+static void show_cell(double lattice[3][3],
+ double position[][3],
+ const int types[],
+ const int num_atom)
{
- double lattice[3][3] = {{4,0,0},{0,4,0},{0,0,3}};
- double position[][3] =
- {
- {0,0,0},
- {0.5,0.5,0.5},
- {0.3,0.3,0},
- {0.7,0.7,0},
- {0.2,0.8,0.5},
- {0.8,0.2,0.5},
- };
- int types[] = {1,1,2,2,2,2};
- int num_atom = 6;
- int m = 100;
- int mesh[] = { m, m, m };
- int is_shift[] = { 1, 1, 1 };
- int grid_point[m*m*m][3];
- int map[m*m*m];
-
- printf("*** Example of spg_get_ir_reciprocal_mesh of Rutile structure ***:\n");
-
- int num_ir =
- spg_get_ir_reciprocal_mesh( grid_point,
- map,
- mesh,
- is_shift,
- 1,
- lattice,
- position,
- types,
- num_atom,
- 1e-5 );
+ int i;
- printf("Number of irreducible k-points of Rutile with\n");
- printf("100x100x100 Monkhorst-Pack mesh is %d.\n", num_ir);
+ printf("Lattice parameter:\n");
+ for (i = 0; i < 3; i++) {
+ printf("%f %f %f\n", lattice[0][i], lattice[1][i], lattice[2][i]);
+ }
+ printf("Atomic positions:\n");
+ for (i = 0; i < num_atom; i++) {
+ printf("%d: %f %f %f\n",
+ types[i], position[i][0], position[i][1], position[i][2]);
+ }
}
+static void test_spg_get_error_message(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 4}};
+ double position[][3] = {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5},
+ {0.5, 0.5, 0.5}
+ };
+ int types[] = {1, 1, 1};
+ int i, num_atom = 3, num_primitive_atom;
+ double symprec = 1e-5;
+ SpglibError error;
+
+
+ /* lattice, position, and types are overwirtten. */
+ printf("*** Example of spg_get_error_message ***:\n");
+ num_primitive_atom = spg_find_primitive(lattice, position, types, num_atom, symprec);
+ if (num_primitive_atom == 0) {
+ printf("Primitive cell was not found.\n");
+ error = spg_get_error_code();
+ printf("%s\n", spg_get_error_message(error));
+ }
+}
diff --git a/example/example.f90 b/example/example.f90
index 7c4fcc5..5d78b2a 100644
--- a/example/example.f90
+++ b/example/example.f90
@@ -1,8 +1,8 @@
! How to make
!
! gcc -c spglib_f.c
-! gfortran -c spglib_f_test.f90
-! gfortran -o spglib_test spglib_f_test.o spglib_f.o ~/code/spglib/trunk/src/.libs/libsymspg.a
+! gfortran -c example.f90
+! gfortran -o example example.o spglib_f.o ~/spglib/src/.libs/libsymspg.a
module defs_basis
implicit none
@@ -125,7 +125,7 @@ subroutine write_syminfo( max_num_sym, num_atom, &
end subroutine write_syminfo
-program spglib_test
+program spglib_example
use defs_basis
@@ -184,5 +184,5 @@ program spglib_test
lattice, symprec, atom_types, positions, &
mesh, is_shift, is_time_reversal )
-end program spglib_test
+end program spglib_example
diff --git a/example/example_f08.f90 b/example/example_f08.f90
index e580ef0..52688f4 100644
--- a/example/example_f08.f90
+++ b/example/example_f08.f90
@@ -1,8 +1,9 @@
! How to make
!
! gcc -c spglib_f.c
-! gfortran -c spglib_f_test.f90
-! gfortran -o spglib_test spglib_f_test.o spglib_f.o ~/code/spglib/trunk/src/.libs/libsymspg.a
+! gfortran -c spglib_f08.f90
+! gfortran -c example_f08.f90
+! gfortran -o example_f08 example_f08.o spglib_f08.o spglib_f.o ~/code/spglib/src/.libs/libsymspg.a
module defs_basis
implicit none
@@ -118,7 +119,7 @@ subroutine write_syminfo( max_num_sym, num_atom, &
end subroutine write_syminfo
-program spglib_test
+program spglib_example_f08
use defs_basis
@@ -163,6 +164,7 @@ program spglib_test
positions(1:3, 5) = (/ 0.2, 0.8, 0.5 /)
positions(1:3, 6) = (/ 0.8, 0.2, 0.5 /)
atom_types(1:6) = (/ 1, 1, 2, 2, 2, 2 /)
+ is_shift = [0,0,0]
call write_syminfo( max_num_sym, num_atom, &
lattice, symprec, atom_types, positions, &
@@ -177,6 +179,7 @@ program spglib_test
lattice(3,:) = (/ 2.0, 2.0, 0.0 /)
positions(1:3, 1) = (/ 0.0, 0.0, 0.0 /)
atom_types(1) = 1
+ is_shift = [0,0,0]
call write_syminfo( max_num_sym, num_atom, &
lattice, symprec, atom_types, positions, &
@@ -224,5 +227,6 @@ program spglib_test
& lattice, symprec, atom_types, positions, &
& mesh, is_shift, is_time_reversal )
-end program spglib_test
+end program spglib_example_f08
+
diff --git a/example/frequency.dat b/example/frequency.dat
new file mode 100644
index 0000000..d3eef29
--- /dev/null
+++ b/example/frequency.dat
@@ -0,0 +1,1536 @@
+-0.0370089502
+-0.0370089502
+-0.0370089502
+4.6084532143
+4.6084532143
+4.6084532143
+0.3879356094
+0.3879356094
+0.6745171702
+4.6250324160
+4.6250324160
+7.3296933213
+0.7753555185
+0.7753555185
+1.3433920315
+4.6637732736
+4.6637732736
+7.1623441992
+1.1563651478
+1.1563651478
+1.9992416728
+4.6973776461
+4.6973776461
+6.9366482188
+1.5290039904
+1.5290039904
+2.6343451657
+4.6951663367
+4.6951663367
+6.7116125568
+1.8905362309
+1.8905362309
+3.2389903446
+4.6351961377
+4.6351961377
+6.5341480298
+2.2373958574
+2.2373958574
+3.8003684758
+4.5104808282
+4.5104808282
+6.4204766707
+2.5654735879
+2.5654735879
+4.3011160752
+4.3288927837
+4.3288927837
+6.3548758577
+2.8695459463
+2.8695459463
+4.1097048209
+4.1097048209
+4.7163852229
+6.3077239704
+3.1344154701
+3.1344154701
+3.8859532507
+3.8859532507
+5.0069961863
+6.2636589203
+3.2726711098
+3.2726711098
+3.7595533030
+3.7595533030
+5.1156965934
+6.2416596819
+0.3886848164
+0.3886848164
+0.8367902829
+4.6143539839
+4.6143539839
+7.3290807570
+0.6689523288
+0.7107384758
+1.3357368730
+4.6340723087
+4.6487269394
+7.2015579760
+1.0103917904
+1.1053042507
+1.9122031969
+4.6670182104
+4.6952250205
+6.9883385796
+1.3585173956
+1.5010028958
+2.5056015597
+4.6851842260
+4.7080267218
+6.7540739712
+1.7002459063
+1.8875926422
+3.0890882275
+4.6592147611
+4.6625968444
+6.5535864344
+2.0300903770
+2.2597569380
+3.6439953632
+4.5374521636
+4.5844134075
+6.4157197387
+2.3449074448
+2.6115629165
+4.1516109824
+4.3492219877
+4.4495051241
+6.3350429578
+2.6431597590
+2.9347896725
+4.1169377306
+4.2678505655
+4.5886458749
+6.2833855821
+2.9230446200
+3.2074347362
+3.8829541264
+4.0567968168
+4.9208438871
+6.2368324127
+3.1688663222
+3.3118570860
+3.7828494723
+3.8477920008
+5.0946897357
+6.2031182276
+3.1341918465
+3.2701381643
+3.7607194758
+3.9395014815
+5.0577085885
+6.2121472368
+2.8673480812
+3.0955317319
+3.9257457174
+4.1575163196
+4.8231954572
+6.2550814933
+2.5756489446
+2.8103840579
+4.1656793886
+4.3601624594
+4.4502440131
+6.3035482512
+2.2660843348
+2.4857494259
+3.9851357265
+4.3911095752
+4.5234221757
+6.3621161179
+1.9392444409
+2.1375748050
+3.4573254017
+4.5682313757
+4.6322110569
+6.4589093168
+1.5966281538
+1.7742774285
+2.8875715833
+4.6787731910
+4.6811557188
+6.6164146400
+1.2418954600
+1.4030454088
+2.2931404565
+4.6785219756
+4.7197566298
+6.8288550106
+0.8838760271
+1.0316883949
+1.6920917557
+4.6470528778
+4.7052022895
+7.0571025520
+0.5559080862
+0.6746467729
+1.1143117790
+4.6203787399
+4.6629381909
+7.2416032326
+0.7684405483
+0.7684405483
+1.6512646378
+4.6316253383
+4.6316253383
+7.1447821870
+1.0031304814
+1.0496986110
+2.0908858556
+4.6519017825
+4.6636054173
+6.9702631388
+1.2893943169
+1.4352478018
+2.5772532486
+4.6745010708
+4.6955910279
+6.7368162289
+1.5882742199
+1.8497002012
+3.0781426338
+4.6742271103
+4.6779603166
+6.5120883239
+1.8837833579
+2.2619204214
+3.5731259784
+4.5836643974
+4.6317376346
+6.3422460255
+2.1692453282
+2.6554269144
+4.0434557384
+4.4088754938
+4.5388392493
+6.2383183850
+2.4431442676
+3.0172578508
+4.1738540412
+4.3979620908
+4.4676125179
+6.1778026537
+2.7076840221
+3.3226769774
+3.9269861235
+4.2183595659
+4.8144369282
+6.1296957695
+2.9648080102
+3.4210671820
+3.8418300479
+4.0136382055
+5.0355833020
+6.0886738291
+3.1965646988
+3.2118672032
+3.8143774364
+4.0330666542
+5.0671053577
+6.0863772826
+2.9433845825
+3.2635136892
+3.7637568208
+4.2523122830
+4.8956969290
+6.1317313022
+2.6649841039
+3.0569908659
+3.9626627923
+4.4405461630
+4.5775917515
+6.1901497324
+2.3766263373
+2.7553898419
+4.1647326248
+4.2156073390
+4.5838756773
+6.2521286467
+2.0741075447
+2.4191822201
+3.6949783628
+4.4420315064
+4.6693607944
+6.3397542062
+1.7570053416
+2.0658087951
+3.1911198391
+4.6095132486
+4.6984114914
+6.4775563308
+1.4327262383
+1.7071874909
+2.6735829931
+4.6849480508
+4.7038727442
+6.6672030009
+1.1239104889
+1.3559899029
+2.1633947678
+4.6565679440
+4.7288849115
+6.8781007713
+1.1252499061
+1.1252499061
+2.4211547384
+4.6589428064
+4.6589428064
+6.8469721261
+1.3275189534
+1.3809339301
+2.8124713663
+4.6777704830
+4.6831361304
+6.6368180105
+1.5652880945
+1.7550698409
+3.2239897263
+4.6881203747
+4.6895469726
+6.4008169472
+1.8123461509
+2.1827768260
+3.6350693411
+4.6333475534
+4.6700645185
+6.1995154387
+2.0557906925
+2.6215164896
+4.0318468354
+4.4897629731
+4.6111260346
+6.0668354979
+2.2913707729
+3.0421584155
+4.2639159870
+4.4034075989
+4.5079786232
+5.9944277285
+2.5215910439
+3.4155296990
+4.0059910129
+4.3640114362
+4.7224231876
+5.9472272508
+2.7536648278
+3.5754684522
+3.9011218022
+4.1858592229
+4.9563206814
+5.9052416215
+2.9928988867
+3.3523262376
+3.9832781747
+4.1403392172
+5.0375246975
+5.8932801169
+3.0875253521
+3.2169670452
+3.7876839627
+4.3734894496
+4.9299376784
+5.9428366882
+2.8255564123
+3.2553376263
+3.7674811297
+4.5506927230
+4.6782304949
+6.0205501911
+2.5607647221
+3.0254688813
+3.9913995378
+4.3231059463
+4.6828470645
+6.1009188710
+2.2840219119
+2.7160209732
+3.9296739495
+4.2502044468
+4.7412998447
+6.1942172682
+1.9931084706
+2.3810210274
+3.5113748921
+4.4706789346
+4.7458644233
+6.3203321304
+1.6992806018
+2.0395513553
+3.0872721798
+4.6244800378
+4.7169624462
+6.4845920487
+1.4501028115
+1.4501028115
+3.1267153316
+4.6940386554
+4.6940386554
+6.4505351266
+1.6223749206
+1.6847327689
+3.4678600103
+4.7087831403
+4.7100800469
+6.2158755697
+1.8154854550
+2.0486880871
+3.8087756346
+4.6843396235
+4.7086215647
+5.9916740903
+2.0114400026
+2.4847899449
+4.1339780417
+4.5778197326
+4.6759106743
+5.8309986767
+2.2020154396
+2.9455311619
+4.3690613921
+4.4402942043
+4.6050840902
+5.7474534945
+2.3876661609
+3.3932770928
+4.1113908958
+4.4953154547
+4.6977136436
+5.7061619817
+2.5765953611
+3.7265330745
+3.9083887843
+4.3489983184
+4.9013286347
+5.6715847948
+2.7812816823
+3.5209665330
+4.1698281888
+4.1985065961
+4.9998364540
+5.6541540930
+3.0087842623
+3.2726169039
+3.9651926578
+4.4843532106
+4.9359539586
+5.6972107769
+3.0296193386
+3.2302824305
+3.7690686671
+4.6478256634
+4.7731066330
+5.7958444032
+2.7878467147
+3.2487315638
+3.7704711598
+4.4561273537
+4.8016853427
+5.9108143146
+2.5333735134
+3.0076192609
+4.0071808160
+4.1545281921
+4.8263364643
+6.0335389376
+2.2632596332
+2.7016789031
+3.8350686065
+4.2625822297
+4.7987881924
+6.1690852408
+1.7353654620
+1.7353654620
+3.7507288940
+4.7337388968
+4.7337388968
+5.9781627594
+1.8775179589
+1.9496948844
+4.0375978606
+4.7359939477
+4.7461650913
+5.7346447277
+2.0281692547
+2.3032223761
+4.3086420106
+4.6651643008
+4.7347108415
+5.5488257400
+2.1752568664
+2.7423314340
+4.4822713911
+4.5543619179
+4.6911825498
+5.4610089592
+2.3157428488
+3.2170187506
+4.2268311084
+4.6122532851
+4.7598683423
+5.4358337983
+2.4559048252
+3.6857372640
+3.9544338528
+4.4975650602
+4.9174185256
+5.4200477718
+2.6100600148
+3.6870011246
+4.1308829370
+4.3478646894
+4.9979517278
+5.4055515518
+2.7947295527
+3.4646892993
+4.1650836954
+4.5130528148
+4.9516382417
+5.4229353874
+3.0159383414
+3.2425727831
+3.9565020374
+4.6853187198
+4.8897825326
+5.5205167074
+3.0224401585
+3.2368365216
+3.7594999971
+4.5684355996
+4.9167681369
+5.6791144344
+2.7864244577
+3.2462100332
+3.7716080548
+4.3695510841
+4.8957755037
+5.8598675780
+1.9751622508
+1.9751622508
+4.2789129629
+4.7741791466
+4.7741791466
+5.4625343260
+2.0867243264
+2.1684365722
+4.5076214354
+4.7474937560
+4.7823863825
+5.2437659012
+2.1970141678
+2.5093926595
+4.5758571830
+4.7092097366
+4.7629349047
+5.1668353108
+2.2990907596
+2.9446824755
+4.3167302833
+4.7115631717
+4.8743087720
+5.1759344533
+2.3953730991
+3.4218847367
+4.0543321727
+4.6264603889
+4.9928004021
+5.1913030429
+2.4981522663
+3.8210081588
+3.8990056493
+4.5067497422
+5.0431998958
+5.2014836941
+2.6268968888
+3.6322863763
+4.3522227111
+4.3709232895
+5.0041745737
+5.1943132497
+2.7995465734
+3.4357735773
+4.1649648767
+4.6500226692
+5.0024103412
+5.2304905476
+3.0178387006
+3.2393585615
+3.9540534826
+4.6578215685
+4.9989825736
+5.4182841644
+2.1652641514
+2.1652641514
+4.6992488594
+4.8112114235
+4.8112114235
+4.9499722186
+2.2461288900
+2.3360683053
+4.6169521765
+4.8145759881
+4.8678867672
+4.9179062619
+2.3188408690
+2.6609122022
+4.3454761900
+4.7884205935
+4.9745471065
+5.0013229912
+2.3814911209
+3.0843938318
+4.1070627782
+4.7305756399
+5.0092005658
+5.0974595416
+2.4420072968
+3.5503881290
+3.9123617484
+4.6395296636
+5.0142884897
+5.1542538811
+2.5179959519
+3.7521271279
+4.0123294520
+4.5141235103
+5.0043715641
+5.1685913523
+2.6318641816
+3.6007687418
+4.3546491009
+4.4467357383
+5.0368529413
+5.0978142099
+2.3028077278
+2.3028077278
+4.4967671025
+4.8409205961
+4.8409205961
+5.0078054902
+2.3534268378
+2.4494682934
+4.2893664501
+4.8387160832
+4.8759146052
+5.1125238388
+2.3922548522
+2.7538129883
+4.1070809020
+4.8061903913
+4.9138080517
+5.1783121945
+2.4225175647
+3.1565752723
+3.9688035291
+4.7419721213
+4.9376324313
+5.2056014073
+2.4573078709
+3.5959598200
+3.8610091760
+4.6447431013
+4.9598544429
+5.1977605913
+2.3859887617
+2.3859887617
+4.1809879984
+4.8601254081
+4.8601254081
+5.1933964822
+2.4073528340
+2.5067185814
+4.0809638063
+4.8516510633
+4.8748685192
+5.2354195002
+2.4167622260
+2.7852866475
+4.0150025368
+4.8125641790
+4.8971019917
+5.2377194027
+2.4138202845
+2.4138202845
+4.0662471864
+4.8667643502
+4.8667643502
+5.2556592515
+0.8741006728
+0.9902973002
+1.7776076023
+4.6379942651
+4.6846613793
+7.0595051952
+1.1734582163
+1.3497555449
+2.2879620101
+4.6646492542
+4.7117137669
+6.8451007783
+1.4970671496
+1.7327369168
+2.8198644203
+4.6821726089
+4.6926363230
+6.6213941007
+1.8170986080
+2.1173259000
+3.3485387017
+4.5960779809
+4.6706761563
+6.4392453878
+2.1250139778
+2.4896287253
+3.8540210017
+4.4299850421
+4.6019091288
+6.3189699025
+2.4186023558
+2.8381162919
+4.2054470533
+4.3152163701
+4.4774110375
+6.2473367837
+2.6990370002
+3.1456946044
+3.9576310114
+4.3047664780
+4.7055182751
+6.1946289985
+2.9673112729
+3.3379668743
+3.7829250538
+4.0990610101
+4.9836571122
+6.1450598209
+3.1760170179
+3.2650000449
+3.8686837117
+3.9005512964
+5.0892657698
+6.1201214266
+1.2094619770
+1.3014157152
+2.4948933675
+4.6658050111
+4.6853794417
+6.7866431448
+1.4724049989
+1.6548051188
+2.9324813868
+4.6819151235
+4.6927597907
+6.5606674005
+1.7467066704
+2.0577653746
+3.3781824701
+4.6223715426
+4.6985533919
+6.3530849677
+2.0158121568
+2.4712520376
+3.8157257778
+4.4848725943
+4.6638674430
+6.2028124397
+2.2746262621
+2.8688565326
+4.2270098935
+4.2774596202
+4.5774100981
+6.1123870359
+2.5240861905
+3.2274342025
+4.0240176774
+4.4398154896
+4.5995918280
+6.0544784436
+2.7691670031
+3.4689552564
+3.8329576276
+4.2619974489
+4.8895362385
+6.0029387989
+3.0109022075
+3.3490720065
+3.9688479390
+4.0540423471
+5.0449613152
+5.9674115617
+3.0656801147
+3.2745917299
+3.8401679339
+4.2038628806
+5.0059035705
+5.9850957573
+2.8191892387
+3.3206865737
+3.7845795155
+4.4080160640
+4.7894335054
+6.0441917144
+2.5607651933
+3.0809808751
+3.9968599254
+4.4544894180
+4.5706804811
+6.1095096187
+2.2927898155
+2.7524099647
+4.0588371860
+4.2515302459
+4.6715625724
+6.1838762528
+2.0106277088
+2.3936886535
+3.6240559459
+4.4691286575
+4.7167203825
+6.2924685542
+1.7159330794
+2.0267398859
+3.1720398389
+4.6209282604
+4.7137109034
+6.4516184716
+1.4237766209
+1.6715142174
+2.7201535067
+4.6857595660
+4.6981758678
+6.6493954735
+1.5252079667
+1.6019109065
+3.1721605523
+4.6862205822
+4.7014577157
+6.4221270697
+1.7494864655
+1.9462711033
+3.5410931838
+4.6513939961
+4.7228424590
+6.1982222903
+1.9717768812
+2.3641069397
+3.9018576477
+4.5486009663
+4.7155963409
+6.0181144131
+2.1868458634
+2.8043238763
+4.2410864151
+4.3675788216
+4.6627269691
+5.9058655937
+2.3940670219
+3.2300341693
+4.1196455496
+4.5447807366
+4.5711730234
+5.8433577222
+2.5992756720
+3.5815847764
+3.8862959309
+4.4134333120
+4.8155301799
+5.7958914151
+2.8122713321
+3.5035742119
+4.0354725744
+4.2290822610
+4.9832163622
+5.7570394560
+3.0330811931
+3.2660413760
+4.0138301989
+4.3153485651
+4.9923093316
+5.7653837138
+2.9952316902
+3.2817167812
+3.7991516578
+4.5303927283
+4.8411867502
+5.8358082640
+2.7641247764
+3.2848698428
+3.7849230417
+4.5597455038
+4.6987009778
+5.9257805372
+2.5212917460
+3.0180547052
+4.0191669807
+4.2485215185
+4.7688927137
+6.0217114159
+2.2607378161
+2.6889526201
+3.8979570680
+4.2746575648
+4.7842984262
+6.1361163626
+1.9847834269
+2.3510983987
+3.5357926701
+4.4824189327
+4.7565075855
+6.2810716361
+1.8060222724
+1.8751645713
+3.7774937565
+4.6919250326
+4.7417058797
+5.9825211843
+1.9906113396
+2.2100084949
+4.0782647698
+4.6191599225
+4.7576933429
+5.7774001042
+2.1621821092
+2.6362691521
+4.3554079460
+4.4665936211
+4.7350099423
+5.6449316015
+2.3247157046
+3.0960104337
+4.2334096768
+4.6049337892
+4.6665031420
+5.5820806555
+2.4829973724
+3.5455864870
+3.9719961588
+4.5494145686
+4.8128353959
+5.5470690074
+2.6488511543
+3.6736996596
+3.9988598722
+4.3951656585
+4.9532131208
+5.5154055948
+2.8373201504
+3.4465271761
+4.1947980360
+4.3736631749
+4.9706514672
+5.5086255125
+3.0490997470
+3.2273063671
+3.9731659876
+4.6238510581
+4.8829632296
+5.5769646459
+2.9955634757
+3.2765555885
+3.7603437275
+4.6365323616
+4.8354672895
+5.6940676772
+2.7731727602
+3.2480176578
+3.7836792028
+4.4191778187
+4.8700086462
+5.8340525216
+2.5253111220
+2.9868113430
+4.0255615590
+4.1669944021
+4.8457732410
+5.9825904330
+2.0432703819
+2.1097721705
+4.2922263923
+4.6932375002
+4.7826375410
+5.5049148483
+2.1884936034
+2.4333925817
+4.5239858357
+4.5629304965
+4.7908735399
+5.3556453851
+2.3124505875
+2.8609926353
+4.3429737289
+4.7243887353
+4.7519754492
+5.3024293610
+2.4269942125
+3.3300800494
+4.0857467812
+4.6658119106
+4.8847445090
+5.2915900683
+2.5428423696
+3.7869877762
+3.8486444420
+4.5405144041
+4.9888101149
+5.2820651706
+2.6776044654
+3.6133031173
+4.2214733703
+4.3910272076
+5.0115743031
+5.2810733155
+2.8496175999
+3.4222927734
+4.1605537062
+4.6149092973
+4.9528989918
+5.3016448607
+3.0613029578
+3.2260930829
+3.9377989799
+4.6880417507
+4.9589905039
+5.4173923638
+3.0126764888
+3.2695537946
+3.7414376041
+4.5730882373
+4.9459040960
+5.6219616473
+2.2316545521
+2.2982417842
+4.6417813151
+4.7038542767
+4.8200776023
+5.0774305675
+2.3390729004
+2.6075108337
+4.4165944393
+4.8159252161
+4.8676920456
+5.0476434054
+2.4201246426
+3.0284288572
+4.1671460454
+4.7578986361
+4.9897741867
+5.0729478410
+2.4938635662
+3.4938711405
+3.9423427589
+4.6593638672
+5.0426255858
+5.1158286638
+2.5766967596
+3.7543383790
+3.9569423557
+4.5264172016
+5.0325485430
+5.1545238481
+2.6911809342
+3.5928750433
+4.3038698970
+4.4638665083
+5.0158059835
+5.1220227569
+2.8532641559
+3.4198780897
+4.1411043027
+4.6733507763
+5.0471358104
+5.1499377980
+2.3679632017
+2.4358097910
+4.4068087181
+4.8500935576
+4.8879878639
+5.0033054954
+2.4402221852
+2.7267347225
+4.1849060073
+4.8229199007
+4.9229658007
+5.1003805576
+2.4846017129
+3.1322723870
+4.0010719674
+4.7496747047
+4.9559079859
+5.1590336670
+2.5267210709
+3.5794418826
+3.8577084549
+4.6448727801
+4.9707424631
+5.1799213733
+2.5884024384
+3.7303261026
+4.0440066933
+4.5167604360
+4.9886035821
+5.1383786114
+2.4503591704
+2.5195980166
+4.1422238048
+4.8535880502
+4.8694898684
+5.1849371602
+2.4909779012
+2.7875790931
+4.0233741819
+4.8116275328
+4.8972962099
+5.2175813364
+2.5060469771
+3.1679277017
+3.9377605354
+4.7399127284
+4.9261677933
+5.2132563593
+2.4779175841
+2.5477986393
+4.0405622025
+4.8466327080
+4.8761940603
+5.2458412199
+1.7223689452
+1.9551878007
+3.3090833283
+4.6296281523
+4.7229830477
+6.3581299393
+1.9840784354
+2.3165444723
+3.6866016606
+4.5061853202
+4.7485703291
+6.1764945742
+2.2310262403
+2.7078031345
+4.0520835699
+4.3117210597
+4.7388795282
+6.0428257728
+2.4617055884
+3.0909006070
+4.0635606651
+4.3963953422
+4.6759712614
+5.9533244510
+2.6823348358
+3.4081366523
+3.8316527566
+4.5459091878
+4.7042832121
+5.8837035036
+2.9006121214
+3.3984423372
+3.8928314685
+4.3703677226
+4.9269185837
+5.8196417895
+3.0675168673
+3.2347000110
+4.1361300794
+4.1530212781
+5.0153765943
+5.7872449756
+1.9944339159
+2.2152077179
+3.8571877273
+4.5556458634
+4.7647907584
+5.9984106882
+2.2178751356
+2.5800074099
+4.1571768810
+4.3896851515
+4.7858982618
+5.8397531317
+2.4111275825
+2.9950184594
+4.1571147632
+4.4374695221
+4.7606445043
+5.7338944040
+2.5884802947
+3.4009138250
+3.9068109335
+4.6506386158
+4.7036063206
+5.6629451175
+2.7633947799
+3.5522359566
+3.8817171532
+4.5215507893
+4.8770067472
+5.6037942933
+2.9470652665
+3.3446948509
+4.1832246769
+4.3284898237
+4.9763296762
+5.5656114571
+3.0597680337
+3.2318163075
+4.0540309226
+4.4776540535
+4.9364565693
+5.5886234639
+2.8991199071
+3.3964379400
+3.7962445069
+4.6560604900
+4.7918925905
+5.6661619484
+2.7068794302
+3.2905823791
+3.8304816198
+4.5367510394
+4.7947813482
+5.7632314371
+2.4945520114
+2.9577811003
+4.0775502065
+4.2782246202
+4.8247184129
+5.8759728303
+2.2500772577
+2.6183832884
+3.9874254099
+4.3219579081
+4.8006608187
+6.0128724873
+2.2265460092
+2.4441092734
+4.3302433863
+4.4782356618
+4.8071346268
+5.5976627030
+2.4088104602
+2.8083499525
+4.2665267107
+4.5580071785
+4.8205223101
+5.4765990859
+2.5500651129
+3.2392734676
+4.0198508634
+4.7398521664
+4.7805491856
+5.4077742052
+2.6790039108
+3.6439504766
+3.8056592190
+4.6512876373
+4.8978593383
+5.3649989971
+2.8158944773
+3.5254686776
+4.1041814792
+4.4811758286
+4.9760175065
+5.3369198159
+2.9786891028
+3.3414668740
+4.1965386938
+4.5185666081
+4.9518048789
+5.3398139282
+3.1148817198
+3.2247514018
+3.9364405552
+4.7185087087
+4.8894307999
+5.4073143402
+2.9654239962
+3.3565000727
+3.7171263079
+4.6527460932
+4.9094399857
+5.5379955846
+2.7516968400
+3.2144459582
+3.8296592325
+4.4790138570
+4.8929608553
+5.7050962275
+2.4113434529
+2.6323068280
+4.3667762456
+4.7128000445
+4.8457577108
+5.2235164216
+2.5532584139
+2.9902379654
+4.1316717985
+4.8408590751
+4.8663910567
+5.1560719576
+2.6482038261
+3.4256868614
+3.9018062879
+4.7517543121
+4.9722937579
+5.1429523082
+2.7370398010
+3.6937890256
+3.8766228256
+4.5973056886
+5.0187496893
+5.1538134364
+2.8477090196
+3.5376707331
+4.2292833708
+4.4769097451
+4.9960145074
+5.1497880742
+2.9958858085
+3.3748043682
+4.0936422303
+4.6900879661
+4.9888668215
+5.1549055186
+3.1861880197
+3.1928647861
+3.8693483692
+4.7354438748
+4.9913503985
+5.2914520476
+2.5449665663
+2.7720707573
+4.1979430891
+4.8766712282
+4.9561078052
+4.9960818751
+2.6497797201
+3.1166048269
+3.9934730554
+4.8161519291
+4.9597622239
+5.0808703899
+2.7064104785
+3.5425016283
+3.8268074602
+4.6774920923
+4.9860587489
+5.1301409311
+2.7652626486
+3.6895957989
+3.9644757150
+4.5226550128
+4.9947569963
+5.1395486895
+2.8575443663
+3.5492262973
+4.2114554943
+4.5105865037
+5.0117466778
+5.0856272705
+2.6256024446
+2.8583343610
+4.0289972796
+4.8257955514
+4.8966314361
+5.1608950071
+2.6980244224
+3.1817075626
+3.9083943370
+4.7339052335
+4.9299219915
+5.1836361222
+2.7256662343
+3.5826089996
+3.8079867800
+4.6237858843
+4.9595542536
+5.1726065779
+2.6525391528
+2.8876740919
+3.9630746244
+4.7823481687
+4.9035284409
+5.2174860313
+2.4781845939
+2.8501640827
+4.1657881746
+4.3970349663
+4.8451683251
+5.6824770489
+2.6839038989
+3.1904693195
+3.9175382836
+4.6027287872
+4.8615776204
+5.5510961610
+2.8437743973
+3.4894687750
+3.7426960460
+4.7446585020
+4.8288460504
+5.4490921754
+2.9872197107
+3.3733079423
+3.9984898265
+4.6184914923
+4.9185212224
+5.3802439409
+3.0926302074
+3.2436276171
+4.2446669755
+4.4410654078
+4.9627362382
+5.3522353009
+2.6600025588
+3.0433380644
+4.0320372843
+4.7255740365
+4.8856366576
+5.3272107455
+2.8257647126
+3.3804495753
+3.8022460226
+4.8409348255
+4.8930720916
+5.2147398221
+2.9385250464
+3.5476500720
+3.8177042270
+4.7266162024
+4.9564323434
+5.1748892564
+3.0460142417
+3.3977670230
+4.1473445693
+4.5259985861
+4.9885056522
+5.1719853055
+3.1631021346
+3.2806147484
+4.0936119107
+4.6270340835
+4.9652897456
+5.1716043278
+3.1065919414
+3.3620931294
+3.8093864860
+4.8006643846
+4.9410552579
+5.2076228879
+2.9320921902
+3.3875164017
+3.7094887507
+4.7374228303
+4.9357703398
+5.3577144764
+2.7911902935
+3.1895163227
+3.9191384909
+4.9179720193
+4.9405658010
+5.0302698058
+2.9199138651
+3.5173370228
+3.7435193753
+4.7783520205
+4.9807746060
+5.0658654267
+2.9947973708
+3.5879767817
+3.9089483368
+4.5697390007
+5.0072525166
+5.0984087917
+3.0793078997
+3.4705930924
+4.1262884305
+4.4988387384
+5.0086890842
+5.0806623727
+3.1980850381
+3.3221725934
+3.9766251127
+4.7264544222
+5.0276386750
+5.0327702461
+2.8701228669
+3.2805736124
+3.8492517040
+4.7570393914
+4.9388357403
+5.1253558185
+2.9667828614
+3.5908308176
+3.7391084765
+4.6044870004
+4.9735279453
+5.1370053746
+3.0160651846
+3.6264135647
+3.9409956323
+4.4734131257
+4.9983558800
+5.1105029474
+2.8964386607
+3.3115212457
+3.8331782909
+4.6649453593
+4.9460435497
+5.1737035414
+3.0618771517
+3.5006069665
+3.6850922667
+4.8690237998
+4.9699454149
+5.0451165833
+3.2008350401
+3.4131590363
+3.9007193846
+4.6629949064
+5.0024433452
+5.0611381555
+3.2674314898
+3.3404300691
+4.0953409949
+4.4813499306
+5.0165131200
+5.0781621868
+3.1396994119
+3.5868539713
+3.7108409778
+4.6289373576
+4.9919941694
+5.0838367497
+3.2492710322
+3.5136808221
+3.9213745330
+4.4402603579
+5.0249363190
+5.0825108040
+3.3193082141
+3.3994821617
+3.9936871490
+4.4622891808
+5.0405538337
+5.0510656027
+3.1655876677
+3.6520096006
+3.7107439026
+4.4929563776
+4.9996124267
+5.1191076412
+3.4251510812
+3.4251510812
+3.9284419248
+4.3580757533
+5.0591639692
+5.0591639692
diff --git a/example/spglib_f08.f90 b/example/spglib_f08.f90
index b901734..0ef7adc 100644
--- a/example/spglib_f08.f90
+++ b/example/spglib_f08.f90
@@ -1,17 +1,31 @@
module spglib_f08
-
- use iso_c_binding, only: c_char, c_int, c_double, c_ptr, c_f_pointer
-
+
+ use iso_c_binding, only: c_char, c_int, c_double, c_ptr, c_null_char, c_f_pointer, c_associated
+
implicit none
-
+
private
+ enum, bind(C)
+ enumerator :: SPGLIB_SUCCESS = 0
+ enumerator :: SPGERR_SPACEGROUP_SEARCH_FAILED
+ enumerator :: SPGERR_CELL_STANDARDIZATION_FAILED
+ enumerator :: SPGERR_SYMMETRY_OPERATION_SEARCH_FAILED
+ enumerator :: SPGERR_ATOMS_TOO_CLOSE
+ enumerator :: SPGERR_POINTGROUP_NOT_FOUND
+ enumerator :: SPGERR_NIGGLI_FAILED
+ enumerator :: SPGERR_DELAUNAY_FAILED
+ enumerator :: SPGERR_ARRAY_SIZE_SHORTAGE
+ enumerator :: SPGERR_NONE
+ end enum
+
type :: SpglibDataset
integer :: spacegroup_number
integer :: hall_number
character(len=11) :: international_symbol
character(len=17) :: hall_symbol
+ character(len=6) :: choice
real(c_double) :: transformation_matrix(3,3)
real(c_double) :: origin_shift(3)
integer :: n_operations
@@ -20,14 +34,19 @@
integer :: n_atoms
integer, allocatable :: wyckoffs(:)
integer, allocatable :: equivalent_atoms(:) !Beware mapping refers to positions starting at 0
- end type
-
-
-
- interface
-
+ integer :: n_std_atoms
+ real(c_double) :: std_lattice(3,3)
+ integer, allocatable :: std_types(:)
+ real(c_double), allocatable :: std_positions(:,:)
+ character(len=6) :: pointgroup_symbol
+ integer(kind(SPGLIB_SUCCESS)) :: spglib_error
+
+ end type
+
+ interface
+
function spg_get_symmetry( rotation, translation, max_size, lattice, &
- & position, types, num_atom, symprec) bind(c)
+ & position, types, num_atom, symprec) bind(c)
import c_int, c_double
integer(c_int), intent(inout) :: rotation(3,3,*)
real(c_double), intent(inout) :: translation(3,*)
@@ -38,10 +57,10 @@
real(c_double), intent(in), value :: symprec
integer(c_int) :: spg_get_symmetry
end function spg_get_symmetry
-
-
+
+
function spgat_get_symmetry( rotation, translation, max_size, lattice, &
- & position, types, num_atom, symprec, angle_tolerance) bind(c)
+ & position, types, num_atom, symprec, angle_tolerance) bind(c)
import c_int, c_double
integer(c_int), intent(inout) :: rotation(3,3,*)
real(c_double), intent(inout) :: translation(3,*)
@@ -53,10 +72,10 @@
integer(c_int) :: spgat_get_symmetry
end function spgat_get_symmetry
-
+
function spg_get_symmetry_with_collinear_spin( rotation, translation, &
& max_size, lattice, position, types, spins, num_atom, symprec) bind(c)
- import c_int, c_double
+ import c_int, c_double
integer(c_int), intent(inout) :: rotation(3,3,*)
real(c_double), intent(inout) :: translation(3,*)
integer(c_int), intent(in), value :: max_size
@@ -68,10 +87,10 @@
integer(c_int) :: spg_get_symmetry_with_collinear_spin
end function spg_get_symmetry_with_collinear_spin
-
+
function spgat_get_symmetry_with_collinear_spin( rotation, translation, &
& max_size, lattice, position, types, spins, num_atom, symprec, angle_tolerance) bind(c)
- import c_int, c_double
+ import c_int, c_double
integer(c_int), intent(inout) :: rotation(3,3,*)
real(c_double), intent(inout) :: translation(3,*)
integer(c_int), intent(in), value :: max_size
@@ -83,20 +102,20 @@
integer(c_int) :: spgat_get_symmetry_with_collinear_spin
end function spgat_get_symmetry_with_collinear_spin
-
+
function spg_get_multiplicity( lattice, position, types, num_atom, symprec) bind(c)
- import c_int, c_double
+ import c_int, c_double
real(c_double), intent(in) :: lattice(3,3), position(3,*)
integer(c_int), intent(in) :: types(*)
integer(c_int), intent(in), value :: num_atom
real(c_double), intent(in), value :: symprec
integer(c_int) :: spg_get_multiplicity
end function spg_get_multiplicity
-
+
function spgat_get_multiplicity( lattice, position, types, num_atom, symprec, angle_tolerance) bind(c)
- import c_int, c_double
+ import c_int, c_double
real(c_double), intent(in) :: lattice(3,3), position(3,*)
integer(c_int), intent(in) :: types(*)
integer(c_int), intent(in), value :: num_atom
@@ -104,18 +123,25 @@
integer(c_int) :: spgat_get_multiplicity
end function spgat_get_multiplicity
-
- function spg_get_smallest_lattice( smallest_lattice, lattice, symprec) bind(c)
- import c_int, c_double
- real(c_double), intent(inout) :: smallest_lattice(3,3)
- real(c_double), intent(in) :: lattice(3,3)
+
+ function spg_delaunay_reduce( lattice, symprec) bind(c)
+ import c_int, c_double
+ real(c_double), intent(inout) :: lattice(3,3)
real(c_double), intent(in), value :: symprec
- integer(c_int) :: spg_get_smallest_lattice
- end function spg_get_smallest_lattice
+ integer(c_int) :: spg_delaunay_reduce
+ end function spg_delaunay_reduce
+
+
+ function spg_niggli_reduce( lattice, symprec) bind(c)
+ import c_int, c_double
+ real(c_double), intent(inout) :: lattice(3,3)
+ real(c_double), intent(in), value :: symprec
+ integer(c_int) :: spg_niggli_reduce
+ end function spg_niggli_reduce
function spg_find_primitive(lattice, position, types, num_atom, symprec) bind(c)
- import c_int, c_double
+ import c_int, c_double
real(c_double), intent(inout) :: lattice(3,3), position(3,*)
integer(c_int), intent(inout) :: types(*)
integer(c_int), intent(in), value :: num_atom
@@ -123,9 +149,9 @@
integer(c_int) :: spg_find_primitive
end function spg_find_primitive
-
+
function spgat_find_primitive(lattice, position, types, num_atom, symprec, angle_tolerance) bind(c)
- import c_int, c_double
+ import c_int, c_double
real(c_double), intent(inout) :: lattice(3,3), position(3,*)
integer(c_int), intent(inout) :: types(*)
integer(c_int), intent(in), value :: num_atom
@@ -133,19 +159,19 @@
integer(c_int) :: spgat_find_primitive
end function spgat_find_primitive
-
-
+
+
function spg_get_international( symbol, lattice, position, types, num_atom, symprec) bind(c)
import c_char, c_int, c_double
character(kind=c_char), intent(out) :: symbol(11)
real(c_double), intent(in) :: lattice(3,3), position(3, *)
integer(c_int), intent(in) :: types(*)
integer(c_int), intent(in), value :: num_atom
- real(c_double), intent(in), value :: symprec
+ real(c_double), intent(in), value :: symprec
integer(c_int) :: spg_get_international ! the number corresponding to 'symbol'. 0 on failure
end function spg_get_international
-
-
+
+
function spgat_get_international( symbol, lattice, position, types, num_atom, symprec, angle_tolerance) bind(c)
import c_char, c_int, c_double
character(kind=c_char), intent(out) :: symbol(11)
@@ -155,23 +181,23 @@
real(c_double), intent(in), value :: symprec, angle_tolerance
integer(c_int) :: spgat_get_international ! the number corresponding to 'symbol'. 0 on failure
end function spgat_get_international
-
-
-
+
+
+
function spg_get_schoenflies( symbol, lattice, position, types, num_atom, symprec) bind(c)
import c_char, c_int, c_double
- character(kind=c_char), intent(out) :: symbol(10)
+ character(kind=c_char), intent(out) :: symbol(7)
real(c_double), intent(in) :: lattice(3,3), position(3, *)
integer(c_int), intent(in) :: types(*)
integer(c_int), intent(in), value :: num_atom
- real(c_double), intent(in), value :: symprec
+ real(c_double), intent(in), value :: symprec
integer(c_int) :: spg_get_schoenflies ! the number corresponding to 'symbol'. 0 on failure
end function spg_get_schoenflies
function spgat_get_schoenflies( symbol, lattice, position, types, num_atom, symprec, angle_tolerance) bind(c)
import c_char, c_int, c_double
- character(kind=c_char), intent(out) :: symbol(10)
+ character(kind=c_char), intent(out) :: symbol(7)
real(c_double), intent(in) :: lattice(3,3), position(3, *)
integer(c_int), intent(in) :: types(*)
integer(c_int), intent(in), value :: num_atom
@@ -182,38 +208,38 @@
function spg_get_pointgroup( symbol, trans_mat, rotations, num_rotations) bind(c)
- import c_char, c_int, c_double
+ import c_char, c_int, c_double
character(kind=c_char) :: symbol(6)
integer(c_int), intent(inout) :: trans_mat(3,3)
integer(c_int), intent(in) :: rotations(3,3,*)
integer(c_int), intent(in), value :: num_rotations
integer(c_int) :: spg_get_pointgroup
end function spg_get_pointgroup
-
-
+
+
function spg_refine_cell( lattice, position, types, num_atom, symprec) bind(c)
- import c_int, c_double
+ import c_int, c_double
real(c_double), intent(inout) :: lattice(3,3), position(3,*)
integer(c_int), intent(inout) :: types(*)
integer(c_int), intent(in), value :: num_atom
real(c_double), intent(in), value :: symprec
integer(c_int) :: spg_refine_cell
end function spg_refine_cell
-
+
function spgat_refine_cell( lattice, position, types, num_atom, symprec, angle_tolerance) bind(c)
- import c_int, c_double
+ import c_int, c_double
real(c_double), intent(inout) :: lattice(3,3), position(3,*)
integer(c_int), intent(inout) :: types(*)
integer(c_int), intent(in), value :: num_atom
real(c_double), intent(in), value :: symprec, angle_tolerance
integer(c_int) :: spgat_refine_cell
end function spgat_refine_cell
-
-
+
+
function spg_get_ir_kpoints( map, kpoints, num_kpoints, lattice, position, &
& types, num_atom, is_time_reversal, symprec) bind(c)
! Beware the map refers to positions starting at 0
- import c_int, c_double
+ import c_int, c_double
integer(c_int), intent(inout) :: map(*)
real(c_double), intent(in) :: kpoints(3,*)
integer(c_int), intent(in), value :: num_kpoints
@@ -224,27 +250,27 @@
real(c_double), intent(in), value :: symprec
integer(c_int) :: spg_get_ir_kpoints
end function spg_get_ir_kpoints
-
+
function spg_get_ir_reciprocal_mesh(grid_point, map, mesh, &
& is_shift, is_time_reversal, lattice, position, types, num_atom, symprec) bind(c)
import c_int, c_double
-! Beware the map refers to positions starting at 0
+! Beware the map refers to positions starting at 0
integer(c_int), intent(out) :: grid_point(3, *), map(*) ! size is product(mesh)
integer(c_int), intent(in) :: mesh(3), is_shift(3)
integer(c_int), intent(in), value :: is_time_reversal
real(c_double), intent(in) :: lattice(3,3), position(3, *)
integer(c_int), intent(in) :: types(*)
integer(c_int), intent(in), value :: num_atom
- real(c_double), intent(in), value :: symprec
+ real(c_double), intent(in), value :: symprec
integer(c_int) :: spg_get_ir_reciprocal_mesh ! the number of points in the reduced mesh
end function spg_get_ir_reciprocal_mesh
function spg_get_stabilized_reciprocal_mesh(grid_point, map, mesh, is_shift, &
& is_time_reversal, lattice, num_rot, rotations, num_q, qpoints) bind(c)
- import c_int, c_double
-! Beware the map refers to positions starting at 0
+ import c_int, c_double
+! Beware the map refers to positions starting at 0
integer(c_int), intent(inout) :: grid_point(3,*), map(*)
integer(c_int), intent(in) :: mesh(3)
integer(c_int), intent(in) :: is_shift(3)
@@ -256,11 +282,11 @@
real(c_double), intent(in) :: qpoints(3,*)
integer(c_int) :: spg_get_stabilized_reciprocal_mesh
end function spg_get_stabilized_reciprocal_mesh
-
-
+
+
function spg_get_triplets_reciprocal_mesh_at_q(weights, grid_points, third_q, &
& grid_point, mesh, is_time_reversal, lattice, num_rot, rotations) bind(c)
- import c_int, c_double
+ import c_int, c_double
integer(c_int), intent(inout) :: weights(*)
integer(c_int), intent(inout) :: grid_points(3,*)
integer(c_int), intent(inout) :: third_q(*)
@@ -273,12 +299,12 @@
integer(c_int) :: spg_get_triplets_reciprocal_mesh_at_q
end function spg_get_triplets_reciprocal_mesh_at_q
-
-
+
+
function spg_extract_triplets_reciprocal_mesh_at_q(triplets_at_q, &
& weight_triplets_at_q, fixed_grid_number, num_triplets, triplets, &
& mesh, is_time_reversal, lattice, num_rot, rotations) bind(c)
- import c_int, c_double
+ import c_int, c_double
integer(c_int), intent(inout) :: triplets_at_q(3,*)
integer(c_int), intent(inout) :: weight_triplets_at_q(*)
integer(c_int), intent(in), value :: fixed_grid_number
@@ -291,45 +317,84 @@
integer(c_int), intent(in) :: rotations(3,3,*)
integer(c_int) :: spg_extract_triplets_reciprocal_mesh_at_q
end function spg_extract_triplets_reciprocal_mesh_at_q
-
- end interface
-
+ function spg_get_error_code() bind(c, name='spg_get_error_code')
+ integer(kind(SPGLIB_SUCCESS)) :: spg_get_error_code
+ end function spg_get_error_code
-
+ end interface
+
+
+
public :: SpglibDataset, spg_get_dataset, &
& spg_get_symmetry, spgat_get_symmetry, &
- & spg_get_symmetry_with_collinear_spin, spgat_get_symmetry_with_collinear_spin, &
- & spg_get_multiplicity, spgat_get_multiplicity, spg_get_smallest_lattice, &
+ & spg_get_symmetry_with_collinear_spin, &
+ & spgat_get_symmetry_with_collinear_spin, &
+ & spg_get_multiplicity, spgat_get_multiplicity, &
+ & spg_delaunay_reduce, spg_niggli_reduce, &
& spg_find_primitive, spgat_find_primitive, &
& spg_get_international, spgat_get_international, &
& spg_get_schoenflies, spgat_get_schoenflies, &
& spg_get_pointgroup, spg_refine_cell, spgat_refine_cell, &
- & spg_get_ir_kpoints, spg_get_ir_reciprocal_mesh, spg_get_stabilized_reciprocal_mesh, &
- & spg_get_triplets_reciprocal_mesh_at_q, spg_extract_triplets_reciprocal_mesh_at_q
-
-
+ & spg_get_ir_kpoints, spg_get_ir_reciprocal_mesh, &
+ & spg_get_stabilized_reciprocal_mesh, &
+ & spg_get_triplets_reciprocal_mesh_at_q, &
+ & spg_extract_triplets_reciprocal_mesh_at_q, &
+ & spg_get_error_code, spg_get_error_message
+
+
contains
-
+
+ function spg_get_error_message(spglib_error)
+ integer(kind(SPGLIB_SUCCESS)) :: spglib_error
+ character(len=32) :: spg_get_error_message
+
+ character, pointer, dimension(:) :: message
+ type(c_ptr) :: message_ptr
+
+ integer :: i
+
+ interface
+
+ function spg_get_error_message_c(spglib_error) bind(c, name='spg_get_error_message')
+ import c_ptr, SPGLIB_SUCCESS
+
+ integer(kind(SPGLIB_SUCCESS)), value :: spglib_error
+ type(c_ptr) :: spg_get_error_message_c
+
+ end function spg_get_error_message_c
+
+ end interface
+
+ message_ptr = spg_get_error_message_c(spglib_error)
+ call c_f_pointer( message_ptr, message, [len(spg_get_error_message)])
+
+ spg_get_error_message = ' '
+ do i = 1, len(spg_get_error_message)
+ if( message(i) == C_NULL_CHAR ) exit
+ spg_get_error_message(i:i) = message(i)
+ end do
+
+ end function spg_get_error_message
-
function spg_get_dataset(lattice, position, types, num_atom, symprec) result(dset)
-
+
real(c_double), intent(in) :: lattice(3,3)
real(c_double), intent(in) :: position(3,*)
integer, intent(in) :: types(*)
integer, intent(in), value :: num_atom
real(c_double), intent(in), value :: symprec
type(SpglibDataset) :: dset
-
-
-
+
+
+
type, bind(c) :: SpglibDataset_c
integer(c_int) :: spacegroup_number
integer(c_int) :: hall_number
character(kind=c_char) :: international_symbol(11)
character(kind=c_char) :: hall_symbol(17)
+ character(kind=c_char) :: choice(6)
real(c_double) :: transformation_matrix(3,3)
real(c_double) :: origin_shift(3)
integer(c_int) :: n_operations
@@ -342,10 +407,15 @@
type(c_ptr) :: wyckoffs
! integer(c_int), pointer :: equivalent_atoms(:)
type(c_ptr) :: equivalent_atoms
- end type
-
-
- interface
+ integer(c_int) :: n_std_atoms
+ real(c_double) :: std_lattice(3,3)
+ type(c_ptr) :: std_types
+ type(c_ptr) :: std_positions
+ character(kind=c_char) :: pointgroup_symbol(6)
+ end type
+
+
+ interface
function spg_get_dataset_c(lattice, position, types, num_atom, symprec) bind(c, name='spg_get_dataset')
import c_int, c_double, c_ptr
real(c_double), intent(in) :: lattice(3,3)
@@ -354,58 +424,111 @@
integer(c_int), intent(in), value :: num_atom
real(c_double), intent(in), value :: symprec
type(c_ptr) :: spg_get_dataset_c
- end function spg_get_dataset_c
-
+ end function spg_get_dataset_c
+
subroutine spg_free_dataset_c(dataset) bind(c, name = 'spg_free_dataset')
import SpglibDataset_c
type(SpglibDataset_c), intent(inout) :: dataset
end subroutine spg_free_dataset_c
+
end interface
-
+
type(SpglibDataset_c), pointer :: dset_c
- integer :: n_operations, n_atoms, i
-
+ type(c_ptr) :: dataset_ptr_c
+ integer :: n_operations, n_atoms, n_std_atoms, i
+ integer(kind(SPGLIB_SUCCESS)) :: SpglibErrcode
real(c_double), pointer :: translations(:,:)
- integer(c_int), pointer :: rotations(:,:,:), wyckoffs(:), equivalent_atoms(:)
-
- call c_f_pointer( spg_get_dataset_c(lattice, position, types, num_atom, symprec), dset_c)
-
- dset % spacegroup_number = dset_c % spacegroup_number
- dset % hall_number = dset_c % hall_number
- dset % transformation_matrix = dset_c % transformation_matrix
- dset % origin_shift = dset_c % origin_shift
- dset % n_operations = dset_c % n_operations
- dset % n_atoms = dset_c % n_atoms
-
- do i = 1, size(dset_c % international_symbol)
- dset % international_symbol(i:i) = dset_c % international_symbol(i)
- end do
-
- do i = 1, size(dset_c % hall_symbol)
- dset % hall_symbol(i:i) = dset_c % hall_symbol(i)
- end do
-
- n_operations = dset_c % n_operations
- n_atoms = dset_c % n_atoms
-
- call c_f_pointer (dset_c % rotations , rotations , shape = [3, 3, n_operations])
- call c_f_pointer (dset_c % translations , translations , shape = [3, n_operations])
- call c_f_pointer (dset_c % wyckoffs , wyckoffs , shape = [n_atoms])
- call c_f_pointer (dset_c % equivalent_atoms, equivalent_atoms, shape = [n_atoms])
-
- allocate( dset % rotations (3, 3, n_operations))
- allocate( dset % translations (3, n_operations))
- allocate( dset % wyckoffs (n_atoms))
- allocate( dset % equivalent_atoms(n_atoms))
-
- dset % rotations = rotations
- dset % translations = translations
- dset % wyckoffs = wyckoffs
- dset % equivalent_atoms = equivalent_atoms
-
- call spg_free_dataset_c(dset_c)
-
+ integer(c_int), pointer :: rotations(:,:,:), wyckoffs(:), equivalent_atoms(:), std_types(:), std_positions(:,:)
+
+ dataset_ptr_c = spg_get_dataset_c(lattice, position, types, num_atom, symprec)
+
+ if( c_associated(dataset_ptr_c)) then
+
+ dset%spglib_error = SPGLIB_SUCCESS
+
+ call c_f_pointer(dataset_ptr_c , dset_c)
+
+ dset % spacegroup_number = dset_c % spacegroup_number
+ dset % hall_number = dset_c % hall_number
+ dset % transformation_matrix = dset_c % transformation_matrix
+ dset % origin_shift = dset_c % origin_shift
+ dset % n_operations = dset_c % n_operations
+ dset % n_atoms = dset_c % n_atoms
+ dset % n_std_atoms = dset_c % n_std_atoms
+ dset % std_lattice = dset_c % std_lattice
+
+ ! Copy C strings to Fortran characters, converting C NULL to Fortran space padded strings
+ do i = 1, size(dset_c % international_symbol)
+ if( dset_c % international_symbol(i) == C_NULL_CHAR ) then
+ dset % international_symbol(i:) = ' '
+ exit
+ end if
+ dset % international_symbol(i:i) = dset_c % international_symbol(i)
+ end do
+
+ do i = 1, size(dset_c % hall_symbol)
+ if( dset_c % hall_symbol(i) == C_NULL_CHAR ) then
+ dset % hall_symbol(i:) = ' '
+ exit
+ end if
+ dset % hall_symbol(i:i) = dset_c % hall_symbol(i)
+ end do
+
+ do i = 1, size(dset_c % choice)
+ if( dset_c % choice(i) == C_NULL_CHAR ) then
+ dset % choice(i:) = ' '
+ exit
+ end if
+ dset % choice(i:i) = dset_c % choice(i)
+ end do
+
+ n_operations = dset_c % n_operations
+ n_atoms = dset_c % n_atoms
+ n_std_atoms = dset_c % n_std_atoms
+
+ call c_f_pointer (dset_c % rotations , rotations , shape = [3, 3, n_operations])
+ call c_f_pointer (dset_c % translations , translations , shape = [3, n_operations])
+ call c_f_pointer (dset_c % wyckoffs , wyckoffs , shape = [n_atoms])
+ call c_f_pointer (dset_c % equivalent_atoms, equivalent_atoms, shape = [n_atoms])
+ call c_f_pointer (dset_c % std_types , std_types , shape = [n_std_atoms])
+ call c_f_pointer (dset_c % std_positions , std_positions , shape = [3, n_std_atoms])
+
+ allocate( dset % rotations (3, 3, n_operations))
+ allocate( dset % translations (3, n_operations))
+ allocate( dset % wyckoffs (n_atoms))
+ allocate( dset % equivalent_atoms(n_atoms))
+ allocate( dset % std_types (n_std_atoms))
+ allocate( dset % std_positions (3, n_std_atoms))
+
+ dset % rotations = rotations
+ dset % translations = translations
+ dset % wyckoffs = wyckoffs
+ dset % equivalent_atoms = equivalent_atoms
+ dset % std_types = std_types
+ dset % std_positions = std_positions
+
+ call spg_free_dataset_c(dset_c)
+
+ else
+
+ dset%spglib_error = spg_get_error_code()
+
+ dset%spacegroup_number = 0
+ dset%hall_number = 0
+ dset%international_symbol = ' '
+ dset%hall_symbol = ' '
+ dset%choice = ' '
+ dset%transformation_matrix = 0.0_c_double
+ dset%origin_shift = 0.0_c_double
+ dset%n_operations = 0
+ dset%n_atoms = 0
+ dset%n_std_atoms = 0
+ dset%std_lattice = 0.0_c_double
+ dset%pointgroup_symbol = ' '
+
+ end if
+
end function spg_get_dataset
-
- end module spglib_f08
+
+ end module spglib_f08
diff --git a/example/tetrahedron.c b/example/tetrahedron.c
new file mode 100644
index 0000000..cdab541
--- /dev/null
+++ b/example/tetrahedron.c
@@ -0,0 +1,221 @@
+#include "spglib.h"
+#include "tetrahedron_method.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+static void test_tetrahedron_method(void);
+static void mat_copy_matrix_d3(double a[3][3], double b[3][3]);
+static double mat_get_determinant_d3(double a[3][3]);
+static int mat_inverse_matrix_d3(double m[3][3],
+ double a[3][3],
+ const double precision);
+
+int main(void)
+{
+ test_tetrahedron_method();
+
+ return 0;
+}
+
+/* frequency.dat is in the example directory. */
+/* The values in this file are the phonon frequencies of NaCl */
+/* with 20x20x20 mesh. Calculation was done with reducing */
+/* k-points to the irreducible k-points using phonopy. */
+/* (http://phonopy.sf.net/) */
+static void test_tetrahedron_method(void)
+{
+ printf("*** Example of tetrahedron method of NaCl to calculate DOS ***:\n");
+ printf("Read data from frequency.dat and write DOS to dos.dat.\n");
+
+ int i, j, k, l, q, r;
+
+ /* NaCl 20x20x20 mesh */
+ double lattice[3][3] = {
+ {0.000000000000000, 2.845150738087836, 2.845150738087836},
+ {2.845150738087836, 0.000000000000000, 2.845150738087836},
+ {2.845150738087836, 2.845150738087836, 0.000000000000000}
+ };
+ double position[][3] =
+ {{0, 0, 0},
+ {0.5, 0.5, 0.5}};
+ int types[] = {1, 2};
+ int num_atom = 2;
+ int m = 20;
+ int mesh[] = {m, m, m};
+ int num_gp = mesh[0] * mesh[1] * mesh[2];
+ int is_shift[] = {0, 0, 0};
+ int grid_address[num_gp][3];
+ int grid_mapping_table[num_gp];
+ int weights[num_gp];
+ int num_ir = spg_get_ir_reciprocal_mesh(grid_address,
+ grid_mapping_table,
+ mesh,
+ is_shift,
+ 1,
+ lattice,
+ position,
+ types,
+ num_atom,
+ 1e-5);
+ int ir_gp[num_ir];
+ int ir_weights[num_ir];
+ int gp_ir_index[num_gp];
+ int relative_grid_address[24][4][3];
+ double rec_lat[3][3];
+ FILE *fp;
+ char * line = NULL;
+ size_t len = 0;
+ ssize_t read;
+ double frequency[num_ir * num_atom * 3];
+ double max_f, min_f;
+ double t_omegas[24][4];
+ int g_addr[3];
+ int gp;
+ int num_freqs = 201;
+ double dos[num_freqs];
+ double integral_dos[num_freqs];
+ double omegas[num_freqs];
+ double iw;
+
+ for (i = 0; i < num_gp; i++) {
+ weights[i] = 0;
+ }
+
+ for (i = 0; i < num_gp; i++) {
+ weights[grid_mapping_table[i]]++;
+ }
+
+ j = 0;
+ for (i = 0; i < num_gp; i++) {
+ if (weights[i] != 0) {
+ ir_gp[j] = i;
+ ir_weights[j] = weights[i];
+ gp_ir_index[i] = j;
+ j++;
+ } else {
+ gp_ir_index[i] = gp_ir_index[grid_mapping_table[i]];
+ }
+ }
+
+ printf("Number of irreducible k-points: %d\n", num_ir);
+
+ mat_inverse_matrix_d3(rec_lat, lattice, 1e-5);
+ thm_get_relative_grid_address(relative_grid_address, rec_lat);
+
+ /* for (i = 0; i < 24; i++) { */
+ /* for (j = 0; j < 4; j++) { */
+ /* printf("[%2d %2d %2d] ", */
+ /* relative_grid_address[i][j][0], */
+ /* relative_grid_address[i][j][1], */
+ /* relative_grid_address[i][j][2]); */
+ /* } */
+ /* printf("\n"); */
+ /* } */
+
+ fp = fopen("frequency.dat", "r");
+
+ for (i = 0; i < num_ir * num_atom * 3; i++) {
+ read = getline(&line, &len, fp);
+ if (read == -1) {
+ break;
+ }
+ frequency[i] = strtod(line, NULL);
+ }
+
+ fclose(fp);
+
+ max_f = frequency[0];
+ min_f = frequency[0];
+ for (i = 0; i < num_ir * num_atom * 3; i++) {
+ if (max_f < frequency[i]) {
+ max_f = frequency[i];
+ }
+ if (min_f > frequency[i]) {
+ min_f = frequency[i];
+ }
+ }
+
+ printf("Number of frequencies: %d\n", i);
+
+
+#pragma omp parallel for private(j, k, l, q, r, g_addr, gp, t_omegas, iw)
+ for (i = 0; i < num_freqs; i++) {
+ dos[i] = 0;
+ integral_dos[i] = 0;
+ omegas[i] = min_f + (max_f - min_f) / (num_freqs - 1) * i;
+ for (j = 0; j < num_ir; j++) {
+ for (k = 0; k < num_atom * 3; k++) {
+ for (l = 0; l < 24; l++) {
+ for (q = 0; q < 4; q++) {
+ for (r = 0; r < 3; r++) {
+ g_addr[r] = grid_address[ir_gp[j]][r] +
+ relative_grid_address[l][q][r];
+ }
+ gp = spg_get_grid_point_from_address(g_addr, mesh);
+ t_omegas[l][q] = frequency[gp_ir_index[gp] * num_atom * 3 + k];
+ }
+ }
+ iw = thm_get_integration_weight(omegas[i], t_omegas, 'J');
+ dos[i] += iw * ir_weights[j];
+ iw = thm_get_integration_weight(omegas[i], t_omegas, 'I');
+ integral_dos[i] += iw * ir_weights[j];
+ }
+ }
+ }
+
+ fp = fopen("dos.dat", "w");
+
+ for (i = 0; i < num_freqs; i++) {
+ fprintf(fp, "%f %f\n", omegas[i], dos[i] / num_gp);
+ }
+
+ fprintf(fp, "\n\n");
+
+ for (i = 0; i < num_freqs; i++) {
+ fprintf(fp, "%f %f\n", omegas[i], integral_dos[i] / num_gp);
+ }
+
+ fclose(fp);
+}
+
+static void mat_copy_matrix_d3(double a[3][3], double b[3][3])
+{
+ a[0][0] = b[0][0];
+ a[0][1] = b[0][1];
+ a[0][2] = b[0][2];
+ a[1][0] = b[1][0];
+ a[1][1] = b[1][1];
+ a[1][2] = b[1][2];
+ a[2][0] = b[2][0];
+ a[2][1] = b[2][1];
+ a[2][2] = b[2][2];
+}
+
+static double mat_get_determinant_d3(double a[3][3])
+{
+ return a[0][0] * (a[1][1] * a[2][2] - a[1][2] * a[2][1])
+ + a[0][1] * (a[1][2] * a[2][0] - a[1][0] * a[2][2])
+ + a[0][2] * (a[1][0] * a[2][1] - a[1][1] * a[2][0]);
+}
+
+static int mat_inverse_matrix_d3(double m[3][3],
+ double a[3][3],
+ const double precision)
+{
+ double det;
+ double c[3][3];
+ det = mat_get_determinant_d3(a);
+
+ c[0][0] = (a[1][1] * a[2][2] - a[1][2] * a[2][1]) / det;
+ c[1][0] = (a[1][2] * a[2][0] - a[1][0] * a[2][2]) / det;
+ c[2][0] = (a[1][0] * a[2][1] - a[1][1] * a[2][0]) / det;
+ c[0][1] = (a[2][1] * a[0][2] - a[2][2] * a[0][1]) / det;
+ c[1][1] = (a[2][2] * a[0][0] - a[2][0] * a[0][2]) / det;
+ c[2][1] = (a[2][0] * a[0][1] - a[2][1] * a[0][0]) / det;
+ c[0][2] = (a[0][1] * a[1][2] - a[0][2] * a[1][1]) / det;
+ c[1][2] = (a[0][2] * a[1][0] - a[0][0] * a[1][2]) / det;
+ c[2][2] = (a[0][0] * a[1][1] - a[0][1] * a[1][0]) / det;
+ mat_copy_matrix_d3(m, c);
+ return 1;
+}
+
diff --git a/install-sh b/install-sh
deleted file mode 100755
index a9244eb..0000000
--- a/install-sh
+++ /dev/null
@@ -1,527 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2011-01-19.21; # UTC
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-
-nl='
-'
-IFS=" "" $nl"
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit=${DOITPROG-}
-if test -z "$doit"; then
- doit_exec=exec
-else
- doit_exec=$doit
-fi
-
-# Put in absolute file names if you don't have them in your path;
-# or use environment vars.
-
-chgrpprog=${CHGRPPROG-chgrp}
-chmodprog=${CHMODPROG-chmod}
-chownprog=${CHOWNPROG-chown}
-cmpprog=${CMPPROG-cmp}
-cpprog=${CPPROG-cp}
-mkdirprog=${MKDIRPROG-mkdir}
-mvprog=${MVPROG-mv}
-rmprog=${RMPROG-rm}
-stripprog=${STRIPPROG-strip}
-
-posix_glob='?'
-initialize_posix_glob='
- test "$posix_glob" != "?" || {
- if (set -f) 2>/dev/null; then
- posix_glob=
- else
- posix_glob=:
- fi
- }
-'
-
-posix_mkdir=
-
-# Desired mode of installed file.
-mode=0755
-
-chgrpcmd=
-chmodcmd=$chmodprog
-chowncmd=
-mvcmd=$mvprog
-rmcmd="$rmprog -f"
-stripcmd=
-
-src=
-dst=
-dir_arg=
-dst_arg=
-
-copy_on_change=false
-no_target_directory=
-
-usage="\
-Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
- or: $0 [OPTION]... SRCFILES... DIRECTORY
- or: $0 [OPTION]... -t DIRECTORY SRCFILES...
- or: $0 [OPTION]... -d DIRECTORIES...
-
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
-
-Options:
- --help display this help and exit.
- --version display version info and exit.
-
- -c (ignored)
- -C install only if different (preserve the last data modification time)
- -d create directories instead of installing files.
- -g GROUP $chgrpprog installed files to GROUP.
- -m MODE $chmodprog installed files to MODE.
- -o USER $chownprog installed files to USER.
- -s $stripprog installed files.
- -t DIRECTORY install into DIRECTORY.
- -T report an error if DSTFILE is a directory.
-
-Environment variables override the default commands:
- CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
- RMPROG STRIPPROG
-"
-
-while test $# -ne 0; do
- case $1 in
- -c) ;;
-
- -C) copy_on_change=true;;
-
- -d) dir_arg=true;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift;;
-
- --help) echo "$usage"; exit $?;;
-
- -m) mode=$2
- case $mode in
- *' '* | *' '* | *'
-'* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
-
- -o) chowncmd="$chownprog $2"
- shift;;
-
- -s) stripcmd=$stripprog;;
-
- -t) dst_arg=$2
- # Protect names problematic for `test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- shift;;
-
- -T) no_target_directory=true;;
-
- --version) echo "$0 $scriptversion"; exit $?;;
-
- --) shift
- break;;
-
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
-
- *) break;;
- esac
- shift
-done
-
-if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
- # When -d is used, all remaining arguments are directories to create.
- # When -t is used, the destination is already specified.
- # Otherwise, the last argument is the destination. Remove it from $@.
- for arg
- do
- if test -n "$dst_arg"; then
- # $@ is not empty: it contains at least $arg.
- set fnord "$@" "$dst_arg"
- shift # fnord
- fi
- shift # arg
- dst_arg=$arg
- # Protect names problematic for `test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- done
-fi
-
-if test $# -eq 0; then
- if test -z "$dir_arg"; then
- echo "$0: no input file specified." >&2
- exit 1
- fi
- # It's OK to call `install-sh -d' without argument.
- # This can happen when creating conditional directories.
- exit 0
-fi
-
-if test -z "$dir_arg"; then
- do_exit='(exit $ret); exit $ret'
- trap "ret=129; $do_exit" 1
- trap "ret=130; $do_exit" 2
- trap "ret=141; $do_exit" 13
- trap "ret=143; $do_exit" 15
-
- # Set umask so as not to create temps with too-generous modes.
- # However, 'strip' requires both read and write access to temps.
- case $mode in
- # Optimize common cases.
- *644) cp_umask=133;;
- *755) cp_umask=22;;
-
- *[0-7])
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw='% 200'
- fi
- cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
- *)
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw=,u+rw
- fi
- cp_umask=$mode$u_plus_rw;;
- esac
-fi
-
-for src
-do
- # Protect names problematic for `test' and other utilities.
- case $src in
- -* | [=\(\)!]) src=./$src;;
- esac
-
- if test -n "$dir_arg"; then
- dst=$src
- dstdir=$dst
- test -d "$dstdir"
- dstdir_status=$?
- else
-
- # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
- # might cause directories to be created, which would be especially bad
- # if $src (and thus $dsttmp) contains '*'.
- if test ! -f "$src" && test ! -d "$src"; then
- echo "$0: $src does not exist." >&2
- exit 1
- fi
-
- if test -z "$dst_arg"; then
- echo "$0: no destination specified." >&2
- exit 1
- fi
- dst=$dst_arg
-
- # If destination is a directory, append the input filename; won't work
- # if double slashes aren't ignored.
- if test -d "$dst"; then
- if test -n "$no_target_directory"; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
- fi
- dstdir=$dst
- dst=$dstdir/`basename "$src"`
- dstdir_status=0
- else
- # Prefer dirname, but fall back on a substitute if dirname fails.
- dstdir=`
- (dirname "$dst") 2>/dev/null ||
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$dst" : 'X\(//\)[^/]' \| \
- X"$dst" : 'X\(//\)$' \| \
- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$dst" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'
- `
-
- test -d "$dstdir"
- dstdir_status=$?
- fi
- fi
-
- obsolete_mkdir_used=false
-
- if test $dstdir_status != 0; then
- case $posix_mkdir in
- '')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writeable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
- esac
-
- if
- $posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
- )
- then :
- else
-
- # The umask is ridiculous, or mkdir does not conform to POSIX,
- # or it failed possibly due to a race condition. Create the
- # directory the slow way, step by step, checking for races as we go.
-
- case $dstdir in
- /*) prefix='/';;
- [-=\(\)!]*) prefix='./';;
- *) prefix='';;
- esac
-
- eval "$initialize_posix_glob"
-
- oIFS=$IFS
- IFS=/
- $posix_glob set -f
- set fnord $dstdir
- shift
- $posix_glob set +f
- IFS=$oIFS
-
- prefixes=
-
- for d
- do
- test X"$d" = X && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
- done
-
- if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
- fi
- fi
- fi
-
- if test -n "$dir_arg"; then
- { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
- { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
- test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
- else
-
- # Make a couple of temp file names in the proper directory.
- dsttmp=$dstdir/_inst.$$_
- rmtmp=$dstdir/_rm.$$_
-
- # Trap to clean up those temp files at exit.
- trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-
- # Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
-
- # and set any options; do chmod last to preserve setuid bits.
- #
- # If any of these fail, we abort the whole thing. If we want to
- # ignore errors from any of these, just make sure not to ignore
- # errors from the above "$doit $cpprog $src $dsttmp" command.
- #
- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
- { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
- { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-
- # If -C, don't bother to copy if it wouldn't change the file.
- if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
- eval "$initialize_posix_glob" &&
- $posix_glob set -f &&
- set X $old && old=:$2:$4:$5:$6 &&
- set X $new && new=:$2:$4:$5:$6 &&
- $posix_glob set +f &&
-
- test "$old" = "$new" &&
- $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
- then
- rm -f "$dsttmp"
- else
- # Rename the file to the real destination.
- $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-
- # The rename failed, perhaps because mv can't rename something else
- # to itself, or perhaps because mv is so ancient that it does not
- # support -f.
- {
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
- }
- fi || exit 1
-
- trap '' 0
- fi
-done
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/ltmain.sh b/ltmain.sh
deleted file mode 100644
index 0096fe6..0000000
--- a/ltmain.sh
+++ /dev/null
@@ -1,9661 +0,0 @@
-
-# libtool (GNU libtool) 2.4.2
-# Written by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
-#
-# --config show all configuration variables
-# --debug enable verbose shell tracing
-# -n, --dry-run display commands without modifying any files
-# --features display basic configuration information and exit
-# --mode=MODE use operation mode MODE
-# --preserve-dup-deps don't remove duplicate dependency libraries
-# --quiet, --silent don't print informational messages
-# --no-quiet, --no-silent
-# print informational messages (default)
-# --no-warn don't display warning messages
-# --tag=TAG use configuration variables from tag TAG
-# -v, --verbose print more informational messages than default
-# --no-verbose don't print the extra informational messages
-# --version print version information
-# -h, --help, --help-all print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-# clean remove files from the build directory
-# compile compile a source file into a libtool object
-# execute automatically set library path, then run a program
-# finish complete the installation of libtool libraries
-# install install libraries or executables
-# link create a library or an executable
-# uninstall remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE. When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-# host-triplet: $host
-# shell: $SHELL
-# compiler: $LTCC
-# compiler flags: $LTCFLAGS
-# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu2
-# automake: $automake_version
-# autoconf: $autoconf_version
-#
-# Report bugs to <bug-libtool at gnu.org>.
-# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-# General help using GNU software: <http://www.gnu.org/gethelp/>.
-
-PROGRAM=libtool
-PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1ubuntu2"
-TIMESTAMP=""
-package_revision=1.3337
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
-
-# NLS nuisances: We save the old values to restore during execute mode.
-lt_user_locale=
-lt_safe_locale=
-for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
- eval "if test \"\${$lt_var+set}\" = set; then
- save_$lt_var=\$$lt_var
- $lt_var=C
- export $lt_var
- lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
- lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
- fi"
-done
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
-
-$lt_unset CDPATH
-
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-
-
-: ${CP="cp -f"}
-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${MAKE="make"}
-: ${MKDIR="mkdir"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
-
-exit_status=$EXIT_SUCCESS
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS=" $lt_nl"
-
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
-} # func_dirname may be replaced by extended shell implementation
-
-
-# func_basename file
-func_basename ()
-{
- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-} # func_basename may be replaced by extended shell implementation
-
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-# dirname: Compute the dirname of FILE. If nonempty,
-# add APPEND to the result, otherwise set result
-# to NONDIR_REPLACEMENT.
-# value returned in "$func_dirname_result"
-# basename: Compute filename of FILE.
-# value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
- # Extract subdirectory from the argument.
- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-} # func_dirname_and_basename may be replaced by extended shell implementation
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname may be replaced by extended shell implementation
-
-
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
- s@/\./@/@g
- t dotsl
- s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
-
-# func_normal_abspath PATH
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-# value returned in "$func_normal_abspath_result"
-func_normal_abspath ()
-{
- # Start from root dir and reassemble the path.
- func_normal_abspath_result=
- func_normal_abspath_tpath=$1
- func_normal_abspath_altnamespace=
- case $func_normal_abspath_tpath in
- "")
- # Empty path, that just means $cwd.
- func_stripname '' '/' "`pwd`"
- func_normal_abspath_result=$func_stripname_result
- return
- ;;
- # The next three entries are used to spot a run of precisely
- # two leading slashes without using negated character classes;
- # we take advantage of case's first-match behaviour.
- ///*)
- # Unusual form of absolute path, do nothing.
- ;;
- //*)
- # Not necessarily an ordinary path; POSIX reserves leading '//'
- # and for example Cygwin uses it to access remote file shares
- # over CIFS/SMB, so we conserve a leading double slash if found.
- func_normal_abspath_altnamespace=/
- ;;
- /*)
- # Absolute path, do nothing.
- ;;
- *)
- # Relative path, prepend $cwd.
- func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
- ;;
- esac
- # Cancel out all the simple stuff to save iterations. We also want
- # the path to end with a slash for ease of parsing, so make sure
- # there is one (and only one) here.
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
- while :; do
- # Processed it all yet?
- if test "$func_normal_abspath_tpath" = / ; then
- # If we ascended to the root using ".." the result may be empty now.
- if test -z "$func_normal_abspath_result" ; then
- func_normal_abspath_result=/
- fi
- break
- fi
- func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcar"`
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcdr"`
- # Figure out what to do with it
- case $func_normal_abspath_tcomponent in
- "")
- # Trailing empty path component, ignore it.
- ;;
- ..)
- # Parent dir; strip last assembled component from result.
- func_dirname "$func_normal_abspath_result"
- func_normal_abspath_result=$func_dirname_result
- ;;
- *)
- # Actual path component, append it.
- func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
- ;;
- esac
- done
- # Restore leading double-slash if one was found on entry.
- func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
-
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-# value returned in "$func_relative_path_result"
-func_relative_path ()
-{
- func_relative_path_result=
- func_normal_abspath "$1"
- func_relative_path_tlibdir=$func_normal_abspath_result
- func_normal_abspath "$2"
- func_relative_path_tbindir=$func_normal_abspath_result
-
- # Ascend the tree starting from libdir
- while :; do
- # check if we have found a prefix of bindir
- case $func_relative_path_tbindir in
- $func_relative_path_tlibdir)
- # found an exact match
- func_relative_path_tcancelled=
- break
- ;;
- $func_relative_path_tlibdir*)
- # found a matching prefix
- func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
- func_relative_path_tcancelled=$func_stripname_result
- if test -z "$func_relative_path_result"; then
- func_relative_path_result=.
- fi
- break
- ;;
- *)
- func_dirname $func_relative_path_tlibdir
- func_relative_path_tlibdir=${func_dirname_result}
- if test "x$func_relative_path_tlibdir" = x ; then
- # Have to descend all the way to the root!
- func_relative_path_result=../$func_relative_path_result
- func_relative_path_tcancelled=$func_relative_path_tbindir
- break
- fi
- func_relative_path_result=../$func_relative_path_result
- ;;
- esac
- done
-
- # Now calculate path; take care to avoid doubling-up slashes.
- func_stripname '' '/' "$func_relative_path_result"
- func_relative_path_result=$func_stripname_result
- func_stripname '/' '/' "$func_relative_path_tcancelled"
- if test "x$func_stripname_result" != x ; then
- func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
- fi
-
- # Normalisation. If bindir is libdir, return empty string,
- # else relative path ending with a slash; either way, target
- # file name can be directly appended.
- if test ! -z "$func_relative_path_result"; then
- func_stripname './' '' "$func_relative_path_result/"
- func_relative_path_result=$func_stripname_result
- fi
-}
-
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
-
-# Make sure we have an absolute path for reexecution:
-case $progpath in
- [\\/]*|[A-Za-z]:\\*) ;;
- *[\\/]*)
- progdir=$func_dirname_result
- progdir=`cd "$progdir" && pwd`
- progpath="$progdir/$progname"
- ;;
- *)
- save_IFS="$IFS"
- IFS=${PATH_SEPARATOR-:}
- for progdir in $PATH; do
- IFS="$save_IFS"
- test -x "$progdir/$progname" && break
- done
- IFS="$save_IFS"
- test -n "$progdir" || progdir=`pwd`
- progpath="$progdir/$progname"
- ;;
-esac
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
-
-# Sed substitution that converts a w32 file name or path
-# which contains forward slashes, into one that contains
-# (escaped) backslashes. A very naive implementation.
-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
- s/$bs4/&\\
-/g
- s/^$bs2$dollar/$bs&/
- s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
- s/\n//g"
-
-# Standard options:
-opt_dry_run=false
-opt_help=false
-opt_quiet=false
-opt_verbose=false
-opt_warning=:
-
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
-{
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-}
-
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
- $opt_verbose && func_echo ${1+"$@"}
-
- # A bug in bash halts the script if the last line of a function
- # fails when set -e is in force, so we need another command to
- # work around that:
- :
-}
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-}
-
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-
- # bash bug again:
- :
-}
-
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
- func_error ${1+"$@"}
- exit $EXIT_FAILURE
-}
-
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
- func_error ${1+"$@"}
- func_fatal_error "$help"
-}
-help="Try \`$progname --help' for more information." ## default
-
-
-# func_grep expression filename
-# Check whether EXPRESSION matches any line of FILENAME, without output.
-func_grep ()
-{
- $GREP "$1" "$2" >/dev/null 2>&1
-}
-
-
-# func_mkdir_p directory-path
-# Make sure the entire path to DIRECTORY-PATH is available.
-func_mkdir_p ()
-{
- my_directory_path="$1"
- my_dir_list=
-
- if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
-
- # Protect directory names starting with `-'
- case $my_directory_path in
- -*) my_directory_path="./$my_directory_path" ;;
- esac
-
- # While some portion of DIR does not yet exist...
- while test ! -d "$my_directory_path"; do
- # ...make a list in topmost first order. Use a colon delimited
- # list incase some portion of path contains whitespace.
- my_dir_list="$my_directory_path:$my_dir_list"
-
- # If the last portion added has no slash in it, the list is done
- case $my_directory_path in */*) ;; *) break ;; esac
-
- # ...otherwise throw away the child directory and loop
- my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
- done
- my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
-
- save_mkdir_p_IFS="$IFS"; IFS=':'
- for my_dir in $my_dir_list; do
- IFS="$save_mkdir_p_IFS"
- # mkdir can fail with a `File exist' error if two processes
- # try to create one of the directories concurrently. Don't
- # stop in that case!
- $MKDIR "$my_dir" 2>/dev/null || :
- done
- IFS="$save_mkdir_p_IFS"
-
- # Bail out if we (or some other process) failed to create a directory.
- test -d "$my_directory_path" || \
- func_fatal_error "Failed to create \`$1'"
- fi
-}
-
-
-# func_mktempdir [string]
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible. If
-# given, STRING is the basename for that directory.
-func_mktempdir ()
-{
- my_template="${TMPDIR-/tmp}/${1-$progname}"
-
- if test "$opt_dry_run" = ":"; then
- # Return a directory name, but don't create it in dry-run mode
- my_tmpdir="${my_template}-$$"
- else
-
- # If mktemp works, use that first and foremost
- my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-
- if test ! -d "$my_tmpdir"; then
- # Failing that, at least try and use $RANDOM to avoid a race
- my_tmpdir="${my_template}-${RANDOM-0}$$"
-
- save_mktempdir_umask=`umask`
- umask 0077
- $MKDIR "$my_tmpdir"
- umask $save_mktempdir_umask
- fi
-
- # If we're not in dry-run mode, bomb out on failure
- test -d "$my_tmpdir" || \
- func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
- fi
-
- $ECHO "$my_tmpdir"
-}
-
-
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
-func_quote_for_eval ()
-{
- case $1 in
- *[\\\`\"\$]*)
- func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
- *)
- func_quote_for_eval_unquoted_result="$1" ;;
- esac
-
- case $func_quote_for_eval_unquoted_result in
- # Double-quote args containing shell metacharacters to delay
- # word splitting, command substitution and and variable
- # expansion for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
- ;;
- *)
- func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
- esac
-}
-
-
-# func_quote_for_expand arg
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
- case $1 in
- *[\\\`\"]*)
- my_arg=`$ECHO "$1" | $SED \
- -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
- *)
- my_arg="$1" ;;
- esac
-
- case $my_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting and command substitution for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- my_arg="\"$my_arg\""
- ;;
- esac
-
- func_quote_for_expand_result="$my_arg"
-}
-
-
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$my_cmd"
- my_status=$?
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it. Use the saved locale for evaluation.
-func_show_eval_locale ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$lt_user_locale
- $my_cmd"
- my_status=$?
- eval "$lt_safe_locale"
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-# func_tr_sh
-# Turn $1 into a string suitable for a shell variable name.
-# Result is stored in $func_tr_sh_result. All characters
-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-# if $1 begins with a digit, a '_' is prepended as well.
-func_tr_sh ()
-{
- case $1 in
- [0-9]* | *[!a-zA-Z0-9_]*)
- func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
- ;;
- * )
- func_tr_sh_result=$1
- ;;
- esac
-}
-
-
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
- $opt_debug
-
- $SED -n '/(C)/!b go
- :more
- /\./!{
- N
- s/\n# / /
- b more
- }
- :go
- /^# '$PROGRAM' (GNU /,/# warranty; / {
- s/^# //
- s/^# *$//
- s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
- p
- }' < "$progpath"
- exit $?
-}
-
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
-{
- $opt_debug
-
- $SED -n '/^# Usage:/,/^# *.*--help/ {
- s/^# //
- s/^# *$//
- s/\$progname/'$progname'/
- p
- }' < "$progpath"
- echo
- $ECHO "run \`$progname --help | more' for full usage"
- exit $?
-}
-
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
-func_help ()
-{
- $opt_debug
-
- $SED -n '/^# Usage:/,/# Report bugs to/ {
- :print
- s/^# //
- s/^# *$//
- s*\$progname*'$progname'*
- s*\$host*'"$host"'*
- s*\$SHELL*'"$SHELL"'*
- s*\$LTCC*'"$LTCC"'*
- s*\$LTCFLAGS*'"$LTCFLAGS"'*
- s*\$LD*'"$LD"'*
- s/\$with_gnu_ld/'"$with_gnu_ld"'/
- s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
- s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
- p
- d
- }
- /^# .* home page:/b print
- /^# General help using/b print
- ' < "$progpath"
- ret=$?
- if test -z "$1"; then
- exit $ret
- fi
-}
-
-# func_missing_arg argname
-# Echo program name prefixed message to standard error and set global
-# exit_cmd.
-func_missing_arg ()
-{
- $opt_debug
-
- func_error "missing argument for $1."
- exit_cmd=exit
-}
-
-
-# func_split_short_opt shortopt
-# Set func_split_short_opt_name and func_split_short_opt_arg shell
-# variables after splitting SHORTOPT after the 2nd character.
-func_split_short_opt ()
-{
- my_sed_short_opt='1s/^\(..\).*$/\1/;q'
- my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
-
- func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
- func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-} # func_split_short_opt may be replaced by extended shell implementation
-
-
-# func_split_long_opt longopt
-# Set func_split_long_opt_name and func_split_long_opt_arg shell
-# variables after splitting LONGOPT at the `=' sign.
-func_split_long_opt ()
-{
- my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
- my_sed_long_arg='1s/^--[^=]*=//'
-
- func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
- func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-} # func_split_long_opt may be replaced by extended shell implementation
-
-exit_cmd=:
-
-
-
-
-
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
-
-# Global variables.
-nonopt=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end. This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "${1}=\$${1}\${2}"
-} # func_append may be replaced by extended shell implementation
-
-# func_append_quoted var value
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-func_append_quoted ()
-{
- func_quote_for_eval "${2}"
- eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-} # func_append_quoted may be replaced by extended shell implementation
-
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=`expr "${@}"`
-} # func_arith may be replaced by extended shell implementation
-
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-} # func_len may be replaced by extended shell implementation
-
-
-# func_lo2o object
-func_lo2o ()
-{
- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-} # func_lo2o may be replaced by extended shell implementation
-
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-} # func_xform may be replaced by extended shell implementation
-
-
-# func_fatal_configuration arg...
-# Echo program name prefixed message to standard error, followed by
-# a configuration failure hint, and exit.
-func_fatal_configuration ()
-{
- func_error ${1+"$@"}
- func_error "See the $PACKAGE documentation for more information."
- func_fatal_error "Fatal configuration error."
-}
-
-
-# func_config
-# Display the configuration for all the tags in this script.
-func_config ()
-{
- re_begincf='^# ### BEGIN LIBTOOL'
- re_endcf='^# ### END LIBTOOL'
-
- # Default configuration.
- $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
-
- # Now print the configurations for the tags.
- for tagname in $taglist; do
- $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
- done
-
- exit $?
-}
-
-# func_features
-# Display the features supported by this script.
-func_features ()
-{
- echo "host: $host"
- if test "$build_libtool_libs" = yes; then
- echo "enable shared libraries"
- else
- echo "disable shared libraries"
- fi
- if test "$build_old_libs" = yes; then
- echo "enable static libraries"
- else
- echo "disable static libraries"
- fi
-
- exit $?
-}
-
-# func_enable_tag tagname
-# Verify that TAGNAME is valid, and either flag an error and exit, or
-# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
-# variable here.
-func_enable_tag ()
-{
- # Global variable:
- tagname="$1"
-
- re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
- re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
- sed_extractcf="/$re_begincf/,/$re_endcf/p"
-
- # Validate tagname.
- case $tagname in
- *[!-_A-Za-z0-9,/]*)
- func_fatal_error "invalid tag name: $tagname"
- ;;
- esac
-
- # Don't test for the "default" C tag, as we know it's
- # there but not specially marked.
- case $tagname in
- CC) ;;
- *)
- if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
- taglist="$taglist $tagname"
-
- # Evaluate the configuration. Be careful to quote the path
- # and the sed script, to avoid splitting on whitespace, but
- # also don't use non-portable quotes within backquotes within
- # quotes we have to do it in 2 steps:
- extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
- eval "$extractedcf"
- else
- func_error "ignoring unknown tag $tagname"
- fi
- ;;
- esac
-}
-
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
- if test "$package_revision" != "$macro_revision"; then
- if test "$VERSION" != "$macro_version"; then
- if test -z "$macro_version"; then
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- fi
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
- fi
-
- exit $EXIT_MISMATCH
- fi
-}
-
-
-# Shorthand for --mode=foo, only valid as the first argument
-case $1 in
-clean|clea|cle|cl)
- shift; set dummy --mode clean ${1+"$@"}; shift
- ;;
-compile|compil|compi|comp|com|co|c)
- shift; set dummy --mode compile ${1+"$@"}; shift
- ;;
-execute|execut|execu|exec|exe|ex|e)
- shift; set dummy --mode execute ${1+"$@"}; shift
- ;;
-finish|finis|fini|fin|fi|f)
- shift; set dummy --mode finish ${1+"$@"}; shift
- ;;
-install|instal|insta|inst|ins|in|i)
- shift; set dummy --mode install ${1+"$@"}; shift
- ;;
-link|lin|li|l)
- shift; set dummy --mode link ${1+"$@"}; shift
- ;;
-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
- shift; set dummy --mode uninstall ${1+"$@"}; shift
- ;;
-esac
-
-
-
-# Option defaults:
-opt_debug=:
-opt_dry_run=false
-opt_config=false
-opt_preserve_dup_deps=false
-opt_features=false
-opt_finish=false
-opt_help=false
-opt_help_all=false
-opt_silent=:
-opt_warning=:
-opt_verbose=:
-opt_silent=false
-opt_verbose=false
-
-
-# Parse options once, thoroughly. This comes as soon as possible in the
-# script to make things like `--version' happen as quickly as we can.
-{
- # this just eases exit handling
- while test $# -gt 0; do
- opt="$1"
- shift
- case $opt in
- --debug|-x) opt_debug='set -x'
- func_echo "enabling shell trace mode"
- $opt_debug
- ;;
- --dry-run|--dryrun|-n)
- opt_dry_run=:
- ;;
- --config)
- opt_config=:
-func_config
- ;;
- --dlopen|-dlopen)
- optarg="$1"
- opt_dlopen="${opt_dlopen+$opt_dlopen
-}$optarg"
- shift
- ;;
- --preserve-dup-deps)
- opt_preserve_dup_deps=:
- ;;
- --features)
- opt_features=:
-func_features
- ;;
- --finish)
- opt_finish=:
-set dummy --mode finish ${1+"$@"}; shift
- ;;
- --help)
- opt_help=:
- ;;
- --help-all)
- opt_help_all=:
-opt_help=': help-all'
- ;;
- --mode)
- test $# = 0 && func_missing_arg $opt && break
- optarg="$1"
- opt_mode="$optarg"
-case $optarg in
- # Valid mode arguments:
- clean|compile|execute|finish|install|link|relink|uninstall) ;;
-
- # Catch anything else as an error
- *) func_error "invalid argument for $opt"
- exit_cmd=exit
- break
- ;;
-esac
- shift
- ;;
- --no-silent|--no-quiet)
- opt_silent=false
-func_append preserve_args " $opt"
- ;;
- --no-warning|--no-warn)
- opt_warning=false
-func_append preserve_args " $opt"
- ;;
- --no-verbose)
- opt_verbose=false
-func_append preserve_args " $opt"
- ;;
- --silent|--quiet)
- opt_silent=:
-func_append preserve_args " $opt"
- opt_verbose=false
- ;;
- --verbose|-v)
- opt_verbose=:
-func_append preserve_args " $opt"
-opt_silent=false
- ;;
- --tag)
- test $# = 0 && func_missing_arg $opt && break
- optarg="$1"
- opt_tag="$optarg"
-func_append preserve_args " $opt $optarg"
-func_enable_tag "$optarg"
- shift
- ;;
-
- -\?|-h) func_usage ;;
- --help) func_help ;;
- --version) func_version ;;
-
- # Separate optargs to long options:
- --*=*)
- func_split_long_opt "$opt"
- set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
- shift
- ;;
-
- # Separate non-argument short options:
- -\?*|-h*|-n*|-v*)
- func_split_short_opt "$opt"
- set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
- shift
- ;;
-
- --) break ;;
- -*) func_fatal_help "unrecognized option \`$opt'" ;;
- *) set dummy "$opt" ${1+"$@"}; shift; break ;;
- esac
- done
-
- # Validate options:
-
- # save first non-option argument
- if test "$#" -gt 0; then
- nonopt="$opt"
- shift
- fi
-
- # preserve --debug
- test "$opt_debug" = : || func_append preserve_args " --debug"
-
- case $host in
- *cygwin* | *mingw* | *pw32* | *cegcc*)
- # don't eliminate duplications in $postdeps and $predeps
- opt_duplicate_compiler_generated_deps=:
- ;;
- *)
- opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
- ;;
- esac
-
- $opt_help || {
- # Sanity checks first:
- func_check_version_match
-
- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
- func_fatal_configuration "not configured to build any kind of library"
- fi
-
- # Darwin sucks
- eval std_shrext=\"$shrext_cmds\"
-
- # Only execute mode is allowed to have -dlopen flags.
- if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
- func_error "unrecognized option \`-dlopen'"
- $ECHO "$help" 1>&2
- exit $EXIT_FAILURE
- fi
-
- # Change the help message to a mode-specific one.
- generic_help="$help"
- help="Try \`$progname --help --mode=$opt_mode' for more information."
- }
-
-
- # Bail if the options were screwed
- $exit_cmd $EXIT_FAILURE
-}
-
-
-
-
-## ----------- ##
-## Main. ##
-## ----------- ##
-
-# func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_lalib_p ()
-{
- test -f "$1" &&
- $SED -e 4q "$1" 2>/dev/null \
- | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
-}
-
-# func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function implements the same check as func_lalib_p without
-# resorting to external programs. To this end, it redirects stdin and
-# closes it afterwards, without saving the original file descriptor.
-# As a safety measure, use it only where a negative result would be
-# fatal anyway. Works if `file' does not exist.
-func_lalib_unsafe_p ()
-{
- lalib_p=no
- if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
- for lalib_p_l in 1 2 3 4
- do
- read lalib_p_line
- case "$lalib_p_line" in
- \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
- esac
- done
- exec 0<&5 5<&-
- fi
- test "$lalib_p" = yes
-}
-
-# func_ltwrapper_script_p file
-# True iff FILE is a libtool wrapper script
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_script_p ()
-{
- func_lalib_p "$1"
-}
-
-# func_ltwrapper_executable_p file
-# True iff FILE is a libtool wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_executable_p ()
-{
- func_ltwrapper_exec_suffix=
- case $1 in
- *.exe) ;;
- *) func_ltwrapper_exec_suffix=.exe ;;
- esac
- $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
-}
-
-# func_ltwrapper_scriptname file
-# Assumes file is an ltwrapper_executable
-# uses $file to determine the appropriate filename for a
-# temporary ltwrapper_script.
-func_ltwrapper_scriptname ()
-{
- func_dirname_and_basename "$1" "" "."
- func_stripname '' '.exe' "$func_basename_result"
- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-}
-
-# func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script or wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_p ()
-{
- func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
-}
-
-
-# func_execute_cmds commands fail_cmd
-# Execute tilde-delimited COMMANDS.
-# If FAIL_CMD is given, eval that upon failure.
-# FAIL_CMD may read-access the current command in variable CMD!
-func_execute_cmds ()
-{
- $opt_debug
- save_ifs=$IFS; IFS='~'
- for cmd in $1; do
- IFS=$save_ifs
- eval cmd=\"$cmd\"
- func_show_eval "$cmd" "${2-:}"
- done
- IFS=$save_ifs
-}
-
-
-# func_source file
-# Source FILE, adding directory component if necessary.
-# Note that it is not necessary on cygwin/mingw to append a dot to
-# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
-# behavior happens only for exec(3), not for open(2)! Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
-func_source ()
-{
- $opt_debug
- case $1 in
- */* | *\\*) . "$1" ;;
- *) . "./$1" ;;
- esac
-}
-
-
-# func_resolve_sysroot PATH
-# Replace a leading = in PATH with a sysroot. Store the result into
-# func_resolve_sysroot_result
-func_resolve_sysroot ()
-{
- func_resolve_sysroot_result=$1
- case $func_resolve_sysroot_result in
- =*)
- func_stripname '=' '' "$func_resolve_sysroot_result"
- func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
- ;;
- esac
-}
-
-# func_replace_sysroot PATH
-# If PATH begins with the sysroot, replace it with = and
-# store the result into func_replace_sysroot_result.
-func_replace_sysroot ()
-{
- case "$lt_sysroot:$1" in
- ?*:"$lt_sysroot"*)
- func_stripname "$lt_sysroot" '' "$1"
- func_replace_sysroot_result="=$func_stripname_result"
- ;;
- *)
- # Including no sysroot.
- func_replace_sysroot_result=$1
- ;;
- esac
-}
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
- $opt_debug
- if test -n "$available_tags" && test -z "$tagname"; then
- CC_quoted=
- for arg in $CC; do
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case $@ in
- # Blanks in the command may have been stripped by the calling shell,
- # but not from the CC environment variable when configure was run.
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
- # Blanks at the start of $base_compile will cause this to fail
- # if we don't check for them as well.
- *)
- for z in $available_tags; do
- if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
- CC_quoted=
- for arg in $CC; do
- # Double-quote args containing other shell metacharacters.
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case "$@ " in
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
- # The compiler in the base compile command matches
- # the one in the tagged configuration.
- # Assume this is the tagged configuration we want.
- tagname=$z
- break
- ;;
- esac
- fi
- done
- # If $tagname still isn't set, then no tagged configuration
- # was found and let the user know that the "--tag" command
- # line option must be used.
- if test -z "$tagname"; then
- func_echo "unable to infer tagged configuration"
- func_fatal_error "specify a tag with \`--tag'"
-# else
-# func_verbose "using $tagname tagged configuration"
- fi
- ;;
- esac
- fi
-}
-
-
-
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
-{
- write_libobj=${1}
- if test "$build_libtool_libs" = yes; then
- write_lobj=\'${2}\'
- else
- write_lobj=none
- fi
-
- if test "$build_old_libs" = yes; then
- write_oldobj=\'${3}\'
- else
- write_oldobj=none
- fi
-
- $opt_dry_run || {
- cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object=$write_lobj
-
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
-
-EOF
- $MV "${write_libobj}T" "${write_libobj}"
- }
-}
-
-
-##################################################
-# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
-##################################################
-
-# func_convert_core_file_wine_to_w32 ARG
-# Helper function used by file name conversion functions when $build is *nix,
-# and $host is mingw, cygwin, or some other w32 environment. Relies on a
-# correctly configured wine environment available, with the winepath program
-# in $build's $PATH.
-#
-# ARG is the $build file name to be converted to w32 format.
-# Result is available in $func_convert_core_file_wine_to_w32_result, and will
-# be empty on error (or when ARG is empty)
-func_convert_core_file_wine_to_w32 ()
-{
- $opt_debug
- func_convert_core_file_wine_to_w32_result="$1"
- if test -n "$1"; then
- # Unfortunately, winepath does not exit with a non-zero error code, so we
- # are forced to check the contents of stdout. On the other hand, if the
- # command is not found, the shell will set an exit code of 127 and print
- # *an error message* to stdout. So we must check for both error code of
- # zero AND non-empty stdout, which explains the odd construction:
- func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
- if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
- func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
- $SED -e "$lt_sed_naive_backslashify"`
- else
- func_convert_core_file_wine_to_w32_result=
- fi
- fi
-}
-# end: func_convert_core_file_wine_to_w32
-
-
-# func_convert_core_path_wine_to_w32 ARG
-# Helper function used by path conversion functions when $build is *nix, and
-# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
-# configured wine environment available, with the winepath program in $build's
-# $PATH. Assumes ARG has no leading or trailing path separator characters.
-#
-# ARG is path to be converted from $build format to win32.
-# Result is available in $func_convert_core_path_wine_to_w32_result.
-# Unconvertible file (directory) names in ARG are skipped; if no directory names
-# are convertible, then the result may be empty.
-func_convert_core_path_wine_to_w32 ()
-{
- $opt_debug
- # unfortunately, winepath doesn't convert paths, only file names
- func_convert_core_path_wine_to_w32_result=""
- if test -n "$1"; then
- oldIFS=$IFS
- IFS=:
- for func_convert_core_path_wine_to_w32_f in $1; do
- IFS=$oldIFS
- func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
- if test -n "$func_convert_core_file_wine_to_w32_result" ; then
- if test -z "$func_convert_core_path_wine_to_w32_result"; then
- func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
- else
- func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
- fi
- fi
- done
- IFS=$oldIFS
- fi
-}
-# end: func_convert_core_path_wine_to_w32
-
-
-# func_cygpath ARGS...
-# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
-# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
-# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
-# (2), returns the Cygwin file name or path in func_cygpath_result (input
-# file name or path is assumed to be in w32 format, as previously converted
-# from $build's *nix or MSYS format). In case (3), returns the w32 file name
-# or path in func_cygpath_result (input file name or path is assumed to be in
-# Cygwin format). Returns an empty string on error.
-#
-# ARGS are passed to cygpath, with the last one being the file name or path to
-# be converted.
-#
-# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
-# environment variable; do not put it in $PATH.
-func_cygpath ()
-{
- $opt_debug
- if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
- func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
- if test "$?" -ne 0; then
- # on failure, ensure result is empty
- func_cygpath_result=
- fi
- else
- func_cygpath_result=
- func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
- fi
-}
-#end: func_cygpath
-
-
-# func_convert_core_msys_to_w32 ARG
-# Convert file name or path ARG from MSYS format to w32 format. Return
-# result in func_convert_core_msys_to_w32_result.
-func_convert_core_msys_to_w32 ()
-{
- $opt_debug
- # awkward: cmd appends spaces to result
- func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-}
-#end: func_convert_core_msys_to_w32
-
-
-# func_convert_file_check ARG1 ARG2
-# Verify that ARG1 (a file name in $build format) was converted to $host
-# format in ARG2. Otherwise, emit an error message, but continue (resetting
-# func_to_host_file_result to ARG1).
-func_convert_file_check ()
-{
- $opt_debug
- if test -z "$2" && test -n "$1" ; then
- func_error "Could not determine host file name corresponding to"
- func_error " \`$1'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback:
- func_to_host_file_result="$1"
- fi
-}
-# end func_convert_file_check
-
-
-# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
-# Verify that FROM_PATH (a path in $build format) was converted to $host
-# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
-# func_to_host_file_result to a simplistic fallback value (see below).
-func_convert_path_check ()
-{
- $opt_debug
- if test -z "$4" && test -n "$3"; then
- func_error "Could not determine the host path corresponding to"
- func_error " \`$3'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback. This is a deliberately simplistic "conversion" and
- # should not be "improved". See libtool.info.
- if test "x$1" != "x$2"; then
- lt_replace_pathsep_chars="s|$1|$2|g"
- func_to_host_path_result=`echo "$3" |
- $SED -e "$lt_replace_pathsep_chars"`
- else
- func_to_host_path_result="$3"
- fi
- fi
-}
-# end func_convert_path_check
-
-
-# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
-# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
-# and appending REPL if ORIG matches BACKPAT.
-func_convert_path_front_back_pathsep ()
-{
- $opt_debug
- case $4 in
- $1 ) func_to_host_path_result="$3$func_to_host_path_result"
- ;;
- esac
- case $4 in
- $2 ) func_append func_to_host_path_result "$3"
- ;;
- esac
-}
-# end func_convert_path_front_back_pathsep
-
-
-##################################################
-# $build to $host FILE NAME CONVERSION FUNCTIONS #
-##################################################
-# invoked via `$to_host_file_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# Result will be available in $func_to_host_file_result.
-
-
-# func_to_host_file ARG
-# Converts the file name ARG from $build format to $host format. Return result
-# in func_to_host_file_result.
-func_to_host_file ()
-{
- $opt_debug
- $to_host_file_cmd "$1"
-}
-# end func_to_host_file
-
-
-# func_to_tool_file ARG LAZY
-# converts the file name ARG from $build format to toolchain format. Return
-# result in func_to_tool_file_result. If the conversion in use is listed
-# in (the comma separated) LAZY, no conversion takes place.
-func_to_tool_file ()
-{
- $opt_debug
- case ,$2, in
- *,"$to_tool_file_cmd",*)
- func_to_tool_file_result=$1
- ;;
- *)
- $to_tool_file_cmd "$1"
- func_to_tool_file_result=$func_to_host_file_result
- ;;
- esac
-}
-# end func_to_tool_file
-
-
-# func_convert_file_noop ARG
-# Copy ARG to func_to_host_file_result.
-func_convert_file_noop ()
-{
- func_to_host_file_result="$1"
-}
-# end func_convert_file_noop
-
-
-# func_convert_file_msys_to_w32 ARG
-# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_file_result.
-func_convert_file_msys_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_to_host_file_result="$func_convert_core_msys_to_w32_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_w32
-
-
-# func_convert_file_cygwin_to_w32 ARG
-# Convert file name ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_file_cygwin_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
- # LT_CYGPATH in this case.
- func_to_host_file_result=`cygpath -m "$1"`
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_cygwin_to_w32
-
-
-# func_convert_file_nix_to_w32 ARG
-# Convert file name ARG from *nix to w32 format. Requires a wine environment
-# and a working winepath. Returns result in func_to_host_file_result.
-func_convert_file_nix_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_file_wine_to_w32 "$1"
- func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_w32
-
-
-# func_convert_file_msys_to_cygwin ARG
-# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_file_msys_to_cygwin ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_cygpath -u "$func_convert_core_msys_to_w32_result"
- func_to_host_file_result="$func_cygpath_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_cygwin
-
-
-# func_convert_file_nix_to_cygwin ARG
-# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
-# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
-# in func_to_host_file_result.
-func_convert_file_nix_to_cygwin ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
- func_convert_core_file_wine_to_w32 "$1"
- func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
- func_to_host_file_result="$func_cygpath_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_cygwin
-
-
-#############################################
-# $build to $host PATH CONVERSION FUNCTIONS #
-#############################################
-# invoked via `$to_host_path_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# The result will be available in $func_to_host_path_result.
-#
-# Path separators are also converted from $build format to $host format. If
-# ARG begins or ends with a path separator character, it is preserved (but
-# converted to $host format) on output.
-#
-# All path conversion functions are named using the following convention:
-# file name conversion function : func_convert_file_X_to_Y ()
-# path conversion function : func_convert_path_X_to_Y ()
-# where, for any given $build/$host combination the 'X_to_Y' value is the
-# same. If conversion functions are added for new $build/$host combinations,
-# the two new functions must follow this pattern, or func_init_to_host_path_cmd
-# will break.
-
-
-# func_init_to_host_path_cmd
-# Ensures that function "pointer" variable $to_host_path_cmd is set to the
-# appropriate value, based on the value of $to_host_file_cmd.
-to_host_path_cmd=
-func_init_to_host_path_cmd ()
-{
- $opt_debug
- if test -z "$to_host_path_cmd"; then
- func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
- to_host_path_cmd="func_convert_path_${func_stripname_result}"
- fi
-}
-
-
-# func_to_host_path ARG
-# Converts the path ARG from $build format to $host format. Return result
-# in func_to_host_path_result.
-func_to_host_path ()
-{
- $opt_debug
- func_init_to_host_path_cmd
- $to_host_path_cmd "$1"
-}
-# end func_to_host_path
-
-
-# func_convert_path_noop ARG
-# Copy ARG to func_to_host_path_result.
-func_convert_path_noop ()
-{
- func_to_host_path_result="$1"
-}
-# end func_convert_path_noop
-
-
-# func_convert_path_msys_to_w32 ARG
-# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_path_result.
-func_convert_path_msys_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from ARG. MSYS
- # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
- # and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result="$func_convert_core_msys_to_w32_result"
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_msys_to_w32
-
-
-# func_convert_path_cygwin_to_w32 ARG
-# Convert path ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_path_cygwin_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_cygwin_to_w32
-
-
-# func_convert_path_nix_to_w32 ARG
-# Convert path ARG from *nix to w32 format. Requires a wine environment and
-# a working winepath. Returns result in func_to_host_file_result.
-func_convert_path_nix_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_nix_to_w32
-
-
-# func_convert_path_msys_to_cygwin ARG
-# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_path_msys_to_cygwin ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
- func_to_host_path_result="$func_cygpath_result"
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_msys_to_cygwin
-
-
-# func_convert_path_nix_to_cygwin ARG
-# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
-# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
-# func_to_host_file_result.
-func_convert_path_nix_to_cygwin ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from
- # ARG. msys behavior is inconsistent here, cygpath turns them
- # into '.;' and ';.', and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
- func_to_host_path_result="$func_cygpath_result"
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_nix_to_cygwin
-
-
-# func_mode_compile arg...
-func_mode_compile ()
-{
- $opt_debug
- # Get the compilation command and the source file.
- base_compile=
- srcfile="$nonopt" # always keep a non-empty value in "srcfile"
- suppress_opt=yes
- suppress_output=
- arg_mode=normal
- libobj=
- later=
- pie_flag=
-
- for arg
- do
- case $arg_mode in
- arg )
- # do not "continue". Instead, add this to base_compile
- lastarg="$arg"
- arg_mode=normal
- ;;
-
- target )
- libobj="$arg"
- arg_mode=normal
- continue
- ;;
-
- normal )
- # Accept any command-line options.
- case $arg in
- -o)
- test -n "$libobj" && \
- func_fatal_error "you cannot specify \`-o' more than once"
- arg_mode=target
- continue
- ;;
-
- -pie | -fpie | -fPIE)
- func_append pie_flag " $arg"
- continue
- ;;
-
- -shared | -static | -prefer-pic | -prefer-non-pic)
- func_append later " $arg"
- continue
- ;;
-
- -no-suppress)
- suppress_opt=no
- continue
- ;;
-
- -Xcompiler)
- arg_mode=arg # the next one goes into the "base_compile" arg list
- continue # The current "srcfile" will either be retained or
- ;; # replaced later. I would guess that would be a bug.
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- lastarg=
- save_ifs="$IFS"; IFS=','
- for arg in $args; do
- IFS="$save_ifs"
- func_append_quoted lastarg "$arg"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$lastarg"
- lastarg=$func_stripname_result
-
- # Add the arguments to base_compile.
- func_append base_compile " $lastarg"
- continue
- ;;
-
- *)
- # Accept the current argument as the source file.
- # The previous "srcfile" becomes the current argument.
- #
- lastarg="$srcfile"
- srcfile="$arg"
- ;;
- esac # case $arg
- ;;
- esac # case $arg_mode
-
- # Aesthetically quote the previous argument.
- func_append_quoted base_compile "$lastarg"
- done # for arg
-
- case $arg_mode in
- arg)
- func_fatal_error "you must specify an argument for -Xcompile"
- ;;
- target)
- func_fatal_error "you must specify a target with \`-o'"
- ;;
- *)
- # Get the name of the library object.
- test -z "$libobj" && {
- func_basename "$srcfile"
- libobj="$func_basename_result"
- }
- ;;
- esac
-
- # Recognize several different file suffixes.
- # If the user specifies -o file.o, it is replaced with file.lo
- case $libobj in
- *.[cCFSifmso] | \
- *.ada | *.adb | *.ads | *.asm | \
- *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
- *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
- func_xform "$libobj"
- libobj=$func_xform_result
- ;;
- esac
-
- case $libobj in
- *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
- *)
- func_fatal_error "cannot determine name of library object from \`$libobj'"
- ;;
- esac
-
- func_infer_tag $base_compile
-
- for arg in $later; do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- continue
- ;;
-
- -static)
- build_libtool_libs=no
- build_old_libs=yes
- continue
- ;;
-
- -prefer-pic)
- pic_mode=yes
- continue
- ;;
-
- -prefer-non-pic)
- pic_mode=no
- continue
- ;;
- esac
- done
-
- func_quote_for_eval "$libobj"
- test "X$libobj" != "X$func_quote_for_eval_result" \
- && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
- && func_warning "libobj name \`$libobj' may not contain shell special characters."
- func_dirname_and_basename "$obj" "/" ""
- objname="$func_basename_result"
- xdir="$func_dirname_result"
- lobj=${xdir}$objdir/$objname
-
- test -z "$base_compile" && \
- func_fatal_help "you must specify a compilation command"
-
- # Delete any leftover library objects.
- if test "$build_old_libs" = yes; then
- removelist="$obj $lobj $libobj ${libobj}T"
- else
- removelist="$lobj $libobj ${libobj}T"
- fi
-
- # On Cygwin there's no "real" PIC flag so we must build both object types
- case $host_os in
- cygwin* | mingw* | pw32* | os2* | cegcc*)
- pic_mode=default
- ;;
- esac
- if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
- # non-PIC code in shared libraries is not supported
- pic_mode=default
- fi
-
- # Calculate the filename of the output object if compiler does
- # not support -o with -c
- if test "$compiler_c_o" = no; then
- output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
- lockfile="$output_obj.lock"
- else
- output_obj=
- need_locks=no
- lockfile=
- fi
-
- # Lock this critical section if it is needed
- # We use this script file to make the link, it avoids creating a new file
- if test "$need_locks" = yes; then
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- elif test "$need_locks" = warn; then
- if test -f "$lockfile"; then
- $ECHO "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
- func_append removelist " $output_obj"
- $ECHO "$srcfile" > "$lockfile"
- fi
-
- $opt_dry_run || $RM $removelist
- func_append removelist " $lockfile"
- trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
-
- func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
- srcfile=$func_to_tool_file_result
- func_quote_for_eval "$srcfile"
- qsrcfile=$func_quote_for_eval_result
-
- # Only build a PIC object if we are building libtool libraries.
- if test "$build_libtool_libs" = yes; then
- # Without this assignment, base_compile gets emptied.
- fbsd_hideous_sh_bug=$base_compile
-
- if test "$pic_mode" != no; then
- command="$base_compile $qsrcfile $pic_flag"
- else
- # Don't build PIC code
- command="$base_compile $qsrcfile"
- fi
-
- func_mkdir_p "$xdir$objdir"
-
- if test -z "$output_obj"; then
- # Place PIC objects in $objdir
- func_append command " -o $lobj"
- fi
-
- func_show_eval_locale "$command" \
- 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed, then go on to compile the next one
- if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
- func_show_eval '$MV "$output_obj" "$lobj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
-
- # Allow error messages only from the first compilation.
- if test "$suppress_opt" = yes; then
- suppress_output=' >/dev/null 2>&1'
- fi
- fi
-
- # Only build a position-dependent object if we build old libraries.
- if test "$build_old_libs" = yes; then
- if test "$pic_mode" != yes; then
- # Don't build PIC code
- command="$base_compile $qsrcfile$pie_flag"
- else
- command="$base_compile $qsrcfile $pic_flag"
- fi
- if test "$compiler_c_o" = yes; then
- func_append command " -o $obj"
- fi
-
- # Suppress compiler output if we already did a PIC compilation.
- func_append command "$suppress_output"
- func_show_eval_locale "$command" \
- '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed
- if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
- func_show_eval '$MV "$output_obj" "$obj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
- fi
-
- $opt_dry_run || {
- func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
-
- # Unlock the critical section if it was locked
- if test "$need_locks" != no; then
- removelist=$lockfile
- $RM "$lockfile"
- fi
- }
-
- exit $EXIT_SUCCESS
-}
-
-$opt_help || {
- test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
-}
-
-func_mode_help ()
-{
- # We need to display help for each of the modes.
- case $opt_mode in
- "")
- # Generic help is extracted from the usage comments
- # at the start of this file.
- func_help
- ;;
-
- clean)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
- ;;
-
- compile)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
- -o OUTPUT-FILE set the output file name to OUTPUT-FILE
- -no-suppress do not suppress compiler output for multiple passes
- -prefer-pic try to build PIC objects only
- -prefer-non-pic try to build non-PIC objects only
- -shared do not build a \`.o' file suitable for static linking
- -static only build a \`.o' file suitable for static linking
- -Wc,FLAG pass FLAG directly to the compiler
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
- ;;
-
- execute)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
- -dlopen FILE add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
- ;;
-
- finish)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges. Use
-the \`--dry-run' option if you just want to see what would be executed."
- ;;
-
- install)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command. The first component should be
-either the \`install' or \`cp' program.
-
-The following components of INSTALL-COMMAND are treated specially:
-
- -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
- ;;
-
- link)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
- -all-static do not do any dynamic linking at all
- -avoid-version do not add a version suffix if possible
- -bindir BINDIR specify path to binaries directory (for systems where
- libraries must be found in the PATH setting at runtime)
- -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
- -export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
- -export-symbols-regex REGEX
- try to export only the symbols matching REGEX
- -LLIBDIR search LIBDIR for required installed libraries
- -lNAME OUTPUT-FILE requires the installed library libNAME
- -module build a library that can dlopened
- -no-fast-install disable the fast-install mode
- -no-install link a not-installable executable
- -no-undefined declare that a library does not refer to external symbols
- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -objectlist FILE Use a list of object files found in FILE to specify objects
- -precious-files-regex REGEX
- don't remove output files matching REGEX
- -release RELEASE specify package release information
- -rpath LIBDIR the created library will eventually be installed in LIBDIR
- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -shared only do dynamic linking of libtool libraries
- -shrext SUFFIX override the standard shared library file extension
- -static do not do any dynamic linking of uninstalled libtool libraries
- -static-libtool-libs
- do not do any dynamic linking of libtool libraries
- -version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
- -weak LIBNAME declare that the target provides the LIBNAME interface
- -Wc,FLAG
- -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
- -Wl,FLAG
- -Xlinker FLAG pass linker-specific FLAG directly to the linker
- -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename. Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
- ;;
-
- uninstall)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
- ;;
-
- *)
- func_fatal_help "invalid operation mode \`$opt_mode'"
- ;;
- esac
-
- echo
- $ECHO "Try \`$progname --help' for more information about other modes."
-}
-
-# Now that we've collected a possible --mode arg, show help if necessary
-if $opt_help; then
- if test "$opt_help" = :; then
- func_mode_help
- else
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- func_mode_help
- done
- } | sed -n '1p; 2,$s/^Usage:/ or: /p'
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- echo
- func_mode_help
- done
- } |
- sed '1d
- /^When reporting/,/^Report/{
- H
- d
- }
- $x
- /information about other modes/d
- /more detailed .*MODE/d
- s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
- fi
- exit $?
-fi
-
-
-# func_mode_execute arg...
-func_mode_execute ()
-{
- $opt_debug
- # The first argument is the command name.
- cmd="$nonopt"
- test -z "$cmd" && \
- func_fatal_help "you must specify a COMMAND"
-
- # Handle -dlopen flags immediately.
- for file in $opt_dlopen; do
- test -f "$file" \
- || func_fatal_help "\`$file' is not a file"
-
- dir=
- case $file in
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$lib' is not a valid libtool archive"
-
- # Read the libtool library.
- dlname=
- library_names=
- func_source "$file"
-
- # Skip this library if it cannot be dlopened.
- if test -z "$dlname"; then
- # Warn if it was a shared library.
- test -n "$library_names" && \
- func_warning "\`$file' was not linked with \`-export-dynamic'"
- continue
- fi
-
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
-
- if test -f "$dir/$objdir/$dlname"; then
- func_append dir "/$objdir"
- else
- if test ! -f "$dir/$dlname"; then
- func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
- fi
- fi
- ;;
-
- *.lo)
- # Just add the directory containing the .lo file.
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- ;;
-
- *)
- func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
- continue
- ;;
- esac
-
- # Get the absolute pathname.
- absdir=`cd "$dir" && pwd`
- test -n "$absdir" && dir="$absdir"
-
- # Now add the directory to shlibpath_var.
- if eval "test -z \"\$$shlibpath_var\""; then
- eval "$shlibpath_var=\"\$dir\""
- else
- eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
- fi
- done
-
- # This variable tells wrapper scripts just to set shlibpath_var
- # rather than running their programs.
- libtool_execute_magic="$magic"
-
- # Check if any of the arguments is a wrapper script.
- args=
- for file
- do
- case $file in
- -* | *.la | *.lo ) ;;
- *)
- # Do a test to see if this is really a libtool program.
- if func_ltwrapper_script_p "$file"; then
- func_source "$file"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- elif func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- func_source "$func_ltwrapper_scriptname_result"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- fi
- ;;
- esac
- # Quote arguments (to preserve shell metacharacters).
- func_append_quoted args "$file"
- done
-
- if test "X$opt_dry_run" = Xfalse; then
- if test -n "$shlibpath_var"; then
- # Export the shlibpath_var.
- eval "export $shlibpath_var"
- fi
-
- # Restore saved environment variables
- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
- do
- eval "if test \"\${save_$lt_var+set}\" = set; then
- $lt_var=\$save_$lt_var; export $lt_var
- else
- $lt_unset $lt_var
- fi"
- done
-
- # Now prepare to actually exec the command.
- exec_cmd="\$cmd$args"
- else
- # Display what would be done.
- if test -n "$shlibpath_var"; then
- eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
- echo "export $shlibpath_var"
- fi
- $ECHO "$cmd$args"
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
-
-
-# func_mode_finish arg...
-func_mode_finish ()
-{
- $opt_debug
- libs=
- libdirs=
- admincmds=
-
- for opt in "$nonopt" ${1+"$@"}
- do
- if test -d "$opt"; then
- func_append libdirs " $opt"
-
- elif test -f "$opt"; then
- if func_lalib_unsafe_p "$opt"; then
- func_append libs " $opt"
- else
- func_warning "\`$opt' is not a valid libtool archive"
- fi
-
- else
- func_fatal_error "invalid argument \`$opt'"
- fi
- done
-
- if test -n "$libs"; then
- if test -n "$lt_sysroot"; then
- sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
- sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
- else
- sysroot_cmd=
- fi
-
- # Remove sysroot references
- if $opt_dry_run; then
- for lib in $libs; do
- echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
- done
- else
- tmpdir=`func_mktempdir`
- for lib in $libs; do
- sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
- > $tmpdir/tmp-la
- mv -f $tmpdir/tmp-la $lib
- done
- ${RM}r "$tmpdir"
- fi
- fi
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
- func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
-'"$cmd"'"'
- fi
- if test -n "$finish_eval"; then
- # Do the single finish_eval.
- eval cmds=\"$finish_eval\"
- $opt_dry_run || eval "$cmds" || func_append admincmds "
- $cmds"
- fi
- done
- fi
-
- # Exit here if they wanted silent mode.
- $opt_silent && exit $EXIT_SUCCESS
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- echo "----------------------------------------------------------------------"
- echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- $ECHO " $libdir"
- done
- echo
- echo "If you ever happen to want to link against installed libraries"
- echo "in a given directory, LIBDIR, you must either use libtool, and"
- echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
- echo "flag during linking and do at least one of the following:"
- if test -n "$shlibpath_var"; then
- echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
- echo " during execution"
- fi
- if test -n "$runpath_var"; then
- echo " - add LIBDIR to the \`$runpath_var' environment variable"
- echo " during linking"
- fi
- if test -n "$hardcode_libdir_flag_spec"; then
- libdir=LIBDIR
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- $ECHO " - use the \`$flag' linker flag"
- fi
- if test -n "$admincmds"; then
- $ECHO " - have your system administrator run these commands:$admincmds"
- fi
- if test -f /etc/ld.so.conf; then
- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
- fi
- echo
-
- echo "See any operating system documentation about shared libraries for"
- case $host in
- solaris2.[6789]|solaris2.1[0-9])
- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
- echo "pages."
- ;;
- *)
- echo "more information, such as the ld(1) and ld.so(8) manual pages."
- ;;
- esac
- echo "----------------------------------------------------------------------"
- fi
- exit $EXIT_SUCCESS
-}
-
-test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
-
-
-# func_mode_install arg...
-func_mode_install ()
-{
- $opt_debug
- # There may be an optional sh(1) argument at the beginning of
- # install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
- # Allow the use of GNU shtool's install command.
- case $nonopt in *shtool*) :;; *) false;; esac; then
- # Aesthetically quote it.
- func_quote_for_eval "$nonopt"
- install_prog="$func_quote_for_eval_result "
- arg=$1
- shift
- else
- install_prog=
- arg=$nonopt
- fi
-
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- func_quote_for_eval "$arg"
- func_append install_prog "$func_quote_for_eval_result"
- install_shared_prog=$install_prog
- case " $install_prog " in
- *[\\\ /]cp\ *) install_cp=: ;;
- *) install_cp=false ;;
- esac
-
- # We need to accept at least all the BSD install flags.
- dest=
- files=
- opts=
- prev=
- install_type=
- isdir=no
- stripme=
- no_mode=:
- for arg
- do
- arg2=
- if test -n "$dest"; then
- func_append files " $dest"
- dest=$arg
- continue
- fi
-
- case $arg in
- -d) isdir=yes ;;
- -f)
- if $install_cp; then :; else
- prev=$arg
- fi
- ;;
- -g | -m | -o)
- prev=$arg
- ;;
- -s)
- stripme=" -s"
- continue
- ;;
- -*)
- ;;
- *)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- if test "x$prev" = x-m && test -n "$install_override_mode"; then
- arg2=$install_override_mode
- no_mode=false
- fi
- prev=
- else
- dest=$arg
- continue
- fi
- ;;
- esac
-
- # Aesthetically quote the argument.
- func_quote_for_eval "$arg"
- func_append install_prog " $func_quote_for_eval_result"
- if test -n "$arg2"; then
- func_quote_for_eval "$arg2"
- fi
- func_append install_shared_prog " $func_quote_for_eval_result"
- done
-
- test -z "$install_prog" && \
- func_fatal_help "you must specify an install program"
-
- test -n "$prev" && \
- func_fatal_help "the \`$prev' option requires an argument"
-
- if test -n "$install_override_mode" && $no_mode; then
- if $install_cp; then :; else
- func_quote_for_eval "$install_override_mode"
- func_append install_shared_prog " -m $func_quote_for_eval_result"
- fi
- fi
-
- if test -z "$files"; then
- if test -z "$dest"; then
- func_fatal_help "no file or destination specified"
- else
- func_fatal_help "you must specify a destination"
- fi
- fi
-
- # Strip any trailing slash from the destination.
- func_stripname '' '/' "$dest"
- dest=$func_stripname_result
-
- # Check to see that the destination is a directory.
- test -d "$dest" && isdir=yes
- if test "$isdir" = yes; then
- destdir="$dest"
- destname=
- else
- func_dirname_and_basename "$dest" "" "."
- destdir="$func_dirname_result"
- destname="$func_basename_result"
-
- # Not a directory, so check to see that there is only one file specified.
- set dummy $files; shift
- test "$#" -gt 1 && \
- func_fatal_help "\`$dest' is not a directory"
- fi
- case $destdir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- for file in $files; do
- case $file in
- *.lo) ;;
- *)
- func_fatal_help "\`$destdir' must be an absolute directory name"
- ;;
- esac
- done
- ;;
- esac
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- staticlibs=
- future_libdirs=
- current_libdirs=
- for file in $files; do
-
- # Do each installation.
- case $file in
- *.$libext)
- # Do the static libraries later.
- func_append staticlibs " $file"
- ;;
-
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$file' is not a valid libtool archive"
-
- library_names=
- old_library=
- relink_command=
- func_source "$file"
-
- # Add the libdir to current_libdirs if it is the destination.
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
- *) func_append current_libdirs " $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
- *) func_append future_libdirs " $libdir" ;;
- esac
- fi
-
- func_dirname "$file" "/" ""
- dir="$func_dirname_result"
- func_append dir "$objdir"
-
- if test -n "$relink_command"; then
- # Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-
- # Don't allow the user to place us outside of our expected
- # location b/c this prevents finding dependent libraries that
- # are installed to the same prefix.
- # At present, this check doesn't affect windows .dll's that
- # are installed into $libdir/../bin (currently, that works fine)
- # but it's something to keep an eye on.
- test "$inst_prefix_dir" = "$destdir" && \
- func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
-
- if test -n "$inst_prefix_dir"; then
- # Stick the inst_prefix_dir data into the link command.
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
- else
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
- fi
-
- func_warning "relinking \`$file'"
- func_show_eval "$relink_command" \
- 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
- fi
-
- # See the names of the shared library.
- set dummy $library_names; shift
- if test -n "$1"; then
- realname="$1"
- shift
-
- srcname="$realname"
- test -n "$relink_command" && srcname="$realname"T
-
- # Install the shared library and build the symlinks.
- func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
- 'exit $?'
- tstripme="$stripme"
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- case $realname in
- *.dll.a)
- tstripme=""
- ;;
- esac
- ;;
- esac
- if test -n "$tstripme" && test -n "$striplib"; then
- func_show_eval "$striplib $destdir/$realname" 'exit $?'
- fi
-
- if test "$#" -gt 0; then
- # Delete the old symlinks, and create new ones.
- # Try `ln -sf' first, because the `ln' binary might depend on
- # the symlink we replace! Solaris /bin/ln does not understand -f,
- # so we also need to try rm && ln -s.
- for linkname
- do
- test "$linkname" != "$realname" \
- && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
- done
- fi
-
- # Do each command in the postinstall commands.
- lib="$destdir/$realname"
- func_execute_cmds "$postinstall_cmds" 'exit $?'
- fi
-
- # Install the pseudo-library for information purposes.
- func_basename "$file"
- name="$func_basename_result"
- instname="$dir/$name"i
- func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-
- # Maybe install the static library, too.
- test -n "$old_library" && func_append staticlibs " $dir/$old_library"
- ;;
-
- *.lo)
- # Install (i.e. copy) a libtool object.
-
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # Deduce the name of the destination old-style object file.
- case $destfile in
- *.lo)
- func_lo2o "$destfile"
- staticdest=$func_lo2o_result
- ;;
- *.$objext)
- staticdest="$destfile"
- destfile=
- ;;
- *)
- func_fatal_help "cannot copy a libtool object to \`$destfile'"
- ;;
- esac
-
- # Install the libtool object if requested.
- test -n "$destfile" && \
- func_show_eval "$install_prog $file $destfile" 'exit $?'
-
- # Install the old object if enabled.
- if test "$build_old_libs" = yes; then
- # Deduce the name of the old-style object file.
- func_lo2o "$file"
- staticobj=$func_lo2o_result
- func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
- fi
- exit $EXIT_SUCCESS
- ;;
-
- *)
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # If the file is missing, and there is a .exe on the end, strip it
- # because it is most likely a libtool script we actually want to
- # install
- stripped_ext=""
- case $file in
- *.exe)
- if test ! -f "$file"; then
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- stripped_ext=".exe"
- fi
- ;;
- esac
-
- # Do a test to see if this is really a libtool program.
- case $host in
- *cygwin* | *mingw*)
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- wrapper=$func_ltwrapper_scriptname_result
- else
- func_stripname '' '.exe' "$file"
- wrapper=$func_stripname_result
- fi
- ;;
- *)
- wrapper=$file
- ;;
- esac
- if func_ltwrapper_script_p "$wrapper"; then
- notinst_deplibs=
- relink_command=
-
- func_source "$wrapper"
-
- # Check the variables that should have been set.
- test -z "$generated_by_libtool_version" && \
- func_fatal_error "invalid libtool wrapper script \`$wrapper'"
-
- finalize=yes
- for lib in $notinst_deplibs; do
- # Check to see that each library is installed.
- libdir=
- if test -f "$lib"; then
- func_source "$lib"
- fi
- libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
- if test -n "$libdir" && test ! -f "$libfile"; then
- func_warning "\`$lib' has not been installed in \`$libdir'"
- finalize=no
- fi
- done
-
- relink_command=
- func_source "$wrapper"
-
- outputname=
- if test "$fast_install" = no && test -n "$relink_command"; then
- $opt_dry_run || {
- if test "$finalize" = yes; then
- tmpdir=`func_mktempdir`
- func_basename "$file$stripped_ext"
- file="$func_basename_result"
- outputname="$tmpdir/$file"
- # Replace the output file specification.
- relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
-
- $opt_silent || {
- func_quote_for_expand "$relink_command"
- eval "func_echo $func_quote_for_expand_result"
- }
- if eval "$relink_command"; then :
- else
- func_error "error: relink \`$file' with the above command before installing it"
- $opt_dry_run || ${RM}r "$tmpdir"
- continue
- fi
- file="$outputname"
- else
- func_warning "cannot relink \`$file'"
- fi
- }
- else
- # Install the binary that we compiled earlier.
- file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
- fi
- fi
-
- # remove .exe since cygwin /usr/bin/install will append another
- # one anyway
- case $install_prog,$host in
- */usr/bin/install*,*cygwin*)
- case $file:$destfile in
- *.exe:*.exe)
- # this is ok
- ;;
- *.exe:*)
- destfile=$destfile.exe
- ;;
- *:*.exe)
- func_stripname '' '.exe' "$destfile"
- destfile=$func_stripname_result
- ;;
- esac
- ;;
- esac
- func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
- $opt_dry_run || if test -n "$outputname"; then
- ${RM}r "$tmpdir"
- fi
- ;;
- esac
- done
-
- for file in $staticlibs; do
- func_basename "$file"
- name="$func_basename_result"
-
- # Set up the ranlib parameters.
- oldlib="$destdir/$name"
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
-
- func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
-
- if test -n "$stripme" && test -n "$old_striplib"; then
- func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
- fi
-
- # Do each command in the postinstall commands.
- func_execute_cmds "$old_postinstall_cmds" 'exit $?'
- done
-
- test -n "$future_libdirs" && \
- func_warning "remember to run \`$progname --finish$future_libdirs'"
-
- if test -n "$current_libdirs"; then
- # Maybe just do a dry run.
- $opt_dry_run && current_libdirs=" -n$current_libdirs"
- exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
- else
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$opt_mode" = install && func_mode_install ${1+"$@"}
-
-
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
-{
- $opt_debug
- my_outputname="$1"
- my_originator="$2"
- my_pic_p="${3-no}"
- my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
- my_dlsyms=
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- if test -n "$NM" && test -n "$global_symbol_pipe"; then
- my_dlsyms="${my_outputname}S.c"
- else
- func_error "not configured to extract global symbols from dlpreopened files"
- fi
- fi
-
- if test -n "$my_dlsyms"; then
- case $my_dlsyms in
- "") ;;
- *.c)
- # Discover the nlist of each of the dlfiles.
- nlist="$output_objdir/${my_outputname}.nm"
-
- func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-
- # Parse the name list into a source file.
- func_verbose "creating $output_objdir/$my_dlsyms"
-
- $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
-#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
-#endif
-
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-/* External symbol declarations for the compiler. */\
-"
-
- if test "$dlself" = yes; then
- func_verbose "generating symbol list for \`$output'"
-
- $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
-
- # Add our own program objects to the symbol list.
- progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- for progfile in $progfiles; do
- func_to_tool_file "$progfile" func_convert_file_msys_to_w32
- func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
- $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $opt_dry_run || {
- eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- if test -n "$export_symbols_regex"; then
- $opt_dry_run || {
- eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- export_symbols="$output_objdir/$outputname.exp"
- $opt_dry_run || {
- $RM $export_symbols
- eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- else
- $opt_dry_run || {
- eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
- eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- fi
- fi
-
- for dlprefile in $dlprefiles; do
- func_verbose "extracting global C symbols from \`$dlprefile'"
- func_basename "$dlprefile"
- name="$func_basename_result"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- # if an import library, we need to obtain dlname
- if func_win32_import_lib_p "$dlprefile"; then
- func_tr_sh "$dlprefile"
- eval "curr_lafile=\$libfile_$func_tr_sh_result"
- dlprefile_dlbasename=""
- if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
- # Use subshell, to avoid clobbering current variable values
- dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
- if test -n "$dlprefile_dlname" ; then
- func_basename "$dlprefile_dlname"
- dlprefile_dlbasename="$func_basename_result"
- else
- # no lafile. user explicitly requested -dlpreopen <import library>.
- $sharedlib_from_linklib_cmd "$dlprefile"
- dlprefile_dlbasename=$sharedlib_from_linklib_result
- fi
- fi
- $opt_dry_run || {
- if test -n "$dlprefile_dlbasename" ; then
- eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
- else
- func_warning "Could not compute DLL name from $name"
- eval '$ECHO ": $name " >> "$nlist"'
- fi
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
- $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
- }
- else # not an import lib
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- fi
- ;;
- *)
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- ;;
- esac
- done
-
- $opt_dry_run || {
- # Make sure we have at least an empty file.
- test -f "$nlist" || : > "$nlist"
-
- if test -n "$exclude_expsyms"; then
- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
- $MV "$nlist"T "$nlist"
- fi
-
- # Try sorting and uniquifying the output.
- if $GREP -v "^: " < "$nlist" |
- if sort -k 3 </dev/null >/dev/null 2>&1; then
- sort -k 3
- else
- sort +2
- fi |
- uniq > "$nlist"S; then
- :
- else
- $GREP -v "^: " < "$nlist" > "$nlist"S
- fi
-
- if test -f "$nlist"S; then
- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
- else
- echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
- fi
-
- echo >> "$output_objdir/$my_dlsyms" "\
-
-/* The mapping between symbol names and symbols. */
-typedef struct {
- const char *name;
- void *address;
-} lt_dlsymlist;
-extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
-LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
- { \"$my_originator\", (void *) 0 },"
-
- case $need_lib_prefix in
- no)
- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- *)
- eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- esac
- echo >> "$output_objdir/$my_dlsyms" "\
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
- } # !$opt_dry_run
-
- pic_flag_for_symtable=
- case "$compile_command " in
- *" -static "*) ;;
- *)
- case $host in
- # compiling the symbol table file with pic_flag works around
- # a FreeBSD bug that causes programs to crash when -lm is
- # linked before any other PIC object. But we must not use
- # pic_flag when linking with -static. The problem exists in
- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
- *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
- pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
- *-*-hpux*)
- pic_flag_for_symtable=" $pic_flag" ;;
- *)
- if test "X$my_pic_p" != Xno; then
- pic_flag_for_symtable=" $pic_flag"
- fi
- ;;
- esac
- ;;
- esac
- symtab_cflags=
- for arg in $LTCFLAGS; do
- case $arg in
- -pie | -fpie | -fPIE) ;;
- *) func_append symtab_cflags " $arg" ;;
- esac
- done
-
- # Now compile the dynamic symbol file.
- func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
-
- # Clean up the generated files.
- func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
-
- # Transform the symbol file into the correct name.
- symfileobj="$output_objdir/${my_outputname}S.$objext"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- if test -f "$output_objdir/$my_outputname.def"; then
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- else
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- fi
- ;;
- *)
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- ;;
- esac
- ;;
- *)
- func_fatal_error "unknown suffix for \`$my_dlsyms'"
- ;;
- esac
- else
- # We keep going just in case the user didn't refer to
- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
- # really was required.
-
- # Nullify the symbol file.
- compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
- fi
-}
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-# Despite the name, also deal with 64 bit binaries.
-func_win32_libid ()
-{
- $opt_debug
- win32_libid_type="unknown"
- win32_fileres=`file -L $1 2>/dev/null`
- case $win32_fileres in
- *ar\ archive\ import\ library*) # definitely import
- win32_libid_type="x86 archive import"
- ;;
- *ar\ archive*) # could be an import, or static
- # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
- $SED -n -e '
- 1,100{
- / I /{
- s,.*,import,
- p
- q
- }
- }'`
- case $win32_nmres in
- import*) win32_libid_type="x86 archive import";;
- *) win32_libid_type="x86 archive static";;
- esac
- fi
- ;;
- *DLL*)
- win32_libid_type="x86 DLL"
- ;;
- *executable*) # but shell scripts are "executable" too...
- case $win32_fileres in
- *MS\ Windows\ PE\ Intel*)
- win32_libid_type="x86 DLL"
- ;;
- esac
- ;;
- esac
- $ECHO "$win32_libid_type"
-}
-
-# func_cygming_dll_for_implib ARG
-#
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib ()
-{
- $opt_debug
- sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
-}
-
-# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
-#
-# The is the core of a fallback implementation of a
-# platform-specific function to extract the name of the
-# DLL associated with the specified import library LIBNAME.
-#
-# SECTION_NAME is either .idata$6 or .idata$7, depending
-# on the platform and compiler that created the implib.
-#
-# Echos the name of the DLL associated with the
-# specified import library.
-func_cygming_dll_for_implib_fallback_core ()
-{
- $opt_debug
- match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
- $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
- $SED '/^Contents of section '"$match_literal"':/{
- # Place marker at beginning of archive member dllname section
- s/.*/====MARK====/
- p
- d
- }
- # These lines can sometimes be longer than 43 characters, but
- # are always uninteresting
- /:[ ]*file format pe[i]\{,1\}-/d
- /^In archive [^:]*:/d
- # Ensure marker is printed
- /^====MARK====/p
- # Remove all lines with less than 43 characters
- /^.\{43\}/!d
- # From remaining lines, remove first 43 characters
- s/^.\{43\}//' |
- $SED -n '
- # Join marker and all lines until next marker into a single line
- /^====MARK====/ b para
- H
- $ b para
- b
- :para
- x
- s/\n//g
- # Remove the marker
- s/^====MARK====//
- # Remove trailing dots and whitespace
- s/[\. \t]*$//
- # Print
- /./p' |
- # we now have a list, one entry per line, of the stringified
- # contents of the appropriate section of all members of the
- # archive which possess that section. Heuristic: eliminate
- # all those which have a first or second character that is
- # a '.' (that is, objdump's representation of an unprintable
- # character.) This should work for all archives with less than
- # 0x302f exports -- but will fail for DLLs whose name actually
- # begins with a literal '.' or a single character followed by
- # a '.'.
- #
- # Of those that remain, print the first one.
- $SED -e '/^\./d;/^.\./d;q'
-}
-
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
- $opt_debug
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
- test -n "$func_cygming_gnu_implib_tmp"
-}
-
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
- $opt_debug
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
- test -n "$func_cygming_ms_implib_tmp"
-}
-
-# func_cygming_dll_for_implib_fallback ARG
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-#
-# This fallback implementation is for use when $DLLTOOL
-# does not support the --identify-strict option.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib_fallback ()
-{
- $opt_debug
- if func_cygming_gnu_implib_p "$1" ; then
- # binutils import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
- elif func_cygming_ms_implib_p "$1" ; then
- # ms-generated import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
- else
- # unknown
- sharedlib_from_linklib_result=""
- fi
-}
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
- $opt_debug
- f_ex_an_ar_dir="$1"; shift
- f_ex_an_ar_oldlib="$1"
- if test "$lock_old_archive_extraction" = yes; then
- lockfile=$f_ex_an_ar_oldlib.lock
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- fi
- func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
- 'stat=$?; rm -f "$lockfile"; exit $stat'
- if test "$lock_old_archive_extraction" = yes; then
- $opt_dry_run || rm -f "$lockfile"
- fi
- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
- fi
-}
-
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
- $opt_debug
- my_gentop="$1"; shift
- my_oldlibs=${1+"$@"}
- my_oldobjs=""
- my_xlib=""
- my_xabs=""
- my_xdir=""
-
- for my_xlib in $my_oldlibs; do
- # Extract the objects.
- case $my_xlib in
- [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
- *) my_xabs=`pwd`"/$my_xlib" ;;
- esac
- func_basename "$my_xlib"
- my_xlib="$func_basename_result"
- my_xlib_u=$my_xlib
- while :; do
- case " $extracted_archives " in
- *" $my_xlib_u "*)
- func_arith $extracted_serial + 1
- extracted_serial=$func_arith_result
- my_xlib_u=lt$extracted_serial-$my_xlib ;;
- *) break ;;
- esac
- done
- extracted_archives="$extracted_archives $my_xlib_u"
- my_xdir="$my_gentop/$my_xlib_u"
-
- func_mkdir_p "$my_xdir"
-
- case $host in
- *-darwin*)
- func_verbose "Extracting $my_xabs"
- # Do not bother doing anything if just a dry run
- $opt_dry_run || {
- darwin_orig_dir=`pwd`
- cd $my_xdir || exit $?
- darwin_archive=$my_xabs
- darwin_curdir=`pwd`
- darwin_base_archive=`basename "$darwin_archive"`
- darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
- if test -n "$darwin_arches"; then
- darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
- darwin_arch=
- func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
- for darwin_arch in $darwin_arches ; do
- func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
- cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- func_extract_an_archive "`pwd`" "${darwin_base_archive}"
- cd "$darwin_curdir"
- $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
- done # $darwin_arches
- ## Okay now we've a bunch of thin objects, gotta fatten them up :)
- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
- darwin_file=
- darwin_files=
- for darwin_file in $darwin_filelist; do
- darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
- $LIPO -create -output "$darwin_file" $darwin_files
- done # $darwin_filelist
- $RM -rf unfat-$$
- cd "$darwin_orig_dir"
- else
- cd $darwin_orig_dir
- func_extract_an_archive "$my_xdir" "$my_xabs"
- fi # $darwin_arches
- } # !$opt_dry_run
- ;;
- *)
- func_extract_an_archive "$my_xdir" "$my_xabs"
- ;;
- esac
- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
- done
-
- func_extract_archives_result="$my_oldobjs"
-}
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable. Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take. If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory. This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
- func_emit_wrapper_arg1=${1-no}
-
- $ECHO "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='$sed_quote_subst'
-
-# Be Bourne compatible
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variables:
- generated_by_libtool_version='$macro_version'
- notinst_deplibs='$notinst_deplibs'
-else
- # When we are sourced in execute mode, \$file and \$ECHO are already set.
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- file=\"\$0\""
-
- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
- $ECHO "\
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
- ECHO=\"$qECHO\"
- fi
-
-# Very basic option parsing. These options are (a) specific to
-# the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ which is used only on
-# windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options which match
-# this pattern).
-#
-# There are only two supported options: --lt-debug and
-# --lt-dump-script. There is, deliberately, no --lt-help.
-#
-# The first argument to this parsing function should be the
-# script's $0 value, followed by "$@".
-lt_option_debug=
-func_parse_lt_options ()
-{
- lt_script_arg0=\$0
- shift
- for lt_opt
- do
- case \"\$lt_opt\" in
- --lt-debug) lt_option_debug=1 ;;
- --lt-dump-script)
- lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
- test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
- lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
- cat \"\$lt_dump_D/\$lt_dump_F\"
- exit 0
- ;;
- --lt-*)
- \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
- exit 1
- ;;
- esac
- done
-
- # Print the debug banner immediately:
- if test -n \"\$lt_option_debug\"; then
- echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
- fi
-}
-
-# Used when --lt-debug. Prints its arguments to stdout
-# (redirection is the responsibility of the caller)
-func_lt_dump_args ()
-{
- lt_dump_args_N=1;
- for lt_arg
- do
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
- lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
- done
-}
-
-# Core function for launching the target application
-func_exec_program_core ()
-{
-"
- case $host in
- # Backslashes separate directories on plain windows
- *-*-mingw | *-*-os2* | *-cegcc*)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
- ;;
-
- *)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
- ;;
- esac
- $ECHO "\
- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
- exit 1
-}
-
-# A function to encapsulate launching the target application
-# Strips options in the --lt-* namespace from \$@ and
-# launches target application with the remaining arguments.
-func_exec_program ()
-{
- case \" \$* \" in
- *\\ --lt-*)
- for lt_wr_arg
- do
- case \$lt_wr_arg in
- --lt-*) ;;
- *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
- esac
- shift
- done ;;
- esac
- func_exec_program_core \${1+\"\$@\"}
-}
-
- # Parse options
- func_parse_lt_options \"\$0\" \${1+\"\$@\"}
-
- # Find the directory that this script lives in.
- thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
- test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
- while test -n \"\$file\"; do
- destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
-
- # If there was a directory component, then change thisdir.
- if test \"x\$destdir\" != \"x\$file\"; then
- case \"\$destdir\" in
- [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
- *) thisdir=\"\$thisdir/\$destdir\" ;;
- esac
- fi
-
- file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
- file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
- done
-
- # Usually 'no', except on cygwin/mingw when embedded into
- # the cwrapper.
- WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
- if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
- # special case for '.'
- if test \"\$thisdir\" = \".\"; then
- thisdir=\`pwd\`
- fi
- # remove .libs from thisdir
- case \"\$thisdir\" in
- *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
- $objdir ) thisdir=. ;;
- esac
- fi
-
- # Try to get the absolute directory name.
- absdir=\`cd \"\$thisdir\" && pwd\`
- test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
- if test "$fast_install" = yes; then
- $ECHO "\
- program=lt-'$outputname'$exeext
- progdir=\"\$thisdir/$objdir\"
-
- if test ! -f \"\$progdir/\$program\" ||
- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
- test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
- file=\"\$\$-\$program\"
-
- if test ! -d \"\$progdir\"; then
- $MKDIR \"\$progdir\"
- else
- $RM \"\$progdir/\$file\"
- fi"
-
- $ECHO "\
-
- # relink executable if necessary
- if test -n \"\$relink_command\"; then
- if relink_command_output=\`eval \$relink_command 2>&1\`; then :
- else
- $ECHO \"\$relink_command_output\" >&2
- $RM \"\$progdir/\$file\"
- exit 1
- fi
- fi
-
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
- { $RM \"\$progdir/\$program\";
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
- $RM \"\$progdir/\$file\"
- fi"
- else
- $ECHO "\
- program='$outputname'
- progdir=\"\$thisdir/$objdir\"
-"
- fi
-
- $ECHO "\
-
- if test -f \"\$progdir/\$program\"; then"
-
- # fixup the dll searchpath if we need to.
- #
- # Fix the DLL searchpath if we need to. Do this before prepending
- # to shlibpath, because on Windows, both are PATH and uninstalled
- # libraries must come first.
- if test -n "$dllsearchpath"; then
- $ECHO "\
- # Add the dll search path components to the executable PATH
- PATH=$dllsearchpath:\$PATH
-"
- fi
-
- # Export our shlibpath_var if we have one.
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $ECHO "\
- # Add our own library path to $shlibpath_var
- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
- # Some systems cannot cope with colon-terminated $shlibpath_var
- # The second colon is a workaround for a bug in BeOS R4 sed
- $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
-
- export $shlibpath_var
-"
- fi
-
- $ECHO "\
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- # Run the actual program with our arguments.
- func_exec_program \${1+\"\$@\"}
- fi
- else
- # The program doesn't exist.
- \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
- \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
- \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
- exit 1
- fi
-fi\
-"
-}
-
-
-# func_emit_cwrapperexe_src
-# emit the source code for a wrapper executable on stdout
-# Must ONLY be called from within func_mode_link because
-# it depends on a number of variable set therein.
-func_emit_cwrapperexe_src ()
-{
- cat <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
- Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-
- The $output program cannot be directly executed until all the libtool
- libraries that it depends on are installed.
-
- This wrapper executable should never be moved out of the build directory.
- If it is, it will not operate correctly.
-*/
-EOF
- cat <<"EOF"
-#ifdef _MSC_VER
-# define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef _MSC_VER
-# include <direct.h>
-# include <process.h>
-# include <io.h>
-#else
-# include <unistd.h>
-# include <stdint.h>
-# ifdef __CYGWIN__
-# include <io.h>
-# endif
-#endif
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-/* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
-# ifdef __STRICT_ANSI__
-int _putenv (const char *);
-# endif
-#elif defined(__CYGWIN__)
-# ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-# endif
-/* #elif defined (other platforms) ... */
-#endif
-
-/* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-# define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-# define _INTPTR_T_DEFINED
-# define intptr_t int
-# endif
-#elif defined(__MINGW32__)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-#elif defined(__CYGWIN__)
-# define HAVE_SETENV
-# define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
-#endif
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef S_IXOTH
-# define S_IXOTH 0
-#endif
-#ifndef S_IXGRP
-# define S_IXGRP 0
-#endif
-
-/* path handling portability macros */
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
- defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# define FOPEN_WB "wb"
-# ifndef DIR_SEPARATOR_2
-# define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-# define PATH_SEPARATOR_2 ';'
-# endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
-
-#ifndef FOPEN_WB
-# define FOPEN_WB "w"
-#endif
-#ifndef _O_BINARY
-# define _O_BINARY 0
-#endif
-
-#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
- if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-#if defined(LT_DEBUGWRAPPER)
-static int lt_debug = 1;
-#else
-static int lt_debug = 0;
-#endif
-
-const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
-
-void *xmalloc (size_t num);
-char *xstrdup (const char *string);
-const char *base_name (const char *name);
-char *find_executable (const char *wrapper);
-char *chase_symlinks (const char *pathspec);
-int make_executable (const char *path);
-int check_executable (const char *path);
-char *strendzap (char *str, const char *pat);
-void lt_debugprintf (const char *file, int line, const char *fmt, ...);
-void lt_fatal (const char *file, int line, const char *message, ...);
-static const char *nonnull (const char *s);
-static const char *nonempty (const char *s);
-void lt_setenv (const char *name, const char *value);
-char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_update_exe_path (const char *name, const char *value);
-void lt_update_lib_path (const char *name, const char *value);
-char **prepare_spawn (char **argv);
-void lt_dump_script (FILE *f);
-EOF
-
- cat <<EOF
-volatile const char * MAGIC_EXE = "$magic_exe";
-const char * LIB_PATH_VARNAME = "$shlibpath_var";
-EOF
-
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- func_to_host_path "$temp_rpath"
- cat <<EOF
-const char * LIB_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * LIB_PATH_VALUE = "";
-EOF
- fi
-
- if test -n "$dllsearchpath"; then
- func_to_host_path "$dllsearchpath:"
- cat <<EOF
-const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * EXE_PATH_VARNAME = "";
-const char * EXE_PATH_VALUE = "";
-EOF
- fi
-
- if test "$fast_install" = yes; then
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
-EOF
- else
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
-EOF
- fi
-
-
- cat <<"EOF"
-
-#define LTWRAPPER_OPTION_PREFIX "--lt-"
-
-static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
-static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
-
-int
-main (int argc, char *argv[])
-{
- char **newargz;
- int newargc;
- char *tmp_pathspec;
- char *actual_cwrapper_path;
- char *actual_cwrapper_name;
- char *target_name;
- char *lt_argv_zero;
- intptr_t rval = 127;
-
- int i;
-
- program_name = (char *) xstrdup (base_name (argv[0]));
- newargz = XMALLOC (char *, argc + 1);
-
- /* very simple arg parsing; don't want to rely on getopt
- * also, copy all non cwrapper options to newargz, except
- * argz[0], which is handled differently
- */
- newargc=0;
- for (i = 1; i < argc; i++)
- {
- if (strcmp (argv[i], dumpscript_opt) == 0)
- {
-EOF
- case "$host" in
- *mingw* | *cygwin* )
- # make stdout use "unix" line endings
- echo " setmode(1,_O_BINARY);"
- ;;
- esac
-
- cat <<"EOF"
- lt_dump_script (stdout);
- return 0;
- }
- if (strcmp (argv[i], debug_opt) == 0)
- {
- lt_debug = 1;
- continue;
- }
- if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
- {
- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
- namespace, but it is not one of the ones we know about and
- have already dealt with, above (inluding dump-script), then
- report an error. Otherwise, targets might begin to believe
- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
- namespace. The first time any user complains about this, we'll
- need to make LTWRAPPER_OPTION_PREFIX a configure-time option
- or a configure.ac-settable value.
- */
- lt_fatal (__FILE__, __LINE__,
- "unrecognized %s option: '%s'",
- ltwrapper_option_prefix, argv[i]);
- }
- /* otherwise ... */
- newargz[++newargc] = xstrdup (argv[i]);
- }
- newargz[++newargc] = NULL;
-
-EOF
- cat <<EOF
- /* The GNU banner must be the first non-error debug message */
- lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
-EOF
- cat <<"EOF"
- lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
- lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
-
- tmp_pathspec = find_executable (argv[0]);
- if (tmp_pathspec == NULL)
- lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (before symlink chase) at: %s\n",
- tmp_pathspec);
-
- actual_cwrapper_path = chase_symlinks (tmp_pathspec);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (after symlink chase) at: %s\n",
- actual_cwrapper_path);
- XFREE (tmp_pathspec);
-
- actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
- strendzap (actual_cwrapper_path, actual_cwrapper_name);
-
- /* wrapper name transforms */
- strendzap (actual_cwrapper_name, ".exe");
- tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
- XFREE (actual_cwrapper_name);
- actual_cwrapper_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- /* target_name transforms -- use actual target program name; might have lt- prefix */
- target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
- strendzap (target_name, ".exe");
- tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
- XFREE (target_name);
- target_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- lt_debugprintf (__FILE__, __LINE__,
- "(main) libtool target name: %s\n",
- target_name);
-EOF
-
- cat <<EOF
- newargz[0] =
- XMALLOC (char, (strlen (actual_cwrapper_path) +
- strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
- strcpy (newargz[0], actual_cwrapper_path);
- strcat (newargz[0], "$objdir");
- strcat (newargz[0], "/");
-EOF
-
- cat <<"EOF"
- /* stop here, and copy so we don't have to do this twice */
- tmp_pathspec = xstrdup (newargz[0]);
-
- /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
- strcat (newargz[0], actual_cwrapper_name);
-
- /* DO want the lt- prefix here if it exists, so use target_name */
- lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
- XFREE (tmp_pathspec);
- tmp_pathspec = NULL;
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- {
- char* p;
- while ((p = strchr (newargz[0], '\\')) != NULL)
- {
- *p = '/';
- }
- while ((p = strchr (lt_argv_zero, '\\')) != NULL)
- {
- *p = '/';
- }
- }
-EOF
- ;;
- esac
-
- cat <<"EOF"
- XFREE (target_name);
- XFREE (actual_cwrapper_path);
- XFREE (actual_cwrapper_name);
-
- lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
- lt_setenv ("DUALCASE", "1"); /* for MSK sh */
- /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
- be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
- because on Windows, both *_VARNAMEs are PATH but uninstalled
- libraries must come first. */
- lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-
- lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
- nonnull (lt_argv_zero));
- for (i = 0; i < newargc; i++)
- {
- lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
- i, nonnull (newargz[i]));
- }
-
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- /* execv doesn't actually work on mingw as expected on unix */
- newargz = prepare_spawn (newargz);
- rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
- if (rval == -1)
- {
- /* failed to start process */
- lt_debugprintf (__FILE__, __LINE__,
- "(main) failed to launch target \"%s\": %s\n",
- lt_argv_zero, nonnull (strerror (errno)));
- return 127;
- }
- return rval;
-EOF
- ;;
- *)
- cat <<"EOF"
- execv (lt_argv_zero, newargz);
- return rval; /* =127, but avoids unused variable warning */
-EOF
- ;;
- esac
-
- cat <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
- void *p = (void *) malloc (num);
- if (!p)
- lt_fatal (__FILE__, __LINE__, "memory exhausted");
-
- return p;
-}
-
-char *
-xstrdup (const char *string)
-{
- return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
- string) : NULL;
-}
-
-const char *
-base_name (const char *name)
-{
- const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- /* Skip over the disk name in MSDOS pathnames. */
- if (isalpha ((unsigned char) name[0]) && name[1] == ':')
- name += 2;
-#endif
-
- for (base = name; *name; name++)
- if (IS_DIR_SEPARATOR (*name))
- base = name + 1;
- return base;
-}
-
-int
-check_executable (const char *path)
-{
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if ((stat (path, &st) >= 0)
- && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
- return 1;
- else
- return 0;
-}
-
-int
-make_executable (const char *path)
-{
- int rval = 0;
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if (stat (path, &st) >= 0)
- {
- rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
- }
- return rval;
-}
-
-/* Searches for the full path of the wrapper. Returns
- newly allocated full path name if found, NULL otherwise
- Does not chase symlinks, even on platforms that support them.
-*/
-char *
-find_executable (const char *wrapper)
-{
- int has_slash = 0;
- const char *p;
- const char *p_next;
- /* static buffer for getcwd */
- char tmp[LT_PATHMAX + 1];
- int tmp_len;
- char *concat_name;
-
- lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
- nonempty (wrapper));
-
- if ((wrapper == NULL) || (*wrapper == '\0'))
- return NULL;
-
- /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- else
- {
-#endif
- if (IS_DIR_SEPARATOR (wrapper[0]))
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- }
-#endif
-
- for (p = wrapper; *p; p++)
- if (*p == '/')
- {
- has_slash = 1;
- break;
- }
- if (!has_slash)
- {
- /* no slashes; search PATH */
- const char *path = getenv ("PATH");
- if (path != NULL)
- {
- for (p = path; *p; p = p_next)
- {
- const char *q;
- size_t p_len;
- for (q = p; *q; q++)
- if (IS_PATH_SEPARATOR (*q))
- break;
- p_len = q - p;
- p_next = (*q == '\0' ? q : q + 1);
- if (p_len == 0)
- {
- /* empty path: current directory */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name =
- XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
- }
- else
- {
- concat_name =
- XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, p, p_len);
- concat_name[p_len] = '/';
- strcpy (concat_name + p_len + 1, wrapper);
- }
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- }
- /* not found in PATH; assume curdir */
- }
- /* Relative path | not found in path: prepend cwd */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
-
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- return NULL;
-}
-
-char *
-chase_symlinks (const char *pathspec)
-{
-#ifndef S_ISLNK
- return xstrdup (pathspec);
-#else
- char buf[LT_PATHMAX];
- struct stat s;
- char *tmp_pathspec = xstrdup (pathspec);
- char *p;
- int has_symlinks = 0;
- while (strlen (tmp_pathspec) && !has_symlinks)
- {
- lt_debugprintf (__FILE__, __LINE__,
- "checking path component for symlinks: %s\n",
- tmp_pathspec);
- if (lstat (tmp_pathspec, &s) == 0)
- {
- if (S_ISLNK (s.st_mode) != 0)
- {
- has_symlinks = 1;
- break;
- }
-
- /* search backwards for last DIR_SEPARATOR */
- p = tmp_pathspec + strlen (tmp_pathspec) - 1;
- while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- p--;
- if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- {
- /* no more DIR_SEPARATORS left */
- break;
- }
- *p = '\0';
- }
- else
- {
- lt_fatal (__FILE__, __LINE__,
- "error accessing file \"%s\": %s",
- tmp_pathspec, nonnull (strerror (errno)));
- }
- }
- XFREE (tmp_pathspec);
-
- if (!has_symlinks)
- {
- return xstrdup (pathspec);
- }
-
- tmp_pathspec = realpath (pathspec, buf);
- if (tmp_pathspec == 0)
- {
- lt_fatal (__FILE__, __LINE__,
- "could not follow symlinks for %s", pathspec);
- }
- return xstrdup (tmp_pathspec);
-#endif
-}
-
-char *
-strendzap (char *str, const char *pat)
-{
- size_t len, patlen;
-
- assert (str != NULL);
- assert (pat != NULL);
-
- len = strlen (str);
- patlen = strlen (pat);
-
- if (patlen <= len)
- {
- str += len - patlen;
- if (strcmp (str, pat) == 0)
- *str = '\0';
- }
- return str;
-}
-
-void
-lt_debugprintf (const char *file, int line, const char *fmt, ...)
-{
- va_list args;
- if (lt_debug)
- {
- (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
- va_start (args, fmt);
- (void) vfprintf (stderr, fmt, args);
- va_end (args);
- }
-}
-
-static void
-lt_error_core (int exit_status, const char *file,
- int line, const char *mode,
- const char *message, va_list ap)
-{
- fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
- vfprintf (stderr, message, ap);
- fprintf (stderr, ".\n");
-
- if (exit_status >= 0)
- exit (exit_status);
-}
-
-void
-lt_fatal (const char *file, int line, const char *message, ...)
-{
- va_list ap;
- va_start (ap, message);
- lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
- va_end (ap);
-}
-
-static const char *
-nonnull (const char *s)
-{
- return s ? s : "(null)";
-}
-
-static const char *
-nonempty (const char *s)
-{
- return (s && !*s) ? "(empty)" : nonnull (s);
-}
-
-void
-lt_setenv (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_setenv) setting '%s' to '%s'\n",
- nonnull (name), nonnull (value));
- {
-#ifdef HAVE_SETENV
- /* always make a copy, for consistency with !HAVE_SETENV */
- char *str = xstrdup (value);
- setenv (name, str, 1);
-#else
- int len = strlen (name) + 1 + strlen (value) + 1;
- char *str = XMALLOC (char, len);
- sprintf (str, "%s=%s", name, value);
- if (putenv (str) != EXIT_SUCCESS)
- {
- XFREE (str);
- }
-#endif
- }
-}
-
-char *
-lt_extend_str (const char *orig_value, const char *add, int to_end)
-{
- char *new_value;
- if (orig_value && *orig_value)
- {
- int orig_value_len = strlen (orig_value);
- int add_len = strlen (add);
- new_value = XMALLOC (char, add_len + orig_value_len + 1);
- if (to_end)
- {
- strcpy (new_value, orig_value);
- strcpy (new_value + orig_value_len, add);
- }
- else
- {
- strcpy (new_value, add);
- strcpy (new_value + add_len, orig_value);
- }
- }
- else
- {
- new_value = xstrdup (add);
- }
- return new_value;
-}
-
-void
-lt_update_exe_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- /* some systems can't cope with a ':'-terminated path #' */
- int len = strlen (new_value);
- while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
- {
- new_value[len-1] = '\0';
- }
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-void
-lt_update_lib_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-EOF
- case $host_os in
- mingw*)
- cat <<"EOF"
-
-/* Prepares an argument vector before calling spawn().
- Note that spawn() does not by itself call the command interpreter
- (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
- ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- GetVersionEx(&v);
- v.dwPlatformId == VER_PLATFORM_WIN32_NT;
- }) ? "cmd.exe" : "command.com").
- Instead it simply concatenates the arguments, separated by ' ', and calls
- CreateProcess(). We must quote the arguments since Win32 CreateProcess()
- interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
- special way:
- - Space and tab are interpreted as delimiters. They are not treated as
- delimiters if they are surrounded by double quotes: "...".
- - Unescaped double quotes are removed from the input. Their only effect is
- that within double quotes, space and tab are treated like normal
- characters.
- - Backslashes not followed by double quotes are not special.
- - But 2*n+1 backslashes followed by a double quote become
- n backslashes followed by a double quote (n >= 0):
- \" -> "
- \\\" -> \"
- \\\\\" -> \\"
- */
-#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-char **
-prepare_spawn (char **argv)
-{
- size_t argc;
- char **new_argv;
- size_t i;
-
- /* Count number of arguments. */
- for (argc = 0; argv[argc] != NULL; argc++)
- ;
-
- /* Allocate new argument vector. */
- new_argv = XMALLOC (char *, argc + 1);
-
- /* Put quoted arguments into the new argument vector. */
- for (i = 0; i < argc; i++)
- {
- const char *string = argv[i];
-
- if (string[0] == '\0')
- new_argv[i] = xstrdup ("\"\"");
- else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
- {
- int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
- size_t length;
- unsigned int backslashes;
- const char *s;
- char *quoted_string;
- char *p;
-
- length = 0;
- backslashes = 0;
- if (quote_around)
- length++;
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- length += backslashes + 1;
- length++;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- length += backslashes + 1;
-
- quoted_string = XMALLOC (char, length + 1);
-
- p = quoted_string;
- backslashes = 0;
- if (quote_around)
- *p++ = '"';
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- {
- unsigned int j;
- for (j = backslashes + 1; j > 0; j--)
- *p++ = '\\';
- }
- *p++ = c;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- {
- unsigned int j;
- for (j = backslashes; j > 0; j--)
- *p++ = '\\';
- *p++ = '"';
- }
- *p = '\0';
-
- new_argv[i] = quoted_string;
- }
- else
- new_argv[i] = (char *) string;
- }
- new_argv[argc] = NULL;
-
- return new_argv;
-}
-EOF
- ;;
- esac
-
- cat <<"EOF"
-void lt_dump_script (FILE* f)
-{
-EOF
- func_emit_wrapper yes |
- $SED -n -e '
-s/^\(.\{79\}\)\(..*\)/\1\
-\2/
-h
-s/\([\\"]\)/\\\1/g
-s/$/\\n/
-s/\([^\n]*\).*/ fputs ("\1", f);/p
-g
-D'
- cat <<"EOF"
-}
-EOF
-}
-# end: func_emit_cwrapperexe_src
-
-# func_win32_import_lib_p ARG
-# True if ARG is an import lib, as indicated by $file_magic_cmd
-func_win32_import_lib_p ()
-{
- $opt_debug
- case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
- *import*) : ;;
- *) false ;;
- esac
-}
-
-# func_mode_link arg...
-func_mode_link ()
-{
- $opt_debug
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- # It is impossible to link a dll without this setting, and
- # we shouldn't force the makefile maintainer to figure out
- # which system we are compiling for in order to pass an extra
- # flag for every libtool invocation.
- # allow_undefined=no
-
- # FIXME: Unfortunately, there are problems with the above when trying
- # to make a dll which has undefined symbols, in which case not
- # even a static library is built. For now, we need to specify
- # -no-undefined on the libtool link line when we can be certain
- # that all symbols are satisfied, otherwise we get a static library.
- allow_undefined=yes
- ;;
- *)
- allow_undefined=yes
- ;;
- esac
- libtool_args=$nonopt
- base_compile="$nonopt $@"
- compile_command=$nonopt
- finalize_command=$nonopt
-
- compile_rpath=
- finalize_rpath=
- compile_shlibpath=
- finalize_shlibpath=
- convenience=
- old_convenience=
- deplibs=
- old_deplibs=
- compiler_flags=
- linker_flags=
- dllsearchpath=
- lib_search_path=`pwd`
- inst_prefix_dir=
- new_inherited_linker_flags=
-
- avoid_version=no
- bindir=
- dlfiles=
- dlprefiles=
- dlself=no
- export_dynamic=no
- export_symbols=
- export_symbols_regex=
- generated=
- libobjs=
- ltlibs=
- module=no
- no_install=no
- objs=
- non_pic_objects=
- precious_files_regex=
- prefer_static_libs=no
- preload=no
- prev=
- prevarg=
- release=
- rpath=
- xrpath=
- perm_rpath=
- temp_rpath=
- thread_safe=no
- vinfo=
- vinfo_number=no
- weak_libs=
- single_module="${wl}-single_module"
- func_infer_tag $base_compile
-
- # We need to know -static, to get the right output filenames.
- for arg
- do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- break
- ;;
- -all-static | -static | -static-libtool-libs)
- case $arg in
- -all-static)
- if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
- func_warning "complete static linking is impossible in this configuration"
- fi
- if test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- -static)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=built
- ;;
- -static-libtool-libs)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- esac
- build_libtool_libs=no
- build_old_libs=yes
- break
- ;;
- esac
- done
-
- # See if our shared archives depend on static archives.
- test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
- # Go through the arguments, transforming them on the way.
- while test "$#" -gt 0; do
- arg="$1"
- shift
- func_quote_for_eval "$arg"
- qarg=$func_quote_for_eval_unquoted_result
- func_append libtool_args " $func_quote_for_eval_result"
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case $prev in
- output)
- func_append compile_command " @OUTPUT@"
- func_append finalize_command " @OUTPUT@"
- ;;
- esac
-
- case $prev in
- bindir)
- bindir="$arg"
- prev=
- continue
- ;;
- dlfiles|dlprefiles)
- if test "$preload" = no; then
- # Add the symbol object into the linking commands.
- func_append compile_command " @SYMFILE@"
- func_append finalize_command " @SYMFILE@"
- preload=yes
- fi
- case $arg in
- *.la | *.lo) ;; # We handle these cases below.
- force)
- if test "$dlself" = no; then
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- self)
- if test "$prev" = dlprefiles; then
- dlself=yes
- elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
- dlself=yes
- else
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- *)
- if test "$prev" = dlfiles; then
- func_append dlfiles " $arg"
- else
- func_append dlprefiles " $arg"
- fi
- prev=
- continue
- ;;
- esac
- ;;
- expsyms)
- export_symbols="$arg"
- test -f "$arg" \
- || func_fatal_error "symbol file \`$arg' does not exist"
- prev=
- continue
- ;;
- expsyms_regex)
- export_symbols_regex="$arg"
- prev=
- continue
- ;;
- framework)
- case $host in
- *-*-darwin*)
- case "$deplibs " in
- *" $qarg.ltframework "*) ;;
- *) func_append deplibs " $qarg.ltframework" # this is fixed later
- ;;
- esac
- ;;
- esac
- prev=
- continue
- ;;
- inst_prefix)
- inst_prefix_dir="$arg"
- prev=
- continue
- ;;
- objectlist)
- if test -f "$arg"; then
- save_arg=$arg
- moreargs=
- for fil in `cat "$save_arg"`
- do
-# func_append moreargs " $fil"
- arg=$fil
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- done
- else
- func_fatal_error "link input file \`$arg' does not exist"
- fi
- arg=$save_arg
- prev=
- continue
- ;;
- precious_regex)
- precious_files_regex="$arg"
- prev=
- continue
- ;;
- release)
- release="-$arg"
- prev=
- continue
- ;;
- rpath | xrpath)
- # We need an absolute path.
- case $arg in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- if test "$prev" = rpath; then
- case "$rpath " in
- *" $arg "*) ;;
- *) func_append rpath " $arg" ;;
- esac
- else
- case "$xrpath " in
- *" $arg "*) ;;
- *) func_append xrpath " $arg" ;;
- esac
- fi
- prev=
- continue
- ;;
- shrext)
- shrext_cmds="$arg"
- prev=
- continue
- ;;
- weak)
- func_append weak_libs " $arg"
- prev=
- continue
- ;;
- xcclinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xcompiler)
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xlinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $wl$qarg"
- prev=
- func_append compile_command " $wl$qarg"
- func_append finalize_command " $wl$qarg"
- continue
- ;;
- *)
- eval "$prev=\"\$arg\""
- prev=
- continue
- ;;
- esac
- fi # test -n "$prev"
-
- prevarg="$arg"
-
- case $arg in
- -all-static)
- if test -n "$link_static_flag"; then
- # See comment for -static flag below, for more details.
- func_append compile_command " $link_static_flag"
- func_append finalize_command " $link_static_flag"
- fi
- continue
- ;;
-
- -allow-undefined)
- # FIXME: remove this flag sometime in the future.
- func_fatal_error "\`-allow-undefined' must not be used because it is the default"
- ;;
-
- -avoid-version)
- avoid_version=yes
- continue
- ;;
-
- -bindir)
- prev=bindir
- continue
- ;;
-
- -dlopen)
- prev=dlfiles
- continue
- ;;
-
- -dlpreopen)
- prev=dlprefiles
- continue
- ;;
-
- -export-dynamic)
- export_dynamic=yes
- continue
- ;;
-
- -export-symbols | -export-symbols-regex)
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- func_fatal_error "more than one -exported-symbols argument is not allowed"
- fi
- if test "X$arg" = "X-export-symbols"; then
- prev=expsyms
- else
- prev=expsyms_regex
- fi
- continue
- ;;
-
- -framework)
- prev=framework
- continue
- ;;
-
- -inst-prefix-dir)
- prev=inst_prefix
- continue
- ;;
-
- # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
- # so, if we see these flags be careful not to treat them like -L
- -L[A-Z][A-Z]*:*)
- case $with_gcc/$host in
- no/*-*-irix* | /*-*-irix*)
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- ;;
- esac
- continue
- ;;
-
- -L*)
- func_stripname "-L" '' "$arg"
- if test -z "$func_stripname_result"; then
- if test "$#" -gt 0; then
- func_fatal_error "require no space between \`-L' and \`$1'"
- else
- func_fatal_error "need path for \`-L' option"
- fi
- fi
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- test -z "$absdir" && \
- func_fatal_error "cannot determine absolute directory name of \`$dir'"
- dir="$absdir"
- ;;
- esac
- case "$deplibs " in
- *" -L$dir "* | *" $arg "*)
- # Will only happen for absolute or sysroot arguments
- ;;
- *)
- # Preserve sysroot, but never include relative directories
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
- *) func_append deplibs " -L$dir" ;;
- esac
- func_append lib_search_path " $dir"
- ;;
- esac
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$dir:"*) ;;
- ::) dllsearchpath=$dir;;
- *) func_append dllsearchpath ":$dir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- continue
- ;;
-
- -l*)
- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # These systems don't actually have a C or math library (as such)
- continue
- ;;
- *-*-os2*)
- # These systems don't actually have a C library (as such)
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C and math libraries are in the System framework
- func_append deplibs " System.ltframework"
- continue
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- test "X$arg" = "X-lc" && continue
- ;;
- esac
- elif test "X$arg" = "X-lc_r"; then
- case $host in
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc_r directly, use -pthread flag.
- continue
- ;;
- esac
- fi
- func_append deplibs " $arg"
- continue
- ;;
-
- -module)
- module=yes
- continue
- ;;
-
- # Tru64 UNIX uses -model [arg] to determine the layout of C++
- # classes, name mangling, and exception handling.
- # Darwin uses the -arch flag to determine output architecture.
- -model|-arch|-isysroot|--sysroot)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- prev=xcompiler
- continue
- ;;
-
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- case "$new_inherited_linker_flags " in
- *" $arg "*) ;;
- * ) func_append new_inherited_linker_flags " $arg" ;;
- esac
- continue
- ;;
-
- -multi_module)
- single_module="${wl}-multi_module"
- continue
- ;;
-
- -no-fast-install)
- fast_install=no
- continue
- ;;
-
- -no-install)
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
- # The PATH hackery in wrapper scripts is required on Windows
- # and Darwin in order for the loader to find any dlls it needs.
- func_warning "\`-no-install' is ignored for $host"
- func_warning "assuming \`-no-fast-install' instead"
- fast_install=no
- ;;
- *) no_install=yes ;;
- esac
- continue
- ;;
-
- -no-undefined)
- allow_undefined=no
- continue
- ;;
-
- -objectlist)
- prev=objectlist
- continue
- ;;
-
- -o) prev=output ;;
-
- -precious-files-regex)
- prev=precious_regex
- continue
- ;;
-
- -release)
- prev=release
- continue
- ;;
-
- -rpath)
- prev=rpath
- continue
- ;;
-
- -R)
- prev=xrpath
- continue
- ;;
-
- -R*)
- func_stripname '-R' '' "$arg"
- dir=$func_stripname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- =*)
- func_stripname '=' '' "$dir"
- dir=$lt_sysroot$func_stripname_result
- ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- continue
- ;;
-
- -shared)
- # The effects of -shared are defined in a previous loop.
- continue
- ;;
-
- -shrext)
- prev=shrext
- continue
- ;;
-
- -static | -static-libtool-libs)
- # The effects of -static are defined in a previous loop.
- # We used to do the same as -all-static on platforms that
- # didn't have a PIC flag, but the assumption that the effects
- # would be equivalent was wrong. It would break on at least
- # Digital Unix and AIX.
- continue
- ;;
-
- -thread-safe)
- thread_safe=yes
- continue
- ;;
-
- -version-info)
- prev=vinfo
- continue
- ;;
-
- -version-number)
- prev=vinfo
- vinfo_number=yes
- continue
- ;;
-
- -weak)
- prev=weak
- continue
- ;;
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- func_append arg " $func_quote_for_eval_result"
- func_append compiler_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Wl,*)
- func_stripname '-Wl,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- func_append arg " $wl$func_quote_for_eval_result"
- func_append compiler_flags " $wl$func_quote_for_eval_result"
- func_append linker_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Xcompiler)
- prev=xcompiler
- continue
- ;;
-
- -Xlinker)
- prev=xlinker
- continue
- ;;
-
- -XCClinker)
- prev=xcclinker
- continue
- ;;
-
- # -msg_* for osf cc
- -msg_*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- # Flags to be passed through unchanged, with rationale:
- # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
- # -r[0-9][0-9]* specify processor for the SGI compiler
- # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
- # +DA*, +DD* enable 64-bit mode for the HP compiler
- # -q* compiler args for the IBM compiler
- # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
- # -F/path path to uninstalled frameworks, gcc on darwin
- # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
- # @file GCC response files
- # -tp=* Portland pgcc target processor selection
- # --sysroot=* for sysroot support
- # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- func_append compiler_flags " $arg"
- continue
- ;;
-
- # Some other compiler flag.
- -* | +*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- *.$objext)
- # A standard object.
- func_append objs " $arg"
- ;;
-
- *.lo)
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- ;;
-
- *.$libext)
- # An archive.
- func_append deplibs " $arg"
- func_append old_deplibs " $arg"
- continue
- ;;
-
- *.la)
- # A libtool-controlled library.
-
- func_resolve_sysroot "$arg"
- if test "$prev" = dlfiles; then
- # This library was specified with -dlopen.
- func_append dlfiles " $func_resolve_sysroot_result"
- prev=
- elif test "$prev" = dlprefiles; then
- # The library was specified with -dlpreopen.
- func_append dlprefiles " $func_resolve_sysroot_result"
- prev=
- else
- func_append deplibs " $func_resolve_sysroot_result"
- fi
- continue
- ;;
-
- # Some other compiler argument.
- *)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
- esac # arg
-
- # Now actually substitute the argument into the commands.
- if test -n "$arg"; then
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
- done # argument parsing loop
-
- test -n "$prev" && \
- func_fatal_help "the \`$prevarg' option requires an argument"
-
- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
- eval arg=\"$export_dynamic_flag_spec\"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
-
- oldlibs=
- # calculate the name of the file, without its directory
- func_basename "$output"
- outputname="$func_basename_result"
- libobjs_save="$libobjs"
-
- if test -n "$shlibpath_var"; then
- # get the directories listed in $shlibpath_var
- eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
- else
- shlib_search_path=
- fi
- eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
- func_dirname "$output" "/" ""
- output_objdir="$func_dirname_result$objdir"
- func_to_tool_file "$output_objdir/"
- tool_output_objdir=$func_to_tool_file_result
- # Create the object directory.
- func_mkdir_p "$output_objdir"
-
- # Determine the type of output
- case $output in
- "")
- func_fatal_help "you must specify an output file"
- ;;
- *.$libext) linkmode=oldlib ;;
- *.lo | *.$objext) linkmode=obj ;;
- *.la) linkmode=lib ;;
- *) linkmode=prog ;; # Anything else should be a program.
- esac
-
- specialdeplibs=
-
- libs=
- # Find all interdependent deplibs by searching for libraries
- # that are linked more than once (e.g. -la -lb -la)
- for deplib in $deplibs; do
- if $opt_preserve_dup_deps ; then
- case "$libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append libs " $deplib"
- done
-
- if test "$linkmode" = lib; then
- libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
- # Compute libraries that are listed more than once in $predeps
- # $postdeps and mark them as special (i.e., whose duplicates are
- # not to be eliminated).
- pre_post_deps=
- if $opt_duplicate_compiler_generated_deps; then
- for pre_post_dep in $predeps $postdeps; do
- case "$pre_post_deps " in
- *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
- esac
- func_append pre_post_deps " $pre_post_dep"
- done
- fi
- pre_post_deps=
- fi
-
- deplibs=
- newdependency_libs=
- newlib_search_path=
- need_relink=no # whether we're linking any uninstalled libtool libraries
- notinst_deplibs= # not-installed libtool libraries
- notinst_path= # paths that contain not-installed libtool libraries
-
- case $linkmode in
- lib)
- passes="conv dlpreopen link"
- for file in $dlfiles $dlprefiles; do
- case $file in
- *.la) ;;
- *)
- func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
- ;;
- esac
- done
- ;;
- prog)
- compile_deplibs=
- finalize_deplibs=
- alldeplibs=no
- newdlfiles=
- newdlprefiles=
- passes="conv scan dlopen dlpreopen link"
- ;;
- *) passes="conv"
- ;;
- esac
-
- for pass in $passes; do
- # The preopen pass in lib mode reverses $deplibs; put it back here
- # so that -L comes before libs that need it for instance...
- if test "$linkmode,$pass" = "lib,link"; then
- ## FIXME: Find the place where the list is rebuilt in the wrong
- ## order, and fix it there properly
- tmp_deplibs=
- for deplib in $deplibs; do
- tmp_deplibs="$deplib $tmp_deplibs"
- done
- deplibs="$tmp_deplibs"
- fi
-
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan"; then
- libs="$deplibs"
- deplibs=
- fi
- if test "$linkmode" = prog; then
- case $pass in
- dlopen) libs="$dlfiles" ;;
- dlpreopen) libs="$dlprefiles" ;;
- link)
- libs="$deplibs %DEPLIBS%"
- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
- ;;
- esac
- fi
- if test "$linkmode,$pass" = "lib,dlpreopen"; then
- # Collect and forward deplibs of preopened libtool libs
- for lib in $dlprefiles; do
- # Ignore non-libtool-libs
- dependency_libs=
- func_resolve_sysroot "$lib"
- case $lib in
- *.la) func_source "$func_resolve_sysroot_result" ;;
- esac
-
- # Collect preopened libtool deplibs, except any this library
- # has declared as weak libs
- for deplib in $dependency_libs; do
- func_basename "$deplib"
- deplib_base=$func_basename_result
- case " $weak_libs " in
- *" $deplib_base "*) ;;
- *) func_append deplibs " $deplib" ;;
- esac
- done
- done
- libs="$dlprefiles"
- fi
- if test "$pass" = dlopen; then
- # Collect dlpreopened libraries
- save_deplibs="$deplibs"
- deplibs=
- fi
-
- for deplib in $libs; do
- lib=
- found=no
- case $deplib in
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append compiler_flags " $deplib"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -l*)
- if test "$linkmode" != lib && test "$linkmode" != prog; then
- func_warning "\`-l' is ignored for archives/objects"
- continue
- fi
- func_stripname '-l' '' "$deplib"
- name=$func_stripname_result
- if test "$linkmode" = lib; then
- searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
- else
- searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
- fi
- for searchdir in $searchdirs; do
- for search_ext in .la $std_shrext .so .a; do
- # Search the libtool library
- lib="$searchdir/lib${name}${search_ext}"
- if test -f "$lib"; then
- if test "$search_ext" = ".la"; then
- found=yes
- else
- found=no
- fi
- break 2
- fi
- done
- done
- if test "$found" != yes; then
- # deplib doesn't seem to be a libtool library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- else # deplib is a libtool library
- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
- # We need to do some special things here, and not later.
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $deplib "*)
- if func_lalib_p "$lib"; then
- library_names=
- old_library=
- func_source "$lib"
- for l in $old_library $library_names; do
- ll="$l"
- done
- if test "X$ll" = "X$old_library" ; then # only static version available
- found=no
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
- lib=$ladir/$old_library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- fi
- fi
- ;;
- *) ;;
- esac
- fi
- fi
- ;; # -l
- *.ltframework)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -L*)
- case $linkmode in
- lib)
- deplibs="$deplib $deplibs"
- test "$pass" = conv && continue
- newdependency_libs="$deplib $newdependency_libs"
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- prog)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- if test "$pass" = scan; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- *)
- func_warning "\`-L' is ignored for archives/objects"
- ;;
- esac # linkmode
- continue
- ;; # -L
- -R*)
- if test "$pass" = link; then
- func_stripname '-R' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # Make sure the xrpath contains only unique directories.
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- fi
- deplibs="$deplib $deplibs"
- continue
- ;;
- *.la)
- func_resolve_sysroot "$deplib"
- lib=$func_resolve_sysroot_result
- ;;
- *.$libext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- case $linkmode in
- lib)
- # Linking convenience modules into shared libraries is allowed,
- # but linking other static libraries is non-portable.
- case " $dlpreconveniencelibs " in
- *" $deplib "*) ;;
- *)
- valid_a_lib=no
- case $deplibs_check_method in
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
- | $EGREP "$match_pattern_regex" > /dev/null; then
- valid_a_lib=yes
- fi
- ;;
- pass_all)
- valid_a_lib=yes
- ;;
- esac
- if test "$valid_a_lib" != yes; then
- echo
- $ECHO "*** Warning: Trying to link with static lib archive $deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because the file extensions .$libext of this argument makes me believe"
- echo "*** that it is just a static archive that I should not use here."
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the"
- $ECHO "*** static library $deplib is not portable!"
- deplibs="$deplib $deplibs"
- fi
- ;;
- esac
- continue
- ;;
- prog)
- if test "$pass" != link; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- continue
- ;;
- esac # linkmode
- ;; # *.$libext
- *.lo | *.$objext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- elif test "$linkmode" = prog; then
- if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlopen support or we're linking statically,
- # we need to preload.
- func_append newdlprefiles " $deplib"
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append newdlfiles " $deplib"
- fi
- fi
- continue
- ;;
- %DEPLIBS%)
- alldeplibs=yes
- continue
- ;;
- esac # case $deplib
-
- if test "$found" = yes || test -f "$lib"; then :
- else
- func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
- fi
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$lib" \
- || func_fatal_error "\`$lib' is not a valid libtool archive"
-
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
-
- dlname=
- dlopen=
- dlpreopen=
- libdir=
- library_names=
- old_library=
- inherited_linker_flags=
- # If the library was installed with an old release of libtool,
- # it will not redefine variables installed, or shouldnotlink
- installed=yes
- shouldnotlink=no
- avoidtemprpath=
-
-
- # Read the .la file
- func_source "$lib"
-
- # Convert "-framework foo" to "foo.ltframework"
- if test -n "$inherited_linker_flags"; then
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
- for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
- case " $new_inherited_linker_flags " in
- *" $tmp_inherited_linker_flag "*) ;;
- *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
- esac
- done
- fi
- dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan" ||
- { test "$linkmode" != prog && test "$linkmode" != lib; }; then
- test -n "$dlopen" && func_append dlfiles " $dlopen"
- test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
- fi
-
- if test "$pass" = conv; then
- # Only check for convenience libraries
- deplibs="$lib $deplibs"
- if test -z "$libdir"; then
- if test -z "$old_library"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
- # It is a libtool convenience library, so add in its objects.
- func_append convenience " $ladir/$objdir/$old_library"
- func_append old_convenience " $ladir/$objdir/$old_library"
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done
- elif test "$linkmode" != prog && test "$linkmode" != lib; then
- func_fatal_error "\`$lib' is not a convenience library"
- fi
- continue
- fi # $pass = conv
-
-
- # Get the name of the library we link against.
- linklib=
- if test -n "$old_library" &&
- { test "$prefer_static_libs" = yes ||
- test "$prefer_static_libs,$installed" = "built,no"; }; then
- linklib=$old_library
- else
- for l in $old_library $library_names; do
- linklib="$l"
- done
- fi
- if test -z "$linklib"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
-
- # This library was specified with -dlopen.
- if test "$pass" = dlopen; then
- if test -z "$libdir"; then
- func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
- fi
- if test -z "$dlname" ||
- test "$dlopen_support" != yes ||
- test "$build_libtool_libs" = no; then
- # If there is no dlname, no dlopen support or we're linking
- # statically, we need to preload. We also need to preload any
- # dependent libraries so libltdl's deplib preloader doesn't
- # bomb out in the load deplibs phase.
- func_append dlprefiles " $lib $dependency_libs"
- else
- func_append newdlfiles " $lib"
- fi
- continue
- fi # $pass = dlopen
-
- # We need an absolute path.
- case $ladir in
- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
- *)
- abs_ladir=`cd "$ladir" && pwd`
- if test -z "$abs_ladir"; then
- func_warning "cannot determine absolute directory name of \`$ladir'"
- func_warning "passing it literally to the linker, although it might fail"
- abs_ladir="$ladir"
- fi
- ;;
- esac
- func_basename "$lib"
- laname="$func_basename_result"
-
- # Find the relevant object directory and library name.
- if test "X$installed" = Xyes; then
- if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- func_warning "library \`$lib' was moved."
- dir="$ladir"
- absdir="$abs_ladir"
- libdir="$abs_ladir"
- else
- dir="$lt_sysroot$libdir"
- absdir="$lt_sysroot$libdir"
- fi
- test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
- else
- if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- dir="$ladir"
- absdir="$abs_ladir"
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- else
- dir="$ladir/$objdir"
- absdir="$abs_ladir/$objdir"
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- fi
- fi # $installed = yes
- func_stripname 'lib' '.la' "$laname"
- name=$func_stripname_result
-
- # This library was specified with -dlpreopen.
- if test "$pass" = dlpreopen; then
- if test -z "$libdir" && test "$linkmode" = prog; then
- func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
- fi
- case "$host" in
- # special handling for platforms with PE-DLLs.
- *cygwin* | *mingw* | *cegcc* )
- # Linker will automatically link against shared library if both
- # static and shared are present. Therefore, ensure we extract
- # symbols from the import library if a shared library is present
- # (otherwise, the dlopen module name will be incorrect). We do
- # this by putting the import library name into $newdlprefiles.
- # We recover the dlopen module name by 'saving' the la file
- # name in a special purpose variable, and (later) extracting the
- # dlname from the la file.
- if test -n "$dlname"; then
- func_tr_sh "$dir/$linklib"
- eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
- func_append newdlprefiles " $dir/$linklib"
- else
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- fi
- ;;
- * )
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
- if test -n "$old_library"; then
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- # Otherwise, use the dlname, so that lt_dlopen finds it.
- elif test -n "$dlname"; then
- func_append newdlprefiles " $dir/$dlname"
- else
- func_append newdlprefiles " $dir/$linklib"
- fi
- ;;
- esac
- fi # $pass = dlpreopen
-
- if test -z "$libdir"; then
- # Link the convenience library
- if test "$linkmode" = lib; then
- deplibs="$dir/$old_library $deplibs"
- elif test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$dir/$old_library $compile_deplibs"
- finalize_deplibs="$dir/$old_library $finalize_deplibs"
- else
- deplibs="$lib $deplibs" # used for prog,scan pass
- fi
- continue
- fi
-
-
- if test "$linkmode" = prog && test "$pass" != link; then
- func_append newlib_search_path " $ladir"
- deplibs="$lib $deplibs"
-
- linkalldeplibs=no
- if test "$link_all_deplibs" != no || test -z "$library_names" ||
- test "$build_libtool_libs" = no; then
- linkalldeplibs=yes
- fi
-
- tmp_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- esac
- # Need to link against all dependency_libs?
- if test "$linkalldeplibs" = yes; then
- deplibs="$deplib $deplibs"
- else
- # Need to hardcode shared library paths
- # or/and link against static libraries
- newdependency_libs="$deplib $newdependency_libs"
- fi
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done # for deplib
- continue
- fi # $linkmode = prog...
-
- if test "$linkmode,$pass" = "prog,link"; then
- if test -n "$library_names" &&
- { { test "$prefer_static_libs" = no ||
- test "$prefer_static_libs,$installed" = "built,yes"; } ||
- test -z "$old_library"; }; then
- # We need to hardcode the library path
- if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath:" in
- *"$absdir:"*) ;;
- *) func_append temp_rpath "$absdir:" ;;
- esac
- fi
-
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi # $linkmode,$pass = prog,link...
-
- if test "$alldeplibs" = yes &&
- { test "$deplibs_check_method" = pass_all ||
- { test "$build_libtool_libs" = yes &&
- test -n "$library_names"; }; }; then
- # We only need to search for static libraries
- continue
- fi
- fi
-
- link_static=no # Whether the deplib will be linked statically
- use_static_libs=$prefer_static_libs
- if test "$use_static_libs" = built && test "$installed" = yes; then
- use_static_libs=no
- fi
- if test -n "$library_names" &&
- { test "$use_static_libs" = no || test -z "$old_library"; }; then
- case $host in
- *cygwin* | *mingw* | *cegcc*)
- # No point in relinking DLLs because paths are not encoded
- func_append notinst_deplibs " $lib"
- need_relink=no
- ;;
- *)
- if test "$installed" = no; then
- func_append notinst_deplibs " $lib"
- need_relink=yes
- fi
- ;;
- esac
- # This is a shared library
-
- # Warn about portability, can't link against -module's on some
- # systems (darwin). Don't bleat about dlopened modules though!
- dlopenmodule=""
- for dlpremoduletest in $dlprefiles; do
- if test "X$dlpremoduletest" = "X$lib"; then
- dlopenmodule="$dlpremoduletest"
- break
- fi
- done
- if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
- echo
- if test "$linkmode" = prog; then
- $ECHO "*** Warning: Linking the executable $output against the loadable module"
- else
- $ECHO "*** Warning: Linking the shared library $output against the loadable module"
- fi
- $ECHO "*** $linklib is not portable!"
- fi
- if test "$linkmode" = lib &&
- test "$hardcode_into_libs" = yes; then
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi
-
- if test -n "$old_archive_from_expsyms_cmds"; then
- # figure out the soname
- set dummy $library_names
- shift
- realname="$1"
- shift
- libname=`eval "\\$ECHO \"$libname_spec\""`
- # use dlname if we got it. it's perfectly good, no?
- if test -n "$dlname"; then
- soname="$dlname"
- elif test -n "$soname_spec"; then
- # bleh windows
- case $host in
- *cygwin* | mingw* | *cegcc*)
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
- esac
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
-
- # Make a new name for the extract_expsyms_cmds to use
- soroot="$soname"
- func_basename "$soroot"
- soname="$func_basename_result"
- func_stripname 'lib' '.dll' "$soname"
- newlib=libimp-$func_stripname_result.a
-
- # If the library has no export list, then create one now
- if test -f "$output_objdir/$soname-def"; then :
- else
- func_verbose "extracting exported symbol list from \`$soname'"
- func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
- fi
-
- # Create $newlib
- if test -f "$output_objdir/$newlib"; then :; else
- func_verbose "generating import library for \`$soname'"
- func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
- fi
- # make sure the library variables are pointing to the new library
- dir=$output_objdir
- linklib=$newlib
- fi # test -n "$old_archive_from_expsyms_cmds"
-
- if test "$linkmode" = prog || test "$opt_mode" != relink; then
- add_shlibpath=
- add_dir=
- add=
- lib_linked=yes
- case $hardcode_action in
- immediate | unsupported)
- if test "$hardcode_direct" = no; then
- add="$dir/$linklib"
- case $host in
- *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
- *-*-sysv4*uw2*) add_dir="-L$dir" ;;
- *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
- *-*-unixware7*) add_dir="-L$dir" ;;
- *-*-darwin* )
- # if the lib is a (non-dlopened) module then we can not
- # link against it, someone is ignoring the earlier warnings
- if /usr/bin/file -L $add 2> /dev/null |
- $GREP ": [^:]* bundle" >/dev/null ; then
- if test "X$dlopenmodule" != "X$lib"; then
- $ECHO "*** Warning: lib $linklib is a module, not a shared library"
- if test -z "$old_library" ; then
- echo
- echo "*** And there doesn't seem to be a static archive available"
- echo "*** The link will probably fail, sorry"
- else
- add="$dir/$old_library"
- fi
- elif test -n "$old_library"; then
- add="$dir/$old_library"
- fi
- fi
- esac
- elif test "$hardcode_minus_L" = no; then
- case $host in
- *-*-sunos*) add_shlibpath="$dir" ;;
- esac
- add_dir="-L$dir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = no; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- relink)
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$dir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$absdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- *) lib_linked=no ;;
- esac
-
- if test "$lib_linked" != yes; then
- func_fatal_configuration "unsupported hardcode properties"
- fi
-
- if test -n "$add_shlibpath"; then
- case :$compile_shlibpath: in
- *":$add_shlibpath:"*) ;;
- *) func_append compile_shlibpath "$add_shlibpath:" ;;
- esac
- fi
- if test "$linkmode" = prog; then
- test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
- test -n "$add" && compile_deplibs="$add $compile_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- if test "$hardcode_direct" != yes &&
- test "$hardcode_minus_L" != yes &&
- test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- fi
- fi
- fi
-
- if test "$linkmode" = prog || test "$opt_mode" = relink; then
- add_shlibpath=
- add_dir=
- add=
- # Finalize command for both is simple: just hardcode it.
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$libdir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$libdir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- add="-l$name"
- elif test "$hardcode_automatic" = yes; then
- if test -n "$inst_prefix_dir" &&
- test -f "$inst_prefix_dir$libdir/$linklib" ; then
- add="$inst_prefix_dir$libdir/$linklib"
- else
- add="$libdir/$linklib"
- fi
- else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- fi
-
- if test "$linkmode" = prog; then
- test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
- test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- fi
- fi
- elif test "$linkmode" = prog; then
- # Here we assume that one of hardcode_direct or hardcode_minus_L
- # is not unsupported. This is valid on all known static and
- # shared platforms.
- if test "$hardcode_direct" != unsupported; then
- test -n "$old_library" && linklib="$old_library"
- compile_deplibs="$dir/$linklib $compile_deplibs"
- finalize_deplibs="$dir/$linklib $finalize_deplibs"
- else
- compile_deplibs="-l$name -L$dir $compile_deplibs"
- finalize_deplibs="-l$name -L$dir $finalize_deplibs"
- fi
- elif test "$build_libtool_libs" = yes; then
- # Not a shared library
- if test "$deplibs_check_method" != pass_all; then
- # We're trying link a shared library against a static one
- # but the system doesn't support it.
-
- # Just print a warning and add the library to dependency_libs so
- # that the program can be linked against the static library.
- echo
- $ECHO "*** Warning: This system can not link to static lib archive $lib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have."
- if test "$module" = yes; then
- echo "*** But as you try to build a module library, libtool will still create "
- echo "*** a static module, that should work as long as the dlopening application"
- echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- else
- deplibs="$dir/$old_library $deplibs"
- link_static=yes
- fi
- fi # link shared/static library?
-
- if test "$linkmode" = lib; then
- if test -n "$dependency_libs" &&
- { test "$hardcode_into_libs" != yes ||
- test "$build_old_libs" = yes ||
- test "$link_static" = yes; }; then
- # Extract -R from dependency_libs
- temp_deplibs=
- for libdir in $dependency_libs; do
- case $libdir in
- -R*) func_stripname '-R' '' "$libdir"
- temp_xrpath=$func_stripname_result
- case " $xrpath " in
- *" $temp_xrpath "*) ;;
- *) func_append xrpath " $temp_xrpath";;
- esac;;
- *) func_append temp_deplibs " $libdir";;
- esac
- done
- dependency_libs="$temp_deplibs"
- fi
-
- func_append newlib_search_path " $absdir"
- # Link against this library
- test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
- # ... and its dependency_libs
- tmp_libs=
- for deplib in $dependency_libs; do
- newdependency_libs="$deplib $newdependency_libs"
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result";;
- *) func_resolve_sysroot "$deplib" ;;
- esac
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $func_resolve_sysroot_result "*)
- func_append specialdeplibs " $func_resolve_sysroot_result" ;;
- esac
- fi
- func_append tmp_libs " $func_resolve_sysroot_result"
- done
-
- if test "$link_all_deplibs" != no; then
- # Add the search paths of all dependency libraries
- for deplib in $dependency_libs; do
- path=
- case $deplib in
- -L*) path="$deplib" ;;
- *.la)
- func_resolve_sysroot "$deplib"
- deplib=$func_resolve_sysroot_result
- func_dirname "$deplib" "" "."
- dir=$func_dirname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- func_warning "cannot determine absolute directory name of \`$dir'"
- absdir="$dir"
- fi
- ;;
- esac
- if $GREP "^installed=no" $deplib > /dev/null; then
- case $host in
- *-*-darwin*)
- depdepl=
- eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
- if test -n "$deplibrary_names" ; then
- for tmp in $deplibrary_names ; do
- depdepl=$tmp
- done
- if test -f "$absdir/$objdir/$depdepl" ; then
- depdepl="$absdir/$objdir/$depdepl"
- darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- if test -z "$darwin_install_name"; then
- darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- fi
- func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
- func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
- path=
- fi
- fi
- ;;
- *)
- path="-L$absdir/$objdir"
- ;;
- esac
- else
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- test "$absdir" != "$libdir" && \
- func_warning "\`$deplib' seems to be moved"
-
- path="-L$absdir"
- fi
- ;;
- esac
- case " $deplibs " in
- *" $path "*) ;;
- *) deplibs="$path $deplibs" ;;
- esac
- done
- fi # link_all_deplibs != no
- fi # linkmode = lib
- done # for deplib in $libs
- if test "$pass" = link; then
- if test "$linkmode" = "prog"; then
- compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
- finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
- else
- compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- fi
- fi
- dependency_libs="$newdependency_libs"
- if test "$pass" = dlpreopen; then
- # Link the dlpreopened libraries before other libraries
- for deplib in $save_deplibs; do
- deplibs="$deplib $deplibs"
- done
- fi
- if test "$pass" != dlopen; then
- if test "$pass" != conv; then
- # Make sure lib_search_path contains only unique directories.
- lib_search_path=
- for dir in $newlib_search_path; do
- case "$lib_search_path " in
- *" $dir "*) ;;
- *) func_append lib_search_path " $dir" ;;
- esac
- done
- newlib_search_path=
- fi
-
- if test "$linkmode,$pass" != "prog,link"; then
- vars="deplibs"
- else
- vars="compile_deplibs finalize_deplibs"
- fi
- for var in $vars dependency_libs; do
- # Add libraries to $var in reverse order
- eval tmp_libs=\"\$$var\"
- new_libs=
- for deplib in $tmp_libs; do
- # FIXME: Pedantically, this is the right thing to do, so
- # that some nasty dependency loop isn't accidentally
- # broken:
- #new_libs="$deplib $new_libs"
- # Pragmatically, this seems to cause very few problems in
- # practice:
- case $deplib in
- -L*) new_libs="$deplib $new_libs" ;;
- -R*) ;;
- *)
- # And here is the reason: when a library appears more
- # than once as an explicit dependence of a library, or
- # is implicitly linked in more than once by the
- # compiler, it is considered special, and multiple
- # occurrences thereof are not removed. Compare this
- # with having the same library being listed as a
- # dependency of multiple other libraries: in this case,
- # we know (pedantically, we assume) the library does not
- # need to be listed more than once, so we keep only the
- # last copy. This is not always right, but it is rare
- # enough that we require users that really mean to play
- # such unportable linking tricks to link the library
- # using -Wl,-lname, so that libtool does not consider it
- # for duplicate removal.
- case " $specialdeplibs " in
- *" $deplib "*) new_libs="$deplib $new_libs" ;;
- *)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$deplib $new_libs" ;;
- esac
- ;;
- esac
- ;;
- esac
- done
- tmp_libs=
- for deplib in $new_libs; do
- case $deplib in
- -L*)
- case " $tmp_libs " in
- *" $deplib "*) ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- done
- eval $var=\"$tmp_libs\"
- done # for var
- fi
- # Last step: remove runtime libs from dependency_libs
- # (they stay in deplibs)
- tmp_libs=
- for i in $dependency_libs ; do
- case " $predeps $postdeps $compiler_lib_search_path " in
- *" $i "*)
- i=""
- ;;
- esac
- if test -n "$i" ; then
- func_append tmp_libs " $i"
- fi
- done
- dependency_libs=$tmp_libs
- done # for pass
- if test "$linkmode" = prog; then
- dlfiles="$newdlfiles"
- fi
- if test "$linkmode" = prog || test "$linkmode" = lib; then
- dlprefiles="$newdlprefiles"
- fi
-
- case $linkmode in
- oldlib)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for archives"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for archives" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for archives"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for archives"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for archives"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for archives"
-
- test -n "$export_symbols$export_symbols_regex" && \
- func_warning "\`-export-symbols' is ignored for archives"
-
- # Now set the variables for building old libraries.
- build_libtool_libs=no
- oldlibs="$output"
- func_append objs "$old_deplibs"
- ;;
-
- lib)
- # Make sure we only generate libraries of the form `libNAME.la'.
- case $outputname in
- lib*)
- func_stripname 'lib' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- ;;
- *)
- test "$module" = no && \
- func_fatal_help "libtool library \`$output' must begin with \`lib'"
-
- if test "$need_lib_prefix" != no; then
- # Add the "lib" prefix for modules if required
- func_stripname '' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- else
- func_stripname '' '.la' "$outputname"
- libname=$func_stripname_result
- fi
- ;;
- esac
-
- if test -n "$objs"; then
- if test "$deplibs_check_method" != pass_all; then
- func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
- $ECHO "*** objects $objs is not portable!"
- func_append libobjs " $objs"
- fi
- fi
-
- test "$dlself" != no && \
- func_warning "\`-dlopen self' is ignored for libtool libraries"
-
- set dummy $rpath
- shift
- test "$#" -gt 1 && \
- func_warning "ignoring multiple \`-rpath's for a libtool library"
-
- install_libdir="$1"
-
- oldlibs=
- if test -z "$rpath"; then
- if test "$build_libtool_libs" = yes; then
- # Building a libtool convenience library.
- # Some compilers have problems with a `.al' extension so
- # convenience libraries should have the same extension an
- # archive normally would.
- oldlibs="$output_objdir/$libname.$libext $oldlibs"
- build_libtool_libs=convenience
- build_old_libs=yes
- fi
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for convenience libraries"
- else
-
- # Parse the version information argument.
- save_ifs="$IFS"; IFS=':'
- set dummy $vinfo 0 0 0
- shift
- IFS="$save_ifs"
-
- test -n "$7" && \
- func_fatal_help "too many parameters to \`-version-info'"
-
- # convert absolute version numbers to libtool ages
- # this retains compatibility with .la files and attempts
- # to make the code below a bit more comprehensible
-
- case $vinfo_number in
- yes)
- number_major="$1"
- number_minor="$2"
- number_revision="$3"
- #
- # There are really only two kinds -- those that
- # use the current revision as the major version
- # and those that subtract age and use age as
- # a minor version. But, then there is irix
- # which has an extra 1 added just for fun
- #
- case $version_type in
- # correct linux to gnu/linux during the next big refactor
- darwin|linux|osf|windows|none)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_revision"
- ;;
- freebsd-aout|freebsd-elf|qnx|sunos)
- current="$number_major"
- revision="$number_minor"
- age="0"
- ;;
- irix|nonstopux)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_minor"
- lt_irix_increment=no
- ;;
- *)
- func_fatal_configuration "$modename: unknown library version type \`$version_type'"
- ;;
- esac
- ;;
- no)
- current="$1"
- revision="$2"
- age="$3"
- ;;
- esac
-
- # Check that each of the things are valid numbers.
- case $current in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "CURRENT \`$current' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $revision in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "REVISION \`$revision' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $age in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "AGE \`$age' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- if test "$age" -gt "$current"; then
- func_error "AGE \`$age' is greater than the current interface number \`$current'"
- func_fatal_error "\`$vinfo' is not valid version information"
- fi
-
- # Calculate the version variables.
- major=
- versuffix=
- verstring=
- case $version_type in
- none) ;;
-
- darwin)
- # Like Linux, but with the current version available in
- # verstring for coding it into the library header
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- # Darwin ld doesn't like 0 for these options...
- func_arith $current + 1
- minor_current=$func_arith_result
- xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
- ;;
-
- freebsd-aout)
- major=".$current"
- versuffix=".$current.$revision";
- ;;
-
- freebsd-elf)
- major=".$current"
- versuffix=".$current"
- ;;
-
- irix | nonstopux)
- if test "X$lt_irix_increment" = "Xno"; then
- func_arith $current - $age
- else
- func_arith $current - $age + 1
- fi
- major=$func_arith_result
-
- case $version_type in
- nonstopux) verstring_prefix=nonstopux ;;
- *) verstring_prefix=sgi ;;
- esac
- verstring="$verstring_prefix$major.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$revision
- while test "$loop" -ne 0; do
- func_arith $revision - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring_prefix$major.$iface:$verstring"
- done
-
- # Before this point, $major must not contain `.'.
- major=.$major
- versuffix="$major.$revision"
- ;;
-
- linux) # correct to gnu/linux during the next big refactor
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- ;;
-
- osf)
- func_arith $current - $age
- major=.$func_arith_result
- versuffix=".$current.$age.$revision"
- verstring="$current.$age.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$age
- while test "$loop" -ne 0; do
- func_arith $current - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring:${iface}.0"
- done
-
- # Make executables depend on our current version.
- func_append verstring ":${current}.0"
- ;;
-
- qnx)
- major=".$current"
- versuffix=".$current"
- ;;
-
- sunos)
- major=".$current"
- versuffix=".$current.$revision"
- ;;
-
- windows)
- # Use '-' rather than '.', since we only want one
- # extension on DOS 8.3 filesystems.
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
-
- *)
- func_fatal_configuration "unknown library version type \`$version_type'"
- ;;
- esac
-
- # Clear the version info if we defaulted, and they specified a release.
- if test -z "$vinfo" && test -n "$release"; then
- major=
- case $version_type in
- darwin)
- # we can't check for "0.0" in archive_cmds due to quoting
- # problems, so we reset it completely
- verstring=
- ;;
- *)
- verstring="0.0"
- ;;
- esac
- if test "$need_version" = no; then
- versuffix=
- else
- versuffix=".0.0"
- fi
- fi
-
- # Remove version info from name if versioning should be avoided
- if test "$avoid_version" = yes && test "$need_version" = no; then
- major=
- versuffix=
- verstring=""
- fi
-
- # Check to see if the archive will have undefined symbols.
- if test "$allow_undefined" = yes; then
- if test "$allow_undefined_flag" = unsupported; then
- func_warning "undefined symbols not allowed in $host shared libraries"
- build_libtool_libs=no
- build_old_libs=yes
- fi
- else
- # Don't allow undefined symbols.
- allow_undefined_flag="$no_undefined_flag"
- fi
-
- fi
-
- func_generate_dlsyms "$libname" "$libname" "yes"
- func_append libobjs " $symfileobj"
- test "X$libobjs" = "X " && libobjs=
-
- if test "$opt_mode" != relink; then
- # Remove our outputs, but don't remove object files since they
- # may have been created when compiling PIC objects.
- removelist=
- tempremovelist=`$ECHO "$output_objdir/*"`
- for p in $tempremovelist; do
- case $p in
- *.$objext | *.gcno)
- ;;
- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
- if test "X$precious_files_regex" != "X"; then
- if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
- then
- continue
- fi
- fi
- func_append removelist " $p"
- ;;
- *) ;;
- esac
- done
- test -n "$removelist" && \
- func_show_eval "${RM}r \$removelist"
- fi
-
- # Now set the variables for building old libraries.
- if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
- func_append oldlibs " $output_objdir/$libname.$libext"
-
- # Transform .lo files to .o files.
- oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
- fi
-
- # Eliminate all temporary directories.
- #for path in $notinst_path; do
- # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
- # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
- # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
- #done
-
- if test -n "$xrpath"; then
- # If the user specified any rpath flags, then add them.
- temp_xrpath=
- for libdir in $xrpath; do
- func_replace_sysroot "$libdir"
- func_append temp_xrpath " -R$func_replace_sysroot_result"
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-
- # Make sure dlfiles contains only unique files that won't be dlpreopened
- old_dlfiles="$dlfiles"
- dlfiles=
- for lib in $old_dlfiles; do
- case " $dlprefiles $dlfiles " in
- *" $lib "*) ;;
- *) func_append dlfiles " $lib" ;;
- esac
- done
-
- # Make sure dlprefiles contains only unique files
- old_dlprefiles="$dlprefiles"
- dlprefiles=
- for lib in $old_dlprefiles; do
- case "$dlprefiles " in
- *" $lib "*) ;;
- *) func_append dlprefiles " $lib" ;;
- esac
- done
-
- if test "$build_libtool_libs" = yes; then
- if test -n "$rpath"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # these systems don't actually have a c library (as such)!
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C library is in the System framework
- func_append deplibs " System.ltframework"
- ;;
- *-*-netbsd*)
- # Don't link with libc until the a.out ld.so is fixed.
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- ;;
- *)
- # Add libc to deplibs on all other systems if necessary.
- if test "$build_libtool_need_lc" = "yes"; then
- func_append deplibs " -lc"
- fi
- ;;
- esac
- fi
-
- # Transform deplibs into only deplibs that can be linked in shared.
- name_save=$name
- libname_save=$libname
- release_save=$release
- versuffix_save=$versuffix
- major_save=$major
- # I'm not sure if I'm treating the release correctly. I think
- # release should show up in the -l (ie -lgmp5) so we don't want to
- # add it in twice. Is that correct?
- release=""
- versuffix=""
- major=""
- newdeplibs=
- droppeddeps=no
- case $deplibs_check_method in
- pass_all)
- # Don't check for shared/static. Everything works.
- # This might be a little naive. We might want to check
- # whether the library exists or not. But this is on
- # osf3 & osf4 and I'm not really sure... Just
- # implementing what was already the behavior.
- newdeplibs=$deplibs
- ;;
- test_compile)
- # This code stresses the "libraries are programs" paradigm to its
- # limits. Maybe even breaks it. We compile a program, linking it
- # against the deplibs as a proxy for the library. Then we can check
- # whether they linked in statically or dynamically with ldd.
- $opt_dry_run || $RM conftest.c
- cat > conftest.c <<EOF
- int main() { return 0; }
-EOF
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
- ldd_output=`ldd conftest`
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which I believe you do not have"
- echo "*** because a test_compile did reveal that the linker did not use it for"
- echo "*** its dynamic dependency list that programs get resolved with at runtime."
- fi
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- else
- # Error occurred in the first compile. Let's try to salvage
- # the situation: Compile a separate program for each library.
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
- ldd_output=`ldd conftest`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because a test_compile did reveal that the linker did not use this one"
- echo "*** as a dynamic dependency that programs can get resolved with at runtime."
- fi
- fi
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
- echo "*** make it link in! You will probably need to install it or some"
- echo "*** library that it depends on before this library will be fully"
- echo "*** functional. Installing it before continuing would be even better."
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- fi
- ;;
- file_magic*)
- set dummy $deplibs_check_method; shift
- file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- if test -n "$file_magic_glob"; then
- libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
- else
- libnameglob=$libname
- fi
- test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- if test "$want_nocaseglob" = yes; then
- shopt -s nocaseglob
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- $nocaseglob
- else
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- fi
- for potent_lib in $potential_libs; do
- # Follow soft links.
- if ls -lLd "$potent_lib" 2>/dev/null |
- $GREP " -> " >/dev/null; then
- continue
- fi
- # The statement above tries to avoid entering an
- # endless loop below, in case of cyclic links.
- # We might still enter an endless loop, since a link
- # loop can be closed while we follow links,
- # but so what?
- potlib="$potent_lib"
- while test -h "$potlib" 2>/dev/null; do
- potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
- case $potliblink in
- [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
- *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
- esac
- done
- if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
- $SED -e 10q |
- $EGREP "$file_magic_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a file magic. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- potlib="$potent_lib" # see symlink-check above in file_magic test
- if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
- $EGREP "$match_pattern_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a regex pattern. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- none | unknown | *)
- newdeplibs=""
- tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- for i in $predeps $postdeps ; do
- # can't use Xsed below, because $i might contain '/'
- tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
- done
- fi
- case $tmp_deplibs in
- *[!\ \ ]*)
- echo
- if test "X$deplibs_check_method" = "Xnone"; then
- echo "*** Warning: inter-library dependencies are not supported in this platform."
- else
- echo "*** Warning: inter-library dependencies are not known to be supported."
- fi
- echo "*** All declared inter-library dependencies are being dropped."
- droppeddeps=yes
- ;;
- esac
- ;;
- esac
- versuffix=$versuffix_save
- major=$major_save
- release=$release_save
- libname=$libname_save
- name=$name_save
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library with the System framework
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- if test "$droppeddeps" = yes; then
- if test "$module" = yes; then
- echo
- echo "*** Warning: libtool could not satisfy all declared inter-library"
- $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
- echo "*** a static module, that should work as long as the dlopening"
- echo "*** application is linked with the -dlopen flag."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- else
- echo "*** The inter-library dependencies that have been dropped here will be"
- echo "*** automatically added whenever a program is linked with this library"
- echo "*** or is declared to -dlopen it."
-
- if test "$allow_undefined" = no; then
- echo
- echo "*** Since this library must not contain undefined symbols,"
- echo "*** because either the platform does not support them or"
- echo "*** it was explicitly requested with -no-undefined,"
- echo "*** libtool will only create a static version of it."
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- fi
- fi
- # Done checking deplibs!
- deplibs=$newdeplibs
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- case $host in
- *-*-darwin*)
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- deplibs="$new_libs"
-
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
- dlname=
-
- # Test again, we may have decided not to build it any more
- if test "$build_libtool_libs" = yes; then
- # Remove ${wl} instances when linking with ld.
- # FIXME: should test the right _cmds variable.
- case $archive_cmds in
- *\$LD\ *) wl= ;;
- esac
- if test "$hardcode_into_libs" = yes; then
- # Hardcode the library paths
- hardcode_libdirs=
- dep_rpath=
- rpath="$finalize_rpath"
- test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- func_replace_sysroot "$libdir"
- libdir=$func_replace_sysroot_result
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append dep_rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
- fi
- if test -n "$runpath_var" && test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
- fi
- test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
- fi
-
- shlibpath="$finalize_shlibpath"
- test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
- if test -n "$shlibpath"; then
- eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
- fi
-
- # Get the real and link names of the library.
- eval shared_ext=\"$shrext_cmds\"
- eval library_names=\"$library_names_spec\"
- set dummy $library_names
- shift
- realname="$1"
- shift
-
- if test -n "$soname_spec"; then
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
- if test -z "$dlname"; then
- dlname=$soname
- fi
-
- lib="$output_objdir/$realname"
- linknames=
- for link
- do
- func_append linknames " $link"
- done
-
- # Use standard objects if they are pic
- test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- test "X$libobjs" = "X " && libobjs=
-
- delfiles=
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
- export_symbols="$output_objdir/$libname.uexp"
- func_append delfiles " $export_symbols"
- fi
-
- orig_export_symbols=
- case $host_os in
- cygwin* | mingw* | cegcc*)
- if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
- # exporting using user supplied symfile
- if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
- # and it's NOT already a .def file. Must figure out
- # which of the given symbols are data symbols and tag
- # them as such. So, trigger use of export_symbols_cmds.
- # export_symbols gets reassigned inside the "prepare
- # the list of exported symbols" if statement, so the
- # include_expsyms logic still works.
- orig_export_symbols="$export_symbols"
- export_symbols=
- always_export_symbols=yes
- fi
- fi
- ;;
- esac
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- cmds=$export_symbols_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd1 in $cmds; do
- IFS="$save_ifs"
- # Take the normal branch if the nm_file_list_spec branch
- # doesn't work or if tool conversion is not needed.
- case $nm_file_list_spec~$to_tool_file_cmd in
- *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
- try_normal_branch=yes
- eval cmd=\"$cmd1\"
- func_len " $cmd"
- len=$func_len_result
- ;;
- *)
- try_normal_branch=no
- ;;
- esac
- if test "$try_normal_branch" = yes \
- && { test "$len" -lt "$max_cmd_len" \
- || test "$max_cmd_len" -le -1; }
- then
- func_show_eval "$cmd" 'exit $?'
- skipped_export=false
- elif test -n "$nm_file_list_spec"; then
- func_basename "$output"
- output_la=$func_basename_result
- save_libobjs=$libobjs
- save_output=$output
- output=${output_objdir}/${output_la}.nm
- func_to_tool_file "$output"
- libobjs=$nm_file_list_spec$func_to_tool_file_result
- func_append delfiles " $output"
- func_verbose "creating $NM input file list: $output"
- for obj in $save_libobjs; do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > "$output"
- eval cmd=\"$cmd1\"
- func_show_eval "$cmd" 'exit $?'
- output=$save_output
- libobjs=$save_libobjs
- skipped_export=false
- else
- # The command line is too long to execute in one step.
- func_verbose "using reloadable object file for export list..."
- skipped_export=:
- # Break out early, otherwise skipped_export may be
- # set to false by a later but shorter cmd.
- break
- fi
- done
- IFS="$save_ifs"
- if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
- fi
-
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
-
- tmp_deplibs=
- for test_deplib in $deplibs; do
- case " $convenience " in
- *" $test_deplib "*) ;;
- *)
- func_append tmp_deplibs " $test_deplib"
- ;;
- esac
- done
- deplibs="$tmp_deplibs"
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec" &&
- test "$compiler_needs_object" = yes &&
- test -z "$libobjs"; then
- # extract the archives, so we have objects to list.
- # TODO: could optimize this to just extract one archive.
- whole_archive_flag_spec=
- fi
- if test -n "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- else
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
- fi
-
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
- eval flag=\"$thread_safe_flag_spec\"
- func_append linker_flags " $flag"
- fi
-
- # Make a backup of the uninstalled library when relinking
- if test "$opt_mode" = relink; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
- fi
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- eval test_cmds=\"$module_expsym_cmds\"
- cmds=$module_expsym_cmds
- else
- eval test_cmds=\"$module_cmds\"
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval test_cmds=\"$archive_expsym_cmds\"
- cmds=$archive_expsym_cmds
- else
- eval test_cmds=\"$archive_cmds\"
- cmds=$archive_cmds
- fi
- fi
-
- if test "X$skipped_export" != "X:" &&
- func_len " $test_cmds" &&
- len=$func_len_result &&
- test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
- # The command line is too long to link in one step, link piecewise
- # or, if using GNU ld and skipped_export is not :, use a linker
- # script.
-
- # Save the value of $output and $libobjs because we want to
- # use them later. If we have whole_archive_flag_spec, we
- # want to use save_libobjs as it was before
- # whole_archive_flag_spec was expanded, because we can't
- # assume the linker understands whole_archive_flag_spec.
- # This may have to be revisited, in case too many
- # convenience libraries get linked in and end up exceeding
- # the spec.
- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- fi
- save_output=$output
- func_basename "$output"
- output_la=$func_basename_result
-
- # Clear the reloadable object creation command queue and
- # initialize k to one.
- test_cmds=
- concat_cmds=
- objlist=
- last_robj=
- k=1
-
- if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
- output=${output_objdir}/${output_la}.lnkscript
- func_verbose "creating GNU ld script: $output"
- echo 'INPUT (' > $output
- for obj in $save_libobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- echo ')' >> $output
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$func_to_tool_file_result
- elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
- output=${output_objdir}/${output_la}.lnk
- func_verbose "creating linker input file list: $output"
- : > $output
- set x $save_libobjs
- shift
- firstobj=
- if test "$compiler_needs_object" = yes; then
- firstobj="$1 "
- shift
- fi
- for obj
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
- else
- if test -n "$save_libobjs"; then
- func_verbose "creating reloadable object files..."
- output=$output_objdir/$output_la-${k}.$objext
- eval test_cmds=\"$reload_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
-
- # Loop over the list of objects to be linked.
- for obj in $save_libobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- if test "X$objlist" = X ||
- test "$len" -lt "$max_cmd_len"; then
- func_append objlist " $obj"
- else
- # The command $test_cmds is almost too long, add a
- # command to the queue.
- if test "$k" -eq 1 ; then
- # The first file doesn't have a previous command to add.
- reload_objs=$objlist
- eval concat_cmds=\"$reload_cmds\"
- else
- # All subsequent reloadable object files will link in
- # the last one created.
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
- fi
- last_robj=$output_objdir/$output_la-${k}.$objext
- func_arith $k + 1
- k=$func_arith_result
- output=$output_objdir/$output_la-${k}.$objext
- objlist=" $obj"
- func_len " $last_robj"
- func_arith $len0 + $func_len_result
- len=$func_arith_result
- fi
- done
- # Handle the remaining objects by creating one last
- # reloadable object file. All subsequent reloadable object
- # files will link in the last one created.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
- fi
- func_append delfiles " $output"
-
- else
- output=
- fi
-
- if ${skipped_export-false}; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- libobjs=$output
- # Append the command to create the export file.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
- fi
- fi
-
- test -n "$save_libobjs" &&
- func_verbose "creating a temporary reloadable object file: $output"
-
- # Loop through the commands generated above and execute them.
- save_ifs="$IFS"; IFS='~'
- for cmd in $concat_cmds; do
- IFS="$save_ifs"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- if test -n "$export_symbols_regex" && ${skipped_export-false}; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
-
- if ${skipped_export-false}; then
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
- fi
-
- libobjs=$output
- # Restore the value of output.
- output=$save_output
-
- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- fi
- # Expand the library linking commands again to reset the
- # value of $libobjs for piecewise linking.
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- cmds=$module_expsym_cmds
- else
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- cmds=$archive_expsym_cmds
- else
- cmds=$archive_cmds
- fi
- fi
- fi
-
- if test -n "$delfiles"; then
- # Append the command to remove temporary files to $cmds.
- eval cmds=\"\$cmds~\$RM $delfiles\"
- fi
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
-
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- eval cmd=\"$cmd\"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
-
- if test -n "$convenience"; then
- if test -z "$whole_archive_flag_spec"; then
- func_show_eval '${RM}r "$gentop"'
- fi
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- # Create links to the real library.
- for linkname in $linknames; do
- if test "$realname" != "$linkname"; then
- func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
- fi
- done
-
- # If -module or -export-dynamic was specified, set the dlname.
- if test "$module" = yes || test "$export_dynamic" = yes; then
- # On all known operating systems, these are identical.
- dlname="$soname"
- fi
- fi
- ;;
-
- obj)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for objects"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for objects" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for objects"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for objects"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for objects"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for objects"
-
- case $output in
- *.lo)
- test -n "$objs$old_deplibs" && \
- func_fatal_error "cannot build library object \`$output' from non-libtool objects"
-
- libobj=$output
- func_lo2o "$libobj"
- obj=$func_lo2o_result
- ;;
- *)
- libobj=
- obj="$output"
- ;;
- esac
-
- # Delete the old objects.
- $opt_dry_run || $RM $obj $libobj
-
- # Objects from convenience libraries. This assumes
- # single-version convenience libraries. Whenever we create
- # different ones for PIC/non-PIC, this we'll have to duplicate
- # the extraction.
- reload_conv_objs=
- gentop=
- # reload_cmds runs $LD directly, so let us get rid of
- # -Wl from whole_archive_flag_spec and hope we can get by with
- # turning comma into space..
- wl=
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
- reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
- else
- gentop="$output_objdir/${obj}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- reload_conv_objs="$reload_objs $func_extract_archives_result"
- fi
- fi
-
- # If we're not building shared, we need to use non_pic_objs
- test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
-
- # Create the old-style object.
- reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
- output="$obj"
- func_execute_cmds "$reload_cmds" 'exit $?'
-
- # Exit if we aren't doing a library object file.
- if test -z "$libobj"; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- if test "$build_libtool_libs" != yes; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- # $show "echo timestamp > $libobj"
- # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
- exit $EXIT_SUCCESS
- fi
-
- if test -n "$pic_flag" || test "$pic_mode" != default; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs $reload_conv_objs"
- output="$libobj"
- func_execute_cmds "$reload_cmds" 'exit $?'
- fi
-
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- ;;
-
- prog)
- case $host in
- *cygwin*) func_stripname '' '.exe' "$output"
- output=$func_stripname_result.exe;;
- esac
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for programs"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for programs"
-
- test "$preload" = yes \
- && test "$dlopen_support" = unknown \
- && test "$dlopen_self" = unknown \
- && test "$dlopen_self_static" = unknown && \
- func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- case $host in
- *-*-darwin*)
- # Don't allow lazy linking, it breaks C++ global constructors
- # But is supposedly fixed on 10.4 or later (yay!).
- if test "$tagname" = CXX ; then
- case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
- 10.[0123])
- func_append compile_command " ${wl}-bind_at_load"
- func_append finalize_command " ${wl}-bind_at_load"
- ;;
- esac
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $compile_deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $compile_deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- compile_deplibs="$new_libs"
-
-
- func_append compile_command " $compile_deplibs"
- func_append finalize_command " $finalize_deplibs"
-
- if test -n "$rpath$xrpath"; then
- # If the user specified any rpath flags, then add them.
- for libdir in $rpath $xrpath; do
- # This is the magic to use -rpath.
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- fi
-
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$libdir:"*) ;;
- ::) dllsearchpath=$libdir;;
- *) func_append dllsearchpath ":$libdir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- compile_rpath="$rpath"
-
- rpath=
- hardcode_libdirs=
- for libdir in $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$finalize_perm_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- finalize_rpath="$rpath"
-
- if test -n "$libobjs" && test "$build_old_libs" = yes; then
- # Transform all the library objects into standard objects.
- compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- fi
-
- func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
-
- # template prelinking step
- if test -n "$prelink_cmds"; then
- func_execute_cmds "$prelink_cmds" 'exit $?'
- fi
-
- wrappers_required=yes
- case $host in
- *cegcc* | *mingw32ce*)
- # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
- wrappers_required=no
- ;;
- *cygwin* | *mingw* )
- if test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- *)
- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- esac
- if test "$wrappers_required" = no; then
- # Replace the output file specification.
- compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- link_command="$compile_command$compile_rpath"
-
- # We have no uninstalled library dependencies, so finalize right now.
- exit_status=0
- func_show_eval "$link_command" 'exit_status=$?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Delete the generated files.
- if test -f "$output_objdir/${outputname}S.${objext}"; then
- func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
- fi
-
- exit $exit_status
- fi
-
- if test -n "$compile_shlibpath$finalize_shlibpath"; then
- compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
- fi
- if test -n "$finalize_shlibpath"; then
- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
- fi
-
- compile_var=
- finalize_var=
- if test -n "$runpath_var"; then
- if test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- if test -n "$finalize_perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $finalize_perm_rpath; do
- func_append rpath "$dir:"
- done
- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- fi
-
- if test "$no_install" = yes; then
- # We don't need to create a wrapper script.
- link_command="$compile_var$compile_command$compile_rpath"
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- # Delete the old output file.
- $opt_dry_run || $RM $output
- # Link the executable and exit
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
-
- func_warning "this platform does not like uninstalled shared libraries"
- func_warning "\`$output' will be relinked during installation"
- else
- if test "$fast_install" != no; then
- link_command="$finalize_var$compile_command$finalize_rpath"
- if test "$fast_install" = yes; then
- relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
- else
- # fast_install is set to needless
- relink_command=
- fi
- else
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
- fi
- fi
-
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
- # Delete the old output files.
- $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output_objdir/$outputname"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Now create the wrapper script.
- func_verbose "creating $output"
-
- # Quote the relink command for shipping.
- if test -n "$relink_command"; then
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- fi
-
- # Only actually do things if not in dry run mode.
- $opt_dry_run || {
- # win32 will think the script is a binary if it has
- # a .exe suffix, so we strip it off here.
- case $output in
- *.exe) func_stripname '' '.exe' "$output"
- output=$func_stripname_result ;;
- esac
- # test for cygwin because mv fails w/o .exe extensions
- case $host in
- *cygwin*)
- exeext=.exe
- func_stripname '' '.exe' "$outputname"
- outputname=$func_stripname_result ;;
- *) exeext= ;;
- esac
- case $host in
- *cygwin* | *mingw* )
- func_dirname_and_basename "$output" "" "."
- output_name=$func_basename_result
- output_path=$func_dirname_result
- cwrappersource="$output_path/$objdir/lt-$output_name.c"
- cwrapper="$output_path/$output_name.exe"
- $RM $cwrappersource $cwrapper
- trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_cwrapperexe_src > $cwrappersource
-
- # The wrapper executable is built using the $host compiler,
- # because it contains $host paths and files. If cross-
- # compiling, it, like the target executable, must be
- # executed on the $host or under an emulation environment.
- $opt_dry_run || {
- $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
- $STRIP $cwrapper
- }
-
- # Now, create the wrapper script for func_source use:
- func_ltwrapper_scriptname $cwrapper
- $RM $func_ltwrapper_scriptname_result
- trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
- $opt_dry_run || {
- # note: this script will not be executed, so do not chmod.
- if test "x$build" = "x$host" ; then
- $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
- else
- func_emit_wrapper no > $func_ltwrapper_scriptname_result
- fi
- }
- ;;
- * )
- $RM $output
- trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_wrapper no > $output
- chmod +x $output
- ;;
- esac
- }
- exit $EXIT_SUCCESS
- ;;
- esac
-
- # See if we need to build an old-fashioned archive.
- for oldlib in $oldlibs; do
-
- if test "$build_libtool_libs" = convenience; then
- oldobjs="$libobjs_save $symfileobj"
- addlibs="$convenience"
- build_libtool_libs=no
- else
- if test "$build_libtool_libs" = module; then
- oldobjs="$libobjs_save"
- build_libtool_libs=no
- else
- oldobjs="$old_deplibs $non_pic_objects"
- if test "$preload" = yes && test -f "$symfileobj"; then
- func_append oldobjs " $symfileobj"
- fi
- fi
- addlibs="$old_convenience"
- fi
-
- if test -n "$addlibs"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $addlibs
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # Do each command in the archive commands.
- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
- cmds=$old_archive_from_new_cmds
- else
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # POSIX demands no paths to be encoded in archives. We have
- # to avoid creating archives with duplicate basenames if we
- # might have to extract them afterwards, e.g., when creating a
- # static archive out of a convenience library, or when linking
- # the entirety of a libtool archive into another (currently
- # not supported by libtool).
- if (for obj in $oldobjs
- do
- func_basename "$obj"
- $ECHO "$func_basename_result"
- done | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- echo "copying selected object files to avoid basename conflicts..."
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
- func_mkdir_p "$gentop"
- save_oldobjs=$oldobjs
- oldobjs=
- counter=1
- for obj in $save_oldobjs
- do
- func_basename "$obj"
- objbase="$func_basename_result"
- case " $oldobjs " in
- " ") oldobjs=$obj ;;
- *[\ /]"$objbase "*)
- while :; do
- # Make sure we don't pick an alternate name that also
- # overlaps.
- newobj=lt$counter-$objbase
- func_arith $counter + 1
- counter=$func_arith_result
- case " $oldobjs " in
- *[\ /]"$newobj "*) ;;
- *) if test ! -f "$gentop/$newobj"; then break; fi ;;
- esac
- done
- func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
- func_append oldobjs " $gentop/$newobj"
- ;;
- *) func_append oldobjs " $obj" ;;
- esac
- done
- fi
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
- eval cmds=\"$old_archive_cmds\"
-
- func_len " $cmds"
- len=$func_len_result
- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- cmds=$old_archive_cmds
- elif test -n "$archiver_list_spec"; then
- func_verbose "using command file archive linking..."
- for obj in $oldobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > $output_objdir/$libname.libcmd
- func_to_tool_file "$output_objdir/$libname.libcmd"
- oldobjs=" $archiver_list_spec$func_to_tool_file_result"
- cmds=$old_archive_cmds
- else
- # the command line is too long to link in one step, link in parts
- func_verbose "using piecewise archive linking..."
- save_RANLIB=$RANLIB
- RANLIB=:
- objlist=
- concat_cmds=
- save_oldobjs=$oldobjs
- oldobjs=
- # Is there a better way of finding the last object in the list?
- for obj in $save_oldobjs
- do
- last_oldobj=$obj
- done
- eval test_cmds=\"$old_archive_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
- for obj in $save_oldobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- func_append objlist " $obj"
- if test "$len" -lt "$max_cmd_len"; then
- :
- else
- # the above command should be used before it gets too long
- oldobjs=$objlist
- if test "$obj" = "$last_oldobj" ; then
- RANLIB=$save_RANLIB
- fi
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
- objlist=
- len=$len0
- fi
- done
- RANLIB=$save_RANLIB
- oldobjs=$objlist
- if test "X$oldobjs" = "X" ; then
- eval cmds=\"\$concat_cmds\"
- else
- eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
- fi
- fi
- fi
- func_execute_cmds "$cmds" 'exit $?'
- done
-
- test -n "$generated" && \
- func_show_eval "${RM}r$generated"
-
- # Now create the libtool archive.
- case $output in
- *.la)
- old_library=
- test "$build_old_libs" = yes && old_library="$libname.$libext"
- func_verbose "creating $output"
-
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- # Quote the link command for shipping.
- relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- if test "$hardcode_automatic" = yes ; then
- relink_command=
- fi
-
- # Only create the output if not a dry run.
- $opt_dry_run || {
- for installed in no yes; do
- if test "$installed" = yes; then
- if test -z "$install_libdir"; then
- break
- fi
- output="$output_objdir/$outputname"i
- # Replace all uninstalled libtool libraries with the installed ones
- newdependency_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- *.la)
- func_basename "$deplib"
- name="$func_basename_result"
- func_resolve_sysroot "$deplib"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
- ;;
- -L*)
- func_stripname -L '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -L$func_replace_sysroot_result"
- ;;
- -R*)
- func_stripname -R '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -R$func_replace_sysroot_result"
- ;;
- *) func_append newdependency_libs " $deplib" ;;
- esac
- done
- dependency_libs="$newdependency_libs"
- newdlfiles=
-
- for lib in $dlfiles; do
- case $lib in
- *.la)
- func_basename "$lib"
- name="$func_basename_result"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- *) func_append newdlfiles " $lib" ;;
- esac
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- *.la)
- # Only pass preopened files to the pseudo-archive (for
- # eventual linking with the app. that links it) if we
- # didn't already link the preopened objects directly into
- # the library:
- func_basename "$lib"
- name="$func_basename_result"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- esac
- done
- dlprefiles="$newdlprefiles"
- else
- newdlfiles=
- for lib in $dlfiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlfiles " $abs"
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlprefiles " $abs"
- done
- dlprefiles="$newdlprefiles"
- fi
- $RM $output
- # place dlname in correct position for cygwin
- # In fact, it would be nice if we could use this code for all target
- # systems that can't hard-code library paths into their executables
- # and that have no shared library path variable independent of PATH,
- # but it turns out we can't easily determine that from inspecting
- # libtool variables, so we have to hard-code the OSs to which it
- # applies here; at the moment, that means platforms that use the PE
- # object format with DLL files. See the long comment at the top of
- # tests/bindir.at for full details.
- tdlname=$dlname
- case $host,$output,$installed,$module,$dlname in
- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
- # If a -bindir argument was supplied, place the dll there.
- if test "x$bindir" != x ;
- then
- func_relative_path "$install_libdir" "$bindir"
- tdlname=$func_relative_path_result$dlname
- else
- # Otherwise fall back on heuristic.
- tdlname=../bin/$dlname
- fi
- ;;
- esac
- $ECHO > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Linker flags that can not go in dependency_libs.
-inherited_linker_flags='$new_inherited_linker_flags'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Names of additional weak libraries provided by this library
-weak_library_names='$weak_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
- if test "$installed" = no && test "$need_relink" = yes; then
- $ECHO >> $output "\
-relink_command=\"$relink_command\""
- fi
- done
- }
-
- # Do a symbolic link so that the libtool archive can be found in
- # LD_LIBRARY_PATH before the program is installed.
- func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
- ;;
- esac
- exit $EXIT_SUCCESS
-}
-
-{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
- func_mode_link ${1+"$@"}
-
-
-# func_mode_uninstall arg...
-func_mode_uninstall ()
-{
- $opt_debug
- RM="$nonopt"
- files=
- rmforce=
- exit_status=0
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- for arg
- do
- case $arg in
- -f) func_append RM " $arg"; rmforce=yes ;;
- -*) func_append RM " $arg" ;;
- *) func_append files " $arg" ;;
- esac
- done
-
- test -z "$RM" && \
- func_fatal_help "you must specify an RM program"
-
- rmdirs=
-
- for file in $files; do
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- if test "X$dir" = X.; then
- odir="$objdir"
- else
- odir="$dir/$objdir"
- fi
- func_basename "$file"
- name="$func_basename_result"
- test "$opt_mode" = uninstall && odir="$dir"
-
- # Remember odir for removal later, being careful to avoid duplicates
- if test "$opt_mode" = clean; then
- case " $rmdirs " in
- *" $odir "*) ;;
- *) func_append rmdirs " $odir" ;;
- esac
- fi
-
- # Don't error if the file doesn't exist and rm -f was used.
- if { test -L "$file"; } >/dev/null 2>&1 ||
- { test -h "$file"; } >/dev/null 2>&1 ||
- test -f "$file"; then
- :
- elif test -d "$file"; then
- exit_status=1
- continue
- elif test "$rmforce" = yes; then
- continue
- fi
-
- rmfiles="$file"
-
- case $name in
- *.la)
- # Possibly a libtool archive, so verify it.
- if func_lalib_p "$file"; then
- func_source $dir/$name
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
- func_append rmfiles " $odir/$n"
- done
- test -n "$old_library" && func_append rmfiles " $odir/$old_library"
-
- case "$opt_mode" in
- clean)
- case " $library_names " in
- *" $dlname "*) ;;
- *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
- esac
- test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
- ;;
- uninstall)
- if test -n "$library_names"; then
- # Do each command in the postuninstall commands.
- func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
-
- if test -n "$old_library"; then
- # Do each command in the old_postuninstall commands.
- func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
- # FIXME: should reinstall the best remaining shared library.
- ;;
- esac
- fi
- ;;
-
- *.lo)
- # Possibly a libtool object, so verify it.
- if func_lalib_p "$file"; then
-
- # Read the .lo file
- func_source $dir/$name
-
- # Add PIC object to the list of files to remove.
- if test -n "$pic_object" &&
- test "$pic_object" != none; then
- func_append rmfiles " $dir/$pic_object"
- fi
-
- # Add non-PIC object to the list of files to remove.
- if test -n "$non_pic_object" &&
- test "$non_pic_object" != none; then
- func_append rmfiles " $dir/$non_pic_object"
- fi
- fi
- ;;
-
- *)
- if test "$opt_mode" = clean ; then
- noexename=$name
- case $file in
- *.exe)
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- func_stripname '' '.exe' "$name"
- noexename=$func_stripname_result
- # $file with .exe has already been added to rmfiles,
- # add $file without .exe
- func_append rmfiles " $file"
- ;;
- esac
- # Do a test to see if this is a libtool program.
- if func_ltwrapper_p "$file"; then
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- relink_command=
- func_source $func_ltwrapper_scriptname_result
- func_append rmfiles " $func_ltwrapper_scriptname_result"
- else
- relink_command=
- func_source $dir/$noexename
- fi
-
- # note $name still contains .exe if it was in $file originally
- # as does the version of $file that was added into $rmfiles
- func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
- if test "$fast_install" = yes && test -n "$relink_command"; then
- func_append rmfiles " $odir/lt-$name"
- fi
- if test "X$noexename" != "X$name" ; then
- func_append rmfiles " $odir/lt-${noexename}.c"
- fi
- fi
- fi
- ;;
- esac
- func_show_eval "$RM $rmfiles" 'exit_status=1'
- done
-
- # Try to remove the ${objdir}s in the directories where we deleted files
- for dir in $rmdirs; do
- if test -d "$dir"; then
- func_show_eval "rmdir $dir >/dev/null 2>&1"
- fi
- done
-
- exit $exit_status
-}
-
-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
- func_mode_uninstall ${1+"$@"}
-
-test -z "$opt_mode" && {
- help="$generic_help"
- func_fatal_help "you must specify a MODE"
-}
-
-test -z "$exec_cmd" && \
- func_fatal_help "invalid operation mode \`$opt_mode'"
-
-if test -n "$exec_cmd"; then
- eval exec "$exec_cmd"
- exit $EXIT_FAILURE
-fi
-
-exit $exit_status
-
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries. Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them. This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration. But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
-# vi:sw=2
-
diff --git a/m4/libtool.m4 b/m4/libtool.m4
deleted file mode 100644
index 828104c..0000000
--- a/m4/libtool.m4
+++ /dev/null
@@ -1,8001 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 57 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
- [m4_default([$3],
- [m4_fatal([Libtool version $1 or higher is required],
- 63)])],
- [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
- *\ * | *\ *)
- AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
- case $cc_temp in
- compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
- distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-dnl
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_WITH_SYSROOT])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- _LT_PATH_MAGIC
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
- [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME. Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
- [m4_ifval([$1], [$1], [$2])])
- lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
- m4_ifval([$4],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
- lt_dict_add_subkey([lt_decl_dict], [$2],
- [tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
- [0], [m4_fatal([$0: too few arguments: $#])],
- [1], [m4_fatal([$0: too few arguments: $#: $1])],
- [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
- [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
- [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
- m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_if([$2], [],
- m4_quote(lt_decl_varnames),
- m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
- lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'. VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly. In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
- [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-# # Some comment about what VAR is for.
-# visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
- [description])))[]dnl
-m4_pushdef([_libtool_name],
- m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
- [0], [_libtool_name=[$]$1],
- [1], [_libtool_name=$lt_[]$1],
- [2], [_libtool_name=$lt_[]$1],
- [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
- m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'. Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
- dnl If the libtool generation code has been placed in $CONFIG_LT,
- dnl instead of duplicating it all over again into config.status,
- dnl then we will have config.status run $CONFIG_LT later, so it
- dnl needs to know what name is stored there:
- [AC_CONFIG_COMMANDS([libtool],
- [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
- dnl If the libtool generation code is destined for config.status,
- dnl expand the accumulated commands and init code now:
- [AC_CONFIG_COMMANDS([libtool],
- [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable. If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins. After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script. The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
- echo
- AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
-
-Report bugs to <bug-libtool at gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2011 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
- case $[1] in
- --version | --v* | -V )
- echo "$lt_cl_version"; exit 0 ;;
- --help | --h* | -h )
- echo "$lt_cl_help"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --quiet | --q* | --silent | --s* | -q )
- lt_cl_silent=: ;;
-
- -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
- *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
- esac
- shift
-done
-
-if $lt_cl_silent; then
- exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure. Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test "$silent" = yes &&
- lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars. Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
- m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
- m4_if(_LT_TAG, [C], [
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
- _LT_PROG_LTMAIN
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- _LT_PROG_REPLACE_SHELLFNS
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-# autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
- [C], [_LT_LANG(C)],
- [C++], [_LT_LANG(CXX)],
- [Go], [_LT_LANG(GO)],
- [Java], [_LT_LANG(GCJ)],
- [Fortran 77], [_LT_LANG(F77)],
- [Fortran], [_LT_LANG(FC)],
- [Windows Resource], [_LT_LANG(RC)],
- [m4_ifdef([_LT_LANG_]$1[_CONFIG],
- [_LT_LANG($1)],
- [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
- [LT_SUPPORTED_TAG([$1])dnl
- m4_append([_LT_TAGS], [$1 ])dnl
- m4_define([_LT_LANG_]$1[_enabled], [])dnl
- _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-m4_ifndef([AC_PROG_GO], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_GO. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-m4_defun([AC_PROG_GO],
-[AC_LANG_PUSH(Go)dnl
-AC_ARG_VAR([GOC], [Go compiler command])dnl
-AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-_AC_ARG_VAR_LDFLAGS()dnl
-AC_CHECK_TOOL(GOC, gccgo)
-if test -z "$GOC"; then
- if test -n "$ac_tool_prefix"; then
- AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
- fi
-fi
-if test -z "$GOC"; then
- AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-fi
-])#m4_defun
-])#m4_ifndef
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [LT_LANG(CXX)],
- [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
- [LT_LANG(F77)],
- [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
- [LT_LANG(FC)],
- [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
- [LT_LANG(GCJ)],
- [m4_ifdef([AC_PROG_GCJ],
- [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([A][M_PROG_GCJ],
- [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([LT_PROG_GCJ],
- [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([AC_PROG_GO],
- [LT_LANG(GO)],
- [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
- [LT_LANG(RC)],
- [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
- case $host_os in
- rhapsody* | darwin*)
- AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
- AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
- AC_CHECK_TOOL([LIPO], [lipo], [:])
- AC_CHECK_TOOL([OTOOL], [otool], [:])
- AC_CHECK_TOOL([OTOOL64], [otool64], [:])
- _LT_DECL([], [DSYMUTIL], [1],
- [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
- _LT_DECL([], [NMEDIT], [1],
- [Tool to change global to local symbols on Mac OS X])
- _LT_DECL([], [LIPO], [1],
- [Tool to manipulate fat objects and archives on Mac OS X])
- _LT_DECL([], [OTOOL], [1],
- [ldd/readelf like tool for Mach-O binaries on Mac OS X])
- _LT_DECL([], [OTOOL64], [1],
- [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
- AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
- [lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi])
-
- AC_CACHE_CHECK([for -exported_symbols_list linker flag],
- [lt_cv_ld_exported_symbols_list],
- [lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [lt_cv_ld_exported_symbols_list=yes],
- [lt_cv_ld_exported_symbols_list=no])
- LDFLAGS="$save_LDFLAGS"
- ])
-
- AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
- [lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
- echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
- $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
- ])
- case $host_os in
- rhapsody* | darwin1.[[012]])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[[012]]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
- m4_require([_LT_REQUIRED_DARWIN_CHECKS])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_automatic, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
- m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
- [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=''
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
- m4_if([$1], [CXX],
-[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
- _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
- fi
-],[])
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-# ----------------------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# Store the results from the different compilers for each TAGNAME.
-# Allow to override them for all tags through lt_cv_aix_libpath.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
- [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
- lt_aix_libpath_sed='[
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }]'
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi],[])
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
- fi
- ])
- aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-case "$ECHO" in
- printf*) AC_MSG_RESULT([printf]) ;;
- print*) AC_MSG_RESULT([print -r]) ;;
- *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
- test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test "X`printf %s $ECHO`" = "X$ECHO" \
- || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_WITH_SYSROOT
-# ----------------
-AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
-AC_ARG_WITH([sysroot],
-[ --with-sysroot[=DIR] Search for dependent libraries within DIR
- (or the compiler's sysroot if not specified).],
-[], [with_sysroot=no])
-
-dnl lt_sysroot will always be passed unquoted. We quote it here
-dnl in case the user passed a directory name.
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
- if test "$GCC" = yes; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- AC_MSG_RESULT([${with_sysroot}])
- AC_MSG_ERROR([The sysroot must be an absolute path.])
- ;;
-esac
-
- AC_MSG_RESULT([${lt_sysroot:-no}])
-_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
- [AS_HELP_STRING([--disable-libtool-lock],
- [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- ppc64-*linux*|powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- ppc*-*linux*|powerpc*-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_LANG_PUSH(C)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
- AC_LANG_POP])
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD="${LD-ld}_sol2"
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_PROG_AR
-# -----------
-m4_defun([_LT_PROG_AR],
-[AC_CHECK_TOOLS(AR, [ar], false)
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-
-AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
- [lt_cv_ar_at_file=no
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
- [echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
- AC_TRY_EVAL([lt_ar_try])
- if test "$ac_status" -eq 0; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- AC_TRY_EVAL([lt_ar_try])
- if test "$ac_status" -ne 0; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
- ])
- ])
-
-if test "x$lt_cv_ar_at_file" = xno; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-_LT_DECL([], [archiver_list_spec], [1],
- [How to feed a file listing to the archiver])
-])# _LT_PROG_AR
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[_LT_PROG_AR
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
- [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
- [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
- [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$3"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- fi
- $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$5], , :, [$5])
-else
- m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $3"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&AS_MESSAGE_LOG_FD
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- else
- $2=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$4], , :, [$4])
-else
- m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
- AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
- AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
- [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
- [$4]
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-[#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}]
-_LT_EOF
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) $1 ;;
- x$lt_dlneed_uscore) $2 ;;
- x$lt_dlunknown|x*) $3 ;;
- esac
- else :
- # compilation failed
- $3
- fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ])
- ;;
-
- *)
- AC_CHECK_FUNC([shl_load],
- [lt_cv_dlopen="shl_load"],
- [AC_CHECK_LIB([dld], [shl_load],
- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
- [AC_CHECK_FUNC([dlopen],
- [lt_cv_dlopen="dlopen"],
- [AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
- [AC_CHECK_LIB([svld], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
- [AC_CHECK_LIB([dld], [dld_link],
- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
- ])
- ])
- ])
- ])
- ])
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- AC_CACHE_CHECK([whether a program can dlopen itself],
- lt_cv_dlopen_self, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
- ])
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
- lt_cv_dlopen_self_static, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
- ])
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
- [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
- [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
- [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
- fi
- fi
- chmod u+w . 2>&AS_MESSAGE_LOG_FD
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
- [Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- AC_MSG_CHECKING([if we can lock with hard links])
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- AC_MSG_RESULT([$hard_links])
- if test "$hard_links" = no; then
- AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
- [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
- [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
- test -n "$_LT_TAGVAR(runpath_var, $1)" ||
- test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
- test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
- # Linking always hardcodes the temporary library directory.
- _LT_TAGVAR(hardcode_action, $1)=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- _LT_TAGVAR(hardcode_action, $1)=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
- test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
- [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
- esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
- [], [
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[[lt_foo]]++; }
- if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[[4-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[[01]] | aix4.[[01]].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[[45]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[[23]].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[[01]]* | freebsdelf3.[[01]]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
- freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[[3-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
- [lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
- LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
- [lt_cv_shlibpath_overrides_runpath=yes])])
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
- ])
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[[89]] | openbsd2.[[89]].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
- [Variables whose values should be saved in libtool wrapper scripts and
- restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
- [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
- [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
- [[List of archive names. First name is the real one, the rest are links.
- The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
- [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
- [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
- [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
- [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
- [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
- [[As "finish_cmds", except a single script fragment to be evaled but
- not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
- [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
- [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
- [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] | ?:[\\/]*])
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word. This closes a longstanding sh security hole.
- ac_dummy="m4_if([$2], , $PATH, [$2])"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$1; then
- lt_cv_path_MAGIC_CMD="$ac_dir/$1"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- AC_MSG_RESULT($MAGIC_CMD)
-else
- AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
- [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
- else
- MAGIC_CMD=:
- fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
- [AS_HELP_STRING([--with-gnu-ld],
- [assume the C compiler uses GNU ld @<:@default=no@:>@])],
- [test "$withval" = no || with_gnu_ld=yes],
- [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by $CC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]]* | ?:[[\\/]]*)
- re_direlt='/[[^/]][[^/]]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
- lt_cv_ld_reload_flag,
- [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test "$GCC" != yes; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[[45]]*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[[3-9]]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-])
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
- [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
- [Command to use when deplibs_check_method = "file_magic"])
-_LT_DECL([], [file_magic_glob], [1],
- [How to find potential files when deplibs_check_method = "file_magic"])
-_LT_DECL([], [want_nocaseglob], [1],
- [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
- AC_SUBST([DUMPBIN])
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
- [lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
- cat conftest.out >&AS_MESSAGE_LOG_FD
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-# --------------------------------
-# how to determine the name of the shared library
-# associated with a specific link library.
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-m4_require([_LT_DECL_DLLTOOL])
-AC_CACHE_CHECK([how to associate runtime and link libraries],
-lt_cv_sharedlib_from_linklib_cmd,
-[lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh
- # decide which to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd="$ECHO"
- ;;
-esac
-])
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
- [Command to associate shared and link libraries])
-])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-
-
-# _LT_PATH_MANIFEST_TOOL
-# ----------------------
-# locate the manifest tool
-m4_defun([_LT_PATH_MANIFEST_TOOL],
-[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
- [lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&AS_MESSAGE_LOG_FD
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
- MANIFEST_TOOL=:
-fi
-_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-])# _LT_PATH_MANIFEST_TOOL
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
- # These system don't have libm, or don't need it
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, cos, LIBM="-lm")
- ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
- esac
-
- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
- lt_cv_prog_compiler_rtti_exceptions,
- [-fno-rtti -fno-exceptions], [],
- [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
- [Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[[BCDT]]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[[ABCDGISTW]]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[[ABCDEGRST]]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[[BCDEGRST]]'
- ;;
-osf*)
- symcode='[[BCDEGQRST]]'
- ;;
-solaris*)
- symcode='[[BDRT]]'
- ;;
-sco3.2v5*)
- symcode='[[DT]]'
- ;;
-sysv4.2uw2*)
- symcode='[[DT]]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[[ABDT]]'
- ;;
-sysv4)
- symcode='[[DFNSTU]]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK ['"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx]"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT@&t at _DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT@&t at _DLSYM_CONST
-#else
-# define LT@&t at _DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT@&t at _DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- AC_MSG_RESULT(failed)
-else
- AC_MSG_RESULT(ok)
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
- [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
- [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
- [lt_cv_sys_global_symbol_to_c_name_address], [1],
- [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
- [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
- [Transform the output of nm in a C name address pair when lib prefix is needed])
-_LT_DECL([], [nm_file_list_spec], [1],
- [Specify filename containing input files for $NM])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-m4_if([$1], [CXX], [
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix[[4-9]]*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- fi
- ;;
- aCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- ecpc* )
- # old Intel C++ for x86_64 which still supported -KPIC.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- icpc* )
- # Intel C++, used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
- # IBM XL 8.0, 9.0 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- esac
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd* | netbsdelf*-gnu)
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- lcc*)
- # Lucid
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-],
-[
- if test "$GCC" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
- if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- hpux9* | hpux10* | hpux11*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC (with -KPIC) is the default.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- ccc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All Alpha code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- ;;
- *Intel*\ [[CF]]*Compiler*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- *Portland\ Group*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All OSF/1 code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- rdos*)
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- solaris*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
- *)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- unicos*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
-
- uts4*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-])
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
- ;;
-esac
-
-AC_CACHE_CHECK([for $compiler option to produce PIC],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
- [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
- [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
- "" | " "*) ;;
- *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
- esac],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
- [Additional compiler flags for building library objects])
-
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
- [How to pass a linker flag through the compiler])
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
- _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
- $lt_tmp_static_flag,
- [],
- [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
- [Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- case $host_os in
- aix[[4-9]]*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global defined
- # symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
- ;;
- cygwin* | mingw* | cegcc*)
- case $cc_basename in
- cl*)
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | gnu*)
- _LT_TAGVAR(link_all_deplibs, $1)=no
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
-], [
- runpath_var=
- _LT_TAGVAR(allow_undefined_flag, $1)=
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(archive_cmds, $1)=
- _LT_TAGVAR(archive_expsym_cmds, $1)=
- _LT_TAGVAR(compiler_needs_object, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(hardcode_automatic, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- _LT_TAGVAR(hardcode_minus_L, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_TAGVAR(inherit_rpath, $1)=no
- _LT_TAGVAR(link_all_deplibs, $1)=unknown
- _LT_TAGVAR(module_cmds, $1)=
- _LT_TAGVAR(module_expsym_cmds, $1)=
- _LT_TAGVAR(old_archive_from_new_cmds, $1)=
- _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
- _LT_TAGVAR(thread_safe_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- _LT_TAGVAR(include_expsyms, $1)=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- linux* | k*bsd*-gnu | gnu*)
- _LT_TAGVAR(link_all_deplibs, $1)=no
- ;;
- esac
-
- _LT_TAGVAR(ld_shlibs, $1)=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
- *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[[3-9]]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- tmp_sharedflag='--shared' ;;
- xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
-
- if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
- runpath_var=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=no
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- bsdi[[45]]*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- # FIXME: Should let the user specify the lib program.
- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- m4_if($1, [], [
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- _LT_LINKER_OPTION([if $CC understands -b],
- _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
- [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
- [lt_cv_irix_exported_symbol],
- [save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- AC_LINK_IFELSE(
- [AC_LANG_SOURCE(
- [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
- [C++], [[int foo (void) { return 0; }]],
- [Fortran 77], [[
- subroutine foo
- end]],
- [Fortran], [[
- subroutine foo
- end]])])],
- [lt_cv_irix_exported_symbol=yes],
- [lt_cv_irix_exported_symbol=no])
- LDFLAGS="$save_LDFLAGS"])
- if test "$lt_cv_irix_exported_symbol" = yes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- fi
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- newsos6)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- else
- case $host_os in
- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- os2*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- solaris*)
- _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
- _LT_TAGVAR(hardcode_direct, $1)=no
- ;;
- motorola)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4.3*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- _LT_TAGVAR(ld_shlibs, $1)=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
- [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
- # Assume -lc should be added
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $_LT_TAGVAR(archive_cmds, $1) in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- AC_CACHE_CHECK([whether -lc should be explicitly linked in],
- [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
- [$RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
- pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
- _LT_TAGVAR(allow_undefined_flag, $1)=
- if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
- then
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
- else
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- fi
- _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- ])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
- ;;
- esac
- fi
- ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
- [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
- [enable_shared_with_static_runtimes], [0],
- [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
- [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
- [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
- [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
- [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
- [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
- [Commands used to build a loadable module if different from building
- a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
- [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
- [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
- [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
- [Flag to hardcode $libdir into a binary during linking.
- This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
- [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary and the resulting library dependency is
- "absolute", i.e impossible to change by setting ${shlibpath_var} if the
- library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
- [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
- [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
- [Set to "yes" if building a shared library automatically hardcodes DIR
- into the library and all subsequent libraries and executables linked
- against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
- [Set to yes if linker adds runtime paths of dependent libraries
- to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
- [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [always_export_symbols], [0],
- [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
- [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
- [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
- [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
- [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [postlink_cmds], [2],
- [Commands necessary for finishing linking programs])
-_LT_TAGDECL([], [file_list_spec], [1],
- [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
- LT_SYS_DLOPEN_SELF
- _LT_CMD_STRIPLIB
-
- # Report which library types will actually be built
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- AC_PROG_CXXCPP
-else
- _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="int some_variable = 0;"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_CFLAGS=$CFLAGS
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
- lt_save_with_gnu_ld=$with_gnu_ld
- lt_save_path_LD=$lt_cv_path_LD
- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
- else
- $as_unset lt_cv_prog_gnu_ld
- fi
- if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
- else
- $as_unset lt_cv_path_LD
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
- CFLAGS=$CXXFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- # We don't want -fno-exception when compiling C++ code, so set the
- # no_builtin_flag separately
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
- else
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
- fi
-
- if test "$GXX" = yes; then
- # Set up default GNU C++ configuration
-
- LT_PATH_LD
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test "$with_gnu_ld" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='${wl}'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" |
- $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- GXX=no
- with_gnu_ld=no
- wlarc=
- fi
-
- # PORTME: fill in a description of your system's C++ link characteristics
- AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
- _LT_TAGVAR(ld_shlibs, $1)=yes
- case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GXX" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to
- # export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared
- # libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- case $GXX,$cc_basename in
- ,cl* | no,cl*)
- # Native MSVC
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- func_to_tool_file "$lt_outputfile"~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # g++
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- freebsd2.*)
- # C++ shared libraries reported to be fairly broken before
- # switch to ELF
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- freebsd-elf*)
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- ;;
-
- freebsd* | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- gnu*)
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- hpux9*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- hpux10*|hpux11*)
- if test $with_gnu_ld = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- if test $with_gnu_ld = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
- fi
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
- esac
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc* | ecpc* )
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- case `$CC -V` in
- *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
- _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
- ;;
- xl* | mpixl* | bgxl*)
- # IBM XL 8.0 on PPC, with GNU ld
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
-
- # Not sure whether something based on
- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
- # would be better.
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- esac
- ;;
- esac
- ;;
-
- lynxos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- m88k*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
-
- *nto* | *qnx*)
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- openbsd2*)
- # C++ shared libraries are fairly broken
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- fi
- output_verbose_link_cmd=func_echo_all
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- case $host in
- osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
- *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
- esac
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- cxx*)
- case $host in
- osf3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- ;;
- *)
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
- $RM $lib.exp'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- case $host in
- osf3*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- psos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
-
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- else
- # g++ 2.7 appears to require `-G' NOT `-shared' on this
- # platform.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- fi
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- fi
- ;;
- esac
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
- '"$_LT_TAGVAR(old_archive_cmds, $1)"
- _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
- '"$_LT_TAGVAR(reload_cmds, $1)"
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- vxworks*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
- test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
- _LT_TAGVAR(GCC, $1)="$GXX"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
- with_gnu_ld=$lt_save_with_gnu_ld
- lt_cv_path_LDCXX=$lt_cv_path_LD
- lt_cv_path_LD=$lt_save_path_LD
- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_FUNC_STRIPNAME_CNF
-# ----------------------
-# func_stripname_cnf prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-#
-# This function is identical to the (non-XSI) version of func_stripname,
-# except this one can be used by m4 code that may be executed by configure,
-# rather than the libtool script.
-m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-AC_REQUIRE([_LT_DECL_SED])
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-func_stripname_cnf ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname_cnf
-])# _LT_FUNC_STRIPNAME_CNF
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library. It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer*4 a
- a=0
- return
- end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer a
- a=0
- return
- end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
- private int a;
- public void bar (void) {
- a = 0;
- }
-};
-_LT_EOF
-], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-package foo
-func foo() {
-}
-_LT_EOF
-])
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
- case ${prev}${p} in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test $p = "-L" ||
- test $p = "-R"; then
- prev=$p
- continue
- fi
-
- # Expand the sysroot to ease extracting the directories later.
- if test -z "$prev"; then
- case $p in
- -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
- -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
- -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
- esac
- fi
- case $p in
- =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
- esac
- if test "$pre_test_object_deps_done" = no; then
- case ${prev} in
- -L | -R)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
- _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
- else
- _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$_LT_TAGVAR(postdeps, $1)"; then
- _LT_TAGVAR(postdeps, $1)="${prev}${p}"
- else
- _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
- fi
- fi
- prev=
- ;;
-
- *.lto.$objext) ;; # Ignore GCC LTO objects
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
- _LT_TAGVAR(predep_objects, $1)="$p"
- else
- _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
- fi
- else
- if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
- _LT_TAGVAR(postdep_objects, $1)="$p"
- else
- _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- _LT_TAGVAR(predep_objects,$1)=
- _LT_TAGVAR(postdep_objects,$1)=
- _LT_TAGVAR(postdeps,$1)=
- ;;
-
-linux*)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
-
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-
-solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
- [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
- [Dependencies to place before and after the objects being linked to
- create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
- [The library search path used internally by the compiler when linking
- a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
- _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${F77-"f77"}
- CFLAGS=$FFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
- GCC=$G77
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$G77"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC="$lt_save_CC"
- CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test "X$FC" = "Xno"; then
- _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${FC-"f95"}
- CFLAGS=$FCFLAGS
- compiler=$CC
- GCC=$ac_cv_fc_compiler_gnu
-
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-CFLAGS=$GCJFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_GO_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Go compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GO_CONFIG],
-[AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
-
-# Source file extension for Go test sources.
-ac_ext=go
-
-# Object file extension for compiled Go test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="package main; func main() { }"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='package main; func main() { }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GOC-"gccgo"}
-CFLAGS=$GOFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# Go did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GO_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-CFLAGS=
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
- :
- _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
- [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
- [AC_CHECK_TOOL(GCJ, gcj,)
- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
- AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_GO
-# ----------
-AC_DEFUN([LT_PROG_GO],
-[AC_CHECK_TOOL(GOC, gccgo,)
-])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-# _LT_DECL_DLLTOOL
-# ----------------
-# Ensure DLLTOOL variable is set.
-m4_defun([_LT_DECL_DLLTOOL],
-[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-AC_SUBST([DLLTOOL])
-])
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
- [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for lt_ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
- fi
- done
- done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
- test ! -f $lt_ac_sed && continue
- cat /dev/null > conftest.in
- lt_ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
- # Check for GNU sed and select it if it is found.
- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
- lt_cv_path_SED=$lt_ac_sed
- break
- fi
- while true; do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >>conftest.nl
- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
- cmp -s conftest.out conftest.nl || break
- # 10000 chars as input seems more than enough
- test $lt_ac_count -gt 10 && break
- lt_ac_count=`expr $lt_ac_count + 1`
- if test $lt_ac_count -gt $lt_ac_max; then
- lt_ac_max=$lt_ac_count
- lt_cv_path_SED=$lt_ac_sed
- fi
- done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
- _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac])
-
- _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
- func_basename_result="${1##*/}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
- func_basename_result="${1##*/}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
- # positional parameters, so assign one to ordinary parameter first.
- func_stripname_result=${3}
- func_stripname_result=${func_stripname_result#"${1}"}
- func_stripname_result=${func_stripname_result%"${2}"}])
-
- _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
- func_split_long_opt_name=${1%%=*}
- func_split_long_opt_arg=${1#*=}])
-
- _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
- func_split_short_opt_arg=${1#??}
- func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
- _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
- case ${1} in
- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
- *) func_lo2o_result=${1} ;;
- esac])
-
- _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo])
-
- _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))])
-
- _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
- _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
- func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
- eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
- # Save a `func_append' function call where possible by direct use of '+='
- sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-else
- # Save a `func_append' function call even when '+=' is not available
- sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
- AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
-# _LT_PATH_CONVERSION_FUNCTIONS
-# -----------------------------
-# Determine which file name conversion functions should be used by
-# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
-# for certain cross-compile configurations and native mingw.
-m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_MSG_CHECKING([how to convert $build file names to $host format])
-AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-[case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-])
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
- [0], [convert $build file names to $host format])dnl
-
-AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-[#assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-])
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
- [0], [convert $build files to toolchain format])dnl
-])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
deleted file mode 100644
index 5d9acd8..0000000
--- a/m4/ltoptions.m4
+++ /dev/null
@@ -1,384 +0,0 @@
-# Helper functions for option handling. -*- Autoconf -*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 7 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it. Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
- _LT_MANGLE_DEFUN([$1], [$2]),
- [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
- [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME. If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
- dnl
- dnl Simply set some default values (i.e off) if boolean options were not
- dnl specified:
- _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
- ])
- _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
- ])
- dnl
- dnl If no reference was made to various pairs of opposing options, then
- dnl we run the default mode handler for the pair. For example, if neither
- dnl `shared' nor `disable-shared' was passed, we enable building of shared
- dnl archives by default:
- _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
- _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
- [_LT_ENABLE_FAST_INSTALL])
- ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
- ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS], [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
- [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
- [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
- _LT_DECL([build_libtool_libs], [enable_shared], [0],
- [Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
- [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
- [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
- _LT_DECL([build_old_libs], [enable_static], [0],
- [Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
- [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
- [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
- [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
- [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
- [lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for lt_pkg in $withval; do
- IFS="$lt_save_ifs"
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
- [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
- [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
- [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
- [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
- [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
deleted file mode 100644
index 9000a05..0000000
--- a/m4/ltsugar.m4
+++ /dev/null
@@ -1,123 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
- [$#], [2], [[$2]],
- [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
- [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
- [$#], 1, [],
- [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
- m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
- [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
- [m4_foreach([_Lt_suffix],
- ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
- [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
- [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
- [lt_append([$1], [$2], [$3])$4],
- [$5])],
- [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
- m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
- m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
- [$5],
- [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
- [lt_join(m4_quote(m4_default([$4], [[, ]])),
- lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
- [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
deleted file mode 100644
index 07a8602..0000000
--- a/m4/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers -*- Autoconf -*-
-#
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# @configure_input@
-
-# serial 3337 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
deleted file mode 100644
index c573da9..0000000
--- a/m4/lt~obsolete.m4
+++ /dev/null
@@ -1,98 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else. This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/missing b/missing
deleted file mode 100755
index 86a8fc3..0000000
--- a/missing
+++ /dev/null
@@ -1,331 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-
-scriptversion=2012-01-06.13; # UTC
-
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
-fi
-
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
-
-msg="missing on your system"
-
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
-
-Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- autom4te touch the output file, or create a stub one
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]
-
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
-
-Send bug reports to <bug-automake at gnu.org>."
- exit $?
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing $scriptversion (GNU Automake)"
- exit $?
- ;;
-
- -*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
- ;;
-
-esac
-
-# normalize program name to check for.
-program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program). This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
- lex*|yacc*)
- # Not GNU programs, they don't have --version.
- ;;
-
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running `$TOOL --version' or `$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
- aclocal*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case $f in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
-
- automake*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te*)
- echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get \`$1' as part of \`Autoconf' from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison*|yacc*)
- echo 1>&2 "\
-WARNING: \`$1' $msg. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex*|flex*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit $?
- fi
- ;;
-
- makeinfo*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
-
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/python/MANIFEST.in b/python/MANIFEST.in
new file mode 100644
index 0000000..23aad11
--- /dev/null
+++ b/python/MANIFEST.in
@@ -0,0 +1,6 @@
+include src/*.h
+include src/*.c
+include __nanoversion__.txt
+include examples/*.py
+recursive-include test *
+recursive-exclude test *.pyc
diff --git a/python/README.rst b/python/README.rst
new file mode 100644
index 0000000..83c3681
--- /dev/null
+++ b/python/README.rst
@@ -0,0 +1,56 @@
+spglib
+======
+
+|Version Badge| |Downloads Badge| |PyPi downloads| |Build Status|
+
+Python bindings for C library for finding and handling crystal
+symmetries
+
+Installation
+------------
+
+The package is developed on github. You can get the source for the
+released versions from the
+`repository <https://github.com/atztogo/spglib/releases>`__.
+
+Using package distribution service
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The easiest way to install python-spglib is to use the pypi package, for
+which numpy is required to be installed before the installation. A
+command to install spglib is:
+
+::
+
+ pip install spglib
+
+Conda is another choice:
+
+::
+
+ conda install -c atztogo spglib
+
+These packages are made by Paweł T. Jochym.
+
+Building using setup.py
+~~~~~~~~~~~~~~~~~~~~~~~
+
+To manually install python-spglib using ``setup.py``, python header
+files (python-dev), C-compiler (e.g., gcc, clang), and numpy are
+required before the build. The installation steps are shown as follows:
+
+1. Go to the python directory
+2. Type the command:
+
+ ::
+
+ python setup.py install --user
+
+.. |Version Badge| image:: https://anaconda.org/atztogo/spglib/badges/version.svg
+ :target: https://anaconda.org/atztogo/spglib
+.. |Downloads Badge| image:: https://anaconda.org/atztogo/spglib/badges/downloads.svg
+ :target: https://anaconda.org/atztogo/spglib
+.. |PyPi downloads| image:: https://img.shields.io/pypi/dm/spglib.svg?maxAge=2592000
+ :target: https://pypi.python.org/pypi/spglib
+.. |Build Status| image:: https://travis-ci.org/atztogo/spglib.svg?branch=master
+ :target: https://travis-ci.org/atztogo/spglib
diff --git a/python/__nanoversion__.txt b/python/__nanoversion__.txt
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/python/__nanoversion__.txt
@@ -0,0 +1 @@
+0
diff --git a/python/_spglib.c b/python/_spglib.c
new file mode 100644
index 0000000..01a3915
--- /dev/null
+++ b/python/_spglib.c
@@ -0,0 +1,1062 @@
+/* Copyright (C) 2015 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#include <Python.h>
+#include <stdio.h>
+#include <numpy/arrayobject.h>
+#include <spglib.h>
+
+#if (PY_MAJOR_VERSION < 3) && (PY_MINOR_VERSION < 6)
+#define PYUNICODE_FROMSTRING PyString_FromString
+#else
+#define PYUNICODE_FROMSTRING PyUnicode_FromString
+#endif
+
+static PyObject * py_get_version(PyObject *self, PyObject *args);
+static PyObject * py_get_dataset(PyObject *self, PyObject *args);
+static PyObject * py_get_spacegroup_type(PyObject *self, PyObject *args);
+static PyObject * py_get_pointgroup(PyObject *self, PyObject *args);
+static PyObject * py_standardize_cell(PyObject *self, PyObject *args);
+static PyObject * py_refine_cell(PyObject *self, PyObject *args);
+static PyObject * py_get_symmetry(PyObject *self, PyObject *args);
+static PyObject *
+py_get_symmetry_with_collinear_spin(PyObject *self, PyObject *args);
+static PyObject *
+py_get_hall_number_from_symmetry(PyObject *self, PyObject *args);
+static PyObject * py_find_primitive(PyObject *self, PyObject *args);
+static PyObject *
+py_get_grid_point_from_address(PyObject *self, PyObject *args);
+static PyObject * py_get_ir_reciprocal_mesh(PyObject *self, PyObject *args);
+static PyObject *
+py_get_stabilized_reciprocal_mesh(PyObject *self, PyObject *args);
+static PyObject *
+py_get_grid_points_by_rotations(PyObject *self, PyObject *args);
+static PyObject *
+py_get_BZ_grid_points_by_rotations(PyObject *self, PyObject *args);
+static PyObject * py_relocate_BZ_grid_address(PyObject *self, PyObject *args);
+static PyObject * py_get_symmetry_from_database(PyObject *self, PyObject *args);
+static PyObject * py_delaunay_reduce(PyObject *self, PyObject *args);
+static PyObject * py_niggli_reduce(PyObject *self, PyObject *args);
+static PyObject * py_get_error_message(PyObject *self, PyObject *args);
+
+struct module_state {
+ PyObject *error;
+};
+
+#if PY_MAJOR_VERSION >= 3
+#define GETSTATE(m) ((struct module_state*)PyModule_GetState(m))
+#else
+#define GETSTATE(m) (&_state)
+static struct module_state _state;
+#endif
+
+static PyObject *
+error_out(PyObject *m) {
+ struct module_state *st = GETSTATE(m);
+ PyErr_SetString(st->error, "something bad happened");
+ return NULL;
+}
+
+static PyMethodDef _spglib_methods[] = {
+ {"error_out", (PyCFunction)error_out, METH_NOARGS, NULL},
+ {"version", py_get_version, METH_VARARGS, "Spglib version"},
+ {"dataset", py_get_dataset, METH_VARARGS, "Dataset for crystal symmetry"},
+ {"spacegroup_type", py_get_spacegroup_type, METH_VARARGS, "Space-group type symbols"},
+ {"symmetry_from_database", py_get_symmetry_from_database, METH_VARARGS,
+ "Get symmetry operations from database"},
+ {"pointgroup", py_get_pointgroup, METH_VARARGS,
+ "International symbol of pointgroup"},
+ {"standardize_cell", py_standardize_cell, METH_VARARGS, "Standardize cell"},
+ {"refine_cell", py_refine_cell, METH_VARARGS, "Refine cell"},
+ {"symmetry", py_get_symmetry, METH_VARARGS, "Symmetry operations"},
+ {"symmetry_with_collinear_spin", py_get_symmetry_with_collinear_spin,
+ METH_VARARGS, "Symmetry operations with collinear spin magnetic moments"},
+ {"hall_number_from_symmetry", py_get_hall_number_from_symmetry,
+ METH_VARARGS, "Space group type is searched from symmetry operations."},
+ {"primitive", py_find_primitive, METH_VARARGS,
+ "Find primitive cell in the input cell"},
+ {"grid_point_from_address", py_get_grid_point_from_address, METH_VARARGS,
+ "Translate grid adress to grid point index"},
+ {"ir_reciprocal_mesh", py_get_ir_reciprocal_mesh, METH_VARARGS,
+ "Reciprocal mesh points with map"},
+ {"stabilized_reciprocal_mesh", py_get_stabilized_reciprocal_mesh, METH_VARARGS,
+ "Reciprocal mesh points with map"},
+ {"grid_points_by_rotations", py_get_grid_points_by_rotations, METH_VARARGS,
+ "Rotated grid points are returned"},
+ {"BZ_grid_points_by_rotations", py_get_BZ_grid_points_by_rotations, METH_VARARGS,
+ "Rotated grid points in BZ are returned"},
+ {"BZ_grid_address", py_relocate_BZ_grid_address, METH_VARARGS,
+ "Relocate grid addresses inside Brillouin zone"},
+ {"delaunay_reduce", py_delaunay_reduce, METH_VARARGS, "Delaunay reduction"},
+ {"niggli_reduce", py_niggli_reduce, METH_VARARGS, "Niggli reduction"},
+ {"error_message", py_get_error_message, METH_VARARGS, "Error message"},
+
+ {NULL, NULL, 0, NULL}
+};
+
+#if PY_MAJOR_VERSION >= 3
+
+static int _spglib_traverse(PyObject *m, visitproc visit, void *arg) {
+ Py_VISIT(GETSTATE(m)->error);
+ return 0;
+}
+
+static int _spglib_clear(PyObject *m) {
+ Py_CLEAR(GETSTATE(m)->error);
+ return 0;
+}
+
+static struct PyModuleDef moduledef = {
+ PyModuleDef_HEAD_INIT,
+ "_spglib",
+ NULL,
+ sizeof(struct module_state),
+ _spglib_methods,
+ NULL,
+ _spglib_traverse,
+ _spglib_clear,
+ NULL
+};
+
+#define INITERROR return NULL
+
+PyObject *
+PyInit__spglib(void)
+
+#else
+#define INITERROR return
+
+ void
+ init_spglib(void)
+#endif
+{
+ struct module_state *st;
+#if PY_MAJOR_VERSION >= 3
+ PyObject *module = PyModule_Create(&moduledef);
+#else
+ PyObject *module = Py_InitModule("_spglib", _spglib_methods);
+#endif
+
+ if (module == NULL)
+ INITERROR;
+
+ st = GETSTATE(module);
+
+ st->error = PyErr_NewException("_spglib.Error", NULL, NULL);
+ if (st->error == NULL) {
+ Py_DECREF(module);
+ INITERROR;
+ }
+
+#if PY_MAJOR_VERSION >= 3
+ return module;
+#endif
+}
+
+static PyObject * py_get_version(PyObject *self, PyObject *args)
+{
+ PyObject *array;
+ int i;
+ int version[3];
+
+ if (!PyArg_ParseTuple(args, "")) {
+ return NULL;
+ }
+
+ version[0] = spg_get_major_version();
+ version[1] = spg_get_minor_version();
+ version[2] = spg_get_micro_version();
+
+ array = PyList_New(3);
+ for (i = 0; i < 3; i++) {
+ PyList_SetItem(array, i, PyLong_FromLong((long)version[i]));
+ }
+
+ return array;
+}
+
+static PyObject * py_get_dataset(PyObject *self, PyObject *args)
+{
+ int hall_number;
+ double symprec, angle_tolerance;
+ SpglibDataset *dataset;
+ PyArrayObject* lattice;
+ PyArrayObject* position;
+ PyArrayObject* atom_type;
+ PyObject *array, *vec, *mat, *rot, *trans, *wyckoffs, *equiv_atoms;
+ PyObject *mapping_to_primitive;
+ PyObject *std_lattice, *std_types, *std_positions, *std_mapping_to_primitive;
+
+ int i, j, k, n;
+ double (*lat)[3];
+ double (*pos)[3];
+ int num_atom;
+ int* typat;
+
+ if (!PyArg_ParseTuple(args, "OOOidd",
+ &lattice,
+ &position,
+ &atom_type,
+ &hall_number,
+ &symprec,
+ &angle_tolerance)) {
+ return NULL;
+ }
+
+ lat = (double(*)[3])PyArray_DATA(lattice);
+ pos = (double(*)[3])PyArray_DATA(position);
+ num_atom = PyArray_DIMS(position)[0];
+ typat = (int*)PyArray_DATA(atom_type);
+
+ if ((dataset = spgat_get_dataset_with_hall_number(lat,
+ pos,
+ typat,
+ num_atom,
+ hall_number,
+ symprec,
+ angle_tolerance)) == NULL) {
+ Py_RETURN_NONE;
+ }
+
+ array = PyList_New(17);
+ n = 0;
+
+ /* Space group number, international symbol, hall symbol */
+ PyList_SetItem(array, n, PyLong_FromLong((long) dataset->spacegroup_number));
+ n++;
+ PyList_SetItem(array, n, PyLong_FromLong((long) dataset->hall_number));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(dataset->international_symbol));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(dataset->hall_symbol));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(dataset->choice));
+ n++;
+
+ /* Transformation matrix */
+ mat = PyList_New(3);
+ for (i = 0; i < 3; i++) {
+ vec = PyList_New(3);
+ for (j = 0; j < 3; j++) {
+ PyList_SetItem(vec, j, PyFloat_FromDouble(dataset->transformation_matrix[i][j]));
+ }
+ PyList_SetItem(mat, i, vec);
+ }
+ PyList_SetItem(array, n, mat);
+ n++;
+
+ /* Origin shift */
+ vec = PyList_New(3);
+ for (i = 0; i < 3; i++) {
+ PyList_SetItem(vec, i, PyFloat_FromDouble(dataset->origin_shift[i]));
+ }
+ PyList_SetItem(array, n, vec);
+ n++;
+
+ /* Rotation matrices */
+ rot = PyList_New(dataset->n_operations);
+ for (i = 0; i < dataset->n_operations; i++) {
+ mat = PyList_New(3);
+ for (j = 0; j < 3; j++) {
+ vec = PyList_New(3);
+ for (k = 0; k < 3; k++) {
+ PyList_SetItem(vec, k, PyLong_FromLong((long) dataset->rotations[i][j][k]));
+ }
+ PyList_SetItem(mat, j, vec);
+ }
+ PyList_SetItem(rot, i, mat);
+ }
+ PyList_SetItem(array, n, rot);
+ n++;
+
+ /* Translation vectors */
+ trans = PyList_New(dataset->n_operations);
+ for (i = 0; i < dataset->n_operations; i++) {
+ vec = PyList_New(3);
+ for (j = 0; j < 3; j++) {
+ PyList_SetItem(vec, j, PyFloat_FromDouble(dataset->translations[i][j]));
+ }
+ PyList_SetItem(trans, i, vec);
+ }
+ PyList_SetItem(array, n, trans);
+ n++;
+
+ /* Wyckoff letters, Equivalent atoms */
+ wyckoffs = PyList_New(dataset->n_atoms);
+ equiv_atoms = PyList_New(dataset->n_atoms);
+ mapping_to_primitive = PyList_New(dataset->n_atoms);
+ for (i = 0; i < dataset->n_atoms; i++) {
+ PyList_SetItem(wyckoffs, i,
+ PyLong_FromLong((long) dataset->wyckoffs[i]));
+ PyList_SetItem(equiv_atoms, i,
+ PyLong_FromLong((long) dataset->equivalent_atoms[i]));
+ PyList_SetItem(mapping_to_primitive, i,
+ PyLong_FromLong((long) dataset->mapping_to_primitive[i]));
+ }
+ PyList_SetItem(array, n, wyckoffs);
+ n++;
+ PyList_SetItem(array, n, equiv_atoms);
+ n++;
+ PyList_SetItem(array, n, mapping_to_primitive);
+ n++;
+
+ std_lattice = PyList_New(3);
+ for (i = 0; i < 3; i++) {
+ vec = PyList_New(3);
+ for (j = 0; j < 3; j++) {
+ PyList_SetItem(vec, j, PyFloat_FromDouble(dataset->std_lattice[i][j]));
+ }
+ PyList_SetItem(std_lattice, i, vec);
+ }
+ PyList_SetItem(array, n, std_lattice);
+ n++;
+
+ /* Standardized unit cell */
+ std_types = PyList_New(dataset->n_std_atoms);
+ std_positions = PyList_New(dataset->n_std_atoms);
+ std_mapping_to_primitive = PyList_New(dataset->n_std_atoms);
+ for (i = 0; i < dataset->n_std_atoms; i++) {
+ vec = PyList_New(3);
+ for (j = 0; j < 3; j++) {
+ PyList_SetItem(vec, j, PyFloat_FromDouble(dataset->std_positions[i][j]));
+ }
+ PyList_SetItem(std_types, i, PyLong_FromLong((long) dataset->std_types[i]));
+ PyList_SetItem(std_positions, i, vec);
+ PyList_SetItem(std_mapping_to_primitive, i,
+ PyLong_FromLong((long) dataset->std_mapping_to_primitive[i]));
+ }
+ PyList_SetItem(array, n, std_types);
+ n++;
+ PyList_SetItem(array, n, std_positions);
+ n++;
+ PyList_SetItem(array, n, std_mapping_to_primitive);
+ n++;
+
+ /* Point group */
+ /* PyList_SetItem(array, n, PyLong_FromLong((long) dataset->pointgroup_number)); */
+ /* n++; */
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(dataset->pointgroup_symbol));
+ n++;
+
+ spg_free_dataset(dataset);
+
+ return array;
+}
+
+static PyObject * py_get_symmetry_from_database(PyObject *self, PyObject *args)
+{
+ int hall_number;
+ PyArrayObject* rotation;
+ PyArrayObject* translation;
+
+ int (*rot)[3][3];
+ double (*trans)[3];
+ int num_sym;
+
+ if (!PyArg_ParseTuple(args, "OOi",
+ &rotation,
+ &translation,
+ &hall_number)) {
+ return NULL;
+ }
+
+ if (PyArray_DIMS(rotation)[0] < 192 || PyArray_DIMS(translation)[0] < 192) {
+ Py_RETURN_NONE;
+ }
+
+ rot = (int(*)[3][3])PyArray_DATA(rotation);
+ trans = (double(*)[3])PyArray_DATA(translation);
+
+
+ num_sym = spg_get_symmetry_from_database(rot, trans, hall_number);
+
+ return PyLong_FromLong((long) num_sym);
+}
+
+static PyObject * py_get_spacegroup_type(PyObject *self, PyObject *args)
+{
+ int n, hall_number;
+ PyObject *array;
+ SpglibSpacegroupType spg_type;
+
+ if (!PyArg_ParseTuple(args, "i", &hall_number)) {
+ return NULL;
+ }
+
+ spg_type = spg_get_spacegroup_type(hall_number);
+ if (spg_type.number == 0) {
+ Py_RETURN_NONE;
+ }
+
+ array = PyList_New(11);
+ n = 0;
+ PyList_SetItem(array, n, PyLong_FromLong((long) spg_type.number));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(spg_type.international_short));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(spg_type.international_full));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(spg_type.international));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(spg_type.schoenflies));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(spg_type.hall_symbol));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(spg_type.choice));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(spg_type.pointgroup_international));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(spg_type.pointgroup_schoenflies));
+ n++;
+ PyList_SetItem(array, n, PyLong_FromLong((long) spg_type.arithmetic_crystal_class_number));
+ n++;
+ PyList_SetItem(array, n, PYUNICODE_FROMSTRING(spg_type.arithmetic_crystal_class_symbol));
+ n++;
+
+ return array;
+}
+
+static PyObject * py_get_pointgroup(PyObject *self, PyObject *args)
+{
+ PyArrayObject* rotations;
+
+ int i, j;
+ int trans_mat[3][3];
+ char symbol[6];
+ PyObject* array, * mat, * vec;
+ int(*rot)[3][3];
+ int num_rot;
+ int ptg_num;
+
+ if (! PyArg_ParseTuple(args, "O", &rotations)) {
+ return NULL;
+ }
+
+ rot = (int(*)[3][3])PyArray_DATA(rotations);
+ num_rot = PyArray_DIMS(rotations)[0];
+ ptg_num = spg_get_pointgroup(symbol, trans_mat, rot, num_rot);
+
+ /* Transformation matrix */
+ mat = PyList_New(3);
+ for (i = 0; i < 3; i++) {
+ vec = PyList_New(3);
+ for (j = 0; j < 3; j++) {
+ PyList_SetItem(vec, j, PyLong_FromLong((long)trans_mat[i][j]));
+ }
+ PyList_SetItem(mat, i, vec);
+ }
+
+ array = PyList_New(3);
+ PyList_SetItem(array, 0, PYUNICODE_FROMSTRING(symbol));
+ PyList_SetItem(array, 1, PyLong_FromLong((long) ptg_num));
+ PyList_SetItem(array, 2, mat);
+
+ return array;
+}
+
+static PyObject * py_standardize_cell(PyObject *self, PyObject *args)
+{
+ int num_atom, to_primitive, no_idealize;
+ double symprec, angle_tolerance;
+ PyArrayObject* lattice;
+ PyArrayObject* position;
+ PyArrayObject* atom_type;
+
+ double (*lat)[3];
+ double (*pos)[3];
+ int* typat;
+ int num_atom_std;
+
+ if (!PyArg_ParseTuple(args, "OOOiiidd",
+ &lattice,
+ &position,
+ &atom_type,
+ &num_atom,
+ &to_primitive,
+ &no_idealize,
+ &symprec,
+ &angle_tolerance)) {
+ return NULL;
+ }
+
+ lat = (double(*)[3])PyArray_DATA(lattice);
+ pos = (double(*)[3])PyArray_DATA(position);
+ typat = (int*)PyArray_DATA(atom_type);
+
+ num_atom_std = spgat_standardize_cell(lat,
+ pos,
+ typat,
+ num_atom,
+ to_primitive,
+ no_idealize,
+ symprec,
+ angle_tolerance);
+
+ return PyLong_FromLong((long) num_atom_std);
+}
+
+static PyObject * py_refine_cell(PyObject *self, PyObject *args)
+{
+ int num_atom;
+ double symprec, angle_tolerance;
+ PyArrayObject* lattice;
+ PyArrayObject* position;
+ PyArrayObject* atom_type;
+
+ double (*lat)[3];
+ double (*pos)[3];
+ int* typat;
+ int num_atom_std;
+
+ if (!PyArg_ParseTuple(args, "OOOidd",
+ &lattice,
+ &position,
+ &atom_type,
+ &num_atom,
+ &symprec,
+ &angle_tolerance)) {
+ return NULL;
+ }
+
+ lat = (double(*)[3])PyArray_DATA(lattice);
+ pos = (double(*)[3])PyArray_DATA(position);
+ typat = (int*)PyArray_DATA(atom_type);
+
+ num_atom_std = spgat_refine_cell(lat,
+ pos,
+ typat,
+ num_atom,
+ symprec,
+ angle_tolerance);
+
+ return PyLong_FromLong((long) num_atom_std);
+}
+
+
+static PyObject * py_find_primitive(PyObject *self, PyObject *args)
+{
+ double symprec, angle_tolerance;
+ PyArrayObject* lattice;
+ PyArrayObject* position;
+ PyArrayObject* atom_type;
+
+ double (*lat)[3];
+ double (*pos)[3];
+ int num_atom;
+ int* types;
+ int num_atom_prim;
+
+ if (!PyArg_ParseTuple(args, "OOOdd",
+ &lattice,
+ &position,
+ &atom_type,
+ &symprec,
+ &angle_tolerance)) {
+ return NULL;
+ }
+
+ lat = (double(*)[3])PyArray_DATA(lattice);
+ pos = (double(*)[3])PyArray_DATA(position);
+ num_atom = PyArray_DIMS(position)[0];
+ types = (int*)PyArray_DATA(atom_type);
+
+ num_atom_prim = spgat_find_primitive(lat,
+ pos,
+ types,
+ num_atom,
+ symprec,
+ angle_tolerance);
+
+ return PyLong_FromLong((long) num_atom_prim);
+}
+
+static PyObject * py_get_symmetry(PyObject *self, PyObject *args)
+{
+ double symprec, angle_tolerance;
+ PyArrayObject* lattice;
+ PyArrayObject* position;
+ PyArrayObject* rotation;
+ PyArrayObject* translation;
+ PyArrayObject* atom_type;
+
+ double (*lat)[3];
+ double (*pos)[3];
+ int* types;
+ int num_atom;
+ int (*rot)[3][3];
+ double (*trans)[3];
+ int num_sym_from_array_size;
+ int num_sym;
+
+ if (!PyArg_ParseTuple(args, "OOOOOdd",
+ &rotation,
+ &translation,
+ &lattice,
+ &position,
+ &atom_type,
+ &symprec,
+ &angle_tolerance)) {
+ return NULL;
+ }
+
+ lat = (double(*)[3])PyArray_DATA(lattice);
+ pos = (double(*)[3])PyArray_DATA(position);
+ types = (int*)PyArray_DATA(atom_type);
+ num_atom = PyArray_DIMS(position)[0];
+ rot = (int(*)[3][3])PyArray_DATA(rotation);
+ trans = (double(*)[3])PyArray_DATA(translation);
+ num_sym_from_array_size = PyArray_DIMS(rotation)[0];
+
+ /* num_sym has to be larger than num_sym_from_array_size. */
+ num_sym = spgat_get_symmetry(rot,
+ trans,
+ num_sym_from_array_size,
+ lat,
+ pos,
+ types,
+ num_atom,
+ symprec,
+ angle_tolerance);
+ return PyLong_FromLong((long) num_sym);
+}
+
+static PyObject * py_get_symmetry_with_collinear_spin(PyObject *self,
+ PyObject *args)
+{
+ double symprec, angle_tolerance;
+ PyArrayObject* lattice;
+ PyArrayObject* position;
+ PyArrayObject* rotation;
+ PyArrayObject* translation;
+ PyArrayObject* atom_type;
+ PyArrayObject* magmom;
+ PyArrayObject* equiv_atoms_py;
+
+ double (*lat)[3];
+ double (*pos)[3];
+ double *spins;
+ int *types;
+ int num_atom;
+ int (*rot)[3][3];
+ double (*trans)[3];
+ int *equiv_atoms;
+ int num_sym_from_array_size;
+ int num_sym;
+
+ if (!PyArg_ParseTuple(args, "OOOOOOOdd",
+ &rotation,
+ &translation,
+ &equiv_atoms_py,
+ &lattice,
+ &position,
+ &atom_type,
+ &magmom,
+ &symprec,
+ &angle_tolerance)) {
+ return NULL;
+ }
+
+ lat = (double(*)[3])PyArray_DATA(lattice);
+ pos = (double(*)[3])PyArray_DATA(position);
+ spins = (double*)PyArray_DATA(magmom);
+ types = (int*)PyArray_DATA(atom_type);
+ num_atom = PyArray_DIMS(position)[0];
+ rot = (int(*)[3][3])PyArray_DATA(rotation);
+ trans = (double(*)[3])PyArray_DATA(translation);
+ equiv_atoms = (int*)PyArray_DATA(equiv_atoms_py);
+ num_sym_from_array_size = PyArray_DIMS(rotation)[0];
+
+ /* num_sym has to be larger than num_sym_from_array_size. */
+ num_sym = spgat_get_symmetry_with_collinear_spin(rot,
+ trans,
+ equiv_atoms,
+ num_sym_from_array_size,
+ lat,
+ pos,
+ types,
+ spins,
+ num_atom,
+ symprec,
+ angle_tolerance);
+ return PyLong_FromLong((long) num_sym);
+}
+
+static PyObject *
+py_get_hall_number_from_symmetry(PyObject *self, PyObject *args)
+{
+ double symprec;
+ PyArrayObject* rotation;
+ PyArrayObject* translation;
+
+ int (*rot)[3][3];
+ double (*trans)[3];
+ int num_sym;
+ int hall_number;
+
+ if (!PyArg_ParseTuple(args, "OOd",
+ &rotation,
+ &translation,
+ &symprec)) {
+ return NULL;
+ }
+
+ rot = (int(*)[3][3])PyArray_DATA(rotation);
+ trans = (double(*)[3])PyArray_DATA(translation);
+ num_sym = PyArray_DIMS(rotation)[0];
+
+ hall_number = spg_get_hall_number_from_symmetry(rot,
+ trans,
+ num_sym,
+ symprec);
+
+ return PyLong_FromLong((long) hall_number);
+}
+
+static PyObject * py_get_grid_point_from_address(PyObject *self, PyObject *args)
+{
+ PyArrayObject* grid_address_py;
+ PyArrayObject* mesh_py;
+
+ int* grid_address;
+ int* mesh;
+ int gp;
+
+ if (!PyArg_ParseTuple(args, "OO",
+ &grid_address_py,
+ &mesh_py)) {
+ return NULL;
+ }
+
+ grid_address = (int*)PyArray_DATA(grid_address_py);
+ mesh = (int*)PyArray_DATA(mesh_py);
+
+ gp = spg_get_grid_point_from_address(grid_address, mesh);
+
+ return PyLong_FromLong((long) gp);
+}
+
+static PyObject * py_get_ir_reciprocal_mesh(PyObject *self, PyObject *args)
+{
+ double symprec;
+ PyArrayObject* grid_address_py;
+ PyArrayObject* map;
+ PyArrayObject* mesh;
+ PyArrayObject* is_shift;
+ int is_time_reversal;
+ PyArrayObject* lattice;
+ PyArrayObject* position;
+ PyArrayObject* atom_type;
+
+ double (*lat)[3];
+ double (*pos)[3];
+ int* types;
+ int* mesh_int;
+ int* is_shift_int;
+ int num_atom;
+ int (*grid_address)[3];
+ int *map_int;
+ int num_ir;
+
+ if (!PyArg_ParseTuple(args, "OOOOiOOOd",
+ &grid_address_py,
+ &map,
+ &mesh,
+ &is_shift,
+ &is_time_reversal,
+ &lattice,
+ &position,
+ &atom_type,
+ &symprec)) {
+ return NULL;
+ }
+
+ lat = (double(*)[3])PyArray_DATA(lattice);
+ pos = (double(*)[3])PyArray_DATA(position);
+ types = (int*)PyArray_DATA(atom_type);
+ mesh_int = (int*)PyArray_DATA(mesh);
+ is_shift_int = (int*)PyArray_DATA(is_shift);
+ num_atom = PyArray_DIMS(position)[0];
+ grid_address = (int(*)[3])PyArray_DATA(grid_address_py);
+ map_int = (int*)PyArray_DATA(map);
+
+ /* num_sym has to be larger than num_sym_from_array_size. */
+ num_ir = spg_get_ir_reciprocal_mesh(grid_address,
+ map_int,
+ mesh_int,
+ is_shift_int,
+ is_time_reversal,
+ lat,
+ pos,
+ types,
+ num_atom,
+ symprec);
+
+ return PyLong_FromLong((long) num_ir);
+}
+
+static PyObject *
+py_get_stabilized_reciprocal_mesh(PyObject *self, PyObject *args)
+{
+ PyArrayObject* grid_address_py;
+ PyArrayObject* map;
+ PyArrayObject* mesh;
+ PyArrayObject* is_shift;
+ int is_time_reversal;
+ PyArrayObject* rotations;
+ PyArrayObject* qpoints;
+
+ int (*grid_address)[3];
+ int *map_int;
+ int* mesh_int;
+ int* is_shift_int;
+ int (*rot)[3][3];
+ int num_rot;
+ double (*q)[3];
+ int num_q;
+ int num_ir;
+
+ if (!PyArg_ParseTuple(args, "OOOOiOO",
+ &grid_address_py,
+ &map,
+ &mesh,
+ &is_shift,
+ &is_time_reversal,
+ &rotations,
+ &qpoints)) {
+ return NULL;
+ }
+
+ grid_address = (int(*)[3])PyArray_DATA(grid_address_py);
+ map_int = (int*)PyArray_DATA(map);
+ mesh_int = (int*)PyArray_DATA(mesh);
+ is_shift_int = (int*)PyArray_DATA(is_shift);
+ rot = (int(*)[3][3])PyArray_DATA(rotations);
+ num_rot = PyArray_DIMS(rotations)[0];
+ q = (double(*)[3])PyArray_DATA(qpoints);
+ num_q = PyArray_DIMS(qpoints)[0];
+
+ num_ir = spg_get_stabilized_reciprocal_mesh(grid_address,
+ map_int,
+ mesh_int,
+ is_shift_int,
+ is_time_reversal,
+ num_rot,
+ rot,
+ num_q,
+ q);
+
+ return PyLong_FromLong((long) num_ir);
+}
+
+static PyObject *
+py_get_grid_points_by_rotations(PyObject *self, PyObject *args)
+{
+ PyArrayObject* rot_grid_points_py;
+ PyArrayObject* address_orig_py;
+ PyArrayObject* rot_reciprocal_py;
+ PyArrayObject* mesh_py;
+ PyArrayObject* is_shift_py;
+
+ int *rot_grid_points;
+ int *address_orig;
+ int (*rot_reciprocal)[3][3];
+ int num_rot;
+ int* mesh;
+ int* is_shift;
+
+ if (!PyArg_ParseTuple(args, "OOOOO",
+ &rot_grid_points_py,
+ &address_orig_py,
+ &rot_reciprocal_py,
+ &mesh_py,
+ &is_shift_py)) {
+ return NULL;
+ }
+
+ rot_grid_points = (int*)PyArray_DATA(rot_grid_points_py);
+ address_orig = (int*)PyArray_DATA(address_orig_py);
+ rot_reciprocal = (int(*)[3][3])PyArray_DATA(rot_reciprocal_py);
+ num_rot = PyArray_DIMS(rot_reciprocal_py)[0];
+ mesh = (int*)PyArray_DATA(mesh_py);
+ is_shift = (int*)PyArray_DATA(is_shift_py);
+
+ spg_get_grid_points_by_rotations(rot_grid_points,
+ address_orig,
+ num_rot,
+ rot_reciprocal,
+ mesh,
+ is_shift);
+ Py_RETURN_NONE;
+}
+
+static PyObject *
+py_get_BZ_grid_points_by_rotations(PyObject *self, PyObject *args)
+{
+ PyArrayObject* rot_grid_points_py;
+ PyArrayObject* address_orig_py;
+ PyArrayObject* rot_reciprocal_py;
+ PyArrayObject* mesh_py;
+ PyArrayObject* is_shift_py;
+ PyArrayObject* bz_map_py;
+
+ int *rot_grid_points;
+ int *address_orig;
+ int (*rot_reciprocal)[3][3];
+ int num_rot;
+ int* mesh;
+ int* is_shift;
+ int* bz_map;
+
+ if (!PyArg_ParseTuple(args, "OOOOOO",
+ &rot_grid_points_py,
+ &address_orig_py,
+ &rot_reciprocal_py,
+ &mesh_py,
+ &is_shift_py,
+ &bz_map_py)) {
+ return NULL;
+ }
+
+ rot_grid_points = (int*)PyArray_DATA(rot_grid_points_py);
+ address_orig = (int*)PyArray_DATA(address_orig_py);
+ rot_reciprocal = (int(*)[3][3])PyArray_DATA(rot_reciprocal_py);
+ num_rot = PyArray_DIMS(rot_reciprocal_py)[0];
+ mesh = (int*)PyArray_DATA(mesh_py);
+ is_shift = (int*)PyArray_DATA(is_shift_py);
+ bz_map = (int*)PyArray_DATA(bz_map_py);
+
+ spg_get_BZ_grid_points_by_rotations(rot_grid_points,
+ address_orig,
+ num_rot,
+ rot_reciprocal,
+ mesh,
+ is_shift,
+ bz_map);
+ Py_RETURN_NONE;
+}
+
+static PyObject * py_relocate_BZ_grid_address(PyObject *self, PyObject *args)
+{
+ PyArrayObject* bz_grid_address_py;
+ PyArrayObject* bz_map_py;
+ PyArrayObject* grid_address_py;
+ PyArrayObject* mesh_py;
+ PyArrayObject* is_shift_py;
+ PyArrayObject* reciprocal_lattice_py;
+
+ int (*bz_grid_address)[3];
+ int *bz_map;
+ int (*grid_address)[3];
+ int* mesh;
+ int* is_shift;
+ double (*reciprocal_lattice)[3];
+ int num_ir_gp;
+
+ if (!PyArg_ParseTuple(args, "OOOOOO",
+ &bz_grid_address_py,
+ &bz_map_py,
+ &grid_address_py,
+ &mesh_py,
+ &reciprocal_lattice_py,
+ &is_shift_py)) {
+ return NULL;
+ }
+
+ bz_grid_address = (int(*)[3])PyArray_DATA(bz_grid_address_py);
+ bz_map = (int*)PyArray_DATA(bz_map_py);
+ grid_address = (int(*)[3])PyArray_DATA(grid_address_py);
+ mesh = (int*)PyArray_DATA(mesh_py);
+ is_shift = (int*)PyArray_DATA(is_shift_py);
+ reciprocal_lattice = (double(*)[3])PyArray_DATA(reciprocal_lattice_py);
+
+ num_ir_gp = spg_relocate_BZ_grid_address(bz_grid_address,
+ bz_map,
+ grid_address,
+ mesh,
+ reciprocal_lattice,
+ is_shift);
+
+ return PyLong_FromLong((long) num_ir_gp);
+}
+
+static PyObject * py_delaunay_reduce(PyObject *self, PyObject *args)
+{
+ PyArrayObject* lattice_py;
+ double symprec;
+
+ double (*lattice)[3];
+ int result;
+
+ if (!PyArg_ParseTuple(args, "Od", &lattice_py, &symprec)) {
+ return NULL;
+ }
+
+ lattice = (double(*)[3])PyArray_DATA(lattice_py);
+
+ result = spg_delaunay_reduce(lattice, symprec);
+
+ return PyLong_FromLong((long) result);
+}
+
+static PyObject * py_niggli_reduce(PyObject *self, PyObject *args)
+{
+ PyArrayObject* lattice_py;
+ double eps;
+
+ double (*lattice)[3];
+ int result;
+
+ if (!PyArg_ParseTuple(args, "Od", &lattice_py, &eps)) {
+ return NULL;
+ }
+
+ lattice = (double(*)[3])PyArray_DATA(lattice_py);
+
+ result = spg_niggli_reduce(lattice, eps);
+
+ return PyLong_FromLong((long) result);
+}
+
+static PyObject * py_get_error_message(PyObject *self, PyObject *args)
+{
+ SpglibError error;
+
+ if (!PyArg_ParseTuple(args, "")) {
+ return NULL;
+ }
+
+ error = spg_get_error_code();
+
+ return PYUNICODE_FROMSTRING(spg_get_error_message(error));
+}
diff --git a/python/ase/ChangeLog b/python/ase/ChangeLog
deleted file mode 100644
index bec6290..0000000
--- a/python/ase/ChangeLog
+++ /dev/null
@@ -1,9 +0,0 @@
-2012-05-28 Atsushi Togo <atz.togo at gmail.com>
-
- * _spglib.c:
-
- Memoery space of python list object created by pyspglib was not
- released because of wrongly handled call of PyList_Append. Now
- they are replaced by PyList_SetItem and hopefully this problem is
- fixed.
-
diff --git a/python/ase/MANIFEST.in b/python/ase/MANIFEST.in
deleted file mode 100644
index 3a04f5a..0000000
--- a/python/ase/MANIFEST.in
+++ /dev/null
@@ -1 +0,0 @@
-include src/*.h
diff --git a/python/ase/_spglib.c b/python/ase/_spglib.c
deleted file mode 100644
index bfc98b7..0000000
--- a/python/ase/_spglib.c
+++ /dev/null
@@ -1,847 +0,0 @@
-#include <Python.h>
-#include <stdio.h>
-#include <numpy/arrayobject.h>
-#include <spglib.h>
-
-static PyObject * get_dataset(PyObject *self, PyObject *args);
-static PyObject * get_spacegroup(PyObject *self, PyObject *args);
-static PyObject * get_pointgroup(PyObject *self, PyObject *args);
-static PyObject * refine_cell(PyObject *self, PyObject *args);
-static PyObject * get_symmetry(PyObject *self, PyObject *args);
-static PyObject * get_symmetry_with_collinear_spin(PyObject *self, PyObject *args);
-static PyObject * find_primitive(PyObject *self, PyObject *args);
-static PyObject * get_ir_kpoints(PyObject *self, PyObject *args);
-static PyObject * get_ir_reciprocal_mesh(PyObject *self, PyObject *args);
-static PyObject * get_stabilized_reciprocal_mesh(PyObject *self, PyObject *args);
-static PyObject * get_triplets_reciprocal_mesh(PyObject *self, PyObject *args);
-static PyObject * get_triplets_reciprocal_mesh_at_q(PyObject *self, PyObject *args);
-static PyObject * extract_triplets_reciprocal_mesh_at_q(PyObject *self, PyObject *args);
-
-static PyMethodDef functions[] = {
- {"dataset", get_dataset, METH_VARARGS,
- "Dataset for crystal symmetry"},
- {"spacegroup", get_spacegroup, METH_VARARGS,
- "International symbol"},
- {"pointgroup", get_pointgroup, METH_VARARGS,
- "International symbol of pointgroup"},
- {"refine_cell", refine_cell, METH_VARARGS,
- "Refine cell"},
- {"symmetry", get_symmetry, METH_VARARGS,
- "Symmetry operations"},
- {"symmetry_with_collinear_spin", get_symmetry_with_collinear_spin,
- METH_VARARGS, "Symmetry operations with collinear spin magnetic moments"},
- {"primitive", find_primitive, METH_VARARGS,
- "Find primitive cell in the input cell"},
- {"ir_kpoints", get_ir_kpoints, METH_VARARGS,
- "Irreducible k-points"},
- {"ir_reciprocal_mesh", get_ir_reciprocal_mesh, METH_VARARGS,
- "Reciprocal mesh points with map"},
- {"stabilized_reciprocal_mesh", get_stabilized_reciprocal_mesh, METH_VARARGS,
- "Reciprocal mesh points with map"},
- {"triplets_reciprocal_mesh", get_triplets_reciprocal_mesh, METH_VARARGS,
- "Triplets on reciprocal mesh points"},
- {"triplets_reciprocal_mesh_at_q", get_triplets_reciprocal_mesh_at_q,
- METH_VARARGS, "Triplets on reciprocal mesh points at a specific q-point"},
- {"triplets_reciprocal_mesh_at_q_from_triplets",
- extract_triplets_reciprocal_mesh_at_q, METH_VARARGS,
- "Triplets on reciprocal mesh points at a specific q-point extracted from full triplets"},
- {NULL, NULL, 0, NULL}
-};
-
-PyMODINIT_FUNC init_spglib(void)
-{
- Py_InitModule3("_spglib", functions, "C-extension for spglib\n\n...\n");
- return;
-}
-
-static PyObject * get_dataset(PyObject *self, PyObject *args)
-{
- int i, j, k;
- double symprec, angle_tolerance;
- SpglibDataset *dataset;
- PyArrayObject* lattice;
- PyArrayObject* position;
- PyArrayObject* atom_type;
- PyObject* array, *vec, *mat, *rot, *trans, *wyckoffs, *equiv_atoms;
-
- if (!PyArg_ParseTuple(args, "OOOdd",
- &lattice,
- &position,
- &atom_type,
- &symprec,
- &angle_tolerance)) {
- return NULL;
- }
-
- SPGCONST double (*lat)[3] = (double(*)[3])lattice->data;
- SPGCONST double (*pos)[3] = (double(*)[3])position->data;
- const int num_atom = position->dimensions[0];
- const long* typat_long = (long*)atom_type->data;
-
- int typat[atom_type->dimensions[0]];
- for (i = 0; i < num_atom; i++) {
- typat[i] = (int)typat_long[i];
- }
-
- dataset = spgat_get_dataset(lat,
- pos,
- typat,
- num_atom,
- symprec,
- angle_tolerance);
-
- array = PyList_New(9);
-
- /* Space group number, international symbol, hall symbol */
- PyList_SetItem(array, 0, PyInt_FromLong((long) dataset->spacegroup_number));
- PyList_SetItem(array, 1, PyString_FromString(dataset->international_symbol));
- PyList_SetItem(array, 2, PyString_FromString(dataset->hall_symbol));
-
- /* Transformation matrix */
- mat = PyList_New(3);
- for (i = 0; i < 3; i++) {
- vec = PyList_New(3);
- for (j = 0; j < 3; j++) {
- PyList_SetItem(vec, j, PyFloat_FromDouble(dataset->transformation_matrix[i][j]));
- }
- PyList_SetItem(mat, i, vec);
- }
- PyList_SetItem(array, 3, mat);
-
- /* Origin shift */
- vec = PyList_New(3);
- for (i = 0; i < 3; i++) {
- PyList_SetItem(vec, i, PyFloat_FromDouble(dataset->origin_shift[i]));
- }
- PyList_SetItem(array, 4, vec);
-
- /* Rotation matrices */
- rot = PyList_New(dataset->n_operations);
- for (i = 0; i < dataset->n_operations; i++) {
- mat = PyList_New(3);
- for (j = 0; j < 3; j++) {
- vec = PyList_New(3);
- for (k = 0; k < 3; k++) {
- PyList_SetItem(vec, k, PyInt_FromLong((long) dataset->rotations[i][j][k]));
- }
- PyList_SetItem(mat, j, vec);
- }
- PyList_SetItem(rot, i, mat);
- }
- PyList_SetItem(array, 5, rot);
-
- /* Translation vectors */
- trans = PyList_New(dataset->n_operations);
- for (i = 0; i < dataset->n_operations; i++) {
- vec = PyList_New(3);
- for (j = 0; j < 3; j++) {
- PyList_SetItem(vec, j, PyFloat_FromDouble(dataset->translations[i][j]));
- }
- PyList_SetItem(trans, i, vec);
- }
- PyList_SetItem(array, 6, trans);
-
- /* Wyckoff letters, Equivalent atoms */
- wyckoffs = PyList_New(dataset->n_atoms);
- equiv_atoms = PyList_New(dataset->n_atoms);
- for (i = 0; i < dataset->n_atoms; i++) {
- PyList_SetItem(wyckoffs, i, PyInt_FromLong((long) dataset->wyckoffs[i]));
- PyList_SetItem(equiv_atoms, i, PyInt_FromLong((long) dataset->equivalent_atoms[i]));
- }
- PyList_SetItem(array, 7, wyckoffs);
- PyList_SetItem(array, 8, equiv_atoms);
- spg_free_dataset(dataset);
-
- return array;
-}
-
-static PyObject * get_spacegroup(PyObject *self, PyObject *args)
-{
- int i;
- double symprec, angle_tolerance;
- char symbol[26];
- PyArrayObject* lattice;
- PyArrayObject* position;
- PyArrayObject* atom_type;
- if (!PyArg_ParseTuple(args, "OOOdd",
- &lattice,
- &position,
- &atom_type,
- &symprec,
- &angle_tolerance)) {
- return NULL;
- }
-
- SPGCONST double (*lat)[3] = (double(*)[3])lattice->data;
- SPGCONST double (*pos)[3] = (double(*)[3])position->data;
- const int num_atom = position->dimensions[0];
- const long* typat_long = (long*)atom_type->data;
-
- int typat[num_atom];
- for (i = 0; i < num_atom; i++)
- typat[i] = (int)typat_long[i];
-
- const int num_spg = spgat_get_international(symbol,
- lat,
- pos,
- typat,
- num_atom,
- symprec,
- angle_tolerance);
- sprintf(symbol, "%s (%d)", symbol, num_spg);
-
- return PyString_FromString(symbol);
-}
-
-static PyObject * get_pointgroup(PyObject *self, PyObject *args)
-{
- PyArrayObject* rotations;
- if (! PyArg_ParseTuple(args, "O", &rotations)) {
- return NULL;
- }
-
- long *rot_long = (long*)rotations->data;
-
- int i, j, k;
- int trans_mat[3][3];
- char symbol[6];
- PyObject* array, * mat, * vec;
-
- const int num_rot = rotations->dimensions[0];
- int rot[num_rot][3][3];
- for (i = 0; i < num_rot; i++) {
- for (j = 0; j < 3; j++) {
- for (k = 0; k < 3; k++) {
- rot[i][j][k] = (int) rot_long[ i*9 + j*3 + k ];
- }
- }
- }
-
- const int ptg_num = spg_get_pointgroup(symbol, trans_mat, rot, num_rot);
-
- /* Transformation matrix */
- mat = PyList_New(3);
- for (i = 0; i < 3; i++) {
- vec = PyList_New(3);
- for (j = 0; j < 3; j++) {
- PyList_SetItem(vec, j, PyInt_FromLong((long)trans_mat[i][j]));
- }
- PyList_SetItem(mat, i, vec);
- }
-
- array = PyList_New(3);
- PyList_SetItem(array, 0, PyString_FromString(symbol));
- PyList_SetItem(array, 1, PyInt_FromLong((long) ptg_num));
- PyList_SetItem(array, 2, mat);
-
- return array;
-}
-
-static PyObject * refine_cell(PyObject *self, PyObject *args)
-{
- int i, num_atom;
- double symprec, angle_tolerance;
- PyArrayObject* lattice;
- PyArrayObject* position;
- PyArrayObject* atom_type;
- if (!PyArg_ParseTuple(args, "OOOidd",
- &lattice,
- &position,
- &atom_type,
- &num_atom,
- &symprec,
- &angle_tolerance)) {
- return NULL;
- }
-
- double (*lat)[3] = (double(*)[3])lattice->data;
- SPGCONST double (*pos)[3] = (double(*)[3])position->data;
- long* typat_long = (long*)atom_type->data;
-
- int typat[atom_type->dimensions[0]];
- for (i = 0; i < num_atom; i++) {
- typat[i] = (int)typat_long[i];
- }
-
- int num_atom_brv = spgat_refine_cell(lat,
- pos,
- typat,
- num_atom,
- symprec,
- angle_tolerance);
-
- for (i = 0; i < num_atom_brv; i++) {
- typat_long[i] = typat[i];
- }
-
- return PyInt_FromLong((long) num_atom_brv);
-}
-
-
-static PyObject * find_primitive(PyObject *self, PyObject *args)
-{
- int i;
- double symprec, angle_tolerance;
- PyArrayObject* lattice;
- PyArrayObject* position;
- PyArrayObject* atom_type;
- if (!PyArg_ParseTuple(args, "OOOdd",
- &lattice,
- &position,
- &atom_type,
- &symprec,
- &angle_tolerance)) {
- return NULL;
- }
-
- double (*lat)[3] = (double(*)[3])lattice->data;
- double (*pos)[3] = (double(*)[3])position->data;
- int num_atom = position->dimensions[0];
- long* types_long = (long*)atom_type->data;
-
- int types[num_atom];
- for (i = 0; i < num_atom; i++) {
- types[i] = (int)types_long[i];
- }
-
- int num_atom_prim = spgat_find_primitive(lat,
- pos,
- types,
- num_atom,
- symprec,
- angle_tolerance);
-
- for (i = 0; i < num_atom_prim; i++) {
- types_long[i] = types[i];
- }
-
- return PyInt_FromLong((long) num_atom_prim);
-}
-
-static PyObject * get_symmetry(PyObject *self, PyObject *args)
-{
- int i, j, k;
- double symprec, angle_tolerance;
- PyArrayObject* lattice;
- PyArrayObject* position;
- PyArrayObject* rotation;
- PyArrayObject* translation;
- PyArrayObject* atom_type;
- if (!PyArg_ParseTuple(args, "OOOOOdd",
- &rotation,
- &translation,
- &lattice,
- &position,
- &atom_type,
- &symprec,
- &angle_tolerance)) {
- return NULL;
- }
-
- SPGCONST double (*lat)[3] = (double(*)[3])lattice->data;
- SPGCONST double (*pos)[3] = (double(*)[3])position->data;
- const long* types_long = (long*)atom_type->data;
- const int num_atom = position->dimensions[0];
- long *rot_long = (long*)rotation->data;
- double (*trans)[3] = (double(*)[3])translation->data;
- const int num_sym_from_array_size = rotation->dimensions[0];
-
- int rot[num_sym_from_array_size][3][3];
-
- int types[num_atom];
- for (i = 0; i < num_atom; i++) {
- types[i] = (int)types_long[i];
- }
-
- /* num_sym has to be larger than num_sym_from_array_size. */
- const int num_sym = spgat_get_symmetry(rot,
- trans,
- num_sym_from_array_size,
- lat,
- pos,
- types,
- num_atom,
- symprec,
- angle_tolerance);
- for (i = 0; i < num_sym; i++) {
- for (j = 0; j < 3; j++) {
- for (k = 0; k < 3; k++) {
- rot_long[i*9+j*3+k] = (long)rot[i][j][k];
- }
- }
- }
-
- return PyInt_FromLong((long) num_sym);
-}
-
-static PyObject * get_symmetry_with_collinear_spin(PyObject *self,
- PyObject *args)
-{
- int i, j, k;
- double symprec, angle_tolerance;
- PyArrayObject* lattice;
- PyArrayObject* position;
- PyArrayObject* rotation;
- PyArrayObject* translation;
- PyArrayObject* atom_type;
- PyArrayObject* magmom;
- if (!PyArg_ParseTuple(args, "OOOOOOdd",
- &rotation,
- &translation,
- &lattice,
- &position,
- &atom_type,
- &magmom,
- &symprec,
- &angle_tolerance)) {
- return NULL;
- }
-
- SPGCONST double (*lat)[3] = (double(*)[3])lattice->data;
- SPGCONST double (*pos)[3] = (double(*)[3])position->data;
- const double *spins = (double*) magmom->data;
- const long* types_long = (long*)atom_type->data;
- const int num_atom = position->dimensions[0];
- long *rot_long = (long*)rotation->data;
- double (*trans)[3] = (double(*)[3])translation->data;
- const int num_sym_from_array_size = rotation->dimensions[0];
-
- int rot[num_sym_from_array_size][3][3];
- int types[num_atom];
- for (i = 0; i < num_atom; i++) {
- types[i] = (int)types_long[i];
- }
-
- /* num_sym has to be larger than num_sym_from_array_size. */
- const int num_sym =
- spgat_get_symmetry_with_collinear_spin(rot,
- trans,
- num_sym_from_array_size,
- lat,
- pos,
- types,
- spins,
- num_atom,
- symprec,
- angle_tolerance);
- for (i = 0; i < num_sym; i++) {
- for (j = 0; j < 3; j++) {
- for (k = 0; k < 3; k++) {
- rot_long[i*9+j*3+k] = (long)rot[i][j][k];
- }
- }
- }
-
- return PyInt_FromLong((long) num_sym);
-}
-
-static PyObject * get_ir_kpoints(PyObject *self, PyObject *args)
-{
- int i;
- double symprec;
- int is_time_reversal;
- PyArrayObject* kpoint;
- PyArrayObject* kpoint_map;
- PyArrayObject* lattice;
- PyArrayObject* position;
- PyArrayObject* atom_type;
- if (!PyArg_ParseTuple(args, "OOOOOid", &kpoint_map, &kpoint, &lattice, &position,
- &atom_type, &is_time_reversal, &symprec))
- return NULL;
-
- SPGCONST double (*lat)[3] = (double(*)[3])lattice->data;
- SPGCONST double (*pos)[3] = (double(*)[3])position->data;
- SPGCONST double (*kpts)[3] = (double(*)[3])kpoint->data;
- const int num_kpoint = kpoint->dimensions[0];
- const long* types_long = (long*)atom_type->data;
- const int num_atom = position->dimensions[0];
- long *map_long = (long*)kpoint_map->data;
-
- int types[num_atom];
- for (i = 0; i < num_atom; i++)
- types[i] = (int)types_long[i];
-
- int map[num_kpoint];
-
- /* num_sym has to be larger than num_sym_from_array_size. */
- const int num_ir_kpt = spg_get_ir_kpoints(map,
- kpts,
- num_kpoint,
- lat,
- pos,
- types,
- num_atom,
- is_time_reversal,
- symprec);
-
- for (i = 0; i < num_kpoint; i++)
- map_long[i] = (long) map[i];
-
- return PyInt_FromLong((long) num_ir_kpt);
-}
-
-static PyObject * get_ir_reciprocal_mesh(PyObject *self, PyObject *args)
-{
- int i, j;
- double symprec;
- PyArrayObject* grid_point;
- PyArrayObject* map;
- PyArrayObject* mesh;
- PyArrayObject* is_shift;
- int is_time_reversal;
- PyArrayObject* lattice;
- PyArrayObject* position;
- PyArrayObject* atom_type;
- if (!PyArg_ParseTuple(args, "OOOOiOOOd",
- &grid_point,
- &map,
- &mesh,
- &is_shift,
- &is_time_reversal,
- &lattice,
- &position,
- &atom_type,
- &symprec))
- return NULL;
-
- SPGCONST double (*lat)[3] = (double(*)[3])lattice->data;
- SPGCONST double (*pos)[3] = (double(*)[3])position->data;
- const int num_grid = grid_point->dimensions[0];
- const long* types_long = (long*)atom_type->data;
- const long* mesh_long = (long*)mesh->data;
- const long* is_shift_long = (long*)is_shift->data;
- const int num_atom = position->dimensions[0];
- long *grid_long = (long*)grid_point->data;
- int grid_int[num_grid][3];
- long *map_long = (long*)map->data;
- int map_int[num_grid];
-
- int types[num_atom];
- for (i = 0; i < num_atom; i++) {
- types[i] = (int)types_long[i];
- }
-
- int mesh_int[3];
- int is_shift_int[3];
- for (i = 0; i < 3; i++) {
- mesh_int[i] = (int) mesh_long[i];
- is_shift_int[i] = (int) is_shift_long[i];
- }
-
- /* Check memory space */
- if (mesh_int[0]*mesh_int[1]*mesh_int[2] > num_grid) {
- return NULL;
- }
-
- /* num_sym has to be larger than num_sym_from_array_size. */
- const int num_ir = spg_get_ir_reciprocal_mesh(grid_int,
- map_int,
- mesh_int,
- is_shift_int,
- is_time_reversal,
- lat,
- pos,
- types,
- num_atom,
- symprec);
-
- for (i = 0; i < mesh_int[0] * mesh_int[1] * mesh_int[2]; i++) {
- for (j = 0; j < 3; j++)
- grid_long[ i*3 + j ] = (long) grid_int[i][j];
- map_long[i] = (long) map_int[i];
- }
-
- return PyInt_FromLong((long) num_ir);
-}
-
-static PyObject * get_stabilized_reciprocal_mesh(PyObject *self, PyObject *args)
-{
- int i, j, k;
- PyArrayObject* grid_point;
- PyArrayObject* map;
- PyArrayObject* mesh;
- PyArrayObject* is_shift;
- int is_time_reversal;
- PyArrayObject* rotations;
- PyArrayObject* qpoints;
- if (!PyArg_ParseTuple(args, "OOOOiOO",
- &grid_point,
- &map,
- &mesh,
- &is_shift,
- &is_time_reversal,
- &rotations,
- &qpoints)) {
- return NULL;
- }
-
- long *grid_long = (long*)grid_point->data;
- const int num_grid = grid_point->dimensions[0];
- int grid_int[num_grid][3];
-
- long *map_long = (long*)map->data;
- int map_int[num_grid];
-
- int mesh_int[3];
- int is_shift_int[3];
- const long* mesh_long = (long*)mesh->data;
- const long* is_shift_long = (long*)is_shift->data;
- for (i = 0; i < 3; i++) {
- mesh_int[i] = (int) mesh_long[i];
- is_shift_int[i] = (int) is_shift_long[i];
- }
-
- const long* rot_long = (long*)rotations->data;
- const int num_rot = rotations->dimensions[0];
- int rot[num_rot][3][3];
- for (i = 0; i < num_rot; i++) {
- for (j = 0; j < 3; j++) {
- for (k = 0; k < 3; k++) {
- rot[i][j][k] = (int) rot_long[ i*9 + j*3 + k ];
- }
- }
- }
-
- SPGCONST double (*q)[3] = (double(*)[3])qpoints->data;
- const int num_q = qpoints->dimensions[0];
-
- /* Check memory space */
- if (mesh_int[0]*mesh_int[1]*mesh_int[2] > num_grid) {
- return NULL;
- }
-
- const int num_ir = spg_get_stabilized_reciprocal_mesh(grid_int,
- map_int,
- mesh_int,
- is_shift_int,
- is_time_reversal,
- num_rot,
- rot,
- num_q,
- q);
-
- for (i = 0; i < mesh_int[0] * mesh_int[1] * mesh_int[2]; i++) {
- for (j = 0; j < 3; j++) {
- grid_long[ i*3 + j ] = (long) grid_int[i][j];
- }
- map_long[i] = (long) map_int[i];
- }
-
- return PyInt_FromLong((long) num_ir);
-}
-
-static PyObject * get_triplets_reciprocal_mesh(PyObject *self, PyObject *args)
-{
- PyArrayObject* mesh;
- int is_time_reversal;
- PyArrayObject* rotations;
- if (!PyArg_ParseTuple(args, "OiO",
- &mesh,
- &is_time_reversal,
- &rotations)) {
- return NULL;
- }
-
- int i, j, k, num_grid;
- PyObject * triplets, * weights, *tp, *ret_array, *mesh_points;
-
- int mesh_int[3];
- const long* mesh_long = (long*)mesh->data;
- for (i = 0; i < 3; i++) {
- mesh_int[i] = (int) mesh_long[i];
- }
- const long* rot_long = (long*)rotations->data;
- const int num_rot = rotations->dimensions[0];
- int rot[num_rot][3][3];
- for (i = 0; i < num_rot; i++) {
- for (j = 0; j < 3; j++) {
- for (k = 0; k < 3; k++) {
- rot[i][j][k] = (int) rot_long[ i*9 + j*3 + k ];
- }
- }
- }
-
- SpglibTriplets * spg_triplets =
- spg_get_triplets_reciprocal_mesh(mesh_int,
- is_time_reversal,
- num_rot,
- rot);
-
- num_grid = mesh_int[0] * mesh_int[1] * mesh_int[2];
- ret_array = PyList_New(3);
- triplets = PyList_New(spg_triplets->size);
- weights = PyList_New(spg_triplets->size);
- mesh_points = PyList_New(num_grid);
-
- for (i = 0; i < spg_triplets->size; i++) {
- tp = PyList_New(3);
- for (j = 0; j < 3; j++) {
- PyList_SetItem(tp, j,
- PyInt_FromLong((long) spg_triplets->triplets[i][j]));
- }
- PyList_SetItem(triplets, i, tp);
- PyList_SetItem(weights, i, PyInt_FromLong((long) spg_triplets->weights[i]));
- }
-
- for (i = 0; i < num_grid; i++) {
- tp = PyList_New(3);
- for (j = 0; j < 3; j++) {
- PyList_SetItem(tp, j,
- PyInt_FromLong((long) spg_triplets->mesh_points[i][j]));
- }
- PyList_SetItem(mesh_points, i, tp);
- }
-
- PyList_SetItem(ret_array, 0, triplets);
- PyList_SetItem(ret_array, 1, weights);
- PyList_SetItem(ret_array, 2, mesh_points);
-
- spg_free_triplets(spg_triplets);
-
- return ret_array;
-}
-
-static PyObject * get_triplets_reciprocal_mesh_at_q(PyObject *self, PyObject *args)
-{
- PyArrayObject* weights;
- PyArrayObject* grid_points;
- PyArrayObject* third_q;
- int fixed_grid_number;
- PyArrayObject* mesh;
- int is_time_reversal;
- PyArrayObject* rotations;
- if (!PyArg_ParseTuple(args, "OOOiOiO",
- &weights,
- &grid_points,
- &third_q,
- &fixed_grid_number,
- &mesh,
- &is_time_reversal,
- &rotations)) {
- return NULL;
- }
-
- int i, j, k;
-
- const int num_grid = grid_points->dimensions[0];
- long *grid_points_long = (long*)grid_points->data;
- int grid_points_int[num_grid][3];
- long *weights_long = (long*)weights->data;
- int weights_int[num_grid];
- long *third_q_long = (long*)third_q->data;
- int third_q_int[num_grid];
-
- int mesh_int[3];
- const long* mesh_long = (long*)mesh->data;
- for (i = 0; i < 3; i++) {
- mesh_int[i] = (int) mesh_long[i];
- }
-
- const long* rot_long = (long*)rotations->data;
- const int num_rot = rotations->dimensions[0];
- int rot[num_rot][3][3];
- for (i = 0; i < num_rot; i++) {
- for (j = 0; j < 3; j++) {
- for (k = 0; k < 3; k++) {
- rot[i][j][k] = (int) rot_long[ i*9 + j*3 + k ];
- }
- }
- }
-
- const int num_ir =
- spg_get_triplets_reciprocal_mesh_at_q(weights_int,
- grid_points_int,
- third_q_int,
- fixed_grid_number,
- mesh_int,
- is_time_reversal,
- num_rot,
- rot);
-
- for (i = 0; i < num_grid; i++) {
- weights_long[i] = (long) weights_int[i];
- third_q_long[i] = (long) third_q_int[i];
- for (j = 0; j < 3; j++) {
- grid_points_long[ i*3 + j ] = (long) grid_points_int[i][j];
- }
- }
-
- return PyInt_FromLong((long) num_ir);
-}
-
-static PyObject * extract_triplets_reciprocal_mesh_at_q(PyObject *self, PyObject *args)
-{
- int i, j, k;
- PyArrayObject* triplets_at_q;
- PyArrayObject* weight_triplets_at_q;
- int fixed_grid_number;
- PyArrayObject* triplets;
- PyArrayObject* mesh;
- int is_time_reversal;
- PyArrayObject* rotations;
- if (!PyArg_ParseTuple(args, "OOiOOiO",
- &triplets_at_q,
- &weight_triplets_at_q,
- &fixed_grid_number,
- &triplets,
- &mesh,
- &is_time_reversal,
- &rotations)) {
- return NULL;
- }
-
- const long *triplets_long = (long*)triplets->data;
- const int num_triplets = triplets->dimensions[0];
- int triplets_int[num_triplets][3];
-
- for (i = 0; i < num_triplets; i++) {
- for (j = 0; j < 3; j++) {
- triplets_int[i][j] = (long) triplets_long[ i*3 + j ];
- }
- }
-
- long *triplets_at_q_long = (long*)triplets_at_q->data;
- int triplets_at_q_int[num_triplets][3];
-
- long *weight_triplets_at_q_long = (long*)weight_triplets_at_q->data;
- int weight_triplets_at_q_int[num_triplets];
-
- int mesh_int[3];
- const long* mesh_long = (long*)mesh->data;
- for (i = 0; i < 3; i++) {
- mesh_int[i] = (int) mesh_long[i];
- }
-
- const long* rot_long = (long*)rotations->data;
- const int num_rot = rotations->dimensions[0];
- int rot[num_rot][3][3];
- for (i = 0; i < num_rot; i++) {
- for (j = 0; j < 3; j++) {
- for (k = 0; k < 3; k++) {
- rot[i][j][k] = (int) rot_long[ i*9 + j*3 + k ];
- }
- }
- }
-
- const int num_triplets_at_q =
- spg_extract_triplets_reciprocal_mesh_at_q(triplets_at_q_int,
- weight_triplets_at_q_int,
- fixed_grid_number,
- num_triplets,
- triplets_int,
- mesh_int,
- is_time_reversal,
- num_rot,
- rot);
-
- for (i = 0; i < num_triplets_at_q; i++) {
- weight_triplets_at_q_long[i] = (long) weight_triplets_at_q_int[i];
- for (j = 0; j < 3; j++) {
- triplets_at_q_long[ i*3 + j ] = (long) triplets_at_q_int[i][j];
- }
- }
-
- return PyInt_FromLong((long) num_triplets_at_q);
-}
-
-
diff --git a/python/ase/doc/Makefile b/python/ase/doc/Makefile
deleted file mode 100644
index dbc6dec..0000000
--- a/python/ase/doc/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = sphinx-build
-PAPER =
-
-# Internal variables.
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
-
-help:
- @echo "Please use \`make <target>' where <target> is one of"
- @echo " html to make standalone HTML files"
- @echo " pickle to make pickle files"
- @echo " json to make JSON files"
- @echo " htmlhelp to make HTML files and a HTML help project"
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
- @echo " changes to make an overview over all changed/added/deprecated items"
- @echo " linkcheck to check all external links for integrity"
-
-clean:
- -rm -rf _build/*
-
-html:
- mkdir -p _build/html _build/doctrees
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html
- @echo
- @echo "Build finished. The HTML pages are in _build/html."
-
-pickle:
- mkdir -p _build/pickle _build/doctrees
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) _build/pickle
- @echo
- @echo "Build finished; now you can process the pickle files."
-
-web: pickle
-
-json:
- mkdir -p _build/json _build/doctrees
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) _build/json
- @echo
- @echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
- mkdir -p _build/htmlhelp _build/doctrees
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp
- @echo
- @echo "Build finished; now you can run HTML Help Workshop with the" \
- ".hhp project file in _build/htmlhelp."
-
-latex:
- mkdir -p _build/latex _build/doctrees
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex
- @echo
- @echo "Build finished; the LaTeX files are in _build/latex."
- @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
- "run these through (pdf)latex."
-
-changes:
- mkdir -p _build/changes _build/doctrees
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes
- @echo
- @echo "The overview file is in _build/changes."
-
-linkcheck:
- mkdir -p _build/linkcheck _build/doctrees
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck
- @echo
- @echo "Link check complete; look for any errors in the above output " \
- "or in _build/linkcheck/output.txt."
diff --git a/python/ase/doc/index.rst b/python/ase/doc/index.rst
deleted file mode 100644
index 57d1993..0000000
--- a/python/ase/doc/index.rst
+++ /dev/null
@@ -1,168 +0,0 @@
-pyspglib for ASE
-==========================================
-
-Pyspglib is the python module for spglib. It is written for the
-Atomistic Simulation Environment (ASE).
-
-How to build spglib python module
-=================================
-
-The C sources of spglib and interface for the python C/API are
-compiled. The development environments for python and gcc are required
-before starting to build.
-
-1. Go to the :file:`python/ase` directory
-2. Type the command::
-
- % python setup.py install --home=<my-directory>
-
-The :file:`{<my-directory>}` is possibly current directory, :file:`.`.
-
-3. Put ``lib/python`` path into :envvar:`$PYTHONPATH`, e.g., in your .bashrc.
-
-How to use it
-=============
-1. Import spglib::
-
- from pyspglib import spglib
-
-2. Call the methods with ASE Atoms object.
-
-Methods
-=======
-
-The tolerance is given in Cartesian coordinates.
-
-``get_spacegroup``
-------------------
-::
-
- spacegroup = get_spacegroup(atoms, symprec=1e-5)
-
-``atoms`` is the object of ASE Atoms class. ``symprec`` is the float
-variable, which is used as tolerance in symmetry search.
-
-International space group symbol and the number are obtained as a string.
-
-``get_symmetry``
-----------------
-::
-
- symmetry = get_symmetry(atoms, symprec=1e-5)
-
-``atoms`` is the object of ASE Atoms class. ``symprec`` is the float
-variable, which is used as tolerance in symmetry search.
-
-Symmetry operations are obtained as a dictionary. The key ``rotation``
-contains a numpy array of integer, which is "number of symmetry
-operations" x "3x3 matrices". The key ``translation`` contains a numpy
-array of float, which is "number of symmetry operations" x
-"vectors". The orders of the rotation matrices and the translation
-vectors correspond with each other, e.g. , the second symmetry
-operation is organized by the second rotation matrix and second
-translation vector in the respective arrays. The operations are
-applied for the fractional coordinates (not for Cartesian
-coordinates).
-
-The rotation matrix and translation vector are used as follows::
-
- new_vector[3x1] = rotation[3x3] * vector[3x1] + translation[3x1]
-
-The three values in the vector are given for the a, b, and c axes,
-respectively.
-
-``refine_cell``
--------------------------------
-::
-
- lattice, scaled_positions, numbers = refine_cell(atoms, symprec=1e-5)
-
-``atoms`` is the object of ASE Atoms class. ``symprec`` is the float
-variable, which is used as tolerance in symmetry search.
-
-Bravais lattice (3x3 numpy array), atomic scaled positions (a numpy
-array of [number_of_atoms,3]), and atomic numbers (a 1D numpy array)
-that are symmetrized following space group type are returned.
-
-``get_symmetry_dataset``
-----------------------------
-::
-
- dataset = get_symmetry_dataset(atoms, symprec=1e-5)
-
-``dataset`` is a dictionary. The keys are:
-
-* ``number``: International space group number
-* ``international``: International symbol
-* ``hall``: Hall symbol
-* ``transformation_matrix``: Transformation matrix from lattice of input cell to Bravais lattice :math:`L^{bravais} = L^{original} * T`
-* ``origin shift``: Origin shift in the setting of Bravais lattice
-* ``wyckoffs``: Wyckoff letters
-* ``equivalent_atoms``: Mapping table to equivalent atoms
-* ``rotations`` and ``translations``: Rotation matrices and translation vectors. Space group operations are obtained by::
-
- [(r, t) for r, t in zip(dataset['rotations'], dataset['translations'])]
-
-
-``find_primitive``
-------------------
-::
-
- lattice, scaled_positions, numbers = find_primitive(atoms, symprec=1e-5)
-
-``atoms`` is the object of ASE Atoms class. ``symprec`` is the float
-variable, which is used as tolerance in symmetry search.
-
-When a primitive cell is found, lattice parameters (3x3 numpy array),
-scaled positions (a numpy array of [number_of_atoms,3]), and atomic
-numbers (a 1D numpy array) is returned. When no primitive cell is
-found, (``None``, ``None``, ``None``) is returned.
-
-``get_ir_reciprocal_mesh``
---------------------------
-
-::
-
- mapping, grid = get_ir_reciprocal_mesh(mesh, atoms, is_shift=[0,0,0])
-
-Irreducible k-points are obtained from a sampling mesh of k-points.
-``mesh`` is given by three integers by array and specifies mesh
-numbers along reciprocal primitive axis. ``atoms`` is an Atoms object
-of ASE. ``is_shift`` is given by the three integers by array. When
-``is_shift`` is set for each reciprocal primitive axis, the mesh is
-shifted along the axis in half of adjacent mesh points irrespective of
-the mesh numbers. When the value is not 0, ``is_shift`` is set.
-
-``mapping`` and ``grid`` are returned. ``grid`` gives the mesh points in
-fractional coordinates in reciprocal space. ``mapping`` gives mapping to
-the irreducible k-point indices that are obtained by ::
-
- np.unique( mapping )
-
-Here ``np`` is the imported numpy module. The grid point is accessed
-by ``grid[ index ]``.
-
-For example, the irreducible k-points in fractional coordinates are
-obtained by ::
-
- ir_grid = []
- mapping, grid = get_ir_reciprocal_mesh( [ 8, 8, 8 ], atoms, [ 1, 1, 1 ] )
- for i in np.unique( mapping ):
- ir_grid.append( grid[ i ] )
-
-Example
-=============
-
-Examples are found in ``examples`` directory. An example code is :ref:`this <examples>`.
-
-Instead of ASE's ``Atoms`` class, ``Atoms`` class in ``atoms.py`` in the ``examples`` directory may be used. To use this ``atoms.py``, ::
-
- from atoms import Atoms
-
-
-.. |sflogo| image:: http://sflogo.sourceforge.net/sflogo.php?group_id=161614&type=1
- :target: http://sourceforge.net
-
-
-
-|sflogo|
diff --git a/python/ase/examples/example_ase.py b/python/ase/examples/example_ase.py
deleted file mode 100644
index 385b7ae..0000000
--- a/python/ase/examples/example_ase.py
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/bin/evn python
-
-import sys
-from ase import *
-from pyspglib import spglib
-import numpy as np
-
-silicon = Atoms( symbols=['Si']*8,
- cell=[(4,0,0),
- (0,4,0),
- (0,0,4)],
- scaled_positions=[(0, 0, 0),
- (0, 0.5, 0.5),
- (0.5, 0, 0.5),
- (0.5, 0.5, 0),
- (0.25, 0.25, 0.25),
- (0.25, 0.75, 0.75),
- (0.75, 0.25, 0.75),
- (0.75, 0.75, 0.25)],
- pbc=True)
-
-silicon_prim = Atoms( symbols=['Si']*2,
- cell=[(0,2,2),
- (2,0,2),
- (2,2,0)],
- scaled_positions=[(0, 0, 0),
- (0.25, 0.25, 0.25)],
- pbc=True)
-
-rutile = Atoms( symbols=['Si']*2+['O']*4,
- cell=[ (4,0,0),
- (0,4,0),
- (0,0,3) ],
- scaled_positions=[(0, 0, 0),
- (0.5, 0.5, 0.5),
- (0.3, 0.3, 0.0),
- (0.7, 0.7, 0.0),
- (0.2, 0.8, 0.5),
- (0.8, 0.2, 0.5)],
- pbc=True )
-
-# For VASP case
-# import ase.io.vasp as vasp
-# bulk = vasp.read_vasp(sys.argv[1])
-
-print "[get_spacegroup]"
-print " Spacegroup of Silicon is ", spglib.get_spacegroup(silicon)
-print ""
-print "[get_spacegroup]"
-print " Spacegroup of Rutile is ", spglib.get_spacegroup(rutile)
-print ""
-print "[get_symmetry]"
-print " Symmetry operations of Rutile unitcell are:"
-print ""
-symmetry = spglib.get_symmetry( rutile )
-for i in range(symmetry['rotations'].shape[0]):
- print " --------------- %4d ---------------" % (i+1)
- rot = symmetry['rotations'][i]
- trans = symmetry['translations'][i]
- print " rotation:"
- for x in rot:
- print " [%2d %2d %2d]" % (x[0], x[1], x[2])
- print " translation:"
- print " (%8.5f %8.5f %8.5f)" % (trans[0], trans[1], trans[2])
-print ""
-
-dataset = spglib.get_symmetry_dataset( rutile )
-print "[get_symmetry_dataset] ['international']"
-print " Spacegroup of Rutile is ", dataset['international']
-print ""
-print "[get_symmetry_dataset] ['wyckoffs']"
-alphabet = "abcdefghijklmnopqrstuvwxyz"
-print " Wyckoff letters of Rutile are: ", dataset['wyckoffs']
-print ""
-print "[get_symmetry_dataset] ['equivalent_atoms']"
-print " Mapping to equivalent atoms of Rutile are: "
-for i, x in enumerate( dataset['equivalent_atoms'] ):
- print " %d -> %d" % ( i+1, x+1 )
-print ""
-print "[get_symmetry_dataset] ['rotations'], ['translations']"
-print " Symmetry operations of Rutile unitcell are:"
-for i, (rot,trans) in enumerate( zip( dataset['rotations'], dataset['translations'] ) ):
- print " --------------- %4d ---------------" % (i+1)
- print " rotation:"
- for x in rot:
- print " [%2d %2d %2d]" % (x[0], x[1], x[2])
- print " translation:"
- print " (%8.5f %8.5f %8.5f)" % (trans[0], trans[1], trans[2])
-print ""
-
-symmetry = spglib.get_symmetry(silicon)
-print "[get_symmetry]"
-print " Number of symmetry operations of silicon convensional"
-print " unit cell is ", len( symmetry['rotations'] ), "(192)."
-print ""
-
-mapping, grid = spglib.get_ir_reciprocal_mesh( [ 11, 11, 11 ],
- silicon_prim,
- is_shift=[ 0, 0, 0 ] )
-num_ir_kpt = len( np.unique( mapping ) )
-print "[get_ir_reciprocal_mesh]"
-print " Number of irreducible k-points of primitive silicon with"
-print " 11x11x11 Monkhorst-Pack mesh is ", num_ir_kpt, "(56)."
-print ""
-
-mapping, grid = spglib.get_ir_reciprocal_mesh( [ 8, 8, 8 ],
- rutile,
- is_shift=[ 1, 1, 1 ] )
-num_ir_kpt = len( np.unique( mapping ) )
-print "[get_ir_reciprocal_mesh]"
-print " Number of irreducible k-points of Rutile with"
-print " 8x8x8 Monkhorst-Pack mesh is ", num_ir_kpt, "(40)."
-print ""
-
-
-mesh = np.array([8,8,8])
-kpoints = []
-for i in range(mesh[0]):
- for j in range(mesh[1]):
- for k in range(mesh[2]):
- kpoints.append([float(i)/mesh[0],
- float(j)/mesh[1],
- float(k)/mesh[2]])
-kpoints = np.array(kpoints) + 0.5/mesh
-kpoints = kpoints - 1 * ( kpoints > 0.5 )
-mapping = spglib.get_ir_kpoints( kpoints, rutile )
-num_ir_kpt = len( np.unique( mapping ) )
-print "[get_ir_kpoints]"
-print " Number of irreducible k-points of Rutile with"
-print " 8x8x8 Monkhorst-Pack mesh is ", num_ir_kpt, "(40)."
-print ""
-
diff --git a/python/ase/examples/example_atoms.py b/python/ase/examples/example_atoms.py
deleted file mode 100644
index 678d438..0000000
--- a/python/ase/examples/example_atoms.py
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/evn python
-
-import sys
-from pyspglib import spglib
-import numpy as np
-
-try:
- from atoms import Atoms
-except ImportError:
- print "Atoms class is necessary."
- print "You can use atoms.py in the test/ directory."
- sys.exit(1)
-
-silicon = Atoms( symbols=['Si']*8,
- cell=[(4,0,0),
- (0,4,0),
- (0,0,4)],
- scaled_positions=[(0, 0, 0),
- (0, 0.5, 0.5),
- (0.5, 0, 0.5),
- (0.5, 0.5, 0),
- (0.25, 0.25, 0.25),
- (0.25, 0.75, 0.75),
- (0.75, 0.25, 0.75),
- (0.75, 0.75, 0.25)],
- pbc=True)
-
-silicon_prim = Atoms( symbols=['Si']*2,
- cell=[(0,2,2),
- (2,0,2),
- (2,2,0)],
- scaled_positions=[(0, 0, 0),
- (0.25, 0.25, 0.25)],
- pbc=True)
-
-rutile = Atoms( symbols=['Si']*2+['O']*4,
- cell=[ (4,0,0),
- (0,4,0),
- (0,0,3) ],
- scaled_positions=[(0, 0, 0),
- (0.5, 0.5, 0.5),
- (0.3, 0.3, 0.0),
- (0.7, 0.7, 0.0),
- (0.2, 0.8, 0.5),
- (0.8, 0.2, 0.5)],
- pbc=True )
-
-a = 3.07
-c = 3.52
-MgB2 = Atoms( symbols=['Mg']+['B']*2,
- cell=[ ( a, 0, 0 ),
- ( -a/2, a/2*np.sqrt(3), 0 ),
- ( 0, 0, c ) ],
- scaled_positions=[ ( 0, 0, 0 ),
- ( 1.0/3, 2.0/3, 0.5 ),
- ( 2.0/3, 1.0/3, 0.5 ) ],
- pbc=True )
-
-# For VASP case
-# import vasp
-# bulk = vasp.read_vasp(sys.argv[1])
-
-print "[get_spacegroup]"
-print " Spacegroup of Silicon is ", spglib.get_spacegroup(silicon)
-print ""
-print "[get_spacegroup]"
-print " Spacegroup of Rutile is ", spglib.get_spacegroup(rutile)
-print ""
-print "[get_spacegroup]"
-print " Spacegroup of MgB2 is ", spglib.get_spacegroup(MgB2)
-print ""
-print "[get_symmetry]"
-print " Symmetry operations of Rutile unitcell are:"
-print ""
-symmetry = spglib.get_symmetry( rutile )
-for i in range(symmetry['rotations'].shape[0]):
- print " --------------- %4d ---------------" % (i+1)
- rot = symmetry['rotations'][i]
- trans = symmetry['translations'][i]
- print " rotation:"
- for x in rot:
- print " [%2d %2d %2d]" % (x[0], x[1], x[2])
- print " translation:"
- print " (%8.5f %8.5f %8.5f)" % (trans[0], trans[1], trans[2])
-print ""
-print "[get_pointgroup]"
-print " Pointgroup of Rutile is", spglib.get_pointgroup(symmetry['rotations'])[0]
-print ""
-
-dataset = spglib.get_symmetry_dataset( rutile )
-print "[get_symmetry_dataset] ['international']"
-print " Spacegroup of Rutile is ", dataset['international']
-print ""
-print "[get_symmetry_dataset] ['wyckoffs']"
-alphabet = "abcdefghijklmnopqrstuvwxyz"
-print " Wyckoff letters of Rutile are: ", dataset['wyckoffs']
-print ""
-print "[get_symmetry_dataset] ['equivalent_atoms']"
-print " Mapping to equivalent atoms of Rutile are: "
-for i, x in enumerate( dataset['equivalent_atoms'] ):
- print " %d -> %d" % ( i+1, x+1 )
-print ""
-print "[get_symmetry_dataset] ['rotations'], ['translations']"
-print " Symmetry operations of Rutile unitcell are:"
-for i, (rot,trans) in enumerate( zip( dataset['rotations'], dataset['translations'] ) ):
- print " --------------- %4d ---------------" % (i+1)
- print " rotation:"
- for x in rot:
- print " [%2d %2d %2d]" % (x[0], x[1], x[2])
- print " translation:"
- print " (%8.5f %8.5f %8.5f)" % (trans[0], trans[1], trans[2])
-print ""
-
-symmetry = spglib.get_symmetry(silicon)
-print "[get_symmetry]"
-print " Number of symmetry operations of silicon convensional"
-print " unit cell is ", len( symmetry['rotations'] ), "(192)."
-print ""
-
-mapping, grid = spglib.get_ir_reciprocal_mesh( [ 11, 11, 11 ],
- silicon_prim,
- is_shift=[ 0, 0, 0 ] )
-num_ir_kpt = len( np.unique( mapping ) )
-print "[get_ir_reciprocal_mesh]"
-print " Number of irreducible k-points of primitive silicon with"
-print " 11x11x11 Monkhorst-Pack mesh is ", num_ir_kpt, "(56)."
-print ""
-
-mapping, grid = spglib.get_ir_reciprocal_mesh( [ 8, 8, 8 ],
- rutile,
- is_shift=[ 1, 1, 1 ] )
-num_ir_kpt = len( np.unique( mapping ) )
-print "[get_ir_reciprocal_mesh]"
-print " Number of irreducible k-points of Rutile with"
-print " 8x8x8 Monkhorst-Pack mesh is ", num_ir_kpt, "(40)."
-print ""
-
-mapping, grid = spglib.get_ir_reciprocal_mesh( [ 9, 9, 8 ],
- MgB2,
- is_shift=[ 0, 0, 1 ] )
-num_ir_kpt = len( np.unique( mapping ) )
-print "[get_ir_reciprocal_mesh]"
-print " Number of irreducible k-points of MgB2 with"
-print " 9x9x8 Monkhorst-Pack mesh is ", num_ir_kpt, "(48)."
-print ""
-
-
-mesh = np.array([8,8,8])
-kpoints = []
-for i in range(mesh[0]):
- for j in range(mesh[1]):
- for k in range(mesh[2]):
- kpoints.append([float(i)/mesh[0],
- float(j)/mesh[1],
- float(k)/mesh[2]])
-kpoints = np.array(kpoints) + 0.5/mesh
-kpoints = kpoints - 1 * ( kpoints > 0.5 )
-mapping = spglib.get_ir_kpoints( kpoints, rutile )
-num_ir_kpt = len( np.unique( mapping ) )
-print "[get_ir_kpoints]"
-print " Number of irreducible k-points of Rutile with"
-print " 8x8x8 Monkhorst-Pack mesh is ", num_ir_kpt, "(40)."
-print ""
-
diff --git a/python/ase/pyspglib/__init__.py b/python/ase/pyspglib/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/python/ase/pyspglib/spglib.py b/python/ase/pyspglib/spglib.py
deleted file mode 100644
index 861c829..0000000
--- a/python/ase/pyspglib/spglib.py
+++ /dev/null
@@ -1,327 +0,0 @@
-"""
-Spglib interface for ASE
-"""
-
-import pyspglib._spglib as spg
-import numpy as np
-
-def get_symmetry(bulk, symprec=1e-5, angle_tolerance=-1.0):
- """
- Return symmetry operations as hash.
- Hash key 'rotations' gives the numpy integer array
- of the rotation matrices for scaled positions
- Hash key 'translations' gives the numpy float64 array
- of the translation vectors in scaled positions
- """
-
- # Atomic positions have to be specified by scaled positions for spglib.
- positions = bulk.get_scaled_positions().copy()
- lattice = bulk.get_cell().T.copy()
- numbers = bulk.get_atomic_numbers()
-
- # Get number of symmetry operations and allocate symmetry operations
- # multi = spg.multiplicity(cell, positions, numbers, symprec)
- multi = 48 * bulk.get_number_of_atoms()
- rotation = np.zeros((multi, 3, 3), dtype=int)
- translation = np.zeros((multi, 3))
-
- # Get symmetry operations
- magmoms = bulk.get_magnetic_moments()
- if magmoms == None:
- num_sym = spg.symmetry(rotation,
- translation,
- lattice,
- positions,
- numbers,
- symprec,
- angle_tolerance)
- else:
- num_sym = spg.symmetry_with_collinear_spin(rotation,
- translation,
- lattice,
- positions,
- numbers,
- magmoms,
- symprec,
- angle_tolerance)
-
- return {'rotations': rotation[:num_sym],
- 'translations': translation[:num_sym]}
-
-def get_symmetry_dataset(bulk, symprec=1e-5, angle_tolerance=-1.0):
- """
- number: International space group number
- international: International symbol
- hall: Hall symbol
- transformation_matrix:
- Transformation matrix from lattice of input cell to Bravais lattice
- L^bravais = L^original * Tmat
- origin shift: Origin shift in the setting of 'Bravais lattice'
- rotations, translations:
- Rotation matrices and translation vectors
- Space group operations are obtained by
- [(r,t) for r, t in zip(rotations, translations)]
- wyckoffs:
- Wyckoff letters
- """
- positions = bulk.get_scaled_positions().copy()
- lattice = bulk.get_cell().T.copy()
- numbers = bulk.get_atomic_numbers()
- keys = ('number',
- 'international',
- 'hall',
- 'transformation_matrix',
- 'origin_shift',
- 'rotations',
- 'translations',
- 'wyckoffs',
- 'equivalent_atoms')
- dataset = {}
- for key, data in zip(keys, spg.dataset(lattice,
- positions,
- numbers,
- symprec,
- angle_tolerance)):
- dataset[key] = data
-
- dataset['international'] = dataset['international'].strip()
- dataset['hall'] = dataset['hall'].strip()
- dataset['transformation_matrix'] = np.array(dataset['transformation_matrix'])
- dataset['origin_shift'] = np.array(dataset['origin_shift'])
- dataset['rotations'] = np.array(dataset['rotations'])
- dataset['translations'] = np.array(dataset['translations'])
- letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
- dataset['wyckoffs'] = [letters[x] for x in dataset['wyckoffs']]
- dataset['equivalent_atoms'] = np.array(dataset['equivalent_atoms'])
-
- return dataset
-
-def get_spacegroup(bulk, symprec=1e-5, angle_tolerance=-1.0):
- """
- Return space group in international table symbol and number
- as a string.
- """
- # Atomic positions have to be specified by scaled positions for spglib.
- return spg.spacegroup(bulk.get_cell().T.copy(),
- bulk.get_scaled_positions().copy(),
- bulk.get_atomic_numbers(),
- symprec,
- angle_tolerance)
-
-def get_pointgroup(rotations):
- """
- Return point group in international table symbol and number.
- The symbols are mapped to the numbers as follows:
- 1 "1 "
- 2 "-1 "
- 3 "2 "
- 4 "m "
- 5 "2/m "
- 6 "222 "
- 7 "mm2 "
- 8 "mmm "
- 9 "4 "
- 10 "-4 "
- 11 "4/m "
- 12 "422 "
- 13 "4mm "
- 14 "-42m "
- 15 "4/mmm"
- 16 "3 "
- 17 "-3 "
- 18 "32 "
- 19 "3m "
- 20 "-3m "
- 21 "6 "
- 22 "-6 "
- 23 "6/m "
- 24 "622 "
- 25 "6mm "
- 26 "-62m "
- 27 "6/mmm"
- 28 "23 "
- 29 "m-3 "
- 30 "432 "
- 31 "-43m "
- 32 "m-3m "
- """
-
- # (symbol, pointgroup_number, transformation_matrix)
- return spg.pointgroup(rotations)
-
-def refine_cell(bulk, symprec=1e-5, angle_tolerance=-1.0):
- """
- Return refined cell
- """
- # Atomic positions have to be specified by scaled positions for spglib.
- num_atom = bulk.get_number_of_atoms()
- lattice = bulk.get_cell().T.copy()
- pos = np.zeros((num_atom * 4, 3), dtype=float)
- pos[:num_atom] = bulk.get_scaled_positions()
-
- numbers = np.zeros(num_atom * 4, dtype=int)
- numbers[:num_atom] = bulk.get_atomic_numbers()
- num_atom_bravais = spg.refine_cell(lattice,
- pos,
- numbers,
- num_atom,
- symprec,
- angle_tolerance)
-
- return lattice.T.copy(), pos[:num_atom_bravais], numbers[:num_atom_bravais]
-
-def find_primitive(bulk, symprec=1e-5, angle_tolerance=-1.0):
- """
- A primitive cell in the input cell is searched and returned
- as an object of Atoms class.
- If no primitive cell is found, (None, None, None) is returned.
- """
-
- # Atomic positions have to be specified by scaled positions for spglib.
- positions = bulk.get_scaled_positions().copy()
- lattice = bulk.get_cell().T.copy()
- numbers = bulk.get_atomic_numbers()
-
- # lattice is transposed with respect to the definition of Atoms class
- num_atom_prim = spg.primitive(lattice,
- positions,
- numbers,
- symprec,
- angle_tolerance)
- if num_atom_prim > 0:
- return lattice.T, positions[:num_atom_prim], numbers[:num_atom_prim]
- else:
- return None, None, None
-
-def get_ir_kpoints(kpoint,
- bulk,
- is_time_reversal=True,
- symprec=1e-5):
- """
- Retrun irreducible kpoints
- """
- mapping = np.zeros(kpoint.shape[0], dtype=int)
- spg.ir_kpoints(mapping,
- kpoint,
- bulk.get_cell().T.copy(),
- bulk.get_scaled_positions().copy(),
- bulk.get_atomic_numbers(),
- is_time_reversal * 1,
- symprec)
- return mapping
-
-def get_ir_reciprocal_mesh(mesh,
- bulk,
- is_shift=np.zeros(3, dtype=int),
- is_time_reversal=True,
- symprec=1e-5):
- """
- Return k-points mesh and k-point map to the irreducible k-points
- The symmetry is serched from the input cell.
- is_shift=[0, 0, 0] gives Gamma center mesh.
- """
-
- mapping = np.zeros(np.prod(mesh), dtype=int)
- mesh_points = np.zeros((np.prod(mesh), 3), dtype=int)
- spg.ir_reciprocal_mesh(mesh_points,
- mapping,
- np.array(mesh),
- np.array(is_shift),
- is_time_reversal * 1,
- bulk.get_cell().T.copy(),
- bulk.get_scaled_positions().copy(),
- bulk.get_atomic_numbers(), symprec)
-
- return mapping, mesh_points
-
-def get_stabilized_reciprocal_mesh(mesh,
- rotations,
- is_shift=np.zeros(3, dtype=int),
- is_time_reversal=True,
- qpoints=np.array([], dtype=float)):
- """
- Return k-point map to the irreducible k-points and k-point grid points .
-
- The symmetry is searched from the input rotation matrices in real space.
-
- is_shift=[0, 0, 0] gives Gamma center mesh and the values 1 give
- half mesh distance shifts.
- """
-
- mapping = np.zeros(np.prod(mesh), dtype=int)
- mesh_points = np.zeros((np.prod(mesh), 3), dtype=int)
- qpoints = np.array(qpoints, dtype=float)
- if qpoints.shape == (3,):
- qpoints = np.array([qpoints])
- spg.stabilized_reciprocal_mesh(mesh_points,
- mapping,
- np.array(mesh, dtype=int),
- np.array(is_shift, dtype=int),
- is_time_reversal * 1,
- rotations.copy(),
- np.array(qpoints, dtype=float))
-
- return mapping, mesh_points
-
-def get_triplets_reciprocal_mesh(mesh,
- pointgroup,
- is_time_reversal=True):
- """
- Return symmetry reduced triplets (set of addresses) and
- k-point grid points corresponding to addresses.
- The k-point grid is accessed by mesh_points[address].
-
- The symmetry is searched from the input rotation matrices in real space.
- is_shift=[0, 0, 0] gives Gamma center mesh and the values 1 give
- half mesh distance shifts.
- """
-
- triplets, weights, mesh_points = spg.triplets_reciprocal_mesh(
- np.array(mesh, dtype=int),
- is_time_reversal * 1,
- pointgroup.copy())
-
- return np.array(triplets), np.array(weights), np.array(mesh_points)
-
-def get_triplets_reciprocal_mesh_at_q(fixed_grid_number,
- mesh,
- rotations,
- is_time_reversal=True):
-
- weights = np.zeros(np.prod(mesh), dtype=int)
- third_q = np.zeros(np.prod(mesh), dtype=int)
- mesh_points = np.zeros((np.prod(mesh), 3), dtype=int)
-
- spg.triplets_reciprocal_mesh_at_q(weights,
- mesh_points,
- third_q,
- fixed_grid_number,
- np.array(mesh, dtype=int),
- is_time_reversal * 1,
- rotations.copy())
-
- return weights, third_q, mesh_points
-
-
-def extract_triplets_reciprocal_mesh_at_q(fixed_grid_number,
- triplets,
- mesh,
- pointgroup,
- is_time_reversal=True):
-
- triplets_with_q = np.zeros((len(triplets), 3), dtype=int)
- weights_with_q = np.zeros(len(triplets), dtype=int)
-
- num_triplets_with_q = \
- spg.triplets_reciprocal_mesh_at_q_from_triplets(triplets_with_q,
- weights_with_q,
- fixed_grid_number,
- triplets,
- np.array(mesh, dtype=int),
- is_time_reversal * 1,
- pointgroup.copy())
-
- return \
- triplets_with_q[:num_triplets_with_q], \
- weights_with_q[:num_triplets_with_q]
-
diff --git a/python/ase/setup.py b/python/ase/setup.py
deleted file mode 100644
index 174f97f..0000000
--- a/python/ase/setup.py
+++ /dev/null
@@ -1,50 +0,0 @@
-import os
-from distutils.core import setup, Extension
-from numpy.distutils.misc_util import get_numpy_include_dirs
-
-
-include_dirs = ['../../src']
-sources = [
- '../../src/cell.c',
- '../../src/debug.c',
- '../../src/hall_symbol.c',
- '../../src/kpoint.c',
- '../../src/lattice.c',
- '../../src/mathfunc.c',
- '../../src/pointgroup.c',
- '../../src/primitive.c',
- '../../src/refinement.c',
- '../../src/sitesym_database.c',
- '../../src/site_symmetry.c',
- '../../src/spacegroup.c',
- '../../src/spin.c',
- '../../src/spg_database.c',
- '../../src/spglib.c',
- '../../src/symmetry.c'
-]
-
-# Hmm, bdist_rpm requires that all sources are within root directory.
-# Therefore add a symlink to src directory under systems that support it...
-if hasattr(os, 'symlink'):
- if not os.path.exists('src'):
- os.symlink('../../src', 'src')
- include_dirs = ['src']
- sources = [os.path.join('src', os.path.basename(f))
- for f in sources]
-
-
-extension = Extension('pyspglib._spglib',
- include_dirs = include_dirs + get_numpy_include_dirs(),
- sources = ['_spglib.c'] + sources,
- extra_compile_args=['-fopenmp'],
- extra_link_args=['-lgomp'],
- )
-
-setup (name = 'spglib',
- version = '1.4',
- description = 'This is the spglib module.',
- author = 'Atsushi Togo',
- author_email = 'atz.togo at gmail.com',
- url = 'http://spglib.sourceforge.net/',
- packages = ['pyspglib'],
- ext_modules = [extension])
diff --git a/python/ase/test/test_ir_triplets.py b/python/ase/test/test_ir_triplets.py
deleted file mode 100644
index 41177c0..0000000
--- a/python/ase/test/test_ir_triplets.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/evn python
-
-import sys
-from optparse import OptionParser
-from atoms import Atoms
-from vasp import read_vasp
-from pyspglib import spglib
-import numpy as np
-
-parser = OptionParser()
-parser.set_defaults(mesh=None)
-parser.add_option("-m", "--mesh", dest="mesh",
- type="string",help="Mesh numbers")
-(options, args) = parser.parse_args()
-
-if options.mesh == None:
- mesh = [4, 4, 4]
-else:
- mesh = [int(x) for x in options.mesh.split()]
-cell = read_vasp( args[0] )
-
-# cell = Atoms( symbols=['Si']*2,
-# cell=[(0,2,2),
-# (2,0,2),
-# (2,2,0)],
-# scaled_positions=[(0, 0, 0),
-# (0.25, 0.25, 0.25)],
-# pbc=True)
-# mesh = [ 4, 4, 4 ]
-
-dataset = spglib.get_symmetry_dataset(cell)
-triplets, weights, grid_point = \
- spglib.get_triplets_reciprocal_mesh(mesh,
- dataset['rotations'])
-
-for i, ( t, w ) in enumerate( zip( triplets, weights ) ):
- print i+1, t, w
-print np.array(weights).sum()
diff --git a/python/ase/test/test_ir_triplets_at_q.py b/python/ase/test/test_ir_triplets_at_q.py
deleted file mode 100644
index d78210f..0000000
--- a/python/ase/test/test_ir_triplets_at_q.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/evn python
-
-import sys
-from optparse import OptionParser
-from atoms import Atoms
-from vasp import read_vasp
-from pyspglib import spglib
-import numpy as np
-
-def parse_triplets(filename):
- file = open(filename, 'r')
- triplets = []
- weights = []
- for line in file:
- if line.strip()[0] == "#":
- continue
-
- line_array = [ int(x) for x in line.split() ]
- triplets.append(line_array[:3])
- weights.append(line_array[3])
-
- return np.array(triplets), np.array(weights)
-
-
-parser = OptionParser()
-parser.set_defaults(mesh=None,
- grid_point=0,
- filename=None)
-parser.add_option("-m", "--mesh", dest="mesh",
- type="string",help="Mesh numbers")
-parser.add_option("-f", dest="filename",
- type="string",help="Filename of triplets at q")
-parser.add_option("-g", dest="grid_point",
- type="int",help="A grid point")
-(options, args) = parser.parse_args()
-
-if options.mesh == None:
- mesh = [4, 4, 4]
-else:
- mesh = [int(x) for x in options.mesh.split()]
-
-cell = read_vasp(args[0])
-
-dataset = spglib.get_symmetry_dataset(cell)
-
-weights, third_q, grid_points = \
- spglib.get_triplets_reciprocal_mesh_at_q(options.grid_point,
- mesh,
- dataset['rotations'])
-if options.filename==None:
- for i, (w, q) in enumerate(zip(weights, third_q)):
- if w > 0:
- print options.grid_point, i, q, w
-else:
- triplets_in, weights_in = parse_triplets(options.filename)
- count = 0
- for i, (w, q) in enumerate(zip(weights, third_q)):
- if w > 0:
- if triplets_in[count][0] == options.grid_point and \
- triplets_in[count][1] == i and \
- triplets_in[count][2] == q and \
- weights_in[count] == w:
- print options.grid_point, i, q, w, "OK"
- else:
- print "Don't match", options.grid_point, i, q, w
- sys.exit(0)
- count += 1
-
-print weights.sum()
diff --git a/python/ase/test/test_stabilized_reciprocal_mesh.py b/python/ase/test/test_stabilized_reciprocal_mesh.py
deleted file mode 100644
index 1d2707e..0000000
--- a/python/ase/test/test_stabilized_reciprocal_mesh.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/evn python
-
-import sys
-from optparse import OptionParser
-from atoms import Atoms
-from vasp import read_vasp
-from pyspglib import spglib
-import numpy as np
-
-parser = OptionParser()
-parser.set_defaults(mesh=None,
- qpoints=None)
-parser.add_option("-m", "--mesh", dest="mesh",
- type="string",help="Mesh numbers")
-parser.add_option("-q", "--qpoints", dest="qpoints",
- type="string",help="Stabilizers")
-(options, args) = parser.parse_args()
-
-if options.mesh == None:
- mesh = [4, 4, 4]
-else:
- mesh = [int( x ) for x in options.mesh.split()]
-
-if options.qpoints == None:
- qpoints = np.array([[0, 0, 0]], dtype=float)
-else:
- qpoints = np.array([float(x) for x in options.qpoints.split()]).reshape(-1, 3)
-
-cell = read_vasp(args[0])
-
-mapping_g, grid_point = spglib.get_ir_reciprocal_mesh(mesh, cell)
-
-print mapping_g
-
-dataset = spglib.get_symmetry_dataset(cell)
-
-mapping, grid_point = \
- spglib.get_stabilized_reciprocal_mesh(mesh,
- dataset['rotations'],
- qpoints=qpoints)
-
-print mapping
-print "%d / %d" % (np.sum((mapping_g == mapping) * 1), len(mapping))
-
-# for i, m in enumerate(mapping):
-# print i, grid_point[m]
diff --git a/python/ase/test/test_symmetry_with_spin.py b/python/ase/test/test_symmetry_with_spin.py
deleted file mode 100644
index f123a25..0000000
--- a/python/ase/test/test_symmetry_with_spin.py
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/evn python
-
-import sys
-from atoms import Atoms
-from vasp import read_vasp
-from pyspglib import spglib
-import numpy as np
-
-def get_magmom(text):
- magmom = []
- for numxmag in text.split():
- num, mag = numxmag.split('*')
- magmom += [float(mag)] * int(num)
- return magmom
-
-def parse_incar(filename):
- for line in open(filename):
- for conf in line.split(';'):
- if 'MAGMOM' in conf:
- return get_magmom(conf.split('=')[1])
-
-cell = read_vasp(sys.argv[1]) # POSCAR
-magmoms = parse_incar(sys.argv[2]) # INCAR
-cell.set_magnetic_moments(magmoms)
-symmetry = spglib.get_symmetry(cell, symprec=1e-3)
-print len(symmetry['rotations'])
diff --git a/python/ase/test/vasp.py b/python/ase/test/vasp.py
deleted file mode 100644
index 7c5f572..0000000
--- a/python/ase/test/vasp.py
+++ /dev/null
@@ -1,155 +0,0 @@
-# Copyright (C) 2011 Atsushi Togo
-#
-# This file was originary part of phonopy.
-#
-# Phonopy is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Phonopy is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with phonopy. If not, see <http://www.gnu.org/licenses/>.
-
-import numpy as np
-from atoms import Atoms, symbol_map, atom_data
-
-#
-# read VASP POSCAR
-#
-def expand_symbols( num_atoms, symbols=None ):
- expanded_symbols = []
- is_symbols = True
- if symbols == None:
- is_symbols = False
- else:
- if not len( symbols ) == len( num_atoms ):
- is_symbols = False
- else:
- for s in symbols:
- if not s in symbol_map:
- is_symbols = False
- break
-
- if is_symbols:
- for s, num in zip( symbols, num_atoms ):
- expanded_symbols += [s] * num
- else:
- for i, num in enumerate( num_atoms ):
- expanded_symbols += [ atom_data[i+1][1] ] * num
-
- return expanded_symbols
-
-def is_exist_symbols( symbols ):
- for s in symbols:
- if not ( s in symbol_map ):
- return False
- return True
-
-def read_vasp( filename, symbols=None ):
- file = open( filename )
-
- lines = file.readlines()
-
- line1 = [ x for x in lines[0].split() ]
- if is_exist_symbols( line1 ):
- symbols = line1
-
- scale = float(lines[1])
-
- cell = []
- for i in range( 2, 5 ):
- cell.append( [ float(x) for x in lines[i].split()[:3] ] )
- cell = np.array( cell ) * scale
-
- try:
- num_atoms = np.array([ int(x) for x in lines[5].split() ])
- line_at = 6
- except ValueError:
- symbols = [ x for x in lines[5].split() ]
- num_atoms = np.array([ int(x) for x in lines[6].split() ])
- line_at = 7
-
- expaned_symbols = expand_symbols( num_atoms, symbols )
-
- if lines[ line_at ][0].lower() == 's':
- line_at += 1
-
- is_scaled = True
- if ( lines[ line_at ][0].lower() == 'c' or
- lines[ line_at ][0].lower() == 'k' ):
- is_scaled = False
-
- line_at += 1
-
- positions = []
- for i in range( line_at, line_at + num_atoms.sum() ):
- positions.append( [ float(x) for x in lines[i].split()[:3] ] )
-
- if is_scaled:
- atoms = Atoms( symbols=expaned_symbols,
- cell=cell,
- scaled_positions=positions )
- else:
- atoms = Atoms( symbols=expaned_symbols,
- cell=cell,
- positions=positions )
-
- return atoms
-
-#
-# write vasp POSCAR
-#
-def get_reduced_symbols( symbols ):
- reduced_symbols = []
- for s in symbols:
- if not ( s in reduced_symbols ):
- reduced_symbols.append(s)
- return reduced_symbols
-
-def sort_positions_by_symbols( symbols, positions ):
- reduced_symbols = get_reduced_symbols( symbols )
- sorted_positions = []
- num_atoms = np.zeros( len( reduced_symbols ), dtype=int )
- for i, rs in enumerate( reduced_symbols ):
- for s, p in zip( symbols, positions ):
- if rs==s:
- sorted_positions.append( p )
- num_atoms[i] += 1
- return num_atoms, reduced_symbols, np.array( sorted_positions )
-
-def write_vasp( filename, atoms, direct=True ):
-
- num_atoms, symbols, scaled_positions = \
- sort_positions_by_symbols( atoms.get_chemical_symbols(),
- atoms.get_scaled_positions() )
-
- lines = ""
- for s in symbols:
- lines += "%s " % s
- lines += "\n"
- lines += " 1.0\n"
- for a in atoms.get_cell():
- lines += " %22.16f%22.16f%22.16f\n" % tuple( a )
- lines += ("%4d" * len( num_atoms )) % tuple( num_atoms )
- lines += "\n"
- lines += "Direct\n"
- for vec in scaled_positions:
- for x in ( vec - vec.round() ):
- if float('%20.16f' % x) < 0.0:
- lines += "%20.16f" % ( x + 1.0 )
- else:
- lines += "%20.16f" % (x)
- lines += "\n"
-
- f = open( filename, 'w' )
- f.write( lines )
-
-if __name__ == '__main__':
- import sys
- atoms = read_vasp( sys.argv[1] )
- write_vasp( '%s-new' % sys.argv[1], atoms )
diff --git a/python/build-wheels.sh b/python/build-wheels.sh
new file mode 100755
index 0000000..d8e6c88
--- /dev/null
+++ b/python/build-wheels.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+set -e -x
+
+# Install a system package required by our library
+# yum install -y numpy
+
+ls /opt/python
+
+# Compile wheels
+for PYBIN in /opt/python/cp27*/bin; do
+ "${PYBIN}/pip" install numpy
+ "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+done
+
+for PYBIN in /opt/python/cp35*/bin; do
+ "${PYBIN}/pip" install numpy
+ "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+done
+
+for PYBIN in /opt/python/cp36*/bin; do
+ "${PYBIN}/pip" install numpy
+ "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+done
+
+# Bundle external shared libraries into the wheels
+for whl in wheelhouse/*.whl; do
+ auditwheel repair "$whl" -w /io/wheelhouse/
+done
+
+# Install packages and test
+for PYBIN in /opt/python/cp27*/bin/; do
+ "${PYBIN}/pip" install spglib --no-index -f /io/wheelhouse
+done
+
+for PYBIN in /opt/python/cp35*/bin/; do
+ "${PYBIN}/pip" install spglib --no-index -f /io/wheelhouse
+done
+
+for PYBIN in /opt/python/cp36*/bin/; do
+ "${PYBIN}/pip" install spglib --no-index -f /io/wheelhouse
+done
diff --git a/python/conda/.binstar.yml b/python/conda/.binstar.yml
new file mode 100644
index 0000000..5d485fb
--- /dev/null
+++ b/python/conda/.binstar.yml
@@ -0,0 +1,88 @@
+
+## The package attribure specifies a binstar package namespace to build the package to.
+## This can be specified here or on the command line
+package: spglib
+
+## You can also specify the account to upload to,
+## you must be an admin of that account, this
+## defaults to your user account
+# user: USERNAME
+
+#===============================================================================
+# Build Matrix Options
+# Thes options may be a single item, a list or empty
+# The resulting number of builds is [platform * engine * env]
+#===============================================================================
+
+## The platforms to build on.
+## platform defaults to linux-64
+# platform:
+# - linux-64
+# - linux-32
+
+## The engine are the inital conda packages you want to run with
+engine:
+ - python=2
+ - python=3
+## The env param is an environment variable list
+# engine:
+# - MY_ENV=A CC=gcc
+# - MY_ENV=B
+env:
+ - GIT_BRANCH=master
+
+#===============================================================================
+# Scrip options
+# Thes options may be broken out into the before_script, script and after_script
+# or not, that is up to you
+#===============================================================================
+
+## Run before the script
+before_script:
+ - conda install anaconda-client --yes
+
+
+## Put your main computations here!
+script:
+ - conda update -n root conda conda-build --yes
+ - GIT_BRANCH=`git branch |grep '^*'|sed -e 's/^*\s\?//' -e 's/(HEAD [a-z ]* \(.*\))$/\1/'`
+ - conda build .
+
+## This will run after the script regardless of the result of script
+## BINSTAR_BUILD_RESULT=[succcess|failure]
+after_script:
+ - echo "The build was a $BINSTAR_BUILD_RESULT" | tee artifact1.txt
+
+## This will be run only after a successfull build
+after_success:
+ - echo "after_success!"
+
+## This will be run only after a build failure
+after_failure:
+ - echo "after_failure!"
+
+#===============================================================================
+# Build Results
+# Build results are split into two categories: artifacts and targets
+# You may omit either key and stiff have a successfull build
+# They may be a string, list and contain any bash glob
+#===============================================================================
+
+## Build Artifacts: upload anything you want!
+## Your build artifacts will be put into the website
+## http://artifacts.build.binstar.info/USERNAME/PACKGE_NAME/BUILD_NO
+## You can store all logs or any derived data here
+## Remember, the site http://artifacts.build.binstar.info is NOT secure and does not
+## require a user to log in to view
+# build_artifacts:
+# - *.log
+
+## Build Targets: Upload these files to your binstar package
+## build targets may be a list of files (globs allows) to upload
+## The special build targets 'conda' and 'pypi' may be used to
+## upload conda builds
+## e.g. conda is an alias for /opt/anaconda/conda-bld/<os-arch>/*.tar.bz2
+build_targets:
+ - conda
+ #- pypi
+
diff --git a/python/conda/anaconda_deploy.sh b/python/conda/anaconda_deploy.sh
new file mode 100755
index 0000000..231ffbc
--- /dev/null
+++ b/python/conda/anaconda_deploy.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+export LBL=$1
+export TKN=$2
+export GIT_BRANCH=$3
+
+cd conda
+sed s/version_from_shell/`git describe --tags --dirty | sed -e 's/-\(.*\)-g.*/+\1/' -e 's/^[vr]//g'`/ meta.yaml > meta.tmp.yaml
+mv meta.tmp.yaml meta.yaml
+cd ..
+conda install conda-build anaconda-client --yes
+conda build conda --no-anaconda-upload
+TRG=`conda build conda --output |sed -e 's/--/-*-/'`
+echo "Uploading: $TRG"
+anaconda --token $TKN upload --label $LBL $TRG
diff --git a/python/conda/bld.bat b/python/conda/bld.bat
new file mode 100644
index 0000000..58da946
--- /dev/null
+++ b/python/conda/bld.bat
@@ -0,0 +1,9 @@
+cd python
+"%PYTHON%" setup.py install
+if errorlevel 1 exit 1
+
+:: Add more build steps here, if they are necessary.
+
+:: See
+:: http://docs.continuum.io/conda/build.html
+:: for a list of environment variables that are set during the build process.
diff --git a/python/conda/build.sh b/python/conda/build.sh
new file mode 100644
index 0000000..37b5738
--- /dev/null
+++ b/python/conda/build.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+cd python
+./get_nanoversion.sh
+ln -s ../src .
+
+$PYTHON setup.py install
+
+# Add more build steps here, if they are necessary.
+
+# See
+# http://docs.continuum.io/conda/build.html
+# for a list of environment variables that are set during the build process.
diff --git a/python/conda/meta.yaml b/python/conda/meta.yaml
new file mode 100644
index 0000000..8e060dd
--- /dev/null
+++ b/python/conda/meta.yaml
@@ -0,0 +1,62 @@
+package:
+ name: spglib
+ version: version_from_shell
+
+source:
+ git_url: https://github.com/atztogo/spglib.git
+ git_branch: {{ environ.get('GIT_BRANCH','master') }}
+
+build:
+ script_env:
+ - GIT_BRANCH
+ # preserve_egg_dir: True
+ # entry_points:
+ # Put any entry points (scripts to be generated automatically) here. The
+ # syntax is module:function. For example
+ #
+ # - spglib = spglib:main
+ #
+ # Would create an entry point called spglib that calls spglib.main()
+
+# If this is a new build for the same version, increment the build
+# number. If you do not include this key, it defaults to 0.
+# number: {{ environ.get('GIT_DESCRIBE_NUMBER', 0) }}
+ number: 0
+
+requirements:
+ build:
+ - python
+ - numpy
+
+ run:
+ - python
+ - numpy
+
+test:
+ source_files:
+ - python/test
+ requires:
+ - python
+ - numpy
+ # Python imports
+ imports:
+ - spglib
+
+# commands:
+ # You can put test commands to be run here. Use this to test that the
+ # entry points work.
+ # You can also put a file called run_test.py in the recipe that will be run
+ # at test time.
+
+# requires:
+ # Put any additional test requirements here. For example
+ #- nose
+
+about:
+ home: https://atztogo.github.io/spglib/
+ license: BSD
+ summary: 'Space symmetry groups spglib module.'
+
+# See
+# http://docs.continuum.io/conda/build.html for
+# more information about meta.yaml
diff --git a/python/conda/run_test.sh b/python/conda/run_test.sh
new file mode 100644
index 0000000..79951f7
--- /dev/null
+++ b/python/conda/run_test.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+cp -r $SRC_DIR/python/test .
+cd test
+python test_spglib.py
+
+
diff --git a/python/ase/test/atoms.py b/python/examples/atoms.py
similarity index 59%
rename from python/ase/test/atoms.py
rename to python/examples/atoms.py
index c79b04a..cceb8d8 100644
--- a/python/ase/test/atoms.py
+++ b/python/examples/atoms.py
@@ -1,19 +1,37 @@
+# -*- coding: utf-8 -*-
# Copyright (C) 2011 Atsushi Togo
+# All rights reserved.
#
-# This file was originary part of phonopy.
+# This file is part of phonopy.
#
-# Phonopy is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
#
-# Phonopy is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License for more details.
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
#
-# You should have received a copy of the GNU Lesser General Public License
-# along with phonopy. If not, see <http://www.gnu.org/licenses/>.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# * Neither the name of the phonopy project nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
import numpy as np
@@ -32,26 +50,26 @@ class Atoms:
pbc=None):
# cell
- if cell == None:
- self.cell=None
+ if cell is None:
+ self.cell = None
else:
- self.cell = np.array(cell, dtype=float)
+ self.cell = np.array(cell, dtype='double', order='C')
# position
self.scaled_positions = None
- if (not self.cell == None) and (not positions == None):
+ if (not self.cell is None) and (not positions is None):
self.set_positions(positions)
- if (not scaled_positions == None):
+ if (not scaled_positions is None):
self.set_scaled_positions(scaled_positions)
# Atom symbols
self.symbols = symbols
# Atomic numbers
- if numbers==None:
+ if numbers is None:
self.numbers = None
else:
- self.numbers = np.array(numbers, dtype=int)
+ self.numbers = np.array(numbers, dtype='intc')
# masses
self.set_masses(masses)
@@ -60,54 +78,59 @@ class Atoms:
self.set_magnetic_moments(magmoms)
# number --> symbol
- if not self.numbers == None:
- self.numbers_to_symbols()
+ if not self.numbers is None:
+ self._numbers_to_symbols()
# symbol --> number
- elif not self.symbols == None:
- self.symbols_to_numbers()
+ elif not self.symbols is None:
+ self._symbols_to_numbers()
# symbol --> mass
- if self.symbols and (self.masses == None):
- self.symbols_to_masses()
+ if self.symbols and (self.masses is None):
+ self._symbols_to_masses()
def set_cell(self, cell):
- self.cell = np.array(cell, dtype=float)
+ self.cell = np.array(cell, dtype='double', order='C')
def get_cell(self):
return self.cell.copy()
def set_positions(self, cart_positions):
- self.scaled_positions = np.dot(cart_positions,
- np.linalg.inv(self.cell))
+ self.scaled_positions = np.array(
+ np.dot(cart_positions, np.linalg.inv(self.cell)),
+ dtype='double', order='C')
def get_positions(self):
return np.dot(self.scaled_positions, self.cell)
def set_scaled_positions(self, scaled_positions):
- self.scaled_positions = np.array(scaled_positions, dtype=float)
+ self.scaled_positions = np.array(scaled_positions,
+ dtype='double', order='C')
def get_scaled_positions(self):
return self.scaled_positions.copy()
def set_masses(self, masses):
- if masses == None:
+ if masses is None:
self.masses = None
else:
- self.masses = np.array(masses, dtype=float)
+ self.masses = np.array(masses, dtype='double')
def get_masses(self):
- return self.masses.copy()
+ if self.masses is None:
+ return None
+ else:
+ return self.masses.copy()
def set_magnetic_moments(self, magmoms):
- if magmoms == None:
+ if magmoms is None:
self.magmoms = None
else:
- self.magmoms = np.array(magmoms, dtype=float)
+ self.magmoms = np.array(magmoms, dtype='double')
def get_magnetic_moments(self):
- if self.magmoms == None:
+ if self.magmoms is None:
return None
else:
return self.magmoms.copy()
@@ -124,22 +147,33 @@ class Atoms:
def get_atomic_numbers(self):
return self.numbers.copy()
- def numbers_to_symbols(self):
+ def get_volume(self):
+ return np.linalg.det(self.cell)
+
+ def copy(self):
+ return Atoms(cell=self.cell,
+ scaled_positions=self.scaled_positions,
+ masses=self.masses,
+ magmoms=self.magmoms,
+ symbols=self.symbols,
+ pbc=True)
+
+ def _numbers_to_symbols(self):
self.symbols = [atom_data[n][1] for n in self.numbers]
- def symbols_to_numbers(self):
+ def _symbols_to_numbers(self):
self.numbers = np.array([symbol_map[s]
- for s in self.symbols])
+ for s in self.symbols], dtype='intc')
- def symbols_to_masses(self):
- self.masses = np.array([atom_data[symbol_map[s]][3]
- for s in self.symbols])
-
- def get_volume(self):
- return np.linalg.det(self.cell)
+ def _symbols_to_masses(self):
+ masses = [atom_data[symbol_map[s]][3] for s in self.symbols]
+ if None in masses:
+ self.masses = None
+ else:
+ self.masses = np.array(masses, dtype='double')
atom_data = [
- [ 0, "X", "X", 0], # 0
+ [ 0, "X", "X", None], # 0
[ 1, "H", "Hydrogen", 1.00794], # 1
[ 2, "He", "Helium", 4.002602], # 2
[ 3, "Li", "Lithium", 6.941], # 3
@@ -182,7 +216,7 @@ atom_data = [
[ 40, "Zr", "Zirconium", 91.224], # 40
[ 41, "Nb", "Niobium", 92.90638], # 41
[ 42, "Mo", "Molybdenum", 95.96], # 42
- [ 43, "Tc", "Technetium", 0], # 43
+ [ 43, "Tc", "Technetium", None], # 43
[ 44, "Ru", "Ruthenium", 101.07], # 44
[ 45, "Rh", "Rhodium", 102.90550], # 45
[ 46, "Pd", "Palladium", 106.42], # 46
@@ -200,7 +234,7 @@ atom_data = [
[ 58, "Ce", "Cerium", 140.116], # 58
[ 59, "Pr", "Praseodymium", 140.90765], # 59
[ 60, "Nd", "Neodymium", 144.242], # 60
- [ 61, "Pm", "Promethium", 0], # 61
+ [ 61, "Pm", "Promethium", None], # 61
[ 62, "Sm", "Samarium", 150.36], # 62
[ 63, "Eu", "Europium", 151.964], # 63
[ 64, "Gd", "Gadolinium", 157.25], # 64
@@ -223,41 +257,41 @@ atom_data = [
[ 81, "Tl", "Thallium", 204.3833], # 81
[ 82, "Pb", "Lead", 207.2], # 82
[ 83, "Bi", "Bismuth", 208.98040], # 83
- [ 84, "Po", "Polonium", 0], # 84
- [ 85, "At", "Astatine", 0], # 85
- [ 86, "Rn", "Radon", 0], # 86
- [ 87, "Fr", "Francium", 0], # 87
- [ 88, "Ra", "Radium", 0], # 88
- [ 89, "Ac", "Actinium", 0], # 89
+ [ 84, "Po", "Polonium", None], # 84
+ [ 85, "At", "Astatine", None], # 85
+ [ 86, "Rn", "Radon", None], # 86
+ [ 87, "Fr", "Francium", None], # 87
+ [ 88, "Ra", "Radium", None], # 88
+ [ 89, "Ac", "Actinium", None], # 89
[ 90, "Th", "Thorium", 232.03806], # 90
[ 91, "Pa", "Protactinium", 231.03588], # 91
[ 92, "U", "Uranium", 238.02891], # 92
- [ 93, "Np", "Neptunium", 0], # 93
- [ 94, "Pu", "Plutonium", 0], # 94
- [ 95, "Am", "Americium", 0], # 95
- [ 96, "Cm", "Curium", 0], # 96
- [ 97, "Bk", "Berkelium", 0], # 97
- [ 98, "Cf", "Californium", 0], # 98
- [ 99, "Es", "Einsteinium", 0], # 99
- [100, "Fm", "Fermium", 0], # 100
- [101, "Md", "Mendelevium", 0], # 101
- [102, "No", "Nobelium", 0], # 102
- [103, "Lr", "Lawrencium", 0], # 103
- [104, "Rf", "Rutherfordium", 0], # 104
- [105, "Db", "Dubnium", 0], # 105
- [106, "Sg", "Seaborgium", 0], # 106
- [107, "Bh", "Bohrium", 0], # 107
- [108, "Hs", "Hassium", 0], # 108
- [109, "Mt", "Meitnerium", 0], # 109
- [110, "Ds", "Darmstadtium", 0], # 110
- [111, "Rg", "Roentgenium", 0], # 111
- [112, "Cn", "Copernicium", 0], # 112
- [113, "Uut", "Ununtrium", 0], # 113
- [114, "Uuq", "Ununquadium", 0], # 114
- [115, "Uup", "Ununpentium", 0], # 115
- [116, "Uuh", "Ununhexium", 0], # 116
- [117, "Uus", "Ununseptium", 0], # 117
- [118, "Uuo", "Ununoctium", 0], # 118
+ [ 93, "Np", "Neptunium", None], # 93
+ [ 94, "Pu", "Plutonium", None], # 94
+ [ 95, "Am", "Americium", None], # 95
+ [ 96, "Cm", "Curium", None], # 96
+ [ 97, "Bk", "Berkelium", None], # 97
+ [ 98, "Cf", "Californium", None], # 98
+ [ 99, "Es", "Einsteinium", None], # 99
+ [100, "Fm", "Fermium", None], # 100
+ [101, "Md", "Mendelevium", None], # 101
+ [102, "No", "Nobelium", None], # 102
+ [103, "Lr", "Lawrencium", None], # 103
+ [104, "Rf", "Rutherfordium", None], # 104
+ [105, "Db", "Dubnium", None], # 105
+ [106, "Sg", "Seaborgium", None], # 106
+ [107, "Bh", "Bohrium", None], # 107
+ [108, "Hs", "Hassium", None], # 108
+ [109, "Mt", "Meitnerium", None], # 109
+ [110, "Ds", "Darmstadtium", None], # 110
+ [111, "Rg", "Roentgenium", None], # 111
+ [112, "Cn", "Copernicium", None], # 112
+ [113, "Uut", "Ununtrium", None], # 113
+ [114, "Uuq", "Ununquadium", None], # 114
+ [115, "Uup", "Ununpentium", None], # 115
+ [116, "Uuh", "Ununhexium", None], # 116
+ [117, "Uus", "Ununseptium", None], # 117
+ [118, "Uuo", "Ununoctium", None], # 118
]
symbol_map = {
diff --git a/python/examples/example.py b/python/examples/example.py
new file mode 100644
index 0000000..1a83aae
--- /dev/null
+++ b/python/examples/example.py
@@ -0,0 +1,291 @@
+#!/usr/bin/evn python
+
+import sys
+import spglib
+import numpy as np
+
+#######################################
+# Uncomment to use Atoms class in ASE #
+#######################################
+# from ase import Atoms
+
+#######################################################################
+# Using the local Atoms-like class (BSD license) where a small set of #
+# ASE Atoms features is comaptible but enough for this example. #
+#######################################################################
+from atoms import Atoms
+
+def show_symmetry(symmetry):
+ for i in range(symmetry['rotations'].shape[0]):
+ print(" --------------- %4d ---------------" % (i + 1))
+ rot = symmetry['rotations'][i]
+ trans = symmetry['translations'][i]
+ print(" rotation:")
+ for x in rot:
+ print(" [%2d %2d %2d]" % (x[0], x[1], x[2]))
+ print(" translation:")
+ print(" (%8.5f %8.5f %8.5f)" % (trans[0], trans[1], trans[2]))
+
+def show_lattice(lattice):
+ print("Basis vectors:")
+ for vec, axis in zip(lattice, ("a", "b", "c")):
+ print("%s %10.5f %10.5f %10.5f" % (tuple(axis,) + tuple(vec)))
+
+def show_cell(lattice, positions, numbers):
+ show_lattice(lattice)
+ print("Atomic points:")
+ for p, s in zip(positions, numbers):
+ print("%2d %10.5f %10.5f %10.5f" % ((s,) + tuple(p)))
+
+silicon_ase = Atoms(symbols=['Si'] * 8,
+ cell=[(4, 0, 0),
+ (0, 4, 0),
+ (0, 0, 4)],
+ scaled_positions=[(0, 0, 0),
+ (0, 0.5, 0.5),
+ (0.5, 0, 0.5),
+ (0.5, 0.5, 0),
+ (0.25, 0.25, 0.25),
+ (0.25, 0.75, 0.75),
+ (0.75, 0.25, 0.75),
+ (0.75, 0.75, 0.25)],
+ pbc=True)
+
+silicon = ([(4, 0, 0),
+ (0, 4, 0),
+ (0, 0, 4)],
+ [(0, 0, 0),
+ (0, 0.5, 0.5),
+ (0.5, 0, 0.5),
+ (0.5, 0.5, 0),
+ (0.25, 0.25, 0.25),
+ (0.25, 0.75, 0.75),
+ (0.75, 0.25, 0.75),
+ (0.75, 0.75, 0.25)],
+ [14,] * 8)
+
+silicon_dist = ([(4.01, 0, 0),
+ (0, 4, 0),
+ (0, 0, 3.99)],
+ [(0.001, 0, 0),
+ (0, 0.5, 0.5),
+ (0.5, 0, 0.5),
+ (0.5, 0.5, 0),
+ (0.25, 0.25, 0.251),
+ (0.25, 0.75, 0.75),
+ (0.75, 0.25, 0.75),
+ (0.75, 0.75, 0.25)],
+ [14,] * 8)
+
+silicon_prim = ([(0, 2, 2),
+ (2, 0, 2),
+ (2, 2, 0)],
+ [(0, 0, 0),
+ (0.25, 0.25, 0.25)],
+ [14, 14])
+
+rutile = ([(4, 0, 0),
+ (0, 4, 0),
+ (0, 0, 3)],
+ [(0, 0, 0),
+ (0.5, 0.5, 0.5),
+ (0.3, 0.3, 0.0),
+ (0.7, 0.7, 0.0),
+ (0.2, 0.8, 0.5),
+ (0.8, 0.2, 0.5)],
+ [14, 14, 8, 8, 8, 8])
+
+rutile_dist = ([(3.97, 0, 0),
+ (0, 4.03, 0),
+ (0, 0, 3.0)],
+ [(0, 0, 0),
+ (0.5001, 0.5, 0.5),
+ (0.3, 0.3, 0.0),
+ (0.7, 0.7, 0.002),
+ (0.2, 0.8, 0.5),
+ (0.8, 0.2, 0.5)],
+ [14, 14, 8, 8, 8, 8])
+
+a = 3.07
+c = 3.52
+MgB2 = ([(a, 0, 0),
+ (-a/2, a/2*np.sqrt(3), 0),
+ (0, 0, c)],
+ [(0, 0, 0),
+ (1.0/3, 2.0/3, 0.5),
+ (2.0/3, 1.0/3, 0.5)],
+ [12, 5, 5])
+
+a = [3., 0., 0.]
+b = [-3.66666667, 3.68178701, 0.]
+c = [-0.66666667, -1.3429469, 1.32364995]
+niggli_lattice = np.array([a, b, c])
+
+# For VASP case
+# import vasp
+# bulk = vasp.read_vasp(sys.argv[1])
+
+print("[get_spacegroup]")
+print(" Spacegroup of Silicon is %s." % spglib.get_spacegroup(silicon))
+print('')
+print("[get_spacegroup]")
+print(" Spacegroup of Silicon (ASE Atoms-like format) is %s." %
+ spglib.get_spacegroup(silicon_ase))
+print('')
+print("[get_spacegroup]")
+print(" Spacegroup of Rutile is %s." % spglib.get_spacegroup(rutile))
+print('')
+print("[get_spacegroup]")
+print(" Spacegroup of MgB2 is %s." % spglib.get_spacegroup(MgB2))
+print('')
+print("[get_symmetry]")
+print(" Symmetry operations of Rutile unitcell are:")
+print('')
+symmetry = spglib.get_symmetry(rutile)
+show_symmetry(symmetry)
+print('')
+print("[get_symmetry]")
+print(" Symmetry operations of MgB2 are:")
+print('')
+symmetry = spglib.get_symmetry(MgB2)
+show_symmetry(symmetry)
+print('')
+print("[get_pointgroup]")
+print(" Pointgroup of Rutile is %s." %
+ spglib.get_pointgroup(symmetry['rotations'])[0])
+print('')
+
+dataset = spglib.get_symmetry_dataset( rutile )
+print("[get_symmetry_dataset] ['international']")
+print(" Spacegroup of Rutile is %s (%d)." % (dataset['international'],
+ dataset['number']))
+print('')
+print("[get_symmetry_dataset] ['pointgroup']")
+print(" Pointgroup of Rutile is %s." % (dataset['pointgroup']))
+print('')
+print("[get_symmetry_dataset] ['hall']")
+print(" Hall symbol of Rutile is %s (%d)." % (dataset['hall'],
+ dataset['hall_number']))
+print('')
+print("[get_symmetry_dataset] ['wyckoffs']")
+alphabet = "abcdefghijklmnopqrstuvwxyz"
+print(" Wyckoff letters of Rutile are: ", dataset['wyckoffs'])
+print('')
+print("[get_symmetry_dataset] ['equivalent_atoms']")
+print(" Mapping to equivalent atoms of Rutile are: ")
+for i, x in enumerate(dataset['equivalent_atoms']):
+ print(" %d -> %d" % (i + 1, x + 1))
+print('')
+print("[get_symmetry_dataset] ['rotations'], ['translations']")
+print(" Symmetry operations of Rutile unitcell are:")
+for i, (rot,trans) in enumerate(zip(dataset['rotations'],
+ dataset['translations'])):
+ print(" --------------- %4d ---------------" % (i + 1))
+ print(" rotation:")
+ for x in rot:
+ print(" [%2d %2d %2d]" % (x[0], x[1], x[2]))
+ print(" translation:")
+ print(" (%8.5f %8.5f %8.5f)" % (trans[0], trans[1], trans[2]))
+print('')
+
+print("[refine_cell]")
+print(" Refine distorted rutile structure")
+lattice, positions, numbers = spglib.refine_cell(rutile_dist, symprec=1e-1)
+show_cell(lattice, positions, numbers)
+print('')
+
+print("[find_primitive]")
+print(" Fine primitive distorted silicon structure")
+lattice, positions, numbers = spglib.find_primitive(silicon_dist, symprec=1e-1)
+show_cell(lattice, positions, numbers)
+print('')
+
+print("[standardize_cell]")
+print(" Standardize distorted rutile structure:")
+print(" (to_primitive=0 and no_idealize=0)")
+lattice, positions, numbers = spglib.standardize_cell(rutile_dist,
+ to_primitive=0,
+ no_idealize=0,
+ symprec=1e-1)
+show_cell(lattice, positions, numbers)
+print('')
+
+print("[standardize_cell]")
+print(" Standardize distorted rutile structure:")
+print(" (to_primitive=0 and no_idealize=1)")
+lattice, positions, numbers = spglib.standardize_cell(rutile_dist,
+ to_primitive=0,
+ no_idealize=1,
+ symprec=1e-1)
+show_cell(lattice, positions, numbers)
+print('')
+
+print("[standardize_cell]")
+print(" Standardize distorted silicon structure:")
+print(" (to_primitive=1 and no_idealize=0)")
+lattice, positions, numbers = spglib.standardize_cell(silicon_dist,
+ to_primitive=1,
+ no_idealize=0,
+ symprec=1e-1)
+show_cell(lattice, positions, numbers)
+print('')
+
+print("[standardize_cell]")
+print(" Standardize distorted silicon structure:")
+print(" (to_primitive=1 and no_idealize=1)")
+lattice, positions, numbers = spglib.standardize_cell(silicon_dist,
+ to_primitive=1,
+ no_idealize=1,
+ symprec=1e-1)
+show_cell(lattice, positions, numbers)
+print('')
+
+symmetry = spglib.get_symmetry(silicon)
+print("[get_symmetry]")
+print(" Number of symmetry operations of silicon conventional")
+print(" unit cell is %d (192)." % len(symmetry['rotations']))
+show_symmetry(symmetry)
+print('')
+
+symmetry = spglib.get_symmetry_from_database(525)
+print("[get_symmetry_from_database]")
+print(" Number of symmetry operations of silicon conventional")
+print(" unit cell is %d (192)." % len(symmetry['rotations']))
+show_symmetry(symmetry)
+print('')
+
+reduced_lattice = spglib.niggli_reduce(niggli_lattice)
+print("[niggli_reduce]")
+print(" Original lattice")
+show_lattice(niggli_lattice)
+print(" Reduced lattice")
+show_lattice(reduced_lattice)
+print('')
+
+
+mapping, grid = spglib.get_ir_reciprocal_mesh([11, 11, 11],
+ silicon_prim,
+ is_shift=[0, 0, 0])
+num_ir_kpt = len(np.unique(mapping))
+print("[get_ir_reciprocal_mesh]")
+print(" Number of irreducible k-points of primitive silicon with")
+print(" 11x11x11 Monkhorst-Pack mesh is %d (56)." % num_ir_kpt)
+print('')
+
+mapping, grid = spglib.get_ir_reciprocal_mesh([8, 8, 8],
+ rutile,
+ is_shift=[1, 1, 1])
+num_ir_kpt = len(np.unique(mapping))
+print("[get_ir_reciprocal_mesh]")
+print(" Number of irreducible k-points of Rutile with")
+print(" 8x8x8 Monkhorst-Pack mesh is %d (40)." % num_ir_kpt)
+print('')
+
+mapping, grid = spglib.get_ir_reciprocal_mesh([9, 9, 8],
+ MgB2,
+ is_shift=[0, 0, 1])
+num_ir_kpt = len(np.unique(mapping))
+print("[get_ir_reciprocal_mesh]")
+print(" Number of irreducible k-points of MgB2 with")
+print(" 9x9x8 Monkhorst-Pack mesh is %s (48)." % num_ir_kpt)
+print('')
diff --git a/python/get_nanoversion.sh b/python/get_nanoversion.sh
new file mode 100755
index 0000000..597ab77
--- /dev/null
+++ b/python/get_nanoversion.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+br=`git branch |tail -n1`
+read o u f <<< `git remote -v |grep origin |grep fetch`
+echo "Repo: $o $u $br"
+git describe --tags --dirty
+TD=`mktemp -d`
+WD=`pwd`
+git clone $u $TD
+cd $TD
+echo $u $br
+git checkout $br
+git describe --tags --dirty | sed -e 's/\([.0-9]*\)-\(.*\)-g.*/\2/' -e 's/^[vr]//g' >$WD/__nanoversion__.txt
+cd $WD
+rm -rf "$TD"
diff --git a/python/requirements.txt b/python/requirements.txt
new file mode 100644
index 0000000..b43028e
--- /dev/null
+++ b/python/requirements.txt
@@ -0,0 +1 @@
+numpy==1.11.1
diff --git a/python/setup.py b/python/setup.py
new file mode 100644
index 0000000..2698fe3
--- /dev/null
+++ b/python/setup.py
@@ -0,0 +1,151 @@
+import os
+import sys
+
+try:
+ from setuptools import setup, Extension
+ from setuptools.command.build_ext import build_ext as _build_ext
+ use_setuptools = True
+
+ class build_ext(_build_ext):
+ def finalize_options(self):
+ _build_ext.finalize_options(self)
+ # Prevent numpy from thinking it is still in its setup process:
+ if sys.version_info[0] >= 3:
+ import builtins
+ if hasattr(builtins, '__NUMPY_SETUP__'):
+ del builtins.__NUMPY_SETUP__
+ import importlib
+ import numpy
+ importlib.reload(numpy)
+
+ else:
+ import __builtin__
+ if hasattr(__builtin__, '__NUMPY_SETUP__'):
+ del __builtin__.__NUMPY_SETUP__
+ import imp
+ import numpy
+ imp.reload(numpy)
+ self.include_dirs.append(numpy.get_include())
+ print("setuptools is used.")
+except ImportError:
+ from distutils.core import setup, Extension
+ use_setuptools = False
+ print("distutils is used.")
+
+ try:
+ from numpy.distutils.misc_util import get_numpy_include_dirs
+ except ImportError:
+ print("numpy.distutils.misc_util cannot be imported. Please install "
+ "numpy first before installing spglib...")
+ import sys
+ sys.exit(1)
+
+# Workaround Python issue 21121
+import sysconfig
+config_var = sysconfig.get_config_var("CFLAGS")
+if config_var is not None and "-Werror=declaration-after-statement" in config_var:
+ os.environ['CFLAGS'] = config_var.replace(
+ "-Werror=declaration-after-statement", "")
+
+sources = ['arithmetic.c',
+ 'cell.c',
+ 'delaunay.c',
+ 'determination.c',
+ 'hall_symbol.c',
+ 'kgrid.c',
+ 'kpoint.c',
+ 'mathfunc.c',
+ 'niggli.c',
+ 'pointgroup.c',
+ 'primitive.c',
+ 'refinement.c',
+ 'sitesym_database.c',
+ 'site_symmetry.c',
+ 'spacegroup.c',
+ 'spin.c',
+ 'spg_database.c',
+ 'spglib.c',
+ 'symmetry.c']
+
+if os.path.exists('src'):
+ source_dir = "src"
+else:
+ source_dir = "../src"
+
+include_dirs = [source_dir,]
+if not use_setuptools:
+ include_dirs += get_numpy_include_dirs()
+
+for i,s in enumerate(sources):
+ sources[i] = "%s/%s" % (source_dir, s)
+
+extra_compile_args = []
+extra_link_args = []
+define_macros = []
+
+## Uncomment to activate OpenMP support for gcc
+# extra_compile_args += ['-fopenmp']
+# extra_link_args += ['-lgomp']
+
+## For debugging
+# define_macros = [('SPGWARNING', None),
+# ('SPGDEBUG', None)]
+
+extension = Extension('spglib._spglib',
+ include_dirs=include_dirs,
+ sources=['_spglib.c'] + sources,
+ extra_compile_args=extra_compile_args,
+ extra_link_args=extra_link_args,
+ define_macros=define_macros)
+
+version_nums = [None, None, None]
+with open("%s/version.h" % source_dir) as w:
+ for line in w:
+ for i, chars in enumerate(("MAJOR", "MINOR", "MICRO")):
+ if chars in line:
+ version_nums[i] = int(line.split()[2])
+
+# To deploy to pypi by travis-CI
+nanoversion = 0
+if os.path.isfile("__nanoversion__.txt"):
+ with open('__nanoversion__.txt') as nv:
+ try :
+ for line in nv:
+ nanoversion = int(line.strip())
+ break
+ except ValueError :
+ nanoversion = 0
+ if nanoversion:
+ version_nums.append(nanoversion)
+
+if None in version_nums:
+ print("Failed to get version number in setup.py.")
+ raise
+
+version = ".".join(["%d" % n for n in version_nums])
+if use_setuptools:
+ setup(name='spglib',
+ version=version,
+ cmdclass={'build_ext': build_ext},
+ setup_requires=['numpy', 'setuptools>=18.0'],
+ description='This is the spglib module.',
+ author='Atsushi Togo',
+ author_email='atz.togo at gmail.com',
+ url='http://atztogo.github.io/spglib/',
+ packages=['spglib'],
+ install_requires=['numpy'],
+ provides=['spglib'],
+ platforms=['all'],
+ ext_modules=[extension])
+else:
+ setup(name='spglib',
+ version=version,
+ description='This is the spglib module.',
+ author='Atsushi Togo',
+ author_email='atz.togo at gmail.com',
+ url='http://atztogo.github.io/spglib/',
+ packages=['spglib'],
+ requires=['numpy'],
+ provides=['spglib'],
+ platforms=['all'],
+ ext_modules=[extension])
diff --git a/python/spglib/__init__.py b/python/spglib/__init__.py
new file mode 100644
index 0000000..bd5a3bb
--- /dev/null
+++ b/python/spglib/__init__.py
@@ -0,0 +1,56 @@
+# Copyright (C) 2015 Atsushi Togo
+# All rights reserved.
+#
+# This file is part of spglib.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# * Neither the name of the spglib project nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from .spglib import (get_version,
+ get_symmetry,
+ get_symmetry_dataset,
+ get_spacegroup,
+ get_hall_number_from_symmetry,
+ get_spacegroup_type,
+ get_pointgroup,
+ standardize_cell,
+ refine_cell,
+ find_primitive,
+ delaunay_reduce,
+ niggli_reduce,
+ get_symmetry_from_database,
+ get_grid_point_from_address,
+ get_ir_reciprocal_mesh,
+ get_grid_points_by_rotations,
+ get_BZ_grid_points_by_rotations,
+ relocate_BZ_grid_address,
+ get_stabilized_reciprocal_mesh,
+ get_error_message)
+
+__version__ = "%d.%d.%d" % get_version()
diff --git a/python/spglib/spglib.py b/python/spglib/spglib.py
new file mode 100644
index 0000000..e74809a
--- /dev/null
+++ b/python/spglib/spglib.py
@@ -0,0 +1,770 @@
+# Copyright (C) 2015 Atsushi Togo
+# All rights reserved.
+#
+# This file is part of spglib.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# * Neither the name of the spglib project nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from . import _spglib as spg
+import numpy as np
+
+class SpglibError(object):
+ message = "no error"
+
+spglib_error = SpglibError()
+
+def get_version():
+ _set_no_error()
+ return tuple(spg.version())
+
+def get_symmetry(cell, symprec=1e-5, angle_tolerance=-1.0):
+ """This gives crystal symmetry operations from a crystal structure.
+
+ Args:
+ cell: Crystal structrue given either in Atoms object or tuple.
+ In the case given by a tuple, it has to follow the form below,
+ (Lattice parameters in a 3x3 array (see the detail below),
+ Fractional atomic positions in an Nx3 array,
+ Integer numbers to distinguish species in a length N array,
+ (optional) Collinear magnetic moments in a length N array),
+ where N is the number of atoms.
+ Lattice parameters are given in the form:
+ [[a_x, a_y, a_z],
+ [b_x, b_y, b_z],
+ [c_x, c_y, c_z]]
+ symprec:
+ float: Symmetry search tolerance in the unit of length.
+ angle_tolerance:
+ float: Symmetry search tolerance in the unit of angle deg.
+ If the value is negative, an internally optimized routine
+ is used to judge symmetry.
+
+ Return:
+ A dictionary: Rotation parts and translation parts. Dictionary keys:
+ 'rotations': Gives the numpy 'intc' array of the rotation matrices.
+ 'translations': Gives the numpy 'double' array of fractional
+ translations with respect to a, b, c axes.
+
+ """
+ _set_no_error()
+
+ lattice, positions, numbers, magmoms = _expand_cell(cell)
+ if lattice is None:
+ return None
+
+ multi = 48 * len(positions)
+ rotation = np.zeros((multi, 3, 3), dtype='intc')
+ translation = np.zeros((multi, 3), dtype='double')
+
+ # Get symmetry operations
+ if magmoms is None:
+ dataset = get_symmetry_dataset(cell,
+ symprec=symprec,
+ angle_tolerance=angle_tolerance)
+ if dataset is None:
+ return None
+ else:
+ return {'rotations': dataset['rotations'],
+ 'translations': dataset['translations'],
+ 'equivalent_atoms': dataset['equivalent_atoms']}
+ else:
+ equivalent_atoms = np.zeros(len(magmoms), dtype='intc')
+ num_sym = spg.symmetry_with_collinear_spin(rotation,
+ translation,
+ equivalent_atoms,
+ lattice,
+ positions,
+ numbers,
+ magmoms,
+ symprec,
+ angle_tolerance)
+ _set_error_message()
+ if num_sym == 0:
+ return None
+ else:
+ return {'rotations': np.array(rotation[:num_sym],
+ dtype='intc', order='C'),
+ 'translations': np.array(translation[:num_sym],
+ dtype='double', order='C'),
+ 'equivalent_atoms': equivalent_atoms}
+
+def get_symmetry_dataset(cell,
+ symprec=1e-5,
+ angle_tolerance=-1.0,
+ hall_number=0):
+ """Search symmetry dataset from an input cell.
+
+ Args:
+ cell, symprec, angle_tolerance:
+ See the docstring of get_symmetry.
+ hall_number: If a serial number of Hall symbol (>0) is given,
+ the database corresponding to the Hall symbol is made.
+
+ Return:
+ A dictionary is returned. Dictionary keys:
+ number (int): International space group number
+ international (str): International symbol
+ hall (str): Hall symbol
+ choice (str): Centring, origin, basis vector setting
+ transformation_matrix (3x3 float):
+ Transformation matrix from input lattice to standardized lattice
+ L^original = L^standardized * Tmat
+ origin shift (3 float):
+ Origin shift from standardized to input origin
+ rotations (3x3 int), translations (float vector):
+ Rotation matrices and translation vectors. Space group
+ operations are obtained by
+ [(r,t) for r, t in zip(rotations, translations)]
+ wyckoffs (n char): Wyckoff letters
+ equivalent_atoms (n int): Symmetrically equivalent atoms
+ mapping_to_primitive (n int):
+ Original cell atom index mapping to primivie cell atom index
+ Standardized unit cell:
+ std_lattice (3x3 float), std_positions (Nx3 float),
+ std_types (N int)
+ std_mapping_to_primitive (m int):
+ Std-cell atom index mapping to primivie cell atom index
+ pointgroup (str): Pointgroup symbol
+
+ If it fails, None is returned.
+
+ """
+ _set_no_error()
+
+ lattice, positions, numbers, _ = _expand_cell(cell)
+ if lattice is None:
+ return None
+
+ spg_ds = spg.dataset(lattice, positions, numbers, hall_number,
+ symprec, angle_tolerance)
+ if spg_ds is None:
+ _set_error_message()
+ return None
+
+ keys = ('number',
+ 'hall_number',
+ 'international',
+ 'hall',
+ 'choice',
+ 'transformation_matrix',
+ 'origin_shift',
+ 'rotations',
+ 'translations',
+ 'wyckoffs',
+ 'equivalent_atoms',
+ 'mapping_to_primitive',
+ 'std_lattice',
+ 'std_types',
+ 'std_positions',
+ 'std_mapping_to_primitive',
+ # 'pointgroup_number',
+ 'pointgroup')
+ dataset = {}
+ for key, data in zip(keys, spg_ds):
+ dataset[key] = data
+
+ dataset['international'] = dataset['international'].strip()
+ dataset['hall'] = dataset['hall'].strip()
+ dataset['choice'] = dataset['choice'].strip()
+ dataset['transformation_matrix'] = np.array(
+ dataset['transformation_matrix'], dtype='double', order='C')
+ dataset['origin_shift'] = np.array(dataset['origin_shift'], dtype='double')
+ dataset['rotations'] = np.array(dataset['rotations'],
+ dtype='intc', order='C')
+ dataset['translations'] = np.array(dataset['translations'],
+ dtype='double', order='C')
+ letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ dataset['wyckoffs'] = [letters[x] for x in dataset['wyckoffs']]
+ dataset['equivalent_atoms'] = np.array(dataset['equivalent_atoms'],
+ dtype='intc')
+ dataset['mapping_to_primitive'] = np.array(dataset['mapping_to_primitive'],
+ dtype='intc')
+ dataset['std_lattice'] = np.array(np.transpose(dataset['std_lattice']),
+ dtype='double', order='C')
+ dataset['std_types'] = np.array(dataset['std_types'], dtype='intc')
+ dataset['std_positions'] = np.array(dataset['std_positions'],
+ dtype='double', order='C')
+ dataset['std_mapping_to_primitive'] = np.array(
+ dataset['std_mapping_to_primitive'], dtype='intc')
+ dataset['pointgroup'] = dataset['pointgroup'].strip()
+
+ _set_error_message()
+ return dataset
+
+def get_spacegroup(cell, symprec=1e-5, angle_tolerance=-1.0, symbol_type=0):
+ """Return space group in international table symbol and number as a string.
+
+ If it fails, None is returned.
+ """
+ _set_no_error()
+
+ dataset = get_symmetry_dataset(cell,
+ symprec=symprec,
+ angle_tolerance=angle_tolerance)
+ if dataset is None:
+ return None
+
+ spg_type = get_spacegroup_type(dataset['hall_number'])
+ if symbol_type == 1:
+ return "%s (%d)" % (spg_type['schoenflies'], dataset['number'])
+ else:
+ return "%s (%d)" % (spg_type['international_short'], dataset['number'])
+
+def get_hall_number_from_symmetry(rotations, translations, symprec=1e-5):
+ """Hall number is obtained from a set of symmetry operations.
+
+ If it fails, None is returned.
+ """
+
+ r = np.array(rotations, dtype='intc', order='C')
+ t = np.array(translations, dtype='double', order='C')
+ hall_number = spg.hall_number_from_symmetry(r, t, symprec)
+ return hall_number
+
+def get_spacegroup_type(hall_number):
+ """Translate Hall number to space group type information.
+
+ If it fails, None is returned.
+ """
+ _set_no_error()
+
+ keys = ('number',
+ 'international_short',
+ 'international_full',
+ 'international',
+ 'schoenflies',
+ 'hall_symbol',
+ 'choice',
+ 'pointgroup_schoenflies',
+ 'pointgroup_international',
+ 'arithmetic_crystal_class_number',
+ 'arithmetic_crystal_class_symbol')
+ spg_type_list = spg.spacegroup_type(hall_number)
+ _set_error_message()
+
+ if spg_type_list is not None:
+ spg_type = dict(zip(keys, spg_type_list))
+ for key in spg_type:
+ if key != 'number' and key != 'arithmetic_crystal_class_number':
+ spg_type[key] = spg_type[key].strip()
+ return spg_type
+ else:
+ return None
+
+def get_pointgroup(rotations):
+ """Return point group in international table symbol and number.
+
+ The symbols are mapped to the numbers as follows:
+ 1 "1 "
+ 2 "-1 "
+ 3 "2 "
+ 4 "m "
+ 5 "2/m "
+ 6 "222 "
+ 7 "mm2 "
+ 8 "mmm "
+ 9 "4 "
+ 10 "-4 "
+ 11 "4/m "
+ 12 "422 "
+ 13 "4mm "
+ 14 "-42m "
+ 15 "4/mmm"
+ 16 "3 "
+ 17 "-3 "
+ 18 "32 "
+ 19 "3m "
+ 20 "-3m "
+ 21 "6 "
+ 22 "-6 "
+ 23 "6/m "
+ 24 "622 "
+ 25 "6mm "
+ 26 "-62m "
+ 27 "6/mmm"
+ 28 "23 "
+ 29 "m-3 "
+ 30 "432 "
+ 31 "-43m "
+ 32 "m-3m "
+ """
+ _set_no_error()
+
+ # (symbol, pointgroup_number, transformation_matrix)
+ pointgroup = spg.pointgroup(np.array(rotations, dtype='intc', order='C'))
+ _set_error_message()
+ return pointgroup
+
+def standardize_cell(cell,
+ to_primitive=False,
+ no_idealize=False,
+ symprec=1e-5,
+ angle_tolerance=-1.0):
+ """Return standardized cell.
+
+ Args:
+ cell, symprec, angle_tolerance:
+ See the docstring of get_symmetry.
+ to_primitive:
+ bool: If True, the standardized primitive cell is created.
+ no_idealize:
+ bool: If True, it is disabled to idealize lengths and angles of
+ basis vectors and positions of atoms according to crystal
+ symmetry.
+ Return:
+ The standardized unit cell or primitive cell is returned by a tuple of
+ (lattice, positions, numbers).
+ If it fails, None is returned.
+ """
+ _set_no_error()
+
+ lattice, _positions, _numbers, _ = _expand_cell(cell)
+ if lattice is None:
+ return None
+
+ # Atomic positions have to be specified by scaled positions for spglib.
+ num_atom = len(_positions)
+ positions = np.zeros((num_atom * 4, 3), dtype='double', order='C')
+ positions[:num_atom] = _positions
+ numbers = np.zeros(num_atom * 4, dtype='intc')
+ numbers[:num_atom] = _numbers
+ num_atom_std = spg.standardize_cell(lattice,
+ positions,
+ numbers,
+ num_atom,
+ to_primitive * 1,
+ no_idealize * 1,
+ symprec,
+ angle_tolerance)
+ _set_error_message()
+
+ if num_atom_std > 0:
+ return (np.array(lattice.T, dtype='double', order='C'),
+ np.array(positions[:num_atom_std], dtype='double', order='C'),
+ np.array(numbers[:num_atom_std], dtype='intc'))
+ else:
+ return None
+
+def refine_cell(cell, symprec=1e-5, angle_tolerance=-1.0):
+ """Return refined cell.
+
+ The standardized unit cell is returned by a tuple of
+ (lattice, positions, numbers).
+ If it fails, None is returned.
+ """
+ _set_no_error()
+
+ lattice, _positions, _numbers, _ = _expand_cell(cell)
+ if lattice is None:
+ return None
+
+ # Atomic positions have to be specified by scaled positions for spglib.
+ num_atom = len(_positions)
+ positions = np.zeros((num_atom * 4, 3), dtype='double', order='C')
+ positions[:num_atom] = _positions
+ numbers = np.zeros(num_atom * 4, dtype='intc')
+ numbers[:num_atom] = _numbers
+ num_atom_std = spg.refine_cell(lattice,
+ positions,
+ numbers,
+ num_atom,
+ symprec,
+ angle_tolerance)
+ _set_error_message()
+
+ if num_atom_std > 0:
+ return (np.array(lattice.T, dtype='double', order='C'),
+ np.array(positions[:num_atom_std], dtype='double', order='C'),
+ np.array(numbers[:num_atom_std], dtype='intc'))
+ else:
+ return None
+
+def find_primitive(cell, symprec=1e-5, angle_tolerance=-1.0):
+ """Primitive cell is searched in the input cell.
+
+ The primitive cell is returned by a tuple of (lattice, positions, numbers).
+ If it fails, None is returned.
+ """
+ _set_no_error()
+
+ lattice, positions, numbers, _ = _expand_cell(cell)
+ if lattice is None:
+ return None
+
+ num_atom_prim = spg.primitive(lattice,
+ positions,
+ numbers,
+ symprec,
+ angle_tolerance)
+ _set_error_message()
+
+ if num_atom_prim > 0:
+ return (np.array(lattice.T, dtype='double', order='C'),
+ np.array(positions[:num_atom_prim], dtype='double', order='C'),
+ np.array(numbers[:num_atom_prim], dtype='intc'))
+ else:
+ return None
+
+def get_symmetry_from_database(hall_number):
+ """Return symmetry operations corresponding to a Hall symbol.
+
+ The Hall symbol is given by the serial number in between 1 and 530.
+ The symmetry operations are given by a dictionary whose keys are
+ 'rotations' and 'translations'.
+ If it fails, None is returned.
+ """
+ _set_no_error()
+
+ rotations = np.zeros((192, 3, 3), dtype='intc')
+ translations = np.zeros((192, 3), dtype='double')
+ num_sym = spg.symmetry_from_database(rotations, translations, hall_number)
+ _set_error_message()
+
+ if num_sym is None:
+ return None
+ else:
+ return {'rotations':
+ np.array(rotations[:num_sym], dtype='intc', order='C'),
+ 'translations':
+ np.array(translations[:num_sym], dtype='double', order='C')}
+
+############
+# k-points #
+############
+def get_grid_point_from_address(grid_address, mesh):
+ """Return grid point index by tranlating grid address"""
+ _set_no_error()
+
+ return spg.grid_point_from_address(np.array(grid_address, dtype='intc'),
+ np.array(mesh, dtype='intc'))
+
+
+def get_ir_reciprocal_mesh(mesh,
+ cell,
+ is_shift=None,
+ is_time_reversal=True,
+ symprec=1e-5):
+ """Return k-points mesh and k-point map to the irreducible k-points.
+
+ The symmetry is serched from the input cell.
+
+ Args:
+ mesh:
+ int array (3,): Uniform sampling mesh numbers
+ cell, symprec:
+ See the docstring of get_symmetry.
+ is_shift:
+ int array (3,): [0, 0, 0] gives Gamma center mesh and value 1 gives
+ half mesh shift.
+ is_time_reversal:
+ bool: Time reversal symmetry is included or not.
+
+ Returns:
+ mapping_table:
+ int array (N,): Grid point mapping table to ir-gird-points
+ grid_address:
+ int array (N, 3): Address of all grid points
+ """
+ _set_no_error()
+
+ lattice, positions, numbers, _ = _expand_cell(cell)
+ if lattice is None:
+ return None
+
+ mapping = np.zeros(np.prod(mesh), dtype='intc')
+ grid_address = np.zeros((np.prod(mesh), 3), dtype='intc')
+ if is_shift is None:
+ is_shift = [0, 0, 0]
+ if spg.ir_reciprocal_mesh(
+ grid_address,
+ mapping,
+ np.array(mesh, dtype='intc'),
+ np.array(is_shift, dtype='intc'),
+ is_time_reversal * 1,
+ lattice,
+ positions,
+ numbers,
+ symprec) > 0:
+ return mapping, grid_address
+ else:
+ return None
+
+def get_stabilized_reciprocal_mesh(mesh,
+ rotations,
+ is_shift=None,
+ is_time_reversal=True,
+ qpoints=None):
+ """Return k-point map to the irreducible k-points and k-point grid points .
+
+ The symmetry is searched from the input rotation matrices in real space.
+
+ Args:
+ mesh:
+ int array (3,): Uniform sampling mesh numbers
+ is_shift:
+ int array (3,): [0, 0, 0] gives Gamma center mesh and value 1 gives
+ half mesh shift.
+ is_time_reversal:
+ bool: Time reversal symmetry is included or not.
+ qpoints:
+ float array (N ,3) or (3,):
+ Stabilizer(s) in the fractional coordinates.
+
+ Returns:
+ mapping_table:
+ int array (N,): Grid point mapping table to ir-gird-points
+ grid_address:
+ int array (N, 3): Address of all grid points
+ """
+ _set_no_error()
+
+ mapping_table = np.zeros(np.prod(mesh), dtype='intc')
+ grid_address = np.zeros((np.prod(mesh), 3), dtype='intc')
+ if is_shift is None:
+ is_shift = [0, 0, 0]
+ if qpoints is None:
+ qpoints = np.array([[0, 0, 0]], dtype='double', order='C')
+ else:
+ qpoints = np.array(qpoints, dtype='double', order='C')
+ if qpoints.shape == (3,):
+ qpoints = np.array([qpoints], dtype='double', order='C')
+
+ if spg.stabilized_reciprocal_mesh(
+ grid_address,
+ mapping_table,
+ np.array(mesh, dtype='intc'),
+ np.array(is_shift, dtype='intc'),
+ is_time_reversal * 1,
+ np.array(rotations, dtype='intc', order='C'),
+ qpoints) > 0:
+ return mapping_table, grid_address
+ else:
+ return None
+
+def get_grid_points_by_rotations(address_orig,
+ reciprocal_rotations,
+ mesh,
+ is_shift=np.zeros(3, dtype='intc')):
+ """Rotation operations in reciprocal space ``reciprocal_rotations`` are applied
+ to a grid point ``grid_point`` and resulting grid points are returned.
+ """
+ _set_no_error()
+
+ rot_grid_points = np.zeros(len(reciprocal_rotations), dtype='intc')
+ spg.grid_points_by_rotations(
+ rot_grid_points,
+ np.array(address_orig, dtype='intc'),
+ np.array(reciprocal_rotations, dtype='intc', order='C'),
+ np.array(mesh, dtype='intc'),
+ np.array(is_shift, dtype='intc'))
+
+ return rot_grid_points
+
+def get_BZ_grid_points_by_rotations(address_orig,
+ reciprocal_rotations,
+ mesh,
+ bz_map,
+ is_shift=np.zeros(3, dtype='intc')):
+ """Rotation operations in reciprocal space ``reciprocal_rotations`` are applied
+ to a grid point ``grid_point`` and resulting grid points are returned.
+ """
+ _set_no_error()
+
+ rot_grid_points = np.zeros(len(reciprocal_rotations), dtype='intc')
+ spg.BZ_grid_points_by_rotations(
+ rot_grid_points,
+ np.array(address_orig, dtype='intc'),
+ np.array(reciprocal_rotations, dtype='intc', order='C'),
+ np.array(mesh, dtype='intc'),
+ np.array(is_shift, dtype='intc'),
+ bz_map)
+
+ return rot_grid_points
+
+def relocate_BZ_grid_address(grid_address,
+ mesh,
+ reciprocal_lattice, # column vectors
+ is_shift=np.zeros(3, dtype='intc')):
+ """Grid addresses are relocated inside Brillouin zone.
+ Number of ir-grid-points inside Brillouin zone is returned.
+ It is assumed that the following arrays have the shapes of
+ bz_grid_address[prod(mesh + 1)][3]
+ bz_map[prod(mesh * 2)]
+ where grid_address[prod(mesh)][3].
+ Each element of grid_address is mapped to each element of
+ bz_grid_address with keeping element order. bz_grid_address has
+ larger memory space to represent BZ surface even if some points
+ on a surface are translationally equivalent to the other points
+ on the other surface. Those equivalent points are added successively
+ as grid point numbers to bz_grid_address. Those added grid points
+ are stored after the address of end point of grid_address, i.e.
+
+ |-----------------array size of bz_grid_address---------------------|
+ |--grid addresses similar to grid_address--|--newly added ones--|xxx|
+
+ where xxx means the memory space that may not be used. Number of grid
+ points stored in bz_grid_address is returned.
+ bz_map is used to recover grid point index expanded to include BZ
+ surface from grid address. The grid point indices are mapped to
+ (mesh[0] * 2) x (mesh[1] * 2) x (mesh[2] * 2) space (bz_map).
+ """
+ _set_no_error()
+
+ bz_grid_address = np.zeros(
+ ((mesh[0] + 1) * (mesh[1] + 1) * (mesh[2] + 1), 3), dtype='intc')
+ bz_map = np.zeros(
+ (2 * mesh[0]) * (2 * mesh[1]) * (2 * mesh[2]), dtype='intc')
+ num_bz_ir = spg.BZ_grid_address(
+ bz_grid_address,
+ bz_map,
+ grid_address,
+ np.array(mesh, dtype='intc'),
+ np.array(reciprocal_lattice, dtype='double', order='C'),
+ np.array(is_shift, dtype='intc'))
+
+ return bz_grid_address[:num_bz_ir], bz_map
+
+def delaunay_reduce(lattice, eps=1e-5):
+ """Run Delaunay reduction
+
+ Args:
+ lattice: Lattice parameters in the form of
+ [[a_x, a_y, a_z],
+ [b_x, b_y, b_z],
+ [c_x, c_y, c_z]]
+ symprec:
+ float: Tolerance to check if volume is close to zero or not and
+ if two basis vectors are orthogonal by the value of dot
+ product being close to zero or not.
+
+ Returns:
+ if the Delaunay reduction succeeded:
+ Reduced lattice parameters are given as a numpy 'double' array:
+ [[a_x, a_y, a_z],
+ [b_x, b_y, b_z],
+ [c_x, c_y, c_z]]
+ otherwise None is returned.
+ """
+ _set_no_error()
+
+ delaunay_lattice = np.array(np.transpose(lattice),
+ dtype='double', order='C')
+ result = spg.delaunay_reduce(delaunay_lattice, float(eps))
+ _set_error_message()
+
+ if result == 0:
+ return None
+ else:
+ return np.array(np.transpose(delaunay_lattice),
+ dtype='double', order='C')
+
+def niggli_reduce(lattice, eps=1e-5):
+ """Run Niggli reduction
+
+ Args:
+ lattice: Lattice parameters in the form of
+ [[a_x, a_y, a_z],
+ [b_x, b_y, b_z],
+ [c_x, c_y, c_z]]
+ eps:
+ float: Tolerance to check if difference of norms of two basis
+ vectors is close to zero or not and if two basis vectors are
+ orthogonal by the value of dot product being close to zero or
+ not. The detail is shown at
+ https://atztogo.github.io/niggli/.
+
+ Returns:
+ if the Niggli reduction succeeded:
+ Reduced lattice parameters are given as a numpy 'double' array:
+ [[a_x, a_y, a_z],
+ [b_x, b_y, b_z],
+ [c_x, c_y, c_z]]
+ otherwise None is returned.
+ """
+ _set_no_error()
+
+ niggli_lattice = np.array(np.transpose(lattice), dtype='double', order='C')
+ result = spg.niggli_reduce(niggli_lattice, float(eps))
+ _set_error_message()
+
+ if result == 0:
+ return None
+ else:
+ return np.array(np.transpose(niggli_lattice), dtype='double', order='C')
+
+def get_error_message():
+ return spglib_error.message
+
+def _expand_cell(cell):
+ if isinstance(cell, tuple):
+ lattice = np.array(np.transpose(cell[0]), dtype='double', order='C')
+ positions = np.array(cell[1], dtype='double', order='C')
+ numbers = np.array(cell[2], dtype='intc')
+ if len(cell) > 3:
+ magmoms = np.array(cell[3], dtype='double')
+ else:
+ magmoms = None
+ else:
+ import warnings
+ warnings.warn("ASE Atoms-like input is deprecated.", DeprecationWarning)
+ lattice = np.array(cell.get_cell().T, dtype='double', order='C')
+ positions = np.array(cell.get_scaled_positions(),
+ dtype='double', order='C')
+ numbers = np.array(cell.get_atomic_numbers(), dtype='intc')
+ magmoms = None
+
+ if _check(lattice, positions, numbers, magmoms):
+ return (lattice, positions, numbers, magmoms)
+ else:
+ return (None, None, None, None)
+
+def _check(lattice, positions, numbers, magmoms):
+ if lattice.shape != (3, 3):
+ return False
+ if positions.ndim != 2:
+ return False
+ if positions.shape[1] != 3:
+ return False
+ if numbers.ndim != 1:
+ return False
+ if len(numbers) != positions.shape[0]:
+ return False
+ if magmoms is not None:
+ if magmoms.ndim != 1:
+ return False
+ if len(magmoms) != len(numbers):
+ return False
+ return True
+
+def _set_error_message():
+ spglib_error.message = spg.error_message()
+
+def _set_no_error():
+ spglib_error.message = "no error"
diff --git a/test/data/cubic/POSCAR-195 b/python/test/data/cubic/POSCAR-195
similarity index 100%
rename from test/data/cubic/POSCAR-195
rename to python/test/data/cubic/POSCAR-195
diff --git a/test/data/cubic/POSCAR-195-2 b/python/test/data/cubic/POSCAR-195-2
similarity index 100%
rename from test/data/cubic/POSCAR-195-2
rename to python/test/data/cubic/POSCAR-195-2
diff --git a/test/data/cubic/POSCAR-196 b/python/test/data/cubic/POSCAR-196
similarity index 100%
rename from test/data/cubic/POSCAR-196
rename to python/test/data/cubic/POSCAR-196
diff --git a/test/data/cubic/POSCAR-196-2 b/python/test/data/cubic/POSCAR-196-2
similarity index 100%
rename from test/data/cubic/POSCAR-196-2
rename to python/test/data/cubic/POSCAR-196-2
diff --git a/test/data/cubic/POSCAR-197 b/python/test/data/cubic/POSCAR-197
similarity index 100%
rename from test/data/cubic/POSCAR-197
rename to python/test/data/cubic/POSCAR-197
diff --git a/test/data/cubic/POSCAR-197-2 b/python/test/data/cubic/POSCAR-197-2
similarity index 100%
rename from test/data/cubic/POSCAR-197-2
rename to python/test/data/cubic/POSCAR-197-2
diff --git a/test/data/cubic/POSCAR-198 b/python/test/data/cubic/POSCAR-198
similarity index 100%
rename from test/data/cubic/POSCAR-198
rename to python/test/data/cubic/POSCAR-198
diff --git a/test/data/cubic/POSCAR-198-2 b/python/test/data/cubic/POSCAR-198-2
similarity index 100%
rename from test/data/cubic/POSCAR-198-2
rename to python/test/data/cubic/POSCAR-198-2
diff --git a/test/data/cubic/POSCAR-199 b/python/test/data/cubic/POSCAR-199
similarity index 100%
rename from test/data/cubic/POSCAR-199
rename to python/test/data/cubic/POSCAR-199
diff --git a/test/data/cubic/POSCAR-199-2 b/python/test/data/cubic/POSCAR-199-2
similarity index 100%
rename from test/data/cubic/POSCAR-199-2
rename to python/test/data/cubic/POSCAR-199-2
diff --git a/test/data/cubic/POSCAR-200 b/python/test/data/cubic/POSCAR-200
similarity index 100%
rename from test/data/cubic/POSCAR-200
rename to python/test/data/cubic/POSCAR-200
diff --git a/test/data/cubic/POSCAR-200-2 b/python/test/data/cubic/POSCAR-200-2
similarity index 100%
rename from test/data/cubic/POSCAR-200-2
rename to python/test/data/cubic/POSCAR-200-2
diff --git a/test/data/cubic/POSCAR-205 b/python/test/data/cubic/POSCAR-205
similarity index 100%
rename from test/data/cubic/POSCAR-205
rename to python/test/data/cubic/POSCAR-205
diff --git a/test/data/cubic/POSCAR-205-3 b/python/test/data/cubic/POSCAR-205-3
similarity index 100%
rename from test/data/cubic/POSCAR-205-3
rename to python/test/data/cubic/POSCAR-205-3
diff --git a/test/data/cubic/POSCAR-206 b/python/test/data/cubic/POSCAR-206
similarity index 100%
rename from test/data/cubic/POSCAR-206
rename to python/test/data/cubic/POSCAR-206
diff --git a/test/data/cubic/POSCAR-206-2 b/python/test/data/cubic/POSCAR-206-2
similarity index 100%
rename from test/data/cubic/POSCAR-206-2
rename to python/test/data/cubic/POSCAR-206-2
diff --git a/test/data/cubic/POSCAR-207 b/python/test/data/cubic/POSCAR-207
similarity index 100%
rename from test/data/cubic/POSCAR-207
rename to python/test/data/cubic/POSCAR-207
diff --git a/test/data/cubic/POSCAR-208 b/python/test/data/cubic/POSCAR-208
similarity index 100%
rename from test/data/cubic/POSCAR-208
rename to python/test/data/cubic/POSCAR-208
diff --git a/test/data/cubic/POSCAR-208-2 b/python/test/data/cubic/POSCAR-208-2
similarity index 100%
rename from test/data/cubic/POSCAR-208-2
rename to python/test/data/cubic/POSCAR-208-2
diff --git a/test/data/cubic/POSCAR-209 b/python/test/data/cubic/POSCAR-209
similarity index 100%
rename from test/data/cubic/POSCAR-209
rename to python/test/data/cubic/POSCAR-209
diff --git a/test/data/cubic/POSCAR-210 b/python/test/data/cubic/POSCAR-210
similarity index 100%
rename from test/data/cubic/POSCAR-210
rename to python/test/data/cubic/POSCAR-210
diff --git a/test/data/cubic/POSCAR-210-2 b/python/test/data/cubic/POSCAR-210-2
similarity index 100%
rename from test/data/cubic/POSCAR-210-2
rename to python/test/data/cubic/POSCAR-210-2
diff --git a/test/data/cubic/POSCAR-211 b/python/test/data/cubic/POSCAR-211
similarity index 100%
rename from test/data/cubic/POSCAR-211
rename to python/test/data/cubic/POSCAR-211
diff --git a/test/data/cubic/POSCAR-212 b/python/test/data/cubic/POSCAR-212
similarity index 100%
rename from test/data/cubic/POSCAR-212
rename to python/test/data/cubic/POSCAR-212
diff --git a/test/data/cubic/POSCAR-212-2 b/python/test/data/cubic/POSCAR-212-2
similarity index 100%
rename from test/data/cubic/POSCAR-212-2
rename to python/test/data/cubic/POSCAR-212-2
diff --git a/test/data/cubic/POSCAR-213 b/python/test/data/cubic/POSCAR-213
similarity index 100%
rename from test/data/cubic/POSCAR-213
rename to python/test/data/cubic/POSCAR-213
diff --git a/test/data/cubic/POSCAR-213-2 b/python/test/data/cubic/POSCAR-213-2
similarity index 100%
rename from test/data/cubic/POSCAR-213-2
rename to python/test/data/cubic/POSCAR-213-2
diff --git a/test/data/cubic/POSCAR-214 b/python/test/data/cubic/POSCAR-214
similarity index 100%
rename from test/data/cubic/POSCAR-214
rename to python/test/data/cubic/POSCAR-214
diff --git a/test/data/cubic/POSCAR-214-2 b/python/test/data/cubic/POSCAR-214-2
similarity index 100%
rename from test/data/cubic/POSCAR-214-2
rename to python/test/data/cubic/POSCAR-214-2
diff --git a/test/data/cubic/POSCAR-215 b/python/test/data/cubic/POSCAR-215
similarity index 100%
rename from test/data/cubic/POSCAR-215
rename to python/test/data/cubic/POSCAR-215
diff --git a/test/data/cubic/POSCAR-215-2 b/python/test/data/cubic/POSCAR-215-2
similarity index 100%
rename from test/data/cubic/POSCAR-215-2
rename to python/test/data/cubic/POSCAR-215-2
diff --git a/test/data/cubic/POSCAR-216 b/python/test/data/cubic/POSCAR-216
similarity index 100%
rename from test/data/cubic/POSCAR-216
rename to python/test/data/cubic/POSCAR-216
diff --git a/test/data/cubic/POSCAR-216-2 b/python/test/data/cubic/POSCAR-216-2
similarity index 100%
rename from test/data/cubic/POSCAR-216-2
rename to python/test/data/cubic/POSCAR-216-2
diff --git a/test/data/cubic/POSCAR-217 b/python/test/data/cubic/POSCAR-217
similarity index 100%
rename from test/data/cubic/POSCAR-217
rename to python/test/data/cubic/POSCAR-217
diff --git a/test/data/cubic/POSCAR-217-2 b/python/test/data/cubic/POSCAR-217-2
similarity index 100%
rename from test/data/cubic/POSCAR-217-2
rename to python/test/data/cubic/POSCAR-217-2
diff --git a/test/data/cubic/POSCAR-218 b/python/test/data/cubic/POSCAR-218
similarity index 100%
rename from test/data/cubic/POSCAR-218
rename to python/test/data/cubic/POSCAR-218
diff --git a/test/data/cubic/POSCAR-218-2 b/python/test/data/cubic/POSCAR-218-2
similarity index 100%
rename from test/data/cubic/POSCAR-218-2
rename to python/test/data/cubic/POSCAR-218-2
diff --git a/test/data/cubic/POSCAR-219 b/python/test/data/cubic/POSCAR-219
similarity index 100%
rename from test/data/cubic/POSCAR-219
rename to python/test/data/cubic/POSCAR-219
diff --git a/test/data/cubic/POSCAR-219-2 b/python/test/data/cubic/POSCAR-219-2
similarity index 100%
rename from test/data/cubic/POSCAR-219-2
rename to python/test/data/cubic/POSCAR-219-2
diff --git a/test/data/cubic/POSCAR-220 b/python/test/data/cubic/POSCAR-220
similarity index 100%
rename from test/data/cubic/POSCAR-220
rename to python/test/data/cubic/POSCAR-220
diff --git a/test/data/cubic/POSCAR-220-2 b/python/test/data/cubic/POSCAR-220-2
similarity index 100%
rename from test/data/cubic/POSCAR-220-2
rename to python/test/data/cubic/POSCAR-220-2
diff --git a/test/data/cubic/POSCAR-221 b/python/test/data/cubic/POSCAR-221
similarity index 100%
rename from test/data/cubic/POSCAR-221
rename to python/test/data/cubic/POSCAR-221
diff --git a/test/data/cubic/POSCAR-221-2 b/python/test/data/cubic/POSCAR-221-2
similarity index 100%
rename from test/data/cubic/POSCAR-221-2
rename to python/test/data/cubic/POSCAR-221-2
diff --git a/test/data/cubic/POSCAR-222 b/python/test/data/cubic/POSCAR-222
similarity index 100%
rename from test/data/cubic/POSCAR-222
rename to python/test/data/cubic/POSCAR-222
diff --git a/test/data/cubic/POSCAR-222-2 b/python/test/data/cubic/POSCAR-222-2
similarity index 100%
rename from test/data/cubic/POSCAR-222-2
rename to python/test/data/cubic/POSCAR-222-2
diff --git a/test/data/cubic/POSCAR-223 b/python/test/data/cubic/POSCAR-223
similarity index 100%
rename from test/data/cubic/POSCAR-223
rename to python/test/data/cubic/POSCAR-223
diff --git a/test/data/cubic/POSCAR-223-2 b/python/test/data/cubic/POSCAR-223-2
similarity index 100%
rename from test/data/cubic/POSCAR-223-2
rename to python/test/data/cubic/POSCAR-223-2
diff --git a/test/data/cubic/POSCAR-224 b/python/test/data/cubic/POSCAR-224
similarity index 100%
rename from test/data/cubic/POSCAR-224
rename to python/test/data/cubic/POSCAR-224
diff --git a/test/data/cubic/POSCAR-224-2 b/python/test/data/cubic/POSCAR-224-2
similarity index 100%
rename from test/data/cubic/POSCAR-224-2
rename to python/test/data/cubic/POSCAR-224-2
diff --git a/test/data/cubic/POSCAR-225 b/python/test/data/cubic/POSCAR-225
similarity index 100%
rename from test/data/cubic/POSCAR-225
rename to python/test/data/cubic/POSCAR-225
diff --git a/test/data/cubic/POSCAR-225-2 b/python/test/data/cubic/POSCAR-225-2
similarity index 100%
rename from test/data/cubic/POSCAR-225-2
rename to python/test/data/cubic/POSCAR-225-2
diff --git a/test/data/cubic/POSCAR-226 b/python/test/data/cubic/POSCAR-226
similarity index 100%
rename from test/data/cubic/POSCAR-226
rename to python/test/data/cubic/POSCAR-226
diff --git a/test/data/cubic/POSCAR-226-2 b/python/test/data/cubic/POSCAR-226-2
similarity index 100%
rename from test/data/cubic/POSCAR-226-2
rename to python/test/data/cubic/POSCAR-226-2
diff --git a/test/data/cubic/POSCAR-227 b/python/test/data/cubic/POSCAR-227
similarity index 100%
rename from test/data/cubic/POSCAR-227
rename to python/test/data/cubic/POSCAR-227
diff --git a/test/data/cubic/POSCAR-227-2 b/python/test/data/cubic/POSCAR-227-2
similarity index 100%
rename from test/data/cubic/POSCAR-227-2
rename to python/test/data/cubic/POSCAR-227-2
diff --git a/test/data/cubic/POSCAR-228 b/python/test/data/cubic/POSCAR-228
similarity index 100%
rename from test/data/cubic/POSCAR-228
rename to python/test/data/cubic/POSCAR-228
diff --git a/test/data/cubic/POSCAR-228-2 b/python/test/data/cubic/POSCAR-228-2
similarity index 100%
rename from test/data/cubic/POSCAR-228-2
rename to python/test/data/cubic/POSCAR-228-2
diff --git a/test/data/cubic/POSCAR-229 b/python/test/data/cubic/POSCAR-229
similarity index 100%
rename from test/data/cubic/POSCAR-229
rename to python/test/data/cubic/POSCAR-229
diff --git a/test/data/cubic/POSCAR-229-2 b/python/test/data/cubic/POSCAR-229-2
similarity index 100%
rename from test/data/cubic/POSCAR-229-2
rename to python/test/data/cubic/POSCAR-229-2
diff --git a/test/data/cubic/POSCAR-230 b/python/test/data/cubic/POSCAR-230
similarity index 100%
rename from test/data/cubic/POSCAR-230
rename to python/test/data/cubic/POSCAR-230
diff --git a/test/data/cubic/POSCAR-230-2 b/python/test/data/cubic/POSCAR-230-2
similarity index 100%
rename from test/data/cubic/POSCAR-230-2
rename to python/test/data/cubic/POSCAR-230-2
diff --git a/test/data/cubic/POSCAR-230-3 b/python/test/data/cubic/POSCAR-230-3
similarity index 100%
rename from test/data/cubic/POSCAR-230-3
rename to python/test/data/cubic/POSCAR-230-3
diff --git a/test/data/cubic/POSCAR-230-4 b/python/test/data/cubic/POSCAR-230-4
similarity index 100%
rename from test/data/cubic/POSCAR-230-4
rename to python/test/data/cubic/POSCAR-230-4
diff --git a/test/data/others/spg/CONTCAR_6 b/python/test/data/distorted/POSCAR-161-1
similarity index 100%
rename from test/data/others/spg/CONTCAR_6
rename to python/test/data/distorted/POSCAR-161-1
diff --git a/test/data/others/spg/CONTCAR_7 b/python/test/data/distorted/POSCAR-161-2
similarity index 100%
rename from test/data/others/spg/CONTCAR_7
rename to python/test/data/distorted/POSCAR-161-2
diff --git a/test/data/others/spg/CONTCAR_1 b/python/test/data/distorted/POSCAR-36
similarity index 100%
rename from test/data/others/spg/CONTCAR_1
rename to python/test/data/distorted/POSCAR-36
diff --git a/test/data/others/spg/CONTCAR_5 b/python/test/data/distorted/POSCAR-5
similarity index 100%
rename from test/data/others/spg/CONTCAR_5
rename to python/test/data/distorted/POSCAR-5
diff --git a/test/data/others/spg/CONTCAR_8 b/python/test/data/distorted/POSCAR-6
similarity index 100%
rename from test/data/others/spg/CONTCAR_8
rename to python/test/data/distorted/POSCAR-6
diff --git a/test/data/others/spg/CONTCAR_2 b/python/test/data/distorted/POSCAR-7-1
similarity index 100%
rename from test/data/others/spg/CONTCAR_2
rename to python/test/data/distorted/POSCAR-7-1
diff --git a/test/data/others/spg/CONTCAR_3 b/python/test/data/distorted/POSCAR-7-2
similarity index 100%
rename from test/data/others/spg/CONTCAR_3
rename to python/test/data/distorted/POSCAR-7-2
diff --git a/test/data/others/spg/CONTCAR_4 b/python/test/data/distorted/POSCAR-8
similarity index 100%
rename from test/data/others/spg/CONTCAR_4
rename to python/test/data/distorted/POSCAR-8
diff --git a/test/data/hexagonal/POSCAR-168 b/python/test/data/hexagonal/POSCAR-168
similarity index 100%
rename from test/data/hexagonal/POSCAR-168
rename to python/test/data/hexagonal/POSCAR-168
diff --git a/test/data/hexagonal/POSCAR-169 b/python/test/data/hexagonal/POSCAR-169
similarity index 100%
rename from test/data/hexagonal/POSCAR-169
rename to python/test/data/hexagonal/POSCAR-169
diff --git a/test/data/hexagonal/POSCAR-169-2 b/python/test/data/hexagonal/POSCAR-169-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-169-2
rename to python/test/data/hexagonal/POSCAR-169-2
diff --git a/test/data/hexagonal/POSCAR-170 b/python/test/data/hexagonal/POSCAR-170
similarity index 100%
rename from test/data/hexagonal/POSCAR-170
rename to python/test/data/hexagonal/POSCAR-170
diff --git a/test/data/hexagonal/POSCAR-170-2 b/python/test/data/hexagonal/POSCAR-170-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-170-2
rename to python/test/data/hexagonal/POSCAR-170-2
diff --git a/test/data/hexagonal/POSCAR-171 b/python/test/data/hexagonal/POSCAR-171
similarity index 100%
rename from test/data/hexagonal/POSCAR-171
rename to python/test/data/hexagonal/POSCAR-171
diff --git a/test/data/hexagonal/POSCAR-171-2 b/python/test/data/hexagonal/POSCAR-171-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-171-2
rename to python/test/data/hexagonal/POSCAR-171-2
diff --git a/test/data/hexagonal/POSCAR-172 b/python/test/data/hexagonal/POSCAR-172
similarity index 100%
rename from test/data/hexagonal/POSCAR-172
rename to python/test/data/hexagonal/POSCAR-172
diff --git a/test/data/hexagonal/POSCAR-173 b/python/test/data/hexagonal/POSCAR-173
similarity index 100%
rename from test/data/hexagonal/POSCAR-173
rename to python/test/data/hexagonal/POSCAR-173
diff --git a/test/data/hexagonal/POSCAR-173-2 b/python/test/data/hexagonal/POSCAR-173-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-173-2
rename to python/test/data/hexagonal/POSCAR-173-2
diff --git a/test/data/hexagonal/POSCAR-174 b/python/test/data/hexagonal/POSCAR-174
similarity index 100%
rename from test/data/hexagonal/POSCAR-174
rename to python/test/data/hexagonal/POSCAR-174
diff --git a/test/data/hexagonal/POSCAR-174-2 b/python/test/data/hexagonal/POSCAR-174-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-174-2
rename to python/test/data/hexagonal/POSCAR-174-2
diff --git a/test/data/hexagonal/POSCAR-175 b/python/test/data/hexagonal/POSCAR-175
similarity index 100%
rename from test/data/hexagonal/POSCAR-175
rename to python/test/data/hexagonal/POSCAR-175
diff --git a/test/data/hexagonal/POSCAR-175-2 b/python/test/data/hexagonal/POSCAR-175-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-175-2
rename to python/test/data/hexagonal/POSCAR-175-2
diff --git a/test/data/hexagonal/POSCAR-176 b/python/test/data/hexagonal/POSCAR-176
similarity index 100%
rename from test/data/hexagonal/POSCAR-176
rename to python/test/data/hexagonal/POSCAR-176
diff --git a/test/data/hexagonal/POSCAR-176-2 b/python/test/data/hexagonal/POSCAR-176-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-176-2
rename to python/test/data/hexagonal/POSCAR-176-2
diff --git a/test/data/hexagonal/POSCAR-177 b/python/test/data/hexagonal/POSCAR-177
similarity index 100%
rename from test/data/hexagonal/POSCAR-177
rename to python/test/data/hexagonal/POSCAR-177
diff --git a/test/data/hexagonal/POSCAR-179 b/python/test/data/hexagonal/POSCAR-179
similarity index 100%
rename from test/data/hexagonal/POSCAR-179
rename to python/test/data/hexagonal/POSCAR-179
diff --git a/test/data/hexagonal/POSCAR-179-2 b/python/test/data/hexagonal/POSCAR-179-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-179-2
rename to python/test/data/hexagonal/POSCAR-179-2
diff --git a/test/data/hexagonal/POSCAR-180 b/python/test/data/hexagonal/POSCAR-180
similarity index 100%
rename from test/data/hexagonal/POSCAR-180
rename to python/test/data/hexagonal/POSCAR-180
diff --git a/test/data/hexagonal/POSCAR-180-2 b/python/test/data/hexagonal/POSCAR-180-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-180-2
rename to python/test/data/hexagonal/POSCAR-180-2
diff --git a/test/data/hexagonal/POSCAR-181 b/python/test/data/hexagonal/POSCAR-181
similarity index 100%
rename from test/data/hexagonal/POSCAR-181
rename to python/test/data/hexagonal/POSCAR-181
diff --git a/test/data/hexagonal/POSCAR-181-2 b/python/test/data/hexagonal/POSCAR-181-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-181-2
rename to python/test/data/hexagonal/POSCAR-181-2
diff --git a/test/data/hexagonal/POSCAR-182 b/python/test/data/hexagonal/POSCAR-182
similarity index 100%
rename from test/data/hexagonal/POSCAR-182
rename to python/test/data/hexagonal/POSCAR-182
diff --git a/test/data/hexagonal/POSCAR-182-2 b/python/test/data/hexagonal/POSCAR-182-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-182-2
rename to python/test/data/hexagonal/POSCAR-182-2
diff --git a/test/data/hexagonal/POSCAR-183 b/python/test/data/hexagonal/POSCAR-183
similarity index 100%
rename from test/data/hexagonal/POSCAR-183
rename to python/test/data/hexagonal/POSCAR-183
diff --git a/test/data/hexagonal/POSCAR-183-2 b/python/test/data/hexagonal/POSCAR-183-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-183-2
rename to python/test/data/hexagonal/POSCAR-183-2
diff --git a/test/data/hexagonal/POSCAR-184 b/python/test/data/hexagonal/POSCAR-184
similarity index 100%
rename from test/data/hexagonal/POSCAR-184
rename to python/test/data/hexagonal/POSCAR-184
diff --git a/test/data/hexagonal/POSCAR-184-2 b/python/test/data/hexagonal/POSCAR-184-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-184-2
rename to python/test/data/hexagonal/POSCAR-184-2
diff --git a/test/data/hexagonal/POSCAR-185 b/python/test/data/hexagonal/POSCAR-185
similarity index 100%
rename from test/data/hexagonal/POSCAR-185
rename to python/test/data/hexagonal/POSCAR-185
diff --git a/test/data/hexagonal/POSCAR-185-2 b/python/test/data/hexagonal/POSCAR-185-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-185-2
rename to python/test/data/hexagonal/POSCAR-185-2
diff --git a/test/data/hexagonal/POSCAR-186 b/python/test/data/hexagonal/POSCAR-186
similarity index 100%
rename from test/data/hexagonal/POSCAR-186
rename to python/test/data/hexagonal/POSCAR-186
diff --git a/test/data/hexagonal/POSCAR-186-2 b/python/test/data/hexagonal/POSCAR-186-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-186-2
rename to python/test/data/hexagonal/POSCAR-186-2
diff --git a/test/data/hexagonal/POSCAR-187 b/python/test/data/hexagonal/POSCAR-187
similarity index 100%
rename from test/data/hexagonal/POSCAR-187
rename to python/test/data/hexagonal/POSCAR-187
diff --git a/test/data/hexagonal/POSCAR-187-2 b/python/test/data/hexagonal/POSCAR-187-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-187-2
rename to python/test/data/hexagonal/POSCAR-187-2
diff --git a/test/data/hexagonal/POSCAR-188 b/python/test/data/hexagonal/POSCAR-188
similarity index 100%
rename from test/data/hexagonal/POSCAR-188
rename to python/test/data/hexagonal/POSCAR-188
diff --git a/test/data/hexagonal/POSCAR-188-2 b/python/test/data/hexagonal/POSCAR-188-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-188-2
rename to python/test/data/hexagonal/POSCAR-188-2
diff --git a/test/data/hexagonal/POSCAR-189 b/python/test/data/hexagonal/POSCAR-189
similarity index 100%
rename from test/data/hexagonal/POSCAR-189
rename to python/test/data/hexagonal/POSCAR-189
diff --git a/test/data/hexagonal/POSCAR-189-2 b/python/test/data/hexagonal/POSCAR-189-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-189-2
rename to python/test/data/hexagonal/POSCAR-189-2
diff --git a/test/data/hexagonal/POSCAR-190 b/python/test/data/hexagonal/POSCAR-190
similarity index 100%
rename from test/data/hexagonal/POSCAR-190
rename to python/test/data/hexagonal/POSCAR-190
diff --git a/test/data/hexagonal/POSCAR-190-2 b/python/test/data/hexagonal/POSCAR-190-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-190-2
rename to python/test/data/hexagonal/POSCAR-190-2
diff --git a/test/data/hexagonal/POSCAR-191 b/python/test/data/hexagonal/POSCAR-191
similarity index 100%
rename from test/data/hexagonal/POSCAR-191
rename to python/test/data/hexagonal/POSCAR-191
diff --git a/test/data/hexagonal/POSCAR-191-2 b/python/test/data/hexagonal/POSCAR-191-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-191-2
rename to python/test/data/hexagonal/POSCAR-191-2
diff --git a/test/data/hexagonal/POSCAR-192 b/python/test/data/hexagonal/POSCAR-192
similarity index 100%
rename from test/data/hexagonal/POSCAR-192
rename to python/test/data/hexagonal/POSCAR-192
diff --git a/test/data/hexagonal/POSCAR-192-2 b/python/test/data/hexagonal/POSCAR-192-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-192-2
rename to python/test/data/hexagonal/POSCAR-192-2
diff --git a/test/data/hexagonal/POSCAR-193 b/python/test/data/hexagonal/POSCAR-193
similarity index 100%
rename from test/data/hexagonal/POSCAR-193
rename to python/test/data/hexagonal/POSCAR-193
diff --git a/test/data/hexagonal/POSCAR-193-2 b/python/test/data/hexagonal/POSCAR-193-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-193-2
rename to python/test/data/hexagonal/POSCAR-193-2
diff --git a/test/data/hexagonal/POSCAR-194 b/python/test/data/hexagonal/POSCAR-194
similarity index 100%
rename from test/data/hexagonal/POSCAR-194
rename to python/test/data/hexagonal/POSCAR-194
diff --git a/test/data/hexagonal/POSCAR-194-2 b/python/test/data/hexagonal/POSCAR-194-2
similarity index 100%
rename from test/data/hexagonal/POSCAR-194-2
rename to python/test/data/hexagonal/POSCAR-194-2
diff --git a/test/data/monoclinic/POSCAR-003 b/python/test/data/monoclinic/POSCAR-003
similarity index 100%
rename from test/data/monoclinic/POSCAR-003
rename to python/test/data/monoclinic/POSCAR-003
diff --git a/test/data/monoclinic/POSCAR-004 b/python/test/data/monoclinic/POSCAR-004
similarity index 100%
rename from test/data/monoclinic/POSCAR-004
rename to python/test/data/monoclinic/POSCAR-004
diff --git a/test/data/monoclinic/POSCAR-004-2 b/python/test/data/monoclinic/POSCAR-004-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-004-2
rename to python/test/data/monoclinic/POSCAR-004-2
diff --git a/test/data/monoclinic/POSCAR-005 b/python/test/data/monoclinic/POSCAR-005
similarity index 100%
rename from test/data/monoclinic/POSCAR-005
rename to python/test/data/monoclinic/POSCAR-005
diff --git a/test/data/monoclinic/POSCAR-005-2 b/python/test/data/monoclinic/POSCAR-005-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-005-2
rename to python/test/data/monoclinic/POSCAR-005-2
diff --git a/test/data/monoclinic/POSCAR-006 b/python/test/data/monoclinic/POSCAR-006
similarity index 100%
rename from test/data/monoclinic/POSCAR-006
rename to python/test/data/monoclinic/POSCAR-006
diff --git a/test/data/monoclinic/POSCAR-006-2 b/python/test/data/monoclinic/POSCAR-006-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-006-2
rename to python/test/data/monoclinic/POSCAR-006-2
diff --git a/test/data/monoclinic/POSCAR-007 b/python/test/data/monoclinic/POSCAR-007
similarity index 100%
rename from test/data/monoclinic/POSCAR-007
rename to python/test/data/monoclinic/POSCAR-007
diff --git a/test/data/monoclinic/POSCAR-007-2 b/python/test/data/monoclinic/POSCAR-007-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-007-2
rename to python/test/data/monoclinic/POSCAR-007-2
diff --git a/test/data/monoclinic/POSCAR-008 b/python/test/data/monoclinic/POSCAR-008
similarity index 100%
rename from test/data/monoclinic/POSCAR-008
rename to python/test/data/monoclinic/POSCAR-008
diff --git a/test/data/monoclinic/POSCAR-008-2 b/python/test/data/monoclinic/POSCAR-008-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-008-2
rename to python/test/data/monoclinic/POSCAR-008-2
diff --git a/test/data/monoclinic/POSCAR-009 b/python/test/data/monoclinic/POSCAR-009
similarity index 100%
rename from test/data/monoclinic/POSCAR-009
rename to python/test/data/monoclinic/POSCAR-009
diff --git a/test/data/monoclinic/POSCAR-009-2 b/python/test/data/monoclinic/POSCAR-009-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-009-2
rename to python/test/data/monoclinic/POSCAR-009-2
diff --git a/test/data/monoclinic/POSCAR-010 b/python/test/data/monoclinic/POSCAR-010
similarity index 100%
rename from test/data/monoclinic/POSCAR-010
rename to python/test/data/monoclinic/POSCAR-010
diff --git a/test/data/monoclinic/POSCAR-010-2 b/python/test/data/monoclinic/POSCAR-010-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-010-2
rename to python/test/data/monoclinic/POSCAR-010-2
diff --git a/test/data/monoclinic/POSCAR-011 b/python/test/data/monoclinic/POSCAR-011
similarity index 100%
rename from test/data/monoclinic/POSCAR-011
rename to python/test/data/monoclinic/POSCAR-011
diff --git a/test/data/monoclinic/POSCAR-011-2 b/python/test/data/monoclinic/POSCAR-011-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-011-2
rename to python/test/data/monoclinic/POSCAR-011-2
diff --git a/test/data/monoclinic/POSCAR-012 b/python/test/data/monoclinic/POSCAR-012
similarity index 100%
rename from test/data/monoclinic/POSCAR-012
rename to python/test/data/monoclinic/POSCAR-012
diff --git a/test/data/monoclinic/POSCAR-012-2 b/python/test/data/monoclinic/POSCAR-012-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-012-2
rename to python/test/data/monoclinic/POSCAR-012-2
diff --git a/test/data/monoclinic/POSCAR-012-3 b/python/test/data/monoclinic/POSCAR-012-3
similarity index 100%
rename from test/data/monoclinic/POSCAR-012-3
rename to python/test/data/monoclinic/POSCAR-012-3
diff --git a/test/data/monoclinic/POSCAR-013 b/python/test/data/monoclinic/POSCAR-013
similarity index 100%
rename from test/data/monoclinic/POSCAR-013
rename to python/test/data/monoclinic/POSCAR-013
diff --git a/test/data/monoclinic/POSCAR-013-2 b/python/test/data/monoclinic/POSCAR-013-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-013-2
rename to python/test/data/monoclinic/POSCAR-013-2
diff --git a/test/data/monoclinic/POSCAR-013-3 b/python/test/data/monoclinic/POSCAR-013-3
similarity index 100%
rename from test/data/monoclinic/POSCAR-013-3
rename to python/test/data/monoclinic/POSCAR-013-3
diff --git a/test/data/monoclinic/POSCAR-014 b/python/test/data/monoclinic/POSCAR-014
similarity index 100%
rename from test/data/monoclinic/POSCAR-014
rename to python/test/data/monoclinic/POSCAR-014
diff --git a/test/data/monoclinic/POSCAR-014-2 b/python/test/data/monoclinic/POSCAR-014-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-014-2
rename to python/test/data/monoclinic/POSCAR-014-2
diff --git a/test/data/monoclinic/POSCAR-015 b/python/test/data/monoclinic/POSCAR-015
similarity index 100%
rename from test/data/monoclinic/POSCAR-015
rename to python/test/data/monoclinic/POSCAR-015
diff --git a/test/data/monoclinic/POSCAR-015-2 b/python/test/data/monoclinic/POSCAR-015-2
similarity index 100%
rename from test/data/monoclinic/POSCAR-015-2
rename to python/test/data/monoclinic/POSCAR-015-2
diff --git a/test/data/monoclinic/POSCAR-015-3 b/python/test/data/monoclinic/POSCAR-015-3
similarity index 100%
rename from test/data/monoclinic/POSCAR-015-3
rename to python/test/data/monoclinic/POSCAR-015-3
diff --git a/test/data/orthorhombic/POSCAR-016 b/python/test/data/orthorhombic/POSCAR-016
similarity index 100%
rename from test/data/orthorhombic/POSCAR-016
rename to python/test/data/orthorhombic/POSCAR-016
diff --git a/test/data/orthorhombic/POSCAR-016-2 b/python/test/data/orthorhombic/POSCAR-016-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-016-2
rename to python/test/data/orthorhombic/POSCAR-016-2
diff --git a/test/data/orthorhombic/POSCAR-017-2 b/python/test/data/orthorhombic/POSCAR-017-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-017-2
rename to python/test/data/orthorhombic/POSCAR-017-2
diff --git a/test/data/orthorhombic/POSCAR-018 b/python/test/data/orthorhombic/POSCAR-018
similarity index 100%
rename from test/data/orthorhombic/POSCAR-018
rename to python/test/data/orthorhombic/POSCAR-018
diff --git a/test/data/orthorhombic/POSCAR-018-2 b/python/test/data/orthorhombic/POSCAR-018-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-018-2
rename to python/test/data/orthorhombic/POSCAR-018-2
diff --git a/test/data/orthorhombic/POSCAR-019 b/python/test/data/orthorhombic/POSCAR-019
similarity index 100%
rename from test/data/orthorhombic/POSCAR-019
rename to python/test/data/orthorhombic/POSCAR-019
diff --git a/test/data/orthorhombic/POSCAR-019-2 b/python/test/data/orthorhombic/POSCAR-019-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-019-2
rename to python/test/data/orthorhombic/POSCAR-019-2
diff --git a/test/data/orthorhombic/POSCAR-020 b/python/test/data/orthorhombic/POSCAR-020
similarity index 100%
rename from test/data/orthorhombic/POSCAR-020
rename to python/test/data/orthorhombic/POSCAR-020
diff --git a/test/data/orthorhombic/POSCAR-021 b/python/test/data/orthorhombic/POSCAR-021
similarity index 100%
rename from test/data/orthorhombic/POSCAR-021
rename to python/test/data/orthorhombic/POSCAR-021
diff --git a/test/data/orthorhombic/POSCAR-021-2 b/python/test/data/orthorhombic/POSCAR-021-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-021-2
rename to python/test/data/orthorhombic/POSCAR-021-2
diff --git a/test/data/orthorhombic/POSCAR-022 b/python/test/data/orthorhombic/POSCAR-022
similarity index 100%
rename from test/data/orthorhombic/POSCAR-022
rename to python/test/data/orthorhombic/POSCAR-022
diff --git a/test/data/orthorhombic/POSCAR-023 b/python/test/data/orthorhombic/POSCAR-023
similarity index 100%
rename from test/data/orthorhombic/POSCAR-023
rename to python/test/data/orthorhombic/POSCAR-023
diff --git a/test/data/orthorhombic/POSCAR-023-2 b/python/test/data/orthorhombic/POSCAR-023-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-023-2
rename to python/test/data/orthorhombic/POSCAR-023-2
diff --git a/test/data/orthorhombic/POSCAR-024 b/python/test/data/orthorhombic/POSCAR-024
similarity index 100%
rename from test/data/orthorhombic/POSCAR-024
rename to python/test/data/orthorhombic/POSCAR-024
diff --git a/test/data/orthorhombic/POSCAR-024-2 b/python/test/data/orthorhombic/POSCAR-024-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-024-2
rename to python/test/data/orthorhombic/POSCAR-024-2
diff --git a/test/data/orthorhombic/POSCAR-025 b/python/test/data/orthorhombic/POSCAR-025
similarity index 100%
rename from test/data/orthorhombic/POSCAR-025
rename to python/test/data/orthorhombic/POSCAR-025
diff --git a/test/data/orthorhombic/POSCAR-025-2 b/python/test/data/orthorhombic/POSCAR-025-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-025-2
rename to python/test/data/orthorhombic/POSCAR-025-2
diff --git a/test/data/orthorhombic/POSCAR-026 b/python/test/data/orthorhombic/POSCAR-026
similarity index 100%
rename from test/data/orthorhombic/POSCAR-026
rename to python/test/data/orthorhombic/POSCAR-026
diff --git a/test/data/orthorhombic/POSCAR-026-2 b/python/test/data/orthorhombic/POSCAR-026-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-026-2
rename to python/test/data/orthorhombic/POSCAR-026-2
diff --git a/test/data/orthorhombic/POSCAR-027 b/python/test/data/orthorhombic/POSCAR-027
similarity index 100%
rename from test/data/orthorhombic/POSCAR-027
rename to python/test/data/orthorhombic/POSCAR-027
diff --git a/test/data/orthorhombic/POSCAR-027-2 b/python/test/data/orthorhombic/POSCAR-027-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-027-2
rename to python/test/data/orthorhombic/POSCAR-027-2
diff --git a/test/data/orthorhombic/POSCAR-028 b/python/test/data/orthorhombic/POSCAR-028
similarity index 100%
rename from test/data/orthorhombic/POSCAR-028
rename to python/test/data/orthorhombic/POSCAR-028
diff --git a/test/data/orthorhombic/POSCAR-028-2 b/python/test/data/orthorhombic/POSCAR-028-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-028-2
rename to python/test/data/orthorhombic/POSCAR-028-2
diff --git a/test/data/orthorhombic/POSCAR-029 b/python/test/data/orthorhombic/POSCAR-029
similarity index 100%
rename from test/data/orthorhombic/POSCAR-029
rename to python/test/data/orthorhombic/POSCAR-029
diff --git a/test/data/orthorhombic/POSCAR-029-2 b/python/test/data/orthorhombic/POSCAR-029-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-029-2
rename to python/test/data/orthorhombic/POSCAR-029-2
diff --git a/test/data/orthorhombic/POSCAR-030 b/python/test/data/orthorhombic/POSCAR-030
similarity index 100%
rename from test/data/orthorhombic/POSCAR-030
rename to python/test/data/orthorhombic/POSCAR-030
diff --git a/test/data/orthorhombic/POSCAR-030-2 b/python/test/data/orthorhombic/POSCAR-030-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-030-2
rename to python/test/data/orthorhombic/POSCAR-030-2
diff --git a/test/data/orthorhombic/POSCAR-031 b/python/test/data/orthorhombic/POSCAR-031
similarity index 100%
rename from test/data/orthorhombic/POSCAR-031
rename to python/test/data/orthorhombic/POSCAR-031
diff --git a/test/data/orthorhombic/POSCAR-031-2 b/python/test/data/orthorhombic/POSCAR-031-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-031-2
rename to python/test/data/orthorhombic/POSCAR-031-2
diff --git a/test/data/orthorhombic/POSCAR-032 b/python/test/data/orthorhombic/POSCAR-032
similarity index 100%
rename from test/data/orthorhombic/POSCAR-032
rename to python/test/data/orthorhombic/POSCAR-032
diff --git a/test/data/orthorhombic/POSCAR-032-2 b/python/test/data/orthorhombic/POSCAR-032-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-032-2
rename to python/test/data/orthorhombic/POSCAR-032-2
diff --git a/test/data/orthorhombic/POSCAR-033 b/python/test/data/orthorhombic/POSCAR-033
similarity index 100%
rename from test/data/orthorhombic/POSCAR-033
rename to python/test/data/orthorhombic/POSCAR-033
diff --git a/test/data/orthorhombic/POSCAR-033-2 b/python/test/data/orthorhombic/POSCAR-033-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-033-2
rename to python/test/data/orthorhombic/POSCAR-033-2
diff --git a/test/data/orthorhombic/POSCAR-033-3 b/python/test/data/orthorhombic/POSCAR-033-3
similarity index 100%
rename from test/data/orthorhombic/POSCAR-033-3
rename to python/test/data/orthorhombic/POSCAR-033-3
diff --git a/test/data/orthorhombic/POSCAR-034 b/python/test/data/orthorhombic/POSCAR-034
similarity index 100%
rename from test/data/orthorhombic/POSCAR-034
rename to python/test/data/orthorhombic/POSCAR-034
diff --git a/test/data/orthorhombic/POSCAR-034-2 b/python/test/data/orthorhombic/POSCAR-034-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-034-2
rename to python/test/data/orthorhombic/POSCAR-034-2
diff --git a/test/data/orthorhombic/POSCAR-035 b/python/test/data/orthorhombic/POSCAR-035
similarity index 100%
rename from test/data/orthorhombic/POSCAR-035
rename to python/test/data/orthorhombic/POSCAR-035
diff --git a/test/data/orthorhombic/POSCAR-035-2 b/python/test/data/orthorhombic/POSCAR-035-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-035-2
rename to python/test/data/orthorhombic/POSCAR-035-2
diff --git a/test/data/orthorhombic/POSCAR-036 b/python/test/data/orthorhombic/POSCAR-036
similarity index 100%
rename from test/data/orthorhombic/POSCAR-036
rename to python/test/data/orthorhombic/POSCAR-036
diff --git a/test/data/orthorhombic/POSCAR-036-2 b/python/test/data/orthorhombic/POSCAR-036-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-036-2
rename to python/test/data/orthorhombic/POSCAR-036-2
diff --git a/test/data/orthorhombic/POSCAR-037 b/python/test/data/orthorhombic/POSCAR-037
similarity index 100%
rename from test/data/orthorhombic/POSCAR-037
rename to python/test/data/orthorhombic/POSCAR-037
diff --git a/test/data/orthorhombic/POSCAR-037-2 b/python/test/data/orthorhombic/POSCAR-037-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-037-2
rename to python/test/data/orthorhombic/POSCAR-037-2
diff --git a/test/data/orthorhombic/POSCAR-038 b/python/test/data/orthorhombic/POSCAR-038
similarity index 100%
rename from test/data/orthorhombic/POSCAR-038
rename to python/test/data/orthorhombic/POSCAR-038
diff --git a/test/data/orthorhombic/POSCAR-038-2 b/python/test/data/orthorhombic/POSCAR-038-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-038-2
rename to python/test/data/orthorhombic/POSCAR-038-2
diff --git a/test/data/orthorhombic/POSCAR-039 b/python/test/data/orthorhombic/POSCAR-039
similarity index 100%
rename from test/data/orthorhombic/POSCAR-039
rename to python/test/data/orthorhombic/POSCAR-039
diff --git a/test/data/orthorhombic/POSCAR-039-2 b/python/test/data/orthorhombic/POSCAR-039-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-039-2
rename to python/test/data/orthorhombic/POSCAR-039-2
diff --git a/test/data/orthorhombic/POSCAR-040 b/python/test/data/orthorhombic/POSCAR-040
similarity index 100%
rename from test/data/orthorhombic/POSCAR-040
rename to python/test/data/orthorhombic/POSCAR-040
diff --git a/test/data/orthorhombic/POSCAR-040-2 b/python/test/data/orthorhombic/POSCAR-040-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-040-2
rename to python/test/data/orthorhombic/POSCAR-040-2
diff --git a/test/data/orthorhombic/POSCAR-041 b/python/test/data/orthorhombic/POSCAR-041
similarity index 100%
rename from test/data/orthorhombic/POSCAR-041
rename to python/test/data/orthorhombic/POSCAR-041
diff --git a/test/data/orthorhombic/POSCAR-041-2 b/python/test/data/orthorhombic/POSCAR-041-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-041-2
rename to python/test/data/orthorhombic/POSCAR-041-2
diff --git a/test/data/orthorhombic/POSCAR-042 b/python/test/data/orthorhombic/POSCAR-042
similarity index 100%
rename from test/data/orthorhombic/POSCAR-042
rename to python/test/data/orthorhombic/POSCAR-042
diff --git a/test/data/orthorhombic/POSCAR-043 b/python/test/data/orthorhombic/POSCAR-043
similarity index 100%
rename from test/data/orthorhombic/POSCAR-043
rename to python/test/data/orthorhombic/POSCAR-043
diff --git a/test/data/orthorhombic/POSCAR-043-2 b/python/test/data/orthorhombic/POSCAR-043-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-043-2
rename to python/test/data/orthorhombic/POSCAR-043-2
diff --git a/test/data/orthorhombic/POSCAR-044 b/python/test/data/orthorhombic/POSCAR-044
similarity index 100%
rename from test/data/orthorhombic/POSCAR-044
rename to python/test/data/orthorhombic/POSCAR-044
diff --git a/test/data/orthorhombic/POSCAR-044-2 b/python/test/data/orthorhombic/POSCAR-044-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-044-2
rename to python/test/data/orthorhombic/POSCAR-044-2
diff --git a/test/data/orthorhombic/POSCAR-045 b/python/test/data/orthorhombic/POSCAR-045
similarity index 100%
rename from test/data/orthorhombic/POSCAR-045
rename to python/test/data/orthorhombic/POSCAR-045
diff --git a/test/data/orthorhombic/POSCAR-045-2 b/python/test/data/orthorhombic/POSCAR-045-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-045-2
rename to python/test/data/orthorhombic/POSCAR-045-2
diff --git a/test/data/orthorhombic/POSCAR-046 b/python/test/data/orthorhombic/POSCAR-046
similarity index 100%
rename from test/data/orthorhombic/POSCAR-046
rename to python/test/data/orthorhombic/POSCAR-046
diff --git a/test/data/orthorhombic/POSCAR-046-2 b/python/test/data/orthorhombic/POSCAR-046-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-046-2
rename to python/test/data/orthorhombic/POSCAR-046-2
diff --git a/test/data/orthorhombic/POSCAR-047 b/python/test/data/orthorhombic/POSCAR-047
similarity index 100%
rename from test/data/orthorhombic/POSCAR-047
rename to python/test/data/orthorhombic/POSCAR-047
diff --git a/test/data/orthorhombic/POSCAR-047-2 b/python/test/data/orthorhombic/POSCAR-047-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-047-2
rename to python/test/data/orthorhombic/POSCAR-047-2
diff --git a/test/data/orthorhombic/POSCAR-048 b/python/test/data/orthorhombic/POSCAR-048
similarity index 100%
rename from test/data/orthorhombic/POSCAR-048
rename to python/test/data/orthorhombic/POSCAR-048
diff --git a/test/data/orthorhombic/POSCAR-048-2 b/python/test/data/orthorhombic/POSCAR-048-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-048-2
rename to python/test/data/orthorhombic/POSCAR-048-2
diff --git a/test/data/orthorhombic/POSCAR-049 b/python/test/data/orthorhombic/POSCAR-049
similarity index 100%
rename from test/data/orthorhombic/POSCAR-049
rename to python/test/data/orthorhombic/POSCAR-049
diff --git a/test/data/orthorhombic/POSCAR-049-2 b/python/test/data/orthorhombic/POSCAR-049-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-049-2
rename to python/test/data/orthorhombic/POSCAR-049-2
diff --git a/test/data/orthorhombic/POSCAR-050 b/python/test/data/orthorhombic/POSCAR-050
similarity index 100%
rename from test/data/orthorhombic/POSCAR-050
rename to python/test/data/orthorhombic/POSCAR-050
diff --git a/test/data/orthorhombic/POSCAR-050-2 b/python/test/data/orthorhombic/POSCAR-050-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-050-2
rename to python/test/data/orthorhombic/POSCAR-050-2
diff --git a/test/data/orthorhombic/POSCAR-051 b/python/test/data/orthorhombic/POSCAR-051
similarity index 100%
rename from test/data/orthorhombic/POSCAR-051
rename to python/test/data/orthorhombic/POSCAR-051
diff --git a/test/data/orthorhombic/POSCAR-051-2 b/python/test/data/orthorhombic/POSCAR-051-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-051-2
rename to python/test/data/orthorhombic/POSCAR-051-2
diff --git a/test/data/orthorhombic/POSCAR-051-3 b/python/test/data/orthorhombic/POSCAR-051-3
similarity index 100%
rename from test/data/orthorhombic/POSCAR-051-3
rename to python/test/data/orthorhombic/POSCAR-051-3
diff --git a/test/data/orthorhombic/POSCAR-052 b/python/test/data/orthorhombic/POSCAR-052
similarity index 100%
rename from test/data/orthorhombic/POSCAR-052
rename to python/test/data/orthorhombic/POSCAR-052
diff --git a/test/data/orthorhombic/POSCAR-052-2 b/python/test/data/orthorhombic/POSCAR-052-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-052-2
rename to python/test/data/orthorhombic/POSCAR-052-2
diff --git a/test/data/orthorhombic/POSCAR-053 b/python/test/data/orthorhombic/POSCAR-053
similarity index 100%
rename from test/data/orthorhombic/POSCAR-053
rename to python/test/data/orthorhombic/POSCAR-053
diff --git a/test/data/orthorhombic/POSCAR-053-2 b/python/test/data/orthorhombic/POSCAR-053-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-053-2
rename to python/test/data/orthorhombic/POSCAR-053-2
diff --git a/test/data/orthorhombic/POSCAR-054 b/python/test/data/orthorhombic/POSCAR-054
similarity index 100%
rename from test/data/orthorhombic/POSCAR-054
rename to python/test/data/orthorhombic/POSCAR-054
diff --git a/test/data/orthorhombic/POSCAR-054-2 b/python/test/data/orthorhombic/POSCAR-054-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-054-2
rename to python/test/data/orthorhombic/POSCAR-054-2
diff --git a/test/data/orthorhombic/POSCAR-055 b/python/test/data/orthorhombic/POSCAR-055
similarity index 100%
rename from test/data/orthorhombic/POSCAR-055
rename to python/test/data/orthorhombic/POSCAR-055
diff --git a/test/data/orthorhombic/POSCAR-055-2 b/python/test/data/orthorhombic/POSCAR-055-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-055-2
rename to python/test/data/orthorhombic/POSCAR-055-2
diff --git a/test/data/orthorhombic/POSCAR-056 b/python/test/data/orthorhombic/POSCAR-056
similarity index 100%
rename from test/data/orthorhombic/POSCAR-056
rename to python/test/data/orthorhombic/POSCAR-056
diff --git a/test/data/orthorhombic/POSCAR-056-2 b/python/test/data/orthorhombic/POSCAR-056-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-056-2
rename to python/test/data/orthorhombic/POSCAR-056-2
diff --git a/test/data/orthorhombic/POSCAR-057 b/python/test/data/orthorhombic/POSCAR-057
similarity index 100%
rename from test/data/orthorhombic/POSCAR-057
rename to python/test/data/orthorhombic/POSCAR-057
diff --git a/test/data/orthorhombic/POSCAR-057-2 b/python/test/data/orthorhombic/POSCAR-057-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-057-2
rename to python/test/data/orthorhombic/POSCAR-057-2
diff --git a/test/data/orthorhombic/POSCAR-058 b/python/test/data/orthorhombic/POSCAR-058
similarity index 100%
rename from test/data/orthorhombic/POSCAR-058
rename to python/test/data/orthorhombic/POSCAR-058
diff --git a/test/data/orthorhombic/POSCAR-058-2 b/python/test/data/orthorhombic/POSCAR-058-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-058-2
rename to python/test/data/orthorhombic/POSCAR-058-2
diff --git a/test/data/orthorhombic/POSCAR-058-3 b/python/test/data/orthorhombic/POSCAR-058-3
similarity index 100%
rename from test/data/orthorhombic/POSCAR-058-3
rename to python/test/data/orthorhombic/POSCAR-058-3
diff --git a/test/data/orthorhombic/POSCAR-059 b/python/test/data/orthorhombic/POSCAR-059
similarity index 100%
rename from test/data/orthorhombic/POSCAR-059
rename to python/test/data/orthorhombic/POSCAR-059
diff --git a/test/data/orthorhombic/POSCAR-059-2 b/python/test/data/orthorhombic/POSCAR-059-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-059-2
rename to python/test/data/orthorhombic/POSCAR-059-2
diff --git a/test/data/orthorhombic/POSCAR-060 b/python/test/data/orthorhombic/POSCAR-060
similarity index 100%
rename from test/data/orthorhombic/POSCAR-060
rename to python/test/data/orthorhombic/POSCAR-060
diff --git a/test/data/orthorhombic/POSCAR-060-2 b/python/test/data/orthorhombic/POSCAR-060-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-060-2
rename to python/test/data/orthorhombic/POSCAR-060-2
diff --git a/test/data/orthorhombic/POSCAR-060-3 b/python/test/data/orthorhombic/POSCAR-060-3
similarity index 100%
rename from test/data/orthorhombic/POSCAR-060-3
rename to python/test/data/orthorhombic/POSCAR-060-3
diff --git a/test/data/orthorhombic/POSCAR-061 b/python/test/data/orthorhombic/POSCAR-061
similarity index 100%
rename from test/data/orthorhombic/POSCAR-061
rename to python/test/data/orthorhombic/POSCAR-061
diff --git a/test/data/orthorhombic/POSCAR-061-2 b/python/test/data/orthorhombic/POSCAR-061-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-061-2
rename to python/test/data/orthorhombic/POSCAR-061-2
diff --git a/test/data/orthorhombic/POSCAR-062 b/python/test/data/orthorhombic/POSCAR-062
similarity index 100%
rename from test/data/orthorhombic/POSCAR-062
rename to python/test/data/orthorhombic/POSCAR-062
diff --git a/test/data/orthorhombic/POSCAR-062-2 b/python/test/data/orthorhombic/POSCAR-062-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-062-2
rename to python/test/data/orthorhombic/POSCAR-062-2
diff --git a/test/data/orthorhombic/POSCAR-063 b/python/test/data/orthorhombic/POSCAR-063
similarity index 100%
rename from test/data/orthorhombic/POSCAR-063
rename to python/test/data/orthorhombic/POSCAR-063
diff --git a/test/data/orthorhombic/POSCAR-063-2 b/python/test/data/orthorhombic/POSCAR-063-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-063-2
rename to python/test/data/orthorhombic/POSCAR-063-2
diff --git a/test/data/orthorhombic/POSCAR-063-3 b/python/test/data/orthorhombic/POSCAR-063-3
similarity index 100%
rename from test/data/orthorhombic/POSCAR-063-3
rename to python/test/data/orthorhombic/POSCAR-063-3
diff --git a/test/data/orthorhombic/POSCAR-064 b/python/test/data/orthorhombic/POSCAR-064
similarity index 100%
rename from test/data/orthorhombic/POSCAR-064
rename to python/test/data/orthorhombic/POSCAR-064
diff --git a/test/data/orthorhombic/POSCAR-064-2 b/python/test/data/orthorhombic/POSCAR-064-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-064-2
rename to python/test/data/orthorhombic/POSCAR-064-2
diff --git a/test/data/orthorhombic/POSCAR-064-3 b/python/test/data/orthorhombic/POSCAR-064-3
similarity index 100%
rename from test/data/orthorhombic/POSCAR-064-3
rename to python/test/data/orthorhombic/POSCAR-064-3
diff --git a/test/data/orthorhombic/POSCAR-065 b/python/test/data/orthorhombic/POSCAR-065
similarity index 100%
rename from test/data/orthorhombic/POSCAR-065
rename to python/test/data/orthorhombic/POSCAR-065
diff --git a/test/data/orthorhombic/POSCAR-065-2 b/python/test/data/orthorhombic/POSCAR-065-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-065-2
rename to python/test/data/orthorhombic/POSCAR-065-2
diff --git a/test/data/orthorhombic/POSCAR-065-3 b/python/test/data/orthorhombic/POSCAR-065-3
similarity index 100%
rename from test/data/orthorhombic/POSCAR-065-3
rename to python/test/data/orthorhombic/POSCAR-065-3
diff --git a/test/data/orthorhombic/POSCAR-066 b/python/test/data/orthorhombic/POSCAR-066
similarity index 100%
rename from test/data/orthorhombic/POSCAR-066
rename to python/test/data/orthorhombic/POSCAR-066
diff --git a/test/data/orthorhombic/POSCAR-066-2 b/python/test/data/orthorhombic/POSCAR-066-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-066-2
rename to python/test/data/orthorhombic/POSCAR-066-2
diff --git a/test/data/orthorhombic/POSCAR-067 b/python/test/data/orthorhombic/POSCAR-067
similarity index 100%
rename from test/data/orthorhombic/POSCAR-067
rename to python/test/data/orthorhombic/POSCAR-067
diff --git a/test/data/orthorhombic/POSCAR-067-2 b/python/test/data/orthorhombic/POSCAR-067-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-067-2
rename to python/test/data/orthorhombic/POSCAR-067-2
diff --git a/test/data/orthorhombic/POSCAR-067-3 b/python/test/data/orthorhombic/POSCAR-067-3
similarity index 100%
rename from test/data/orthorhombic/POSCAR-067-3
rename to python/test/data/orthorhombic/POSCAR-067-3
diff --git a/test/data/orthorhombic/POSCAR-068 b/python/test/data/orthorhombic/POSCAR-068
similarity index 100%
rename from test/data/orthorhombic/POSCAR-068
rename to python/test/data/orthorhombic/POSCAR-068
diff --git a/test/data/orthorhombic/POSCAR-068-2 b/python/test/data/orthorhombic/POSCAR-068-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-068-2
rename to python/test/data/orthorhombic/POSCAR-068-2
diff --git a/test/data/orthorhombic/POSCAR-069 b/python/test/data/orthorhombic/POSCAR-069
similarity index 100%
rename from test/data/orthorhombic/POSCAR-069
rename to python/test/data/orthorhombic/POSCAR-069
diff --git a/test/data/orthorhombic/POSCAR-069-2 b/python/test/data/orthorhombic/POSCAR-069-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-069-2
rename to python/test/data/orthorhombic/POSCAR-069-2
diff --git a/test/data/orthorhombic/POSCAR-070 b/python/test/data/orthorhombic/POSCAR-070
similarity index 100%
rename from test/data/orthorhombic/POSCAR-070
rename to python/test/data/orthorhombic/POSCAR-070
diff --git a/test/data/orthorhombic/POSCAR-070-2 b/python/test/data/orthorhombic/POSCAR-070-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-070-2
rename to python/test/data/orthorhombic/POSCAR-070-2
diff --git a/test/data/orthorhombic/POSCAR-071 b/python/test/data/orthorhombic/POSCAR-071
similarity index 100%
rename from test/data/orthorhombic/POSCAR-071
rename to python/test/data/orthorhombic/POSCAR-071
diff --git a/test/data/orthorhombic/POSCAR-071-2 b/python/test/data/orthorhombic/POSCAR-071-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-071-2
rename to python/test/data/orthorhombic/POSCAR-071-2
diff --git a/test/data/orthorhombic/POSCAR-072 b/python/test/data/orthorhombic/POSCAR-072
similarity index 100%
rename from test/data/orthorhombic/POSCAR-072
rename to python/test/data/orthorhombic/POSCAR-072
diff --git a/test/data/orthorhombic/POSCAR-072-2 b/python/test/data/orthorhombic/POSCAR-072-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-072-2
rename to python/test/data/orthorhombic/POSCAR-072-2
diff --git a/test/data/orthorhombic/POSCAR-073 b/python/test/data/orthorhombic/POSCAR-073
similarity index 100%
rename from test/data/orthorhombic/POSCAR-073
rename to python/test/data/orthorhombic/POSCAR-073
diff --git a/test/data/orthorhombic/POSCAR-073-2 b/python/test/data/orthorhombic/POSCAR-073-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-073-2
rename to python/test/data/orthorhombic/POSCAR-073-2
diff --git a/test/data/orthorhombic/POSCAR-074 b/python/test/data/orthorhombic/POSCAR-074
similarity index 100%
rename from test/data/orthorhombic/POSCAR-074
rename to python/test/data/orthorhombic/POSCAR-074
diff --git a/test/data/orthorhombic/POSCAR-074-2 b/python/test/data/orthorhombic/POSCAR-074-2
similarity index 100%
rename from test/data/orthorhombic/POSCAR-074-2
rename to python/test/data/orthorhombic/POSCAR-074-2
diff --git a/test/data/tetragonal/POSCAR-075 b/python/test/data/tetragonal/POSCAR-075
similarity index 100%
rename from test/data/tetragonal/POSCAR-075
rename to python/test/data/tetragonal/POSCAR-075
diff --git a/test/data/tetragonal/POSCAR-075-2 b/python/test/data/tetragonal/POSCAR-075-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-075-2
rename to python/test/data/tetragonal/POSCAR-075-2
diff --git a/test/data/tetragonal/POSCAR-076 b/python/test/data/tetragonal/POSCAR-076
similarity index 100%
rename from test/data/tetragonal/POSCAR-076
rename to python/test/data/tetragonal/POSCAR-076
diff --git a/test/data/tetragonal/POSCAR-076-2 b/python/test/data/tetragonal/POSCAR-076-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-076-2
rename to python/test/data/tetragonal/POSCAR-076-2
diff --git a/test/data/tetragonal/POSCAR-077 b/python/test/data/tetragonal/POSCAR-077
similarity index 100%
rename from test/data/tetragonal/POSCAR-077
rename to python/test/data/tetragonal/POSCAR-077
diff --git a/test/data/tetragonal/POSCAR-077-2 b/python/test/data/tetragonal/POSCAR-077-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-077-2
rename to python/test/data/tetragonal/POSCAR-077-2
diff --git a/test/data/tetragonal/POSCAR-077-3 b/python/test/data/tetragonal/POSCAR-077-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-077-3
rename to python/test/data/tetragonal/POSCAR-077-3
diff --git a/test/data/tetragonal/POSCAR-078 b/python/test/data/tetragonal/POSCAR-078
similarity index 100%
rename from test/data/tetragonal/POSCAR-078
rename to python/test/data/tetragonal/POSCAR-078
diff --git a/test/data/tetragonal/POSCAR-078-2 b/python/test/data/tetragonal/POSCAR-078-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-078-2
rename to python/test/data/tetragonal/POSCAR-078-2
diff --git a/test/data/tetragonal/POSCAR-079 b/python/test/data/tetragonal/POSCAR-079
similarity index 100%
rename from test/data/tetragonal/POSCAR-079
rename to python/test/data/tetragonal/POSCAR-079
diff --git a/test/data/tetragonal/POSCAR-079-2 b/python/test/data/tetragonal/POSCAR-079-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-079-2
rename to python/test/data/tetragonal/POSCAR-079-2
diff --git a/test/data/tetragonal/POSCAR-080 b/python/test/data/tetragonal/POSCAR-080
similarity index 100%
rename from test/data/tetragonal/POSCAR-080
rename to python/test/data/tetragonal/POSCAR-080
diff --git a/test/data/tetragonal/POSCAR-080-2 b/python/test/data/tetragonal/POSCAR-080-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-080-2
rename to python/test/data/tetragonal/POSCAR-080-2
diff --git a/test/data/tetragonal/POSCAR-081 b/python/test/data/tetragonal/POSCAR-081
similarity index 100%
rename from test/data/tetragonal/POSCAR-081
rename to python/test/data/tetragonal/POSCAR-081
diff --git a/test/data/tetragonal/POSCAR-081-2 b/python/test/data/tetragonal/POSCAR-081-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-081-2
rename to python/test/data/tetragonal/POSCAR-081-2
diff --git a/test/data/tetragonal/POSCAR-082 b/python/test/data/tetragonal/POSCAR-082
similarity index 100%
rename from test/data/tetragonal/POSCAR-082
rename to python/test/data/tetragonal/POSCAR-082
diff --git a/test/data/tetragonal/POSCAR-082-2 b/python/test/data/tetragonal/POSCAR-082-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-082-2
rename to python/test/data/tetragonal/POSCAR-082-2
diff --git a/test/data/tetragonal/POSCAR-083 b/python/test/data/tetragonal/POSCAR-083
similarity index 100%
rename from test/data/tetragonal/POSCAR-083
rename to python/test/data/tetragonal/POSCAR-083
diff --git a/test/data/tetragonal/POSCAR-083-2 b/python/test/data/tetragonal/POSCAR-083-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-083-2
rename to python/test/data/tetragonal/POSCAR-083-2
diff --git a/test/data/tetragonal/POSCAR-083-3 b/python/test/data/tetragonal/POSCAR-083-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-083-3
rename to python/test/data/tetragonal/POSCAR-083-3
diff --git a/test/data/tetragonal/POSCAR-084 b/python/test/data/tetragonal/POSCAR-084
similarity index 100%
rename from test/data/tetragonal/POSCAR-084
rename to python/test/data/tetragonal/POSCAR-084
diff --git a/test/data/tetragonal/POSCAR-084-2 b/python/test/data/tetragonal/POSCAR-084-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-084-2
rename to python/test/data/tetragonal/POSCAR-084-2
diff --git a/test/data/tetragonal/POSCAR-085 b/python/test/data/tetragonal/POSCAR-085
similarity index 100%
rename from test/data/tetragonal/POSCAR-085
rename to python/test/data/tetragonal/POSCAR-085
diff --git a/test/data/tetragonal/POSCAR-085-2 b/python/test/data/tetragonal/POSCAR-085-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-085-2
rename to python/test/data/tetragonal/POSCAR-085-2
diff --git a/test/data/tetragonal/POSCAR-086 b/python/test/data/tetragonal/POSCAR-086
similarity index 100%
rename from test/data/tetragonal/POSCAR-086
rename to python/test/data/tetragonal/POSCAR-086
diff --git a/test/data/tetragonal/POSCAR-086-2 b/python/test/data/tetragonal/POSCAR-086-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-086-2
rename to python/test/data/tetragonal/POSCAR-086-2
diff --git a/test/data/tetragonal/POSCAR-087 b/python/test/data/tetragonal/POSCAR-087
similarity index 100%
rename from test/data/tetragonal/POSCAR-087
rename to python/test/data/tetragonal/POSCAR-087
diff --git a/test/data/tetragonal/POSCAR-087-2 b/python/test/data/tetragonal/POSCAR-087-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-087-2
rename to python/test/data/tetragonal/POSCAR-087-2
diff --git a/test/data/tetragonal/POSCAR-088 b/python/test/data/tetragonal/POSCAR-088
similarity index 100%
rename from test/data/tetragonal/POSCAR-088
rename to python/test/data/tetragonal/POSCAR-088
diff --git a/test/data/tetragonal/POSCAR-088-2 b/python/test/data/tetragonal/POSCAR-088-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-088-2
rename to python/test/data/tetragonal/POSCAR-088-2
diff --git a/test/data/tetragonal/POSCAR-090 b/python/test/data/tetragonal/POSCAR-090
similarity index 100%
rename from test/data/tetragonal/POSCAR-090
rename to python/test/data/tetragonal/POSCAR-090
diff --git a/test/data/tetragonal/POSCAR-090-2 b/python/test/data/tetragonal/POSCAR-090-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-090-2
rename to python/test/data/tetragonal/POSCAR-090-2
diff --git a/test/data/tetragonal/POSCAR-091 b/python/test/data/tetragonal/POSCAR-091
similarity index 100%
rename from test/data/tetragonal/POSCAR-091
rename to python/test/data/tetragonal/POSCAR-091
diff --git a/test/data/tetragonal/POSCAR-091-2 b/python/test/data/tetragonal/POSCAR-091-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-091-2
rename to python/test/data/tetragonal/POSCAR-091-2
diff --git a/test/data/tetragonal/POSCAR-092 b/python/test/data/tetragonal/POSCAR-092
similarity index 100%
rename from test/data/tetragonal/POSCAR-092
rename to python/test/data/tetragonal/POSCAR-092
diff --git a/test/data/tetragonal/POSCAR-092-2 b/python/test/data/tetragonal/POSCAR-092-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-092-2
rename to python/test/data/tetragonal/POSCAR-092-2
diff --git a/test/data/tetragonal/POSCAR-092-3 b/python/test/data/tetragonal/POSCAR-092-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-092-3
rename to python/test/data/tetragonal/POSCAR-092-3
diff --git a/test/data/tetragonal/POSCAR-094 b/python/test/data/tetragonal/POSCAR-094
similarity index 100%
rename from test/data/tetragonal/POSCAR-094
rename to python/test/data/tetragonal/POSCAR-094
diff --git a/test/data/tetragonal/POSCAR-094-2 b/python/test/data/tetragonal/POSCAR-094-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-094-2
rename to python/test/data/tetragonal/POSCAR-094-2
diff --git a/test/data/tetragonal/POSCAR-094-3 b/python/test/data/tetragonal/POSCAR-094-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-094-3
rename to python/test/data/tetragonal/POSCAR-094-3
diff --git a/test/data/tetragonal/POSCAR-095 b/python/test/data/tetragonal/POSCAR-095
similarity index 100%
rename from test/data/tetragonal/POSCAR-095
rename to python/test/data/tetragonal/POSCAR-095
diff --git a/test/data/tetragonal/POSCAR-095-2 b/python/test/data/tetragonal/POSCAR-095-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-095-2
rename to python/test/data/tetragonal/POSCAR-095-2
diff --git a/test/data/tetragonal/POSCAR-096 b/python/test/data/tetragonal/POSCAR-096
similarity index 100%
rename from test/data/tetragonal/POSCAR-096
rename to python/test/data/tetragonal/POSCAR-096
diff --git a/test/data/tetragonal/POSCAR-096-2 b/python/test/data/tetragonal/POSCAR-096-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-096-2
rename to python/test/data/tetragonal/POSCAR-096-2
diff --git a/test/data/tetragonal/POSCAR-097 b/python/test/data/tetragonal/POSCAR-097
similarity index 100%
rename from test/data/tetragonal/POSCAR-097
rename to python/test/data/tetragonal/POSCAR-097
diff --git a/test/data/tetragonal/POSCAR-097-2 b/python/test/data/tetragonal/POSCAR-097-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-097-2
rename to python/test/data/tetragonal/POSCAR-097-2
diff --git a/test/data/tetragonal/POSCAR-098 b/python/test/data/tetragonal/POSCAR-098
similarity index 100%
rename from test/data/tetragonal/POSCAR-098
rename to python/test/data/tetragonal/POSCAR-098
diff --git a/test/data/tetragonal/POSCAR-098-2 b/python/test/data/tetragonal/POSCAR-098-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-098-2
rename to python/test/data/tetragonal/POSCAR-098-2
diff --git a/test/data/tetragonal/POSCAR-099 b/python/test/data/tetragonal/POSCAR-099
similarity index 100%
rename from test/data/tetragonal/POSCAR-099
rename to python/test/data/tetragonal/POSCAR-099
diff --git a/test/data/tetragonal/POSCAR-099-2 b/python/test/data/tetragonal/POSCAR-099-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-099-2
rename to python/test/data/tetragonal/POSCAR-099-2
diff --git a/test/data/tetragonal/POSCAR-100 b/python/test/data/tetragonal/POSCAR-100
similarity index 100%
rename from test/data/tetragonal/POSCAR-100
rename to python/test/data/tetragonal/POSCAR-100
diff --git a/test/data/tetragonal/POSCAR-100-2 b/python/test/data/tetragonal/POSCAR-100-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-100-2
rename to python/test/data/tetragonal/POSCAR-100-2
diff --git a/test/data/tetragonal/POSCAR-102 b/python/test/data/tetragonal/POSCAR-102
similarity index 100%
rename from test/data/tetragonal/POSCAR-102
rename to python/test/data/tetragonal/POSCAR-102
diff --git a/test/data/tetragonal/POSCAR-102-2 b/python/test/data/tetragonal/POSCAR-102-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-102-2
rename to python/test/data/tetragonal/POSCAR-102-2
diff --git a/test/data/tetragonal/POSCAR-103 b/python/test/data/tetragonal/POSCAR-103
similarity index 100%
rename from test/data/tetragonal/POSCAR-103
rename to python/test/data/tetragonal/POSCAR-103
diff --git a/test/data/tetragonal/POSCAR-103-2 b/python/test/data/tetragonal/POSCAR-103-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-103-2
rename to python/test/data/tetragonal/POSCAR-103-2
diff --git a/test/data/tetragonal/POSCAR-104 b/python/test/data/tetragonal/POSCAR-104
similarity index 100%
rename from test/data/tetragonal/POSCAR-104
rename to python/test/data/tetragonal/POSCAR-104
diff --git a/test/data/tetragonal/POSCAR-104-2 b/python/test/data/tetragonal/POSCAR-104-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-104-2
rename to python/test/data/tetragonal/POSCAR-104-2
diff --git a/test/data/tetragonal/POSCAR-105 b/python/test/data/tetragonal/POSCAR-105
similarity index 100%
rename from test/data/tetragonal/POSCAR-105
rename to python/test/data/tetragonal/POSCAR-105
diff --git a/test/data/tetragonal/POSCAR-105-2 b/python/test/data/tetragonal/POSCAR-105-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-105-2
rename to python/test/data/tetragonal/POSCAR-105-2
diff --git a/test/data/tetragonal/POSCAR-106 b/python/test/data/tetragonal/POSCAR-106
similarity index 100%
rename from test/data/tetragonal/POSCAR-106
rename to python/test/data/tetragonal/POSCAR-106
diff --git a/test/data/tetragonal/POSCAR-107 b/python/test/data/tetragonal/POSCAR-107
similarity index 100%
rename from test/data/tetragonal/POSCAR-107
rename to python/test/data/tetragonal/POSCAR-107
diff --git a/test/data/tetragonal/POSCAR-107-2 b/python/test/data/tetragonal/POSCAR-107-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-107-2
rename to python/test/data/tetragonal/POSCAR-107-2
diff --git a/test/data/tetragonal/POSCAR-107-3 b/python/test/data/tetragonal/POSCAR-107-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-107-3
rename to python/test/data/tetragonal/POSCAR-107-3
diff --git a/test/data/tetragonal/POSCAR-108 b/python/test/data/tetragonal/POSCAR-108
similarity index 100%
rename from test/data/tetragonal/POSCAR-108
rename to python/test/data/tetragonal/POSCAR-108
diff --git a/test/data/tetragonal/POSCAR-108-2 b/python/test/data/tetragonal/POSCAR-108-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-108-2
rename to python/test/data/tetragonal/POSCAR-108-2
diff --git a/test/data/tetragonal/POSCAR-109 b/python/test/data/tetragonal/POSCAR-109
similarity index 100%
rename from test/data/tetragonal/POSCAR-109
rename to python/test/data/tetragonal/POSCAR-109
diff --git a/test/data/tetragonal/POSCAR-109-2 b/python/test/data/tetragonal/POSCAR-109-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-109-2
rename to python/test/data/tetragonal/POSCAR-109-2
diff --git a/test/data/tetragonal/POSCAR-110 b/python/test/data/tetragonal/POSCAR-110
similarity index 100%
rename from test/data/tetragonal/POSCAR-110
rename to python/test/data/tetragonal/POSCAR-110
diff --git a/test/data/tetragonal/POSCAR-110-2 b/python/test/data/tetragonal/POSCAR-110-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-110-2
rename to python/test/data/tetragonal/POSCAR-110-2
diff --git a/test/data/tetragonal/POSCAR-111 b/python/test/data/tetragonal/POSCAR-111
similarity index 100%
rename from test/data/tetragonal/POSCAR-111
rename to python/test/data/tetragonal/POSCAR-111
diff --git a/test/data/tetragonal/POSCAR-111-2 b/python/test/data/tetragonal/POSCAR-111-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-111-2
rename to python/test/data/tetragonal/POSCAR-111-2
diff --git a/test/data/tetragonal/POSCAR-112 b/python/test/data/tetragonal/POSCAR-112
similarity index 100%
rename from test/data/tetragonal/POSCAR-112
rename to python/test/data/tetragonal/POSCAR-112
diff --git a/test/data/tetragonal/POSCAR-112-2 b/python/test/data/tetragonal/POSCAR-112-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-112-2
rename to python/test/data/tetragonal/POSCAR-112-2
diff --git a/test/data/tetragonal/POSCAR-113 b/python/test/data/tetragonal/POSCAR-113
similarity index 100%
rename from test/data/tetragonal/POSCAR-113
rename to python/test/data/tetragonal/POSCAR-113
diff --git a/test/data/tetragonal/POSCAR-113-2 b/python/test/data/tetragonal/POSCAR-113-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-113-2
rename to python/test/data/tetragonal/POSCAR-113-2
diff --git a/test/data/tetragonal/POSCAR-114 b/python/test/data/tetragonal/POSCAR-114
similarity index 100%
rename from test/data/tetragonal/POSCAR-114
rename to python/test/data/tetragonal/POSCAR-114
diff --git a/test/data/tetragonal/POSCAR-114-2 b/python/test/data/tetragonal/POSCAR-114-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-114-2
rename to python/test/data/tetragonal/POSCAR-114-2
diff --git a/test/data/tetragonal/POSCAR-115 b/python/test/data/tetragonal/POSCAR-115
similarity index 100%
rename from test/data/tetragonal/POSCAR-115
rename to python/test/data/tetragonal/POSCAR-115
diff --git a/test/data/tetragonal/POSCAR-115-2 b/python/test/data/tetragonal/POSCAR-115-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-115-2
rename to python/test/data/tetragonal/POSCAR-115-2
diff --git a/test/data/tetragonal/POSCAR-115-3 b/python/test/data/tetragonal/POSCAR-115-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-115-3
rename to python/test/data/tetragonal/POSCAR-115-3
diff --git a/test/data/tetragonal/POSCAR-115-4 b/python/test/data/tetragonal/POSCAR-115-4
similarity index 100%
rename from test/data/tetragonal/POSCAR-115-4
rename to python/test/data/tetragonal/POSCAR-115-4
diff --git a/test/data/tetragonal/POSCAR-115-5 b/python/test/data/tetragonal/POSCAR-115-5
similarity index 100%
rename from test/data/tetragonal/POSCAR-115-5
rename to python/test/data/tetragonal/POSCAR-115-5
diff --git a/test/data/tetragonal/POSCAR-116 b/python/test/data/tetragonal/POSCAR-116
similarity index 100%
rename from test/data/tetragonal/POSCAR-116
rename to python/test/data/tetragonal/POSCAR-116
diff --git a/test/data/tetragonal/POSCAR-116-2 b/python/test/data/tetragonal/POSCAR-116-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-116-2
rename to python/test/data/tetragonal/POSCAR-116-2
diff --git a/test/data/tetragonal/POSCAR-117 b/python/test/data/tetragonal/POSCAR-117
similarity index 100%
rename from test/data/tetragonal/POSCAR-117
rename to python/test/data/tetragonal/POSCAR-117
diff --git a/test/data/tetragonal/POSCAR-117-2 b/python/test/data/tetragonal/POSCAR-117-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-117-2
rename to python/test/data/tetragonal/POSCAR-117-2
diff --git a/test/data/tetragonal/POSCAR-118 b/python/test/data/tetragonal/POSCAR-118
similarity index 100%
rename from test/data/tetragonal/POSCAR-118
rename to python/test/data/tetragonal/POSCAR-118
diff --git a/test/data/tetragonal/POSCAR-118-2 b/python/test/data/tetragonal/POSCAR-118-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-118-2
rename to python/test/data/tetragonal/POSCAR-118-2
diff --git a/test/data/tetragonal/POSCAR-119 b/python/test/data/tetragonal/POSCAR-119
similarity index 100%
rename from test/data/tetragonal/POSCAR-119
rename to python/test/data/tetragonal/POSCAR-119
diff --git a/test/data/tetragonal/POSCAR-119-2 b/python/test/data/tetragonal/POSCAR-119-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-119-2
rename to python/test/data/tetragonal/POSCAR-119-2
diff --git a/test/data/tetragonal/POSCAR-120 b/python/test/data/tetragonal/POSCAR-120
similarity index 100%
rename from test/data/tetragonal/POSCAR-120
rename to python/test/data/tetragonal/POSCAR-120
diff --git a/test/data/tetragonal/POSCAR-120-2 b/python/test/data/tetragonal/POSCAR-120-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-120-2
rename to python/test/data/tetragonal/POSCAR-120-2
diff --git a/test/data/tetragonal/POSCAR-121 b/python/test/data/tetragonal/POSCAR-121
similarity index 100%
rename from test/data/tetragonal/POSCAR-121
rename to python/test/data/tetragonal/POSCAR-121
diff --git a/test/data/tetragonal/POSCAR-121-2 b/python/test/data/tetragonal/POSCAR-121-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-121-2
rename to python/test/data/tetragonal/POSCAR-121-2
diff --git a/test/data/tetragonal/POSCAR-122 b/python/test/data/tetragonal/POSCAR-122
similarity index 100%
rename from test/data/tetragonal/POSCAR-122
rename to python/test/data/tetragonal/POSCAR-122
diff --git a/test/data/tetragonal/POSCAR-122-2 b/python/test/data/tetragonal/POSCAR-122-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-122-2
rename to python/test/data/tetragonal/POSCAR-122-2
diff --git a/test/data/tetragonal/POSCAR-122-3 b/python/test/data/tetragonal/POSCAR-122-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-122-3
rename to python/test/data/tetragonal/POSCAR-122-3
diff --git a/test/data/tetragonal/POSCAR-123 b/python/test/data/tetragonal/POSCAR-123
similarity index 100%
rename from test/data/tetragonal/POSCAR-123
rename to python/test/data/tetragonal/POSCAR-123
diff --git a/test/data/tetragonal/POSCAR-123-2 b/python/test/data/tetragonal/POSCAR-123-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-123-2
rename to python/test/data/tetragonal/POSCAR-123-2
diff --git a/test/data/tetragonal/POSCAR-123-3 b/python/test/data/tetragonal/POSCAR-123-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-123-3
rename to python/test/data/tetragonal/POSCAR-123-3
diff --git a/test/data/tetragonal/POSCAR-124 b/python/test/data/tetragonal/POSCAR-124
similarity index 100%
rename from test/data/tetragonal/POSCAR-124
rename to python/test/data/tetragonal/POSCAR-124
diff --git a/test/data/tetragonal/POSCAR-124-2 b/python/test/data/tetragonal/POSCAR-124-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-124-2
rename to python/test/data/tetragonal/POSCAR-124-2
diff --git a/test/data/tetragonal/POSCAR-125 b/python/test/data/tetragonal/POSCAR-125
similarity index 100%
rename from test/data/tetragonal/POSCAR-125
rename to python/test/data/tetragonal/POSCAR-125
diff --git a/test/data/tetragonal/POSCAR-125-2 b/python/test/data/tetragonal/POSCAR-125-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-125-2
rename to python/test/data/tetragonal/POSCAR-125-2
diff --git a/test/data/tetragonal/POSCAR-126 b/python/test/data/tetragonal/POSCAR-126
similarity index 100%
rename from test/data/tetragonal/POSCAR-126
rename to python/test/data/tetragonal/POSCAR-126
diff --git a/test/data/tetragonal/POSCAR-126-2 b/python/test/data/tetragonal/POSCAR-126-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-126-2
rename to python/test/data/tetragonal/POSCAR-126-2
diff --git a/test/data/tetragonal/POSCAR-127 b/python/test/data/tetragonal/POSCAR-127
similarity index 100%
rename from test/data/tetragonal/POSCAR-127
rename to python/test/data/tetragonal/POSCAR-127
diff --git a/test/data/tetragonal/POSCAR-127-2 b/python/test/data/tetragonal/POSCAR-127-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-127-2
rename to python/test/data/tetragonal/POSCAR-127-2
diff --git a/test/data/tetragonal/POSCAR-128 b/python/test/data/tetragonal/POSCAR-128
similarity index 100%
rename from test/data/tetragonal/POSCAR-128
rename to python/test/data/tetragonal/POSCAR-128
diff --git a/test/data/tetragonal/POSCAR-128-2 b/python/test/data/tetragonal/POSCAR-128-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-128-2
rename to python/test/data/tetragonal/POSCAR-128-2
diff --git a/test/data/tetragonal/POSCAR-129 b/python/test/data/tetragonal/POSCAR-129
similarity index 100%
rename from test/data/tetragonal/POSCAR-129
rename to python/test/data/tetragonal/POSCAR-129
diff --git a/test/data/tetragonal/POSCAR-129-2 b/python/test/data/tetragonal/POSCAR-129-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-129-2
rename to python/test/data/tetragonal/POSCAR-129-2
diff --git a/test/data/tetragonal/POSCAR-129-3 b/python/test/data/tetragonal/POSCAR-129-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-129-3
rename to python/test/data/tetragonal/POSCAR-129-3
diff --git a/test/data/tetragonal/POSCAR-130 b/python/test/data/tetragonal/POSCAR-130
similarity index 100%
rename from test/data/tetragonal/POSCAR-130
rename to python/test/data/tetragonal/POSCAR-130
diff --git a/test/data/tetragonal/POSCAR-130-2 b/python/test/data/tetragonal/POSCAR-130-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-130-2
rename to python/test/data/tetragonal/POSCAR-130-2
diff --git a/test/data/tetragonal/POSCAR-131 b/python/test/data/tetragonal/POSCAR-131
similarity index 100%
rename from test/data/tetragonal/POSCAR-131
rename to python/test/data/tetragonal/POSCAR-131
diff --git a/test/data/tetragonal/POSCAR-131-2 b/python/test/data/tetragonal/POSCAR-131-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-131-2
rename to python/test/data/tetragonal/POSCAR-131-2
diff --git a/test/data/tetragonal/POSCAR-132 b/python/test/data/tetragonal/POSCAR-132
similarity index 100%
rename from test/data/tetragonal/POSCAR-132
rename to python/test/data/tetragonal/POSCAR-132
diff --git a/test/data/tetragonal/POSCAR-132-2 b/python/test/data/tetragonal/POSCAR-132-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-132-2
rename to python/test/data/tetragonal/POSCAR-132-2
diff --git a/test/data/tetragonal/POSCAR-133 b/python/test/data/tetragonal/POSCAR-133
similarity index 100%
rename from test/data/tetragonal/POSCAR-133
rename to python/test/data/tetragonal/POSCAR-133
diff --git a/test/data/tetragonal/POSCAR-133-2 b/python/test/data/tetragonal/POSCAR-133-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-133-2
rename to python/test/data/tetragonal/POSCAR-133-2
diff --git a/test/data/tetragonal/POSCAR-134 b/python/test/data/tetragonal/POSCAR-134
similarity index 100%
rename from test/data/tetragonal/POSCAR-134
rename to python/test/data/tetragonal/POSCAR-134
diff --git a/test/data/tetragonal/POSCAR-134-2 b/python/test/data/tetragonal/POSCAR-134-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-134-2
rename to python/test/data/tetragonal/POSCAR-134-2
diff --git a/test/data/tetragonal/POSCAR-135 b/python/test/data/tetragonal/POSCAR-135
similarity index 100%
rename from test/data/tetragonal/POSCAR-135
rename to python/test/data/tetragonal/POSCAR-135
diff --git a/test/data/tetragonal/POSCAR-135-2 b/python/test/data/tetragonal/POSCAR-135-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-135-2
rename to python/test/data/tetragonal/POSCAR-135-2
diff --git a/test/data/tetragonal/POSCAR-136 b/python/test/data/tetragonal/POSCAR-136
similarity index 100%
rename from test/data/tetragonal/POSCAR-136
rename to python/test/data/tetragonal/POSCAR-136
diff --git a/test/data/tetragonal/POSCAR-136-2 b/python/test/data/tetragonal/POSCAR-136-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-136-2
rename to python/test/data/tetragonal/POSCAR-136-2
diff --git a/test/data/tetragonal/POSCAR-136-3 b/python/test/data/tetragonal/POSCAR-136-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-136-3
rename to python/test/data/tetragonal/POSCAR-136-3
diff --git a/test/data/tetragonal/POSCAR-136-4 b/python/test/data/tetragonal/POSCAR-136-4
similarity index 100%
rename from test/data/tetragonal/POSCAR-136-4
rename to python/test/data/tetragonal/POSCAR-136-4
diff --git a/test/data/tetragonal/POSCAR-136-5 b/python/test/data/tetragonal/POSCAR-136-5
similarity index 100%
rename from test/data/tetragonal/POSCAR-136-5
rename to python/test/data/tetragonal/POSCAR-136-5
diff --git a/test/data/tetragonal/POSCAR-137 b/python/test/data/tetragonal/POSCAR-137
similarity index 100%
rename from test/data/tetragonal/POSCAR-137
rename to python/test/data/tetragonal/POSCAR-137
diff --git a/test/data/tetragonal/POSCAR-137-2 b/python/test/data/tetragonal/POSCAR-137-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-137-2
rename to python/test/data/tetragonal/POSCAR-137-2
diff --git a/test/data/tetragonal/POSCAR-137-3 b/python/test/data/tetragonal/POSCAR-137-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-137-3
rename to python/test/data/tetragonal/POSCAR-137-3
diff --git a/test/data/tetragonal/POSCAR-138 b/python/test/data/tetragonal/POSCAR-138
similarity index 100%
rename from test/data/tetragonal/POSCAR-138
rename to python/test/data/tetragonal/POSCAR-138
diff --git a/test/data/tetragonal/POSCAR-138-2 b/python/test/data/tetragonal/POSCAR-138-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-138-2
rename to python/test/data/tetragonal/POSCAR-138-2
diff --git a/test/data/tetragonal/POSCAR-139 b/python/test/data/tetragonal/POSCAR-139
similarity index 100%
rename from test/data/tetragonal/POSCAR-139
rename to python/test/data/tetragonal/POSCAR-139
diff --git a/test/data/tetragonal/POSCAR-139-2 b/python/test/data/tetragonal/POSCAR-139-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-139-2
rename to python/test/data/tetragonal/POSCAR-139-2
diff --git a/test/data/tetragonal/POSCAR-140 b/python/test/data/tetragonal/POSCAR-140
similarity index 100%
rename from test/data/tetragonal/POSCAR-140
rename to python/test/data/tetragonal/POSCAR-140
diff --git a/test/data/tetragonal/POSCAR-140-2 b/python/test/data/tetragonal/POSCAR-140-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-140-2
rename to python/test/data/tetragonal/POSCAR-140-2
diff --git a/test/data/tetragonal/POSCAR-141 b/python/test/data/tetragonal/POSCAR-141
similarity index 100%
rename from test/data/tetragonal/POSCAR-141
rename to python/test/data/tetragonal/POSCAR-141
diff --git a/test/data/tetragonal/POSCAR-141-2 b/python/test/data/tetragonal/POSCAR-141-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-141-2
rename to python/test/data/tetragonal/POSCAR-141-2
diff --git a/test/data/tetragonal/POSCAR-142 b/python/test/data/tetragonal/POSCAR-142
similarity index 100%
rename from test/data/tetragonal/POSCAR-142
rename to python/test/data/tetragonal/POSCAR-142
diff --git a/test/data/tetragonal/POSCAR-142-2 b/python/test/data/tetragonal/POSCAR-142-2
similarity index 100%
rename from test/data/tetragonal/POSCAR-142-2
rename to python/test/data/tetragonal/POSCAR-142-2
diff --git a/test/data/tetragonal/POSCAR-142-3 b/python/test/data/tetragonal/POSCAR-142-3
similarity index 100%
rename from test/data/tetragonal/POSCAR-142-3
rename to python/test/data/tetragonal/POSCAR-142-3
diff --git a/test/data/triclinic/POSCAR-001 b/python/test/data/triclinic/POSCAR-001
similarity index 100%
rename from test/data/triclinic/POSCAR-001
rename to python/test/data/triclinic/POSCAR-001
diff --git a/test/data/triclinic/POSCAR-002 b/python/test/data/triclinic/POSCAR-002
similarity index 100%
rename from test/data/triclinic/POSCAR-002
rename to python/test/data/triclinic/POSCAR-002
diff --git a/test/data/trigonal/POSCAR-143 b/python/test/data/trigonal/POSCAR-143
similarity index 100%
rename from test/data/trigonal/POSCAR-143
rename to python/test/data/trigonal/POSCAR-143
diff --git a/test/data/trigonal/POSCAR-143-2 b/python/test/data/trigonal/POSCAR-143-2
similarity index 100%
rename from test/data/trigonal/POSCAR-143-2
rename to python/test/data/trigonal/POSCAR-143-2
diff --git a/test/data/trigonal/POSCAR-144 b/python/test/data/trigonal/POSCAR-144
similarity index 100%
rename from test/data/trigonal/POSCAR-144
rename to python/test/data/trigonal/POSCAR-144
diff --git a/test/data/trigonal/POSCAR-144-2 b/python/test/data/trigonal/POSCAR-144-2
similarity index 100%
rename from test/data/trigonal/POSCAR-144-2
rename to python/test/data/trigonal/POSCAR-144-2
diff --git a/test/data/trigonal/POSCAR-145 b/python/test/data/trigonal/POSCAR-145
similarity index 100%
rename from test/data/trigonal/POSCAR-145
rename to python/test/data/trigonal/POSCAR-145
diff --git a/test/data/trigonal/POSCAR-145-2 b/python/test/data/trigonal/POSCAR-145-2
similarity index 100%
rename from test/data/trigonal/POSCAR-145-2
rename to python/test/data/trigonal/POSCAR-145-2
diff --git a/test/data/trigonal/POSCAR-146 b/python/test/data/trigonal/POSCAR-146
similarity index 100%
rename from test/data/trigonal/POSCAR-146
rename to python/test/data/trigonal/POSCAR-146
diff --git a/test/data/trigonal/POSCAR-146-2 b/python/test/data/trigonal/POSCAR-146-2
similarity index 100%
rename from test/data/trigonal/POSCAR-146-2
rename to python/test/data/trigonal/POSCAR-146-2
diff --git a/test/data/trigonal/POSCAR-147 b/python/test/data/trigonal/POSCAR-147
similarity index 100%
rename from test/data/trigonal/POSCAR-147
rename to python/test/data/trigonal/POSCAR-147
diff --git a/test/data/trigonal/POSCAR-147-2 b/python/test/data/trigonal/POSCAR-147-2
similarity index 100%
rename from test/data/trigonal/POSCAR-147-2
rename to python/test/data/trigonal/POSCAR-147-2
diff --git a/test/data/trigonal/POSCAR-148 b/python/test/data/trigonal/POSCAR-148
similarity index 100%
rename from test/data/trigonal/POSCAR-148
rename to python/test/data/trigonal/POSCAR-148
diff --git a/test/data/trigonal/POSCAR-148-2 b/python/test/data/trigonal/POSCAR-148-2
similarity index 100%
rename from test/data/trigonal/POSCAR-148-2
rename to python/test/data/trigonal/POSCAR-148-2
diff --git a/test/data/trigonal/POSCAR-149 b/python/test/data/trigonal/POSCAR-149
similarity index 100%
rename from test/data/trigonal/POSCAR-149
rename to python/test/data/trigonal/POSCAR-149
diff --git a/test/data/trigonal/POSCAR-149-2 b/python/test/data/trigonal/POSCAR-149-2
similarity index 100%
rename from test/data/trigonal/POSCAR-149-2
rename to python/test/data/trigonal/POSCAR-149-2
diff --git a/test/data/trigonal/POSCAR-150 b/python/test/data/trigonal/POSCAR-150
similarity index 100%
rename from test/data/trigonal/POSCAR-150
rename to python/test/data/trigonal/POSCAR-150
diff --git a/test/data/trigonal/POSCAR-150-2 b/python/test/data/trigonal/POSCAR-150-2
similarity index 100%
rename from test/data/trigonal/POSCAR-150-2
rename to python/test/data/trigonal/POSCAR-150-2
diff --git a/test/data/trigonal/POSCAR-151 b/python/test/data/trigonal/POSCAR-151
similarity index 100%
rename from test/data/trigonal/POSCAR-151
rename to python/test/data/trigonal/POSCAR-151
diff --git a/test/data/trigonal/POSCAR-151-2 b/python/test/data/trigonal/POSCAR-151-2
similarity index 100%
rename from test/data/trigonal/POSCAR-151-2
rename to python/test/data/trigonal/POSCAR-151-2
diff --git a/test/data/trigonal/POSCAR-152 b/python/test/data/trigonal/POSCAR-152
similarity index 100%
rename from test/data/trigonal/POSCAR-152
rename to python/test/data/trigonal/POSCAR-152
diff --git a/test/data/trigonal/POSCAR-152-2 b/python/test/data/trigonal/POSCAR-152-2
similarity index 100%
rename from test/data/trigonal/POSCAR-152-2
rename to python/test/data/trigonal/POSCAR-152-2
diff --git a/test/data/trigonal/POSCAR-153 b/python/test/data/trigonal/POSCAR-153
similarity index 100%
rename from test/data/trigonal/POSCAR-153
rename to python/test/data/trigonal/POSCAR-153
diff --git a/test/data/trigonal/POSCAR-154 b/python/test/data/trigonal/POSCAR-154
similarity index 100%
rename from test/data/trigonal/POSCAR-154
rename to python/test/data/trigonal/POSCAR-154
diff --git a/test/data/trigonal/POSCAR-154-2 b/python/test/data/trigonal/POSCAR-154-2
similarity index 100%
rename from test/data/trigonal/POSCAR-154-2
rename to python/test/data/trigonal/POSCAR-154-2
diff --git a/test/data/trigonal/POSCAR-154-3 b/python/test/data/trigonal/POSCAR-154-3
similarity index 100%
rename from test/data/trigonal/POSCAR-154-3
rename to python/test/data/trigonal/POSCAR-154-3
diff --git a/test/data/trigonal/POSCAR-155 b/python/test/data/trigonal/POSCAR-155
similarity index 100%
rename from test/data/trigonal/POSCAR-155
rename to python/test/data/trigonal/POSCAR-155
diff --git a/test/data/trigonal/POSCAR-155-2 b/python/test/data/trigonal/POSCAR-155-2
similarity index 100%
rename from test/data/trigonal/POSCAR-155-2
rename to python/test/data/trigonal/POSCAR-155-2
diff --git a/test/data/trigonal/POSCAR-156 b/python/test/data/trigonal/POSCAR-156
similarity index 100%
rename from test/data/trigonal/POSCAR-156
rename to python/test/data/trigonal/POSCAR-156
diff --git a/test/data/trigonal/POSCAR-156-2 b/python/test/data/trigonal/POSCAR-156-2
similarity index 100%
rename from test/data/trigonal/POSCAR-156-2
rename to python/test/data/trigonal/POSCAR-156-2
diff --git a/test/data/trigonal/POSCAR-157 b/python/test/data/trigonal/POSCAR-157
similarity index 100%
rename from test/data/trigonal/POSCAR-157
rename to python/test/data/trigonal/POSCAR-157
diff --git a/test/data/trigonal/POSCAR-157-2 b/python/test/data/trigonal/POSCAR-157-2
similarity index 100%
rename from test/data/trigonal/POSCAR-157-2
rename to python/test/data/trigonal/POSCAR-157-2
diff --git a/test/data/trigonal/POSCAR-158 b/python/test/data/trigonal/POSCAR-158
similarity index 100%
rename from test/data/trigonal/POSCAR-158
rename to python/test/data/trigonal/POSCAR-158
diff --git a/test/data/trigonal/POSCAR-158-2 b/python/test/data/trigonal/POSCAR-158-2
similarity index 100%
rename from test/data/trigonal/POSCAR-158-2
rename to python/test/data/trigonal/POSCAR-158-2
diff --git a/test/data/trigonal/POSCAR-159 b/python/test/data/trigonal/POSCAR-159
similarity index 100%
rename from test/data/trigonal/POSCAR-159
rename to python/test/data/trigonal/POSCAR-159
diff --git a/test/data/trigonal/POSCAR-159-2 b/python/test/data/trigonal/POSCAR-159-2
similarity index 100%
rename from test/data/trigonal/POSCAR-159-2
rename to python/test/data/trigonal/POSCAR-159-2
diff --git a/test/data/trigonal/POSCAR-160 b/python/test/data/trigonal/POSCAR-160
similarity index 100%
rename from test/data/trigonal/POSCAR-160
rename to python/test/data/trigonal/POSCAR-160
diff --git a/test/data/trigonal/POSCAR-160-2 b/python/test/data/trigonal/POSCAR-160-2
similarity index 100%
rename from test/data/trigonal/POSCAR-160-2
rename to python/test/data/trigonal/POSCAR-160-2
diff --git a/test/data/trigonal/POSCAR-161 b/python/test/data/trigonal/POSCAR-161
similarity index 100%
rename from test/data/trigonal/POSCAR-161
rename to python/test/data/trigonal/POSCAR-161
diff --git a/test/data/trigonal/POSCAR-161-2 b/python/test/data/trigonal/POSCAR-161-2
similarity index 100%
rename from test/data/trigonal/POSCAR-161-2
rename to python/test/data/trigonal/POSCAR-161-2
diff --git a/test/data/trigonal/POSCAR-162 b/python/test/data/trigonal/POSCAR-162
similarity index 100%
rename from test/data/trigonal/POSCAR-162
rename to python/test/data/trigonal/POSCAR-162
diff --git a/test/data/trigonal/POSCAR-162-2 b/python/test/data/trigonal/POSCAR-162-2
similarity index 100%
rename from test/data/trigonal/POSCAR-162-2
rename to python/test/data/trigonal/POSCAR-162-2
diff --git a/test/data/trigonal/POSCAR-163 b/python/test/data/trigonal/POSCAR-163
similarity index 100%
rename from test/data/trigonal/POSCAR-163
rename to python/test/data/trigonal/POSCAR-163
diff --git a/test/data/trigonal/POSCAR-163-2 b/python/test/data/trigonal/POSCAR-163-2
similarity index 100%
rename from test/data/trigonal/POSCAR-163-2
rename to python/test/data/trigonal/POSCAR-163-2
diff --git a/test/data/trigonal/POSCAR-164 b/python/test/data/trigonal/POSCAR-164
similarity index 100%
rename from test/data/trigonal/POSCAR-164
rename to python/test/data/trigonal/POSCAR-164
diff --git a/test/data/trigonal/POSCAR-164-2 b/python/test/data/trigonal/POSCAR-164-2
similarity index 100%
rename from test/data/trigonal/POSCAR-164-2
rename to python/test/data/trigonal/POSCAR-164-2
diff --git a/test/data/trigonal/POSCAR-165 b/python/test/data/trigonal/POSCAR-165
similarity index 100%
rename from test/data/trigonal/POSCAR-165
rename to python/test/data/trigonal/POSCAR-165
diff --git a/test/data/trigonal/POSCAR-165-2 b/python/test/data/trigonal/POSCAR-165-2
similarity index 100%
rename from test/data/trigonal/POSCAR-165-2
rename to python/test/data/trigonal/POSCAR-165-2
diff --git a/test/data/trigonal/POSCAR-166 b/python/test/data/trigonal/POSCAR-166
similarity index 100%
rename from test/data/trigonal/POSCAR-166
rename to python/test/data/trigonal/POSCAR-166
diff --git a/test/data/trigonal/POSCAR-166-2 b/python/test/data/trigonal/POSCAR-166-2
similarity index 100%
rename from test/data/trigonal/POSCAR-166-2
rename to python/test/data/trigonal/POSCAR-166-2
diff --git a/test/data/trigonal/POSCAR-167 b/python/test/data/trigonal/POSCAR-167
similarity index 100%
rename from test/data/trigonal/POSCAR-167
rename to python/test/data/trigonal/POSCAR-167
diff --git a/test/data/trigonal/POSCAR-167-2 b/python/test/data/trigonal/POSCAR-167-2
similarity index 100%
rename from test/data/trigonal/POSCAR-167-2
rename to python/test/data/trigonal/POSCAR-167-2
diff --git a/test/data/trigonal/POSCAR-167-3 b/python/test/data/trigonal/POSCAR-167-3
similarity index 100%
rename from test/data/trigonal/POSCAR-167-3
rename to python/test/data/trigonal/POSCAR-167-3
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-33 b/python/test/data/virtual_structure/POSCAR-1-221-33
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-33
rename to python/test/data/virtual_structure/POSCAR-1-221-33
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-33 b/python/test/data/virtual_structure/POSCAR-1-222-33
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-33
rename to python/test/data/virtual_structure/POSCAR-1-222-33
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-33 b/python/test/data/virtual_structure/POSCAR-1-223-33
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-33
rename to python/test/data/virtual_structure/POSCAR-1-223-33
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-33 b/python/test/data/virtual_structure/POSCAR-1-224-33
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-33
rename to python/test/data/virtual_structure/POSCAR-1-224-33
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-73 b/python/test/data/virtual_structure/POSCAR-1-227-73
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-73
rename to python/test/data/virtual_structure/POSCAR-1-227-73
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-93 b/python/test/data/virtual_structure/POSCAR-1-227-93
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-93
rename to python/test/data/virtual_structure/POSCAR-1-227-93
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-99 b/python/test/data/virtual_structure/POSCAR-1-227-99
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-99
rename to python/test/data/virtual_structure/POSCAR-1-227-99
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-56 b/python/test/data/virtual_structure/POSCAR-1-230-conv-56
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-56
rename to python/test/data/virtual_structure/POSCAR-1-230-conv-56
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-33 b/python/test/data/virtual_structure/POSCAR-1-230-prim-33
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-33
rename to python/test/data/virtual_structure/POSCAR-1-230-prim-33
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-33 b/python/test/data/virtual_structure/POSCAR-1-bcc-33
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-33
rename to python/test/data/virtual_structure/POSCAR-1-bcc-33
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-18 b/python/test/data/virtual_structure/POSCAR-10-221-18
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-18
rename to python/test/data/virtual_structure/POSCAR-10-221-18
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-18 b/python/test/data/virtual_structure/POSCAR-10-223-18
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-18
rename to python/test/data/virtual_structure/POSCAR-10-223-18
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-50 b/python/test/data/virtual_structure/POSCAR-10-227-50
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-50
rename to python/test/data/virtual_structure/POSCAR-10-227-50
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-13 b/python/test/data/virtual_structure/POSCAR-102-224-13
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-13
rename to python/test/data/virtual_structure/POSCAR-102-224-13
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-13 b/python/test/data/virtual_structure/POSCAR-104-222-13
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-13
rename to python/test/data/virtual_structure/POSCAR-104-222-13
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-13 b/python/test/data/virtual_structure/POSCAR-105-223-13
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-13
rename to python/test/data/virtual_structure/POSCAR-105-223-13
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-13 b/python/test/data/virtual_structure/POSCAR-109-227-13
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-13
rename to python/test/data/virtual_structure/POSCAR-109-227-13
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-48 b/python/test/data/virtual_structure/POSCAR-11-227-48
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-48
rename to python/test/data/virtual_structure/POSCAR-11-227-48
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-15 b/python/test/data/virtual_structure/POSCAR-110-230-conv-15
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-15
rename to python/test/data/virtual_structure/POSCAR-110-230-conv-15
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-13 b/python/test/data/virtual_structure/POSCAR-110-230-prim-13
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-13
rename to python/test/data/virtual_structure/POSCAR-110-230-prim-13
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-11 b/python/test/data/virtual_structure/POSCAR-111-221-11
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-11
rename to python/test/data/virtual_structure/POSCAR-111-221-11
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-11 b/python/test/data/virtual_structure/POSCAR-111-224-11
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-11
rename to python/test/data/virtual_structure/POSCAR-111-224-11
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-66 b/python/test/data/virtual_structure/POSCAR-111-227-66
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-66
rename to python/test/data/virtual_structure/POSCAR-111-227-66
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-11 b/python/test/data/virtual_structure/POSCAR-112-222-11
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-11
rename to python/test/data/virtual_structure/POSCAR-112-222-11
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-11 b/python/test/data/virtual_structure/POSCAR-112-223-11
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-11
rename to python/test/data/virtual_structure/POSCAR-112-223-11
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-68 b/python/test/data/virtual_structure/POSCAR-113-227-68
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-68
rename to python/test/data/virtual_structure/POSCAR-113-227-68
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-14 b/python/test/data/virtual_structure/POSCAR-115-221-14
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-14
rename to python/test/data/virtual_structure/POSCAR-115-221-14
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-14 b/python/test/data/virtual_structure/POSCAR-115-223-14
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-14
rename to python/test/data/virtual_structure/POSCAR-115-223-14
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-33 b/python/test/data/virtual_structure/POSCAR-115-227-33
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-33
rename to python/test/data/virtual_structure/POSCAR-115-227-33
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-34 b/python/test/data/virtual_structure/POSCAR-116-230-conv-34
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-34
rename to python/test/data/virtual_structure/POSCAR-116-230-conv-34
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-33 b/python/test/data/virtual_structure/POSCAR-117-230-conv-33
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-33
rename to python/test/data/virtual_structure/POSCAR-117-230-conv-33
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-14 b/python/test/data/virtual_structure/POSCAR-118-222-14
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-14
rename to python/test/data/virtual_structure/POSCAR-118-222-14
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-14 b/python/test/data/virtual_structure/POSCAR-118-224-14
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-14
rename to python/test/data/virtual_structure/POSCAR-118-224-14
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-19 b/python/test/data/virtual_structure/POSCAR-12-221-19
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-19
rename to python/test/data/virtual_structure/POSCAR-12-221-19
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-19 b/python/test/data/virtual_structure/POSCAR-12-224-19
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-19
rename to python/test/data/virtual_structure/POSCAR-12-224-19
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-21 b/python/test/data/virtual_structure/POSCAR-12-227-21
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-21
rename to python/test/data/virtual_structure/POSCAR-12-227-21
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-83 b/python/test/data/virtual_structure/POSCAR-12-227-83
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-83
rename to python/test/data/virtual_structure/POSCAR-12-227-83
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-16 b/python/test/data/virtual_structure/POSCAR-120-230-conv-16
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-16
rename to python/test/data/virtual_structure/POSCAR-120-230-conv-16
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-14 b/python/test/data/virtual_structure/POSCAR-120-230-prim-14
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-14
rename to python/test/data/virtual_structure/POSCAR-120-230-prim-14
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-13 b/python/test/data/virtual_structure/POSCAR-122-230-conv-13
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-13
rename to python/test/data/virtual_structure/POSCAR-122-230-conv-13
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-11 b/python/test/data/virtual_structure/POSCAR-122-230-prim-11
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-11
rename to python/test/data/virtual_structure/POSCAR-122-230-prim-11
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-05 b/python/test/data/virtual_structure/POSCAR-123-221-05
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-05
rename to python/test/data/virtual_structure/POSCAR-123-221-05
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-05 b/python/test/data/virtual_structure/POSCAR-126-222-05
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-05
rename to python/test/data/virtual_structure/POSCAR-126-222-05
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-18 b/python/test/data/virtual_structure/POSCAR-13-222-18
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-18
rename to python/test/data/virtual_structure/POSCAR-13-222-18
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-18 b/python/test/data/virtual_structure/POSCAR-13-224-18
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-18
rename to python/test/data/virtual_structure/POSCAR-13-224-18
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-49 b/python/test/data/virtual_structure/POSCAR-13-227-49
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-49
rename to python/test/data/virtual_structure/POSCAR-13-227-49
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-44 b/python/test/data/virtual_structure/POSCAR-13-230-conv-44
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-44
rename to python/test/data/virtual_structure/POSCAR-13-230-conv-44
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-05 b/python/test/data/virtual_structure/POSCAR-131-223-05
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-05
rename to python/test/data/virtual_structure/POSCAR-131-223-05
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-05 b/python/test/data/virtual_structure/POSCAR-134-224-05
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-05
rename to python/test/data/virtual_structure/POSCAR-134-224-05
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-47 b/python/test/data/virtual_structure/POSCAR-14-227-47
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-47
rename to python/test/data/virtual_structure/POSCAR-14-227-47
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-51 b/python/test/data/virtual_structure/POSCAR-14-227-51
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-51
rename to python/test/data/virtual_structure/POSCAR-14-227-51
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-45 b/python/test/data/virtual_structure/POSCAR-14-230-conv-45
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-45
rename to python/test/data/virtual_structure/POSCAR-14-230-conv-45
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-05 b/python/test/data/virtual_structure/POSCAR-142-230-conv-05
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-05
rename to python/test/data/virtual_structure/POSCAR-142-230-conv-05
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-05 b/python/test/data/virtual_structure/POSCAR-142-230-prim-05
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-05
rename to python/test/data/virtual_structure/POSCAR-142-230-prim-05
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-27 b/python/test/data/virtual_structure/POSCAR-146-221-27
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-27
rename to python/test/data/virtual_structure/POSCAR-146-221-27
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-27 b/python/test/data/virtual_structure/POSCAR-146-222-27
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-27
rename to python/test/data/virtual_structure/POSCAR-146-222-27
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-27 b/python/test/data/virtual_structure/POSCAR-146-223-27
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-27
rename to python/test/data/virtual_structure/POSCAR-146-223-27
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-27 b/python/test/data/virtual_structure/POSCAR-146-224-27
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-27
rename to python/test/data/virtual_structure/POSCAR-146-224-27
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-92 b/python/test/data/virtual_structure/POSCAR-146-227-92
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-92
rename to python/test/data/virtual_structure/POSCAR-146-227-92
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-36 b/python/test/data/virtual_structure/POSCAR-146-230-conv-36
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-36
rename to python/test/data/virtual_structure/POSCAR-146-230-conv-36
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-55 b/python/test/data/virtual_structure/POSCAR-146-230-conv-55
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-55
rename to python/test/data/virtual_structure/POSCAR-146-230-conv-55
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-27 b/python/test/data/virtual_structure/POSCAR-146-230-prim-27
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-27
rename to python/test/data/virtual_structure/POSCAR-146-230-prim-27
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-27 b/python/test/data/virtual_structure/POSCAR-146-bcc-27
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-27
rename to python/test/data/virtual_structure/POSCAR-146-bcc-27
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-15 b/python/test/data/virtual_structure/POSCAR-148-221-15
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-15
rename to python/test/data/virtual_structure/POSCAR-148-221-15
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-15 b/python/test/data/virtual_structure/POSCAR-148-222-15
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-15
rename to python/test/data/virtual_structure/POSCAR-148-222-15
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-15 b/python/test/data/virtual_structure/POSCAR-148-223-15
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-15
rename to python/test/data/virtual_structure/POSCAR-148-223-15
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-15 b/python/test/data/virtual_structure/POSCAR-148-224-15
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-15
rename to python/test/data/virtual_structure/POSCAR-148-224-15
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-70 b/python/test/data/virtual_structure/POSCAR-148-227-70
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-70
rename to python/test/data/virtual_structure/POSCAR-148-227-70
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-17 b/python/test/data/virtual_structure/POSCAR-148-230-conv-17
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-17
rename to python/test/data/virtual_structure/POSCAR-148-230-conv-17
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-37 b/python/test/data/virtual_structure/POSCAR-148-230-conv-37
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-37
rename to python/test/data/virtual_structure/POSCAR-148-230-conv-37
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-15 b/python/test/data/virtual_structure/POSCAR-148-230-prim-15
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-15
rename to python/test/data/virtual_structure/POSCAR-148-230-prim-15
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-15 b/python/test/data/virtual_structure/POSCAR-148-bcc-15
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-15
rename to python/test/data/virtual_structure/POSCAR-148-bcc-15
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-19 b/python/test/data/virtual_structure/POSCAR-15-222-19
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-19
rename to python/test/data/virtual_structure/POSCAR-15-222-19
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-19 b/python/test/data/virtual_structure/POSCAR-15-223-19
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-19
rename to python/test/data/virtual_structure/POSCAR-15-223-19
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-21 b/python/test/data/virtual_structure/POSCAR-15-230-conv-21
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-21
rename to python/test/data/virtual_structure/POSCAR-15-230-conv-21
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-22 b/python/test/data/virtual_structure/POSCAR-15-230-conv-22
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-22
rename to python/test/data/virtual_structure/POSCAR-15-230-conv-22
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-18 b/python/test/data/virtual_structure/POSCAR-15-230-prim-18
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-18
rename to python/test/data/virtual_structure/POSCAR-15-230-prim-18
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-19 b/python/test/data/virtual_structure/POSCAR-15-230-prim-19
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-19
rename to python/test/data/virtual_structure/POSCAR-15-230-prim-19
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-18 b/python/test/data/virtual_structure/POSCAR-15-bcc-18
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-18
rename to python/test/data/virtual_structure/POSCAR-15-bcc-18
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-19 b/python/test/data/virtual_structure/POSCAR-15-bcc-19
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-19
rename to python/test/data/virtual_structure/POSCAR-15-bcc-19
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-17 b/python/test/data/virtual_structure/POSCAR-155-221-17
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-17
rename to python/test/data/virtual_structure/POSCAR-155-221-17
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-17 b/python/test/data/virtual_structure/POSCAR-155-222-17
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-17
rename to python/test/data/virtual_structure/POSCAR-155-222-17
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-17 b/python/test/data/virtual_structure/POSCAR-155-223-17
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-17
rename to python/test/data/virtual_structure/POSCAR-155-223-17
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-17 b/python/test/data/virtual_structure/POSCAR-155-224-17
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-17
rename to python/test/data/virtual_structure/POSCAR-155-224-17
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-72 b/python/test/data/virtual_structure/POSCAR-155-227-72
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-72
rename to python/test/data/virtual_structure/POSCAR-155-227-72
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-19 b/python/test/data/virtual_structure/POSCAR-155-230-conv-19
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-19
rename to python/test/data/virtual_structure/POSCAR-155-230-conv-19
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-38 b/python/test/data/virtual_structure/POSCAR-155-230-conv-38
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-38
rename to python/test/data/virtual_structure/POSCAR-155-230-conv-38
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-17 b/python/test/data/virtual_structure/POSCAR-155-230-prim-17
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-17
rename to python/test/data/virtual_structure/POSCAR-155-230-prim-17
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-17 b/python/test/data/virtual_structure/POSCAR-155-bcc-17
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-17
rename to python/test/data/virtual_structure/POSCAR-155-bcc-17
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-20 b/python/test/data/virtual_structure/POSCAR-16-221-20
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-20
rename to python/test/data/virtual_structure/POSCAR-16-221-20
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-20 b/python/test/data/virtual_structure/POSCAR-16-222-20
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-20
rename to python/test/data/virtual_structure/POSCAR-16-222-20
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-20 b/python/test/data/virtual_structure/POSCAR-16-223-20
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-20
rename to python/test/data/virtual_structure/POSCAR-16-223-20
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-20 b/python/test/data/virtual_structure/POSCAR-16-224-20
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-20
rename to python/test/data/virtual_structure/POSCAR-16-224-20
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-84 b/python/test/data/virtual_structure/POSCAR-16-227-84
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-84
rename to python/test/data/virtual_structure/POSCAR-16-227-84
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-16 b/python/test/data/virtual_structure/POSCAR-160-221-16
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-16
rename to python/test/data/virtual_structure/POSCAR-160-221-16
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-16 b/python/test/data/virtual_structure/POSCAR-160-224-16
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-16
rename to python/test/data/virtual_structure/POSCAR-160-224-16
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-16 b/python/test/data/virtual_structure/POSCAR-160-227-16
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-16
rename to python/test/data/virtual_structure/POSCAR-160-227-16
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-71 b/python/test/data/virtual_structure/POSCAR-160-227-71
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-71
rename to python/test/data/virtual_structure/POSCAR-160-227-71
diff --git a/test/data/virtual_structure/rhombohedral/POSCAR-1 b/python/test/data/virtual_structure/POSCAR-160-fcc
similarity index 100%
rename from test/data/virtual_structure/rhombohedral/POSCAR-1
rename to python/test/data/virtual_structure/POSCAR-160-fcc
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-16 b/python/test/data/virtual_structure/POSCAR-161-222-16
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-16
rename to python/test/data/virtual_structure/POSCAR-161-222-16
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-16 b/python/test/data/virtual_structure/POSCAR-161-223-16
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-16
rename to python/test/data/virtual_structure/POSCAR-161-223-16
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-18 b/python/test/data/virtual_structure/POSCAR-161-230-conv-18
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-18
rename to python/test/data/virtual_structure/POSCAR-161-230-conv-18
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-16 b/python/test/data/virtual_structure/POSCAR-161-230-prim-16
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-16
rename to python/test/data/virtual_structure/POSCAR-161-230-prim-16
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-16 b/python/test/data/virtual_structure/POSCAR-161-bcc-16
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-16
rename to python/test/data/virtual_structure/POSCAR-161-bcc-16
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-06 b/python/test/data/virtual_structure/POSCAR-166-221-06
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-06
rename to python/test/data/virtual_structure/POSCAR-166-221-06
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-06 b/python/test/data/virtual_structure/POSCAR-166-224-06
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-06
rename to python/test/data/virtual_structure/POSCAR-166-224-06
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-06 b/python/test/data/virtual_structure/POSCAR-166-227-06
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-06
rename to python/test/data/virtual_structure/POSCAR-166-227-06
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-38 b/python/test/data/virtual_structure/POSCAR-166-227-38
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-38
rename to python/test/data/virtual_structure/POSCAR-166-227-38
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-06 b/python/test/data/virtual_structure/POSCAR-167-222-06
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-06
rename to python/test/data/virtual_structure/POSCAR-167-222-06
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-06 b/python/test/data/virtual_structure/POSCAR-167-223-06
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-06
rename to python/test/data/virtual_structure/POSCAR-167-223-06
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-06 b/python/test/data/virtual_structure/POSCAR-167-230-conv-06
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-06
rename to python/test/data/virtual_structure/POSCAR-167-230-conv-06
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-06 b/python/test/data/virtual_structure/POSCAR-167-230-prim-06
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-06
rename to python/test/data/virtual_structure/POSCAR-167-230-prim-06
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-6 b/python/test/data/virtual_structure/POSCAR-167-bcc-6
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-6
rename to python/test/data/virtual_structure/POSCAR-167-bcc-6
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-60 b/python/test/data/virtual_structure/POSCAR-17-227-60
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-60
rename to python/test/data/virtual_structure/POSCAR-17-227-60
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-85 b/python/test/data/virtual_structure/POSCAR-17-227-85
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-85
rename to python/test/data/virtual_structure/POSCAR-17-227-85
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-46 b/python/test/data/virtual_structure/POSCAR-17-230-conv-46
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-46
rename to python/test/data/virtual_structure/POSCAR-17-230-conv-46
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-86 b/python/test/data/virtual_structure/POSCAR-18-227-86
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-86
rename to python/test/data/virtual_structure/POSCAR-18-227-86
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-59 b/python/test/data/virtual_structure/POSCAR-19-227-59
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-59
rename to python/test/data/virtual_structure/POSCAR-19-227-59
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-89 b/python/test/data/virtual_structure/POSCAR-19-227-89
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-89
rename to python/test/data/virtual_structure/POSCAR-19-227-89
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-51 b/python/test/data/virtual_structure/POSCAR-19-230-conv-51
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-51
rename to python/test/data/virtual_structure/POSCAR-19-230-conv-51
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-07 b/python/test/data/virtual_structure/POSCAR-195-221-07
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-07
rename to python/test/data/virtual_structure/POSCAR-195-221-07
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-07 b/python/test/data/virtual_structure/POSCAR-195-222-07
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-07
rename to python/test/data/virtual_structure/POSCAR-195-222-07
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-07 b/python/test/data/virtual_structure/POSCAR-195-223-07
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-07
rename to python/test/data/virtual_structure/POSCAR-195-223-07
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-07 b/python/test/data/virtual_structure/POSCAR-195-224-07
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-07
rename to python/test/data/virtual_structure/POSCAR-195-224-07
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-40 b/python/test/data/virtual_structure/POSCAR-198-227-40
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-40
rename to python/test/data/virtual_structure/POSCAR-198-227-40
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-20 b/python/test/data/virtual_structure/POSCAR-198-230-conv-20
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-20
rename to python/test/data/virtual_structure/POSCAR-198-230-conv-20
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-07 b/python/test/data/virtual_structure/POSCAR-199-230-conv-07
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-07
rename to python/test/data/virtual_structure/POSCAR-199-230-conv-07
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-07 b/python/test/data/virtual_structure/POSCAR-199-230-prim-07
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-07
rename to python/test/data/virtual_structure/POSCAR-199-230-prim-07
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-28 b/python/test/data/virtual_structure/POSCAR-2-221-28
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-28
rename to python/test/data/virtual_structure/POSCAR-2-221-28
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-28 b/python/test/data/virtual_structure/POSCAR-2-222-28
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-28
rename to python/test/data/virtual_structure/POSCAR-2-222-28
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-28 b/python/test/data/virtual_structure/POSCAR-2-223-28
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-28
rename to python/test/data/virtual_structure/POSCAR-2-223-28
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-28 b/python/test/data/virtual_structure/POSCAR-2-224-28
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-28
rename to python/test/data/virtual_structure/POSCAR-2-224-28
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-41 b/python/test/data/virtual_structure/POSCAR-2-227-41
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-41
rename to python/test/data/virtual_structure/POSCAR-2-227-41
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-74 b/python/test/data/virtual_structure/POSCAR-2-227-74
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-74
rename to python/test/data/virtual_structure/POSCAR-2-227-74
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-94 b/python/test/data/virtual_structure/POSCAR-2-227-94
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-94
rename to python/test/data/virtual_structure/POSCAR-2-227-94
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-39 b/python/test/data/virtual_structure/POSCAR-2-230-conv-39
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-39
rename to python/test/data/virtual_structure/POSCAR-2-230-conv-39
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-57 b/python/test/data/virtual_structure/POSCAR-2-230-conv-57
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-57
rename to python/test/data/virtual_structure/POSCAR-2-230-conv-57
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-28 b/python/test/data/virtual_structure/POSCAR-2-230-prim-28
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-28
rename to python/test/data/virtual_structure/POSCAR-2-230-prim-28
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-28 b/python/test/data/virtual_structure/POSCAR-2-bcc-28
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-28
rename to python/test/data/virtual_structure/POSCAR-2-bcc-28
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-53 b/python/test/data/virtual_structure/POSCAR-20-227-53
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-53
rename to python/test/data/virtual_structure/POSCAR-20-227-53
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-90 b/python/test/data/virtual_structure/POSCAR-20-227-90
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-90
rename to python/test/data/virtual_structure/POSCAR-20-227-90
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-53 b/python/test/data/virtual_structure/POSCAR-20-230-conv-53
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-53
rename to python/test/data/virtual_structure/POSCAR-20-230-conv-53
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-02 b/python/test/data/virtual_structure/POSCAR-200-221-02
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-02
rename to python/test/data/virtual_structure/POSCAR-200-221-02
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-02 b/python/test/data/virtual_structure/POSCAR-200-223-02
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-02
rename to python/test/data/virtual_structure/POSCAR-200-223-02
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-02 b/python/test/data/virtual_structure/POSCAR-201-222-02
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-02
rename to python/test/data/virtual_structure/POSCAR-201-222-02
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-02 b/python/test/data/virtual_structure/POSCAR-201-224-02
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-02
rename to python/test/data/virtual_structure/POSCAR-201-224-02
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-08 b/python/test/data/virtual_structure/POSCAR-205-230-conv-08
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-08
rename to python/test/data/virtual_structure/POSCAR-205-230-conv-08
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-02 b/python/test/data/virtual_structure/POSCAR-206-230-conv-02
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-02
rename to python/test/data/virtual_structure/POSCAR-206-230-conv-02
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-02 b/python/test/data/virtual_structure/POSCAR-206-230-prim-02
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-02
rename to python/test/data/virtual_structure/POSCAR-206-230-prim-02
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-04 b/python/test/data/virtual_structure/POSCAR-207-221-04
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-04
rename to python/test/data/virtual_structure/POSCAR-207-221-04
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-04 b/python/test/data/virtual_structure/POSCAR-207-222-04
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-04
rename to python/test/data/virtual_structure/POSCAR-207-222-04
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-04 b/python/test/data/virtual_structure/POSCAR-208-223-04
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-04
rename to python/test/data/virtual_structure/POSCAR-208-223-04
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-04 b/python/test/data/virtual_structure/POSCAR-208-224-04
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-04
rename to python/test/data/virtual_structure/POSCAR-208-224-04
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-23 b/python/test/data/virtual_structure/POSCAR-21-221-23
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-23
rename to python/test/data/virtual_structure/POSCAR-21-221-23
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-23 b/python/test/data/virtual_structure/POSCAR-21-222-23
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-23
rename to python/test/data/virtual_structure/POSCAR-21-222-23
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-23 b/python/test/data/virtual_structure/POSCAR-21-223-23
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-23
rename to python/test/data/virtual_structure/POSCAR-21-223-23
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-23 b/python/test/data/virtual_structure/POSCAR-21-224-23
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-23
rename to python/test/data/virtual_structure/POSCAR-21-224-23
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-49 b/python/test/data/virtual_structure/POSCAR-21-230-conv-49
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-49
rename to python/test/data/virtual_structure/POSCAR-21-230-conv-49
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-19 b/python/test/data/virtual_structure/POSCAR-212-227-19
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-19
rename to python/test/data/virtual_structure/POSCAR-212-227-19
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-09 b/python/test/data/virtual_structure/POSCAR-213-230-conv-09
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-09
rename to python/test/data/virtual_structure/POSCAR-213-230-conv-09
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-04 b/python/test/data/virtual_structure/POSCAR-214-230-conv-04
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-04
rename to python/test/data/virtual_structure/POSCAR-214-230-conv-04
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-04 b/python/test/data/virtual_structure/POSCAR-214-230-prim-04
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-04
rename to python/test/data/virtual_structure/POSCAR-214-230-prim-04
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-03 b/python/test/data/virtual_structure/POSCAR-215-221-03
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-03
rename to python/test/data/virtual_structure/POSCAR-215-221-03
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-03 b/python/test/data/virtual_structure/POSCAR-215-224-03
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-03
rename to python/test/data/virtual_structure/POSCAR-215-224-03
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-18 b/python/test/data/virtual_structure/POSCAR-215-227-18
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-18
rename to python/test/data/virtual_structure/POSCAR-215-227-18
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-03 b/python/test/data/virtual_structure/POSCAR-216-227-03
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-03
rename to python/test/data/virtual_structure/POSCAR-216-227-03
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-03 b/python/test/data/virtual_structure/POSCAR-218-222-03
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-03
rename to python/test/data/virtual_structure/POSCAR-218-222-03
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-03 b/python/test/data/virtual_structure/POSCAR-218-223-03
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-03
rename to python/test/data/virtual_structure/POSCAR-218-223-03
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-26 b/python/test/data/virtual_structure/POSCAR-22-230-conv-26
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-26
rename to python/test/data/virtual_structure/POSCAR-22-230-conv-26
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-23 b/python/test/data/virtual_structure/POSCAR-22-230-prim-23
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-23
rename to python/test/data/virtual_structure/POSCAR-22-230-prim-23
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-03 b/python/test/data/virtual_structure/POSCAR-220-230-conv-03
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-03
rename to python/test/data/virtual_structure/POSCAR-220-230-conv-03
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-03 b/python/test/data/virtual_structure/POSCAR-220-230-prim-03
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-03
rename to python/test/data/virtual_structure/POSCAR-220-230-prim-03
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-01 b/python/test/data/virtual_structure/POSCAR-221-221-01
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-01
rename to python/test/data/virtual_structure/POSCAR-221-221-01
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-01 b/python/test/data/virtual_structure/POSCAR-222-222-01
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-01
rename to python/test/data/virtual_structure/POSCAR-222-222-01
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-01 b/python/test/data/virtual_structure/POSCAR-223-223-01
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-01
rename to python/test/data/virtual_structure/POSCAR-223-223-01
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-01 b/python/test/data/virtual_structure/POSCAR-224-224-01
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-01
rename to python/test/data/virtual_structure/POSCAR-224-224-01
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-01 b/python/test/data/virtual_structure/POSCAR-227-227-01
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-01
rename to python/test/data/virtual_structure/POSCAR-227-227-01
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-01 b/python/test/data/virtual_structure/POSCAR-230-230-conv-01
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-01
rename to python/test/data/virtual_structure/POSCAR-230-230-conv-01
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-62 b/python/test/data/virtual_structure/POSCAR-230-230-conv-62
similarity index 97%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-62
rename to python/test/data/virtual_structure/POSCAR-230-230-conv-62
index a8beb3e..913fc98 100644
--- a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-62
+++ b/python/test/data/virtual_structure/POSCAR-230-230-conv-62
@@ -1,4 +1,4 @@
-group 62
+H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H
1.00000000000000
12.8065400000000000 0.0000000000000000 0.0000000000000000
0.0000000000000000 12.8065400000000000 0.0000000000000000
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-01 b/python/test/data/virtual_structure/POSCAR-230-230-prim-01
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-01
rename to python/test/data/virtual_structure/POSCAR-230-230-prim-01
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-23 b/python/test/data/virtual_structure/POSCAR-24-230-conv-23
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-23
rename to python/test/data/virtual_structure/POSCAR-24-230-conv-23
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-20 b/python/test/data/virtual_structure/POSCAR-24-230-prim-20
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-20
rename to python/test/data/virtual_structure/POSCAR-24-230-prim-20
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-21 b/python/test/data/virtual_structure/POSCAR-25-221-21
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-21
rename to python/test/data/virtual_structure/POSCAR-25-221-21
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-21 b/python/test/data/virtual_structure/POSCAR-25-223-21
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-21
rename to python/test/data/virtual_structure/POSCAR-25-223-21
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-54 b/python/test/data/virtual_structure/POSCAR-25-227-54
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-54
rename to python/test/data/virtual_structure/POSCAR-25-227-54
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-64 b/python/test/data/virtual_structure/POSCAR-26-227-64
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-64
rename to python/test/data/virtual_structure/POSCAR-26-227-64
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-48 b/python/test/data/virtual_structure/POSCAR-27-230-conv-48
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-48
rename to python/test/data/virtual_structure/POSCAR-27-230-conv-48
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-62 b/python/test/data/virtual_structure/POSCAR-28-227-62
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-62
rename to python/test/data/virtual_structure/POSCAR-28-227-62
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-52 b/python/test/data/virtual_structure/POSCAR-29-230-conv-52
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-52
rename to python/test/data/virtual_structure/POSCAR-29-230-conv-52
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-29 b/python/test/data/virtual_structure/POSCAR-3-221-29
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-29
rename to python/test/data/virtual_structure/POSCAR-3-221-29
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-29 b/python/test/data/virtual_structure/POSCAR-3-222-29
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-29
rename to python/test/data/virtual_structure/POSCAR-3-222-29
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-29 b/python/test/data/virtual_structure/POSCAR-3-223-29
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-29
rename to python/test/data/virtual_structure/POSCAR-3-223-29
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-29 b/python/test/data/virtual_structure/POSCAR-3-224-29
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-29
rename to python/test/data/virtual_structure/POSCAR-3-224-29
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-82 b/python/test/data/virtual_structure/POSCAR-3-227-82
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-82
rename to python/test/data/virtual_structure/POSCAR-3-227-82
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-95 b/python/test/data/virtual_structure/POSCAR-3-227-95
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-95
rename to python/test/data/virtual_structure/POSCAR-3-227-95
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-58 b/python/test/data/virtual_structure/POSCAR-3-230-conv-58
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-58
rename to python/test/data/virtual_structure/POSCAR-3-230-conv-58
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-65 b/python/test/data/virtual_structure/POSCAR-30-227-65
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-65
rename to python/test/data/virtual_structure/POSCAR-30-227-65
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-58 b/python/test/data/virtual_structure/POSCAR-31-227-58
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-58
rename to python/test/data/virtual_structure/POSCAR-31-227-58
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-47 b/python/test/data/virtual_structure/POSCAR-32-230-conv-47
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-47
rename to python/test/data/virtual_structure/POSCAR-32-230-conv-47
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-63 b/python/test/data/virtual_structure/POSCAR-33-227-63
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-63
rename to python/test/data/virtual_structure/POSCAR-33-227-63
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-21 b/python/test/data/virtual_structure/POSCAR-34-222-21
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-21
rename to python/test/data/virtual_structure/POSCAR-34-222-21
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-21 b/python/test/data/virtual_structure/POSCAR-34-224-21
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-21
rename to python/test/data/virtual_structure/POSCAR-34-224-21
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-22 b/python/test/data/virtual_structure/POSCAR-35-221-22
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-22
rename to python/test/data/virtual_structure/POSCAR-35-221-22
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-22 b/python/test/data/virtual_structure/POSCAR-35-224-22
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-22
rename to python/test/data/virtual_structure/POSCAR-35-224-22
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-87 b/python/test/data/virtual_structure/POSCAR-35-227-87
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-87
rename to python/test/data/virtual_structure/POSCAR-35-227-87
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-22 b/python/test/data/virtual_structure/POSCAR-37-222-22
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-22
rename to python/test/data/virtual_structure/POSCAR-37-222-22
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-22 b/python/test/data/virtual_structure/POSCAR-37-223-22
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-22
rename to python/test/data/virtual_structure/POSCAR-37-223-22
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-26 b/python/test/data/virtual_structure/POSCAR-38-221-26
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-26
rename to python/test/data/virtual_structure/POSCAR-38-221-26
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-26 b/python/test/data/virtual_structure/POSCAR-39-224-26
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-26
rename to python/test/data/virtual_structure/POSCAR-39-224-26
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-77 b/python/test/data/virtual_structure/POSCAR-4-227-77
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-77
rename to python/test/data/virtual_structure/POSCAR-4-227-77
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-81 b/python/test/data/virtual_structure/POSCAR-4-227-81
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-81
rename to python/test/data/virtual_structure/POSCAR-4-227-81
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-96 b/python/test/data/virtual_structure/POSCAR-4-227-96
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-96
rename to python/test/data/virtual_structure/POSCAR-4-227-96
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-59 b/python/test/data/virtual_structure/POSCAR-4-230-conv-59
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-59
rename to python/test/data/virtual_structure/POSCAR-4-230-conv-59
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-26 b/python/test/data/virtual_structure/POSCAR-40-223-26
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-26
rename to python/test/data/virtual_structure/POSCAR-40-223-26
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-26 b/python/test/data/virtual_structure/POSCAR-41-222-26
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-26
rename to python/test/data/virtual_structure/POSCAR-41-222-26
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-25 b/python/test/data/virtual_structure/POSCAR-43-230-conv-25
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-25
rename to python/test/data/virtual_structure/POSCAR-43-230-conv-25
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-29 b/python/test/data/virtual_structure/POSCAR-43-230-conv-29
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-29
rename to python/test/data/virtual_structure/POSCAR-43-230-conv-29
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-22 b/python/test/data/virtual_structure/POSCAR-43-230-prim-22
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-22
rename to python/test/data/virtual_structure/POSCAR-43-230-prim-22
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-26 b/python/test/data/virtual_structure/POSCAR-43-230-prim-26
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-26
rename to python/test/data/virtual_structure/POSCAR-43-230-prim-26
diff --git a/test/data/virtual_structure/poscars-2/POSCAR-22 b/python/test/data/virtual_structure/POSCAR-43-bcc-22
similarity index 100%
rename from test/data/virtual_structure/poscars-2/POSCAR-22
rename to python/test/data/virtual_structure/POSCAR-43-bcc-22
diff --git a/test/data/virtual_structure/poscars-2/POSCAR-26 b/python/test/data/virtual_structure/POSCAR-43-bcc-26
similarity index 100%
rename from test/data/virtual_structure/poscars-2/POSCAR-26
rename to python/test/data/virtual_structure/POSCAR-43-bcc-26
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-24 b/python/test/data/virtual_structure/POSCAR-44-227-24
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-24
rename to python/test/data/virtual_structure/POSCAR-44-227-24
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-24 b/python/test/data/virtual_structure/POSCAR-45-230-conv-24
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-24
rename to python/test/data/virtual_structure/POSCAR-45-230-conv-24
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-21 b/python/test/data/virtual_structure/POSCAR-45-230-prim-21
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-21
rename to python/test/data/virtual_structure/POSCAR-45-230-prim-21
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-28 b/python/test/data/virtual_structure/POSCAR-46-227-28
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-28
rename to python/test/data/virtual_structure/POSCAR-46-227-28
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-08 b/python/test/data/virtual_structure/POSCAR-47-221-08
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-08
rename to python/test/data/virtual_structure/POSCAR-47-221-08
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-08 b/python/test/data/virtual_structure/POSCAR-47-223-08
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-08
rename to python/test/data/virtual_structure/POSCAR-47-223-08
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-08 b/python/test/data/virtual_structure/POSCAR-48-222-08
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-08
rename to python/test/data/virtual_structure/POSCAR-48-222-08
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-08 b/python/test/data/virtual_structure/POSCAR-48-224-08
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-08
rename to python/test/data/virtual_structure/POSCAR-48-224-08
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-32 b/python/test/data/virtual_structure/POSCAR-5-221-32
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-32
rename to python/test/data/virtual_structure/POSCAR-5-221-32
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-32 b/python/test/data/virtual_structure/POSCAR-5-222-32
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-32
rename to python/test/data/virtual_structure/POSCAR-5-222-32
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-32 b/python/test/data/virtual_structure/POSCAR-5-223-32
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-32
rename to python/test/data/virtual_structure/POSCAR-5-223-32
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-32 b/python/test/data/virtual_structure/POSCAR-5-224-32
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-32
rename to python/test/data/virtual_structure/POSCAR-5-224-32
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-45 b/python/test/data/virtual_structure/POSCAR-5-227-45
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-45
rename to python/test/data/virtual_structure/POSCAR-5-227-45
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-75 b/python/test/data/virtual_structure/POSCAR-5-227-75
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-75
rename to python/test/data/virtual_structure/POSCAR-5-227-75
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-98 b/python/test/data/virtual_structure/POSCAR-5-227-98
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-98
rename to python/test/data/virtual_structure/POSCAR-5-227-98
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-40 b/python/test/data/virtual_structure/POSCAR-5-230-conv-40
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-40
rename to python/test/data/virtual_structure/POSCAR-5-230-conv-40
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-43 b/python/test/data/virtual_structure/POSCAR-5-230-conv-43
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-43
rename to python/test/data/virtual_structure/POSCAR-5-230-conv-43
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-61 b/python/test/data/virtual_structure/POSCAR-5-230-conv-61
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-61
rename to python/test/data/virtual_structure/POSCAR-5-230-conv-61
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-29 b/python/test/data/virtual_structure/POSCAR-5-230-prim-29
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-29
rename to python/test/data/virtual_structure/POSCAR-5-230-prim-29
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-32 b/python/test/data/virtual_structure/POSCAR-5-230-prim-32
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-32
rename to python/test/data/virtual_structure/POSCAR-5-230-prim-32
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-29 b/python/test/data/virtual_structure/POSCAR-5-bcc-29
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-29
rename to python/test/data/virtual_structure/POSCAR-5-bcc-29
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-32 b/python/test/data/virtual_structure/POSCAR-5-bcc-32
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-32
rename to python/test/data/virtual_structure/POSCAR-5-bcc-32
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-29 b/python/test/data/virtual_structure/POSCAR-51-227-29
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-29
rename to python/test/data/virtual_structure/POSCAR-51-227-29
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-32 b/python/test/data/virtual_structure/POSCAR-53-227-32
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-32
rename to python/test/data/virtual_structure/POSCAR-53-227-32
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-30 b/python/test/data/virtual_structure/POSCAR-54-230-conv-30
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-30
rename to python/test/data/virtual_structure/POSCAR-54-230-conv-30
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-30 b/python/test/data/virtual_structure/POSCAR-6-221-30
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-30
rename to python/test/data/virtual_structure/POSCAR-6-221-30
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-30 b/python/test/data/virtual_structure/POSCAR-6-223-30
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-30
rename to python/test/data/virtual_structure/POSCAR-6-223-30
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-79 b/python/test/data/virtual_structure/POSCAR-6-227-79
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-79
rename to python/test/data/virtual_structure/POSCAR-6-227-79
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-31 b/python/test/data/virtual_structure/POSCAR-61-230-conv-31
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-31
rename to python/test/data/virtual_structure/POSCAR-61-230-conv-31
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-31 b/python/test/data/virtual_structure/POSCAR-62-227-31
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-31
rename to python/test/data/virtual_structure/POSCAR-62-227-31
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-09 b/python/test/data/virtual_structure/POSCAR-65-221-09
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-09
rename to python/test/data/virtual_structure/POSCAR-65-221-09
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-09 b/python/test/data/virtual_structure/POSCAR-66-223-09
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-09
rename to python/test/data/virtual_structure/POSCAR-66-223-09
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-09 b/python/test/data/virtual_structure/POSCAR-67-224-09
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-09
rename to python/test/data/virtual_structure/POSCAR-67-224-09
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-09 b/python/test/data/virtual_structure/POSCAR-68-222-09
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-09
rename to python/test/data/virtual_structure/POSCAR-68-222-09
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-30 b/python/test/data/virtual_structure/POSCAR-7-222-30
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-30
rename to python/test/data/virtual_structure/POSCAR-7-222-30
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-30 b/python/test/data/virtual_structure/POSCAR-7-224-30
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-30
rename to python/test/data/virtual_structure/POSCAR-7-224-30
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-78 b/python/test/data/virtual_structure/POSCAR-7-227-78
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-78
rename to python/test/data/virtual_structure/POSCAR-7-227-78
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-80 b/python/test/data/virtual_structure/POSCAR-7-227-80
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-80
rename to python/test/data/virtual_structure/POSCAR-7-227-80
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-60 b/python/test/data/virtual_structure/POSCAR-7-230-conv-60
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-60
rename to python/test/data/virtual_structure/POSCAR-7-230-conv-60
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-11 b/python/test/data/virtual_structure/POSCAR-70-230-conv-11
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-11
rename to python/test/data/virtual_structure/POSCAR-70-230-conv-11
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-09 b/python/test/data/virtual_structure/POSCAR-70-230-prim-09
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-09
rename to python/test/data/virtual_structure/POSCAR-70-230-prim-09
diff --git a/test/data/virtual_structure/poscars-2/POSCAR-9 b/python/test/data/virtual_structure/POSCAR-70-bcc-9
similarity index 100%
rename from test/data/virtual_structure/poscars-2/POSCAR-9
rename to python/test/data/virtual_structure/POSCAR-70-bcc-9
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-10 b/python/test/data/virtual_structure/POSCAR-73-230-conv-10
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-10
rename to python/test/data/virtual_structure/POSCAR-73-230-conv-10
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-08 b/python/test/data/virtual_structure/POSCAR-73-230-prim-08
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-08
rename to python/test/data/virtual_structure/POSCAR-73-230-prim-08
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-09 b/python/test/data/virtual_structure/POSCAR-74-227-09
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-09
rename to python/test/data/virtual_structure/POSCAR-74-227-09
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-25 b/python/test/data/virtual_structure/POSCAR-75-221-25
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-25
rename to python/test/data/virtual_structure/POSCAR-75-221-25
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-25 b/python/test/data/virtual_structure/POSCAR-75-222-25
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-25
rename to python/test/data/virtual_structure/POSCAR-75-222-25
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-61 b/python/test/data/virtual_structure/POSCAR-76-227-61
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-61
rename to python/test/data/virtual_structure/POSCAR-76-227-61
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-25 b/python/test/data/virtual_structure/POSCAR-77-223-25
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-25
rename to python/test/data/virtual_structure/POSCAR-77-223-25
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-25 b/python/test/data/virtual_structure/POSCAR-77-224-25
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-25
rename to python/test/data/virtual_structure/POSCAR-77-224-25
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-91 b/python/test/data/virtual_structure/POSCAR-78-227-91
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-91
rename to python/test/data/virtual_structure/POSCAR-78-227-91
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-54 b/python/test/data/virtual_structure/POSCAR-78-230-conv-54
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-54
rename to python/test/data/virtual_structure/POSCAR-78-230-conv-54
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-31 b/python/test/data/virtual_structure/POSCAR-8-221-31
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-31
rename to python/test/data/virtual_structure/POSCAR-8-221-31
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-31 b/python/test/data/virtual_structure/POSCAR-8-224-31
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-31
rename to python/test/data/virtual_structure/POSCAR-8-224-31
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-44 b/python/test/data/virtual_structure/POSCAR-8-227-44
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-44
rename to python/test/data/virtual_structure/POSCAR-8-227-44
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-97 b/python/test/data/virtual_structure/POSCAR-8-227-97
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-97
rename to python/test/data/virtual_structure/POSCAR-8-227-97
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-28 b/python/test/data/virtual_structure/POSCAR-80-230-conv-28
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-28
rename to python/test/data/virtual_structure/POSCAR-80-230-conv-28
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-25 b/python/test/data/virtual_structure/POSCAR-80-230-prim-25
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-25
rename to python/test/data/virtual_structure/POSCAR-80-230-prim-25
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-24 b/python/test/data/virtual_structure/POSCAR-81-221-24
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-24
rename to python/test/data/virtual_structure/POSCAR-81-221-24
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-24 b/python/test/data/virtual_structure/POSCAR-81-222-24
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-24
rename to python/test/data/virtual_structure/POSCAR-81-222-24
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-24 b/python/test/data/virtual_structure/POSCAR-81-223-24
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-24
rename to python/test/data/virtual_structure/POSCAR-81-223-24
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-24 b/python/test/data/virtual_structure/POSCAR-81-224-24
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-24
rename to python/test/data/virtual_structure/POSCAR-81-224-24
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-88 b/python/test/data/virtual_structure/POSCAR-81-227-88
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-88
rename to python/test/data/virtual_structure/POSCAR-81-227-88
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-50 b/python/test/data/virtual_structure/POSCAR-81-230-conv-50
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-50
rename to python/test/data/virtual_structure/POSCAR-81-230-conv-50
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-27 b/python/test/data/virtual_structure/POSCAR-82-230-conv-27
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-27
rename to python/test/data/virtual_structure/POSCAR-82-230-conv-27
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-24 b/python/test/data/virtual_structure/POSCAR-82-230-prim-24
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-24
rename to python/test/data/virtual_structure/POSCAR-82-230-prim-24
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-10 b/python/test/data/virtual_structure/POSCAR-83-221-10
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-10
rename to python/test/data/virtual_structure/POSCAR-83-221-10
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-10 b/python/test/data/virtual_structure/POSCAR-84-223-10
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-10
rename to python/test/data/virtual_structure/POSCAR-84-223-10
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-10 b/python/test/data/virtual_structure/POSCAR-85-222-10
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-10
rename to python/test/data/virtual_structure/POSCAR-85-222-10
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-10 b/python/test/data/virtual_structure/POSCAR-86-224-10
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-10
rename to python/test/data/virtual_structure/POSCAR-86-224-10
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-12 b/python/test/data/virtual_structure/POSCAR-88-230-conv-12
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-12
rename to python/test/data/virtual_structure/POSCAR-88-230-conv-12
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-10 b/python/test/data/virtual_structure/POSCAR-88-230-prim-10
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-10
rename to python/test/data/virtual_structure/POSCAR-88-230-prim-10
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-12 b/python/test/data/virtual_structure/POSCAR-89-221-12
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-12
rename to python/test/data/virtual_structure/POSCAR-89-221-12
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-12 b/python/test/data/virtual_structure/POSCAR-89-222-12
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-12
rename to python/test/data/virtual_structure/POSCAR-89-222-12
diff --git a/test/data/virtual_structure/poscar-222/POSCAR-31 b/python/test/data/virtual_structure/POSCAR-9-222-31
similarity index 100%
rename from test/data/virtual_structure/poscar-222/POSCAR-31
rename to python/test/data/virtual_structure/POSCAR-9-222-31
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-31 b/python/test/data/virtual_structure/POSCAR-9-223-31
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-31
rename to python/test/data/virtual_structure/POSCAR-9-223-31
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-43 b/python/test/data/virtual_structure/POSCAR-9-227-43
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-43
rename to python/test/data/virtual_structure/POSCAR-9-227-43
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-41 b/python/test/data/virtual_structure/POSCAR-9-230-conv-41
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-41
rename to python/test/data/virtual_structure/POSCAR-9-230-conv-41
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-42 b/python/test/data/virtual_structure/POSCAR-9-230-conv-42
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-42
rename to python/test/data/virtual_structure/POSCAR-9-230-conv-42
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-30 b/python/test/data/virtual_structure/POSCAR-9-230-prim-30
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-30
rename to python/test/data/virtual_structure/POSCAR-9-230-prim-30
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-31 b/python/test/data/virtual_structure/POSCAR-9-230-prim-31
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-31
rename to python/test/data/virtual_structure/POSCAR-9-230-prim-31
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-30 b/python/test/data/virtual_structure/POSCAR-9-bcc-30
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-30
rename to python/test/data/virtual_structure/POSCAR-9-bcc-30
diff --git a/test/data/virtual_structure/poscars-1/POSCAR-31 b/python/test/data/virtual_structure/POSCAR-9-bcc-31
similarity index 100%
rename from test/data/virtual_structure/poscars-1/POSCAR-31
rename to python/test/data/virtual_structure/POSCAR-9-bcc-31
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-67 b/python/test/data/virtual_structure/POSCAR-91-227-67
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-67
rename to python/test/data/virtual_structure/POSCAR-91-227-67
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-35 b/python/test/data/virtual_structure/POSCAR-92-227-35
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-35
rename to python/test/data/virtual_structure/POSCAR-92-227-35
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-35 b/python/test/data/virtual_structure/POSCAR-92-230-conv-35
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-35
rename to python/test/data/virtual_structure/POSCAR-92-230-conv-35
diff --git a/test/data/virtual_structure/poscar-223/POSCAR-12 b/python/test/data/virtual_structure/POSCAR-93-223-12
similarity index 100%
rename from test/data/virtual_structure/poscar-223/POSCAR-12
rename to python/test/data/virtual_structure/POSCAR-93-223-12
diff --git a/test/data/virtual_structure/poscar-224/POSCAR-12 b/python/test/data/virtual_structure/POSCAR-93-224-12
similarity index 100%
rename from test/data/virtual_structure/poscar-224/POSCAR-12
rename to python/test/data/virtual_structure/POSCAR-93-224-12
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-36 b/python/test/data/virtual_structure/POSCAR-95-227-36
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-36
rename to python/test/data/virtual_structure/POSCAR-95-227-36
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-32 b/python/test/data/virtual_structure/POSCAR-95-230-conv-32
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-32
rename to python/test/data/virtual_structure/POSCAR-95-230-conv-32
diff --git a/test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-69 b/python/test/data/virtual_structure/POSCAR-96-227-69
similarity index 100%
rename from test/data/virtual_structure/poscar_Fd-3m_unit/POSCAR-69
rename to python/test/data/virtual_structure/POSCAR-96-227-69
diff --git a/test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-14 b/python/test/data/virtual_structure/POSCAR-98-230-conv-14
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_unit/POSCAR-14
rename to python/test/data/virtual_structure/POSCAR-98-230-conv-14
diff --git a/test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-12 b/python/test/data/virtual_structure/POSCAR-98-230-prim-12
similarity index 100%
rename from test/data/virtual_structure/poscar_Ia-3d_primitive/POSCAR-12
rename to python/test/data/virtual_structure/POSCAR-98-230-prim-12
diff --git a/test/data/virtual_structure/poscar-221/POSCAR-13 b/python/test/data/virtual_structure/POSCAR-99-221-13
similarity index 100%
rename from test/data/virtual_structure/poscar-221/POSCAR-13
rename to python/test/data/virtual_structure/POSCAR-99-221-13
diff --git a/python/test/delaunay_lattices.dat b/python/test/delaunay_lattices.dat
new file mode 100644
index 0000000..777efe1
--- /dev/null
+++ b/python/test/delaunay_lattices.dat
@@ -0,0 +1,3136 @@
+# This file contains a set of reduced lattice parameters used as references.
+#
+# Three rows correspond basis vectors, a, b, c
+#
+# 1
+ 10.3499951298926707 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.3499951298926707 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.3499951298926707
+# 2
+ 7.2659965810434937 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.2659965810434937 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.2659965810434937
+# 3
+ 12.1539942810353114 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.1539942810353114 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.1539942810353114
+# 4
+ 18.7499911773417942 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 18.7499911773417942 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.7499911773417942
+# 5
+ 10.1453952261655171 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1453952261655171 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1453952261655171
+# 6
+ 10.2499951769468431 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.2499951769468431 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.2499951769468431
+# 7
+ 7.8399963109525155 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8399963109525155 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.8399963109525155
+# 8
+ 12.7529939991807950 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.7529939991807950 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.7529939991807950
+# 9
+ 10.9299948569784409 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9299948569784409 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.9299948569784409
+# 10
+ 8.4189960385088316 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4189960385088316 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4189960385088316
+# 11
+ 7.4869964770537605 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4869964770537605 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4869964770537605
+# 12
+ 5.4499974355473464 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4499974355473464 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.4499974355473464
+# 13
+ 5.6239973536730803 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6239973536730803 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6239973536730803
+# 14
+ 5.6239973536730803 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6239973536730803 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6239973536730803
+# 15
+ 10.9799948334513537 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9799948334513537 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.9799948334513537
+# 16
+ 11.0299948099242631 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.0299948099242631 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.0299948099242631
+# 17
+ 4.3999979296162053 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.3999979296162053 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.3999979296162053
+# 18
+ 6.3099970308814211 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3099970308814211 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3099970308814211
+# 19
+ 9.5429955096198782 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5429955096198782 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.5429955096198782
+# 20
+ 7.4229965071684347 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4229965071684347 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4229965071684347
+# 21
+ 19.9099906315133381 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 19.9099906315133381 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.9099906315133381
+# 22
+ 15.6989926129647372 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.6989926129647372 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.6989926129647372
+# 23
+ 9.6887954410148893 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.6887954410148893 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.6887954410148893
+# 24
+ 6.7149968403120077 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.7149968403120077 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7149968403120077
+# 25
+ 6.7149968403120077 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.7149968403120077 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7149968403120077
+# 26
+ 10.2799951628305930 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.2799951628305930 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.2799951628305930
+# 27
+ 7.9359962657805072 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.9359962657805072 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.9359962657805072
+# 28
+ 21.7599897610110631 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 21.7599897610110631 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 21.7599897610110631
+# 29
+ 12.3149942052780883 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.3149942052780883 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.3149942052780883
+# 30
+ 5.3929974623682275 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.3929974623682275 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3929974623682275
+# 31
+ 8.3199960850924626 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3199960850924626 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3199960850924626
+# 32
+ 7.1759966233922485 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1759966233922485 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.1759966233922485
+# 33
+ 7.5769964347050003 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.5769964347050003 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.5769964347050003
+# 34
+ 12.6999940241195048 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.6999940241195048 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6999940241195048
+# 35
+ 10.1679952155312687 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1679952155312687 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1679952155312687
+# 36
+ 8.2939960973265503 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2939960973265503 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2939960973265503
+# 37
+ 6.0259971645152861 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.0259971645152861 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.0259971645152861
+# 38
+ 17.3439918389235253 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 17.3439918389235253 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.3439918389235253
+# 39
+ 12.1409942871523580 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.1409942871523580 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.1409942871523580
+# 40
+ 9.8179953802208928 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.8179953802208928 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.8179953802208928
+# 41
+ 8.5339959843965243 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5339959843965243 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.5339959843965243
+# 42
+ 9.6379954649184096 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.6379954649184096 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.6379954649184096
+# 43
+ 5.7949972732104360 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7949972732104360 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.7949972732104360
+# 44
+ 10.9899948287459370 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9899948287459370 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.9899948287459370
+# 45
+ 16.2559923508729689 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 16.2559923508729689 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.2559923508729689
+# 46
+ 6.6699968614863874 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.6699968614863874 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.6699968614863874
+# 47
+ 10.2999951534197578 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.2999951534197578 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.2999951534197578
+# 48
+ 4.9039976924631548 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9039976924631548 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.9039976924631548
+# 49
+ 4.9039976924631548 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9039976924631548 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.9039976924631548
+# 50
+ 9.9899952992877097 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.9899952992877097 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.9899952992877097
+# 51
+ 8.1929961448512696 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.1929961448512696 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.1929961448512696
+# 52
+ 25.0599882082232170 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 25.0599882082232170 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 25.0599882082232170
+# 53
+ 10.0459952729373647 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0459952729373647 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0459952729373647
+# 54
+ 10.1299952334118579 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1299952334118579 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1299952334118579
+# 55
+ 23.2549890575511107 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 23.2549890575511107 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.2549890575511107
+# 56
+ 15.7049926101414830 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.7049926101414830 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.7049926101414830
+# 57
+ 21.8099897374839671 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 21.8099897374839671 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 21.8099897374839671
+# 58
+ 18.2699914032018427 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 18.2699914032018427 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.2699914032018427
+# 59
+ 6.2209970727596406 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2209970727596406 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.2209970727596406
+# 60
+ 12.6019940702325997 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.6019940702325997 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6019940702325997
+# 61
+ 12.3759941765750430 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.3759941765750430 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.3759941765750430
+# 62
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 63
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 64
+ 0.0000000000000000 0.0000000000000000 3.8919981686514271
+ 15.9359925014463339 0.0000000000000000 0.0000000000000000
+ -7.9679962507231625 13.8009743407708498 0.0000000000000000
+# 65
+ 3.5549983272240024 -6.1574377235743452 -0.0000000000000000
+ -7.1099966544480102 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -19.3399908997221459
+# 66
+ 4.8544977157549702 -8.4082366889146698 -0.0000000000000000
+ -9.7089954315099458 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -19.3429908983105179
+# 67
+ 3.5549983272240024 -6.1574377235743452 -0.0000000000000000
+ -7.1099966544480102 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -19.2999909185438199
+# 68
+ 5.2562975266912852 -9.1041743759279381 -0.0000000000000000
+-10.5125950533825776 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -14.9375929712352438
+# 69
+ -0.0000000000000000 -0.0000000000000000 -13.0359938660174706
+ 8.6949959086392958 -15.0601746853667855 -0.0000000000000000
+-17.3899918172786023 -0.0000000000000000 -0.0000000000000000
+# 70
+ 6.3199970261760088 0.0000000000000000 0.0000000000000000
+ -3.1599985130880044 5.4732779765105271 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.2899909232492348
+# 71
+ 3.0989985417910493 -5.3676229269639650 -0.0000000000000000
+ -6.1979970835821048 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -18.7269911881642592
+# 72
+ 7.1329966436255470 0.0000000000000000 0.0000000000000000
+ -3.5664983218127717 6.1773562984888608 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4139965114033100
+# 73
+ 0.0000000000000000 0.0000000000000000 5.2239975418897897
+ 9.2249956592521620 0.0000000000000000 0.0000000000000000
+ -4.6124978296260792 7.9890805907135478 0.0000000000000000
+# 74
+ -0.0000000000000000 -0.0000000000000000 -3.9874981237146900
+ 5.1371475827563362 -8.8978006193136228 -0.0000000000000000
+-10.2742951655126777 -0.0000000000000000 -0.0000000000000000
+# 75
+ 0.0000000000000000 0.0000000000000000 9.8799953510473006
+ 12.3199942029253826 0.0000000000000000 0.0000000000000000
+ -6.1599971014626886 10.6694279542103985 0.0000000000000000
+# 76
+ 0.0000000000000000 0.0000000000000000 9.1380957001422392
+ 12.6520940466584602 0.0000000000000000 0.0000000000000000
+ -6.3260470233292274 10.9570348554760866 0.0000000000000000
+# 77
+ 2.7294987156562356 -4.7276304547105985 -0.0000000000000000
+ -5.4589974313124738 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -6.1789970925224003
+# 78
+ -0.0000000000000000 -0.0000000000000000 -3.7429982387621501
+ 3.2089984900314534 -5.5581484261462890 -0.0000000000000000
+ -6.4179969800629095 -0.0000000000000000 -0.0000000000000000
+# 79
+ -0.0000000000000000 -0.0000000000000000 -9.9499953181093730
+ 5.8349972543887612 -10.1065117066262431 -0.0000000000000000
+-11.6699945087775347 -0.0000000000000000 -0.0000000000000000
+# 80
+ 6.3412970161534687 0.0000000000000000 0.0000000000000000
+ -3.1706485080767317 5.4917243089313610 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.4621969592649675
+# 81
+ 0.0000000000000000 0.0000000000000000 6.9071967498738802
+ 7.2212966020767100 0.0000000000000000 0.0000000000000000
+ -3.6106483010383532 6.2538263056606782 0.0000000000000000
+# 82
+ 5.2059975503595384 -9.0170522613018402 -0.0000000000000000
+-10.4119951007190821 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -15.1839928552937504
+# 83
+ 4.8189977324592039 0.0000000000000000 0.0000000000000000
+ -2.4094988662295993 4.1733744570892739 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.5919968981886443
+# 84
+ 2.4499988471726595 -4.2435224817882276 -0.0000000000000000
+ -4.8999976943453252 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -5.3799974684852732
+# 85
+ 4.4282979162998792 0.0000000000000000 0.0000000000000000
+ -2.2141489581499387 3.8350184910413914 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3679970035900002
+# 86
+ 5.2408975339376269 -9.0775008060424121 -0.0000000000000000
+-10.4817950678752645 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -11.1749947416957092
+# 87
+ 5.3099975014231919 0.0000000000000000 0.0000000000000000
+ -2.6549987507115946 4.5985927302643805 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2499932947797596
+# 88
+ 2.7289987158915041 -4.7267644297143114 -0.0000000000000000
+ -5.4579974317830109 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -9.0159957575953893
+# 89
+ -0.0000000000000000 -0.0000000000000000 -10.2999951534197596
+ 9.7499954122177268 -16.8874874275245688 -0.0000000000000000
+-19.4999908244354607 -0.0000000000000000 -0.0000000000000000
+# 90
+ 3.3959984020401435 0.0000000000000000 0.0000000000000000
+ -1.6979992010200717 2.9410208873781261 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.0919976040013033
+# 91
+ -0.0000000000000000 -0.0000000000000000 -8.4525960226986268
+ 6.8589967725539891 -11.8801308990144641 -0.0000000000000000
+-13.7179935451079835 -0.0000000000000000 -0.0000000000000000
+# 92
+ 0.0000000000000000 0.0000000000000000 8.5029959989833230
+ 13.8019935055824767 0.0000000000000000 0.0000000000000000
+ -6.9009967527912330 11.9528769987022603 0.0000000000000000
+# 93
+ 4.9424976743472930 -8.5606570882605304 -0.0000000000000000
+ -9.8849953486945896 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -10.8049949157961596
+# 94
+ 3.1299985272042550 -5.4213164767335291 -0.0000000000000000
+ -6.2599970544085126 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -12.2489942363338393
+# 95
+ 0.0000000000000000 0.0000000000000000 7.6399964050608702
+ 9.9799953039931282 0.0000000000000000 0.0000000000000000
+ -4.9899976519965623 8.6429294629074516 0.0000000000000000
+# 96
+ 8.0999961886116587 0.0000000000000000 0.0000000000000000
+ -4.0499980943058276 7.0148024698948266 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.3399937229727694
+# 97
+ 0.0000000000000000 0.0000000000000000 2.8365986652612101
+ 2.9064986323703392 0.0000000000000000 0.0000000000000000
+ -1.4532493161851689 2.5171016516974420 0.0000000000000000
+# 98
+ 2.7239987182442129 -4.7181041797514780 -0.0000000000000000
+ -5.4479974364884285 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -8.0909961928465304
+# 99
+ 0.0000000000000000 0.0000000000000000 5.6579973376746597
+ 6.1199971202843626 0.0000000000000000 0.0000000000000000
+ -3.0599985601421800 5.3000729772538673 0.0000000000000000
+# 100
+ 9.2179956625459525 0.0000000000000000 0.0000000000000000
+ -4.6089978312729745 7.9830184157395632 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.0419915104853708
+# 101
+ -0.0000000000000000 -0.0000000000000000 -6.1369971122851501
+ 4.0769980816011984 -7.0615678196941225 -0.0000000000000000
+ -8.1539961632024003 -0.0000000000000000 -0.0000000000000000
+# 102
+ -0.0000000000000000 -0.0000000000000000 -3.8569981851203901
+ 4.8249977296359523 -8.3571412141339536 -0.0000000000000000
+ -9.6499954592719082 -0.0000000000000000 -0.0000000000000000
+# 103
+ 4.5960978373429686 0.0000000000000000 0.0000000000000000
+ -2.2980489186714834 3.9803374854177300 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.9299957980619808
+# 104
+ 5.2804975153041767 -9.1460899857480538 -0.0000000000000000
+-10.5609950306083586 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -13.5219936373341696
+# 105
+ 0.0000000000000000 0.0000000000000000 3.8439981912374299
+ 3.9599981366545900 0.0000000000000000 0.0000000000000000
+ -1.9799990683272899 3.4294589852819102 0.0000000000000000
+# 106
+ 0.0000000000000000 0.0000000000000000 5.8529972459190196
+ 11.2569947031112800 0.0000000000000000 0.0000000000000000
+ -5.6284973515556400 9.7488433831612404 0.0000000000000000
+# 107
+ 10.4569950795447006 0.0000000000000000 0.0000000000000000
+ -5.2284975397723503 9.0560233861345907 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2379933004262593
+# 108
+ -0.0000000000000000 -0.0000000000000000 -9.3407956047634304
+ 4.8841477018033999 -8.4595919711942695 -0.0000000000000000
+ -9.7682954036068192 -0.0000000000000000 -0.0000000000000000
+# 109
+ 0.0000000000000000 0.0000000000000000 6.0839971372238697
+ 8.4899960051003607 0.0000000000000000 0.0000000000000000
+ -4.2449980025501803 7.3525522184453100 0.0000000000000000
+# 110
+ 9.7489954126882701 0.0000000000000000 0.0000000000000000
+ -4.8744977063441404 8.4428776887660000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.4699922501770288
+# 111
+ 1.7934991560833300 -3.1064316616682399 -0.0000000000000000
+ -3.5869983121666702 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -15.4919927103668797
+# 112
+ 3.4699983672200498 0.0000000000000000 0.0000000000000000
+ -1.7349991836100300 3.0051067371030902 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 28.4499866130866188
+# 113
+ -0.0000000000000000 -4.1293980569448125 -0.0000000000000000
+ -4.1604980423109605 -0.0000000000000000 -0.0000000000000000
+ 1.4636598779478052 -0.0000000000000000 -7.2753263255789911
+# 114
+ -0.0192362783949727 5.0120607273357765 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2140961349228423
+ 8.7534958811126096 0.0000000000000000 0.0000000000000000
+# 115
+ 0.0000000000000000 7.3439965443412314 0.0000000000000000
+ -4.3146051628917297 0.0000000000000000 10.9420608705358156
+ 11.8809944094932192 0.0000000000000000 0.0000000000000000
+# 116
+ 0.0000000000000000 3.8299981978250193 0.0000000000000000
+ -2.0057067389242573 0.0000000000000000 6.3612890682370393
+ 10.5142873698927684 0.0000000000000000 6.3612890682370393
+# 117
+ 2.4344899442270513 -0.0000000000000000 -7.7684668590611343
+ -0.0000000000000000 -11.2049947275794572 -0.0000000000000000
+-12.8619939478917384 -0.0000000000000000 -0.0000000000000000
+# 118
+ -0.2213964213055486 6.9674800963360299 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.6699954498610730
+ 10.9429948508613997 0.0000000000000000 0.0000000000000000
+# 119
+ 0.0000000000000000 3.2087984901255653 0.0000000000000000
+ -2.1919524756195758 0.0000000000000000 6.1584385797973074
+ 9.3991955772837876 0.0000000000000000 0.0000000000000000
+# 120
+ -3.4242907681451968 -0.0000000000000000 -5.8698437366030412
+ 3.4507059968801284 -0.0000000000000000 -5.8698437366030412
+ -0.0000000000000000 -22.5499893892830627 -0.0000000000000000
+# 121
+ 0.0000000000000000 5.4049974567217269 0.0000000000000000
+ -2.0448445973693867 0.0000000000000000 12.9252406328975358
+ 16.4529922581762413 0.0000000000000000 0.0000000000000000
+# 122
+ -2.3753536987087220 10.6441730008861644 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.0819933738307803
+ 16.6499921654795102 0.0000000000000000 0.0000000000000000
+# 123
+ -0.0000000000000000 -8.1377961708251743 -0.0000000000000000
+-14.0879933710075278 -0.0000000000000000 -0.0000000000000000
+ -4.7550272303315246 -0.0000000000000053 -26.6955687404802120
+# 124
+ -0.0000000000000000 -5.6320973498616942 -0.0000000000000000
+ -6.9354079024815132 -0.0000000000000000 -9.3759078039472250
+ 9.3425844380395358 -0.0000000000000000 -9.3759078039472250
+# 125
+ 1.3424000453009146 0.0000000000000000 9.1237692914539323
+ 10.4229950955431203 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 18.6869912069859261 0.0000000000000000
+# 126
+ -0.0000000000000000 -3.7769982227637287 -0.0000000000000000
+-12.3929941685758322 -0.0000000000000000 -0.0000000000000000
+ 5.9123807570976545 -0.0000000000000000 -14.2035825069011992
+# 127
+ -0.0000000000000000 -3.7769982227637287 -0.0000000000000000
+-12.3929941685758322 -0.0000000000000000 -0.0000000000000000
+ 5.9123807570976545 -0.0000000000000000 -14.2035825069011992
+# 128
+ 0.0000000000000000 4.1669980392524382 0.0000000000000000
+ -4.7272549381584179 0.0000000000000000 10.0459281056782022
+ 11.4066946326711829 0.0000000000000000 0.0000000000000000
+# 129
+ -0.2256254105124980 0.0000000000000000 4.8747790475873298
+ 7.0129967000905600 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5389955115020459 0.0000000000000000
+# 130
+ 2.5087734371281813 -4.3370210904945425 -0.0001864449730122
+ 2.5087734371281813 4.3370210904945425 -0.0001864449730122
+ -1.7018015993144393 0.0000000000000000 4.8033156256069098
+# 131
+ -5.0173486696776521 -0.0000000000000000 0.0000856455606025
+ 1.7014607643680149 -0.0000000000000000 -4.8030263272331233
+ -0.0000000000000000 -8.6736545281190569 -0.0000000000000000
+# 132
+ 0.0000000000000000 8.4229960366266621 0.0000000000000000
+ -2.0520515828621373 0.0000000000000000 10.2230773734968192
+ 13.2899937464998619 0.0000000000000000 0.0000000000000000
+# 133
+ -4.8589977136375353 -0.0000000000000000 -0.0000000000000000
+ 0.5498746159809801 -0.0000000000000000 -5.8170658220020517
+ -0.0000000000000000 -6.7559968210197967 -0.0000000000000000
+# 134
+ -0.0000000000000000 -7.6279964107073726 -0.0000000000000000
+-11.5259945765355472 -0.0000000000000000 -0.0000000000000000
+ 4.3627821523573518 -0.0000000000000000 -11.2946738742120942
+# 135
+ 0.0000000000000000 6.5669969099521888 0.0000000000000000
+ -0.5056791540554380 0.0000000000000000 7.9930162784914316
+ 9.7019954348037398 0.0000000000000000 0.0000000000000000
+# 136
+ -5.0699976143532197 -0.0000000000000000 -0.0000000000000000
+ -2.2121897782558544 -0.0000000000000000 -5.7823347551418776
+ -0.0000000000000000 -13.8299934924073078 -0.0000000000000000
+# 137
+ 0.3494222389301833 -0.0000000000000000 -7.1444569386362717
+ -0.0000000000000000 -9.9939952974055384 -0.0000000000000000
+-11.1929947332259569 -0.0000000000000000 -0.0000000000000000
+# 138
+ -5.1896717218247641 -0.0000000000000000 0.0189686341521314
+ -2.5948358609123821 4.5638432339973001 0.0094843170760657
+ 0.2840727811367046 -0.0000000000000000 -10.3538966582196892
+# 139
+ 5.1896717218247641 0.0000000000000000 -0.0189686341521314
+ 0.0000000000000000 9.1276864679946002 0.0000000000000000
+ -0.2840727811367046 0.0000000000000000 10.3538966582196892
+# 140
+ -0.0925408600059566 0.0000000000000000 5.0491496501145567
+ 9.4129955707903132 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.5219945784177114 0.0000000000000000
+# 141
+ 10.7049949628503391 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.7339949492046287 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 31.6299851167637804
+# 142
+ 5.6099973602606639 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6699973320281556 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0499957415969732
+# 143
+ 0.0000000000000000 0.0000000000000000 4.3299979625541329
+ 7.0499966826805140 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8499963062470979 0.0000000000000000
+# 144
+ -0.0000000000000000 -0.0000000000000000 -5.0639976171764731
+ -0.0000000000000000 -8.3339960785048817 -0.0000000000000000
+-13.9949934147679116 -0.0000000000000000 -0.0000000000000000
+# 145
+ 7.3489965419885257 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.5149964638785907 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.8939962855432588
+# 146
+ 3.5183598274731080 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.6304070168529856 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.3802740221553069
+# 147
+ 4.8089977371646224 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.9569967264408987 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4659960163933636
+# 148
+ 0.0000000000000000 5.0499976237640496 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2399961227358105
+ 8.7399958874649197 0.0000000000000000 0.0000000000000000
+# 149
+ 0.0000000000000000 0.0000000000000000 3.7999982119412707
+ 6.3859969951202533 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4299950922493281 0.0000000000000000
+# 150
+ -6.5079969377141520 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -6.5179969330087353
+ -0.0000000000000000 -15.1639928647045803 -0.0000000000000000
+# 151
+ -0.0000000000000000 -0.0000000000000000 -5.8307972563650434
+ -0.0000000000000000 -12.8889939351871110 -0.0000000000000000
+-13.3379937239138560 -0.0000000000000000 -0.0000000000000000
+# 152
+-10.1739952127080233 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -10.1739952127080233
+ -0.0000000000000000 -10.1749952122374818 -0.0000000000000000
+# 153
+ 0.0000000000000000 0.0000000000000000 6.0439971560455348
+ 8.3459960728583766 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 17.6459916968199053 0.0000000000000000
+# 154
+ -7.0509966822099734 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -7.2849965721032000
+ -0.0000000000000000 -9.9679953096396261 -0.0000000000000000
+# 155
+ 0.0000000000000000 0.0000000000000000 12.8849939370692823
+ 15.8719925315610091 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.9219925080339237 0.0000000000000000
+# 156
+ -2.9189986264885719 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -3.0659985573189306
+ -0.0000000000000000 -5.6179973564963293 -0.0000000000000000
+# 157
+ 0.0000000000000000 5.7675972861032818 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.8488972478482379
+ 8.2032961400046887 0.0000000000000000 0.0000000000000000
+# 158
+ 0.0000000000000000 0.0000000000000000 4.0099981131274962
+ 11.1499947534592501 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.5099945840642164 0.0000000000000000
+# 159
+ -0.0000000000000000 -0.0000000000000000 -7.4452964966753532
+ -0.0000000000000000 -8.1759961528504821 -0.0000000000000000
+ -8.6489959302842170 -0.0000000000000000 -0.0000000000000000
+# 160
+ 0.0000000000000000 0.0000000000000000 9.1609956893668372
+ 13.0279938697818114 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.0369938655469326 0.0000000000000000
+# 161
+ 0.0000000000000000 0.0000000000000000 8.4167960395440211
+ 13.7939935093468105 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 23.8999887540516731 0.0000000000000000
+# 162
+ 0.0000000000000000 6.2579970553495956 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.2029966106876246
+ 7.9549962568402135 0.0000000000000000 0.0000000000000000
+# 163
+ -5.1847975603350243 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -5.1915975571353430
+ -0.0000000000000000 -6.0979971306362835 -0.0000000000000000
+# 164
+ -0.0000000000000000 -6.7899968050213744 -0.0000000000000000
+-11.2269947172275355 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -21.1859900311020368
+# 165
+ 0.0000000000000000 0.0000000000000000 5.2589975254208268
+ 6.4719969546536564 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.7239949539100490 0.0000000000000000
+# 166
+ 0.0000000000000000 0.0000000000000000 7.6379964060019541
+ 8.8619958300588255 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1869952065909786 0.0000000000000000
+# 167
+ 4.4809978915023265 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6719963900035326 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.3289932576069656
+# 168
+ 4.6539978100985975 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.9359967363222745 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.8789958220596148
+# 169
+ -0.0000000000000000 -4.9149976872871965 -0.0000000000000000
+ -5.7429972976786114 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -9.3609955952584816
+# 170
+ 10.3880951119650256 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4193950972370697 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.7006949648736676
+# 171
+ -5.8839972313322217 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -8.2199961321466422
+ -0.0000000000000000 -11.7679944626644364 -0.0000000000000000
+# 172
+ 0.0000000000000000 0.0000000000000000 4.0556376957516145
+ 4.1085543821297383 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.5910714829032733 0.0000000000000000
+# 173
+ -0.0000000000000000 -4.8139977348119158 -0.0000000000000000
+ -5.4559974327241001 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -11.7869944537241444
+# 174
+ -6.9989967066781427 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -9.0939957208931332
+ -0.0000000000000000 -13.8479934839375538 -0.0000000000000000
+# 175
+ 0.0000000000000000 0.0000000000000000 5.9199972143927173
+ 10.8899948758001148 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.0299943393824957 0.0000000000000000
+# 176
+ 0.0000000000000000 0.0000000000000000 7.9459962610750843
+ 10.3479951308337537 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.5219950489594840 0.0000000000000000
+# 177
+ 0.0000000000000000 3.6199982966387871 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.1299980566624841
+ 19.3999908714896421 0.0000000000000000 0.0000000000000000
+# 178
+ 0.0000000000000000 0.0000000000000000 5.3209974962472355
+ 14.3579932439612499 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 16.8249920831346991 0.0000000000000000
+# 179
+ -0.0000000000000000 -0.0000000000000000 -7.7459963551834408
+ -0.0000000000000000 -17.9429915570690071 -0.0000000000000000
+-35.2929833931692798 -0.0000000000000000 -0.0000000000000000
+# 180
+ 0.0000000000000000 9.9799953039931264 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.5499936241590007
+ 17.2799918690381986 0.0000000000000000 0.0000000000000000
+# 181
+ 0.0000000000000000 0.0000000000000000 5.8759972350965510
+ 12.0729943191491973 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 19.0229910488838918 0.0000000000000000
+# 182
+ 0.0000000000000000 0.0000000000000000 4.7729977541041260
+ 5.8069972675639372 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 14.5819931385598949 0.0000000000000000
+# 183
+ -0.0000000000000000 -0.0000000000000000 -4.4759978938550322
+ -0.0000000000000000 -6.9469967311463154 -0.0000000000000000
+-18.8499911302876164 -0.0000000000000000 -0.0000000000000000
+# 184
+ -4.1479980481927319 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -6.7169968393709247
+ -0.0000000000000000 -11.9679943685560808 -0.0000000000000000
+# 185
+ -5.4199974496635983 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -5.5269973993156309
+ -0.0000000000000000 -38.5799818464984696 -0.0000000000000000
+# 186
+ 0.0000000000000000 0.0000000000000000 5.5359973950807557
+ 11.5685945564904653 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 16.4416922634933620 0.0000000000000000
+# 187
+ 0.0000000000000000 0.0000000000000000 3.5799983154604620
+ 9.5399955110315044 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.8499953651635526 0.0000000000000000
+# 188
+ -5.0859976068245558 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -5.8989972242740931
+ -0.0000000000000000 -10.2379951825933500 -0.0000000000000000
+# 189
+ 0.0000000000000000 0.0000000000000000 9.0409957458318519
+ 11.0619947948669299 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1749947416957092 0.0000000000000000
+# 190
+ 0.0000000000000000 7.5799964332933758 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0399952757606190
+ 10.2299951863576855 0.0000000000000000 0.0000000000000000
+# 191
+ 5.3119975004821116 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.3629974764844848 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.8689944151397189
+# 192
+ 0.0000000000000000 8.1569961617907758 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.5799945511262887
+ 39.2939815105316441 0.0000000000000000 0.0000000000000000
+# 193
+ 0.0000000000000000 0.0000000000000000 10.5729950249618572
+ 11.1819947384019152 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 22.8729892372980714 0.0000000000000000
+# 194
+ -3.6519982815814536 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -5.3619974769550245
+ -0.0000000000000000 -5.6519973404979131 -0.0000000000000000
+# 195
+ -4.3609979479673342 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -9.7199954263339876
+ -0.0000000000000000 -15.7799925748508532 -0.0000000000000000
+# 196
+ 0.0000000000000000 0.0000000000000000 5.5719973781412513
+ 11.1029947755747180 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 18.9239910954675281 0.0000000000000000
+# 197
+ 5.9199972143927173 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4699946028858850 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.1599933371285243
+# 198
+ -0.0000000000000000 -5.0899976049423854 -0.0000000000000000
+-11.4199946264129721 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -21.9499896716081295
+# 199
+ 0.0000000000000000 0.0000000000000000 6.2099970779355989
+ 7.9799962450766673 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1899952051793541 0.0000000000000000
+# 200
+ 0.0000000000000000 0.0000000000000000 3.0049985860219754
+ 3.5849983131077505 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8489972478011802 0.0000000000000000
+# 201
+ 0.0000000000000000 0.0000000000000000 3.8339981959428484
+ 7.2899965697504880 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 25.2599881141148686 0.0000000000000000
+# 202
+ 6.3299970214705912 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3299970214705912 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.5399955110315044
+# 203
+ 0.0000000000000000 4.4792978923022444 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.0665962043277482
+ 9.3330956083865964 0.0000000000000000 0.0000000000000000
+# 204
+ 0.0000000000000000 5.1399975814152992 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2599961133249735
+ 9.5599955016206710 0.0000000000000000 0.0000000000000000
+# 205
+ -0.0000000000000000 -3.6769982698179073 -0.0000000000000000
+ -6.2169970746418057 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -7.7939963325974366
+# 206
+ 0.0000000000000000 0.0000000000000000 4.1149980637206127
+ 7.3269965523404430 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 20.0799905515212345 0.0000000000000000
+# 207
+ 5.4768974228897713 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4768974228897713 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.7962902144721653
+# 208
+ 0.0000000000000000 3.8359981950017663 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.9279957990030692
+ 16.7049921395997103 0.0000000000000000 0.0000000000000000
+# 209
+ -0.0000000000000000 -0.0000000000000000 -4.5409978632698165
+ -0.0000000000000000 -8.4099960427437086 -0.0000000000000000
+ -9.3279956107863615 -0.0000000000000000 -0.0000000000000000
+# 210
+ -2.9659986043731084 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -4.3699979437324581
+ -0.0000000000000000 -4.5219978722101111 -0.0000000000000000
+# 211
+ 8.5879959589872694 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.7659958752308338 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.3429956037282338
+# 212
+ -0.0000000000000000 -4.8929976976391139 -0.0000000000000000
+ -5.1829975611820007 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -8.4909960046298245
+# 213
+ 8.7939958620556631 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.0249957533605141 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.0659938519012169
+# 214
+ 0.0000000000000000 0.0000000000000000 3.7299982448791922
+ 7.3949965203436037 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.0149962286077052 0.0000000000000000
+# 215
+ -0.0000000000000000 -5.8099972661523083 -0.0000000000000000
+-10.1199952381172746 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -10.9499948475676057
+# 216
+ -0.0000000000000000 -5.7809972797980231 -0.0000000000000000
+ -9.9809953035225867 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -10.5219950489594840
+# 217
+ 0.0000000000000000 0.0000000000000000 3.9739981300670011
+ 11.5419945690068761 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.6899940288249251 0.0000000000000000
+# 218
+ -0.0000000000000000 -0.0000000000000000 -3.9599981366545887
+ -0.0000000000000000 -7.9149962756618821 -0.0000000000000000
+-11.2199947205213277 -0.0000000000000000 -0.0000000000000000
+# 219
+ -4.9109976891693607 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -5.4119974534279329
+ -0.0000000000000000 -12.4639941351673649 -0.0000000000000000
+# 220
+ 0.0000000000000000 7.8029963283625605 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.5659959693391912
+ 10.2729951661243870 0.0000000000000000 0.0000000000000000
+# 221
+ -5.2609975244797438 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -5.7149973108537804
+ -0.0000000000000000 -11.4249946240602647 -0.0000000000000000
+# 222
+ -6.3589970078248754 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -6.6669968628980119
+ -0.0000000000000000 -9.7649954051596080 -0.0000000000000000
+# 223
+ 0.0000000000000000 0.0000000000000000 6.9019967523206969
+ 10.8399948993272037 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 23.6929888514538227 0.0000000000000000
+# 224
+ -0.0000000000000000 -0.0000000000000000 -2.9629986057847320
+ -0.0000000000000000 -4.3319979616130500 -0.0000000000000000
+ -4.8729977070499482 -0.0000000000000000 -0.0000000000000000
+# 225
+ -0.0000000000000000 -0.0000000000000000 -2.5724917259521778
+ -0.0000000000000000 -3.8912820645002619 -0.0000000000000000
+ -4.0215465742408556 -0.0000000000000000 -0.0000000000000000
+# 226
+ -0.0000000000000000 -0.0000000000000000 -3.5629983234596674
+ -0.0000000000000000 -4.3689979442030040 -0.0000000000000000
+-11.5099945840642164 -0.0000000000000000 -0.0000000000000000
+# 227
+ 0.0000000000000000 2.8649986518978281 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.0449980966585333
+ 4.6449978143334745 0.0000000000000000 0.0000000000000000
+# 228
+ 0.0000000000000000 6.2489970595844717 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3069970322930500
+ 16.1519923998093127 0.0000000000000000 0.0000000000000000
+# 229
+ 0.0000000000000000 0.0000000000000000 8.0309962210790342
+ 9.5179955213834209 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.7489954126882719 0.0000000000000000
+# 230
+ 0.0000000000000000 0.0000000000000000 3.8726073153830898
+ 5.3672739847803426 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5883789814747589 0.0000000000000000
+# 231
+ 0.0000000000000000 0.0000000000000000 10.5369950419013616
+ 12.1989942598609371 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.0469938608415159 0.0000000000000000
+# 232
+ 5.9929971800431678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8189963208338913 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.0109962304898694
+# 233
+ -0.0000000000000000 -6.8979967542028611 -0.0000000000000000
+ -7.4899964756421369 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -10.9419948513319412
+# 234
+ 0.0000000000000000 0.0000000000000000 9.3749955886708989
+ 9.4949955322058841 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1499952240010227 0.0000000000000000
+# 235
+ -0.0000000000000000 -7.1589966313914593 -0.0000000000000000
+ -9.2009956705451632 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -9.7709954023363554
+# 236
+ -5.5689973795528749 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -7.3199965556342361
+ -0.0000000000000000 -12.7959939789474948 -0.0000000000000000
+# 237
+ -0.0000000000000000 -5.7599972896793989 -0.0000000000000000
+ -8.8999958121782399 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -13.3299937276781932
+# 238
+ -0.0000000000000000 -5.3699974731906908 -0.0000000000000000
+ -5.4059974562511863 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -13.1499938123757083
+# 239
+ 5.4649974284892231 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4709974256659706 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.2109942542144339
+# 240
+ -0.0000000000000000 -5.1410512363124861 -0.0000000000000000
+ -5.7571823508220552 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -6.8086137765895254
+# 241
+ -4.8379977235189111 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -6.1069971264014065
+ -0.0000000000000000 -8.1469961664961925 -0.0000000000000000
+# 242
+ 0.0000000000000000 0.0000000000000000 4.0599980896004100
+ 5.7599972896793989 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3799969979435005 0.0000000000000000
+# 243
+ 0.0000000000000000 3.8712981783916436 0.0000000000000000
+ -0.0511698229299495 0.0000000000000000 3.9088632500680052
+ 3.9091981605581103 0.0000000000000000 0.0000000000000000
+# 244
+ 6.3299970214705912 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4799950687222410 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.5299950451951503
+# 245
+ 0.0000000000000000 0.0000000000000000 7.0268966935500305
+ 7.0696966734108386 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 25.4922880048080103 0.0000000000000000
+# 246
+ 0.0000000000000000 0.0000000000000000 4.3739979418502930
+ 7.9699962497820849 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.7219944843093593 0.0000000000000000
+# 247
+ -0.0000000000000000 -0.0000000000000000 -8.2709961081490153
+ -0.0000000000000000 -9.9159953341078015 -0.0000000000000000
+-11.3659946518222270 -0.0000000000000000 -0.0000000000000000
+# 248
+ 0.0000000000000000 5.4899974167256769 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.6399964050608666
+ 7.7799963391850193 0.0000000000000000 0.0000000000000000
+# 249
+ -7.4099965132854750 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -7.4399964991692222
+ -0.0000000000000000 -22.2599895257401812 -0.0000000000000000
+# 250
+ 0.0000000000000000 0.0000000000000000 6.3839969960613354
+ 6.4179969800629122 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.3659946518222270 0.0000000000000000
+# 251
+ 0.0000000000000000 0.0000000000000000 6.3899969932380829
+ 10.8599948899163685 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.5999936006319153 0.0000000000000000
+# 252
+ -0.0000000000000000 -0.0000000000000000 -2.7382087115578151
+ -0.0000000000000000 -11.2607947013232241 -0.0000000000000000
+-12.4266941527185750 -0.0000000000000000 -0.0000000000000000
+# 253
+ 0.0000000000000000 0.0000000000000000 7.0389966878564731
+ 8.3559960681529581 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1859952070615201 0.0000000000000000
+# 254
+ -0.0000000000000000 -0.0000000000000000 -7.4619964888173005
+ -0.0000000000000000 -9.6029954813873726 -0.0000000000000000
+ -9.6989954362153643 -0.0000000000000000 -0.0000000000000000
+# 255
+ 0.0000000000000000 0.0000000000000000 2.8749986471924052
+ 4.7149977813955477 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.7069926092004017 0.0000000000000000
+# 256
+ -3.5419983333410485 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -3.8269981992366424
+ -0.0000000000000000 -12.6959940260016726 -0.0000000000000000
+# 257
+ -0.0000000000000000 -0.0000000000000000 -4.8579977141080768
+ -0.0000000000000000 -7.5009964704661733 -0.0000000000000000
+-15.9659924873300838 -0.0000000000000000 -0.0000000000000000
+# 258
+ 0.0000000000000000 0.0000000000000000 5.4019974581333505
+ 5.9669971922772547 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4799950687222410 0.0000000000000000
+# 259
+ 8.2701961085254432 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3114960890920688 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.6069903035457216
+# 260
+ 0.0000000000000000 5.7499972943848165 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.9499972002764601
+ 20.2299904809399713 0.0000000000000000 0.0000000000000000
+# 261
+ 0.0000000000000000 0.0000000000000000 5.6959973197940732
+ 8.2479961189714714 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4439946151199727 0.0000000000000000
+# 262
+ 5.9119972181570528 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.9449972026291711 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3879960530956250
+# 263
+ 0.0000000000000000 0.0000000000000000 3.9439981441832530
+ 17.4899917702244245 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 17.4899917702244245 0.0000000000000000
+# 264
+ 9.1969956724273310 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.1969956724273310 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.5049903515409824
+# 265
+ 3.9809981267732071 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.9809981267732071 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.3499927771838127
+# 266
+ 8.4479960248631158 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4479960248631158 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.9119929832811131
+# 267
+ 0.0000000000000000 0.0000000000000000 10.6379949943766423
+ 11.1639947468716674 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1639947468716674 0.0000000000000000
+# 268
+ 7.9799962450766673 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.9799962450766673 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.7799953981014784
+# 269
+ 0.0000000000000000 0.0000000000000000 10.6379949943766423
+ 11.1639947468716674 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1639947468716674 0.0000000000000000
+# 270
+ 10.8649948875636575 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.8649948875636575 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 28.3569866568469990
+# 271
+ 7.6289964102368302 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6289964102368302 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 29.4969861204293764
+# 272
+ 0.0000000000000000 0.0000000000000000 5.8129972647406838
+ 8.4839960079236114 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4839960079236114 0.0000000000000000
+# 273
+ 0.0000000000000000 0.0000000000000000 7.6089964196476654
+ 14.9189929799873191 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 14.9189929799873191 0.0000000000000000
+# 274
+ 0.0000000000000000 0.0000000000000000 14.6679930980933033
+ 20.3379904301214545 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 20.3379904301214545 0.0000000000000000
+# 275
+ 0.0000000000000000 0.0000000000000000 5.9849971838075025
+ 9.6929954390386115 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.6929954390386115 0.0000000000000000
+# 276
+ 0.0000000000000000 0.0000000000000000 6.3199970261760088
+ 7.6208964140482189 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6208964140482189 0.0000000000000000
+# 277
+ 0.0000000000000000 0.0000000000000000 5.2949975084813232
+ 10.1814952091789586 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1814952091789586 0.0000000000000000
+# 278
+ 5.5479973894342551 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.5479973894342551 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1699952145901857
+# 279
+ 6.3219970252349214 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3219970252349214 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6049940688209769
+# 280
+ 0.0000000000000000 0.0000000000000000 3.1344985250868156
+ 8.3279960813281289 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3279960813281289 0.0000000000000000
+# 281
+ 0.0000000000000000 0.0000000000000000 3.9999981178329143
+ 12.5999940711736826 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.5999940711736826 0.0000000000000000
+# 282
+ 0.0000000000000000 0.0000000000000000 7.3599965368125666
+ 7.8199963203633498 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8199963203633498 0.0000000000000000
+# 283
+ 6.4299969744164143 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.4299969744164143 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.6299968803080569
+# 284
+ 0.0000000000000000 0.0000000000000000 6.5979968953653971
+ 7.1669966276271246 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1669966276271246 0.0000000000000000
+# 285
+ 0.0000000000000000 0.0000000000000000 4.1009980703081945
+ 6.2609970539379711 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2609970539379711 0.0000000000000000
+# 286
+ 0.0000000000000000 0.0000000000000000 7.4899964756421369
+ 8.3799960568599605 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3799960568599605 0.0000000000000000
+# 287
+ 0.0000000000000000 0.0000000000000000 6.1889970878169809
+ 11.1869947360492095 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1869947360492095 0.0000000000000000
+# 288
+ 0.0000000000000000 0.0000000000000000 3.8219982015893534
+ 7.0699966732696797 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.0699966732696797 0.0000000000000000
+# 289
+ 0.0000000000000000 0.0000000000000000 10.2559951741235977
+ 11.4079946320594772 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4079946320594772 0.0000000000000000
+# 290
+ 0.0000000000000000 0.0000000000000000 3.1269985286158799
+ 9.8849953486945950 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.8849953486945950 0.0000000000000000
+# 291
+ 0.0000000000000000 0.0000000000000000 5.9809971856896675
+ 13.6959935554598999 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.6959935554598999 0.0000000000000000
+# 292
+ 5.7409972986196927 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7409972986196927 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.1209938260214241
+# 293
+ 0.0000000000000000 0.0000000000000000 7.1599966309209186
+ 9.5597955017147775 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5597955017147775 0.0000000000000000
+# 294
+ 7.4299965038746407 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4299965038746407 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.6099950075518112
+# 295
+ 7.0081967023491600 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.0081967023491600 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.6517959289667061
+# 296
+ 12.4639941351673649 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.4639941351673649 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 26.2229876609831365
+# 297
+ 7.1039966572712574 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1039966572712574 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 36.5969827795828024
+# 298
+ 6.5899968991297264 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5899968991297264 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.0399919819682175
+# 299
+ 4.0643712983834455 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.0643712983838070 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6346473254990181
+# 300
+ 4.6862977949000992 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.6862977949000992 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.1909956752505835
+# 301
+ 9.9619953124628751 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.9619953124628751 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.4139936881526847
+# 302
+ 7.3449965438706899 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.3449965438706899 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.3999951063655800
+# 303
+ 6.1699970967572737 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1699970967572737 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.5639959702802742
+# 304
+ 6.0803971389178173 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.0803971389178173 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3987960480137716
+# 305
+ 7.4899964756421369 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4899964756421369 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.2399937700269543
+# 306
+ 5.9969971781609965 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.9969971781609965 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 39.1909815589974500
+# 307
+ 7.4829964789359247 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4829964789359247 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.8929929922214050
+# 308
+ 9.5309955152663814 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5309955152663814 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8239939657723259
+# 309
+ 0.0000000000000000 0.0000000000000000 4.6779977988055927
+ 7.9539962573107550 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.9539962573107550 0.0000000000000000
+# 310
+ 9.3829955849065581 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.3829955849065581 0.0000000000000000
+ 0.0000000000000053 0.0000000000000053 54.5999743084192986
+# 311
+ 3.8989981653576335 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8989981653576335 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.1669980392524382
+# 312
+ 3.8071982085533707 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8071982085533707 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.6981977893006528
+# 313
+ 0.0000000000000000 0.0000000000000000 5.2149975461246667
+ 8.8699958262944900 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.8699958262944900 0.0000000000000000
+# 314
+ 8.3119960888567981 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3119960888567981 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0699952616443671
+# 315
+ 0.0000000000000000 0.0000000000000000 8.0199962262549924
+ 8.8639958291177443 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.8639958291177443 0.0000000000000000
+# 316
+ 0.0000000000000000 0.0000000000000000 5.6559973386157436
+ 10.7589949374410878 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.7589949374410878 0.0000000000000000
+# 317
+ 6.5509969174808598 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5509969174808598 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.8469967782004941
+# 318
+ 6.5139969348909057 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5139969348909057 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.8089967960810807
+# 319
+ 0.0000000000000000 0.0000000000000000 9.2369956536056641
+ 9.4159955693786834 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.4159955693786834 0.0000000000000000
+# 320
+ 0.0000000000000000 0.0000000000000000 9.0089957608891833
+ 10.6199950028463928 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.6199950028463928 0.0000000000000000
+# 321
+ 7.6179964154127893 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6179964154127893 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4999960003949475
+# 322
+ 5.6399973461444119 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6399973461444119 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0499957415969732
+# 323
+ 0.0000000000000000 0.0000000000000000 5.3079975023642811
+ 10.8389948997977434 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.8389948997977434 0.0000000000000000
+# 324
+ 7.7619963476547715 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.7619963476547715 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.7459944730163599
+# 325
+ 4.1199980613679008 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.1199980613679008 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.4749950710749467
+# 326
+ 3.5518983286826846 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.5518983286826846 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 25.6453879327680632
+# 327
+ 6.1399971108735256 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1399971108735256 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.5719950254323969
+# 328
+ 8.0549962097860348 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.0549962097860348 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.6879926181406955
+# 329
+ 3.4516983758309689 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.4516983758309689 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.6799945040721109
+# 330
+ 0.0000000000000000 0.0000000000000000 8.7499958827595030
+ 11.3799946452346461 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.3799946452346461 0.0000000000000000
+# 331
+ 0.0000000000000000 0.0000000000000000 9.0999957180698825
+ 13.6199935912210748 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.6199935912210748 0.0000000000000000
+# 332
+ 11.7822944559356912 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.7822944559356912 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.6384888770983430
+# 333
+ 5.1599975720044595 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.1599975720044595 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0699952616443671
+# 334
+ 0.0000000000000000 0.0000000000000000 5.8013972701989722
+ 5.8150972637525484 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8150972637525484 0.0000000000000000
+# 335
+ 5.4299974449581816 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4299974449581816 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0959952494102776
+# 336
+ 5.4149974520163102 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4149974520163102 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1969952018855583
+# 337
+ 0.0000000000000000 0.0000000000000000 4.7159977809250062
+ 5.6619973357924893 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6619973357924893 0.0000000000000000
+# 338
+ 0.0000000000000000 0.0000000000000000 4.2785979867399773
+ 6.4023969874033648 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.4023969874033648 0.0000000000000000
+# 339
+ 0.0000000000000000 0.0000000000000000 6.3489970125302939
+ 7.4839964784653841 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4839964784653841 0.0000000000000000
+# 340
+ 0.0000000000000000 0.0000000000000000 6.8099967956105401
+ 10.8099949134434539 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.8099949134434539 0.0000000000000000
+# 341
+ 3.3269984345075292 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.3269984345075292 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1509971056975674
+# 342
+ 3.8589981841793080 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8589981841793080 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.7099944899558590
+# 343
+ 3.2989861563198493 0.0000000000000001 0.0000000000000000
+ 0.0000000000000001 3.2989861563198493 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.7886334409887343
+# 344
+ 5.0189976383508528 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.0189976383508528 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4279960342739564
+# 345
+ 0.0000000000000000 0.0000000000000000 5.2049975508300834
+ 5.2799975155394518 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.2799975155394518 0.0000000000000000
+# 346
+ 5.5249974002567139 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.5249974002567139 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.4629917829290484
+# 347
+ 10.5659950282556494 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.5659950282556494 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 25.2199881329365390
+# 348
+ 0.0000000000000000 0.0000000000000000 5.6199973555552463
+ 10.9299948569784409 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9299948569784409 0.0000000000000000
+# 349
+ 5.7099973132064861 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7099973132064861 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.4579922558235303
+# 350
+ 0.0000000000000000 0.0000000000000000 5.1646975697929172
+ 6.5959968963064783 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5959968963064783 0.0000000000000000
+# 351
+ 7.8229963189517262 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8229963189517262 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0529957401853434
+# 352
+ 6.2679970506441780 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2679970506441780 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.7819930444515428
+# 353
+ 3.9199981554762582 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.9199981554762582 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.2199928383542424
+# 354
+ 8.4669960159228221 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4669960159228221 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.7449940029451287
+# 355
+ 12.4475941428842525 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.4475941428842525 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.9276939169771463
+# 356
+ 4.9759976585841450 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9759976585841450 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7459968257252134
+# 357
+ 5.0469976251756830 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.0469976251756830 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.4859969480660746
+# 358
+ 0.0000000000000000 0.0000000000000000 5.6199973555552463
+ 11.4839945962983041 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4839945962983041 0.0000000000000000
+# 359
+ 14.9329929733997311 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 14.9329929733997311 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.5469926844870852
+# 360
+ 3.9576830212877665 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.9576830212877665 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.9764745199193001
+# 361
+ 0.0000000000000000 0.0000000000000000 3.2789984570935329
+ 4.0189981088926210 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.0189981088926210 0.0000000000000000
+# 362
+ 8.9809957740643540 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.9809957740643540 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6379940532930934
+# 363
+ 4.1999980237245627 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.1999980237245627 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.9599962544875025
+# 364
+ 0.0000000000000000 0.0000000000000000 4.9959976491733107
+ 6.1179971212254429 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1179971212254429 0.0000000000000000
+# 365
+ 6.2099970779355989 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2099970779355989 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.0019948230994373
+# 366
+ 0.0000000000000000 0.0000000000000000 6.7129968412530898
+ 8.5159959928662783 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5159959928662783 0.0000000000000000
+# 367
+ 6.3759969998256709 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3759969998256709 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3289960808575874
+# 368
+ 0.0000000000000000 0.0000000000000000 6.1899970873464403
+ 11.3499946593508980 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.3499946593508980 0.0000000000000000
+# 369
+ 6.3123970297521268 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3123970297521268 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.5494955065613585
+# 370
+ 5.8939972266267997 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8939972266267997 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3479960719172936
+# 371
+ 0.0000000000000000 0.0000000000000000 4.1439980500749014
+ 7.1049966568007168 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1049966568007168 0.0000000000000000
+# 372
+ 7.0576966790573437 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.0576966790573437 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.9783953047459910
+# 373
+ 7.7435963563127403 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.7435963563127403 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.6402945227526224
+# 374
+ 4.2819979851401362 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.2819979851401362 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1819970911107696
+# 375
+ 0.0000000000000000 0.0000000000000000 4.8099977366940800
+ 5.0049976449384346 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.0049976449384346 0.0000000000000000
+# 376
+ 4.2819979851401362 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.2819979851401362 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1819970911107696
+# 377
+ 5.9239972125105469 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.9239972125105469 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.1299914690776909
+# 378
+ 7.3771965287192449 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.3771965287192449 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.1230928839497452
+# 379
+ 3.0199985789638522 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.0199985789638522 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3099975014231937
+# 380
+ 4.9262976819700732 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9262976819700732 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2849961015614273
+# 381
+ 0.0000000000000000 0.0000000000000000 6.0519971522811993
+ 6.1659970986394388 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1659970986394388 0.0000000000000000
+# 382
+ 5.8519972463895558 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8519972463895558 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2339933023084324
+# 383
+ 0.0000000000000000 0.0000000000000000 4.6629978058637214
+ 9.3809955858476446 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.3809955858476446 0.0000000000000000
+# 384
+ 11.7889944527830615 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.7889944527830615 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.6349888787452400
+# 385
+ 8.4269960347444961 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4269960347444961 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.4919931809086542
+# 386
+ 6.1689970972278161 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1689970972278161 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.2129970765239761
+# 387
+ 0.0000000000000000 0.0000000000000000 5.9129972176865051
+ 8.5899959580461864 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5899959580461864 0.0000000000000000
+# 388
+ 0.0000000000000000 0.0000000000000000 5.9419972040407956
+ 8.5269959876903165 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5269959876903165 0.0000000000000000
+# 389
+ 0.0000000000000000 0.0000000000000000 2.8729986481334930
+ 4.3982979304161285 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.3982979304161285 0.0000000000000000
+# 390
+ 0.0000000000000000 0.0000000000000000 2.9532986103489849
+ 4.5844978428012535 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.5844978428012535 0.0000000000000000
+# 391
+ 0.0000000000000000 0.0000000000000000 2.6888359272289208
+ 4.2266540199664249 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.2266540199664249 0.0000000000000000
+# 392
+ 4.6685978032286863 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.6685978032286863 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.2149975461246667
+# 393
+ 0.0000000000000000 0.0000000000000000 4.1099980660733237
+ 6.7539968219608788 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.7539968219608788 0.0000000000000000
+# 394
+ 0.0000000000000000 0.0000000000000000 5.4499974355473464
+ 8.0899961933170719 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.0899961933170719 0.0000000000000000
+# 395
+ 3.6399982872279524 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.6399982872279524 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.2699975202448686
+# 396
+ -0.0000000000000000 -2.2423146612608535 -0.0000000000000000
+ -2.2423146612608544 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -6.8505089201520102
+# 397
+ 0.0000000000000000 0.0000000000000000 7.6781963870861745
+ 8.4335960316389205 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4335960316389205 0.0000000000000000
+# 398
+ 4.3499979531432977 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.3499979531432977 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.7299935394614856
+# 399
+ 11.9399943817312515 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.9399943817312515 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.3999918125731838
+# 400
+ 4.1699980378408146 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.1699980378408146 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.8799948805055333
+# 401
+ 11.0759947882793401 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.0759947882793401 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 36.9329826214807682
+# 402
+ 0.0000000000000000 0.0000000000000000 5.7269973052072745
+ 11.0119948183940206 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.0119948183940206 0.0000000000000000
+# 403
+ 0.0000000000000000 0.0000000000000000 6.3288970219881859
+ 7.1771966228276014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1771966228276014 0.0000000000000000
+# 404
+ 6.9012967526500741 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.9012967526500741 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.9753906007399067
+# 405
+ 10.3299951393035059 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.3299951393035059 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.3799904103587082
+# 406
+ 12.2839942198648870 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.2839942198648870 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.5819889036839534
+# 407
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 408
+ 4.9159976868166551 0.0000000000000000 0.0000000000000000
+ 2.4574988436436009 4.2582449067250403 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.4069974557806448
+# 409
+ 5.5089974077853840 0.0000000000000000 0.0000000000000000
+ -2.3104709548280056 6.6161727417255296 0.0000000000000000
+ -1.1044014154165944 -1.5396840484579815 12.1086359754045372
+# 410
+ -0.0000000000000000 -0.0000000000000000 -6.7835968080328399
+ 3.6243982945684046 -6.2776419930584701 -0.0000000000000000
+ -7.2487965891368127 -0.0000000000000000 -0.0000000000000000
+# 411
+ 0.0000000000000000 0.0000000000000000 7.3612965362008600
+ 7.9541862572213473 0.0000000000000000 0.0000000000000000
+ -3.9770931286106719 6.8885273651867509 0.0000000000000000
+# 412
+ 6.8672967686484947 0.0000000000000000 0.0000000000000000
+ -3.4336483843242473 5.9472534569763829 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.0619919716163047
+# 413
+ 4.3367979593544508 0.0000000000000000 0.0000000000000000
+ -2.1683989796772254 3.7557772038814652 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3396960758227934
+# 414
+ 6.3459970139419166 -10.9915892528277865 -0.0000000000000000
+-12.6919940278838439 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -19.1859909721855750
+# 415
+ 0.0000000000000000 0.0000000000000000 7.4729964836413423
+ 10.5019950583703192 0.0000000000000000 0.0000000000000000
+ -5.2509975291851569 9.0949945109673394 0.0000000000000000
+# 416
+ -0.0000000000000000 -0.0000000000000000 -8.1569961617907758
+ 5.4184974503694106 -9.3851128847222434 -0.0000000000000000
+-10.8369949007388264 -0.0000000000000000 -0.0000000000000000
+# 417
+ 5.9999971767493738 0.0000000000000000 0.0000000000000000
+ -2.9999985883746869 5.1961499776998687 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.3299932571364206
+# 418
+ 0.0000000000000000 0.0000000000000000 8.8887958174483082
+ 16.9905920052129851 0.0000000000000000 0.0000000000000000
+ -8.4952960026064890 14.7142843018512330 0.0000000000000000
+# 419
+ -0.0000000000000000 -0.0000000000000000 -7.2224966015120602
+ 4.6980977893477043 -8.1373440700772512 -0.0000000000000000
+ -9.3961955786954121 -0.0000000000000000 -0.0000000000000000
+# 420
+ 7.1066966560007936 0.0000000000000000 0.0000000000000000
+ -3.5533483280003937 6.1545798410866119 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.0866919599939209
+# 421
+ -0.0000000000000000 -0.0000000000000000 -12.1339942904461520
+ 10.4869950654284434 -18.1640082720461749 -0.0000000000000000
+-20.9739901308568939 -0.0000000000000000 -0.0000000000000000
+# 422
+ 5.0219976369392230 0.0000000000000000 0.0000000000000000
+ -2.5109988184696101 4.3491775313347878 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3759969998256700
+# 423
+ 3.5754983175778952 -6.1929447484219589 -0.0000000000000000
+ -7.1509966351557939 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -8.1757961529445904
+# 424
+ 0.0000000000000000 0.0000000000000000 4.9839976548198104
+ 9.0699957321861380 0.0000000000000000 0.0000000000000000
+ -4.5349978660930672 7.8548467162896358 0.0000000000000000
+# 425
+ 0.0000000000000000 0.0000000000000000 4.7379977705730898
+ 8.6379959354601787 0.0000000000000000 0.0000000000000000
+ -4.3189979677300876 7.4807239178952418 0.0000000000000000
+# 426
+ 5.9599971955710433 0.0000000000000000 0.0000000000000000
+ -2.9799985977855203 5.1615089778485350 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.1999919066815288
+# 427
+ 5.0339976312927215 0.0000000000000000 0.0000000000000000
+ -2.5169988156463594 4.3595698312901874 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.1409933460688197
+# 428
+ 4.6019978345667685 -7.9708940657915992 -0.0000000000000000
+ -9.2039956691335405 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -24.8179883220943189
+# 429
+ 2.5179988151758175 -4.3613018812827535 -0.0000000000000000
+ -5.0359976303516376 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -11.2549947040523701
+# 430
+ 3.0099985836692680 -5.2134704776255347 -0.0000000000000000
+ -6.0199971673385386 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -17.2999918596273687
+# 431
+ 2.4566988440200292 -4.2551272167384209 -0.0000000000000000
+ -4.9133976880400603 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -5.4051974566276204
+# 432
+ -0.0000000000000000 -0.0000000000000000 -8.3999960474491306
+ 6.5199969320676479 -11.2929659515343772 -0.0000000000000000
+-13.0399938641353010 -0.0000000000000000 -0.0000000000000000
+# 433
+ -0.0000000000000000 -4.0628584299766732 -0.0000000000000000
+ -3.5185386123395599 2.0314292149883366 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -4.6155767045048108
+# 434
+ -0.0000000000000000 -0.0000000000000000 -7.3054965624570940
+ 4.6707978021934924 -8.0900591052801811 -0.0000000000000000
+ -9.3415956043869901 -0.0000000000000000 -0.0000000000000000
+# 435
+ 4.5614978536237070 -7.9007460410926491 -0.0000000000000000
+ -9.1229957072474228 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -16.9829920087891040
+# 436
+ 1.8666491216632011 -3.2331311186244847 -0.0000000000000000
+ -3.7332982433264039 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -6.0979971306362799
+# 437
+ 1.9574990789144795 -3.3904878604491593 -0.0000000000000000
+ -3.9149981578289608 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -12.7249940123559604
+# 438
+ 12.1969942608020201 0.0000000000000000 0.0000000000000000
+ -6.0984971304010074 10.5629068796675512 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.3589908907818504
+# 439
+ 0.0000000000000000 0.0000000000000000 3.9659981338313401
+ 8.7529958813478768 0.0000000000000000 0.0000000000000000
+ -4.3764979406739366 7.5803167924678236 0.0000000000000000
+# 440
+ -0.0000000000000000 -0.0000000000000000 -5.6579973376746597
+ 3.0599985601421777 -5.3000729772538655 -0.0000000000000000
+ -6.1199971202843608 -0.0000000000000000 -0.0000000000000000
+# 441
+ -0.0000000000000000 -0.0000000000000000 -9.2389956526645793
+ 6.4369969711226176 -11.1492058021513518 -0.0000000000000000
+-12.8739939422452405 -0.0000000000000000 -0.0000000000000000
+# 442
+ 5.0999976002369660 -8.8334549620897782 -0.0000000000000000
+-10.1999952004739374 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -30.3509857185867098
+# 443
+ 0.0000000000000000 0.0000000000000000 5.3679974741317729
+ 10.5629950296672739 0.0000000000000000 0.0000000000000000
+ -5.2814975148336343 9.1478220357406155 0.0000000000000000
+# 444
+ 7.8050963273744252 0.0000000000000000 0.0000000000000000
+ -2.5690227480952075 7.3701866190323218 0.0000000000000000
+ -2.5690227480952075 -3.6161021794898791 6.4221068059361670
+# 445
+ 5.4869974181373005 0.0000000000000000 0.0000000000000000
+ -2.7434987090686476 4.7518791546065291 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.1559956917195429
+# 446
+ 10.4379950884849926 0.0000000000000000 0.0000000000000000
+ -5.2189975442424963 9.0395689112052064 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 37.1499825193732036
+# 447
+ 5.1599975720044595 0.0000000000000000 0.0000000000000000
+ -2.5799987860022298 4.4686889808218870 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.5799921984174325
+# 448
+ 2.7249987177736732 -4.7198362297440486 -0.0000000000000000
+ -5.4499974355473491 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -8.1009961881411101
+# 449
+ -0.0000000000000000 -0.0000000000000000 -4.6219978251559297
+ 2.4949988259982785 -4.3214647314537205 -0.0000000000000000
+ -4.9899976519965588 -0.0000000000000000 -0.0000000000000000
+# 450
+ 2.9449986142544842 -5.1008872281087063 -0.0000000000000000
+ -5.8899972285089710 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -9.5909954870338705
+# 451
+ 5.3099975014231919 0.0000000000000000 0.0000000000000000
+ -2.6549987507115946 4.5985927302643805 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2499932947797596
+# 452
+ 2.0234990478587247 -3.5048031599585601 -0.0000000000000000
+ -4.0469980957174512 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -5.3299974920123603
+# 453
+ 0.0000000000000000 0.0000000000000000 5.0859976068245603
+ 6.2489970595844690 0.0000000000000000 0.0000000000000000
+ -3.1244985297922332 5.4117902017744104 0.0000000000000000
+# 454
+ 3.5924983095786840 -6.2223895982955897 -0.0000000000000000
+ -7.1849966191573715 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -7.3509965410474400
+# 455
+ 0.0000000000000000 0.0000000000000000 10.1399952287064394
+ 12.1899942640958123 0.0000000000000000 0.0000000000000000
+ -6.0949971320479035 10.5568447046935674 0.0000000000000000
+# 456
+ 3.1214985312038586 -5.4065940517967102 -0.0000000000000000
+ -6.2429970624077198 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -29.9999858837468700
+# 457
+ 5.4249974473108944 0.0000000000000000 0.0000000000000000
+ -2.7124987236554459 4.6981856048369668 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.8359953717511406
+# 458
+ 5.7549972920321055 -9.9679477072209135 -0.0000000000000000
+-11.5099945840642164 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000053 -0.0000000000000000 -60.5699714992849252
+# 459
+ 10.0229952837598280 0.0000000000000000 0.0000000000000000
+ -5.0114976418799113 8.6801685377476314 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 25.4709880148305494
+# 460
+ 2.4745988355973312 -4.2861309116053663 -0.0000000000000000
+ -4.9491976711946686 -0.0000000000000000 -0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -13.9979934133562907
+# 461
+ -4.7942520956467618 -1.8132449716985586 -1.4056177222130293
+ -0.9704420851364430 -5.2472757220847637 0.0319252043134948
+ -3.5658824393038788 3.4000876799267119 7.7768819934922195
+# 462
+ -2.3679063142316981 -4.4775818945618298 1.6088112683742066
+ 2.8707669848610848 -4.4155134868656560 0.7120125349826973
+ 1.2318691797983323 5.2127118273222823 7.5479009151942726
+# 463
+ 1.1892305190531447 2.6030960258193159 -0.0094870012677909
+ -0.5988630056472681 -1.2540077098048823 2.5018934392124548
+ 4.8674192630565596 -2.2235838285894269 0.0511759870943076
+# 464
+ -3.0862034428882930 0.0061740449954627 -0.0771065378323145
+ -1.7595384299272794 -1.6712253860455217 8.5174514397732199
+ -0.0055817307757720 8.9378071882876462 1.0714808471957371
+# 465
+ -1.5026702063150488 0.1235835645426292 -3.2318413332096600
+ -6.5916897368350149 -1.2428789307505870 3.0193560614309223
+ -0.3331047875897415 10.3307452998719995 0.5522385040675464
+# 466
+ -3.7668658779046247 0.2526363169248631 0.3909143489813395
+ -0.4126424943540821 -7.5129095763967930 0.0136225756754529
+ 0.6901112196345123 0.0603991507863854 7.4962532790130991
+# 467
+ 3.7484850618560537 0.5179527621527571 0.2725676000178477
+ -0.5753480695791486 -0.4393984977681776 7.4897680251595684
+ 1.1530730252948151 -7.4298996709976457 -0.4340316264888561
+# 468
+ -3.0399837305035393 0.2689430591255473 -0.3854696358687387
+ -0.7157156421771549 9.1825175792497014 -0.1995326319476954
+ 2.5380339403620287 -1.4645136298711459 -8.7915001631519925
+# 469
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 470
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 471
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 472
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 473
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 474
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 475
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 476
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 477
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 478
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 479
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 480
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 481
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 482
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 483
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 484
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 485
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 486
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 487
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 488
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 489
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 490
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 491
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 492
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 493
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 494
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 495
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 496
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 497
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 498
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 499
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 500
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 501
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 502
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 503
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 504
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 505
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 506
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 507
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 508
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 509
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 510
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 511
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 512
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 513
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 514
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 515
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 516
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 517
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 518
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 519
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 520
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 521
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 522
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 523
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 524
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 525
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 526
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 527
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 528
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 529
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 530
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 531
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 532
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 533
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 534
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 535
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 536
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 537
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 538
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 539
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 540
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 541
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 542
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 543
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 544
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 545
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 546
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 547
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 548
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 549
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 550
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 551
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 552
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 553
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 554
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 555
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 556
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 557
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 558
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 559
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 560
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 561
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 562
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 563
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 564
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 565
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 566
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 567
+ 5.0000000000000000 -5.0000000000000000 0.0000000000000000
+ -5.0000000000000000 -0.0000000000000000 -5.0000000000000000
+ 5.0000000000000000 5.0000000000000000 0.0000000000000000
+# 568
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 569
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 570
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 571
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 572
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 573
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 574
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 575
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 576
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 577
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 578
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 579
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 580
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 581
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 582
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 583
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 584
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 585
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 586
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 587
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 588
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 589
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 590
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 591
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 592
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 593
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 594
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 595
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 596
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 597
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 598
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 599
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 600
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 601
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 602
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 603
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 604
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 605
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 606
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 607
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 608
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 609
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 610
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 611
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 612
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 613
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 614
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 615
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 616
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 617
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 618
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 619
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 620
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 621
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 622
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 623
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 624
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 625
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 626
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 627
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 628
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 629
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 630
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 631
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 632
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 633
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 634
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 635
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 636
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 637
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 638
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 639
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 640
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 641
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 642
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 643
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 644
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 645
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 646
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 647
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 648
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 649
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 650
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 651
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 652
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 653
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 654
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 655
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 656
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 657
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 658
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 659
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 660
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 661
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 662
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 663
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 664
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 665
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 666
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 667
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 668
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 669
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 670
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 671
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 672
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 673
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 674
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 675
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 676
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 677
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 678
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 679
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 680
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 681
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 682
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 683
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 684
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 685
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 686
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 687
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 688
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 689
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 690
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 691
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 692
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 693
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 694
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 695
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 696
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 697
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 698
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 699
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 700
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 701
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 702
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 703
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 704
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 705
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 706
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 707
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 708
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 709
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 710
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 711
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 712
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 713
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 714
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 715
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 716
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 717
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 718
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 719
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 720
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 721
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 722
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 723
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 724
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 725
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 726
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 727
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 728
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 729
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 730
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 731
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 732
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 733
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 734
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 735
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 736
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 737
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 738
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 739
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 740
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 741
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 742
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 743
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 744
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 745
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 746
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 747
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 748
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 749
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 750
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 751
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 752
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 753
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 754
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 755
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 756
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 757
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 758
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 759
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 760
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 761
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 762
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 763
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 764
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 765
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 766
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 767
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 768
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 769
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 770
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 771
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 772
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 773
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 774
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 775
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 776
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 777
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 778
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 779
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 780
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 781
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 782
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 783
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
diff --git a/python/test/lattices.dat b/python/test/lattices.dat
new file mode 100644
index 0000000..a7358c3
--- /dev/null
+++ b/python/test/lattices.dat
@@ -0,0 +1,3136 @@
+# This file contains a set of input lattice parameters.
+#
+# Three rows correspond basis vectors, a, b, c
+#
+# 1
+ 10.3499951298926707 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.3499951298926707 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.3499951298926707
+# 2
+ 7.2659965810434937 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.2659965810434937 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.2659965810434937
+# 3
+ 12.1539942810353114 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.1539942810353114 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.1539942810353114
+# 4
+ 18.7499911773417942 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 18.7499911773417942 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.7499911773417942
+# 5
+ 10.1453952261655171 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1453952261655171 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1453952261655171
+# 6
+ 10.2499951769468431 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.2499951769468431 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.2499951769468431
+# 7
+ 7.8399963109525155 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8399963109525155 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.8399963109525155
+# 8
+ 12.7529939991807950 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.7529939991807950 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.7529939991807950
+# 9
+ 10.9299948569784409 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9299948569784409 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.9299948569784409
+# 10
+ 8.4189960385088316 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4189960385088316 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4189960385088316
+# 11
+ 7.4869964770537605 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4869964770537605 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4869964770537605
+# 12
+ 5.4499974355473464 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4499974355473464 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.4499974355473464
+# 13
+ 5.6239973536730803 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6239973536730803 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6239973536730803
+# 14
+ 5.6239973536730803 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6239973536730803 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6239973536730803
+# 15
+ 10.9799948334513537 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9799948334513537 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.9799948334513537
+# 16
+ 11.0299948099242631 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.0299948099242631 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.0299948099242631
+# 17
+ 4.3999979296162053 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.3999979296162053 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.3999979296162053
+# 18
+ 6.3099970308814211 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3099970308814211 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3099970308814211
+# 19
+ 9.5429955096198782 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5429955096198782 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.5429955096198782
+# 20
+ 7.4229965071684347 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4229965071684347 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4229965071684347
+# 21
+ 19.9099906315133381 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 19.9099906315133381 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.9099906315133381
+# 22
+ 15.6989926129647372 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.6989926129647372 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.6989926129647372
+# 23
+ 9.6887954410148893 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.6887954410148893 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.6887954410148893
+# 24
+ 6.7149968403120077 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.7149968403120077 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7149968403120077
+# 25
+ 6.7149968403120077 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.7149968403120077 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7149968403120077
+# 26
+ 10.2799951628305930 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.2799951628305930 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.2799951628305930
+# 27
+ 7.9359962657805072 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.9359962657805072 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.9359962657805072
+# 28
+ 21.7599897610110631 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 21.7599897610110631 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 21.7599897610110631
+# 29
+ 12.3149942052780883 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.3149942052780883 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.3149942052780883
+# 30
+ 5.3929974623682275 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.3929974623682275 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3929974623682275
+# 31
+ 8.3199960850924626 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3199960850924626 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3199960850924626
+# 32
+ 7.1759966233922485 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1759966233922485 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.1759966233922485
+# 33
+ 7.5769964347050003 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.5769964347050003 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.5769964347050003
+# 34
+ 12.6999940241195048 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.6999940241195048 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6999940241195048
+# 35
+ 10.1679952155312687 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1679952155312687 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1679952155312687
+# 36
+ 8.2939960973265503 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2939960973265503 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2939960973265503
+# 37
+ 6.0259971645152861 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.0259971645152861 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.0259971645152861
+# 38
+ 17.3439918389235253 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 17.3439918389235253 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.3439918389235253
+# 39
+ 12.1409942871523580 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.1409942871523580 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.1409942871523580
+# 40
+ 9.8179953802208928 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.8179953802208928 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.8179953802208928
+# 41
+ 8.5339959843965243 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5339959843965243 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.5339959843965243
+# 42
+ 9.6379954649184096 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.6379954649184096 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.6379954649184096
+# 43
+ 5.7949972732104360 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7949972732104360 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.7949972732104360
+# 44
+ 10.9899948287459370 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9899948287459370 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.9899948287459370
+# 45
+ 16.2559923508729689 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 16.2559923508729689 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.2559923508729689
+# 46
+ 6.6699968614863874 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.6699968614863874 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.6699968614863874
+# 47
+ 10.2999951534197578 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.2999951534197578 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.2999951534197578
+# 48
+ 4.9039976924631548 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9039976924631548 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.9039976924631548
+# 49
+ 4.9039976924631548 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9039976924631548 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.9039976924631548
+# 50
+ 9.9899952992877097 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.9899952992877097 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.9899952992877097
+# 51
+ 8.1929961448512696 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.1929961448512696 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.1929961448512696
+# 52
+ 25.0599882082232170 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 25.0599882082232170 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 25.0599882082232170
+# 53
+ 10.0459952729373647 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0459952729373647 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0459952729373647
+# 54
+ 10.1299952334118579 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1299952334118579 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1299952334118579
+# 55
+ 23.2549890575511107 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 23.2549890575511107 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.2549890575511107
+# 56
+ 15.7049926101414830 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.7049926101414830 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.7049926101414830
+# 57
+ 21.8099897374839671 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 21.8099897374839671 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 21.8099897374839671
+# 58
+ 18.2699914032018427 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 18.2699914032018427 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.2699914032018427
+# 59
+ 6.2209970727596406 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2209970727596406 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.2209970727596406
+# 60
+ 12.6019940702325997 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.6019940702325997 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6019940702325997
+# 61
+ 12.3759941765750430 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.3759941765750430 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.3759941765750430
+# 62
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 63
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 64
+ 15.9359925014463339 0.0000000000000000 0.0000000000000000
+ -7.9679962507231625 13.8009743407708498 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.8919981686514271
+# 65
+ 7.1099966544480102 0.0000000000000000 0.0000000000000000
+ -3.5549983272240024 6.1574377235743452 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.3399908997221459
+# 66
+ 9.7089954315099458 0.0000000000000000 0.0000000000000000
+ -4.8544977157549702 8.4082366889146698 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.3429908983105179
+# 67
+ 7.1099966544480102 0.0000000000000000 0.0000000000000000
+ -3.5549983272240024 6.1574377235743452 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.2999909185438199
+# 68
+ 10.5125950533825776 0.0000000000000000 0.0000000000000000
+ -5.2562975266912852 9.1041743759279381 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.9375929712352438
+# 69
+ 17.3899918172786023 0.0000000000000000 0.0000000000000000
+ -8.6949959086392958 15.0601746853667855 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.0359938660174706
+# 70
+ 6.3199970261760088 0.0000000000000000 0.0000000000000000
+ -3.1599985130880044 5.4732779765105271 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.2899909232492348
+# 71
+ 6.1979970835821048 0.0000000000000000 0.0000000000000000
+ -3.0989985417910493 5.3676229269639650 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.7269911881642592
+# 72
+ 7.1329966436255470 0.0000000000000000 0.0000000000000000
+ -3.5664983218127717 6.1773562984888608 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4139965114033100
+# 73
+ 9.2249956592521620 0.0000000000000000 0.0000000000000000
+ -4.6124978296260792 7.9890805907135478 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.2239975418897897
+# 74
+ 10.2742951655126777 0.0000000000000000 0.0000000000000000
+ -5.1371475827563362 8.8978006193136228 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.9874981237146900
+# 75
+ 12.3199942029253826 0.0000000000000000 0.0000000000000000
+ -6.1599971014626886 10.6694279542103985 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.8799953510473006
+# 76
+ 12.6520940466584602 0.0000000000000000 0.0000000000000000
+ -6.3260470233292274 10.9570348554760866 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.1380957001422392
+# 77
+ 5.4589974313124738 0.0000000000000000 0.0000000000000000
+ -2.7294987156562356 4.7276304547105985 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1789970925224003
+# 78
+ 6.4179969800629095 0.0000000000000000 0.0000000000000000
+ -3.2089984900314534 5.5581484261462890 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.7429982387621501
+# 79
+ 11.6699945087775347 0.0000000000000000 0.0000000000000000
+ -5.8349972543887612 10.1065117066262431 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.9499953181093730
+# 80
+ 6.3412970161534687 0.0000000000000000 0.0000000000000000
+ -3.1706485080767317 5.4917243089313610 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.4621969592649675
+# 81
+ 7.2212966020767100 0.0000000000000000 0.0000000000000000
+ -3.6106483010383532 6.2538263056606782 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.9071967498738802
+# 82
+ 10.4119951007190821 0.0000000000000000 0.0000000000000000
+ -5.2059975503595384 9.0170522613018402 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.1839928552937504
+# 83
+ 4.8189977324592039 0.0000000000000000 0.0000000000000000
+ -2.4094988662295993 4.1733744570892739 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.5919968981886443
+# 84
+ 4.8999976943453252 0.0000000000000000 0.0000000000000000
+ -2.4499988471726595 4.2435224817882276 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3799974684852732
+# 85
+ 4.4282979162998792 0.0000000000000000 0.0000000000000000
+ -2.2141489581499387 3.8350184910413914 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3679970035900002
+# 86
+ 10.4817950678752645 0.0000000000000000 0.0000000000000000
+ -5.2408975339376269 9.0775008060424121 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.1749947416957092
+# 87
+ 5.3099975014231919 0.0000000000000000 0.0000000000000000
+ -2.6549987507115946 4.5985927302643805 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2499932947797596
+# 88
+ 5.4579974317830109 0.0000000000000000 0.0000000000000000
+ -2.7289987158915041 4.7267644297143114 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0159957575953893
+# 89
+ 19.4999908244354607 0.0000000000000000 0.0000000000000000
+ -9.7499954122177268 16.8874874275245688 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.2999951534197596
+# 90
+ 3.3959984020401435 0.0000000000000000 0.0000000000000000
+ -1.6979992010200717 2.9410208873781261 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.0919976040013033
+# 91
+ 13.7179935451079835 0.0000000000000000 0.0000000000000000
+ -6.8589967725539891 11.8801308990144641 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4525960226986268
+# 92
+ 13.8019935055824767 0.0000000000000000 0.0000000000000000
+ -6.9009967527912330 11.9528769987022603 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.5029959989833230
+# 93
+ 9.8849953486945896 0.0000000000000000 0.0000000000000000
+ -4.9424976743472930 8.5606570882605304 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.8049949157961596
+# 94
+ 6.2599970544085126 0.0000000000000000 0.0000000000000000
+ -3.1299985272042550 5.4213164767335291 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.2489942363338393
+# 95
+ 9.9799953039931282 0.0000000000000000 0.0000000000000000
+ -4.9899976519965623 8.6429294629074516 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.6399964050608702
+# 96
+ 8.0999961886116587 0.0000000000000000 0.0000000000000000
+ -4.0499980943058276 7.0148024698948266 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.3399937229727694
+# 97
+ 2.9064986323703392 0.0000000000000000 0.0000000000000000
+ -1.4532493161851689 2.5171016516974420 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 2.8365986652612101
+# 98
+ 5.4479974364884285 0.0000000000000000 0.0000000000000000
+ -2.7239987182442129 4.7181041797514780 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.0909961928465304
+# 99
+ 6.1199971202843626 0.0000000000000000 0.0000000000000000
+ -3.0599985601421800 5.3000729772538673 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6579973376746597
+# 100
+ 9.2179956625459525 0.0000000000000000 0.0000000000000000
+ -4.6089978312729745 7.9830184157395632 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.0419915104853708
+# 101
+ 8.1539961632024003 0.0000000000000000 0.0000000000000000
+ -4.0769980816011984 7.0615678196941225 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1369971122851501
+# 102
+ 9.6499954592719082 0.0000000000000000 0.0000000000000000
+ -4.8249977296359523 8.3571412141339536 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.8569981851203901
+# 103
+ 4.5960978373429686 0.0000000000000000 0.0000000000000000
+ -2.2980489186714834 3.9803374854177300 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.9299957980619808
+# 104
+ 10.5609950306083586 0.0000000000000000 0.0000000000000000
+ -5.2804975153041767 9.1460899857480538 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.5219936373341696
+# 105
+ 3.9599981366545900 0.0000000000000000 0.0000000000000000
+ -1.9799990683272899 3.4294589852819102 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.8439981912374299
+# 106
+ 11.2569947031112800 0.0000000000000000 0.0000000000000000
+ -5.6284973515556400 9.7488433831612404 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.8529972459190196
+# 107
+ 10.4569950795447006 0.0000000000000000 0.0000000000000000
+ -5.2284975397723503 9.0560233861345907 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2379933004262593
+# 108
+ 9.7682954036068192 0.0000000000000000 0.0000000000000000
+ -4.8841477018033999 8.4595919711942695 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.3407956047634304
+# 109
+ 8.4899960051003607 0.0000000000000000 0.0000000000000000
+ -4.2449980025501803 7.3525522184453100 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.0839971372238697
+# 110
+ 9.7489954126882701 0.0000000000000000 0.0000000000000000
+ -4.8744977063441404 8.4428776887660000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.4699922501770288
+# 111
+ 3.5869983121666702 0.0000000000000000 0.0000000000000000
+ -1.7934991560833300 3.1064316616682399 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.4919927103668797
+# 112
+ 3.4699983672200498 0.0000000000000000 0.0000000000000000
+ -1.7349991836100300 3.0051067371030902 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 28.4499866130866188
+# 113
+ 4.1604980423109605 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.1293980569448125 0.0000000000000000
+ -1.4636598779478052 0.0000000000000000 7.2753263255789911
+# 114
+ 8.7534958811126096 0.0000000000000000 0.0000000000000000
+ -0.0192362783949727 5.0120607273357765 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2140961349228423
+# 115
+ 11.8809944094932192 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.3439965443412314 0.0000000000000000
+ -4.3146051628917297 0.0000000000000000 10.9420608705358156
+# 116
+ 12.5199941088170252 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8299981978250193 0.0000000000000000
+ -2.0057067389242573 0.0000000000000000 6.3612890682370393
+# 117
+ 12.8619939478917384 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.2049947275794572 0.0000000000000000
+ -2.4344899442270513 0.0000000000000000 7.7684668590611343
+# 118
+ 10.9429948508613997 0.0000000000000000 0.0000000000000000
+ -0.2213964213055486 6.9674800963360299 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.6699954498610730
+# 119
+ 9.3991955772837876 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.2087984901255653 0.0000000000000000
+ -2.1919524756195758 0.0000000000000000 6.1584385797973074
+# 120
+ 6.8749967650253252 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 22.5499893892830627 0.0000000000000000
+ -3.4507059968801284 0.0000000000000000 5.8698437366030412
+# 121
+ 16.4529922581762413 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4049974567217269 0.0000000000000000
+ -2.0448445973693867 0.0000000000000000 12.9252406328975358
+# 122
+ 16.6499921654795102 0.0000000000000000 0.0000000000000000
+ -2.3753536987087220 10.6441730008861644 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.0819933738307803
+# 123
+ 14.0879933710075278 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.1377961708251743 0.0000000000000000
+ -9.3329661406760032 0.0000000000000053 26.6955687404802120
+# 124
+ 16.2779923405210489 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6320973498616942 0.0000000000000000
+ -9.3425844380395358 0.0000000000000000 9.3759078039472250
+# 125
+ 10.4229950955431203 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 18.6869912069859261 0.0000000000000000
+ 1.3424000453009146 0.0000000000000000 9.1237692914539323
+# 126
+ 12.3929941685758322 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.7769982227637287 0.0000000000000000
+ -5.9123807570976545 0.0000000000000000 14.2035825069011992
+# 127
+ 12.3929941685758322 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.7769982227637287 0.0000000000000000
+ -5.9123807570976545 0.0000000000000000 14.2035825069011992
+# 128
+ 11.4066946326711829 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.1669980392524382 0.0000000000000000
+ -4.7272549381584179 0.0000000000000000 10.0459281056782022
+# 129
+ 7.0129967000905600 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5389955115020459 0.0000000000000000
+ -0.2256254105124980 0.0000000000000000 4.8747790475873298
+# 130
+ 2.5087734371281813 -4.3370210904945425 -0.0001864449730122
+ 2.5087734371281813 4.3370210904945425 -0.0001864449730122
+ -1.7018015993144393 0.0000000000000000 4.8033156256069098
+# 131
+ 5.0173486696776521 0.0000000000000000 -0.0000856455606025
+ 0.0000000000000000 8.6736545281190569 0.0000000000000000
+ -1.7014607643680149 0.0000000000000000 4.8030263272331233
+# 132
+ 13.2899937464998619 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4229960366266621 0.0000000000000000
+ -2.0520515828621373 0.0000000000000000 10.2230773734968192
+# 133
+ 4.8589977136375353 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.7559968210197967 0.0000000000000000
+ -0.5498746159809801 0.0000000000000000 5.8170658220020517
+# 134
+ 11.5259945765355472 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6279964107073726 0.0000000000000000
+ -4.3627821523573518 0.0000000000000000 11.2946738742120942
+# 135
+ 9.7019954348037398 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5669969099521888 0.0000000000000000
+ -0.5056791540554380 0.0000000000000000 7.9930162784914316
+# 136
+ 5.0699976143532197 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.8299934924073078 0.0000000000000000
+ -2.8578078360973653 0.0000000000000000 5.7823347551418776
+# 137
+ 11.1929947332259569 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.9939952974055384 0.0000000000000000
+ -0.3494222389301833 0.0000000000000000 7.1444569386362717
+# 138
+ 2.5948358609123821 -4.5638432339973001 -0.0094843170760657
+ 2.5948358609123821 4.5638432339973001 -0.0094843170760657
+ -0.2840727811367046 0.0000000000000000 10.3538966582196892
+# 139
+ 5.1896717218247641 0.0000000000000000 -0.0189686341521314
+ 0.0000000000000000 9.1276864679946002 0.0000000000000000
+ -0.2840727811367046 0.0000000000000000 10.3538966582196892
+# 140
+ 9.4129955707903132 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.5219945784177114 0.0000000000000000
+ -0.0925408600059566 0.0000000000000000 5.0491496501145567
+# 141
+ 10.7049949628503391 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.7339949492046287 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 31.6299851167637804
+# 142
+ 5.6099973602606639 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6699973320281556 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0499957415969732
+# 143
+ 7.0499966826805140 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8499963062470979 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.3299979625541329
+# 144
+ 13.9949934147679116 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3339960785048817 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.0639976171764731
+# 145
+ 7.3489965419885257 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.5149964638785907 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.8939962855432588
+# 146
+ 3.5183598274731080 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.6304070168529856 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.3802740221553069
+# 147
+ 4.8089977371646224 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.9569967264408987 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4659960163933636
+# 148
+ 8.7399958874649197 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.0499976237640496 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2399961227358105
+# 149
+ 6.3859969951202533 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4299950922493281 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.7999982119412707
+# 150
+ 6.5079969377141520 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.1639928647045803 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.5179969330087353
+# 151
+ 13.3379937239138560 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8889939351871110 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.8307972563650434
+# 152
+ 10.1739952127080233 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1749952122374818 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1739952127080233
+# 153
+ 8.3459960728583766 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 17.6459916968199053 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.0439971560455348
+# 154
+ 7.0509966822099734 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.9679953096396261 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.2849965721032000
+# 155
+ 15.8719925315610091 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.9219925080339237 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8849939370692823
+# 156
+ 2.9189986264885719 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6179973564963293 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.0659985573189306
+# 157
+ 8.2032961400046887 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7675972861032818 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.8488972478482379
+# 158
+ 11.1499947534592501 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.5099945840642164 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.0099981131274962
+# 159
+ 8.6489959302842170 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.1759961528504821 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4452964966753532
+# 160
+ 13.0279938697818114 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.0369938655469326 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.1609956893668372
+# 161
+ 13.7939935093468105 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 23.8999887540516731 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4167960395440211
+# 162
+ 7.9549962568402135 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2579970553495956 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.2029966106876246
+# 163
+ 5.1847975603350243 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.0979971306362835 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.1915975571353430
+# 164
+ 11.2269947172275355 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.7899968050213744 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 21.1859900311020368
+# 165
+ 6.4719969546536564 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.7239949539100490 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.2589975254208268
+# 166
+ 8.8619958300588255 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1869952065909786 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.6379964060019541
+# 167
+ 4.4809978915023265 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6719963900035326 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.3289932576069656
+# 168
+ 4.6539978100985975 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.9359967363222745 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.8789958220596148
+# 169
+ 5.7429972976786114 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9149976872871965 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.3609955952584816
+# 170
+ 10.3880951119650256 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4193950972370697 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.7006949648736676
+# 171
+ 5.8839972313322217 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.7679944626644364 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2199961321466422
+# 172
+ 4.1085543821297383 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.5910714829032733 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.0556376957516145
+# 173
+ 5.4559974327241001 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.8139977348119158 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.7869944537241444
+# 174
+ 6.9989967066781427 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.8479934839375538 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0939957208931332
+# 175
+ 10.8899948758001148 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.0299943393824957 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.9199972143927173
+# 176
+ 10.3479951308337537 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.5219950489594840 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.9459962610750843
+# 177
+ 19.3999908714896421 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.6199982966387871 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.1299980566624841
+# 178
+ 14.3579932439612499 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 16.8249920831346991 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3209974962472355
+# 179
+ 35.2929833931692798 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 17.9429915570690071 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.7459963551834408
+# 180
+ 17.2799918690381986 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.9799953039931264 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.5499936241590007
+# 181
+ 12.0729943191491973 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 19.0229910488838918 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.8759972350965510
+# 182
+ 5.8069972675639372 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 14.5819931385598949 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.7729977541041260
+# 183
+ 18.8499911302876164 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.9469967311463154 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.4759978938550322
+# 184
+ 4.1479980481927319 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.9679943685560808 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7169968393709247
+# 185
+ 5.4199974496635983 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 38.5799818464984696 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.5269973993156309
+# 186
+ 11.5685945564904653 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 16.4416922634933620 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.5359973950807557
+# 187
+ 9.5399955110315044 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.8499953651635526 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.5799983154604620
+# 188
+ 5.0859976068245558 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.2379951825933500 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.8989972242740931
+# 189
+ 11.0619947948669299 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1749947416957092 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0409957458318519
+# 190
+ 10.2299951863576855 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.5799964332933758 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0399952757606190
+# 191
+ 5.3119975004821116 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.3629974764844848 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.8689944151397189
+# 192
+ 39.2939815105316441 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.1569961617907758 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.5799945511262887
+# 193
+ 11.1819947384019152 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 22.8729892372980714 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.5729950249618572
+# 194
+ 3.6519982815814536 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6519973404979131 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3619974769550245
+# 195
+ 4.3609979479673342 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.7799925748508532 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.7199954263339876
+# 196
+ 11.1029947755747180 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 18.9239910954675281 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.5719973781412513
+# 197
+ 5.9199972143927173 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4699946028858850 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.1599933371285243
+# 198
+ 11.4199946264129721 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.0899976049423854 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 21.9499896716081295
+# 199
+ 7.9799962450766673 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1899952051793541 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.2099970779355989
+# 200
+ 3.5849983131077505 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8489972478011802 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.0049985860219754
+# 201
+ 7.2899965697504880 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 25.2599881141148686 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.8339981959428484
+# 202
+ 6.3299970214705912 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3299970214705912 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.5399955110315044
+# 203
+ 9.3330956083865964 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.4792978923022444 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.0665962043277482
+# 204
+ 9.5599955016206710 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.1399975814152992 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2599961133249735
+# 205
+ 6.2169970746418057 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.6769982698179073 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.7939963325974366
+# 206
+ 7.3269965523404430 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 20.0799905515212345 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.1149980637206127
+# 207
+ 5.4768974228897713 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4768974228897713 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.7962902144721653
+# 208
+ 16.7049921395997103 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8359981950017663 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.9279957990030692
+# 209
+ 9.3279956107863615 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4099960427437086 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.5409978632698165
+# 210
+ 2.9659986043731084 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.5219978722101111 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.3699979437324581
+# 211
+ 8.5879959589872694 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.7659958752308338 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.3429956037282338
+# 212
+ 5.1829975611820007 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.8929976976391139 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4909960046298245
+# 213
+ 8.7939958620556631 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.0249957533605141 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.0659938519012169
+# 214
+ 7.3949965203436037 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.0149962286077052 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.7299982448791922
+# 215
+ 10.1199952381172746 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8099972661523083 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.9499948475676057
+# 216
+ 9.9809953035225867 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7809972797980231 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.5219950489594840
+# 217
+ 11.5419945690068761 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.6899940288249251 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.9739981300670011
+# 218
+ 11.2199947205213277 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.9149962756618821 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.9599981366545887
+# 219
+ 4.9109976891693607 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.4639941351673649 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.4119974534279329
+# 220
+ 10.2729951661243870 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8029963283625605 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.5659959693391912
+# 221
+ 5.2609975244797438 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4249946240602647 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.7149973108537804
+# 222
+ 6.3589970078248754 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.7649954051596080 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.6669968628980119
+# 223
+ 10.8399948993272037 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 23.6929888514538227 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.9019967523206969
+# 224
+ 4.8729977070499482 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.3319979616130500 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 2.9629986057847320
+# 225
+ 4.0215465742408556 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8912820645002619 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 2.5724917259521778
+# 226
+ 11.5099945840642164 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.3689979442030040 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.5629983234596674
+# 227
+ 4.6449978143334745 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 2.8649986518978281 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.0449980966585333
+# 228
+ 16.1519923998093127 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2489970595844717 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3069970322930500
+# 229
+ 9.5179955213834209 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.7489954126882719 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.0309962210790342
+# 230
+ 5.3672739847803426 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5883789814747589 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.8726073153830898
+# 231
+ 12.1989942598609371 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.0469938608415159 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.5369950419013616
+# 232
+ 5.9929971800431678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8189963208338913 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.0109962304898694
+# 233
+ 7.4899964756421369 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.8979967542028611 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.9419948513319412
+# 234
+ 9.4949955322058841 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1499952240010227 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.3749955886708989
+# 235
+ 9.2009956705451632 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1589966313914593 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.7709954023363554
+# 236
+ 5.5689973795528749 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.7959939789474948 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.3199965556342361
+# 237
+ 8.8999958121782399 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7599972896793989 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.3299937276781932
+# 238
+ 5.4059974562511863 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.3699974731906908 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.1499938123757083
+# 239
+ 5.4649974284892231 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4709974256659706 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.2109942542144339
+# 240
+ 5.7571823508220552 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.1410512363124861 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.8086137765895254
+# 241
+ 4.8379977235189111 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.1469961664961925 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1069971264014065
+# 242
+ 5.7599972896793989 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3799969979435005 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.0599980896004100
+# 243
+ 3.9091981605581103 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8712981783916436 0.0000000000000000
+ -0.0511698229299495 0.0000000000000000 3.9088632500680052
+# 244
+ 6.3299970214705912 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4799950687222410 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.5299950451951503
+# 245
+ 7.0696966734108386 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 25.4922880048080103 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.0268966935500305
+# 246
+ 7.9699962497820849 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.7219944843093593 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.3739979418502930
+# 247
+ 11.3659946518222270 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.9159953341078015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2709961081490153
+# 248
+ 7.7799963391850193 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4899974167256769 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.6399964050608666
+# 249
+ 7.4099965132854750 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 22.2599895257401812 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4399964991692222
+# 250
+ 6.4179969800629122 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.3659946518222270 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3839969960613354
+# 251
+ 10.8599948899163685 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.5999936006319153 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3899969932380829
+# 252
+ 12.4266941527185750 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.2607947013232241 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 2.7382087115578151
+# 253
+ 8.3559960681529581 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1859952070615201 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.0389966878564731
+# 254
+ 9.6989954362153643 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.6029954813873726 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4619964888173005
+# 255
+ 4.7149977813955477 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.7069926092004017 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 2.8749986471924052
+# 256
+ 3.5419983333410485 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.6959940260016726 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.8269981992366424
+# 257
+ 15.9659924873300838 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.5009964704661733 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.8579977141080768
+# 258
+ 5.9669971922772547 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4799950687222410 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.4019974581333505
+# 259
+ 8.2701961085254432 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3114960890920688 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.6069903035457216
+# 260
+ 20.2299904809399713 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7499972943848165 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.9499972002764601
+# 261
+ 8.2479961189714714 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4439946151199727 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6959973197940732
+# 262
+ 5.9119972181570528 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.9449972026291711 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3879960530956250
+# 263
+ 17.4899917702244245 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 17.4899917702244245 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.9439981441832530
+# 264
+ 9.1969956724273310 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.1969956724273310 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.5049903515409824
+# 265
+ 3.9809981267732071 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.9809981267732071 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.3499927771838127
+# 266
+ 8.4479960248631158 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4479960248631158 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.9119929832811131
+# 267
+ 11.1639947468716674 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1639947468716674 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.6379949943766423
+# 268
+ 7.9799962450766673 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.9799962450766673 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.7799953981014784
+# 269
+ 11.1639947468716674 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1639947468716674 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.6379949943766423
+# 270
+ 10.8649948875636575 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.8649948875636575 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 28.3569866568469990
+# 271
+ 7.6289964102368302 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6289964102368302 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 29.4969861204293764
+# 272
+ 8.4839960079236114 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4839960079236114 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.8129972647406838
+# 273
+ 14.9189929799873191 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 14.9189929799873191 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.6089964196476654
+# 274
+ 20.3379904301214545 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 20.3379904301214545 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.6679930980933033
+# 275
+ 9.6929954390386115 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.6929954390386115 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.9849971838075025
+# 276
+ 7.6208964140482189 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6208964140482189 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3199970261760088
+# 277
+ 10.1814952091789586 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1814952091789586 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.2949975084813232
+# 278
+ 5.5479973894342551 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.5479973894342551 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1699952145901857
+# 279
+ 6.3219970252349214 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3219970252349214 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6049940688209769
+# 280
+ 8.3279960813281289 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3279960813281289 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.1344985250868156
+# 281
+ 12.5999940711736826 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.5999940711736826 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.9999981178329143
+# 282
+ 7.8199963203633498 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8199963203633498 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.3599965368125666
+# 283
+ 6.4299969744164143 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.4299969744164143 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.6299968803080569
+# 284
+ 7.1669966276271246 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1669966276271246 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.5979968953653971
+# 285
+ 6.2609970539379711 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2609970539379711 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.1009980703081945
+# 286
+ 8.3799960568599605 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3799960568599605 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4899964756421369
+# 287
+ 11.1869947360492095 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1869947360492095 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1889970878169809
+# 288
+ 7.0699966732696797 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.0699966732696797 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.8219982015893534
+# 289
+ 11.4079946320594772 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4079946320594772 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.2559951741235977
+# 290
+ 9.8849953486945950 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.8849953486945950 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.1269985286158799
+# 291
+ 13.6959935554598999 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.6959935554598999 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.9809971856896675
+# 292
+ 5.7409972986196927 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7409972986196927 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.1209938260214241
+# 293
+ 9.5597955017147775 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5597955017147775 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.1599966309209186
+# 294
+ 7.4299965038746407 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4299965038746407 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.6099950075518112
+# 295
+ 7.0081967023491600 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.0081967023491600 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.6517959289667061
+# 296
+ 12.4639941351673649 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.4639941351673649 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 26.2229876609831365
+# 297
+ 7.1039966572712574 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1039966572712574 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 36.5969827795828024
+# 298
+ 6.5899968991297264 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5899968991297264 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.0399919819682175
+# 299
+ 4.0643712983834455 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.0643712983838070 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6346473254990181
+# 300
+ 4.6862977949000992 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.6862977949000992 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.1909956752505835
+# 301
+ 9.9619953124628751 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.9619953124628751 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.4139936881526847
+# 302
+ 7.3449965438706899 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.3449965438706899 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.3999951063655800
+# 303
+ 6.1699970967572737 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1699970967572737 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.5639959702802742
+# 304
+ 6.0803971389178173 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.0803971389178173 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3987960480137716
+# 305
+ 7.4899964756421369 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4899964756421369 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.2399937700269543
+# 306
+ 5.9969971781609965 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.9969971781609965 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 39.1909815589974500
+# 307
+ 7.4829964789359247 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4829964789359247 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.8929929922214050
+# 308
+ 9.5309955152663814 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5309955152663814 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8239939657723259
+# 309
+ 7.9539962573107550 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.9539962573107550 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.6779977988055927
+# 310
+ 9.3829955849065581 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.3829955849065581 0.0000000000000000
+ 0.0000000000000053 0.0000000000000053 54.5999743084192986
+# 311
+ 3.8989981653576335 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8989981653576335 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.1669980392524382
+# 312
+ 3.8071982085533707 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8071982085533707 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.6981977893006528
+# 313
+ 8.8699958262944900 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.8699958262944900 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.2149975461246667
+# 314
+ 8.3119960888567981 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3119960888567981 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0699952616443671
+# 315
+ 8.8639958291177443 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.8639958291177443 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.0199962262549924
+# 316
+ 10.7589949374410878 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.7589949374410878 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6559973386157436
+# 317
+ 6.5509969174808598 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5509969174808598 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.8469967782004941
+# 318
+ 6.5139969348909057 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5139969348909057 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.8089967960810807
+# 319
+ 9.4159955693786834 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.4159955693786834 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.2369956536056641
+# 320
+ 10.6199950028463928 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.6199950028463928 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0089957608891833
+# 321
+ 7.6179964154127893 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6179964154127893 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4999960003949475
+# 322
+ 5.6399973461444119 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6399973461444119 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0499957415969732
+# 323
+ 10.8389948997977434 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.8389948997977434 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3079975023642811
+# 324
+ 7.7619963476547715 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.7619963476547715 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.7459944730163599
+# 325
+ 4.1199980613679008 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.1199980613679008 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.4749950710749467
+# 326
+ 3.5518983286826846 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.5518983286826846 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 25.6453879327680632
+# 327
+ 6.1399971108735256 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1399971108735256 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.5719950254323969
+# 328
+ 8.0549962097860348 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.0549962097860348 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.6879926181406955
+# 329
+ 3.4516983758309689 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.4516983758309689 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.6799945040721109
+# 330
+ 11.3799946452346461 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.3799946452346461 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.7499958827595030
+# 331
+ 13.6199935912210748 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.6199935912210748 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0999957180698825
+# 332
+ 11.7822944559356912 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.7822944559356912 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.6384888770983430
+# 333
+ 5.1599975720044595 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.1599975720044595 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0699952616443671
+# 334
+ 5.8150972637525484 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8150972637525484 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.8013972701989722
+# 335
+ 5.4299974449581816 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4299974449581816 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0959952494102776
+# 336
+ 5.4149974520163102 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4149974520163102 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1969952018855583
+# 337
+ 5.6619973357924893 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6619973357924893 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.7159977809250062
+# 338
+ 6.4023969874033648 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.4023969874033648 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.2785979867399773
+# 339
+ 7.4839964784653841 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4839964784653841 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3489970125302939
+# 340
+ 10.8099949134434539 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.8099949134434539 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.8099967956105401
+# 341
+ 3.3269984345075292 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.3269984345075292 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1509971056975674
+# 342
+ 3.8589981841793080 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8589981841793080 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.7099944899558590
+# 343
+ 3.2989861563198493 0.0000000000000001 0.0000000000000000
+ 0.0000000000000001 3.2989861563198493 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.7886334409887343
+# 344
+ 5.0189976383508528 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.0189976383508528 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4279960342739564
+# 345
+ 5.2799975155394518 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.2799975155394518 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.2049975508300834
+# 346
+ 5.5249974002567139 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.5249974002567139 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.4629917829290484
+# 347
+ 10.5659950282556494 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.5659950282556494 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 25.2199881329365390
+# 348
+ 10.9299948569784409 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9299948569784409 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6199973555552463
+# 349
+ 5.7099973132064861 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7099973132064861 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.4579922558235303
+# 350
+ 6.5959968963064783 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5959968963064783 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.1646975697929172
+# 351
+ 7.8229963189517262 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8229963189517262 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0529957401853434
+# 352
+ 6.2679970506441780 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2679970506441780 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.7819930444515428
+# 353
+ 3.9199981554762582 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.9199981554762582 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.2199928383542424
+# 354
+ 8.4669960159228221 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4669960159228221 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.7449940029451287
+# 355
+ 12.4475941428842525 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.4475941428842525 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.9276939169771463
+# 356
+ 4.9759976585841450 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9759976585841450 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7459968257252134
+# 357
+ 5.0469976251756830 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.0469976251756830 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.4859969480660746
+# 358
+ 11.4839945962983041 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4839945962983041 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6199973555552463
+# 359
+ 14.9329929733997311 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 14.9329929733997311 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.5469926844870852
+# 360
+ 3.9576830212877665 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.9576830212877665 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.9764745199193001
+# 361
+ 4.0189981088926210 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.0189981088926210 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.2789984570935329
+# 362
+ 8.9809957740643540 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.9809957740643540 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6379940532930934
+# 363
+ 4.1999980237245627 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.1999980237245627 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.9599962544875025
+# 364
+ 6.1179971212254429 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1179971212254429 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.9959976491733107
+# 365
+ 6.2099970779355989 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2099970779355989 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.0019948230994373
+# 366
+ 8.5159959928662783 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5159959928662783 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7129968412530898
+# 367
+ 6.3759969998256709 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3759969998256709 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3289960808575874
+# 368
+ 11.3499946593508980 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.3499946593508980 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1899970873464403
+# 369
+ 6.3123970297521268 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3123970297521268 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.5494955065613585
+# 370
+ 5.8939972266267997 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8939972266267997 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3479960719172936
+# 371
+ 7.1049966568007168 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1049966568007168 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.1439980500749014
+# 372
+ 7.0576966790573437 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.0576966790573437 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.9783953047459910
+# 373
+ 7.7435963563127403 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.7435963563127403 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.6402945227526224
+# 374
+ 4.2819979851401362 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.2819979851401362 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1819970911107696
+# 375
+ 5.0049976449384346 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.0049976449384346 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.8099977366940800
+# 376
+ 4.2819979851401362 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.2819979851401362 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1819970911107696
+# 377
+ 5.9239972125105469 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.9239972125105469 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.1299914690776909
+# 378
+ 7.3771965287192449 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.3771965287192449 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.1230928839497452
+# 379
+ 3.0199985789638522 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.0199985789638522 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3099975014231937
+# 380
+ 4.9262976819700732 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9262976819700732 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2849961015614273
+# 381
+ 6.1659970986394388 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1659970986394388 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.0519971522811993
+# 382
+ 5.8519972463895558 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8519972463895558 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2339933023084324
+# 383
+ 9.3809955858476446 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.3809955858476446 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.6629978058637214
+# 384
+ 11.7889944527830615 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.7889944527830615 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.6349888787452400
+# 385
+ 8.4269960347444961 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4269960347444961 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.4919931809086542
+# 386
+ 6.1689970972278161 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1689970972278161 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.2129970765239761
+# 387
+ 8.5899959580461864 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5899959580461864 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.9129972176865051
+# 388
+ 8.5269959876903165 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5269959876903165 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.9419972040407956
+# 389
+ 4.3982979304161285 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.3982979304161285 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 2.8729986481334930
+# 390
+ 4.5844978428012535 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.5844978428012535 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 2.9532986103489849
+# 391
+ 4.2266540199664249 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.2266540199664249 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 2.6888359272289208
+# 392
+ 4.6685978032286863 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.6685978032286863 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.2149975461246667
+# 393
+ 6.7539968219608788 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.7539968219608788 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.1099980660733237
+# 394
+ 8.0899961933170719 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.0899961933170719 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.4499974355473464
+# 395
+ 3.6399982872279524 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.6399982872279524 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.2699975202448686
+# 396
+ 2.2423146612608544 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 2.2423146612608535 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.8505089201520102
+# 397
+ 8.4335960316389205 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4335960316389205 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.6781963870861745
+# 398
+ 4.3499979531432977 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.3499979531432977 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.7299935394614856
+# 399
+ 11.9399943817312515 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.9399943817312515 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.3999918125731838
+# 400
+ 4.1699980378408146 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.1699980378408146 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.8799948805055333
+# 401
+ 11.0759947882793401 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.0759947882793401 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 36.9329826214807682
+# 402
+ 11.0119948183940206 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.0119948183940206 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.7269973052072745
+# 403
+ 7.1771966228276014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1771966228276014 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3288970219881859
+# 404
+ 6.9012967526500741 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.9012967526500741 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.9753906007399067
+# 405
+ 10.3299951393035059 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.3299951393035059 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.3799904103587082
+# 406
+ 12.2839942198648870 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.2839942198648870 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.5819889036839534
+# 407
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 408
+ 4.9159976868166551 0.0000000000000000 0.0000000000000000
+ -2.4584988431730541 4.2582449067250403 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.4069974557806448
+# 409
+ 5.5089974077853840 0.0000000000000000 0.0000000000000000
+ -2.3104709548280056 6.6161727417255296 0.0000000000000000
+ -1.1044014154165944 -1.5396840484579815 12.1086359754045372
+# 410
+ 7.2487965891368127 0.0000000000000000 0.0000000000000000
+ -3.6243982945684046 6.2776419930584701 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7835968080328399
+# 411
+ 7.9541862572213473 0.0000000000000000 0.0000000000000000
+ -3.9770931286106719 6.8885273651867509 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.3612965362008600
+# 412
+ 6.8672967686484947 0.0000000000000000 0.0000000000000000
+ -3.4336483843242473 5.9472534569763829 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.0619919716163047
+# 413
+ 4.3367979593544508 0.0000000000000000 0.0000000000000000
+ -2.1683989796772254 3.7557772038814652 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3396960758227934
+# 414
+ 12.6919940278838439 0.0000000000000000 0.0000000000000000
+ -6.3459970139419166 10.9915892528277865 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.1859909721855750
+# 415
+ 10.5019950583703192 0.0000000000000000 0.0000000000000000
+ -5.2509975291851569 9.0949945109673394 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4729964836413423
+# 416
+ 10.8369949007388264 0.0000000000000000 0.0000000000000000
+ -5.4184974503694106 9.3851128847222434 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.1569961617907758
+# 417
+ 5.9999971767493738 0.0000000000000000 0.0000000000000000
+ -2.9999985883746869 5.1961499776998687 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.3299932571364206
+# 418
+ 16.9905920052129851 0.0000000000000000 0.0000000000000000
+ -8.4952960026064890 14.7142843018512330 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.8887958174483082
+# 419
+ 9.3961955786954121 0.0000000000000000 0.0000000000000000
+ -4.6980977893477043 8.1373440700772512 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.2224966015120602
+# 420
+ 7.1066966560007936 0.0000000000000000 0.0000000000000000
+ -3.5533483280003937 6.1545798410866119 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.0866919599939209
+# 421
+ 20.9739901308568939 0.0000000000000000 0.0000000000000000
+-10.4869950654284434 18.1640082720461749 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.1339942904461520
+# 422
+ 5.0219976369392230 0.0000000000000000 0.0000000000000000
+ -2.5109988184696101 4.3491775313347878 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3759969998256700
+# 423
+ 7.1509966351557939 0.0000000000000000 0.0000000000000000
+ -3.5754983175778952 6.1929447484219589 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.1757961529445904
+# 424
+ 9.0699957321861380 0.0000000000000000 0.0000000000000000
+ -4.5349978660930672 7.8548467162896358 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.9839976548198104
+# 425
+ 8.6379959354601787 0.0000000000000000 0.0000000000000000
+ -4.3189979677300876 7.4807239178952418 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.7379977705730898
+# 426
+ 5.9599971955710433 0.0000000000000000 0.0000000000000000
+ -2.9799985977855203 5.1615089778485350 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.1999919066815288
+# 427
+ 5.0339976312927215 0.0000000000000000 0.0000000000000000
+ -2.5169988156463594 4.3595698312901874 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.1409933460688197
+# 428
+ 9.2039956691335405 0.0000000000000000 0.0000000000000000
+ -4.6019978345667685 7.9708940657915992 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 24.8179883220943189
+# 429
+ 5.0359976303516376 0.0000000000000000 0.0000000000000000
+ -2.5179988151758175 4.3613018812827535 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.2549947040523701
+# 430
+ 6.0199971673385386 0.0000000000000000 0.0000000000000000
+ -3.0099985836692680 5.2134704776255347 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.2999918596273687
+# 431
+ 4.9133976880400603 0.0000000000000000 0.0000000000000000
+ -2.4566988440200292 4.2551272167384209 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.4051974566276204
+# 432
+ 13.0399938641353010 0.0000000000000000 0.0000000000000000
+ -6.5199969320676479 11.2929659515343772 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3999960474491306
+# 433
+ 3.5185386123395599 -2.0314292149883366 0.0000000000000000
+ 0.0000000000000000 4.0628584299766732 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.6155767045048108
+# 434
+ 9.3415956043869901 0.0000000000000000 0.0000000000000000
+ -4.6707978021934924 8.0900591052801811 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.3054965624570940
+# 435
+ 9.1229957072474228 0.0000000000000000 0.0000000000000000
+ -4.5614978536237070 7.9007460410926491 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.9829920087891040
+# 436
+ 3.7332982433264039 0.0000000000000000 0.0000000000000000
+ -1.8666491216632011 3.2331311186244847 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.0979971306362799
+# 437
+ 3.9149981578289608 0.0000000000000000 0.0000000000000000
+ -1.9574990789144795 3.3904878604491593 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.7249940123559604
+# 438
+ 12.1969942608020201 0.0000000000000000 0.0000000000000000
+ -6.0984971304010074 10.5629068796675512 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.3589908907818504
+# 439
+ 8.7529958813478768 0.0000000000000000 0.0000000000000000
+ -4.3764979406739366 7.5803167924678236 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 3.9659981338313401
+# 440
+ 6.1199971202843608 0.0000000000000000 0.0000000000000000
+ -3.0599985601421777 5.3000729772538655 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6579973376746597
+# 441
+ 12.8739939422452405 0.0000000000000000 0.0000000000000000
+ -6.4369969711226176 11.1492058021513518 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.2389956526645793
+# 442
+ 10.1999952004739374 0.0000000000000000 0.0000000000000000
+ -5.0999976002369660 8.8334549620897782 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 30.3509857185867098
+# 443
+ 10.5629950296672739 0.0000000000000000 0.0000000000000000
+ -5.2814975148336343 9.1478220357406155 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3679974741317729
+# 444
+ 7.8050963273744252 0.0000000000000000 0.0000000000000000
+ -2.5690227480952075 7.3701866190323218 0.0000000000000000
+ -2.5690227480952075 -3.6161021794898791 6.4221068059361670
+# 445
+ 5.4869974181373005 0.0000000000000000 0.0000000000000000
+ -2.7434987090686476 4.7518791546065291 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.1559956917195429
+# 446
+ 10.4379950884849926 0.0000000000000000 0.0000000000000000
+ -5.2189975442424963 9.0395689112052064 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 37.1499825193732036
+# 447
+ 5.1599975720044595 0.0000000000000000 0.0000000000000000
+ -2.5799987860022298 4.4686889808218870 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.5799921984174325
+# 448
+ 5.4499974355473491 0.0000000000000000 0.0000000000000000
+ -2.7249987177736732 4.7198362297440486 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.1009961881411101
+# 449
+ 4.9899976519965588 0.0000000000000000 0.0000000000000000
+ -2.4949988259982785 4.3214647314537205 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.6219978251559297
+# 450
+ 5.8899972285089710 0.0000000000000000 0.0000000000000000
+ -2.9449986142544842 5.1008872281087063 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.5909954870338705
+# 451
+ 5.3099975014231919 0.0000000000000000 0.0000000000000000
+ -2.6549987507115946 4.5985927302643805 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2499932947797596
+# 452
+ 4.0469980957174512 0.0000000000000000 0.0000000000000000
+ -2.0234990478587247 3.5048031599585601 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3299974920123603
+# 453
+ 6.2489970595844690 0.0000000000000000 0.0000000000000000
+ -3.1244985297922332 5.4117902017744104 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.0859976068245603
+# 454
+ 7.1849966191573715 0.0000000000000000 0.0000000000000000
+ -3.5924983095786840 6.2223895982955897 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.3509965410474400
+# 455
+ 12.1899942640958123 0.0000000000000000 0.0000000000000000
+ -6.0949971320479035 10.5568447046935674 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1399952287064394
+# 456
+ 6.2429970624077198 0.0000000000000000 0.0000000000000000
+ -3.1214985312038586 5.4065940517967102 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 29.9999858837468700
+# 457
+ 5.4249974473108944 0.0000000000000000 0.0000000000000000
+ -2.7124987236554459 4.6981856048369668 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.8359953717511406
+# 458
+ 11.5099945840642164 0.0000000000000000 0.0000000000000000
+ -5.7549972920321055 9.9679477072209135 0.0000000000000000
+ 0.0000000000000053 0.0000000000000000 60.5699714992849252
+# 459
+ 10.0229952837598280 0.0000000000000000 0.0000000000000000
+ -5.0114976418799113 8.6801685377476314 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 25.4709880148305494
+# 460
+ 4.9491976711946686 0.0000000000000000 0.0000000000000000
+ -2.4745988355973312 4.2861309116053663 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.9979934133562907
+# 461
+ 4.7942520956467618 1.8132449716985586 1.4056177222130293
+ 0.9704420851364433 5.2472757220847637 -0.0319252043134948
+ -0.7125145139300034 -5.2812187925442569 9.2463501243322401
+# 462
+ 5.2386732990927829 0.0620684076961739 -0.8967987333915093
+ 2.3679063142316981 4.4775818945618298 -1.6088112683742066
+ 1.7347298504277189 -3.6803835541052039 9.8687247185511779
+# 463
+ 6.0566497821097043 0.3795121972298890 0.0416889858265167
+ 1.1892305190531443 2.6030960258193159 -0.0094870012677909
+ -0.5988630056472680 -1.2540077098048823 2.5018934392124548
+# 464
+ 3.0862034428882930 -0.0061740449954627 0.0771065378323145
+ -0.0055817307757720 8.9378071882876462 1.0714808471957371
+ -1.7595384299272794 -1.6712253860455217 8.5174514397732199
+# 465
+ 8.0943599431500619 1.1192953662079574 0.2124852717787376
+ -0.3331047875897422 10.3307452998719995 0.5522385040675464
+ 1.5026702063150483 -0.1235835645426292 3.2318413332096600
+# 466
+ 3.7668658779046242 -0.2526363169248627 -0.3909143489813395
+ 0.4126424943540823 7.5129095763967930 -0.0136225756754529
+ 0.6901112196345119 0.0603991507863854 7.4962532790130991
+# 467
+ 3.7484850618560537 0.5179527621527573 0.2725676000178477
+ 2.5954120365612385 7.9478524331504028 0.7065992265067038
+ 3.1731369922769055 0.0785542643845797 7.7623356251774149
+# 468
+ 3.0399837305035393 -0.2689430591255473 0.3854696358687387
+ 2.3242680883263844 8.9135745201241541 0.1859370039210433
+ 0.5019497901415106 1.1955705707455986 9.1769697990207320
+# 469
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 470
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 471
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 472
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 473
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 474
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 475
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 476
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 477
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 478
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 479
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 480
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 481
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 482
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 483
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 484
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 485
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 486
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 487
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 488
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 489
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 490
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 491
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 492
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 493
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 494
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 495
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 496
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 497
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 498
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 499
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 500
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 501
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 502
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 503
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 504
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 505
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 506
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 507
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 508
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 509
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 510
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 511
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 512
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 513
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 514
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 515
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 516
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 517
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 518
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 519
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 520
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 521
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 522
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 523
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 524
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 525
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 526
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 527
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 528
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 529
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 530
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 531
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 532
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 533
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 534
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 535
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 536
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 537
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 538
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 539
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 540
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 541
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 542
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 543
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 544
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 545
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 546
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 547
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 548
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 549
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 550
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 551
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 552
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 553
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 554
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 555
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 556
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 557
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 558
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 559
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 560
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 561
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 562
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 563
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 564
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 565
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 566
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 567
+ 0.0000000000000000 5.0000000000000000 5.0000000000000000
+ 5.0000000000000000 0.0000000000000000 5.0000000000000000
+ 5.0000000000000000 5.0000000000000000 0.0000000000000000
+# 568
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 569
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 570
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 571
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 572
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 573
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 574
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 575
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 576
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 577
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 578
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 579
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 580
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 581
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 582
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 583
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 584
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 585
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 586
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 587
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 588
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 589
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 590
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 591
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 592
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 593
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 594
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 595
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 596
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 597
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 598
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 599
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 600
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 601
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 602
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 603
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 604
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 605
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 606
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 607
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 608
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 609
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 610
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 611
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 612
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 613
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 614
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 615
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 616
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 617
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 618
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 619
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 620
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 621
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 622
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 623
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 624
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 625
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 626
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 627
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 628
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 629
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 630
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 631
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 632
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 633
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 634
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 635
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 636
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 637
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 638
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 639
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 640
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 641
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 642
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 643
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 644
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 645
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 646
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 647
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 648
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 649
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 650
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 651
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 652
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 653
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 654
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 655
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 656
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 657
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 658
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 659
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 660
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 661
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 662
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 663
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 664
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 665
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 666
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 667
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 668
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 669
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 670
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 671
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 672
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 673
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 674
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 675
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 676
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 677
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 678
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 679
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 680
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 681
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 682
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 683
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 684
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 685
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 686
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 687
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 688
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 689
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 690
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 691
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 692
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 693
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 694
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 695
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 696
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 697
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 698
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 699
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 700
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 701
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 702
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 703
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 704
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 705
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 706
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 707
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 708
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 709
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 710
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 711
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 712
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 713
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 714
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 715
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 716
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 717
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 718
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 719
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 720
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 721
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 722
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 723
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 724
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 725
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 726
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 727
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 728
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 729
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 730
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 731
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 732
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 733
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 734
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 735
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 736
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 737
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 738
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 739
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 740
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 741
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 742
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 743
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 744
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 745
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 746
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 747
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 748
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 749
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 750
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 751
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 752
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 753
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 754
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 755
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 756
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 757
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 758
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 759
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 760
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 761
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 762
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 763
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 764
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 765
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 766
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 767
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 768
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 769
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 770
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 771
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 772
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 773
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 774
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 775
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 776
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 777
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 778
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 779
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 780
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 781
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 782
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 783
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
diff --git a/python/test/niggli_lattices.dat b/python/test/niggli_lattices.dat
new file mode 100644
index 0000000..2bd21a9
--- /dev/null
+++ b/python/test/niggli_lattices.dat
@@ -0,0 +1,3136 @@
+# This file contains a set of reduced lattice parameters used as references.
+#
+# Three rows correspond basis vectors, a, b, c
+#
+# 1
+ 10.3499951298926707 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.3499951298926707 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.3499951298926707
+# 2
+ 7.2659965810434937 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.2659965810434937 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.2659965810434937
+# 3
+ 12.1539942810353114 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.1539942810353114 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.1539942810353114
+# 4
+ 18.7499911773417942 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 18.7499911773417942 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.7499911773417942
+# 5
+ 10.1453952261655171 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1453952261655171 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1453952261655171
+# 6
+ 10.2499951769468431 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.2499951769468431 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.2499951769468431
+# 7
+ 7.8399963109525155 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8399963109525155 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.8399963109525155
+# 8
+ 12.7529939991807950 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.7529939991807950 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.7529939991807950
+# 9
+ 10.9299948569784409 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9299948569784409 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.9299948569784409
+# 10
+ 8.4189960385088316 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4189960385088316 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4189960385088316
+# 11
+ 7.4869964770537605 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4869964770537605 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4869964770537605
+# 12
+ 5.4499974355473464 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4499974355473464 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.4499974355473464
+# 13
+ 5.6239973536730803 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6239973536730803 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6239973536730803
+# 14
+ 5.6239973536730803 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6239973536730803 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6239973536730803
+# 15
+ 10.9799948334513537 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9799948334513537 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.9799948334513537
+# 16
+ 11.0299948099242631 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.0299948099242631 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.0299948099242631
+# 17
+ 4.3999979296162053 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.3999979296162053 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.3999979296162053
+# 18
+ 6.3099970308814211 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3099970308814211 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3099970308814211
+# 19
+ 9.5429955096198782 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5429955096198782 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.5429955096198782
+# 20
+ 7.4229965071684347 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4229965071684347 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4229965071684347
+# 21
+ 19.9099906315133381 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 19.9099906315133381 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.9099906315133381
+# 22
+ 15.6989926129647372 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.6989926129647372 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.6989926129647372
+# 23
+ 9.6887954410148893 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.6887954410148893 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.6887954410148893
+# 24
+ 6.7149968403120077 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.7149968403120077 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7149968403120077
+# 25
+ 6.7149968403120077 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.7149968403120077 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7149968403120077
+# 26
+ 10.2799951628305930 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.2799951628305930 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.2799951628305930
+# 27
+ 7.9359962657805072 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.9359962657805072 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.9359962657805072
+# 28
+ 21.7599897610110631 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 21.7599897610110631 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 21.7599897610110631
+# 29
+ 12.3149942052780883 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.3149942052780883 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.3149942052780883
+# 30
+ 5.3929974623682275 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.3929974623682275 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3929974623682275
+# 31
+ 8.3199960850924626 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3199960850924626 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3199960850924626
+# 32
+ 7.1759966233922485 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1759966233922485 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.1759966233922485
+# 33
+ 7.5769964347050003 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.5769964347050003 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.5769964347050003
+# 34
+ 12.6999940241195048 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.6999940241195048 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6999940241195048
+# 35
+ 10.1679952155312687 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1679952155312687 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1679952155312687
+# 36
+ 8.2939960973265503 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2939960973265503 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2939960973265503
+# 37
+ 6.0259971645152861 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.0259971645152861 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.0259971645152861
+# 38
+ 17.3439918389235253 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 17.3439918389235253 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.3439918389235253
+# 39
+ 12.1409942871523580 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.1409942871523580 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.1409942871523580
+# 40
+ 9.8179953802208928 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.8179953802208928 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.8179953802208928
+# 41
+ 8.5339959843965243 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5339959843965243 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.5339959843965243
+# 42
+ 9.6379954649184096 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.6379954649184096 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.6379954649184096
+# 43
+ 5.7949972732104360 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7949972732104360 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.7949972732104360
+# 44
+ 10.9899948287459370 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9899948287459370 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.9899948287459370
+# 45
+ 16.2559923508729689 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 16.2559923508729689 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.2559923508729689
+# 46
+ 6.6699968614863874 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.6699968614863874 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.6699968614863874
+# 47
+ 10.2999951534197578 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.2999951534197578 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.2999951534197578
+# 48
+ 4.9039976924631548 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9039976924631548 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.9039976924631548
+# 49
+ 4.9039976924631548 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9039976924631548 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.9039976924631548
+# 50
+ 9.9899952992877097 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.9899952992877097 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.9899952992877097
+# 51
+ 8.1929961448512696 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.1929961448512696 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.1929961448512696
+# 52
+ 25.0599882082232170 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 25.0599882082232170 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 25.0599882082232170
+# 53
+ 10.0459952729373647 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0459952729373647 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0459952729373647
+# 54
+ 10.1299952334118579 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1299952334118579 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1299952334118579
+# 55
+ 23.2549890575511107 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 23.2549890575511107 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.2549890575511107
+# 56
+ 15.7049926101414830 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.7049926101414830 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.7049926101414830
+# 57
+ 21.8099897374839671 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 21.8099897374839671 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 21.8099897374839671
+# 58
+ 18.2699914032018427 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 18.2699914032018427 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.2699914032018427
+# 59
+ 6.2209970727596406 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2209970727596406 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.2209970727596406
+# 60
+ 12.6019940702325997 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.6019940702325997 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6019940702325997
+# 61
+ 12.3759941765750430 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.3759941765750430 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.3759941765750430
+# 62
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 63
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 64
+ 0.0000000000000000 0.0000000000000000 3.8919981686514271
+ 15.9359925014463339 0.0000000000000000 0.0000000000000000
+ -7.9679962507231625 13.8009743407708498 0.0000000000000000
+# 65
+ 7.1099966544480102 0.0000000000000000 0.0000000000000000
+ -3.5549983272240024 6.1574377235743452 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.3399908997221459
+# 66
+ 9.7089954315099458 0.0000000000000000 0.0000000000000000
+ -4.8544977157549702 8.4082366889146698 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.3429908983105179
+# 67
+ 7.1099966544480102 0.0000000000000000 0.0000000000000000
+ -3.5549983272240024 6.1574377235743452 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.2999909185438199
+# 68
+ 10.5125950533825776 0.0000000000000000 0.0000000000000000
+ -5.2562975266912852 9.1041743759279381 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.9375929712352438
+# 69
+ 0.0000000000000000 0.0000000000000000 13.0359938660174706
+ 17.3899918172786023 0.0000000000000000 0.0000000000000000
+ -8.6949959086392958 15.0601746853667855 0.0000000000000000
+# 70
+ 6.3199970261760088 0.0000000000000000 0.0000000000000000
+ -3.1599985130880044 5.4732779765105271 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.2899909232492348
+# 71
+ 6.1979970835821048 0.0000000000000000 0.0000000000000000
+ -3.0989985417910493 5.3676229269639650 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.7269911881642592
+# 72
+ 7.1329966436255470 0.0000000000000000 0.0000000000000000
+ -3.5664983218127717 6.1773562984888608 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.4139965114033100
+# 73
+ 0.0000000000000000 0.0000000000000000 5.2239975418897897
+ 9.2249956592521620 0.0000000000000000 0.0000000000000000
+ -4.6124978296260792 7.9890805907135478 0.0000000000000000
+# 74
+ 0.0000000000000000 0.0000000000000000 3.9874981237146900
+ 10.2742951655126777 0.0000000000000000 0.0000000000000000
+ -5.1371475827563362 8.8978006193136228 0.0000000000000000
+# 75
+ 0.0000000000000000 0.0000000000000000 9.8799953510473006
+ 12.3199942029253826 0.0000000000000000 0.0000000000000000
+ -6.1599971014626886 10.6694279542103985 0.0000000000000000
+# 76
+ 0.0000000000000000 0.0000000000000000 9.1380957001422392
+ 12.6520940466584602 0.0000000000000000 0.0000000000000000
+ -6.3260470233292274 10.9570348554760866 0.0000000000000000
+# 77
+ 5.4589974313124738 0.0000000000000000 0.0000000000000000
+ -2.7294987156562356 4.7276304547105985 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1789970925224003
+# 78
+ 0.0000000000000000 0.0000000000000000 3.7429982387621501
+ 6.4179969800629095 0.0000000000000000 0.0000000000000000
+ -3.2089984900314534 5.5581484261462890 0.0000000000000000
+# 79
+ 0.0000000000000000 0.0000000000000000 9.9499953181093730
+ 11.6699945087775347 0.0000000000000000 0.0000000000000000
+ -5.8349972543887612 10.1065117066262431 0.0000000000000000
+# 80
+ 6.3412970161534687 0.0000000000000000 0.0000000000000000
+ -3.1706485080767317 5.4917243089313610 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.4621969592649675
+# 81
+ 0.0000000000000000 0.0000000000000000 6.9071967498738802
+ 7.2212966020767100 0.0000000000000000 0.0000000000000000
+ -3.6106483010383532 6.2538263056606782 0.0000000000000000
+# 82
+ 10.4119951007190821 0.0000000000000000 0.0000000000000000
+ -5.2059975503595384 9.0170522613018402 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.1839928552937504
+# 83
+ 4.8189977324592039 0.0000000000000000 0.0000000000000000
+ -2.4094988662295993 4.1733744570892739 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.5919968981886443
+# 84
+ 4.8999976943453252 0.0000000000000000 0.0000000000000000
+ -2.4499988471726595 4.2435224817882276 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3799974684852732
+# 85
+ 4.4282979162998792 0.0000000000000000 0.0000000000000000
+ -2.2141489581499387 3.8350184910413914 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3679970035900002
+# 86
+ 10.4817950678752645 0.0000000000000000 0.0000000000000000
+ -5.2408975339376269 9.0775008060424121 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.1749947416957092
+# 87
+ 5.3099975014231919 0.0000000000000000 0.0000000000000000
+ -2.6549987507115946 4.5985927302643805 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2499932947797596
+# 88
+ 5.4579974317830109 0.0000000000000000 0.0000000000000000
+ -2.7289987158915041 4.7267644297143114 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0159957575953893
+# 89
+ 0.0000000000000000 0.0000000000000000 10.2999951534197596
+ 19.4999908244354607 0.0000000000000000 0.0000000000000000
+ -9.7499954122177268 16.8874874275245688 0.0000000000000000
+# 90
+ 3.3959984020401435 0.0000000000000000 0.0000000000000000
+ -1.6979992010200717 2.9410208873781261 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.0919976040013033
+# 91
+ 0.0000000000000000 0.0000000000000000 8.4525960226986268
+ 13.7179935451079835 0.0000000000000000 0.0000000000000000
+ -6.8589967725539891 11.8801308990144641 0.0000000000000000
+# 92
+ 0.0000000000000000 0.0000000000000000 8.5029959989833230
+ 13.8019935055824767 0.0000000000000000 0.0000000000000000
+ -6.9009967527912330 11.9528769987022603 0.0000000000000000
+# 93
+ 9.8849953486945896 0.0000000000000000 0.0000000000000000
+ -4.9424976743472930 8.5606570882605304 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.8049949157961596
+# 94
+ 6.2599970544085126 0.0000000000000000 0.0000000000000000
+ -3.1299985272042550 5.4213164767335291 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.2489942363338393
+# 95
+ 0.0000000000000000 0.0000000000000000 7.6399964050608702
+ 9.9799953039931282 0.0000000000000000 0.0000000000000000
+ -4.9899976519965623 8.6429294629074516 0.0000000000000000
+# 96
+ 8.0999961886116587 0.0000000000000000 0.0000000000000000
+ -4.0499980943058276 7.0148024698948266 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.3399937229727694
+# 97
+ 0.0000000000000000 0.0000000000000000 2.8365986652612101
+ 2.9064986323703392 0.0000000000000000 0.0000000000000000
+ -1.4532493161851689 2.5171016516974420 0.0000000000000000
+# 98
+ 5.4479974364884285 0.0000000000000000 0.0000000000000000
+ -2.7239987182442129 4.7181041797514780 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.0909961928465304
+# 99
+ 0.0000000000000000 0.0000000000000000 5.6579973376746597
+ 6.1199971202843626 0.0000000000000000 0.0000000000000000
+ -3.0599985601421800 5.3000729772538673 0.0000000000000000
+# 100
+ 9.2179956625459525 0.0000000000000000 0.0000000000000000
+ -4.6089978312729745 7.9830184157395632 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.0419915104853708
+# 101
+ 0.0000000000000000 0.0000000000000000 6.1369971122851501
+ 8.1539961632024003 0.0000000000000000 0.0000000000000000
+ -4.0769980816011984 7.0615678196941225 0.0000000000000000
+# 102
+ 0.0000000000000000 0.0000000000000000 3.8569981851203901
+ 9.6499954592719082 0.0000000000000000 0.0000000000000000
+ -4.8249977296359523 8.3571412141339536 0.0000000000000000
+# 103
+ 4.5960978373429686 0.0000000000000000 0.0000000000000000
+ -2.2980489186714834 3.9803374854177300 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.9299957980619808
+# 104
+ 10.5609950306083586 0.0000000000000000 0.0000000000000000
+ -5.2804975153041767 9.1460899857480538 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.5219936373341696
+# 105
+ 0.0000000000000000 0.0000000000000000 3.8439981912374299
+ 3.9599981366545900 0.0000000000000000 0.0000000000000000
+ -1.9799990683272899 3.4294589852819102 0.0000000000000000
+# 106
+ 0.0000000000000000 0.0000000000000000 5.8529972459190196
+ 11.2569947031112800 0.0000000000000000 0.0000000000000000
+ -5.6284973515556400 9.7488433831612404 0.0000000000000000
+# 107
+ 10.4569950795447006 0.0000000000000000 0.0000000000000000
+ -5.2284975397723503 9.0560233861345907 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2379933004262593
+# 108
+ 0.0000000000000000 0.0000000000000000 9.3407956047634304
+ 9.7682954036068192 0.0000000000000000 0.0000000000000000
+ -4.8841477018033999 8.4595919711942695 0.0000000000000000
+# 109
+ 0.0000000000000000 0.0000000000000000 6.0839971372238697
+ 8.4899960051003607 0.0000000000000000 0.0000000000000000
+ -4.2449980025501803 7.3525522184453100 0.0000000000000000
+# 110
+ 9.7489954126882701 0.0000000000000000 0.0000000000000000
+ -4.8744977063441404 8.4428776887660000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.4699922501770288
+# 111
+ 3.5869983121666702 0.0000000000000000 0.0000000000000000
+ -1.7934991560833300 3.1064316616682399 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.4919927103668797
+# 112
+ 3.4699983672200498 0.0000000000000000 0.0000000000000000
+ -1.7349991836100300 3.0051067371030902 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 28.4499866130866188
+# 113
+ 0.0000000000000000 -4.1293980569448125 0.0000000000000000
+ -4.1604980423109605 0.0000000000000000 0.0000000000000000
+ 1.4636598779478052 0.0000000000000000 -7.2753263255789911
+# 114
+ -0.0192362783949727 5.0120607273357765 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2140961349228423
+ 8.7534958811126096 0.0000000000000000 0.0000000000000000
+# 115
+ 0.0000000000000000 7.3439965443412314 0.0000000000000000
+ -4.3146051628917297 0.0000000000000000 10.9420608705358156
+ 11.8809944094932192 0.0000000000000000 0.0000000000000000
+# 116
+ 0.0000000000000000 -3.8299981978250193 0.0000000000000000
+ -2.0057067389242573 0.0000000000000000 6.3612890682370393
+-10.5142873698927684 0.0000000000000000 -6.3612890682370393
+# 117
+ 2.4344899442270513 0.0000000000000000 -7.7684668590611343
+ 0.0000000000000000 -11.2049947275794572 0.0000000000000000
+-12.8619939478917384 0.0000000000000000 0.0000000000000000
+# 118
+ -0.2213964213055486 6.9674800963360299 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.6699954498610730
+ 10.9429948508613997 0.0000000000000000 0.0000000000000000
+# 119
+ 0.0000000000000000 3.2087984901255653 0.0000000000000000
+ -2.1919524756195758 0.0000000000000000 6.1584385797973074
+ 9.3991955772837876 0.0000000000000000 0.0000000000000000
+# 120
+ -3.4242907681451968 0.0000000000000000 -5.8698437366030412
+ -3.4507059968801284 0.0000000000000000 5.8698437366030412
+ 0.0000000000000000 22.5499893892830627 0.0000000000000000
+# 121
+ 0.0000000000000000 5.4049974567217269 0.0000000000000000
+ -2.0448445973693867 0.0000000000000000 12.9252406328975358
+ 16.4529922581762413 0.0000000000000000 0.0000000000000000
+# 122
+ -2.3753536987087220 10.6441730008861644 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.0819933738307803
+ 16.6499921654795102 0.0000000000000000 0.0000000000000000
+# 123
+ 0.0000000000000000 8.1377961708251743 0.0000000000000000
+-14.0879933710075278 0.0000000000000000 0.0000000000000000
+ 4.7550272303315246 0.0000000000000053 26.6955687404802120
+# 124
+ 0.0000000000000000 5.6320973498616942 0.0000000000000000
+ -6.9354079024815132 0.0000000000000000 -9.3759078039472250
+ -9.3425844380395358 0.0000000000000000 9.3759078039472250
+# 125
+ 1.3424000453009146 0.0000000000000000 9.1237692914539323
+-10.4229950955431203 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -18.6869912069859261 0.0000000000000000
+# 126
+ 0.0000000000000000 -3.7769982227637287 0.0000000000000000
+-12.3929941685758322 0.0000000000000000 0.0000000000000000
+ 5.9123807570976545 0.0000000000000000 -14.2035825069011992
+# 127
+ 0.0000000000000000 -3.7769982227637287 0.0000000000000000
+-12.3929941685758322 0.0000000000000000 0.0000000000000000
+ 5.9123807570976545 0.0000000000000000 -14.2035825069011992
+# 128
+ 0.0000000000000000 4.1669980392524382 0.0000000000000000
+ -4.7272549381584179 0.0000000000000000 10.0459281056782022
+ 11.4066946326711829 0.0000000000000000 0.0000000000000000
+# 129
+ -0.2256254105124980 0.0000000000000000 4.8747790475873298
+ 7.0129967000905600 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5389955115020459 0.0000000000000000
+# 130
+ 2.5087734371281813 -4.3370210904945425 -0.0001864449730122
+ 2.5087734371281813 4.3370210904945425 -0.0001864449730122
+ -1.7018015993144393 0.0000000000000000 4.8033156256069098
+# 131
+ -5.0173486696776521 0.0000000000000000 0.0000856455606025
+ 1.7014607643680149 0.0000000000000000 -4.8030263272331233
+ 0.0000000000000000 -8.6736545281190569 0.0000000000000000
+# 132
+ 0.0000000000000000 8.4229960366266621 0.0000000000000000
+ -2.0520515828621373 0.0000000000000000 10.2230773734968192
+ 13.2899937464998619 0.0000000000000000 0.0000000000000000
+# 133
+ -4.8589977136375353 0.0000000000000000 0.0000000000000000
+ 0.5498746159809801 0.0000000000000000 -5.8170658220020517
+ 0.0000000000000000 -6.7559968210197967 0.0000000000000000
+# 134
+ 0.0000000000000000 -7.6279964107073726 0.0000000000000000
+-11.5259945765355472 0.0000000000000000 0.0000000000000000
+ 4.3627821523573518 0.0000000000000000 -11.2946738742120942
+# 135
+ 0.0000000000000000 6.5669969099521888 0.0000000000000000
+ -0.5056791540554380 0.0000000000000000 7.9930162784914316
+ 9.7019954348037398 0.0000000000000000 0.0000000000000000
+# 136
+ -5.0699976143532197 0.0000000000000000 0.0000000000000000
+ 2.2121897782558544 0.0000000000000000 5.7823347551418776
+ 0.0000000000000000 13.8299934924073078 0.0000000000000000
+# 137
+ 0.3494222389301833 0.0000000000000000 -7.1444569386362717
+ 0.0000000000000000 -9.9939952974055384 0.0000000000000000
+-11.1929947332259569 0.0000000000000000 0.0000000000000000
+# 138
+ 5.1896717218247641 0.0000000000000000 -0.0189686341521314
+ 2.5948358609123821 -4.5638432339973001 -0.0094843170760657
+ 0.2840727811367046 0.0000000000000000 -10.3538966582196892
+# 139
+ 5.1896717218247641 0.0000000000000000 -0.0189686341521314
+ 0.0000000000000000 9.1276864679946002 0.0000000000000000
+ -0.2840727811367046 0.0000000000000000 10.3538966582196892
+# 140
+ -0.0925408600059566 0.0000000000000000 5.0491496501145567
+ 9.4129955707903132 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.5219945784177114 0.0000000000000000
+# 141
+ 10.7049949628503391 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.7339949492046287 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 31.6299851167637804
+# 142
+ 5.6099973602606639 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6699973320281556 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0499957415969732
+# 143
+ 0.0000000000000000 0.0000000000000000 4.3299979625541329
+ 7.0499966826805140 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8499963062470979 0.0000000000000000
+# 144
+ 0.0000000000000000 0.0000000000000000 -5.0639976171764731
+ 0.0000000000000000 -8.3339960785048817 0.0000000000000000
+-13.9949934147679116 0.0000000000000000 0.0000000000000000
+# 145
+ 7.3489965419885257 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.5149964638785907 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.8939962855432588
+# 146
+ 3.5183598274731080 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.6304070168529856 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.3802740221553069
+# 147
+ 4.8089977371646224 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.9569967264408987 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4659960163933636
+# 148
+ 0.0000000000000000 5.0499976237640496 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2399961227358105
+ 8.7399958874649197 0.0000000000000000 0.0000000000000000
+# 149
+ 0.0000000000000000 0.0000000000000000 3.7999982119412707
+ 6.3859969951202533 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4299950922493281 0.0000000000000000
+# 150
+ -6.5079969377141520 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -6.5179969330087353
+ 0.0000000000000000 -15.1639928647045803 0.0000000000000000
+# 151
+ 0.0000000000000000 0.0000000000000000 -5.8307972563650434
+ 0.0000000000000000 -12.8889939351871110 0.0000000000000000
+-13.3379937239138560 0.0000000000000000 0.0000000000000000
+# 152
+-10.1739952127080233 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -10.1739952127080233
+ 0.0000000000000000 -10.1749952122374818 0.0000000000000000
+# 153
+ 0.0000000000000000 0.0000000000000000 6.0439971560455348
+ 8.3459960728583766 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 17.6459916968199053 0.0000000000000000
+# 154
+ -7.0509966822099734 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -7.2849965721032000
+ 0.0000000000000000 -9.9679953096396261 0.0000000000000000
+# 155
+ 0.0000000000000000 0.0000000000000000 12.8849939370692823
+ 15.8719925315610091 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.9219925080339237 0.0000000000000000
+# 156
+ -2.9189986264885719 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -3.0659985573189306
+ 0.0000000000000000 -5.6179973564963293 0.0000000000000000
+# 157
+ 0.0000000000000000 5.7675972861032818 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.8488972478482379
+ 8.2032961400046887 0.0000000000000000 0.0000000000000000
+# 158
+ 0.0000000000000000 0.0000000000000000 4.0099981131274962
+ 11.1499947534592501 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.5099945840642164 0.0000000000000000
+# 159
+ 0.0000000000000000 0.0000000000000000 -7.4452964966753532
+ 0.0000000000000000 -8.1759961528504821 0.0000000000000000
+ -8.6489959302842170 0.0000000000000000 0.0000000000000000
+# 160
+ 0.0000000000000000 0.0000000000000000 9.1609956893668372
+ 13.0279938697818114 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.0369938655469326 0.0000000000000000
+# 161
+ 0.0000000000000000 0.0000000000000000 8.4167960395440211
+ 13.7939935093468105 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 23.8999887540516731 0.0000000000000000
+# 162
+ 0.0000000000000000 6.2579970553495956 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.2029966106876246
+ 7.9549962568402135 0.0000000000000000 0.0000000000000000
+# 163
+ -5.1847975603350243 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -5.1915975571353430
+ 0.0000000000000000 -6.0979971306362835 0.0000000000000000
+# 164
+ 0.0000000000000000 -6.7899968050213744 0.0000000000000000
+-11.2269947172275355 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -21.1859900311020368
+# 165
+ 0.0000000000000000 0.0000000000000000 5.2589975254208268
+ 6.4719969546536564 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.7239949539100490 0.0000000000000000
+# 166
+ 0.0000000000000000 0.0000000000000000 7.6379964060019541
+ 8.8619958300588255 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1869952065909786 0.0000000000000000
+# 167
+ 4.4809978915023265 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6719963900035326 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.3289932576069656
+# 168
+ 4.6539978100985975 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.9359967363222745 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.8789958220596148
+# 169
+ 0.0000000000000000 -4.9149976872871965 0.0000000000000000
+ -5.7429972976786114 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -9.3609955952584816
+# 170
+ 10.3880951119650256 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4193950972370697 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.7006949648736676
+# 171
+ -5.8839972313322217 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -8.2199961321466422
+ 0.0000000000000000 -11.7679944626644364 0.0000000000000000
+# 172
+ 0.0000000000000000 0.0000000000000000 4.0556376957516145
+ 4.1085543821297383 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.5910714829032733 0.0000000000000000
+# 173
+ 0.0000000000000000 -4.8139977348119158 0.0000000000000000
+ -5.4559974327241001 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -11.7869944537241444
+# 174
+ -6.9989967066781427 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -9.0939957208931332
+ 0.0000000000000000 -13.8479934839375538 0.0000000000000000
+# 175
+ 0.0000000000000000 0.0000000000000000 5.9199972143927173
+ 10.8899948758001148 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.0299943393824957 0.0000000000000000
+# 176
+ 0.0000000000000000 0.0000000000000000 7.9459962610750843
+ 10.3479951308337537 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.5219950489594840 0.0000000000000000
+# 177
+ 0.0000000000000000 3.6199982966387871 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.1299980566624841
+ 19.3999908714896421 0.0000000000000000 0.0000000000000000
+# 178
+ 0.0000000000000000 0.0000000000000000 5.3209974962472355
+ 14.3579932439612499 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 16.8249920831346991 0.0000000000000000
+# 179
+ 0.0000000000000000 0.0000000000000000 -7.7459963551834408
+ 0.0000000000000000 -17.9429915570690071 0.0000000000000000
+-35.2929833931692798 0.0000000000000000 0.0000000000000000
+# 180
+ 0.0000000000000000 9.9799953039931264 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.5499936241590007
+ 17.2799918690381986 0.0000000000000000 0.0000000000000000
+# 181
+ 0.0000000000000000 0.0000000000000000 5.8759972350965510
+ 12.0729943191491973 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 19.0229910488838918 0.0000000000000000
+# 182
+ 0.0000000000000000 0.0000000000000000 4.7729977541041260
+ 5.8069972675639372 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 14.5819931385598949 0.0000000000000000
+# 183
+ 0.0000000000000000 0.0000000000000000 -4.4759978938550322
+ 0.0000000000000000 -6.9469967311463154 0.0000000000000000
+-18.8499911302876164 0.0000000000000000 0.0000000000000000
+# 184
+ -4.1479980481927319 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -6.7169968393709247
+ 0.0000000000000000 -11.9679943685560808 0.0000000000000000
+# 185
+ -5.4199974496635983 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -5.5269973993156309
+ 0.0000000000000000 -38.5799818464984696 0.0000000000000000
+# 186
+ 0.0000000000000000 0.0000000000000000 5.5359973950807557
+ 11.5685945564904653 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 16.4416922634933620 0.0000000000000000
+# 187
+ 0.0000000000000000 0.0000000000000000 3.5799983154604620
+ 9.5399955110315044 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.8499953651635526 0.0000000000000000
+# 188
+ -5.0859976068245558 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -5.8989972242740931
+ 0.0000000000000000 -10.2379951825933500 0.0000000000000000
+# 189
+ 0.0000000000000000 0.0000000000000000 9.0409957458318519
+ 11.0619947948669299 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1749947416957092 0.0000000000000000
+# 190
+ 0.0000000000000000 7.5799964332933758 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0399952757606190
+ 10.2299951863576855 0.0000000000000000 0.0000000000000000
+# 191
+ 5.3119975004821116 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.3629974764844848 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.8689944151397189
+# 192
+ 0.0000000000000000 8.1569961617907758 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.5799945511262887
+ 39.2939815105316441 0.0000000000000000 0.0000000000000000
+# 193
+ 0.0000000000000000 0.0000000000000000 10.5729950249618572
+ 11.1819947384019152 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 22.8729892372980714 0.0000000000000000
+# 194
+ -3.6519982815814536 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -5.3619974769550245
+ 0.0000000000000000 -5.6519973404979131 0.0000000000000000
+# 195
+ -4.3609979479673342 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -9.7199954263339876
+ 0.0000000000000000 -15.7799925748508532 0.0000000000000000
+# 196
+ 0.0000000000000000 0.0000000000000000 5.5719973781412513
+ 11.1029947755747180 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 18.9239910954675281 0.0000000000000000
+# 197
+ 5.9199972143927173 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4699946028858850 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.1599933371285243
+# 198
+ 0.0000000000000000 -5.0899976049423854 0.0000000000000000
+-11.4199946264129721 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -21.9499896716081295
+# 199
+ 0.0000000000000000 0.0000000000000000 6.2099970779355989
+ 7.9799962450766673 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1899952051793541 0.0000000000000000
+# 200
+ 0.0000000000000000 0.0000000000000000 3.0049985860219754
+ 3.5849983131077505 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8489972478011802 0.0000000000000000
+# 201
+ 0.0000000000000000 0.0000000000000000 3.8339981959428484
+ 7.2899965697504880 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 25.2599881141148686 0.0000000000000000
+# 202
+ 6.3299970214705912 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3299970214705912 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.5399955110315044
+# 203
+ 0.0000000000000000 4.4792978923022444 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.0665962043277482
+ 9.3330956083865964 0.0000000000000000 0.0000000000000000
+# 204
+ 0.0000000000000000 5.1399975814152992 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2599961133249735
+ 9.5599955016206710 0.0000000000000000 0.0000000000000000
+# 205
+ 0.0000000000000000 -3.6769982698179073 0.0000000000000000
+ -6.2169970746418057 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -7.7939963325974366
+# 206
+ 0.0000000000000000 0.0000000000000000 4.1149980637206127
+ 7.3269965523404430 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 20.0799905515212345 0.0000000000000000
+# 207
+ 5.4768974228897713 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4768974228897713 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.7962902144721653
+# 208
+ 0.0000000000000000 3.8359981950017663 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.9279957990030692
+ 16.7049921395997103 0.0000000000000000 0.0000000000000000
+# 209
+ 0.0000000000000000 0.0000000000000000 -4.5409978632698165
+ 0.0000000000000000 -8.4099960427437086 0.0000000000000000
+ -9.3279956107863615 0.0000000000000000 0.0000000000000000
+# 210
+ -2.9659986043731084 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -4.3699979437324581
+ 0.0000000000000000 -4.5219978722101111 0.0000000000000000
+# 211
+ 8.5879959589872694 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.7659958752308338 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.3429956037282338
+# 212
+ 0.0000000000000000 -4.8929976976391139 0.0000000000000000
+ -5.1829975611820007 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -8.4909960046298245
+# 213
+ 8.7939958620556631 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.0249957533605141 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.0659938519012169
+# 214
+ 0.0000000000000000 0.0000000000000000 3.7299982448791922
+ 7.3949965203436037 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.0149962286077052 0.0000000000000000
+# 215
+ 0.0000000000000000 -5.8099972661523083 0.0000000000000000
+-10.1199952381172746 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -10.9499948475676057
+# 216
+ 0.0000000000000000 -5.7809972797980231 0.0000000000000000
+ -9.9809953035225867 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -10.5219950489594840
+# 217
+ 0.0000000000000000 0.0000000000000000 3.9739981300670011
+ 11.5419945690068761 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.6899940288249251 0.0000000000000000
+# 218
+ 0.0000000000000000 0.0000000000000000 -3.9599981366545887
+ 0.0000000000000000 -7.9149962756618821 0.0000000000000000
+-11.2199947205213277 0.0000000000000000 0.0000000000000000
+# 219
+ -4.9109976891693607 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -5.4119974534279329
+ 0.0000000000000000 -12.4639941351673649 0.0000000000000000
+# 220
+ 0.0000000000000000 7.8029963283625605 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.5659959693391912
+ 10.2729951661243870 0.0000000000000000 0.0000000000000000
+# 221
+ -5.2609975244797438 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -5.7149973108537804
+ 0.0000000000000000 -11.4249946240602647 0.0000000000000000
+# 222
+ -6.3589970078248754 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -6.6669968628980119
+ 0.0000000000000000 -9.7649954051596080 0.0000000000000000
+# 223
+ 0.0000000000000000 0.0000000000000000 6.9019967523206969
+ 10.8399948993272037 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 23.6929888514538227 0.0000000000000000
+# 224
+ 0.0000000000000000 0.0000000000000000 -2.9629986057847320
+ 0.0000000000000000 -4.3319979616130500 0.0000000000000000
+ -4.8729977070499482 0.0000000000000000 0.0000000000000000
+# 225
+ 0.0000000000000000 0.0000000000000000 -2.5724917259521778
+ 0.0000000000000000 -3.8912820645002619 0.0000000000000000
+ -4.0215465742408556 0.0000000000000000 0.0000000000000000
+# 226
+ 0.0000000000000000 0.0000000000000000 -3.5629983234596674
+ 0.0000000000000000 -4.3689979442030040 0.0000000000000000
+-11.5099945840642164 0.0000000000000000 0.0000000000000000
+# 227
+ 0.0000000000000000 2.8649986518978281 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.0449980966585333
+ 4.6449978143334745 0.0000000000000000 0.0000000000000000
+# 228
+ 0.0000000000000000 6.2489970595844717 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3069970322930500
+ 16.1519923998093127 0.0000000000000000 0.0000000000000000
+# 229
+ 0.0000000000000000 0.0000000000000000 8.0309962210790342
+ 9.5179955213834209 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.7489954126882719 0.0000000000000000
+# 230
+ 0.0000000000000000 0.0000000000000000 3.8726073153830898
+ 5.3672739847803426 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5883789814747589 0.0000000000000000
+# 231
+ 0.0000000000000000 0.0000000000000000 10.5369950419013616
+ 12.1989942598609371 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.0469938608415159 0.0000000000000000
+# 232
+ 5.9929971800431678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8189963208338913 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.0109962304898694
+# 233
+ 0.0000000000000000 -6.8979967542028611 0.0000000000000000
+ -7.4899964756421369 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -10.9419948513319412
+# 234
+ 0.0000000000000000 0.0000000000000000 9.3749955886708989
+ 9.4949955322058841 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1499952240010227 0.0000000000000000
+# 235
+ 0.0000000000000000 -7.1589966313914593 0.0000000000000000
+ -9.2009956705451632 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -9.7709954023363554
+# 236
+ -5.5689973795528749 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -7.3199965556342361
+ 0.0000000000000000 -12.7959939789474948 0.0000000000000000
+# 237
+ 0.0000000000000000 -5.7599972896793989 0.0000000000000000
+ -8.8999958121782399 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -13.3299937276781932
+# 238
+ 0.0000000000000000 -5.3699974731906908 0.0000000000000000
+ -5.4059974562511863 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -13.1499938123757083
+# 239
+ 5.4649974284892231 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4709974256659706 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.2109942542144339
+# 240
+ 0.0000000000000000 -5.1410512363124861 0.0000000000000000
+ -5.7571823508220552 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -6.8086137765895254
+# 241
+ -4.8379977235189111 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -6.1069971264014065
+ 0.0000000000000000 -8.1469961664961925 0.0000000000000000
+# 242
+ 0.0000000000000000 0.0000000000000000 4.0599980896004100
+ 5.7599972896793989 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3799969979435005 0.0000000000000000
+# 243
+ 0.0000000000000000 -3.8712981783916436 0.0000000000000000
+ -3.9091981605581103 0.0000000000000000 0.0000000000000000
+ 0.0511698229299495 0.0000000000000000 -3.9088632500680052
+# 244
+ 6.3299970214705912 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4799950687222410 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.5299950451951503
+# 245
+ 0.0000000000000000 0.0000000000000000 7.0268966935500305
+ 7.0696966734108386 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 25.4922880048080103 0.0000000000000000
+# 246
+ 0.0000000000000000 0.0000000000000000 4.3739979418502930
+ 7.9699962497820849 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.7219944843093593 0.0000000000000000
+# 247
+ 0.0000000000000000 0.0000000000000000 -8.2709961081490153
+ 0.0000000000000000 -9.9159953341078015 0.0000000000000000
+-11.3659946518222270 0.0000000000000000 0.0000000000000000
+# 248
+ 0.0000000000000000 5.4899974167256769 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.6399964050608666
+ 7.7799963391850193 0.0000000000000000 0.0000000000000000
+# 249
+ -7.4099965132854750 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -7.4399964991692222
+ 0.0000000000000000 -22.2599895257401812 0.0000000000000000
+# 250
+ 0.0000000000000000 0.0000000000000000 6.3839969960613354
+ 6.4179969800629122 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.3659946518222270 0.0000000000000000
+# 251
+ 0.0000000000000000 0.0000000000000000 6.3899969932380829
+ 10.8599948899163685 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.5999936006319153 0.0000000000000000
+# 252
+ 0.0000000000000000 0.0000000000000000 -2.7382087115578151
+ 0.0000000000000000 -11.2607947013232241 0.0000000000000000
+-12.4266941527185750 0.0000000000000000 0.0000000000000000
+# 253
+ 0.0000000000000000 0.0000000000000000 7.0389966878564731
+ 8.3559960681529581 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1859952070615201 0.0000000000000000
+# 254
+ 0.0000000000000000 0.0000000000000000 -7.4619964888173005
+ 0.0000000000000000 -9.6029954813873726 0.0000000000000000
+ -9.6989954362153643 0.0000000000000000 0.0000000000000000
+# 255
+ 0.0000000000000000 0.0000000000000000 2.8749986471924052
+ 4.7149977813955477 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 15.7069926092004017 0.0000000000000000
+# 256
+ -3.5419983333410485 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -3.8269981992366424
+ 0.0000000000000000 -12.6959940260016726 0.0000000000000000
+# 257
+ 0.0000000000000000 0.0000000000000000 -4.8579977141080768
+ 0.0000000000000000 -7.5009964704661733 0.0000000000000000
+-15.9659924873300838 0.0000000000000000 0.0000000000000000
+# 258
+ 0.0000000000000000 0.0000000000000000 5.4019974581333505
+ 5.9669971922772547 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.4799950687222410 0.0000000000000000
+# 259
+ 8.2701961085254432 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3114960890920688 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.6069903035457216
+# 260
+ 0.0000000000000000 5.7499972943848165 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.9499972002764601
+ 20.2299904809399713 0.0000000000000000 0.0000000000000000
+# 261
+ 0.0000000000000000 0.0000000000000000 5.6959973197940732
+ 8.2479961189714714 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4439946151199727 0.0000000000000000
+# 262
+ 5.9119972181570528 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.9449972026291711 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3879960530956250
+# 263
+ 0.0000000000000000 0.0000000000000000 3.9439981441832530
+ 17.4899917702244245 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 17.4899917702244245 0.0000000000000000
+# 264
+ 9.1969956724273310 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.1969956724273310 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.5049903515409824
+# 265
+ 3.9809981267732071 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.9809981267732071 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.3499927771838127
+# 266
+ 8.4479960248631158 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4479960248631158 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.9119929832811131
+# 267
+ 0.0000000000000000 0.0000000000000000 10.6379949943766423
+ 11.1639947468716674 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1639947468716674 0.0000000000000000
+# 268
+ 7.9799962450766673 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.9799962450766673 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.7799953981014784
+# 269
+ 0.0000000000000000 0.0000000000000000 10.6379949943766423
+ 11.1639947468716674 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1639947468716674 0.0000000000000000
+# 270
+ 10.8649948875636575 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.8649948875636575 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 28.3569866568469990
+# 271
+ 7.6289964102368302 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6289964102368302 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 29.4969861204293764
+# 272
+ 0.0000000000000000 0.0000000000000000 5.8129972647406838
+ 8.4839960079236114 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4839960079236114 0.0000000000000000
+# 273
+ 0.0000000000000000 0.0000000000000000 7.6089964196476654
+ 14.9189929799873191 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 14.9189929799873191 0.0000000000000000
+# 274
+ 0.0000000000000000 0.0000000000000000 14.6679930980933033
+ 20.3379904301214545 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 20.3379904301214545 0.0000000000000000
+# 275
+ 0.0000000000000000 0.0000000000000000 5.9849971838075025
+ 9.6929954390386115 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.6929954390386115 0.0000000000000000
+# 276
+ 0.0000000000000000 0.0000000000000000 6.3199970261760088
+ 7.6208964140482189 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6208964140482189 0.0000000000000000
+# 277
+ 0.0000000000000000 0.0000000000000000 5.2949975084813232
+ 10.1814952091789586 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.1814952091789586 0.0000000000000000
+# 278
+ 5.5479973894342551 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.5479973894342551 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1699952145901857
+# 279
+ 6.3219970252349214 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3219970252349214 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6049940688209769
+# 280
+ 0.0000000000000000 0.0000000000000000 3.1344985250868156
+ 8.3279960813281289 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3279960813281289 0.0000000000000000
+# 281
+ 0.0000000000000000 0.0000000000000000 3.9999981178329143
+ 12.5999940711736826 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.5999940711736826 0.0000000000000000
+# 282
+ 0.0000000000000000 0.0000000000000000 7.3599965368125666
+ 7.8199963203633498 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8199963203633498 0.0000000000000000
+# 283
+ 6.4299969744164143 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.4299969744164143 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.6299968803080569
+# 284
+ 0.0000000000000000 0.0000000000000000 6.5979968953653971
+ 7.1669966276271246 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1669966276271246 0.0000000000000000
+# 285
+ 0.0000000000000000 0.0000000000000000 4.1009980703081945
+ 6.2609970539379711 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2609970539379711 0.0000000000000000
+# 286
+ 0.0000000000000000 0.0000000000000000 7.4899964756421369
+ 8.3799960568599605 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3799960568599605 0.0000000000000000
+# 287
+ 0.0000000000000000 0.0000000000000000 6.1889970878169809
+ 11.1869947360492095 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.1869947360492095 0.0000000000000000
+# 288
+ 0.0000000000000000 0.0000000000000000 3.8219982015893534
+ 7.0699966732696797 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.0699966732696797 0.0000000000000000
+# 289
+ 0.0000000000000000 0.0000000000000000 10.2559951741235977
+ 11.4079946320594772 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4079946320594772 0.0000000000000000
+# 290
+ 0.0000000000000000 0.0000000000000000 3.1269985286158799
+ 9.8849953486945950 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.8849953486945950 0.0000000000000000
+# 291
+ 0.0000000000000000 0.0000000000000000 5.9809971856896675
+ 13.6959935554598999 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.6959935554598999 0.0000000000000000
+# 292
+ 5.7409972986196927 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7409972986196927 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.1209938260214241
+# 293
+ 0.0000000000000000 0.0000000000000000 7.1599966309209186
+ 9.5597955017147775 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5597955017147775 0.0000000000000000
+# 294
+ 7.4299965038746407 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4299965038746407 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.6099950075518112
+# 295
+ 7.0081967023491600 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.0081967023491600 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.6517959289667061
+# 296
+ 12.4639941351673649 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.4639941351673649 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 26.2229876609831365
+# 297
+ 7.1039966572712574 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1039966572712574 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 36.5969827795828024
+# 298
+ 6.5899968991297264 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5899968991297264 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.0399919819682175
+# 299
+ 4.0643712983834455 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.0643712983838070 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.6346473254990181
+# 300
+ 4.6862977949000992 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.6862977949000992 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.1909956752505835
+# 301
+ 9.9619953124628751 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.9619953124628751 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.4139936881526847
+# 302
+ 7.3449965438706899 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.3449965438706899 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.3999951063655800
+# 303
+ 6.1699970967572737 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1699970967572737 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.5639959702802742
+# 304
+ 6.0803971389178173 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.0803971389178173 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3987960480137716
+# 305
+ 7.4899964756421369 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4899964756421369 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.2399937700269543
+# 306
+ 5.9969971781609965 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.9969971781609965 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 39.1909815589974500
+# 307
+ 7.4829964789359247 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4829964789359247 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.8929929922214050
+# 308
+ 9.5309955152663814 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.5309955152663814 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8239939657723259
+# 309
+ 0.0000000000000000 0.0000000000000000 4.6779977988055927
+ 7.9539962573107550 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.9539962573107550 0.0000000000000000
+# 310
+ 9.3829955849065581 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.3829955849065581 0.0000000000000000
+ 0.0000000000000053 0.0000000000000053 54.5999743084192986
+# 311
+ 3.8989981653576335 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8989981653576335 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.1669980392524382
+# 312
+ 3.8071982085533707 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8071982085533707 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.6981977893006528
+# 313
+ 0.0000000000000000 0.0000000000000000 5.2149975461246667
+ 8.8699958262944900 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.8699958262944900 0.0000000000000000
+# 314
+ 8.3119960888567981 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.3119960888567981 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0699952616443671
+# 315
+ 0.0000000000000000 0.0000000000000000 8.0199962262549924
+ 8.8639958291177443 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.8639958291177443 0.0000000000000000
+# 316
+ 0.0000000000000000 0.0000000000000000 5.6559973386157436
+ 10.7589949374410878 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.7589949374410878 0.0000000000000000
+# 317
+ 6.5509969174808598 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5509969174808598 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.8469967782004941
+# 318
+ 6.5139969348909057 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5139969348909057 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.8089967960810807
+# 319
+ 0.0000000000000000 0.0000000000000000 9.2369956536056641
+ 9.4159955693786834 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.4159955693786834 0.0000000000000000
+# 320
+ 0.0000000000000000 0.0000000000000000 9.0089957608891833
+ 10.6199950028463928 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.6199950028463928 0.0000000000000000
+# 321
+ 7.6179964154127893 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.6179964154127893 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4999960003949475
+# 322
+ 5.6399973461444119 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6399973461444119 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0499957415969732
+# 323
+ 0.0000000000000000 0.0000000000000000 5.3079975023642811
+ 10.8389948997977434 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.8389948997977434 0.0000000000000000
+# 324
+ 7.7619963476547715 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.7619963476547715 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.7459944730163599
+# 325
+ 4.1199980613679008 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.1199980613679008 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.4749950710749467
+# 326
+ 3.5518983286826846 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.5518983286826846 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 25.6453879327680632
+# 327
+ 6.1399971108735256 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1399971108735256 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.5719950254323969
+# 328
+ 8.0549962097860348 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.0549962097860348 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.6879926181406955
+# 329
+ 3.4516983758309689 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.4516983758309689 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.6799945040721109
+# 330
+ 0.0000000000000000 0.0000000000000000 8.7499958827595030
+ 11.3799946452346461 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.3799946452346461 0.0000000000000000
+# 331
+ 0.0000000000000000 0.0000000000000000 9.0999957180698825
+ 13.6199935912210748 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 13.6199935912210748 0.0000000000000000
+# 332
+ 11.7822944559356912 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.7822944559356912 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.6384888770983430
+# 333
+ 5.1599975720044595 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.1599975720044595 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0699952616443671
+# 334
+ 0.0000000000000000 0.0000000000000000 5.8013972701989722
+ 5.8150972637525484 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8150972637525484 0.0000000000000000
+# 335
+ 5.4299974449581816 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4299974449581816 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0959952494102776
+# 336
+ 5.4149974520163102 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.4149974520163102 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.1969952018855583
+# 337
+ 0.0000000000000000 0.0000000000000000 4.7159977809250062
+ 5.6619973357924893 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.6619973357924893 0.0000000000000000
+# 338
+ 0.0000000000000000 0.0000000000000000 4.2785979867399773
+ 6.4023969874033648 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.4023969874033648 0.0000000000000000
+# 339
+ 0.0000000000000000 0.0000000000000000 6.3489970125302939
+ 7.4839964784653841 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.4839964784653841 0.0000000000000000
+# 340
+ 0.0000000000000000 0.0000000000000000 6.8099967956105401
+ 10.8099949134434539 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.8099949134434539 0.0000000000000000
+# 341
+ 3.3269984345075292 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.3269984345075292 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1509971056975674
+# 342
+ 3.8589981841793080 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.8589981841793080 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.7099944899558590
+# 343
+ 3.2989861563198493 0.0000000000000001 0.0000000000000000
+ 0.0000000000000001 3.2989861563198493 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.7886334409887343
+# 344
+ 5.0189976383508528 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.0189976383508528 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.4279960342739564
+# 345
+ 0.0000000000000000 0.0000000000000000 5.2049975508300834
+ 5.2799975155394518 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.2799975155394518 0.0000000000000000
+# 346
+ 5.5249974002567139 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.5249974002567139 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.4629917829290484
+# 347
+ 10.5659950282556494 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.5659950282556494 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 25.2199881329365390
+# 348
+ 0.0000000000000000 0.0000000000000000 5.6199973555552463
+ 10.9299948569784409 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.9299948569784409 0.0000000000000000
+# 349
+ 5.7099973132064861 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.7099973132064861 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.4579922558235303
+# 350
+ 0.0000000000000000 0.0000000000000000 5.1646975697929172
+ 6.5959968963064783 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.5959968963064783 0.0000000000000000
+# 351
+ 7.8229963189517262 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.8229963189517262 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.0529957401853434
+# 352
+ 6.2679970506441780 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2679970506441780 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.7819930444515428
+# 353
+ 3.9199981554762582 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.9199981554762582 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.2199928383542424
+# 354
+ 8.4669960159228221 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4669960159228221 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.7449940029451287
+# 355
+ 12.4475941428842525 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.4475941428842525 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.9276939169771463
+# 356
+ 4.9759976585841450 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9759976585841450 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.7459968257252134
+# 357
+ 5.0469976251756830 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.0469976251756830 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.4859969480660746
+# 358
+ 0.0000000000000000 0.0000000000000000 5.6199973555552463
+ 11.4839945962983041 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.4839945962983041 0.0000000000000000
+# 359
+ 14.9329929733997311 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 14.9329929733997311 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.5469926844870852
+# 360
+ 3.9576830212877665 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.9576830212877665 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.9764745199193001
+# 361
+ 0.0000000000000000 0.0000000000000000 3.2789984570935329
+ 4.0189981088926210 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.0189981088926210 0.0000000000000000
+# 362
+ 8.9809957740643540 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.9809957740643540 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.6379940532930934
+# 363
+ 4.1999980237245627 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.1999980237245627 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.9599962544875025
+# 364
+ 0.0000000000000000 0.0000000000000000 4.9959976491733107
+ 6.1179971212254429 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1179971212254429 0.0000000000000000
+# 365
+ 6.2099970779355989 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.2099970779355989 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.0019948230994373
+# 366
+ 0.0000000000000000 0.0000000000000000 6.7129968412530898
+ 8.5159959928662783 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5159959928662783 0.0000000000000000
+# 367
+ 6.3759969998256709 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3759969998256709 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3289960808575874
+# 368
+ 0.0000000000000000 0.0000000000000000 6.1899970873464403
+ 11.3499946593508980 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.3499946593508980 0.0000000000000000
+# 369
+ 6.3123970297521268 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.3123970297521268 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.5494955065613585
+# 370
+ 5.8939972266267997 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8939972266267997 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3479960719172936
+# 371
+ 0.0000000000000000 0.0000000000000000 4.1439980500749014
+ 7.1049966568007168 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1049966568007168 0.0000000000000000
+# 372
+ 7.0576966790573437 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.0576966790573437 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.9783953047459910
+# 373
+ 7.7435963563127403 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.7435963563127403 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.6402945227526224
+# 374
+ 4.2819979851401362 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.2819979851401362 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1819970911107696
+# 375
+ 0.0000000000000000 0.0000000000000000 4.8099977366940800
+ 5.0049976449384346 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.0049976449384346 0.0000000000000000
+# 376
+ 4.2819979851401362 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.2819979851401362 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.1819970911107696
+# 377
+ 5.9239972125105469 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.9239972125105469 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 18.1299914690776909
+# 378
+ 7.3771965287192449 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.3771965287192449 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 15.1230928839497452
+# 379
+ 3.0199985789638522 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.0199985789638522 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3099975014231937
+# 380
+ 4.9262976819700732 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9262976819700732 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2849961015614273
+# 381
+ 0.0000000000000000 0.0000000000000000 6.0519971522811993
+ 6.1659970986394388 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1659970986394388 0.0000000000000000
+# 382
+ 5.8519972463895558 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 5.8519972463895558 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2339933023084324
+# 383
+ 0.0000000000000000 0.0000000000000000 4.6629978058637214
+ 9.3809955858476446 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 9.3809955858476446 0.0000000000000000
+# 384
+ 11.7889944527830615 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.7889944527830615 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.6349888787452400
+# 385
+ 8.4269960347444961 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4269960347444961 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.4919931809086542
+# 386
+ 6.1689970972278161 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.1689970972278161 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.2129970765239761
+# 387
+ 0.0000000000000000 0.0000000000000000 5.9129972176865051
+ 8.5899959580461864 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5899959580461864 0.0000000000000000
+# 388
+ 0.0000000000000000 0.0000000000000000 5.9419972040407956
+ 8.5269959876903165 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.5269959876903165 0.0000000000000000
+# 389
+ 0.0000000000000000 0.0000000000000000 2.8729986481334930
+ 4.3982979304161285 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.3982979304161285 0.0000000000000000
+# 390
+ 0.0000000000000000 0.0000000000000000 2.9532986103489849
+ 4.5844978428012535 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.5844978428012535 0.0000000000000000
+# 391
+ 0.0000000000000000 0.0000000000000000 2.6888359272289208
+ 4.2266540199664249 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.2266540199664249 0.0000000000000000
+# 392
+ 4.6685978032286863 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.6685978032286863 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.2149975461246667
+# 393
+ 0.0000000000000000 0.0000000000000000 4.1099980660733237
+ 6.7539968219608788 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.7539968219608788 0.0000000000000000
+# 394
+ 0.0000000000000000 0.0000000000000000 5.4499974355473464
+ 8.0899961933170719 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.0899961933170719 0.0000000000000000
+# 395
+ 3.6399982872279524 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 3.6399982872279524 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.2699975202448686
+# 396
+ 2.2423146612608544 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 2.2423146612608535 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.8505089201520102
+# 397
+ 0.0000000000000000 0.0000000000000000 7.6781963870861745
+ 8.4335960316389205 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.4335960316389205 0.0000000000000000
+# 398
+ 4.3499979531432977 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.3499979531432977 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.7299935394614856
+# 399
+ 11.9399943817312515 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.9399943817312515 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.3999918125731838
+# 400
+ 4.1699980378408146 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.1699980378408146 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.8799948805055333
+# 401
+ 11.0759947882793401 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.0759947882793401 0.0000000000000000
+ 0.0000000000000000 0.0000000000000053 36.9329826214807682
+# 402
+ 0.0000000000000000 0.0000000000000000 5.7269973052072745
+ 11.0119948183940206 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 11.0119948183940206 0.0000000000000000
+# 403
+ 0.0000000000000000 0.0000000000000000 6.3288970219881859
+ 7.1771966228276014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 7.1771966228276014 0.0000000000000000
+# 404
+ 6.9012967526500741 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 6.9012967526500741 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.9753906007399067
+# 405
+ 10.3299951393035059 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.3299951393035059 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 20.3799904103587082
+# 406
+ 12.2839942198648870 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.2839942198648870 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 23.5819889036839534
+# 407
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 408
+ 4.9159976868166551 0.0000000000000000 0.0000000000000000
+ -2.4574988436436009 -4.2582449067250403 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -5.4069974557806448
+# 409
+ 5.5089974077853840 0.0000000000000000 0.0000000000000000
+ -2.3104709548280056 6.6161727417255296 0.0000000000000000
+ -1.1044014154165944 -1.5396840484579815 12.1086359754045372
+# 410
+ 0.0000000000000000 0.0000000000000000 6.7835968080328399
+ 7.2487965891368127 0.0000000000000000 0.0000000000000000
+ -3.6243982945684046 6.2776419930584701 0.0000000000000000
+# 411
+ 0.0000000000000000 0.0000000000000000 7.3612965362008600
+ 7.9541862572213473 0.0000000000000000 0.0000000000000000
+ -3.9770931286106719 6.8885273651867509 0.0000000000000000
+# 412
+ 6.8672967686484947 0.0000000000000000 0.0000000000000000
+ -3.4336483843242473 5.9472534569763829 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.0619919716163047
+# 413
+ 4.3367979593544508 0.0000000000000000 0.0000000000000000
+ -2.1683989796772254 3.7557772038814652 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.3396960758227934
+# 414
+ 12.6919940278838439 0.0000000000000000 0.0000000000000000
+ -6.3459970139419166 10.9915892528277865 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.1859909721855750
+# 415
+ 0.0000000000000000 0.0000000000000000 7.4729964836413423
+ 10.5019950583703192 0.0000000000000000 0.0000000000000000
+ -5.2509975291851569 9.0949945109673394 0.0000000000000000
+# 416
+ 0.0000000000000000 0.0000000000000000 8.1569961617907758
+ 10.8369949007388264 0.0000000000000000 0.0000000000000000
+ -5.4184974503694106 9.3851128847222434 0.0000000000000000
+# 417
+ 5.9999971767493738 0.0000000000000000 0.0000000000000000
+ -2.9999985883746869 5.1961499776998687 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.3299932571364206
+# 418
+ 0.0000000000000000 0.0000000000000000 8.8887958174483082
+ 16.9905920052129851 0.0000000000000000 0.0000000000000000
+ -8.4952960026064890 14.7142843018512330 0.0000000000000000
+# 419
+ 0.0000000000000000 0.0000000000000000 7.2224966015120602
+ 9.3961955786954121 0.0000000000000000 0.0000000000000000
+ -4.6980977893477043 8.1373440700772512 0.0000000000000000
+# 420
+ 7.1066966560007936 0.0000000000000000 0.0000000000000000
+ -3.5533483280003937 6.1545798410866119 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.0866919599939209
+# 421
+ 0.0000000000000000 0.0000000000000000 12.1339942904461520
+ 20.9739901308568939 0.0000000000000000 0.0000000000000000
+-10.4869950654284434 18.1640082720461749 0.0000000000000000
+# 422
+ 5.0219976369392230 0.0000000000000000 0.0000000000000000
+ -2.5109988184696101 4.3491775313347878 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.3759969998256700
+# 423
+ 7.1509966351557939 0.0000000000000000 0.0000000000000000
+ -3.5754983175778952 6.1929447484219589 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.1757961529445904
+# 424
+ 0.0000000000000000 0.0000000000000000 4.9839976548198104
+ 9.0699957321861380 0.0000000000000000 0.0000000000000000
+ -4.5349978660930672 7.8548467162896358 0.0000000000000000
+# 425
+ 0.0000000000000000 0.0000000000000000 4.7379977705730898
+ 8.6379959354601787 0.0000000000000000 0.0000000000000000
+ -4.3189979677300876 7.4807239178952418 0.0000000000000000
+# 426
+ 5.9599971955710433 0.0000000000000000 0.0000000000000000
+ -2.9799985977855203 5.1615089778485350 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.1999919066815288
+# 427
+ 5.0339976312927215 0.0000000000000000 0.0000000000000000
+ -2.5169988156463594 4.3595698312901874 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.1409933460688197
+# 428
+ 9.2039956691335405 0.0000000000000000 0.0000000000000000
+ -4.6019978345667685 7.9708940657915992 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 24.8179883220943189
+# 429
+ 5.0359976303516376 0.0000000000000000 0.0000000000000000
+ -2.5179988151758175 4.3613018812827535 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 11.2549947040523701
+# 430
+ 6.0199971673385386 0.0000000000000000 0.0000000000000000
+ -3.0099985836692680 5.2134704776255347 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 17.2999918596273687
+# 431
+ 4.9133976880400603 0.0000000000000000 0.0000000000000000
+ -2.4566988440200292 4.2551272167384209 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.4051974566276204
+# 432
+ 0.0000000000000000 0.0000000000000000 8.3999960474491306
+ 13.0399938641353010 0.0000000000000000 0.0000000000000000
+ -6.5199969320676479 11.2929659515343772 0.0000000000000000
+# 433
+ 3.5185386123395599 -2.0314292149883366 0.0000000000000000
+ 0.0000000000000000 4.0628584299766732 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 4.6155767045048108
+# 434
+ 0.0000000000000000 0.0000000000000000 7.3054965624570940
+ 9.3415956043869901 0.0000000000000000 0.0000000000000000
+ -4.6707978021934924 8.0900591052801811 0.0000000000000000
+# 435
+ 9.1229957072474228 0.0000000000000000 0.0000000000000000
+ -4.5614978536237070 7.9007460410926491 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.9829920087891040
+# 436
+ 3.7332982433264039 0.0000000000000000 0.0000000000000000
+ -1.8666491216632011 3.2331311186244847 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 6.0979971306362799
+# 437
+ 3.9149981578289608 0.0000000000000000 0.0000000000000000
+ -1.9574990789144795 3.3904878604491593 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.7249940123559604
+# 438
+ 12.1969942608020201 0.0000000000000000 0.0000000000000000
+ -6.0984971304010074 10.5629068796675512 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 19.3589908907818504
+# 439
+ 0.0000000000000000 0.0000000000000000 3.9659981338313401
+ 8.7529958813478768 0.0000000000000000 0.0000000000000000
+ -4.3764979406739366 7.5803167924678236 0.0000000000000000
+# 440
+ 0.0000000000000000 0.0000000000000000 5.6579973376746597
+ 6.1199971202843608 0.0000000000000000 0.0000000000000000
+ -3.0599985601421777 5.3000729772538655 0.0000000000000000
+# 441
+ 0.0000000000000000 0.0000000000000000 9.2389956526645793
+ 12.8739939422452405 0.0000000000000000 0.0000000000000000
+ -6.4369969711226176 11.1492058021513518 0.0000000000000000
+# 442
+ 10.1999952004739374 0.0000000000000000 0.0000000000000000
+ -5.0999976002369660 8.8334549620897782 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 30.3509857185867098
+# 443
+ 0.0000000000000000 0.0000000000000000 5.3679974741317729
+ 10.5629950296672739 0.0000000000000000 0.0000000000000000
+ -5.2814975148336343 9.1478220357406155 0.0000000000000000
+# 444
+ 7.8050963273744252 0.0000000000000000 0.0000000000000000
+ -2.5690227480952075 7.3701866190323218 0.0000000000000000
+ -2.5690227480952075 -3.6161021794898791 6.4221068059361670
+# 445
+ 5.4869974181373005 0.0000000000000000 0.0000000000000000
+ -2.7434987090686476 4.7518791546065291 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.1559956917195429
+# 446
+ 10.4379950884849926 0.0000000000000000 0.0000000000000000
+ -5.2189975442424963 9.0395689112052064 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 37.1499825193732036
+# 447
+ 5.1599975720044595 0.0000000000000000 0.0000000000000000
+ -2.5799987860022298 4.4686889808218870 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 16.5799921984174325
+# 448
+ 5.4499974355473491 0.0000000000000000 0.0000000000000000
+ -2.7249987177736732 4.7198362297440486 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.1009961881411101
+# 449
+ 0.0000000000000000 0.0000000000000000 4.6219978251559297
+ 4.9899976519965588 0.0000000000000000 0.0000000000000000
+ -2.4949988259982785 4.3214647314537205 0.0000000000000000
+# 450
+ 5.8899972285089710 0.0000000000000000 0.0000000000000000
+ -2.9449986142544842 5.1008872281087063 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.5909954870338705
+# 451
+ 5.3099975014231919 0.0000000000000000 0.0000000000000000
+ -2.6549987507115946 4.5985927302643805 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 14.2499932947797596
+# 452
+ 4.0469980957174512 0.0000000000000000 0.0000000000000000
+ -2.0234990478587247 3.5048031599585601 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 5.3299974920123603
+# 453
+ 0.0000000000000000 0.0000000000000000 5.0859976068245603
+ 6.2489970595844690 0.0000000000000000 0.0000000000000000
+ -3.1244985297922332 5.4117902017744104 0.0000000000000000
+# 454
+ 7.1849966191573715 0.0000000000000000 0.0000000000000000
+ -3.5924983095786840 6.2223895982955897 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 7.3509965410474400
+# 455
+ 0.0000000000000000 0.0000000000000000 10.1399952287064394
+ 12.1899942640958123 0.0000000000000000 0.0000000000000000
+ -6.0949971320479035 10.5568447046935674 0.0000000000000000
+# 456
+ 6.2429970624077198 0.0000000000000000 0.0000000000000000
+ -3.1214985312038586 5.4065940517967102 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 29.9999858837468700
+# 457
+ 5.4249974473108944 0.0000000000000000 0.0000000000000000
+ -2.7124987236554459 4.6981856048369668 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 9.8359953717511406
+# 458
+ 11.5099945840642164 0.0000000000000000 0.0000000000000000
+ -5.7549972920321055 9.9679477072209135 0.0000000000000000
+ 0.0000000000000053 0.0000000000000000 60.5699714992849252
+# 459
+ 10.0229952837598280 0.0000000000000000 0.0000000000000000
+ -5.0114976418799113 8.6801685377476314 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 25.4709880148305494
+# 460
+ 4.9491976711946686 0.0000000000000000 0.0000000000000000
+ -2.4745988355973312 4.2861309116053663 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 13.9979934133562907
+# 461
+ 4.7942520956467618 1.8132449716985586 1.4056177222130293
+ 0.9704420851364433 5.2472757220847637 -0.0319252043134948
+ -3.5658824393038788 3.4000876799267119 7.7768819934922204
+# 462
+ 2.3679063142316981 4.4775818945618298 -1.6088112683742066
+ -2.8707669848610848 4.4155134868656560 -0.7120125349826973
+ 1.2318691797983323 5.2127118273222814 7.5479009151942735
+# 463
+ 1.1892305190531443 2.6030960258193159 -0.0094870012677909
+ 0.5988630056472680 1.2540077098048823 -2.5018934392124548
+ -4.8674192630565596 2.2235838285894269 -0.0511759870943076
+# 464
+ 3.0862034428882930 -0.0061740449954627 0.0771065378323145
+ 1.7595384299272794 1.6712253860455217 -8.5174514397732199
+ -0.0055817307757720 8.9378071882876462 1.0714808471957371
+# 465
+ -1.5026702063150483 0.1235835645426292 -3.2318413332096600
+ -6.5916897368350131 -1.2428789307505865 3.0193560614309223
+ -0.3331047875897422 10.3307452998719995 0.5522385040675464
+# 466
+ 3.7668658779046242 -0.2526363169248627 -0.3909143489813395
+ -0.4126424943540823 -7.5129095763967930 0.0136225756754529
+ -0.6901112196345119 -0.0603991507863854 -7.4962532790130991
+# 467
+ -3.7484850618560537 -0.5179527621527573 -0.2725676000178477
+ -0.5753480695791482 -0.4393984977681776 7.4897680251595675
+ -1.1530730252948151 7.4298996709976457 0.4340316264888561
+# 468
+ 3.0399837305035393 -0.2689430591255473 0.3854696358687387
+ 0.7157156421771549 -9.1825175792497014 0.1995326319476954
+ 2.5380339403620287 -1.4645136298711459 -8.7915001631519925
+# 469
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 470
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 471
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 472
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 473
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 474
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 475
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 476
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 477
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 478
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 479
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 480
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 481
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 482
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 483
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 484
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 485
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 486
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 487
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 488
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 489
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 490
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 491
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 492
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 493
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 494
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 495
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 496
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 497
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 498
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 499
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 500
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 501
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 502
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 503
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 504
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 505
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 506
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 507
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 508
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 509
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 510
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 511
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 512
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 513
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 514
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 515
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 516
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 517
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 518
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 519
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 520
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 521
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 522
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 523
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 524
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 525
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 526
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 527
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 528
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 529
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 530
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 531
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 532
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 533
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 534
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 535
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 536
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 537
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 538
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 539
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 540
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 541
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 542
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 543
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 544
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 545
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 546
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 547
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 548
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 549
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 550
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 551
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 552
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 553
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 554
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 555
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 556
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 557
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 558
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 559
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 560
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 561
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 562
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 563
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 564
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 565
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 566
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 567
+ 0.0000000000000000 5.0000000000000000 5.0000000000000000
+ 5.0000000000000000 0.0000000000000000 5.0000000000000000
+ 5.0000000000000000 5.0000000000000000 0.0000000000000000
+# 568
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 569
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 570
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 571
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 572
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 573
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 574
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 575
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 576
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 577
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 578
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 579
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 580
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 581
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 582
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 583
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 584
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 585
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 586
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 587
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 588
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 589
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 590
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 591
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 592
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 593
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 594
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 595
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 596
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 597
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 598
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 599
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 600
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 601
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 602
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 603
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 604
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 605
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 606
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 607
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 608
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 609
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 610
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 611
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 612
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 613
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 614
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 615
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 616
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 617
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 618
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 619
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 620
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 621
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 622
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 623
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 624
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 625
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 626
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 627
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 628
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 629
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 630
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 631
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 632
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 633
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 634
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 635
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 636
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 637
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 638
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 639
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 640
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 641
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 642
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 643
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 644
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 645
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 646
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 647
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 648
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 649
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 650
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 651
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 652
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 653
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 654
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 655
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 656
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 657
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 658
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 659
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 660
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 661
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 662
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 663
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 664
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 665
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 666
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 667
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 668
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 669
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 670
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 671
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 672
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 673
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 674
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 675
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 676
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 677
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 678
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 679
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 680
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 681
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 682
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 683
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 684
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 685
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 686
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 687
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 688
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 689
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 690
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 691
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 692
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 693
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 694
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 695
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 696
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 697
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 698
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 699
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 700
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 701
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 702
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 703
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 704
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 705
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 706
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 707
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 708
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 709
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 710
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 711
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 712
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 713
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 714
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 715
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 716
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 717
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 718
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 719
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 720
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 721
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 722
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 723
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 724
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 725
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 726
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 727
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 728
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 729
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 730
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 731
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 732
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 733
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 734
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 735
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 736
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 737
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 738
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 739
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 740
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 741
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 742
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 743
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 744
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 745
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 746
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 747
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 748
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 749
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 750
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 751
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 752
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 753
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 754
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 755
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 756
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 757
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 758
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 759
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 760
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 761
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 762
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 763
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 764
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 765
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 766
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 767
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 768
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 769
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 770
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 771
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 772
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 773
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 774
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 775
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 776
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 777
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
+# 778
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 779
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 780
+ 8.2400000000000002 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.2400000000000002 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.2400000000000002
+# 781
+ 12.8065400000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 12.8065400000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 12.8065400000000000
+# 782
+ -6.4032700000000000 6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 -6.4032700000000000 6.4032700000000000
+ 6.4032700000000000 6.4032700000000000 -6.4032700000000000
+# 783
+ 10.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 10.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 10.0000000000000000
diff --git a/python/test/test_collinear_spin.py b/python/test/test_collinear_spin.py
new file mode 100644
index 0000000..223ada1
--- /dev/null
+++ b/python/test/test_collinear_spin.py
@@ -0,0 +1,41 @@
+import unittest
+import numpy as np
+from spglib import get_symmetry
+
+class TestGetSymmetry(unittest.TestCase):
+
+ def setUp(self):
+ lattice = [[4, 0, 0], [0, 4, 0], [0, 0, 4]]
+ positions = [[0, 0, 0], [0.5, 0.5, 0.5]]
+ numbers = [1, 1]
+ magmoms = [0, 0]
+ self._cell = (lattice, positions, numbers, magmoms)
+
+ def tearDown(self):
+ pass
+
+ def test_get_symmetry_ferro(self):
+ self._cell[3][0] = 1
+ self._cell[3][1] = 1
+ sym = get_symmetry(self._cell)
+ self.assertEqual(96, len(sym['rotations']))
+ self.assertTrue((sym['equivalent_atoms'] == [0, 0]).all())
+
+ def test_get_symmetry_anti_ferro(self):
+ self._cell[3][0] = 1
+ self._cell[3][1] = -1
+ sym = get_symmetry(self._cell)
+ self.assertEqual(96, len(sym['rotations']))
+ self.assertTrue((sym['equivalent_atoms'] == [0, 0]).all())
+
+ def test_get_symmetry_broken_magmoms(self):
+ self._cell[3][0] = 1
+ self._cell[3][1] = 2
+ sym = get_symmetry(self._cell)
+ self.assertEqual(48, len(sym['rotations']))
+ self.assertTrue((sym['equivalent_atoms'] == [0, 1]).all())
+
+if __name__ == '__main__':
+ suite = unittest.TestLoader().loadTestsFromTestCase(TestGetSymmetry)
+ unittest.TextTestRunner(verbosity=2).run(suite)
+ # unittest.main()
diff --git a/python/test/test_hall_number_from_symmetry.py b/python/test/test_hall_number_from_symmetry.py
new file mode 100644
index 0000000..9adf300
--- /dev/null
+++ b/python/test/test_hall_number_from_symmetry.py
@@ -0,0 +1,56 @@
+import unittest
+import numpy as np
+from spglib import get_symmetry_dataset, get_hall_number_from_symmetry
+from vasp import read_vasp
+from os import listdir
+from test_spglib import dirnames
+
+class TestGetHallNumberFromSymmetry(unittest.TestCase):
+
+ def setUp(self):
+ self._filenames = []
+ for d in dirnames:
+ self._filenames += ["%s/%s" % (d, fname)
+ for fname in listdir("./data/%s" % d)]
+
+ def tearDown(self):
+ pass
+
+ def test_get_hall_number_from_symmetry(self):
+ for fname in self._filenames:
+ spgnum = int(fname.split('-')[1])
+ cell = read_vasp("./data/%s" % fname)
+ if 'distorted' in fname:
+ dataset = get_symmetry_dataset(cell, symprec=1e-1)
+ hall_number = get_hall_number_from_symmetry(
+ dataset['rotations'],
+ dataset['translations'],
+ symprec=1e-1)
+ if hall_number != dataset['hall_number']:
+ print("%d != %d in %s" %
+ (hall_number, dataset['hall_number'], fname))
+ ref_cell = (dataset['std_lattice'],
+ dataset['std_positions'],
+ dataset['std_types'])
+ dataset = get_symmetry_dataset(ref_cell, symprec=1e-5)
+ hall_number = get_hall_number_from_symmetry(
+ dataset['rotations'],
+ dataset['translations'],
+ symprec=1e-5)
+ print("Using refinced cell: %d, %d in %s" %
+ (hall_number, dataset['hall_number'], fname))
+ else:
+ dataset = get_symmetry_dataset(cell, symprec=1e-5)
+ hall_number = get_hall_number_from_symmetry(
+ dataset['rotations'],
+ dataset['translations'],
+ symprec=1e-5)
+ self.assertEqual(hall_number, dataset['hall_number'],
+ msg=("%d != %d in %s" %
+ (hall_number, dataset['hall_number'], fname)))
+
+if __name__ == '__main__':
+ suite = unittest.TestLoader().loadTestsFromTestCase(
+ TestGetHallNumberFromSymmetry)
+ unittest.TextTestRunner(verbosity=2).run(suite)
+ # unittest.main()
diff --git a/python/test/test_niggli_delaunay.py b/python/test/test_niggli_delaunay.py
new file mode 100644
index 0000000..f52fe05
--- /dev/null
+++ b/python/test/test_niggli_delaunay.py
@@ -0,0 +1,110 @@
+import unittest
+try:
+ from StringIO import StringIO
+except ImportError:
+ from io import StringIO
+import numpy as np
+from spglib import niggli_reduce, delaunay_reduce
+
+def get_lattice_parameters(lattice):
+ return np.sqrt(np.dot(lattice, lattice.T).diagonal())
+
+def get_angles(lattice):
+ a, b, c = get_lattice_parameters(lattice)
+ alpha = np.arccos(np.vdot(lattice[1,:], lattice[2,:]) / b / c)
+ beta = np.arccos(np.vdot(lattice[2,:], lattice[0,:]) / c / a)
+ gamma = np.arccos(np.vdot(lattice[0,:], lattice[1,:]) / a / b)
+ return np.array([alpha, beta, gamma]) / np.pi * 180
+
+class TestNiggliDelaunay(unittest.TestCase):
+ def setUp(self):
+ self._input_lattices = self._read_file("lattices.dat")
+ self._niggli_lattices = self._read_file("niggli_lattices.dat")
+ self._delaunay_lattices = self._read_file("delaunay_lattices.dat")
+
+ def tearDown(self):
+ pass
+
+ def test_niggli_angles(self):
+ for i, reference_lattice in enumerate(self._niggli_lattices):
+ angles = np.array(get_angles(reference_lattice))
+ self.assertTrue((angles > 90 - 1e-3).all() or
+ (angles < 90 + 1e-3).all(),
+ msg=("%d %s" % (i + 1, angles)))
+
+ def test_niggli_reduce(self):
+ self._reduce(niggli_reduce, self._niggli_lattices)
+
+ def test_delaunay_reduce(self):
+ self._reduce(delaunay_reduce, self._delaunay_lattices)
+
+ def _reduce(self, func, ref_data):
+ for i, (input_lattice, reference_lattice) in enumerate(
+ zip(self._input_lattices, ref_data)):
+ reduced_lattice = func(input_lattice)
+ # self._show_lattice(i, reduced_lattice)
+ self.assertTrue(np.allclose([np.linalg.det(input_lattice)],
+ [np.linalg.det(reduced_lattice)]))
+ T = np.dot(np.linalg.inv(reference_lattice.T), input_lattice.T)
+ self.assertTrue(np.allclose(T, np.rint(T)))
+ self.assertTrue(
+ np.allclose(self._metric_tensor(reduced_lattice),
+ self._metric_tensor(reference_lattice)),
+ msg="\n".join(
+ ["# %d" % (i + 1),
+ "Input lattice",
+ "%s" % input_lattice,
+ " angles: %s" % np.array(get_angles(input_lattice)),
+ "Reduced lattice in reference data",
+ "%s" % reference_lattice,
+ " angles: %s" % np.array(get_angles(reference_lattice)),
+ "Reduced lattice",
+ "%s" % reduced_lattice,
+ " angles: %s" % np.array(get_angles(reduced_lattice)),
+ self._str_lattice(reduced_lattice)]))
+
+
+ def _read_file(self, filename):
+ all_lattices = []
+ with open(filename) as f:
+ lattice = []
+ for line in f:
+ if line[0] == '#':
+ continue
+ lattice.append([float(x) for x in line.split()])
+ if len(lattice) == 3:
+ all_lattices.append(lattice)
+ lattice = []
+ return np.array(all_lattices)
+
+ def _show_lattice(self, i, lattice):
+ print("# %d" % (i + 1))
+ print(self._str_lattice(lattice))
+ # for v in lattice:
+ # print(" ".join(["%20.16f" % x for x in v]))
+
+ def _str_lattice(self, lattice):
+ lines = []
+ for v in lattice:
+ lines.append(" ".join(["%20.16f" % x for x in v]))
+ return "\n".join(lines)
+
+ def _metric_tensor(self, lattice):
+ """
+ Args:
+ lattice: Lattice parameters in the form of
+ [[a_x, a_y, a_z],
+ [b_x, b_y, b_z],
+ [c_x, c_y, c_z]]
+ Returns:
+ Metric tensor:
+ [[a.a, a.b, a.c],
+ [b.a, b.b, b.c],
+ [c.a, c.b, c.c]]
+ """
+ return np.dot(lattice, np.transpose(lattice))
+
+if __name__ == '__main__':
+ suite = unittest.TestLoader().loadTestsFromTestCase(TestNiggliDelaunay)
+ unittest.TextTestRunner(verbosity=2).run(suite)
+ # unittest.main()
diff --git a/python/test/test_pure_trans.py b/python/test/test_pure_trans.py
new file mode 100644
index 0000000..a015739
--- /dev/null
+++ b/python/test/test_pure_trans.py
@@ -0,0 +1,1622 @@
+import unittest
+import numpy as np
+from spglib import get_symmetry
+from vasp import read_vasp_from_strings
+
+Al222 = """Al
+ 1.0
+ 8.0786564361761641 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 8.0786564361761641 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 8.0786564361761641
+ 32
+Direct
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.5000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.5000000000000000 0.0000000000000000
+ 0.5000000000000000 0.5000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.5000000000000000
+ 0.5000000000000000 0.0000000000000000 0.5000000000000000
+ 0.0000000000000000 0.5000000000000000 0.5000000000000000
+ 0.5000000000000000 0.5000000000000000 0.5000000000000000
+ 0.0000000000000000 0.2500000000000000 0.2500000000000000
+ 0.5000000000000000 0.2500000000000000 0.2500000000000000
+ 0.0000000000000000 0.7500000000000000 0.2500000000000000
+ 0.5000000000000000 0.7500000000000000 0.2500000000000000
+ 0.0000000000000000 0.2500000000000000 0.7500000000000000
+ 0.5000000000000000 0.2500000000000000 0.7500000000000000
+ 0.0000000000000000 0.7500000000000000 0.7500000000000000
+ 0.5000000000000000 0.7500000000000000 0.7500000000000000
+ 0.2500000000000000 0.0000000000000000 0.2500000000000000
+ 0.7500000000000000 0.0000000000000000 0.2500000000000000
+ 0.2500000000000000 0.5000000000000000 0.2500000000000000
+ 0.7500000000000000 0.5000000000000000 0.2500000000000000
+ 0.2500000000000000 0.0000000000000000 0.7500000000000000
+ 0.7500000000000000 0.0000000000000000 0.7500000000000000
+ 0.2500000000000000 0.5000000000000000 0.7500000000000000
+ 0.7500000000000000 0.5000000000000000 0.7500000000000000
+ 0.2500000000000000 0.2500000000000000 0.0000000000000000
+ 0.7500000000000000 0.2500000000000000 0.0000000000000000
+ 0.2500000000000000 0.7500000000000000 0.0000000000000000
+ 0.7500000000000000 0.7500000000000000 0.0000000000000000
+ 0.2500000000000000 0.2500000000000000 0.5000000000000000
+ 0.7500000000000000 0.2500000000000000 0.5000000000000000
+ 0.2500000000000000 0.7500000000000000 0.5000000000000000
+ 0.7500000000000000 0.7500000000000000 0.5000000000000000"""
+
+sym_ops_str = """ 1 0 0 0 1 0 0 0 1 0.0000000 0.0000000 0.0000000
+-1 0 0 0 -1 0 0 0 -1 0.0000000 0.0000000 0.0000000
+ 0 0 -1 0 1 0 1 0 0 0.0000000 0.0000000 0.0000000
+ 0 0 1 0 -1 0 -1 0 0 0.0000000 0.0000000 0.0000000
+-1 0 0 0 1 0 0 0 -1 0.0000000 0.0000000 0.0000000
+ 1 0 0 0 -1 0 0 0 1 0.0000000 0.0000000 0.0000000
+ 0 0 1 0 1 0 -1 0 0 0.0000000 0.0000000 0.0000000
+ 0 0 -1 0 -1 0 1 0 0 0.0000000 0.0000000 0.0000000
+ 1 0 0 0 -1 0 0 0 -1 0.0000000 0.0000000 0.0000000
+-1 0 0 0 1 0 0 0 1 0.0000000 0.0000000 0.0000000
+ 0 0 -1 0 -1 0 -1 0 0 0.0000000 0.0000000 0.0000000
+ 0 0 1 0 1 0 1 0 0 0.0000000 0.0000000 0.0000000
+-1 0 0 0 -1 0 0 0 1 0.0000000 0.0000000 0.0000000
+ 1 0 0 0 1 0 0 0 -1 0.0000000 0.0000000 0.0000000
+ 0 0 1 0 -1 0 1 0 0 0.0000000 0.0000000 0.0000000
+ 0 0 -1 0 1 0 -1 0 0 0.0000000 0.0000000 0.0000000
+ 0 1 0 0 0 1 1 0 0 0.0000000 0.0000000 0.0000000
+ 0 -1 0 0 0 -1 -1 0 0 0.0000000 0.0000000 0.0000000
+ 0 1 0 1 0 0 0 0 -1 0.0000000 0.0000000 0.0000000
+ 0 -1 0 -1 0 0 0 0 1 0.0000000 0.0000000 0.0000000
+ 0 1 0 0 0 -1 -1 0 0 0.0000000 0.0000000 0.0000000
+ 0 -1 0 0 0 1 1 0 0 0.0000000 0.0000000 0.0000000
+ 0 1 0 -1 0 0 0 0 1 0.0000000 0.0000000 0.0000000
+ 0 -1 0 1 0 0 0 0 -1 0.0000000 0.0000000 0.0000000
+ 0 -1 0 0 0 -1 1 0 0 0.0000000 0.0000000 0.0000000
+ 0 1 0 0 0 1 -1 0 0 0.0000000 0.0000000 0.0000000
+ 0 -1 0 -1 0 0 0 0 -1 0.0000000 0.0000000 0.0000000
+ 0 1 0 1 0 0 0 0 1 0.0000000 0.0000000 0.0000000
+ 0 -1 0 0 0 1 -1 0 0 0.0000000 0.0000000 0.0000000
+ 0 1 0 0 0 -1 1 0 0 0.0000000 0.0000000 0.0000000
+ 0 -1 0 1 0 0 0 0 1 0.0000000 0.0000000 0.0000000
+ 0 1 0 -1 0 0 0 0 -1 0.0000000 0.0000000 0.0000000
+ 0 0 1 1 0 0 0 1 0 0.0000000 0.0000000 0.0000000
+ 0 0 -1 -1 0 0 0 -1 0 0.0000000 0.0000000 0.0000000
+ 1 0 0 0 0 -1 0 1 0 0.0000000 0.0000000 0.0000000
+-1 0 0 0 0 1 0 -1 0 0.0000000 0.0000000 0.0000000
+ 0 0 -1 -1 0 0 0 1 0 0.0000000 0.0000000 0.0000000
+ 0 0 1 1 0 0 0 -1 0 0.0000000 0.0000000 0.0000000
+-1 0 0 0 0 1 0 1 0 0.0000000 0.0000000 0.0000000
+ 1 0 0 0 0 -1 0 -1 0 0.0000000 0.0000000 0.0000000
+ 0 0 -1 1 0 0 0 -1 0 0.0000000 0.0000000 0.0000000
+ 0 0 1 -1 0 0 0 1 0 0.0000000 0.0000000 0.0000000
+-1 0 0 0 0 -1 0 -1 0 0.0000000 0.0000000 0.0000000
+ 1 0 0 0 0 1 0 1 0 0.0000000 0.0000000 0.0000000
+ 0 0 1 -1 0 0 0 -1 0 0.0000000 0.0000000 0.0000000
+ 0 0 -1 1 0 0 0 1 0 0.0000000 0.0000000 0.0000000
+ 1 0 0 0 0 1 0 -1 0 0.0000000 0.0000000 0.0000000
+-1 0 0 0 0 -1 0 1 0 0.0000000 0.0000000 0.0000000
+ 1 0 0 0 1 0 0 0 1 0.7500000 0.7500000 0.0000000
+-1 0 0 0 -1 0 0 0 -1 0.7500000 0.7500000 0.0000000
+ 0 0 -1 0 1 0 1 0 0 0.7500000 0.7500000 0.0000000
+ 0 0 1 0 -1 0 -1 0 0 0.7500000 0.7500000 0.0000000
+-1 0 0 0 1 0 0 0 -1 0.7500000 0.7500000 0.0000000
+ 1 0 0 0 -1 0 0 0 1 0.7500000 0.7500000 0.0000000
+ 0 0 1 0 1 0 -1 0 0 0.7500000 0.7500000 0.0000000
+ 0 0 -1 0 -1 0 1 0 0 0.7500000 0.7500000 0.0000000
+ 1 0 0 0 -1 0 0 0 -1 0.7500000 0.7500000 0.0000000
+-1 0 0 0 1 0 0 0 1 0.7500000 0.7500000 0.0000000
+ 0 0 -1 0 -1 0 -1 0 0 0.7500000 0.7500000 0.0000000
+ 0 0 1 0 1 0 1 0 0 0.7500000 0.7500000 0.0000000
+-1 0 0 0 -1 0 0 0 1 0.7500000 0.7500000 0.0000000
+ 1 0 0 0 1 0 0 0 -1 0.7500000 0.7500000 0.0000000
+ 0 0 1 0 -1 0 1 0 0 0.7500000 0.7500000 0.0000000
+ 0 0 -1 0 1 0 -1 0 0 0.7500000 0.7500000 0.0000000
+ 0 1 0 0 0 1 1 0 0 0.7500000 0.7500000 0.0000000
+ 0 -1 0 0 0 -1 -1 0 0 0.7500000 0.7500000 0.0000000
+ 0 1 0 1 0 0 0 0 -1 0.7500000 0.7500000 0.0000000
+ 0 -1 0 -1 0 0 0 0 1 0.7500000 0.7500000 0.0000000
+ 0 1 0 0 0 -1 -1 0 0 0.7500000 0.7500000 0.0000000
+ 0 -1 0 0 0 1 1 0 0 0.7500000 0.7500000 0.0000000
+ 0 1 0 -1 0 0 0 0 1 0.7500000 0.7500000 0.0000000
+ 0 -1 0 1 0 0 0 0 -1 0.7500000 0.7500000 0.0000000
+ 0 -1 0 0 0 -1 1 0 0 0.7500000 0.7500000 0.0000000
+ 0 1 0 0 0 1 -1 0 0 0.7500000 0.7500000 0.0000000
+ 0 -1 0 -1 0 0 0 0 -1 0.7500000 0.7500000 0.0000000
+ 0 1 0 1 0 0 0 0 1 0.7500000 0.7500000 0.0000000
+ 0 -1 0 0 0 1 -1 0 0 0.7500000 0.7500000 0.0000000
+ 0 1 0 0 0 -1 1 0 0 0.7500000 0.7500000 0.0000000
+ 0 -1 0 1 0 0 0 0 1 0.7500000 0.7500000 0.0000000
+ 0 1 0 -1 0 0 0 0 -1 0.7500000 0.7500000 0.0000000
+ 0 0 1 1 0 0 0 1 0 0.7500000 0.7500000 0.0000000
+ 0 0 -1 -1 0 0 0 -1 0 0.7500000 0.7500000 0.0000000
+ 1 0 0 0 0 -1 0 1 0 0.7500000 0.7500000 0.0000000
+-1 0 0 0 0 1 0 -1 0 0.7500000 0.7500000 0.0000000
+ 0 0 -1 -1 0 0 0 1 0 0.7500000 0.7500000 0.0000000
+ 0 0 1 1 0 0 0 -1 0 0.7500000 0.7500000 0.0000000
+-1 0 0 0 0 1 0 1 0 0.7500000 0.7500000 0.0000000
+ 1 0 0 0 0 -1 0 -1 0 0.7500000 0.7500000 0.0000000
+ 0 0 -1 1 0 0 0 -1 0 0.7500000 0.7500000 0.0000000
+ 0 0 1 -1 0 0 0 1 0 0.7500000 0.7500000 0.0000000
+-1 0 0 0 0 -1 0 -1 0 0.7500000 0.7500000 0.0000000
+ 1 0 0 0 0 1 0 1 0 0.7500000 0.7500000 0.0000000
+ 0 0 1 -1 0 0 0 -1 0 0.7500000 0.7500000 0.0000000
+ 0 0 -1 1 0 0 0 1 0 0.7500000 0.7500000 0.0000000
+ 1 0 0 0 0 1 0 -1 0 0.7500000 0.7500000 0.0000000
+-1 0 0 0 0 -1 0 1 0 0.7500000 0.7500000 0.0000000
+ 1 0 0 0 1 0 0 0 1 0.5000000 0.5000000 0.0000000
+-1 0 0 0 -1 0 0 0 -1 0.5000000 0.5000000 0.0000000
+ 0 0 -1 0 1 0 1 0 0 0.5000000 0.5000000 0.0000000
+ 0 0 1 0 -1 0 -1 0 0 0.5000000 0.5000000 0.0000000
+-1 0 0 0 1 0 0 0 -1 0.5000000 0.5000000 0.0000000
+ 1 0 0 0 -1 0 0 0 1 0.5000000 0.5000000 0.0000000
+ 0 0 1 0 1 0 -1 0 0 0.5000000 0.5000000 0.0000000
+ 0 0 -1 0 -1 0 1 0 0 0.5000000 0.5000000 0.0000000
+ 1 0 0 0 -1 0 0 0 -1 0.5000000 0.5000000 0.0000000
+-1 0 0 0 1 0 0 0 1 0.5000000 0.5000000 0.0000000
+ 0 0 -1 0 -1 0 -1 0 0 0.5000000 0.5000000 0.0000000
+ 0 0 1 0 1 0 1 0 0 0.5000000 0.5000000 0.0000000
+-1 0 0 0 -1 0 0 0 1 0.5000000 0.5000000 0.0000000
+ 1 0 0 0 1 0 0 0 -1 0.5000000 0.5000000 0.0000000
+ 0 0 1 0 -1 0 1 0 0 0.5000000 0.5000000 0.0000000
+ 0 0 -1 0 1 0 -1 0 0 0.5000000 0.5000000 0.0000000
+ 0 1 0 0 0 1 1 0 0 0.5000000 0.5000000 0.0000000
+ 0 -1 0 0 0 -1 -1 0 0 0.5000000 0.5000000 0.0000000
+ 0 1 0 1 0 0 0 0 -1 0.5000000 0.5000000 0.0000000
+ 0 -1 0 -1 0 0 0 0 1 0.5000000 0.5000000 0.0000000
+ 0 1 0 0 0 -1 -1 0 0 0.5000000 0.5000000 0.0000000
+ 0 -1 0 0 0 1 1 0 0 0.5000000 0.5000000 0.0000000
+ 0 1 0 -1 0 0 0 0 1 0.5000000 0.5000000 0.0000000
+ 0 -1 0 1 0 0 0 0 -1 0.5000000 0.5000000 0.0000000
+ 0 -1 0 0 0 -1 1 0 0 0.5000000 0.5000000 0.0000000
+ 0 1 0 0 0 1 -1 0 0 0.5000000 0.5000000 0.0000000
+ 0 -1 0 -1 0 0 0 0 -1 0.5000000 0.5000000 0.0000000
+ 0 1 0 1 0 0 0 0 1 0.5000000 0.5000000 0.0000000
+ 0 -1 0 0 0 1 -1 0 0 0.5000000 0.5000000 0.0000000
+ 0 1 0 0 0 -1 1 0 0 0.5000000 0.5000000 0.0000000
+ 0 -1 0 1 0 0 0 0 1 0.5000000 0.5000000 0.0000000
+ 0 1 0 -1 0 0 0 0 -1 0.5000000 0.5000000 0.0000000
+ 0 0 1 1 0 0 0 1 0 0.5000000 0.5000000 0.0000000
+ 0 0 -1 -1 0 0 0 -1 0 0.5000000 0.5000000 0.0000000
+ 1 0 0 0 0 -1 0 1 0 0.5000000 0.5000000 0.0000000
+-1 0 0 0 0 1 0 -1 0 0.5000000 0.5000000 0.0000000
+ 0 0 -1 -1 0 0 0 1 0 0.5000000 0.5000000 0.0000000
+ 0 0 1 1 0 0 0 -1 0 0.5000000 0.5000000 0.0000000
+-1 0 0 0 0 1 0 1 0 0.5000000 0.5000000 0.0000000
+ 1 0 0 0 0 -1 0 -1 0 0.5000000 0.5000000 0.0000000
+ 0 0 -1 1 0 0 0 -1 0 0.5000000 0.5000000 0.0000000
+ 0 0 1 -1 0 0 0 1 0 0.5000000 0.5000000 0.0000000
+-1 0 0 0 0 -1 0 -1 0 0.5000000 0.5000000 0.0000000
+ 1 0 0 0 0 1 0 1 0 0.5000000 0.5000000 0.0000000
+ 0 0 1 -1 0 0 0 -1 0 0.5000000 0.5000000 0.0000000
+ 0 0 -1 1 0 0 0 1 0 0.5000000 0.5000000 0.0000000
+ 1 0 0 0 0 1 0 -1 0 0.5000000 0.5000000 0.0000000
+-1 0 0 0 0 -1 0 1 0 0.5000000 0.5000000 0.0000000
+ 1 0 0 0 1 0 0 0 1 0.2500000 0.2500000 0.0000000
+-1 0 0 0 -1 0 0 0 -1 0.2500000 0.2500000 0.0000000
+ 0 0 -1 0 1 0 1 0 0 0.2500000 0.2500000 0.0000000
+ 0 0 1 0 -1 0 -1 0 0 0.2500000 0.2500000 0.0000000
+-1 0 0 0 1 0 0 0 -1 0.2500000 0.2500000 0.0000000
+ 1 0 0 0 -1 0 0 0 1 0.2500000 0.2500000 0.0000000
+ 0 0 1 0 1 0 -1 0 0 0.2500000 0.2500000 0.0000000
+ 0 0 -1 0 -1 0 1 0 0 0.2500000 0.2500000 0.0000000
+ 1 0 0 0 -1 0 0 0 -1 0.2500000 0.2500000 0.0000000
+-1 0 0 0 1 0 0 0 1 0.2500000 0.2500000 0.0000000
+ 0 0 -1 0 -1 0 -1 0 0 0.2500000 0.2500000 0.0000000
+ 0 0 1 0 1 0 1 0 0 0.2500000 0.2500000 0.0000000
+-1 0 0 0 -1 0 0 0 1 0.2500000 0.2500000 0.0000000
+ 1 0 0 0 1 0 0 0 -1 0.2500000 0.2500000 0.0000000
+ 0 0 1 0 -1 0 1 0 0 0.2500000 0.2500000 0.0000000
+ 0 0 -1 0 1 0 -1 0 0 0.2500000 0.2500000 0.0000000
+ 0 1 0 0 0 1 1 0 0 0.2500000 0.2500000 0.0000000
+ 0 -1 0 0 0 -1 -1 0 0 0.2500000 0.2500000 0.0000000
+ 0 1 0 1 0 0 0 0 -1 0.2500000 0.2500000 0.0000000
+ 0 -1 0 -1 0 0 0 0 1 0.2500000 0.2500000 0.0000000
+ 0 1 0 0 0 -1 -1 0 0 0.2500000 0.2500000 0.0000000
+ 0 -1 0 0 0 1 1 0 0 0.2500000 0.2500000 0.0000000
+ 0 1 0 -1 0 0 0 0 1 0.2500000 0.2500000 0.0000000
+ 0 -1 0 1 0 0 0 0 -1 0.2500000 0.2500000 0.0000000
+ 0 -1 0 0 0 -1 1 0 0 0.2500000 0.2500000 0.0000000
+ 0 1 0 0 0 1 -1 0 0 0.2500000 0.2500000 0.0000000
+ 0 -1 0 -1 0 0 0 0 -1 0.2500000 0.2500000 0.0000000
+ 0 1 0 1 0 0 0 0 1 0.2500000 0.2500000 0.0000000
+ 0 -1 0 0 0 1 -1 0 0 0.2500000 0.2500000 0.0000000
+ 0 1 0 0 0 -1 1 0 0 0.2500000 0.2500000 0.0000000
+ 0 -1 0 1 0 0 0 0 1 0.2500000 0.2500000 0.0000000
+ 0 1 0 -1 0 0 0 0 -1 0.2500000 0.2500000 0.0000000
+ 0 0 1 1 0 0 0 1 0 0.2500000 0.2500000 0.0000000
+ 0 0 -1 -1 0 0 0 -1 0 0.2500000 0.2500000 0.0000000
+ 1 0 0 0 0 -1 0 1 0 0.2500000 0.2500000 0.0000000
+-1 0 0 0 0 1 0 -1 0 0.2500000 0.2500000 0.0000000
+ 0 0 -1 -1 0 0 0 1 0 0.2500000 0.2500000 0.0000000
+ 0 0 1 1 0 0 0 -1 0 0.2500000 0.2500000 0.0000000
+-1 0 0 0 0 1 0 1 0 0.2500000 0.2500000 0.0000000
+ 1 0 0 0 0 -1 0 -1 0 0.2500000 0.2500000 0.0000000
+ 0 0 -1 1 0 0 0 -1 0 0.2500000 0.2500000 0.0000000
+ 0 0 1 -1 0 0 0 1 0 0.2500000 0.2500000 0.0000000
+-1 0 0 0 0 -1 0 -1 0 0.2500000 0.2500000 0.0000000
+ 1 0 0 0 0 1 0 1 0 0.2500000 0.2500000 0.0000000
+ 0 0 1 -1 0 0 0 -1 0 0.2500000 0.2500000 0.0000000
+ 0 0 -1 1 0 0 0 1 0 0.2500000 0.2500000 0.0000000
+ 1 0 0 0 0 1 0 -1 0 0.2500000 0.2500000 0.0000000
+-1 0 0 0 0 -1 0 1 0 0.2500000 0.2500000 0.0000000
+ 1 0 0 0 1 0 0 0 1 0.2500000 0.0000000 0.7500000
+-1 0 0 0 -1 0 0 0 -1 0.2500000 0.0000000 0.7500000
+ 0 0 -1 0 1 0 1 0 0 0.2500000 0.0000000 0.7500000
+ 0 0 1 0 -1 0 -1 0 0 0.2500000 0.0000000 0.7500000
+-1 0 0 0 1 0 0 0 -1 0.2500000 0.0000000 0.7500000
+ 1 0 0 0 -1 0 0 0 1 0.2500000 0.0000000 0.7500000
+ 0 0 1 0 1 0 -1 0 0 0.2500000 0.0000000 0.7500000
+ 0 0 -1 0 -1 0 1 0 0 0.2500000 0.0000000 0.7500000
+ 1 0 0 0 -1 0 0 0 -1 0.2500000 0.0000000 0.7500000
+-1 0 0 0 1 0 0 0 1 0.2500000 0.0000000 0.7500000
+ 0 0 -1 0 -1 0 -1 0 0 0.2500000 0.0000000 0.7500000
+ 0 0 1 0 1 0 1 0 0 0.2500000 0.0000000 0.7500000
+-1 0 0 0 -1 0 0 0 1 0.2500000 0.0000000 0.7500000
+ 1 0 0 0 1 0 0 0 -1 0.2500000 0.0000000 0.7500000
+ 0 0 1 0 -1 0 1 0 0 0.2500000 0.0000000 0.7500000
+ 0 0 -1 0 1 0 -1 0 0 0.2500000 0.0000000 0.7500000
+ 0 1 0 0 0 1 1 0 0 0.2500000 0.0000000 0.7500000
+ 0 -1 0 0 0 -1 -1 0 0 0.2500000 0.0000000 0.7500000
+ 0 1 0 1 0 0 0 0 -1 0.2500000 0.0000000 0.7500000
+ 0 -1 0 -1 0 0 0 0 1 0.2500000 0.0000000 0.7500000
+ 0 1 0 0 0 -1 -1 0 0 0.2500000 0.0000000 0.7500000
+ 0 -1 0 0 0 1 1 0 0 0.2500000 0.0000000 0.7500000
+ 0 1 0 -1 0 0 0 0 1 0.2500000 0.0000000 0.7500000
+ 0 -1 0 1 0 0 0 0 -1 0.2500000 0.0000000 0.7500000
+ 0 -1 0 0 0 -1 1 0 0 0.2500000 0.0000000 0.7500000
+ 0 1 0 0 0 1 -1 0 0 0.2500000 0.0000000 0.7500000
+ 0 -1 0 -1 0 0 0 0 -1 0.2500000 0.0000000 0.7500000
+ 0 1 0 1 0 0 0 0 1 0.2500000 0.0000000 0.7500000
+ 0 -1 0 0 0 1 -1 0 0 0.2500000 0.0000000 0.7500000
+ 0 1 0 0 0 -1 1 0 0 0.2500000 0.0000000 0.7500000
+ 0 -1 0 1 0 0 0 0 1 0.2500000 0.0000000 0.7500000
+ 0 1 0 -1 0 0 0 0 -1 0.2500000 0.0000000 0.7500000
+ 0 0 1 1 0 0 0 1 0 0.2500000 0.0000000 0.7500000
+ 0 0 -1 -1 0 0 0 -1 0 0.2500000 0.0000000 0.7500000
+ 1 0 0 0 0 -1 0 1 0 0.2500000 0.0000000 0.7500000
+-1 0 0 0 0 1 0 -1 0 0.2500000 0.0000000 0.7500000
+ 0 0 -1 -1 0 0 0 1 0 0.2500000 0.0000000 0.7500000
+ 0 0 1 1 0 0 0 -1 0 0.2500000 0.0000000 0.7500000
+-1 0 0 0 0 1 0 1 0 0.2500000 0.0000000 0.7500000
+ 1 0 0 0 0 -1 0 -1 0 0.2500000 0.0000000 0.7500000
+ 0 0 -1 1 0 0 0 -1 0 0.2500000 0.0000000 0.7500000
+ 0 0 1 -1 0 0 0 1 0 0.2500000 0.0000000 0.7500000
+-1 0 0 0 0 -1 0 -1 0 0.2500000 0.0000000 0.7500000
+ 1 0 0 0 0 1 0 1 0 0.2500000 0.0000000 0.7500000
+ 0 0 1 -1 0 0 0 -1 0 0.2500000 0.0000000 0.7500000
+ 0 0 -1 1 0 0 0 1 0 0.2500000 0.0000000 0.7500000
+ 1 0 0 0 0 1 0 -1 0 0.2500000 0.0000000 0.7500000
+-1 0 0 0 0 -1 0 1 0 0.2500000 0.0000000 0.7500000
+ 1 0 0 0 1 0 0 0 1 0.0000000 0.7500000 0.7500000
+-1 0 0 0 -1 0 0 0 -1 0.0000000 0.7500000 0.7500000
+ 0 0 -1 0 1 0 1 0 0 0.0000000 0.7500000 0.7500000
+ 0 0 1 0 -1 0 -1 0 0 0.0000000 0.7500000 0.7500000
+-1 0 0 0 1 0 0 0 -1 0.0000000 0.7500000 0.7500000
+ 1 0 0 0 -1 0 0 0 1 0.0000000 0.7500000 0.7500000
+ 0 0 1 0 1 0 -1 0 0 0.0000000 0.7500000 0.7500000
+ 0 0 -1 0 -1 0 1 0 0 0.0000000 0.7500000 0.7500000
+ 1 0 0 0 -1 0 0 0 -1 0.0000000 0.7500000 0.7500000
+-1 0 0 0 1 0 0 0 1 0.0000000 0.7500000 0.7500000
+ 0 0 -1 0 -1 0 -1 0 0 0.0000000 0.7500000 0.7500000
+ 0 0 1 0 1 0 1 0 0 0.0000000 0.7500000 0.7500000
+-1 0 0 0 -1 0 0 0 1 0.0000000 0.7500000 0.7500000
+ 1 0 0 0 1 0 0 0 -1 0.0000000 0.7500000 0.7500000
+ 0 0 1 0 -1 0 1 0 0 0.0000000 0.7500000 0.7500000
+ 0 0 -1 0 1 0 -1 0 0 0.0000000 0.7500000 0.7500000
+ 0 1 0 0 0 1 1 0 0 0.0000000 0.7500000 0.7500000
+ 0 -1 0 0 0 -1 -1 0 0 0.0000000 0.7500000 0.7500000
+ 0 1 0 1 0 0 0 0 -1 0.0000000 0.7500000 0.7500000
+ 0 -1 0 -1 0 0 0 0 1 0.0000000 0.7500000 0.7500000
+ 0 1 0 0 0 -1 -1 0 0 0.0000000 0.7500000 0.7500000
+ 0 -1 0 0 0 1 1 0 0 0.0000000 0.7500000 0.7500000
+ 0 1 0 -1 0 0 0 0 1 0.0000000 0.7500000 0.7500000
+ 0 -1 0 1 0 0 0 0 -1 0.0000000 0.7500000 0.7500000
+ 0 -1 0 0 0 -1 1 0 0 0.0000000 0.7500000 0.7500000
+ 0 1 0 0 0 1 -1 0 0 0.0000000 0.7500000 0.7500000
+ 0 -1 0 -1 0 0 0 0 -1 0.0000000 0.7500000 0.7500000
+ 0 1 0 1 0 0 0 0 1 0.0000000 0.7500000 0.7500000
+ 0 -1 0 0 0 1 -1 0 0 0.0000000 0.7500000 0.7500000
+ 0 1 0 0 0 -1 1 0 0 0.0000000 0.7500000 0.7500000
+ 0 -1 0 1 0 0 0 0 1 0.0000000 0.7500000 0.7500000
+ 0 1 0 -1 0 0 0 0 -1 0.0000000 0.7500000 0.7500000
+ 0 0 1 1 0 0 0 1 0 0.0000000 0.7500000 0.7500000
+ 0 0 -1 -1 0 0 0 -1 0 0.0000000 0.7500000 0.7500000
+ 1 0 0 0 0 -1 0 1 0 0.0000000 0.7500000 0.7500000
+-1 0 0 0 0 1 0 -1 0 0.0000000 0.7500000 0.7500000
+ 0 0 -1 -1 0 0 0 1 0 0.0000000 0.7500000 0.7500000
+ 0 0 1 1 0 0 0 -1 0 0.0000000 0.7500000 0.7500000
+-1 0 0 0 0 1 0 1 0 0.0000000 0.7500000 0.7500000
+ 1 0 0 0 0 -1 0 -1 0 0.0000000 0.7500000 0.7500000
+ 0 0 -1 1 0 0 0 -1 0 0.0000000 0.7500000 0.7500000
+ 0 0 1 -1 0 0 0 1 0 0.0000000 0.7500000 0.7500000
+-1 0 0 0 0 -1 0 -1 0 0.0000000 0.7500000 0.7500000
+ 1 0 0 0 0 1 0 1 0 0.0000000 0.7500000 0.7500000
+ 0 0 1 -1 0 0 0 -1 0 0.0000000 0.7500000 0.7500000
+ 0 0 -1 1 0 0 0 1 0 0.0000000 0.7500000 0.7500000
+ 1 0 0 0 0 1 0 -1 0 0.0000000 0.7500000 0.7500000
+-1 0 0 0 0 -1 0 1 0 0.0000000 0.7500000 0.7500000
+ 1 0 0 0 1 0 0 0 1 0.7500000 0.5000000 0.7500000
+-1 0 0 0 -1 0 0 0 -1 0.7500000 0.5000000 0.7500000
+ 0 0 -1 0 1 0 1 0 0 0.7500000 0.5000000 0.7500000
+ 0 0 1 0 -1 0 -1 0 0 0.7500000 0.5000000 0.7500000
+-1 0 0 0 1 0 0 0 -1 0.7500000 0.5000000 0.7500000
+ 1 0 0 0 -1 0 0 0 1 0.7500000 0.5000000 0.7500000
+ 0 0 1 0 1 0 -1 0 0 0.7500000 0.5000000 0.7500000
+ 0 0 -1 0 -1 0 1 0 0 0.7500000 0.5000000 0.7500000
+ 1 0 0 0 -1 0 0 0 -1 0.7500000 0.5000000 0.7500000
+-1 0 0 0 1 0 0 0 1 0.7500000 0.5000000 0.7500000
+ 0 0 -1 0 -1 0 -1 0 0 0.7500000 0.5000000 0.7500000
+ 0 0 1 0 1 0 1 0 0 0.7500000 0.5000000 0.7500000
+-1 0 0 0 -1 0 0 0 1 0.7500000 0.5000000 0.7500000
+ 1 0 0 0 1 0 0 0 -1 0.7500000 0.5000000 0.7500000
+ 0 0 1 0 -1 0 1 0 0 0.7500000 0.5000000 0.7500000
+ 0 0 -1 0 1 0 -1 0 0 0.7500000 0.5000000 0.7500000
+ 0 1 0 0 0 1 1 0 0 0.7500000 0.5000000 0.7500000
+ 0 -1 0 0 0 -1 -1 0 0 0.7500000 0.5000000 0.7500000
+ 0 1 0 1 0 0 0 0 -1 0.7500000 0.5000000 0.7500000
+ 0 -1 0 -1 0 0 0 0 1 0.7500000 0.5000000 0.7500000
+ 0 1 0 0 0 -1 -1 0 0 0.7500000 0.5000000 0.7500000
+ 0 -1 0 0 0 1 1 0 0 0.7500000 0.5000000 0.7500000
+ 0 1 0 -1 0 0 0 0 1 0.7500000 0.5000000 0.7500000
+ 0 -1 0 1 0 0 0 0 -1 0.7500000 0.5000000 0.7500000
+ 0 -1 0 0 0 -1 1 0 0 0.7500000 0.5000000 0.7500000
+ 0 1 0 0 0 1 -1 0 0 0.7500000 0.5000000 0.7500000
+ 0 -1 0 -1 0 0 0 0 -1 0.7500000 0.5000000 0.7500000
+ 0 1 0 1 0 0 0 0 1 0.7500000 0.5000000 0.7500000
+ 0 -1 0 0 0 1 -1 0 0 0.7500000 0.5000000 0.7500000
+ 0 1 0 0 0 -1 1 0 0 0.7500000 0.5000000 0.7500000
+ 0 -1 0 1 0 0 0 0 1 0.7500000 0.5000000 0.7500000
+ 0 1 0 -1 0 0 0 0 -1 0.7500000 0.5000000 0.7500000
+ 0 0 1 1 0 0 0 1 0 0.7500000 0.5000000 0.7500000
+ 0 0 -1 -1 0 0 0 -1 0 0.7500000 0.5000000 0.7500000
+ 1 0 0 0 0 -1 0 1 0 0.7500000 0.5000000 0.7500000
+-1 0 0 0 0 1 0 -1 0 0.7500000 0.5000000 0.7500000
+ 0 0 -1 -1 0 0 0 1 0 0.7500000 0.5000000 0.7500000
+ 0 0 1 1 0 0 0 -1 0 0.7500000 0.5000000 0.7500000
+-1 0 0 0 0 1 0 1 0 0.7500000 0.5000000 0.7500000
+ 1 0 0 0 0 -1 0 -1 0 0.7500000 0.5000000 0.7500000
+ 0 0 -1 1 0 0 0 -1 0 0.7500000 0.5000000 0.7500000
+ 0 0 1 -1 0 0 0 1 0 0.7500000 0.5000000 0.7500000
+-1 0 0 0 0 -1 0 -1 0 0.7500000 0.5000000 0.7500000
+ 1 0 0 0 0 1 0 1 0 0.7500000 0.5000000 0.7500000
+ 0 0 1 -1 0 0 0 -1 0 0.7500000 0.5000000 0.7500000
+ 0 0 -1 1 0 0 0 1 0 0.7500000 0.5000000 0.7500000
+ 1 0 0 0 0 1 0 -1 0 0.7500000 0.5000000 0.7500000
+-1 0 0 0 0 -1 0 1 0 0.7500000 0.5000000 0.7500000
+ 1 0 0 0 1 0 0 0 1 0.5000000 0.2500000 0.7500000
+-1 0 0 0 -1 0 0 0 -1 0.5000000 0.2500000 0.7500000
+ 0 0 -1 0 1 0 1 0 0 0.5000000 0.2500000 0.7500000
+ 0 0 1 0 -1 0 -1 0 0 0.5000000 0.2500000 0.7500000
+-1 0 0 0 1 0 0 0 -1 0.5000000 0.2500000 0.7500000
+ 1 0 0 0 -1 0 0 0 1 0.5000000 0.2500000 0.7500000
+ 0 0 1 0 1 0 -1 0 0 0.5000000 0.2500000 0.7500000
+ 0 0 -1 0 -1 0 1 0 0 0.5000000 0.2500000 0.7500000
+ 1 0 0 0 -1 0 0 0 -1 0.5000000 0.2500000 0.7500000
+-1 0 0 0 1 0 0 0 1 0.5000000 0.2500000 0.7500000
+ 0 0 -1 0 -1 0 -1 0 0 0.5000000 0.2500000 0.7500000
+ 0 0 1 0 1 0 1 0 0 0.5000000 0.2500000 0.7500000
+-1 0 0 0 -1 0 0 0 1 0.5000000 0.2500000 0.7500000
+ 1 0 0 0 1 0 0 0 -1 0.5000000 0.2500000 0.7500000
+ 0 0 1 0 -1 0 1 0 0 0.5000000 0.2500000 0.7500000
+ 0 0 -1 0 1 0 -1 0 0 0.5000000 0.2500000 0.7500000
+ 0 1 0 0 0 1 1 0 0 0.5000000 0.2500000 0.7500000
+ 0 -1 0 0 0 -1 -1 0 0 0.5000000 0.2500000 0.7500000
+ 0 1 0 1 0 0 0 0 -1 0.5000000 0.2500000 0.7500000
+ 0 -1 0 -1 0 0 0 0 1 0.5000000 0.2500000 0.7500000
+ 0 1 0 0 0 -1 -1 0 0 0.5000000 0.2500000 0.7500000
+ 0 -1 0 0 0 1 1 0 0 0.5000000 0.2500000 0.7500000
+ 0 1 0 -1 0 0 0 0 1 0.5000000 0.2500000 0.7500000
+ 0 -1 0 1 0 0 0 0 -1 0.5000000 0.2500000 0.7500000
+ 0 -1 0 0 0 -1 1 0 0 0.5000000 0.2500000 0.7500000
+ 0 1 0 0 0 1 -1 0 0 0.5000000 0.2500000 0.7500000
+ 0 -1 0 -1 0 0 0 0 -1 0.5000000 0.2500000 0.7500000
+ 0 1 0 1 0 0 0 0 1 0.5000000 0.2500000 0.7500000
+ 0 -1 0 0 0 1 -1 0 0 0.5000000 0.2500000 0.7500000
+ 0 1 0 0 0 -1 1 0 0 0.5000000 0.2500000 0.7500000
+ 0 -1 0 1 0 0 0 0 1 0.5000000 0.2500000 0.7500000
+ 0 1 0 -1 0 0 0 0 -1 0.5000000 0.2500000 0.7500000
+ 0 0 1 1 0 0 0 1 0 0.5000000 0.2500000 0.7500000
+ 0 0 -1 -1 0 0 0 -1 0 0.5000000 0.2500000 0.7500000
+ 1 0 0 0 0 -1 0 1 0 0.5000000 0.2500000 0.7500000
+-1 0 0 0 0 1 0 -1 0 0.5000000 0.2500000 0.7500000
+ 0 0 -1 -1 0 0 0 1 0 0.5000000 0.2500000 0.7500000
+ 0 0 1 1 0 0 0 -1 0 0.5000000 0.2500000 0.7500000
+-1 0 0 0 0 1 0 1 0 0.5000000 0.2500000 0.7500000
+ 1 0 0 0 0 -1 0 -1 0 0.5000000 0.2500000 0.7500000
+ 0 0 -1 1 0 0 0 -1 0 0.5000000 0.2500000 0.7500000
+ 0 0 1 -1 0 0 0 1 0 0.5000000 0.2500000 0.7500000
+-1 0 0 0 0 -1 0 -1 0 0.5000000 0.2500000 0.7500000
+ 1 0 0 0 0 1 0 1 0 0.5000000 0.2500000 0.7500000
+ 0 0 1 -1 0 0 0 -1 0 0.5000000 0.2500000 0.7500000
+ 0 0 -1 1 0 0 0 1 0 0.5000000 0.2500000 0.7500000
+ 1 0 0 0 0 1 0 -1 0 0.5000000 0.2500000 0.7500000
+-1 0 0 0 0 -1 0 1 0 0.5000000 0.2500000 0.7500000
+ 1 0 0 0 1 0 0 0 1 0.5000000 0.0000000 0.5000000
+-1 0 0 0 -1 0 0 0 -1 0.5000000 0.0000000 0.5000000
+ 0 0 -1 0 1 0 1 0 0 0.5000000 0.0000000 0.5000000
+ 0 0 1 0 -1 0 -1 0 0 0.5000000 0.0000000 0.5000000
+-1 0 0 0 1 0 0 0 -1 0.5000000 0.0000000 0.5000000
+ 1 0 0 0 -1 0 0 0 1 0.5000000 0.0000000 0.5000000
+ 0 0 1 0 1 0 -1 0 0 0.5000000 0.0000000 0.5000000
+ 0 0 -1 0 -1 0 1 0 0 0.5000000 0.0000000 0.5000000
+ 1 0 0 0 -1 0 0 0 -1 0.5000000 0.0000000 0.5000000
+-1 0 0 0 1 0 0 0 1 0.5000000 0.0000000 0.5000000
+ 0 0 -1 0 -1 0 -1 0 0 0.5000000 0.0000000 0.5000000
+ 0 0 1 0 1 0 1 0 0 0.5000000 0.0000000 0.5000000
+-1 0 0 0 -1 0 0 0 1 0.5000000 0.0000000 0.5000000
+ 1 0 0 0 1 0 0 0 -1 0.5000000 0.0000000 0.5000000
+ 0 0 1 0 -1 0 1 0 0 0.5000000 0.0000000 0.5000000
+ 0 0 -1 0 1 0 -1 0 0 0.5000000 0.0000000 0.5000000
+ 0 1 0 0 0 1 1 0 0 0.5000000 0.0000000 0.5000000
+ 0 -1 0 0 0 -1 -1 0 0 0.5000000 0.0000000 0.5000000
+ 0 1 0 1 0 0 0 0 -1 0.5000000 0.0000000 0.5000000
+ 0 -1 0 -1 0 0 0 0 1 0.5000000 0.0000000 0.5000000
+ 0 1 0 0 0 -1 -1 0 0 0.5000000 0.0000000 0.5000000
+ 0 -1 0 0 0 1 1 0 0 0.5000000 0.0000000 0.5000000
+ 0 1 0 -1 0 0 0 0 1 0.5000000 0.0000000 0.5000000
+ 0 -1 0 1 0 0 0 0 -1 0.5000000 0.0000000 0.5000000
+ 0 -1 0 0 0 -1 1 0 0 0.5000000 0.0000000 0.5000000
+ 0 1 0 0 0 1 -1 0 0 0.5000000 0.0000000 0.5000000
+ 0 -1 0 -1 0 0 0 0 -1 0.5000000 0.0000000 0.5000000
+ 0 1 0 1 0 0 0 0 1 0.5000000 0.0000000 0.5000000
+ 0 -1 0 0 0 1 -1 0 0 0.5000000 0.0000000 0.5000000
+ 0 1 0 0 0 -1 1 0 0 0.5000000 0.0000000 0.5000000
+ 0 -1 0 1 0 0 0 0 1 0.5000000 0.0000000 0.5000000
+ 0 1 0 -1 0 0 0 0 -1 0.5000000 0.0000000 0.5000000
+ 0 0 1 1 0 0 0 1 0 0.5000000 0.0000000 0.5000000
+ 0 0 -1 -1 0 0 0 -1 0 0.5000000 0.0000000 0.5000000
+ 1 0 0 0 0 -1 0 1 0 0.5000000 0.0000000 0.5000000
+-1 0 0 0 0 1 0 -1 0 0.5000000 0.0000000 0.5000000
+ 0 0 -1 -1 0 0 0 1 0 0.5000000 0.0000000 0.5000000
+ 0 0 1 1 0 0 0 -1 0 0.5000000 0.0000000 0.5000000
+-1 0 0 0 0 1 0 1 0 0.5000000 0.0000000 0.5000000
+ 1 0 0 0 0 -1 0 -1 0 0.5000000 0.0000000 0.5000000
+ 0 0 -1 1 0 0 0 -1 0 0.5000000 0.0000000 0.5000000
+ 0 0 1 -1 0 0 0 1 0 0.5000000 0.0000000 0.5000000
+-1 0 0 0 0 -1 0 -1 0 0.5000000 0.0000000 0.5000000
+ 1 0 0 0 0 1 0 1 0 0.5000000 0.0000000 0.5000000
+ 0 0 1 -1 0 0 0 -1 0 0.5000000 0.0000000 0.5000000
+ 0 0 -1 1 0 0 0 1 0 0.5000000 0.0000000 0.5000000
+ 1 0 0 0 0 1 0 -1 0 0.5000000 0.0000000 0.5000000
+-1 0 0 0 0 -1 0 1 0 0.5000000 0.0000000 0.5000000
+ 1 0 0 0 1 0 0 0 1 0.2500000 0.7500000 0.5000000
+-1 0 0 0 -1 0 0 0 -1 0.2500000 0.7500000 0.5000000
+ 0 0 -1 0 1 0 1 0 0 0.2500000 0.7500000 0.5000000
+ 0 0 1 0 -1 0 -1 0 0 0.2500000 0.7500000 0.5000000
+-1 0 0 0 1 0 0 0 -1 0.2500000 0.7500000 0.5000000
+ 1 0 0 0 -1 0 0 0 1 0.2500000 0.7500000 0.5000000
+ 0 0 1 0 1 0 -1 0 0 0.2500000 0.7500000 0.5000000
+ 0 0 -1 0 -1 0 1 0 0 0.2500000 0.7500000 0.5000000
+ 1 0 0 0 -1 0 0 0 -1 0.2500000 0.7500000 0.5000000
+-1 0 0 0 1 0 0 0 1 0.2500000 0.7500000 0.5000000
+ 0 0 -1 0 -1 0 -1 0 0 0.2500000 0.7500000 0.5000000
+ 0 0 1 0 1 0 1 0 0 0.2500000 0.7500000 0.5000000
+-1 0 0 0 -1 0 0 0 1 0.2500000 0.7500000 0.5000000
+ 1 0 0 0 1 0 0 0 -1 0.2500000 0.7500000 0.5000000
+ 0 0 1 0 -1 0 1 0 0 0.2500000 0.7500000 0.5000000
+ 0 0 -1 0 1 0 -1 0 0 0.2500000 0.7500000 0.5000000
+ 0 1 0 0 0 1 1 0 0 0.2500000 0.7500000 0.5000000
+ 0 -1 0 0 0 -1 -1 0 0 0.2500000 0.7500000 0.5000000
+ 0 1 0 1 0 0 0 0 -1 0.2500000 0.7500000 0.5000000
+ 0 -1 0 -1 0 0 0 0 1 0.2500000 0.7500000 0.5000000
+ 0 1 0 0 0 -1 -1 0 0 0.2500000 0.7500000 0.5000000
+ 0 -1 0 0 0 1 1 0 0 0.2500000 0.7500000 0.5000000
+ 0 1 0 -1 0 0 0 0 1 0.2500000 0.7500000 0.5000000
+ 0 -1 0 1 0 0 0 0 -1 0.2500000 0.7500000 0.5000000
+ 0 -1 0 0 0 -1 1 0 0 0.2500000 0.7500000 0.5000000
+ 0 1 0 0 0 1 -1 0 0 0.2500000 0.7500000 0.5000000
+ 0 -1 0 -1 0 0 0 0 -1 0.2500000 0.7500000 0.5000000
+ 0 1 0 1 0 0 0 0 1 0.2500000 0.7500000 0.5000000
+ 0 -1 0 0 0 1 -1 0 0 0.2500000 0.7500000 0.5000000
+ 0 1 0 0 0 -1 1 0 0 0.2500000 0.7500000 0.5000000
+ 0 -1 0 1 0 0 0 0 1 0.2500000 0.7500000 0.5000000
+ 0 1 0 -1 0 0 0 0 -1 0.2500000 0.7500000 0.5000000
+ 0 0 1 1 0 0 0 1 0 0.2500000 0.7500000 0.5000000
+ 0 0 -1 -1 0 0 0 -1 0 0.2500000 0.7500000 0.5000000
+ 1 0 0 0 0 -1 0 1 0 0.2500000 0.7500000 0.5000000
+-1 0 0 0 0 1 0 -1 0 0.2500000 0.7500000 0.5000000
+ 0 0 -1 -1 0 0 0 1 0 0.2500000 0.7500000 0.5000000
+ 0 0 1 1 0 0 0 -1 0 0.2500000 0.7500000 0.5000000
+-1 0 0 0 0 1 0 1 0 0.2500000 0.7500000 0.5000000
+ 1 0 0 0 0 -1 0 -1 0 0.2500000 0.7500000 0.5000000
+ 0 0 -1 1 0 0 0 -1 0 0.2500000 0.7500000 0.5000000
+ 0 0 1 -1 0 0 0 1 0 0.2500000 0.7500000 0.5000000
+-1 0 0 0 0 -1 0 -1 0 0.2500000 0.7500000 0.5000000
+ 1 0 0 0 0 1 0 1 0 0.2500000 0.7500000 0.5000000
+ 0 0 1 -1 0 0 0 -1 0 0.2500000 0.7500000 0.5000000
+ 0 0 -1 1 0 0 0 1 0 0.2500000 0.7500000 0.5000000
+ 1 0 0 0 0 1 0 -1 0 0.2500000 0.7500000 0.5000000
+-1 0 0 0 0 -1 0 1 0 0.2500000 0.7500000 0.5000000
+ 1 0 0 0 1 0 0 0 1 0.0000000 0.5000000 0.5000000
+-1 0 0 0 -1 0 0 0 -1 0.0000000 0.5000000 0.5000000
+ 0 0 -1 0 1 0 1 0 0 0.0000000 0.5000000 0.5000000
+ 0 0 1 0 -1 0 -1 0 0 0.0000000 0.5000000 0.5000000
+-1 0 0 0 1 0 0 0 -1 0.0000000 0.5000000 0.5000000
+ 1 0 0 0 -1 0 0 0 1 0.0000000 0.5000000 0.5000000
+ 0 0 1 0 1 0 -1 0 0 0.0000000 0.5000000 0.5000000
+ 0 0 -1 0 -1 0 1 0 0 0.0000000 0.5000000 0.5000000
+ 1 0 0 0 -1 0 0 0 -1 0.0000000 0.5000000 0.5000000
+-1 0 0 0 1 0 0 0 1 0.0000000 0.5000000 0.5000000
+ 0 0 -1 0 -1 0 -1 0 0 0.0000000 0.5000000 0.5000000
+ 0 0 1 0 1 0 1 0 0 0.0000000 0.5000000 0.5000000
+-1 0 0 0 -1 0 0 0 1 0.0000000 0.5000000 0.5000000
+ 1 0 0 0 1 0 0 0 -1 0.0000000 0.5000000 0.5000000
+ 0 0 1 0 -1 0 1 0 0 0.0000000 0.5000000 0.5000000
+ 0 0 -1 0 1 0 -1 0 0 0.0000000 0.5000000 0.5000000
+ 0 1 0 0 0 1 1 0 0 0.0000000 0.5000000 0.5000000
+ 0 -1 0 0 0 -1 -1 0 0 0.0000000 0.5000000 0.5000000
+ 0 1 0 1 0 0 0 0 -1 0.0000000 0.5000000 0.5000000
+ 0 -1 0 -1 0 0 0 0 1 0.0000000 0.5000000 0.5000000
+ 0 1 0 0 0 -1 -1 0 0 0.0000000 0.5000000 0.5000000
+ 0 -1 0 0 0 1 1 0 0 0.0000000 0.5000000 0.5000000
+ 0 1 0 -1 0 0 0 0 1 0.0000000 0.5000000 0.5000000
+ 0 -1 0 1 0 0 0 0 -1 0.0000000 0.5000000 0.5000000
+ 0 -1 0 0 0 -1 1 0 0 0.0000000 0.5000000 0.5000000
+ 0 1 0 0 0 1 -1 0 0 0.0000000 0.5000000 0.5000000
+ 0 -1 0 -1 0 0 0 0 -1 0.0000000 0.5000000 0.5000000
+ 0 1 0 1 0 0 0 0 1 0.0000000 0.5000000 0.5000000
+ 0 -1 0 0 0 1 -1 0 0 0.0000000 0.5000000 0.5000000
+ 0 1 0 0 0 -1 1 0 0 0.0000000 0.5000000 0.5000000
+ 0 -1 0 1 0 0 0 0 1 0.0000000 0.5000000 0.5000000
+ 0 1 0 -1 0 0 0 0 -1 0.0000000 0.5000000 0.5000000
+ 0 0 1 1 0 0 0 1 0 0.0000000 0.5000000 0.5000000
+ 0 0 -1 -1 0 0 0 -1 0 0.0000000 0.5000000 0.5000000
+ 1 0 0 0 0 -1 0 1 0 0.0000000 0.5000000 0.5000000
+-1 0 0 0 0 1 0 -1 0 0.0000000 0.5000000 0.5000000
+ 0 0 -1 -1 0 0 0 1 0 0.0000000 0.5000000 0.5000000
+ 0 0 1 1 0 0 0 -1 0 0.0000000 0.5000000 0.5000000
+-1 0 0 0 0 1 0 1 0 0.0000000 0.5000000 0.5000000
+ 1 0 0 0 0 -1 0 -1 0 0.0000000 0.5000000 0.5000000
+ 0 0 -1 1 0 0 0 -1 0 0.0000000 0.5000000 0.5000000
+ 0 0 1 -1 0 0 0 1 0 0.0000000 0.5000000 0.5000000
+-1 0 0 0 0 -1 0 -1 0 0.0000000 0.5000000 0.5000000
+ 1 0 0 0 0 1 0 1 0 0.0000000 0.5000000 0.5000000
+ 0 0 1 -1 0 0 0 -1 0 0.0000000 0.5000000 0.5000000
+ 0 0 -1 1 0 0 0 1 0 0.0000000 0.5000000 0.5000000
+ 1 0 0 0 0 1 0 -1 0 0.0000000 0.5000000 0.5000000
+-1 0 0 0 0 -1 0 1 0 0.0000000 0.5000000 0.5000000
+ 1 0 0 0 1 0 0 0 1 0.7500000 0.2500000 0.5000000
+-1 0 0 0 -1 0 0 0 -1 0.7500000 0.2500000 0.5000000
+ 0 0 -1 0 1 0 1 0 0 0.7500000 0.2500000 0.5000000
+ 0 0 1 0 -1 0 -1 0 0 0.7500000 0.2500000 0.5000000
+-1 0 0 0 1 0 0 0 -1 0.7500000 0.2500000 0.5000000
+ 1 0 0 0 -1 0 0 0 1 0.7500000 0.2500000 0.5000000
+ 0 0 1 0 1 0 -1 0 0 0.7500000 0.2500000 0.5000000
+ 0 0 -1 0 -1 0 1 0 0 0.7500000 0.2500000 0.5000000
+ 1 0 0 0 -1 0 0 0 -1 0.7500000 0.2500000 0.5000000
+-1 0 0 0 1 0 0 0 1 0.7500000 0.2500000 0.5000000
+ 0 0 -1 0 -1 0 -1 0 0 0.7500000 0.2500000 0.5000000
+ 0 0 1 0 1 0 1 0 0 0.7500000 0.2500000 0.5000000
+-1 0 0 0 -1 0 0 0 1 0.7500000 0.2500000 0.5000000
+ 1 0 0 0 1 0 0 0 -1 0.7500000 0.2500000 0.5000000
+ 0 0 1 0 -1 0 1 0 0 0.7500000 0.2500000 0.5000000
+ 0 0 -1 0 1 0 -1 0 0 0.7500000 0.2500000 0.5000000
+ 0 1 0 0 0 1 1 0 0 0.7500000 0.2500000 0.5000000
+ 0 -1 0 0 0 -1 -1 0 0 0.7500000 0.2500000 0.5000000
+ 0 1 0 1 0 0 0 0 -1 0.7500000 0.2500000 0.5000000
+ 0 -1 0 -1 0 0 0 0 1 0.7500000 0.2500000 0.5000000
+ 0 1 0 0 0 -1 -1 0 0 0.7500000 0.2500000 0.5000000
+ 0 -1 0 0 0 1 1 0 0 0.7500000 0.2500000 0.5000000
+ 0 1 0 -1 0 0 0 0 1 0.7500000 0.2500000 0.5000000
+ 0 -1 0 1 0 0 0 0 -1 0.7500000 0.2500000 0.5000000
+ 0 -1 0 0 0 -1 1 0 0 0.7500000 0.2500000 0.5000000
+ 0 1 0 0 0 1 -1 0 0 0.7500000 0.2500000 0.5000000
+ 0 -1 0 -1 0 0 0 0 -1 0.7500000 0.2500000 0.5000000
+ 0 1 0 1 0 0 0 0 1 0.7500000 0.2500000 0.5000000
+ 0 -1 0 0 0 1 -1 0 0 0.7500000 0.2500000 0.5000000
+ 0 1 0 0 0 -1 1 0 0 0.7500000 0.2500000 0.5000000
+ 0 -1 0 1 0 0 0 0 1 0.7500000 0.2500000 0.5000000
+ 0 1 0 -1 0 0 0 0 -1 0.7500000 0.2500000 0.5000000
+ 0 0 1 1 0 0 0 1 0 0.7500000 0.2500000 0.5000000
+ 0 0 -1 -1 0 0 0 -1 0 0.7500000 0.2500000 0.5000000
+ 1 0 0 0 0 -1 0 1 0 0.7500000 0.2500000 0.5000000
+-1 0 0 0 0 1 0 -1 0 0.7500000 0.2500000 0.5000000
+ 0 0 -1 -1 0 0 0 1 0 0.7500000 0.2500000 0.5000000
+ 0 0 1 1 0 0 0 -1 0 0.7500000 0.2500000 0.5000000
+-1 0 0 0 0 1 0 1 0 0.7500000 0.2500000 0.5000000
+ 1 0 0 0 0 -1 0 -1 0 0.7500000 0.2500000 0.5000000
+ 0 0 -1 1 0 0 0 -1 0 0.7500000 0.2500000 0.5000000
+ 0 0 1 -1 0 0 0 1 0 0.7500000 0.2500000 0.5000000
+-1 0 0 0 0 -1 0 -1 0 0.7500000 0.2500000 0.5000000
+ 1 0 0 0 0 1 0 1 0 0.7500000 0.2500000 0.5000000
+ 0 0 1 -1 0 0 0 -1 0 0.7500000 0.2500000 0.5000000
+ 0 0 -1 1 0 0 0 1 0 0.7500000 0.2500000 0.5000000
+ 1 0 0 0 0 1 0 -1 0 0.7500000 0.2500000 0.5000000
+-1 0 0 0 0 -1 0 1 0 0.7500000 0.2500000 0.5000000
+ 1 0 0 0 1 0 0 0 1 0.7500000 0.0000000 0.2500000
+-1 0 0 0 -1 0 0 0 -1 0.7500000 0.0000000 0.2500000
+ 0 0 -1 0 1 0 1 0 0 0.7500000 0.0000000 0.2500000
+ 0 0 1 0 -1 0 -1 0 0 0.7500000 0.0000000 0.2500000
+-1 0 0 0 1 0 0 0 -1 0.7500000 0.0000000 0.2500000
+ 1 0 0 0 -1 0 0 0 1 0.7500000 0.0000000 0.2500000
+ 0 0 1 0 1 0 -1 0 0 0.7500000 0.0000000 0.2500000
+ 0 0 -1 0 -1 0 1 0 0 0.7500000 0.0000000 0.2500000
+ 1 0 0 0 -1 0 0 0 -1 0.7500000 0.0000000 0.2500000
+-1 0 0 0 1 0 0 0 1 0.7500000 0.0000000 0.2500000
+ 0 0 -1 0 -1 0 -1 0 0 0.7500000 0.0000000 0.2500000
+ 0 0 1 0 1 0 1 0 0 0.7500000 0.0000000 0.2500000
+-1 0 0 0 -1 0 0 0 1 0.7500000 0.0000000 0.2500000
+ 1 0 0 0 1 0 0 0 -1 0.7500000 0.0000000 0.2500000
+ 0 0 1 0 -1 0 1 0 0 0.7500000 0.0000000 0.2500000
+ 0 0 -1 0 1 0 -1 0 0 0.7500000 0.0000000 0.2500000
+ 0 1 0 0 0 1 1 0 0 0.7500000 0.0000000 0.2500000
+ 0 -1 0 0 0 -1 -1 0 0 0.7500000 0.0000000 0.2500000
+ 0 1 0 1 0 0 0 0 -1 0.7500000 0.0000000 0.2500000
+ 0 -1 0 -1 0 0 0 0 1 0.7500000 0.0000000 0.2500000
+ 0 1 0 0 0 -1 -1 0 0 0.7500000 0.0000000 0.2500000
+ 0 -1 0 0 0 1 1 0 0 0.7500000 0.0000000 0.2500000
+ 0 1 0 -1 0 0 0 0 1 0.7500000 0.0000000 0.2500000
+ 0 -1 0 1 0 0 0 0 -1 0.7500000 0.0000000 0.2500000
+ 0 -1 0 0 0 -1 1 0 0 0.7500000 0.0000000 0.2500000
+ 0 1 0 0 0 1 -1 0 0 0.7500000 0.0000000 0.2500000
+ 0 -1 0 -1 0 0 0 0 -1 0.7500000 0.0000000 0.2500000
+ 0 1 0 1 0 0 0 0 1 0.7500000 0.0000000 0.2500000
+ 0 -1 0 0 0 1 -1 0 0 0.7500000 0.0000000 0.2500000
+ 0 1 0 0 0 -1 1 0 0 0.7500000 0.0000000 0.2500000
+ 0 -1 0 1 0 0 0 0 1 0.7500000 0.0000000 0.2500000
+ 0 1 0 -1 0 0 0 0 -1 0.7500000 0.0000000 0.2500000
+ 0 0 1 1 0 0 0 1 0 0.7500000 0.0000000 0.2500000
+ 0 0 -1 -1 0 0 0 -1 0 0.7500000 0.0000000 0.2500000
+ 1 0 0 0 0 -1 0 1 0 0.7500000 0.0000000 0.2500000
+-1 0 0 0 0 1 0 -1 0 0.7500000 0.0000000 0.2500000
+ 0 0 -1 -1 0 0 0 1 0 0.7500000 0.0000000 0.2500000
+ 0 0 1 1 0 0 0 -1 0 0.7500000 0.0000000 0.2500000
+-1 0 0 0 0 1 0 1 0 0.7500000 0.0000000 0.2500000
+ 1 0 0 0 0 -1 0 -1 0 0.7500000 0.0000000 0.2500000
+ 0 0 -1 1 0 0 0 -1 0 0.7500000 0.0000000 0.2500000
+ 0 0 1 -1 0 0 0 1 0 0.7500000 0.0000000 0.2500000
+-1 0 0 0 0 -1 0 -1 0 0.7500000 0.0000000 0.2500000
+ 1 0 0 0 0 1 0 1 0 0.7500000 0.0000000 0.2500000
+ 0 0 1 -1 0 0 0 -1 0 0.7500000 0.0000000 0.2500000
+ 0 0 -1 1 0 0 0 1 0 0.7500000 0.0000000 0.2500000
+ 1 0 0 0 0 1 0 -1 0 0.7500000 0.0000000 0.2500000
+-1 0 0 0 0 -1 0 1 0 0.7500000 0.0000000 0.2500000
+ 1 0 0 0 1 0 0 0 1 0.5000000 0.7500000 0.2500000
+-1 0 0 0 -1 0 0 0 -1 0.5000000 0.7500000 0.2500000
+ 0 0 -1 0 1 0 1 0 0 0.5000000 0.7500000 0.2500000
+ 0 0 1 0 -1 0 -1 0 0 0.5000000 0.7500000 0.2500000
+-1 0 0 0 1 0 0 0 -1 0.5000000 0.7500000 0.2500000
+ 1 0 0 0 -1 0 0 0 1 0.5000000 0.7500000 0.2500000
+ 0 0 1 0 1 0 -1 0 0 0.5000000 0.7500000 0.2500000
+ 0 0 -1 0 -1 0 1 0 0 0.5000000 0.7500000 0.2500000
+ 1 0 0 0 -1 0 0 0 -1 0.5000000 0.7500000 0.2500000
+-1 0 0 0 1 0 0 0 1 0.5000000 0.7500000 0.2500000
+ 0 0 -1 0 -1 0 -1 0 0 0.5000000 0.7500000 0.2500000
+ 0 0 1 0 1 0 1 0 0 0.5000000 0.7500000 0.2500000
+-1 0 0 0 -1 0 0 0 1 0.5000000 0.7500000 0.2500000
+ 1 0 0 0 1 0 0 0 -1 0.5000000 0.7500000 0.2500000
+ 0 0 1 0 -1 0 1 0 0 0.5000000 0.7500000 0.2500000
+ 0 0 -1 0 1 0 -1 0 0 0.5000000 0.7500000 0.2500000
+ 0 1 0 0 0 1 1 0 0 0.5000000 0.7500000 0.2500000
+ 0 -1 0 0 0 -1 -1 0 0 0.5000000 0.7500000 0.2500000
+ 0 1 0 1 0 0 0 0 -1 0.5000000 0.7500000 0.2500000
+ 0 -1 0 -1 0 0 0 0 1 0.5000000 0.7500000 0.2500000
+ 0 1 0 0 0 -1 -1 0 0 0.5000000 0.7500000 0.2500000
+ 0 -1 0 0 0 1 1 0 0 0.5000000 0.7500000 0.2500000
+ 0 1 0 -1 0 0 0 0 1 0.5000000 0.7500000 0.2500000
+ 0 -1 0 1 0 0 0 0 -1 0.5000000 0.7500000 0.2500000
+ 0 -1 0 0 0 -1 1 0 0 0.5000000 0.7500000 0.2500000
+ 0 1 0 0 0 1 -1 0 0 0.5000000 0.7500000 0.2500000
+ 0 -1 0 -1 0 0 0 0 -1 0.5000000 0.7500000 0.2500000
+ 0 1 0 1 0 0 0 0 1 0.5000000 0.7500000 0.2500000
+ 0 -1 0 0 0 1 -1 0 0 0.5000000 0.7500000 0.2500000
+ 0 1 0 0 0 -1 1 0 0 0.5000000 0.7500000 0.2500000
+ 0 -1 0 1 0 0 0 0 1 0.5000000 0.7500000 0.2500000
+ 0 1 0 -1 0 0 0 0 -1 0.5000000 0.7500000 0.2500000
+ 0 0 1 1 0 0 0 1 0 0.5000000 0.7500000 0.2500000
+ 0 0 -1 -1 0 0 0 -1 0 0.5000000 0.7500000 0.2500000
+ 1 0 0 0 0 -1 0 1 0 0.5000000 0.7500000 0.2500000
+-1 0 0 0 0 1 0 -1 0 0.5000000 0.7500000 0.2500000
+ 0 0 -1 -1 0 0 0 1 0 0.5000000 0.7500000 0.2500000
+ 0 0 1 1 0 0 0 -1 0 0.5000000 0.7500000 0.2500000
+-1 0 0 0 0 1 0 1 0 0.5000000 0.7500000 0.2500000
+ 1 0 0 0 0 -1 0 -1 0 0.5000000 0.7500000 0.2500000
+ 0 0 -1 1 0 0 0 -1 0 0.5000000 0.7500000 0.2500000
+ 0 0 1 -1 0 0 0 1 0 0.5000000 0.7500000 0.2500000
+-1 0 0 0 0 -1 0 -1 0 0.5000000 0.7500000 0.2500000
+ 1 0 0 0 0 1 0 1 0 0.5000000 0.7500000 0.2500000
+ 0 0 1 -1 0 0 0 -1 0 0.5000000 0.7500000 0.2500000
+ 0 0 -1 1 0 0 0 1 0 0.5000000 0.7500000 0.2500000
+ 1 0 0 0 0 1 0 -1 0 0.5000000 0.7500000 0.2500000
+-1 0 0 0 0 -1 0 1 0 0.5000000 0.7500000 0.2500000
+ 1 0 0 0 1 0 0 0 1 0.2500000 0.5000000 0.2500000
+-1 0 0 0 -1 0 0 0 -1 0.2500000 0.5000000 0.2500000
+ 0 0 -1 0 1 0 1 0 0 0.2500000 0.5000000 0.2500000
+ 0 0 1 0 -1 0 -1 0 0 0.2500000 0.5000000 0.2500000
+-1 0 0 0 1 0 0 0 -1 0.2500000 0.5000000 0.2500000
+ 1 0 0 0 -1 0 0 0 1 0.2500000 0.5000000 0.2500000
+ 0 0 1 0 1 0 -1 0 0 0.2500000 0.5000000 0.2500000
+ 0 0 -1 0 -1 0 1 0 0 0.2500000 0.5000000 0.2500000
+ 1 0 0 0 -1 0 0 0 -1 0.2500000 0.5000000 0.2500000
+-1 0 0 0 1 0 0 0 1 0.2500000 0.5000000 0.2500000
+ 0 0 -1 0 -1 0 -1 0 0 0.2500000 0.5000000 0.2500000
+ 0 0 1 0 1 0 1 0 0 0.2500000 0.5000000 0.2500000
+-1 0 0 0 -1 0 0 0 1 0.2500000 0.5000000 0.2500000
+ 1 0 0 0 1 0 0 0 -1 0.2500000 0.5000000 0.2500000
+ 0 0 1 0 -1 0 1 0 0 0.2500000 0.5000000 0.2500000
+ 0 0 -1 0 1 0 -1 0 0 0.2500000 0.5000000 0.2500000
+ 0 1 0 0 0 1 1 0 0 0.2500000 0.5000000 0.2500000
+ 0 -1 0 0 0 -1 -1 0 0 0.2500000 0.5000000 0.2500000
+ 0 1 0 1 0 0 0 0 -1 0.2500000 0.5000000 0.2500000
+ 0 -1 0 -1 0 0 0 0 1 0.2500000 0.5000000 0.2500000
+ 0 1 0 0 0 -1 -1 0 0 0.2500000 0.5000000 0.2500000
+ 0 -1 0 0 0 1 1 0 0 0.2500000 0.5000000 0.2500000
+ 0 1 0 -1 0 0 0 0 1 0.2500000 0.5000000 0.2500000
+ 0 -1 0 1 0 0 0 0 -1 0.2500000 0.5000000 0.2500000
+ 0 -1 0 0 0 -1 1 0 0 0.2500000 0.5000000 0.2500000
+ 0 1 0 0 0 1 -1 0 0 0.2500000 0.5000000 0.2500000
+ 0 -1 0 -1 0 0 0 0 -1 0.2500000 0.5000000 0.2500000
+ 0 1 0 1 0 0 0 0 1 0.2500000 0.5000000 0.2500000
+ 0 -1 0 0 0 1 -1 0 0 0.2500000 0.5000000 0.2500000
+ 0 1 0 0 0 -1 1 0 0 0.2500000 0.5000000 0.2500000
+ 0 -1 0 1 0 0 0 0 1 0.2500000 0.5000000 0.2500000
+ 0 1 0 -1 0 0 0 0 -1 0.2500000 0.5000000 0.2500000
+ 0 0 1 1 0 0 0 1 0 0.2500000 0.5000000 0.2500000
+ 0 0 -1 -1 0 0 0 -1 0 0.2500000 0.5000000 0.2500000
+ 1 0 0 0 0 -1 0 1 0 0.2500000 0.5000000 0.2500000
+-1 0 0 0 0 1 0 -1 0 0.2500000 0.5000000 0.2500000
+ 0 0 -1 -1 0 0 0 1 0 0.2500000 0.5000000 0.2500000
+ 0 0 1 1 0 0 0 -1 0 0.2500000 0.5000000 0.2500000
+-1 0 0 0 0 1 0 1 0 0.2500000 0.5000000 0.2500000
+ 1 0 0 0 0 -1 0 -1 0 0.2500000 0.5000000 0.2500000
+ 0 0 -1 1 0 0 0 -1 0 0.2500000 0.5000000 0.2500000
+ 0 0 1 -1 0 0 0 1 0 0.2500000 0.5000000 0.2500000
+-1 0 0 0 0 -1 0 -1 0 0.2500000 0.5000000 0.2500000
+ 1 0 0 0 0 1 0 1 0 0.2500000 0.5000000 0.2500000
+ 0 0 1 -1 0 0 0 -1 0 0.2500000 0.5000000 0.2500000
+ 0 0 -1 1 0 0 0 1 0 0.2500000 0.5000000 0.2500000
+ 1 0 0 0 0 1 0 -1 0 0.2500000 0.5000000 0.2500000
+-1 0 0 0 0 -1 0 1 0 0.2500000 0.5000000 0.2500000
+ 1 0 0 0 1 0 0 0 1 0.0000000 0.2500000 0.2500000
+-1 0 0 0 -1 0 0 0 -1 0.0000000 0.2500000 0.2500000
+ 0 0 -1 0 1 0 1 0 0 0.0000000 0.2500000 0.2500000
+ 0 0 1 0 -1 0 -1 0 0 0.0000000 0.2500000 0.2500000
+-1 0 0 0 1 0 0 0 -1 0.0000000 0.2500000 0.2500000
+ 1 0 0 0 -1 0 0 0 1 0.0000000 0.2500000 0.2500000
+ 0 0 1 0 1 0 -1 0 0 0.0000000 0.2500000 0.2500000
+ 0 0 -1 0 -1 0 1 0 0 0.0000000 0.2500000 0.2500000
+ 1 0 0 0 -1 0 0 0 -1 0.0000000 0.2500000 0.2500000
+-1 0 0 0 1 0 0 0 1 0.0000000 0.2500000 0.2500000
+ 0 0 -1 0 -1 0 -1 0 0 0.0000000 0.2500000 0.2500000
+ 0 0 1 0 1 0 1 0 0 0.0000000 0.2500000 0.2500000
+-1 0 0 0 -1 0 0 0 1 0.0000000 0.2500000 0.2500000
+ 1 0 0 0 1 0 0 0 -1 0.0000000 0.2500000 0.2500000
+ 0 0 1 0 -1 0 1 0 0 0.0000000 0.2500000 0.2500000
+ 0 0 -1 0 1 0 -1 0 0 0.0000000 0.2500000 0.2500000
+ 0 1 0 0 0 1 1 0 0 0.0000000 0.2500000 0.2500000
+ 0 -1 0 0 0 -1 -1 0 0 0.0000000 0.2500000 0.2500000
+ 0 1 0 1 0 0 0 0 -1 0.0000000 0.2500000 0.2500000
+ 0 -1 0 -1 0 0 0 0 1 0.0000000 0.2500000 0.2500000
+ 0 1 0 0 0 -1 -1 0 0 0.0000000 0.2500000 0.2500000
+ 0 -1 0 0 0 1 1 0 0 0.0000000 0.2500000 0.2500000
+ 0 1 0 -1 0 0 0 0 1 0.0000000 0.2500000 0.2500000
+ 0 -1 0 1 0 0 0 0 -1 0.0000000 0.2500000 0.2500000
+ 0 -1 0 0 0 -1 1 0 0 0.0000000 0.2500000 0.2500000
+ 0 1 0 0 0 1 -1 0 0 0.0000000 0.2500000 0.2500000
+ 0 -1 0 -1 0 0 0 0 -1 0.0000000 0.2500000 0.2500000
+ 0 1 0 1 0 0 0 0 1 0.0000000 0.2500000 0.2500000
+ 0 -1 0 0 0 1 -1 0 0 0.0000000 0.2500000 0.2500000
+ 0 1 0 0 0 -1 1 0 0 0.0000000 0.2500000 0.2500000
+ 0 -1 0 1 0 0 0 0 1 0.0000000 0.2500000 0.2500000
+ 0 1 0 -1 0 0 0 0 -1 0.0000000 0.2500000 0.2500000
+ 0 0 1 1 0 0 0 1 0 0.0000000 0.2500000 0.2500000
+ 0 0 -1 -1 0 0 0 -1 0 0.0000000 0.2500000 0.2500000
+ 1 0 0 0 0 -1 0 1 0 0.0000000 0.2500000 0.2500000
+-1 0 0 0 0 1 0 -1 0 0.0000000 0.2500000 0.2500000
+ 0 0 -1 -1 0 0 0 1 0 0.0000000 0.2500000 0.2500000
+ 0 0 1 1 0 0 0 -1 0 0.0000000 0.2500000 0.2500000
+-1 0 0 0 0 1 0 1 0 0.0000000 0.2500000 0.2500000
+ 1 0 0 0 0 -1 0 -1 0 0.0000000 0.2500000 0.2500000
+ 0 0 -1 1 0 0 0 -1 0 0.0000000 0.2500000 0.2500000
+ 0 0 1 -1 0 0 0 1 0 0.0000000 0.2500000 0.2500000
+-1 0 0 0 0 -1 0 -1 0 0.0000000 0.2500000 0.2500000
+ 1 0 0 0 0 1 0 1 0 0.0000000 0.2500000 0.2500000
+ 0 0 1 -1 0 0 0 -1 0 0.0000000 0.2500000 0.2500000
+ 0 0 -1 1 0 0 0 1 0 0.0000000 0.2500000 0.2500000
+ 1 0 0 0 0 1 0 -1 0 0.0000000 0.2500000 0.2500000
+-1 0 0 0 0 -1 0 1 0 0.0000000 0.2500000 0.2500000
+ 1 0 0 0 1 0 0 0 1 0.7500000 0.2500000 0.0000000
+-1 0 0 0 -1 0 0 0 -1 0.7500000 0.2500000 0.0000000
+ 0 0 -1 0 1 0 1 0 0 0.7500000 0.2500000 0.0000000
+ 0 0 1 0 -1 0 -1 0 0 0.7500000 0.2500000 0.0000000
+-1 0 0 0 1 0 0 0 -1 0.7500000 0.2500000 0.0000000
+ 1 0 0 0 -1 0 0 0 1 0.7500000 0.2500000 0.0000000
+ 0 0 1 0 1 0 -1 0 0 0.7500000 0.2500000 0.0000000
+ 0 0 -1 0 -1 0 1 0 0 0.7500000 0.2500000 0.0000000
+ 1 0 0 0 -1 0 0 0 -1 0.7500000 0.2500000 0.0000000
+-1 0 0 0 1 0 0 0 1 0.7500000 0.2500000 0.0000000
+ 0 0 -1 0 -1 0 -1 0 0 0.7500000 0.2500000 0.0000000
+ 0 0 1 0 1 0 1 0 0 0.7500000 0.2500000 0.0000000
+-1 0 0 0 -1 0 0 0 1 0.7500000 0.2500000 0.0000000
+ 1 0 0 0 1 0 0 0 -1 0.7500000 0.2500000 0.0000000
+ 0 0 1 0 -1 0 1 0 0 0.7500000 0.2500000 0.0000000
+ 0 0 -1 0 1 0 -1 0 0 0.7500000 0.2500000 0.0000000
+ 0 1 0 0 0 1 1 0 0 0.7500000 0.2500000 0.0000000
+ 0 -1 0 0 0 -1 -1 0 0 0.7500000 0.2500000 0.0000000
+ 0 1 0 1 0 0 0 0 -1 0.7500000 0.2500000 0.0000000
+ 0 -1 0 -1 0 0 0 0 1 0.7500000 0.2500000 0.0000000
+ 0 1 0 0 0 -1 -1 0 0 0.7500000 0.2500000 0.0000000
+ 0 -1 0 0 0 1 1 0 0 0.7500000 0.2500000 0.0000000
+ 0 1 0 -1 0 0 0 0 1 0.7500000 0.2500000 0.0000000
+ 0 -1 0 1 0 0 0 0 -1 0.7500000 0.2500000 0.0000000
+ 0 -1 0 0 0 -1 1 0 0 0.7500000 0.2500000 0.0000000
+ 0 1 0 0 0 1 -1 0 0 0.7500000 0.2500000 0.0000000
+ 0 -1 0 -1 0 0 0 0 -1 0.7500000 0.2500000 0.0000000
+ 0 1 0 1 0 0 0 0 1 0.7500000 0.2500000 0.0000000
+ 0 -1 0 0 0 1 -1 0 0 0.7500000 0.2500000 0.0000000
+ 0 1 0 0 0 -1 1 0 0 0.7500000 0.2500000 0.0000000
+ 0 -1 0 1 0 0 0 0 1 0.7500000 0.2500000 0.0000000
+ 0 1 0 -1 0 0 0 0 -1 0.7500000 0.2500000 0.0000000
+ 0 0 1 1 0 0 0 1 0 0.7500000 0.2500000 0.0000000
+ 0 0 -1 -1 0 0 0 -1 0 0.7500000 0.2500000 0.0000000
+ 1 0 0 0 0 -1 0 1 0 0.7500000 0.2500000 0.0000000
+-1 0 0 0 0 1 0 -1 0 0.7500000 0.2500000 0.0000000
+ 0 0 -1 -1 0 0 0 1 0 0.7500000 0.2500000 0.0000000
+ 0 0 1 1 0 0 0 -1 0 0.7500000 0.2500000 0.0000000
+-1 0 0 0 0 1 0 1 0 0.7500000 0.2500000 0.0000000
+ 1 0 0 0 0 -1 0 -1 0 0.7500000 0.2500000 0.0000000
+ 0 0 -1 1 0 0 0 -1 0 0.7500000 0.2500000 0.0000000
+ 0 0 1 -1 0 0 0 1 0 0.7500000 0.2500000 0.0000000
+-1 0 0 0 0 -1 0 -1 0 0.7500000 0.2500000 0.0000000
+ 1 0 0 0 0 1 0 1 0 0.7500000 0.2500000 0.0000000
+ 0 0 1 -1 0 0 0 -1 0 0.7500000 0.2500000 0.0000000
+ 0 0 -1 1 0 0 0 1 0 0.7500000 0.2500000 0.0000000
+ 1 0 0 0 0 1 0 -1 0 0.7500000 0.2500000 0.0000000
+-1 0 0 0 0 -1 0 1 0 0.7500000 0.2500000 0.0000000
+ 1 0 0 0 1 0 0 0 1 0.5000000 0.0000000 0.0000000
+-1 0 0 0 -1 0 0 0 -1 0.5000000 0.0000000 0.0000000
+ 0 0 -1 0 1 0 1 0 0 0.5000000 0.0000000 0.0000000
+ 0 0 1 0 -1 0 -1 0 0 0.5000000 0.0000000 0.0000000
+-1 0 0 0 1 0 0 0 -1 0.5000000 0.0000000 0.0000000
+ 1 0 0 0 -1 0 0 0 1 0.5000000 0.0000000 0.0000000
+ 0 0 1 0 1 0 -1 0 0 0.5000000 0.0000000 0.0000000
+ 0 0 -1 0 -1 0 1 0 0 0.5000000 0.0000000 0.0000000
+ 1 0 0 0 -1 0 0 0 -1 0.5000000 0.0000000 0.0000000
+-1 0 0 0 1 0 0 0 1 0.5000000 0.0000000 0.0000000
+ 0 0 -1 0 -1 0 -1 0 0 0.5000000 0.0000000 0.0000000
+ 0 0 1 0 1 0 1 0 0 0.5000000 0.0000000 0.0000000
+-1 0 0 0 -1 0 0 0 1 0.5000000 0.0000000 0.0000000
+ 1 0 0 0 1 0 0 0 -1 0.5000000 0.0000000 0.0000000
+ 0 0 1 0 -1 0 1 0 0 0.5000000 0.0000000 0.0000000
+ 0 0 -1 0 1 0 -1 0 0 0.5000000 0.0000000 0.0000000
+ 0 1 0 0 0 1 1 0 0 0.5000000 0.0000000 0.0000000
+ 0 -1 0 0 0 -1 -1 0 0 0.5000000 0.0000000 0.0000000
+ 0 1 0 1 0 0 0 0 -1 0.5000000 0.0000000 0.0000000
+ 0 -1 0 -1 0 0 0 0 1 0.5000000 0.0000000 0.0000000
+ 0 1 0 0 0 -1 -1 0 0 0.5000000 0.0000000 0.0000000
+ 0 -1 0 0 0 1 1 0 0 0.5000000 0.0000000 0.0000000
+ 0 1 0 -1 0 0 0 0 1 0.5000000 0.0000000 0.0000000
+ 0 -1 0 1 0 0 0 0 -1 0.5000000 0.0000000 0.0000000
+ 0 -1 0 0 0 -1 1 0 0 0.5000000 0.0000000 0.0000000
+ 0 1 0 0 0 1 -1 0 0 0.5000000 0.0000000 0.0000000
+ 0 -1 0 -1 0 0 0 0 -1 0.5000000 0.0000000 0.0000000
+ 0 1 0 1 0 0 0 0 1 0.5000000 0.0000000 0.0000000
+ 0 -1 0 0 0 1 -1 0 0 0.5000000 0.0000000 0.0000000
+ 0 1 0 0 0 -1 1 0 0 0.5000000 0.0000000 0.0000000
+ 0 -1 0 1 0 0 0 0 1 0.5000000 0.0000000 0.0000000
+ 0 1 0 -1 0 0 0 0 -1 0.5000000 0.0000000 0.0000000
+ 0 0 1 1 0 0 0 1 0 0.5000000 0.0000000 0.0000000
+ 0 0 -1 -1 0 0 0 -1 0 0.5000000 0.0000000 0.0000000
+ 1 0 0 0 0 -1 0 1 0 0.5000000 0.0000000 0.0000000
+-1 0 0 0 0 1 0 -1 0 0.5000000 0.0000000 0.0000000
+ 0 0 -1 -1 0 0 0 1 0 0.5000000 0.0000000 0.0000000
+ 0 0 1 1 0 0 0 -1 0 0.5000000 0.0000000 0.0000000
+-1 0 0 0 0 1 0 1 0 0.5000000 0.0000000 0.0000000
+ 1 0 0 0 0 -1 0 -1 0 0.5000000 0.0000000 0.0000000
+ 0 0 -1 1 0 0 0 -1 0 0.5000000 0.0000000 0.0000000
+ 0 0 1 -1 0 0 0 1 0 0.5000000 0.0000000 0.0000000
+-1 0 0 0 0 -1 0 -1 0 0.5000000 0.0000000 0.0000000
+ 1 0 0 0 0 1 0 1 0 0.5000000 0.0000000 0.0000000
+ 0 0 1 -1 0 0 0 -1 0 0.5000000 0.0000000 0.0000000
+ 0 0 -1 1 0 0 0 1 0 0.5000000 0.0000000 0.0000000
+ 1 0 0 0 0 1 0 -1 0 0.5000000 0.0000000 0.0000000
+-1 0 0 0 0 -1 0 1 0 0.5000000 0.0000000 0.0000000
+ 1 0 0 0 1 0 0 0 1 0.2500000 0.7500000 0.0000000
+-1 0 0 0 -1 0 0 0 -1 0.2500000 0.7500000 0.0000000
+ 0 0 -1 0 1 0 1 0 0 0.2500000 0.7500000 0.0000000
+ 0 0 1 0 -1 0 -1 0 0 0.2500000 0.7500000 0.0000000
+-1 0 0 0 1 0 0 0 -1 0.2500000 0.7500000 0.0000000
+ 1 0 0 0 -1 0 0 0 1 0.2500000 0.7500000 0.0000000
+ 0 0 1 0 1 0 -1 0 0 0.2500000 0.7500000 0.0000000
+ 0 0 -1 0 -1 0 1 0 0 0.2500000 0.7500000 0.0000000
+ 1 0 0 0 -1 0 0 0 -1 0.2500000 0.7500000 0.0000000
+-1 0 0 0 1 0 0 0 1 0.2500000 0.7500000 0.0000000
+ 0 0 -1 0 -1 0 -1 0 0 0.2500000 0.7500000 0.0000000
+ 0 0 1 0 1 0 1 0 0 0.2500000 0.7500000 0.0000000
+-1 0 0 0 -1 0 0 0 1 0.2500000 0.7500000 0.0000000
+ 1 0 0 0 1 0 0 0 -1 0.2500000 0.7500000 0.0000000
+ 0 0 1 0 -1 0 1 0 0 0.2500000 0.7500000 0.0000000
+ 0 0 -1 0 1 0 -1 0 0 0.2500000 0.7500000 0.0000000
+ 0 1 0 0 0 1 1 0 0 0.2500000 0.7500000 0.0000000
+ 0 -1 0 0 0 -1 -1 0 0 0.2500000 0.7500000 0.0000000
+ 0 1 0 1 0 0 0 0 -1 0.2500000 0.7500000 0.0000000
+ 0 -1 0 -1 0 0 0 0 1 0.2500000 0.7500000 0.0000000
+ 0 1 0 0 0 -1 -1 0 0 0.2500000 0.7500000 0.0000000
+ 0 -1 0 0 0 1 1 0 0 0.2500000 0.7500000 0.0000000
+ 0 1 0 -1 0 0 0 0 1 0.2500000 0.7500000 0.0000000
+ 0 -1 0 1 0 0 0 0 -1 0.2500000 0.7500000 0.0000000
+ 0 -1 0 0 0 -1 1 0 0 0.2500000 0.7500000 0.0000000
+ 0 1 0 0 0 1 -1 0 0 0.2500000 0.7500000 0.0000000
+ 0 -1 0 -1 0 0 0 0 -1 0.2500000 0.7500000 0.0000000
+ 0 1 0 1 0 0 0 0 1 0.2500000 0.7500000 0.0000000
+ 0 -1 0 0 0 1 -1 0 0 0.2500000 0.7500000 0.0000000
+ 0 1 0 0 0 -1 1 0 0 0.2500000 0.7500000 0.0000000
+ 0 -1 0 1 0 0 0 0 1 0.2500000 0.7500000 0.0000000
+ 0 1 0 -1 0 0 0 0 -1 0.2500000 0.7500000 0.0000000
+ 0 0 1 1 0 0 0 1 0 0.2500000 0.7500000 0.0000000
+ 0 0 -1 -1 0 0 0 -1 0 0.2500000 0.7500000 0.0000000
+ 1 0 0 0 0 -1 0 1 0 0.2500000 0.7500000 0.0000000
+-1 0 0 0 0 1 0 -1 0 0.2500000 0.7500000 0.0000000
+ 0 0 -1 -1 0 0 0 1 0 0.2500000 0.7500000 0.0000000
+ 0 0 1 1 0 0 0 -1 0 0.2500000 0.7500000 0.0000000
+-1 0 0 0 0 1 0 1 0 0.2500000 0.7500000 0.0000000
+ 1 0 0 0 0 -1 0 -1 0 0.2500000 0.7500000 0.0000000
+ 0 0 -1 1 0 0 0 -1 0 0.2500000 0.7500000 0.0000000
+ 0 0 1 -1 0 0 0 1 0 0.2500000 0.7500000 0.0000000
+-1 0 0 0 0 -1 0 -1 0 0.2500000 0.7500000 0.0000000
+ 1 0 0 0 0 1 0 1 0 0.2500000 0.7500000 0.0000000
+ 0 0 1 -1 0 0 0 -1 0 0.2500000 0.7500000 0.0000000
+ 0 0 -1 1 0 0 0 1 0 0.2500000 0.7500000 0.0000000
+ 1 0 0 0 0 1 0 -1 0 0.2500000 0.7500000 0.0000000
+-1 0 0 0 0 -1 0 1 0 0.2500000 0.7500000 0.0000000
+ 1 0 0 0 1 0 0 0 1 0.0000000 0.5000000 0.0000000
+-1 0 0 0 -1 0 0 0 -1 0.0000000 0.5000000 0.0000000
+ 0 0 -1 0 1 0 1 0 0 0.0000000 0.5000000 0.0000000
+ 0 0 1 0 -1 0 -1 0 0 0.0000000 0.5000000 0.0000000
+-1 0 0 0 1 0 0 0 -1 0.0000000 0.5000000 0.0000000
+ 1 0 0 0 -1 0 0 0 1 0.0000000 0.5000000 0.0000000
+ 0 0 1 0 1 0 -1 0 0 0.0000000 0.5000000 0.0000000
+ 0 0 -1 0 -1 0 1 0 0 0.0000000 0.5000000 0.0000000
+ 1 0 0 0 -1 0 0 0 -1 0.0000000 0.5000000 0.0000000
+-1 0 0 0 1 0 0 0 1 0.0000000 0.5000000 0.0000000
+ 0 0 -1 0 -1 0 -1 0 0 0.0000000 0.5000000 0.0000000
+ 0 0 1 0 1 0 1 0 0 0.0000000 0.5000000 0.0000000
+-1 0 0 0 -1 0 0 0 1 0.0000000 0.5000000 0.0000000
+ 1 0 0 0 1 0 0 0 -1 0.0000000 0.5000000 0.0000000
+ 0 0 1 0 -1 0 1 0 0 0.0000000 0.5000000 0.0000000
+ 0 0 -1 0 1 0 -1 0 0 0.0000000 0.5000000 0.0000000
+ 0 1 0 0 0 1 1 0 0 0.0000000 0.5000000 0.0000000
+ 0 -1 0 0 0 -1 -1 0 0 0.0000000 0.5000000 0.0000000
+ 0 1 0 1 0 0 0 0 -1 0.0000000 0.5000000 0.0000000
+ 0 -1 0 -1 0 0 0 0 1 0.0000000 0.5000000 0.0000000
+ 0 1 0 0 0 -1 -1 0 0 0.0000000 0.5000000 0.0000000
+ 0 -1 0 0 0 1 1 0 0 0.0000000 0.5000000 0.0000000
+ 0 1 0 -1 0 0 0 0 1 0.0000000 0.5000000 0.0000000
+ 0 -1 0 1 0 0 0 0 -1 0.0000000 0.5000000 0.0000000
+ 0 -1 0 0 0 -1 1 0 0 0.0000000 0.5000000 0.0000000
+ 0 1 0 0 0 1 -1 0 0 0.0000000 0.5000000 0.0000000
+ 0 -1 0 -1 0 0 0 0 -1 0.0000000 0.5000000 0.0000000
+ 0 1 0 1 0 0 0 0 1 0.0000000 0.5000000 0.0000000
+ 0 -1 0 0 0 1 -1 0 0 0.0000000 0.5000000 0.0000000
+ 0 1 0 0 0 -1 1 0 0 0.0000000 0.5000000 0.0000000
+ 0 -1 0 1 0 0 0 0 1 0.0000000 0.5000000 0.0000000
+ 0 1 0 -1 0 0 0 0 -1 0.0000000 0.5000000 0.0000000
+ 0 0 1 1 0 0 0 1 0 0.0000000 0.5000000 0.0000000
+ 0 0 -1 -1 0 0 0 -1 0 0.0000000 0.5000000 0.0000000
+ 1 0 0 0 0 -1 0 1 0 0.0000000 0.5000000 0.0000000
+-1 0 0 0 0 1 0 -1 0 0.0000000 0.5000000 0.0000000
+ 0 0 -1 -1 0 0 0 1 0 0.0000000 0.5000000 0.0000000
+ 0 0 1 1 0 0 0 -1 0 0.0000000 0.5000000 0.0000000
+-1 0 0 0 0 1 0 1 0 0.0000000 0.5000000 0.0000000
+ 1 0 0 0 0 -1 0 -1 0 0.0000000 0.5000000 0.0000000
+ 0 0 -1 1 0 0 0 -1 0 0.0000000 0.5000000 0.0000000
+ 0 0 1 -1 0 0 0 1 0 0.0000000 0.5000000 0.0000000
+-1 0 0 0 0 -1 0 -1 0 0.0000000 0.5000000 0.0000000
+ 1 0 0 0 0 1 0 1 0 0.0000000 0.5000000 0.0000000
+ 0 0 1 -1 0 0 0 -1 0 0.0000000 0.5000000 0.0000000
+ 0 0 -1 1 0 0 0 1 0 0.0000000 0.5000000 0.0000000
+ 1 0 0 0 0 1 0 -1 0 0.0000000 0.5000000 0.0000000
+-1 0 0 0 0 -1 0 1 0 0.0000000 0.5000000 0.0000000
+ 1 0 0 0 1 0 0 0 1 0.0000000 0.2500000 0.7500000
+-1 0 0 0 -1 0 0 0 -1 0.0000000 0.2500000 0.7500000
+ 0 0 -1 0 1 0 1 0 0 0.0000000 0.2500000 0.7500000
+ 0 0 1 0 -1 0 -1 0 0 0.0000000 0.2500000 0.7500000
+-1 0 0 0 1 0 0 0 -1 0.0000000 0.2500000 0.7500000
+ 1 0 0 0 -1 0 0 0 1 0.0000000 0.2500000 0.7500000
+ 0 0 1 0 1 0 -1 0 0 0.0000000 0.2500000 0.7500000
+ 0 0 -1 0 -1 0 1 0 0 0.0000000 0.2500000 0.7500000
+ 1 0 0 0 -1 0 0 0 -1 0.0000000 0.2500000 0.7500000
+-1 0 0 0 1 0 0 0 1 0.0000000 0.2500000 0.7500000
+ 0 0 -1 0 -1 0 -1 0 0 0.0000000 0.2500000 0.7500000
+ 0 0 1 0 1 0 1 0 0 0.0000000 0.2500000 0.7500000
+-1 0 0 0 -1 0 0 0 1 0.0000000 0.2500000 0.7500000
+ 1 0 0 0 1 0 0 0 -1 0.0000000 0.2500000 0.7500000
+ 0 0 1 0 -1 0 1 0 0 0.0000000 0.2500000 0.7500000
+ 0 0 -1 0 1 0 -1 0 0 0.0000000 0.2500000 0.7500000
+ 0 1 0 0 0 1 1 0 0 0.0000000 0.2500000 0.7500000
+ 0 -1 0 0 0 -1 -1 0 0 0.0000000 0.2500000 0.7500000
+ 0 1 0 1 0 0 0 0 -1 0.0000000 0.2500000 0.7500000
+ 0 -1 0 -1 0 0 0 0 1 0.0000000 0.2500000 0.7500000
+ 0 1 0 0 0 -1 -1 0 0 0.0000000 0.2500000 0.7500000
+ 0 -1 0 0 0 1 1 0 0 0.0000000 0.2500000 0.7500000
+ 0 1 0 -1 0 0 0 0 1 0.0000000 0.2500000 0.7500000
+ 0 -1 0 1 0 0 0 0 -1 0.0000000 0.2500000 0.7500000
+ 0 -1 0 0 0 -1 1 0 0 0.0000000 0.2500000 0.7500000
+ 0 1 0 0 0 1 -1 0 0 0.0000000 0.2500000 0.7500000
+ 0 -1 0 -1 0 0 0 0 -1 0.0000000 0.2500000 0.7500000
+ 0 1 0 1 0 0 0 0 1 0.0000000 0.2500000 0.7500000
+ 0 -1 0 0 0 1 -1 0 0 0.0000000 0.2500000 0.7500000
+ 0 1 0 0 0 -1 1 0 0 0.0000000 0.2500000 0.7500000
+ 0 -1 0 1 0 0 0 0 1 0.0000000 0.2500000 0.7500000
+ 0 1 0 -1 0 0 0 0 -1 0.0000000 0.2500000 0.7500000
+ 0 0 1 1 0 0 0 1 0 0.0000000 0.2500000 0.7500000
+ 0 0 -1 -1 0 0 0 -1 0 0.0000000 0.2500000 0.7500000
+ 1 0 0 0 0 -1 0 1 0 0.0000000 0.2500000 0.7500000
+-1 0 0 0 0 1 0 -1 0 0.0000000 0.2500000 0.7500000
+ 0 0 -1 -1 0 0 0 1 0 0.0000000 0.2500000 0.7500000
+ 0 0 1 1 0 0 0 -1 0 0.0000000 0.2500000 0.7500000
+-1 0 0 0 0 1 0 1 0 0.0000000 0.2500000 0.7500000
+ 1 0 0 0 0 -1 0 -1 0 0.0000000 0.2500000 0.7500000
+ 0 0 -1 1 0 0 0 -1 0 0.0000000 0.2500000 0.7500000
+ 0 0 1 -1 0 0 0 1 0 0.0000000 0.2500000 0.7500000
+-1 0 0 0 0 -1 0 -1 0 0.0000000 0.2500000 0.7500000
+ 1 0 0 0 0 1 0 1 0 0.0000000 0.2500000 0.7500000
+ 0 0 1 -1 0 0 0 -1 0 0.0000000 0.2500000 0.7500000
+ 0 0 -1 1 0 0 0 1 0 0.0000000 0.2500000 0.7500000
+ 1 0 0 0 0 1 0 -1 0 0.0000000 0.2500000 0.7500000
+-1 0 0 0 0 -1 0 1 0 0.0000000 0.2500000 0.7500000
+ 1 0 0 0 1 0 0 0 1 0.7500000 0.0000000 0.7500000
+-1 0 0 0 -1 0 0 0 -1 0.7500000 0.0000000 0.7500000
+ 0 0 -1 0 1 0 1 0 0 0.7500000 0.0000000 0.7500000
+ 0 0 1 0 -1 0 -1 0 0 0.7500000 0.0000000 0.7500000
+-1 0 0 0 1 0 0 0 -1 0.7500000 0.0000000 0.7500000
+ 1 0 0 0 -1 0 0 0 1 0.7500000 0.0000000 0.7500000
+ 0 0 1 0 1 0 -1 0 0 0.7500000 0.0000000 0.7500000
+ 0 0 -1 0 -1 0 1 0 0 0.7500000 0.0000000 0.7500000
+ 1 0 0 0 -1 0 0 0 -1 0.7500000 0.0000000 0.7500000
+-1 0 0 0 1 0 0 0 1 0.7500000 0.0000000 0.7500000
+ 0 0 -1 0 -1 0 -1 0 0 0.7500000 0.0000000 0.7500000
+ 0 0 1 0 1 0 1 0 0 0.7500000 0.0000000 0.7500000
+-1 0 0 0 -1 0 0 0 1 0.7500000 0.0000000 0.7500000
+ 1 0 0 0 1 0 0 0 -1 0.7500000 0.0000000 0.7500000
+ 0 0 1 0 -1 0 1 0 0 0.7500000 0.0000000 0.7500000
+ 0 0 -1 0 1 0 -1 0 0 0.7500000 0.0000000 0.7500000
+ 0 1 0 0 0 1 1 0 0 0.7500000 0.0000000 0.7500000
+ 0 -1 0 0 0 -1 -1 0 0 0.7500000 0.0000000 0.7500000
+ 0 1 0 1 0 0 0 0 -1 0.7500000 0.0000000 0.7500000
+ 0 -1 0 -1 0 0 0 0 1 0.7500000 0.0000000 0.7500000
+ 0 1 0 0 0 -1 -1 0 0 0.7500000 0.0000000 0.7500000
+ 0 -1 0 0 0 1 1 0 0 0.7500000 0.0000000 0.7500000
+ 0 1 0 -1 0 0 0 0 1 0.7500000 0.0000000 0.7500000
+ 0 -1 0 1 0 0 0 0 -1 0.7500000 0.0000000 0.7500000
+ 0 -1 0 0 0 -1 1 0 0 0.7500000 0.0000000 0.7500000
+ 0 1 0 0 0 1 -1 0 0 0.7500000 0.0000000 0.7500000
+ 0 -1 0 -1 0 0 0 0 -1 0.7500000 0.0000000 0.7500000
+ 0 1 0 1 0 0 0 0 1 0.7500000 0.0000000 0.7500000
+ 0 -1 0 0 0 1 -1 0 0 0.7500000 0.0000000 0.7500000
+ 0 1 0 0 0 -1 1 0 0 0.7500000 0.0000000 0.7500000
+ 0 -1 0 1 0 0 0 0 1 0.7500000 0.0000000 0.7500000
+ 0 1 0 -1 0 0 0 0 -1 0.7500000 0.0000000 0.7500000
+ 0 0 1 1 0 0 0 1 0 0.7500000 0.0000000 0.7500000
+ 0 0 -1 -1 0 0 0 -1 0 0.7500000 0.0000000 0.7500000
+ 1 0 0 0 0 -1 0 1 0 0.7500000 0.0000000 0.7500000
+-1 0 0 0 0 1 0 -1 0 0.7500000 0.0000000 0.7500000
+ 0 0 -1 -1 0 0 0 1 0 0.7500000 0.0000000 0.7500000
+ 0 0 1 1 0 0 0 -1 0 0.7500000 0.0000000 0.7500000
+-1 0 0 0 0 1 0 1 0 0.7500000 0.0000000 0.7500000
+ 1 0 0 0 0 -1 0 -1 0 0.7500000 0.0000000 0.7500000
+ 0 0 -1 1 0 0 0 -1 0 0.7500000 0.0000000 0.7500000
+ 0 0 1 -1 0 0 0 1 0 0.7500000 0.0000000 0.7500000
+-1 0 0 0 0 -1 0 -1 0 0.7500000 0.0000000 0.7500000
+ 1 0 0 0 0 1 0 1 0 0.7500000 0.0000000 0.7500000
+ 0 0 1 -1 0 0 0 -1 0 0.7500000 0.0000000 0.7500000
+ 0 0 -1 1 0 0 0 1 0 0.7500000 0.0000000 0.7500000
+ 1 0 0 0 0 1 0 -1 0 0.7500000 0.0000000 0.7500000
+-1 0 0 0 0 -1 0 1 0 0.7500000 0.0000000 0.7500000
+ 1 0 0 0 1 0 0 0 1 0.5000000 0.7500000 0.7500000
+-1 0 0 0 -1 0 0 0 -1 0.5000000 0.7500000 0.7500000
+ 0 0 -1 0 1 0 1 0 0 0.5000000 0.7500000 0.7500000
+ 0 0 1 0 -1 0 -1 0 0 0.5000000 0.7500000 0.7500000
+-1 0 0 0 1 0 0 0 -1 0.5000000 0.7500000 0.7500000
+ 1 0 0 0 -1 0 0 0 1 0.5000000 0.7500000 0.7500000
+ 0 0 1 0 1 0 -1 0 0 0.5000000 0.7500000 0.7500000
+ 0 0 -1 0 -1 0 1 0 0 0.5000000 0.7500000 0.7500000
+ 1 0 0 0 -1 0 0 0 -1 0.5000000 0.7500000 0.7500000
+-1 0 0 0 1 0 0 0 1 0.5000000 0.7500000 0.7500000
+ 0 0 -1 0 -1 0 -1 0 0 0.5000000 0.7500000 0.7500000
+ 0 0 1 0 1 0 1 0 0 0.5000000 0.7500000 0.7500000
+-1 0 0 0 -1 0 0 0 1 0.5000000 0.7500000 0.7500000
+ 1 0 0 0 1 0 0 0 -1 0.5000000 0.7500000 0.7500000
+ 0 0 1 0 -1 0 1 0 0 0.5000000 0.7500000 0.7500000
+ 0 0 -1 0 1 0 -1 0 0 0.5000000 0.7500000 0.7500000
+ 0 1 0 0 0 1 1 0 0 0.5000000 0.7500000 0.7500000
+ 0 -1 0 0 0 -1 -1 0 0 0.5000000 0.7500000 0.7500000
+ 0 1 0 1 0 0 0 0 -1 0.5000000 0.7500000 0.7500000
+ 0 -1 0 -1 0 0 0 0 1 0.5000000 0.7500000 0.7500000
+ 0 1 0 0 0 -1 -1 0 0 0.5000000 0.7500000 0.7500000
+ 0 -1 0 0 0 1 1 0 0 0.5000000 0.7500000 0.7500000
+ 0 1 0 -1 0 0 0 0 1 0.5000000 0.7500000 0.7500000
+ 0 -1 0 1 0 0 0 0 -1 0.5000000 0.7500000 0.7500000
+ 0 -1 0 0 0 -1 1 0 0 0.5000000 0.7500000 0.7500000
+ 0 1 0 0 0 1 -1 0 0 0.5000000 0.7500000 0.7500000
+ 0 -1 0 -1 0 0 0 0 -1 0.5000000 0.7500000 0.7500000
+ 0 1 0 1 0 0 0 0 1 0.5000000 0.7500000 0.7500000
+ 0 -1 0 0 0 1 -1 0 0 0.5000000 0.7500000 0.7500000
+ 0 1 0 0 0 -1 1 0 0 0.5000000 0.7500000 0.7500000
+ 0 -1 0 1 0 0 0 0 1 0.5000000 0.7500000 0.7500000
+ 0 1 0 -1 0 0 0 0 -1 0.5000000 0.7500000 0.7500000
+ 0 0 1 1 0 0 0 1 0 0.5000000 0.7500000 0.7500000
+ 0 0 -1 -1 0 0 0 -1 0 0.5000000 0.7500000 0.7500000
+ 1 0 0 0 0 -1 0 1 0 0.5000000 0.7500000 0.7500000
+-1 0 0 0 0 1 0 -1 0 0.5000000 0.7500000 0.7500000
+ 0 0 -1 -1 0 0 0 1 0 0.5000000 0.7500000 0.7500000
+ 0 0 1 1 0 0 0 -1 0 0.5000000 0.7500000 0.7500000
+-1 0 0 0 0 1 0 1 0 0.5000000 0.7500000 0.7500000
+ 1 0 0 0 0 -1 0 -1 0 0.5000000 0.7500000 0.7500000
+ 0 0 -1 1 0 0 0 -1 0 0.5000000 0.7500000 0.7500000
+ 0 0 1 -1 0 0 0 1 0 0.5000000 0.7500000 0.7500000
+-1 0 0 0 0 -1 0 -1 0 0.5000000 0.7500000 0.7500000
+ 1 0 0 0 0 1 0 1 0 0.5000000 0.7500000 0.7500000
+ 0 0 1 -1 0 0 0 -1 0 0.5000000 0.7500000 0.7500000
+ 0 0 -1 1 0 0 0 1 0 0.5000000 0.7500000 0.7500000
+ 1 0 0 0 0 1 0 -1 0 0.5000000 0.7500000 0.7500000
+-1 0 0 0 0 -1 0 1 0 0.5000000 0.7500000 0.7500000
+ 1 0 0 0 1 0 0 0 1 0.2500000 0.5000000 0.7500000
+-1 0 0 0 -1 0 0 0 -1 0.2500000 0.5000000 0.7500000
+ 0 0 -1 0 1 0 1 0 0 0.2500000 0.5000000 0.7500000
+ 0 0 1 0 -1 0 -1 0 0 0.2500000 0.5000000 0.7500000
+-1 0 0 0 1 0 0 0 -1 0.2500000 0.5000000 0.7500000
+ 1 0 0 0 -1 0 0 0 1 0.2500000 0.5000000 0.7500000
+ 0 0 1 0 1 0 -1 0 0 0.2500000 0.5000000 0.7500000
+ 0 0 -1 0 -1 0 1 0 0 0.2500000 0.5000000 0.7500000
+ 1 0 0 0 -1 0 0 0 -1 0.2500000 0.5000000 0.7500000
+-1 0 0 0 1 0 0 0 1 0.2500000 0.5000000 0.7500000
+ 0 0 -1 0 -1 0 -1 0 0 0.2500000 0.5000000 0.7500000
+ 0 0 1 0 1 0 1 0 0 0.2500000 0.5000000 0.7500000
+-1 0 0 0 -1 0 0 0 1 0.2500000 0.5000000 0.7500000
+ 1 0 0 0 1 0 0 0 -1 0.2500000 0.5000000 0.7500000
+ 0 0 1 0 -1 0 1 0 0 0.2500000 0.5000000 0.7500000
+ 0 0 -1 0 1 0 -1 0 0 0.2500000 0.5000000 0.7500000
+ 0 1 0 0 0 1 1 0 0 0.2500000 0.5000000 0.7500000
+ 0 -1 0 0 0 -1 -1 0 0 0.2500000 0.5000000 0.7500000
+ 0 1 0 1 0 0 0 0 -1 0.2500000 0.5000000 0.7500000
+ 0 -1 0 -1 0 0 0 0 1 0.2500000 0.5000000 0.7500000
+ 0 1 0 0 0 -1 -1 0 0 0.2500000 0.5000000 0.7500000
+ 0 -1 0 0 0 1 1 0 0 0.2500000 0.5000000 0.7500000
+ 0 1 0 -1 0 0 0 0 1 0.2500000 0.5000000 0.7500000
+ 0 -1 0 1 0 0 0 0 -1 0.2500000 0.5000000 0.7500000
+ 0 -1 0 0 0 -1 1 0 0 0.2500000 0.5000000 0.7500000
+ 0 1 0 0 0 1 -1 0 0 0.2500000 0.5000000 0.7500000
+ 0 -1 0 -1 0 0 0 0 -1 0.2500000 0.5000000 0.7500000
+ 0 1 0 1 0 0 0 0 1 0.2500000 0.5000000 0.7500000
+ 0 -1 0 0 0 1 -1 0 0 0.2500000 0.5000000 0.7500000
+ 0 1 0 0 0 -1 1 0 0 0.2500000 0.5000000 0.7500000
+ 0 -1 0 1 0 0 0 0 1 0.2500000 0.5000000 0.7500000
+ 0 1 0 -1 0 0 0 0 -1 0.2500000 0.5000000 0.7500000
+ 0 0 1 1 0 0 0 1 0 0.2500000 0.5000000 0.7500000
+ 0 0 -1 -1 0 0 0 -1 0 0.2500000 0.5000000 0.7500000
+ 1 0 0 0 0 -1 0 1 0 0.2500000 0.5000000 0.7500000
+-1 0 0 0 0 1 0 -1 0 0.2500000 0.5000000 0.7500000
+ 0 0 -1 -1 0 0 0 1 0 0.2500000 0.5000000 0.7500000
+ 0 0 1 1 0 0 0 -1 0 0.2500000 0.5000000 0.7500000
+-1 0 0 0 0 1 0 1 0 0.2500000 0.5000000 0.7500000
+ 1 0 0 0 0 -1 0 -1 0 0.2500000 0.5000000 0.7500000
+ 0 0 -1 1 0 0 0 -1 0 0.2500000 0.5000000 0.7500000
+ 0 0 1 -1 0 0 0 1 0 0.2500000 0.5000000 0.7500000
+-1 0 0 0 0 -1 0 -1 0 0.2500000 0.5000000 0.7500000
+ 1 0 0 0 0 1 0 1 0 0.2500000 0.5000000 0.7500000
+ 0 0 1 -1 0 0 0 -1 0 0.2500000 0.5000000 0.7500000
+ 0 0 -1 1 0 0 0 1 0 0.2500000 0.5000000 0.7500000
+ 1 0 0 0 0 1 0 -1 0 0.2500000 0.5000000 0.7500000
+-1 0 0 0 0 -1 0 1 0 0.2500000 0.5000000 0.7500000
+ 1 0 0 0 1 0 0 0 1 0.2500000 0.2500000 0.5000000
+-1 0 0 0 -1 0 0 0 -1 0.2500000 0.2500000 0.5000000
+ 0 0 -1 0 1 0 1 0 0 0.2500000 0.2500000 0.5000000
+ 0 0 1 0 -1 0 -1 0 0 0.2500000 0.2500000 0.5000000
+-1 0 0 0 1 0 0 0 -1 0.2500000 0.2500000 0.5000000
+ 1 0 0 0 -1 0 0 0 1 0.2500000 0.2500000 0.5000000
+ 0 0 1 0 1 0 -1 0 0 0.2500000 0.2500000 0.5000000
+ 0 0 -1 0 -1 0 1 0 0 0.2500000 0.2500000 0.5000000
+ 1 0 0 0 -1 0 0 0 -1 0.2500000 0.2500000 0.5000000
+-1 0 0 0 1 0 0 0 1 0.2500000 0.2500000 0.5000000
+ 0 0 -1 0 -1 0 -1 0 0 0.2500000 0.2500000 0.5000000
+ 0 0 1 0 1 0 1 0 0 0.2500000 0.2500000 0.5000000
+-1 0 0 0 -1 0 0 0 1 0.2500000 0.2500000 0.5000000
+ 1 0 0 0 1 0 0 0 -1 0.2500000 0.2500000 0.5000000
+ 0 0 1 0 -1 0 1 0 0 0.2500000 0.2500000 0.5000000
+ 0 0 -1 0 1 0 -1 0 0 0.2500000 0.2500000 0.5000000
+ 0 1 0 0 0 1 1 0 0 0.2500000 0.2500000 0.5000000
+ 0 -1 0 0 0 -1 -1 0 0 0.2500000 0.2500000 0.5000000
+ 0 1 0 1 0 0 0 0 -1 0.2500000 0.2500000 0.5000000
+ 0 -1 0 -1 0 0 0 0 1 0.2500000 0.2500000 0.5000000
+ 0 1 0 0 0 -1 -1 0 0 0.2500000 0.2500000 0.5000000
+ 0 -1 0 0 0 1 1 0 0 0.2500000 0.2500000 0.5000000
+ 0 1 0 -1 0 0 0 0 1 0.2500000 0.2500000 0.5000000
+ 0 -1 0 1 0 0 0 0 -1 0.2500000 0.2500000 0.5000000
+ 0 -1 0 0 0 -1 1 0 0 0.2500000 0.2500000 0.5000000
+ 0 1 0 0 0 1 -1 0 0 0.2500000 0.2500000 0.5000000
+ 0 -1 0 -1 0 0 0 0 -1 0.2500000 0.2500000 0.5000000
+ 0 1 0 1 0 0 0 0 1 0.2500000 0.2500000 0.5000000
+ 0 -1 0 0 0 1 -1 0 0 0.2500000 0.2500000 0.5000000
+ 0 1 0 0 0 -1 1 0 0 0.2500000 0.2500000 0.5000000
+ 0 -1 0 1 0 0 0 0 1 0.2500000 0.2500000 0.5000000
+ 0 1 0 -1 0 0 0 0 -1 0.2500000 0.2500000 0.5000000
+ 0 0 1 1 0 0 0 1 0 0.2500000 0.2500000 0.5000000
+ 0 0 -1 -1 0 0 0 -1 0 0.2500000 0.2500000 0.5000000
+ 1 0 0 0 0 -1 0 1 0 0.2500000 0.2500000 0.5000000
+-1 0 0 0 0 1 0 -1 0 0.2500000 0.2500000 0.5000000
+ 0 0 -1 -1 0 0 0 1 0 0.2500000 0.2500000 0.5000000
+ 0 0 1 1 0 0 0 -1 0 0.2500000 0.2500000 0.5000000
+-1 0 0 0 0 1 0 1 0 0.2500000 0.2500000 0.5000000
+ 1 0 0 0 0 -1 0 -1 0 0.2500000 0.2500000 0.5000000
+ 0 0 -1 1 0 0 0 -1 0 0.2500000 0.2500000 0.5000000
+ 0 0 1 -1 0 0 0 1 0 0.2500000 0.2500000 0.5000000
+-1 0 0 0 0 -1 0 -1 0 0.2500000 0.2500000 0.5000000
+ 1 0 0 0 0 1 0 1 0 0.2500000 0.2500000 0.5000000
+ 0 0 1 -1 0 0 0 -1 0 0.2500000 0.2500000 0.5000000
+ 0 0 -1 1 0 0 0 1 0 0.2500000 0.2500000 0.5000000
+ 1 0 0 0 0 1 0 -1 0 0.2500000 0.2500000 0.5000000
+-1 0 0 0 0 -1 0 1 0 0.2500000 0.2500000 0.5000000
+ 1 0 0 0 1 0 0 0 1 0.0000000 0.0000000 0.5000000
+-1 0 0 0 -1 0 0 0 -1 0.0000000 0.0000000 0.5000000
+ 0 0 -1 0 1 0 1 0 0 0.0000000 0.0000000 0.5000000
+ 0 0 1 0 -1 0 -1 0 0 0.0000000 0.0000000 0.5000000
+-1 0 0 0 1 0 0 0 -1 0.0000000 0.0000000 0.5000000
+ 1 0 0 0 -1 0 0 0 1 0.0000000 0.0000000 0.5000000
+ 0 0 1 0 1 0 -1 0 0 0.0000000 0.0000000 0.5000000
+ 0 0 -1 0 -1 0 1 0 0 0.0000000 0.0000000 0.5000000
+ 1 0 0 0 -1 0 0 0 -1 0.0000000 0.0000000 0.5000000
+-1 0 0 0 1 0 0 0 1 0.0000000 0.0000000 0.5000000
+ 0 0 -1 0 -1 0 -1 0 0 0.0000000 0.0000000 0.5000000
+ 0 0 1 0 1 0 1 0 0 0.0000000 0.0000000 0.5000000
+-1 0 0 0 -1 0 0 0 1 0.0000000 0.0000000 0.5000000
+ 1 0 0 0 1 0 0 0 -1 0.0000000 0.0000000 0.5000000
+ 0 0 1 0 -1 0 1 0 0 0.0000000 0.0000000 0.5000000
+ 0 0 -1 0 1 0 -1 0 0 0.0000000 0.0000000 0.5000000
+ 0 1 0 0 0 1 1 0 0 0.0000000 0.0000000 0.5000000
+ 0 -1 0 0 0 -1 -1 0 0 0.0000000 0.0000000 0.5000000
+ 0 1 0 1 0 0 0 0 -1 0.0000000 0.0000000 0.5000000
+ 0 -1 0 -1 0 0 0 0 1 0.0000000 0.0000000 0.5000000
+ 0 1 0 0 0 -1 -1 0 0 0.0000000 0.0000000 0.5000000
+ 0 -1 0 0 0 1 1 0 0 0.0000000 0.0000000 0.5000000
+ 0 1 0 -1 0 0 0 0 1 0.0000000 0.0000000 0.5000000
+ 0 -1 0 1 0 0 0 0 -1 0.0000000 0.0000000 0.5000000
+ 0 -1 0 0 0 -1 1 0 0 0.0000000 0.0000000 0.5000000
+ 0 1 0 0 0 1 -1 0 0 0.0000000 0.0000000 0.5000000
+ 0 -1 0 -1 0 0 0 0 -1 0.0000000 0.0000000 0.5000000
+ 0 1 0 1 0 0 0 0 1 0.0000000 0.0000000 0.5000000
+ 0 -1 0 0 0 1 -1 0 0 0.0000000 0.0000000 0.5000000
+ 0 1 0 0 0 -1 1 0 0 0.0000000 0.0000000 0.5000000
+ 0 -1 0 1 0 0 0 0 1 0.0000000 0.0000000 0.5000000
+ 0 1 0 -1 0 0 0 0 -1 0.0000000 0.0000000 0.5000000
+ 0 0 1 1 0 0 0 1 0 0.0000000 0.0000000 0.5000000
+ 0 0 -1 -1 0 0 0 -1 0 0.0000000 0.0000000 0.5000000
+ 1 0 0 0 0 -1 0 1 0 0.0000000 0.0000000 0.5000000
+-1 0 0 0 0 1 0 -1 0 0.0000000 0.0000000 0.5000000
+ 0 0 -1 -1 0 0 0 1 0 0.0000000 0.0000000 0.5000000
+ 0 0 1 1 0 0 0 -1 0 0.0000000 0.0000000 0.5000000
+-1 0 0 0 0 1 0 1 0 0.0000000 0.0000000 0.5000000
+ 1 0 0 0 0 -1 0 -1 0 0.0000000 0.0000000 0.5000000
+ 0 0 -1 1 0 0 0 -1 0 0.0000000 0.0000000 0.5000000
+ 0 0 1 -1 0 0 0 1 0 0.0000000 0.0000000 0.5000000
+-1 0 0 0 0 -1 0 -1 0 0.0000000 0.0000000 0.5000000
+ 1 0 0 0 0 1 0 1 0 0.0000000 0.0000000 0.5000000
+ 0 0 1 -1 0 0 0 -1 0 0.0000000 0.0000000 0.5000000
+ 0 0 -1 1 0 0 0 1 0 0.0000000 0.0000000 0.5000000
+ 1 0 0 0 0 1 0 -1 0 0.0000000 0.0000000 0.5000000
+-1 0 0 0 0 -1 0 1 0 0.0000000 0.0000000 0.5000000
+ 1 0 0 0 1 0 0 0 1 0.7500000 0.7500000 0.5000000
+-1 0 0 0 -1 0 0 0 -1 0.7500000 0.7500000 0.5000000
+ 0 0 -1 0 1 0 1 0 0 0.7500000 0.7500000 0.5000000
+ 0 0 1 0 -1 0 -1 0 0 0.7500000 0.7500000 0.5000000
+-1 0 0 0 1 0 0 0 -1 0.7500000 0.7500000 0.5000000
+ 1 0 0 0 -1 0 0 0 1 0.7500000 0.7500000 0.5000000
+ 0 0 1 0 1 0 -1 0 0 0.7500000 0.7500000 0.5000000
+ 0 0 -1 0 -1 0 1 0 0 0.7500000 0.7500000 0.5000000
+ 1 0 0 0 -1 0 0 0 -1 0.7500000 0.7500000 0.5000000
+-1 0 0 0 1 0 0 0 1 0.7500000 0.7500000 0.5000000
+ 0 0 -1 0 -1 0 -1 0 0 0.7500000 0.7500000 0.5000000
+ 0 0 1 0 1 0 1 0 0 0.7500000 0.7500000 0.5000000
+-1 0 0 0 -1 0 0 0 1 0.7500000 0.7500000 0.5000000
+ 1 0 0 0 1 0 0 0 -1 0.7500000 0.7500000 0.5000000
+ 0 0 1 0 -1 0 1 0 0 0.7500000 0.7500000 0.5000000
+ 0 0 -1 0 1 0 -1 0 0 0.7500000 0.7500000 0.5000000
+ 0 1 0 0 0 1 1 0 0 0.7500000 0.7500000 0.5000000
+ 0 -1 0 0 0 -1 -1 0 0 0.7500000 0.7500000 0.5000000
+ 0 1 0 1 0 0 0 0 -1 0.7500000 0.7500000 0.5000000
+ 0 -1 0 -1 0 0 0 0 1 0.7500000 0.7500000 0.5000000
+ 0 1 0 0 0 -1 -1 0 0 0.7500000 0.7500000 0.5000000
+ 0 -1 0 0 0 1 1 0 0 0.7500000 0.7500000 0.5000000
+ 0 1 0 -1 0 0 0 0 1 0.7500000 0.7500000 0.5000000
+ 0 -1 0 1 0 0 0 0 -1 0.7500000 0.7500000 0.5000000
+ 0 -1 0 0 0 -1 1 0 0 0.7500000 0.7500000 0.5000000
+ 0 1 0 0 0 1 -1 0 0 0.7500000 0.7500000 0.5000000
+ 0 -1 0 -1 0 0 0 0 -1 0.7500000 0.7500000 0.5000000
+ 0 1 0 1 0 0 0 0 1 0.7500000 0.7500000 0.5000000
+ 0 -1 0 0 0 1 -1 0 0 0.7500000 0.7500000 0.5000000
+ 0 1 0 0 0 -1 1 0 0 0.7500000 0.7500000 0.5000000
+ 0 -1 0 1 0 0 0 0 1 0.7500000 0.7500000 0.5000000
+ 0 1 0 -1 0 0 0 0 -1 0.7500000 0.7500000 0.5000000
+ 0 0 1 1 0 0 0 1 0 0.7500000 0.7500000 0.5000000
+ 0 0 -1 -1 0 0 0 -1 0 0.7500000 0.7500000 0.5000000
+ 1 0 0 0 0 -1 0 1 0 0.7500000 0.7500000 0.5000000
+-1 0 0 0 0 1 0 -1 0 0.7500000 0.7500000 0.5000000
+ 0 0 -1 -1 0 0 0 1 0 0.7500000 0.7500000 0.5000000
+ 0 0 1 1 0 0 0 -1 0 0.7500000 0.7500000 0.5000000
+-1 0 0 0 0 1 0 1 0 0.7500000 0.7500000 0.5000000
+ 1 0 0 0 0 -1 0 -1 0 0.7500000 0.7500000 0.5000000
+ 0 0 -1 1 0 0 0 -1 0 0.7500000 0.7500000 0.5000000
+ 0 0 1 -1 0 0 0 1 0 0.7500000 0.7500000 0.5000000
+-1 0 0 0 0 -1 0 -1 0 0.7500000 0.7500000 0.5000000
+ 1 0 0 0 0 1 0 1 0 0.7500000 0.7500000 0.5000000
+ 0 0 1 -1 0 0 0 -1 0 0.7500000 0.7500000 0.5000000
+ 0 0 -1 1 0 0 0 1 0 0.7500000 0.7500000 0.5000000
+ 1 0 0 0 0 1 0 -1 0 0.7500000 0.7500000 0.5000000
+-1 0 0 0 0 -1 0 1 0 0.7500000 0.7500000 0.5000000
+ 1 0 0 0 1 0 0 0 1 0.5000000 0.5000000 0.5000000
+-1 0 0 0 -1 0 0 0 -1 0.5000000 0.5000000 0.5000000
+ 0 0 -1 0 1 0 1 0 0 0.5000000 0.5000000 0.5000000
+ 0 0 1 0 -1 0 -1 0 0 0.5000000 0.5000000 0.5000000
+-1 0 0 0 1 0 0 0 -1 0.5000000 0.5000000 0.5000000
+ 1 0 0 0 -1 0 0 0 1 0.5000000 0.5000000 0.5000000
+ 0 0 1 0 1 0 -1 0 0 0.5000000 0.5000000 0.5000000
+ 0 0 -1 0 -1 0 1 0 0 0.5000000 0.5000000 0.5000000
+ 1 0 0 0 -1 0 0 0 -1 0.5000000 0.5000000 0.5000000
+-1 0 0 0 1 0 0 0 1 0.5000000 0.5000000 0.5000000
+ 0 0 -1 0 -1 0 -1 0 0 0.5000000 0.5000000 0.5000000
+ 0 0 1 0 1 0 1 0 0 0.5000000 0.5000000 0.5000000
+-1 0 0 0 -1 0 0 0 1 0.5000000 0.5000000 0.5000000
+ 1 0 0 0 1 0 0 0 -1 0.5000000 0.5000000 0.5000000
+ 0 0 1 0 -1 0 1 0 0 0.5000000 0.5000000 0.5000000
+ 0 0 -1 0 1 0 -1 0 0 0.5000000 0.5000000 0.5000000
+ 0 1 0 0 0 1 1 0 0 0.5000000 0.5000000 0.5000000
+ 0 -1 0 0 0 -1 -1 0 0 0.5000000 0.5000000 0.5000000
+ 0 1 0 1 0 0 0 0 -1 0.5000000 0.5000000 0.5000000
+ 0 -1 0 -1 0 0 0 0 1 0.5000000 0.5000000 0.5000000
+ 0 1 0 0 0 -1 -1 0 0 0.5000000 0.5000000 0.5000000
+ 0 -1 0 0 0 1 1 0 0 0.5000000 0.5000000 0.5000000
+ 0 1 0 -1 0 0 0 0 1 0.5000000 0.5000000 0.5000000
+ 0 -1 0 1 0 0 0 0 -1 0.5000000 0.5000000 0.5000000
+ 0 -1 0 0 0 -1 1 0 0 0.5000000 0.5000000 0.5000000
+ 0 1 0 0 0 1 -1 0 0 0.5000000 0.5000000 0.5000000
+ 0 -1 0 -1 0 0 0 0 -1 0.5000000 0.5000000 0.5000000
+ 0 1 0 1 0 0 0 0 1 0.5000000 0.5000000 0.5000000
+ 0 -1 0 0 0 1 -1 0 0 0.5000000 0.5000000 0.5000000
+ 0 1 0 0 0 -1 1 0 0 0.5000000 0.5000000 0.5000000
+ 0 -1 0 1 0 0 0 0 1 0.5000000 0.5000000 0.5000000
+ 0 1 0 -1 0 0 0 0 -1 0.5000000 0.5000000 0.5000000
+ 0 0 1 1 0 0 0 1 0 0.5000000 0.5000000 0.5000000
+ 0 0 -1 -1 0 0 0 -1 0 0.5000000 0.5000000 0.5000000
+ 1 0 0 0 0 -1 0 1 0 0.5000000 0.5000000 0.5000000
+-1 0 0 0 0 1 0 -1 0 0.5000000 0.5000000 0.5000000
+ 0 0 -1 -1 0 0 0 1 0 0.5000000 0.5000000 0.5000000
+ 0 0 1 1 0 0 0 -1 0 0.5000000 0.5000000 0.5000000
+-1 0 0 0 0 1 0 1 0 0.5000000 0.5000000 0.5000000
+ 1 0 0 0 0 -1 0 -1 0 0.5000000 0.5000000 0.5000000
+ 0 0 -1 1 0 0 0 -1 0 0.5000000 0.5000000 0.5000000
+ 0 0 1 -1 0 0 0 1 0 0.5000000 0.5000000 0.5000000
+-1 0 0 0 0 -1 0 -1 0 0.5000000 0.5000000 0.5000000
+ 1 0 0 0 0 1 0 1 0 0.5000000 0.5000000 0.5000000
+ 0 0 1 -1 0 0 0 -1 0 0.5000000 0.5000000 0.5000000
+ 0 0 -1 1 0 0 0 1 0 0.5000000 0.5000000 0.5000000
+ 1 0 0 0 0 1 0 -1 0 0.5000000 0.5000000 0.5000000
+-1 0 0 0 0 -1 0 1 0 0.5000000 0.5000000 0.5000000
+ 1 0 0 0 1 0 0 0 1 0.5000000 0.2500000 0.2500000
+-1 0 0 0 -1 0 0 0 -1 0.5000000 0.2500000 0.2500000
+ 0 0 -1 0 1 0 1 0 0 0.5000000 0.2500000 0.2500000
+ 0 0 1 0 -1 0 -1 0 0 0.5000000 0.2500000 0.2500000
+-1 0 0 0 1 0 0 0 -1 0.5000000 0.2500000 0.2500000
+ 1 0 0 0 -1 0 0 0 1 0.5000000 0.2500000 0.2500000
+ 0 0 1 0 1 0 -1 0 0 0.5000000 0.2500000 0.2500000
+ 0 0 -1 0 -1 0 1 0 0 0.5000000 0.2500000 0.2500000
+ 1 0 0 0 -1 0 0 0 -1 0.5000000 0.2500000 0.2500000
+-1 0 0 0 1 0 0 0 1 0.5000000 0.2500000 0.2500000
+ 0 0 -1 0 -1 0 -1 0 0 0.5000000 0.2500000 0.2500000
+ 0 0 1 0 1 0 1 0 0 0.5000000 0.2500000 0.2500000
+-1 0 0 0 -1 0 0 0 1 0.5000000 0.2500000 0.2500000
+ 1 0 0 0 1 0 0 0 -1 0.5000000 0.2500000 0.2500000
+ 0 0 1 0 -1 0 1 0 0 0.5000000 0.2500000 0.2500000
+ 0 0 -1 0 1 0 -1 0 0 0.5000000 0.2500000 0.2500000
+ 0 1 0 0 0 1 1 0 0 0.5000000 0.2500000 0.2500000
+ 0 -1 0 0 0 -1 -1 0 0 0.5000000 0.2500000 0.2500000
+ 0 1 0 1 0 0 0 0 -1 0.5000000 0.2500000 0.2500000
+ 0 -1 0 -1 0 0 0 0 1 0.5000000 0.2500000 0.2500000
+ 0 1 0 0 0 -1 -1 0 0 0.5000000 0.2500000 0.2500000
+ 0 -1 0 0 0 1 1 0 0 0.5000000 0.2500000 0.2500000
+ 0 1 0 -1 0 0 0 0 1 0.5000000 0.2500000 0.2500000
+ 0 -1 0 1 0 0 0 0 -1 0.5000000 0.2500000 0.2500000
+ 0 -1 0 0 0 -1 1 0 0 0.5000000 0.2500000 0.2500000
+ 0 1 0 0 0 1 -1 0 0 0.5000000 0.2500000 0.2500000
+ 0 -1 0 -1 0 0 0 0 -1 0.5000000 0.2500000 0.2500000
+ 0 1 0 1 0 0 0 0 1 0.5000000 0.2500000 0.2500000
+ 0 -1 0 0 0 1 -1 0 0 0.5000000 0.2500000 0.2500000
+ 0 1 0 0 0 -1 1 0 0 0.5000000 0.2500000 0.2500000
+ 0 -1 0 1 0 0 0 0 1 0.5000000 0.2500000 0.2500000
+ 0 1 0 -1 0 0 0 0 -1 0.5000000 0.2500000 0.2500000
+ 0 0 1 1 0 0 0 1 0 0.5000000 0.2500000 0.2500000
+ 0 0 -1 -1 0 0 0 -1 0 0.5000000 0.2500000 0.2500000
+ 1 0 0 0 0 -1 0 1 0 0.5000000 0.2500000 0.2500000
+-1 0 0 0 0 1 0 -1 0 0.5000000 0.2500000 0.2500000
+ 0 0 -1 -1 0 0 0 1 0 0.5000000 0.2500000 0.2500000
+ 0 0 1 1 0 0 0 -1 0 0.5000000 0.2500000 0.2500000
+-1 0 0 0 0 1 0 1 0 0.5000000 0.2500000 0.2500000
+ 1 0 0 0 0 -1 0 -1 0 0.5000000 0.2500000 0.2500000
+ 0 0 -1 1 0 0 0 -1 0 0.5000000 0.2500000 0.2500000
+ 0 0 1 -1 0 0 0 1 0 0.5000000 0.2500000 0.2500000
+-1 0 0 0 0 -1 0 -1 0 0.5000000 0.2500000 0.2500000
+ 1 0 0 0 0 1 0 1 0 0.5000000 0.2500000 0.2500000
+ 0 0 1 -1 0 0 0 -1 0 0.5000000 0.2500000 0.2500000
+ 0 0 -1 1 0 0 0 1 0 0.5000000 0.2500000 0.2500000
+ 1 0 0 0 0 1 0 -1 0 0.5000000 0.2500000 0.2500000
+-1 0 0 0 0 -1 0 1 0 0.5000000 0.2500000 0.2500000
+ 1 0 0 0 1 0 0 0 1 0.2500000 0.0000000 0.2500000
+-1 0 0 0 -1 0 0 0 -1 0.2500000 0.0000000 0.2500000
+ 0 0 -1 0 1 0 1 0 0 0.2500000 0.0000000 0.2500000
+ 0 0 1 0 -1 0 -1 0 0 0.2500000 0.0000000 0.2500000
+-1 0 0 0 1 0 0 0 -1 0.2500000 0.0000000 0.2500000
+ 1 0 0 0 -1 0 0 0 1 0.2500000 0.0000000 0.2500000
+ 0 0 1 0 1 0 -1 0 0 0.2500000 0.0000000 0.2500000
+ 0 0 -1 0 -1 0 1 0 0 0.2500000 0.0000000 0.2500000
+ 1 0 0 0 -1 0 0 0 -1 0.2500000 0.0000000 0.2500000
+-1 0 0 0 1 0 0 0 1 0.2500000 0.0000000 0.2500000
+ 0 0 -1 0 -1 0 -1 0 0 0.2500000 0.0000000 0.2500000
+ 0 0 1 0 1 0 1 0 0 0.2500000 0.0000000 0.2500000
+-1 0 0 0 -1 0 0 0 1 0.2500000 0.0000000 0.2500000
+ 1 0 0 0 1 0 0 0 -1 0.2500000 0.0000000 0.2500000
+ 0 0 1 0 -1 0 1 0 0 0.2500000 0.0000000 0.2500000
+ 0 0 -1 0 1 0 -1 0 0 0.2500000 0.0000000 0.2500000
+ 0 1 0 0 0 1 1 0 0 0.2500000 0.0000000 0.2500000
+ 0 -1 0 0 0 -1 -1 0 0 0.2500000 0.0000000 0.2500000
+ 0 1 0 1 0 0 0 0 -1 0.2500000 0.0000000 0.2500000
+ 0 -1 0 -1 0 0 0 0 1 0.2500000 0.0000000 0.2500000
+ 0 1 0 0 0 -1 -1 0 0 0.2500000 0.0000000 0.2500000
+ 0 -1 0 0 0 1 1 0 0 0.2500000 0.0000000 0.2500000
+ 0 1 0 -1 0 0 0 0 1 0.2500000 0.0000000 0.2500000
+ 0 -1 0 1 0 0 0 0 -1 0.2500000 0.0000000 0.2500000
+ 0 -1 0 0 0 -1 1 0 0 0.2500000 0.0000000 0.2500000
+ 0 1 0 0 0 1 -1 0 0 0.2500000 0.0000000 0.2500000
+ 0 -1 0 -1 0 0 0 0 -1 0.2500000 0.0000000 0.2500000
+ 0 1 0 1 0 0 0 0 1 0.2500000 0.0000000 0.2500000
+ 0 -1 0 0 0 1 -1 0 0 0.2500000 0.0000000 0.2500000
+ 0 1 0 0 0 -1 1 0 0 0.2500000 0.0000000 0.2500000
+ 0 -1 0 1 0 0 0 0 1 0.2500000 0.0000000 0.2500000
+ 0 1 0 -1 0 0 0 0 -1 0.2500000 0.0000000 0.2500000
+ 0 0 1 1 0 0 0 1 0 0.2500000 0.0000000 0.2500000
+ 0 0 -1 -1 0 0 0 -1 0 0.2500000 0.0000000 0.2500000
+ 1 0 0 0 0 -1 0 1 0 0.2500000 0.0000000 0.2500000
+-1 0 0 0 0 1 0 -1 0 0.2500000 0.0000000 0.2500000
+ 0 0 -1 -1 0 0 0 1 0 0.2500000 0.0000000 0.2500000
+ 0 0 1 1 0 0 0 -1 0 0.2500000 0.0000000 0.2500000
+-1 0 0 0 0 1 0 1 0 0.2500000 0.0000000 0.2500000
+ 1 0 0 0 0 -1 0 -1 0 0.2500000 0.0000000 0.2500000
+ 0 0 -1 1 0 0 0 -1 0 0.2500000 0.0000000 0.2500000
+ 0 0 1 -1 0 0 0 1 0 0.2500000 0.0000000 0.2500000
+-1 0 0 0 0 -1 0 -1 0 0.2500000 0.0000000 0.2500000
+ 1 0 0 0 0 1 0 1 0 0.2500000 0.0000000 0.2500000
+ 0 0 1 -1 0 0 0 -1 0 0.2500000 0.0000000 0.2500000
+ 0 0 -1 1 0 0 0 1 0 0.2500000 0.0000000 0.2500000
+ 1 0 0 0 0 1 0 -1 0 0.2500000 0.0000000 0.2500000
+-1 0 0 0 0 -1 0 1 0 0.2500000 0.0000000 0.2500000
+ 1 0 0 0 1 0 0 0 1 0.0000000 0.7500000 0.2500000
+-1 0 0 0 -1 0 0 0 -1 0.0000000 0.7500000 0.2500000
+ 0 0 -1 0 1 0 1 0 0 0.0000000 0.7500000 0.2500000
+ 0 0 1 0 -1 0 -1 0 0 0.0000000 0.7500000 0.2500000
+-1 0 0 0 1 0 0 0 -1 0.0000000 0.7500000 0.2500000
+ 1 0 0 0 -1 0 0 0 1 0.0000000 0.7500000 0.2500000
+ 0 0 1 0 1 0 -1 0 0 0.0000000 0.7500000 0.2500000
+ 0 0 -1 0 -1 0 1 0 0 0.0000000 0.7500000 0.2500000
+ 1 0 0 0 -1 0 0 0 -1 0.0000000 0.7500000 0.2500000
+-1 0 0 0 1 0 0 0 1 0.0000000 0.7500000 0.2500000
+ 0 0 -1 0 -1 0 -1 0 0 0.0000000 0.7500000 0.2500000
+ 0 0 1 0 1 0 1 0 0 0.0000000 0.7500000 0.2500000
+-1 0 0 0 -1 0 0 0 1 0.0000000 0.7500000 0.2500000
+ 1 0 0 0 1 0 0 0 -1 0.0000000 0.7500000 0.2500000
+ 0 0 1 0 -1 0 1 0 0 0.0000000 0.7500000 0.2500000
+ 0 0 -1 0 1 0 -1 0 0 0.0000000 0.7500000 0.2500000
+ 0 1 0 0 0 1 1 0 0 0.0000000 0.7500000 0.2500000
+ 0 -1 0 0 0 -1 -1 0 0 0.0000000 0.7500000 0.2500000
+ 0 1 0 1 0 0 0 0 -1 0.0000000 0.7500000 0.2500000
+ 0 -1 0 -1 0 0 0 0 1 0.0000000 0.7500000 0.2500000
+ 0 1 0 0 0 -1 -1 0 0 0.0000000 0.7500000 0.2500000
+ 0 -1 0 0 0 1 1 0 0 0.0000000 0.7500000 0.2500000
+ 0 1 0 -1 0 0 0 0 1 0.0000000 0.7500000 0.2500000
+ 0 -1 0 1 0 0 0 0 -1 0.0000000 0.7500000 0.2500000
+ 0 -1 0 0 0 -1 1 0 0 0.0000000 0.7500000 0.2500000
+ 0 1 0 0 0 1 -1 0 0 0.0000000 0.7500000 0.2500000
+ 0 -1 0 -1 0 0 0 0 -1 0.0000000 0.7500000 0.2500000
+ 0 1 0 1 0 0 0 0 1 0.0000000 0.7500000 0.2500000
+ 0 -1 0 0 0 1 -1 0 0 0.0000000 0.7500000 0.2500000
+ 0 1 0 0 0 -1 1 0 0 0.0000000 0.7500000 0.2500000
+ 0 -1 0 1 0 0 0 0 1 0.0000000 0.7500000 0.2500000
+ 0 1 0 -1 0 0 0 0 -1 0.0000000 0.7500000 0.2500000
+ 0 0 1 1 0 0 0 1 0 0.0000000 0.7500000 0.2500000
+ 0 0 -1 -1 0 0 0 -1 0 0.0000000 0.7500000 0.2500000
+ 1 0 0 0 0 -1 0 1 0 0.0000000 0.7500000 0.2500000
+-1 0 0 0 0 1 0 -1 0 0.0000000 0.7500000 0.2500000
+ 0 0 -1 -1 0 0 0 1 0 0.0000000 0.7500000 0.2500000
+ 0 0 1 1 0 0 0 -1 0 0.0000000 0.7500000 0.2500000
+-1 0 0 0 0 1 0 1 0 0.0000000 0.7500000 0.2500000
+ 1 0 0 0 0 -1 0 -1 0 0.0000000 0.7500000 0.2500000
+ 0 0 -1 1 0 0 0 -1 0 0.0000000 0.7500000 0.2500000
+ 0 0 1 -1 0 0 0 1 0 0.0000000 0.7500000 0.2500000
+-1 0 0 0 0 -1 0 -1 0 0.0000000 0.7500000 0.2500000
+ 1 0 0 0 0 1 0 1 0 0.0000000 0.7500000 0.2500000
+ 0 0 1 -1 0 0 0 -1 0 0.0000000 0.7500000 0.2500000
+ 0 0 -1 1 0 0 0 1 0 0.0000000 0.7500000 0.2500000
+ 1 0 0 0 0 1 0 -1 0 0.0000000 0.7500000 0.2500000
+-1 0 0 0 0 -1 0 1 0 0.0000000 0.7500000 0.2500000
+ 1 0 0 0 1 0 0 0 1 0.7500000 0.5000000 0.2500000
+-1 0 0 0 -1 0 0 0 -1 0.7500000 0.5000000 0.2500000
+ 0 0 -1 0 1 0 1 0 0 0.7500000 0.5000000 0.2500000
+ 0 0 1 0 -1 0 -1 0 0 0.7500000 0.5000000 0.2500000
+-1 0 0 0 1 0 0 0 -1 0.7500000 0.5000000 0.2500000
+ 1 0 0 0 -1 0 0 0 1 0.7500000 0.5000000 0.2500000
+ 0 0 1 0 1 0 -1 0 0 0.7500000 0.5000000 0.2500000
+ 0 0 -1 0 -1 0 1 0 0 0.7500000 0.5000000 0.2500000
+ 1 0 0 0 -1 0 0 0 -1 0.7500000 0.5000000 0.2500000
+-1 0 0 0 1 0 0 0 1 0.7500000 0.5000000 0.2500000
+ 0 0 -1 0 -1 0 -1 0 0 0.7500000 0.5000000 0.2500000
+ 0 0 1 0 1 0 1 0 0 0.7500000 0.5000000 0.2500000
+-1 0 0 0 -1 0 0 0 1 0.7500000 0.5000000 0.2500000
+ 1 0 0 0 1 0 0 0 -1 0.7500000 0.5000000 0.2500000
+ 0 0 1 0 -1 0 1 0 0 0.7500000 0.5000000 0.2500000
+ 0 0 -1 0 1 0 -1 0 0 0.7500000 0.5000000 0.2500000
+ 0 1 0 0 0 1 1 0 0 0.7500000 0.5000000 0.2500000
+ 0 -1 0 0 0 -1 -1 0 0 0.7500000 0.5000000 0.2500000
+ 0 1 0 1 0 0 0 0 -1 0.7500000 0.5000000 0.2500000
+ 0 -1 0 -1 0 0 0 0 1 0.7500000 0.5000000 0.2500000
+ 0 1 0 0 0 -1 -1 0 0 0.7500000 0.5000000 0.2500000
+ 0 -1 0 0 0 1 1 0 0 0.7500000 0.5000000 0.2500000
+ 0 1 0 -1 0 0 0 0 1 0.7500000 0.5000000 0.2500000
+ 0 -1 0 1 0 0 0 0 -1 0.7500000 0.5000000 0.2500000
+ 0 -1 0 0 0 -1 1 0 0 0.7500000 0.5000000 0.2500000
+ 0 1 0 0 0 1 -1 0 0 0.7500000 0.5000000 0.2500000
+ 0 -1 0 -1 0 0 0 0 -1 0.7500000 0.5000000 0.2500000
+ 0 1 0 1 0 0 0 0 1 0.7500000 0.5000000 0.2500000
+ 0 -1 0 0 0 1 -1 0 0 0.7500000 0.5000000 0.2500000
+ 0 1 0 0 0 -1 1 0 0 0.7500000 0.5000000 0.2500000
+ 0 -1 0 1 0 0 0 0 1 0.7500000 0.5000000 0.2500000
+ 0 1 0 -1 0 0 0 0 -1 0.7500000 0.5000000 0.2500000
+ 0 0 1 1 0 0 0 1 0 0.7500000 0.5000000 0.2500000
+ 0 0 -1 -1 0 0 0 -1 0 0.7500000 0.5000000 0.2500000
+ 1 0 0 0 0 -1 0 1 0 0.7500000 0.5000000 0.2500000
+-1 0 0 0 0 1 0 -1 0 0.7500000 0.5000000 0.2500000
+ 0 0 -1 -1 0 0 0 1 0 0.7500000 0.5000000 0.2500000
+ 0 0 1 1 0 0 0 -1 0 0.7500000 0.5000000 0.2500000
+-1 0 0 0 0 1 0 1 0 0.7500000 0.5000000 0.2500000
+ 1 0 0 0 0 -1 0 -1 0 0.7500000 0.5000000 0.2500000
+ 0 0 -1 1 0 0 0 -1 0 0.7500000 0.5000000 0.2500000
+ 0 0 1 -1 0 0 0 1 0 0.7500000 0.5000000 0.2500000
+-1 0 0 0 0 -1 0 -1 0 0.7500000 0.5000000 0.2500000
+ 1 0 0 0 0 1 0 1 0 0.7500000 0.5000000 0.2500000
+ 0 0 1 -1 0 0 0 -1 0 0.7500000 0.5000000 0.2500000
+ 0 0 -1 1 0 0 0 1 0 0.7500000 0.5000000 0.2500000
+ 1 0 0 0 0 1 0 -1 0 0.7500000 0.5000000 0.2500000
+-1 0 0 0 0 -1 0 1 0 0.7500000 0.5000000 0.2500000"""
+
+class TestPureTrans(unittest.TestCase):
+ """This is a test for new implentation of search_pure_translations in
+ symmetry.c (ee97ad17) againt a previous version. The order of
+ symmetry oprations found by this new implementation may be
+ different from that obtaiend by the older version but the set must
+ be the same in rotations and very close in translations.
+
+ """
+
+ def setUp(self):
+ cell = read_vasp_from_strings(Al222)
+ self._sym_ops = get_symmetry(cell)
+ rot = []
+ trans = []
+ for i, line in enumerate(sym_ops_str.split('\n')):
+ arr = line.split()
+ rot += [int(x) for x in arr[:9]]
+ trans += [float(x) for x in arr[9:]]
+ self._rot_ref = np.reshape(rot, (-1, 3, 3))
+ self._trans_ref = np.reshape(trans, (-1, 3))
+
+ def tearDown(self):
+ pass
+
+ def test_pure_trans(self):
+ nums = []
+ for i, (r, t) in enumerate(zip(self._sym_ops['rotations'],
+ self._sym_ops['translations'])):
+ for j, (rr, tr) in enumerate(zip(self._rot_ref, self._trans_ref)):
+ if (r == rr).all() and (np.abs(t - tr) < 1e-5).all():
+ nums.append(j)
+ break
+
+ np.testing.assert_array_equal(np.sort(nums),
+ np.arange(len(self._rot_ref)))
+
+if __name__ == '__main__':
+ suite = unittest.TestLoader().loadTestsFromTestCase(TestPureTrans)
+ unittest.TextTestRunner(verbosity=2).run(suite)
+ # unittest.main()
diff --git a/python/test/test_reciprocal_mesh.py b/python/test/test_reciprocal_mesh.py
new file mode 100644
index 0000000..6e6bf49
--- /dev/null
+++ b/python/test/test_reciprocal_mesh.py
@@ -0,0 +1,293 @@
+import unittest
+try:
+ from StringIO import StringIO
+except ImportError:
+ from io import StringIO
+import numpy as np
+from spglib import (get_ir_reciprocal_mesh,
+ get_stabilized_reciprocal_mesh,
+ get_symmetry_dataset,
+ get_symmetry_from_database)
+from vasp import read_vasp
+
+result_ir_rec_mesh = (""" 0 0 0 0
+ 1 1 0 0
+ 2 2 0 0
+ 1 -1 0 0
+ 1 0 1 0
+ 5 1 1 0
+ 6 2 1 0
+ 5 -1 1 0
+ 2 0 2 0
+ 6 1 2 0
+ 10 2 2 0
+ 6 -1 2 0
+ 1 0 -1 0
+ 5 1 -1 0
+ 6 2 -1 0
+ 5 -1 -1 0
+ 1 0 0 1
+ 5 1 0 1
+ 6 2 0 1
+ 5 -1 0 1
+ 5 0 1 1
+ 21 1 1 1
+ 22 2 1 1
+ 21 -1 1 1
+ 6 0 2 1
+ 22 1 2 1
+ 26 2 2 1
+ 22 -1 2 1
+ 5 0 -1 1
+ 21 1 -1 1
+ 22 2 -1 1
+ 21 -1 -1 1
+ 2 0 0 2
+ 6 1 0 2
+ 10 2 0 2
+ 6 -1 0 2
+ 6 0 1 2
+ 22 1 1 2
+ 26 2 1 2
+ 22 -1 1 2
+ 10 0 2 2
+ 26 1 2 2
+ 42 2 2 2
+ 26 -1 2 2
+ 6 0 -1 2
+ 22 1 -1 2
+ 26 2 -1 2
+ 22 -1 -1 2
+ 1 0 0 -1
+ 5 1 0 -1
+ 6 2 0 -1
+ 5 -1 0 -1
+ 5 0 1 -1
+ 21 1 1 -1
+ 22 2 1 -1
+ 21 -1 1 -1
+ 6 0 2 -1
+ 22 1 2 -1
+ 26 2 2 -1
+ 22 -1 2 -1
+ 5 0 -1 -1
+ 21 1 -1 -1
+ 22 2 -1 -1
+ 21 -1 -1 -1""", """ 0 0 0 0
+ 1 1 0 0
+ 2 2 0 0
+ 1 -1 0 0
+ 1 0 1 0
+ 5 1 1 0
+ 5 2 1 0
+ 1 -1 1 0
+ 2 0 2 0
+ 5 1 2 0
+ 2 2 2 0
+ 5 -1 2 0
+ 1 0 -1 0
+ 1 1 -1 0
+ 5 2 -1 0
+ 5 -1 -1 0
+ 16 0 0 1
+ 17 1 0 1
+ 18 2 0 1
+ 17 -1 0 1
+ 17 0 1 1
+ 21 1 1 1
+ 21 2 1 1
+ 17 -1 1 1
+ 18 0 2 1
+ 21 1 2 1
+ 18 2 2 1
+ 21 -1 2 1
+ 17 0 -1 1
+ 17 1 -1 1
+ 21 2 -1 1
+ 21 -1 -1 1""")
+
+result_ir_rec_mesh_distortion = (""" 0 0 0 0
+ 1 1 0 0
+ 1 -1 0 0
+ 3 0 1 0
+ 4 1 1 0
+ 4 -1 1 0
+ 6 0 2 0
+ 7 1 2 0
+ 7 -1 2 0
+ 3 0 -1 0
+ 4 1 -1 0
+ 4 -1 -1 0
+ 3 0 0 1
+ 4 1 0 1
+ 4 -1 0 1
+ 15 0 1 1
+ 16 1 1 1
+ 16 -1 1 1
+ 18 0 2 1
+ 19 1 2 1
+ 19 -1 2 1
+ 15 0 -1 1
+ 16 1 -1 1
+ 16 -1 -1 1
+ 6 0 0 2
+ 7 1 0 2
+ 7 -1 0 2
+ 18 0 1 2
+ 19 1 1 2
+ 19 -1 1 2
+ 30 0 2 2
+ 31 1 2 2
+ 31 -1 2 2
+ 18 0 -1 2
+ 19 1 -1 2
+ 19 -1 -1 2
+ 3 0 0 -1
+ 4 1 0 -1
+ 4 -1 0 -1
+ 15 0 1 -1
+ 16 1 1 -1
+ 16 -1 1 -1
+ 18 0 2 -1
+ 19 1 2 -1
+ 19 -1 2 -1
+ 15 0 -1 -1
+ 16 1 -1 -1
+ 16 -1 -1 -1""", """ 0 0 0 0
+ 1 1 0 0
+ 1 -1 0 0
+ 3 0 1 0
+ 4 1 1 0
+ 5 -1 1 0
+ 6 0 2 0
+ 7 1 2 0
+ 8 -1 2 0
+ 6 0 -2 0
+ 8 1 -2 0
+ 7 -1 -2 0
+ 3 0 -1 0
+ 5 1 -1 0
+ 4 -1 -1 0""", """ 0 0 0 0
+ 1 1 0 0
+ 1 -1 0 0
+ 3 0 1 0
+ 4 1 1 0
+ 4 -1 1 0
+ 3 0 2 0
+ 4 1 2 0
+ 4 -1 2 0
+ 0 0 -1 0
+ 1 1 -1 0
+ 1 -1 -1 0
+ 12 0 0 1
+ 13 1 0 1
+ 13 -1 0 1
+ 15 0 1 1
+ 16 1 1 1
+ 16 -1 1 1
+ 15 0 2 1
+ 16 1 2 1
+ 16 -1 2 1
+ 12 0 -1 1
+ 13 1 -1 1
+ 13 -1 -1 1
+ 24 0 0 2
+ 25 1 0 2
+ 25 -1 0 2
+ 27 0 1 2
+ 28 1 1 2
+ 28 -1 1 2
+ 27 0 2 2
+ 28 1 2 2
+ 28 -1 2 2
+ 24 0 -1 2
+ 25 1 -1 2
+ 25 -1 -1 2
+ 12 0 0 -1
+ 13 1 0 -1
+ 13 -1 0 -1
+ 15 0 1 -1
+ 16 1 1 -1
+ 16 -1 1 -1
+ 15 0 2 -1
+ 16 1 2 -1
+ 16 -1 2 -1
+ 12 0 -1 -1
+ 13 1 -1 -1
+ 13 -1 -1 -1""", """ 0 0 0 0
+ 1 1 0 0
+ 2 -1 0 0
+ 3 0 1 0
+ 4 1 1 0
+ 5 -1 1 0
+ 6 0 2 0
+ 7 1 2 0
+ 7 -1 2 0
+ 3 0 -2 0
+ 5 1 -2 0
+ 4 -1 -2 0
+ 0 0 -1 0
+ 2 1 -1 0
+ 1 -1 -1 0""")
+
+class TestReciprocalMesh(unittest.TestCase):
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def test_get_ir_reciprocal_mesh(self):
+ file_and_mesh = (["cubic/POSCAR-217", [4, 4, 4]],
+ ["hexagonal/POSCAR-182", [4, 4, 2]])
+ i = 0
+ for fname, mesh in file_and_mesh:
+ cell = read_vasp("./data/%s" % fname)
+ ir_rec_mesh = get_ir_reciprocal_mesh(mesh, cell)
+ (mapping_table, grid_address) = ir_rec_mesh
+ # for gp, ga in zip(mapping_table, grid_address):
+ # print("%4d %3d %3d %3d" % (gp, ga[0], ga[1], ga[2]))
+ # print("")
+ data = np.loadtxt(StringIO(result_ir_rec_mesh[i]), dtype='intc')
+ np.testing.assert_equal(data[:, 0], mapping_table)
+ np.testing.assert_equal(data[:, 1:4], grid_address)
+ i += 1
+
+ def test_get_stabilized_reciprocal_mesh(self):
+ file_and_mesh = (["cubic/POSCAR-217", [4, 4, 4]],
+ ["hexagonal/POSCAR-182", [4, 4, 2]])
+ i = 0
+ for fname, mesh in file_and_mesh:
+ cell = read_vasp("./data/%s" % fname)
+ rotations = get_symmetry_dataset(cell)['rotations']
+ ir_rec_mesh = get_stabilized_reciprocal_mesh(mesh, rotations)
+ (mapping_table, grid_address) = ir_rec_mesh
+ data = np.loadtxt(StringIO(result_ir_rec_mesh[i]), dtype='intc')
+ np.testing.assert_equal(data[:, 0], mapping_table)
+ np.testing.assert_equal(data[:, 1:4], grid_address)
+ i += 1
+
+ def test_get_ir_reciprocal_mesh_distortion(self):
+ file_and_mesh = (["cubic/POSCAR-217", [3, 4, 4]],
+ ["hexagonal/POSCAR-182", [3, 5, 1]])
+ i = 0
+ for is_shift in ([0, 0, 0], [0, 1, 0]):
+ for fname, mesh in file_and_mesh:
+ cell = read_vasp("./data/%s" % fname)
+ ir_rec_mesh = get_ir_reciprocal_mesh(mesh, cell,
+ is_shift=is_shift)
+ (mapping_table, grid_address) = ir_rec_mesh
+ # for gp, ga in zip(mapping_table, grid_address):
+ # print("%4d %3d %3d %3d" % (gp, ga[0], ga[1], ga[2]))
+ # print("")
+ data = np.loadtxt(StringIO(result_ir_rec_mesh_distortion[i]),
+ dtype='intc')
+ np.testing.assert_equal(data[:, 0], mapping_table)
+ np.testing.assert_equal(data[:, 1:4], grid_address)
+ i += 1
+
+if __name__ == '__main__':
+ suite = unittest.TestLoader().loadTestsFromTestCase(TestReciprocalMesh)
+ unittest.TextTestRunner(verbosity=2).run(suite)
+ # unittest.main()
diff --git a/python/test/test_spglib.py b/python/test/test_spglib.py
new file mode 100644
index 0000000..ab6bab1
--- /dev/null
+++ b/python/test/test_spglib.py
@@ -0,0 +1,207 @@
+import unittest
+import numpy as np
+from spglib import (get_symmetry_dataset, refine_cell, find_primitive,
+ get_spacegroup_type, get_symmetry, standardize_cell)
+from vasp import read_vasp
+from os import listdir
+
+dirnames = ('cubic',
+ 'hexagonal',
+ 'monoclinic',
+ 'orthorhombic',
+ 'tetragonal',
+ 'triclinic',
+ 'trigonal',
+ 'distorted',
+ 'virtual_structure')
+
+spg_to_hall = [
+ 1, 2, 3, 6, 9, 18, 21, 30, 39, 57,
+ 60, 63, 72, 81, 90, 108, 109, 112, 115, 116,
+ 119, 122, 123, 124, 125, 128, 134, 137, 143, 149,
+ 155, 161, 164, 170, 173, 176, 182, 185, 191, 197,
+ 203, 209, 212, 215, 218, 221, 227, 228, 230, 233,
+ 239, 245, 251, 257, 263, 266, 269, 275, 278, 284,
+ 290, 292, 298, 304, 310, 313, 316, 322, 334, 335,
+ 337, 338, 341, 343, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 361, 363, 364, 366, 367,
+ 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, 401, 402, 404, 406, 407, 408, 410,
+ 412, 413, 414, 416, 418, 419, 420, 422, 424, 425,
+ 426, 428, 430, 431, 432, 433, 435, 436, 438, 439,
+ 440, 441, 442, 443, 444, 446, 447, 448, 449, 450,
+ 452, 454, 455, 456, 457, 458, 460, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
+ 495, 497, 498, 500, 501, 502, 503, 504, 505, 506,
+ 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 520, 521, 523, 524, 525, 527, 529, 530, 531]
+
+class TestSpglib(unittest.TestCase):
+
+ def setUp(self):
+ self._filenames = []
+ for d in dirnames:
+ self._filenames += ["%s/%s" % (d, fname)
+ for fname in listdir("./data/%s" % d)]
+
+ def tearDown(self):
+ pass
+
+ def test_get_symmetry_dataset(self):
+ for fname in self._filenames:
+ spgnum = int(fname.split('-')[1])
+ cell = read_vasp("./data/%s" % fname)
+
+ if 'distorted' in fname:
+ symprec = 1e-1
+ else:
+ symprec = 1e-5
+ dataset = get_symmetry_dataset(cell, symprec=symprec)
+ self.assertEqual(dataset['number'], spgnum, msg=("%s" % fname))
+
+ for i in range(spg_to_hall[spgnum - 1], spg_to_hall[spgnum]):
+ dataset = get_symmetry_dataset(cell, hall_number=i,
+ symprec=symprec)
+ self.assertEqual(dataset['hall_number'], i, msg=("%s" % fname))
+ spg_type = get_spacegroup_type(dataset['hall_number'])
+ self.assertEqual(dataset['international'],
+ spg_type['international_short'],
+ msg=("%s" % fname))
+ self.assertEqual(dataset['hall'], spg_type['hall_symbol'],
+ msg=("%s" % fname))
+ self.assertEqual(dataset['choice'], spg_type['choice'],
+ msg=("%s" % fname))
+ self.assertEqual(dataset['pointgroup'],
+ spg_type['pointgroup_schoenflies'],
+ msg=("%s" % fname))
+
+ def test_standardize_cell(self):
+ for fname in self._filenames:
+ spgnum = int(fname.split('-')[1])
+ cell = read_vasp("./data/%s" % fname)
+ if 'distorted' in fname:
+ std_cell = standardize_cell(cell,
+ to_primitive=False,
+ no_idealize=True,
+ symprec=1e-1)
+ dataset = get_symmetry_dataset(std_cell, symprec=1e-1)
+ else:
+ std_cell = standardize_cell(cell,
+ to_primitive=False,
+ no_idealize=True,
+ symprec=1e-5)
+ dataset = get_symmetry_dataset(std_cell, symprec=1e-5)
+ self.assertEqual(dataset['number'], spgnum,
+ msg=("%s" % fname))
+
+ def test_standardize_cell_from_primitive(self):
+ for fname in self._filenames:
+ spgnum = int(fname.split('-')[1])
+ cell = read_vasp("./data/%s" % fname)
+ if 'distorted' in fname:
+ prim_cell = standardize_cell(cell,
+ to_primitive=True,
+ no_idealize=True,
+ symprec=1e-1)
+ std_cell = standardize_cell(prim_cell,
+ to_primitive=False,
+ no_idealize=True,
+ symprec=1e-1)
+ dataset = get_symmetry_dataset(std_cell, symprec=1e-1)
+ else:
+ prim_cell = standardize_cell(cell,
+ to_primitive=True,
+ no_idealize=True,
+ symprec=1e-5)
+ std_cell = standardize_cell(prim_cell,
+ to_primitive=False,
+ no_idealize=True,
+ symprec=1e-5)
+ dataset = get_symmetry_dataset(std_cell, symprec=1e-5)
+ self.assertEqual(dataset['number'], spgnum,
+ msg=("%s" % fname))
+
+ def test_standardize_cell_to_primitive(self):
+ for fname in self._filenames:
+ spgnum = int(fname.split('-')[1])
+ cell = read_vasp("./data/%s" % fname)
+ if 'distorted' in fname:
+ prim_cell = standardize_cell(cell,
+ to_primitive=True,
+ no_idealize=True,
+ symprec=1e-1)
+ dataset = get_symmetry_dataset(prim_cell, symprec=1e-1)
+ else:
+ prim_cell = standardize_cell(cell,
+ to_primitive=True,
+ no_idealize=True,
+ symprec=1e-5)
+ dataset = get_symmetry_dataset(prim_cell, symprec=1e-5)
+ self.assertEqual(dataset['number'], spgnum,
+ msg=("%s" % fname))
+
+ def test_refine_cell(self):
+ for fname in self._filenames:
+ spgnum = int(fname.split('-')[1])
+ cell = read_vasp("./data/%s" % fname)
+ if 'distorted' in fname:
+ dataset_orig = get_symmetry_dataset(cell, symprec=1e-1)
+ else:
+ dataset_orig = get_symmetry_dataset(cell, symprec=1e-5)
+ ref_cell = (dataset_orig['std_lattice'],
+ dataset_orig['std_positions'],
+ dataset_orig['std_types'])
+ dataset = get_symmetry_dataset(ref_cell, symprec=1e-5)
+ self.assertEqual(dataset['number'], spgnum,
+ msg=("%s" % fname))
+
+ def test_find_primitive(self):
+ for fname in self._filenames:
+ spgnum = int(fname.split('-')[1])
+ cell = read_vasp("./data/%s" % fname)
+ if 'distorted' in fname:
+ dataset = get_symmetry_dataset(cell, symprec=1e-1)
+ primitive = find_primitive(cell, symprec=1e-1)
+ else:
+ dataset = get_symmetry_dataset(cell, symprec=1e-5)
+ primitive = find_primitive(cell, symprec=1e-5)
+ spg_type = get_spacegroup_type(dataset['hall_number'])
+ c = spg_type['international_short'][0]
+ if c in ['A', 'B', 'C', 'I']:
+ multiplicity = 2
+ elif c == 'F':
+ multiplicity = 4
+ elif c == 'R':
+ self.assertEqual(spg_type['choice'], 'H')
+ if spg_type['choice'] == 'H':
+ multiplicity = 3
+ else: # spg_type['choice'] == 'R'
+ multiplicity = 1
+ else:
+ multiplicity = 1
+ self.assertEqual(len(dataset['std_types']),
+ len(primitive[2]) * multiplicity,
+ msg=("multi: %d, %s" % (multiplicity, fname)))
+
+ def test_get_symmetry(self):
+ for fname in self._filenames:
+ spgnum = int(fname.split('-')[1])
+ cell = read_vasp("./data/%s" % fname)
+ if 'distorted' in fname:
+ num_sym_dataset = len(
+ get_symmetry_dataset(cell, symprec=1e-1)['rotations'])
+ num_sym = len(get_symmetry(cell, symprec=1e-1)['rotations'])
+ else:
+ num_sym_dataset = len(
+ get_symmetry_dataset(cell, symprec=1e-5)['rotations'])
+ num_sym = len(get_symmetry(cell, symprec=1e-5)['rotations'])
+ self.assertEqual(num_sym_dataset, num_sym)
+
+if __name__ == '__main__':
+ suite = unittest.TestLoader().loadTestsFromTestCase(TestSpglib)
+ unittest.TextTestRunner(verbosity=2).run(suite)
+ # unittest.main()
diff --git a/python/test/vasp.py b/python/test/vasp.py
new file mode 100644
index 0000000..abe7ec2
--- /dev/null
+++ b/python/test/vasp.py
@@ -0,0 +1,240 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2011 Atsushi Togo
+# All rights reserved.
+#
+# This file is part of phonopy.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# * Neither the name of the phonopy project nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+import numpy as np
+try:
+ from StringIO import StringIO
+except ImportError:
+ from io import StringIO
+
+def read_vasp(filename):
+ lines = open(filename).readlines()
+ return _get_cell(lines)
+
+def read_vasp_from_strings(strings):
+ return _get_cell(StringIO(strings).readlines())
+
+def _get_cell(lines):
+ line1 = [x for x in lines[0].split()]
+ if _is_exist_symbols(line1):
+ symbols = line1
+ else:
+ symbols = None
+
+ scale = float(lines[1])
+
+ lattice = []
+ for i in range(2, 5):
+ lattice.append([float(x) for x in lines[i].split()[:3]])
+ lattice = np.array(lattice) * scale
+
+ try:
+ num_atoms = np.array([int(x) for x in lines[5].split()])
+ line_at = 6
+ except ValueError:
+ symbols = [x for x in lines[5].split()]
+ num_atoms = np.array([int(x) for x in lines[6].split()])
+ line_at = 7
+
+ numbers = _expand_symbols(num_atoms, symbols)
+
+ if lines[line_at][0].lower() == 's':
+ line_at += 1
+
+ is_cartesian = False
+ if (lines[line_at][0].lower() == 'c' or
+ lines[line_at][0].lower() == 'k'):
+ is_cartesian = True
+
+ line_at += 1
+
+ positions = []
+ for i in range(line_at, line_at + num_atoms.sum()):
+ positions.append([float(x) for x in lines[i].split()[:3]])
+
+ if is_cartesian:
+ positions = np.dot(positions, np.linalg.inv(lattice))
+
+ return (lattice, positions, numbers)
+
+def _expand_symbols(num_atoms, symbols=None):
+ expanded_symbols = []
+ is_symbols = True
+ if symbols is None:
+ is_symbols = False
+ else:
+ if len(symbols) != len(num_atoms):
+ is_symbols = False
+ else:
+ for s in symbols:
+ if not s in symbol_map:
+ is_symbols = False
+ break
+
+ if is_symbols:
+ for s, num in zip(symbols, num_atoms):
+ expanded_symbols += [symbol_map[s],] * num
+ else:
+ for i, num in enumerate(num_atoms):
+ expanded_symbols += [i + 1,] * num
+
+ return expanded_symbols
+
+def _is_exist_symbols(symbols):
+ for s in symbols:
+ if not (s in symbol_map):
+ return False
+ return True
+
+symbol_map = {
+ "H":1,
+ "He":2,
+ "Li":3,
+ "Be":4,
+ "B":5,
+ "C":6,
+ "N":7,
+ "O":8,
+ "F":9,
+ "Ne":10,
+ "Na":11,
+ "Mg":12,
+ "Al":13,
+ "Si":14,
+ "P":15,
+ "S":16,
+ "Cl":17,
+ "Ar":18,
+ "K":19,
+ "Ca":20,
+ "Sc":21,
+ "Ti":22,
+ "V":23,
+ "Cr":24,
+ "Mn":25,
+ "Fe":26,
+ "Co":27,
+ "Ni":28,
+ "Cu":29,
+ "Zn":30,
+ "Ga":31,
+ "Ge":32,
+ "As":33,
+ "Se":34,
+ "Br":35,
+ "Kr":36,
+ "Rb":37,
+ "Sr":38,
+ "Y":39,
+ "Zr":40,
+ "Nb":41,
+ "Mo":42,
+ "Tc":43,
+ "Ru":44,
+ "Rh":45,
+ "Pd":46,
+ "Ag":47,
+ "Cd":48,
+ "In":49,
+ "Sn":50,
+ "Sb":51,
+ "Te":52,
+ "I":53,
+ "Xe":54,
+ "Cs":55,
+ "Ba":56,
+ "La":57,
+ "Ce":58,
+ "Pr":59,
+ "Nd":60,
+ "Pm":61,
+ "Sm":62,
+ "Eu":63,
+ "Gd":64,
+ "Tb":65,
+ "Dy":66,
+ "Ho":67,
+ "Er":68,
+ "Tm":69,
+ "Yb":70,
+ "Lu":71,
+ "Hf":72,
+ "Ta":73,
+ "W":74,
+ "Re":75,
+ "Os":76,
+ "Ir":77,
+ "Pt":78,
+ "Au":79,
+ "Hg":80,
+ "Tl":81,
+ "Pb":82,
+ "Bi":83,
+ "Po":84,
+ "At":85,
+ "Rn":86,
+ "Fr":87,
+ "Ra":88,
+ "Ac":89,
+ "Th":90,
+ "Pa":91,
+ "U":92,
+ "Np":93,
+ "Pu":94,
+ "Am":95,
+ "Cm":96,
+ "Bk":97,
+ "Cf":98,
+ "Es":99,
+ "Fm":100,
+ "Md":101,
+ "No":102,
+ "Lr":103,
+ "Rf":104,
+ "Db":105,
+ "Sg":106,
+ "Bh":107,
+ "Hs":108,
+ "Mt":109,
+ "Ds":110,
+ "Rg":111,
+ "Cn":112,
+ "Uut":113,
+ "Uuq":114,
+ "Uup":115,
+ "Uuh":116,
+ "Uus":117,
+ "Uuo":118,
+ }
diff --git a/test/README b/ruby/README
similarity index 100%
rename from test/README
rename to ruby/README
diff --git a/test/extconf.rb b/ruby/extconf.rb
similarity index 100%
rename from test/extconf.rb
rename to ruby/extconf.rb
diff --git a/ruby/getspg.c b/ruby/getspg.c
new file mode 100644
index 0000000..f47fcb1
--- /dev/null
+++ b/ruby/getspg.c
@@ -0,0 +1,367 @@
+#include <stdio.h>
+#include "ruby.h"
+#include "spglib.h"
+
+VALUE Getspg = Qnil;
+void Init_getspg(void);
+VALUE method_getspg(VALUE self,
+ VALUE r_size,
+ VALUE r_lattice,
+ VALUE r_position,
+ VALUE r_types,
+ VALUE r_symprec,
+ VALUE r_angle_symprec);
+VALUE method_getptg(VALUE self,
+ VALUE r_rotations);
+VALUE method_find_primitive(VALUE self,
+ VALUE r_lattice,
+ VALUE r_position,
+ VALUE r_types,
+ VALUE r_symprec,
+ VALUE r_angle_symprec);
+VALUE method_get_dataset(VALUE self,
+ VALUE r_lattice,
+ VALUE r_position,
+ VALUE r_types,
+ VALUE r_hall_num,
+ VALUE r_symprec,
+ VALUE r_angle_symprec);
+VALUE method_get_symmetry(VALUE self,
+ VALUE r_lattice,
+ VALUE r_position,
+ VALUE r_types,
+ VALUE r_symprec,
+ VALUE r_angle_symprec);
+VALUE method_standardize_cell(VALUE self,
+ VALUE r_lattice,
+ VALUE r_position,
+ VALUE r_types,
+ VALUE r_to_primitive,
+ VALUE r_leave_distrtion,
+ VALUE r_symprec,
+ VALUE r_angle_symprec);
+
+void Init_getspg(void)
+{
+ Getspg = rb_define_module("Getspg");
+ rb_define_method(Getspg, "getptg", method_getptg, 1);
+ rb_define_method(Getspg, "find_primitive", method_find_primitive, 5);
+ rb_define_method(Getspg, "get_dataset", method_get_dataset, 6);
+ rb_define_method(Getspg, "get_symmetry", method_get_symmetry, 5);
+}
+
+VALUE method_getptg(VALUE self, VALUE r_rotations)
+{
+ int i, j, k, size, ptg_num;
+ char symbol[6];
+ int trans_mat[3][3];
+ VALUE array, matrix, vector;
+
+ size = RARRAY_LEN( r_rotations );
+ int rotations[size][3][3];
+
+ for ( i = 0; i < size; i++ ) {
+ for ( j = 0; j < 3; j++ ) {
+ for ( k = 0; k < 3; k++ ) {
+ rotations[i][j][k] = NUM2INT( rb_ary_entry( rb_ary_entry( rb_ary_entry( r_rotations, i ), j ), k ) );
+ }
+ }
+ }
+
+ ptg_num = spg_get_pointgroup( symbol, trans_mat, rotations, size );
+ array = rb_ary_new();
+ rb_ary_push( array, rb_str_new2( symbol ) );
+ rb_ary_push( array, INT2NUM( ptg_num ) );
+ matrix = rb_ary_new();
+ for ( i = 0; i < 3; i++) {
+ vector = rb_ary_new();
+ for ( j = 0; j < 3; j++ ) {
+ rb_ary_push( vector, INT2NUM( trans_mat[i][j] ) );
+ }
+ rb_ary_push( matrix, vector);
+ }
+ rb_ary_push( array, matrix );
+
+ return array;
+}
+
+VALUE method_find_primitive(VALUE self,
+ VALUE r_lattice,
+ VALUE r_position,
+ VALUE r_types,
+ VALUE r_symprec,
+ VALUE r_angle_symprec)
+{
+ int i, j, k, num_atom, num_prim_atom;
+ double symprec, lattice[3][3];
+ VALUE array, vector, lat_ary, pos_ary, typ_ary;
+
+ num_atom = RARRAY_LEN(r_types);
+
+ double position[num_atom][3];
+ int types[num_atom];
+
+ symprec = NUM2DBL(r_symprec);
+
+ for (i = 0; i < num_atom; i++) {
+ for (j = 0; j < 3; j++) {
+ position[i][j] = NUM2DBL(rb_ary_entry(rb_ary_entry(r_position, i), j));
+ types[i] = NUM2DBL(rb_ary_entry(r_types, i));
+ }
+ }
+
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ lattice[i][j] = NUM2DBL(rb_ary_entry(rb_ary_entry(r_lattice, i), j));
+ }
+ }
+
+ num_prim_atom = spgat_standardize_cell(lattice,
+ position,
+ types,
+ num_atom,
+ 1,
+ 0,
+ symprec,
+ NUM2DBL(r_angle_symprec));
+
+ array = rb_ary_new();
+ lat_ary = rb_ary_new();
+ for (i = 0; i < 3 ; i++) {
+ vector = rb_ary_new();
+ for (j = 0; j < 3; j++) {
+ rb_ary_push(vector, rb_float_new(lattice[i][j]));
+ }
+ rb_ary_push(lat_ary, vector);
+ }
+ rb_ary_push(array, lat_ary);
+
+ pos_ary = rb_ary_new();
+ typ_ary = rb_ary_new();
+ for (i = 0; i < num_prim_atom; i++) {
+ vector = rb_ary_new();
+ rb_ary_push(typ_ary, INT2NUM(types[i]));
+ for (j = 0; j < 3 ; j++) {
+ rb_ary_push(vector, rb_float_new(position[i][j]));
+ }
+ rb_ary_push(pos_ary, vector);
+ }
+
+ rb_ary_push(array, pos_ary);
+ rb_ary_push(array, typ_ary);
+
+ return array;
+}
+
+VALUE method_get_dataset(VALUE self,
+ VALUE r_lattice,
+ VALUE r_position,
+ VALUE r_types,
+ VALUE r_hall_num,
+ VALUE r_symprec,
+ VALUE r_angle_symprec)
+{
+ int i, j, k, num_atom;
+ double symprec, lattice[3][3];
+ SpglibDataset *dataset;
+ VALUE mat, vec, row, array, r_tmat, r_oshift, r_rot, r_trans, r_wyckoffs, r_std_lattice, r_std_positions, r_std_types;
+
+ num_atom = RARRAY_LEN(r_types);
+
+ double position[num_atom][3];
+ int types[num_atom];
+
+ symprec = NUM2DBL(r_symprec);
+
+ for (i = 0; i < num_atom; i++) {
+ for (j = 0; j < 3; j++) {
+ position[i][j] = NUM2DBL(rb_ary_entry(rb_ary_entry(r_position, i), j));
+ types[i] = NUM2DBL(rb_ary_entry(r_types, i));
+ }
+ }
+
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ lattice[i][j] = NUM2DBL(rb_ary_entry(rb_ary_entry(r_lattice, i), j));
+ }
+ }
+
+ dataset = spgat_get_dataset_with_hall_number(lattice,
+ position,
+ types,
+ num_atom,
+ NUM2INT(r_hall_num),
+ symprec,
+ NUM2DBL(r_angle_symprec));
+
+ array = rb_ary_new();
+
+ if (dataset == NULL) {
+ goto err;
+ }
+
+ rb_ary_push(array, INT2NUM(dataset->spacegroup_number));
+ rb_ary_push(array, rb_str_new2(dataset->international_symbol));
+ rb_ary_push(array, INT2NUM(dataset->hall_number));
+ rb_ary_push(array, rb_str_new2(dataset->hall_symbol));
+ rb_ary_push(array, rb_str_new2(dataset->choice));
+
+ /* Transformation_matrix */
+ r_tmat = rb_ary_new();
+ for (i = 0; i < 3; i++) {
+ row = rb_ary_new();
+ for (j = 0; j < 3; j++) {
+ rb_ary_push(row,
+ rb_float_new(dataset->transformation_matrix[i][j]));
+ }
+ rb_ary_push(r_tmat, row);
+ }
+ rb_ary_push(array, r_tmat);
+
+ /* Origin shift */
+ r_oshift = rb_ary_new();
+ for (i = 0; i < 3; i++) {
+ rb_ary_push(r_oshift, rb_float_new(dataset->origin_shift[i]));
+ }
+ rb_ary_push(array, r_oshift);
+
+ /* Rotations, translations */
+ r_rot = rb_ary_new();
+ r_trans = rb_ary_new();
+ for (i = 0; i < dataset->n_operations; i++) {
+ mat = rb_ary_new();
+ vec = rb_ary_new();
+ for (j = 0; j < 3; j++) {
+ rb_ary_push(vec, rb_float_new(dataset->translations[i][j]));
+ row = rb_ary_new();
+ for (k = 0; k < 3; k++) {
+ rb_ary_push(row, rb_float_new(dataset->rotations[i][j][k]));
+ }
+ rb_ary_push(mat, row);
+ }
+ rb_ary_push(r_trans, vec);
+ rb_ary_push(r_rot, mat);
+ }
+ rb_ary_push(array, r_rot);
+ rb_ary_push(array, r_trans);
+
+ /* Wyckoff letters */
+ r_wyckoffs = rb_ary_new();
+ for (i = 0; i < dataset->n_atoms; i++) {
+ r_wyckoffs = rb_ary_push(r_wyckoffs, INT2NUM(dataset->wyckoffs[i]));
+ }
+ rb_ary_push(array, r_wyckoffs);
+
+ /* Bravais lattice */
+ r_std_lattice = rb_ary_new();
+ for (i = 0; i < 3; i++) {
+ vec = rb_ary_new();
+ for (j = 0; j < 3; j++) {
+ rb_ary_push(vec, rb_float_new(dataset->std_lattice[i][j]));
+ }
+ rb_ary_push(r_std_lattice, vec);
+ }
+ rb_ary_push(array, r_std_lattice);
+
+ r_std_positions = rb_ary_new();
+ r_std_types = rb_ary_new();
+ for (i = 0; i < dataset->n_std_atoms; i++) {
+ vec = rb_ary_new();
+ for (j = 0; j < 3; j++) {
+ rb_ary_push(vec, rb_float_new(dataset->std_positions[i][j]));
+ }
+ rb_ary_push(r_std_positions, vec);
+ rb_ary_push(r_std_types, INT2NUM(dataset->std_types[i]));
+ }
+ rb_ary_push(array, r_std_types);
+ rb_ary_push(array, r_std_positions);
+
+ spg_free_dataset(dataset);
+
+ err:
+
+ return array;
+}
+
+VALUE method_get_symmetry(VALUE self,
+ VALUE r_lattice,
+ VALUE r_position,
+ VALUE r_types,
+ VALUE r_symprec,
+ VALUE r_angle_symprec)
+{
+ int i, j, k, num_atom, num_sym;
+ double symprec, lattice[3][3];
+ VALUE mat, vec, row, array, r_rot, r_trans;
+
+ num_atom = RARRAY_LEN(r_types);
+
+ double position[num_atom][3];
+ int types[num_atom];
+
+ int max_num_sym = num_atom * 48;
+ int rotations[max_num_sym][3][3];
+ double translations[max_num_sym][3];
+
+ symprec = NUM2DBL(r_symprec);
+
+ for (i = 0; i < num_atom; i++) {
+ for (j = 0; j < 3; j++) {
+ position[i][j] = NUM2DBL(rb_ary_entry(rb_ary_entry(r_position, i), j));
+ types[i] = NUM2DBL(rb_ary_entry(r_types, i));
+ }
+ }
+
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ lattice[i][j] = NUM2DBL(rb_ary_entry(rb_ary_entry(r_lattice, i), j));
+ }
+ }
+
+ num_sym = spgat_get_symmetry_numerical(rotations,
+ translations,
+ max_num_sym,
+ lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ NUM2DBL(r_angle_symprec));
+
+ array = rb_ary_new();
+
+ /* Rotations, translations */
+ r_rot = rb_ary_new();
+ r_trans = rb_ary_new();
+ for (i = 0; i < num_sym; i++) {
+ mat = rb_ary_new();
+ vec = rb_ary_new();
+ for (j = 0; j < 3; j++) {
+ rb_ary_push(vec, rb_float_new(translations[i][j]));
+ row = rb_ary_new();
+ for (k = 0; k < 3; k++) {
+ rb_ary_push(row, rb_float_new(rotations[i][j][k]));
+ }
+ rb_ary_push(mat, row);
+ }
+ rb_ary_push(r_trans, vec);
+ rb_ary_push(r_rot, mat);
+ }
+ rb_ary_push(array, r_rot);
+ rb_ary_push(array, r_trans);
+
+ err:
+
+ return array;
+}
+
+VALUE method_standardize_cell(VALUE self,
+ VALUE r_lattice,
+ VALUE r_position,
+ VALUE r_types,
+ VALUE r_to_primitive,
+ VALUE r_leave_distrtion,
+ VALUE r_symprec,
+ VALUE r_angle_symprec)
+{
+}
diff --git a/test/poscar.rb b/ruby/poscar.rb
similarity index 91%
rename from test/poscar.rb
rename to ruby/poscar.rb
index abca52a..ca79f53 100644
--- a/test/poscar.rb
+++ b/ruby/poscar.rb
@@ -1,4 +1,4 @@
-# Time-stamp: <2008-04-06 13:39:03 togo>
+# Time-stamp: <2015-11-19 17:24:48 togo>
#
# Copyright (C) 2005 Atsushi Togo
# togo.atsushi at gmail.com
@@ -23,8 +23,8 @@
module Crystal
# constant
AtomicNumber = {"H"=>1, "He"=>2, "Li"=>3, "Be"=>4, "B"=>5, "C"=>6, "N"=>7, "O"=>8,
- "F"=>9, "Ne"=>9, "K"=>10, "Na"=>11, "Mg"=>12, "Al"=>13, "Si"=>14, "P"=>15, "S"=>16,
- "Cl"=>17, "Al"=>18, "K"=>19, "Ca"=>20, "Sc"=>21, "Ti"=>22, "V"=>23, "Cr"=>24,
+ "F"=>9, "Ne"=>10, "Na"=>11, "Mg"=>12, "Al"=>13, "Si"=>14, "P"=>15, "S"=>16,
+ "Cl"=>17, "Ar"=>18, "K"=>19, "Ca"=>20, "Sc"=>21, "Ti"=>22, "V"=>23, "Cr"=>24,
"Mn"=>25, "Fe"=>26, "Co"=>27, "Ni"=>28, "Cu"=>29, "Zn"=>30, "Ga"=>31, "Ge"=>32,
"As"=>33, "Se"=>34, "Br"=>35, "Kr"=>36, "Rb"=>37, "Sr"=>38, "Y"=>39, "Zr"=>40,
"Nb"=>41, "Mo"=>42, "Tc"=>43, "Ru"=>44, "Rh"=>45, "Pd"=>46, "Ag"=>47, "Cd"=>48,
@@ -246,6 +246,10 @@ module Vasp
else
atomName = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(//)
end
+ numAtoms.size.times.collect {|i| atomName[i]}
+ end
+
+ def nameAtoms(names)
name = []
numAtoms.size.times do |i|
numAtoms[i].times {|j| name << "#{atomName[i]}"}
@@ -254,21 +258,22 @@ module Vasp
end
def numAtomsPoscar
- num = @input.readline.strip.split(/\s+/)
- num.size.times {|i| num[i] = num[i].to_i}
- num
+ return @input.readline.strip.split(/\s+/)
end
-
+
def parse(filename, potcarName)
@input = open(filename, "r")
@comment = @input.readline.chomp # line 1: comment (string)
scale = scalePoscar(filename) # line 2: universal scaling factor (float)
@axis = axisPoscar(scale) # line 3-5: axis (3x3: float)
- numAtoms = numAtomsPoscar # line 6: number of atoms ([] integer), atom name ([name, name, ...]) example [Sn, Sn, O, O]
- if numAtoms[0] == 0
- numAtoms = numAtomsPoscar
+ numAtomsAry = numAtomsPoscar # line 6: number of atoms ([] integer), atom name ([name, name, ...]) example [Sn, Sn, O, O]
+ if numAtomsAry[0].to_i == 0
+ names = numAtomsAry
+ numAtoms = numAtomsPoscar.collect {|x| x.to_i}
+ else
+ numAtoms = numAtomsAry.collect {|x| x.to_i}
+ names = namePoscar(numAtoms, potcarName)
end
- name = namePoscar(numAtoms, potcarName)
#
# line 7-(8): 'Selective dynamics' or not (bool)
#
@@ -285,15 +290,15 @@ module Vasp
exit
end
- @atoms = positionPoscar(numAtoms, name) # line 9(8): [Atom, ...]
+ @atoms = positionPoscar(numAtoms, names) # line 9(8): [Atom, ...]
# initial states of MD is ignored.
@input.close
end
- def positionPoscar(numEachAtom, name)
+ def positionPoscar(numAtoms, names)
atoms = []
- numEachAtom.each do |num|
- num.times do
+ numAtoms.size.times do |i|
+ numAtoms[i].times do
lineArr = @input.gets.strip.split(/\s+/)
position = lineArr[0..2].collect! {|x| x.to_f}
if lineArr.size >= 5 then
@@ -301,7 +306,7 @@ module Vasp
else
movable = [false, false, false]
end
- atoms << Atom.new(position, name.shift, movable)
+ atoms << Atom.new(position, names[i], movable)
end
end
atoms
diff --git a/test/poscar2findsym.rb b/ruby/poscar2findsym.rb
similarity index 98%
rename from test/poscar2findsym.rb
rename to ruby/poscar2findsym.rb
index 1095358..2f5b7fe 100755
--- a/test/poscar2findsym.rb
+++ b/ruby/poscar2findsym.rb
@@ -1,6 +1,6 @@
#!/usr/bin/env ruby
-# Time-stamp: <2007-09-11 16:05:49 togo>
+# Time-stamp: <2015-11-19 17:23:47 togo>
#
# Copyright (C) 2005 Atsushi Togo
# togo.atsushi at gmail.com
@@ -26,8 +26,8 @@ require "optparse"
module Crystal
# constant
AtomicNumber = {"H"=>1, "He"=>2, "Li"=>3, "Be"=>4, "B"=>5, "C"=>6, "N"=>7, "O"=>8,
- "F"=>9, "Ne"=>9, "K"=>10, "Na"=>11, "Mg"=>12, "Al"=>13, "Si"=>14, "P"=>15, "S"=>16,
- "Cl"=>17, "Al"=>18, "K"=>19, "Ca"=>20, "Sc"=>21, "Ti"=>22, "V"=>23, "Cr"=>24,
+ "F"=>9, "Ne"=>10, "Na"=>11, "Mg"=>12, "Al"=>13, "Si"=>14, "P"=>15, "S"=>16,
+ "Cl"=>17, "Ar"=>18, "K"=>19, "Ca"=>20, "Sc"=>21, "Ti"=>22, "V"=>23, "Cr"=>24,
"Mn"=>25, "Fe"=>26, "Co"=>27, "Ni"=>28, "Cu"=>29, "Zn"=>30, "Ga"=>31, "Ge"=>32,
"As"=>33, "Se"=>34, "Br"=>35, "Kr"=>36, "Rb"=>37, "Sr"=>38, "Y"=>39, "Zr"=>40,
"Nb"=>41, "Mo"=>42, "Tc"=>43, "Ru"=>44, "Rh"=>45, "Pd"=>46, "Ag"=>47, "Cd"=>48,
diff --git a/ruby/symPoscar.rb b/ruby/symPoscar.rb
new file mode 100644
index 0000000..690f269
--- /dev/null
+++ b/ruby/symPoscar.rb
@@ -0,0 +1,328 @@
+#!/usr/bin/env ruby
+# Copyright (C) 2008 Atsushi Togo
+# togo.atsushi at gmail.com
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Fifth Floor, Boston, MA 02110-1301, USA, or see
+# http://www.gnu.org/copyleft/gpl.html
+#
+# Usage: symPoscar.rb [OPTION] [structure]
+# OPTION: -s, --symprec= : Symmetry check precision
+
+require 'optparse'
+require 'ostruct'
+require 'getspg.so'
+require 'poscar'
+include Getspg
+
+spg2hall = [0,
+ 1, 2, 3, 6, 9, 18, 21, 30, 39, 57,
+ 60, 63, 72, 81, 90, 108, 109, 112, 115, 116,
+ 119, 122, 123, 124, 125, 128, 134, 137, 143, 149,
+ 155, 161, 164, 170, 173, 176, 182, 185, 191, 197,
+ 203, 209, 212, 215, 218, 221, 227, 228, 230, 233,
+ 239, 245, 251, 257, 263, 266, 269, 275, 278, 284,
+ 290, 292, 298, 304, 310, 313, 316, 322, 334, 335,
+ 337, 338, 341, 343, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 361, 363, 364, 366, 367,
+ 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, 401, 402, 404, 406, 407, 408, 410,
+ 412, 413, 414, 416, 418, 419, 420, 422, 424, 425,
+ 426, 428, 430, 431, 432, 433, 435, 436, 438, 439,
+ 440, 441, 442, 443, 444, 446, 447, 448, 449, 450,
+ 452, 454, 455, 456, 457, 458, 460, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
+ 495, 497, 498, 500, 501, 502, 503, 504, 505, 506,
+ 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 520, 521, 523, 524, 525, 527, 529, 530,
+ 531]
+
+def show_dataset(dataset, lattice, position, cell, nonewline, is_long_output, is_dataset, is_operations)
+ spgnum, spg, hallnum, hall_symbol, setting, t_mat, o_shift,
+ rotations, translations, wyckoffs,
+ brv_lattice, brv_types, brv_positions = dataset
+ ptg_symbol, ptg_num, trans_mat = getptg(rotations)
+
+ if nonewline
+ print "#{spg.strip} (#{spgnum})"
+ else
+ puts "#{spg.strip} (#{spgnum}) / #{ptg_symbol} / #{hall_symbol.strip} (#{hallnum}) / #{setting}"
+
+ if is_long_output
+ puts "----------- original -----------"
+ lattice.each do |vec|
+ printf("%10.5f %10.5f %10.5f\n", vec[0], vec[1], vec[2]);
+ end
+
+ puts "------------ final -------------"
+ brv_lattice.each do |vec|
+ printf("%10.5f %10.5f %10.5f\n", vec[0], vec[1], vec[2]);
+ end
+
+ brv_types.size.times do |i|
+ printf("%d: %d %10.5f %10.5f %10.5f\n", i+1, brv_types[i],
+ brv_positions[i][0], brv_positions[i][1], brv_positions[i][2]);
+ end
+ end
+
+ if is_dataset
+ puts "------ transformation matrix -----"
+ t_mat.each do |row|
+ printf("%10.5f %10.5f %10.5f\n", row[0], row[1], row[2]);
+ end
+
+ puts "---------- origin shift ----------"
+ printf("%10.5f %10.5f %10.5f\n", o_shift[0], o_shift[1], o_shift[2]);
+
+ puts "--------- Wyckoff position ----------"
+ wl = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ wyckoffs.each_with_index do |w, i|
+ pos = []
+ 3.times do |j|
+ pos.push(position[i][j] - position[i][j].floor)
+ end
+ printf("%4d %2s %s %8.5f %8.5f %8.5f\n",
+ i+1, cell.atoms[i].name, wl[w,1], pos[0], pos[1], pos[2])
+ end
+ end
+ end
+
+ if is_operations or is_dataset
+ show_operations(rotations, translations)
+ end
+end
+
+def show_operations(rotations, translations)
+ rotations.size.times do |i|
+ print "----", i+1, "----\n"
+ rotations[i].each do |row|
+ printf("%2d %2d %2d\n", row[0], row[1], row[2])
+ end
+ printf("%f %f %f\n", translations[i][0], translations[i][1], translations[i][2])
+ end
+end
+
+def transform_to_c(lattice, position, types, symprec, filename='findspg.c')
+ w = open(filename, "w")
+ w.print <<HERE
+#include <stdio.h>
+#include "spglib.h"
+
+static void get_international(void);
+
+int main(void)
+{
+ get_international();
+ return 0;
+}
+
+static void get_international(void)
+{
+ double lattice[3][3] = {{#{lattice[0][0]}, #{lattice[0][1]}, #{lattice[0][2]}},
+ {#{lattice[1][0]}, #{lattice[1][1]}, #{lattice[1][2]}},
+ {#{lattice[2][0]}, #{lattice[2][1]}, #{lattice[2][2]}}};
+ double position[][3] =
+ {
+HERE
+
+ position.each do |vec|
+ w.puts " {#{vec[0]}, #{vec[1]}, #{vec[2]}},"
+ end
+ w.puts " };"
+ w.print " int types[] = {"
+ types.each {|t| w.print "#{t}, "}
+ w.puts "};"
+ w.print <<HERE
+ int num_spg, num_atom = #{types.size};
+ char symbol[21];
+
+ num_spg = spg_get_international(symbol, lattice, position, types, num_atom, #{symprec});
+ if (num_spg > 0) {
+ printf("%s (%d)\\n", symbol, num_spg);
+ }
+}
+HERE
+ w.close()
+end
+
+def parse_cell(cell, shift_string, pos_shift)
+ if shift_string
+ pos_shift = []
+ shift_string.split.each do |val|
+ pos_shift << val.to_f
+ end
+ end
+
+ lattice = cell.axis.transpose
+ names = (cell.atoms.collect {|atom| atom.name}).uniq
+ position = []
+ types = []
+ names.each_with_index do |name, i|
+ cell.atoms.each do |atom|
+ if atom.name == name
+ apos = atom.position
+ position << [apos[0] + pos_shift[0],
+ apos[1] + pos_shift[1],
+ apos[2] + pos_shift[2]]
+ types << i + 1
+ end
+ end
+ end
+
+ return lattice, position, types
+end
+
+
+options = OpenStruct.new
+options.symprec = 1e-5
+options.hall_number = 0
+options.angle_tolerance = -1.0
+options.nonewline = false
+options.pos_shift = [0,0,0]
+options.shift_string = false
+options.show_primitive = false
+options.is_long_output = false
+options.is_operations = false
+options.is_numerical_operations = false
+options.is_dataset = false
+options.is_check_settings = false
+options.to_c = false
+
+OptionParser.new do |opts|
+ opts.on('-s', '--symprec VALUE', 'Symmetry check precision') do |v|
+ options.symprec = v.to_f
+ end
+
+ opts.on('-a', '--angle_tolerance VALUE', 'Symmetry check precision for angle between lattice vectors in degrees') do |v|
+ options.angle_tolerance = v.to_f
+ end
+
+ opts.on('--shift VALUE', 'uniform shift of internal atomic positions') do |v|
+ options.shift_string = v
+ end
+
+ opts.on('-n', '--nonewline', 'Do not output the trailing newline') do
+ options.nonewline = true
+ end
+
+ opts.on('-l', '--long', 'Long output') do
+ options.is_long_output = true
+ end
+
+ opts.on('-o', '--operations', 'Symmetry operations') do
+ options.is_operations = true
+ end
+
+ opts.on('--numerical_operations', 'Numerical symmetry operations') do
+ options.is_numerical_operations = true
+ end
+
+ opts.on('-d', '--dataset', 'Dataset') do
+ options.is_dataset = true
+ end
+
+ opts.on('--settings', 'Check all settings') do
+ options.is_check_settings = true
+ end
+
+ opts.on('--primitive', 'Show primitive cell') do
+ options.show_primitive = true
+ end
+
+ opts.on('--to_c', 'Convert to C code') do
+ options.to_c = true
+ end
+
+ opts.on('--hall VALUE', 'Hall symbol by the numbering') do |v|
+ options.hall_number = v.to_i
+ end
+end.parse!
+
+cell = Vasp::Poscar.new(ARGV.shift).cell
+lattice, position, types = parse_cell(cell,
+ options.shift_string,
+ options.pos_shift)
+if options.to_c
+ transform_to_c(lattice, position, types, options.symprec)
+end
+
+dataset = get_dataset(lattice,
+ position,
+ types,
+ options.hall_number,
+ options.symprec,
+ options.angle_tolerance)
+
+if not dataset.empty?
+ if not options.is_check_settings
+ show_dataset(dataset,
+ lattice,
+ position,
+ cell,
+ options.nonewline,
+ options.is_long_output,
+ options.is_dataset,
+ options.is_operations)
+ else
+ spgnum_orig = dataset[0]
+ num_settings = spg2hall[spgnum_orig + 1] - spg2hall[spgnum_orig]
+ puts "There are #{num_settings} settings:"
+ num_settings.times {|i|
+ dataset_with_hall = get_dataset(lattice,
+ position,
+ types,
+ spg2hall[spgnum_orig] + i,
+ options.symprec,
+ options.angle_tolerance)
+ spgnum, spg, hallnum, hall_symbol, setting, t_mat, o_shift,
+ rotations, translations, wyckoffs = dataset_with_hall
+ ptg_symbol, ptg_num, trans_mat = getptg(rotations)
+ puts "#{i + 1}: #{spg.strip} (#{spgnum}) / #{ptg_symbol} / #{hall_symbol.strip} (#{hallnum}) / #{setting}"
+ }
+ end
+end
+
+if options.show_primitive
+ lat_ary, pos_ary, typ_ary = find_primitive(lattice,
+ position,
+ types,
+ options.symprec,
+ options.angle_tolerance)
+
+ atoms = []
+ atomName = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(//)
+ typ_ary.size.times do |i|
+ atoms.push(Vasp::Atom.new(pos_ary[i], name=atomName[typ_ary[i]]))
+ end
+
+ axis = [[lat_ary[0][0], lat_ary[1][0], lat_ary[2][0]],
+ [lat_ary[0][1], lat_ary[1][1], lat_ary[2][1]],
+ [lat_ary[0][2], lat_ary[1][2], lat_ary[2][2]]]
+ cell = Crystal::Cell.new(axis, atoms, comment="")
+
+ Vasp::CellToPoscar.new(cell).print
+end
+
+if options.is_numerical_operations
+ rotations, translations = get_symmetry(lattice,
+ position,
+ types,
+ options.symprec)
+ show_operations(rotations, translations)
+end
diff --git a/src/ChangeLog b/src/ChangeLog
deleted file mode 100644
index fb601f9..0000000
--- a/src/ChangeLog
+++ /dev/null
@@ -1,809 +0,0 @@
-2013-04-16 Atsushi Togo <atz.togo at gmail.com>
-
- * symmetry.c (get_operation):
-
- In some case, get_space_group_operation returns more than 48
- symmetry operations for a primitive cell. To avoid this, an
- iterative approach, which is just reducing tolerance gradually to
- achieve number of symmetry operations <= 48, is implemented.
-
- * symmetry.c:
- In the symmetry operation search, rot[] and trans[] were used. Now
- they are replaced by Symmetry *symmetry in symmetry.c.
-
-
-2013-04-14 Atsushi Togo <atz.togo at gmail.com>
-
- * Fortran interface given by Dimitar Pashov:
-
- The new fortran interface is given by Dimitar Pashov, which is
- much safer than the previous one. The new fortran interface, its
- example, and makefile are found in the example directory as
- spglib_f08.f90, example_f08.f90 and Makefile_f08.
-
- * spglib.h, spglib.c, kpoint.h, kpoint,c:
-
- Symprec parameter was removed from spg_get_stabilized_reciprocal_mesh.
-
-2013-01-28 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib.c, spglib_f.c:
-
- Pointerd out by Michael Rutter that the length of charasters of
- space-group type symbol (International table) was wrong in
- spglib_f.c. That of Schoenflies symbol was also found wrong. The
- former and latter were fixed as from 21 to 11 and from 10 to 7,
- respectively.
-
-2012-10-10 Atsushi Togo <atz.togo at gmail.com>
-
- * Version 1.3
-
- Rethink algorithms to search symmetry operations for speed-up and
- stability. Many small modifications are applied. Some parts of the
- codes that look unnecessary were removed but this change might
- make the code unstable.
-
- * symmetry.c (get_translation):
-
- Improve OpenMP efficiency. Number of atoms to enable OpenMP
- concurrency is set as 1000 (NUM_ATOMS_CRITERION_FOR_OPENMP).
-
-2012-10-09 Atsushi Togo <atz.togo at gmail.com>
-
- * symmetry.c (sym_get_pure_translation, get_translation):
-
- In 'sym_get_pure_translation', iterative approach to search
- pure_translation was employed. But 'sym_get_pure_translation' was
- only used from two functions in primitive.c. In these two
- functions, tolerance is iteratively reduced when the search
- fails. Because there is no need to do iteration twice, the
- iteration part in 'sym_get_pure_translation' was removed.
-
- * primitive.{c,h}:
-
- 'get_primitive_with_pure_translation' was replaced by
- 'get_primitive_and_pure_translation'. The former was only used
- from 'get_operation' in symmetry.c and the interative approach was
- implemented in 'get_operation'. The iterative part was moved into
- 'get_primitive_and_pure_translation'.
-
- The Primitive structure was defined in primitive.h. This just
- packs Cell * primitive_cell and VecDBL * pure_trans. The Primitive
- structure is only used in 'get_operation' in symmetry.c and
- '(prm_)get_primitive_and_pure_translation' in primitive.c.
-
-
-2012-10-08 Atsushi Togo <atz.togo at gmail.com>
-
- * spacegroup.c (get_hall_number_local_iteration):
-
- REDUCE_RATE to reduce number of symmetry operations is changed
- from 0.2 to 0.95. Symmetry operations depend on tolerance
- delicately.
-
- * Remove many lines of debug_print:
-
- Now to follow the flow is more important than to see the
- detailed behavior of implementation.
-
-2012-10-03 Atsushi Togo <atz.togo at gmail.com>
-
- * Version 1.2.5
- * primitive.c:
-
- Separate out get_primitive_with_mapping_table from
- prm_get_primitive_with_mapping_table. Rename
- prm_get_primitive_with_all to
- get_primitive_with_pure_translation.
- In get_primitive_with_pure_translation, it was
- if (pure_trans->size > 0)
- but not it was fixed to
- if (pure_trans->size > 1)
- not to search primitive cell when pure_trans->size == 1.
-
-2012-10-01 Atsushi Togo <atz.togo at gmail.com>
-
- * Version 1.2.4
- * kpoint.c (get_ir_reciprocal_mesh):
-
- In spglib, k-point grid is indexed as, for example,
-
- 0 1 2 3 4 5 6 -5 -4 -3 -2 -1
-
- for 12 points mesh. Now the different index style such as
-
- 0 1 2 3 4 5 -6 -5 -4 -3 -2 -1
-
- is activated by CFLAGS='-DGRID_BOUNDARY_AS_NEGATIVE' before
- running configure script at the compilation time.
-
- * symmetry.c (get_operation):
-
- In the iterative reduction of tolerance of primitive cell search,
- pure_trans was searched by a fixed tolerance rather than the
- reduced one. This is fixed to use the reduced tolerance at each
- iteration.
-
-2012-08-13 Atsushi Togo <atz.togo at gmail.com>
-
- * Version 1.2.3
- * symmetry.c (is_identity_metric):
-
- To check identity of metric tensors, too small angle induces
- numerical size error, so if the dtheta is calculated smaller than
- 1e-6, automatically set the angles be identical.
-
- * spacegroup.c (get_hall_number_local_iteration):
-
- Implementation of iterative reduction of symmetry tolerance to
- search symmetry operation to get Hall symbol is separated as the
- function get_hall_number_local_iteration and the tolerance
- reduction rate of REDUCE_RATE is changed from 0.2 from 0.95.
-
-2012-07-17 Atsushi Togo <atz.togo at gmail.com>
-
- * Version 1.2.2
- * lattice.c (get_centering):
-
- Tranformation A-centring monoclinic lattice to C-centring
- monoclinic lattice preserving b-axis is not well handled and now
- the matrix 'monocli_a2c' is used for it.
-
-2012-07-14 Atsushi Togo <atz.togo at gmail.com>
-
- * Version 1.2.1
- * pointgroup.c (laue_one_axis):
-
- Transformation matrix is expected to be always positive, but it
- was not correctly implemented.
-
-2012-05-28 Atsushi Togo <atz.togo at gmail.com>
-
- * refinement.c (reduce_symmetry_in_frame):
-
- Fix memory leak by freeing lattice_trans.
-
-2012-04-26 Atsushi Togo <atz.togo at gmail.com>
-
- The numbering of the hall symbol is included in the 'struct
- SpglibDataset'. This starts from 1 to 530.
-
-2012-04-25 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib.c, spglib.h:
-
- To find symmetry with angle tolerance, for spg_* functions,
- respective spgat_* functions are prepared. In the spgat_*
- functions, the last variable is the angle tolerance (in degrees).
-
- * symmetry.c:
-
- The way to find lattice symmetry is changed. Now a new static
- variable, 'angle_tolerance', can be used for the tolerance of
- angle. Therefore the non-diagonal elements of metric tensor are
- directry compared with this angle. 'angle_tolerance' can be
- accessed via 'sym_set_angle_tolerance' inside spglib. However the
- default behavior does not use the angle tolerance. In the default
- behavior, averaged_lattice_vector_length * sin(delta_theta) is
- compared with usual 'symprec'. The default behavior is invoked
- when 'angle_tolerance' has negative value. These are implemented
- in 'is_identity_metric' in symmetry.c.
-
-2012-04-12 Atsushi Togo <atz.togo at gmail.com>
-
- * lattice.c (get_centering):
-
- Correction matrix for I-centring monoclinic was implemented.
-
-2012-03-03 Atsushi Togo <atz.togo at gmail.com>
-
- * primitive.c:
-
- The functions of 'prm_get_current_tolerance',
- 'set_current_tolerance' and the value of static double
- current_tolerance were introduced in 'primitive.c'. These are used
- to return reduced tolerance value that is iteratively determined
- in 'prm_get_primitive_with_mapping_table'.
-
- The interative technique is used in several parts to obtain
- possible primitive cell parameters by reducing symmetry
- tolerance. Only in 'get_overlap_table' in 'primitive.c', the
- interative techinique is used with reducing and increasing the
- tolerance, i.e., in the other parts, only reducing.
-
-2012-03-02 Atsushi Togo <atz.togo at gmail.com>
-
- * Version 1.1.2
- * refinement.c, primitive.c, symmetry.c:
-
- Modifications at many small parts of the code for improve
- robustness with large symmetry tolerance values.
-
-2012-02-28 Atsushi Togo <atz.togo at gmail.com>
-
- * primitive.c (get_overlap_table):
-
- Simplify the algorithm for search overlapping table. The new
- algorithm is as follows: Symmetry tolerance monotonically
- decreases by REDUCE_RATE = 0.95 when the search is failed. When
- number of overlapping atoms is found smaller than the ratio of
- number of atoms between original and primitive cells, the symmetry
- tolerance is doubled. For this algorithm, 'check_overlap_table'
- function was implemented.
-
-2012-02-09 Atsushi Togo <atz.togo at gmail.com>
-
- * spin.{c,h}:
-
- 'spin.{c,h}' are added. Colliear spins on atoms are employed as
- additional constraints to search symmetry. The API is
- 'spg_get_symmetry_with_collinear_spin'. (reduce_symmetry_in_frame):
-
- Bug fix to get refined symmetry operations. When the original cell
- is not primitive and the lattice symmetry is lower than that
- primitive lattice, the symmetry of primitive has to be
- reduced to those belongs to the lower symmetry. But this was not
- correctly done.
-
-2011-10-05 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib.c (spg_get_pointgroup):
-
- 'spg_get_pointgroup' is implemented. This is used to obtain point
- group symbols.
-
-2011-09-30 Atsushi Togo <atz.togo at gmail.com>
-
- * site_symmetry.c (get_Wyckoff_notation):
-
- Bug fix of assignment of Wyckoff letters
- 'sitesym_database.c' is compressed. Now only the first element of
- 'coordinates' is used to aasign a Wyckoff letter.
-
-2011-08-09 Atsushi Togo <atz.togo at gmail.com>
-
- * symmetry.c (sym_get_pure_translation):
-
- Iterative reduction of symmetry tolerance to find pure
- translations is implemented as well as different parts.
-
-2011-07-29 Atsushi Togo <atz.togo at gmail.com>
-
- * kpoint.c, kpoint.h:
-
- symmetry_kpoint.c and symmetry_kpoint.h are renamed as kpoint.c
- and kpoint.h, respectively.
-
-2011-07-06 Atsushi Togo <atz.togo at gmail.com>
-
- * site_symmetry.c:
-
- A set of equivalent atoms is returned. It is accessible
- through spg_get_dataset. (spglib-1.0.7)
-
-2011-07-05 Atsushi Togo <atz.togo at gmail.com>
-
- * site_symmetry.c, sitesym_database.c, spglib-1.0.6:
-
- Newly added two source files (and also *.h). The part related to
- site symmetry in refinement.c is moved to site_symmetry.c. Wyckoff
- position determination is implemented in site_symmetry.c and the
- database is in sitesym_database.c. The pointers in the structure
- SpglibDataset are made free by calling spg_free_dataset. It was
- difficult to implement Wyckoff position determination without
- Yusuke Seko's formated crystallographic database. I appreciate his
- kind offer. (spglib-1.0.6)
-
- * primitive.c (prm_get_primitive):
-
- The function is modified to return mapping table from input cell
- to primitive cell as the first argument.
-
-2011-06-18 Atsushi Togo <atz.togo at gmail.com>
-
- * symmetry.c:
-
- OpenMP is included to search translations with each rotation.
- Compilation with gcc is achived by '-lgomp' and '-fopenmp'.
-
- * refinement.c:
-
- Performance tuning was made for 'get_refined_symmetry_operations'.
-
-2011-06-18 Atsushi Togo <atz.togo at gmail.com>
-
- * refinement.c:
-
- In 'ref_get_refined_symmetry_operations', it was forgotten to
- consider origin shift to obtain symmetry operations from
- database. This is fixed by modifying translations in
- 'set_translation_with_origin_shift'.
-
-2011-06-15 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib-1.0.4:
-
- The new version of spglib is released. To the next version,
- implementation of Wyckoff positions is planed.
-
-
-2011-06-15 Atsushi Togo <atz.togo at gmail.com>
-
- * pyspglib:
-
- pyspglib didn't work correctly. It was fixed.
-
-
-2011-06-15 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib.c:
-
- A new function 'spg_get_dataset is implmented. This returns a
- 'SpglibDataset' type structure that is defined in 'spglib.h'. This
- includes refined informations of crystal symmetry. For example,
- the symmetry operations are derived based on the operations in
- database and so they are different from those obtained from
- 'spg_get_symmetry'. Wyckoff positions are to be impmemented.
-
-
-2011-06-13 Atsushi Togo <atz.togo at gmail.com>
-
- * spg_database.c:
-
- A static array of 'symmetry_operations' is compressed because it
- was very large. It contains symmetry operations of 530 hall
- symbols. Each space group operation requires a rotation 3x3 matrix
- and a translation vector, therefore 12 elements were implemented
- for that. Now it is compressed using ternary numerical system for
- rotation and duodecimal system for translation. This is achieved because
- each element of rotation matrix can have only one of {-1,0,1}, and
- the translation can have one of {0,2,3,4,6,8,9,10} divided by
- 12. Therefore 3^9 * 12^3 = 34012224 different values can map space
- group operations. In principle, octal numerical system can be used
- for translation, but duodecimal system is used for the convenient.
- The fact that determinant of rotation matrix is -1 or 1 could be
- used as a constraint to reduce the number of mapping space. These
- may be implemented if more compression is required.
-
-2011-06-10 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib.c:
-
- spg_show_symmetry was removed.
-
-2011-05-17 Atsushi Togo <atz.togo at gmail.com>
-
- * primitive.c, etc
-
- A tolerance to find primitive lattice vectors sometimes fails
- because found pure translations do not give possible lattice
- vectors in which the volume ratio of the input cell and primitive
- cell does not match to the number of pure translations. So
- iterative tolerance reduction is implemented. The reduced
- tolerance should be used to find spacegroup and refined cell
- because to hold consistency with symmetry operations to be found
- for primitive cell. The reduced tolerance is not used inside
- symmetry opration search. The tolerance used to find primitive
- cell is stored in a static variable 'tolerance' in primitive.c and
- this can be accessed via prm_get_tolerance().
-
- Old 'prm_get_primitive' was removed and new one is that of
- 'prm_get_primitive_with_pure_trans' renamed. So now pure
- translations are always required to call to obtain primitive cell.
-
- When calling 'prm_get_primitive' and if the input cell is already
- primitive, primitive->size=0 was returned in the previous
- implementation, but in the new implementation, primitive cell that
- has smallest lattice vectors is returned.
-
-
-2011-04-21 Atsushi Togo <atz.togo at gmail.com>
-
- * refinement.c (refine_cell):
-
- When an input structure is a primitive cell but the lattice is not
- smallest, 'refine_cell' didn't work correctly. This is fixed by
- using new function of 'prm_get_cell_with_smallest_lattice' in
- primitive.c. This function was originally in spacegroup.c as
- 'get_cell_with_smallest_lattice'. Following this, spacegroup.c,
- primitive.c, and primitive.h were modified.
-
-2011-03-18 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib-1.0.3.1:
-
- A critical bug in the structure refinment in refinement.c was
- removed. A tolerance parameter in hall_symbol.c came back to
- is_hall_symbol.
-
-2011-03-15 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib-1.0.3:
-
- Crystal structure refinement by spg_refine_cell is
- implemented. Code around tolerance is tunded up, hopefully
- becoming more robust with large tolerance.
-
- * refinement.c:
-
- bravais.{c,h} are renamed to refinement.{c,h}.
-
-2011-03-14 Atsushi Togo <atz.togo at gmail.com>
-
- * debug.h (SPGWARNING):
-
- Debug option of SPGWARNING has been defined. This may be used for
- beta-tests.
-
- * bravais.c, spacegrouop.c, hall_symbol.c, lattice.c, primitive.c:
-
- Tolerance parameter has been reconsidered to make finding
- spacegroup robust with a loose tolerance value. Tolerance is used
- for Cartesian distance, norm squared, or volume. It wold be
- avoided for ratio, reduced position or distance.
-
- * bravais.c:
-
- Exact locations of atoms are obtained by get_exact_location in
- bravais.c.
-
- * sapcegroup.c:
-
- Iterative search for hall symbol is implemented in
- get_hall_number. The tolerance is sequentially reduced until
- finding a hall symbol. With the reduced tolerance, symmetry
- operations are researched by sym_reduce_operation. The cost of the
- reduction of symmetry operations is expeted much smaller than that
- of the increase of symmetry operations with increasing tolerance.
-
- * hall_symbol.c:
-
- All tolerance parameters were kicked out.
-
- * lattice.c:
-
- get_base_center is modified to remove the tolerance paremeter. The
- centring check is now based on
- integers. lat_smallest_lattice_vector returns 1 or 0 to show if
- the lattice has non-zero volume or not.
-
- * primitive.c:
-
- Primitive lattice is made of pure translations. Previously the
- primitive lattice vectors are constructed from pure
- translations. Currently, it is set such that the primitive lattice
- parameters multiplied with 'intergers' become the original
- latttice parameters.
-
- * mathfunc.c (mat_is_int_matrix):
-
- A macro of INT_PREC (currently set 0.1 ) is used for checking a
- value is integer or not in mat_is_int_matrix.
-
-2011-02-18 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib-1.0.2:
-
- Bug fix in finding lattice point symmetry (symmetry.c).
- spg_get_bravais is added and spg_get_international_with_bravais
- was removed.
-
-2010-12-26 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib-1.0.1:
-
- By the help of Pawel T. Jochym, the setup.py in the ASE-interface,
- pysgpblib, has been updated for matching the latest spglib.
-
-2010-11-08 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib-1.0.0:
-
- A lot of source code was re-written for this one month. This
- release contains the algorithms of symmetry opertation finding and
- space-group type determination which are different from the
- versions before spglib 0.7.4.
-
-2010-11-08 Atsushi Togo <atz.togo at gmail.com>
-
- Algorithm to search basis vectors is changed to that of
- [Grosse-Kunstleve, Acta Cryst. A55, 383-395 (1999)], which is
- implemented in lattice.c. bravais.{c,h}, bravais_virtual.{c,h} are
- removed. spacegroup_type.{c,h} are moved to spacegroup.{c,h}.
-
-2010-11-05 Atsushi Togo <atz.togo at gmail.com>
-
- * lattice.c:
-
- lattice.c and lattice.h are added. Delaunay reduction is moved
- there from bravais.c.
-
-2010-11-02 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib 1.0-beta:
-
- New release under the modified BSD license.
-
- * pointgroup.c:
-
- Sometimes symmetry operations that don't match point-group type
- can be found. In the current implementation, some of non-necessary
- operations are abandoned. For this, get_cast_symmetry,
- check_pointgroup_condition, ptg_get_symmetry_pointgroup are added.
- However still this implementation is not perfect. Maybe another
- strategy is required.
-
-2010-10-27 Atsushi Togo <atz.togo at gmail.com>
-
- * primitive.c:
-
- trim_cell is divided into trim_cell, set_primitive_positions,
- get_positions_primitive, get_overlap_table. is_overlap is
- modified to check Cartesian distance, and moved to cel_is_overlap
- in cell.c.
-
- * symmetry.c (get_translation):
-
- Atomic position overlap check part is modified to use
- cel_is_overlap.
-
- * cell.c:
-
- cel_frac_to_cart and cel_cart_to_frac are removed.
-
-
-2010-10-25 Atsushi Togo <atz.togo at gmail.com>
-
- * bravais_arc.* is renamed to bravais_virtual.*
-
- The function is_holohedry is removed.
-
- * bravais.c:
-
- brv_set_relative_lattice is added. brv_get_brv_lattice_in_loop is
- modified for handling RHOMB case flexibly. get_metric was removed
- and moved to mathfunc.c as mat_get_metric.
-
- * pointgroup.c:
-
- The first argument of ptg_get_holohedry is removed, which was used
- just for debugging.
-
- * symmetry.c:
-
- get_space_group_operation is separated from
- get_operation. sym_get_operation_direct, set_axes and
- get_lattice_symmetry are newly added. sym_get_operation_direct is
- the function for finding symmetry operations without relying on
- Bravais lattice. The lattice symmetry is exhaustively searched
- through the matrices whose elements are -1, 0, or 1.
-
- * mathfunc.c:
-
- mat_get_metric and mat_check_identity_matrix_d3 are added.
-
-
-2010-10-22 Atsushi Togo <atz.togo at gmail.com>
-
- * bravais.c:
-
- The names of local functions starting with brv_... is changed to
- get_brv_.... Add functions get_brv_cubic_primitive,
- get_brv_tetra_primitive, get_brv_ortho_primitive to find more
- variety of lattice transformation matrices.
-
-2010-10-22 Atsushi Togo <atz.togo at gmail.com>
-
- The space group type finder is replaced completely. spacegroup.*,
- spacegroup_data.*, spacegroup_database.* are
- removed. spacegroup_type.*, spg_database.*, and hall_symbol.* are
- added. The helper tools to create hall symbol related database are
- in database directories.
-
-2010-10-09 Atsushi Togo <atz.togo at gmail.com>
-
- spglib-0.7.4 is released.
-
- cel_new_cell is renamed to cel_alloc_cell, and cel_alloc_cell
- returns a poiter of the Cell structure. cel_delete_cell is renamed
- to cel_free_cell.
-
- sym_new_symmetry is renamed to sym_alloc_symmetry, and
- sym_alloc_symmetry returns a poiter of the Symmetry
- structure. sym_delete_symmetry is renamed to sym_free_symmetry.
-
- The other functions returns Cell and Symmetry structures are
- modified to return those pointers.
-
-2010-10-05 Atsushi Togo <atz.togo at gmail.com>
-
- * symmetry.c (get_index_with_least_atoms):
-
- To search translation, it is efficient if an atom in least atoms
- with an atomic type is used for the search origine. This function
- looks for it. This is expected to accelerate especially when the
- cell is huge and the lattice has high symmetry, but the number of
- atoms of some atomic type is few.
-
-2010-10-04 Atsushi Togo <atz.togo at gmail.com>
-
- * primitive.c (prm_get_primitive_with_pure_trans):
-
- Create new function 'prm_get_primitive_with_pure_trans' to avoid
- searching same pure translations many times, which leads some
- speed up.
-
-2010-09-26 Atsushi Togo <atz.togo at gmail.com>
-
- 'const' of multidimensional arrays are removed. Just to notify it
- should be 'const', 'SPGCONST' replaces those 'const', however it
- is defined as nothing in mathfunc.h. This is done because of
- avoiding lots of waring in C-compiler of 'gcc: incompatible
- pointer type'.
-
- * spglib_f.c:
-
- spglib_f.c is updated and some examples are found in example.f90.
-
-2010-04-12 Atsushi Togo <atz.togo at gmail.com>
-
- * symmetry.c, mathfunc.c:
-
- To make the translations clean, sym_get_fractional_translation in
- symmetry.c and mat_Dmod1 in mathfunc.c are
- added. sym_get_fractional_translation is supposed to look for the
- translation that is most closest to one of 0, 1/6,
- 1/4, 1/3, 1/2, 2/3, 3/4, and 5/6. The first implementation
- contained a bug and Jorg Meyer solved this.
-
-2010-03-25 Atsushi Togo <atz.togo at gmail.com>
-
- * bravais_art.c:
-
- Space group of the virtual structures in the test directory
- failed. Fixed points are as follows:
- P-Cubic, P-Tetra, P-Ortho to Base center monoclinic, which was
- collect in the old code, and I-Cubic to F-Orthorhombic.
- Cubic to Rhombohedral. To obtain correct principal axes,
- 'is_rhombo' was implemented.
-
-2010-03-22 Atsushi Togo <atz.togo at gmail.com>
-
- * spglib.h, spglib.c:
-
- spg_get_bravais_lattice is removed.
-
- spg_get_conventional_symmetry is implemented. This is used to get
- symmetry operations for the conventional unit cell. The
- conventional unit cell is searched from the primitive cell found
- from the input cell, i.e., even if the input cell is not
- primitive, the primitive cell is automatically searched and the
- conventional cell is determined. The Bravais lattice of the
- conventinal cell is returned as bravais_lattice. This
- bravais_lattice is found including the internal atomic
- positions. Therefore artificial cell is expected to be handled
- correctly.
-
-2010-02-11 Atsushi Togo <atz.togo at gmail.com>
-
- * primitive.c:
-
- There was a problem that primitive cell is not well found in naive
- cases (inconsistency between tolerances in finding pure
- translations and in finding overlapping atoms). David Lonie
- implemented an iterative way to adjust symmetry finder tolerance
- on the fly.
-
-2009-07-15 Atsushi Togo <atz.togo at gmail.com>
-
- * bravais.c:
-
- Bug to find bravais lattice in FCC and rhombohedral, when the cell
- is a supercell. This is probably ad-hoc fix.
-
-2009-05-19 Atsushi Togo <atz.togo at gmail.com>
-
- * symmetry_kpoint.c:
-
- Time reversal symmetry is included.
-
- * bravais.c (brv_smallest_lattice_vector):
-
- Delaunay reduction is implemented instead of ABINIT
- implementation.
-
-2009-03-09 Atsushi Togo <atz.togo at gmail.com>
-
- * symmetry.c:
-
- Critical bug for finding symmetry for primitive cell which is
- reduced from convensional cell.
-
-2009-03-05 Atsushi Togo <atz.togo at gmail.com>
-
- * symmetry_kpoint.c:
-
- Functions to look for the irreducible points in reciprocal space
- are implemented.
-
-2009-02-25 Atsushi Togo <atz.togo at gmail.com>
-
- * bravais_art.c:
-
- Hexagonal to Orthorhombic symmetry lowering case is implemented.
-
- * python module:
-
- Python module is implemented. To use them, numpy is
- required. Interface for ASE is implemented.
-
-2008-08-22 Atsushi Togo <atz.togo at gmail.com>
-
- * bravais_art.c:
-
- This file is used for the cases that the lattice has higher
- symmetry than the symmetry given by atomic positions. This does
- not affect to the symmetry operations that is firstly obtained by
- assuming the bravais lattice having high symmetry. Thus this file
- works only for changing its bravais lattice. The information about
- bravais lattice is used for only determing space group. Even if
- the code in this file fails, or let's say, space group
- determination fails), we can not say the symmetry operations are
- wrong.
-
-2008-07-11 Atsushi Togo <atz.togo at gmail.com>
-
- * Most of the code
-
- The procedure for searching a Bravais lattice from a primitive
- cell is rewritten. The algorithm is also totally changed.
-
- * test directory
-
- For the test of space group search, 'test' directory is
- created. Many POSCAR's are prepared in this directory. For running
- tests, a small ruby code is written and put into this directory.
-
-2008-05-28 Atsushi Togo <atz.togo at gmail.com>
-
- * spacegroup_data.c (get_spacegroup_data_special_case):
-
- Bug fix for space group determinations for special cases (Pcc2,
- Pbam, Pccn).
-
-2008-05-25 Atsushi Togo <atz.togo at gmail.com>
-
- * *.c, *.h :
-
- Many codes are re-built. Many functions are changed to
- "static". The first three characters of public functions are
- re-named using those file names.
-
- * bravais.c :
-
- Monoclinic is possibly improved. Monoclinic is difficult. It may
- contain further bugs...
-
-2008-05-01 Atsushi Togo <atz.togo at gmail.com>
-
- * spacegroup.c (get_proper_rotation_class_6axis):
-
- exit(1) is inserted.
-
- * bravais.c/h:
-
- "lattice_symmetry" is removed from the "Bravais" structure.
-
- * spglib.h:
-
- Misspelled function prototypes of spg_get_symmetry and
- spg_check_symmetry are corrected.
-
-2008-04-23 Atsushi Togo <atz.togo at gmail.com>
-
- * Many patches by Xavier Andrade
-
- For fixing many warning in many codes and gcc-4.3 related problem
- in bravais.c.
-
diff --git a/src/Makefile.am b/src/Makefile.am
index cf99ba6..ef1656e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,11 +1,15 @@
lib_LTLIBRARIES = libsymspg.la
-libsymspg_la_SOURCES = \
+
+spglib_c = \
+arithmetic.c \
cell.c \
debug.c \
+delaunay.c \
hall_symbol.c \
+kgrid.c \
kpoint.c \
-lattice.c \
mathfunc.c \
+niggli.c \
pointgroup.c \
primitive.c \
refinement.c \
@@ -14,33 +18,19 @@ sitesym_database.c \
spacegroup.c \
spg_database.c \
spglib.c \
-spglib_f.c \
spin.c \
-symmetry.c \
-cell.h \
-debug.h \
-hall_symbol.h \
-kpoint.h \
-lattice.h \
-mathfunc.h \
-pointgroup.h \
-primitive.h \
-refinement.h \
-site_symmetry.h \
-sitesym_database.h \
-spacegroup.h \
-spg_database.h \
-spglib.h \
-spin.h \
-symmetry.h
+symmetry.c
-pkginclude_HEADERS = \
+spglib_h = \
+arithmetic.h \
cell.h \
debug.h \
+delaunay.h \
hall_symbol.h \
+kgrid.h \
kpoint.h \
-lattice.h \
mathfunc.h \
+niggli.h \
pointgroup.h \
primitive.h \
refinement.h \
@@ -50,6 +40,17 @@ spacegroup.h \
spg_database.h \
spglib.h \
spin.h \
-symmetry.h
+symmetry.h \
+version.h
+libsymspg_la_SOURCES = $(spglib_c) $(spglib_h)
+pkginclude_HEADERS = $(spglib_h)
# libsymspg_la_LDFLAGS = -version-info 0:1:0
+libsymspg_la_LIBADD = -lm
+
+check_PROGRAMS = spglib_test
+spglib_test_SOURCES = test.c $(spglib_c) $(spglib_h)
+spglib_test_CFLAGS = $(AM_CFLAGS)
+spglib_test_LDADD = -lm
+#AM_DEFAULT_SOURCE_EXT = .c
+TESTS = spglib_test
diff --git a/src/Makefile.in b/src/Makefile.in
deleted file mode 100644
index 401da8e..0000000
--- a/src/Makefile.in
+++ /dev/null
@@ -1,649 +0,0 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-
-VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src
-DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgincludedir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-libsymspg_la_LIBADD =
-am_libsymspg_la_OBJECTS = cell.lo debug.lo hall_symbol.lo kpoint.lo \
- lattice.lo mathfunc.lo pointgroup.lo primitive.lo \
- refinement.lo site_symmetry.lo sitesym_database.lo \
- spacegroup.lo spg_database.lo spglib.lo spglib_f.lo spin.lo \
- symmetry.lo
-libsymspg_la_OBJECTS = $(am_libsymspg_la_OBJECTS)
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libsymspg_la_SOURCES)
-DIST_SOURCES = $(libsymspg_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-HEADERS = $(pkginclude_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = libsymspg.la
-libsymspg_la_SOURCES = \
-cell.c \
-debug.c \
-hall_symbol.c \
-kpoint.c \
-lattice.c \
-mathfunc.c \
-pointgroup.c \
-primitive.c \
-refinement.c \
-site_symmetry.c \
-sitesym_database.c \
-spacegroup.c \
-spg_database.c \
-spglib.c \
-spglib_f.c \
-spin.c \
-symmetry.c \
-cell.h \
-debug.h \
-hall_symbol.h \
-kpoint.h \
-lattice.h \
-mathfunc.h \
-pointgroup.h \
-primitive.h \
-refinement.h \
-site_symmetry.h \
-sitesym_database.h \
-spacegroup.h \
-spg_database.h \
-spglib.h \
-spin.h \
-symmetry.h
-
-pkginclude_HEADERS = \
-cell.h \
-debug.h \
-hall_symbol.h \
-kpoint.h \
-lattice.h \
-mathfunc.h \
-pointgroup.h \
-primitive.h \
-refinement.h \
-site_symmetry.h \
-sitesym_database.h \
-spacegroup.h \
-spg_database.h \
-spglib.h \
-spin.h \
-symmetry.h
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
- }
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libsymspg.la: $(libsymspg_la_OBJECTS) $(libsymspg_la_DEPENDENCIES) $(EXTRA_libsymspg_la_DEPENDENCIES)
- $(LINK) -rpath $(libdir) $(libsymspg_la_OBJECTS) $(libsymspg_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cell.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/debug.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hall_symbol.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpoint.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lattice.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mathfunc.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pointgroup.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/primitive.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/refinement.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/site_symmetry.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/sitesym_database.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/spacegroup.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/spg_database.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/spglib.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/spglib_f.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/spin.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/symmetry.Plo at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
- at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
- at am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-pkgincludeHEADERS: $(pkginclude_HEADERS)
- @$(NORMAL_INSTALL)
- @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
- $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
- done
-
-uninstall-pkgincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir)
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- set x; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgincludedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-pkgincludeHEADERS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgincludeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am \
- install-libLTLIBRARIES install-man install-pdf install-pdf-am \
- install-pkgincludeHEADERS install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
- uninstall-libLTLIBRARIES uninstall-pkgincludeHEADERS
-
-
-# libsymspg_la_LDFLAGS = -version-info 0:1:0
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/arithmetic.c b/src/arithmetic.c
new file mode 100644
index 0000000..b0d5e25
--- /dev/null
+++ b/src/arithmetic.c
@@ -0,0 +1,159 @@
+/* Copyright (C) 2016 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#include <string.h>
+#include <stdio.h>
+#include "arithmetic.h"
+
+#include "debug.h"
+
+static int arithmetic_crystal_classes[231] = {
+ 0,
+ 1, 2, 3, 3, 4, 5, 5, 6, 6, 7,
+ 7, 8, 7, 7, 8, 9, 9, 9, 9, 10,
+ 10, 11, 12, 12, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 14, 14, 14, 15, 15, 15,
+ 15, 16, 16, 17, 17, 17, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 19, 19, 19, 19, 19, 19, 20, 20,
+ 21, 21, 21, 21, 22, 22, 22, 22, 23, 23,
+ 24, 25, 26, 26, 26, 26, 27, 27, 28, 28,
+ 28, 28, 28, 28, 28, 28, 29, 29, 30, 30,
+ 30, 30, 30, 30, 30, 30, 31, 31, 31, 31,
+ 32, 32, 32, 32, 33, 33, 33, 33, 34, 34,
+ 35, 35, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 37, 37,
+ 37, 37, 38, 38, 38, 39, 40, 41, 42, 43,
+ 42, 43, 42, 43, 44, 45, 46, 45, 46, 47,
+ 47, 48, 48, 49, 49, 50, 50, 51, 51, 51,
+ 51, 51, 51, 52, 53, 53, 54, 54, 54, 54,
+ 54, 54, 55, 55, 55, 55, 56, 56, 57, 57,
+ 58, 58, 58, 58, 59, 60, 61, 59, 61, 62,
+ 62, 63, 63, 64, 62, 64, 65, 65, 66, 66,
+ 67, 65, 65, 67, 68, 69, 70, 68, 69, 70,
+ 71, 71, 71, 71, 72, 72, 72, 72, 73, 73};
+
+static const char arithmetic_crystal_class_symbols[74][7] = {
+ " ", /* 0 */
+ "1P ", /* 1 */
+ "-1P ", /* 2 */
+ "2P ", /* 3 */
+ "2C ", /* 4 */
+ "mP ", /* 5 */
+ "mC ", /* 6 */
+ "2/mP ", /* 7 */
+ "2/mC ", /* 8 */
+ "222P ", /* 9 */
+ "222C ", /* 10 */
+ "222F ", /* 11 */
+ "222I ", /* 12 */
+ "mm2P ", /* 13 */
+ "mm2C ", /* 14 */
+ "2mmC ", /* 15 */
+ "mm2F ", /* 16 */
+ "mm2I ", /* 17 */
+ "mmmP ", /* 18 */
+ "mmmC ", /* 19 */
+ "mmmF ", /* 20 */
+ "mmmI ", /* 21 */
+ "4P ", /* 22 */
+ "4I ", /* 23 */
+ "-4P ", /* 24 */
+ "-4I ", /* 25 */
+ "4/mP ", /* 26 */
+ "4/mI ", /* 27 */
+ "422P ", /* 28 */
+ "422I ", /* 29 */
+ "4mmP ", /* 30 */
+ "4mmI ", /* 31 */
+ "-42mP ", /* 32 */
+ "-4m2P ", /* 33 */
+ "-4m2I ", /* 34 */
+ "-42mI ", /* 35 */
+ "4/mmmP", /* 36 */
+ "4/mmmI", /* 37 */
+ "3P ", /* 38 */
+ "3R ", /* 39 */
+ "-3P ", /* 40 */
+ "-3R ", /* 41 */
+ "312P ", /* 42 */
+ "321P ", /* 43 */
+ "32R ", /* 44 */
+ "3m1P ", /* 45 */
+ "31mP ", /* 46 */
+ "3mR ", /* 47 */
+ "-31mP ", /* 48 */
+ "-3m1P ", /* 49 */
+ "-3mR ", /* 50 */
+ "6P ", /* 51 */
+ "-6P ", /* 52 */
+ "6/mP ", /* 53 */
+ "622P ", /* 54 */
+ "6mmP ", /* 55 */
+ "-62mP ", /* 56 */
+ "-6m2P ", /* 57 */
+ "6/mmm ", /* 58 */
+ "23P ", /* 59 */
+ "23F ", /* 60 */
+ "23I ", /* 61 */
+ "m-3P ", /* 62 */
+ "m-3F ", /* 63 */
+ "m-3I ", /* 64 */
+ "432P ", /* 65 */
+ "432F ", /* 66 */
+ "432I ", /* 67 */
+ "-43mP ", /* 68 */
+ "-43mF ", /* 69 */
+ "-43mI ", /* 70 */
+ "m-3mP ", /* 71 */
+ "m-3mF ", /* 72 */
+ "m-3mI " /* 73 */
+};
+
+int arth_get_symbol(char symbol[7], const int spgroup_number)
+{
+ int i, arth_number;
+
+ if (spgroup_number < 1 || spgroup_number > 230) {
+ return 0;
+ }
+
+ arth_number = arithmetic_crystal_classes[spgroup_number];
+ strcpy(symbol, arithmetic_crystal_class_symbols[arth_number]);
+ for (i = 0; i < 6; i++) {
+ if (symbol[i] == ' ') {symbol[i] = '\0';}
+ }
+
+ return arth_number;
+}
diff --git a/src/arithmetic.h b/src/arithmetic.h
new file mode 100644
index 0000000..960dab2
--- /dev/null
+++ b/src/arithmetic.h
@@ -0,0 +1,40 @@
+/* Copyright (C) 2016 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#ifndef __arithmetic_H__
+#define __arithmetic_H__
+
+int arth_get_symbol(char symbol[7], const int spgroup_number);
+
+#endif
diff --git a/src/cell.c b/src/cell.c
index b7156b7..3711d00 100644
--- a/src/cell.c
+++ b/src/cell.c
@@ -1,6 +1,38 @@
-/* cell.c */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include "cell.h"
@@ -8,93 +40,452 @@
#include "debug.h"
-/* cell->size = 0 is a sign of False */
-Cell * cel_alloc_cell( const int size )
+#define INCREASE_RATE 2.0
+#define REDUCE_RATE 0.95
+#define NUM_ATTEMPT 100
+
+static Cell * trim_cell(int * mapping_table,
+ SPGCONST double trimmed_lattice[3][3],
+ const Cell * cell,
+ const double symprec);
+static void set_positions(Cell * trim_cell,
+ const VecDBL * position,
+ const int * mapping_table,
+ const int * overlap_table);
+static VecDBL *
+translate_atoms_in_trimmed_lattice(const Cell * cell,
+ SPGCONST double prim_lat[3][3]);
+static int * get_overlap_table(const VecDBL * position,
+ const int cell_size,
+ const int * cell_types,
+ const Cell * trimmed_cell,
+ const double symprec);
+
+/* NULL is returned if faied */
+Cell * cel_alloc_cell(const int size)
{
- Cell *cell;
- int i, j;
-
- cell = (Cell*) malloc( sizeof( Cell ) );
-
- for ( i = 0; i < 3; i++ ) {
- for ( j = 0; j < 3; j++ ) {
- cell->lattice[i][j] = 0;
- }
- }
- cell->size = size;
-
- if ( size > 0 ) {
- if ((cell->types = (int *) malloc(sizeof(int) * size)) == NULL) {
- warning_print("spglib: Memory of cell could not be allocated.");
- exit(1);
- }
- if ((cell->position =
- (double (*)[3]) malloc(sizeof(double[3]) * size)) == NULL) {
- warning_print("spglib: Memory of cell could not be allocated.");
- exit(1);
- }
- }
+ Cell *cell;
+
+ cell = NULL;
+
+ if (size < 1) {
+ return NULL;
+ }
+
+ cell = NULL;
+
+ if ((cell = (Cell*) malloc(sizeof(Cell))) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ return NULL;
+ }
+
+ if ((cell->lattice = (double (*)[3]) malloc(sizeof(double[3]) * 3)) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ free(cell);
+ cell = NULL;
+ return NULL;
+ }
+
+ cell->size = size;
+
+ if ((cell->types = (int *) malloc(sizeof(int) * size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ free(cell->lattice);
+ cell->lattice = NULL;
+ free(cell);
+ cell = NULL;
+ return NULL;
+ }
+ if ((cell->position =
+ (double (*)[3]) malloc(sizeof(double[3]) * size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ free(cell->types);
+ cell->types = NULL;
+ free(cell->lattice);
+ cell->lattice = NULL;
+ free(cell);
+ cell = NULL;
+ return NULL;
+ }
- return cell;
+ return cell;
}
-void cel_free_cell( Cell * cell )
+void cel_free_cell(Cell * cell)
{
- if ( cell->size > 0 ) {
- free( cell->position );
- cell->position = NULL;
- free( cell->types );
- cell->types = NULL;
+ if (cell != NULL) {
+ if (cell->lattice != NULL) {
+ free(cell->lattice);
+ cell->lattice = NULL;
+ }
+ if (cell->position != NULL) {
+ free(cell->position);
+ cell->position = NULL;
+ }
+ if (cell->types != NULL) {
+ free(cell->types);
+ cell->types = NULL;
+ }
+ free(cell);
}
- free ( cell );
- cell = NULL;
}
-void cel_set_cell( Cell * cell,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[] )
+void cel_set_cell(Cell * cell,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[])
{
int i, j;
mat_copy_matrix_d3(cell->lattice, lattice);
for (i = 0; i < cell->size; i++) {
for (j = 0; j < 3; j++) {
- cell->position[i][j] = position[i][j];
+ cell->position[i][j] = position[i][j] - mat_Nint(position[i][j]);
}
cell->types[i] = types[i];
}
}
-Cell * cel_copy_cell( SPGCONST Cell * cell )
+Cell * cel_copy_cell(const Cell * cell)
{
Cell * cell_new;
-
- cell_new = cel_alloc_cell( cell->size );
- cel_set_cell( cell_new,
- cell->lattice,
- cell->position,
- cell->types );
+
+ cell_new = NULL;
+
+ if ((cell_new = cel_alloc_cell(cell->size)) == NULL) {
+ return NULL;
+ }
+
+ cel_set_cell(cell_new,
+ cell->lattice,
+ cell->position,
+ cell->types);
+
return cell_new;
}
-int cel_is_overlap( const double a[3],
- const double b[3],
- SPGCONST double lattice[3][3],
- const double symprec )
+int cel_is_overlap(const double a[3],
+ const double b[3],
+ SPGCONST double lattice[3][3],
+ const double symprec)
{
int i;
double v_diff[3];
- for ( i = 0; i < 3; i++ ) {
+ for (i = 0; i < 3; i++) {
v_diff[i] = a[i] - b[i];
- v_diff[i] -= mat_Nint( v_diff[i] );
+ v_diff[i] -= mat_Nint(v_diff[i]);
}
- mat_multiply_matrix_vector_d3( v_diff, lattice, v_diff );
- if ( mat_norm_squared_d3( v_diff ) < symprec*symprec ) {
+ mat_multiply_matrix_vector_d3(v_diff, lattice, v_diff);
+ if (sqrt(mat_norm_squared_d3(v_diff)) < symprec) {
return 1;
} else {
return 0;
}
}
+int cel_is_overlap_with_same_type(const double a[3],
+ const double b[3],
+ const int type_a,
+ const int type_b,
+ SPGCONST double lattice[3][3],
+ const double symprec)
+{
+ if (type_a == type_b) {
+ return cel_is_overlap(a, b, lattice, symprec);
+ } else {
+ return 0;
+ }
+}
+
+/* 1: At least one overlap of a pair of atoms was found. */
+/* 0: No overlap of atoms was found. */
+int cel_any_overlap(const Cell * cell,
+ const double symprec) {
+ int i, j;
+
+ for (i = 0; i < cell->size; i++) {
+ for (j = i + 1; j < cell->size; j++) {
+ if (cel_is_overlap(cell->position[i],
+ cell->position[j],
+ cell->lattice,
+ symprec)) {
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
+/* 1: At least one overlap of a pair of atoms with same type was found. */
+/* 0: No overlap of atoms was found. */
+int cel_any_overlap_with_same_type(const Cell * cell,
+ const double symprec) {
+ int i, j;
+
+ for (i = 0; i < cell->size; i++) {
+ for (j = i + 1; j < cell->size; j++) {
+ if (cel_is_overlap_with_same_type(cell->position[i],
+ cell->position[j],
+ cell->types[i],
+ cell->types[j],
+ cell->lattice,
+ symprec)) {
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
+Cell * cel_trim_cell(int * mapping_table,
+ SPGCONST double trimmed_lattice[3][3],
+ const Cell * cell,
+ const double symprec)
+{
+ return trim_cell(mapping_table,
+ trimmed_lattice,
+ cell,
+ symprec);
+}
+
+
+/* Return NULL if failed */
+static Cell * trim_cell(int * mapping_table,
+ SPGCONST double trimmed_lattice[3][3],
+ const Cell * cell,
+ const double symprec)
+{
+ int i, index_atom, ratio;
+ Cell *trimmed_cell;
+ VecDBL * position;
+ int *overlap_table;
+
+ debug_print("trim_cell\n");
+
+ position = NULL;
+ overlap_table = NULL;
+ trimmed_cell = NULL;
+
+ ratio = abs(mat_Nint(mat_get_determinant_d3(cell->lattice) /
+ mat_get_determinant_d3(trimmed_lattice)));
+
+ /* Check if cell->size is dividable by ratio */
+ if ((cell->size / ratio) * ratio != cell->size) {
+ warning_print("spglib: atom number ratio is inconsistent.\n");
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ goto err;
+ }
+
+ if ((trimmed_cell = cel_alloc_cell(cell->size / ratio)) == NULL) {
+ goto err;
+ }
+
+ if ((position = translate_atoms_in_trimmed_lattice(cell,
+ trimmed_lattice))
+ == NULL) {
+ warning_print("spglib: translate_atoms_in_trimmed_lattice failed.\n");
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ cel_free_cell(trimmed_cell);
+ trimmed_cell = NULL;
+ goto err;
+ }
+
+ mat_copy_matrix_d3(trimmed_cell->lattice, trimmed_lattice);
+
+ if ((overlap_table = get_overlap_table(position,
+ cell->size,
+ cell->types,
+ trimmed_cell,
+ symprec)) == NULL) {
+ warning_print("spglib: get_overlap_table failed.\n");
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ mat_free_VecDBL(position);
+ position = NULL;
+ cel_free_cell(trimmed_cell);
+ trimmed_cell = NULL;
+ goto err;
+ }
+
+ index_atom = 0;
+ for (i = 0; i < cell->size; i++) {
+ if (overlap_table[i] == i) {
+ mapping_table[i] = index_atom;
+ trimmed_cell->types[index_atom] = cell->types[i];
+ index_atom++;
+ } else {
+ mapping_table[i] = mapping_table[overlap_table[i]];
+ }
+ }
+
+ set_positions(trimmed_cell,
+ position,
+ mapping_table,
+ overlap_table);
+
+ mat_free_VecDBL(position);
+ position = NULL;
+ free(overlap_table);
+
+ return trimmed_cell;
+
+ err:
+ return NULL;
+}
+
+static void set_positions(Cell * trimmed_cell,
+ const VecDBL * position,
+ const int * mapping_table,
+ const int * overlap_table)
+{
+ int i, j, k, l, multi;
+
+ for (i = 0; i < trimmed_cell->size; i++) {
+ for (j = 0; j < 3; j++) {
+ trimmed_cell->position[i][j] = 0;
+ }
+ }
+
+ /* Positions of overlapped atoms are averaged. */
+ for (i = 0; i < position->size; i++) {
+ j = mapping_table[i];
+ k = overlap_table[i];
+ for (l = 0; l < 3; l++) {
+ /* boundary treatment */
+ /* One is at right and one is at left or vice versa. */
+ if (mat_Dabs(position->vec[k][l] - position->vec[i][l]) > 0.5) {
+ if (position->vec[i][l] < position->vec[k][l]) {
+ trimmed_cell->position[j][l] += position->vec[i][l] + 1;
+ } else {
+ trimmed_cell->position[j][l] += position->vec[i][l] - 1;
+ }
+ } else {
+ trimmed_cell->position[j][l] += position->vec[i][l];
+ }
+ }
+
+ }
+
+ multi = position->size / trimmed_cell->size;
+ for (i = 0; i < trimmed_cell->size; i++) {
+ for (j = 0; j < 3; j++) {
+ trimmed_cell->position[i][j] /= multi;
+ trimmed_cell->position[i][j] = mat_Dmod1(trimmed_cell->position[i][j]);
+ }
+ }
+}
+
+/* Return NULL if failed */
+static VecDBL *
+translate_atoms_in_trimmed_lattice(const Cell * cell,
+ SPGCONST double trimmed_lattice[3][3])
+{
+ int i, j;
+ double tmp_matrix[3][3], axis_inv[3][3];
+ VecDBL * position;
+
+ position = NULL;
+
+ if ((position = mat_alloc_VecDBL(cell->size)) == NULL) {
+ return NULL;
+ }
+
+ mat_inverse_matrix_d3(tmp_matrix, trimmed_lattice, 0);
+ mat_multiply_matrix_d3(axis_inv, tmp_matrix, cell->lattice);
+
+ /* Send atoms into the trimmed cell */
+ for (i = 0; i < cell->size; i++) {
+ mat_multiply_matrix_vector_d3(position->vec[i],
+ axis_inv,
+ cell->position[i]);
+ for (j = 0; j < 3; j++) {
+ position->vec[i][j] = mat_Dmod1(position->vec[i][j]);
+ }
+ }
+
+ return position;
+}
+
+
+/* Return NULL if failed */
+static int * get_overlap_table(const VecDBL * position,
+ const int cell_size,
+ const int * cell_types,
+ const Cell * trimmed_cell,
+ const double symprec)
+{
+ int i, j, attempt, num_overlap, ratio;
+ double trim_tolerance;
+ int *overlap_table;
+
+ trim_tolerance = symprec;
+
+ ratio = cell_size / trimmed_cell->size;
+
+ if ((overlap_table = (int*)malloc(sizeof(int) * cell_size)) == NULL) {
+ return NULL;
+ }
+
+ for (attempt = 0; attempt < NUM_ATTEMPT; attempt++) {
+ for (i = 0; i < cell_size; i++) {
+ overlap_table[i] = i;
+ for (j = 0; j < cell_size; j++) {
+ if (cell_types[i] == cell_types[j]) {
+ if (cel_is_overlap(position->vec[i],
+ position->vec[j],
+ trimmed_cell->lattice,
+ trim_tolerance)) {
+ if (overlap_table[j] == j) {
+ overlap_table[i] = j;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ for (i = 0; i < cell_size; i++) {
+ if (overlap_table[i] != i) {
+ continue;
+ }
+
+ num_overlap = 0;
+ for (j = 0; j < cell_size; j++) {
+ if (i == overlap_table[j]) {
+ num_overlap++;
+ }
+ }
+
+ if (num_overlap == ratio) {
+ continue;
+ }
+
+ if (num_overlap < ratio) {
+ trim_tolerance *= INCREASE_RATE;
+ warning_print("spglib: Increase tolerance to %f ", trim_tolerance);
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+ goto cont;
+ }
+ if (num_overlap > ratio) {
+ trim_tolerance *= REDUCE_RATE;
+ warning_print("spglib: Reduce tolerance to %f ", trim_tolerance);
+ warning_print("(%d) ", attempt);
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+ goto cont;
+ }
+ }
+
+ goto found;
+
+ cont:
+ ;
+ }
+
+ warning_print("spglib: Could not trim cell well ");
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+ free(overlap_table);
+ overlap_table = NULL;
+
+found:
+ return overlap_table;
+}
diff --git a/src/cell.h b/src/cell.h
index 4f95bcf..df6f591 100644
--- a/src/cell.h
+++ b/src/cell.h
@@ -1,5 +1,36 @@
-/* cell.h */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __cell_H__
#define __cell_H__
@@ -7,22 +38,36 @@
#include "mathfunc.h"
typedef struct {
- int size;
- double lattice[3][3];
- int *types;
- double (*position)[3];
+ int size;
+ double (*lattice)[3]; /* 3x3 matrix */
+ int *types;
+ double (*position)[3];
} Cell;
-Cell *cel_alloc_cell( const int size );
-void cel_free_cell( Cell * cell );
-void cel_set_cell( Cell * cell,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[] );
-Cell * cel_copy_cell( SPGCONST Cell * cell );
-int cel_is_overlap( const double a[3],
- const double b[3],
- SPGCONST double lattice[3][3],
- const double symprec );
+Cell *cel_alloc_cell(const int size);
+void cel_free_cell(Cell * cell);
+void cel_set_cell(Cell * cell,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[]);
+Cell * cel_copy_cell(const Cell * cell);
+int cel_is_overlap(const double a[3],
+ const double b[3],
+ SPGCONST double lattice[3][3],
+ const double symprec);
+int cel_is_overlap_with_same_type(const double a[3],
+ const double b[3],
+ const int type_a,
+ const int type_b,
+ SPGCONST double lattice[3][3],
+ const double symprec);
+int cel_any_overlap(const Cell * cell,
+ const double symprec);
+int cel_any_overlap_with_same_type(const Cell * cell,
+ const double symprec);
+Cell * cel_trim_cell(int * mapping_table,
+ SPGCONST double trimmed_lattice[3][3],
+ const Cell * cell,
+ const double symprec);
#endif
diff --git a/src/debug.c b/src/debug.c
index 804d33e..99a187c 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -1,7 +1,38 @@
-/* debug.c */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
-#ifdef DEBUG
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#ifdef SPGDEBUG
#include <stdio.h>
#include "debug.h"
diff --git a/src/debug.h b/src/debug.h
index cf5e3b0..dce8976 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -1,10 +1,42 @@
-/* debug.h */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __debug_H__
#define __debug_H__
-#ifdef DEBUG
+#ifdef SPGDEBUG
+#define NIGGLI_DEBUG
#define debug_print(...) printf(__VA_ARGS__)
#define debug_print_matrix_d3( a ) dbg_print_matrix_d3( a )
#define debug_print_matrix_i3( a ) dbg_print_matrix_i3( a )
@@ -25,9 +57,11 @@ void dbg_print_vectors_with_label(double a[][3], int b[], int size);
#endif
#ifdef SPGWARNING
-#define warning_print(...) fprintf(stderr,__VA_ARGS__)
+#define NIGGLI_WARNING
+#include <stdio.h>
+/* #define warning_print(...) fprintf (stderr, __VA_ARGS__) */
+#define warning_print(...) fprintf (stderr, __VA_ARGS__)
#else
#define warning_print(...)
#endif
-
#endif
diff --git a/src/delaunay.c b/src/delaunay.c
new file mode 100644
index 0000000..c68766a
--- /dev/null
+++ b/src/delaunay.c
@@ -0,0 +1,402 @@
+/* Copyright (C) 2010 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "delaunay.h"
+#include "mathfunc.h"
+
+#include "debug.h"
+
+#define NUM_ATTEMPT 100
+
+static int delaunay_reduce(double red_lattice[3][3],
+ SPGCONST double lattice[3][3],
+ SPGCONST double symprec);
+static int delaunay_reduce_basis(double basis[4][3],
+ const double symprec);
+static void get_delaunay_shortest_vectors(double basis[4][3],
+ const double symprec);
+static void get_exteneded_basis(double basis[4][3],
+ SPGCONST double lattice[3][3]);
+static int delaunay_reduce_2D(double red_lattice[3][3],
+ SPGCONST double lattice[3][3],
+ const int unique_axis,
+ const double symprec);
+static int delaunay_reduce_basis_2D(double basis[3][3],
+ const double symprec);
+static void get_delaunay_shortest_vectors_2D(double basis[3][3],
+ const double unique_vec[3],
+ const double symprec);
+static void get_exteneded_basis_2D(double basis[3][3],
+ SPGCONST double lattice[3][2]);
+
+/* Return 0 if failed */
+int del_delaunay_reduce(double min_lattice[3][3],
+ SPGCONST double lattice[3][3],
+ const double symprec)
+{
+ debug_print("del_delaunay_reduce (tolerance = %f):\n", symprec);
+
+ return delaunay_reduce(min_lattice, lattice, symprec);
+}
+
+int del_delaunay_reduce_2D(double min_lattice[3][3],
+ SPGCONST double lattice[3][3],
+ const int unique_axis,
+ const double symprec)
+{
+ debug_print("del_delaunay_reduce_2D:\n");
+ return delaunay_reduce_2D(min_lattice, lattice, unique_axis, symprec);
+}
+
+/* Delaunay reduction */
+/* Reference can be found in International table A. */
+/* Return 0 if failed */
+static int delaunay_reduce(double red_lattice[3][3],
+ SPGCONST double lattice[3][3],
+ const double symprec)
+{
+ int i, j, attempt, succeeded;
+ double volume;
+ double basis[4][3];
+
+ get_exteneded_basis(basis, lattice);
+
+ for (attempt = 0; attempt < NUM_ATTEMPT; attempt++) {
+ succeeded = delaunay_reduce_basis(basis, symprec);
+ if (succeeded) {
+ break;
+ }
+ }
+
+ if (!succeeded) {
+ goto err;
+ }
+
+ get_delaunay_shortest_vectors(basis, symprec);
+
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ red_lattice[i][j] = basis[j][i];
+ }
+ }
+
+ volume = mat_get_determinant_d3(red_lattice);
+ if (mat_Dabs(volume) < symprec) {
+ warning_print("spglib: Minimum lattice has no volume (line %d, %s).\n", __LINE__, __FILE__);
+ goto err;
+ }
+
+ if (volume < 0) {
+ /* Flip axes */
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ red_lattice[i][j] = -red_lattice[i][j];
+ }
+ }
+ }
+
+ return 1;
+
+ err:
+ return 0;
+}
+
+static void get_delaunay_shortest_vectors(double basis[4][3],
+ const double symprec)
+{
+ int i, j;
+ double tmpmat[3][3], b[7][3], tmpvec[3];
+
+ /* Search in the set {b1, b2, b3, b4, b1+b2, b2+b3, b3+b1} */
+ for (i = 0; i < 4; i++) {
+ for (j = 0; j < 3; j++) {
+ b[i][j] = basis[i][j];
+ }
+ }
+
+ for (i = 0; i < 3; i++) {
+ b[4][i] = basis[0][i] + basis[1][i];
+ }
+ for (i = 0; i < 3; i++) {
+ b[5][i] = basis[1][i] + basis[2][i];
+ }
+ for (i = 0; i < 3; i++) {
+ b[6][i] = basis[2][i] + basis[0][i];
+ }
+
+ /* Bubble sort */
+ for (i = 0; i < 6; i++) {
+ for (j = 0; j < 6; j++) {
+ if (mat_norm_squared_d3(b[j]) > mat_norm_squared_d3(b[j+1]) + symprec) {
+ mat_copy_vector_d3(tmpvec, b[j]);
+ mat_copy_vector_d3(b[j], b[j+1]);
+ mat_copy_vector_d3(b[j+1], tmpvec);
+ }
+ }
+ }
+
+ for (i = 2; i < 7; i++) {
+ for (j = 0; j < 3; j++) {
+ tmpmat[j][0] = b[0][j];
+ tmpmat[j][1] = b[1][j];
+ tmpmat[j][2] = b[i][j];
+ }
+ if (mat_Dabs(mat_get_determinant_d3(tmpmat)) > symprec) {
+ for (j = 0; j < 3; j++) {
+ basis[0][j] = b[0][j];
+ basis[1][j] = b[1][j];
+ basis[2][j] = b[i][j];
+ }
+ break;
+ }
+ }
+}
+
+static int delaunay_reduce_basis(double basis[4][3],
+ const double symprec)
+{
+ int i, j, k, l;
+ double dot_product;
+
+ for (i = 0; i < 4; i++) {
+ for (j = i+1; j < 4; j++) {
+ dot_product = 0.0;
+ for (k = 0; k < 3; k++) {
+ dot_product += basis[i][k] * basis[j][k];
+ }
+ if (dot_product > symprec) {
+ for (k = 0; k < 4; k++) {
+ if (! (k == i || k == j)) {
+ for (l = 0; l < 3; l++) {
+ basis[k][l] += basis[i][l];
+ }
+ }
+ }
+ for (k = 0; k < 3; k++) {
+ basis[i][k] = -basis[i][k];
+ }
+ return 0;
+ }
+ }
+ }
+
+ return 1;
+}
+
+static void get_exteneded_basis(double basis[4][3],
+ SPGCONST double lattice[3][3])
+{
+ int i, j;
+
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ basis[i][j] = lattice[j][i];
+ }
+ }
+
+ for (i = 0; i < 3; i++) {
+ basis[3][i] = -lattice[i][0] -lattice[i][1] -lattice[i][2];
+ }
+}
+
+
+static int delaunay_reduce_2D(double red_lattice[3][3],
+ SPGCONST double lattice[3][3],
+ const int unique_axis,
+ const double symprec)
+{
+ int i, j, k, attempt, succeeded;
+ double volume;
+ double basis[3][3], lattice_2D[3][2], unique_vec[3];
+
+ k = 0;
+ for (i = 0; i < 3; i++) {
+ unique_vec[i] = lattice[i][unique_axis];
+ }
+
+ for (i = 0; i < 3; i++) {
+ if (i != unique_axis) {
+ for (j = 0; j < 3; j++) {
+ lattice_2D[j][k] = lattice[j][i];
+ }
+ k++;
+ }
+ }
+
+ get_exteneded_basis_2D(basis, lattice_2D);
+
+
+ for (attempt = 0; attempt < NUM_ATTEMPT; attempt++) {
+ succeeded = delaunay_reduce_basis_2D(basis, symprec);
+ if (succeeded) {
+ break;
+ }
+ }
+
+ if (!succeeded) {
+ goto err;
+ }
+
+ get_delaunay_shortest_vectors_2D(basis, unique_vec, symprec);
+
+ k = 0;
+ for (i = 0; i < 3; i++) {
+ if (i == unique_axis) {
+ for (j = 0; j < 3; j++) {
+ red_lattice[j][i] = lattice[j][i];
+ }
+ } else {
+ for (j = 0; j < 3; j++) {
+ red_lattice[j][i] = basis[k][j];
+ }
+ k++;
+ }
+ }
+
+ volume = mat_get_determinant_d3(red_lattice);
+ if (mat_Dabs(volume) < symprec) {
+ warning_print("spglib: Minimum lattice has no volume (line %d, %s).\n", __LINE__, __FILE__);
+ goto err;
+ }
+
+ if (volume < 0) {
+ for (i = 0; i < 3; i++) {
+ red_lattice[i][unique_axis] = -red_lattice[i][unique_axis];
+ }
+ }
+
+ return 1;
+
+ err:
+ return 0;
+}
+
+static int delaunay_reduce_basis_2D(double basis[3][3],
+ const double symprec)
+{
+ int i, j, k, l;
+ double dot_product;
+
+ for (i = 0; i < 3; i++) {
+ for (j = i + 1; j < 3; j++) {
+ dot_product = 0.0;
+ for (k = 0; k < 3; k++) {
+ dot_product += basis[i][k] * basis[j][k];
+ }
+ if (dot_product > symprec) {
+ for (k = 0; k < 3; k++) {
+ if (! (k == i || k == j)) {
+ for (l = 0; l < 3; l++) {
+ basis[k][l] += 2 * basis[i][l];
+ }
+ break;
+ }
+ }
+ for (k = 0; k < 3; k++) {
+ basis[i][k] = -basis[i][k];
+ }
+ return 0;
+ }
+ }
+ }
+
+ return 1;
+}
+
+static void get_delaunay_shortest_vectors_2D(double basis[3][3],
+ const double unique_vec[3],
+ const double symprec)
+{
+ int i, j;
+ double b[4][3], tmpmat[3][3];
+ double tmpvec[3];
+
+ /* Search in the set {b1, b2, b3, b1+b2} */
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ b[i][j] = basis[i][j];
+ }
+ }
+
+ for (i = 0; i < 3; i++) {
+ b[3][i] = basis[0][i] + basis[1][i];
+ }
+
+ /* Bubble sort */
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ if (mat_norm_squared_d3(b[j]) > mat_norm_squared_d3(b[j + 1])) {
+ mat_copy_vector_d3(tmpvec, b[j]);
+ mat_copy_vector_d3(b[j], b[j + 1]);
+ mat_copy_vector_d3(b[j + 1], tmpvec);
+ }
+ }
+ }
+
+ for (i = 0; i < 3; i++) {
+ tmpmat[i][0] = b[0][i];
+ tmpmat[i][1] = unique_vec[i];
+ }
+
+ for (i = 1; i < 4; i++) {
+ for (j = 0; j < 3; j++) {
+ tmpmat[j][2] = b[i][j];
+ }
+ if (mat_Dabs(mat_get_determinant_d3(tmpmat)) > symprec) {
+ for (j = 0; j < 3; j++) {
+ basis[0][j] = b[0][j];
+ basis[1][j] = b[i][j];
+ }
+ break;
+ }
+ }
+}
+
+static void get_exteneded_basis_2D(double basis[3][3],
+ SPGCONST double lattice[3][2])
+{
+ int i, j;
+
+ for (i = 0; i < 2; i++) {
+ for (j = 0; j < 3; j++) {
+ basis[i][j] = lattice[j][i];
+ }
+ }
+
+ for (i = 0; i < 3; i++) {
+ basis[2][i] = -lattice[i][0] -lattice[i][1];
+ }
+}
diff --git a/src/delaunay.h b/src/delaunay.h
new file mode 100644
index 0000000..d4d5054
--- /dev/null
+++ b/src/delaunay.h
@@ -0,0 +1,48 @@
+/* Copyright (C) 2010 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#ifndef __delaunay_H__
+#define __delaunay_H__
+
+#include "mathfunc.h"
+
+int del_delaunay_reduce(double lattice_new[3][3],
+ SPGCONST double lattice[3][3],
+ const double symprec);
+int del_delaunay_reduce_2D(double min_lattice[3][3],
+ SPGCONST double lattice[3][3],
+ const int unique_axis,
+ const double symprec);
+
+#endif
diff --git a/src/determination.c b/src/determination.c
new file mode 100644
index 0000000..9d933a7
--- /dev/null
+++ b/src/determination.c
@@ -0,0 +1,182 @@
+/* Copyright (C) 2017 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#include <stdlib.h>
+#include "cell.h"
+#include "determination.h"
+#include "primitive.h"
+#include "spacegroup.h"
+
+#include "debug.h"
+
+#define REDUCE_RATE_OUTER 0.9
+#define NUM_ATTEMPT_OUTER 10
+#define REDUCE_RATE 0.95
+#define NUM_ATTEMPT 20
+
+static int get_spacegroup_and_primitive(DataContainer * container,
+ const Cell * cell,
+ const int hall_number,
+ const double symprec,
+ const double angle_tolerance);
+DataContainer * det_determine_all(const Cell * cell,
+ const int hall_number,
+ const double symprec,
+ const double angle_tolerance)
+{
+ int attempt;
+ double tolerance;
+ DataContainer *container;
+
+ container = NULL;
+
+ if ((container = (DataContainer*) malloc(sizeof(DataContainer))) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ return NULL;
+ }
+
+ container->primitive = NULL;
+ container->spacegroup = NULL;
+ container->exact_structure = NULL;
+
+ if ((container->spacegroup = (Spacegroup*) malloc(sizeof(Spacegroup)))
+ == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ det_free_container(container);
+ container = NULL;
+ return NULL;
+ }
+
+ tolerance = symprec;
+ for (attempt = 0; attempt < NUM_ATTEMPT_OUTER; attempt++) {
+ if (get_spacegroup_and_primitive(container,
+ cell,
+ hall_number,
+ tolerance,
+ angle_tolerance)) {
+ if (container->spacegroup->number > 0) {
+ if ((container->exact_structure = ref_get_exact_structure_and_symmetry(
+ container->primitive->cell,
+ cell,
+ container->spacegroup,
+ container->primitive->mapping_table,
+ container->primitive->tolerance)) == NULL) {
+ warning_print("spglib: ref_get_exact_structure_and_symmetry failed.");
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ } else {
+ goto found;
+ }
+ }
+ ref_free_exact_structure(container->exact_structure);
+ container->exact_structure = NULL;
+ }
+ tolerance *= REDUCE_RATE_OUTER;
+ prm_free_primitive(container->primitive);
+ container->primitive = NULL;
+ }
+
+ det_free_container(container);
+ return NULL;
+
+found:
+ return container;
+}
+
+/* NULL is returned if failed */
+static int get_spacegroup_and_primitive(DataContainer * container,
+ const Cell * cell,
+ const int hall_number,
+ const double symprec,
+ const double angle_tolerance)
+{
+ int attempt;
+ double tolerance;
+
+ debug_print("get_spacegroup_and_primitive (tolerance = %f):\n", symprec);
+
+ if (hall_number < 0 || hall_number > 530) {
+ return 0;
+ }
+
+ tolerance = symprec;
+
+ for (attempt = 0; attempt < NUM_ATTEMPT; attempt++) {
+ if ((container->primitive = prm_get_primitive(cell,
+ tolerance,
+ angle_tolerance)) != NULL) {
+ *(container->spacegroup) = spa_search_spacegroup(
+ container->primitive->cell,
+ hall_number,
+ container->primitive->tolerance,
+ container->primitive->angle_tolerance);
+
+ if (container->spacegroup->number > 0) {
+ goto found;
+ }
+
+ prm_free_primitive(container->primitive);
+ container->primitive = NULL;
+ }
+
+ warning_print("spglib: Attempt %d tolerance = %f failed.",
+ attempt, tolerance);
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+
+ tolerance *= REDUCE_RATE;
+ }
+
+ return 0;
+
+found:
+ return 1;
+}
+
+void det_free_container(DataContainer * container)
+{
+ if (container != NULL) {
+ if (container->spacegroup != NULL) {
+ free(container->spacegroup);
+ container->spacegroup = NULL;
+ }
+ if (container->primitive != NULL) {
+ prm_free_primitive(container->primitive);
+ container->primitive = NULL;
+ }
+ if (container->exact_structure != NULL) {
+ ref_free_exact_structure(container->exact_structure);
+ container->exact_structure = NULL;
+ }
+ free(container);
+ }
+}
diff --git a/src/determination.h b/src/determination.h
new file mode 100644
index 0000000..fe3701c
--- /dev/null
+++ b/src/determination.h
@@ -0,0 +1,55 @@
+/* Copyright (C) 2017 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#ifndef __determination_H__
+#define __determination_H__
+
+#include "cell.h"
+#include "primitive.h"
+#include "refinement.h"
+#include "spacegroup.h"
+
+typedef struct {
+ Primitive *primitive;
+ Spacegroup *spacegroup;
+ ExactStructure *exact_structure;
+} DataContainer;
+
+DataContainer * det_determine_all(const Cell * cell,
+ const int hall_number,
+ const double symprec,
+ const double angle_tolerance);
+void det_free_container(DataContainer * container);
+
+#endif
diff --git a/src/hall_symbol.c b/src/hall_symbol.c
index 1933fd8..e20c434 100644
--- a/src/hall_symbol.c
+++ b/src/hall_symbol.c
@@ -1,15 +1,105 @@
- /* hall_symbol.c */
/* Copyright (C) 2010 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#include <stdio.h>
-#include "lattice.h"
#include "hall_symbol.h"
#include "spg_database.h"
#include "spacegroup.h"
#include "symmetry.h"
#include "mathfunc.h"
-#include "debug.h"
+static int M_bcc[3][3] = {
+ { 0, 1, 1 },
+ { 1, 0, 1 },
+ { 1, 1, 0 },
+};
+static int M_fcc[3][3] = {
+ {-1, 1, 1 },
+ { 1,-1, 1 },
+ { 1, 1,-1 },
+};
+static int M_ac[3][3] = {
+ { 1, 0, 0 },
+ { 0, 1, 1 },
+ { 0,-1, 1 },
+};
+static int M_bc[3][3] = {
+ { 1, 0, 1 },
+ { 0, 1, 0 },
+ {-1, 0, 1 },
+};
+static int M_cc[3][3] = {
+ { 1,-1, 0 },
+ { 1, 1, 0 },
+ { 0, 0, 1 },
+};
+static int M_rc[3][3] = {
+ { 1, 0, 1 },
+ {-1, 1, 1 },
+ { 0,-1, 1 },
+};
+
+static double M_bcc_inv[3][3] = {
+ {-0.5, 0.5, 0.5},
+ { 0.5,-0.5, 0.5},
+ { 0.5, 0.5,-0.5},
+};
+static double M_fcc_inv[3][3] = {
+ { 0.0, 0.5, 0.5},
+ { 0.5, 0.0, 0.5},
+ { 0.5, 0.5, 0.0},
+};
+static double M_ac_inv[3][3] = {
+ { 1.0, 0.0, 0.0},
+ { 0.0, 0.5,-0.5},
+ { 0.0, 0.5, 0.5},
+};
+static double M_bc_inv[3][3] = {
+ { 0.5, 0.0,-0.5},
+ { 0.0, 1.0, 0.0},
+ { 0.5, 0.0, 0.5},
+};
+static double M_cc_inv[3][3] = {
+ { 0.5, 0.5, 0.0},
+ {-0.5, 0.5, 0.0},
+ { 0.0, 0.0, 1.0},
+};
+static double M_rc_inv[3][3] = {
+ { 2./3,-1./3,-1./3},
+ { 1./3, 1./3,-2./3},
+ { 1./3, 1./3, 1./3},
+};
/* See: R. W. Grosse-Kunstleve, Acta Cryst. (1999). A55, 383-395 */
/* */
@@ -23,7 +113,8 @@
/* S+ is given by the operations of inversion of the diagonal elements */
/* and then transpose. */
-static double tricli_VSpU[][3][9] = {
+static double tricli_VSpU[][3][9] =
+{
{ /* 1 */
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
@@ -36,7 +127,8 @@ static double tricli_VSpU[][3][9] = {
},
};
-static int tricli_generators[][3][9] = {
+static int tricli_generators[][3][9] =
+{
{ /* 1 */
{ 1, 0, 0, 0, 1, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
@@ -49,929 +141,705 @@ static int tricli_generators[][3][9] = {
},
};
-static double monocli_A_VSpU[][3][9] = {
+static double monocli_VSpU[][3][9] =
+{
{ /* 1 */
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 3 */
{ -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 4 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, -1, 0, 0, 1.0/2, 0, 0, 0, 0, },
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 5 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 6 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 1, 0, 0, -1.0/2, 0, 0, 0, 0, },
- },
- { /* 7 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 7 */
+ { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 8 */
{ -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 9 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ },
+};
+
+static double monocli_A_VSpU[][3][9] =
+{
+ { /* 1 */
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 2 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 1, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { /* 3 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 11 */
+ { /* 4 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 5 */
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
+ { /* 6 */
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 7 */
{ 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 8 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, -1, 0, 0, 1.0/2, 0, 0, 0, 0, },
+ },
+ { /* 9 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
{ 0, 1, 0, 0, -1.0/2, 0, 0, 0, 0, },
},
};
-static double monocli_B_VSpU[][3][9] = {
+static double monocli_B_VSpU[][3][9] =
+{
{ /* 1 */
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
- },
- { /* 3 */
{ -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 4 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 5 */
+ { /* 3 */
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 6 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- },
- { /* 7 */
+ { /* 4 */
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- },
- { /* 9 */
+ { /* 5 */
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
+ { /* 6 */
+ { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 7 */
{ 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
{ 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
},
- { /* 11 */
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { /* 8 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
+ { /* 9 */
{ 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
{ 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
},
};
-static double monocli_C_VSpU[][3][9] = {
+static double monocli_C_VSpU[][3][9] =
+{
{ /* 1 */
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 3 */
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 4 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 5 */
+ { /* 3 */
{ -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 6 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 7 */
+ { /* 4 */
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 9 */
+ { /* 5 */
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 11 */
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { /* 6 */
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
+ { /* 7 */
+ { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 8 */
{ 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
{ -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 9 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
};
-static double monocli_I_VSpU[][3][9] = {
+static double monocli_I_VSpU[][3][9] =
+{
{ /* 1 */
{ -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 1.0/2, -1, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 1.0/2, 0, -1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 3 */
{ -1, 1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 4 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 1, -1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, },
- },
- { /* 5 */
+ { /* 3 */
{ -1, 0, 1.0/2, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 6 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, -1.0/2, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 7 */
+ { /* 4 */
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, -1.0/2, 0, 1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 9 */
+ { /* 5 */
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, -1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 11 */
+ { /* 6 */
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
+ { /* 7 */
{ 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, -1.0/2, 0, 0, 0, },
+ { 0, -1, 0, 1.0/2, 0, -1.0/2, 0, 0, 0, },
{ 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
+ { /* 8 */
+ { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 1, -1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ },
+ { /* 9 */
+ { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1, 0, -1.0/2, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ },
};
-static double monocli_VSpU[][3][9] = {
+static int monocli_generators[][3][9] =
+{
{ /* 1 */
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, 1, 0, 0, 0, -1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 3 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 4 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 5 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 6 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 7 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 8 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { -1, 0, 0, 0, 1, 0, 0, 0, -1, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 9 */
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+};
+
+static double ortho_VSpU[][3][9] =
+{
+ { /* 1 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
- { /* 11 */
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { /* 2 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
+ { /* 3 */
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 4 */
{ 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 5 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
};
-static int monocli_generators[][3][9] = {
+static double ortho_F_VSpU[][3][9] =
+{
{ /* 1 */
- { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 1.0/2, 0, -1.0/4, -1.0/4, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, -1.0/4, -1.0/4, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, -1.0/4, 3.0/4, 0, 0, 0, 0, },
},
{ /* 2 */
- { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 1, 0, 0, -1, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 3 */
- { -1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, 0, 1, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 4 */
- { -1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, 0, 1, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 5 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 6 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 7 */
- { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 8 */
- { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 9 */
- { 1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 10 */
- { 1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 11 */
- { 1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 12 */
- { 1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 1, 0, 0, 0, 0, 0, -1.0/2, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, -1.0/2, 0, },
+ { 0, 0, 0, 0, 1, 0, 0, -1.0/2, 0, },
},
};
-static double ortho_A_VSpU[][3][9] = {
+static double ortho_I_VSpU[][3][9] =
+{
{ /* 1 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1.0/2, -1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 1, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { -1.0/2, 0, 0, 0, 1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
},
{ /* 3 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 1, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, 1.0/2, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 4 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 0, 0, -1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { -1.0/2, 0, 0, 0, 1.0/2, 0, 0, 0, 0, },
+ { -1.0/2, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 5 */
+ { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
+ { 0, 0, -1.0/2, 0, -1, 0, 1.0/2, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ },
+};
+static double ortho_A_VSpU[][3][9] =
+{
+ { /* 1 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 1, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ },
+ { /* 2 */
{ -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 6 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { 0, 1, 0, 0, 0, 0, 0, -1.0/2, 0, },
- },
- { /* 7 */
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, -1, 0, 0, 1.0/2, 0, 0, 0, 0, },
- },
- { /* 9 */
+ { /* 3 */
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
{ 0, -1, 0, 0, 1.0/2, 0, 0, 0, 0, },
},
- { /* 10 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, -1, 0, 0, 0, 1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 11 */
+ { /* 4 */
{ 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
{ 0, -1, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { 0, -1, 0, 0, 0, 0, 0, 1.0/2, 0, },
+ { /* 5 */
+ { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
};
-static double ortho_B_VSpU[][3][9] = {
+static double ortho_B_VSpU[][3][9] =
+{
{ /* 1 */
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 2 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- },
- { /* 3 */
{ -1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
{ 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
},
- { /* 4 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
- },
- { /* 5 */
+ { /* 2 */
{ 0, 0, 0, -1, 0, 0, 0, 0, 0, },
{ 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 6 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
- },
- { /* 7 */
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
- },
- { /* 9 */
+ { /* 3 */
{ 0, 0, 0, -1, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
- },
- { /* 11 */
+ { /* 4 */
{ -1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ -1.0/2, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
},
- { /* 12 */
+ { /* 5 */
{ 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
+ { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
},
};
-static double ortho_C_VSpU[][3][9] = {
+static double ortho_C_VSpU[][3][9] =
+{
{ /* 1 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 2 */
{ -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, 0, 0, 1, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
- { /* 3 */
+ { /* 2 */
{ -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 1.0/2, 0, 0, -1, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 4 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 5 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { -1.0/2, 0, 0, 1, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 6 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, -1.0/2, },
- },
- { /* 7 */
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 9 */
+ { /* 3 */
{ 0, 0, 0, -1, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 11 */
+ { /* 4 */
{ 0, 0, 0, -1, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
+ { /* 5 */
{ 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
{ 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
};
-static double ortho_F_VSpU[][3][9] = {
+static int ortho_generators[][3][9] =
+{
{ /* 1 */
- { -1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- { 1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
+ { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
+ { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 3 */
- { 0, 1.0/2, 0, -1.0/4, -1.0/4, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, -1.0/4, -1.0/4, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, -1.0/4, 3.0/4, 0, 0, 0, 0, },
+ { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
+ { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 4 */
- { 0, 1, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { 0, 0, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { 0, 0, 0, 0, 1, 0, 0, -1.0/2, 0, },
+ { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
+ { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 5 */
- { 0, 1, 0, 0, -1, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 6 */
- { 0, 1, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { 0, 0, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { 0, 0, 0, 0, -1, 0, 0, 1.0/2, 0, },
- },
- { /* 7 */
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 9 */
- { 0, -1, 0, 0, 1, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 10 */
- { 0, -1, 0, 0, 0, 0, 0, 1.0/2, 0, },
- { 0, 0, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { 0, 0, 0, 0, 1, 0, 0, -1.0/2, 0, },
- },
- { /* 11 */
- { 0, -1, 0, 0, 1, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 12 */
- { 0, -1, 0, 0, 0, 0, 0, 1.0/2, 0, },
- { 0, 0, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { 0, 0, 0, 0, -1, 0, 0, 1.0/2, 0, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
+ { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
},
};
-static double ortho_I_VSpU[][3][9] = {
+static double tetra_VSpU[][3][9] =
+{
{ /* 1 */
- { -1, 0, 1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, 1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, -1.0/2, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, 1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
{ /* 3 */
{ 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1.0/2, -1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 4 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, -1.0/2, 0, -1, 0, 1.0/2, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 5 */
- { -1.0/2, 0, 0, 0, 1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { -1.0/2, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 6 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 1.0/2, 0, -1, 0, -1.0/2, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 7 */
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 8 */
{ 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, -1.0/2, 0, 0, 0, },
+ { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
- { /* 9 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 10 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, 0, -1, 0, 1.0/2, 0, -1.0/2, },
- { 0, 0, 0, 0, 0, 0, 0, 0, -1.0/2, },
- },
- { /* 11 */
- { -1.0/2, 0, 0, 0, 1.0/2, 0, 0, 0, 0, },
- { -1.0/2, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 12 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, -1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 1.0/2, 0, 0, -1.0/2, 0, -1.0/2, 0, 0, },
+ { /* 8 */
+ { -1, 0, 0, 0, 1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
};
-static double ortho_VSpU[][3][9] = {
+static double tetra_I_VSpU[][3][9] =
+{
{ /* 1 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1, 0, -1, 0, 0, 0, 0, 0, 0, },
},
{ /* 3 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, 0, },
},
{ /* 4 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { -3.0/4, 1.0/4, 1.0/4, 0, 0, 0, 0, 0, 0, },
+ { -1.0/4, -1.0/4, -1.0/4, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 5 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
+ { 1, 0, -1, -1, 0, 0, 0, 0, 0, },
},
{ /* 6 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, -1.0/2, },
+ { -3.0/4, 1.0/4, 0, 0, 1.0/4, 0, 0, 0, 0, },
+ { -1.0/4, -1.0/4, 0, 0, -1.0/4, 0, 0, 0, 0, },
+ { -1.0/2, 1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, },
},
{ /* 7 */
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { 0, 2, 0, -1.0/2, 0, -1, 0, 0, 0, },
+ { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 9 */
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 10 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 11 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 12 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, -1, 0, 1.0/2, 0, -1.0/2, },
+ { 0, 0, 0, 0, -1, 0, 1.0/2, 0, -1.0/2, },
+ { 1, 0, 0, 0, 1, 0, -1, 0, 0, },
},
};
-
-static int ortho_generators[][3][9] = {
+
+static int tetra_generators[][3][9] =
+{
{ /* 1 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
+ { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
+ { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 3 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
+ { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 4 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 5 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
+ { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
+ { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 6 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
+ { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
{ -1, 0, 0, 0, 1, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 7 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 8 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
+ { /* 7 */
+ { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
{ -1, 0, 0, 0, -1, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 9 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
+ { /* 8 */
+ { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
{ 1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 10 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 11 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 12 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
},
};
-static double trigo_VSpU[][3][9] = {
+static double trigo_VSpU[][3][9] =
+{
{ /* 1 */
{ -2.0/3, 1.0/3, 0, 0, 0, 0, 0, 0, 0, },
{ -1.0/3, -1.0/3, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { -6, 3, 0, 4, 0, 0, 0, 0, 0, },
- { -3, 1, 0, 2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 3 */
{ 0, 1.0/3, 0, -2.0/3, 0, 0, 0, 0, 0, },
{ 0, -1.0/3, 0, -1.0/3, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
- { /* 4 */
- { 0, 1, 0, -2, 0, 0, 1, 0, 0, },
- { 0, -1, 0, 1, 0, 0, -1, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 5 */
- { 0, -1, 0, -2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, -1, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 6 */
- { 0, -1, 0, -2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, -1, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, -1.0/2, },
- },
- { /* 7 */
+ { /* 3 */
{ 0, -1, 0, -2, 0, 0, 0, 0, 0, },
{ 0, -1, 0, -1, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
- { /* 8 */
- { 0, -1, 0, -2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, -1, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 9 */
+ { /* 4 */
{ 0, -1, 0, -2, 0, 0, 0, 0, 0, },
{ 0, -1, 0, -1, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
- { 0, -1, 0, -2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, -1, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { /* 5 */
+ { 0, 1.0/3, 0, -2.0/3, 0, 0, 0, 0, 0, },
+ { 0, -1.0/3, 0, -1.0/3, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 11 */
+ { /* 6 */
{ 0, -1, 0, 0, 0, 0, 0, 0, 0, },
{ 1, -1, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- { 1, -1, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 13 */
+ { /* 7 */
{ 0, -1, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 1, 0, -1, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 14 */
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 1, 0, -1, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 15 */
+ { /* 8 */
{ 0, -1, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1, 0, 1, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 16 */
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 1, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 17 */
+ { /* 9 */
{ 0, -1, 0, 0, 0, 0, 0, 0, 0, },
{ 0, -1, 0, 1, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 18 */
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 1, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 19 */
+ { /* 10 */
{ 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 1, 0, 0, 0, 0, 0, },
+ { 0, 1, 0, -1, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 20 */
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 1, 0, 0, 0, 0, 0, },
+ { /* 11 */
+ { -6, 3, 0, 4, 0, 0, 0, 0, 0, },
+ { -3, 1, 0, 2, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ },
+ { /* 12 */
+ { 0, 1, 0, -2, 0, 0, 1, 0, 0, },
+ { 0, -1, 0, 1, 0, 0, -1, 0, 0, },
+ { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ },
+ { /* 13 */
+ { 0, -1, 0, -2, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, -1, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
};
-static int trigo_generators[][3][9] = {
+static int trigo_generators[][3][9] =
+{
{ /* 1 */
{ 0, -1, 0, 1, -1, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
@@ -979,372 +847,288 @@ static int trigo_generators[][3][9] = {
},
{ /* 2 */
{ 0, -1, 0, 1, -1, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 3 */
{ 0, -1, 0, 1, -1, 0, 0, 0, 1, },
- { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
+ { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 4 */
{ 0, -1, 0, 1, -1, 0, 0, 0, 1, },
- { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 5 */
- { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, 1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 6 */
- { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
{ 0, 1, 0, 1, 0, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 7 */
- { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 8 */
- { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 9 */
+ { /* 5 */
{ 0, -1, 0, 1, -1, 0, 0, 0, 1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
+ { 0, -1, 0, -1, 0, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
- { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 11 */
+ { /* 6 */
{ 0, 1, 0, -1, 1, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
- { 0, 1, 0, -1, 1, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 13 */
+ { /* 7 */
{ 0, 1, 0, -1, 1, 0, 0, 0, -1, },
{ 0, -1, 0, -1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 14 */
- { 0, 1, 0, -1, 1, 0, 0, 0, -1, },
- { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 15 */
+ { /* 8 */
{ 0, 1, 0, -1, 1, 0, 0, 0, -1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, 1, },
+ { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 16 */
+ { /* 9 */
{ 0, 1, 0, -1, 1, 0, 0, 0, -1, },
{ 0, 1, 0, 1, 0, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 17 */
+ { /* 10 */
{ 0, 1, 0, -1, 1, 0, 0, 0, -1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
+ { 0, -1, 0, -1, 0, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 18 */
- { 0, 1, 0, -1, 1, 0, 0, 0, -1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
+ { /* 11 */
+ { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
{ -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 19 */
- { 0, 1, 0, -1, 1, 0, 0, 0, -1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 20 */
- { 0, 1, 0, -1, 1, 0, 0, 0, -1, },
+ { /* 12 */
+ { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
+ { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ },
+ { /* 13 */
+ { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
{ 0, 1, 0, 1, 0, 0, 0, 0, -1, },
{ -1, 0, 0, 0, -1, 0, 0, 0, -1, },
},
};
-static double rhombo_VSpU[][3][9] = {
+static double rhombo_h_VSpU[][3][9] =
+{
{ /* 1 */
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 1, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, 1, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { -1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { -1.0/2, -1, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
},
{ /* 3 */
- { 0, 1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, -1, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, -1, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 4 */
- { -1, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- { 1, 0, 0, -1, 0, 1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { -1.0/2, -1.0/2, 1.0/2, 0, 0, 0, 0, 0, 0, },
+ { 1.0/2, -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 5 */
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, 0, 1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 1, 0, -1, -1.0/2, 0, 0, 0, 0, },
},
{ /* 6 */
- { 0, 0, 0, -1, 0, 0, 0, -1.0/2, 0, },
- { 0, 0, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { 1, 0, 0, -1, 0, 0, 0, -1.0/2, 0, },
+ { -1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1.0/2, -1, 0, 1.0/2, 0, 0, 0, 0, 0, },
+ { -1.0/2, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
},
{ /* 7 */
- { -1, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- { -1, 0, 0, 1, 0, -1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1, 0, 1, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
},
{ /* 8 */
- { -1, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- { -1, 0, 0, 1, 0, -1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 9 */
- { -1, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- { -1, 0, 0, 1, 0, -1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 10 */
- { -1, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- { -1, 0, 0, 1, 0, -1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 11 */
- { -1.0/2, -1.0/2, 1.0/2, 0, 0, 0, 0, 0, 0, },
- { 1.0/2, -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, },
- { -1.0/2, 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 12 */
- { -2, 0, 2, 1.0/2, -1, 0, 0, 0, 0, },
- { 1, 0, -1, -1.0/2, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
- },
- { /* 13 */
- { -1, 0, 0, 0, 0, 1.0/2, 0, 0, 0, },
- { 1, 0, 0, -1, 0, -1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 14 */
- { -1, 0, 0, 0, 0, 1.0/2, 0, 0, 0, },
- { 1, 0, 0, -1, 0, -1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 15 */
- { 0, -1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { -1, 1.0/2, 0, 1.0/2, 0, 0, 0, 0, 0, },
- },
- { /* 16 */
- { 0, 0, 0, -1, 0, 0, 0, -1.0/2, 0, },
- { 0, 0, 0, 0, 0, 0, 0, -1.0/2, 0, },
- { -1, 0, 0, 1, 0, 0, 0, 1.0/2, 0, },
- },
- { /* 17 */
- { 0, -1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { -1, 1.0/2, 0, 1.0/2, 0, 0, 0, 0, 0, },
- },
- { /* 18 */
- { -1, 0, 0, 0, 0, 1.0/2, 0, 0, 0, },
- { -1, 0, 0, 1, 0, 1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 19 */
- { 0, -1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { -1, 1.0/2, 0, 1.0/2, 0, 0, 0, 0, 0, },
- },
- { /* 20 */
- { -1, 0, 0, 0, 0, 1.0/2, 0, 0, 0, },
- { -1, 0, 0, 1, 0, 1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
+ { 0, -1, 0, 0, 0, 0, -1.0/2, 0, 0, },
+ { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
},
};
-
-static int rhombo_generators[][3][9] = {
+static int rhombo_h_generators[][3][9] =
+{
{ /* 1 */
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
+ { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
+ { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 3 */
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
+ { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
+ { 0, -1, 0, -1, 0, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 4 */
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, 1, 0, -1, 1, 0, 0, 0, -1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 5 */
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { 0, 1, 0, 1, 0, 0, 0, 0, 1, },
+ { 0, 1, 0, -1, 1, 0, 0, 0, -1, },
+ { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 6 */
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { 0, 1, 0, 1, 0, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 7 */
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
+ { 0, 1, 0, -1, 1, 0, 0, 0, -1, },
+ { 0, -1, 0, -1, 0, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 8 */
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
+ { /* 7 */
+ { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
{ -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 9 */
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
+ { /* 8 */
+ { 0, -1, 0, 1, -1, 0, 0, 0, 1, },
{ 0, 1, 0, 1, 0, 0, 0, 0, -1, },
{ -1, 0, 0, 0, -1, 0, 0, 0, -1, },
},
- { /* 11 */
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
+};
+
+static double rhombo_p_VSpU[][3][9] =
+{
+ { /* 1 */
+ { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 1, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 2 */
+ { -1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { -1.0/2, -1, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ },
+ { /* 3 */
+ { 0, 0, 0, -1, 0, 0, 0, 0, 0, },
+ { 0, -1, 0, -1, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 4 */
+ { -1.0/2, -1.0/2, 1.0/2, 0, 0, 0, 0, 0, 0, },
+ { 1.0/2, -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 5 */
+ { 0, -1, 0, 0, 1.0/2, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, 1, 0, -1, -1.0/2, 0, 0, 0, 0, },
+ },
+ { /* 6 */
+ { -1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1.0/2, -1, 0, 1.0/2, 0, 0, 0, 0, 0, },
+ { -1.0/2, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
+ },
+ { /* 7 */
+ { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1, 0, 1, -1.0/2, 0, 0, 0, 0, 0, },
+ { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
+ },
+ { /* 8 */
+ { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
+ { 0, -1, 0, 0, 0, 0, -1.0/2, 0, 0, },
+ { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
+ },
+};
+
+static int rhombo_p_generators[][3][9] =
+{
+ { /* 1 */
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { /* 2 */
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
+ { 0, 0, -1, 0, -1, 0, -1, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 13 */
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
+ { /* 3 */
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
+ { 0, 0, 1, 0, 1, 0, 1, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 14 */
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 15 */
+ { /* 4 */
{ 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, 1, 0, 1, 0, 0, 0, 0, 1, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 16 */
+ { /* 5 */
{ 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, 1, 0, 1, 0, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, 0, -1, 0, -1, 0, -1, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 17 */
+ { /* 6 */
{ 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
+ { 0, 0, 1, 0, 1, 0, 1, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 18 */
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
+ { /* 7 */
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
{ -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 19 */
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 20 */
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, 1, 0, 1, 0, 0, 0, 0, -1, },
+ { /* 8 */
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
+ { 0, 0, -1, 0, -1, 0, -1, 0, 0, },
{ -1, 0, 0, 0, -1, 0, 0, 0, -1, },
},
};
-static double hexa_VSpU[][3][9] = {
+static double hexa_VSpU[][3][9] =
+{
{ /* 1 */
{ -1, 1, 0, 0, 0, 0, 0, 0, 0, },
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { -1, 1, 0, 0, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 3 */
{ 1, 0, 0, -1, 0, 0, 0, 0, 0, },
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
- { /* 4 */
- { 1, 0, 0, -1, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 5 */
+ { /* 3 */
{ -1, 0, 0, -1, 0, 0, 0, 0, 0, },
{ -1, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 6 */
- { -1, 0, 0, -1, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, -1.0/2, },
- },
- { /* 7 */
+ { /* 4 */
{ -1.0/3, -1.0/3, 0, 0, 0, 0, 0, 0, 0, },
{ 1.0/3, -2.0/3, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 8 */
- { -1, -1, 0, 1, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 9 */
+ { /* 5 */
{ -1.0/3, 0, 0, -1.0/3, 0, 0, 0, 0, 0, },
{ 1.0/3, 0, 0, -2.0/3, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
- { -1, 0, 0, -1, 0, 0, 1, 0, 0, },
- { 1, 0, 0, 0, 0, 0, -1, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 11 */
+ { /* 6 */
{ -1, 0, 0, 1, 0, 0, 0, 0, 0, },
{ -1, 0, 0, 2, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
- { -1, 0, 0, 1, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 2, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { /* 7 */
+ { -1, 1, 0, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ },
+ { /* 8 */
+ { 1, 0, 0, -1, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
},
};
-static int hexa_generators[][3][9] = {
+static int hexa_generators[][3][9] =
+{
{ /* 1 */
{ 1, -1, 0, 1, 0, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
@@ -1352,1205 +1136,859 @@ static int hexa_generators[][3][9] = {
},
{ /* 2 */
{ 1, -1, 0, 1, 0, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 3 */
- { 1, -1, 0, 1, 0, 0, 0, 0, 1, },
{ 0, -1, 0, -1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 4 */
- { 1, -1, 0, 1, 0, 0, 0, 0, 1, },
- { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 5 */
+ { /* 3 */
{ 1, -1, 0, 1, 0, 0, 0, 0, 1, },
{ 0, 1, 0, 1, 0, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 6 */
- { 1, -1, 0, 1, 0, 0, 0, 0, 1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 7 */
+ { /* 4 */
{ -1, 1, 0, -1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 8 */
+ { /* 5 */
{ -1, 1, 0, -1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 9 */
+ { /* 6 */
{ -1, 1, 0, -1, 0, 0, 0, 0, -1, },
- { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
+ { 0, 1, 0, 1, 0, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 10 */
- { -1, 1, 0, -1, 0, 0, 0, 0, -1, },
- { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
+ { /* 7 */
+ { 1, -1, 0, 1, 0, 0, 0, 0, 1, },
{ -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 11 */
- { -1, 1, 0, -1, 0, 0, 0, 0, -1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, 1, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 12 */
- { -1, 1, 0, -1, 0, 0, 0, 0, -1, },
- { 0, 1, 0, 1, 0, 0, 0, 0, 1, },
+ { /* 8 */
+ { 1, -1, 0, 1, 0, 0, 0, 0, 1, },
+ { 0, -1, 0, -1, 0, 0, 0, 0, -1, },
{ -1, 0, 0, 0, -1, 0, 0, 0, -1, },
},
};
-
-static double cubic_F_VSpU[][3][9] = {
+static double cubic_VSpU[][3][9] =
+{
{ /* 1 */
- { 0, 0, -1, 0, 0, 0, 0, 0, 0, },
- { 1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, 1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, 1.0/2, 0, 1, 0, 0, 0, 0, 0, },
},
{ /* 2 */
- { -1, 0, -1, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 1, 0, 0, 0, 1.0/2, 0, 0, 0, 0, },
+ { -1.0/2, 1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 1.0/2, -1.0/2, 0, -1, 0, 0, 0, 0, 0, },
},
{ /* 3 */
- { 0, 0, -1.0/2, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1, 1.0/2, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 1.0/2, 0, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, -1, 0, -1, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, -1, 0, 0, 0, },
},
{ /* 4 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, -1, 0, -1, 0, 0, 1.0/2, 0, 0, },
- { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
+ { 0, -1.0/2, 0, -1, 0, 1, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 1.0/2, 0, 0, 0, -1, 0, 0, 0, },
},
{ /* 5 */
- { 0, 1.0/2, -1.0/2, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, -1.0/2, 1.0/2, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, -1.0/2, -1.0/2, 0, 1.0/2, 0, 0, 0, 0, },
+ { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { -1.0/2, -1.0/2, 0, 1, 0, 0, 0, 0, 0, },
},
{ /* 6 */
- { 0, 2, 0, -2, 0, 0, 1.0/2, -1, 0, },
- { 0, -1, 0, 1, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
+ { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
+ { 1.0/2, 1.0/2, 0, -1, 0, 0, 0, 0, 0, },
},
{ /* 7 */
- { -1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- { 1.0/2, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, -1, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 1, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
+ { 0, 0, 1.0/2, -1, 0, 0, 0, 0, 0, },
+ { 0, 0, 1.0/2, 0, 0, -1, 0, 0, 0, },
+ { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
},
{ /* 9 */
- { 0, 1.0/4, -1.0/4, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -3.0/4, -1.0/4, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 1.0/4, -1.0/4, 1.0/2, 0, 0, 0, 0, 0, },
+ { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
+ { 0, -1, 0, 0, 0, 0, -1.0/2, 0, 0, },
+ { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
},
{ /* 10 */
{ 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, -1, -2, 0, 0, 3.0/2, 0, 0, },
+ { 0, 0, 0, 1, 0, 1, -1.0/2, 0, 0, },
{ 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
},
- { /* 11 */
- { 0, 1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, -1, 1.0/2, 0, 0, 0, 0, },
+};
+
+static double cubic_F_VSpU[][3][9] =
+{
+ { /* 1 */
+ { 0, 0, -1.0/2, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, -1, 1.0/2, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, 0, -1.0/2, 1.0/2, 0, 0, 0, 0, 0, },
},
- { /* 12 */
- { 0, 0, -2, 4, 0, 0, -3.0/2, 1, 0, },
- { 0, 0, 1, -2, 0, 0, 1.0/2, -1, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
+ { /* 2 */
+ { 0, 1.0/2, -1.0/2, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, -1.0/2, 1.0/2, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, -1.0/2, -1.0/2, 0, 1.0/2, 0, 0, 0, 0, },
},
- { /* 13 */
- { -1.0/4, 1.0/4, 1.0/2, 0, 0, 0, 0, 0, 0, },
- { -1.0/4, -3.0/4, -1.0/2, 0, 0, 0, 0, 0, 0, },
- { -1.0/4, 1.0/4, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { /* 3 */
+ { 0, 1.0/4, -1.0/4, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, -3.0/4, -1.0/4, -1.0/2, 0, 0, 0, 0, 0, },
+ { 0, 1.0/4, -1.0/4, 1.0/2, 0, 0, 0, 0, 0, },
},
- { /* 14 */
- { -1, 0, 1, 1, 1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { -1, 0, 0, 1, 1.0/2, 0, 0, 0, 0, },
+ { /* 4 */
+ { 0, 1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, },
+ { 0, -1.0/2, 0, -1, 1.0/2, 0, 0, 0, 0, },
},
- { /* 15 */
+ { /* 5 */
{ -1.0/4, 1.0/4, 0, -1.0/2, 0, 0, 0, 0, 0, },
{ -1.0/4, -3.0/4, 0, 1.0/2, 0, 0, 0, 0, 0, },
{ -1.0/4, 1.0/4, 0, 1.0/2, 0, 0, 0, 0, 0, },
},
- { /* 16 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, -1, 0, 1, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
- },
- { /* 17 */
+ { /* 6 */
{ 0, 0, 1.0/2, -1.0/2, 0, 0, 0, 0, 0, },
{ 0, -1, -1.0/2, -1.0/2, 0, 0, 0, 0, 0, },
{ 0, 0, -1.0/2, -1.0/2, 0, 0, 0, 0, 0, },
},
- { /* 18 */
- { 0, 2, 0, 2, 0, 0, -3.0/2, -1, 0, },
- { 0, -1, 0, -1, 0, 0, 1.0/2, 0, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
- },
- { /* 19 */
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { /* 7 */
+ { 0, -1.0/2, 0, -1.0/2, 0, -1.0/2, 0, 0, 0, },
+ { 0, -1.0/2, 0, 1.0/2, 0, 1.0/2, 0, 0, 0, },
+ { 0, -1.0/2, 0, 1.0/2, 0, -1.0/2, 0, 0, 0, },
},
- { /* 20 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 21 */
- { 0, -1.0/2, 0, -1.0/2, 0, -1.0/2, 0, 0, 0, },
- { 0, -1.0/2, 0, 1.0/2, 0, 1.0/2, 0, 0, 0, },
- { 0, -1.0/2, 0, 1.0/2, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 22 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 1, 0, 0, 0, 1.0/2, 0, 0, },
- { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
- },
- { /* 23 */
+ { /* 8 */
{ 0, 0, 1.0/2, -1.0/2, 0, 1.0/2, 0, 0, 0, },
{ 0, 0, 1.0/2, 1.0/2, 0, -1.0/2, 0, 0, 0, },
{ 0, 0, -1.0/2, -1.0/2, 0, -1.0/2, 0, 0, 0, },
},
- { /* 24 */
- { 0, 0, 2, 0, 0, 0, 1.0/2, 1, 0, },
- { 0, 0, -1, 0, 0, 0, -1.0/2, -1, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
+ { /* 9 */
+ { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
+ { 0, -1, 0, -1, 0, 0, 1.0/2, 0, 0, },
+ { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
+ },
+ { /* 10 */
+ { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
+ { 0, 0, -1, -2, 0, 0, 3.0/2, 0, 0, },
+ { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
},
};
-
-static double cubic_I_VSpU[][3][9] = {
+
+static double cubic_I_VSpU[][3][9] =
+{
{ /* 1 */
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 2 */
- { 0, 2, 0, -1.0/2, 0, -1, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 3 */
{ 0, -1, 0, -1, 0, 0, 0, 0, 0, },
{ 1, -1, 0, -1, 0, 0, 0, 0, 0, },
{ 0, -1, 0, 0, 0, 0, 0, 0, 0, },
},
- { /* 4 */
- { -2, -3, 0, -1, 0, 0, 1, -1, 1, },
- { -1, -3, 0, -1, 0, 0, 1, -1, 1, },
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 5 */
+ { /* 2 */
{ -1, 0, 1, -1, 0, 0, 0, 0, 0, },
{ 0, 0, 1, -1, 0, 0, 0, 0, 0, },
{ 1, 0, -1, 0, 0, 0, 0, 0, 0, },
},
- { /* 6 */
- { -1, 0, 1, -1, 0, 0, 0, 0, 0, },
- { 0, 0, 1, -1, 0, 0, 0, 0, 0, },
- { 1, 0, -3, 4, 0, 0, -1, -1, -1, },
- },
- { /* 7 */
- { -1, 0, 1.0/2, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, -1.0/2, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 9 */
+ { /* 3 */
{ 1, 0, -1, -2, 0, -1, 0, 0, 0, },
{ 1, 0, -1, -1, 0, 0, 0, 0, 0, },
{ 1, 0, -1, -1, 0, -1, 0, 0, 0, },
},
- { /* 10 */
- { -1, 0, 0, 0, 0, -1, 0, -1, 1, },
- { -1, 0, 0, 1, 0, 0, 0, -1, 1, },
- { -1, 0, 0, 1, 0, -1, 0, -1, 1, },
- },
- { /* 11 */
+ { /* 4 */
{ -1, 0, 1, 0, 0, -1, 0, 0, 0, },
{ 3, 0, -1, -3, 0, 2, 0, 0, 0, },
{ -3, 0, 1, 3, 0, -3, 0, 0, 0, },
},
- { /* 12 */
- { -1, 0, 0, 2, 0, -1, -1, 0, 0, },
- { 1, 0, 0, -1, 0, 2, 0, -1, -1, },
- { -1, 0, 0, 1, 0, -3, 0, 1, 1, },
- },
- { /* 13 */
- { -3.0/4, 1.0/4, 1.0/4, 0, 0, 0, 0, 0, 0, },
- { -1.0/4, -1.0/4, -1.0/4, 0, 0, 0, 0, 0, 0, },
- { -1.0/2, 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 14 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { -2, 1, 0, 1, 0, 0, 0, 0, 0, },
- },
- { /* 15 */
+ { /* 5 */
{ 1, 2, -5, -7, 0, 0, 0, 0, 0, },
{ 1, 1, -4, -5, 0, 0, 0, 0, 0, },
{ 0, 1, -2, -2, 0, 0, 0, 0, 0, },
},
- { /* 16 */
- { -4, -3, 0, 13, 0, 0, -5, 5, 5, },
- { -3, -3, 0, 11, 0, 0, -4, 4, 4, },
- { -2, -1, 0, 6, 0, 0, -2, 2, 2, },
- },
- { /* 17 */
+ { /* 6 */
{ -2, 1, 0, 1, 0, 0, 0, 0, 0, },
{ 1, -1, 0, -1, 0, 0, 0, 0, 0, },
{ 2, -1, 0, -2, 0, 0, 0, 0, 0, },
},
- { /* 18 */
- { -2, 3, 0, 7, 0, 0, -3, -2, -2, },
- { 1, -3, 0, -7, 0, 0, 3, 2, 2, },
- { -2, 5, 0, 12, 0, 0, -5, -4, -4, },
- },
- { /* 19 */
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 20 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, -1.0/2, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 21 */
- { -1, 0, 0, 0, 0, -1, 0, 0, 0, },
- { -1, 0, 0, 1, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1, 0, -1, 0, 0, 0, },
- },
- { /* 22 */
- { -1, 0, 0, 0, 0, -1, 0, 0, 0, },
- { -1, 0, 0, 1, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1, 0, -1, 0, 0, 0, },
- },
- { /* 23 */
- { 1, 0, 0, 0, -2, 1, 0, 0, 0, },
- { -1, 0, 0, 0, 1, -1, 0, 0, 0, },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, },
- },
- { /* 24 */
- { 1, 0, 0, -2, 0, 3, 0, -2, 0, },
- { -1, 0, 0, 1, 0, -2, 0, 1, 0, },
- { 1, 0, 0, -1, 0, 1, 0, -1, 0, },
- },
-};
-
-static double cubic_VSpU[][3][9] = {
- { /* 1 */
- { -1.0/2, 1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 2 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 3 */
- { -1.0/2, 1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { -1.0/2, 1.0/2, 0, 1, 0, 0, 0, 0, 0, },
- },
- { /* 4 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, -1, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
- },
- { /* 5 */
- { -1.0/2, 1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 1.0/2, -1.0/2, 0, -1, 0, 0, 0, 0, 0, },
- },
- { /* 6 */
- { 0, 2, 0, 0, 0, 0, 1.0/2, -1, 0, },
- { 0, -1, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
- },
- { /* 7 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 8 */
- { -1.0/2, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 9 */
- { 0, -1.0/2, 0, -1, 0, -1, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, -1, 0, 0, 0, },
- },
- { /* 10 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, 1, 0, 1, -1.0/2, 0, 0, },
- { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
- },
- { /* 11 */
- { 0, -1.0/2, 0, -1, 0, 1, 0, 0, 0, },
- { 0, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 1.0/2, 0, 0, 0, -1, 0, 0, 0, },
- },
- { /* 12 */
- { 0, 0, 0, -2, 0, 2, 1.0/2, -1, 0, },
- { 0, 0, 0, 1, 0, -1, -1.0/2, 0, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
- },
- { /* 13 */
- { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 14 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 15 */
- { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { -1.0/2, -1.0/2, 0, 1, 0, 0, 0, 0, 0, },
- },
- { /* 16 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, -1, 0, 0, 0, 0, 1.0/2, 0, 0, },
- { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
- },
- { /* 17 */
- { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 1.0/2, 1.0/2, 0, -1, 0, 0, 0, 0, 0, },
- },
- { /* 18 */
- { 0, -2, 0, 0, 0, 0, 1.0/2, 1, 0, },
- { 0, 1, 0, 0, 0, 0, -1.0/2, -1, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
- },
- { /* 19 */
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 20 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 21 */
- { 0, 0, -1.0/2, -1, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 1, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 22 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, 0, 1, 0, 1, -1.0/2, 0, 0, },
- { 0, 0, 0, 1, 0, 0, -1.0/2, 0, 0, },
- },
- { /* 23 */
- { 0, 0, 1.0/2, -1, 0, 0, 0, 0, 0, },
- { 0, 0, 1.0/2, 0, 0, -1, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 24 */
- { 0, 0, 0, -2, 0, 2, 1.0/2, -1, 0, },
- { 0, 0, 0, 1, 0, -1, -1.0/2, 0, 0, },
- { 0, 0, 0, -1, 0, 0, 1.0/2, 0, 0, },
- },
-};
-
-static int cubic_generators[][3][9] = {
- { /* 1 */
- { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 2 */
- { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 3 */
- { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 4 */
- { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 5 */
- { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 6 */
- { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 7 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 8 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 9 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 10 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 11 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 12 */
- { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 13 */
- { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 14 */
- { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 15 */
- { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 16 */
- { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 17 */
- { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 18 */
- { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 19 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 20 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 21 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 22 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 23 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 24 */
- { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
- { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
-};
-
-
-static double tetra_I_VSpU[][3][9] = {
- { /* 1 */
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 2 */
- { 0, 2, 0, -1.0/2, 0, -1, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 3 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, -1, 0, 0, 0, 0, 0, 0, },
- },
- { /* 4 */
- { -1, 0, 0, 0, -1, 0, 1.0/2, 0, -1.0/2, },
- { 0, 0, 0, 0, -1, 0, 1.0/2, 0, -1.0/2, },
- { 1, 0, 0, 0, 1, 0, -1, 0, 0, },
- },
- { /* 5 */
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 0, -1, 0, 0, 0, 0, },
- },
- { /* 6 */
- { -1, 0, 0, 0, -1, 0, -1.0/2, 0, 1.0/2, },
- { 0, 0, 0, 0, -1, 0, -1.0/2, 0, 1.0/2, },
- { -1, 0, 0, 0, -1, 0, 0, 0, 0, },
- },
- { /* 7 */
- { -3.0/4, 1.0/4, 1.0/4, 0, 0, 0, 0, 0, 0, },
- { -1.0/4, -1.0/4, -1.0/4, 0, 0, 0, 0, 0, 0, },
- { -1.0/2, 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { -2, 1, 0, 1, 0, 0, 0, 0, 0, },
- },
- { /* 9 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, -1, -1, 0, 0, 0, 0, 0, },
- },
- { /* 10 */
- { -1, 0, 0, 0, 1, 0, -1.0/2, 0, 1.0/2, },
- { 0, 0, 0, 0, -1, 0, 1.0/2, 0, -1.0/2, },
- { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 11 */
- { -3.0/4, 1.0/4, 0, 0, 1.0/4, 0, 0, 0, 0, },
- { -1.0/4, -1.0/4, 0, 0, -1.0/4, 0, 0, 0, 0, },
- { -1.0/2, 1.0/2, 0, 0, -1.0/2, 0, 0, 0, 0, },
- },
- { /* 12 */
- { -1, 0, 0, 0, 1, 0, 1.0/2, 0, -1.0/2, },
- { 0, 0, 0, 0, -1, 0, -1.0/2, 0, 1.0/2, },
- { -1, 0, 0, 0, 1, 0, 1, 0, -1, },
- },
-};
-
-static double tetra_VSpU[][3][9] = {
- { /* 1 */
- { -1.0/2, 1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 2 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 3 */
- { -1, 0, 0, 0, 1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 4 */
- { -1, 0, 0, 0, 1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 5 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { -1, 0, 0, 1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 6 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { -1, 0, 0, 0, 0, 0, 1.0/2, 0, 0, },
- { 0, 0, 0, 0, 0, 0, 0, 0, -1.0/2, },
- },
{ /* 7 */
- { -1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 1.0/2, -1.0/2, 0, 0, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, 0, -1, 0, 0, 0, },
+ { -1, 0, 0, 1, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 1, 0, -1, 0, 0, 0, },
},
{ /* 8 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { 1, 0, 0, 0, -2, 1, 0, 0, 0, },
+ { -1, 0, 0, 0, 1, -1, 0, 0, 0, },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, },
},
{ /* 9 */
- { -1, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -2, -3, 0, -1, 0, 0, 1, -1, 1, },
+ { -1, -3, 0, -1, 0, 0, 1, -1, 1, },
+ { 0, -1, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 10 */
- { -1, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, -1.0/2, 0, 0, 0, 0, },
- { 0, 0, 0, 0, 0, -1.0/2, 0, 0, 0, },
- },
- { /* 11 */
- { 0, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 1, 0, 0, -1.0/2, 0, 0, 0, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
- },
- { /* 12 */
- { 0, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 1, 0, 0, 0, 0, 0, -1.0/2, 0, 0, },
- { 0, 0, -1.0/2, 0, 0, 0, 0, 0, 0, },
+ { -1, 0, 0, 0, 0, -1, 0, -1, 1, },
+ { -1, 0, 0, 1, 0, 0, 0, -1, 1, },
+ { -1, 0, 0, 1, 0, -1, 0, -1, 1, },
},
};
-static int tetra_generators[][3][9] = {
+static int cubic_generators[][3][9] =
+{
{ /* 1 */
{ 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 2 */
{ 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 3 */
- { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 4 */
- { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
+ { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 5 */
- { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
+ { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 6 */
- { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
- { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
- },
- { /* 7 */
{ 0, 1, 0, -1, 0, 0, 0, 0, -1, },
+ { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
+ },
+ { /* 7 */
+ { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 8 */
- { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 1, 0, 0, 0, 1, 0, 0, 0, -1, },
+ { 0, 0, -1, -1, 0, 0, 0, -1, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
},
{ /* 9 */
- { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
- { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 10 */
- { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
- { 1, 0, 0, 0, -1, 0, 0, 0, -1, },
+ { 0, -1, 0, 1, 0, 0, 0, 0, 1, },
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
{ -1, 0, 0, 0, -1, 0, 0, 0, -1, },
},
- { /* 11 */
- { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
- },
- { /* 12 */
- { 0, 1, 0, -1, 0, 0, 0, 0, -1, },
- { -1, 0, 0, 0, 1, 0, 0, 0, 1, },
+ { /* 10 */
+ { -1, 0, 0, 0, -1, 0, 0, 0, 1, },
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, },
{ -1, 0, 0, 0, -1, 0, 0, 0, -1, },
},
};
-
static int find_hall_symbol(double origin_shift[3],
- const Centering centering,
- SPGCONST Symmetry *symmetry);
+ SPGCONST double bravais_lattice[3][3],
+ const int hall_number,
+ const Centering centering,
+ const Symmetry *symmetry,
+ const double symprec);
static int is_hall_symbol(double shift[3],
- const int hall_number,
- SPGCONST Symmetry *symmetry,
- Centering centering,
- SPGCONST int generators[3][9],
- SPGCONST double VSpU[3][9]);
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ Centering centering,
+ SPGCONST int generators[3][9],
+ SPGCONST double VSpU[3][9],
+ const double symprec);
static int is_hall_symbol_cubic(double shift[3],
- SPGCONST Symmetry *symmetry,
- Centering centering);
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const Centering centering,
+ const double symprec);
static int is_hall_symbol_hexa(double shift[3],
- SPGCONST Symmetry *symmetry);
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const double symprec);
static int is_hall_symbol_rhombo(double shift[3],
- SPGCONST Symmetry *symmetry);
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const double symprec);
static int is_hall_symbol_trigonal(double shift[3],
- SPGCONST Symmetry *symmetry);
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const double symprec);
static int is_hall_symbol_tetra(double shift[3],
- SPGCONST Symmetry *symmetry,
- const Centering centering);
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const Centering centering,
+ const double symprec);
static int is_hall_symbol_ortho(double shift[3],
- SPGCONST Symmetry *symmetry,
- const Centering centering);
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const Centering centering,
+ const double symprec);
static int is_hall_symbol_monocli(double shift[3],
- SPGCONST Symmetry *symmetry,
- const Centering centering);
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const Centering centering,
+ const double symprec);
static int is_hall_symbol_tricli(double shift[3],
- SPGCONST Symmetry *symmetry);
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const double symprec);
static int get_translations(double trans[3][3],
- SPGCONST Symmetry *symmetry,
- SPGCONST int rot[3][3][3]);
+ const Symmetry *symmetry,
+ SPGCONST int rot[3][3][3]);
static void transform_translation(double trans_reduced[3],
- const Centering centering,
- const double trans[3]);
-static void transform_translation_inverse(double trans[3],
- const Centering centering,
- const double trans_reduced[3]);
+ const Centering centering,
+ const double trans[3]);
+static void transform_rotation(double rot_reduced[3][3],
+ const Centering centering,
+ SPGCONST int rot[3][3]);
static int get_origin_shift(double shift[3],
- const int hall_number,
- SPGCONST int rot[3][3][3],
- SPGCONST double trans[3][3],
- const Centering centering,
- SPGCONST double VSpU[3][9]);
+ const int hall_number,
+ SPGCONST int rot[3][3][3],
+ SPGCONST double trans[3][3],
+ const Centering centering,
+ SPGCONST double VSpU[3][9]);
static void unpack_generators(int rot[3][3][3], int generators[3][9]);
static int set_dw(double dw[3],
- const int operation_index[2],
- SPGCONST int rot[3][3],
- const double trans[3],
- const Centering centering);
+ const int operation_index[2],
+ SPGCONST int rot[3][3],
+ const double trans[3],
+ const Centering centering);
static int is_match_database(const int hall_number,
- const double shift[3],
- SPGCONST Symmetry *symmetry);
-
-/* Used for passing to functions in deep */
-static double tolerance;
-static double lattice[3][3];
-
-int hal_get_hall_symbol(double origin_shift[3],
- const Centering centering,
- double bravais_lattice[3][3],
- SPGCONST Symmetry *symmetry,
- const double symprec)
+ const double shift[3],
+ SPGCONST double primitive_lattice[3][3],
+ const Centering centering,
+ const Symmetry *symmetry,
+ const double symprec);
+
+
+int hal_match_hall_symbol_db(double origin_shift[3],
+ SPGCONST double bravais_lattice[3][3],
+ const int hall_number,
+ const Centering centering,
+ const Symmetry *symmetry,
+ const double symprec)
{
- int hall_number;
-
- /* Pass tolerance and Bravais lattice to the function in deep */
- mat_copy_matrix_d3(lattice, bravais_lattice);
- tolerance = symprec;
-
- hall_number = find_hall_symbol(origin_shift, centering, symmetry);
-
- /* In the case of Pa-3 (205), Bravais lattice may change. */
- mat_copy_matrix_d3(bravais_lattice, lattice);
-
- return hall_number;
+ return find_hall_symbol(origin_shift,
+ bravais_lattice,
+ hall_number,
+ centering,
+ symmetry,
+ symprec);
}
static int find_hall_symbol(double origin_shift[3],
- const Centering centering,
- SPGCONST Symmetry *symmetry)
+ SPGCONST double bravais_lattice[3][3],
+ const int hall_number,
+ const Centering centering,
+ const Symmetry *symmetry,
+ const double symprec)
{
- int hall_number = 0;
+ double primitive_lattice[3][3];
+
+ switch (centering) {
+ case PRIMITIVE:
+ mat_copy_matrix_d3(primitive_lattice, bravais_lattice);
+ break;
+ case BODY:
+ mat_multiply_matrix_d3(primitive_lattice, bravais_lattice, M_bcc_inv);
+ break;
+ case FACE:
+ mat_multiply_matrix_d3(primitive_lattice, bravais_lattice, M_fcc_inv);
+ break;
+ case A_FACE:
+ mat_multiply_matrix_d3(primitive_lattice, bravais_lattice, M_ac_inv);
+ break;
+ case B_FACE:
+ mat_multiply_matrix_d3(primitive_lattice, bravais_lattice, M_bc_inv);
+ break;
+ case C_FACE:
+ mat_multiply_matrix_d3(primitive_lattice, bravais_lattice, M_cc_inv);
+ break;
+ case R_CENTER:
+ mat_multiply_matrix_d3(primitive_lattice, bravais_lattice, M_rc_inv);
+ break;
+ default:
+ break;
+ }
/* CUBIC IT: 195-230, Hall: 489-530 */
- hall_number = is_hall_symbol_cubic(origin_shift,
- symmetry,
- centering);
- if (hall_number) { goto end; }
+ if (489 <= hall_number && hall_number <= 530) {
+ if (is_hall_symbol_cubic(origin_shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ symprec)) {goto found;}
+ return 0;
+ }
/* HEXA, IT: 168-194, Hall: 462-488 */
- hall_number = is_hall_symbol_hexa(origin_shift, symmetry);
- if (hall_number) { goto end; }
+ if (462 <= hall_number && hall_number <= 488) {
+ if (is_hall_symbol_hexa(origin_shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ symprec)) {goto found;}
+ return 0;
+ }
/* TRIGO, IT: 143-167, Hall: 430-461 */
- hall_number = is_hall_symbol_trigonal(origin_shift, symmetry);
- if (hall_number) { goto end; }
-
- /* RHOMB, IT: 143-167, Hall: 430-461 */
- hall_number = is_hall_symbol_rhombo(origin_shift, symmetry);
- if (hall_number) { goto end; }
+ if (430 <= hall_number && hall_number <= 461) {
+ if (hall_number == 433 ||
+ hall_number == 434 ||
+ hall_number == 436 ||
+ hall_number == 437 ||
+ hall_number == 444 ||
+ hall_number == 445 ||
+ hall_number == 450 ||
+ hall_number == 451 ||
+ hall_number == 452 ||
+ hall_number == 453 ||
+ hall_number == 458 ||
+ hall_number == 459 ||
+ hall_number == 460 ||
+ hall_number == 461) {
+ if (is_hall_symbol_rhombo(origin_shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ symprec)) {goto found;}
+ } else {
+ if (is_hall_symbol_trigonal(origin_shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ symprec)) {goto found;}
+ }
+ return 0;
+ }
/* TETRA, IT: 75-142, Hall: 349-429 */
- hall_number = is_hall_symbol_tetra(origin_shift, symmetry, centering);
- if (hall_number) { goto end; }
-
+ if (349 <= hall_number && hall_number <= 429) {
+ if (is_hall_symbol_tetra(origin_shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ symprec)) {goto found;}
+ return 0;
+ }
+
/* ORTHO, IT: 16-74, Hall: 108-348 */
- hall_number = is_hall_symbol_ortho(origin_shift, symmetry, centering);
- if (hall_number) { goto end; }
+ if (108 <= hall_number && hall_number <= 348) {
+ if (is_hall_symbol_ortho(origin_shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ symprec)) {goto found;}
+ return 0;
+ }
/* MONOCLI, IT: 3-15, Hall: 3-107 */
- hall_number = is_hall_symbol_monocli(origin_shift, symmetry, centering);
- if (hall_number) { goto end; }
+ if (3 <= hall_number && hall_number <= 107) {
+ if (is_hall_symbol_monocli(origin_shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ symprec)) {goto found;}
+ return 0;
+ }
/* TRICLI, IT: 1-2, Hall: 1-2 */
- hall_number = is_hall_symbol_tricli(origin_shift, symmetry);
- if (hall_number) { goto end; }
+ if (1 <= hall_number && hall_number <= 2) {
+ if (is_hall_symbol_tricli(origin_shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ symprec)) {goto found;}
+ return 0;
+ }
+
+ return 0;
- end:
- return hall_number;
+ found:
+ switch (centering) {
+ case PRIMITIVE:
+ break;
+ case BODY:
+ mat_multiply_matrix_vector_d3(origin_shift, M_bcc_inv, origin_shift);
+ break;
+ case FACE:
+ mat_multiply_matrix_vector_d3(origin_shift, M_fcc_inv, origin_shift);
+ break;
+ case A_FACE:
+ mat_multiply_matrix_vector_d3(origin_shift, M_ac_inv, origin_shift);
+ break;
+ case B_FACE:
+ mat_multiply_matrix_vector_d3(origin_shift, M_bc_inv, origin_shift);
+ break;
+ case C_FACE:
+ mat_multiply_matrix_vector_d3(origin_shift, M_cc_inv, origin_shift);
+ break;
+ case R_CENTER:
+ mat_multiply_matrix_vector_d3(origin_shift, M_rc_inv, origin_shift);
+ break;
+ default:
+ break;
+ }
+ return 1;
}
static int is_hall_symbol_cubic(double shift[3],
- SPGCONST Symmetry *symmetry,
- Centering centering)
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const Centering centering,
+ const double symprec)
{
- int i, hall_number;
- Symmetry *conv_symmetry;
- double trans_mat[3][3] = { { 0, 0, 1 },
- { 0,-1, 0 },
- { 1, 0, 0 } };
-
- for (i = 0; i < 24; i++) {
- for (hall_number = 489; hall_number < 531; hall_number++) {
- /* Special case of Pa-3 (205) */
- if (hall_number==501) {
- if (is_hall_symbol(shift,
- 501,
- symmetry,
- centering,
- cubic_generators[i],
- cubic_VSpU[i])) { goto found; }
-
- /* Try another basis */
- conv_symmetry = spa_get_conventional_symmetry(trans_mat,
- centering,
- symmetry);
-
- if (is_hall_symbol(shift,
- 501,
- conv_symmetry,
- centering,
- cubic_generators[i],
- cubic_VSpU[i])) {
- /* Lattice is multiplied by transformation matrix. */
- mat_multiply_matrix_d3(lattice,
- lattice,
- trans_mat);
- goto found; }
-
- sym_free_symmetry(conv_symmetry);
- continue;
- }
-
- if (centering==NO_CENTER) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- cubic_generators[i],
- cubic_VSpU[i])) { goto found; }
- }
+ int i;
- if (centering==BODY) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- cubic_generators[i],
- cubic_I_VSpU[i])) { goto found; }
- }
+ for (i = 0; i < 10; i++) {
+ if (centering == PRIMITIVE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ cubic_generators[i],
+ cubic_VSpU[i],
+ symprec)) {return 1;}
+ }
- if (centering==FACE) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- cubic_generators[i],
- cubic_F_VSpU[i])) { goto found; }
- }
+ if (centering == BODY) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ cubic_generators[i],
+ cubic_I_VSpU[i],
+ symprec)) {return 1;}
+ }
+
+ if (centering == FACE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ cubic_generators[i],
+ cubic_F_VSpU[i],
+ symprec)) {return 1;}
}
}
return 0;
-
- found:
- return hall_number;
-
}
static int is_hall_symbol_hexa(double shift[3],
- SPGCONST Symmetry *symmetry)
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const double symprec)
{
- int i, hall_number;
+ int i;
- for (i = 0; i < 12; i++) {
- for (hall_number = 462; hall_number < 489; hall_number++) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- NO_CENTER,
- hexa_generators[i],
- hexa_VSpU[i])) {goto found;}
- }
+ for (i = 0; i < 8; i++) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ PRIMITIVE,
+ hexa_generators[i],
+ hexa_VSpU[i],
+ symprec)) {return 1;}
}
return 0;
-
- found:
- return hall_number;
}
static int is_hall_symbol_trigonal(double shift[3],
- SPGCONST Symmetry *symmetry)
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const double symprec)
{
- int i, hall_number;
+ int i;
- for (i = 0; i < 20; i++) {
- for (hall_number = 430; hall_number < 462; hall_number++) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- NO_CENTER,
- trigo_generators[i],
- trigo_VSpU[i])) { goto found; }
- }
+ for (i = 0; i < 13; i++) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ PRIMITIVE,
+ trigo_generators[i],
+ trigo_VSpU[i],
+ symprec)) {return 1;}
}
return 0;
-
- found:
- return hall_number;
-
}
static int is_hall_symbol_rhombo(double shift[3],
- SPGCONST Symmetry *symmetry)
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const double symprec)
{
- int i, hall_number;
+ int i;
- for (i = 0; i < 20; i++) {
- for (hall_number = 430; hall_number < 462; hall_number++) {
+ if (hall_number == 433 ||
+ hall_number == 436 ||
+ hall_number == 444 ||
+ hall_number == 450 ||
+ hall_number == 452 ||
+ hall_number == 458 ||
+ hall_number == 460) {
+ /* hP */
+ for (i = 0; i < 8; i++) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ R_CENTER,
+ rhombo_h_generators[i],
+ rhombo_h_VSpU[i],
+ symprec)) {return 1;}
+ }
+ } else {
+ /* hR */
+ for (i = 0; i < 8; i++) {
if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- NO_CENTER,
- rhombo_generators[i],
- rhombo_VSpU[i])) { goto found; }
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ PRIMITIVE,
+ rhombo_p_generators[i],
+ rhombo_p_VSpU[i],
+ symprec)) {return 1;}
}
}
return 0;
-
- found:
- return hall_number;
-
}
static int is_hall_symbol_tetra(double shift[3],
- SPGCONST Symmetry *symmetry,
- const Centering centering)
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const Centering centering,
+ const double symprec)
{
- int i, hall_number;
-
- for (i = 0; i < 12; i++) {
- for (hall_number = 349; hall_number < 429; hall_number++) {
- if (centering==NO_CENTER) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- tetra_generators[i],
- tetra_VSpU[i])) { goto found; }
- }
+ int i;
- if (centering==BODY) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- tetra_generators[i],
- tetra_I_VSpU[i])) { goto found; }
- }
+ for (i = 0; i < 8; i++) {
+ if (centering==PRIMITIVE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ tetra_generators[i],
+ tetra_VSpU[i],
+ symprec)) {return 1;}
+ }
+
+ if (centering==BODY) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ tetra_generators[i],
+ tetra_I_VSpU[i],
+ symprec)) {return 1;}
}
}
return 0;
-
- found:
- return hall_number;
}
static int is_hall_symbol_ortho(double shift[3],
- SPGCONST Symmetry *symmetry,
- const Centering centering)
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const Centering centering,
+ const double symprec)
{
- int hall_number;
int i;
- for (i = 0; i < 12; i++) {
- for (hall_number = 108; hall_number < 348; hall_number++) {
- if (centering==NO_CENTER) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- ortho_generators[i],
- ortho_VSpU[i])) { goto found; }
- }
+ for (i = 0; i < 5; i++) {
+ if (centering == PRIMITIVE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ ortho_generators[i],
+ ortho_VSpU[i],
+ symprec)) {return 1;}
+ }
- if (centering==BODY) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- ortho_generators[i],
- ortho_I_VSpU[i])) { goto found; }
- }
+ if (centering == BODY) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ ortho_generators[i],
+ ortho_I_VSpU[i],
+ symprec)) {return 1;}
+ }
- if (centering==FACE) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- ortho_generators[i],
- ortho_F_VSpU[i])) { goto found; }
- }
+ if (centering == FACE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ ortho_generators[i],
+ ortho_F_VSpU[i],
+ symprec)) {return 1;}
+ }
- if (centering==A_FACE) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- ortho_generators[i],
- ortho_A_VSpU[i])) { goto found; }
- }
+ if (centering == A_FACE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ ortho_generators[i],
+ ortho_A_VSpU[i],
+ symprec)) {return 1;}
+ }
- if (centering==B_FACE) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- ortho_generators[i],
- ortho_B_VSpU[i])) { goto found; }
- }
+ if (centering == B_FACE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ ortho_generators[i],
+ ortho_B_VSpU[i],
+ symprec)) {return 1;}
+ }
- if (centering==C_FACE) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- ortho_generators[i],
- ortho_C_VSpU[i])) { goto found; }
- }
+ if (centering == C_FACE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ ortho_generators[i],
+ ortho_C_VSpU[i],
+ symprec)) {return 1;}
}
}
return 0;
-
- found:
- return hall_number;
-
}
static int is_hall_symbol_monocli(double shift[3],
- SPGCONST Symmetry *symmetry,
- const Centering centering)
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const Centering centering,
+ const double symprec)
{
- int hall_number;
int i;
- for (i = 0; i < 12; i++) {
- for (hall_number = 3; hall_number < 108; hall_number++) {
- if (centering==NO_CENTER) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- monocli_generators[i],
- monocli_VSpU[i])) {goto found;}
- }
-
- if (centering==A_FACE) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- monocli_generators[i],
- monocli_A_VSpU[i])) {goto found;}
- }
+ for (i = 0; i < 9; i++) {
+ if (centering == PRIMITIVE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ monocli_generators[i],
+ monocli_VSpU[i],
+ symprec)) {return 1;}
+ }
- if (centering==B_FACE) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- monocli_generators[i],
- monocli_B_VSpU[i])) {goto found;}
- }
+ if (centering == A_FACE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ monocli_generators[i],
+ monocli_A_VSpU[i],
+ symprec)) {return 1;}
+ }
- if (centering==C_FACE) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- monocli_generators[i],
- monocli_C_VSpU[i])) {goto found;}
- }
+ if (centering == B_FACE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ monocli_generators[i],
+ monocli_B_VSpU[i],
+ symprec)) {return 1;}
+ }
- if (centering==BODY) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- centering,
- monocli_generators[i],
- monocli_I_VSpU[i])) {goto found;}
- }
+ if (centering == C_FACE) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ monocli_generators[i],
+ monocli_C_VSpU[i],
+ symprec)) {return 1;}
+ }
-
+ if (centering == BODY) {
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ centering,
+ monocli_generators[i],
+ monocli_I_VSpU[i],
+ symprec)) {return 1;}
}
}
- return 0;
-
- found:
- return hall_number;
+ return 0;
}
static int is_hall_symbol_tricli(double shift[3],
- SPGCONST Symmetry *symmetry)
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ const double symprec)
{
- int i, hall_number;
+ int i;
for (i = 0; i < 2; i++) {
- for (hall_number = 1; hall_number < 3; hall_number++) {
- if (is_hall_symbol(shift,
- hall_number,
- symmetry,
- NO_CENTER,
- tricli_generators[i],
- tricli_VSpU[i])) { goto found; }
- }
+ if (is_hall_symbol(shift,
+ hall_number,
+ primitive_lattice,
+ symmetry,
+ PRIMITIVE,
+ tricli_generators[i],
+ tricli_VSpU[i],
+ symprec)) {return 1;}
}
return 0;
-
- found:
- return hall_number;
-
}
static void unpack_generators(int rot[3][3][3], int generators[3][9])
@@ -2559,46 +1997,48 @@ static void unpack_generators(int rot[3][3][3], int generators[3][9])
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
for (k = 0; k < 3; k++) {
- rot[i][j][k] = generators[i][j*3+k];
+ rot[i][j][k] = generators[i][j*3+k];
}
}
}
}
static int is_hall_symbol(double shift[3],
- const int hall_number,
- SPGCONST Symmetry *symmetry,
- Centering centering,
- SPGCONST int generators[3][9],
- SPGCONST double VSpU[3][9])
+ const int hall_number,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry *symmetry,
+ Centering centering,
+ SPGCONST int generators[3][9],
+ SPGCONST double VSpU[3][9],
+ const double symprec)
{
int is_origin_shift;
int operation_index[2];
int rot[3][3][3];
double trans[3][3];
- unpack_generators(rot, generators);
-
spgdb_get_operation_index(operation_index, hall_number);
+
if (! (operation_index[0] == symmetry->size)) {
goto not_found;
}
+ unpack_generators(rot, generators);
if (get_translations(trans, symmetry, rot)) {
is_origin_shift = get_origin_shift(shift,
- hall_number,
- rot,
- trans,
- centering,
- VSpU);
+ hall_number,
+ rot,
+ trans,
+ centering,
+ VSpU);
if (is_origin_shift) {
if (is_match_database(hall_number,
- shift,
- symmetry)) {
- debug_print("Match with database %d\n", hall_number);
- goto found;
- }
+ shift,
+ primitive_lattice,
+ centering,
+ symmetry,
+ symprec)) {goto found;}
}
} else {
goto not_found;
@@ -2612,14 +2052,14 @@ static int is_hall_symbol(double shift[3],
}
static int get_translations(double trans[3][3],
- SPGCONST Symmetry *symmetry,
- SPGCONST int rot[3][3][3])
+ const Symmetry *symmetry,
+ SPGCONST int rot[3][3][3])
{
int i, j;
int is_found;
- static SPGCONST int zero[3][3] = { { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 }, };
+ static SPGCONST int zero[3][3] = { { 0, 0, 0 },
+ { 0, 0, 0 },
+ { 0, 0, 0 }, };
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
@@ -2632,9 +2072,9 @@ static int get_translations(double trans[3][3],
is_found = 0;
for (j = 0; j < symmetry->size; j++) {
if (mat_check_identity_matrix_i3(symmetry->rot[j], rot[i])) {
- mat_copy_vector_d3(trans[i], symmetry->trans[j]);
- is_found = 1;
- break;
+ mat_copy_vector_d3(trans[i], symmetry->trans[j]);
+ is_found = 1;
+ break;
}
}
if (! is_found) {
@@ -2650,38 +2090,13 @@ static int get_translations(double trans[3][3],
}
static void transform_translation(double trans_reduced[3],
- const Centering centering,
- const double trans[3])
+ const Centering centering,
+ const double trans[3])
{
int i;
- static int M_bcc[3][3] = {
- { 0, 1, 1 },
- { 1, 0, 1 },
- { 1, 1, 0 },
- };
- static int M_fcc[3][3] = {
- {-1, 1, 1 },
- { 1,-1, 1 },
- { 1, 1,-1 },
- };
- static int M_ac[3][3] = {
- { 1, 0, 0 },
- { 0, 1, 1 },
- { 0,-1, 1 },
- };
- static int M_bc[3][3] = {
- { 1, 0, 1 },
- { 0, 1, 0 },
- {-1, 0, 1 },
- };
- static int M_cc[3][3] = {
- { 1, 1, 0 },
- {-1, 1, 0 },
- { 0, 0, 1 },
- };
switch (centering) {
- case NO_CENTER:
+ case PRIMITIVE:
mat_copy_vector_d3(trans_reduced, trans);
break;
case BODY:
@@ -2699,84 +2114,59 @@ static void transform_translation(double trans_reduced[3],
case C_FACE:
mat_multiply_matrix_vector_id3(trans_reduced, M_cc, trans);
break;
+ case R_CENTER:
+ mat_multiply_matrix_vector_id3(trans_reduced, M_rc, trans);
+ break;
default:
break;
}
for (i = 0; i < 3; i++) {
- trans_reduced[i] -= mat_Nint(trans_reduced[i]);
+ trans_reduced[i] = mat_Dmod1(trans_reduced[i]);
}
}
-static void transform_translation_inverse(double trans[3],
- const Centering centering,
- const double trans_reduced[3])
+static void transform_rotation(double rot_reduced[3][3],
+ const Centering centering,
+ SPGCONST int rot[3][3])
{
- int i;
- static double M_bcc_inv[3][3] = {
- {-0.5, 0.5, 0.5},
- { 0.5,-0.5, 0.5},
- { 0.5, 0.5,-0.5},
- };
- static double M_fcc_inv[3][3] = {
- { 0.0, 0.5, 0.5},
- { 0.5, 0.0, 0.5},
- { 0.5, 0.5, 0.0},
- };
- static double M_ac_inv[3][3] = {
- { 1.0, 0.0, 0.0},
- { 0.0, 0.5,-0.5},
- { 0.0, 0.5, 0.5},
- };
- static double M_bc_inv[3][3] = {
- { 0.5, 0.0,-0.5},
- { 0.0, 1.0, 0.0},
- { 0.5, 0.0, 0.5},
- };
- static double M_cc_inv[3][3] = {
- { 0.5,-0.5, 0.0},
- { 0.5, 0.5, 0.0},
- { 0.0, 0.0, 1.0},
- };
-
- switch (centering) {
- case NO_CENTER:
- mat_copy_vector_d3(trans, trans_reduced);
- break;
- case BODY:
- mat_multiply_matrix_vector_d3(trans, M_bcc_inv, trans_reduced);
- break;
- case FACE:
- mat_multiply_matrix_vector_d3(trans, M_fcc_inv, trans_reduced);
- break;
- case A_FACE:
- mat_multiply_matrix_vector_d3(trans, M_ac_inv, trans_reduced);
- break;
- case B_FACE:
- mat_multiply_matrix_vector_d3(trans, M_bc_inv, trans_reduced);
- break;
- case C_FACE:
- mat_multiply_matrix_vector_d3(trans, M_cc_inv, trans_reduced);
- break;
- default:
- break;
- }
-
- for (i = 0; i < 3; i++) {
- trans[i] -= mat_Nint(trans[i]);
+ mat_cast_matrix_3i_to_3d(rot_reduced, rot);
+ if (centering != PRIMITIVE) {
+ switch (centering) {
+ case BODY:
+ mat_get_similar_matrix_d3(rot_reduced, rot_reduced, M_bcc_inv, 0);
+ break;
+ case FACE:
+ mat_get_similar_matrix_d3(rot_reduced, rot_reduced, M_fcc_inv, 0);
+ break;
+ case A_FACE:
+ mat_get_similar_matrix_d3(rot_reduced, rot_reduced, M_ac_inv, 0);
+ break;
+ case B_FACE:
+ mat_get_similar_matrix_d3(rot_reduced, rot_reduced, M_bc_inv, 0);
+ break;
+ case C_FACE:
+ mat_get_similar_matrix_d3(rot_reduced, rot_reduced, M_cc_inv, 0);
+ break;
+ case R_CENTER:
+ mat_get_similar_matrix_d3(rot_reduced, rot_reduced, M_rc_inv, 0);
+ break;
+ default:
+ break;
+ }
}
}
static int get_origin_shift(double shift[3],
- const int hall_number,
- SPGCONST int rot[3][3][3],
- SPGCONST double trans[3][3],
- const Centering centering,
- SPGCONST double VSpU[3][9])
+ const int hall_number,
+ SPGCONST int rot[3][3][3],
+ SPGCONST double trans[3][3],
+ const Centering centering,
+ SPGCONST double VSpU[3][9])
{
int i, j;
int operation_index[2];
- double dw[9], tmp_dw[3], tmp_shift[3];
+ double dw[9], tmp_dw[3];
spgdb_get_operation_index(operation_index, hall_number);
@@ -2785,30 +2175,27 @@ static int get_origin_shift(double shift[3],
/* Zero matrix is the sign to set dw 0 */
if (mat_get_determinant_i3(rot[i]) == 0) {
for (j = 0; j < 3; j++) {
- dw[i*3+j] = 0;
+ dw[i * 3 + j] = 0;
}
} else {
- if (set_dw(tmp_dw, operation_index,
- rot[i], trans[i], centering)) {
- for (j = 0; j < 3; j++) {
- dw[i*3+j] = tmp_dw[j];
- }
+ if (set_dw(tmp_dw, operation_index, rot[i], trans[i], centering)) {
+ for (j = 0; j < 3; j++) {
+ dw[i * 3 + j] = tmp_dw[j];
+ }
} else {
- goto not_found;
+ goto not_found;
}
}
}
-
/* VSpU*dw is given for the primitive cell if there is centering. */
for (i = 0; i < 3; i++) {
- tmp_shift[i] = 0;
+ shift[i] = 0;
for (j = 0; j < 9; j++) {
- tmp_shift[i] += VSpU[i][j] * dw[j];
+ shift[i] += VSpU[i][j] * dw[j];
}
+ shift[i] = mat_Dmod1(shift[i]);
}
- /* Transform VSpU*dw to that of the conventional unit cell. */
- transform_translation_inverse(shift, centering, tmp_shift);
return 1;
@@ -2817,73 +2204,74 @@ static int get_origin_shift(double shift[3],
}
static int set_dw(double dw[3],
- const int operation_index[2],
- SPGCONST int rot[3][3],
- const double trans[3],
- const Centering centering)
+ const int operation_index[2],
+ SPGCONST int rot[3][3],
+ const double trans[3],
+ const Centering centering)
{
int i, j;
int rot_db[3][3];
- double trans_db[3], tmp_dw[3];
+ double trans_db[3], trans_prim[3], trans_db_prim[3];
+ transform_translation(trans_prim, centering, trans);
for (i = 0; i < operation_index[0]; i++) {
- /* rotation matrix matching and set difference of translations */
spgdb_get_operation(rot_db, trans_db, operation_index[1] + i);
-
+ transform_translation(trans_db_prim, centering, trans_db);
if (mat_check_identity_matrix_i3(rot_db, rot)) {
for (j = 0; j < 3; j++) {
- tmp_dw[j] = trans_db[j] - trans[j];
+ dw[j] = trans_prim[j] - trans_db_prim[j];
+ dw[j] = mat_Dmod1(dw[j]);
}
- /* Transform dw to that of primitive cell if there is centering. */
- transform_translation(dw, centering, tmp_dw);
goto found;
}
}
/* Not found */
return 0;
-
+
found:
return 1;
}
static int is_match_database(const int hall_number,
- const double origin_shift[3],
- SPGCONST Symmetry *symmetry)
+ const double origin_shift[3],
+ SPGCONST double primitive_lattice[3][3],
+ const Centering centering,
+ const Symmetry *symmetry,
+ const double symprec)
{
int i, j, k, is_found;
int operation_index[2];
int rot_db[3][3];
int found_list[192];
- double trans_db[3], conv_trans[3], tmp_vec[3];
+ double trans_db[3], trans_db_prim[3], trans_prim[3], diff[3], shift_rot[3];
+ double rot_prim[3][3];
spgdb_get_operation_index(operation_index, hall_number);
- for (i = 0; i < symmetry->size; i++) { found_list[i] = 0; }
-
+ for (i = 0; i < symmetry->size; i++) {found_list[i] = 0;}
for (i = 0; i < symmetry->size; i++) {
is_found = 0;
for (j = 0; j < operation_index[0]; j++) {
- /* rotation matrix matching and set difference of translations */
- spgdb_get_operation(rot_db, trans_db, operation_index[1]+j);
-
+ spgdb_get_operation(rot_db, trans_db, operation_index[1] + j);
if (mat_check_identity_matrix_i3(symmetry->rot[i], rot_db)) {
- mat_multiply_matrix_vector_id3(tmp_vec, rot_db, origin_shift);
- for (k = 0; k < 3; k++) {
- conv_trans[k] = tmp_vec[k] + symmetry->trans[i][k] - origin_shift[k];
- }
-
- if (cel_is_overlap(conv_trans,
- trans_db,
- lattice,
- tolerance) && (! found_list[j])) {
- found_list[j] = 1;
- is_found = 1;
-
- break;
- }
+ transform_translation(trans_db_prim, centering, trans_db);
+ transform_translation(trans_prim, centering, symmetry->trans[i]);
+ transform_rotation(rot_prim, centering, rot_db);
+ for (k = 0; k < 3; k++) {
+ diff[k] = trans_prim[k] - trans_db_prim[k] + origin_shift[k];
+ }
+ mat_multiply_matrix_vector_d3(shift_rot, rot_prim, origin_shift);
+ if (cel_is_overlap(diff, shift_rot, primitive_lattice, symprec)) {
+ if (! found_list[j]) {
+ found_list[j] = 1;
+ is_found = 1;
+ break;
+ }
+ }
}
}
+
if (! is_found) {
goto not_found;
}
@@ -2894,4 +2282,3 @@ static int is_match_database(const int hall_number,
not_found:
return 0;
}
-
diff --git a/src/hall_symbol.h b/src/hall_symbol.h
index 21932bc..03912d9 100644
--- a/src/hall_symbol.h
+++ b/src/hall_symbol.h
@@ -1,16 +1,49 @@
-/* hall_symbol.h */
/* Copyright (C) 2010 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __hall_symbol_H__
#define __hall_symbol_H__
-#include "lattice.h"
+#include "spacegroup.h"
#include "symmetry.h"
#include "mathfunc.h"
-int hal_get_hall_symbol( double origin_shift[3],
- const Centering centering,
- double bravais_lattice[3][3],
- SPGCONST Symmetry *symmetry,
- const double symprec );
+int hal_match_hall_symbol_db(double origin_shift[3],
+ SPGCONST double bravais_lattice[3][3],
+ const int hall_number,
+ const Centering centering,
+ const Symmetry *symmetry,
+ const double symprec);
+
#endif
diff --git a/src/kgrid.c b/src/kgrid.c
new file mode 100644
index 0000000..67d69db
--- /dev/null
+++ b/src/kgrid.c
@@ -0,0 +1,154 @@
+/* Copyright (C) 2015 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file was originally part of spglib and is part of kspclib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#include "kgrid.h"
+
+static void get_all_grid_addresses(int grid_address[][3], const int mesh[3]);
+static int get_grid_point_double_mesh(const int address_double[3],
+ const int mesh[3]);
+static int get_grid_point_single_mesh(const int address[3], const int mesh[3]);
+static void modulo_i3(int v[3], const int m[3]);
+static void reduce_grid_address(int address[3], const int mesh[3]);
+static void reduce_grid_address_double(int address[3], const int mesh[3]);
+
+void kgd_get_all_grid_addresses(int grid_address[][3], const int mesh[3])
+{
+ get_all_grid_addresses(grid_address, mesh);
+}
+
+int kgd_get_grid_point_double_mesh(const int address_double[3],
+ const int mesh[3])
+{
+ return get_grid_point_double_mesh(address_double, mesh);
+}
+
+void kgd_get_grid_address_double_mesh(int address_double[3],
+ const int address[3],
+ const int mesh[3],
+ const int is_shift[3])
+{
+ int i;
+
+ for (i = 0; i < 3; i++) {
+ address_double[i] = address[i] * 2 + (is_shift[i] != 0);
+ }
+ reduce_grid_address_double(address_double, mesh);
+}
+
+static void get_all_grid_addresses(int grid_address[][3], const int mesh[3])
+{
+ int i, j, k, grid_point;
+ int address[3];
+
+ for (i = 0; i < mesh[0]; i++) {
+ address[0] = i;
+ for (j = 0; j < mesh[1]; j++) {
+ address[1] = j;
+ for (k = 0; k < mesh[2]; k++) {
+ address[2] = k;
+ grid_point = get_grid_point_single_mesh(address, mesh);
+ grid_address[grid_point][0] = address[0];
+ grid_address[grid_point][1] = address[1];
+ grid_address[grid_point][2] = address[2];
+ reduce_grid_address(grid_address[grid_point], mesh);
+ }
+ }
+ }
+}
+
+static int get_grid_point_double_mesh(const int address_double[3],
+ const int mesh[3])
+{
+ int i, address[3];
+
+ for (i = 0; i < 3; i++) {
+ if (address_double[i] % 2 == 0) {
+ address[i] = address_double[i] / 2;
+ } else {
+ address[i] = (address_double[i] - 1) / 2;
+ }
+ }
+ modulo_i3(address, mesh);
+
+ return get_grid_point_single_mesh(address, mesh);
+}
+
+static int get_grid_point_single_mesh(const int address[3],
+ const int mesh[3])
+{
+#ifndef GRID_ORDER_XYZ
+ return address[2] * mesh[0] * mesh[1] + address[1] * mesh[0] + address[0];
+#else
+ return address[0] * mesh[1] * mesh[2] + address[1] * mesh[2] + address[2];
+#endif
+}
+
+static void modulo_i3(int v[3], const int m[3])
+{
+ int i;
+
+ for (i = 0; i < 3; i++) {
+ v[i] = v[i] % m[i];
+
+ if (v[i] < 0) {
+ v[i] += m[i];
+ }
+ }
+}
+
+static void reduce_grid_address(int address[3], const int mesh[3])
+{
+ int i;
+
+ for (i = 0; i < 3; i++) {
+#ifndef GRID_BOUNDARY_AS_NEGATIVE
+ address[i] -= mesh[i] * (address[i] > mesh[i] / 2);
+#else
+ address[i] -= mesh[i] * (address[i] > (mesh[i] - 1) / 2);
+#endif
+ }
+}
+
+static void reduce_grid_address_double(int address[3], const int mesh[3])
+{
+ int i;
+
+ for (i = 0; i < 3; i++) {
+#ifndef GRID_BOUNDARY_AS_NEGATIVE
+ address[i] -= 2 * mesh[i] * (address[i] > mesh[i]);
+#else
+ address[i] -= 2 * mesh[i] * (address[i] > mesh[i] - 1);
+#endif
+ }
+}
diff --git a/src/kgrid.h b/src/kgrid.h
new file mode 100644
index 0000000..54858d6
--- /dev/null
+++ b/src/kgrid.h
@@ -0,0 +1,81 @@
+/* Copyright (C) 2015 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file was originally part of spglib and is part of kspclib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#ifndef __kgrid_H__
+#define __kgrid_H__
+
+/* #define GRID_ORDER_XYZ */
+/* This changes behaviour of index order of address. */
+/* Without GRID_ORDER_XYZ, left most element of address runs first. */
+/* grid_address (e.g. 4x4x4 mesh, unless GRID_ORDER_XYZ is defined) */
+/* [[ 0 0 0] */
+/* [ 1 0 0] */
+/* [ 2 0 0] */
+/* [-1 0 0] */
+/* [ 0 1 0] */
+/* [ 1 1 0] */
+/* [ 2 1 0] */
+/* [-1 1 0] */
+/* .... ] */
+/* */
+/* With GRID_ORDER_XYZ, right most element of address runs first. */
+/* grid_address (e.g. 4x4x4 mesh, if GRID_ORDER_XYZ is defined) */
+/* [[ 0 0 0] */
+/* [ 0 0 1] */
+/* [ 0 0 2] */
+/* [ 0 0 -1] */
+/* [ 0 1 0] */
+/* [ 0 1 1] */
+/* [ 0 1 2] */
+/* [ 0 1 -1] */
+/* .... ] */
+
+/* #define GRID_BOUNDARY_AS_NEGATIVE */
+/* This changes the behaviour of address elements on the surface of */
+/* parallelepiped. */
+/* For odd mesh number, this affects nothing, e.g., [-2, -1, 0, 1, 2]. */
+/* regardless of with and without GRID_BOUNDARY_AS_NEGATIVE. */
+/* For even mesh number, this affects as follows: */
+/* without GRID_BOUNDARY_AS_NEGATIVE, e.g., [-2, -1, 0, 1, 2, 3]. */
+/* with GRID_BOUNDARY_AS_NEGATIVE, e.g., [-3, -2, -1, 0, 1, 2]. */
+
+void kgd_get_all_grid_addresses(int grid_address[][3], const int mesh[3]);
+int kgd_get_grid_point_double_mesh(const int address_double[3],
+ const int mesh[3]);
+void kgd_get_grid_address_double_mesh(int address_double[3],
+ const int address[3],
+ const int mesh[3],
+ const int is_shift[3]);
+
+#endif
diff --git a/src/kpoint.c b/src/kpoint.c
index cb80b66..75a19bc 100644
--- a/src/kpoint.c
+++ b/src/kpoint.c
@@ -1,152 +1,244 @@
-/* kpoint.c */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#include <stdio.h>
#include <stdlib.h>
#include "mathfunc.h"
-#include "symmetry.h"
#include "kpoint.h"
+#include "kgrid.h"
-#include "debug.h"
-
-/* #define GRID_ORDER_XYZ */
-/* The addressing order of mesh grid is defined as running left */
-/* element first. But when GRID_ORDER_XYZ is defined, it is changed to right */
-/* element first. */
-
-static PointSymmetry get_point_group_reciprocal(const MatINT * rotations,
- const int is_time_reversal);
-static PointSymmetry
-get_point_group_reciprocal_with_q(SPGCONST PointSymmetry * pointgroup,
- const double symprec,
- const int num_q,
- SPGCONST double qpoints[][3]);
-static int get_ir_kpoints(int map[],
- SPGCONST double kpoints[][3],
- const int num_kpoint,
- SPGCONST PointSymmetry * point_symmetry,
- const double symprec);
-static int get_ir_reciprocal_mesh(int grid_point[][3],
+#ifdef KPTWARNING
+#include <stdio.h>
+#define warning_print(...) fprintf(stderr,__VA_ARGS__)
+#else
+#define warning_print(...)
+#endif
+
+#define KPT_NUM_BZ_SEARCH_SPACE 125
+
+static int bz_search_space[KPT_NUM_BZ_SEARCH_SPACE][3] = {
+ { 0, 0, 0},
+ { 0, 0, 1},
+ { 0, 0, 2},
+ { 0, 0, -2},
+ { 0, 0, -1},
+ { 0, 1, 0},
+ { 0, 1, 1},
+ { 0, 1, 2},
+ { 0, 1, -2},
+ { 0, 1, -1},
+ { 0, 2, 0},
+ { 0, 2, 1},
+ { 0, 2, 2},
+ { 0, 2, -2},
+ { 0, 2, -1},
+ { 0, -2, 0},
+ { 0, -2, 1},
+ { 0, -2, 2},
+ { 0, -2, -2},
+ { 0, -2, -1},
+ { 0, -1, 0},
+ { 0, -1, 1},
+ { 0, -1, 2},
+ { 0, -1, -2},
+ { 0, -1, -1},
+ { 1, 0, 0},
+ { 1, 0, 1},
+ { 1, 0, 2},
+ { 1, 0, -2},
+ { 1, 0, -1},
+ { 1, 1, 0},
+ { 1, 1, 1},
+ { 1, 1, 2},
+ { 1, 1, -2},
+ { 1, 1, -1},
+ { 1, 2, 0},
+ { 1, 2, 1},
+ { 1, 2, 2},
+ { 1, 2, -2},
+ { 1, 2, -1},
+ { 1, -2, 0},
+ { 1, -2, 1},
+ { 1, -2, 2},
+ { 1, -2, -2},
+ { 1, -2, -1},
+ { 1, -1, 0},
+ { 1, -1, 1},
+ { 1, -1, 2},
+ { 1, -1, -2},
+ { 1, -1, -1},
+ { 2, 0, 0},
+ { 2, 0, 1},
+ { 2, 0, 2},
+ { 2, 0, -2},
+ { 2, 0, -1},
+ { 2, 1, 0},
+ { 2, 1, 1},
+ { 2, 1, 2},
+ { 2, 1, -2},
+ { 2, 1, -1},
+ { 2, 2, 0},
+ { 2, 2, 1},
+ { 2, 2, 2},
+ { 2, 2, -2},
+ { 2, 2, -1},
+ { 2, -2, 0},
+ { 2, -2, 1},
+ { 2, -2, 2},
+ { 2, -2, -2},
+ { 2, -2, -1},
+ { 2, -1, 0},
+ { 2, -1, 1},
+ { 2, -1, 2},
+ { 2, -1, -2},
+ { 2, -1, -1},
+ {-2, 0, 0},
+ {-2, 0, 1},
+ {-2, 0, 2},
+ {-2, 0, -2},
+ {-2, 0, -1},
+ {-2, 1, 0},
+ {-2, 1, 1},
+ {-2, 1, 2},
+ {-2, 1, -2},
+ {-2, 1, -1},
+ {-2, 2, 0},
+ {-2, 2, 1},
+ {-2, 2, 2},
+ {-2, 2, -2},
+ {-2, 2, -1},
+ {-2, -2, 0},
+ {-2, -2, 1},
+ {-2, -2, 2},
+ {-2, -2, -2},
+ {-2, -2, -1},
+ {-2, -1, 0},
+ {-2, -1, 1},
+ {-2, -1, 2},
+ {-2, -1, -2},
+ {-2, -1, -1},
+ {-1, 0, 0},
+ {-1, 0, 1},
+ {-1, 0, 2},
+ {-1, 0, -2},
+ {-1, 0, -1},
+ {-1, 1, 0},
+ {-1, 1, 1},
+ {-1, 1, 2},
+ {-1, 1, -2},
+ {-1, 1, -1},
+ {-1, 2, 0},
+ {-1, 2, 1},
+ {-1, 2, 2},
+ {-1, 2, -2},
+ {-1, 2, -1},
+ {-1, -2, 0},
+ {-1, -2, 1},
+ {-1, -2, 2},
+ {-1, -2, -2},
+ {-1, -2, -1},
+ {-1, -1, 0},
+ {-1, -1, 1},
+ {-1, -1, 2},
+ {-1, -1, -2},
+ {-1, -1, -1}
+};
+
+static MatINT *get_point_group_reciprocal(const MatINT * rotations,
+ const int is_time_reversal);
+static MatINT *get_point_group_reciprocal_with_q(const MatINT * rot_reciprocal,
+ const double symprec,
+ const int num_q,
+ SPGCONST double qpoints[][3]);
+static int get_ir_reciprocal_mesh(int grid_address[][3],
int map[],
const int mesh[3],
const int is_shift[3],
- SPGCONST PointSymmetry * point_symmetry);
-static Triplets * get_ir_triplets(const int mesh[3],
- const int is_time_reversal,
- const MatINT * rotations);
-static int get_ir_triplets_at_q(int weights[],
- int grid_points[][3],
- int third_q[],
- const int grid_point,
- const int mesh[3],
- PointSymmetry * pointgroup);
-static int extract_ir_triplets_with_q(int triplets_with_q[][3],
- int weight_with_q[],
- const int fixed_grid_number,
- SPGCONST int triplets[][3],
- const int num_triplets,
- const int mesh[3],
- SPGCONST PointSymmetry * point_symmetry);
-static void get_grid_mapping_table(int **map_sym,
- SPGCONST PointSymmetry * point_symmetry,
- const int mesh[3],
- const int is_shift[3]);
-static void address_to_grid(int grid_double[3],
- const int address,
- const int mesh[3],
- const int is_shift[3]);
-static void get_grid_points(int grid_point[3],
- const int grid[3],
- const int mesh[3]);
-static void get_vector_modulo(int v[3],
- const int m[3]);
-static int grid_to_address(const int grid[3],
- const int mesh[3],
- const int is_shift[3]);
-static void free_array2D_int(int **array,
- const int num_row);
-static int ** allocate_array2d_int(const int num_row,
- const int num_column);
-static Triplets * allocate_triplets(const int num_triplets, const int mesh[3]);
-
-
-
-
-int kpt_get_irreducible_kpoints(int map[],
- SPGCONST double kpoints[][3],
- const int num_kpoint,
- const Symmetry * symmetry,
- const int is_time_reversal,
- const double symprec)
-{
- int i;
- PointSymmetry point_symmetry;
- MatINT *rotations;
-
- rotations = mat_alloc_MatINT(symmetry->size);
- for (i = 0; i < symmetry->size; i++) {
- mat_copy_matrix_i3(rotations->mat[i], symmetry->rot[i]);
- }
-
- point_symmetry = get_point_group_reciprocal(rotations,
- is_time_reversal);
- mat_free_MatINT(rotations);
-
- return get_ir_kpoints(map, kpoints, num_kpoint, &point_symmetry, symprec);
-}
-
-/* grid_point (e.g. 4x4x4 mesh) */
-/* [[ 0 0 0] */
-/* [ 1 0 0] */
-/* [ 2 0 0] */
-/* [-1 0 0] */
-/* [ 0 1 0] */
-/* [ 1 1 0] */
-/* [ 2 1 0] */
-/* [-1 1 0] */
-/* .... ] */
-/* */
-/* Each value of 'map' correspnds to the index of grid_point. */
-int kpt_get_irreducible_reciprocal_mesh(int grid_points[][3],
+ const MatINT * rot_reciprocal);
+static int get_ir_reciprocal_mesh_normal(int grid_address[][3],
+ int ir_mapping_table[],
+ const int mesh[3],
+ const int is_shift[3],
+ const MatINT *rot_reciprocal);
+static int get_ir_reciprocal_mesh_distortion(int grid_address[][3],
+ int ir_mapping_table[],
+ const int mesh[3],
+ const int is_shift[3],
+ const MatINT *rot_reciprocal);
+static int get_num_ir(int ir_mapping_table[], const int mesh[3]);
+static int relocate_BZ_grid_address(int bz_grid_address[][3],
+ int bz_map[],
+ SPGCONST int grid_address[][3],
+ const int mesh[3],
+ SPGCONST double rec_lattice[3][3],
+ const int is_shift[3]);
+static double get_tolerance_for_BZ_reduction(SPGCONST double rec_lattice[3][3],
+ const int mesh[3]);
+static int check_mesh_symmetry(const int mesh[3],
+ const int is_shift[3],
+ const MatINT *rot_reciprocal);
+
+/* grid_address (e.g. 4x4x4 mesh, unless GRID_ORDER_XYZ is defined) */
+/* [[ 0 0 0] */
+/* [ 1 0 0] */
+/* [ 2 0 0] */
+/* [-1 0 0] */
+/* [ 0 1 0] */
+/* [ 1 1 0] */
+/* [ 2 1 0] */
+/* [-1 1 0] */
+/* .... ] */
+/* */
+/* Each value of 'map' correspnds to the index of grid_point. */
+int kpt_get_irreducible_reciprocal_mesh(int grid_address[][3],
int map[],
const int mesh[3],
const int is_shift[3],
- const int is_time_reversal,
- const Symmetry * symmetry)
+ const MatINT *rot_reciprocal)
{
- int i;
- PointSymmetry point_symmetry;
- MatINT *rotations;
-
- rotations = mat_alloc_MatINT(symmetry->size);
- for (i = 0; i < symmetry->size; i++) {
- mat_copy_matrix_i3(rotations->mat[i], symmetry->rot[i]);
- }
-
- point_symmetry = get_point_group_reciprocal(rotations,
- is_time_reversal);
- mat_free_MatINT(rotations);
+ int num_ir;
- return get_ir_reciprocal_mesh(grid_points,
- map,
- mesh,
- is_shift,
- &point_symmetry);
-}
-
-void kpt_free_triplets(Triplets * t)
-{
- free(t->triplets);
- t->triplets = NULL;
- free(t->weights);
- t->weights = NULL;
- free(t->mesh_points);
- t->mesh_points = NULL;
- free(t);
- t = NULL;
+ num_ir = get_ir_reciprocal_mesh(grid_address,
+ map,
+ mesh,
+ is_shift,
+ rot_reciprocal);
+
+ return num_ir;
}
-int kpt_get_stabilized_reciprocal_mesh(int grid_points[][3],
+int kpt_get_stabilized_reciprocal_mesh(int grid_address[][3],
int map[],
const int mesh[3],
const int is_shift[3],
@@ -155,95 +247,145 @@ int kpt_get_stabilized_reciprocal_mesh(int grid_points[][3],
const int num_q,
SPGCONST double qpoints[][3])
{
- PointSymmetry pointgroup, pointgroup_q;
+ int num_ir;
+ MatINT *rot_reciprocal, *rot_reciprocal_q;
double tolerance;
+
+ rot_reciprocal = NULL;
+ rot_reciprocal_q = NULL;
- pointgroup = get_point_group_reciprocal(rotations,
- is_time_reversal);
-
- tolerance = 0.1 / (mesh[0] + mesh[1] + mesh[2]);
- pointgroup_q = get_point_group_reciprocal_with_q(&pointgroup,
- tolerance,
- num_q,
- qpoints);
-
- return get_ir_reciprocal_mesh(grid_points,
- map,
- mesh,
- is_shift,
- &pointgroup_q);
+ rot_reciprocal = get_point_group_reciprocal(rotations, is_time_reversal);
+ tolerance = 0.01 / (mesh[0] + mesh[1] + mesh[2]);
+ rot_reciprocal_q = get_point_group_reciprocal_with_q(rot_reciprocal,
+ tolerance,
+ num_q,
+ qpoints);
+
+ num_ir = get_ir_reciprocal_mesh(grid_address,
+ map,
+ mesh,
+ is_shift,
+ rot_reciprocal_q);
+
+ mat_free_MatINT(rot_reciprocal_q);
+ rot_reciprocal_q = NULL;
+ mat_free_MatINT(rot_reciprocal);
+ rot_reciprocal = NULL;
+ return num_ir;
+}
+
+void kpt_get_grid_points_by_rotations(int rot_grid_points[],
+ const int address_orig[3],
+ const MatINT * rot_reciprocal,
+ const int mesh[3],
+ const int is_shift[3])
+{
+ int i;
+ int address_double_orig[3], address_double[3];
+
+ for (i = 0; i < 3; i++) {
+ address_double_orig[i] = address_orig[i] * 2 + is_shift[i];
+ }
+ for (i = 0; i < rot_reciprocal->size; i++) {
+ mat_multiply_matrix_vector_i3(address_double,
+ rot_reciprocal->mat[i],
+ address_double_orig);
+ rot_grid_points[i] = kgd_get_grid_point_double_mesh(address_double, mesh);
+ }
}
-Triplets * kpt_get_triplets_reciprocal_mesh(const int mesh[3],
- const int is_time_reversal,
- const MatINT * rotations)
+void kpt_get_BZ_grid_points_by_rotations(int rot_grid_points[],
+ const int address_orig[3],
+ const MatINT * rot_reciprocal,
+ const int mesh[3],
+ const int is_shift[3],
+ const int bz_map[])
{
- return get_ir_triplets(mesh,
- is_time_reversal,
- rotations);
+ int i;
+ int address_double_orig[3], address_double[3], bzmesh[3];
+
+ for (i = 0; i < 3; i++) {
+ bzmesh[i] = mesh[i] * 2;
+ address_double_orig[i] = address_orig[i] * 2 + is_shift[i];
+ }
+ for (i = 0; i < rot_reciprocal->size; i++) {
+ mat_multiply_matrix_vector_i3(address_double,
+ rot_reciprocal->mat[i],
+ address_double_orig);
+ rot_grid_points[i] =
+ bz_map[kgd_get_grid_point_double_mesh(address_double, bzmesh)];
+ }
}
-int kpt_get_ir_triplets_at_q(int weights[],
- int grid_points[][3],
- int third_q[],
- const int grid_point,
- const int mesh[3],
- const int is_time_reversal,
- const MatINT * rotations)
+int kpt_relocate_BZ_grid_address(int bz_grid_address[][3],
+ int bz_map[],
+ SPGCONST int grid_address[][3],
+ const int mesh[3],
+ SPGCONST double rec_lattice[3][3],
+ const int is_shift[3])
{
- PointSymmetry pointgroup;
-
- pointgroup = get_point_group_reciprocal(rotations,
- is_time_reversal);
- return get_ir_triplets_at_q(weights,
- grid_points,
- third_q,
- grid_point,
- mesh,
- &pointgroup);
+ return relocate_BZ_grid_address(bz_grid_address,
+ bz_map,
+ grid_address,
+ mesh,
+ rec_lattice,
+ is_shift);
}
-int kpt_extract_triplets_reciprocal_mesh_at_q(int triplets_with_q[][3],
- int weight_with_q[],
- const int fixed_grid_number,
- const int num_triplets,
- SPGCONST int triplets[][3],
- const int mesh[3],
- const int is_time_reversal,
- const MatINT * rotations)
+
+MatINT *kpt_get_point_group_reciprocal(const MatINT * rotations,
+ const int is_time_reversal)
{
- PointSymmetry point_group;
-
- point_group = get_point_group_reciprocal(rotations,
- is_time_reversal);
-
- return extract_ir_triplets_with_q(triplets_with_q,
- weight_with_q,
- fixed_grid_number,
- triplets,
- num_triplets,
- mesh,
- &point_group);
+ return get_point_group_reciprocal(rotations, is_time_reversal);
}
-/* qpoints are used to find stabilizers (operations). */
-/* num_q is the number of the qpoints. */
-static PointSymmetry get_point_group_reciprocal(const MatINT * rotations,
- const int is_time_reversal)
+MatINT *kpt_get_point_group_reciprocal_with_q(const MatINT * rot_reciprocal,
+ const double symprec,
+ const int num_q,
+ SPGCONST double qpoints[][3])
{
- int i, j, num_pt = 0;
- MatINT *rot_reciprocal;
- PointSymmetry point_symmetry;
+ return get_point_group_reciprocal_with_q(rot_reciprocal,
+ symprec,
+ num_q,
+ qpoints);
+}
+
+/* Return NULL if failed */
+static MatINT *get_point_group_reciprocal(const MatINT * rotations,
+ const int is_time_reversal)
+{
+ int i, j, num_rot;
+ MatINT *rot_reciprocal, *rot_return;
+ int *unique_rot;
SPGCONST int inversion[3][3] = {
{-1, 0, 0 },
{ 0,-1, 0 },
{ 0, 0,-1 }
};
+
+ rot_reciprocal = NULL;
+ rot_return = NULL;
+ unique_rot = NULL;
if (is_time_reversal) {
- rot_reciprocal = mat_alloc_MatINT(rotations->size * 2);
+ if ((rot_reciprocal = mat_alloc_MatINT(rotations->size * 2)) == NULL) {
+ return NULL;
+ }
} else {
- rot_reciprocal = mat_alloc_MatINT(rotations->size);
+ if ((rot_reciprocal = mat_alloc_MatINT(rotations->size)) == NULL) {
+ return NULL;
+ }
+ }
+
+ if ((unique_rot = (int*)malloc(sizeof(int) * rot_reciprocal->size)) == NULL) {
+ warning_print("spglib: Memory of unique_rot could not be allocated.");
+ mat_free_MatINT(rot_reciprocal);
+ rot_reciprocal = NULL;
+ return NULL;
+ }
+
+ for (i = 0; i < rot_reciprocal->size; i++) {
+ unique_rot[i] = -1;
}
for (i = 0; i < rotations->size; i++) {
@@ -256,44 +398,63 @@ static PointSymmetry get_point_group_reciprocal(const MatINT * rotations,
}
}
-
+ num_rot = 0;
for (i = 0; i < rot_reciprocal->size; i++) {
- for (j = 0; j < num_pt; j++) {
- if (mat_check_identity_matrix_i3(point_symmetry.rot[j],
+ for (j = 0; j < num_rot; j++) {
+ if (mat_check_identity_matrix_i3(rot_reciprocal->mat[unique_rot[j]],
rot_reciprocal->mat[i])) {
goto escape;
}
}
-
- mat_copy_matrix_i3(point_symmetry.rot[num_pt],
- rot_reciprocal->mat[i]);
- num_pt++;
+ unique_rot[num_rot] = i;
+ num_rot++;
escape:
;
}
- point_symmetry.size = num_pt;
+ if ((rot_return = mat_alloc_MatINT(num_rot)) != NULL) {
+ for (i = 0; i < num_rot; i++) {
+ mat_copy_matrix_i3(rot_return->mat[i], rot_reciprocal->mat[unique_rot[i]]);
+ }
+ }
+ free(unique_rot);
+ unique_rot = NULL;
mat_free_MatINT(rot_reciprocal);
+ rot_reciprocal = NULL;
- return point_symmetry;
+ return rot_return;
}
-static PointSymmetry
-get_point_group_reciprocal_with_q(SPGCONST PointSymmetry * pointgroup,
- const double symprec,
- const int num_q,
- SPGCONST double qpoints[][3])
+/* Return NULL if failed */
+static MatINT *get_point_group_reciprocal_with_q(const MatINT * rot_reciprocal,
+ const double symprec,
+ const int num_q,
+ SPGCONST double qpoints[][3])
{
- int i, j, k, l, is_all_ok=0, num_ptq = 0;
+ int i, j, k, l, is_all_ok, num_rot;
+ int *ir_rot;
double q_rot[3], diff[3];
- PointSymmetry pointgroup_q;
+ MatINT * rot_reciprocal_q;
+
+ ir_rot = NULL;
+ rot_reciprocal_q = NULL;
+ is_all_ok = 0;
+ num_rot = 0;
+
+ if ((ir_rot = (int*)malloc(sizeof(int) * rot_reciprocal->size)) == NULL) {
+ warning_print("spglib: Memory of ir_rot could not be allocated.");
+ return NULL;
+ }
- for (i = 0; i < pointgroup->size; i++) {
+ for (i = 0; i < rot_reciprocal->size; i++) {
+ ir_rot[i] = -1;
+ }
+ for (i = 0; i < rot_reciprocal->size; i++) {
for (j = 0; j < num_q; j++) {
is_all_ok = 0;
mat_multiply_matrix_vector_id3(q_rot,
- pointgroup->rot[i],
+ rot_reciprocal->mat[i],
qpoints[j]);
for (k = 0; k < num_q; k++) {
@@ -316,771 +477,287 @@ get_point_group_reciprocal_with_q(SPGCONST PointSymmetry * pointgroup,
}
if (is_all_ok) {
- mat_copy_matrix_i3(pointgroup_q.rot[num_ptq], pointgroup->rot[i]);
- num_ptq++;
+ ir_rot[num_rot] = i;
+ num_rot++;
}
}
- pointgroup_q.size = num_ptq;
-
- return pointgroup_q;
-}
-
-
-static int get_ir_kpoints(int map[],
- SPGCONST double kpoints[][3],
- const int num_kpoint,
- SPGCONST PointSymmetry * point_symmetry,
- const double symprec)
-{
- int i, j, k, l, num_ir_kpoint = 0, is_found;
- int *ir_map;
- double kpt_rot[3], diff[3];
-
- ir_map = (int*)malloc(num_kpoint*sizeof(int));
- for (i = 0; i < num_kpoint; i++) {
-
- map[i] = i;
-
- is_found = 1;
-
- for (j = 0; j < point_symmetry->size; j++) {
- mat_multiply_matrix_vector_id3(kpt_rot, point_symmetry->rot[j], kpoints[i]);
-
- for (k = 0; k < 3; k++) {
- diff[k] = kpt_rot[k] - kpoints[i][k];
- diff[k] = diff[k] - mat_Nint(diff[k]);
- }
-
- if (mat_Dabs(diff[0]) < symprec &&
- mat_Dabs(diff[1]) < symprec &&
- mat_Dabs(diff[2]) < symprec) {
- continue;
- }
-
- for (k = 0; k < num_ir_kpoint; k++) {
- mat_multiply_matrix_vector_id3(kpt_rot, point_symmetry->rot[j], kpoints[i]);
-
- for (l = 0; l < 3; l++) {
- diff[l] = kpt_rot[l] - kpoints[ir_map[k]][l];
- diff[l] = diff[l] - mat_Nint(diff[l]);
- }
-
- if (mat_Dabs(diff[0]) < symprec &&
- mat_Dabs(diff[1]) < symprec &&
- mat_Dabs(diff[2]) < symprec) {
- is_found = 0;
- map[i] = ir_map[k];
- break;
- }
- }
-
- if (! is_found)
- break;
- }
-
- if (is_found) {
- ir_map[num_ir_kpoint] = i;
- num_ir_kpoint++;
+ if ((rot_reciprocal_q = mat_alloc_MatINT(num_rot)) != NULL) {
+ for (i = 0; i < num_rot; i++) {
+ mat_copy_matrix_i3(rot_reciprocal_q->mat[i],
+ rot_reciprocal->mat[ir_rot[i]]);
}
}
- free(ir_map);
- ir_map = NULL;
+ free(ir_rot);
+ ir_rot = NULL;
- return num_ir_kpoint;
+ return rot_reciprocal_q;
}
-static int get_ir_reciprocal_mesh(int grid[][3],
- int map[],
+static int get_ir_reciprocal_mesh(int grid_address[][3],
+ int ir_mapping_table[],
const int mesh[3],
const int is_shift[3],
- SPGCONST PointSymmetry * point_symmetry)
+ const MatINT *rot_reciprocal)
+{
+ if (check_mesh_symmetry(mesh, is_shift, rot_reciprocal)) {
+ return get_ir_reciprocal_mesh_normal(grid_address,
+ ir_mapping_table,
+ mesh,
+ is_shift,
+ rot_reciprocal);
+ } else {
+ return get_ir_reciprocal_mesh_distortion(grid_address,
+ ir_mapping_table,
+ mesh,
+ is_shift,
+ rot_reciprocal);
+ }
+}
+
+static int get_ir_reciprocal_mesh_normal(int grid_address[][3],
+ int ir_mapping_table[],
+ const int mesh[3],
+ const int is_shift[3],
+ const MatINT *rot_reciprocal)
{
/* In the following loop, mesh is doubled. */
/* Even and odd mesh numbers correspond to */
- /* is_shift[i] = 0 and 1, respectively. */
+ /* is_shift[i] are 0 or 1, respectively. */
/* is_shift = [0,0,0] gives Gamma center mesh. */
/* grid: reducible grid points */
- /* map: the mapping from each point to ir-point. */
- int i, j, k, l, address, address_rot, num_ir = 0;
- int grid_double[3], grid_rot[3], mesh_double[3];
+ /* ir_mapping_table: the mapping from each point to ir-point. */
- for (i = 0; i < 3; i++) {
- mesh_double[i] = mesh[i] * 2;
- }
-
- /* "-1" means the element is not touched yet. */
- for (i = 0; i < mesh[0] * mesh[1] * mesh[2]; i++) {
- map[i] = -1;
- }
+ int i, j, grid_point_rot;
+ int address_double[3], address_double_rot[3];
-#ifndef GRID_ORDER_XYZ
- for (i = 0; i < mesh_double[2]; i++) {
- if ((is_shift[2] && i % 2 == 0) ||
- (is_shift[2] == 0 && i % 2 != 0))
- continue;
+ kgd_get_all_grid_addresses(grid_address, mesh);
- for (j = 0; j < mesh_double[1]; j++) {
- if ((is_shift[1] && j % 2 == 0) ||
- (is_shift[1] == 0 && j % 2 != 0))
- continue;
-
- for (k = 0; k < mesh_double[0]; k++) {
- if ((is_shift[0] && k % 2 == 0) ||
- (is_shift[0] == 0 && k % 2 != 0))
- continue;
-
- grid_double[0] = k;
- grid_double[1] = j;
- grid_double[2] = i;
+#pragma omp parallel for private(j, grid_point_rot, address_double, address_double_rot)
+ for (i = 0; i < mesh[0] * mesh[1] * mesh[2]; i++) {
+ kgd_get_grid_address_double_mesh(address_double,
+ grid_address[i],
+ mesh,
+ is_shift);
+ ir_mapping_table[i] = i;
+ for (j = 0; j < rot_reciprocal->size; j++) {
+ mat_multiply_matrix_vector_i3(address_double_rot,
+ rot_reciprocal->mat[j],
+ address_double);
+ grid_point_rot = kgd_get_grid_point_double_mesh(address_double_rot, mesh);
+ if (grid_point_rot < ir_mapping_table[i]) {
+#ifdef _OPENMP
+ ir_mapping_table[i] = grid_point_rot;
#else
- for (i = 0; i < mesh_double[0]; i++) {
- if ((is_shift[0] && i % 2 == 0) ||
- (is_shift[0] == 0 && i % 2 != 0))
- continue;
-
- for (j = 0; j < mesh_double[1]; j++) {
- if ((is_shift[1] && j % 2 == 0) ||
- (is_shift[1] == 0 && j % 2 != 0))
- continue;
-
- for (k = 0; k < mesh_double[2]; k++) {
- if ((is_shift[2] && k % 2 == 0) ||
- (is_shift[2] == 0 && k % 2 != 0))
- continue;
-
- grid_double[0] = i;
- grid_double[1] = j;
- grid_double[2] = k;
-#endif
-
- address = grid_to_address(grid_double, mesh, is_shift);
- get_grid_points(grid[address], grid_double, mesh);
-
- for (l = 0; l < point_symmetry->size; l++) {
-
- mat_multiply_matrix_vector_i3(grid_rot, point_symmetry->rot[l], grid_double);
- get_vector_modulo(grid_rot, mesh_double);
- address_rot = grid_to_address(grid_rot, mesh, is_shift);
-
- if (address_rot > -1) { /* Invalid if even --> odd or odd --> even */
- if (map[address_rot] > -1) {
- map[address] = map[address_rot];
- break;
- }
- }
- }
-
- /* Set itself to the map when equivalent point */
- /* with smaller numbering could not be found. */
- if (map[address] == -1) {
- map[address] = address;
- num_ir++;
- }
+ ir_mapping_table[i] = ir_mapping_table[grid_point_rot];
+ break;
+#endif
}
}
}
- return num_ir;
+ return get_num_ir(ir_mapping_table, mesh);
}
-
-/* Unique q-point triplets that conserve the momentum, */
-/* q+q'+q''=G, are obtained. */
-/* */
-/* The first q-point is selected among the ir-q-points. */
-/* The second q-point is selected among the ir-q-points */
-/* constrained by the first q-point (stabilizer) */
-/* The third q-point is searched through the all grid */
-/* points and is checked if it satisfies q+q'+q''=G, */
-/* here q, q', and q'' can be exchanged one another. */
-static Triplets * get_ir_triplets(const int mesh[3],
- const int is_time_reversal,
- const MatINT * rotations)
+static int get_ir_reciprocal_mesh_distortion(int grid_address[][3],
+ int ir_mapping_table[],
+ const int mesh[3],
+ const int is_shift[3],
+ const MatINT *rot_reciprocal)
{
- int i, j, k, l, num_ir, num_grid, weight, weight_q, count, q_2;
- int num_triplets, num_unique_q;
- int mesh_double[3], address[3], is_shift[3];
- int grid_double[3][3];
- int (*grid)[3], (*grid_local)[3];
- int *map, *map_q, *unique_q;
- int **map_sym = NULL;
- int **weight_counts;
- double tolerance;
- double stabilizer_q[1][3];
- PointSymmetry point_symmetry, point_symmetry_q;
- Triplets * tps;
-
- const int index_exchange[6][3] = {{ 0, 1, 2 },
- { 2, 0, 1 },
- { 1, 2, 0 },
- { 2, 1, 0 },
- { 0, 2, 1 },
- { 1, 0, 2 }};
-
- tolerance = 0.1 / (mesh[0] + mesh[1] + mesh[2]);
- num_grid = mesh[0] * mesh[1] * mesh[2];
- map = (int*) malloc(num_grid * sizeof(int));
- unique_q = (int*) malloc(num_grid * sizeof(int));
- grid = (int (*)[3]) malloc(sizeof(int[3]) * num_grid);
-
- point_symmetry = get_point_group_reciprocal(rotations,
- is_time_reversal);
-
- /* Only consider the gamma-point */
- for (i = 0; i < 3; i++) {
- is_shift[i] = 0;
- }
-
- num_ir = get_ir_reciprocal_mesh(grid,
- map,
- mesh,
- is_shift,
- &point_symmetry);
+ int i, j, k, grid_point_rot, indivisible;
+ int address_double[3], address_double_rot[3], divisor[3];
- weight_counts = allocate_array2d_int(num_ir, num_grid);
- for (i = 0; i < num_ir; i++) {
- for (j = 0; j < num_grid; j++) {
- weight_counts[i][j] = 0;
- }
- }
+ kgd_get_all_grid_addresses(grid_address, mesh);
for (i = 0; i < 3; i++) {
- mesh_double[i] = mesh[i] * 2;
- }
-
- /* Prepare triplet mapping table to enhance speed of query */
- /* 'unique_q' numbering is prepared for saving memory space */
- num_unique_q = 0;
- for (i = 0; i < num_grid; i++) {
- if (i == map[i]) {
- unique_q[i] = num_unique_q;
- num_unique_q++;
- }
- else {
- unique_q[i] = unique_q[map[i]];
- }
+ divisor[i] = mesh[(i + 1) % 3] * mesh[(i + 2) % 3];
}
- /* Prepare grid point mapping table */
- map_sym = allocate_array2d_int(point_symmetry.size, num_grid);
- get_grid_mapping_table(map_sym,
- &point_symmetry,
- mesh,
- is_shift);
-
- /* Search triplets without considersing combination */
-/* #pragma omp parallel for private(j, k, l, grid_double, point_symmetry_q, stabilizer_q, weight_q, grid_local, address, map_q, weight ) */
- for (i = 0; i < num_grid; i++) {
- if (! (i == map[i])) {
- continue;
- }
-
- weight = 0;
- for (j = 0; j < num_grid; j++) {
- if (i == map[j]) {
- weight++;
- }
- }
-
- /* Search irreducible q-points (map_q) with a stabilizer */
- address_to_grid(grid_double[0], i, mesh, is_shift); /* q */
+#pragma omp parallel for private(j, k, grid_point_rot, address_double, address_double_rot)
+ for (i = 0; i < mesh[0] * mesh[1] * mesh[2]; i++) {
+ kgd_get_grid_address_double_mesh(address_double,
+ grid_address[i],
+ mesh,
+ is_shift);
for (j = 0; j < 3; j++) {
- stabilizer_q[0][j] = (double)grid_double[0][j] / mesh_double[j];
- }
-
- point_symmetry_q = get_point_group_reciprocal_with_q(&point_symmetry,
- tolerance,
- 1,
- stabilizer_q);
-
- grid_local = (int (*)[3]) malloc(sizeof(int[3]) * num_grid);
- map_q = (int*) malloc(num_grid * sizeof(int));
- get_ir_reciprocal_mesh(grid_local,
- map_q,
- mesh,
- is_shift,
- &point_symmetry_q);
- free(grid_local);
- grid_local = NULL;
-
- for (j = 0; j < num_grid; j++) {
- if (! (j == map_q[j])) {
- continue;
- }
-
- weight_q = 0;
- for (k = 0; k < num_grid; k++) {
- if (j == map_q[k]) {
- weight_q++;
- }
- }
-
- address_to_grid(grid_double[1], j, mesh, is_shift); /* q' */
-
- for (k = 0; k < 3; k++) { /* q'' */
- grid_double[2][k] = - grid_double[0][k] - grid_double[1][k];
- }
- get_vector_modulo(grid_double[2], mesh_double);
- q_2 = grid_to_address(grid_double[2], mesh, is_shift);
-
- /* Look for irreducible triplets exchanging three q-points */
- /* and equivalent by symmetry rotations */
- for (k = 0; k < point_symmetry.size; k++) {
- /* Index exchange */
- for (l = 0; l < 6; l++) {
- /* Rotated grid point addresses with index exchange */
- address[index_exchange[l][0]] = map_sym[k][i];
- address[index_exchange[l][1]] = map_sym[k][j];
- address[index_exchange[l][2]] = map_sym[k][q_2];
-
- /* address[0] has to be one of ir-q-points. */
- if (address[0] == map[address[0]]) {
- /* Is the set of ddress[0] and address[1] already found? */
- if (weight_counts[unique_q[address[0]]][address[1]]) {
- weight_counts[unique_q[address[0]]][address[1]] +=
- weight * weight_q;
- goto escape;
- }
- }
- }
- }
-
- /* Not found, then this is an irreducible triplet. */
- weight_counts[unique_q[i]][j] = weight * weight_q;
-
- escape:
- ;
+ address_double[j] *= divisor[j];
}
-
- free(map_q);
- map_q = NULL;
-
- }
-
- num_triplets = 0;
- for (i = 0; i < num_grid; i++) {
- if (! (i == map[i])) {
- continue;
- }
- for (j = 0; j < num_grid; j++) {
- if (weight_counts[unique_q[i]][j]) {
- num_triplets++;
+ ir_mapping_table[i] = i;
+ for (j = 0; j < rot_reciprocal->size; j++) {
+ mat_multiply_matrix_vector_i3(address_double_rot,
+ rot_reciprocal->mat[j],
+ address_double);
+ for (k = 0; k < 3; k++) {
+ indivisible = address_double_rot[k] % divisor[k];
+ if (indivisible) {break;}
+ address_double_rot[k] /= divisor[k];
+ if ((address_double_rot[k] % 2 != 0 && is_shift[k] == 0) ||
+ (address_double_rot[k] % 2 == 0 && is_shift[k] == 1)) {
+ indivisible = 1;
+ break;
+ }
}
- }
- }
-
- tps = allocate_triplets(num_triplets, mesh);
- for (i = 0; i < num_grid; i++) {
- for (j = 0; j < 3; j++) {
- tps->mesh_points[i][j] = grid[i][j];
- }
- }
-
- count = 0;
- for (i = 0; i < num_grid; i++) {
- if (! (i == map[i])) {
- continue;
- }
- for (j = 0; j < num_grid; j++) {
- if (weight_counts[unique_q[i]][j] ) {
- tps->triplets[count][0] = i;
- tps->triplets[count][1] = j;
- address_to_grid(grid_double[0], i, mesh, is_shift); /* q */
- address_to_grid(grid_double[1], j, mesh, is_shift); /* q' */
- for (l = 0; l < 3; l++) { /* q'' */
- grid_double[2][l] = - grid_double[0][l] - grid_double[1][l];
- }
- get_vector_modulo(grid_double[2], mesh_double);
- tps->triplets[count][2] = grid_to_address(grid_double[2], mesh, is_shift);
- tps->weights[count] = weight_counts[unique_q[i]][j];
- count++;
+ if (indivisible) {continue;}
+ grid_point_rot = kgd_get_grid_point_double_mesh(address_double_rot, mesh);
+ if (grid_point_rot < ir_mapping_table[i]) {
+#ifdef _OPENMP
+ ir_mapping_table[i] = grid_point_rot;
+#else
+ ir_mapping_table[i] = ir_mapping_table[grid_point_rot];
+ break;
+#endif
}
}
}
- free_array2D_int(map_sym, point_symmetry.size);
- free_array2D_int(weight_counts, num_ir);
- free(map);
- map = NULL;
- free(unique_q);
- unique_q = NULL;
- free(grid);
- grid = NULL;
-
- return tps;
+ return get_num_ir(ir_mapping_table, mesh);
}
- static int get_ir_triplets_at_q(int weights[],
- int grid_points[][3],
- int third_q[],
- const int grid_point,
- const int mesh[3],
- PointSymmetry * pointgroup)
+static int get_num_ir(int ir_mapping_table[], const int mesh[3])
{
- int i, j, k, num_grid, weight_q, q_2, num_ir;
- int mesh_double[3], address[3], is_shift[3];
- int grid_double[3][3];
- int *map_q;
- double tolerance;
- double stabilizer_q[1][3];
- PointSymmetry pointgroup_q;
+ int i, num_ir;
- tolerance = 0.1 / (mesh[0] + mesh[1] + mesh[2]);
-
- num_grid = mesh[0] * mesh[1] * mesh[2];
-
- for (i = 0; i < 3; i++) {
- /* Only consider the gamma-point */
- is_shift[i] = 0;
- mesh_double[i] = mesh[i] * 2;
- }
-
- /* Search irreducible q-points (map_q) with a stabilizer */
- address_to_grid(grid_double[0], grid_point, mesh, is_shift); /* q */
- for (i = 0; i < 3; i++) {
- stabilizer_q[0][i] = (double)grid_double[0][i] / mesh_double[i];
- }
-
- pointgroup_q = get_point_group_reciprocal_with_q(pointgroup,
- tolerance,
- 1,
- stabilizer_q);
- map_q = (int*) malloc(sizeof(int) * num_grid);
- get_ir_reciprocal_mesh(grid_points,
- map_q,
- mesh,
- is_shift,
- &pointgroup_q);
-
- for (i = 0; i < num_grid; i++) {
- weights[i] = 0;
- third_q[i] = -1;
- }
num_ir = 0;
- for (i = 0; i < num_grid; i++) {
- if (i != map_q[i]) { /* pass only ir-q'-point */
- continue;
- }
-
- weight_q = 0;
- for (j = 0; j < num_grid; j++) {
- if (i == map_q[j]) {
- weight_q++;
- }
- }
-
- address_to_grid(grid_double[1], i, mesh, is_shift); /* q' */
- for (j = 0; j < 3; j++) { /* q'' */
- grid_double[2][j] = - grid_double[0][j] - grid_double[1][j];
- }
- get_vector_modulo(grid_double[2], mesh_double);
- q_2 = grid_to_address(grid_double[2], mesh, is_shift);
- third_q[i] = q_2;
-
- if (weights[map_q[q_2]]) {
- weights[map_q[q_2]] += weight_q;
- } else {
- weights[i] = weight_q;
+#pragma omp parallel for reduction(+:num_ir)
+ for (i = 0; i < mesh[0] * mesh[1] * mesh[2]; i++) {
+ if (ir_mapping_table[i] == i) {
num_ir++;
}
}
- free(map_q);
- map_q = NULL;
+#ifdef _OPENMP
+ for (i = 0; i < mesh[0] * mesh[1] * mesh[2]; i++) {
+ ir_mapping_table[i] = ir_mapping_table[ir_mapping_table[i]];
+ }
+#endif
return num_ir;
}
-static int extract_ir_triplets_with_q(int triplets_with_q[][3],
- int weight_with_q[],
- const int fixed_grid_number,
- SPGCONST int triplets[][3],
- const int num_triplets,
- const int mesh[3],
- SPGCONST PointSymmetry *point_symmetry)
+/* Relocate grid addresses to first Brillouin zone */
+/* bz_grid_address[prod(mesh + 1)][3] */
+/* bz_map[prod(mesh * 2)] */
+static int relocate_BZ_grid_address(int bz_grid_address[][3],
+ int bz_map[],
+ SPGCONST int grid_address[][3],
+ const int mesh[3],
+ SPGCONST double rec_lattice[3][3],
+ const int is_shift[3])
{
- int i, j, k, sym_num, rest_index, num_triplets_with_q;
- int address0, address1, address1_orig, found;
- int is_shift[3];
- int num_grid;
- int **map_sym;
+ double tolerance, min_distance;
+ double q_vector[3], distance[KPT_NUM_BZ_SEARCH_SPACE];
+ int bzmesh[3], bz_address_double[3];
+ int i, j, k, min_index, boundary_num_gp, total_num_gp, bzgp, gp;
- num_grid = mesh[0] * mesh[1] * mesh[2];
- map_sym = allocate_array2d_int(point_symmetry->size, num_grid);
-
- /* Only consider the gamma-point */
+ tolerance = get_tolerance_for_BZ_reduction(rec_lattice, mesh);
for (i = 0; i < 3; i++) {
- is_shift[i] = 0;
+ bzmesh[i] = mesh[i] * 2;
+ }
+ for (i = 0; i < bzmesh[0] * bzmesh[1] * bzmesh[2]; i++) {
+ bz_map[i] = -1;
}
+
+ boundary_num_gp = 0;
+ total_num_gp = mesh[0] * mesh[1] * mesh[2];
- /* Prepare mapping tables */
- get_grid_mapping_table(map_sym,
- point_symmetry,
- mesh,
- is_shift);
-
- num_triplets_with_q = 0;
-
- for (i = 0; i < num_triplets; i++) {
- sym_num = -1;
- for (j = 0; j < point_symmetry->size; j++) {
- address0 = map_sym[j][fixed_grid_number];
- if (triplets[i][0] == address0 ||
- triplets[i][1] == address0 ||
- triplets[i][2] == address0) {
- for (k = 0; k < num_grid; k++) {
- address1 = map_sym[j][k];
- /* Matching indices 0 and 1 */
- if ((triplets[i][0] == address0 && triplets[i][1] == address1) ||
- (triplets[i][1] == address0 && triplets[i][0] == address1)) {
- sym_num = j;
- rest_index = 2;
- address1_orig = k;
- break;
- }
- /* Matching indices 1 and 2 */
- if ((triplets[i][1] == address0 && triplets[i][2] == address1) ||
- (triplets[i][2] == address0 && triplets[i][1] == address1)) {
- sym_num = j;
- rest_index = 0;
- address1_orig = k;
- break;
- }
- /* Matching indices 2 and 0 */
- if ((triplets[i][2] == address0 && triplets[i][0] == address1) ||
- (triplets[i][0] == address0 && triplets[i][2] == address1)) {
- sym_num = j;
- rest_index = 1;
- address1_orig = k;
- break;
- }
- }
- if (sym_num > -1) {
- break;
- }
+ /* Multithreading doesn't work for this loop since gp calculated */
+ /* with boundary_num_gp is unstable to store bz_grid_address. */
+ for (i = 0; i < total_num_gp; i++) {
+ for (j = 0; j < KPT_NUM_BZ_SEARCH_SPACE; j++) {
+ for (k = 0; k < 3; k++) {
+ q_vector[k] =
+ ((grid_address[i][k] + bz_search_space[j][k] * mesh[k]) * 2 +
+ is_shift[k]) / ((double)mesh[k]) / 2;
}
+ mat_multiply_matrix_vector_d3(q_vector, rec_lattice, q_vector);
+ distance[j] = mat_norm_squared_d3(q_vector);
}
-
- /* Found? */
- if (sym_num > -1) {
- for (j = 0; j < num_grid; j++) {
- if (map_sym[sym_num][j] == triplets[i][rest_index]) {
- triplets_with_q[num_triplets_with_q][0] = fixed_grid_number;
- if (j > address1_orig) {
- triplets_with_q[num_triplets_with_q][1] = address1_orig;
- triplets_with_q[num_triplets_with_q][2] = j;
- } else {
- triplets_with_q[num_triplets_with_q][2] = address1_orig;
- triplets_with_q[num_triplets_with_q][1] = j;
- }
- num_triplets_with_q++;
- break;
- }
+ min_distance = distance[0];
+ min_index = 0;
+ for (j = 1; j < KPT_NUM_BZ_SEARCH_SPACE; j++) {
+ if (distance[j] < min_distance) {
+ min_distance = distance[j];
+ min_index = j;
}
}
- }
-
- for (i = 0; i < num_triplets_with_q; i++) {
- weight_with_q[i] = 0;
- }
- for (i = 0; i < num_grid; i++) {
- found = 0;
- for (j = 0; j < num_triplets_with_q; j++) {
- for (k = 0; k < point_symmetry->size; k++) {
-
- if (map_sym[k][fixed_grid_number] == triplets_with_q[j][0]) {
- if (map_sym[k][i] == triplets_with_q[j][1] ||
- map_sym[k][i] == triplets_with_q[j][2]) {
- weight_with_q[j]++;
- found = 1;
- break;
- }
+ for (j = 0; j < KPT_NUM_BZ_SEARCH_SPACE; j++) {
+ if (distance[j] < min_distance + tolerance) {
+ if (j == min_index) {
+ gp = i;
+ } else {
+ gp = boundary_num_gp + total_num_gp;
}
- if (map_sym[k][fixed_grid_number] == triplets_with_q[j][1]) {
- if (map_sym[k][i] == triplets_with_q[j][2] ||
- map_sym[k][i] == triplets_with_q[j][0]) {
- weight_with_q[j]++;
- found = 1;
- break;
- }
+
+ for (k = 0; k < 3; k++) {
+ bz_grid_address[gp][k] =
+ grid_address[i][k] + bz_search_space[j][k] * mesh[k];
+ bz_address_double[k] = bz_grid_address[gp][k] * 2 + is_shift[k];
}
- if (map_sym[k][fixed_grid_number] == triplets_with_q[j][2]) {
- if (map_sym[k][i] == triplets_with_q[j][0] ||
- map_sym[k][i] == triplets_with_q[j][1]) {
- weight_with_q[j]++;
- found = 1;
- break;
- }
+ bzgp = kgd_get_grid_point_double_mesh(bz_address_double, bzmesh);
+ bz_map[bzgp] = gp;
+ if (j != min_index) {
+ boundary_num_gp++;
}
}
- if (found) {
- break;
- }
- }
- if (! found) {
- warning_print("spglib: Unexpected behavior in extract_ir_triplets_with_q ");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
- num_triplets_with_q = 0;
- break;
}
}
- free_array2D_int(map_sym, point_symmetry->size);
- return num_triplets_with_q;
+ return boundary_num_gp + total_num_gp;
}
-static void get_grid_mapping_table(int **map_sym,
- SPGCONST PointSymmetry *point_symmetry,
- const int mesh[3],
- const int is_shift[3])
+static double get_tolerance_for_BZ_reduction(SPGCONST double rec_lattice[3][3],
+ const int mesh[3])
{
int i, j;
- int grid_rot[3], grid_double[3], mesh_double[3];
-
+ double tolerance;
+ double length[3];
+
for (i = 0; i < 3; i++) {
- mesh_double[i] = mesh[i] * 2;
- }
-
- for (i = 0; i < point_symmetry->size; i++) {
- for (j = 0; j < mesh[0]*mesh[1]*mesh[2]; j++) {
- address_to_grid(grid_double, j, mesh, is_shift);
- mat_multiply_matrix_vector_i3(grid_rot,
- point_symmetry->rot[i],
- grid_double);
- get_vector_modulo(grid_rot, mesh_double);
- map_sym[i][j] = grid_to_address(grid_rot, mesh, is_shift);
+ length[i] = 0;
+ for (j = 0; j < 3; j++) {
+ length[i] += rec_lattice[j][i] * rec_lattice[j][i];
}
+ length[i] /= mesh[i] * mesh[i];
}
-}
-
-
-static int grid_to_address(const int grid_double[3],
- const int mesh[3],
- const int is_shift[3])
-{
- int i, grid[3];
-
- for (i = 0; i < 3; i++) {
- if (grid_double[i] % 2 == 0 && (! is_shift[i]) ) {
- grid[i] = grid_double[i] / 2;
- } else {
- if (grid_double[i] % 2 != 0 && is_shift[i]) {
- grid[i] = (grid_double[i] - 1) / 2;
- } else {
- return -1;
- }
+ tolerance = length[0];
+ for (i = 1; i < 3; i++) {
+ if (tolerance < length[i]) {
+ tolerance = length[i];
}
}
-
-#ifndef GRID_ORDER_XYZ
- return grid[2] * mesh[0] * mesh[1] + grid[1] * mesh[0] + grid[0];
-#else
- return grid[0] * mesh[1] * mesh[2] + grid[1] * mesh[2] + grid[2];
-#endif
-}
-
-static void address_to_grid(int grid_double[3],
- const int address,
- const int mesh[3],
- const int is_shift[3])
-{
- int i;
- int grid[3];
-
-#ifndef GRID_ORDER_XYZ
- grid[2] = address / (mesh[0] * mesh[1]);
- grid[1] = (address - grid[2] * mesh[0] * mesh[1]) / mesh[0];
- grid[0] = address % mesh[0];
-#else
- grid[0] = address / (mesh[1] * mesh[2]);
- grid[1] = (address - grid[0] * mesh[1] * mesh[2]) / mesh[2];
- grid[2] = address % mesh[2];
-#endif
-
- for (i = 0; i < 3; i++) {
- grid_double[i] = grid[i] * 2 + is_shift[i];
- }
-}
-
-static void get_grid_points(int grid[3],
- const int grid_double[3],
- const int mesh[3])
-{
- int i;
-
- for (i = 0; i < 3; i++) {
- if (grid_double[i] % 2 == 0) {
- grid[i] = grid_double[i] / 2;
- } else {
- grid[i] = (grid_double[i] - 1) / 2;
- }
-
-#ifndef GRID_BOUNDARY_AS_NEGATIVE
- grid[i] = grid[i] - mesh[i] * (grid[i] > mesh[i] / 2);
-#else
- grid[i] = grid[i] - mesh[i] * (grid[i] >= mesh[i] / 2);
-#endif
- }
-}
-
-static void get_vector_modulo(int v[3],
- const int m[3])
-{
- int i;
-
- for (i = 0; i < 3; i++) {
- v[i] = v[i] % m[i];
-
- if (v[i] < 0)
- v[i] += m[i];
- }
+ tolerance *= 0.01;
+
+ return tolerance;
}
-static void free_array2D_int(int **array,
- const int num_row)
+static int check_mesh_symmetry(const int mesh[3],
+ const int is_shift[3],
+ const MatINT *rot_reciprocal)
{
int i;
- for (i = 0; i < num_row; i++) {
- free(array[i]);
- array[i] = NULL;
- }
- free(array);
- array = NULL;
-}
+ int eq[3];
-static int ** allocate_array2d_int(const int num_row,
- const int num_column)
-{
- int i;
- int **array;
-
- array = (int**) malloc(num_row * sizeof(int*));
- for (i = 0; i < num_row; i++) {
- array[i] = (int*) malloc(num_column * sizeof(int));
- }
- return array;
-}
+ eq[0] = 0; /* a=b */
+ eq[1] = 0; /* b=c */
+ eq[2] = 0; /* c=a */
-static Triplets * allocate_triplets(const int num_triplets, const int mesh[3])
-{
- int i, num_grid;
- Triplets * tps;
-
- num_grid = mesh[0] * mesh[1] * mesh[2];
- tps = (Triplets*) malloc(sizeof(Triplets));
- tps->size = num_triplets;
- tps->triplets = (int (*)[3]) malloc(sizeof(int[3]) * num_triplets);
- tps->weights = (int*) malloc(sizeof(int) * num_triplets);
- tps->mesh_points = (int (*)[3]) malloc(sizeof(int[3]) * num_grid);
- for (i = 0; i < 3; i++) {
- tps->mesh[i] = mesh[i];
- }
-
- return tps;
+ for (i = 0; i < rot_reciprocal->size; i++) {
+ if (rot_reciprocal->mat[i][0][0] == 0 &&
+ rot_reciprocal->mat[i][1][0] == 1 &&
+ rot_reciprocal->mat[i][2][0] == 0) {eq[0] = 1;}
+ if (rot_reciprocal->mat[i][0][0] == 0 &&
+ rot_reciprocal->mat[i][1][0] == 0 &&
+ rot_reciprocal->mat[i][2][0] == 1) {eq[2] = 1;}
+ if (rot_reciprocal->mat[i][0][1] == 0 &&
+ rot_reciprocal->mat[i][1][1] == 0 &&
+ rot_reciprocal->mat[i][2][1] == 1) {eq[1] = 1;}
+ }
+
+ return (((eq[0] && mesh[0] == mesh[1] && is_shift[0] == is_shift[1]) || (!eq[0])) &&
+ ((eq[1] && mesh[1] == mesh[2] && is_shift[1] == is_shift[2]) || (!eq[1])) &&
+ ((eq[2] && mesh[2] == mesh[0] && is_shift[2] == is_shift[0]) || (!eq[2])));
}
-
-
diff --git a/src/kpoint.h b/src/kpoint.h
index 9b81c42..c7bac1b 100644
--- a/src/kpoint.h
+++ b/src/kpoint.h
@@ -1,57 +1,77 @@
-/* kpoints.h */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
-#ifndef __kpoints_H__
-#define __kpoints_H__
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#ifndef __kpoint_H__
+#define __kpoint_H__
-#include "symmetry.h"
#include "mathfunc.h"
-typedef struct {
- int size;
- int (*triplets)[3];
- int *weights;
- int mesh[3];
- int (*mesh_points)[3];
-} Triplets;
-
-int kpt_get_irreducible_kpoints(int map[],
- SPGCONST double kpoints[][3],
- const int num_kpoint,
- const Symmetry * symmetry,
- const int is_time_reversal,
- const double symprec);
-int kpt_get_irreducible_reciprocal_mesh(int grid_points[][3],
+int kpt_get_irreducible_reciprocal_mesh(int grid_address[][3],
int map[],
const int mesh[3],
const int is_shift[3],
- const int is_time_reversal,
- const Symmetry * symmetry);
-int kpt_get_stabilized_reciprocal_mesh(int grid_points[][3],
+ const MatINT *rot_reciprocal);
+int kpt_get_stabilized_reciprocal_mesh(int grid_address[][3],
int map[],
const int mesh[3],
const int is_shift[3],
const int is_time_reversal,
- const MatINT * pointgroup_real,
+ const MatINT * rotations,
const int num_q,
SPGCONST double qpoints[][3]);
-Triplets * kpt_get_triplets_reciprocal_mesh(const int mesh[3],
- const int is_time_reversal,
- const MatINT * pointgroup_real);
-void kpt_free_triplets(Triplets * t);
-int kpt_get_ir_triplets_at_q(int weights[],
- int grid_points[][3],
- int third_q[],
- const int grid_point,
- const int mesh[3],
- const int is_time_reversal,
- const MatINT * rotations);
-int kpt_extract_triplets_reciprocal_mesh_at_q(int triplets_at_q[][3],
- int weight_at_q[],
- const int fixed_grid_number,
- const int num_triplets,
- SPGCONST int triplets[][3],
- const int mesh[3],
- const int is_time_reversal,
- const MatINT * pointgroup_real);
+void kpt_get_grid_points_by_rotations(int rot_grid_points[],
+ const int address_orig[3],
+ const MatINT * rot_reciprocal,
+ const int mesh[3],
+ const int is_shift[3]);
+void kpt_get_BZ_grid_points_by_rotations(int rot_grid_points[],
+ const int address_orig[3],
+ const MatINT * rot_reciprocal,
+ const int mesh[3],
+ const int is_shift[3],
+ const int bz_map[]);
+int kpt_relocate_BZ_grid_address(int bz_grid_address[][3],
+ int bz_map[],
+ SPGCONST int grid_address[][3],
+ const int mesh[3],
+ SPGCONST double rec_lattice[3][3],
+ const int is_shift[3]);
+MatINT *kpt_get_point_group_reciprocal(const MatINT * rotations,
+ const int is_time_reversal);
+MatINT *kpt_get_point_group_reciprocal_with_q(const MatINT * rot_reciprocal,
+ const double symprec,
+ const int num_q,
+ SPGCONST double qpoints[][3]);
+
#endif
diff --git a/src/lattice.c b/src/lattice.c
deleted file mode 100644
index 57ea7c5..0000000
--- a/src/lattice.c
+++ /dev/null
@@ -1,345 +0,0 @@
-/* lattice.c */
-/* Copyright (C) 2010 Atsushi Togo */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "lattice.h"
-#include "mathfunc.h"
-#include "debug.h"
-
-#define INT_PREC 0.1
-
-static double identity[3][3] = {{ 1, 0, 0 },
- { 0, 1, 0 },
- { 0, 0, 1 }};
-static double monocli_i2c[3][3] = {{ 1, 0, 0 },
- { 0, 1, 0 },
- { 1, 0,-1 }};
-static double monocli_a2c[3][3] = {{ 0, 0, 1 },
- { 0,-1, 0 },
- { 1, 0, 0 }};
-#ifdef DEBUG
-static double tetra_f2i_c2p[3][3] = {{ 0.5,-0.5, 0.0 },
- { 0.5, 0.5, 0.0 },
- { 0.0, 0.0, 1.0 }};
-static double hexa_h2p[3][3] = {{ 2./3,-1./3, 0.0 },
- { 1./3, 1./3, 0.0 },
- { 0.0, 0.0, 1.0 }};
-#endif
-static double rhombo_obverse[3][3] = {{ 2./3,-1./3,-1./3 },
- { 1./3, 1./3,-2./3 },
- { 1./3, 1./3, 1./3 }};
-static double rhomb_reverse[3][3] = {{ 1./3,-2./3, 1./3 },
- { 2./3,-1./3,-1./3 },
- { 1./3, 1./3, 1./3 }};
-static double a2c[3][3] = {{ 0, 0, 1 },
- { 1, 0, 0 },
- { 0, 1, 0 }};
-static double b2c[3][3] = {{ 0, 1, 0 },
- { 0, 0, 1 },
- { 1, 0, 0 }};
-
-static Centering get_centering(double correction_mat[3][3],
- SPGCONST int transform_mat[3][3],
- const Laue laue);
-static int get_Delaunay_reduction(double red_lattice[3][3],
- SPGCONST double lattice[3][3],
- SPGCONST double symprec);
-static Centering get_base_center(SPGCONST int transform_mat[3][3]);
-static int get_Delaunay_reduction_basis(double basis[4][3],
- const double symprec);
-static void get_Delaunay_shortest_vectors(double basis[4][3],
- const double symprec);
-static void get_exteneded_basis(double basis[4][3],
- SPGCONST double lattice[3][3]);
-
-int lat_smallest_lattice_vector(double min_lattice[3][3],
- SPGCONST double lattice[3][3],
- const double symprec)
-{
- debug_print("lat_smallest_lattice_vector:\n");
- return get_Delaunay_reduction(min_lattice, lattice, symprec);
-}
-
-Centering lat_get_centering(double correction_mat[3][3],
- SPGCONST int transform_mat[3][3],
- const Laue laue)
-{
- return get_centering(correction_mat,
- transform_mat,
- laue);
-}
-
-static Centering get_centering(double correction_mat[3][3],
- SPGCONST int transform_mat[3][3],
- const Laue laue)
-{
- int det;
- double trans_corr_mat[3][3];
- Centering centering;
-
- mat_copy_matrix_d3(correction_mat, identity);
- det = abs(mat_get_determinant_i3(transform_mat));
- debug_print("laue class: %d\n", laue);
- debug_print("multiplicity: %d\n", det);
-
- if (det == 1) { centering = NO_CENTER; }
- if (det == 2) { centering = get_base_center(transform_mat);
- if (centering == A_FACE) {
- if (laue == LAUE2M) {
- debug_print("Monocli A to C\n");
- mat_copy_matrix_d3(correction_mat, monocli_a2c);
- } else {
- mat_copy_matrix_d3(correction_mat, a2c);
- }
- centering = C_FACE;
- }
- if (centering == B_FACE) {
- mat_copy_matrix_d3(correction_mat, b2c);
- centering = C_FACE;
- }
- if (laue == LAUE2M && centering == BODY) {
- debug_print("Monocli I to C\n");
- mat_copy_matrix_d3(correction_mat, monocli_i2c);
- centering = C_FACE;
- }
- }
- if (det == 3) {
- centering = NO_CENTER;
- mat_multiply_matrix_id3(trans_corr_mat,
- transform_mat, rhombo_obverse);
- if (mat_is_int_matrix(trans_corr_mat, INT_PREC)) {
- mat_copy_matrix_d3(correction_mat, rhombo_obverse);
- debug_print("R-center observe setting\n");
- debug_print_matrix_d3(trans_corr_mat);
- }
- mat_multiply_matrix_id3(trans_corr_mat,
- transform_mat, rhomb_reverse);
- if (mat_is_int_matrix(trans_corr_mat, INT_PREC)) {
- mat_copy_matrix_d3(correction_mat, rhomb_reverse);
- debug_print("R-center reverse setting\n");
- debug_print_matrix_d3(trans_corr_mat);
- }
- }
- if (det == 4) { centering = FACE; }
-
- return centering;
-}
-
-static Centering get_base_center(SPGCONST int transform_mat[3][3])
-{
- int i;
- Centering centering = NO_CENTER;
-
- debug_print("lat_get_base_center\n");
-
- /* C center */
- for (i = 0; i < 3; i++) {
- if (transform_mat[i][0] == 0 &&
- transform_mat[i][1] == 0 &&
- abs(transform_mat[i][2]) == 1) {
- centering = C_FACE;
- goto end;
- }
- }
-
- /* A center */
- for (i = 0; i < 3; i++) {
- if (abs(transform_mat[i][0]) == 1 &&
- transform_mat[i][1] == 0 &&
- transform_mat[i][2] == 0) {
- centering = A_FACE;
- goto end;
- }
- }
-
- /* B center */
- for (i = 0; i < 3; i++) {
- if (transform_mat[i][0] == 0 &&
- abs(transform_mat[i][1]) == 1 &&
- transform_mat[i][2] == 0) {
- centering = B_FACE;
- goto end;
- }
- }
-
- /* body center */
- if (abs(transform_mat[0][0]) +
- abs(transform_mat[0][1]) +
- abs(transform_mat[0][2]) == 2) {
- centering = BODY;
- goto end;
- }
-
- /* This should not happen. */
- warning_print("spglib: No centring was found (line %d, %s).\n", __LINE__, __FILE__);
- return NO_CENTER;
-
- end:
- debug_print("centering: %d\n", centering);
- return centering;
-}
-
-/* Delaunay reduction */
-/* Reference can be found in International table A. */
-static int get_Delaunay_reduction(double red_lattice[3][3],
- SPGCONST double lattice[3][3],
- const double symprec)
-{
- int i, j;
- double volume, sum, red_sum;
- double basis[4][3];
-
- get_exteneded_basis(basis, lattice);
-
- sum = 0;
- for (i = 0; i < 4; i++) {
- for (j = 0; j < 3; j++) {
- sum += basis[i][j] * basis[i][j];
- }
- }
-
- while (1) {
- if (get_Delaunay_reduction_basis(basis, symprec)) {
- break;
- }
- }
-
- get_Delaunay_shortest_vectors(basis, symprec);
-
- red_sum = 0;
- for (i = 0; i < 4; i++) {
- for (j = 0; j < 3; j++) {
- red_sum += basis[i][j] * basis[i][j];
- }
- }
-
- if (sum - red_sum > symprec * symprec) {
- for (i = 0; i < 3; i++) {
- for (j = 0; j < 3; j++) {
- red_lattice[i][j] = basis[j][i];
- }
- }
- } else {
- mat_copy_matrix_d3(red_lattice, lattice);
- }
-
- volume = mat_get_determinant_d3(red_lattice);
- if (mat_Dabs(volume) < symprec) {
- warning_print("spglib: Minimum lattice has no volume (line %d, %s).\n", __LINE__, __FILE__);
- goto err;
- }
-
- if (volume < 0) {
- /* Flip axes */
- for (i = 0; i < 3; i++) {
- for (j = 0; j < 3; j++) {
- red_lattice[i][j] = -red_lattice[i][j];
- }
- }
- }
-
- return 1;
-
- err:
- return 0;
-}
-
-static void get_Delaunay_shortest_vectors(double basis[4][3],
- const double symprec)
-{
- int i, j;
- double tmpmat[3][3], b[7][3], tmpvec[3];
-
- /* Search in the set {b1, b2, b3, b4, b1+b2, b2+b3, b3+b1} */
- for (i = 0; i < 4; i++) {
- for (j = 0; j < 3; j++) {
- b[i][j] = basis[i][j];
- }
- }
-
- for (i = 0; i < 3; i++) {
- b[4][i] = basis[0][i] + basis[1][i];
- }
- for (i = 0; i < 3; i++) {
- b[5][i] = basis[1][i] + basis[2][i];
- }
- for (i = 0; i < 3; i++) {
- b[6][i] = basis[2][i] + basis[0][i];
- }
-
- /* Bubble sort */
- for (i = 0; i < 6; i++) {
- for (j = 0; j < 6; j++) {
- if (mat_norm_squared_d3(b[j]) > mat_norm_squared_d3(b[j+1])) {
- mat_copy_vector_d3(tmpvec, b[j]);
- mat_copy_vector_d3(b[j], b[j+1]);
- mat_copy_vector_d3(b[j+1], tmpvec);
- }
- }
- }
-
- for (i = 2; i < 7; i++) {
- for (j = 0; j < 3; j++) {
- tmpmat[j][0] = b[0][j];
- tmpmat[j][1] = b[1][j];
- tmpmat[j][2] = b[i][j];
- }
- if (mat_Dabs(mat_get_determinant_d3(tmpmat)) > symprec) {
- for (j = 0; j < 3; j++) {
- basis[0][j] = b[0][j];
- basis[1][j] = b[1][j];
- basis[2][j] = b[i][j];
- }
- break;
- }
- }
-}
-
-static int get_Delaunay_reduction_basis(double basis[4][3],
- const double symprec)
-{
- int i, j, k, l;
- double dot_product;
-
- for (i = 0; i < 4; i++) {
- for (j = i+1; j < 4; j++) {
- dot_product = 0.0;
- for (k = 0; k < 3; k++) {
- dot_product += basis[i][k] * basis[j][k];
- }
- if (dot_product > symprec) {
- for (k = 0; k < 4; k++) {
- if (! (k == i || k == j)) {
- for (l = 0; l < 3; l++) {
- basis[k][l] += basis[i][l];
- }
- }
- }
- for (k = 0; k < 3; k++) {
- basis[i][k] = -basis[i][k];
- }
- return 0;
- }
- }
- }
-
- return 1;
-}
-
-static void get_exteneded_basis(double basis[4][3],
- SPGCONST double lattice[3][3])
-{
- int i, j;
-
- for (i = 0; i < 3; i++) {
- for (j = 0; j < 3; j++) {
- basis[i][j] = lattice[j][i];
- }
- }
-
- for (i = 0; i < 3; i++) {
- basis[3][i] = -lattice[i][0] -lattice[i][1] -lattice[i][2];
- }
-}
-
diff --git a/src/lattice.h b/src/lattice.h
deleted file mode 100644
index 2649a7d..0000000
--- a/src/lattice.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* lattice.h */
-/* Copyright (C) 2008 Atsushi Togo */
-
-#ifndef __lattice_H__
-#define __lattice_H__
-
-#include "mathfunc.h"
-
-typedef enum {
- NO_CENTER,
- BODY,
- FACE,
- A_FACE,
- B_FACE,
- C_FACE,
- BASE,
- R_CENTER,
-} Centering;
-
-typedef enum {
- LAUE1,
- LAUE2M,
- LAUEMMM,
- LAUE4M,
- LAUE4MMM,
- LAUE3,
- LAUE3M,
- LAUE6M,
- LAUE6MMM,
- LAUEM3,
- LAUEM3M,
-} Laue;
-
-int lat_smallest_lattice_vector(double lattice_new[3][3],
- SPGCONST double lattice[3][3],
- const double symprec);
-Centering lat_get_centering(double correction_mat[3][3],
- SPGCONST int transform_mat[3][3],
- const Laue laue);
-
-#endif
diff --git a/src/mathfunc.c b/src/mathfunc.c
index 64ea747..7abc42f 100644
--- a/src/mathfunc.c
+++ b/src/mathfunc.c
@@ -1,5 +1,36 @@
-/* mathfunc.c */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#include <stdio.h>
#include <stdlib.h>
@@ -67,7 +98,7 @@ void mat_copy_vector_i3(int a[3], const int b[3])
}
int mat_check_identity_matrix_i3(SPGCONST int a[3][3],
- SPGCONST int b[3][3])
+ SPGCONST int b[3][3])
{
if ( a[0][0] - b[0][0] ||
a[0][1] - b[0][1] ||
@@ -85,9 +116,9 @@ int mat_check_identity_matrix_i3(SPGCONST int a[3][3],
}
}
-int mat_check_identity_matrix_d3( SPGCONST double a[3][3],
- SPGCONST double b[3][3],
- const double symprec )
+int mat_check_identity_matrix_d3(SPGCONST double a[3][3],
+ SPGCONST double b[3][3],
+ const double symprec)
{
if ( mat_Dabs( a[0][0] - b[0][0] ) > symprec ||
mat_Dabs( a[0][1] - b[0][1] ) > symprec ||
@@ -105,9 +136,9 @@ int mat_check_identity_matrix_d3( SPGCONST double a[3][3],
}
}
-int mat_check_identity_matrix_id3( SPGCONST int a[3][3],
- SPGCONST double b[3][3],
- const double symprec )
+int mat_check_identity_matrix_id3(SPGCONST int a[3][3],
+ SPGCONST double b[3][3],
+ const double symprec)
{
if ( mat_Dabs( a[0][0] - b[0][0] ) > symprec ||
mat_Dabs( a[0][1] - b[0][1] ) > symprec ||
@@ -127,68 +158,68 @@ int mat_check_identity_matrix_id3( SPGCONST int a[3][3],
/* m=axb */
void mat_multiply_matrix_d3(double m[3][3],
- SPGCONST double a[3][3],
- SPGCONST double b[3][3])
+ SPGCONST double a[3][3],
+ SPGCONST double b[3][3])
{
int i, j; /* a_ij */
double c[3][3];
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
c[i][j] =
- a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j];
+ a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j];
}
}
mat_copy_matrix_d3(m, c);
}
void mat_multiply_matrix_i3(int m[3][3],
- SPGCONST int a[3][3],
- SPGCONST int b[3][3])
+ SPGCONST int a[3][3],
+ SPGCONST int b[3][3])
{
int i, j; /* a_ij */
int c[3][3];
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
c[i][j] =
- a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j];
+ a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j];
}
}
mat_copy_matrix_i3(m, c);
}
void mat_multiply_matrix_di3(double m[3][3],
- SPGCONST double a[3][3],
- SPGCONST int b[3][3])
+ SPGCONST double a[3][3],
+ SPGCONST int b[3][3])
{
int i, j; /* a_ij */
double c[3][3];
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
c[i][j] =
- a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j];
+ a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j];
}
}
mat_copy_matrix_d3(m, c);
}
-void mat_multiply_matrix_id3( double m[3][3],
- SPGCONST int a[3][3],
- SPGCONST double b[3][3])
+void mat_multiply_matrix_id3(double m[3][3],
+ SPGCONST int a[3][3],
+ SPGCONST double b[3][3])
{
int i, j; /* a_ij */
double c[3][3];
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
c[i][j] =
- a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j];
+ a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j];
}
}
mat_copy_matrix_d3(m, c);
}
void mat_multiply_matrix_vector_i3(int v[3],
- SPGCONST int a[3][3],
- const int b[3])
+ SPGCONST int a[3][3],
+ const int b[3])
{
int i;
int c[3];
@@ -199,8 +230,8 @@ void mat_multiply_matrix_vector_i3(int v[3],
}
void mat_multiply_matrix_vector_d3(double v[3],
- SPGCONST double a[3][3],
- const double b[3])
+ SPGCONST double a[3][3],
+ const double b[3])
{
int i;
double c[3];
@@ -211,8 +242,8 @@ void mat_multiply_matrix_vector_d3(double v[3],
}
void mat_multiply_matrix_vector_id3(double v[3],
- SPGCONST int a[3][3],
- const double b[3])
+ SPGCONST int a[3][3],
+ const double b[3])
{
int i;
double c[3];
@@ -222,9 +253,21 @@ void mat_multiply_matrix_vector_id3(double v[3],
v[i] = c[i];
}
-void mat_add_matrix_i3( int m[3][3],
- SPGCONST int a[3][3],
- SPGCONST int b[3][3] )
+void mat_multiply_matrix_vector_di3(double v[3],
+ SPGCONST double a[3][3],
+ const int b[3])
+{
+ int i;
+ double c[3];
+ for (i = 0; i < 3; i++)
+ c[i] = a[i][0] * b[0] + a[i][1] * b[1] + a[i][2] * b[2];
+ for (i = 0; i < 3; i++)
+ v[i] = c[i];
+}
+
+void mat_add_matrix_i3(int m[3][3],
+ SPGCONST int a[3][3],
+ SPGCONST int b[3][3])
{
int i, j;
for ( i = 0; i < 3; i++ ) {
@@ -265,18 +308,17 @@ void mat_cast_matrix_3d_to_3i(int m[3][3], SPGCONST double a[3][3])
/* ruby code for auto generating */
/* 3.times {|i| 3.times {|j| */
/* puts "m[#{j}][#{i}]=(a[#{(i+1)%3}][#{(j+1)%3}]*a[#{(i+2)%3}][#{(j+2)%3}] */
-/* -a[#{(i+1)%3}][#{(j+2)%3}]*a[#{(i+2)%3}][#{(j+1)%3}])/det;" */
+/* -a[#{(i+1)%3}][#{(j+2)%3}]*a[#{(i+2)%3}][#{(j+1)%3}])/det;" */
/* }} */
int mat_inverse_matrix_d3(double m[3][3],
- SPGCONST double a[3][3],
- SPGCONST double precision)
+ SPGCONST double a[3][3],
+ const double precision)
{
double det;
double c[3][3];
det = mat_get_determinant_d3(a);
if (mat_Dabs(det) < precision) {
warning_print("spglib: No inverse matrix (det=%f)\n", det);
- debug_print("No inverse matrix\n");
return 0;
}
@@ -295,14 +337,13 @@ int mat_inverse_matrix_d3(double m[3][3],
/* m = b^-1 a b */
int mat_get_similar_matrix_d3(double m[3][3],
- SPGCONST double a[3][3],
- SPGCONST double b[3][3],
- const double precision)
+ SPGCONST double a[3][3],
+ SPGCONST double b[3][3],
+ const double precision)
{
double c[3][3];
if (!mat_inverse_matrix_d3(c, b, precision)) {
warning_print("spglib: No similar matrix due to 0 determinant.\n");
- debug_print("No similar matrix due to 0 determinant.\n");
return 0;
}
mat_multiply_matrix_d3(m, a, b);
@@ -340,22 +381,22 @@ void mat_transpose_matrix_i3(int a[3][3], SPGCONST int b[3][3])
mat_copy_matrix_i3(a, c);
}
-void mat_get_metric( double metric[3][3],
- SPGCONST double lattice[3][3])
+void mat_get_metric(double metric[3][3],
+ SPGCONST double lattice[3][3])
{
double lattice_t[3][3];
mat_transpose_matrix_d3(lattice_t, lattice);
mat_multiply_matrix_d3(metric, lattice_t, lattice);
}
-double mat_norm_squared_d3( const double a[3] )
+double mat_norm_squared_d3(const double a[3])
{
- return a[0]*a[0]+a[1]*a[1]+a[2]*a[2];
+ return a[0] * a[0] + a[1] * a[1] + a[2] * a[2];
}
-int mat_norm_squared_i3( const int a[3] )
+int mat_norm_squared_i3(const int a[3])
{
- return a[0]*a[0]+a[1]*a[1]+a[2]*a[2];
+ return a[0] * a[0] + a[1] * a[1] + a[2] * a[2];
}
double mat_Dabs(const double a)
@@ -385,63 +426,79 @@ double mat_Dmod1(const double a)
MatINT * mat_alloc_MatINT(const int size)
{
MatINT *matint;
- matint = (MatINT*) malloc( sizeof( MatINT ) );
+
+ matint = NULL;
+
+ if ((matint = (MatINT*) malloc(sizeof(MatINT))) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ return NULL;
+ }
+
matint->size = size;
- if ( size > 0 ) {
- if ( ( matint->mat = (int (*)[3][3]) malloc( sizeof(int[3][3]) * size) )
- == NULL ) {
+ if (size > 0) {
+ if ((matint->mat = (int (*)[3][3]) malloc(sizeof(int[3][3]) * size))
+ == NULL) {
warning_print("spglib: Memory could not be allocated ");
warning_print("(MatINT, line %d, %s).\n", __LINE__, __FILE__);
- exit(1);
+ free(matint);
+ matint = NULL;
+ return NULL;
}
}
return matint;
}
-void mat_free_MatINT( MatINT * matint )
+void mat_free_MatINT(MatINT * matint)
{
- if ( matint->size > 0 ) {
- free( matint->mat );
+ if (matint->size > 0) {
+ free(matint->mat);
matint->mat = NULL;
}
- free( matint );
- matint = NULL;
+ free(matint);
}
-VecDBL * mat_alloc_VecDBL( const int size )
+VecDBL * mat_alloc_VecDBL(const int size)
{
VecDBL *vecdbl;
- vecdbl = (VecDBL*) malloc( sizeof( VecDBL ) );
+
+ vecdbl = NULL;
+
+ if ((vecdbl = (VecDBL*) malloc(sizeof(VecDBL))) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ return NULL;
+ }
+
vecdbl->size = size;
- if ( size > 0 ) {
- if ( ( vecdbl->vec = (double (*)[3]) malloc( sizeof(double[3]) * size) )
- == NULL ) {
+ if (size > 0) {
+ if ((vecdbl->vec = (double (*)[3]) malloc(sizeof(double[3]) * size))
+ == NULL) {
warning_print("spglib: Memory could not be allocated ");
warning_print("(VecDBL, line %d, %s).\n", __LINE__, __FILE__);
- exit(1);
+ free(vecdbl);
+ vecdbl = NULL;
+ return NULL;
}
}
return vecdbl;
}
-void mat_free_VecDBL( VecDBL * vecdbl )
+void mat_free_VecDBL(VecDBL * vecdbl)
{
- if ( vecdbl->size > 0 ) {
- free( vecdbl->vec );
+ if (vecdbl->size > 0) {
+ free(vecdbl->vec);
vecdbl->vec = NULL;
}
- free( vecdbl );
- vecdbl = NULL;
+ free(vecdbl);
}
-int mat_is_int_matrix( SPGCONST double mat[3][3], double symprec )
+int mat_is_int_matrix(SPGCONST double mat[3][3], const double symprec)
{
- int i,j ;
- for ( i = 0; i < 3; i++ ) {
- for ( j = 0; j < 3; j++ ) {
- if ( mat_Dabs( mat_Nint( mat[i][j] ) - mat[i][j] ) > symprec ) {
- return 0;
+ int i, j;
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ if (mat_Dabs(mat_Nint(mat[i][j]) - mat[i][j]) > symprec) {
+ return 0;
}
}
}
diff --git a/src/mathfunc.h b/src/mathfunc.h
index 3ce33a5..6474447 100644
--- a/src/mathfunc.h
+++ b/src/mathfunc.h
@@ -1,10 +1,43 @@
-/* mathfunc.h */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __mathfunc_H__
#define __mathfunc_H__
+#ifndef SPGCONST
#define SPGCONST
+#endif
typedef struct {
int size;
@@ -18,19 +51,19 @@ typedef struct {
double mat_get_determinant_d3(SPGCONST double a[3][3]);
int mat_get_determinant_i3(SPGCONST int a[3][3]);
-int mat_get_trace_i3( SPGCONST int a[3][3] );
+int mat_get_trace_i3(SPGCONST int a[3][3]);
void mat_copy_matrix_d3(double a[3][3], SPGCONST double b[3][3]);
void mat_copy_matrix_i3(int a[3][3], SPGCONST int b[3][3]);
void mat_copy_vector_d3(double a[3], const double b[3]);
void mat_copy_vector_i3(int a[3], const int b[3]);
int mat_check_identity_matrix_i3(SPGCONST int a[3][3],
SPGCONST int b[3][3]);
-int mat_check_identity_matrix_d3( SPGCONST double a[3][3],
+int mat_check_identity_matrix_d3(SPGCONST double a[3][3],
+ SPGCONST double b[3][3],
+ const double symprec);
+int mat_check_identity_matrix_id3(SPGCONST int a[3][3],
SPGCONST double b[3][3],
- const double symprec );
-int mat_check_identity_matrix_id3( SPGCONST int a[3][3],
- SPGCONST double b[3][3],
- const double symprec );
+ const double symprec);
void mat_multiply_matrix_d3(double m[3][3],
SPGCONST double a[3][3],
SPGCONST double b[3][3]);
@@ -52,35 +85,38 @@ void mat_multiply_matrix_vector_d3(double v[3],
void mat_multiply_matrix_vector_id3(double v[3],
SPGCONST int a[3][3],
const double b[3]);
-void mat_add_matrix_i3( int m[3][3],
- SPGCONST int a[3][3],
- SPGCONST int b[3][3] );
+void mat_multiply_matrix_vector_di3(double v[3],
+ SPGCONST double a[3][3],
+ const int b[3]);
+void mat_add_matrix_i3(int m[3][3],
+ SPGCONST int a[3][3],
+ SPGCONST int b[3][3]);
void mat_cast_matrix_3i_to_3d(double m[3][3],
SPGCONST int a[3][3]);
void mat_cast_matrix_3d_to_3i(int m[3][3],
SPGCONST double a[3][3]);
int mat_inverse_matrix_d3(double m[3][3],
SPGCONST double a[3][3],
- SPGCONST double precision);
+ const double precision);
int mat_get_similar_matrix_d3(double m[3][3],
SPGCONST double a[3][3],
SPGCONST double b[3][3],
- SPGCONST double precision);
+ const double precision);
void mat_transpose_matrix_d3(double a[3][3],
SPGCONST double b[3][3]);
void mat_transpose_matrix_i3(int a[3][3],
SPGCONST int b[3][3]);
-void mat_get_metric( double metric[3][3],
- SPGCONST double lattice[3][3]);
-double mat_norm_squared_d3( const double a[3] );
-int mat_norm_squared_i3( const int a[3] );
+void mat_get_metric(double metric[3][3],
+ SPGCONST double lattice[3][3]);
+double mat_norm_squared_d3(const double a[3]);
+int mat_norm_squared_i3(const int a[3]);
double mat_Dabs(const double a);
int mat_Nint(const double a);
double mat_Dmod1(const double a);
MatINT * mat_alloc_MatINT(const int size);
-void mat_free_MatINT( MatINT * matint );
+void mat_free_MatINT(MatINT * matint);
VecDBL * mat_alloc_VecDBL(const int size);
-void mat_free_VecDBL( VecDBL * vecdbl );
-int mat_is_int_matrix( SPGCONST double mat[3][3], double symprec );
+void mat_free_VecDBL(VecDBL * vecdbl);
+int mat_is_int_matrix(SPGCONST double mat[3][3], const double symprec);
#endif
diff --git a/src/niggli.c b/src/niggli.c
new file mode 100644
index 0000000..45506c2
--- /dev/null
+++ b/src/niggli.c
@@ -0,0 +1,465 @@
+/* Copyright (C) 2015 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of niggli. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#include <stdio.h>
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+#include "niggli.h"
+
+#define NIGGLI_MAX_NUM_LOOP 100
+
+typedef struct {
+ double A;
+ double B;
+ double C;
+ double eta;
+ double xi;
+ double zeta;
+ double eps;
+ int l;
+ int m;
+ int n;
+ double *tmat;
+ double *lattice;
+} NiggliParams;
+
+static NiggliParams * initialize(const double *lattice_, const double eps_);
+static void finalize(double *lattice_, NiggliParams *p);
+static int reset(NiggliParams *p);
+static int step1(NiggliParams *p);
+static int step2(NiggliParams *p);
+static int step3(NiggliParams *p);
+static int step4(NiggliParams *p);
+static int step5(NiggliParams *p);
+static int step6(NiggliParams *p);
+static int step7(NiggliParams *p);
+static int step8(NiggliParams *p);
+static int set_parameters(NiggliParams *p);
+static void set_angle_types(NiggliParams *p);
+static double * get_transpose(const double *M);
+static double * get_metric(const double *M);
+static double * multiply_matrices(const double *A, const double *B);
+
+#ifdef NIGGLI_DEBUG
+#define debug_print(...) printf(__VA_ARGS__)
+static void debug_show(const int j, const NiggliParams *p);
+static void debug_show(const int j, const NiggliParams *p)
+{
+ /* int i; */
+
+ if (j < 0) {
+ printf("Finish: ");
+ } else {
+ printf("Step %d: ", j);
+ }
+ printf("%f %f %f %f %f %f\n", p->A, p->B, p->C, p->xi, p->eta, p->zeta);
+
+ /* printf("%d %d %d\n", p->l, p->m, p->n); */
+ /* for (i = 0; i < 3; i++) { */
+ /* printf("%f %f %f\n", */
+ /* p->lattice[i * 3], p->lattice[i * 3 + 1], p->lattice[i * 3 + 2]); */
+ /* } */
+}
+#else
+#define debug_print(...)
+#define debug_show(...)
+#endif
+
+#ifdef NIGGLI_WARNING
+#include <stdio.h>
+#define warning_print(...) fprintf(stderr,__VA_ARGS__)
+#else
+#define warning_print(...)
+#endif
+
+/*--------------------------------------------*/
+/* Version: niggli-[major].[minor].[micro] */
+/*--------------------------------------------*/
+int niggli_get_major_version(void)
+{
+ return NIGGLI_MAJOR_VERSION;
+}
+
+int niggli_get_minor_version(void)
+{
+ return NIGGLI_MINOR_VERSION;
+}
+
+int niggli_get_micro_version(void)
+{
+ return NIGGLI_MICRO_VERSION;
+}
+
+/* return 0 if failed */
+int niggli_reduce(double *lattice_, const double eps_)
+{
+ int i, j, succeeded;
+ NiggliParams *p;
+ int (*steps[8])(NiggliParams *p) = {step1, step2, step3, step4,
+ step5, step6, step7, step8};
+
+ p = NULL;
+ succeeded = 0;
+
+ if ((p = initialize(lattice_, eps_)) == NULL) {
+ return 0;
+ }
+
+ /* Step 0 */
+ if (! set_parameters(p)) {
+ goto ret;
+ }
+
+ for (i = 0; i < NIGGLI_MAX_NUM_LOOP; i++) {
+ for (j = 0; j < 8; j++) {
+ if ((*steps[j])(p)) {
+ debug_show(j + 1, p);
+ if (! reset(p)) {goto ret;}
+ if (j == 1 || j == 4 || j == 5 || j == 6 || j == 7) {break;}
+ }
+ }
+ if (j == 8) {
+ succeeded = 1;
+ break;
+ }
+ }
+
+ debug_show(-1, p);
+
+ ret:
+ finalize(lattice_, p);
+ return succeeded;
+}
+
+static NiggliParams * initialize(const double *lattice_, const double eps_)
+{
+ NiggliParams * p;
+
+ p = NULL;
+
+ if ((p = (NiggliParams*)malloc(sizeof(NiggliParams))) == NULL) {
+ warning_print("niggli: Memory could not be allocated.");
+ return NULL;
+ }
+
+ p->A = 0;
+ p->B = 0;
+ p->C = 0;
+ p->eta = 0;
+ p->xi = 0;
+ p->zeta = 0;
+ p->eps = 0;
+ p->l = 0;
+ p->m = 0;
+ p->n = 0;
+ p->tmat = NULL;
+ p->lattice = NULL;
+
+ if ((p->tmat = (double*)malloc(sizeof(double) * 9)) == NULL) {
+ warning_print("niggli: Memory could not be allocated.");
+ free(p);
+ p = NULL;
+ return NULL;
+ }
+
+ p->eps = eps_;
+ if ((p->lattice = (double*)malloc(sizeof(double) * 9)) == NULL) {
+ warning_print("niggli: Memory could not be allocated.");
+ free(p->tmat);
+ p->tmat = NULL;
+ free(p);
+ p = NULL;
+ return NULL;
+ }
+
+ memcpy(p->lattice, lattice_, sizeof(double) * 9);
+
+ return p;
+}
+
+static void finalize(double *lattice_, NiggliParams *p)
+{
+ free(p->tmat);
+ p->tmat = NULL;
+ memcpy(lattice_, p->lattice, sizeof(double) * 9);
+ free(p->lattice);
+ p->lattice = NULL;
+ free(p);
+ p = NULL;
+}
+
+static int reset(NiggliParams *p)
+{
+ double *lat_tmp;
+
+ lat_tmp = NULL;
+
+ if ((lat_tmp = multiply_matrices(p->lattice, p->tmat)) == NULL) {return 0;}
+ memcpy(p->lattice, lat_tmp, sizeof(double) * 9);
+ free(lat_tmp);
+ lat_tmp = NULL;
+
+ return set_parameters(p);
+}
+
+static int set_parameters(NiggliParams *p)
+{
+ double *G;
+
+ G = NULL;
+
+ if ((G = get_metric(p->lattice)) == NULL) {return 0;}
+
+ p->A = G[0];
+ p->B = G[4];
+ p->C = G[8];
+ p->xi = G[5] * 2;
+ p->eta = G[2] * 2;
+ p->zeta = G[1] * 2;
+
+ free(G);
+ G = NULL;
+
+ set_angle_types(p);
+
+ return 1;
+}
+
+static void set_angle_types(NiggliParams *p)
+{
+ p->l = 0;
+ p->m = 0;
+ p->n = 0;
+ if (p->xi < -p->eps) {p->l = -1;}
+ if (p->xi > p->eps) {p->l = 1;}
+ if (p->eta < -p->eps) {p->m = -1;}
+ if (p->eta > p->eps) {p->m = 1;}
+ if (p->zeta < -p->eps) {p->n = -1;}
+ if (p->zeta > p->eps) {p->n = 1;}
+}
+
+static int step1(NiggliParams *p)
+{
+ if (p->A > p->B + p->eps ||
+ (! (fabs(p->A - p->B) > p->eps) &&
+ fabs(p->xi) > fabs(p->eta) + p->eps)) {
+ p->tmat[0] = 0, p->tmat[1] = -1, p->tmat[2] = 0;
+ p->tmat[3] = -1, p->tmat[4] = 0, p->tmat[5] = 0;
+ p->tmat[6] = 0, p->tmat[7] = 0, p->tmat[8] = -1;
+ return 1;
+ }
+ else {return 0;}
+}
+
+static int step2(NiggliParams *p)
+{
+ if (p->B > p->C + p->eps ||
+ (! (fabs(p->B - p->C) > p->eps)
+ && fabs(p->eta) > fabs(p->zeta) + p->eps)) {
+ p->tmat[0] = -1, p->tmat[1] = 0, p->tmat[2] = 0;
+ p->tmat[3] = 0, p->tmat[4] = 0, p->tmat[5] = -1;
+ p->tmat[6] = 0, p->tmat[7] = -1, p->tmat[8] = 0;
+ return 1;
+ }
+ else {return 0;}
+}
+
+static int step3(NiggliParams *p)
+{
+ int i, j, k;
+ if (p->l * p->m * p->n == 1) {
+ if (p->l == -1) {i = -1;} else {i = 1;}
+ if (p->m == -1) {j = -1;} else {j = 1;}
+ if (p->n == -1) {k = -1;} else {k = 1;}
+ p->tmat[0] = i, p->tmat[1] = 0, p->tmat[2] = 0;
+ p->tmat[3] = 0, p->tmat[4] = j, p->tmat[5] = 0;
+ p->tmat[6] = 0, p->tmat[7] = 0, p->tmat[8] = k;
+ return 1;
+ }
+ else {return 0;}
+}
+
+static int step4(NiggliParams *p)
+{
+ int i, j, k, r;
+
+ if (p->l == -1 && p->m == -1 && p->n == -1) {
+ return 0;
+ }
+
+ if (p->l * p->m * p->n == 0 || p->l * p->m * p->n == -1) {
+ i = 1;
+ j = 1;
+ k = 1;
+ r = -1; /* 0: i, 1: j, 2: k */
+ if (p->l == 1) {i = -1;}
+ if (p->l == 0) {r = 0;}
+ if (p->m == 1) {j = -1;}
+ if (p->m == 0) {r = 1;}
+ if (p->n == 1) {k = -1;}
+ if (p->n == 0) {r = 2;}
+
+ if (i * j * k == -1) {
+ if (r == 0) {i = -1;}
+ if (r == 1) {j = -1;}
+ if (r == 2) {k = -1;}
+ }
+
+ p->tmat[0] = i, p->tmat[1] = 0, p->tmat[2] = 0;
+ p->tmat[3] = 0, p->tmat[4] = j, p->tmat[5] = 0;
+ p->tmat[6] = 0, p->tmat[7] = 0, p->tmat[8] = k;
+ return 1;
+ }
+ else {return 0;}
+}
+
+static int step5(NiggliParams *p)
+{
+ if (fabs(p->xi) > p->B + p->eps ||
+ (! (fabs(p->B - p->xi) > p->eps) && 2 * p->eta < p->zeta - p->eps) ||
+ (! (fabs(p->B + p->xi) > p->eps) && p->zeta < -p->eps)) {
+ p->tmat[0] = 1, p->tmat[1] = 0, p->tmat[2] = 0;
+ p->tmat[3] = 0, p->tmat[4] = 1, p->tmat[5] = 0;
+ p->tmat[6] = 0, p->tmat[7] = 0, p->tmat[8] = 1;
+ if (p->xi > 0) {p->tmat[5] = -1;}
+ if (p->xi < 0) {p->tmat[5] = 1;}
+ return 1;
+ }
+ else {return 0;}
+}
+
+static int step6(NiggliParams *p)
+{
+ if (fabs(p->eta) > p->A + p->eps ||
+ (! (fabs(p->A - p->eta) > p->eps) && 2 * p->xi < p->zeta - p->eps) ||
+ (! (fabs(p->A + p->eta) > p->eps) && p->zeta < -p->eps)) {
+ p->tmat[0] = 1, p->tmat[1] = 0, p->tmat[2] = 0;
+ p->tmat[3] = 0, p->tmat[4] = 1, p->tmat[5] = 0;
+ p->tmat[6] = 0, p->tmat[7] = 0, p->tmat[8] = 1;
+ if (p->eta > 0) {p->tmat[2] = -1;}
+ if (p->eta < 0) {p->tmat[2] = 1;}
+ return 1;
+ }
+ else {return 0;}
+}
+
+static int step7(NiggliParams *p)
+{
+ if (fabs(p->zeta) > p->A + p->eps ||
+ (! (fabs(p->A - p->zeta) > p->eps) && 2 * p->xi < p->eta - p->eps) ||
+ (! (fabs(p->A + p->zeta) > p->eps) && p->eta < -p->eps)) {
+ p->tmat[0] = 1, p->tmat[1] = 0, p->tmat[2] = 0;
+ p->tmat[3] = 0, p->tmat[4] = 1, p->tmat[5] = 0;
+ p->tmat[6] = 0, p->tmat[7] = 0, p->tmat[8] = 1;
+ if (p->zeta > 0) {p->tmat[1] = -1;}
+ if (p->zeta < 0) {p->tmat[1] = 1;}
+ return 1;
+ }
+ else {return 0;}
+}
+
+static int step8(NiggliParams *p)
+{
+ if (p->xi + p->eta + p->zeta + p->A + p->B < -p->eps ||
+ (! (fabs(p->xi + p->eta + p->zeta + p->A + p->B) > p->eps) &&
+ 2 * (p->A + p->eta) + p->zeta > p->eps)) {
+ p->tmat[0] = 1, p->tmat[1] = 0, p->tmat[2] = 1;
+ p->tmat[3] = 0, p->tmat[4] = 1, p->tmat[5] = 1;
+ p->tmat[6] = 0, p->tmat[7] = 0, p->tmat[8] = 1;
+ return 1;
+ }
+ else {return 0;}
+}
+
+static double * get_transpose(const double *M)
+{
+ int i, j;
+ double *M_T;
+
+ M_T = NULL;
+
+ if ((M_T = (double*)malloc(sizeof(double) * 9)) == NULL) {
+ warning_print("niggli: Memory could not be allocated.");
+ return NULL;
+ }
+
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ M_T[i * 3 + j] = M[j * 3 + i];
+ }
+ }
+
+ return M_T;
+}
+
+static double * get_metric(const double *M)
+{
+ double *G, *M_T;
+
+ G = NULL;
+ M_T = NULL;
+
+ if ((M_T = get_transpose(M)) == NULL) {return NULL;}
+ if ((G = multiply_matrices(M_T, M)) == NULL) {return NULL;}
+
+ free(M_T);
+ M_T = NULL;
+
+ return G;
+}
+
+static double * multiply_matrices(const double *L, const double *R)
+{
+ int i, j, k;
+ double *M;
+
+ M = NULL;
+
+ if ((M = (double*)malloc(sizeof(double) * 9)) == NULL) {
+ warning_print("niggli: Memory could not be allocated.");
+ return NULL;
+ }
+
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ M[i * 3 + j] = 0;
+ for (k = 0; k < 3; k++) {
+ M[i * 3 + j] += L[i * 3 + k] * R[k * 3 + j];
+ }
+ }
+ }
+
+ return M;
+}
diff --git a/src/niggli.h b/src/niggli.h
new file mode 100644
index 0000000..aeb479c
--- /dev/null
+++ b/src/niggli.h
@@ -0,0 +1,47 @@
+/* Copyright (C) 2015 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of niggli. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#ifndef __NIGGLI_H__
+#define __NIGGLI_H__
+
+#define NIGGLI_MAJOR_VERSION 0
+#define NIGGLI_MINOR_VERSION 1
+#define NIGGLI_MICRO_VERSION 2
+
+int niggli_get_major_version(void);
+int niggli_get_minor_version(void);
+int niggli_get_micro_version(void);
+int niggli_reduce(double *lattice_, const double eps_);
+
+#endif
diff --git a/src/pointgroup.c b/src/pointgroup.c
index 6a556b9..d1b3cb4 100644
--- a/src/pointgroup.c
+++ b/src/pointgroup.c
@@ -1,9 +1,40 @@
-/* pointgroup.c */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#include <string.h>
#include <stdio.h>
-#include "lattice.h"
+#include <stdlib.h>
#include "pointgroup.h"
#include "symmetry.h"
#include "mathfunc.h"
@@ -15,200 +46,240 @@
typedef struct {
int table[10];
char symbol[6];
+ char schoenflies[4];
Holohedry holohedry;
Laue laue;
} PointgroupType;
-static PointgroupType pointgroup_data[32] = {
- {
+static PointgroupType pointgroup_data[33] = {
+ { /* 0 */
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ " ",
+ " ",
+ HOLOHEDRY_NONE,
+ LAUE_NONE,
+ },
+ { /* 1 */
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
"1 ",
+ "C1 ",
TRICLI,
LAUE1,
},
- {
+ { /* 2 */
{0, 0, 0, 0, 1, 1, 0, 0, 0, 0},
"-1 ",
+ "Ci ",
TRICLI,
LAUE1,
},
- {
+ { /* 3 */
{0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
"2 ",
+ "C2 ",
MONOCLI,
LAUE2M,
},
- {
+ { /* 4 */
{0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
"m ",
+ "Cs ",
MONOCLI,
LAUE2M,
},
- {
+ { /* 5 */
{0, 0, 0, 1, 1, 1, 1, 0, 0, 0},
"2/m ",
+ "C2h",
MONOCLI,
LAUE2M,
},
- {
+ { /* 6 */
{0, 0, 0, 0, 0, 1, 3, 0, 0, 0},
"222 ",
+ "D2 ",
ORTHO,
LAUEMMM,
},
- {
+ { /* 7 */
{0, 0, 0, 2, 0, 1, 1, 0, 0, 0},
"mm2 ",
+ "C2v",
ORTHO,
LAUEMMM,
},
- {
+ { /* 8 */
{0, 0, 0, 3, 1, 1, 3, 0, 0, 0},
"mmm ",
+ "D2h",
ORTHO,
LAUEMMM,
},
- {
+ { /* 9 */
{0, 0, 0, 0, 0, 1, 1, 0, 2, 0},
"4 ",
+ "C4 ",
TETRA,
LAUE4M,
},
- {
+ { /* 10 */
{0, 2, 0, 0, 0, 1, 1, 0, 0, 0},
"-4 ",
+ "S4 ",
TETRA,
LAUE4M,
},
- {
+ { /* 11 */
{0, 2, 0, 1, 1, 1, 1, 0, 2, 0},
"4/m ",
+ "C4h",
TETRA,
LAUE4M,
},
- {
+ { /* 12 */
{0, 0, 0, 0, 0, 1, 5, 0, 2, 0},
"422 ",
+ "D4 ",
TETRA,
LAUE4MMM,
},
- {
+ { /* 13 */
{0, 0, 0, 4, 0, 1, 1, 0, 2, 0},
"4mm ",
+ "C4v",
TETRA,
LAUE4MMM,
},
- {
+ { /* 14 */
{0, 2, 0, 2, 0, 1, 3, 0, 0, 0},
"-42m ",
+ "D2d",
TETRA,
LAUE4MMM,
},
- {
+ { /* 15 */
{0, 2, 0, 5, 1, 1, 5, 0, 2, 0},
"4/mmm",
+ "D4h",
TETRA,
LAUE4MMM,
},
- {
+ { /* 16 */
{0, 0, 0, 0, 0, 1, 0, 2, 0, 0},
"3 ",
+ "C3 ",
TRIGO,
LAUE3,
},
- {
+ { /* 17 */
{0, 0, 2, 0, 1, 1, 0, 2, 0, 0},
"-3 ",
+ "C3i",
TRIGO,
LAUE3,
},
- {
+ { /* 18 */
{0, 0, 0, 0, 0, 1, 3, 2, 0, 0},
"32 ",
+ "D3 ",
TRIGO,
LAUE3M,
},
- {
+ { /* 19 */
{0, 0, 0, 3, 0, 1, 0, 2, 0, 0},
"3m ",
+ "C3v",
TRIGO,
LAUE3M,
},
- {
+ { /* 20 */
{0, 0, 2, 3, 1, 1, 3, 2, 0, 0},
"-3m ",
+ "D3d",
TRIGO,
LAUE3M,
},
- {
+ { /* 21 */
{0, 0, 0, 0, 0, 1, 1, 2, 0, 2},
"6 ",
+ "C6 ",
HEXA,
LAUE6M,
},
- {
+ { /* 22 */
{2, 0, 0, 1, 0, 1, 0, 2, 0, 0},
"-6 ",
+ "C3h",
HEXA,
LAUE6M,
},
- {
+ { /* 23 */
{2, 0, 2, 1, 1, 1, 1, 2, 0, 2},
"6/m ",
+ "C6h",
HEXA,
LAUE6M,
},
- {
+ { /* 24 */
{0, 0, 0, 0, 0, 1, 7, 2, 0, 2},
"622 ",
+ "D6 ",
HEXA,
LAUE6MMM,
},
- {
+ { /* 25 */
{0, 0, 0, 6, 0, 1, 1, 2, 0, 2},
"6mm ",
+ "C6v",
HEXA,
LAUE6MMM,
},
- {
+ { /* 26 */
{2, 0, 0, 4, 0, 1, 3, 2, 0, 0},
"-6m2 ",
+ "D3h",
HEXA,
LAUE6MMM,
},
- {
+ { /* 27 */
{2, 0, 2, 7, 1, 1, 7, 2, 0, 2},
"6/mmm",
+ "D6h",
HEXA,
LAUE6MMM,
},
- {
+ { /* 28 */
{0, 0, 0, 0, 0, 1, 3, 8, 0, 0},
"23 ",
+ "T ",
CUBIC,
LAUEM3,
},
- {
+ { /* 29 */
{0, 0, 8, 3, 1, 1, 3, 8, 0, 0},
"m-3 ",
+ "Th ",
CUBIC,
LAUEM3,
},
- {
+ { /* 30 */
{0, 0, 0, 0, 0, 1, 9, 8, 6, 0},
"432 ",
+ "O ",
CUBIC,
LAUEM3M,
},
- {
+ { /* 31 */
{0, 6, 0, 6, 0, 1, 3, 8, 0, 0},
"-43m ",
+ "Td ",
CUBIC,
LAUEM3M,
},
- {
+ { /* 32 */
{0, 6, 8, 9, 1, 1, 9, 8, 6, 0},
"m-3m ",
+ "Oh ",
CUBIC,
LAUEM3M,
}
@@ -235,7 +306,7 @@ static int rot_axes[][3] = {
{ 1, 1, 0},
{ 0, 1,-1},
{-1, 0, 1},
- { 1,-1, 0},
+ { 1,-1, 0},
{ 1, 1, 1}, /* 10 */
{-1, 1, 1},
{ 1,-1, 1},
@@ -302,79 +373,98 @@ static int rot_axes[][3] = {
{ 3,-1,-1},
};
-static void set_transformation_matrix(Pointgroup * pointgroup,
- SPGCONST int rotations[][3][3],
- const int num_rotations);
-static PointSymmetry get_pointsymmetry(SPGCONST int rotations[][3][3],
- const int num_rotations);
+static int get_pointgroup_number_by_rotations(SPGCONST int rotations[][3][3],
+ const int num_rotations);
static int get_pointgroup_number(SPGCONST PointSymmetry * pointsym);
static int get_pointgroup_class_table(int table[10],
- SPGCONST PointSymmetry * pointsym);
+ SPGCONST PointSymmetry * pointsym);
static int get_rotation_type(SPGCONST int rot[3][3]);
static int get_rotation_axis(SPGCONST int rot[3][3]);
static int get_orthogonal_axis(int ortho_axes[],
- SPGCONST int proper_rot[3][3],
- const int rot_order);
+ SPGCONST int proper_rot[3][3],
+ const int rot_order);
static int laue2m(int axes[3],
- SPGCONST PointSymmetry * pointsym);
+ SPGCONST PointSymmetry * pointsym);
-#ifdef DEBUG
+#ifdef SPGDEBUG
static int lauemmm(int axes[3],
- SPGCONST PointSymmetry * pointsym);
+ SPGCONST PointSymmetry * pointsym);
static int laue4m(int axes[3],
- SPGCONST PointSymmetry * pointsym);
+ SPGCONST PointSymmetry * pointsym);
static int laue4mmm(int axes[3],
- SPGCONST PointSymmetry * pointsym);
+ SPGCONST PointSymmetry * pointsym);
static int laue3(int axes[3],
- SPGCONST PointSymmetry * pointsym);
+ SPGCONST PointSymmetry * pointsym);
static int laue3m(int axes[3],
- SPGCONST PointSymmetry * pointsym);
+ SPGCONST PointSymmetry * pointsym);
static int lauem3m(int axes[3],
- SPGCONST PointSymmetry * pointsym);
+ SPGCONST PointSymmetry * pointsym);
#endif
static int laue_one_axis(int axes[3],
- SPGCONST PointSymmetry * pointsym,
- const int rot_order);
+ SPGCONST PointSymmetry * pointsym,
+ const int rot_order);
static int lauennn(int axes[3],
- SPGCONST PointSymmetry * pointsym,
- const int rot_order);
+ SPGCONST PointSymmetry * pointsym,
+ const int rot_order);
static int get_axes(int axes[3],
- const Laue laue,
- SPGCONST PointSymmetry * pointsym);
+ const Laue laue,
+ SPGCONST PointSymmetry * pointsym);
static void get_proper_rotation(int prop_rot[3][3],
- SPGCONST int rot[3][3]);
-static void get_transformation_matrix(int tmat[3][3],
- const int axes[3]);
+ SPGCONST int rot[3][3]);
+static void set_transformation_matrix(int tmat[3][3],
+ const int axes[3]);
static int is_exist_axis(const int axis_vec[3], const int axis_index);
static void sort_axes(int axes[3]);
-
-int ptg_get_pointgroup_number(const Symmetry * symmetry)
+/* Retrun pointgroup.number = 0 if failed */
+Pointgroup ptg_get_transformation_matrix(int transform_mat[3][3],
+ SPGCONST int rotations[][3][3],
+ const int num_rotations)
{
+ int i, j, pg_num;
+ int axes[3];
PointSymmetry pointsym;
+ Pointgroup pointgroup;
- pointsym = get_pointsymmetry(symmetry->rot,
- symmetry->size);
- return get_pointgroup_number(&pointsym);
-}
+ debug_print("ptg_get_transformation_matrix:\n");
-int ptg_get_pointgroup_number_by_rotations(SPGCONST int rotations[][3][3],
- const int num_rotations)
-{
- PointSymmetry pointsym;
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ transform_mat[i][j] = 0;
+ }
+ }
- pointsym = get_pointsymmetry(rotations, num_rotations);
- return get_pointgroup_number(&pointsym);
+ pg_num = get_pointgroup_number_by_rotations(rotations, num_rotations);
+
+ if (pg_num > 0) {
+ pointgroup = ptg_get_pointgroup(pg_num);
+ pointsym = ptg_get_pointsymmetry(rotations, num_rotations);
+ get_axes(axes, pointgroup.laue, &pointsym);
+ set_transformation_matrix(transform_mat, axes);
+ } else {
+ pointgroup = ptg_get_pointgroup(0);
+ }
+
+ return pointgroup;
}
Pointgroup ptg_get_pointgroup(const int pointgroup_number)
{
+ int i;
Pointgroup pointgroup;
PointgroupType pointgroup_type;
-
- pointgroup_type = pointgroup_data[ pointgroup_number ];
+
+ pointgroup.number = pointgroup_number;
+ pointgroup_type = pointgroup_data[pointgroup_number];
strcpy(pointgroup.symbol, pointgroup_type.symbol);
+ strcpy(pointgroup.schoenflies, pointgroup_type.schoenflies);
+ for (i = 0; i < 5; i++) {
+ if (pointgroup.symbol[i] == ' ') {pointgroup.symbol[i] = '\0';}
+ }
+ for (i = 0; i < 3; i++) {
+ if (pointgroup.schoenflies[i] == ' ') {pointgroup.schoenflies[i] = '\0';}
+ }
pointgroup.holohedry = pointgroup_type.holohedry;
pointgroup.laue = pointgroup_type.laue;
@@ -383,59 +473,8 @@ Pointgroup ptg_get_pointgroup(const int pointgroup_number)
return pointgroup;
}
-Centering ptg_get_transformation_matrix(double trans_mat[3][3],
- SPGCONST int rotations[][3][3],
- const int num_rotations)
-{
- int pg_num;
- double correction_mat[3][3];
- Centering centering;
- Pointgroup pointgroup;
-
- debug_print("ptg_get_transformation_matrix:\n");
-
- pg_num = ptg_get_pointgroup_number_by_rotations(rotations,
- num_rotations);
- pointgroup = ptg_get_pointgroup(pg_num);
- set_transformation_matrix(&pointgroup, rotations, num_rotations);
-
- debug_print("transformation matrix:\n");
- debug_print_matrix_i3(pointgroup.transform_mat);
-
- /* Centering is not determined only from symmetry operations */
- /* sometimes. Therefore centering and transformation matrix are */
- /* related. */
- centering = lat_get_centering(correction_mat,
- pointgroup.transform_mat,
- pointgroup.laue);
-
- mat_multiply_matrix_id3(trans_mat,
- pointgroup.transform_mat,
- correction_mat);
-
- debug_print("correction matrix:\n");
- debug_print_matrix_d3(correction_mat);
-
- return centering;
-}
-
-/* pointgroup is modified. */
-static void set_transformation_matrix(Pointgroup * pointgroup,
- SPGCONST int rotations[][3][3],
- const int num_rotations)
-{
- int axes[3];
- int transform_mat[3][3];
- PointSymmetry pointsym;
-
- pointsym = get_pointsymmetry(rotations, num_rotations);
- get_axes(axes, pointgroup->laue, &pointsym);
- get_transformation_matrix(transform_mat, axes);
- mat_copy_matrix_i3(pointgroup->transform_mat, transform_mat);
-}
-
-static PointSymmetry get_pointsymmetry(SPGCONST int rotations[][3][3],
- const int num_rotations)
+PointSymmetry ptg_get_pointsymmetry(SPGCONST int rotations[][3][3],
+ const int num_rotations)
{
int i, j;
PointSymmetry pointsym;
@@ -444,7 +483,7 @@ static PointSymmetry get_pointsymmetry(SPGCONST int rotations[][3][3],
for (i = 0; i < num_rotations; i++) {
for (j = 0; j < pointsym.size; j++) {
if (mat_check_identity_matrix_i3(rotations[i], pointsym.rot[j])) {
- goto escape;
+ goto escape;
}
}
mat_copy_matrix_i3(pointsym.rot[pointsym.size], rotations[i]);
@@ -456,6 +495,15 @@ static PointSymmetry get_pointsymmetry(SPGCONST int rotations[][3][3],
return pointsym;
}
+static int get_pointgroup_number_by_rotations(SPGCONST int rotations[][3][3],
+ const int num_rotations)
+{
+ PointSymmetry pointsym;
+
+ pointsym = ptg_get_pointsymmetry(rotations, num_rotations);
+ return get_pointgroup_number(&pointsym);
+}
+
static int get_pointgroup_number(SPGCONST PointSymmetry * pointsym)
{
int i, j, pg_num, counter;
@@ -463,19 +511,20 @@ static int get_pointgroup_number(SPGCONST PointSymmetry * pointsym)
PointgroupType pointgroup_type;
debug_print("get_pointgroup_number:");
-
+
+
+ pg_num = 0;
+
/* Get list of point symmetry operations */
if (! get_pointgroup_class_table(table, pointsym)) {
- pg_num = -1;
goto end;
}
- pg_num = -1;
- for (i = 0; i < 32; i++) {
+ for (i = 1; i < 33; i++) {
counter = 0;
- pointgroup_type = pointgroup_data[ i ];
+ pointgroup_type = pointgroup_data[i];
for (j = 0; j < 10; j++) {
- if (pointgroup_type.table[j] == table[j]) { counter++; }
+ if (pointgroup_type.table[j] == table[j]) {counter++;}
}
if (counter == 10) {
pg_num = i;
@@ -489,7 +538,7 @@ static int get_pointgroup_number(SPGCONST PointSymmetry * pointsym)
}
static int get_pointgroup_class_table(int table[10],
- SPGCONST PointSymmetry * pointsym)
+ SPGCONST PointSymmetry * pointsym)
{
/* Look-up table */
/* Operation -6 -4 -3 -2 -1 1 2 3 4 6 */
@@ -518,7 +567,7 @@ static int get_pointgroup_class_table(int table[10],
table[rot_type]++;
}
}
-
+
return 1;
err:
@@ -572,15 +621,15 @@ static int get_rotation_type(SPGCONST int rot[3][3])
default:
rot_type = -1;
break;
- }
+ }
}
return rot_type;
}
static int get_axes(int axes[3],
- const Laue laue,
- SPGCONST PointSymmetry * pointsym)
+ const Laue laue,
+ SPGCONST PointSymmetry * pointsym)
{
switch (laue) {
case LAUE1:
@@ -626,7 +675,7 @@ static int get_axes(int axes[3],
}
static int laue2m(int axes[3],
- SPGCONST PointSymmetry * pointsym)
+ SPGCONST PointSymmetry * pointsym)
{
int i, num_ortho_axis, norm, min_norm, is_found, tmpval;
int prop_rot[3][3], t_mat[3][3];
@@ -648,7 +697,7 @@ static int laue2m(int axes[3],
/* The second axis */
num_ortho_axis = get_orthogonal_axis(ortho_axes, prop_rot, 2);
if (! num_ortho_axis) { goto err; }
-
+
min_norm = 8;
is_found = 0;
for (i = 0; i < num_ortho_axis; i++) {
@@ -660,7 +709,7 @@ static int laue2m(int axes[3],
}
}
if (! is_found) { goto err; }
-
+
/* The third axis */
min_norm = 8;
is_found = 0;
@@ -674,7 +723,7 @@ static int laue2m(int axes[3],
}
if (! is_found) { goto err; }
- get_transformation_matrix(t_mat, axes);
+ set_transformation_matrix(t_mat, axes);
if (mat_get_determinant_i3(t_mat) < 0) {
tmpval = axes[0];
axes[0] = axes[2];
@@ -687,11 +736,11 @@ static int laue2m(int axes[3],
return 0;
}
-#ifdef DEBUG
+#ifdef SPGDEBUG
static int lauemmm(int axes[3],
- SPGCONST PointSymmetry * pointsym)
+ SPGCONST PointSymmetry * pointsym)
{
- int i, count, axis, tmpval;
+ int i, count, axis;
int prop_rot[3][3];
@@ -707,8 +756,8 @@ static int lauemmm(int axes[3],
axis = get_rotation_axis(prop_rot);
if (! ((axis == axes[0]) ||
- (axis == axes[1]) ||
- (axis == axes[2]))) {
+ (axis == axes[1]) ||
+ (axis == axes[2]))) {
axes[count] = axis;
count++;
}
@@ -720,7 +769,7 @@ static int lauemmm(int axes[3],
}
static int laue4m(int axes[3],
- SPGCONST PointSymmetry * pointsym)
+ SPGCONST PointSymmetry * pointsym)
{
int i, num_ortho_axis, norm, min_norm, is_found, tmpval;
int axis_vec[3];
@@ -741,7 +790,7 @@ static int laue4m(int axes[3],
/* The second axis */
num_ortho_axis = get_orthogonal_axis(ortho_axes, prop_rot, 4);
if (! num_ortho_axis) { goto err; }
-
+
min_norm = 8;
is_found = 0;
for (i = 0; i < num_ortho_axis; i++) {
@@ -753,7 +802,7 @@ static int laue4m(int axes[3],
}
}
if (! is_found) { goto err; }
-
+
/* The third axis */
mat_multiply_matrix_vector_i3(axis_vec, prop_rot, rot_axes[axes[0]]);
is_found = 0;
@@ -766,7 +815,7 @@ static int laue4m(int axes[3],
}
if (! is_found) { goto err; }
- get_transformation_matrix(t_mat, axes);
+ set_transformation_matrix(t_mat, axes);
if (mat_get_determinant_i3(t_mat) < 0) {
tmpval = axes[0];
axes[0] = axes[1];
@@ -780,7 +829,7 @@ static int laue4m(int axes[3],
}
static int laue4mmm(int axes[3],
- SPGCONST PointSymmetry * pointsym)
+ SPGCONST PointSymmetry * pointsym)
{
int i, is_found, tmpval, axis;
int prop_rot[3][3], prop_rot2[3][3], t_mat[3][3];
@@ -829,7 +878,7 @@ static int laue4mmm(int axes[3],
}
if (! is_found) { goto err; }
- get_transformation_matrix(t_mat, axes);
+ set_transformation_matrix(t_mat, axes);
if (mat_get_determinant_i3(t_mat) < 0) {
tmpval = axes[0];
axes[0] = axes[1];
@@ -843,7 +892,7 @@ static int laue4mmm(int axes[3],
}
static int laue3(int axes[3],
- SPGCONST PointSymmetry * pointsym)
+ SPGCONST PointSymmetry * pointsym)
{
int i, num_ortho_axis, norm, min_norm, is_found, tmpval;
int prop_rot[3][3], t_mat[3][3];
@@ -875,7 +924,7 @@ static int laue3(int axes[3],
}
}
if (! is_found) { goto err; }
-
+
/* The third axis */
mat_multiply_matrix_vector_i3(axis_vec, prop_rot, rot_axes[axes[0]]);
is_found = 0;
@@ -892,7 +941,7 @@ static int laue3(int axes[3],
}
if (! is_found) { goto err; }
- get_transformation_matrix(t_mat, axes);
+ set_transformation_matrix(t_mat, axes);
if (mat_get_determinant_i3(t_mat) < 0) {
tmpval = axes[0];
axes[0] = axes[1];
@@ -906,7 +955,7 @@ static int laue3(int axes[3],
}
static int laue3m(int axes[3],
- SPGCONST PointSymmetry * pointsym)
+ SPGCONST PointSymmetry * pointsym)
{
int i, is_found, tmpval, axis;
int prop_rot[3][3], prop_rot2[3][3], t_mat[3][3];
@@ -960,7 +1009,7 @@ static int laue3m(int axes[3],
}
if (! is_found) { goto err; }
- get_transformation_matrix(t_mat, axes);
+ set_transformation_matrix(t_mat, axes);
if (mat_get_determinant_i3(t_mat) < 0) {
tmpval = axes[0];
axes[0] = axes[1];
@@ -974,9 +1023,9 @@ static int laue3m(int axes[3],
}
static int lauem3m(int axes[3],
- SPGCONST PointSymmetry * pointsym)
+ SPGCONST PointSymmetry * pointsym)
{
- int i, count, axis, tmpval;
+ int i, count, axis;
int prop_rot[3][3];
for (i = 0; i < 3; i++) { axes[i] = -1; }
@@ -991,8 +1040,8 @@ static int lauem3m(int axes[3],
axis = get_rotation_axis(prop_rot);
if (! ((axis == axes[0]) ||
- (axis == axes[1]) ||
- (axis == axes[2]))) {
+ (axis == axes[1]) ||
+ (axis == axes[2]))) {
axes[count] = axis;
count++;
}
@@ -1005,34 +1054,34 @@ static int lauem3m(int axes[3],
#endif
static int laue_one_axis(int axes[3],
- SPGCONST PointSymmetry * pointsym,
- const int rot_order)
+ SPGCONST PointSymmetry * pointsym,
+ const int rot_order)
{
- int i, j, num_ortho_axis, det, min_det, is_found, tmpval;
+ int i, j, num_ortho_axis, det, is_found, tmpval;
int axis_vec[3], tmp_axes[3];
int prop_rot[3][3], t_mat[3][3];
int ortho_axes[NUM_ROT_AXES];
debug_print("laue_one_axis with rot_order %d\n", rot_order);
-
+
for (i = 0; i < pointsym->size; i++) {
get_proper_rotation(prop_rot, pointsym->rot[i]);
/* Search foud-fold rotation */
if (rot_order == 4) {
if (mat_get_trace_i3(prop_rot) == 1) {
- /* The first axis */
- axes[2] = get_rotation_axis(prop_rot);
- break;
+ /* The first axis */
+ axes[2] = get_rotation_axis(prop_rot);
+ break;
}
}
/* Search three-fold rotation */
if (rot_order == 3) {
if (mat_get_trace_i3(prop_rot) == 0) {
- /* The first axis */
- axes[2] = get_rotation_axis(prop_rot);
- break;
+ /* The first axis */
+ axes[2] = get_rotation_axis(prop_rot);
+ break;
}
}
}
@@ -1041,43 +1090,44 @@ static int laue_one_axis(int axes[3],
num_ortho_axis = get_orthogonal_axis(ortho_axes, prop_rot, rot_order);
if (! num_ortho_axis) { goto err; }
+ tmp_axes[1] = -1;
tmp_axes[2] = axes[2];
- min_det = 4;
- is_found = 0;
for (i = 0; i < num_ortho_axis; i++) {
+ is_found = 0;
tmp_axes[0] = ortho_axes[i];
mat_multiply_matrix_vector_i3(axis_vec,
- prop_rot,
- rot_axes[tmp_axes[0]]);
+ prop_rot,
+ rot_axes[tmp_axes[0]]);
for (j = 0; j < num_ortho_axis; j++) {
is_found = is_exist_axis(axis_vec, ortho_axes[j]);
if (is_found == 1) {
- tmp_axes[1] = ortho_axes[j];
- break;
+ tmp_axes[1] = ortho_axes[j];
+ break;
}
if (is_found == -1) {
- tmp_axes[1] = ortho_axes[j] + NUM_ROT_AXES;
- break;
+ tmp_axes[1] = ortho_axes[j] + NUM_ROT_AXES;
+ break;
}
}
- get_transformation_matrix(t_mat, tmp_axes);
- det = mat_get_determinant_i3(t_mat);
- if (det < 0) { det = -det; }
- if (det < min_det) {
- min_det = det;
+ if (!is_found) { continue; }
+
+ set_transformation_matrix(t_mat, tmp_axes);
+ det = abs(mat_get_determinant_i3(t_mat));
+ if (det < 4) { /* to avoid F-center choice det=4 */
axes[0] = tmp_axes[0];
axes[1] = tmp_axes[1];
+ goto end;
}
-
- if (is_found) { goto end; }
}
err: /* axes are not correctly found. */
+ warning_print("spglib: Secondary axis is not found.");
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
return 0;
end:
- get_transformation_matrix(t_mat, axes);
+ set_transformation_matrix(t_mat, axes);
if (mat_get_determinant_i3(t_mat) < 0) {
tmpval = axes[0];
axes[0] = axes[1];
@@ -1093,26 +1143,29 @@ static int laue_one_axis(int axes[3],
}
static int lauennn(int axes[3],
- SPGCONST PointSymmetry * pointsym,
- const int rot_order)
+ SPGCONST PointSymmetry * pointsym,
+ const int rot_order)
{
int i, count, axis;
int prop_rot[3][3];
- for (i = 0; i < 3; i++) { axes[i] = -1; }
+ for (i = 0; i < 3; i++) {
+ axes[i] = -1;
+ }
+
count = 0;
for (i = 0; i < pointsym->size; i++) {
get_proper_rotation(prop_rot, pointsym->rot[i]);
/* Search two- or four-fold rotation */
if ((mat_get_trace_i3(prop_rot) == -1 && rot_order == 2) ||
- (mat_get_trace_i3(prop_rot) == 1 && rot_order == 4)) {
+ (mat_get_trace_i3(prop_rot) == 1 && rot_order == 4)) {
axis = get_rotation_axis(prop_rot);
if (! ((axis == axes[0]) ||
- (axis == axes[1]) ||
- (axis == axes[2]))) {
- axes[count] = axis;
- count++;
+ (axis == axes[1]) ||
+ (axis == axes[2]))) {
+ axes[count] = axis;
+ count++;
}
}
}
@@ -1136,26 +1189,26 @@ static int get_rotation_axis(SPGCONST int proper_rot[3][3])
for (i = 0; i < NUM_ROT_AXES; i++) {
mat_multiply_matrix_vector_i3(vec, proper_rot, rot_axes[i]);
if (vec[0] == rot_axes[i][0] &&
- vec[1] == rot_axes[i][1] &&
- vec[2] == rot_axes[i][2]) {
+ vec[1] == rot_axes[i][1] &&
+ vec[2] == rot_axes[i][2]) {
axis = i;
break;
}
}
-
+
end:
-#ifdef DEBUG
+#ifdef SPGDEBUG
if (axis == -1) {
printf("rotation axis cound not found.\n");
}
#endif
-
+
return axis;
}
static int get_orthogonal_axis(int ortho_axes[],
- SPGCONST int proper_rot[3][3],
- const int rot_order)
+ SPGCONST int proper_rot[3][3],
+ const int rot_order)
{
int i, num_ortho_axis;
int vec[3];
@@ -1169,12 +1222,12 @@ static int get_orthogonal_axis(int ortho_axes[],
mat_multiply_matrix_i3(rot, proper_rot, rot);
mat_add_matrix_i3(sum_rot, rot, sum_rot);
}
-
+
for (i = 0; i < NUM_ROT_AXES; i++) {
mat_multiply_matrix_vector_i3(vec, sum_rot, rot_axes[i]);
if (vec[0] == 0 &&
- vec[1] == 0 &&
- vec[2] == 0) {
+ vec[1] == 0 &&
+ vec[2] == 0) {
ortho_axes[num_ortho_axis] = i;
num_ortho_axis++;
}
@@ -1184,7 +1237,7 @@ static int get_orthogonal_axis(int ortho_axes[],
}
static void get_proper_rotation(int prop_rot[3][3],
- SPGCONST int rot[3][3])
+ SPGCONST int rot[3][3])
{
if (mat_get_determinant_i3(rot) == -1) {
mat_multiply_matrix_i3(prop_rot, inversion, rot);
@@ -1193,11 +1246,11 @@ static void get_proper_rotation(int prop_rot[3][3],
}
}
-static void get_transformation_matrix(int tmat[3][3],
- const int axes[3])
+static void set_transformation_matrix(int tmat[3][3],
+ const int axes[3])
{
int i, j, s[3];
-
+
for (i = 0; i < 3; i++) {
if (axes[i] < NUM_ROT_AXES) {
s[i] = 1;
@@ -1246,11 +1299,10 @@ static void sort_axes(int axes[3])
axes[2] = axis;
}
- get_transformation_matrix(t_mat, axes);
+ set_transformation_matrix(t_mat, axes);
if (mat_get_determinant_i3(t_mat) < 0) {
axis = axes[1];
axes[1] = axes[2];
axes[2] = axis;
}
}
-
diff --git a/src/pointgroup.h b/src/pointgroup.h
index 33cf12a..1039ca7 100644
--- a/src/pointgroup.h
+++ b/src/pointgroup.h
@@ -1,36 +1,81 @@
-/* pointgroup.h */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __pointgroup_H__
#define __pointgroup_H__
+#include "mathfunc.h"
#include "symmetry.h"
-#include "lattice.h"
typedef enum {
- NONE,
+ HOLOHEDRY_NONE,
TRICLI,
MONOCLI,
ORTHO,
TETRA,
- RHOMB,
TRIGO,
HEXA,
CUBIC,
} Holohedry;
+typedef enum {
+ LAUE_NONE,
+ LAUE1,
+ LAUE2M,
+ LAUEMMM,
+ LAUE4M,
+ LAUE4MMM,
+ LAUE3,
+ LAUE3M,
+ LAUE6M,
+ LAUE6MMM,
+ LAUEM3,
+ LAUEM3M,
+} Laue;
+
typedef struct {
+ int number;
char symbol[6];
+ char schoenflies[4];
Holohedry holohedry;
Laue laue;
- int transform_mat[3][3];
} Pointgroup;
-int ptg_get_pointgroup_number( const Symmetry * symmetry );
-int ptg_get_pointgroup_number_by_rotations( SPGCONST int rotations[][3][3],
- const int num_rotations );
-Pointgroup ptg_get_pointgroup( const int pointgroup_number );
-Centering ptg_get_transformation_matrix( double trans_mat[3][3],
+Pointgroup ptg_get_transformation_matrix(int transform_mat[3][3],
SPGCONST int rotations[][3][3],
- const int num_rotations );
+ const int num_rotations);
+Pointgroup ptg_get_pointgroup(const int pointgroup_number);
+PointSymmetry ptg_get_pointsymmetry(SPGCONST int rotations[][3][3],
+ const int num_rotations);
#endif
diff --git a/src/primitive.c b/src/primitive.c
index 5c68072..444dba6 100644
--- a/src/primitive.c
+++ b/src/primitive.c
@@ -1,610 +1,454 @@
-/* primitive.c */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#include <stdio.h>
#include <stdlib.h>
#include "cell.h"
-#include "lattice.h"
+#include "delaunay.h"
#include "mathfunc.h"
#include "primitive.h"
#include "symmetry.h"
#include "debug.h"
-#define INCREASE_RATE 2.0
#define REDUCE_RATE 0.95
-static double current_tolerance;
-
-
-static Primitive get_primitive_and_pure_translation(SPGCONST Cell * cell,
- const double symprec);
-static Cell * get_primitive_with_mapping_table(int * mapping_table,
- SPGCONST Cell * cell,
- const double symprec);
-static int set_primitive_positions(Cell * primitive_cell,
- const VecDBL * position,
- const Cell * cell,
- int * const * table);
-static VecDBL * get_positions_primitive(SPGCONST Cell * cell,
- SPGCONST double prim_lat[3][3]);
-static int get_overlap_table(int ** table,
- const int cell_size,
- SPGCONST Cell *primitive_cell,
- const VecDBL * position,
- const double symprec);
-static int check_overlap_table(SPGCONST int **overlap_table,
- const int cell_size,
- const int ratio);
-static void free_overlap_table(int ** table, const int size);
-static int ** allocate_overlap_table(const int size);
-static Cell * get_cell_with_smallest_lattice(SPGCONST Cell * cell,
- const double symprec);
-static Cell * get_primitive(int * mapping_table,
- SPGCONST Cell * cell,
- const VecDBL * pure_trans,
- const double symprec);
-static int trim_cell(Cell * primitive_cell,
- int * mapping_table,
- SPGCONST Cell * cell,
- const double symprec);
-static int get_primitive_lattice_vectors_iterative(double prim_lattice[3][3],
- SPGCONST Cell * cell,
- const VecDBL * pure_trans,
- const double symprec);
+#define NUM_ATTEMPT 20
+
+static Primitive * get_primitive(const Cell * cell,
+ const double symprec,
+ const double angle_tolerance);
+static Cell * get_cell_with_smallest_lattice(const Cell * cell,
+ const double symprec);
+static Cell * get_primitive_cell(int * mapping_table,
+ const Cell * cell,
+ const VecDBL * pure_trans,
+ const double symprec,
+ const double angle_tolerance);
+static int get_primitive_lattice_vectors_iterative
+(double prim_lattice[3][3],
+ const Cell * cell,
+ const VecDBL * pure_trans,
+ const double symprec,
+ const double angle_tolerance);
static int get_primitive_lattice_vectors(double prim_lattice[3][3],
- const VecDBL * vectors,
- SPGCONST Cell * cell,
- const double symprec);
+ const VecDBL * vectors,
+ const Cell * cell,
+ const double symprec);
static VecDBL * get_translation_candidates(const VecDBL * pure_trans);
-static void set_current_tolerance(const double tolerance);
-
-Cell * prm_get_primitive(SPGCONST Cell * cell,
- const double symprec)
-{
- int *mapping_table;
- Cell *primitive_cell;
-
- mapping_table = (int*) malloc(sizeof(int) * cell->size);
- primitive_cell = prm_get_primitive_with_mapping_table(mapping_table,
- cell,
- symprec);
- free(mapping_table);
- return primitive_cell;
-}
-
-Primitive prm_get_primitive_and_pure_translations(SPGCONST Cell * cell,
- const double symprec)
-{
- return get_primitive_and_pure_translation(cell, symprec);
-}
-
-Cell * prm_get_primitive_with_mapping_table(int * mapping_table,
- SPGCONST Cell * cell,
- const double symprec)
+static VecDBL * collect_pure_translations(const Symmetry *symmetry);
+static int get_primitive_in_translation_space(double t_mat[3][3],
+ const VecDBL *pure_trans,
+ const int symmetry_size,
+ const double symprec);
+static Symmetry * collect_primitive_symmetry(const Symmetry *symmetry,
+ const int primsym_size);
+
+/* return NULL if failed */
+Primitive * prm_alloc_primitive(const int size)
{
- return get_primitive_with_mapping_table(mapping_table,
- cell,
- symprec);
-}
-
-double prm_get_current_tolerance(void)
-{
- debug_print("prm_get_current_tolerance %f\n", current_tolerance);
- return current_tolerance;
-}
+ Primitive *primitive;
+ int i;
-/* If primitive could not be found, primitive->size = 0 is returned. */
-/* If cell is already primitive cell, */
-/* primitive cell with smallest lattice is returned. */
-static Primitive get_primitive_and_pure_translation(SPGCONST Cell * cell,
- const double symprec)
-{
- int attempt, is_found = 0;
- double tolerance;
- int *mapping_table;
- Primitive primitive;
+ primitive = NULL;
- tolerance = symprec;
- for (attempt = 0; attempt < 100; attempt++) {
- primitive.pure_trans = sym_get_pure_translation(cell, tolerance);
- if (primitive.pure_trans->size == 0) {
- mat_free_VecDBL(primitive.pure_trans);
- continue;
- }
+ if ((primitive = (Primitive*) malloc(sizeof(Primitive))) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ return NULL;
+ }
- if (primitive.pure_trans->size == 1) {
- primitive.cell = get_cell_with_smallest_lattice(cell, tolerance);
- } else {
- mapping_table = (int*) malloc(sizeof(int) * cell->size);
- primitive.cell = get_primitive(mapping_table,
- cell,
- primitive.pure_trans,
- tolerance);
- free(mapping_table);
- }
-
- if (primitive.cell->size > 0) {
- is_found = 1;
- break;
+ primitive->cell = NULL;
+ primitive->mapping_table = NULL;
+ primitive->size = size;
+ primitive->tolerance = 0;
+ primitive->angle_tolerance = -1.0;
+
+ if (size > 0) {
+ if ((primitive->mapping_table = (int*) malloc(sizeof(int) * size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ warning_print("(Primitive, line %d, %s).\n", __LINE__, __FILE__);
+ free(primitive);
+ primitive = NULL;
+ return NULL;
}
-
- cel_free_cell(primitive.cell);
- mat_free_VecDBL(primitive.pure_trans);
-
- tolerance *= REDUCE_RATE;
- warning_print("spglib: Reduce tolerance to %f ", tolerance);
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
}
- if (! is_found) {
- primitive.cell = cel_alloc_cell(0);
- primitive.pure_trans = mat_alloc_VecDBL(0);
+ for (i = 0; i < size; i++) {
+ primitive->mapping_table[i] = -1;
}
return primitive;
}
-/* If cell is already primitive cell, */
-/* primitive cell with smallest lattice is returned. */
-static Cell * get_primitive_with_mapping_table(int * mapping_table,
- SPGCONST Cell * cell,
- const double symprec)
+void prm_free_primitive(Primitive * primitive)
{
- int i, attempt;
- double tolerance;
- Cell *primitive_cell;
- VecDBL *pure_trans;
-
- tolerance = symprec;
- for (attempt = 0; attempt < 100; attempt++) {
- pure_trans = sym_get_pure_translation(cell, tolerance);
- if (pure_trans->size == 1) {
- primitive_cell = get_cell_with_smallest_lattice(cell, symprec);
- for (i = 0; i < cell->size; i++) {
- mapping_table[i] = i;
- }
- goto ret;
- }
- if (pure_trans->size > 1) {
- primitive_cell = get_primitive(mapping_table, cell, pure_trans, tolerance);
- if (primitive_cell->size > 0) {
- goto ret;
- }
- cel_free_cell(primitive_cell);
+ if (primitive != NULL) {
+ if (primitive->mapping_table != NULL) {
+ free(primitive->mapping_table);
+ primitive->mapping_table = NULL;
}
- tolerance *= REDUCE_RATE;
- warning_print("spglib: Tolerance is reduced to %f at attempt %d\n", tolerance, attempt);
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
- mat_free_VecDBL(pure_trans);
+ if (primitive->cell != NULL) {
+ cel_free_cell(primitive->cell);
+ primitive->cell = NULL;
+ }
+ free(primitive);
}
-
- /* not found: I hope this will not happen. */
- warning_print("spglib: Primitive cell could not be found ");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
- return cel_alloc_cell(0);
-
- ret:
- mat_free_VecDBL(pure_trans);
- set_current_tolerance(tolerance);
- return primitive_cell;
}
-static void set_current_tolerance(const double tolerance)
+/* Return NULL if failed */
+Primitive * prm_get_primitive(const Cell * cell,
+ const double symprec,
+ const double angle_tolerance)
{
- current_tolerance = tolerance;
+ return get_primitive(cell, symprec, angle_tolerance);
}
-static Cell * get_cell_with_smallest_lattice(SPGCONST Cell * cell,
- const double symprec)
+Symmetry * prm_get_primitive_symmetry(const Symmetry *symmetry,
+ const double symprec)
{
- int i, j;
- double min_lat[3][3], trans_mat[3][3], inv_lat[3][3];
- Cell * smallest_cell;
-
- debug_print("get_cell_with_smallest_lattice:\n");
-
- if (lat_smallest_lattice_vector(min_lat,
- cell->lattice,
- symprec)) {
- mat_inverse_matrix_d3(inv_lat, min_lat, 0);
- mat_multiply_matrix_d3(trans_mat, inv_lat, cell->lattice);
- smallest_cell = cel_alloc_cell(cell->size);
- mat_copy_matrix_d3(smallest_cell->lattice, min_lat);
- for (i = 0; i < cell->size; i++) {
- smallest_cell->types[i] = cell->types[i];
- mat_multiply_matrix_vector_d3(smallest_cell->position[i],
- trans_mat, cell->position[i]);
- for (j = 0; j < 3; j++) {
- cell->position[i][j] -= mat_Nint(cell->position[i][j]);
- }
- }
- } else {
- smallest_cell = cel_alloc_cell(0);
- }
-
- return smallest_cell;
-}
+ int i, primsym_size;
+ VecDBL *pure_trans;
+ Symmetry *prim_symmetry;
+ double t_mat[3][3], t_mat_inv[3][3], tmp_mat[3][3];
-/* If primitive could not be found, primitive->size = 0 is returned. */
-static Cell * get_primitive(int * mapping_table,
- SPGCONST Cell * cell,
- const VecDBL * pure_trans,
- const double symprec)
-{
- int multi;
- double prim_lattice[3][3];
- Cell * primitive_cell;
+ pure_trans = NULL;
+ prim_symmetry = NULL;
- debug_print("get_primitive:\n");
+ if ((pure_trans = collect_pure_translations(symmetry)) == NULL) {
+ return NULL;
+ }
+ primsym_size = symmetry->size / pure_trans->size;
- /* Primitive lattice vectors are searched. */
- /* To be consistent, sometimes tolerance is decreased iteratively. */
- /* The descreased tolerance is stored in 'static double tolerance'. */
- multi = get_primitive_lattice_vectors_iterative(prim_lattice,
- cell,
- pure_trans,
- symprec);
- if (! multi) {
- goto not_found;
+ /* t_mat: T=(Lp^-1.L) where L is identity matrix. */
+ if (get_primitive_in_translation_space
+ (t_mat_inv, pure_trans, symmetry->size, symprec) == 0) {
+ mat_free_VecDBL(pure_trans);
+ pure_trans = NULL;
+ return NULL;
}
- primitive_cell = cel_alloc_cell(cell->size / multi);
+ mat_free_VecDBL(pure_trans);
+ pure_trans = NULL;
- if (! lat_smallest_lattice_vector(primitive_cell->lattice,
- prim_lattice,
- symprec)) {
- cel_free_cell(primitive_cell);
- goto not_found;
+ if (!mat_inverse_matrix_d3(t_mat, t_mat_inv, symprec)) {
+ return NULL;
}
- /* Fit atoms into new primitive cell */
- if (! trim_cell(primitive_cell, mapping_table, cell, symprec)) {
- cel_free_cell(primitive_cell);
- goto not_found;
+ /* Collect operations for primitive cell from operations in 'symmetry' */
+ if ((prim_symmetry = collect_primitive_symmetry(symmetry, primsym_size)) ==
+ NULL) {
+ return NULL;
}
- /* found */
- return primitive_cell;
-
- not_found:
- primitive_cell = cel_alloc_cell(0);
- warning_print("spglib: Primitive cell could not be found ");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
- return primitive_cell;
-}
-
-
-static int trim_cell(Cell * primitive_cell,
- int * mapping_table,
- SPGCONST Cell * cell,
- const double symprec)
-{
- int i, index_prim_atom;
- VecDBL * position;
- int **overlap_table;
-
- overlap_table = allocate_overlap_table(cell->size);
-
- /* Get reduced positions of atoms in original cell with respect to */
- /* primitive lattice */
- position = get_positions_primitive(cell, primitive_cell->lattice);
-
- /* Create overlapping table */
- if (! get_overlap_table(overlap_table,
- cell->size,
- primitive_cell,
- position,
- symprec)) {goto err;}
+ /* Overwrite prim_symmetry by R_p = TRT^-1, t_p = T.t */
+ for (i = 0; i < prim_symmetry->size; i++) {
+ mat_multiply_matrix_di3(tmp_mat, t_mat, prim_symmetry->rot[i]);
+ mat_multiply_matrix_d3(tmp_mat, tmp_mat, t_mat_inv);
+ mat_cast_matrix_3d_to_3i(prim_symmetry->rot[i], tmp_mat);
+ mat_multiply_matrix_vector_d3(prim_symmetry->trans[i],
+ t_mat, prim_symmetry->trans[i]);
+ }
- /* Create original cell to primitive cell mapping table */
- index_prim_atom = 0;
- for (i = 0; i < cell->size; i++) {
- if (overlap_table[i][0] == i) {
- mapping_table[i] = index_prim_atom;
- index_prim_atom++;
- } else {
- mapping_table[i] = mapping_table[overlap_table[i][0]];
+#ifdef SPGDEBUG
+ int j;
+ for (i = 0; i < prim_symmetry->size; i++) {
+ fprintf(stderr, "--- %d ---\n", i + 1);
+ for (j = 0; j < 3; j++) {
+ fprintf(stderr, "%d %d %d\n",
+ prim_symmetry->rot[i][j][0],
+ prim_symmetry->rot[i][j][1],
+ prim_symmetry->rot[i][j][2]);
}
+ fprintf(stderr, "%f %f %f\n",
+ prim_symmetry->trans[i][0],
+ prim_symmetry->trans[i][1],
+ prim_symmetry->trans[i][2]);
}
+#endif
- /* Copy positions. Positions of overlapped atoms are averaged. */
- if (! set_primitive_positions(primitive_cell,
- position,
- cell,
- overlap_table)) {goto err;}
-
- mat_free_VecDBL(position);
- free_overlap_table(overlap_table, cell->size);
- return 1;
-
- err:
- mat_free_VecDBL(position);
- free_overlap_table(overlap_table, cell->size);
- return 0;
+ return prim_symmetry;
}
-static int set_primitive_positions(Cell * primitive_cell,
- const VecDBL * position,
- const Cell * cell,
- int * const * table)
+/* Return NULL if failed */
+static Primitive * get_primitive(const Cell * cell,
+ const double symprec,
+ const double angle_tolerance)
{
- int i, j, k, ratio, index_prim_atom;
- int *is_equivalent;
-
- is_equivalent = (int*)malloc(cell->size * sizeof(int));
- for (i = 0; i < cell->size; i++) {
- is_equivalent[i] = 0;
- }
- ratio = cell->size / primitive_cell->size;
-
- /* Copy positions. Positions of overlapped atoms are averaged. */
- index_prim_atom = 0;
- for (i = 0; i < cell->size; i++) {
+ int i, attempt;
+ double tolerance;
+ Primitive *primitive;
+ VecDBL * pure_trans;
- if (! is_equivalent[i]) {
- primitive_cell->types[index_prim_atom] = cell->types[i];
+ debug_print("get_primitive (tolerance = %f):\n", symprec);
- for (j = 0; j < 3; j++) {
- primitive_cell->position[index_prim_atom][j] = 0;
- }
+ primitive = NULL;
+ pure_trans = NULL;
- for (j = 0; j < ratio; j++) { /* Loop for averaging positions */
- is_equivalent[table[i][j]] = 1;
-
- for (k = 0; k < 3; k++) {
- /* boundary treatment */
- /* One is at right and one is at left or vice versa. */
- if (mat_Dabs(position->vec[table[i][0]][k] -
- position->vec[table[i][j]][k]) > 0.5) {
- if (position->vec[table[i][j]][k] < 0) {
- primitive_cell->position[index_prim_atom][k] =
- primitive_cell->position[index_prim_atom][k] +
- position->vec[table[i][j]][k] + 1;
- } else {
- primitive_cell->position[index_prim_atom][k] =
- primitive_cell->position[index_prim_atom][k] +
- position->vec[table[i][j]][k] - 1;
- }
-
- } else {
- primitive_cell->position[index_prim_atom][k] =
- primitive_cell->position[index_prim_atom][k] +
- position->vec[table[i][j]][k];
- }
- }
-
- }
+ if ((primitive = prm_alloc_primitive(cell->size)) == NULL) {
+ goto notfound;
+ }
- for (j = 0; j < 3; j++) { /* take average and reduce */
- primitive_cell->position[index_prim_atom][j] =
- primitive_cell->position[index_prim_atom][j] / ratio;
- primitive_cell->position[index_prim_atom][j] =
- primitive_cell->position[index_prim_atom][j] -
- mat_Nint(primitive_cell->position[index_prim_atom][j]);
+ tolerance = symprec;
+ for (attempt = 0; attempt < NUM_ATTEMPT; attempt++) {
+ debug_print("get_primitive (attempt = %d):\n", attempt);
+ if ((pure_trans = sym_get_pure_translation(cell, tolerance)) != NULL) {
+ if (pure_trans->size == 1) {
+ if ((primitive->cell = get_cell_with_smallest_lattice(cell, tolerance))
+ != NULL) {
+ for (i = 0; i < cell->size; i++) {
+ primitive->mapping_table[i] = i;
+ }
+ goto found;
+ }
+ } else {
+ if ((primitive->cell = get_primitive_cell(primitive->mapping_table,
+ cell,
+ pure_trans,
+ tolerance,
+ angle_tolerance)) != NULL) {
+ goto found;
+ }
}
- index_prim_atom++;
}
- }
- free(is_equivalent);
- is_equivalent = NULL;
+ mat_free_VecDBL(pure_trans);
+ pure_trans = NULL;
- if (! (index_prim_atom == primitive_cell->size)) {
- warning_print("spglib: Atomic positions of primitive cell could not be determined ");
+ tolerance *= REDUCE_RATE;
+ warning_print("spglib: Reduce tolerance to %f ", tolerance);
warning_print("(line %d, %s).\n", __LINE__, __FILE__);
- goto err;
}
- return 1;
+ prm_free_primitive(primitive);
+ primitive = NULL;
- err:
- return 0;
+ notfound:
+ return NULL;
+
+ found:
+ primitive->tolerance = tolerance;
+ primitive->angle_tolerance = angle_tolerance;
+ mat_free_VecDBL(pure_trans);
+ pure_trans = NULL;
+ return primitive;
}
-static VecDBL * get_positions_primitive(SPGCONST Cell * cell,
- SPGCONST double prim_lat[3][3])
+/* Return NULL if failed */
+static Cell * get_cell_with_smallest_lattice(const Cell * cell,
+ const double symprec)
{
int i, j;
- double tmp_matrix[3][3], axis_inv[3][3];
- VecDBL * position;
+ double min_lat[3][3], trans_mat[3][3], inv_lat[3][3];
+ Cell * smallest_cell;
+
+ debug_print("get_cell_with_smallest_lattice:\n");
+
+ smallest_cell = NULL;
+
+ if (!del_delaunay_reduce(min_lat, cell->lattice, symprec)) {
+ return NULL;
+ }
- position = mat_alloc_VecDBL(cell->size);
+ mat_inverse_matrix_d3(inv_lat, min_lat, 0);
+ mat_multiply_matrix_d3(trans_mat, inv_lat, cell->lattice);
- mat_inverse_matrix_d3(tmp_matrix, prim_lat, 0);
- mat_multiply_matrix_d3(axis_inv, tmp_matrix, cell->lattice);
+ if ((smallest_cell = cel_alloc_cell(cell->size)) == NULL) {
+ return NULL;
+ }
- /* Send atoms into the primitive cell */
+ mat_copy_matrix_d3(smallest_cell->lattice, min_lat);
for (i = 0; i < cell->size; i++) {
- mat_multiply_matrix_vector_d3(position->vec[i],
- axis_inv, cell->position[i]);
+ smallest_cell->types[i] = cell->types[i];
+ mat_multiply_matrix_vector_d3(smallest_cell->position[i],
+ trans_mat, cell->position[i]);
for (j = 0; j < 3; j++) {
- position->vec[i][j] -= mat_Nint(position->vec[i][j]);
+ smallest_cell->position[i][j] = mat_Dmod1(smallest_cell->position[i][j]);
}
}
- return position;
+ return smallest_cell;
}
-
-/* If overlap_table is correctly obtained, */
-/* shape of overlap_table will be (cell->size, cell->size / primitive->size). */
-static int get_overlap_table(int **overlap_table,
- const int cell_size,
- SPGCONST Cell *primitive_cell,
- const VecDBL * position,
- const double symprec)
+/* Return NULL if failed */
+static Cell * get_primitive_cell(int * mapping_table,
+ const Cell * cell,
+ const VecDBL * pure_trans,
+ const double symprec,
+ const double angle_tolerance)
{
- int i, j, attempt, num_overlap, ratio;
- double trim_tolerance;
-
- ratio = cell_size / primitive_cell->size;
- trim_tolerance = symprec;
+ int multi;
+ double prim_lat[3][3], smallest_lat[3][3];
+ Cell * primitive_cell;
- for (attempt = 0; attempt < 100; attempt++) {
- /* Each value of -1 has to be overwritten by 0 or positive numbers. */
- for (i = 0; i < cell_size; i++) {
- for (j = 0; j < cell_size; j++) {
- overlap_table[i][j] = -1;
- }
- }
+ debug_print("get_primitive_cell:\n");
- for (i = 0; i < cell_size; i++) {
- num_overlap = 0;
- for (j = 0; j < cell_size; j++) {
- if (cel_is_overlap(position->vec[i],
- position->vec[j],
- primitive_cell->lattice,
- trim_tolerance)) {
- overlap_table[i][num_overlap] = j;
- num_overlap++;
- }
- }
- }
+ primitive_cell = NULL;
- if (check_overlap_table(overlap_table, cell_size, ratio)) {
- goto found;
- }
-
- if (num_overlap < ratio) {
- trim_tolerance *= INCREASE_RATE;
- warning_print("spglib: Increase tolerance to %f ", trim_tolerance);
- } else {
- trim_tolerance *= REDUCE_RATE;
- warning_print("spglib: Reduce tolerance to %f ", trim_tolerance);
- }
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+ /* Primitive lattice vectors are searched. */
+ /* To be consistent, sometimes tolerance is decreased iteratively. */
+ /* The descreased tolerance is stored in 'static double tolerance'. */
+ multi = get_primitive_lattice_vectors_iterative(prim_lat,
+ cell,
+ pure_trans,
+ symprec,
+ angle_tolerance);
+ if (! multi) {
+ goto not_found;
}
- warning_print("spglib: Could not trim cell into primitive ");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
- return 0;
-
- found:
- return 1;
-
-}
-
-
-static int check_overlap_table(SPGCONST int **overlap_table,
- const int cell_size,
- const int ratio) {
- int i, j, index_compared, all_ok;
-
- all_ok = 1;
- for (i = 0; i < cell_size; i++) {
- index_compared = overlap_table[i][0];
- for (j = 0; j < cell_size; j++) {
- if (! (overlap_table[i][j] == overlap_table[index_compared][j])) {
- all_ok = 0;
- break;
- }
- if (j < ratio) {
- if (overlap_table[i][j] == -1) {
- all_ok = 0;
- break;
- }
- } else {
- if (overlap_table[i][j] > -1) {
- all_ok = 0;
- break;
- }
- }
- }
- if (! all_ok) {
- break;
- }
+ if (! del_delaunay_reduce(smallest_lat, prim_lat, symprec)) {
+ goto not_found;
}
- return all_ok;
-}
-static void free_overlap_table(int **table, const int size)
-{
- int i;
- for (i = 0; i < size; i++) {
- free(table[i]);
- table[i] = NULL;
+ /* Fit atoms into new primitive cell */
+ if ((primitive_cell = cel_trim_cell(mapping_table,
+ smallest_lat,
+ cell,
+ symprec)) == NULL) {
+ goto not_found;
}
- free(table);
- table = NULL;
-}
-static int ** allocate_overlap_table(const int size)
-{
- int i;
- int **table = (int**)malloc(size * sizeof(int*));
- for (i = 0; i < size; i++) {
- table[i] = (int*)malloc(size * sizeof(int));
- }
- return table;
+ /* found */
+ return primitive_cell;
+
+ not_found:
+ warning_print("spglib: Primitive cell could not be found ");
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+ return NULL;
}
+/* Return 0 if failed */
static int get_primitive_lattice_vectors_iterative(double prim_lattice[3][3],
- SPGCONST Cell * cell,
- const VecDBL * pure_trans,
- const double symprec)
+ const Cell * cell,
+ const VecDBL * pure_trans,
+ const double symprec,
+ const double angle_tolerance)
{
int i, multi, attempt;
double tolerance;
VecDBL * vectors, * pure_trans_reduced, *tmp_vec;
+ vectors = NULL;
+ pure_trans_reduced = NULL;
+ tmp_vec = NULL;
+
tolerance = symprec;
- pure_trans_reduced = mat_alloc_VecDBL(pure_trans->size);
+
+ if ((pure_trans_reduced = mat_alloc_VecDBL(pure_trans->size)) == NULL) {
+ goto fail;
+ }
+
for (i = 0; i < pure_trans->size; i++) {
mat_copy_vector_d3(pure_trans_reduced->vec[i], pure_trans->vec[i]);
}
-
- for (attempt = 0; attempt < 100; attempt++) {
+
+ for (attempt = 0; attempt < NUM_ATTEMPT; attempt++) {
multi = pure_trans_reduced->size;
- vectors = get_translation_candidates(pure_trans_reduced);
+
+ if ((vectors = get_translation_candidates(pure_trans_reduced)) == NULL) {
+ mat_free_VecDBL(pure_trans_reduced);
+ pure_trans_reduced = NULL;
+ goto fail;
+ }
/* Lattice of primitive cell is found among pure translation vectors */
if (get_primitive_lattice_vectors(prim_lattice,
- vectors,
- cell,
- tolerance)) {
+ vectors,
+ cell,
+ tolerance)) {
mat_free_VecDBL(vectors);
+ vectors = NULL;
mat_free_VecDBL(pure_trans_reduced);
+ pure_trans_reduced = NULL;
goto found;
+
} else {
- tmp_vec = mat_alloc_VecDBL(multi);
+ if ((tmp_vec = mat_alloc_VecDBL(multi)) == NULL) {
+ mat_free_VecDBL(vectors);
+ vectors = NULL;
+ mat_free_VecDBL(pure_trans_reduced);
+ pure_trans_reduced = NULL;
+ goto fail;
+ }
+
for (i = 0; i < multi; i++) {
- mat_copy_vector_d3(tmp_vec->vec[i], pure_trans_reduced->vec[i]);
+ mat_copy_vector_d3(tmp_vec->vec[i], pure_trans_reduced->vec[i]);
}
mat_free_VecDBL(pure_trans_reduced);
+ pure_trans_reduced = NULL;
+
pure_trans_reduced = sym_reduce_pure_translation(cell,
- tmp_vec,
- tolerance);
- warning_print("Tolerance is reduced to %f (%d), size = %d\n",
- tolerance, attempt, pure_trans_reduced->size);
+ tmp_vec,
+ tolerance,
+ angle_tolerance);
mat_free_VecDBL(tmp_vec);
+ tmp_vec = NULL;
mat_free_VecDBL(vectors);
+ vectors = NULL;
+
+ if (pure_trans_reduced == NULL) {
+ goto fail;
+ }
+
+ warning_print("spglib: Tolerance is reduced to %f (%d), ",
+ tolerance, attempt);
+ warning_print("num_pure_trans = %d\n", pure_trans_reduced->size);
tolerance *= REDUCE_RATE;
}
}
- /* Not found */
+ mat_free_VecDBL(pure_trans_reduced);
+ pure_trans_reduced = NULL;
+
+ fail:
return 0;
found:
-#ifdef SPGWARNING
- if (attempt > 0) {
- printf("spglib: Tolerance to find primitive lattice vectors was changed to %f\n", tolerance);
- }
-#endif
return multi;
}
+/* Return 0 if failed */
static int get_primitive_lattice_vectors(double prim_lattice[3][3],
- const VecDBL * vectors,
- SPGCONST Cell * cell,
- const double symprec)
+ const VecDBL * vectors,
+ const Cell * cell,
+ const double symprec)
{
int i, j, k, size;
double initial_volume, volume;
@@ -621,24 +465,24 @@ static int get_primitive_lattice_vectors(double prim_lattice[3][3],
for (i = 0; i < size; i++) {
for (j = i + 1; j < size; j++) {
for (k = j + 1; k < size; k++) {
- mat_multiply_matrix_vector_d3(tmp_lattice[0],
- cell->lattice,
- vectors->vec[i]);
- mat_multiply_matrix_vector_d3(tmp_lattice[1],
- cell->lattice,
- vectors->vec[j]);
- mat_multiply_matrix_vector_d3(tmp_lattice[2],
- cell->lattice,
- vectors->vec[k]);
- volume = mat_Dabs(mat_get_determinant_d3(tmp_lattice));
- if (volume > symprec) {
- if (mat_Nint(initial_volume / volume) == size-2) {
- mat_copy_vector_d3(min_vectors[0], vectors->vec[i]);
- mat_copy_vector_d3(min_vectors[1], vectors->vec[j]);
- mat_copy_vector_d3(min_vectors[2], vectors->vec[k]);
- goto ret;
- }
- }
+ mat_multiply_matrix_vector_d3(tmp_lattice[0],
+ cell->lattice,
+ vectors->vec[i]);
+ mat_multiply_matrix_vector_d3(tmp_lattice[1],
+ cell->lattice,
+ vectors->vec[j]);
+ mat_multiply_matrix_vector_d3(tmp_lattice[2],
+ cell->lattice,
+ vectors->vec[k]);
+ volume = mat_Dabs(mat_get_determinant_d3(tmp_lattice));
+ if (volume > symprec) {
+ if (mat_Nint(initial_volume / volume) == size-2) {
+ mat_copy_vector_d3(min_vectors[0], vectors->vec[i]);
+ mat_copy_vector_d3(min_vectors[1], vectors->vec[j]);
+ mat_copy_vector_d3(min_vectors[2], vectors->vec[k]);
+ goto ret;
+ }
+ }
}
}
}
@@ -667,7 +511,7 @@ static int get_primitive_lattice_vectors(double prim_lattice[3][3],
}
mat_multiply_matrix_d3(prim_lattice, cell->lattice, relative_lattice);
- return 1;
+ return 1;
}
static VecDBL * get_translation_candidates(const VecDBL * pure_trans)
@@ -675,10 +519,14 @@ static VecDBL * get_translation_candidates(const VecDBL * pure_trans)
int i, j, multi;
VecDBL * vectors;
+ vectors = NULL;
multi = pure_trans->size;
- vectors = mat_alloc_VecDBL(multi+2);
- /* store pure translations in original cell */
+ if ((vectors = mat_alloc_VecDBL(multi + 2)) == NULL) {
+ return NULL;
+ }
+
+ /* store pure translations in original cell */
/* as trial primitive lattice vectors */
for (i = 0; i < multi - 1; i++) {
mat_copy_vector_d3(vectors->vec[i], pure_trans->vec[i + 1]);
@@ -689,9 +537,9 @@ static VecDBL * get_translation_candidates(const VecDBL * pure_trans)
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
if (i == j) {
- vectors->vec[i+multi-1][j] = 1;
+ vectors->vec[i+multi-1][j] = 1;
} else {
- vectors->vec[i+multi-1][j] = 0;
+ vectors->vec[i+multi-1][j] = 0;
}
}
}
@@ -699,3 +547,144 @@ static VecDBL * get_translation_candidates(const VecDBL * pure_trans)
return vectors;
}
+static VecDBL * collect_pure_translations(const Symmetry *symmetry)
+{
+ int i, num_pure_trans;
+ VecDBL *pure_trans;
+ VecDBL *ret_pure_trans;
+ static int identity[3][3] = {{ 1, 0, 0 },
+ { 0, 1, 0 },
+ { 0, 0, 1 }};
+ num_pure_trans = 0;
+ pure_trans = NULL;
+ ret_pure_trans = NULL;
+
+ if ((pure_trans = mat_alloc_VecDBL(symmetry->size)) == NULL) {
+ return NULL;
+ }
+
+ for (i = 0; i < symmetry->size; i++) {
+ if (mat_check_identity_matrix_i3(symmetry->rot[i], identity)) {
+ mat_copy_vector_d3(pure_trans->vec[num_pure_trans], symmetry->trans[i]);
+ num_pure_trans++;
+ }
+ }
+
+ if ((ret_pure_trans = mat_alloc_VecDBL(num_pure_trans)) == NULL) {
+ mat_free_VecDBL(pure_trans);
+ pure_trans = NULL;
+ return NULL;
+ }
+
+ for (i = 0; i < num_pure_trans; i++) {
+ mat_copy_vector_d3(ret_pure_trans->vec[i], pure_trans->vec[i]);
+ }
+
+ mat_free_VecDBL(pure_trans);
+ pure_trans = NULL;
+
+ return ret_pure_trans;
+}
+
+static int get_primitive_in_translation_space(double t_mat_inv[3][3],
+ const VecDBL *pure_trans,
+ const int symmetry_size,
+ const double symprec)
+{
+ int i, j, primsym_size;
+ Primitive *primitive;
+ Cell *cell;
+
+ cell = NULL;
+ primitive = NULL;
+
+ if ((cell = cel_alloc_cell(pure_trans->size)) == NULL) {
+ return 0;
+ }
+
+ primsym_size = symmetry_size / pure_trans->size;
+ if (symmetry_size != primsym_size * pure_trans->size) {
+ cel_free_cell(cell);
+ cell = NULL;
+ return 0;
+ }
+
+ for (i = 0; i < pure_trans->size; i++) {
+ cell->types[i] = 1;
+ for (j = 0; j < 3; j++) {
+ cell->position[i][j] = pure_trans->vec[i][j];
+ }
+ }
+
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ if (i == j) {
+ cell->lattice[i][j] = 1;
+ } else {
+ cell->lattice[i][j] = 0;
+ }
+ }
+ }
+
+ primitive = get_primitive(cell, symprec, -1.0);
+ cel_free_cell(cell);
+ cell = NULL;
+
+ if (primitive->cell->size != 1) {
+ prm_free_primitive(primitive);
+ primitive = NULL;
+ return 0;
+ }
+
+ mat_copy_matrix_d3(t_mat_inv, primitive->cell->lattice);
+ prm_free_primitive(primitive);
+ primitive = NULL;
+
+ return 1;
+}
+
+static Symmetry * collect_primitive_symmetry(const Symmetry *symmetry,
+ const int primsym_size)
+{
+ int i, j, num_psym, is_found;
+ Symmetry *prim_symmetry;
+
+ prim_symmetry = NULL;
+
+ prim_symmetry = sym_alloc_symmetry(primsym_size);
+ num_psym = 1;
+ mat_copy_matrix_i3(prim_symmetry->rot[0], symmetry->rot[0]);
+ mat_copy_vector_d3(prim_symmetry->trans[0], symmetry->trans[0]);
+ for (i = 1; i < symmetry->size; i++) {
+ is_found = 1;
+ for (j = 0; j < num_psym; j++) {
+ if (mat_check_identity_matrix_i3(prim_symmetry->rot[j], symmetry->rot[i]))
+ {
+ is_found = 0;
+ break;
+ }
+ }
+ if (is_found) {
+ if (num_psym == primsym_size) {
+ sym_free_symmetry(prim_symmetry);
+ prim_symmetry = NULL;
+ break;
+ }
+ mat_copy_matrix_i3(prim_symmetry->rot[num_psym], symmetry->rot[i]);
+ mat_copy_vector_d3(prim_symmetry->trans[num_psym], symmetry->trans[i]);
+ num_psym++;
+ }
+ }
+
+ if (prim_symmetry == NULL) {
+ return NULL;
+ }
+
+ if (num_psym != primsym_size) {
+ sym_free_symmetry(prim_symmetry);
+ prim_symmetry = NULL;
+ return NULL;
+ }
+
+ return prim_symmetry;
+}
diff --git a/src/primitive.h b/src/primitive.h
index 9e4c1dd..d81ddec 100644
--- a/src/primitive.h
+++ b/src/primitive.h
@@ -1,24 +1,57 @@
-/* primitive.h */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __primitive_H__
#define __primitive_H__
-#include "symmetry.h"
#include "cell.h"
#include "mathfunc.h"
+#include "symmetry.h"
typedef struct {
Cell *cell;
- VecDBL *pure_trans;
+ int *mapping_table;
+ int size;
+ double tolerance;
+ double angle_tolerance;
} Primitive;
-Cell * prm_get_primitive(SPGCONST Cell * cell,
- const double symprec);
-Cell * prm_get_primitive_with_mapping_table(int * mapping_table,
- SPGCONST Cell * cell,
- const double symprec);
-Primitive prm_get_primitive_and_pure_translations(SPGCONST Cell * cell,
- const double symprec);
-double prm_get_current_tolerance(void);
+Primitive * prm_alloc_primitive(const int size);
+void prm_free_primitive(Primitive * primitive);
+Primitive * prm_get_primitive(const Cell * cell,
+ const double symprec,
+ const double angle_tolerance);
+Symmetry * prm_get_primitive_symmetry(const Symmetry *symmetry,
+ const double symprec);
#endif
diff --git a/src/refinement.c b/src/refinement.c
index a0140e7..ec6fe59 100644
--- a/src/refinement.c
+++ b/src/refinement.c
@@ -1,3 +1,36 @@
+/* Copyright (C) 2011 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
/* refinement.c */
/* Copyright (C) 2011 Atsushi Togo */
@@ -7,66 +40,105 @@
#include "refinement.h"
#include "cell.h"
#include "mathfunc.h"
-#include "primitive.h"
+#include "pointgroup.h"
#include "spg_database.h"
#include "site_symmetry.h"
#include "symmetry.h"
#include "debug.h"
-#define REDUCE_RATE 0.95
-
-static Cell * refine_cell(SPGCONST Cell * cell,
- const double symprec);
-static Cell * get_bravais_exact_positions_and_lattice(int * wyckoffs,
- int * equiv_atoms,
- SPGCONST Spacegroup * spacegroup,
- SPGCONST Cell * primitive,
- const double symprec);
-static Cell * expand_positions(SPGCONST Cell * conv_prim,
- SPGCONST Symmetry * conv_sym);
+static Cell * get_Wyckoff_positions(int * wyckoffs,
+ int * equiv_atoms,
+ int * std_mapping_to_primitive,
+ const Cell * primitive,
+ const Cell * cell,
+ SPGCONST Spacegroup * spacegroup,
+ const Symmetry * symmetry,
+ const int * mapping_table,
+ const double symprec);
+static Cell *
+get_bravais_exact_positions_and_lattice(int * wyckoffs,
+ int * equiv_atoms,
+ int * std_mapping_to_primitive,
+ SPGCONST Spacegroup * spacegroup,
+ const Cell * primitive,
+ const double symprec);
+static Cell * expand_positions_in_bravais(int * wyckoffs,
+ int * equiv_atoms,
+ int * std_mapping_to_primitive,
+ const Cell * conv_prim,
+ const Symmetry * conv_sym,
+ const int * wyckoffs_prim,
+ const int * equiv_atoms_prim);
static Cell * get_conventional_primitive(SPGCONST Spacegroup * spacegroup,
- SPGCONST Cell * primitive);
-static Symmetry * get_db_symmetry(const int hall_number);
-static int get_number_of_pure_translation(SPGCONST Symmetry * conv_sym);
-static int get_conventional_lattice(double lattice[3][3],
- const Holohedry holohedry,
- SPGCONST double bravais_lattice[3][3]);
+ const Cell * primitive);
+static int get_number_of_pure_translation(const Symmetry * conv_sym);
+static void get_conventional_lattice(double lattice[3][3],
+ SPGCONST Spacegroup *spacegroup);
+static void set_tricli(double lattice[3][3],
+ SPGCONST double metric[3][3]);
static void set_monocli(double lattice[3][3],
- SPGCONST double metric[3][3]);
+ SPGCONST double metric[3][3]);
static void set_ortho(double lattice[3][3],
- SPGCONST double metric[3][3]);
+ SPGCONST double metric[3][3]);
static void set_tetra(double lattice[3][3],
- SPGCONST double metric[3][3]);
-static void set_rhomb(double lattice[3][3],
- SPGCONST double metric[3][3]);
+ SPGCONST double metric[3][3]);
static void set_trigo(double lattice[3][3],
- SPGCONST double metric[3][3]);
+ SPGCONST double metric[3][3]);
+static void set_rhomb(double lattice[3][3],
+ SPGCONST double metric[3][3]);
static void set_cubic(double lattice[3][3],
- SPGCONST double metric[3][3]);
+ SPGCONST double metric[3][3]);
-static Symmetry * get_refined_symmetry_operations(SPGCONST Cell * cell,
- SPGCONST Cell * primitive,
- SPGCONST Spacegroup * spacegroup,
- const double symprec);
+static Symmetry *
+get_refined_symmetry_operations(const Cell * cell,
+ const Cell * primitive,
+ SPGCONST Spacegroup * spacegroup,
+ const double symprec);
static void set_translation_with_origin_shift(Symmetry *conv_sym,
- const double origin_shift[3]);
+ const double origin_shift[3]);
static Symmetry * get_primitive_db_symmetry(SPGCONST double t_mat[3][3],
- const Symmetry *conv_sym,
- const double symprec);
+ const Symmetry *conv_sym);
static void get_corners(int corners[3][8],
- SPGCONST int t_mat[3][3]);
+ SPGCONST int t_mat[3][3]);
static void get_surrounding_frame(int frame[3],
- SPGCONST int t_mat[3][3]);
-static Symmetry * reduce_symmetry_in_frame(const int frame[3],
- SPGCONST Symmetry *prim_sym,
- SPGCONST int t_mat[3][3],
- SPGCONST double lattice[3][3],
- const int multiplicity,
- const double symprec);
-static VecDBL * reduce_lattice_points(SPGCONST double lattice[3][3],
- const VecDBL *lattice_trans,
- const double symprec);
+ SPGCONST int t_mat[3][3]);
+static int set_equivalent_atoms(int * equiv_atoms_cell,
+ const Cell * primitive,
+ const Cell * cell,
+ const int * equiv_atoms_prim,
+ const int * mapping_table);
+static void set_equivalent_atoms_broken_symmetry(int * equiv_atoms_cell,
+ const Cell * cell,
+ const Symmetry *symmetry,
+ const int * mapping_table,
+ const double symprec);
+static int search_equivalent_atom(const int atom_index,
+ const Cell * cell,
+ const Symmetry *symmetry,
+ const double symprec);
+static Symmetry *
+recover_symmetry_in_original_cell(const int frame[3],
+ const Symmetry *prim_sym,
+ SPGCONST int t_mat[3][3],
+ SPGCONST double lattice[3][3],
+ const int multiplicity,
+ const double symprec);
+static VecDBL * get_lattice_translations(const int frame[3],
+ SPGCONST double inv_tmat[3][3]);
+static VecDBL *
+remove_overlapping_lattice_points(SPGCONST double lattice[3][3],
+ const VecDBL *lattice_trans,
+ const double symprec);
+static Symmetry *
+get_symmetry_in_original_cell(SPGCONST int t_mat[3][3],
+ SPGCONST double inv_tmat[3][3],
+ SPGCONST double lattice[3][3],
+ const Symmetry *prim_sym,
+ const double symprec);
+static Symmetry *
+copy_symmetry_upon_lattice_points(const VecDBL *pure_trans,
+ const Symmetry *t_sym);
static SPGCONST int identity[3][3] = {
@@ -75,158 +147,352 @@ static SPGCONST int identity[3][3] = {
{ 0, 0, 1},
};
-
-Cell * ref_refine_cell(SPGCONST Cell * cell,
- const double symprec)
+/* Return NULL if failed */
+ExactStructure *
+ref_get_exact_structure_and_symmetry(const Cell * primitive,
+ const Cell * cell,
+ SPGCONST Spacegroup * spacegroup,
+ const int * mapping_table,
+ const double symprec)
{
- return refine_cell(cell, symprec);
+ int *std_mapping_to_primitive, *wyckoffs, *equivalent_atoms;
+ Cell *bravais;
+ Symmetry *symmetry;
+ ExactStructure *exact_structure;
+
+ std_mapping_to_primitive = NULL;
+ wyckoffs = NULL;
+ equivalent_atoms = NULL;
+ bravais = NULL;
+ symmetry = NULL;
+ exact_structure = NULL;
+
+ if ((symmetry = get_refined_symmetry_operations(cell,
+ primitive,
+ spacegroup,
+ symprec)) == NULL) {
+ goto err;
+ }
+
+ if ((wyckoffs = (int*) malloc(sizeof(int) * cell->size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ goto err;
+ }
+
+ if ((equivalent_atoms = (int*) malloc(sizeof(int) * cell->size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ goto err;
+ }
+
+ if ((std_mapping_to_primitive =
+ (int*) malloc(sizeof(int) * primitive->size * 4)) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ goto err;
+ }
+
+ if ((bravais = get_Wyckoff_positions(wyckoffs,
+ equivalent_atoms,
+ std_mapping_to_primitive,
+ primitive,
+ cell,
+ spacegroup,
+ symmetry,
+ mapping_table,
+ symprec)) == NULL) {
+ sym_free_symmetry(symmetry);
+ symmetry = NULL;
+ goto err;
+ }
+
+ if ((exact_structure = (ExactStructure*)
+ malloc(sizeof(ExactStructure))) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ sym_free_symmetry(symmetry);
+ symmetry = NULL;
+ cel_free_cell(bravais);
+ bravais = NULL;
+ goto err;
+ }
+
+ exact_structure->bravais = bravais;
+ exact_structure->symmetry = symmetry;
+ exact_structure->wyckoffs = wyckoffs;
+ exact_structure->equivalent_atoms = equivalent_atoms;
+ exact_structure->std_mapping_to_primitive = std_mapping_to_primitive;
+
+ return exact_structure;
+
+err:
+ if (wyckoffs != NULL) {
+ free(wyckoffs);
+ wyckoffs = NULL;
+ }
+ if (equivalent_atoms != NULL) {
+ free(equivalent_atoms);
+ equivalent_atoms = NULL;
+ }
+ if (std_mapping_to_primitive != NULL) {
+ free(std_mapping_to_primitive);
+ std_mapping_to_primitive = NULL;
+ }
+
+ return NULL;
}
-/* symmetry->size = 0 is returned when it failed. */
-Symmetry * ref_get_refined_symmetry_operations(SPGCONST Cell * cell,
- SPGCONST Cell * primitive,
- SPGCONST Spacegroup * spacegroup,
- const double symprec)
+void ref_free_exact_structure(ExactStructure *exstr)
{
- return get_refined_symmetry_operations(cell, primitive, spacegroup, symprec);
+ if (exstr != NULL) {
+ if (exstr->symmetry != NULL) {
+ sym_free_symmetry(exstr->symmetry);
+ exstr->symmetry = NULL;
+ }
+ if (exstr->bravais != NULL) {
+ cel_free_cell(exstr->bravais);
+ exstr->bravais = NULL;
+ }
+ if (exstr->wyckoffs != NULL) {
+ free(exstr->wyckoffs);
+ exstr->wyckoffs = NULL;
+ }
+ if (exstr->equivalent_atoms != NULL) {
+ free(exstr->equivalent_atoms);
+ exstr->equivalent_atoms = NULL;
+ }
+ if (exstr->std_mapping_to_primitive != NULL) {
+ free(exstr->std_mapping_to_primitive);
+ exstr->std_mapping_to_primitive = NULL;
+ }
+ free(exstr);
+ }
}
-void ref_get_Wyckoff_positions(int * wyckoffs,
- int * equiv_atoms,
- SPGCONST Cell * primitive,
- SPGCONST Spacegroup * spacegroup,
- const double symprec)
+/* Return NULL if failed */
+static Cell * get_Wyckoff_positions(int * wyckoffs,
+ int * equiv_atoms,
+ int * std_mapping_to_primitive,
+ const Cell * primitive,
+ const Cell * cell,
+ SPGCONST Spacegroup * spacegroup,
+ const Symmetry * symmetry,
+ const int * mapping_table,
+ const double symprec)
{
- Cell *conv_prim;
+ Cell *bravais;
+ int i, num_prim_sym;
+ int *wyckoffs_bravais, *equiv_atoms_bravais;
+ int operation_index[2];
- conv_prim = get_bravais_exact_positions_and_lattice(wyckoffs,
- equiv_atoms,
- spacegroup,
- primitive,
- symprec);
- cel_free_cell(conv_prim);
-}
+ debug_print("get_Wyckoff_positions\n");
-static Cell * refine_cell(SPGCONST Cell * cell,
- const double symprec)
-{
- int *wyckoffs, *equiv_atoms;
- double tolerance;
- Cell *primitive, *bravais, *conv_prim;
- Symmetry *conv_sym;
- Spacegroup spacegroup;
-
- debug_print("refine_cell:\n");
-
- primitive = prm_get_primitive(cell, symprec);
-
- if (primitive->size == 0) {
- cel_free_cell(primitive);
- bravais = cel_alloc_cell(0);
- goto end;
- }
-
- tolerance = prm_get_current_tolerance();
- spacegroup = spa_get_spacegroup_with_primitive(primitive, tolerance);
-
- wyckoffs = (int*)malloc(sizeof(int) * primitive->size);
- equiv_atoms = (int*)malloc(sizeof(int) * primitive->size);
- conv_prim = get_bravais_exact_positions_and_lattice(wyckoffs,
- equiv_atoms,
- &spacegroup,
- primitive,
- tolerance);
- free(equiv_atoms);
- equiv_atoms = NULL;
- free(wyckoffs);
- wyckoffs = NULL;
+ bravais = NULL;
+ wyckoffs_bravais = NULL;
+ equiv_atoms_bravais = NULL;
- conv_sym = get_db_symmetry(spacegroup.hall_number);
- bravais = expand_positions(conv_prim, conv_sym);
+ if ((wyckoffs_bravais = (int*)malloc(sizeof(int) * primitive->size * 4))
+ == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ return NULL;
+ }
- debug_print("primitive cell in refine_cell:\n");
- debug_print_matrix_d3(primitive->lattice);
- debug_print("conventional lattice in refine_cell:\n");
- debug_print_matrix_d3(conv_prim->lattice);
- debug_print("bravais lattice in refine_cell:\n");
- debug_print_matrix_d3(bravais->lattice);
-
- cel_free_cell(conv_prim);
- sym_free_symmetry(conv_sym);
- cel_free_cell(primitive);
+ if ((equiv_atoms_bravais = (int*)malloc(sizeof(int) * primitive->size * 4))
+ == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ free(wyckoffs_bravais);
+ wyckoffs_bravais = NULL;
+ return NULL;
+ }
+
+ if ((bravais = get_bravais_exact_positions_and_lattice
+ (wyckoffs_bravais,
+ equiv_atoms_bravais,
+ std_mapping_to_primitive,
+ spacegroup,
+ primitive,
+ symprec)) == NULL) {
+
+ warning_print("spglib: get_bravais_exact_positions_and_lattice failed.");
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+
+ goto ret;
+ }
+
+ for (i = 0; i < cell->size; i++) {
+ wyckoffs[i] = wyckoffs_bravais[mapping_table[i]];
+ }
+
+ spgdb_get_operation_index(operation_index, spacegroup->hall_number);
+ num_prim_sym = operation_index[0] / (bravais->size / primitive->size);
+
+ /* Check symmetry breaking by unusual multiplicity of primitive cell. */
+ if (cell->size * num_prim_sym != symmetry->size * primitive->size) {
+ set_equivalent_atoms_broken_symmetry(equiv_atoms,
+ cell,
+ symmetry,
+ mapping_table,
+ symprec);
+ } else {
+ if (set_equivalent_atoms(equiv_atoms,
+ primitive,
+ cell,
+ equiv_atoms_bravais,
+ mapping_table) == 0) {
+ cel_free_cell(bravais);
+
+ warning_print("spglib: set_equivalent_atoms failed.");
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+
+ bravais = NULL;
+ }
+ }
+
+ ret:
+ free(equiv_atoms_bravais);
+ equiv_atoms_bravais = NULL;
+ free(wyckoffs_bravais);
+ wyckoffs_bravais = NULL;
- end: /* Return bravais->size = 0, if the bravais could not be found. */
return bravais;
}
/* Only the atoms corresponding to those in primitive are returned. */
-static Cell * get_bravais_exact_positions_and_lattice(int * wyckoffs,
- int * equiv_atoms,
- SPGCONST Spacegroup *spacegroup,
- SPGCONST Cell * primitive,
- const double symprec)
+/* Return NULL if failed */
+static Cell *
+get_bravais_exact_positions_and_lattice(int * wyckoffs,
+ int * equiv_atoms,
+ int * std_mapping_to_primitive,
+ SPGCONST Spacegroup *spacegroup,
+ const Cell * primitive,
+ const double symprec)
{
int i;
+ int *wyckoffs_prim, *equiv_atoms_prim;
Symmetry *conv_sym;
- Cell *bravais;
+ Cell *bravais, *conv_prim;
VecDBL *exact_positions;
+ debug_print("get_bravais_exact_positions_and_lattice\n");
+
+ wyckoffs_prim = NULL;
+ equiv_atoms_prim = NULL;
+ conv_prim = NULL;
+ bravais = NULL;
+ conv_sym = NULL;
+ exact_positions = NULL;
+
+ /* Symmetrize atomic positions of conventional unit cell */
+ if ((wyckoffs_prim = (int*)malloc(sizeof(int) * primitive->size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ return NULL;
+ }
+
+ if ((equiv_atoms_prim = (int*)malloc(sizeof(int) * primitive->size))
+ == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ free(wyckoffs_prim);
+ wyckoffs_prim = NULL;
+ return NULL;
+ }
+
+ for (i = 0; i < primitive->size; i++) {
+ wyckoffs_prim[i] = -1;
+ equiv_atoms_prim[i] = -1;
+ }
+
/* Positions of primitive atoms are represented wrt Bravais lattice */
- bravais = get_conventional_primitive(spacegroup, primitive);
+ if ((conv_prim = get_conventional_primitive(spacegroup, primitive)) == NULL) {
+ free(wyckoffs_prim);
+ wyckoffs_prim = NULL;
+ free(equiv_atoms_prim);
+ equiv_atoms_prim = NULL;
+ return NULL;
+ }
+
/* Symmetries in database (wrt Bravais lattice) */
- conv_sym = get_db_symmetry(spacegroup->hall_number);
- /* Lattice vectors are set. */
- get_conventional_lattice(bravais->lattice,
- spacegroup->holohedry,
- spacegroup->bravais_lattice);
+ if ((conv_sym = spgdb_get_spacegroup_operations(spacegroup->hall_number))
+ == NULL) {
+ goto err;
+ }
- /* Symmetrize atomic positions of conventional unit cell */
- exact_positions = ssm_get_exact_positions(wyckoffs,
- equiv_atoms,
- bravais,
- conv_sym,
- spacegroup->hall_number,
- symprec);
- sym_free_symmetry(conv_sym);
+ /* Lattice vectors are set. */
+ get_conventional_lattice(conv_prim->lattice, spacegroup);
+
+ if ((exact_positions = ssm_get_exact_positions(wyckoffs_prim,
+ equiv_atoms_prim,
+ conv_prim,
+ conv_sym,
+ spacegroup->hall_number,
+ symprec)) == NULL) {
+ sym_free_symmetry(conv_sym);
+ conv_sym = NULL;
+ warning_print("spglib: ssm_get_exact_positions failed.");
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ goto err;
+ }
- if (exact_positions->size > 0) {
- for (i = 0; i < bravais->size; i++) {
- mat_copy_vector_d3(bravais->position[i], exact_positions->vec[i]);
- }
- } else {
- cel_free_cell(bravais);
- bravais = cel_alloc_cell(0);
+ for (i = 0; i < conv_prim->size; i++) {
+ mat_copy_vector_d3(conv_prim->position[i], exact_positions->vec[i]);
}
+ bravais = expand_positions_in_bravais(wyckoffs,
+ equiv_atoms,
+ std_mapping_to_primitive,
+ conv_prim,
+ conv_sym,
+ wyckoffs_prim,
+ equiv_atoms_prim);
+
mat_free_VecDBL(exact_positions);
+ exact_positions = NULL;
+ sym_free_symmetry(conv_sym);
+ conv_sym = NULL;
+ err:
+ free(wyckoffs_prim);
+ wyckoffs_prim = NULL;
+ free(equiv_atoms_prim);
+ equiv_atoms_prim = NULL;
+ cel_free_cell(conv_prim);
+ conv_prim = NULL;
return bravais;
}
-static Cell * expand_positions(SPGCONST Cell * conv_prim,
- SPGCONST Symmetry * conv_sym)
+/* Return NULL if failed */
+static Cell * expand_positions_in_bravais(int * wyckoffs,
+ int * equiv_atoms,
+ int * std_mapping_to_primitive,
+ const Cell * conv_prim,
+ const Symmetry * conv_sym,
+ const int * wyckoffs_prim,
+ const int * equiv_atoms_prim)
{
int i, j, k, num_pure_trans;
int num_atom;
Cell * bravais;
+ bravais = NULL;
+
num_pure_trans = get_number_of_pure_translation(conv_sym);
- bravais = cel_alloc_cell(conv_prim->size * num_pure_trans);
+
+ if ((bravais = cel_alloc_cell(conv_prim->size * num_pure_trans)) == NULL) {
+ return NULL;
+ }
num_atom = 0;
for (i = 0; i < conv_sym->size; i++) {
/* Referred atoms in Bravais lattice */
if (mat_check_identity_matrix_i3(identity, conv_sym->rot[i])) {
for (j = 0; j < conv_prim->size; j++) {
- bravais->types[num_atom] = conv_prim->types[j];
- mat_copy_vector_d3(bravais->position[ num_atom ],
- conv_prim->position[j]);
- for (k = 0; k < 3; k++) {
- bravais->position[num_atom][k] += conv_sym->trans[i][k];
- bravais->position[num_atom][k] =
- mat_Dmod1(bravais->position[num_atom][k]);
- }
- num_atom++;
+ bravais->types[num_atom] = conv_prim->types[j];
+ mat_copy_vector_d3(bravais->position[num_atom], conv_prim->position[j]);
+ for (k = 0; k < 3; k++) {
+ bravais->position[num_atom][k] += conv_sym->trans[i][k];
+ bravais->position[num_atom][k] =
+ mat_Dmod1(bravais->position[num_atom][k]);
+ }
+ wyckoffs[num_atom] = wyckoffs_prim[j];
+ equiv_atoms[num_atom] = equiv_atoms_prim[j];
+ std_mapping_to_primitive[num_atom] = j;
+ num_atom++;
}
}
}
@@ -237,10 +503,10 @@ static Cell * expand_positions(SPGCONST Cell * conv_prim,
}
-static int get_number_of_pure_translation(SPGCONST Symmetry * conv_sym)
+static int get_number_of_pure_translation(const Symmetry * conv_sym)
{
int i, num_pure_trans = 0;
-
+
for (i = 0; i < conv_sym->size; i++) {
if (mat_check_identity_matrix_i3(identity, conv_sym->rot[i])) {
num_pure_trans++;
@@ -251,58 +517,43 @@ static int get_number_of_pure_translation(SPGCONST Symmetry * conv_sym)
}
static Cell * get_conventional_primitive(SPGCONST Spacegroup * spacegroup,
- SPGCONST Cell * primitive)
+ const Cell * primitive)
{
int i, j;
double inv_brv[3][3], trans_mat[3][3];
Cell * conv_prim;
- conv_prim = cel_alloc_cell(primitive->size);
+ conv_prim = NULL;
+
+ if ((conv_prim = cel_alloc_cell(primitive->size)) == NULL) {
+ return NULL;
+ }
mat_inverse_matrix_d3(inv_brv, spacegroup->bravais_lattice, 0);
mat_multiply_matrix_d3(trans_mat, inv_brv, primitive->lattice);
-
+
for (i = 0; i < primitive->size; i++) {
conv_prim->types[i] = primitive->types[i];
mat_multiply_matrix_vector_d3(conv_prim->position[i],
- trans_mat,
- primitive->position[i]);
+ trans_mat,
+ primitive->position[i]);
for (j = 0; j < 3; j++) {
- conv_prim->position[i][j] -= spacegroup->origin_shift[j];
- conv_prim->position[i][j] -= mat_Nint(conv_prim->position[i][j]);
+ conv_prim->position[i][j] += spacegroup->origin_shift[j];
+ conv_prim->position[i][j] = mat_Dmod1(conv_prim->position[i][j]);
}
}
return conv_prim;
}
-static Symmetry * get_db_symmetry(const int hall_number)
-{
- int i;
- int operation_index[2];
- int rot[3][3];
- double trans[3];
- Symmetry *symmetry;
-
- spgdb_get_operation_index(operation_index, hall_number);
- symmetry = sym_alloc_symmetry(operation_index[0]);
-
- for (i = 0; i < operation_index[0]; i++) {
- /* rotation matrix matching and set difference of translations */
- spgdb_get_operation(rot, trans, operation_index[1] + i);
- mat_copy_matrix_i3(symmetry->rot[i], rot);
- mat_copy_vector_d3(symmetry->trans[i], trans);
- }
-
- return symmetry;
-}
-
-static int get_conventional_lattice(double lattice[3][3],
- const Holohedry holohedry,
- SPGCONST double bravais_lattice[3][3])
+static void get_conventional_lattice(double lattice[3][3],
+ SPGCONST Spacegroup *spacegroup)
{
int i, j;
double metric[3][3];
+ Pointgroup pointgroup;
+
+ pointgroup = ptg_get_pointgroup(spacegroup->pointgroup_number);
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
@@ -310,11 +561,15 @@ static int get_conventional_lattice(double lattice[3][3],
}
}
- mat_get_metric(metric, bravais_lattice);
+ mat_get_metric(metric, spacegroup->bravais_lattice);
- switch (holohedry) {
+ debug_print("bravais lattice\n");
+ debug_print_matrix_d3(spacegroup->bravais_lattice);
+ debug_print("%s\n", spacegroup->choice);
+
+ switch (pointgroup.holohedry) {
case TRICLI:
- mat_copy_matrix_d3(lattice, bravais_lattice);
+ set_tricli(lattice, metric);
break;
case MONOCLI: /* b-axis is the unique axis. */
set_monocli(lattice, metric);
@@ -325,11 +580,12 @@ static int get_conventional_lattice(double lattice[3][3],
case TETRA:
set_tetra(lattice, metric);
break;
- case RHOMB:
- set_rhomb(lattice, metric);
- break;
case TRIGO:
- set_trigo(lattice, metric);
+ if (spacegroup->choice[0] == 'R') {
+ set_rhomb(lattice, metric);
+ } else {
+ set_trigo(lattice, metric);
+ }
break;
case HEXA:
set_trigo(lattice, metric);
@@ -337,15 +593,41 @@ static int get_conventional_lattice(double lattice[3][3],
case CUBIC:
set_cubic(lattice, metric);
break;
- case NONE:
+ case HOLOHEDRY_NONE:
break;
}
+}
- return 1;
+/* The conversion refers the wikipedia, */
+/* http://en.wikipedia.org/wiki/Fractional_coordinates */
+static void set_tricli(double lattice[3][3],
+ SPGCONST double metric[3][3])
+{
+ double a, b, c, alpha, beta, gamma, cg, cb, ca, sg;
+
+ a = sqrt(metric[0][0]);
+ b = sqrt(metric[1][1]);
+ c = sqrt(metric[2][2]);
+ alpha = acos(metric[1][2] / b / c);
+ beta = acos(metric[0][2] / a / c);
+ gamma = acos(metric[0][1] / a / b);
+
+ cg = cos(gamma);
+ cb = cos(beta);
+ ca = cos(alpha);
+ sg = sin(gamma);
+
+ lattice[0][0] = a;
+ lattice[0][1] = b * cg;
+ lattice[0][2] = c * cb;
+ lattice[1][1] = b * sg;
+ lattice[1][2] = c * (ca - cb * cg) / sg;
+ lattice[2][2] = c * sqrt(1 - ca * ca - cb * cb - cg * cg +
+ 2 * ca * cb * cg) / sg;
}
static void set_monocli(double lattice[3][3],
- SPGCONST double metric[3][3])
+ SPGCONST double metric[3][3])
{
/* Lattice is expected to be C centring */
double a, b, c, beta;
@@ -356,18 +638,18 @@ static void set_monocli(double lattice[3][3],
a = sqrt(metric[0][0]);
b = sqrt(metric[1][1]);
c = sqrt(metric[2][2]);
+ lattice[0][0] = a;
lattice[1][1] = b;
- lattice[2][2] = c;
beta = acos(metric[0][2] / a / c);
- lattice[2][0] = a * cos(beta);
- lattice[0][0] = a * sin(beta);
+ lattice[0][2] = c * cos(beta);
+ lattice[2][2] = c * sin(beta);
debug_print("beta %f\n", beta);
debug_print_matrix_d3(lattice);
}
-
+
static void set_ortho(double lattice[3][3],
- SPGCONST double metric[3][3])
+ SPGCONST double metric[3][3])
{
double a, b, c;
a = sqrt(metric[0][0]);
@@ -379,7 +661,7 @@ static void set_ortho(double lattice[3][3],
}
static void set_tetra(double lattice[3][3],
- SPGCONST double metric[3][3])
+ SPGCONST double metric[3][3])
{
double a, b, c;
a = sqrt(metric[0][0]);
@@ -391,17 +673,16 @@ static void set_tetra(double lattice[3][3],
}
static void set_rhomb(double lattice[3][3],
- SPGCONST double metric[3][3])
+ SPGCONST double metric[3][3])
{
double a, b, c, angle, ahex, chex;
-
a = sqrt(metric[0][0]);
b = sqrt(metric[1][1]);
c = sqrt(metric[2][2]);
angle = acos((metric[0][1] / a / b +
- metric[0][2] / a / c +
- metric[1][2] / b / c) / 3);
+ metric[0][2] / a / c +
+ metric[1][2] / b / c) / 3);
/* Reference, http://cst-www.nrl.navy.mil/lattice/struk/rgr.html */
ahex = 2 * (a+b+c)/3 * sin(angle / 2);
@@ -416,28 +697,29 @@ static void set_rhomb(double lattice[3][3],
lattice[2][2] = chex / 3;
-#ifdef DEBUG
+#ifdef SPGDEBUG
debug_print("Rhombo lattice: %f %f %f %f %f %f\n", a, b, c,
- acos(metric[0][1] / a / b) / 3.14 * 180,
- acos(metric[0][2] / a / c) / 3.14 * 180,
- acos(metric[1][2] / b / c) / 3.14 * 180);
+ acos(metric[0][1] / a / b) / 3.14 * 180,
+ acos(metric[0][2] / a / c) / 3.14 * 180,
+ acos(metric[1][2] / b / c) / 3.14 * 180);
double dmetric[3][3];
mat_get_metric(dmetric, lattice);
a = sqrt(dmetric[0][0]);
b = sqrt(dmetric[1][1]);
c = sqrt(dmetric[2][2]);
debug_print("Rhombo lattice symmetrized: %f %f %f %f %f %f\n",
- a, b, c,
- acos(dmetric[0][1] / a / b) / 3.14 * 180,
- acos(dmetric[0][2] / a / c) / 3.14 * 180,
- acos(dmetric[1][2] / b / c) / 3.14 * 180);
+ a, b, c,
+ acos(dmetric[0][1] / a / b) / 3.14 * 180,
+ acos(dmetric[0][2] / a / c) / 3.14 * 180,
+ acos(dmetric[1][2] / b / c) / 3.14 * 180);
#endif
}
static void set_trigo(double lattice[3][3],
- SPGCONST double metric[3][3])
+ SPGCONST double metric[3][3])
{
double a, b, c;
+
a = sqrt(metric[0][0]);
b = sqrt(metric[1][1]);
c = sqrt(metric[2][2]);
@@ -448,9 +730,10 @@ static void set_trigo(double lattice[3][3],
}
static void set_cubic(double lattice[3][3],
- SPGCONST double metric[3][3])
+ SPGCONST double metric[3][3])
{
double a, b, c;
+
a = sqrt(metric[0][0]);
b = sqrt(metric[1][1]);
c = sqrt(metric[2][2]);
@@ -459,48 +742,152 @@ static void set_cubic(double lattice[3][3],
lattice[2][2] = (a + b + c) / 3;
}
-
-
-
-
-static Symmetry * get_refined_symmetry_operations(SPGCONST Cell * cell,
- SPGCONST Cell * primitive,
- SPGCONST Spacegroup * spacegroup,
- const double symprec)
+/* Return NULL if failed */
+static Symmetry *
+get_refined_symmetry_operations(const Cell * cell,
+ const Cell * primitive,
+ SPGCONST Spacegroup * spacegroup,
+ const double symprec)
{
int t_mat_int[3][3];
int frame[3];
- double inv_mat[3][3], t_mat[3][3];
+ double inv_prim_lat[3][3], t_mat[3][3];
Symmetry *conv_sym, *prim_sym, *symmetry;
+ conv_sym = NULL;
+ prim_sym = NULL;
+ symmetry = NULL;
+
/* Primitive symmetry from database */
- conv_sym = get_db_symmetry(spacegroup->hall_number);
+ if ((conv_sym = spgdb_get_spacegroup_operations(spacegroup->hall_number))
+ == NULL) {
+ return NULL;
+ }
+
+ mat_inverse_matrix_d3(inv_prim_lat, primitive->lattice, 0);
+ mat_multiply_matrix_d3(t_mat, inv_prim_lat, spacegroup->bravais_lattice);
+
set_translation_with_origin_shift(conv_sym, spacegroup->origin_shift);
- mat_inverse_matrix_d3(inv_mat, primitive->lattice, symprec);
- mat_multiply_matrix_d3(t_mat, inv_mat, spacegroup->bravais_lattice);
- prim_sym = get_primitive_db_symmetry(t_mat, conv_sym, symprec);
+
+ if ((prim_sym = get_primitive_db_symmetry(t_mat, conv_sym)) == NULL) {
+ sym_free_symmetry(conv_sym);
+ conv_sym = NULL;
+ return NULL;
+ }
+
+ sym_free_symmetry(conv_sym);
+ conv_sym = NULL;
/* Input cell symmetry from primitive symmetry */
- mat_inverse_matrix_d3(inv_mat, primitive->lattice, symprec);
- mat_multiply_matrix_d3(t_mat, inv_mat, cell->lattice);
+ mat_multiply_matrix_d3(t_mat, inv_prim_lat, cell->lattice);
mat_cast_matrix_3d_to_3i(t_mat_int, t_mat);
get_surrounding_frame(frame, t_mat_int);
- symmetry = reduce_symmetry_in_frame(frame,
- prim_sym,
- t_mat_int,
- cell->lattice,
- cell->size / primitive->size,
- symprec);
-
- /* sym_free_symmetry(f_sym); */
+
+ symmetry = recover_symmetry_in_original_cell(frame,
+ prim_sym,
+ t_mat_int,
+ cell->lattice,
+ cell->size / primitive->size,
+ symprec);
+
sym_free_symmetry(prim_sym);
- sym_free_symmetry(conv_sym);
+ prim_sym = NULL;
return symmetry;
}
+static int set_equivalent_atoms(int * equiv_atoms_cell,
+ const Cell * primitive,
+ const Cell * cell,
+ const int * equiv_atoms_prim,
+ const int * mapping_table)
+{
+ int i, j;
+ int *equiv_atoms;
+
+ equiv_atoms = NULL;
+
+ if ((equiv_atoms = (int*) malloc(sizeof(int) * primitive->size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ return 0;
+ }
+
+ for (i = 0; i < primitive->size; i++) {
+ for (j = 0; j < cell->size; j++) {
+ if (mapping_table[j] == equiv_atoms_prim[i]) {
+ equiv_atoms[i] = j;
+ break;
+ }
+ }
+ }
+ for (i = 0; i < cell->size; i++) {
+ equiv_atoms_cell[i] = equiv_atoms[mapping_table[i]];
+ }
+ free(equiv_atoms);
+ equiv_atoms = NULL;
+
+ return 1;
+}
+
+static void set_equivalent_atoms_broken_symmetry(int * equiv_atoms_cell,
+ const Cell * cell,
+ const Symmetry *symmetry,
+ const int * mapping_table,
+ const double symprec)
+{
+ int i, j;
+
+ for (i = 0; i < cell->size; i++) {
+ equiv_atoms_cell[i] = i;
+ for (j = 0; j < cell->size; j++) {
+ if (mapping_table[i] == mapping_table[j]) {
+ if (i == j) {
+ equiv_atoms_cell[i] =
+ equiv_atoms_cell[search_equivalent_atom(i,
+ cell,
+ symmetry,
+ symprec)];
+ } else {
+ equiv_atoms_cell[i] = equiv_atoms_cell[j];
+ }
+ break;
+ }
+ }
+ }
+}
+
+static int search_equivalent_atom(const int atom_index,
+ const Cell * cell,
+ const Symmetry *symmetry,
+ const double symprec)
+{
+ int i, j;
+ double pos_rot[3];
+
+ for (i = 0; i < symmetry->size; i++) {
+ mat_multiply_matrix_vector_id3(pos_rot,
+ symmetry->rot[i],
+ cell->position[atom_index]);
+ for (j = 0; j < 3; j++) {
+ pos_rot[j] += symmetry->trans[i][j];
+ }
+ for (j = 0; j < atom_index; j++) {
+ if (cel_is_overlap_with_same_type(cell->position[j],
+ pos_rot,
+ cell->types[j],
+ cell->types[atom_index],
+ cell->lattice,
+ symprec)) {
+ return j;
+ }
+ }
+ }
+ return atom_index;
+}
+
+
static void set_translation_with_origin_shift(Symmetry *conv_sym,
- const double origin_shift[3])
+ const double origin_shift[3])
{
int i, j;
double tmp_vec[3];
@@ -514,32 +901,42 @@ static void set_translation_with_origin_shift(Symmetry *conv_sym,
tmp_mat[2][2]--;
mat_multiply_matrix_vector_id3(tmp_vec, tmp_mat, origin_shift);
for (j = 0; j < 3; j++) {
- conv_sym->trans[i][j] -= tmp_vec[j];
+ conv_sym->trans[i][j] += tmp_vec[j];
}
}
}
static Symmetry * get_primitive_db_symmetry(SPGCONST double t_mat[3][3],
- const Symmetry *conv_sym,
- const double symprec)
+ const Symmetry *conv_sym)
{
int i, j, num_op;
double inv_mat[3][3], tmp_mat[3][3];
MatINT *r_prim;
VecDBL *t_prim;
Symmetry *prim_sym;
-
- r_prim = mat_alloc_MatINT(conv_sym->size);
- t_prim = mat_alloc_VecDBL(conv_sym->size);
- mat_inverse_matrix_d3(inv_mat, t_mat, symprec);
+ r_prim = NULL;
+ t_prim = NULL;
+ prim_sym = NULL;
+
+ if ((r_prim = mat_alloc_MatINT(conv_sym->size)) == NULL) {
+ return NULL;
+ }
+
+ if ((t_prim = mat_alloc_VecDBL(conv_sym->size)) == NULL) {
+ mat_free_MatINT(r_prim);
+ r_prim = NULL;
+ return NULL;
+ }
+
+ mat_inverse_matrix_d3(inv_mat, t_mat, 0);
num_op = 0;
for (i = 0; i < conv_sym->size; i++) {
for (j = 0; j < i; j++) {
if (mat_check_identity_matrix_i3(conv_sym->rot[i],
- conv_sym->rot[j])) {
- goto pass;
+ conv_sym->rot[j])) {
+ goto pass;
}
}
@@ -548,31 +945,37 @@ static Symmetry * get_primitive_db_symmetry(SPGCONST double t_mat[3][3],
mat_multiply_matrix_d3(tmp_mat, tmp_mat, inv_mat);
mat_cast_matrix_3d_to_3i(r_prim->mat[ num_op ], tmp_mat);
/* t' = T*t */
- mat_multiply_matrix_vector_d3(t_prim->vec[ num_op ],
- t_mat,
- conv_sym->trans[ i ]);
+ mat_multiply_matrix_vector_d3(t_prim->vec[num_op],
+ t_mat,
+ conv_sym->trans[i]);
num_op++;
pass:
;
}
- prim_sym = sym_alloc_symmetry(num_op);
+ if ((prim_sym = sym_alloc_symmetry(num_op)) == NULL) {
+ goto ret;
+ }
+
for (i = 0; i < num_op; i++) {
mat_copy_matrix_i3(prim_sym->rot[i], r_prim->mat[i]);
for (j = 0; j < 3; j++) {
- prim_sym->trans[i][j] = t_prim->vec[i][j] - mat_Nint(t_prim->vec[i][j]);
+ prim_sym->trans[i][j] = mat_Dmod1(t_prim->vec[i][j]);
}
}
+ ret:
mat_free_MatINT(r_prim);
+ r_prim = NULL;
mat_free_VecDBL(t_prim);
+ t_prim = NULL;
return prim_sym;
}
static void get_surrounding_frame(int frame[3],
- SPGCONST int t_mat[3][3])
+ SPGCONST int t_mat[3][3])
{
int i, j, max, min;
int corners[3][8];
@@ -584,10 +987,10 @@ static void get_surrounding_frame(int frame[3],
min = corners[i][0];
for (j = 1; j < 8; j++) {
if (max < corners[i][j]) {
- max = corners[i][j];
+ max = corners[i][j];
}
if (min > corners[i][j]) {
- min = corners[i][j];
+ min = corners[i][j];
}
}
frame[i] = max - min;
@@ -595,7 +998,7 @@ static void get_surrounding_frame(int frame[3],
}
static void get_corners(int corners[3][8],
- SPGCONST int t_mat[3][3])
+ SPGCONST int t_mat[3][3])
{
int i, j;
@@ -624,114 +1027,125 @@ static void get_corners(int corners[3][8],
}
}
-static Symmetry * reduce_symmetry_in_frame(const int frame[3],
- SPGCONST Symmetry *prim_sym,
- SPGCONST int t_mat[3][3],
- SPGCONST double lattice[3][3],
- const int multiplicity,
- const double symprec)
+static Symmetry *
+recover_symmetry_in_original_cell(const int frame[3],
+ const Symmetry *prim_sym,
+ SPGCONST int t_mat[3][3],
+ SPGCONST double lattice[3][3],
+ const int multiplicity,
+ const double symprec)
{
- int i, j, k, l, num_trans, size_sym_orig;
Symmetry *symmetry, *t_sym;
- double inv_tmat[3][3], tmp_mat[3][3], tmp_rot_d[3][3], tmp_lat_d[3][3], tmp_lat_i[3][3];
- int tmp_rot_i[3][3];
+ double inv_tmat[3][3], tmp_mat[3][3];
VecDBL *pure_trans, *lattice_trans;
+ symmetry = NULL;
+ t_sym = NULL;
+ pure_trans = NULL;
+ lattice_trans = NULL;
+
mat_cast_matrix_3i_to_3d(tmp_mat, t_mat);
- mat_inverse_matrix_d3(inv_tmat, tmp_mat, symprec);
+ mat_inverse_matrix_d3(inv_tmat, tmp_mat, 0);
- /* transformed lattice points */
- lattice_trans = mat_alloc_VecDBL(frame[0]*frame[1]*frame[2]);
- num_trans = 0;
- for (i = 0; i < frame[0]; i++) {
- for (j = 0; j < frame[1]; j++) {
- for (k = 0; k < frame[2]; k++) {
- lattice_trans->vec[num_trans][0] = i;
- lattice_trans->vec[num_trans][1] = j;
- lattice_trans->vec[num_trans][2] = k;
-
- mat_multiply_matrix_vector_d3(lattice_trans->vec[num_trans],
- inv_tmat,
- lattice_trans->vec[num_trans]);
- for (l = 0; l < 3; l++) {
- /* t' = T^-1*t */
- lattice_trans->vec[num_trans][l] = \
- mat_Dmod1(lattice_trans->vec[num_trans][l]);
- }
- num_trans++;
- }
- }
+ if ((lattice_trans = get_lattice_translations(frame, inv_tmat)) == NULL) {
+ return NULL;
}
- /* transformed symmetry operations of primitive cell */
- t_sym = sym_alloc_symmetry(prim_sym->size);
- size_sym_orig = 0;
- for (i = 0; i < prim_sym->size; i++) {
- /* R' = T^-1*R*T */
- mat_multiply_matrix_di3(tmp_mat, inv_tmat, prim_sym->rot[i]);
- mat_multiply_matrix_di3(tmp_rot_d, tmp_mat, t_mat);
- mat_cast_matrix_3d_to_3i(tmp_rot_i, tmp_rot_d);
- mat_multiply_matrix_di3(tmp_lat_i, lattice, tmp_rot_i);
- mat_multiply_matrix_d3(tmp_lat_d, lattice, tmp_rot_d);
- if (mat_check_identity_matrix_d3(tmp_lat_i, tmp_lat_d, symprec)) {
- mat_copy_matrix_i3(t_sym->rot[size_sym_orig], tmp_rot_i);
- /* t' = T^-1*t */
- mat_multiply_matrix_vector_d3(t_sym->trans[size_sym_orig],
- inv_tmat, prim_sym->trans[i]);
- size_sym_orig++;
- }
+ if ((pure_trans = remove_overlapping_lattice_points(lattice,
+ lattice_trans,
+ symprec)) == NULL) {
+ mat_free_VecDBL(lattice_trans);
+ lattice_trans = NULL;
+ return NULL;
}
- /* reduce lattice points */
- pure_trans = reduce_lattice_points(lattice,
- lattice_trans,
- symprec);
-
- if (! (pure_trans->size == multiplicity)) {
- symmetry = sym_alloc_symmetry(0);
- goto ret;
+ if ((t_sym = get_symmetry_in_original_cell(t_mat,
+ inv_tmat,
+ lattice,
+ prim_sym,
+ symprec)) == NULL) {
+ mat_free_VecDBL(pure_trans);
+ pure_trans = NULL;
+ mat_free_VecDBL(lattice_trans);
+ lattice_trans = NULL;
+ return NULL;
}
- /* copy symmetry operations upon lattice points */
- symmetry = sym_alloc_symmetry(pure_trans->size * size_sym_orig);
- for (i = 0; i < pure_trans->size; i++) {
- for (j = 0; j < size_sym_orig; j++) {
- mat_copy_matrix_i3(symmetry->rot[size_sym_orig * i + j],
- t_sym->rot[j]);
- mat_copy_vector_d3(symmetry->trans[size_sym_orig * i + j],
- t_sym->trans[j]);
- for (k = 0; k < 3; k++) {
- symmetry->trans[size_sym_orig * i + j][k] += pure_trans->vec[i][k];
- symmetry->trans[size_sym_orig * i + j][k] = \
- mat_Dmod1(symmetry->trans[size_sym_orig * i + j][k]);
- }
- }
+ if (pure_trans->size == multiplicity) {
+ symmetry = copy_symmetry_upon_lattice_points(pure_trans, t_sym);
}
-
- ret:
mat_free_VecDBL(lattice_trans);
+ lattice_trans = NULL;
mat_free_VecDBL(pure_trans);
+ pure_trans = NULL;
sym_free_symmetry(t_sym);
+ t_sym = NULL;
return symmetry;
}
-static VecDBL * reduce_lattice_points(SPGCONST double lattice[3][3],
- const VecDBL *lattice_trans,
- const double symprec)
+/* Return NULL if failed */
+static VecDBL * get_lattice_translations(const int frame[3],
+ SPGCONST double inv_tmat[3][3])
+{
+ int i, j, k, l, num_trans;
+ VecDBL * lattice_trans;
+
+ lattice_trans = NULL;
+
+ if ((lattice_trans = mat_alloc_VecDBL(frame[0] * frame[1] * frame[2]))
+ == NULL) {
+ return NULL;
+ }
+
+ num_trans = 0;
+ for (i = 0; i < frame[0]; i++) {
+ for (j = 0; j < frame[1]; j++) {
+ for (k = 0; k < frame[2]; k++) {
+ lattice_trans->vec[num_trans][0] = i;
+ lattice_trans->vec[num_trans][1] = j;
+ lattice_trans->vec[num_trans][2] = k;
+
+ /* t' = T^-1*t */
+ mat_multiply_matrix_vector_d3(lattice_trans->vec[num_trans],
+ inv_tmat,
+ lattice_trans->vec[num_trans]);
+ for (l = 0; l < 3; l++) {
+ lattice_trans->vec[num_trans][l] =
+ mat_Dmod1(lattice_trans->vec[num_trans][l]);
+ }
+ num_trans++;
+ }
+ }
+ }
+
+ return lattice_trans;
+}
+
+static VecDBL *
+remove_overlapping_lattice_points(SPGCONST double lattice[3][3],
+ const VecDBL *lattice_trans,
+ const double symprec)
{
int i, j, is_found, num_pure_trans;
VecDBL *pure_trans, *t;
-
+
+ pure_trans = NULL;
+ t = NULL;
+
num_pure_trans = 0;
- t = mat_alloc_VecDBL(lattice_trans->size);
+
+ if ((t = mat_alloc_VecDBL(lattice_trans->size)) == NULL) {
+ return NULL;
+ }
+
for (i = 0; i < lattice_trans->size; i++) {
is_found = 0;
for (j = 0; j < num_pure_trans; j++) {
if (cel_is_overlap(lattice_trans->vec[i], t->vec[j], lattice, symprec)) {
- is_found = 1;
- break;
+ is_found = 1;
+ break;
}
}
if (! is_found) {
@@ -740,11 +1154,119 @@ static VecDBL * reduce_lattice_points(SPGCONST double lattice[3][3],
}
}
- pure_trans = mat_alloc_VecDBL(num_pure_trans);
+ if ((pure_trans = mat_alloc_VecDBL(num_pure_trans)) == NULL) {
+ mat_free_VecDBL(t);
+ t = NULL;
+ return NULL;
+ }
+
for (i = 0; i < num_pure_trans; i++) {
mat_copy_vector_d3(pure_trans->vec[i], t->vec[i]);
}
mat_free_VecDBL(t);
+ t = NULL;
return pure_trans;
}
+
+/* Return NULL if failed */
+static Symmetry *
+get_symmetry_in_original_cell(SPGCONST int t_mat[3][3],
+ SPGCONST double inv_tmat[3][3],
+ SPGCONST double lattice[3][3],
+ const Symmetry *prim_sym,
+ const double symprec)
+{
+ int i, size_sym_orig;
+ double tmp_rot_d[3][3], tmp_lat_d[3][3], tmp_lat_i[3][3], tmp_mat[3][3];
+ int tmp_rot_i[3][3];
+ Symmetry *t_sym, *t_red_sym;
+
+ t_sym = NULL;
+ t_red_sym = NULL;
+
+ if ((t_sym = sym_alloc_symmetry(prim_sym->size)) == NULL) {
+ return NULL;
+ }
+
+ /* transform symmetry operations of primitive cell to those of original */
+ size_sym_orig = 0;
+ for (i = 0; i < prim_sym->size; i++) {
+ /* R' = T^-1*R*T */
+ mat_multiply_matrix_di3(tmp_mat, inv_tmat, prim_sym->rot[i]);
+ mat_multiply_matrix_di3(tmp_rot_d, tmp_mat, t_mat);
+
+ /* In spglib, symmetry of supercell is defined by the set of symmetry */
+ /* operations that are searched among supercell lattice point group */
+ /* operations. The supercell lattice may be made by breaking the */
+ /* unit cell lattice symmetry. In this case, a part of symmetry */
+ /* operations is discarded. */
+ mat_cast_matrix_3d_to_3i(tmp_rot_i, tmp_rot_d);
+ mat_multiply_matrix_di3(tmp_lat_i, lattice, tmp_rot_i);
+ mat_multiply_matrix_d3(tmp_lat_d, lattice, tmp_rot_d);
+ if (mat_check_identity_matrix_d3(tmp_lat_i, tmp_lat_d, symprec)) {
+ mat_copy_matrix_i3(t_sym->rot[size_sym_orig], tmp_rot_i);
+ /* t' = T^-1*t */
+ mat_multiply_matrix_vector_d3(t_sym->trans[size_sym_orig],
+ inv_tmat,
+ prim_sym->trans[i]);
+ size_sym_orig++;
+ }
+ }
+
+ /* Broken symmetry due to supercell multiplicity */
+ if (size_sym_orig != prim_sym->size) {
+
+ if ((t_red_sym = sym_alloc_symmetry(size_sym_orig)) == NULL) {
+ sym_free_symmetry(t_sym);
+ t_sym = NULL;
+ return NULL;
+ }
+
+ for (i = 0; i < size_sym_orig; i++) {
+ mat_copy_matrix_i3(t_red_sym->rot[i], t_sym->rot[i]);
+ mat_copy_vector_d3(t_red_sym->trans[i], t_sym->trans[i]);
+ }
+
+ sym_free_symmetry(t_sym);
+ t_sym = NULL;
+
+ t_sym = t_red_sym;
+ t_red_sym = NULL;
+ }
+
+ return t_sym;
+}
+
+/* Return NULL if failed */
+static Symmetry *
+copy_symmetry_upon_lattice_points(const VecDBL *pure_trans,
+ const Symmetry *t_sym)
+{
+ int i, j, k, size_sym_orig;
+ Symmetry *symmetry;
+
+ symmetry = NULL;
+
+ size_sym_orig = t_sym->size;
+
+ if ((symmetry = sym_alloc_symmetry(pure_trans->size * size_sym_orig))
+ == NULL) {
+ return NULL;
+ }
+
+ for (i = 0; i < pure_trans->size; i++) {
+ for (j = 0; j < size_sym_orig; j++) {
+ mat_copy_matrix_i3(symmetry->rot[size_sym_orig * i + j], t_sym->rot[j]);
+ mat_copy_vector_d3(symmetry->trans[size_sym_orig * i + j],
+ t_sym->trans[j]);
+ for (k = 0; k < 3; k++) {
+ symmetry->trans[size_sym_orig * i + j][k] += pure_trans->vec[i][k];
+ symmetry->trans[size_sym_orig * i + j][k] =
+ mat_Dmod1(symmetry->trans[size_sym_orig * i + j][k]);
+ }
+ }
+ }
+
+ return symmetry;
+}
diff --git a/src/refinement.h b/src/refinement.h
index 7ac21fd..8966e4c 100644
--- a/src/refinement.h
+++ b/src/refinement.h
@@ -1,24 +1,58 @@
-/* bravais.h */
/* Copyright (C) 2011 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __refinement_H__
#define __refinement_H__
#include "cell.h"
-#include "mathfunc.h"
-#include "spacegroup.h"
#include "symmetry.h"
+#include "spacegroup.h"
+
+typedef struct {
+ Cell *bravais;
+ Symmetry *symmetry;
+ int *wyckoffs;
+ int *equivalent_atoms;
+ int *std_mapping_to_primitive;
+} ExactStructure;
-Cell * ref_refine_cell(SPGCONST Cell * cell,
- const double symprec);
-Symmetry * ref_get_refined_symmetry_operations(SPGCONST Cell * cell,
- SPGCONST Cell * primitive,
- SPGCONST Spacegroup * spacegroup,
- const double symprec);
-void ref_get_Wyckoff_positions(int * wyckoffs,
- int * equiv_atoms,
- SPGCONST Cell * primitive,
- SPGCONST Spacegroup * spacegroup,
- const double symprec);
+ExactStructure *
+ref_get_exact_structure_and_symmetry(const Cell * primitive,
+ const Cell * cell,
+ SPGCONST Spacegroup * spacegroup,
+ const int * mapping_table,
+ const double symprec);
+void ref_free_exact_structure(ExactStructure *exstr);
#endif
diff --git a/src/site_symmetry.c b/src/site_symmetry.c
index 88198de..f3584cb 100644
--- a/src/site_symmetry.c
+++ b/src/site_symmetry.c
@@ -1,128 +1,260 @@
-/* site_symmetry.c */
/* Copyright (C) 2011 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#include <stdio.h>
#include <stdlib.h>
#include "cell.h"
#include "mathfunc.h"
#include "symmetry.h"
+#include "site_symmetry.h"
#include "sitesym_database.h"
#include "debug.h"
-static VecDBL * get_exact_positions(int * wyckoffs,
- int * equiv_atoms,
- SPGCONST Cell * bravais,
- SPGCONST Symmetry * conv_sym,
- const int hall_number,
- const double symprec);
-static void get_exact_location(double position[3],
- SPGCONST Symmetry * conv_sym,
- SPGCONST double bravais_lattice[3][3],
- const double symprec);
-static int get_Wyckoff_notation(double position[3],
- SPGCONST Symmetry * conv_sym,
- SPGCONST double bravais_lattice[3][3],
- const int hall_number,
- const double symprec);
+#define INCREASE_RATE 1.05
+#define REDUCE_RATE 0.95
+#define NUM_ATTEMPT 100
+static int get_exact_positions(VecDBL *positions,
+ int * equiv_atoms,
+ const Cell * conv_prim,
+ const Symmetry * conv_sym,
+ const double symprec);
+static int set_exact_location(double position[3],
+ const Symmetry * conv_sym,
+ SPGCONST double bravais_lattice[3][3],
+ const double symprec);
+static int set_equivalent_atom(VecDBL *positions,
+ int * equiv_atoms,
+ const int i,
+ const int num_indep_atoms,
+ const int *indep_atoms,
+ const Cell * conv_prim,
+ const Symmetry * conv_sym,
+ const double symprec);
+static int set_Wyckoffs_labels(int * wyckoffs,
+ const VecDBL *positions,
+ const int * equiv_atoms,
+ const Cell * conv_prim,
+ const Symmetry * conv_sym,
+ const int hall_number,
+ const double symprec);
+static int get_Wyckoff_notation(double position[3],
+ const Symmetry * conv_sym,
+ SPGCONST double bravais_lattice[3][3],
+ const int hall_number,
+ const double symprec);
+static SPGCONST int identity[3][3] = {
+ { 1, 0, 0},
+ { 0, 1, 0},
+ { 0, 0, 1},
+};
+/* Return if failed */
VecDBL * ssm_get_exact_positions(int *wyckoffs,
- int *equiv_atoms,
- SPGCONST Cell * bravais,
- SPGCONST Symmetry * conv_sym,
- const int hall_number,
- const double symprec)
+ int *equiv_atoms,
+ const Cell * conv_prim,
+ const Symmetry * conv_sym,
+ const int hall_number,
+ const double symprec)
{
- return get_exact_positions(wyckoffs,
- equiv_atoms,
- bravais,
- conv_sym,
- hall_number,
- symprec);
+ int attempt, num_atoms;
+ double tolerance;
+ VecDBL *positions;
+
+ positions = NULL;
+
+ if ((positions = mat_alloc_VecDBL(conv_prim->size)) == NULL) {
+ return NULL;
+ }
+
+ tolerance = symprec;
+ for (attempt = 0; attempt < NUM_ATTEMPT; attempt++) {
+ num_atoms = get_exact_positions(positions,
+ equiv_atoms,
+ conv_prim,
+ conv_sym,
+ tolerance);
+ if (num_atoms == conv_prim->size) {
+ goto succeeded;
+ }
+
+ if (num_atoms > conv_prim->size || num_atoms == 0) {
+ tolerance *= INCREASE_RATE;
+ warning_print("spglib: Some site-symmetry is found broken. ");
+ warning_print("(%d != %d)\n", num_atoms, conv_prim->size);
+ warning_print(" Increase tolerance to %f", tolerance);
+ warning_print(" (%d)", attempt);
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ }
+
+ if (num_atoms < conv_prim->size && num_atoms) {
+ tolerance *= REDUCE_RATE;
+ warning_print("spglib: Some site-symmetry is found broken. ");
+ warning_print("(%d != %d)\n", num_atoms, conv_prim->size);
+ warning_print(" Reduce tolerance to %f", tolerance);
+ warning_print(" (%d)", attempt);
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ }
+ }
+
+ mat_free_VecDBL(positions);
+ positions = NULL;
+ return NULL;
+
+ succeeded:
+ if (! set_Wyckoffs_labels(wyckoffs,
+ positions,
+ equiv_atoms,
+ conv_prim,
+ conv_sym,
+ hall_number,
+ symprec)) {
+ mat_free_VecDBL(positions);
+ positions = NULL;
+ }
+
+ return positions;
}
-static VecDBL * get_exact_positions(int * wyckoffs,
- int * equiv_atoms,
- SPGCONST Cell * bravais,
- SPGCONST Symmetry * conv_sym,
- const int hall_number,
- const double symprec)
+/* Return 0 if failed */
+static int get_exact_positions(VecDBL *positions,
+ int * equiv_atoms,
+ const Cell * conv_prim,
+ const Symmetry * conv_sym,
+ const double symprec)
{
- int i, j, k, l, num_indep_atoms;
- double pos[3];
+ int i, num_indep_atoms, sum_num_atoms_in_orbits, num_atoms_in_orbits;
int *indep_atoms;
- VecDBL *positions;
- debug_print("get_symmetrized_positions\n");
+ debug_print("get_exact_positions\n");
- indep_atoms = (int*) malloc(sizeof(int) * bravais->size);
- positions = mat_alloc_VecDBL(bravais->size);
- num_indep_atoms = 0;
+ indep_atoms = NULL;
- for (i = 0; i < bravais->size; i++) {
+ if ((indep_atoms = (int*) malloc(sizeof(int) * conv_prim->size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ return 0;
+ }
+
+ num_indep_atoms = 0;
+ sum_num_atoms_in_orbits = 0;
+ for (i = 0; i < conv_prim->size; i++) {
/* Check if atom_i overlap to an atom already set at the exact position. */
- for (j = 0; j < num_indep_atoms; j++) {
- for (k = 0; k < conv_sym->size; k++) {
- mat_multiply_matrix_vector_id3(pos,
- conv_sym->rot[k],
- positions->vec[indep_atoms[j]]);
- for (l = 0; l < 3; l++) {
- pos[l] += conv_sym->trans[k][l];
- }
- if (cel_is_overlap(pos,
- bravais->position[i],
- bravais->lattice,
- symprec)) {
- /* Equivalent atom was found. */
- for (l = 0; l < 3; l++) {
- pos[l] -= mat_Nint(pos[l]);
- }
- mat_copy_vector_d3(positions->vec[i], pos);
- wyckoffs[i] = wyckoffs[indep_atoms[j]];
- equiv_atoms[i] = indep_atoms[j];
- goto escape;
- }
+ if (! set_equivalent_atom(positions,
+ equiv_atoms,
+ i,
+ num_indep_atoms,
+ indep_atoms,
+ conv_prim,
+ conv_sym,
+ symprec)) {
+ /* No equivalent atom was found. */
+ indep_atoms[num_indep_atoms] = i;
+ num_indep_atoms++;
+ mat_copy_vector_d3(positions->vec[i], conv_prim->position[i]);
+ num_atoms_in_orbits = set_exact_location(positions->vec[i],
+ conv_sym,
+ conv_prim->lattice,
+ symprec);
+ if (num_atoms_in_orbits) {
+ sum_num_atoms_in_orbits += num_atoms_in_orbits;
+ equiv_atoms[i] = i;
+ } else {
+ sum_num_atoms_in_orbits = 0;
+ break;
}
}
-
- /* No equivalent atom was found. */
- indep_atoms[num_indep_atoms] = i;
- num_indep_atoms++;
- mat_copy_vector_d3(positions->vec[i], bravais->position[i]);
- get_exact_location(positions->vec[i],
- conv_sym,
- bravais->lattice,
- symprec);
- wyckoffs[i] = get_Wyckoff_notation(positions->vec[i],
- conv_sym,
- bravais->lattice,
- hall_number,
- symprec);
- equiv_atoms[i] = i;
- escape:
- ;
}
free(indep_atoms);
indep_atoms = NULL;
- return positions;
+ return sum_num_atoms_in_orbits;
}
+static int set_equivalent_atom(VecDBL *positions,
+ int * equiv_atoms,
+ const int i,
+ const int num_indep_atoms,
+ const int *indep_atoms,
+ const Cell * conv_prim,
+ const Symmetry * conv_sym,
+ const double symprec)
+{
+ int j, k, l;
+ double pos[3];
+
+ for (j = 0; j < num_indep_atoms; j++) {
+ for (k = 0; k < conv_sym->size; k++) {
+ mat_multiply_matrix_vector_id3(pos,
+ conv_sym->rot[k],
+ positions->vec[indep_atoms[j]]);
+ for (l = 0; l < 3; l++) {
+ pos[l] += conv_sym->trans[k][l];
+ }
+ if (cel_is_overlap_with_same_type(pos,
+ conv_prim->position[i],
+ conv_prim->types[indep_atoms[j]],
+ conv_prim->types[i],
+ conv_prim->lattice,
+ symprec)) {
+ for (l = 0; l < 3; l++) {
+ positions->vec[i][l] = mat_Dmod1(pos[l]);
+ }
+ equiv_atoms[i] = indep_atoms[j];
+ return 1;
+ }
+ }
+ }
+
+ return 0;
+}
/* Site-symmetry is used to determine exact location of an atom */
/* R. W. Grosse-Kunstleve and P. D. Adams */
/* Acta Cryst. (2002). A58, 60-65 */
-static void get_exact_location(double position[3],
- SPGCONST Symmetry * conv_sym,
- SPGCONST double bravais_lattice[3][3],
- const double symprec)
+static int set_exact_location(double position[3],
+ const Symmetry * conv_sym,
+ SPGCONST double bravais_lattice[3][3],
+ const double symprec)
{
- int i, j, k, num_sum;
+ int i, j, k, num_sum, multi, num_pure_trans;
double sum_rot[3][3];
double pos[3], sum_trans[3];
+ debug_print("set_exact_location\n");
+
num_sum = 0;
for (i = 0; i < 3; i++) {
sum_trans[i] = 0.0;
@@ -130,25 +262,33 @@ static void get_exact_location(double position[3],
sum_rot[i][j] = 0;
}
}
-
+
+ num_pure_trans = 0;
for (i = 0; i < conv_sym->size; i++) {
- mat_multiply_matrix_vector_id3(pos,
- conv_sym->rot[i],
- position);
+ if (mat_check_identity_matrix_i3(identity, conv_sym->rot[i])) {
+ num_pure_trans++;
+ for (j = 0; j < 3; j++) {
+ pos[j] = position[j];
+ }
+ } else {
+ mat_multiply_matrix_vector_id3(pos,
+ conv_sym->rot[i],
+ position);
+ }
for (j = 0; j < 3; j++) {
pos[j] += conv_sym->trans[i][j];
}
if (cel_is_overlap(pos,
- position,
- bravais_lattice,
- symprec)) {
+ position,
+ bravais_lattice,
+ symprec)) {
for (j = 0; j < 3; j++) {
- sum_trans[j] += conv_sym->trans[i][j] -
- mat_Nint(pos[j] - position[j]);
- for (k = 0; k < 3; k++) {
- sum_rot[j][k] += conv_sym->rot[i][j][k];
- }
+ for (k = 0; k < 3; k++) {
+ sum_rot[j][k] += conv_sym->rot[i][j][k];
+ }
+ sum_trans[j] +=
+ conv_sym->trans[i][j] - mat_Nint(pos[j] - position[j]);
}
num_sum++;
}
@@ -164,28 +304,80 @@ static void get_exact_location(double position[3],
/* (sum_rot|sum_trans) is the special-position operator. */
/* Elements of sum_rot can be fractional values. */
mat_multiply_matrix_vector_d3(position,
- sum_rot,
- position);
+ sum_rot,
+ position);
for (i = 0; i < 3; i++) {
position[i] += sum_trans[i];
}
+ multi = conv_sym->size / num_pure_trans / num_sum;
+ if (multi * num_sum * num_pure_trans == conv_sym->size) {
+ return multi;
+ } else {
+ return 0;
+ }
+}
+
+static int set_Wyckoffs_labels(int *wyckoffs,
+ const VecDBL *positions,
+ const int * equiv_atoms,
+ const Cell * conv_prim,
+ const Symmetry * conv_sym,
+ const int hall_number,
+ const double symprec)
+{
+ int i, w;
+
+ for (i = 0; i < conv_prim->size; i++) {
+ if (i == equiv_atoms[i]) {
+ w = get_Wyckoff_notation(positions->vec[i],
+ conv_sym,
+ conv_prim->lattice,
+ hall_number,
+ symprec);
+ if (w < 0) {
+ goto err;
+ } else {
+ wyckoffs[i] = w;
+ }
+ }
+ }
+
+ for (i = 0; i < conv_prim->size; i++) {
+ if (i != equiv_atoms[i]) {
+ wyckoffs[i] = wyckoffs[equiv_atoms[i]];
+ }
+ }
+
+ return 1;
+
+ err:
+ return 0;
}
+/* Return -1 if failed */
static int get_Wyckoff_notation(double position[3],
- SPGCONST Symmetry * conv_sym,
- SPGCONST double bravais_lattice[3][3],
- const int hall_number,
- const double symprec)
+ const Symmetry * conv_sym,
+ SPGCONST double bravais_lattice[3][3],
+ const int hall_number,
+ const double symprec)
{
- int i, j, k, l, at_orbit, num_sitesym, wyckoff_letter=-1;
+ int i, j, k, l, at_orbit, num_sitesym, wyckoff_letter;
int indices_wyc[2];
int rot[3][3];
double trans[3], orbit[3];
VecDBL *pos_rot;
- pos_rot = mat_alloc_VecDBL(conv_sym->size);
+ debug_print("get_Wyckoff_notation\n");
+
+ wyckoff_letter = -1;
+ pos_rot = NULL;
+
+ if ((pos_rot = mat_alloc_VecDBL(conv_sym->size)) == NULL) {
+ return -1;
+ }
+
for (i = 0; i < conv_sym->size; i++) {
mat_multiply_matrix_vector_id3(pos_rot->vec[i], conv_sym->rot[i], position);
for (j = 0; j < 3; j++) {
@@ -199,33 +391,33 @@ static int get_Wyckoff_notation(double position[3],
for (j = 0; j < pos_rot->size; j++) {
at_orbit = 0;
for (k = 0; k < pos_rot->size; k++) {
- if (cel_is_overlap(pos_rot->vec[j],
- pos_rot->vec[k],
- bravais_lattice,
- symprec)) {
- mat_multiply_matrix_vector_id3(orbit, rot, pos_rot->vec[k]);
- for (l = 0; l < 3; l++) {
- orbit[l] += trans[l];
- }
- if (cel_is_overlap(pos_rot->vec[k],
- orbit,
- bravais_lattice,
- symprec)) {
- at_orbit++;
- }
- }
+ if (cel_is_overlap(pos_rot->vec[j],
+ pos_rot->vec[k],
+ bravais_lattice,
+ symprec)) {
+ mat_multiply_matrix_vector_id3(orbit, rot, pos_rot->vec[k]);
+ for (l = 0; l < 3; l++) {
+ orbit[l] += trans[l];
+ }
+ if (cel_is_overlap(pos_rot->vec[k],
+ orbit,
+ bravais_lattice,
+ symprec)) {
+ at_orbit++;
+ }
+ }
}
if (at_orbit == conv_sym->size / num_sitesym) {
- /* Database is made reversed order, e.g., gfedcba. */
- /* wyckoff is set 0 1 2 3 4... for a b c d e..., respectively. */
- wyckoff_letter = indices_wyc[1] - i - 1;
- goto end;
+ /* Database is made reversed order, e.g., gfedcba. */
+ /* wyckoff is set 0 1 2 3 4... for a b c d e..., respectively. */
+ wyckoff_letter = indices_wyc[1] - i - 1;
+ goto end;
}
}
}
end:
mat_free_VecDBL(pos_rot);
+ pos_rot = NULL;
return wyckoff_letter;
}
-
diff --git a/src/site_symmetry.h b/src/site_symmetry.h
index 9ec1f5e..34d3822 100644
--- a/src/site_symmetry.h
+++ b/src/site_symmetry.h
@@ -1,5 +1,36 @@
-/* site_symmetry.h */
/* Copyright (C) 2011 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __site_symmetry_H__
#define __site_symmetry_H__
@@ -9,10 +40,10 @@
#include "symmetry.h"
VecDBL * ssm_get_exact_positions(int * wyckoffs,
- int * equiv_atoms,
- SPGCONST Cell * bravais,
- SPGCONST Symmetry * conv_sym,
- const int hall_number,
- const double symprec);
+ int * equiv_atoms,
+ const Cell * bravais,
+ const Symmetry * conv_sym,
+ const int hall_number,
+ const double symprec);
#endif
diff --git a/src/sitesym_database.c b/src/sitesym_database.c
index a446f21..d36c755 100644
--- a/src/sitesym_database.c
+++ b/src/sitesym_database.c
@@ -1,5 +1,38 @@
-/* sitesym_database.c */
-/* Copyright (C) 2008 Atsushi Togo */
+/* Copyright (C) 2011 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#include "sitesym_database.h"
static const int position_wyckoff[] =
{ 0, /* The first element is dummy. */
@@ -1031,22 +1064,22 @@ static const int num_sitesym[] =
4, 4, 32, 16, 16, 16, 8, 8, 8, 4,
4, 32, 16, 16, 16, 16, 8, 8, 32, 16,
16, 16, 16, 8, 8, 3, 1, 1, 1, 3,
- 3, 3, 1, 3, 1, 6, 3, 3, 2, 2,
- 1, 1, 6, 3, 3, 2, 1, 1, 6, 3,
+ 3, 9, 3, 3, 1, 6, 3, 3, 2, 2,
+ 1, 1, 18, 9, 9, 6, 3, 3, 6, 3,
3, 2, 1, 1, 6, 3, 3, 2, 2, 2,
1, 1, 1, 1, 1, 1, 6, 3, 3, 2,
2, 1, 1, 6, 3, 3, 6, 3, 3, 6,
- 3, 3, 6, 3, 3, 6, 3, 3, 2, 1,
- 1, 6, 3, 3, 2, 1, 1, 6, 3, 1,
+ 3, 3, 6, 3, 3, 18, 9, 9, 6, 3,
+ 3, 6, 3, 3, 2, 1, 1, 6, 3, 1,
1, 1, 6, 3, 2, 1, 6, 2, 2, 2,
- 6, 2, 2, 6, 3, 1, 6, 3, 1, 6,
- 2, 6, 2, 12, 6, 6, 6, 4, 3, 3,
+ 6, 2, 2, 18, 9, 3, 6, 3, 1, 18,
+ 6, 6, 2, 12, 6, 6, 6, 4, 3, 3,
2, 2, 2, 1, 1, 12, 6, 6, 4, 4,
2, 2, 2, 2, 12, 6, 6, 6, 3, 3,
2, 2, 1, 1, 12, 6, 6, 4, 4, 2,
- 2, 12, 6, 6, 6, 3, 3, 2, 1, 1,
- 12, 6, 6, 6, 3, 3, 2, 1, 1, 12,
- 6, 6, 4, 2, 2, 12, 6, 6, 4, 2,
+ 2, 36, 18, 18, 18, 9, 9, 6, 3, 3,
+ 12, 6, 6, 6, 3, 3, 2, 1, 1, 36,
+ 18, 18, 12, 6, 6, 12, 6, 6, 4, 2,
2, 6, 3, 2, 1, 6, 6, 6, 3, 3,
6, 3, 3, 6, 2, 2, 6, 3, 3, 2,
2, 2, 1, 1, 1, 1, 1, 1, 12, 6,
@@ -1108,9 +1141,9 @@ static const int num_sitesym[] =
16, 16, };
-int ssmdb_get_coordinate( int rot[3][3],
- double trans[3],
- const int index )
+int ssmdb_get_coordinate(int rot[3][3],
+ double trans[3],
+ const int index)
{
int i, rot_enc, trans_enc;
int rows[3], trans_int[3];
@@ -1118,35 +1151,35 @@ int ssmdb_get_coordinate( int rot[3][3],
/* Orbits are compressed using ternary numerical system for */
/* rotation and base-24 system for translation. Elements of the first coloum */
/* of rotation matrix can be one of {-2,-1,0,1,2} and the other elements can */
- /* be one of {-1,0,1}. Translation can have one of */
+ /* be one of {-1,0,1}. Translation can have one of */
/* {0,2,3,4,6,8,9,10,12,14,15,16,18,20,21,22} */
/* divided by 24. Therefore 45^3 * 24^3 = 1259712000 different values can */
/* enough map Wyckoff positions. */
rot_enc = coordinates_first[index] % 91125; /* = 45**3 */
rows[0] = rot_enc / 2025; /* = 45**2 */
- rows[1] = ( rot_enc % 2025 ) / 45;
+ rows[1] = (rot_enc % 2025) / 45;
rows[2] = rot_enc % 45;
- for ( i = 0; i < 3; i++ ) {
+ for (i = 0; i < 3; i++) {
rot[i][0] = rows[i] / 9 - 2;
- rot[i][1] = ( rows[i] % 9 ) / 3 - 1;
+ rot[i][1] = (rows[i] % 9) / 3 - 1;
rot[i][2] = rows[i] % 3 - 1;
}
trans_enc = coordinates_first[index] / 91125; /* = 45**3 */
trans_int[0] = trans_enc / 576;
- trans_int[1] = ( trans_enc % 576 ) / 24 ;
+ trans_int[1] = (trans_enc % 576) / 24 ;
trans_int[2] = trans_enc % 24 ;
- for ( i = 0; i < 3; i++ ) {
+ for (i = 0; i < 3; i++) {
trans[i] = ((double) trans_int[i]) / 24;
}
- return num_sitesym[ index ];
+ return num_sitesym[index];
}
-void ssmdb_get_wyckoff_indices( int indices[2], const int index )
+void ssmdb_get_wyckoff_indices(int indices[2], const int index)
{
- indices[0] = position_wyckoff[ index ];
- indices[1] = position_wyckoff[ index + 1 ] - position_wyckoff[ index ];
+ indices[0] = position_wyckoff[index];
+ indices[1] = position_wyckoff[index + 1] - position_wyckoff[index];
}
diff --git a/src/sitesym_database.h b/src/sitesym_database.h
index 8809a00..dc3f4c2 100644
--- a/src/sitesym_database.h
+++ b/src/sitesym_database.h
@@ -1,5 +1,36 @@
-/* sitesym_database.h */
/* Copyright (C) 2011 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __sitesym_database_H__
#define __sitesym_database_H__
diff --git a/src/spacegroup.c b/src/spacegroup.c
index 35fb006..543586d 100644
--- a/src/spacegroup.c
+++ b/src/spacegroup.c
@@ -1,13 +1,45 @@
-/* spacegroup.c */
/* Copyright (C) 2010 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cell.h"
+#include "delaunay.h"
#include "hall_symbol.h"
-#include "lattice.h"
#include "mathfunc.h"
+#include "niggli.h"
#include "pointgroup.h"
#include "primitive.h"
#include "spacegroup.h"
@@ -17,110 +49,514 @@
#include "debug.h"
#define REDUCE_RATE 0.95
+#define NUM_ATTEMPT 20
+#define INT_PREC 0.1
+
+static double change_of_basis_monocli[18][3][3] = {{{ 1, 0, 0 },
+ { 0, 1, 0 },
+ { 0, 0, 1 }},
+ {{ 0, 0, 1 },
+ { 0,-1, 0 },
+ { 1, 0, 0 }},
+ {{ 0, 0, 1 },
+ { 1, 0, 0 },
+ { 0, 1, 0 }},
+ {{ 1, 0, 0 },
+ { 0, 0, 1 },
+ { 0,-1, 0 }},
+ {{ 0, 1, 0 },
+ { 0, 0, 1 },
+ { 1, 0, 0 }},
+ {{ 0,-1, 0 },
+ { 1, 0, 0 },
+ { 0, 0, 1 }},
+ {{-1, 0, 1 },
+ { 0, 1, 0 },
+ {-1, 0, 0 }},
+ {{ 1, 0,-1 },
+ { 0,-1, 0 },
+ { 0, 0,-1 }},
+ {{ 0, 1,-1 },
+ { 1, 0, 0 },
+ { 0, 0,-1 }},
+ {{-1,-1, 0 },
+ { 0, 0, 1 },
+ {-1, 0, 0 }},
+ {{ 1,-1, 0 },
+ { 0, 0, 1 },
+ { 0,-1, 0 }},
+ {{ 0, 1, 1 },
+ { 1, 0, 0 },
+ { 0, 1, 0 }},
+ {{ 0, 0,-1 },
+ { 0, 1, 0 },
+ { 1, 0,-1 }},
+ {{-1, 0, 0 },
+ { 0,-1, 0 },
+ {-1, 0, 1 }},
+ {{ 0,-1, 0 },
+ { 1, 0, 0 },
+ { 0,-1, 1 }},
+ {{ 0, 1, 0 },
+ { 0, 0, 1 },
+ { 1, 1, 0 }},
+ {{-1, 0, 0 },
+ { 0, 0, 1 },
+ {-1, 1, 0 }},
+ {{ 0, 0,-1 },
+ { 1, 0, 0 },
+ { 0,-1,-1 }}};
+
+static Centering change_of_centering_monocli[18] = {C_FACE,
+ A_FACE,
+ B_FACE,
+ B_FACE,
+ A_FACE,
+ C_FACE,
+ BASE,
+ BASE,
+ BASE,
+ BASE,
+ BASE,
+ BASE,
+ A_FACE,
+ C_FACE,
+ C_FACE,
+ A_FACE,
+ B_FACE,
+ B_FACE};
+
+static int change_of_unique_axis_monocli[18] =
+ {1, 1, 0, 2, 2, 0, 1, 1, 0, 2, 2, 0, 1, 1, 0, 2, 2, 0};
+
+static double change_of_basis_ortho[6][3][3] = {{{ 1, 0, 0 },
+ { 0, 1, 0 },
+ { 0, 0, 1 }},
+ {{ 0, 0, 1 },
+ { 1, 0, 0 },
+ { 0, 1, 0 }},
+ {{ 0, 1, 0 },
+ { 0, 0, 1 },
+ { 1, 0, 0 }},
+ {{ 0, 1, 0 },
+ { 1, 0, 0 },
+ { 0, 0,-1 }},
+ {{ 1, 0, 0 },
+ { 0, 0, 1 },
+ { 0,-1, 0 }},
+ {{ 0, 0, 1 },
+ { 0, 1, 0 },
+ {-1, 0, 0 }}};
-static Spacegroup get_spacegroup(SPGCONST Cell * primitive,
- const double symprec);
-static int get_hall_number(double origin_shift[3],
- double conv_lattice[3][3],
- Centering * centering,
- SPGCONST Cell * primitive,
- SPGCONST Symmetry * symmetry,
- const double symprec);
-static int get_hall_number_local_iteration(double origin_shift[3],
- double conv_lattice[3][3],
- Centering * centering,
- SPGCONST Cell * primitive,
- SPGCONST Symmetry * symmetry,
- const double symprec);
-static int get_hall_number_local(double origin_shift[3],
- double conv_lattice[3][3],
- Centering * centering,
- SPGCONST Cell * primitive,
- SPGCONST Symmetry * symmetry,
- const double symprec);
+static Centering change_of_centering_ortho[6] = {C_FACE,
+ B_FACE,
+ A_FACE,
+ C_FACE,
+ B_FACE,
+ A_FACE};
+static int change_of_unique_axis_ortho[6] = {2, 1, 0, 2, 1, 0};
+
+static double hR_to_hP[3][3] = {{ 1, 0, 1 },
+ {-1, 1, 1 },
+ { 0,-1, 1 }};
+static double change_of_basis_501[3][3] = {{ 0, 0, 1},
+ { 0,-1, 0},
+ { 1, 0, 0}};
+
+static int spacegroup_to_hall_number[230] = {
+ 1, 2, 3, 6, 9, 18, 21, 30, 39, 57,
+ 60, 63, 72, 81, 90, 108, 109, 112, 115, 116,
+ 119, 122, 123, 124, 125, 128, 134, 137, 143, 149,
+ 155, 161, 164, 170, 173, 176, 182, 185, 191, 197,
+ 203, 209, 212, 215, 218, 221, 227, 228, 230, 233,
+ 239, 245, 251, 257, 263, 266, 269, 275, 278, 284,
+ 290, 292, 298, 304, 310, 313, 316, 322, 334, 335,
+ 337, 338, 341, 343, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 361, 363, 364, 366, 367,
+ 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, 401, 402, 404, 406, 407, 408, 410,
+ 412, 413, 414, 416, 418, 419, 420, 422, 424, 425,
+ 426, 428, 430, 431, 432, 433, 435, 436, 438, 439,
+ 440, 441, 442, 443, 444, 446, 447, 448, 449, 450,
+ 452, 454, 455, 456, 457, 458, 460, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
+ 495, 497, 498, 500, 501, 502, 503, 504, 505, 506,
+ 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 520, 521, 523, 524, 525, 527, 529, 530,
+};
+
+static double identity[3][3] = {{ 1, 0, 0 },
+ { 0, 1, 0 },
+ { 0, 0, 1 }};
+static double monocli_i2c[3][3] = {{ 1, 0,-1 },
+ { 0, 1, 0 },
+ { 1, 0, 0 }};
+static double monocli_a2c[3][3] = {{ 0, 0, 1 },
+ { 0,-1, 0 },
+ { 1, 0, 0 }};
+static double rhombo_obverse[3][3] = {{ 2./3,-1./3,-1./3 },
+ { 1./3, 1./3,-2./3 },
+ { 1./3, 1./3, 1./3 }};
+static double rhomb_reverse[3][3] = {{ 1./3,-2./3, 1./3 },
+ { 2./3,-1./3,-1./3 },
+ { 1./3, 1./3, 1./3 }};
+static double a2c[3][3] = {{ 0, 0, 1 },
+ { 1, 0, 0 },
+ { 0, 1, 0 }};
+static double b2c[3][3] = {{ 0, 1, 0 },
+ { 0, 0, 1 },
+ { 1, 0, 0 }};
+
+static double A_mat[3][3] = {{ 1, 0, 0},
+ { 0, 1./2,-1./2},
+ { 0, 1./2, 1./2}};
+static double C_mat[3][3] = {{ 1./2, 1./2, 0},
+ {-1./2, 1./2, 0},
+ { 0, 0, 1}};
+static double R_mat[3][3] = {{ 2./3,-1./3,-1./3 },
+ { 1./3, 1./3,-2./3 },
+ { 1./3, 1./3, 1./3 }};
+static double I_mat[3][3] = {{-1./2, 1./2, 1./2 },
+ { 1./2,-1./2, 1./2 },
+ { 1./2, 1./2,-1./2 }};
+static double F_mat[3][3] = {{ 0, 1./2, 1./2 },
+ { 1./2, 0, 1./2 },
+ { 1./2, 1./2, 0 }};
+
+static Spacegroup search_spacegroup_with_symmetry(const Cell * primitive,
+ const int candidates[],
+ const int num_candidates,
+ const Symmetry *symmetry,
+ const double symprec,
+ const double angle_tolerance);
+static Spacegroup get_spacegroup(const int hall_number,
+ const double origin_shift[3],
+ SPGCONST double conv_lattice[3][3]);
+static int iterative_search_hall_number(double origin_shift[3],
+ double conv_lattice[3][3],
+ const int candidates[],
+ const int num_candidates,
+ const Cell * primitive,
+ const Symmetry * symmetry,
+ const double symprec,
+ const double angle_tolerance);
+static int change_basis_tricli(int int_transform_mat[3][3],
+ SPGCONST double conv_lattice[3][3],
+ SPGCONST double primitive_lattice[3][3],
+ const double symprec);
+static int change_basis_monocli(int int_transform_mat[3][3],
+ SPGCONST double conv_lattice[3][3],
+ SPGCONST double primitive_lattice[3][3],
+ const double symprec);
+static Symmetry *
+get_initial_conventional_symmetry(const Centering centering,
+ SPGCONST double transform_mat[3][3],
+ const Symmetry * symmetry);
+static int search_hall_number(double origin_shift[3],
+ double conv_lattice[3][3],
+ const int candidates[],
+ const int num_candidates,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry * symmetry,
+ const double symprec);
+static int match_hall_symbol_db(double origin_shift[3],
+ double lattice[3][3],
+ const int hall_number,
+ const int pointgroup_number,
+ const Holohedry holohedry,
+ const Centering centering,
+ const Symmetry *symmetry,
+ const double symprec);
+static int match_hall_symbol_db_monocli(double origin_shift[3],
+ double lattice[3][3],
+ const int hall_number,
+ const int num_hall_types,
+ const Centering centering,
+ const Symmetry *symmetry,
+ const double symprec);
+static int match_hall_symbol_db_ortho(double origin_shift[3],
+ double lattice[3][3],
+ const int hall_number,
+ const Centering centering,
+ const Symmetry *symmetry,
+ const int num_free_axes,
+ const double symprec);
static Symmetry * get_conventional_symmetry(SPGCONST double transform_mat[3][3],
- const Centering centering,
- const Symmetry *primitive_sym);
+ const Centering centering,
+ const Symmetry *primitive_sym);
+static Centering get_centering(double correction_mat[3][3],
+ SPGCONST int transform_mat[3][3],
+ const Laue laue);
+static Centering get_base_center(SPGCONST int transform_mat[3][3]);
+static int get_centering_shifts(double shift[3][3],
+ const Centering centering);
-Spacegroup spa_get_spacegroup(SPGCONST Cell * cell,
- const double symprec)
+
+/* Return spacegroup.number = 0 if failed */
+Spacegroup spa_search_spacegroup(const Cell * primitive,
+ const int hall_number,
+ const double symprec,
+ const double angle_tolerance)
{
- double tolerance;
- Cell *primitive;
Spacegroup spacegroup;
+ Symmetry *symmetry;
+ int candidate[1];
+
+ debug_print("search_spacegroup (tolerance = %f):\n", symprec);
- primitive = prm_get_primitive(cell, symprec);
- tolerance = prm_get_current_tolerance();
-
- if (primitive->size > 0) {
- spacegroup = get_spacegroup(primitive, tolerance);
+ symmetry = NULL;
+ spacegroup.number = 0;
+
+ if ((symmetry = sym_get_operation(primitive, symprec, angle_tolerance)) ==
+ NULL) {
+ goto ret;
+ }
+
+ if (hall_number > 0) {
+ candidate[0] = hall_number;
+ }
+
+ if (hall_number) {
+ spacegroup = search_spacegroup_with_symmetry(primitive,
+ candidate,
+ 1,
+ symmetry,
+ symprec,
+ angle_tolerance);
} else {
- spacegroup.number = 0;
- warning_print("spglib: Space group could not be found ");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+ spacegroup = search_spacegroup_with_symmetry(primitive,
+ spacegroup_to_hall_number,
+ 230,
+ symmetry,
+ symprec,
+ angle_tolerance);
}
- cel_free_cell(primitive);
+ sym_free_symmetry(symmetry);
+ symmetry = NULL;
+
+ ret:
return spacegroup;
}
-Spacegroup spa_get_spacegroup_with_primitive(SPGCONST Cell * primitive,
- const double symprec)
+
+Spacegroup spa_search_spacegroup_with_symmetry(const Symmetry *symmetry,
+ const double symprec)
{
+ int i;
Spacegroup spacegroup;
+ Cell *primitive;
- if (primitive->size > 0) {
- spacegroup = get_spacegroup(primitive, symprec);
- } else {
- spacegroup.number = 0;
- warning_print("spglib: Space group could not be found ");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+ primitive = cel_alloc_cell(1);
+ mat_copy_matrix_d3(primitive->lattice, identity);
+ for (i = 0; i < 3; i++) {
+ primitive->position[0][i] = 0;
}
+ spacegroup = search_spacegroup_with_symmetry(primitive,
+ spacegroup_to_hall_number,
+ 230,
+ symmetry,
+ symprec,
+ -1.0);
return spacegroup;
}
-Symmetry * spa_get_conventional_symmetry(SPGCONST double transform_mat[3][3],
- const Centering centering,
- const Symmetry *primitive_sym)
+/* Return NULL if failed */
+Cell * spa_transform_to_primitive(int * mapping_table,
+ const Cell * cell,
+ SPGCONST double trans_mat[3][3],
+ const Centering centering,
+ const double symprec)
+{
+ double tmat[3][3], tmat_inv[3][3], prim_lat[3][3];
+ Cell * primitive;
+
+ primitive = NULL;
+
+ if (!mat_inverse_matrix_d3(tmat_inv, trans_mat, symprec)) {
+ goto err;
+ }
+
+ switch (centering) {
+ case PRIMITIVE:
+ mat_copy_matrix_d3(tmat, tmat_inv);
+ break;
+ case A_FACE:
+ mat_multiply_matrix_d3(tmat, tmat_inv, A_mat);
+ break;
+ case C_FACE:
+ mat_multiply_matrix_d3(tmat, tmat_inv, C_mat);
+ break;
+ case FACE:
+ mat_multiply_matrix_d3(tmat, tmat_inv, F_mat);
+ break;
+ case BODY:
+ mat_multiply_matrix_d3(tmat, tmat_inv, I_mat);
+ break;
+ case R_CENTER:
+ mat_multiply_matrix_d3(tmat, tmat_inv, R_mat);
+ break;
+ default:
+ goto err;
+ }
+
+ mat_multiply_matrix_d3(prim_lat, cell->lattice, tmat);
+ if ((primitive = cel_trim_cell(mapping_table, prim_lat, cell, symprec))
+ == NULL) {
+ warning_print("spglib: cel_trim_cell failed.");
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ }
+
+ return primitive;
+
+ err:
+ return NULL;
+}
+
+/* Return NULL if failed */
+Cell * spa_transform_from_primitive(const Cell * primitive,
+ const Centering centering,
+ const double symprec)
{
- return get_conventional_symmetry(transform_mat,
- centering,
- primitive_sym);
+ int multi, i, j, k, num_atom;
+ int *mapping_table;
+ double tmat[3][3], inv_tmat[3][3], shift[3][3];
+ Cell *std_cell, *trimmed_cell;
+
+ mapping_table = NULL;
+ trimmed_cell = NULL;
+ std_cell = NULL;
+
+ switch (centering) {
+ case PRIMITIVE:
+ break;
+ case A_FACE:
+ mat_copy_matrix_d3(tmat, A_mat);
+ mat_inverse_matrix_d3(inv_tmat, A_mat, 0);
+ break;
+ case C_FACE:
+ mat_copy_matrix_d3(tmat, C_mat);
+ mat_inverse_matrix_d3(inv_tmat, C_mat, 0);
+ break;
+ case FACE:
+ mat_copy_matrix_d3(tmat, F_mat);
+ mat_inverse_matrix_d3(inv_tmat, F_mat, 0);
+ break;
+ case BODY:
+ mat_copy_matrix_d3(tmat, I_mat);
+ mat_inverse_matrix_d3(inv_tmat, I_mat, 0);
+ break;
+ case R_CENTER:
+ mat_copy_matrix_d3(tmat, R_mat);
+ mat_inverse_matrix_d3(inv_tmat, R_mat, 0);
+ break;
+ default:
+ goto ret;
+ }
+
+ multi = get_centering_shifts(shift, centering);
+
+ if ((mapping_table = (int*) malloc(sizeof(int) * primitive->size * multi))
+ == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ goto ret;
+ }
+
+ if ((std_cell = cel_alloc_cell(primitive->size * multi)) == NULL) {
+ free(mapping_table);
+ mapping_table = NULL;
+ goto ret;
+ }
+
+ mat_multiply_matrix_d3(std_cell->lattice, primitive->lattice, inv_tmat);
+
+ num_atom = 0;
+ for (i = 0; i < primitive->size; i++) {
+ mat_multiply_matrix_vector_d3(std_cell->position[num_atom],
+ tmat,
+ primitive->position[i]);
+ std_cell->types[num_atom] = primitive->types[i];
+ num_atom++;
+ }
+
+ for (i = 0; i < multi - 1; i++) {
+ for (j = 0; j < primitive->size; j++) {
+ mat_copy_vector_d3(std_cell->position[num_atom],
+ std_cell->position[j]);
+ for (k = 0; k < 3; k++) {
+ std_cell->position[num_atom][k] += shift[i][k];
+ }
+ std_cell->types[num_atom] = std_cell->types[j];
+ num_atom++;
+ }
+ }
+
+ trimmed_cell = cel_trim_cell(mapping_table,
+ std_cell->lattice,
+ std_cell,
+ symprec);
+ cel_free_cell(std_cell);
+ std_cell = NULL;
+ free(mapping_table);
+ mapping_table = NULL;
+
+ ret:
+ return trimmed_cell;
}
-static Spacegroup get_spacegroup(SPGCONST Cell * primitive,
- const double symprec)
+/* Return spacegroup.number = 0 if failed */
+static Spacegroup search_spacegroup_with_symmetry(const Cell * primitive,
+ const int candidates[],
+ const int num_candidates,
+ const Symmetry *symmetry,
+ const double symprec,
+ const double angle_tolerance)
{
int hall_number;
double conv_lattice[3][3];
double origin_shift[3];
- Centering centering;
- Symmetry *symmetry;
Spacegroup spacegroup;
- SpacegroupType spacegroup_type;
+ PointSymmetry pointsym;
- symmetry = sym_get_operation(primitive, symprec);
- if (symmetry->size == 0) {
- spacegroup.number = 0;
- warning_print("spglib: Space group could not be found ");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
- goto ret;
- }
+ debug_print("search_spacegroup (tolerance = %f):\n", symprec);
- hall_number = get_hall_number(origin_shift,
- conv_lattice,
- ¢ering,
- primitive,
- symmetry,
- symprec);
+ hall_number = 0;
+ spacegroup.number = 0;
- if (hall_number == 0) {
- spacegroup.number = 0;
- warning_print("spglib: Space group could not be found ");
+ pointsym = ptg_get_pointsymmetry(symmetry->rot, symmetry->size);
+ if (pointsym.size < symmetry->size) {
+ warning_print("spglib: Point symmetry of primitive cell is broken. ");
warning_print("(line %d, %s).\n", __LINE__, __FILE__);
goto ret;
}
+ hall_number = iterative_search_hall_number(origin_shift,
+ conv_lattice,
+ candidates,
+ num_candidates,
+ primitive,
+ symmetry,
+ symprec,
+ angle_tolerance);
+ spacegroup = get_spacegroup(hall_number, origin_shift, conv_lattice);
+
+ ret:
+ return spacegroup;
+}
+
+/* Return spacegroup.number = 0 if failed */
+static Spacegroup get_spacegroup(const int hall_number,
+ const double origin_shift[3],
+ SPGCONST double conv_lattice[3][3])
+{
+ Spacegroup spacegroup;
+ SpacegroupType spacegroup_type;
+
+ spacegroup.number = 0;
spacegroup_type = spgdb_get_spacegroup_type(hall_number);
if (spacegroup_type.number > 0) {
@@ -128,171 +564,645 @@ static Spacegroup get_spacegroup(SPGCONST Cell * primitive,
mat_copy_vector_d3(spacegroup.origin_shift, origin_shift);
spacegroup.number = spacegroup_type.number;
spacegroup.hall_number = hall_number;
- spacegroup.holohedry = spacegroup_type.holohedry;
- spacegroup.centering = centering;
+ spacegroup.pointgroup_number = spacegroup_type.pointgroup_number;
strcpy(spacegroup.schoenflies,
- spacegroup_type.schoenflies);
+ spacegroup_type.schoenflies);
strcpy(spacegroup.hall_symbol,
- spacegroup_type.hall_symbol);
+ spacegroup_type.hall_symbol);
strcpy(spacegroup.international,
- spacegroup_type.international);
+ spacegroup_type.international);
strcpy(spacegroup.international_long,
- spacegroup_type.international_full);
+ spacegroup_type.international_full);
strcpy(spacegroup.international_short,
- spacegroup_type.international_short);
- } else {
- spacegroup.number = 0;
- warning_print("spglib: Space group could not be found ");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+ spacegroup_type.international_short);
+ strcpy(spacegroup.choice,
+ spacegroup_type.choice);
}
- ret:
- /* spacegroup.number = 0 when space group was not found. */
- sym_free_symmetry(symmetry);
return spacegroup;
}
-static int get_hall_number(double origin_shift[3],
- double conv_lattice[3][3],
- Centering * centering,
- SPGCONST Cell * primitive,
- SPGCONST Symmetry * symmetry,
- const double symprec)
+/* Return 0 if failed */
+static int iterative_search_hall_number(double origin_shift[3],
+ double conv_lattice[3][3],
+ const int candidates[],
+ const int num_candidates,
+ const Cell * primitive,
+ const Symmetry * symmetry,
+ const double symprec,
+ const double angle_tolerance)
{
- int pg_num, hall_number=0;
-
- debug_print("get_hall_number:\n");
-
- pg_num = ptg_get_pointgroup_number(symmetry);
- if (pg_num > -1) {
- hall_number = get_hall_number_local(origin_shift,
- conv_lattice,
- centering,
- primitive,
- symmetry,
- symprec);
- if (hall_number > 0) { goto ret; }
- }
-
- /* Reduce tolerance and search hall symbol again when hall symbol */
- /* could not be found by the given tolerance. */
- /* The situation this happens is that symmetry operations found */
- /* don't match any of hall symbol database due to tricky */
- /* displacements of atoms from the exact points. */
- hall_number = get_hall_number_local_iteration(origin_shift,
- conv_lattice,
- centering,
- primitive,
- symmetry,
- symprec);
+ int attempt, hall_number;
+ double tolerance;
+ Symmetry * sym_reduced;
+
+ debug_print("iterative_search_hall_number:\n");
+
+ hall_number = 0;
+ sym_reduced = NULL;
+
+ hall_number = search_hall_number(origin_shift,
+ conv_lattice,
+ candidates,
+ num_candidates,
+ primitive->lattice,
+ symmetry,
+ symprec);
+
+ if (hall_number > 0) {
+ goto ret;
+ }
+
+ tolerance = symprec;
+ for (attempt = 0; attempt < NUM_ATTEMPT; attempt++) {
+
+ warning_print("spglib: Attempt %d tolerance = %f failed",
+ attempt, tolerance);
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+
+ tolerance *= REDUCE_RATE;
+ sym_reduced = sym_reduce_operation(primitive,
+ symmetry,
+ tolerance,
+ angle_tolerance);
+ hall_number = search_hall_number(origin_shift,
+ conv_lattice,
+ candidates,
+ num_candidates,
+ primitive->lattice,
+ sym_reduced,
+ symprec);
+ sym_free_symmetry(sym_reduced);
+ sym_reduced = NULL;
+ if (hall_number > 0) {
+ break;
+ }
+ }
ret:
return hall_number;
}
-static int get_hall_number_local_iteration(double origin_shift[3],
- double conv_lattice[3][3],
- Centering * centering,
- SPGCONST Cell * primitive,
- SPGCONST Symmetry * symmetry,
- const double symprec)
+/* Return 0 if failed */
+static int search_hall_number(double origin_shift[3],
+ double conv_lattice[3][3],
+ const int candidates[],
+ const int num_candidates,
+ SPGCONST double primitive_lattice[3][3],
+ const Symmetry * symmetry,
+ const double symprec)
{
- int attempt, pg_num, hall_number=0;
- double tolerance;
- Symmetry * sym_reduced;
+ int i, hall_number;
+ Centering centering;
+ Pointgroup pointgroup;
+ Symmetry * conv_symmetry;
+ int int_transform_mat[3][3];
+ double correction_mat[3][3], transform_mat[3][3];
- debug_print("get_hall_number_local_iteration:\n");
+ debug_print("search_hall_number:\n");
- tolerance = symprec;
- for (attempt = 0; attempt < 100; attempt++) {
- tolerance *= REDUCE_RATE;
- debug_print(" Attempt %d tolerance = %f\n", attempt, tolerance);
- sym_reduced = sym_reduce_operation(primitive, symmetry, tolerance);
- pg_num = ptg_get_pointgroup_number(sym_reduced);
-
- if (pg_num > -1) {
- hall_number = get_hall_number_local(origin_shift,
- conv_lattice,
- centering,
- primitive,
- sym_reduced,
- symprec);
- if (hall_number > 0) {
- sym_free_symmetry(sym_reduced);
- break;
- }
+ hall_number = 0;
+ conv_symmetry = NULL;
+
+ pointgroup = ptg_get_transformation_matrix(int_transform_mat,
+ symmetry->rot,
+ symmetry->size);
+ if (pointgroup.number == 0) {
+ goto err;
+ }
+
+ mat_multiply_matrix_di3(conv_lattice, primitive_lattice, int_transform_mat);
+
+ if (pointgroup.laue == LAUE1) {
+ if (! change_basis_tricli(int_transform_mat,
+ conv_lattice,
+ primitive_lattice,
+ symprec)) {
+ goto err;
}
- sym_free_symmetry(sym_reduced);
}
-#ifdef SPGWARNING
- if (hall_number == 0) {
- warning_print("spglib: Iterative attempt with sym_reduce_operation to find Hall symbol failed.\n");
+ if (pointgroup.laue == LAUE2M) {
+ if (! change_basis_monocli(int_transform_mat,
+ conv_lattice,
+ primitive_lattice,
+ symprec)) {
+ goto err;
+ }
+ }
+
+ if ((centering = get_centering(correction_mat,
+ int_transform_mat,
+ pointgroup.laue)) == CENTERING_ERROR) {
+ goto err;
+ }
+
+ mat_multiply_matrix_id3(transform_mat, int_transform_mat, correction_mat);
+ mat_multiply_matrix_d3(conv_lattice, primitive_lattice, transform_mat);
+
+ if ((conv_symmetry = get_initial_conventional_symmetry(centering,
+ transform_mat,
+ symmetry)) == NULL) {
+ goto err;
+ }
+
+ for (i = 0; i < num_candidates; i++) {
+ if (match_hall_symbol_db(origin_shift,
+ conv_lattice, /* <-- modified only matched */
+ candidates[i],
+ pointgroup.number,
+ pointgroup.holohedry,
+ centering,
+ conv_symmetry,
+ symprec)) {
+ hall_number = candidates[i];
+ break;
+ }
}
-#endif
+
+ sym_free_symmetry(conv_symmetry);
+ conv_symmetry = NULL;
return hall_number;
+
+ err:
+ return 0;
}
+/* Triclinic: Niggli cell reduction */
+/* Return 0 if failed */
+static int change_basis_tricli(int int_transform_mat[3][3],
+ SPGCONST double conv_lattice[3][3],
+ SPGCONST double primitive_lattice[3][3],
+ const double symprec)
+{
+ int i, j;
+ double niggli_cell[9];
+ double smallest_lattice[3][3], inv_lattice[3][3], transform_mat[3][3];
+
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ niggli_cell[i * 3 + j] = conv_lattice[i][j];
+ }
+ }
+
+ if (! niggli_reduce(niggli_cell, symprec * symprec)) {
+ return 0;
+ }
-static int get_hall_number_local(double origin_shift[3],
- double conv_lattice[3][3],
- Centering * centering,
- SPGCONST Cell * primitive,
- SPGCONST Symmetry * symmetry,
- const double symprec)
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ smallest_lattice[i][j] = niggli_cell[i * 3 + j];
+ }
+ }
+ if (mat_get_determinant_d3(smallest_lattice) < 0) {
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ smallest_lattice[i][j] = -smallest_lattice[i][j];
+ }
+ }
+ }
+ mat_inverse_matrix_d3(inv_lattice, primitive_lattice, 0);
+ mat_multiply_matrix_d3(transform_mat, inv_lattice, smallest_lattice);
+ mat_cast_matrix_3d_to_3i(int_transform_mat, transform_mat);
+
+ return 1;
+}
+
+/* Monoclinic: choose shortest a, c lattice vectors (|a| < |c|) */
+/* Return 0 if failed */
+static int change_basis_monocli(int int_transform_mat[3][3],
+ SPGCONST double conv_lattice[3][3],
+ SPGCONST double primitive_lattice[3][3],
+ const double symprec)
+{
+ double smallest_lattice[3][3], inv_lattice[3][3], transform_mat[3][3];
+
+ if (! del_delaunay_reduce_2D(smallest_lattice,
+ conv_lattice,
+ 1, /* unique axis of b */
+ symprec)) {
+ return 0;
+ }
+
+ mat_inverse_matrix_d3(inv_lattice, primitive_lattice, 0);
+ mat_multiply_matrix_d3(transform_mat, inv_lattice, smallest_lattice);
+ mat_cast_matrix_3d_to_3i(int_transform_mat, transform_mat);
+ return 1;
+}
+
+/* Return NULL if failed */
+static Symmetry *
+get_initial_conventional_symmetry(const Centering centering,
+ SPGCONST double transform_mat[3][3],
+ const Symmetry * symmetry)
{
- int hall_number;
- double trans_mat[3][3];
Symmetry * conv_symmetry;
- debug_print("get_hall_number_local:\n");
-
- *centering = ptg_get_transformation_matrix(trans_mat,
- symmetry->rot,
- symmetry->size);
+ debug_print("get_initial_conventional_symmetry\n");
- mat_multiply_matrix_d3(conv_lattice,
- primitive->lattice,
- trans_mat);
+ conv_symmetry = NULL;
- conv_symmetry = get_conventional_symmetry(trans_mat,
- *centering,
- symmetry);
+ if (centering == R_CENTER) {
+ /* hP for rhombohedral */
+ conv_symmetry = get_conventional_symmetry(transform_mat,
+ PRIMITIVE,
+ symmetry);
+ } else {
+ conv_symmetry = get_conventional_symmetry(transform_mat,
+ centering,
+ symmetry);
+ }
- hall_number = hal_get_hall_symbol(origin_shift,
- *centering,
- conv_lattice,
- conv_symmetry,
- symprec);
+ return conv_symmetry;
+}
-
- sym_free_symmetry(conv_symmetry);
+/* Return 0 if failed */
+static int match_hall_symbol_db(double origin_shift[3],
+ double lattice[3][3],
+ const int hall_number,
+ const int pointgroup_number,
+ const Holohedry holohedry,
+ const Centering centering,
+ const Symmetry *symmetry,
+ const double symprec)
+{
+ int is_found, num_hall_types;
+ SpacegroupType spacegroup_type;
+ Symmetry * changed_symmetry;
+ double changed_lattice[3][3], inv_lattice[3][3], transform_mat[3][3];
- return hall_number;
+ changed_symmetry = NULL;
+
+ spacegroup_type = spgdb_get_spacegroup_type(hall_number);
+ num_hall_types = (spacegroup_to_hall_number[spacegroup_type.number] -
+ spacegroup_to_hall_number[spacegroup_type.number - 1]);
+
+ if (pointgroup_number != spacegroup_type.pointgroup_number) {
+ goto err;
+ }
+
+ switch (holohedry) {
+ case MONOCLI:
+ if (match_hall_symbol_db_monocli(origin_shift,
+ lattice,
+ hall_number,
+ num_hall_types,
+ centering,
+ symmetry,
+ symprec)) {return 1;}
+ break;
+
+ case ORTHO:
+ if (spacegroup_type.number == 48 ||
+ spacegroup_type.number == 50 ||
+ spacegroup_type.number == 59 ||
+ spacegroup_type.number == 68 ||
+ spacegroup_type.number == 70) { /* uncount origin shift */
+ num_hall_types /= 2;
+ }
+
+ if (num_hall_types == 1) {
+ if (match_hall_symbol_db_ortho(origin_shift,
+ lattice,
+ hall_number,
+ centering,
+ symmetry,
+ 6,
+ symprec)) {return 1;}
+ break;
+ }
+
+ if (num_hall_types == 2) {
+ if (match_hall_symbol_db_ortho(origin_shift,
+ lattice,
+ hall_number,
+ centering,
+ symmetry,
+ 3,
+ symprec)) {return 1;}
+ break;
+ }
+
+ if (num_hall_types == 3) {
+ mat_copy_matrix_d3(changed_lattice, lattice);
+ if (! match_hall_symbol_db_ortho
+ (origin_shift,
+ changed_lattice,
+ spacegroup_to_hall_number[spacegroup_type.number - 1],
+ centering,
+ symmetry,
+ 0,
+ symprec)) {break;}
+ mat_inverse_matrix_d3(inv_lattice, lattice, 0);
+ mat_multiply_matrix_d3(transform_mat, inv_lattice, changed_lattice);
+
+ if ((changed_symmetry = get_conventional_symmetry(transform_mat,
+ PRIMITIVE,
+ symmetry)) == NULL) {
+ goto err;
+ }
+
+ is_found = match_hall_symbol_db_ortho(origin_shift,
+ changed_lattice,
+ hall_number,
+ centering,
+ changed_symmetry,
+ 2,
+ symprec);
+ sym_free_symmetry(changed_symmetry);
+ changed_symmetry = NULL;
+ if (is_found) {
+ mat_copy_matrix_d3(lattice, changed_lattice);
+ return 1;
+ }
+ break;
+ }
+
+ if (num_hall_types == 6) {
+ if (match_hall_symbol_db_ortho(origin_shift,
+ lattice,
+ hall_number,
+ centering,
+ symmetry,
+ 1,
+ symprec)) {return 1;}
+ break;
+ }
+
+ break;
+
+ case CUBIC:
+ if (hal_match_hall_symbol_db(origin_shift,
+ lattice,
+ hall_number,
+ centering,
+ symmetry,
+ symprec)) {return 1;}
+
+ if (hall_number == 501) { /* Try another basis for No.205 */
+ mat_multiply_matrix_d3(changed_lattice,
+ lattice,
+ change_of_basis_501);
+ if ((changed_symmetry = get_conventional_symmetry(change_of_basis_501,
+ PRIMITIVE,
+ symmetry)) == NULL) {
+ goto err;
+ }
+
+ is_found = hal_match_hall_symbol_db(origin_shift,
+ changed_lattice,
+ hall_number,
+ PRIMITIVE,
+ changed_symmetry,
+ symprec);
+ sym_free_symmetry(changed_symmetry);
+ changed_symmetry = NULL;
+ if (is_found) {
+ mat_copy_matrix_d3(lattice, changed_lattice);
+ return 1;
+ }
+ }
+ break;
+
+ case TRIGO:
+ if (centering == R_CENTER) {
+ if (hall_number == 433 ||
+ hall_number == 436 ||
+ hall_number == 444 ||
+ hall_number == 450 ||
+ hall_number == 452 ||
+ hall_number == 458 ||
+ hall_number == 460) {
+ mat_multiply_matrix_d3(changed_lattice, lattice, hR_to_hP);
+ if ((changed_symmetry =
+ get_conventional_symmetry(hR_to_hP, R_CENTER, symmetry)) == NULL) {
+ goto err;
+ }
+
+ is_found = hal_match_hall_symbol_db(origin_shift,
+ changed_lattice,
+ hall_number,
+ centering,
+ changed_symmetry,
+ symprec);
+ sym_free_symmetry(changed_symmetry);
+ changed_symmetry = NULL;
+ if (is_found) {
+ mat_copy_matrix_d3(lattice, changed_lattice);
+ return 1;
+ }
+ } else {
+ if (hal_match_hall_symbol_db(origin_shift,
+ lattice,
+ hall_number,
+ PRIMITIVE,
+ symmetry,
+ symprec)) {
+ return 1;
+ }
+ }
+ break;
+ }
+ /* Do not break for other trigonal cases */
+ default: /* HEXA, TETRA, TRICLI and rest of TRIGO */
+ if (hal_match_hall_symbol_db(origin_shift,
+ lattice,
+ hall_number,
+ centering,
+ symmetry,
+ symprec)) {
+ return 1;
+ }
+ break;
+ }
+
+ err:
+ return 0;
+}
+
+/* Return 0 if failed */
+static int match_hall_symbol_db_monocli(double origin_shift[3],
+ double lattice[3][3],
+ const int hall_number,
+ const int num_hall_types,
+ const Centering centering,
+ const Symmetry *symmetry,
+ const double symprec)
+{
+ int i, j, k, l, is_found;
+ double vec[3], norms[3];
+ Centering changed_centering;
+ Symmetry * changed_symmetry;
+ double changed_lattice[3][3];
+
+ changed_symmetry = NULL;
+
+ for (i = 0; i < 18; i++) {
+ if (centering == C_FACE) {
+ changed_centering = change_of_centering_monocli[i];
+ } else { /* suppose PRIMITIVE */
+ changed_centering = centering;
+ }
+
+ mat_multiply_matrix_d3(changed_lattice,
+ lattice,
+ change_of_basis_monocli[i]);
+
+ /* Choose |a| < |b| < |c| if there are freedom. */
+ if (num_hall_types == 3) {
+ l = 0;
+ for (j = 0; j < 3; j++) {
+ if (j == change_of_unique_axis_monocli[i]) {continue;}
+ for (k = 0; k < 3; k++) {vec[k] = changed_lattice[k][j];}
+ norms[l] = mat_norm_squared_d3(vec);
+ l++;
+ }
+ if (norms[0] > norms[1]) {continue;}
+ }
+
+ if ((changed_symmetry =
+ get_conventional_symmetry(change_of_basis_monocli[i],
+ PRIMITIVE,
+ symmetry)) == NULL) {
+ goto err;
+ }
+
+ is_found = hal_match_hall_symbol_db(origin_shift,
+ changed_lattice,
+ hall_number,
+ changed_centering,
+ changed_symmetry,
+ symprec);
+ sym_free_symmetry(changed_symmetry);
+ changed_symmetry = NULL;
+ if (is_found) {
+ mat_copy_matrix_d3(lattice, changed_lattice);
+ return 1;
+ }
+ }
+
+ err:
+ return 0;
}
+/* Return 0 if failed */
+static int match_hall_symbol_db_ortho(double origin_shift[3],
+ double lattice[3][3],
+ const int hall_number,
+ const Centering centering,
+ const Symmetry *symmetry,
+ const int num_free_axes,
+ const double symprec)
+{
+ int i, j, k, l, is_found;
+ double vec[3], norms[3];
+ Centering changed_centering;
+ Symmetry * changed_symmetry;
+ double changed_lattice[3][3];
+
+ changed_symmetry = NULL;
+
+ for (i = 0; i < 6; i++) {
+ if (centering == C_FACE) {
+ changed_centering = change_of_centering_ortho[i];
+ } else {
+ changed_centering = centering;
+ }
+
+ mat_multiply_matrix_d3(changed_lattice,
+ lattice,
+ change_of_basis_ortho[i]);
+
+ if (num_free_axes == 2) {
+ l = 0;
+ for (j = 0; j < 3; j++) {
+ if (j == change_of_unique_axis_ortho[i]) {continue;}
+ for (k = 0; k < 3; k++) {vec[k] = changed_lattice[k][j];}
+ norms[l] = mat_norm_squared_d3(vec);
+ l++;
+ }
+ if (norms[0] > norms[1]) {continue;}
+ }
+
+ if (num_free_axes == 3) {
+ for (j = 0; j < 3; j++) {
+ for (k = 0; k < 3; k++) {vec[k] = changed_lattice[k][j];}
+ norms[j] = mat_norm_squared_d3(vec);
+ }
+ if (norms[0] > norms[1] || norms[0] > norms[2]) {continue;}
+ }
+
+ if (num_free_axes == 6) {
+ for (j = 0; j < 3; j++) {
+ for (k = 0; k < 3; k++) {vec[k] = changed_lattice[k][j];}
+ norms[j] = mat_norm_squared_d3(vec);
+ }
+ if (norms[0] > norms[1] || norms[1] > norms[2]) {continue;}
+ }
+
+ if ((changed_symmetry = get_conventional_symmetry(change_of_basis_ortho[i],
+ PRIMITIVE,
+ symmetry)) == NULL) {
+ goto err;
+ }
+
+ is_found = hal_match_hall_symbol_db(origin_shift,
+ changed_lattice,
+ hall_number,
+ changed_centering,
+ changed_symmetry,
+ symprec);
+ sym_free_symmetry(changed_symmetry);
+ changed_symmetry = NULL;
+ if (is_found) {
+ mat_copy_matrix_d3(lattice, changed_lattice);
+ return 1;
+ }
+ }
+
+ err:
+ return 0;
+}
+
+/* Return NULL if failed */
static Symmetry * get_conventional_symmetry(SPGCONST double transform_mat[3][3],
- const Centering centering,
- const Symmetry *primitive_sym)
+ const Centering centering,
+ const Symmetry *primitive_sym)
{
int i, j, k, multi, size;
- double tmp_trans;
- double tmp_matrix_d3[3][3], shift[4][3];
+ double inv_tmat[3][3], shift[3][3];
double symmetry_rot_d3[3][3], primitive_sym_rot_d3[3][3];
Symmetry *symmetry;
+ symmetry = NULL;
+
size = primitive_sym->size;
- if (centering == FACE) {
- symmetry = sym_alloc_symmetry(size * 4);
- }
- else {
- if (centering) {
- symmetry = sym_alloc_symmetry(size * 2);
- } else {
- symmetry = sym_alloc_symmetry(size);
+ switch (centering) {
+ case FACE:
+ if ((symmetry = sym_alloc_symmetry(size * 4)) == NULL) {
+ return NULL;
+ }
+ break;
+ case R_CENTER:
+ if ((symmetry = sym_alloc_symmetry(size * 3)) == NULL) {
+ return NULL;
+ }
+ break;
+ case BODY:
+ case A_FACE:
+ case B_FACE:
+ case C_FACE:
+ if ((symmetry = sym_alloc_symmetry(size * 2)) == NULL) {
+ return NULL;
+ }
+ break;
+ default:
+ if ((symmetry = sym_alloc_symmetry(size)) == NULL) {
+ return NULL;
}
+ break;
}
for (i = 0; i < size; i++) {
@@ -300,32 +1210,201 @@ static Symmetry * get_conventional_symmetry(SPGCONST double transform_mat[3][3],
/* C*S*C^-1: recover conventional cell symmetry operation */
mat_get_similar_matrix_d3(symmetry_rot_d3,
- primitive_sym_rot_d3,
- transform_mat,
- 0);
+ primitive_sym_rot_d3,
+ transform_mat,
+ 0);
mat_cast_matrix_3d_to_3i(symmetry->rot[i], symmetry_rot_d3);
/* translation in conventional cell: C = B^-1*P */
- mat_inverse_matrix_d3(tmp_matrix_d3,
- transform_mat,
- 0);
+ mat_inverse_matrix_d3(inv_tmat, transform_mat, 0);
mat_multiply_matrix_vector_d3(symmetry->trans[i],
- tmp_matrix_d3,
- primitive_sym->trans[i]);
+ inv_tmat,
+ primitive_sym->trans[i]);
}
multi = 1;
- if (centering) {
- if (! (centering == FACE)) {
- for (i = 0; i < 3; i++) { shift[0][i] = 0.5; }
+ if (centering != PRIMITIVE) {
+ multi = get_centering_shifts(shift, centering);
+ for (i = 0; i < multi - 1; i++) {
+ for (j = 0; j < size; j++) {
+ mat_copy_matrix_i3(symmetry->rot[(i+1) * size + j],
+ symmetry->rot[j]);
+ for (k = 0; k < 3; k++) {
+ symmetry->trans[(i+1) * size + j][k] =
+ symmetry->trans[j][k] + shift[i][k];
+ }
+ }
+ }
+ }
+
+ for (i = 0; i < multi; i++) {
+ for (j = 0; j < size; j++) {
+ for (k = 0; k < 3; k++) {
+ symmetry->trans[i * size + j][k] =
+ mat_Dmod1(symmetry->trans[i * size + j][k]);
+ }
+ }
+ }
+
+ return symmetry;
+}
+
+/* Return CENTERING_ERROR if failed */
+static Centering get_centering(double correction_mat[3][3],
+ SPGCONST int transform_mat[3][3],
+ const Laue laue)
+{
+ int det;
+ double trans_corr_mat[3][3];
+ Centering centering;
+
+ mat_copy_matrix_d3(correction_mat, identity);
+ det = abs(mat_get_determinant_i3(transform_mat));
+ debug_print("laue class: %d\n", laue);
+ debug_print("multiplicity: %d\n", det);
+
+ switch (det) {
+
+ case 1:
+ centering = PRIMITIVE;
+ break;
+
+ case 2:
+ centering = get_base_center(transform_mat);
+ if (centering == A_FACE) {
+ if (laue == LAUE2M) {
+ debug_print("Monocli A to C\n");
+ mat_copy_matrix_d3(correction_mat, monocli_a2c);
+ } else {
+ mat_copy_matrix_d3(correction_mat, a2c);
+ }
+ centering = C_FACE;
+ }
+ if (centering == B_FACE) {
+ mat_copy_matrix_d3(correction_mat, b2c);
+ centering = C_FACE;
+ }
+ if (laue == LAUE2M && centering == BODY) {
+ debug_print("Monocli I to C\n");
+ mat_copy_matrix_d3(correction_mat, monocli_i2c);
+ centering = C_FACE;
+ }
+ break;
+
+ case 3:
+ /* hP (a=b) but not hR (a=b=c) */
+ centering = R_CENTER;
+ mat_multiply_matrix_id3(trans_corr_mat, transform_mat, rhombo_obverse);
+ if (mat_is_int_matrix(trans_corr_mat, INT_PREC)) {
+ mat_copy_matrix_d3(correction_mat, rhombo_obverse);
+ debug_print("R-center observe setting\n");
+ debug_print_matrix_d3(trans_corr_mat);
+ }
+ mat_multiply_matrix_id3(trans_corr_mat, transform_mat, rhomb_reverse);
+ if (mat_is_int_matrix(trans_corr_mat, INT_PREC)) {
+ mat_copy_matrix_d3(correction_mat, rhomb_reverse);
+ debug_print("R-center reverse setting\n");
+ debug_print_matrix_d3(trans_corr_mat);
+ }
+ break;
+
+ case 4:
+ centering = FACE;
+ break;
+
+ default:
+ centering = CENTERING_ERROR;
+ break;
+ }
+
+ return centering;
+}
+
+static Centering get_base_center(SPGCONST int transform_mat[3][3])
+{
+ int i;
+ Centering centering = PRIMITIVE;
+
+ debug_print("lat_get_base_center\n");
+
+ /* C center */
+ for (i = 0; i < 3; i++) {
+ if (transform_mat[i][0] == 0 &&
+ transform_mat[i][1] == 0 &&
+ abs(transform_mat[i][2]) == 1) {
+ centering = C_FACE;
+ goto end;
+ }
+ }
+
+ /* A center */
+ for (i = 0; i < 3; i++) {
+ if (abs(transform_mat[i][0]) == 1 &&
+ transform_mat[i][1] == 0 &&
+ transform_mat[i][2] == 0) {
+ centering = A_FACE;
+ goto end;
+ }
+ }
+
+ /* B center */
+ for (i = 0; i < 3; i++) {
+ if (transform_mat[i][0] == 0 &&
+ abs(transform_mat[i][1]) == 1 &&
+ transform_mat[i][2] == 0) {
+ centering = B_FACE;
+ goto end;
+ }
+ }
+
+ /* body center */
+ if (abs(transform_mat[0][0]) +
+ abs(transform_mat[0][1]) +
+ abs(transform_mat[0][2]) == 2) {
+ centering = BODY;
+ goto end;
+ }
+
+ /* This should not happen. */
+ warning_print("spglib: No centring was found (line %d, %s).\n", __LINE__, __FILE__);
+ return PRIMITIVE;
+
+ end:
+ return centering;
+}
+
+static int get_centering_shifts(double shift[3][3],
+ const Centering centering)
+{
+ int i, j, multi;
+
+ multi = 1;
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ shift[i][j] = 0;
+ }
+ }
+
+ if (centering != PRIMITIVE) {
+ if (centering != FACE && centering != R_CENTER) {
+ for (i = 0; i < 3; i++) { shift[0][i] = 0.5; } /* BASE */
if (centering == A_FACE) { shift[0][0] = 0; }
if (centering == B_FACE) { shift[0][1] = 0; }
if (centering == C_FACE) { shift[0][2] = 0; }
-
multi = 2;
}
+ if (centering == R_CENTER) {
+ shift[0][0] = 2. / 3;
+ shift[0][1] = 1. / 3;
+ shift[0][2] = 1. / 3;
+ shift[1][0] = 1. / 3;
+ shift[1][1] = 2. / 3;
+ shift[1][2] = 2. / 3;
+ multi = 3;
+ }
+
if (centering == FACE) {
shift[0][0] = 0;
shift[0][1] = 0.5;
@@ -336,37 +1415,9 @@ static Symmetry * get_conventional_symmetry(SPGCONST double transform_mat[3][3],
shift[2][0] = 0.5;
shift[2][1] = 0.5;
shift[2][2] = 0;
-
multi = 4;
}
-
- for (i = 0; i < multi - 1; i++) {
- for (j = 0; j < size; j++) {
- mat_copy_matrix_i3(symmetry->rot[(i+1) * size + j],
- symmetry->rot[j]);
- for (k = 0; k < 3; k++) {
- tmp_trans = symmetry->trans[j][k] + shift[i][k];
- symmetry->trans[(i+1) * size + j][k] = tmp_trans;
- }
- }
- }
}
-
- /* Reduce translations into -0 < trans < 1.0 */
- for (i = 0; i < multi; i++) {
- for (j = 0; j < size; j++) {
- for (k = 0; k < 3; k++) {
- tmp_trans = symmetry->trans[i * size + j][k];
- tmp_trans -= mat_Nint(tmp_trans);
- if (tmp_trans < 0) {
- tmp_trans += 1.0;
- }
- symmetry->trans[i * size + j][k] = tmp_trans;
- }
- }
- }
-
- return symmetry;
+ return multi;
}
-
diff --git a/src/spacegroup.h b/src/spacegroup.h
index b965a04..c7ffef4 100644
--- a/src/spacegroup.h
+++ b/src/spacegroup.h
@@ -1,35 +1,84 @@
-/* spacegroup.h */
/* Copyright (C) 2010 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __spacegroup_H__
#define __spacegroup_H__
#include "cell.h"
-#include "lattice.h"
#include "mathfunc.h"
-#include "pointgroup.h"
+#include "primitive.h"
#include "symmetry.h"
typedef struct {
int number;
int hall_number;
+ int pointgroup_number;
char schoenflies[7];
char hall_symbol[17];
char international[32];
char international_long[20];
char international_short[11];
- Holohedry holohedry;
- Centering centering;
+ char choice[6];
double bravais_lattice[3][3];
double origin_shift[3];
} Spacegroup;
-Spacegroup spa_get_spacegroup( SPGCONST Cell * cell,
- const double symprec );
-Spacegroup spa_get_spacegroup_with_primitive( SPGCONST Cell * primitive,
- const double symprec );
-Symmetry * spa_get_conventional_symmetry( SPGCONST double transform_mat[3][3],
- const Centering centering,
- const Symmetry *primitive_sym );
+typedef enum {
+ CENTERING_ERROR,
+ PRIMITIVE,
+ BODY,
+ FACE,
+ A_FACE,
+ B_FACE,
+ C_FACE,
+ BASE,
+ R_CENTER,
+} Centering;
+
+Spacegroup spa_search_spacegroup(const Cell * primitive,
+ const int hall_number,
+ const double symprec,
+ const double angle_tolerance);
+Spacegroup spa_search_spacegroup_with_symmetry(const Symmetry *symmetry,
+ const double symprec);
+Cell * spa_transform_to_primitive(int * mapping_table,
+ const Cell * cell,
+ SPGCONST double trans_mat[3][3],
+ const Centering centering,
+ const double symprec);
+Cell * spa_transform_from_primitive(const Cell * primitive,
+ const Centering centering,
+ const double symprec);
#endif
diff --git a/src/spg_database.c b/src/spg_database.c
index b53b9fd..7c62bad 100644
--- a/src/spg_database.c
+++ b/src/spg_database.c
@@ -1,545 +1,576 @@
-/* spg_database.c */
/* Copyright (C) 2010 Atsushi Togo */
+/* All rights reserved. */
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#include <stdlib.h>
#include "spg_database.h"
-#include "pointgroup.h"
-/* In Hall symbols (4th column), '=' is used instead of '"'. */
+/* In Hall symbols (3rd column), '=' is used instead of '"'. */
static const SpacegroupType spacegroup_types[] = {
- { 0, " ", " ", " ", " ", " ", NONE }, /* 0*/
- { 1, "C1^1 ", "P 1 ", "P 1 ", "P 1 ", "P1 ", TRICLI }, /* 1*/
- { 2, "Ci^1 ", "-P 1 ", "P -1 ", "P -1 ", "P-1 ", TRICLI }, /* 2*/
- { 3, "C2^1 ", "P 2y ", "P 2 = P 1 2 1 ", "P 1 2 1 ", "P2 ", MONOCLI }, /* 3*/
- { 3, "C2^1 ", "P 2 ", "P 2 = P 1 1 2 ", "P 1 1 2 ", "P2 ", MONOCLI }, /* 4*/
- { 3, "C2^1 ", "P 2x ", "P 2 = P 2 1 1 ", "P 2 1 1 ", "P2 ", MONOCLI }, /* 5*/
- { 4, "C2^2 ", "P 2yb ", "P 2_1 = P 1 2_1 1 ", "P 1 2_1 1 ", "P2_1 ", MONOCLI }, /* 6*/
- { 4, "C2^2 ", "P 2c ", "P 2_1 = P 1 1 2_1 ", "P 1 1 2_1 ", "P2_1 ", MONOCLI }, /* 7*/
- { 4, "C2^2 ", "P 2xa ", "P 2_1 = P 2_1 1 1 ", "P 2_1 1 1 ", "P2_1 ", MONOCLI }, /* 8*/
- { 5, "C2^3 ", "C 2y ", "C 2 = C 1 2 1 ", "C 1 2 1 ", "C2 ", MONOCLI }, /* 9*/
- { 5, "C2^3 ", "A 2y ", "C 2 = A 1 2 1 ", "A 1 2 1 ", "C2 ", MONOCLI }, /* 10*/
- { 5, "C2^3 ", "I 2y ", "C 2 = I 1 2 1 ", "I 1 2 1 ", "C2 ", MONOCLI }, /* 11*/
- { 5, "C2^3 ", "A 2 ", "C 2 = A 1 1 2 ", "A 1 1 2 ", "C2 ", MONOCLI }, /* 12*/
- { 5, "C2^3 ", "B 2 ", "C 2 = B 1 1 2 = B 2 ", "B 1 1 2 ", "C2 ", MONOCLI }, /* 13*/
- { 5, "C2^3 ", "I 2 ", "C 2 = I 1 1 2 ", "I 1 1 2 ", "C2 ", MONOCLI }, /* 14*/
- { 5, "C2^3 ", "B 2x ", "C 2 = B 2 1 1 ", "B 2 1 1 ", "C2 ", MONOCLI }, /* 15*/
- { 5, "C2^3 ", "C 2x ", "C 2 = C 2 1 1 ", "C 2 1 1 ", "C2 ", MONOCLI }, /* 16*/
- { 5, "C2^3 ", "I 2x ", "C 2 = I 2 1 1 ", "I 2 1 1 ", "C2 ", MONOCLI }, /* 17*/
- { 6, "Cs^1 ", "P -2y ", "P m = P 1 m 1 ", "P 1 m 1 ", "Pm ", MONOCLI }, /* 18*/
- { 6, "Cs^1 ", "P -2 ", "P m = P 1 1 m ", "P 1 1 m ", "Pm ", MONOCLI }, /* 19*/
- { 6, "Cs^1 ", "P -2x ", "P m = P m 1 1 ", "P m 1 1 ", "Pm ", MONOCLI }, /* 20*/
- { 7, "Cs^2 ", "P -2yc ", "P c = P 1 c 1 ", "P 1 c 1 ", "Pc ", MONOCLI }, /* 21*/
- { 7, "Cs^2 ", "P -2yac ", "P c = P 1 n 1 ", "P 1 n 1 ", "Pc ", MONOCLI }, /* 22*/
- { 7, "Cs^2 ", "P -2ya ", "P c = P 1 a 1 ", "P 1 a 1 ", "Pc ", MONOCLI }, /* 23*/
- { 7, "Cs^2 ", "P -2a ", "P c = P 1 1 a ", "P 1 1 a ", "Pc ", MONOCLI }, /* 24*/
- { 7, "Cs^2 ", "P -2ab ", "P c = P 1 1 n ", "P 1 1 n ", "Pc ", MONOCLI }, /* 25*/
- { 7, "Cs^2 ", "P -2b ", "P c = P 1 1 b = P b ", "P 1 1 b ", "Pc ", MONOCLI }, /* 26*/
- { 7, "Cs^2 ", "P -2xb ", "P c = P b 1 1 ", "P b 1 1 ", "Pc ", MONOCLI }, /* 27*/
- { 7, "Cs^2 ", "P -2xbc ", "P c = P n 1 1 ", "P n 1 1 ", "Pc ", MONOCLI }, /* 28*/
- { 7, "Cs^2 ", "P -2xc ", "P c = P c 1 1 ", "P c 1 1 ", "Pc ", MONOCLI }, /* 29*/
- { 8, "Cs^3 ", "C -2y ", "C m = C 1 m 1 ", "C 1 m 1 ", "Cm ", MONOCLI }, /* 30*/
- { 8, "Cs^3 ", "A -2y ", "C m = A 1 m 1 ", "A 1 m 1 ", "Cm ", MONOCLI }, /* 31*/
- { 8, "Cs^3 ", "I -2y ", "C m = I 1 m 1 ", "I 1 m 1 ", "Cm ", MONOCLI }, /* 32*/
- { 8, "Cs^3 ", "A -2 ", "C m = A 1 1 m ", "A 1 1 m ", "Cm ", MONOCLI }, /* 33*/
- { 8, "Cs^3 ", "B -2 ", "C m = B 1 1 m = B m ", "B 1 1 m ", "Cm ", MONOCLI }, /* 34*/
- { 8, "Cs^3 ", "I -2 ", "C m = I 1 1 m ", "I 1 1 m ", "Cm ", MONOCLI }, /* 35*/
- { 8, "Cs^3 ", "B -2x ", "C m = B m 1 1 ", "B m 1 1 ", "Cm ", MONOCLI }, /* 36*/
- { 8, "Cs^3 ", "C -2x ", "C m = C m 1 1 ", "C m 1 1 ", "Cm ", MONOCLI }, /* 37*/
- { 8, "Cs^3 ", "I -2x ", "C m = I m 1 1 ", "I m 1 1 ", "Cm ", MONOCLI }, /* 38*/
- { 9, "Cs^4 ", "C -2yc ", "C c = C 1 c 1 ", "C 1 c 1 ", "Cc ", MONOCLI }, /* 39*/
- { 9, "Cs^4 ", "A -2yac ", "C c = A 1 n 1 ", "A 1 n 1 ", "Cc ", MONOCLI }, /* 40*/
- { 9, "Cs^4 ", "I -2ya ", "C c = I 1 a 1 ", "I 1 a 1 ", "Cc ", MONOCLI }, /* 41*/
- { 9, "Cs^4 ", "A -2ya ", "C c = A 1 a 1 ", "A 1 a 1 ", "Cc ", MONOCLI }, /* 42*/
- { 9, "Cs^4 ", "C -2ybc ", "C c = C 1 n 1 ", "C 1 n 1 ", "Cc ", MONOCLI }, /* 43*/
- { 9, "Cs^4 ", "I -2yc ", "C c = I 1 c 1 ", "I 1 c 1 ", "Cc ", MONOCLI }, /* 44*/
- { 9, "Cs^4 ", "A -2a ", "C c = A 1 1 a ", "A 1 1 a ", "Cc ", MONOCLI }, /* 45*/
- { 9, "Cs^4 ", "B -2bc ", "C c = B 1 1 n ", "B 1 1 n ", "Cc ", MONOCLI }, /* 46*/
- { 9, "Cs^4 ", "I -2b ", "C c = I 1 1 b ", "I 1 1 b ", "Cc ", MONOCLI }, /* 47*/
- { 9, "Cs^4 ", "B -2b ", "C c = B 1 1 b = B b ", "B 1 1 b ", "Cc ", MONOCLI }, /* 48*/
- { 9, "Cs^4 ", "A -2ac ", "C c = A 1 1 n ", "A 1 1 n ", "Cc ", MONOCLI }, /* 49*/
- { 9, "Cs^4 ", "I -2a ", "C c = I 1 1 a ", "I 1 1 a ", "Cc ", MONOCLI }, /* 50*/
- { 9, "Cs^4 ", "B -2xb ", "C c = B b 1 1 ", "B b 1 1 ", "Cc ", MONOCLI }, /* 51*/
- { 9, "Cs^4 ", "C -2xbc ", "C c = C n 1 1 ", "C n 1 1 ", "Cc ", MONOCLI }, /* 52*/
- { 9, "Cs^4 ", "I -2xc ", "C c = I c 1 1 ", "I c 1 1 ", "Cc ", MONOCLI }, /* 53*/
- { 9, "Cs^4 ", "C -2xc ", "C c = C c 1 1 ", "C c 1 1 ", "Cc ", MONOCLI }, /* 54*/
- { 9, "Cs^4 ", "B -2xbc ", "C c = B n 1 1 ", "B n 1 1 ", "Cc ", MONOCLI }, /* 55*/
- { 9, "Cs^4 ", "I -2xb ", "C c = I b 1 1 ", "I b 1 1 ", "Cc ", MONOCLI }, /* 56*/
- { 10, "C2h^1 ", "-P 2y ", "P 2/m = P 1 2/m 1 ", "P 1 2/m 1 ", "P2/m ", MONOCLI }, /* 57*/
- { 10, "C2h^1 ", "-P 2 ", "P 2/m = P 1 1 2/m ", "P 1 1 2/m ", "P2/m ", MONOCLI }, /* 58*/
- { 10, "C2h^1 ", "-P 2x ", "P 2/m = P 2/m 1 1 ", "P 2/m 1 1 ", "P2/m ", MONOCLI }, /* 59*/
- { 11, "C2h^2 ", "-P 2yb ", "P 2_1/m = P 1 2_1/m 1 ", "P 1 2_1/m 1 ", "P2_1/m ", MONOCLI }, /* 60*/
- { 11, "C2h^2 ", "-P 2c ", "P 2_1/m = P 1 1 2_1/m ", "P 1 1 2_1/m ", "P2_1/m ", MONOCLI }, /* 61*/
- { 11, "C2h^2 ", "-P 2xa ", "P 2_1/m = P 2_1/m 1 1 ", "P 2_1/m 1 1 ", "P2_1/m ", MONOCLI }, /* 62*/
- { 12, "C2h^3 ", "-C 2y ", "C 2/m = C 1 2/m 1 ", "C 1 2/m 1 ", "C2/m ", MONOCLI }, /* 63*/
- { 12, "C2h^3 ", "-A 2y ", "C 2/m = A 1 2/m 1 ", "A 1 2/m 1 ", "C2/m ", MONOCLI }, /* 64*/
- { 12, "C2h^3 ", "-I 2y ", "C 2/m = I 1 2/m 1 ", "I 1 2/m 1 ", "C2/m ", MONOCLI }, /* 65*/
- { 12, "C2h^3 ", "-A 2 ", "C 2/m = A 1 1 2/m ", "A 1 1 2/m ", "C2/m ", MONOCLI }, /* 66*/
- { 12, "C2h^3 ", "-B 2 ", "C 2/m = B 1 1 2/m = B 2/m ", "B 1 1 2/m ", "C2/m ", MONOCLI }, /* 67*/
- { 12, "C2h^3 ", "-I 2 ", "C 2/m = I 1 1 2/m ", "I 1 1 2/m ", "C2/m ", MONOCLI }, /* 68*/
- { 12, "C2h^3 ", "-B 2x ", "C 2/m = B 2/m 1 1 ", "B 2/m 1 1 ", "C2/m ", MONOCLI }, /* 69*/
- { 12, "C2h^3 ", "-C 2x ", "C 2/m = C 2/m 1 1 ", "C 2/m 1 1 ", "C2/m ", MONOCLI }, /* 70*/
- { 12, "C2h^3 ", "-I 2x ", "C 2/m = I 2/m 1 1 ", "I 2/m 1 1 ", "C2/m ", MONOCLI }, /* 71*/
- { 13, "C2h^4 ", "-P 2yc ", "P 2/c = P 1 2/c 1 ", "P 1 2/c 1 ", "P2/c ", MONOCLI }, /* 72*/
- { 13, "C2h^4 ", "-P 2yac ", "P 2/c = P 1 2/n 1 ", "P 1 2/n 1 ", "P2/c ", MONOCLI }, /* 73*/
- { 13, "C2h^4 ", "-P 2ya ", "P 2/c = P 1 2/a 1 ", "P 1 2/a 1 ", "P2/c ", MONOCLI }, /* 74*/
- { 13, "C2h^4 ", "-P 2a ", "P 2/c = P 1 1 2/a ", "P 1 1 2/a ", "P2/c ", MONOCLI }, /* 75*/
- { 13, "C2h^4 ", "-P 2ab ", "P 2/c = P 1 1 2/n ", "P 1 1 2/n ", "P2/c ", MONOCLI }, /* 76*/
- { 13, "C2h^4 ", "-P 2b ", "P 2/c = P 1 1 2/b = P 2/b ", "P 1 1 2/b ", "P2/c ", MONOCLI }, /* 77*/
- { 13, "C2h^4 ", "-P 2xb ", "P 2/c = P 2/b 1 1 ", "P 2/b 1 1 ", "P2/c ", MONOCLI }, /* 78*/
- { 13, "C2h^4 ", "-P 2xbc ", "P 2/c = P 2/n 1 1 ", "P 2/n 1 1 ", "P2/c ", MONOCLI }, /* 79*/
- { 13, "C2h^4 ", "-P 2xc ", "P 2/c = P 2/c 1 1 ", "P 2/c 1 1 ", "P2/c ", MONOCLI }, /* 80*/
- { 14, "C2h^5 ", "-P 2ybc ", "P 2_1/c = P 1 2_1/c 1 ", "P 1 2_1/c 1 ", "P2_1/c ", MONOCLI }, /* 81*/
- { 14, "C2h^5 ", "-P 2yn ", "P 2_1/c = P 1 2_1/n 1 ", "P 1 2_1/n 1 ", "P2_1/c ", MONOCLI }, /* 82*/
- { 14, "C2h^5 ", "-P 2yab ", "P 2_1/c = P 1 2_1/a 1 ", "P 1 2_1/a 1 ", "P2_1/c ", MONOCLI }, /* 83*/
- { 14, "C2h^5 ", "-P 2ac ", "P 2_1/c = P 1 1 2_1/a ", "P 1 1 2_1/a ", "P2_1/c ", MONOCLI }, /* 84*/
- { 14, "C2h^5 ", "-P 2n ", "P 2_1/c = P 1 1 2_1/n ", "P 1 1 2_1/n ", "P2_1/c ", MONOCLI }, /* 85*/
- { 14, "C2h^5 ", "-P 2bc ", "P 2_1/c = P 1 1 2_1/b = P 2_1/b", "P 1 1 2_1/b ", "P2_1/c ", MONOCLI }, /* 86*/
- { 14, "C2h^5 ", "-P 2xab ", "P 2_1/c = P 2_1/b 1 1 ", "P 2_1/b 1 1 ", "P2_1/c ", MONOCLI }, /* 87*/
- { 14, "C2h^5 ", "-P 2xn ", "P 2_1/c = P 2_1/n 1 1 ", "P 2_1/n 1 1 ", "P2_1/c ", MONOCLI }, /* 88*/
- { 14, "C2h^5 ", "-P 2xac ", "P 2_1/c = P 2_1/c 1 1 ", "P 2_1/c 1 1 ", "P2_1/c ", MONOCLI }, /* 89*/
- { 15, "C2h^6 ", "-C 2yc ", "C 2/c = C 1 2/c 1 ", "C 1 2/c 1 ", "C2/c ", MONOCLI }, /* 90*/
- { 15, "C2h^6 ", "-A 2yac ", "C 2/c = A 1 2/n 1 ", "A 1 2/n 1 ", "C2/c ", MONOCLI }, /* 91*/
- { 15, "C2h^6 ", "-I 2ya ", "C 2/c = I 1 2/a 1 ", "I 1 2/a 1 ", "C2/c ", MONOCLI }, /* 92*/
- { 15, "C2h^6 ", "-A 2ya ", "C 2/c = A 1 2/a 1 ", "A 1 2/a 1 ", "C2/c ", MONOCLI }, /* 93*/
- { 15, "C2h^6 ", "-C 2ybc ", "C 2/c = C 1 2/n 1 ", "C 1 2/n 1 ", "C2/c ", MONOCLI }, /* 94*/
- { 15, "C2h^6 ", "-I 2yc ", "C 2/c = I 1 2/c 1 ", "I 1 2/c 1 ", "C2/c ", MONOCLI }, /* 95*/
- { 15, "C2h^6 ", "-A 2a ", "C 2/c = A 1 1 2/a ", "A 1 1 2/a ", "C2/c ", MONOCLI }, /* 96*/
- { 15, "C2h^6 ", "-B 2bc ", "C 2/c = B 1 1 2/n ", "B 1 1 2/n ", "C2/c ", MONOCLI }, /* 97*/
- { 15, "C2h^6 ", "-I 2b ", "C 2/c = I 1 1 2/b ", "I 1 1 2/b ", "C2/c ", MONOCLI }, /* 98*/
- { 15, "C2h^6 ", "-B 2b ", "C 2/c = B 1 1 2/b = B 2/b ", "B 1 1 2/b ", "C2/c ", MONOCLI }, /* 99*/
- { 15, "C2h^6 ", "-A 2ac ", "C 2/c = A 1 1 2/n ", "A 1 1 2/n ", "C2/c ", MONOCLI }, /*100*/
- { 15, "C2h^6 ", "-I 2a ", "C 2/c = I 1 1 2/a ", "I 1 1 2/a ", "C2/c ", MONOCLI }, /*101*/
- { 15, "C2h^6 ", "-B 2xb ", "C 2/c = B 2/b 1 1 ", "B 2/b 1 1 ", "C2/c ", MONOCLI }, /*102*/
- { 15, "C2h^6 ", "-C 2xbc ", "C 2/c = C 2/n 1 1 ", "C 2/n 1 1 ", "C2/c ", MONOCLI }, /*103*/
- { 15, "C2h^6 ", "-I 2xc ", "C 2/c = I 2/c 1 1 ", "I 2/c 1 1 ", "C2/c ", MONOCLI }, /*104*/
- { 15, "C2h^6 ", "-C 2xc ", "C 2/c = C 2/c 1 1 ", "C 2/c 1 1 ", "C2/c ", MONOCLI }, /*105*/
- { 15, "C2h^6 ", "-B 2xbc ", "C 2/c = B 2/n 1 1 ", "B 2/n 1 1 ", "C2/c ", MONOCLI }, /*106*/
- { 15, "C2h^6 ", "-I 2xb ", "C 2/c = I 2/b 1 1 ", "I 2/b 1 1 ", "C2/c ", MONOCLI }, /*107*/
- { 16, "D2^1 ", "P 2 2 ", "P 2 2 2 ", "P 2 2 2 ", "P222 ", ORTHO }, /*108*/
- { 17, "D2^2 ", "P 2c 2 ", "P 2 2 2_1 ", "P 2 2 2_1 ", "P222_1 ", ORTHO }, /*109*/
- { 17, "D2^2 ", "P 2a 2a ", "P 2_1 2 2 ", "P 2_1 2 2 ", "P2_122 ", ORTHO }, /*110*/
- { 17, "D2^2 ", "P 2 2b ", "P 2 2_1 2 ", "P 2 2_1 2 ", "P22_12 ", ORTHO }, /*111*/
- { 18, "D2^3 ", "P 2 2ab ", "P 2_1 2_1 2 ", "P 2_1 2_1 2 ", "P2_12_12 ", ORTHO }, /*112*/
- { 18, "D2^3 ", "P 2bc 2 ", "P 2 2_1 2_1 ", "P 2 2_1 2_1 ", "P22_12_1 ", ORTHO }, /*113*/
- { 18, "D2^3 ", "P 2ac 2ac ", "P 2_1 2 2_1 ", "P 2_1 2 2_1 ", "P2_122_1 ", ORTHO }, /*114*/
- { 19, "D2^4 ", "P 2ac 2ab ", "P 2_1 2_1 2_1 ", "P 2_1 2_1 2_1 ", "P2_12_12_1", ORTHO }, /*115*/
- { 20, "D2^5 ", "C 2c 2 ", "C 2 2 2_1 ", "C 2 2 2_1 ", "C222_1 ", ORTHO }, /*116*/
- { 20, "D2^5 ", "A 2a 2a ", "A 2_1 2 2 ", "A 2_1 2 2 ", "A2_122 ", ORTHO }, /*117*/
- { 20, "D2^5 ", "B 2 2b ", "B 2 2_1 2 ", "B 2 2_1 2 ", "B22_12 ", ORTHO }, /*118*/
- { 21, "D2^6 ", "C 2 2 ", "C 2 2 2 ", "C 2 2 2 ", "C222 ", ORTHO }, /*119*/
- { 21, "D2^6 ", "A 2 2 ", "A 2 2 2 ", "A 2 2 2 ", "A222 ", ORTHO }, /*120*/
- { 21, "D2^6 ", "B 2 2 ", "B 2 2 2 ", "B 2 2 2 ", "B222 ", ORTHO }, /*121*/
- { 22, "D2^7 ", "F 2 2 ", "F 2 2 2 ", "F 2 2 2 ", "F222 ", ORTHO }, /*122*/
- { 23, "D2^8 ", "I 2 2 ", "I 2 2 2 ", "I 2 2 2 ", "I222 ", ORTHO }, /*123*/
- { 24, "D2^9 ", "I 2b 2c ", "I 2_1 2_1 2_1 ", "I 2_1 2_1 2_1 ", "I2_12_12_1", ORTHO }, /*124*/
- { 25, "C2v^1 ", "P 2 -2 ", "P m m 2 ", "P m m 2 ", "Pmm2 ", ORTHO }, /*125*/
- { 25, "C2v^1 ", "P -2 2 ", "P 2 m m ", "P 2 m m ", "P2mm ", ORTHO }, /*126*/
- { 25, "C2v^1 ", "P -2 -2 ", "P m 2 m ", "P m 2 m ", "Pm2m ", ORTHO }, /*127*/
- { 26, "C2v^2 ", "P 2c -2 ", "P m c 2_1 ", "P m c 2_1 ", "Pmc2_1 ", ORTHO }, /*128*/
- { 26, "C2v^2 ", "P 2c -2c ", "P c m 2_1 ", "P c m 2_1 ", "Pcm2_1 ", ORTHO }, /*129*/
- { 26, "C2v^2 ", "P -2a 2a ", "P 2_1 m a ", "P 2_1 m a ", "P2_1ma ", ORTHO }, /*130*/
- { 26, "C2v^2 ", "P -2 2a ", "P 2_1 a m ", "P 2_1 a m ", "P2_1am ", ORTHO }, /*131*/
- { 26, "C2v^2 ", "P -2 -2b ", "P b 2_1 m ", "P b 2_1 m ", "Pb2_1m ", ORTHO }, /*132*/
- { 26, "C2v^2 ", "P -2b -2 ", "P m 2_1 b ", "P m 2_1 b ", "Pm2_1b ", ORTHO }, /*133*/
- { 27, "C2v^3 ", "P 2 -2c ", "P c c 2 ", "P c c 2 ", "Pcc2 ", ORTHO }, /*134*/
- { 27, "C2v^3 ", "P -2a 2 ", "P 2 a a ", "P 2 a a ", "P2aa ", ORTHO }, /*135*/
- { 27, "C2v^3 ", "P -2b -2b ", "P b 2 b ", "P b 2 b ", "Pb2b ", ORTHO }, /*136*/
- { 28, "C2v^4 ", "P 2 -2a ", "P m a 2 ", "P m a 2 ", "Pma2 ", ORTHO }, /*137*/
- { 28, "C2v^4 ", "P 2 -2b ", "P b m 2 ", "P b m 2 ", "Pbm2 ", ORTHO }, /*138*/
- { 28, "C2v^4 ", "P -2b 2 ", "P 2 m b ", "P 2 m b ", "P2mb ", ORTHO }, /*139*/
- { 28, "C2v^4 ", "P -2c 2 ", "P 2 c m ", "P 2 c m ", "P2cm ", ORTHO }, /*140*/
- { 28, "C2v^4 ", "P -2c -2c ", "P c 2 m ", "P c 2 m ", "Pc2m ", ORTHO }, /*141*/
- { 28, "C2v^4 ", "P -2a -2a ", "P m 2 a ", "P m 2 a ", "Pm2a ", ORTHO }, /*142*/
- { 29, "C2v^5 ", "P 2c -2ac ", "P c a 2_1 ", "P c a 2_1 ", "Pca2_1 ", ORTHO }, /*143*/
- { 29, "C2v^5 ", "P 2c -2b ", "P b c 2_1 ", "P b c 2_1 ", "Pbc2_1 ", ORTHO }, /*144*/
- { 29, "C2v^5 ", "P -2b 2a ", "P 2_1 a b ", "P 2_1 a b ", "P2_1ab ", ORTHO }, /*145*/
- { 29, "C2v^5 ", "P -2ac 2a ", "P 2_1 c a ", "P 2_1 c a ", "P2_1ca ", ORTHO }, /*146*/
- { 29, "C2v^5 ", "P -2bc -2c ", "P c 2_1 b ", "P c 2_1 b ", "Pc2_1b ", ORTHO }, /*147*/
- { 29, "C2v^5 ", "P -2a -2ab ", "P b 2_1 a ", "P b 2_1 a ", "Pb2_1a ", ORTHO }, /*148*/
- { 30, "C2v^6 ", "P 2 -2bc ", "P n c 2 ", "P n c 2 ", "Pnc2 ", ORTHO }, /*149*/
- { 30, "C2v^6 ", "P 2 -2ac ", "P c n 2 ", "P c n 2 ", "Pcn2 ", ORTHO }, /*150*/
- { 30, "C2v^6 ", "P -2ac 2 ", "P 2 n a ", "P 2 n a ", "P2na ", ORTHO }, /*151*/
- { 30, "C2v^6 ", "P -2ab 2 ", "P 2 a n ", "P 2 a n ", "P2an ", ORTHO }, /*152*/
- { 30, "C2v^6 ", "P -2ab -2ab ", "P b 2 n ", "P b 2 n ", "Pb2n ", ORTHO }, /*153*/
- { 30, "C2v^6 ", "P -2bc -2bc ", "P n 2 b ", "P n 2 b ", "Pn2b ", ORTHO }, /*154*/
- { 31, "C2v^7 ", "P 2ac -2 ", "P m n 2_1 ", "P m n 2_1 ", "Pmn2_1 ", ORTHO }, /*155*/
- { 31, "C2v^7 ", "P 2bc -2bc ", "P n m 2_1 ", "P n m 2_1 ", "Pnm2_1 ", ORTHO }, /*156*/
- { 31, "C2v^7 ", "P -2ab 2ab ", "P 2_1 m n ", "P 2_1 m n ", "P2_1mn ", ORTHO }, /*157*/
- { 31, "C2v^7 ", "P -2 2ac ", "P 2_1 n m ", "P 2_1 n m ", "P2_1nm ", ORTHO }, /*158*/
- { 31, "C2v^7 ", "P -2 -2bc ", "P n 2_1 m ", "P n 2_1 m ", "Pn2_1m ", ORTHO }, /*159*/
- { 31, "C2v^7 ", "P -2ab -2 ", "P m 2_1 n ", "P m 2_1 n ", "Pm2_1n ", ORTHO }, /*160*/
- { 32, "C2v^8 ", "P 2 -2ab ", "P b a 2 ", "P b a 2 ", "Pba2 ", ORTHO }, /*161*/
- { 32, "C2v^8 ", "P -2bc 2 ", "P 2 c b ", "P 2 c b ", "P2cb ", ORTHO }, /*162*/
- { 32, "C2v^8 ", "P -2ac -2ac ", "P c 2 a ", "P c 2 a ", "Pc2a ", ORTHO }, /*163*/
- { 33, "C2v^9 ", "P 2c -2n ", "P n a 2_1 ", "P n a 2_1 ", "Pna2_1 ", ORTHO }, /*164*/
- { 33, "C2v^9 ", "P 2c -2ab ", "P b n 2_1 ", "P b n 2_1 ", "Pbn2_1 ", ORTHO }, /*165*/
- { 33, "C2v^9 ", "P -2bc 2a ", "P 2_1 n b ", "P 2_1 n b ", "P2_1nb ", ORTHO }, /*166*/
- { 33, "C2v^9 ", "P -2n 2a ", "P 2_1 c n ", "P 2_1 c n ", "P2_1cn ", ORTHO }, /*167*/
- { 33, "C2v^9 ", "P -2n -2ac ", "P c 2_1 n ", "P c 2_1 n ", "Pc2_1n ", ORTHO }, /*168*/
- { 33, "C2v^9 ", "P -2ac -2n ", "P n 2_1 a ", "P n 2_1 a ", "Pn2_1a ", ORTHO }, /*169*/
- { 34, "C2v^10", "P 2 -2n ", "P n n 2 ", "P n n 2 ", "Pnn2 ", ORTHO }, /*170*/
- { 34, "C2v^10", "P -2n 2 ", "P 2 n n ", "P 2 n n ", "P2nn ", ORTHO }, /*171*/
- { 34, "C2v^10", "P -2n -2n ", "P n 2 n ", "P n 2 n ", "Pn2n ", ORTHO }, /*172*/
- { 35, "C2v^11", "C 2 -2 ", "C m m 2 ", "C m m 2 ", "Cmm2 ", ORTHO }, /*173*/
- { 35, "C2v^11", "A -2 2 ", "A 2 m m ", "A 2 m m ", "A2mm ", ORTHO }, /*174*/
- { 35, "C2v^11", "B -2 -2 ", "B m 2 m ", "B m 2 m ", "Bm2m ", ORTHO }, /*175*/
- { 36, "C2v^12", "C 2c -2 ", "C m c 2_1 ", "C m c 2_1 ", "Cmc2_1 ", ORTHO }, /*176*/
- { 36, "C2v^12", "C 2c -2c ", "C c m 2_1 ", "C c m 2_1 ", "Ccm2_1 ", ORTHO }, /*177*/
- { 36, "C2v^12", "A -2a 2a ", "A 2_1 m a ", "A 2_1 m a ", "A2_1ma ", ORTHO }, /*178*/
- { 36, "C2v^12", "A -2 2a ", "A 2_1 a m ", "A 2_1 a m ", "A2_1am ", ORTHO }, /*179*/
- { 36, "C2v^12", "B -2 -2b ", "B b 2_1 m ", "B b 2_1 m ", "Bb2_1m ", ORTHO }, /*180*/
- { 36, "C2v^12", "B -2b -2 ", "B m 2_1 b ", "B m 2_1 b ", "Bm2_1b ", ORTHO }, /*181*/
- { 37, "C2v^13", "C 2 -2c ", "C c c 2 ", "C c c 2 ", "Ccc2 ", ORTHO }, /*182*/
- { 37, "C2v^13", "A -2a 2 ", "A 2 a a ", "A 2 a a ", "A2aa ", ORTHO }, /*183*/
- { 37, "C2v^13", "B -2b -2b ", "B b 2 b ", "B b 2 b ", "Bb2b ", ORTHO }, /*184*/
- { 38, "C2v^14", "A 2 -2 ", "A m m 2 ", "A m m 2 ", "Amm2 ", ORTHO }, /*185*/
- { 38, "C2v^14", "B 2 -2 ", "B m m 2 ", "B m m 2 ", "Bmm2 ", ORTHO }, /*186*/
- { 38, "C2v^14", "B -2 2 ", "B 2 m m ", "B 2 m m ", "B2mm ", ORTHO }, /*187*/
- { 38, "C2v^14", "C -2 2 ", "C 2 m m ", "C 2 m m ", "C2mm ", ORTHO }, /*188*/
- { 38, "C2v^14", "C -2 -2 ", "C m 2 m ", "C m 2 m ", "Cm2m ", ORTHO }, /*189*/
- { 38, "C2v^14", "A -2 -2 ", "A m 2 m ", "A m 2 m ", "Am2m ", ORTHO }, /*190*/
- { 39, "C2v^15", "A 2 -2c ", "A e m 2 ", "A e m 2 ", "Aem2 ", ORTHO }, /*191*/
- { 39, "C2v^15", "B 2 -2c ", "B m e 2 ", "B m e 2 ", "Bme2 ", ORTHO }, /*192*/
- { 39, "C2v^15", "B -2c 2 ", "B 2 e m ", "B 2 e m ", "B2em ", ORTHO }, /*193*/
- { 39, "C2v^15", "C -2b 2 ", "C 2 m e ", "C 2 m e ", "C2me ", ORTHO }, /*194*/
- { 39, "C2v^15", "C -2b -2b ", "C m 2 e ", "C m 2 e ", "Cm2e ", ORTHO }, /*195*/
- { 39, "C2v^15", "A -2c -2c ", "A e 2 m ", "A e 2 m ", "Ae2m ", ORTHO }, /*196*/
- { 40, "C2v^16", "A 2 -2a ", "A m a 2 ", "A m a 2 ", "Ama2 ", ORTHO }, /*197*/
- { 40, "C2v^16", "B 2 -2b ", "B b m 2 ", "B b m 2 ", "Bbm2 ", ORTHO }, /*198*/
- { 40, "C2v^16", "B -2b 2 ", "B 2 m b ", "B 2 m b ", "B2mb ", ORTHO }, /*199*/
- { 40, "C2v^16", "C -2c 2 ", "C 2 c m ", "C 2 c m ", "C2cm ", ORTHO }, /*200*/
- { 40, "C2v^16", "C -2c -2c ", "C c 2 m ", "C c 2 m ", "Cc2m ", ORTHO }, /*201*/
- { 40, "C2v^16", "A -2a -2a ", "A m 2 a ", "A m 2 a ", "Am2a ", ORTHO }, /*202*/
- { 41, "C2v^17", "A 2 -2ac ", "A e a 2 ", "A e a 2 ", "Aea2 ", ORTHO }, /*203*/
- { 41, "C2v^17", "B 2 -2bc ", "B b e 2 ", "B b e 2 ", "Bbe2 ", ORTHO }, /*204*/
- { 41, "C2v^17", "B -2bc 2 ", "B 2 e b ", "B 2 e b ", "B2eb ", ORTHO }, /*205*/
- { 41, "C2v^17", "C -2bc 2 ", "C 2 c e ", "C 2 c e ", "C2ce ", ORTHO }, /*206*/
- { 41, "C2v^17", "C -2bc -2bc ", "C c 2 e ", "C c 2 e ", "Cc2e ", ORTHO }, /*207*/
- { 41, "C2v^17", "A -2ac -2ac ", "A e 2 a ", "A e 2 a ", "Ae2a ", ORTHO }, /*208*/
- { 42, "C2v^18", "F 2 -2 ", "F m m 2 ", "F m m 2 ", "Fmm2 ", ORTHO }, /*209*/
- { 42, "C2v^18", "F -2 2 ", "F 2 m m ", "F 2 m m ", "F2mm ", ORTHO }, /*210*/
- { 42, "C2v^18", "F -2 -2 ", "F m 2 m ", "F m 2 m ", "Fm2m ", ORTHO }, /*211*/
- { 43, "C2v^19", "F 2 -2d ", "F d d 2 ", "F d d 2 ", "Fdd2 ", ORTHO }, /*212*/
- { 43, "C2v^19", "F -2d 2 ", "F 2 d d ", "F 2 d d ", "F2dd ", ORTHO }, /*213*/
- { 43, "C2v^19", "F -2d -2d ", "F d 2 d ", "F d 2 d ", "Fd2d ", ORTHO }, /*214*/
- { 44, "C2v^20", "I 2 -2 ", "I m m 2 ", "I m m 2 ", "Imm2 ", ORTHO }, /*215*/
- { 44, "C2v^20", "I -2 2 ", "I 2 m m ", "I 2 m m ", "I2mm ", ORTHO }, /*216*/
- { 44, "C2v^20", "I -2 -2 ", "I m 2 m ", "I m 2 m ", "Im2m ", ORTHO }, /*217*/
- { 45, "C2v^21", "I 2 -2c ", "I b a 2 ", "I b a 2 ", "Iba2 ", ORTHO }, /*218*/
- { 45, "C2v^21", "I -2a 2 ", "I 2 c b ", "I 2 c b ", "I2cb ", ORTHO }, /*219*/
- { 45, "C2v^21", "I -2b -2b ", "I c 2 a ", "I c 2 a ", "Ic2a ", ORTHO }, /*220*/
- { 46, "C2v^22", "I 2 -2a ", "I m a 2 ", "I m a 2 ", "Ima2 ", ORTHO }, /*221*/
- { 46, "C2v^22", "I 2 -2b ", "I b m 2 ", "I b m 2 ", "Ibm2 ", ORTHO }, /*222*/
- { 46, "C2v^22", "I -2b 2 ", "I 2 m b ", "I 2 m b ", "I2mb ", ORTHO }, /*223*/
- { 46, "C2v^22", "I -2c 2 ", "I 2 c m ", "I 2 c m ", "I2cm ", ORTHO }, /*224*/
- { 46, "C2v^22", "I -2c -2c ", "I c 2 m ", "I c 2 m ", "Ic2m ", ORTHO }, /*225*/
- { 46, "C2v^22", "I -2a -2a ", "I m 2 a ", "I m 2 a ", "Im2a ", ORTHO }, /*226*/
- { 47, "D2h^1 ", "-P 2 2 ", "P m m m ", "P 2/m 2/m 2/m ", "Pmmm ", ORTHO }, /*227*/
- { 48, "D2h^2 ", "P 2 2 -1n ", "P n n n ", "P 2/n 2/n 2/n ", "Pnnn ", ORTHO }, /*228*/
- { 48, "D2h^2 ", "-P 2ab 2bc ", "P n n n ", "P 2/n 2/n 2/n ", "Pnnn ", ORTHO }, /*229*/
- { 49, "D2h^3 ", "-P 2 2c ", "P c c m ", "P 2/c 2/c 2/m ", "Pccm ", ORTHO }, /*230*/
- { 49, "D2h^3 ", "-P 2a 2 ", "P m a a ", "P 2/m 2/a 2/a ", "Pmaa ", ORTHO }, /*231*/
- { 49, "D2h^3 ", "-P 2b 2b ", "P b m b ", "P 2/b 2/m 2/b ", "Pbmb ", ORTHO }, /*232*/
- { 50, "D2h^4 ", "P 2 2 -1ab ", "P b a n ", "P 2/b 2/a 2/n ", "Pban ", ORTHO }, /*233*/
- { 50, "D2h^4 ", "-P 2ab 2b ", "P b a n ", "P 2/b 2/a 2/n ", "Pban ", ORTHO }, /*234*/
- { 50, "D2h^4 ", "P 2 2 -1bc ", "P n c b ", "P 2/n 2/c 2/b ", "Pncb ", ORTHO }, /*235*/
- { 50, "D2h^4 ", "-P 2b 2bc ", "P n c b ", "P 2/n 2/c 2/b ", "Pncb ", ORTHO }, /*236*/
- { 50, "D2h^4 ", "P 2 2 -1ac ", "P c n a ", "P 2/c 2/n 2/a ", "Pcna ", ORTHO }, /*237*/
- { 50, "D2h^4 ", "-P 2a 2c ", "P c n a ", "P 2/c 2/n 2/a ", "Pcna ", ORTHO }, /*238*/
- { 51, "D2h^5 ", "-P 2a 2a ", "P m m a ", "P 2_1/m 2/m 2/a ", "Pmma ", ORTHO }, /*239*/
- { 51, "D2h^5 ", "-P 2b 2 ", "P m m b ", "P 2/m 2_1/m 2/b ", "Pmmb ", ORTHO }, /*240*/
- { 51, "D2h^5 ", "-P 2 2b ", "P b m m ", "P 2/b 2_1/m 2/m ", "Pbmm ", ORTHO }, /*241*/
- { 51, "D2h^5 ", "-P 2c 2c ", "P c m m ", "P 2/c 2/m 2_1/m ", "Pcmm ", ORTHO }, /*242*/
- { 51, "D2h^5 ", "-P 2c 2 ", "P m c m ", "P 2/m 2/c 2_1/m ", "Pmcm ", ORTHO }, /*243*/
- { 51, "D2h^5 ", "-P 2 2a ", "P m a m ", "P 2_1/m 2/a 2/m ", "Pmam ", ORTHO }, /*244*/
- { 52, "D2h^6 ", "-P 2a 2bc ", "P n n a ", "P 2/n 2_1/n 2/a ", "Pnna ", ORTHO }, /*245*/
- { 52, "D2h^6 ", "-P 2b 2n ", "P n n b ", "P 2_1/n 2/n 2/b ", "Pnnb ", ORTHO }, /*246*/
- { 52, "D2h^6 ", "-P 2n 2b ", "P b n n ", "P 2/b 2/n 2_1/n ", "Pbnn ", ORTHO }, /*247*/
- { 52, "D2h^6 ", "-P 2ab 2c ", "P c n n ", "P 2/c 2_1/n 2/n ", "Pcnn ", ORTHO }, /*248*/
- { 52, "D2h^6 ", "-P 2ab 2n ", "P n c n ", "P 2_1/n 2/c 2/n ", "Pncn ", ORTHO }, /*249*/
- { 52, "D2h^6 ", "-P 2n 2bc ", "P n a n ", "P 2/n 2/a 2_1/n ", "Pnan ", ORTHO }, /*250*/
- { 53, "D2h^7 ", "-P 2ac 2 ", "P m n a ", "P 2/m 2/n 2_1/a ", "Pmna ", ORTHO }, /*251*/
- { 53, "D2h^7 ", "-P 2bc 2bc ", "P n m b ", "P 2/n 2/m 2_1/b ", "Pnmb ", ORTHO }, /*252*/
- { 53, "D2h^7 ", "-P 2ab 2ab ", "P b m n ", "P 2_1/b 2/m 2/n ", "Pbmn ", ORTHO }, /*253*/
- { 53, "D2h^7 ", "-P 2 2ac ", "P c n m ", "P 2_1/c 2/n 2/m ", "Pcnm ", ORTHO }, /*254*/
- { 53, "D2h^7 ", "-P 2 2bc ", "P n c m ", "P 2/n 2_1/c 2/m ", "Pncm ", ORTHO }, /*255*/
- { 53, "D2h^7 ", "-P 2ab 2 ", "P m a n ", "P 2/m 2_1/a 2/n ", "Pman ", ORTHO }, /*256*/
- { 54, "D2h^8 ", "-P 2a 2ac ", "P c c a ", "P 2_1/c 2/c 2/a ", "Pcca ", ORTHO }, /*257*/
- { 54, "D2h^8 ", "-P 2b 2c ", "P c c b ", "P 2/c 2_1/c 2/b ", "Pccb ", ORTHO }, /*258*/
- { 54, "D2h^8 ", "-P 2a 2b ", "P b a a ", "P 2/b 2_1/a 2/a ", "Pbaa ", ORTHO }, /*259*/
- { 54, "D2h^8 ", "-P 2ac 2c ", "P c a a ", "P 2/c 2/a 2_1/a ", "Pcaa ", ORTHO }, /*260*/
- { 54, "D2h^8 ", "-P 2bc 2b ", "P b c b ", "P 2/b 2/c 2_1/b ", "Pbcb ", ORTHO }, /*261*/
- { 54, "D2h^8 ", "-P 2b 2ab ", "P b a b ", "P 2_1/b 2/a 2/b ", "Pbab ", ORTHO }, /*262*/
- { 55, "D2h^9 ", "-P 2 2ab ", "P b a m ", "P 2_1/b 2_1/a 2/m ", "Pbam ", ORTHO }, /*263*/
- { 55, "D2h^9 ", "-P 2bc 2 ", "P m c b ", "P 2/m 2_1/c 2_1/b ", "Pmcb ", ORTHO }, /*264*/
- { 55, "D2h^9 ", "-P 2ac 2ac ", "P c m a ", "P 2_1/c 2/m 2_1/a ", "Pcma ", ORTHO }, /*265*/
- { 56, "D2h^10", "-P 2ab 2ac ", "P c c n ", "P 2_1/c 2_1/c 2/n ", "Pccn ", ORTHO }, /*266*/
- { 56, "D2h^10", "-P 2ac 2bc ", "P n a a ", "P 2/n 2_1/a 2_1/a ", "Pnaa ", ORTHO }, /*267*/
- { 56, "D2h^10", "-P 2bc 2ab ", "P b n b ", "P 2_1/b 2/n 2_1/b ", "Pbnb ", ORTHO }, /*268*/
- { 57, "D2h^11", "-P 2c 2b ", "P b c m ", "P 2/b 2_1/c 2_1/m ", "Pbcm ", ORTHO }, /*269*/
- { 57, "D2h^11", "-P 2c 2ac ", "P c a m ", "P 2_1/c 2/a 2_1/m ", "Pcam ", ORTHO }, /*270*/
- { 57, "D2h^11", "-P 2ac 2a ", "P m c a ", "P 2_1/m 2/c 2_1/a ", "Pmca ", ORTHO }, /*271*/
- { 57, "D2h^11", "-P 2b 2a ", "P m a b ", "P 2_1/m 2_1/a 2/b ", "Pmab ", ORTHO }, /*272*/
- { 57, "D2h^11", "-P 2a 2ab ", "P b m a ", "P 2_1/b 2_1/m 2/a ", "Pbma ", ORTHO }, /*273*/
- { 57, "D2h^11", "-P 2bc 2c ", "P c m b ", "P 2/c 2_1/m 2_1/b ", "Pcmb ", ORTHO }, /*274*/
- { 58, "D2h^12", "-P 2 2n ", "P n n m ", "P 2_1/n 2_1/n 2/m ", "Pnnm ", ORTHO }, /*275*/
- { 58, "D2h^12", "-P 2n 2 ", "P m n n ", "P 2/m 2_1/n 2_1/n ", "Pmnn ", ORTHO }, /*276*/
- { 58, "D2h^12", "-P 2n 2n ", "P n m n ", "P 2_1/n 2/m 2_1/n ", "Pnmn ", ORTHO }, /*277*/
- { 59, "D2h^13", "P 2 2ab -1ab ", "P m m n ", "P 2_1/m 2_1/m 2/n ", "Pmmn ", ORTHO }, /*278*/
- { 59, "D2h^13", "-P 2ab 2a ", "P m m n ", "P 2_1/m 2_1/m 2/n ", "Pmmn ", ORTHO }, /*279*/
- { 59, "D2h^13", "P 2bc 2 -1bc ", "P n m m ", "P 2/n 2_1/m 2_1/m ", "Pnmm ", ORTHO }, /*280*/
- { 59, "D2h^13", "-P 2c 2bc ", "P n m m ", "P 2/n 2_1/m 2_1/m ", "Pnmm ", ORTHO }, /*281*/
- { 59, "D2h^13", "P 2ac 2ac -1ac ", "P m n m ", "P 2_1/m 2/n 2_1/m ", "Pmnm ", ORTHO }, /*282*/
- { 59, "D2h^13", "-P 2c 2a ", "P m n m ", "P 2_1/m 2/n 2_1/m ", "Pmnm ", ORTHO }, /*283*/
- { 60, "D2h^14", "-P 2n 2ab ", "P b c n ", "P 2_1/b 2/c 2_1/n ", "Pbcn ", ORTHO }, /*284*/
- { 60, "D2h^14", "-P 2n 2c ", "P c a n ", "P 2/c 2_1/a 2_1/n ", "Pcan ", ORTHO }, /*285*/
- { 60, "D2h^14", "-P 2a 2n ", "P n c a ", "P 2_1/n 2_1/c 2/a ", "Pnca ", ORTHO }, /*286*/
- { 60, "D2h^14", "-P 2bc 2n ", "P n a b ", "P 2_1/n 2/a 2_1/b ", "Pnab ", ORTHO }, /*287*/
- { 60, "D2h^14", "-P 2ac 2b ", "P b n a ", "P 2/b 2_1/n 2_1/a ", "Pbna ", ORTHO }, /*288*/
- { 60, "D2h^14", "-P 2b 2ac ", "P c n b ", "P 2_1/c 2_1/n 2/b ", "Pcnb ", ORTHO }, /*289*/
- { 61, "D2h^15", "-P 2ac 2ab ", "P b c a ", "P 2_1/b 2_1/c 2_1/a", "Pbca ", ORTHO }, /*290*/
- { 61, "D2h^15", "-P 2bc 2ac ", "P c a b ", "P 2_1/c 2_1/a 2_1/b", "Pcab ", ORTHO }, /*291*/
- { 62, "D2h^16", "-P 2ac 2n ", "P n m a ", "P 2_1/n 2_1/m 2_1/a", "Pnma ", ORTHO }, /*292*/
- { 62, "D2h^16", "-P 2bc 2a ", "P m n b ", "P 2_1/m 2_1/n 2_1/b", "Pmnb ", ORTHO }, /*293*/
- { 62, "D2h^16", "-P 2c 2ab ", "P b n m ", "P 2_1/b 2_1/n 2_1/m", "Pbnm ", ORTHO }, /*294*/
- { 62, "D2h^16", "-P 2n 2ac ", "P c m n ", "P 2_1/c 2_1/m 2_1/n", "Pcmn ", ORTHO }, /*295*/
- { 62, "D2h^16", "-P 2n 2a ", "P m c n ", "P 2_1/m 2_1/c 2_1/n", "Pmcn ", ORTHO }, /*296*/
- { 62, "D2h^16", "-P 2c 2n ", "P n a m ", "P 2_1/n 2_1/a 2_1/m", "Pnam ", ORTHO }, /*297*/
- { 63, "D2h^17", "-C 2c 2 ", "C m c m ", "C 2/m 2/c 2_1/m ", "Cmcm ", ORTHO }, /*298*/
- { 63, "D2h^17", "-C 2c 2c ", "C c m m ", "C 2/c 2/m 2_1/m ", "Ccmm ", ORTHO }, /*299*/
- { 63, "D2h^17", "-A 2a 2a ", "A m m a ", "A 2_1/m 2/m 2/a ", "Amma ", ORTHO }, /*300*/
- { 63, "D2h^17", "-A 2 2a ", "A m a m ", "A 2_1/m 2/a 2/m ", "Amam ", ORTHO }, /*301*/
- { 63, "D2h^17", "-B 2 2b ", "B b m m ", "B 2/b 2_1/m 2/m ", "Bbmm ", ORTHO }, /*302*/
- { 63, "D2h^17", "-B 2b 2 ", "B m m b ", "B 2/m 2_1/m 2/b ", "Bmmb ", ORTHO }, /*303*/
- { 64, "D2h^18", "-C 2bc 2 ", "C m c e ", "C 2/m 2/c 2_1/e ", "Cmce ", ORTHO }, /*304*/
- { 64, "D2h^18", "-C 2bc 2bc ", "C c m e ", "C 2/c 2/m 2_1/e ", "Ccme ", ORTHO }, /*305*/
- { 64, "D2h^18", "-A 2ac 2ac ", "A e m a ", "A 2_1/e 2/m 2/a ", "Aema ", ORTHO }, /*306*/
- { 64, "D2h^18", "-A 2 2ac ", "A e a m ", "A 2_1/e 2/a 2/m ", "Aeam ", ORTHO }, /*307*/
- { 64, "D2h^18", "-B 2 2bc ", "B b e m ", "B 2/b 2_1/e 2/m ", "Bbem ", ORTHO }, /*308*/
- { 64, "D2h^18", "-B 2bc 2 ", "B m e b ", "B 2/m 2_1/e 2/b ", "Bmeb ", ORTHO }, /*309*/
- { 65, "D2h^19", "-C 2 2 ", "C m m m ", "C 2/m 2/m 2/m ", "Cmmm ", ORTHO }, /*310*/
- { 65, "D2h^19", "-A 2 2 ", "A m m m ", "A 2/m 2/m 2/m ", "Ammm ", ORTHO }, /*311*/
- { 65, "D2h^19", "-B 2 2 ", "B m m m ", "B 2/m 2/m 2/m ", "Bmmm ", ORTHO }, /*312*/
- { 66, "D2h^20", "-C 2 2c ", "C c c m ", "C 2/c 2/c 2/m ", "Cccm ", ORTHO }, /*313*/
- { 66, "D2h^20", "-A 2a 2 ", "A m a a ", "A 2/m 2/a 2/a ", "Amaa ", ORTHO }, /*314*/
- { 66, "D2h^20", "-B 2b 2b ", "B b m b ", "B 2/b 2/m 2/b ", "Bbmb ", ORTHO }, /*315*/
- { 67, "D2h^21", "-C 2b 2 ", "C m m e ", "C 2/m 2/m 2/e ", "Cmme ", ORTHO }, /*316*/
- { 67, "D2h^21", "-C 2b 2b ", "C m m e ", "C 2/m 2/m 2/e ", "Cmme ", ORTHO }, /*317*/
- { 67, "D2h^21", "-A 2c 2c ", "A e m m ", "A 2/e 2/m 2/m ", "Aemm ", ORTHO }, /*318*/
- { 67, "D2h^21", "-A 2 2c ", "A e m m ", "A 2/e 2/m 2/m ", "Aemm ", ORTHO }, /*319*/
- { 67, "D2h^21", "-B 2 2c ", "B m e m ", "B 2/m 2/e 2/m ", "Bmem ", ORTHO }, /*320*/
- { 67, "D2h^21", "-B 2c 2 ", "B m e m ", "B 2/m 2/e 2/m ", "Bmem ", ORTHO }, /*321*/
- { 68, "D2h^22", "C 2 2 -1bc ", "C c c e ", "C 2/c 2/c 2/e ", "Ccce ", ORTHO }, /*322*/
- { 68, "D2h^22", "-C 2b 2bc ", "C c c e ", "C 2/c 2/c 2/e ", "Ccce ", ORTHO }, /*323*/
- { 68, "D2h^22", "C 2 2 -1bc ", "C c c e ", "C 2/c 2/c 2/e ", "Ccce ", ORTHO }, /*324*/
- { 68, "D2h^22", "-C 2b 2c ", "C c c e ", "C 2/c 2/c 2/e ", "Ccce ", ORTHO }, /*325*/
- { 68, "D2h^22", "A 2 2 -1ac ", "A e a a ", "A 2/e 2/a 2/a ", "Aeaa ", ORTHO }, /*326*/
- { 68, "D2h^22", "-A 2a 2c ", "A e a a ", "A 2/e 2/a 2/a ", "Aeaa ", ORTHO }, /*327*/
- { 68, "D2h^22", "A 2 2 -1ac ", "A e a a ", "A 2/e 2/a 2/a ", "Aeaa ", ORTHO }, /*328*/
- { 68, "D2h^22", "-A 2ac 2c ", "A e a a ", "A 2/e 2/a 2/a ", "Aeaa ", ORTHO }, /*329*/
- { 68, "D2h^22", "B 2 2 -1bc ", "B b e b ", "B 2/b 2/e 2/b ", "Bbeb ", ORTHO }, /*330*/
- { 68, "D2h^22", "-B 2bc 2b ", "B b c b ", "B 2/b 2/e 2/b ", "Bbcb ", ORTHO }, /*331*/
- { 68, "D2h^22", "B 2 2 -1bc ", "B b e b ", "B 2/b 2/e 2/b ", "Bbeb ", ORTHO }, /*332*/
- { 68, "D2h^22", "-B 2b 2bc ", "B b e b ", "B 2/b 2/e 2/b ", "Bbeb ", ORTHO }, /*333*/
- { 69, "D2h^23", "-F 2 2 ", "F m m m ", "F 2/m 2/m 2/m ", "Fmmm ", ORTHO }, /*334*/
- { 70, "D2h^24", "F 2 2 -1d ", "F d d d ", "F 2/d 2/d 2/d ", "Fddd ", ORTHO }, /*335*/
- { 70, "D2h^24", "-F 2uv 2vw ", "F d d d ", "F 2/d 2/d 2/d ", "Fddd ", ORTHO }, /*336*/
- { 71, "D2h^25", "-I 2 2 ", "I m m m ", "I 2/m 2/m 2/m ", "Immm ", ORTHO }, /*337*/
- { 72, "D2h^26", "-I 2 2c ", "I b a m ", "I 2/b 2/a 2/m ", "Ibam ", ORTHO }, /*338*/
- { 72, "D2h^26", "-I 2a 2 ", "I m c b ", "I 2/m 2/c 2/b ", "Imcb ", ORTHO }, /*339*/
- { 72, "D2h^26", "-I 2b 2b ", "I c m a ", "I 2/c 2/m 2/a ", "Icma ", ORTHO }, /*340*/
- { 73, "D2h^27", "-I 2b 2c ", "I b c a ", "I 2/b 2/c 2/a ", "Ibca ", ORTHO }, /*341*/
- { 73, "D2h^27", "-I 2a 2b ", "I c a b ", "I 2/c 2/a 2/b ", "Icab ", ORTHO }, /*342*/
- { 74, "D2h^28", "-I 2b 2 ", "I m m a ", "I 2/m 2/m 2/a ", "Imma ", ORTHO }, /*343*/
- { 74, "D2h^28", "-I 2a 2a ", "I m m b ", "I 2/m 2/m 2/b ", "Immb ", ORTHO }, /*344*/
- { 74, "D2h^28", "-I 2c 2c ", "I b m m ", "I 2/b 2/m 2/m ", "Ibmm ", ORTHO }, /*345*/
- { 74, "D2h^28", "-I 2 2b ", "I c m m ", "I 2/c 2/m 2/m ", "Icmm ", ORTHO }, /*346*/
- { 74, "D2h^28", "-I 2 2a ", "I m c m ", "I 2/m 2/c 2/m ", "Imcm ", ORTHO }, /*347*/
- { 74, "D2h^28", "-I 2c 2 ", "I m a m ", "I 2/m 2/a 2/m ", "Imam ", ORTHO }, /*348*/
- { 75, "C4^1 ", "P 4 ", "P 4 ", "P 4 ", "P4 ", TETRA }, /*349*/
- { 76, "C4^2 ", "P 4w ", "P 4_1 ", "P 4_1 ", "P4_1 ", TETRA }, /*350*/
- { 77, "C4^3 ", "P 4c ", "P 4_2 ", "P 4_2 ", "P4_2 ", TETRA }, /*351*/
- { 78, "C4^4 ", "P 4cw ", "P 4_3 ", "P 4_3 ", "P4_3 ", TETRA }, /*352*/
- { 79, "C4^5 ", "I 4 ", "I 4 ", "I 4 ", "I4 ", TETRA }, /*353*/
- { 80, "C4^6 ", "I 4bw ", "I 4_1 ", "I 4_1 ", "I4_1 ", TETRA }, /*354*/
- { 81, "S4^1 ", "P -4 ", "P -4 ", "P -4 ", "P-4 ", TETRA }, /*355*/
- { 82, "S4^2 ", "I -4 ", "I -4 ", "I -4 ", "I-4 ", TETRA }, /*356*/
- { 83, "C4h^1 ", "-P 4 ", "P 4/m ", "P 4/m ", "P4/m ", TETRA }, /*357*/
- { 84, "C4h^2 ", "-P 4c ", "P 4_2/m ", "P 4_2/m ", "P4_2/m ", TETRA }, /*358*/
- { 85, "C4h^3 ", "P 4ab -1ab ", "P 4/n ", "P 4/n ", "P4/n ", TETRA }, /*359*/
- { 85, "C4h^3 ", "-P 4a ", "P 4/n ", "P 4/n ", "P4/n ", TETRA }, /*360*/
- { 86, "C4h^4 ", "P 4n -1n ", "P 4_2/n ", "P 4_2/n ", "P4_2/n ", TETRA }, /*361*/
- { 86, "C4h^4 ", "-P 4bc ", "P 4_2/n ", "P 4_2/n ", "P4_2/n ", TETRA }, /*362*/
- { 87, "C4h^5 ", "-I 4 ", "I 4/m ", "I 4/m ", "I4/m ", TETRA }, /*363*/
- { 88, "C4h^6 ", "I 4bw -1bw ", "I 4_1/a ", "I 4_1/a ", "I4_1/a ", TETRA }, /*364*/
- { 88, "C4h^6 ", "-I 4ad ", "I 4_1/a ", "I 4_1/a ", "I4_1/a ", TETRA }, /*365*/
- { 89, "D4^1 ", "P 4 2 ", "P 4 2 2 ", "P 4 2 2 ", "P422 ", TETRA }, /*366*/
- { 90, "D4^2 ", "P 4ab 2ab ", "P 4 2_1 2 ", "P 4 2_1 2 ", "P42_12 ", TETRA }, /*367*/
- { 91, "D4^3 ", "P 4w 2c ", "P 4_1 2 2 ", "P 4_1 2 2 ", "P4_122 ", TETRA }, /*368*/
- { 92, "D4^4 ", "P 4abw 2nw ", "P 4_1 2_1 2 ", "P 4_1 2_1 2 ", "P4_12_12 ", TETRA }, /*369*/
- { 93, "D4^5 ", "P 4c 2 ", "P 4_2 2 2 ", "P 4_2 2 2 ", "P4_222 ", TETRA }, /*370*/
- { 94, "D4^6 ", "P 4n 2n ", "P 4_2 2_1 2 ", "P 4_2 2_1 2 ", "P4_22_12 ", TETRA }, /*371*/
- { 95, "D4^7 ", "P 4cw 2c ", "P 4_3 2 2 ", "P 4_3 2 2 ", "P4_322 ", TETRA }, /*372*/
- { 96, "D4^8 ", "P 4nw 2abw ", "P 4_3 2_1 2 ", "P 4_3 2_1 2 ", "P4_32_12 ", TETRA }, /*373*/
- { 97, "D4^9 ", "I 4 2 ", "I 4 2 2 ", "I 4 2 2 ", "I422 ", TETRA }, /*374*/
- { 98, "D4^10 ", "I 4bw 2bw ", "I 4_1 2 2 ", "I 4_1 2 2 ", "I4_122 ", TETRA }, /*375*/
- { 99, "C4v^1 ", "P 4 -2 ", "P 4 m m ", "P 4 m m ", "P4mm ", TETRA }, /*376*/
- {100, "C4v^2 ", "P 4 -2ab ", "P 4 b m ", "P 4 b m ", "P4bm ", TETRA }, /*377*/
- {101, "C4v^3 ", "P 4c -2c ", "P 4_2 c m ", "P 4_2 c m ", "P4_2cm ", TETRA }, /*378*/
- {102, "C4v^4 ", "P 4n -2n ", "P 4_2 n m ", "P 4_2 n m ", "P4_2nm ", TETRA }, /*379*/
- {103, "C4v^5 ", "P 4 -2c ", "P 4 c c ", "P 4 c c ", "P4cc ", TETRA }, /*380*/
- {104, "C4v^6 ", "P 4 -2n ", "P 4 n c ", "P 4 n c ", "P4nc ", TETRA }, /*381*/
- {105, "C4v^7 ", "P 4c -2 ", "P 4_2 m c ", "P 4_2 m c ", "P4_2mc ", TETRA }, /*382*/
- {106, "C4v^8 ", "P 4c -2ab ", "P 4_2 b c ", "P 4_2 b c ", "P4_2bc ", TETRA }, /*383*/
- {107, "C4v^9 ", "I 4 -2 ", "I 4 m m ", "I 4 m m ", "I4mm ", TETRA }, /*384*/
- {108, "C4v^10", "I 4 -2c ", "I 4 c m ", "I 4 c m ", "I4cm ", TETRA }, /*385*/
- {109, "C4v^11", "I 4bw -2 ", "I 4_1 m d ", "I 4_1 m d ", "I4_1md ", TETRA }, /*386*/
- {110, "C4v^12", "I 4bw -2c ", "I 4_1 c d ", "I 4_1 c d ", "I4_1cd ", TETRA }, /*387*/
- {111, "D2d^1 ", "P -4 2 ", "P -4 2 m ", "P -4 2 m ", "P-42m ", TETRA }, /*388*/
- {112, "D2d^2 ", "P -4 2c ", "P -4 2 c ", "P -4 2 c ", "P-42c ", TETRA }, /*389*/
- {113, "D2d^3 ", "P -4 2ab ", "P -4 2_1 m ", "P -4 2_1 m ", "P-42_1m ", TETRA }, /*390*/
- {114, "D2d^4 ", "P -4 2n ", "P -4 2_1 c ", "P -4 2_1 c ", "P-42_1c ", TETRA }, /*391*/
- {115, "D2d^5 ", "P -4 -2 ", "P -4 m 2 ", "P -4 m 2 ", "P-4m2 ", TETRA }, /*392*/
- {116, "D2d^6 ", "P -4 -2c ", "P -4 c 2 ", "P -4 c 2 ", "P-4c2 ", TETRA }, /*393*/
- {117, "D2d^7 ", "P -4 -2ab ", "P -4 b 2 ", "P -4 b 2 ", "P-4b2 ", TETRA }, /*394*/
- {118, "D2d^8 ", "P -4 -2n ", "P -4 n 2 ", "P -4 n 2 ", "P-4n2 ", TETRA }, /*395*/
- {119, "D2d^9 ", "I -4 -2 ", "I -4 m 2 ", "I -4 m 2 ", "I-4m2 ", TETRA }, /*396*/
- {120, "D2d^10", "I -4 -2c ", "I -4 c 2 ", "I -4 c 2 ", "I-4c2 ", TETRA }, /*397*/
- {121, "D2d^11", "I -4 2 ", "I -4 2 m ", "I -4 2 m ", "I-42m ", TETRA }, /*398*/
- {122, "D2d^12", "I -4 2bw ", "I -4 2 d ", "I -4 2 d ", "I-42d ", TETRA }, /*399*/
- {123, "D4h^1 ", "-P 4 2 ", "P 4/m m m ", "P 4/m 2/m 2/m ", "P4/mmm ", TETRA }, /*400*/
- {124, "D4h^2 ", "-P 4 2c ", "P 4/m c c ", "P 4/m 2/c 2/c ", "P4/mcc ", TETRA }, /*401*/
- {125, "D4h^3 ", "P 4 2 -1ab ", "P 4/n b m ", "P 4/n 2/b 2/m ", "P4/nbm ", TETRA }, /*402*/
- {125, "D4h^3 ", "-P 4a 2b ", "P 4/n b m ", "P 4/n 2/b 2/m ", "P4/nbm ", TETRA }, /*403*/
- {126, "D4h^4 ", "P 4 2 -1n ", "P 4/n n c ", "P 4/n 2/n 2/c ", "P4/nnc ", TETRA }, /*404*/
- {126, "D4h^4 ", "-P 4a 2bc ", "P 4/n n c ", "P 4/n 2/n 2/c ", "P4/nnc ", TETRA }, /*405*/
- {127, "D4h^5 ", "-P 4 2ab ", "P 4/m b m ", "P 4/m 2_1/b m ", "P4/mbm ", TETRA }, /*406*/
- {128, "D4h^6 ", "-P 4 2n ", "P 4/m n c ", "P 4/m 2_1/n c ", "P4/mnc ", TETRA }, /*407*/
- {129, "D4h^7 ", "P 4ab 2ab -1ab ", "P 4/n m m ", "P 4/n 2_1/m m ", "P4/nmm ", TETRA }, /*408*/
- {129, "D4h^7 ", "-P 4a 2a ", "P 4/n m m ", "P 4/n 2_1/m m ", "P4/nmm ", TETRA }, /*409*/
- {130, "D4h^8 ", "P 4ab 2n -1ab ", "P 4/n c c ", "P 4/n 2_1/c c ", "P4/ncc ", TETRA }, /*410*/
- {130, "D4h^8 ", "-P 4a 2ac ", "P 4/n c c ", "P 4/n 2_1/c c ", "P4/ncc ", TETRA }, /*411*/
- {131, "D4h^9 ", "-P 4c 2 ", "P 4_2/m m c ", "P 4_2/m 2/m 2/c ", "P4_2/mmc ", TETRA }, /*412*/
- {132, "D4h^10", "-P 4c 2c ", "P 4_2/m c m ", "P 4_2/m 2/c 2/m ", "P4_2/mcm ", TETRA }, /*413*/
- {133, "D4h^11", "P 4n 2c -1n ", "P 4_2/n b c ", "P 4_2/n 2/b 2/c ", "P4_2/nbc ", TETRA }, /*414*/
- {133, "D4h^11", "-P 4ac 2b ", "P 4_2/n b c ", "P 4_2/n 2/b 2/c ", "P4_2/nbc ", TETRA }, /*415*/
- {134, "D4h^12", "P 4n 2 -1n ", "P 4_2/n n m ", "P 4_2/n 2/n 2/m ", "P4_2/nnm ", TETRA }, /*416*/
- {134, "D4h^12", "-P 4ac 2bc ", "P 4_2/n n m ", "P 4_2/n 2/n 2/m ", "P4_2/nnm ", TETRA }, /*417*/
- {135, "D4h^13", "-P 4c 2ab ", "P 4_2/m b c ", "P 4_2/m 2_1/b 2/c ", "P4_2/mbc ", TETRA }, /*418*/
- {136, "D4h^14", "-P 4n 2n ", "P 4_2/m n m ", "P 4_2/m 2_1/n 2/m ", "P4_2/mnm ", TETRA }, /*419*/
- {137, "D4h^15", "P 4n 2n -1n ", "P 4_2/n m c ", "P 4_2/n 2_1/m 2/c ", "P4_2/nmc ", TETRA }, /*420*/
- {137, "D4h^15", "-P 4ac 2a ", "P 4_2/n m c ", "P 4_2/n 2_1/m 2/c ", "P4_2/nmc ", TETRA }, /*421*/
- {138, "D4h^16", "P 4n 2ab -1n ", "P 4_2/n c m ", "P 4_2/n 2_1/c 2/m ", "P4_2/ncm ", TETRA }, /*422*/
- {138, "D4h^16", "-P 4ac 2ac ", "P 4_2/n c m ", "P 4_2/n 2_1/c 2/m ", "P4_2/ncm ", TETRA }, /*423*/
- {139, "D4h^17", "-I 4 2 ", "I 4/m m m ", "I 4/m 2/m 2/m ", "I4/mmm ", TETRA }, /*424*/
- {140, "D4h^18", "-I 4 2c ", "I 4/m c m ", "I 4/m 2/c 2/m ", "I4/mcm ", TETRA }, /*425*/
- {141, "D4h^19", "I 4bw 2bw -1bw ", "I 4_1/a m d ", "I 4_1/a 2/m 2/d ", "I4_1/amd ", TETRA }, /*426*/
- {141, "D4h^19", "-I 4bd 2 ", "I 4_1/a m d ", "I 4_1/a 2/m 2/d ", "I4_1/amd ", TETRA }, /*427*/
- {142, "D4h^20", "I 4bw 2aw -1bw ", "I 4_1/a c d ", "I 4_1/a 2/c 2/d ", "I4_1/acd ", TETRA }, /*428*/
- {142, "D4h^20", "-I 4bd 2c ", "I 4_1/a c d ", "I 4_1/a 2/c 2/d ", "I4_1/acd ", TETRA }, /*429*/
- {143, "C3^1 ", "P 3 ", "P 3 ", "P 3 ", "P3 ", TRIGO }, /*430*/
- {144, "C3^2 ", "P 31 ", "P 3_1 ", "P 3_1 ", "P3_1 ", TRIGO }, /*431*/
- {145, "C3^3 ", "P 32 ", "P 3_2 ", "P 3_2 ", "P3_2 ", TRIGO }, /*432*/
- {146, "C3^4 ", "R 3 ", "R 3 ", "R 3 ", "R3 ", RHOMB }, /*433*/
- {146, "C3^4 ", "P 3* ", "R 3 ", "R 3 ", "R3 ", RHOMB }, /*434*/
- {147, "C3i^1 ", "-P 3 ", "P -3 ", "P -3 ", "P-3 ", TRIGO }, /*435*/
- {148, "C3i^2 ", "-R 3 ", "R -3 ", "R -3 ", "R-3 ", RHOMB }, /*436*/
- {148, "C3i^2 ", "-P 3* ", "R -3 ", "R -3 ", "R-3 ", RHOMB }, /*437*/
- {149, "D3^1 ", "P 3 2 ", "P 3 1 2 ", "P 3 1 2 ", "P312 ", TRIGO }, /*438*/
- {150, "D3^2 ", "P 3 2= ", "P 3 2 1 ", "P 3 2 1 ", "P321 ", TRIGO }, /*439*/
- {151, "D3^3 ", "P 31 2c (0 0 1) ", "P 3_1 1 2 ", "P 3_1 1 2 ", "P3_112 ", TRIGO }, /*440*/
- {152, "D3^4 ", "P 31 2= ", "P 3_1 2 1 ", "P 3_1 2 1 ", "P3_121 ", TRIGO }, /*441*/
- {153, "D3^5 ", "P 32 2c (0 0 -1)", "P 3_2 1 2 ", "P 3_2 1 2 ", "P3_212 ", TRIGO }, /*442*/
- {154, "D3^6 ", "P 32 2= ", "P 3_2 2 1 ", "P 3_2 2 1 ", "P3_221 ", TRIGO }, /*443*/
- {155, "D3^7 ", "R 3 2= ", "R 3 2 ", "R 3 2 ", "R32 ", RHOMB }, /*444*/
- {155, "D3^7 ", "P 3* 2 ", "R 3 2 ", "R 3 2 ", "R32 ", RHOMB }, /*445*/
- {156, "C3v^1 ", "P 3 -2= ", "P 3 m 1 ", "P 3 m 1 ", "P3m1 ", TRIGO }, /*446*/
- {157, "C3v^2 ", "P 3 -2 ", "P 3 1 m ", "P 3 1 m ", "P31m ", TRIGO }, /*447*/
- {158, "C3v^3 ", "P 3 -2=c ", "P 3 c 1 ", "P 3 c 1 ", "P3c1 ", TRIGO }, /*448*/
- {159, "C3v^4 ", "P 3 -2c ", "P 3 1 c ", "P 3 1 c ", "P31c ", TRIGO }, /*449*/
- {160, "C3v^5 ", "R 3 -2= ", "R 3 m ", "R 3 m ", "R3m ", RHOMB }, /*450*/
- {160, "C3v^5 ", "P 3* -2 ", "R 3 m ", "R 3 m ", "R3m ", RHOMB }, /*451*/
- {161, "C3v^6 ", "R 3 -2=c ", "R 3 c ", "R 3 c ", "R3c ", RHOMB }, /*452*/
- {161, "C3v^6 ", "P 3* -2n ", "R 3 c ", "R 3 c ", "R3c ", RHOMB }, /*453*/
- {162, "D3d^1 ", "-P 3 2 ", "P -3 1 m ", "P -3 1 2/m ", "P-31m ", TRIGO }, /*454*/
- {163, "D3d^2 ", "-P 3 2c ", "P -3 1 c ", "P -3 1 2/c ", "P-31c ", TRIGO }, /*455*/
- {164, "D3d^3 ", "-P 3 2= ", "P -3 m 1 ", "P -3 2/m 1 ", "P-3m1 ", TRIGO }, /*456*/
- {165, "D3d^4 ", "-P 3 2=c ", "P -3 c 1 ", "P -3 2/c 1 ", "P-3c1 ", TRIGO }, /*457*/
- {166, "D3d^5 ", "-R 3 2= ", "R -3 m ", "R -3 2/m ", "R-3m ", RHOMB }, /*458*/
- {166, "D3d^5 ", "-P 3* 2 ", "R -3 m ", "R -3 2/m ", "R-3m ", RHOMB }, /*459*/
- {167, "D3d^6 ", "-R 3 2=c ", "R -3 c ", "R -3 2/c ", "R-3c ", RHOMB }, /*460*/
- {167, "D3d^6 ", "-P 3* 2n ", "R -3 c ", "R -3 2/c ", "R-3c ", RHOMB }, /*461*/
- {168, "C6^1 ", "P 6 ", "P 6 ", "P 6 ", "P6 ", HEXA }, /*462*/
- {169, "C6^2 ", "P 61 ", "P 6_1 ", "P 6_1 ", "P6_1 ", HEXA }, /*463*/
- {170, "C6^3 ", "P 65 ", "P 6_5 ", "P 6_5 ", "P6_5 ", HEXA }, /*464*/
- {171, "C6^4 ", "P 62 ", "P 6_2 ", "P 6_2 ", "P6_2 ", HEXA }, /*465*/
- {172, "C6^5 ", "P 64 ", "P 6_4 ", "P 6_4 ", "P6_4 ", HEXA }, /*466*/
- {173, "C6^6 ", "P 6c ", "P 6_3 ", "P 6_3 ", "P6_3 ", HEXA }, /*467*/
- {174, "C3h^1 ", "P -6 ", "P -6 ", "P -6 ", "P-6 ", HEXA }, /*468*/
- {175, "C6h^1 ", "-P 6 ", "P 6/m ", "P 6/m ", "P6/m ", HEXA }, /*469*/
- {176, "C6h^2 ", "-P 6c ", "P 6_3/m ", "P 6_3/m ", "P6_3/m ", HEXA }, /*470*/
- {177, "D6^1 ", "P 6 2 ", "P 6 2 2 ", "P 6 2 2 ", "P622 ", HEXA }, /*471*/
- {178, "D6^2 ", "P 61 2 (0 0 -1) ", "P 6_1 2 2 ", "P 6_1 2 2 ", "P6_122 ", HEXA }, /*472*/
- {179, "D6^3 ", "P 65 2 (0 0 1) ", "P 6_5 2 2 ", "P 6_5 2 2 ", "P6_522 ", HEXA }, /*473*/
- {180, "D6^4 ", "P 62 2c (0 0 1) ", "P 6_2 2 2 ", "P 6_2 2 2 ", "P6_222 ", HEXA }, /*474*/
- {181, "D6^5 ", "P 64 2c (0 0 -1)", "P 6_4 2 2 ", "P 6_4 2 2 ", "P6_422 ", HEXA }, /*475*/
- {182, "D6^6 ", "P 6c 2c ", "P 6_3 2 2 ", "P 6_3 2 2 ", "P6_322 ", HEXA }, /*476*/
- {183, "C6v^1 ", "P 6 -2 ", "P 6 m m ", "P 6 m m ", "P6mm ", HEXA }, /*477*/
- {184, "C6v^2 ", "P 6 -2c ", "P 6 c c ", "P 6 c c ", "P6cc ", HEXA }, /*478*/
- {185, "C6v^3 ", "P 6c -2 ", "P 6_3 c m ", "P 6_3 c m ", "P6_3cm ", HEXA }, /*479*/
- {186, "C6v^4 ", "P 6c -2c ", "P 6_3 m c ", "P 6_3 m c ", "P6_3mc ", HEXA }, /*480*/
- {187, "D3h^1 ", "P -6 2 ", "P -6 m 2 ", "P -6 m 2 ", "P-6m2 ", HEXA }, /*481*/
- {188, "D3h^2 ", "P -6c 2 ", "P -6 c 2 ", "P -6 c 2 ", "P-6c2 ", HEXA }, /*482*/
- {189, "D3h^3 ", "P -6 -2 ", "P -6 2 m ", "P -6 2 m ", "P-62m ", HEXA }, /*483*/
- {190, "D3h^4 ", "P -6c -2c ", "P -6 2 c ", "P -6 2 c ", "P-62c ", HEXA }, /*484*/
- {191, "D6h^1 ", "-P 6 2 ", "P 6/m m m ", "P 6/m 2/m 2/m ", "P6/mmm ", HEXA }, /*485*/
- {192, "D6h^2 ", "-P 6 2c ", "P 6/m c c ", "P 6/m 2/c 2/c ", "P6/mcc ", HEXA }, /*486*/
- {193, "D6h^3 ", "-P 6c 2 ", "P 6_3/m c m ", "P 6_3/m 2/c 2/m ", "P6_3/mcm ", HEXA }, /*487*/
- {194, "D6h^4 ", "-P 6c 2c ", "P 6_3/m m c ", "P 6_3/m 2/m 2/c ", "P6_3/mmc ", HEXA }, /*488*/
- {195, "T^1 ", "P 2 2 3 ", "P 2 3 ", "P 2 3 ", "P23 ", CUBIC }, /*489*/
- {196, "T^2 ", "F 2 2 3 ", "F 2 3 ", "F 2 3 ", "F23 ", CUBIC }, /*490*/
- {197, "T^3 ", "I 2 2 3 ", "I 2 3 ", "I 2 3 ", "I23 ", CUBIC }, /*491*/
- {198, "T^4 ", "P 2ac 2ab 3 ", "P 2_1 3 ", "P 2_1 3 ", "P2_13 ", CUBIC }, /*492*/
- {199, "T^5 ", "I 2b 2c 3 ", "I 2_1 3 ", "I 2_1 3 ", "I2_13 ", CUBIC }, /*493*/
- {200, "Th^1 ", "-P 2 2 3 ", "P m 3 ", "P 2/m -3 ", "Pm3 ", CUBIC }, /*494*/
- {201, "Th^2 ", "P 2 2 3 -1n ", "P n 3 ", "P 2/n -3 ", "Pn3 ", CUBIC }, /*495*/
- {201, "Th^2 ", "-P 2ab 2bc 3 ", "P n 3 ", "P 2/n -3 ", "Pn3 ", CUBIC }, /*496*/
- {202, "Th^3 ", "-F 2 2 3 ", "F m 3 ", "F 2/m -3 ", "Fm3 ", CUBIC }, /*497*/
- {203, "Th^4 ", "F 2 2 3 -1d ", "F d 3 ", "F 2/d -3 ", "Fd3 ", CUBIC }, /*498*/
- {203, "Th^4 ", "-F 2uv 2vw 3 ", "F d 3 ", "F 2/d -3 ", "Fd3 ", CUBIC }, /*499*/
- {204, "Th^5 ", "-I 2 2 3 ", "I m 3 ", "I 2/m -3 ", "Im3 ", CUBIC }, /*500*/
- {205, "Th^6 ", "-P 2ac 2ab 3 ", "P a 3 ", "P 2_1/a -3 ", "Pa3 ", CUBIC }, /*501*/
- {206, "Th^7 ", "-I 2b 2c 3 ", "I a 3 ", "I 2_1/a -3 ", "Ia3 ", CUBIC }, /*502*/
- {207, "O^1 ", "P 4 2 3 ", "P 4 3 2 ", "P 4 3 2 ", "P432 ", CUBIC }, /*503*/
- {208, "O^2 ", "P 4n 2 3 ", "P 4_2 3 2 ", "P 4_2 3 2 ", "P4_232 ", CUBIC }, /*504*/
- {209, "O^3 ", "F 4 2 3 ", "F 4 3 2 ", "F 4 3 2 ", "F432 ", CUBIC }, /*505*/
- {210, "O^4 ", "F 4d 2 3 ", "F 4_1 3 2 ", "F 4_1 3 2 ", "F4_132 ", CUBIC }, /*506*/
- {211, "O^5 ", "I 4 2 3 ", "I 4 3 2 ", "I 4 3 2 ", "I432 ", CUBIC }, /*507*/
- {212, "O^6 ", "P 4acd 2ab 3 ", "P 4_3 3 2 ", "P 4_3 3 2 ", "P4_332 ", CUBIC }, /*508*/
- {213, "O^7 ", "P 4bd 2ab 3 ", "P 4_1 3 2 ", "P 4_1 3 2 ", "P4_132 ", CUBIC }, /*509*/
- {214, "O^8 ", "I 4bd 2c 3 ", "I 4_1 3 2 ", "I 4_1 3 2 ", "I4_132 ", CUBIC }, /*510*/
- {215, "Td^1 ", "P -4 2 3 ", "P -4 3 m ", "P -4 3 m ", "P-43m ", CUBIC }, /*511*/
- {216, "Td^2 ", "F -4 2 3 ", "F -4 3 m ", "F -4 3 m ", "F-43m ", CUBIC }, /*512*/
- {217, "Td^3 ", "I -4 2 3 ", "I -4 3 m ", "I -4 3 m ", "I-43m ", CUBIC }, /*513*/
- {218, "Td^4 ", "P -4n 2 3 ", "P -4 3 n ", "P -4 3 n ", "P-43n ", CUBIC }, /*514*/
- {219, "Td^5 ", "F -4c 2 3 ", "F -4 3 c ", "F -4 3 c ", "F-43c ", CUBIC }, /*515*/
- {220, "Td^6 ", "I -4bd 2c 3 ", "I -4 3 d ", "I -4 3 d ", "I-43d ", CUBIC }, /*516*/
- {221, "Oh^1 ", "-P 4 2 3 ", "P m -3 m ", "P 4/m -3 2/m ", "Pm-3m ", CUBIC }, /*517*/
- {222, "Oh^2 ", "P 4 2 3 -1n ", "P n -3 n ", "P 4/n -3 2/n ", "Pn-3n ", CUBIC }, /*518*/
- {222, "Oh^2 ", "-P 4a 2bc 3 ", "P n -3 n ", "P 4/n -3 2/n ", "Pn-3n ", CUBIC }, /*519*/
- {223, "Oh^3 ", "-P 4n 2 3 ", "P m -3 n ", "P 4_2/m -3 2/n ", "Pm-3n ", CUBIC }, /*520*/
- {224, "Oh^4 ", "P 4n 2 3 -1n ", "P n -3 m ", "P 4_2/n -3 2/m ", "Pn-3m ", CUBIC }, /*521*/
- {224, "Oh^4 ", "-P 4bc 2bc 3 ", "P n -3 m ", "P 4_2/n -3 2/m ", "Pn-3m ", CUBIC }, /*522*/
- {225, "Oh^5 ", "-F 4 2 3 ", "F m -3 m ", "F 4/m -3 2/m ", "Fm-3m ", CUBIC }, /*523*/
- {226, "Oh^6 ", "-F 4c 2 3 ", "F m -3 c ", "F 4/m -3 2/c ", "Fm-3c ", CUBIC }, /*524*/
- {227, "Oh^7 ", "F 4d 2 3 -1d ", "F d -3 m ", "F 4_1/d -3 2/m ", "Fd-3m ", CUBIC }, /*525*/
- {227, "Oh^7 ", "-F 4vw 2vw 3 ", "F d -3 m ", "F 4_1/d -3 2/m ", "Fd-3m ", CUBIC }, /*526*/
- {228, "Oh^8 ", "F 4d 2 3 -1cd ", "F d -3 c ", "F 4_1/d -3 2/c ", "Fd-3c ", CUBIC }, /*527*/
- {228, "Oh^8 ", "-F 4cvw 2vw 3 ", "F d -3 c ", "F 4_1/d -3 2/c ", "Fd-3c ", CUBIC }, /*528*/
- {229, "Oh^9 ", "-I 4 2 3 ", "I m -3 m ", "I 4/m -3 2/m ", "Im-3m ", CUBIC }, /*529*/
- {230, "Oh^10 ", "-I 4bd 2c 3 ", "I a -3 d ", "I 4_1/a -3 2/d ", "Ia-3d ", CUBIC }, /*530*/
+ { 0, " ", " ", " ", " ", " ", " ", CENTERING_ERROR, 0 }, /* 0 */
+ { 1, "C1^1 ", "P 1 ", "P 1 ", "P 1 ", "P1 ", " ", PRIMITIVE, 1 }, /* 1 */
+ { 2, "Ci^1 ", "-P 1 ", "P -1 ", "P -1 ", "P-1 ", " ", PRIMITIVE, 2 }, /* 2 */
+ { 3, "C2^1 ", "P 2y ", "P 2 = P 1 2 1 ", "P 1 2 1 ", "P2 ", "b ", PRIMITIVE, 3 }, /* 3 */
+ { 3, "C2^1 ", "P 2 ", "P 2 = P 1 1 2 ", "P 1 1 2 ", "P2 ", "c ", PRIMITIVE, 3 }, /* 4 */
+ { 3, "C2^1 ", "P 2x ", "P 2 = P 2 1 1 ", "P 2 1 1 ", "P2 ", "a ", PRIMITIVE, 3 }, /* 5 */
+ { 4, "C2^2 ", "P 2yb ", "P 2_1 = P 1 2_1 1 ", "P 1 2_1 1 ", "P2_1 ", "b ", PRIMITIVE, 3 }, /* 6 */
+ { 4, "C2^2 ", "P 2c ", "P 2_1 = P 1 1 2_1 ", "P 1 1 2_1 ", "P2_1 ", "c ", PRIMITIVE, 3 }, /* 7 */
+ { 4, "C2^2 ", "P 2xa ", "P 2_1 = P 2_1 1 1 ", "P 2_1 1 1 ", "P2_1 ", "a ", PRIMITIVE, 3 }, /* 8 */
+ { 5, "C2^3 ", "C 2y ", "C 2 = C 1 2 1 ", "C 1 2 1 ", "C2 ", "b1 ", C_FACE, 3 }, /* 9 */
+ { 5, "C2^3 ", "A 2y ", "C 2 = A 1 2 1 ", "A 1 2 1 ", "C2 ", "b2 ", A_FACE, 3 }, /* 10 */
+ { 5, "C2^3 ", "I 2y ", "C 2 = I 1 2 1 ", "I 1 2 1 ", "C2 ", "b3 ", BODY, 3 }, /* 11 */
+ { 5, "C2^3 ", "A 2 ", "C 2 = A 1 1 2 ", "A 1 1 2 ", "C2 ", "c1 ", A_FACE, 3 }, /* 12 */
+ { 5, "C2^3 ", "B 2 ", "C 2 = B 1 1 2 = B 2 ", "B 1 1 2 ", "C2 ", "c2 ", PRIMITIVE, 3 }, /* 13 */
+ { 5, "C2^3 ", "I 2 ", "C 2 = I 1 1 2 ", "I 1 1 2 ", "C2 ", "c3 ", BODY, 3 }, /* 14 */
+ { 5, "C2^3 ", "B 2x ", "C 2 = B 2 1 1 ", "B 2 1 1 ", "C2 ", "a1 ", PRIMITIVE, 3 }, /* 15 */
+ { 5, "C2^3 ", "C 2x ", "C 2 = C 2 1 1 ", "C 2 1 1 ", "C2 ", "a2 ", C_FACE, 3 }, /* 16 */
+ { 5, "C2^3 ", "I 2x ", "C 2 = I 2 1 1 ", "I 2 1 1 ", "C2 ", "a3 ", BODY, 3 }, /* 17 */
+ { 6, "Cs^1 ", "P -2y ", "P m = P 1 m 1 ", "P 1 m 1 ", "Pm ", "b ", PRIMITIVE, 4 }, /* 18 */
+ { 6, "Cs^1 ", "P -2 ", "P m = P 1 1 m ", "P 1 1 m ", "Pm ", "c ", PRIMITIVE, 4 }, /* 19 */
+ { 6, "Cs^1 ", "P -2x ", "P m = P m 1 1 ", "P m 1 1 ", "Pm ", "a ", PRIMITIVE, 4 }, /* 20 */
+ { 7, "Cs^2 ", "P -2yc ", "P c = P 1 c 1 ", "P 1 c 1 ", "Pc ", "b1 ", PRIMITIVE, 4 }, /* 21 */
+ { 7, "Cs^2 ", "P -2yac ", "P c = P 1 n 1 ", "P 1 n 1 ", "Pc ", "b2 ", PRIMITIVE, 4 }, /* 22 */
+ { 7, "Cs^2 ", "P -2ya ", "P c = P 1 a 1 ", "P 1 a 1 ", "Pc ", "b3 ", PRIMITIVE, 4 }, /* 23 */
+ { 7, "Cs^2 ", "P -2a ", "P c = P 1 1 a ", "P 1 1 a ", "Pc ", "c1 ", PRIMITIVE, 4 }, /* 24 */
+ { 7, "Cs^2 ", "P -2ab ", "P c = P 1 1 n ", "P 1 1 n ", "Pc ", "c2 ", PRIMITIVE, 4 }, /* 25 */
+ { 7, "Cs^2 ", "P -2b ", "P c = P 1 1 b = P b ", "P 1 1 b ", "Pc ", "c3 ", PRIMITIVE, 4 }, /* 26 */
+ { 7, "Cs^2 ", "P -2xb ", "P c = P b 1 1 ", "P b 1 1 ", "Pc ", "a1 ", PRIMITIVE, 4 }, /* 27 */
+ { 7, "Cs^2 ", "P -2xbc ", "P c = P n 1 1 ", "P n 1 1 ", "Pc ", "a2 ", PRIMITIVE, 4 }, /* 28 */
+ { 7, "Cs^2 ", "P -2xc ", "P c = P c 1 1 ", "P c 1 1 ", "Pc ", "a3 ", PRIMITIVE, 4 }, /* 29 */
+ { 8, "Cs^3 ", "C -2y ", "C m = C 1 m 1 ", "C 1 m 1 ", "Cm ", "b1 ", C_FACE, 4 }, /* 30 */
+ { 8, "Cs^3 ", "A -2y ", "C m = A 1 m 1 ", "A 1 m 1 ", "Cm ", "b2 ", A_FACE, 4 }, /* 31 */
+ { 8, "Cs^3 ", "I -2y ", "C m = I 1 m 1 ", "I 1 m 1 ", "Cm ", "b3 ", BODY, 4 }, /* 32 */
+ { 8, "Cs^3 ", "A -2 ", "C m = A 1 1 m ", "A 1 1 m ", "Cm ", "c1 ", A_FACE, 4 }, /* 33 */
+ { 8, "Cs^3 ", "B -2 ", "C m = B 1 1 m = B m ", "B 1 1 m ", "Cm ", "c2 ", PRIMITIVE, 4 }, /* 34 */
+ { 8, "Cs^3 ", "I -2 ", "C m = I 1 1 m ", "I 1 1 m ", "Cm ", "c3 ", BODY, 4 }, /* 35 */
+ { 8, "Cs^3 ", "B -2x ", "C m = B m 1 1 ", "B m 1 1 ", "Cm ", "a1 ", PRIMITIVE, 4 }, /* 36 */
+ { 8, "Cs^3 ", "C -2x ", "C m = C m 1 1 ", "C m 1 1 ", "Cm ", "a2 ", C_FACE, 4 }, /* 37 */
+ { 8, "Cs^3 ", "I -2x ", "C m = I m 1 1 ", "I m 1 1 ", "Cm ", "a3 ", BODY, 4 }, /* 38 */
+ { 9, "Cs^4 ", "C -2yc ", "C c = C 1 c 1 ", "C 1 c 1 ", "Cc ", "b1 ", C_FACE, 4 }, /* 39 */
+ { 9, "Cs^4 ", "A -2yac ", "C c = A 1 n 1 ", "A 1 n 1 ", "Cc ", "b2 ", A_FACE, 4 }, /* 40 */
+ { 9, "Cs^4 ", "I -2ya ", "C c = I 1 a 1 ", "I 1 a 1 ", "Cc ", "b3 ", BODY, 4 }, /* 41 */
+ { 9, "Cs^4 ", "A -2ya ", "C c = A 1 a 1 ", "A 1 a 1 ", "Cc ", "-b1 ", A_FACE, 4 }, /* 42 */
+ { 9, "Cs^4 ", "C -2ybc ", "C c = C 1 n 1 ", "C 1 n 1 ", "Cc ", "-b2 ", C_FACE, 4 }, /* 43 */
+ { 9, "Cs^4 ", "I -2yc ", "C c = I 1 c 1 ", "I 1 c 1 ", "Cc ", "-b3 ", BODY, 4 }, /* 44 */
+ { 9, "Cs^4 ", "A -2a ", "C c = A 1 1 a ", "A 1 1 a ", "Cc ", "c1 ", A_FACE, 4 }, /* 45 */
+ { 9, "Cs^4 ", "B -2bc ", "C c = B 1 1 n ", "B 1 1 n ", "Cc ", "c2 ", PRIMITIVE, 4 }, /* 46 */
+ { 9, "Cs^4 ", "I -2b ", "C c = I 1 1 b ", "I 1 1 b ", "Cc ", "c3 ", BODY, 4 }, /* 47 */
+ { 9, "Cs^4 ", "B -2b ", "C c = B 1 1 b = B b ", "B 1 1 b ", "Cc ", "-c1 ", PRIMITIVE, 4 }, /* 48 */
+ { 9, "Cs^4 ", "A -2ac ", "C c = A 1 1 n ", "A 1 1 n ", "Cc ", "-c2 ", A_FACE, 4 }, /* 49 */
+ { 9, "Cs^4 ", "I -2a ", "C c = I 1 1 a ", "I 1 1 a ", "Cc ", "-c3 ", BODY, 4 }, /* 50 */
+ { 9, "Cs^4 ", "B -2xb ", "C c = B b 1 1 ", "B b 1 1 ", "Cc ", "a1 ", PRIMITIVE, 4 }, /* 51 */
+ { 9, "Cs^4 ", "C -2xbc ", "C c = C n 1 1 ", "C n 1 1 ", "Cc ", "a2 ", C_FACE, 4 }, /* 52 */
+ { 9, "Cs^4 ", "I -2xc ", "C c = I c 1 1 ", "I c 1 1 ", "Cc ", "a3 ", BODY, 4 }, /* 53 */
+ { 9, "Cs^4 ", "C -2xc ", "C c = C c 1 1 ", "C c 1 1 ", "Cc ", "-a1 ", C_FACE, 4 }, /* 54 */
+ { 9, "Cs^4 ", "B -2xbc ", "C c = B n 1 1 ", "B n 1 1 ", "Cc ", "-a2 ", PRIMITIVE, 4 }, /* 55 */
+ { 9, "Cs^4 ", "I -2xb ", "C c = I b 1 1 ", "I b 1 1 ", "Cc ", "-a3 ", BODY, 4 }, /* 56 */
+ { 10, "C2h^1 ", "-P 2y ", "P 2/m = P 1 2/m 1 ", "P 1 2/m 1 ", "P2/m ", "b ", PRIMITIVE, 5 }, /* 57 */
+ { 10, "C2h^1 ", "-P 2 ", "P 2/m = P 1 1 2/m ", "P 1 1 2/m ", "P2/m ", "c ", PRIMITIVE, 5 }, /* 58 */
+ { 10, "C2h^1 ", "-P 2x ", "P 2/m = P 2/m 1 1 ", "P 2/m 1 1 ", "P2/m ", "a ", PRIMITIVE, 5 }, /* 59 */
+ { 11, "C2h^2 ", "-P 2yb ", "P 2_1/m = P 1 2_1/m 1 ", "P 1 2_1/m 1 ", "P2_1/m ", "b ", PRIMITIVE, 5 }, /* 60 */
+ { 11, "C2h^2 ", "-P 2c ", "P 2_1/m = P 1 1 2_1/m ", "P 1 1 2_1/m ", "P2_1/m ", "c ", PRIMITIVE, 5 }, /* 61 */
+ { 11, "C2h^2 ", "-P 2xa ", "P 2_1/m = P 2_1/m 1 1 ", "P 2_1/m 1 1 ", "P2_1/m ", "a ", PRIMITIVE, 5 }, /* 62 */
+ { 12, "C2h^3 ", "-C 2y ", "C 2/m = C 1 2/m 1 ", "C 1 2/m 1 ", "C2/m ", "b1 ", C_FACE, 5 }, /* 63 */
+ { 12, "C2h^3 ", "-A 2y ", "C 2/m = A 1 2/m 1 ", "A 1 2/m 1 ", "C2/m ", "b2 ", A_FACE, 5 }, /* 64 */
+ { 12, "C2h^3 ", "-I 2y ", "C 2/m = I 1 2/m 1 ", "I 1 2/m 1 ", "C2/m ", "b3 ", BODY, 5 }, /* 65 */
+ { 12, "C2h^3 ", "-A 2 ", "C 2/m = A 1 1 2/m ", "A 1 1 2/m ", "C2/m ", "c1 ", A_FACE, 5 }, /* 66 */
+ { 12, "C2h^3 ", "-B 2 ", "C 2/m = B 1 1 2/m = B 2/m ", "B 1 1 2/m ", "C2/m ", "c2 ", PRIMITIVE, 5 }, /* 67 */
+ { 12, "C2h^3 ", "-I 2 ", "C 2/m = I 1 1 2/m ", "I 1 1 2/m ", "C2/m ", "c3 ", BODY, 5 }, /* 68 */
+ { 12, "C2h^3 ", "-B 2x ", "C 2/m = B 2/m 1 1 ", "B 2/m 1 1 ", "C2/m ", "a1 ", PRIMITIVE, 5 }, /* 69 */
+ { 12, "C2h^3 ", "-C 2x ", "C 2/m = C 2/m 1 1 ", "C 2/m 1 1 ", "C2/m ", "a2 ", C_FACE, 5 }, /* 70 */
+ { 12, "C2h^3 ", "-I 2x ", "C 2/m = I 2/m 1 1 ", "I 2/m 1 1 ", "C2/m ", "a3 ", BODY, 5 }, /* 71 */
+ { 13, "C2h^4 ", "-P 2yc ", "P 2/c = P 1 2/c 1 ", "P 1 2/c 1 ", "P2/c ", "b1 ", PRIMITIVE, 5 }, /* 72 */
+ { 13, "C2h^4 ", "-P 2yac ", "P 2/c = P 1 2/n 1 ", "P 1 2/n 1 ", "P2/c ", "b2 ", PRIMITIVE, 5 }, /* 73 */
+ { 13, "C2h^4 ", "-P 2ya ", "P 2/c = P 1 2/a 1 ", "P 1 2/a 1 ", "P2/c ", "b3 ", PRIMITIVE, 5 }, /* 74 */
+ { 13, "C2h^4 ", "-P 2a ", "P 2/c = P 1 1 2/a ", "P 1 1 2/a ", "P2/c ", "c1 ", PRIMITIVE, 5 }, /* 75 */
+ { 13, "C2h^4 ", "-P 2ab ", "P 2/c = P 1 1 2/n ", "P 1 1 2/n ", "P2/c ", "c2 ", PRIMITIVE, 5 }, /* 76 */
+ { 13, "C2h^4 ", "-P 2b ", "P 2/c = P 1 1 2/b = P 2/b ", "P 1 1 2/b ", "P2/c ", "c3 ", PRIMITIVE, 5 }, /* 77 */
+ { 13, "C2h^4 ", "-P 2xb ", "P 2/c = P 2/b 1 1 ", "P 2/b 1 1 ", "P2/c ", "a1 ", PRIMITIVE, 5 }, /* 78 */
+ { 13, "C2h^4 ", "-P 2xbc ", "P 2/c = P 2/n 1 1 ", "P 2/n 1 1 ", "P2/c ", "a2 ", PRIMITIVE, 5 }, /* 79 */
+ { 13, "C2h^4 ", "-P 2xc ", "P 2/c = P 2/c 1 1 ", "P 2/c 1 1 ", "P2/c ", "a3 ", PRIMITIVE, 5 }, /* 80 */
+ { 14, "C2h^5 ", "-P 2ybc ", "P 2_1/c = P 1 2_1/c 1 ", "P 1 2_1/c 1 ", "P2_1/c ", "b1 ", PRIMITIVE, 5 }, /* 81 */
+ { 14, "C2h^5 ", "-P 2yn ", "P 2_1/c = P 1 2_1/n 1 ", "P 1 2_1/n 1 ", "P2_1/c ", "b2 ", PRIMITIVE, 5 }, /* 82 */
+ { 14, "C2h^5 ", "-P 2yab ", "P 2_1/c = P 1 2_1/a 1 ", "P 1 2_1/a 1 ", "P2_1/c ", "b3 ", PRIMITIVE, 5 }, /* 83 */
+ { 14, "C2h^5 ", "-P 2ac ", "P 2_1/c = P 1 1 2_1/a ", "P 1 1 2_1/a ", "P2_1/c ", "c1 ", PRIMITIVE, 5 }, /* 84 */
+ { 14, "C2h^5 ", "-P 2n ", "P 2_1/c = P 1 1 2_1/n ", "P 1 1 2_1/n ", "P2_1/c ", "c2 ", PRIMITIVE, 5 }, /* 85 */
+ { 14, "C2h^5 ", "-P 2bc ", "P 2_1/c = P 1 1 2_1/b = P 2_1/b", "P 1 1 2_1/b ", "P2_1/c ", "c3 ", PRIMITIVE, 5 }, /* 86 */
+ { 14, "C2h^5 ", "-P 2xab ", "P 2_1/c = P 2_1/b 1 1 ", "P 2_1/b 1 1 ", "P2_1/c ", "a1 ", PRIMITIVE, 5 }, /* 87 */
+ { 14, "C2h^5 ", "-P 2xn ", "P 2_1/c = P 2_1/n 1 1 ", "P 2_1/n 1 1 ", "P2_1/c ", "a2 ", PRIMITIVE, 5 }, /* 88 */
+ { 14, "C2h^5 ", "-P 2xac ", "P 2_1/c = P 2_1/c 1 1 ", "P 2_1/c 1 1 ", "P2_1/c ", "a3 ", PRIMITIVE, 5 }, /* 89 */
+ { 15, "C2h^6 ", "-C 2yc ", "C 2/c = C 1 2/c 1 ", "C 1 2/c 1 ", "C2/c ", "b1 ", C_FACE, 5 }, /* 90 */
+ { 15, "C2h^6 ", "-A 2yac ", "C 2/c = A 1 2/n 1 ", "A 1 2/n 1 ", "C2/c ", "b2 ", A_FACE, 5 }, /* 91 */
+ { 15, "C2h^6 ", "-I 2ya ", "C 2/c = I 1 2/a 1 ", "I 1 2/a 1 ", "C2/c ", "b3 ", BODY, 5 }, /* 92 */
+ { 15, "C2h^6 ", "-A 2ya ", "C 2/c = A 1 2/a 1 ", "A 1 2/a 1 ", "C2/c ", "-b1 ", A_FACE, 5 }, /* 93 */
+ { 15, "C2h^6 ", "-C 2ybc ", "C 2/c = C 1 2/n 1 ", "C 1 2/n 1 ", "C2/c ", "-b2 ", C_FACE, 5 }, /* 94 */
+ { 15, "C2h^6 ", "-I 2yc ", "C 2/c = I 1 2/c 1 ", "I 1 2/c 1 ", "C2/c ", "-b3 ", BODY, 5 }, /* 95 */
+ { 15, "C2h^6 ", "-A 2a ", "C 2/c = A 1 1 2/a ", "A 1 1 2/a ", "C2/c ", "c1 ", A_FACE, 5 }, /* 96 */
+ { 15, "C2h^6 ", "-B 2bc ", "C 2/c = B 1 1 2/n ", "B 1 1 2/n ", "C2/c ", "c2 ", PRIMITIVE, 5 }, /* 97 */
+ { 15, "C2h^6 ", "-I 2b ", "C 2/c = I 1 1 2/b ", "I 1 1 2/b ", "C2/c ", "c3 ", BODY, 5 }, /* 98 */
+ { 15, "C2h^6 ", "-B 2b ", "C 2/c = B 1 1 2/b = B 2/b ", "B 1 1 2/b ", "C2/c ", "-c1 ", PRIMITIVE, 5 }, /* 99 */
+ { 15, "C2h^6 ", "-A 2ac ", "C 2/c = A 1 1 2/n ", "A 1 1 2/n ", "C2/c ", "-c2 ", A_FACE, 5 }, /* 100 */
+ { 15, "C2h^6 ", "-I 2a ", "C 2/c = I 1 1 2/a ", "I 1 1 2/a ", "C2/c ", "-c3 ", BODY, 5 }, /* 101 */
+ { 15, "C2h^6 ", "-B 2xb ", "C 2/c = B 2/b 1 1 ", "B 2/b 1 1 ", "C2/c ", "a1 ", PRIMITIVE, 5 }, /* 102 */
+ { 15, "C2h^6 ", "-C 2xbc ", "C 2/c = C 2/n 1 1 ", "C 2/n 1 1 ", "C2/c ", "a2 ", C_FACE, 5 }, /* 103 */
+ { 15, "C2h^6 ", "-I 2xc ", "C 2/c = I 2/c 1 1 ", "I 2/c 1 1 ", "C2/c ", "a3 ", BODY, 5 }, /* 104 */
+ { 15, "C2h^6 ", "-C 2xc ", "C 2/c = C 2/c 1 1 ", "C 2/c 1 1 ", "C2/c ", "-a1 ", C_FACE, 5 }, /* 105 */
+ { 15, "C2h^6 ", "-B 2xbc ", "C 2/c = B 2/n 1 1 ", "B 2/n 1 1 ", "C2/c ", "-a2 ", PRIMITIVE, 5 }, /* 106 */
+ { 15, "C2h^6 ", "-I 2xb ", "C 2/c = I 2/b 1 1 ", "I 2/b 1 1 ", "C2/c ", "-a3 ", BODY, 5 }, /* 107 */
+ { 16, "D2^1 ", "P 2 2 ", "P 2 2 2 ", "P 2 2 2 ", "P222 ", " ", PRIMITIVE, 6 }, /* 108 */
+ { 17, "D2^2 ", "P 2c 2 ", "P 2 2 2_1 ", "P 2 2 2_1 ", "P222_1 ", " ", PRIMITIVE, 6 }, /* 109 */
+ { 17, "D2^2 ", "P 2a 2a ", "P 2_1 2 2 ", "P 2_1 2 2 ", "P2_122 ", "cab ", PRIMITIVE, 6 }, /* 110 */
+ { 17, "D2^2 ", "P 2 2b ", "P 2 2_1 2 ", "P 2 2_1 2 ", "P22_12 ", "bca ", PRIMITIVE, 6 }, /* 111 */
+ { 18, "D2^3 ", "P 2 2ab ", "P 2_1 2_1 2 ", "P 2_1 2_1 2 ", "P2_12_12 ", " ", PRIMITIVE, 6 }, /* 112 */
+ { 18, "D2^3 ", "P 2bc 2 ", "P 2 2_1 2_1 ", "P 2 2_1 2_1 ", "P22_12_1 ", "cab ", PRIMITIVE, 6 }, /* 113 */
+ { 18, "D2^3 ", "P 2ac 2ac ", "P 2_1 2 2_1 ", "P 2_1 2 2_1 ", "P2_122_1 ", "bca ", PRIMITIVE, 6 }, /* 114 */
+ { 19, "D2^4 ", "P 2ac 2ab ", "P 2_1 2_1 2_1 ", "P 2_1 2_1 2_1 ", "P2_12_12_1", " ", PRIMITIVE, 6 }, /* 115 */
+ { 20, "D2^5 ", "C 2c 2 ", "C 2 2 2_1 ", "C 2 2 2_1 ", "C222_1 ", " ", C_FACE, 6 }, /* 116 */
+ { 20, "D2^5 ", "A 2a 2a ", "A 2_1 2 2 ", "A 2_1 2 2 ", "A2_122 ", "cab ", A_FACE, 6 }, /* 117 */
+ { 20, "D2^5 ", "B 2 2b ", "B 2 2_1 2 ", "B 2 2_1 2 ", "B22_12 ", "bca ", PRIMITIVE, 6 }, /* 118 */
+ { 21, "D2^6 ", "C 2 2 ", "C 2 2 2 ", "C 2 2 2 ", "C222 ", " ", C_FACE, 6 }, /* 119 */
+ { 21, "D2^6 ", "A 2 2 ", "A 2 2 2 ", "A 2 2 2 ", "A222 ", "cab ", A_FACE, 6 }, /* 120 */
+ { 21, "D2^6 ", "B 2 2 ", "B 2 2 2 ", "B 2 2 2 ", "B222 ", "bca ", PRIMITIVE, 6 }, /* 121 */
+ { 22, "D2^7 ", "F 2 2 ", "F 2 2 2 ", "F 2 2 2 ", "F222 ", " ", FACE, 6 }, /* 122 */
+ { 23, "D2^8 ", "I 2 2 ", "I 2 2 2 ", "I 2 2 2 ", "I222 ", " ", BODY, 6 }, /* 123 */
+ { 24, "D2^9 ", "I 2b 2c ", "I 2_1 2_1 2_1 ", "I 2_1 2_1 2_1 ", "I2_12_12_1", " ", BODY, 6 }, /* 124 */
+ { 25, "C2v^1 ", "P 2 -2 ", "P m m 2 ", "P m m 2 ", "Pmm2 ", " ", PRIMITIVE, 7 }, /* 125 */
+ { 25, "C2v^1 ", "P -2 2 ", "P 2 m m ", "P 2 m m ", "P2mm ", "cab ", PRIMITIVE, 7 }, /* 126 */
+ { 25, "C2v^1 ", "P -2 -2 ", "P m 2 m ", "P m 2 m ", "Pm2m ", "bca ", PRIMITIVE, 7 }, /* 127 */
+ { 26, "C2v^2 ", "P 2c -2 ", "P m c 2_1 ", "P m c 2_1 ", "Pmc2_1 ", " ", PRIMITIVE, 7 }, /* 128 */
+ { 26, "C2v^2 ", "P 2c -2c ", "P c m 2_1 ", "P c m 2_1 ", "Pcm2_1 ", "ba-c ", PRIMITIVE, 7 }, /* 129 */
+ { 26, "C2v^2 ", "P -2a 2a ", "P 2_1 m a ", "P 2_1 m a ", "P2_1ma ", "cab ", PRIMITIVE, 7 }, /* 130 */
+ { 26, "C2v^2 ", "P -2 2a ", "P 2_1 a m ", "P 2_1 a m ", "P2_1am ", "-cba ", PRIMITIVE, 7 }, /* 131 */
+ { 26, "C2v^2 ", "P -2 -2b ", "P b 2_1 m ", "P b 2_1 m ", "Pb2_1m ", "bca ", PRIMITIVE, 7 }, /* 132 */
+ { 26, "C2v^2 ", "P -2b -2 ", "P m 2_1 b ", "P m 2_1 b ", "Pm2_1b ", "a-cb ", PRIMITIVE, 7 }, /* 133 */
+ { 27, "C2v^3 ", "P 2 -2c ", "P c c 2 ", "P c c 2 ", "Pcc2 ", " ", PRIMITIVE, 7 }, /* 134 */
+ { 27, "C2v^3 ", "P -2a 2 ", "P 2 a a ", "P 2 a a ", "P2aa ", "cab ", PRIMITIVE, 7 }, /* 135 */
+ { 27, "C2v^3 ", "P -2b -2b ", "P b 2 b ", "P b 2 b ", "Pb2b ", "bca ", PRIMITIVE, 7 }, /* 136 */
+ { 28, "C2v^4 ", "P 2 -2a ", "P m a 2 ", "P m a 2 ", "Pma2 ", " ", PRIMITIVE, 7 }, /* 137 */
+ { 28, "C2v^4 ", "P 2 -2b ", "P b m 2 ", "P b m 2 ", "Pbm2 ", "ba-c ", PRIMITIVE, 7 }, /* 138 */
+ { 28, "C2v^4 ", "P -2b 2 ", "P 2 m b ", "P 2 m b ", "P2mb ", "cab ", PRIMITIVE, 7 }, /* 139 */
+ { 28, "C2v^4 ", "P -2c 2 ", "P 2 c m ", "P 2 c m ", "P2cm ", "-cba ", PRIMITIVE, 7 }, /* 140 */
+ { 28, "C2v^4 ", "P -2c -2c ", "P c 2 m ", "P c 2 m ", "Pc2m ", "bca ", PRIMITIVE, 7 }, /* 141 */
+ { 28, "C2v^4 ", "P -2a -2a ", "P m 2 a ", "P m 2 a ", "Pm2a ", "a-cb ", PRIMITIVE, 7 }, /* 142 */
+ { 29, "C2v^5 ", "P 2c -2ac ", "P c a 2_1 ", "P c a 2_1 ", "Pca2_1 ", " ", PRIMITIVE, 7 }, /* 143 */
+ { 29, "C2v^5 ", "P 2c -2b ", "P b c 2_1 ", "P b c 2_1 ", "Pbc2_1 ", "ba-c ", PRIMITIVE, 7 }, /* 144 */
+ { 29, "C2v^5 ", "P -2b 2a ", "P 2_1 a b ", "P 2_1 a b ", "P2_1ab ", "cab ", PRIMITIVE, 7 }, /* 145 */
+ { 29, "C2v^5 ", "P -2ac 2a ", "P 2_1 c a ", "P 2_1 c a ", "P2_1ca ", "-cba ", PRIMITIVE, 7 }, /* 146 */
+ { 29, "C2v^5 ", "P -2bc -2c ", "P c 2_1 b ", "P c 2_1 b ", "Pc2_1b ", "bca ", PRIMITIVE, 7 }, /* 147 */
+ { 29, "C2v^5 ", "P -2a -2ab ", "P b 2_1 a ", "P b 2_1 a ", "Pb2_1a ", "a-cb ", PRIMITIVE, 7 }, /* 148 */
+ { 30, "C2v^6 ", "P 2 -2bc ", "P n c 2 ", "P n c 2 ", "Pnc2 ", " ", PRIMITIVE, 7 }, /* 149 */
+ { 30, "C2v^6 ", "P 2 -2ac ", "P c n 2 ", "P c n 2 ", "Pcn2 ", "ba-c ", PRIMITIVE, 7 }, /* 150 */
+ { 30, "C2v^6 ", "P -2ac 2 ", "P 2 n a ", "P 2 n a ", "P2na ", "cab ", PRIMITIVE, 7 }, /* 151 */
+ { 30, "C2v^6 ", "P -2ab 2 ", "P 2 a n ", "P 2 a n ", "P2an ", "-cba ", PRIMITIVE, 7 }, /* 152 */
+ { 30, "C2v^6 ", "P -2ab -2ab ", "P b 2 n ", "P b 2 n ", "Pb2n ", "bca ", PRIMITIVE, 7 }, /* 153 */
+ { 30, "C2v^6 ", "P -2bc -2bc ", "P n 2 b ", "P n 2 b ", "Pn2b ", "a-cb ", PRIMITIVE, 7 }, /* 154 */
+ { 31, "C2v^7 ", "P 2ac -2 ", "P m n 2_1 ", "P m n 2_1 ", "Pmn2_1 ", " ", PRIMITIVE, 7 }, /* 155 */
+ { 31, "C2v^7 ", "P 2bc -2bc ", "P n m 2_1 ", "P n m 2_1 ", "Pnm2_1 ", "ba-c ", PRIMITIVE, 7 }, /* 156 */
+ { 31, "C2v^7 ", "P -2ab 2ab ", "P 2_1 m n ", "P 2_1 m n ", "P2_1mn ", "cab ", PRIMITIVE, 7 }, /* 157 */
+ { 31, "C2v^7 ", "P -2 2ac ", "P 2_1 n m ", "P 2_1 n m ", "P2_1nm ", "-cba ", PRIMITIVE, 7 }, /* 158 */
+ { 31, "C2v^7 ", "P -2 -2bc ", "P n 2_1 m ", "P n 2_1 m ", "Pn2_1m ", "bca ", PRIMITIVE, 7 }, /* 159 */
+ { 31, "C2v^7 ", "P -2ab -2 ", "P m 2_1 n ", "P m 2_1 n ", "Pm2_1n ", "a-cb ", PRIMITIVE, 7 }, /* 160 */
+ { 32, "C2v^8 ", "P 2 -2ab ", "P b a 2 ", "P b a 2 ", "Pba2 ", " ", PRIMITIVE, 7 }, /* 161 */
+ { 32, "C2v^8 ", "P -2bc 2 ", "P 2 c b ", "P 2 c b ", "P2cb ", "cab ", PRIMITIVE, 7 }, /* 162 */
+ { 32, "C2v^8 ", "P -2ac -2ac ", "P c 2 a ", "P c 2 a ", "Pc2a ", "bca ", PRIMITIVE, 7 }, /* 163 */
+ { 33, "C2v^9 ", "P 2c -2n ", "P n a 2_1 ", "P n a 2_1 ", "Pna2_1 ", " ", PRIMITIVE, 7 }, /* 164 */
+ { 33, "C2v^9 ", "P 2c -2ab ", "P b n 2_1 ", "P b n 2_1 ", "Pbn2_1 ", "ba-c ", PRIMITIVE, 7 }, /* 165 */
+ { 33, "C2v^9 ", "P -2bc 2a ", "P 2_1 n b ", "P 2_1 n b ", "P2_1nb ", "cab ", PRIMITIVE, 7 }, /* 166 */
+ { 33, "C2v^9 ", "P -2n 2a ", "P 2_1 c n ", "P 2_1 c n ", "P2_1cn ", "-cba ", PRIMITIVE, 7 }, /* 167 */
+ { 33, "C2v^9 ", "P -2n -2ac ", "P c 2_1 n ", "P c 2_1 n ", "Pc2_1n ", "bca ", PRIMITIVE, 7 }, /* 168 */
+ { 33, "C2v^9 ", "P -2ac -2n ", "P n 2_1 a ", "P n 2_1 a ", "Pn2_1a ", "a-cb ", PRIMITIVE, 7 }, /* 169 */
+ { 34, "C2v^10", "P 2 -2n ", "P n n 2 ", "P n n 2 ", "Pnn2 ", " ", PRIMITIVE, 7 }, /* 170 */
+ { 34, "C2v^10", "P -2n 2 ", "P 2 n n ", "P 2 n n ", "P2nn ", "cab ", PRIMITIVE, 7 }, /* 171 */
+ { 34, "C2v^10", "P -2n -2n ", "P n 2 n ", "P n 2 n ", "Pn2n ", "bca ", PRIMITIVE, 7 }, /* 172 */
+ { 35, "C2v^11", "C 2 -2 ", "C m m 2 ", "C m m 2 ", "Cmm2 ", " ", C_FACE, 7 }, /* 173 */
+ { 35, "C2v^11", "A -2 2 ", "A 2 m m ", "A 2 m m ", "A2mm ", "cab ", A_FACE, 7 }, /* 174 */
+ { 35, "C2v^11", "B -2 -2 ", "B m 2 m ", "B m 2 m ", "Bm2m ", "bca ", PRIMITIVE, 7 }, /* 175 */
+ { 36, "C2v^12", "C 2c -2 ", "C m c 2_1 ", "C m c 2_1 ", "Cmc2_1 ", " ", C_FACE, 7 }, /* 176 */
+ { 36, "C2v^12", "C 2c -2c ", "C c m 2_1 ", "C c m 2_1 ", "Ccm2_1 ", "ba-c ", C_FACE, 7 }, /* 177 */
+ { 36, "C2v^12", "A -2a 2a ", "A 2_1 m a ", "A 2_1 m a ", "A2_1ma ", "cab ", A_FACE, 7 }, /* 178 */
+ { 36, "C2v^12", "A -2 2a ", "A 2_1 a m ", "A 2_1 a m ", "A2_1am ", "-cba ", A_FACE, 7 }, /* 179 */
+ { 36, "C2v^12", "B -2 -2b ", "B b 2_1 m ", "B b 2_1 m ", "Bb2_1m ", "bca ", PRIMITIVE, 7 }, /* 180 */
+ { 36, "C2v^12", "B -2b -2 ", "B m 2_1 b ", "B m 2_1 b ", "Bm2_1b ", "a-cb ", PRIMITIVE, 7 }, /* 181 */
+ { 37, "C2v^13", "C 2 -2c ", "C c c 2 ", "C c c 2 ", "Ccc2 ", " ", C_FACE, 7 }, /* 182 */
+ { 37, "C2v^13", "A -2a 2 ", "A 2 a a ", "A 2 a a ", "A2aa ", "cab ", A_FACE, 7 }, /* 183 */
+ { 37, "C2v^13", "B -2b -2b ", "B b 2 b ", "B b 2 b ", "Bb2b ", "bca ", PRIMITIVE, 7 }, /* 184 */
+ { 38, "C2v^14", "A 2 -2 ", "A m m 2 ", "A m m 2 ", "Amm2 ", " ", A_FACE, 7 }, /* 185 */
+ { 38, "C2v^14", "B 2 -2 ", "B m m 2 ", "B m m 2 ", "Bmm2 ", "ba-c ", PRIMITIVE, 7 }, /* 186 */
+ { 38, "C2v^14", "B -2 2 ", "B 2 m m ", "B 2 m m ", "B2mm ", "cab ", PRIMITIVE, 7 }, /* 187 */
+ { 38, "C2v^14", "C -2 2 ", "C 2 m m ", "C 2 m m ", "C2mm ", "-cba ", C_FACE, 7 }, /* 188 */
+ { 38, "C2v^14", "C -2 -2 ", "C m 2 m ", "C m 2 m ", "Cm2m ", "bca ", C_FACE, 7 }, /* 189 */
+ { 38, "C2v^14", "A -2 -2 ", "A m 2 m ", "A m 2 m ", "Am2m ", "a-cb ", A_FACE, 7 }, /* 190 */
+ { 39, "C2v^15", "A 2 -2c ", "A e m 2 ", "A e m 2 ", "Aem2 ", " ", A_FACE, 7 }, /* 191 */
+ { 39, "C2v^15", "B 2 -2c ", "B m e 2 ", "B m e 2 ", "Bme2 ", "ba-c ", PRIMITIVE, 7 }, /* 192 */
+ { 39, "C2v^15", "B -2c 2 ", "B 2 e m ", "B 2 e m ", "B2em ", "cab ", PRIMITIVE, 7 }, /* 193 */
+ { 39, "C2v^15", "C -2b 2 ", "C 2 m e ", "C 2 m e ", "C2me ", "-cba ", C_FACE, 7 }, /* 194 */
+ { 39, "C2v^15", "C -2b -2b ", "C m 2 e ", "C m 2 e ", "Cm2e ", "bca ", C_FACE, 7 }, /* 195 */
+ { 39, "C2v^15", "A -2c -2c ", "A e 2 m ", "A e 2 m ", "Ae2m ", "a-cb ", A_FACE, 7 }, /* 196 */
+ { 40, "C2v^16", "A 2 -2a ", "A m a 2 ", "A m a 2 ", "Ama2 ", " ", A_FACE, 7 }, /* 197 */
+ { 40, "C2v^16", "B 2 -2b ", "B b m 2 ", "B b m 2 ", "Bbm2 ", "ba-c ", PRIMITIVE, 7 }, /* 198 */
+ { 40, "C2v^16", "B -2b 2 ", "B 2 m b ", "B 2 m b ", "B2mb ", "cab ", PRIMITIVE, 7 }, /* 199 */
+ { 40, "C2v^16", "C -2c 2 ", "C 2 c m ", "C 2 c m ", "C2cm ", "-cba ", C_FACE, 7 }, /* 200 */
+ { 40, "C2v^16", "C -2c -2c ", "C c 2 m ", "C c 2 m ", "Cc2m ", "bca ", C_FACE, 7 }, /* 201 */
+ { 40, "C2v^16", "A -2a -2a ", "A m 2 a ", "A m 2 a ", "Am2a ", "a-cb ", A_FACE, 7 }, /* 202 */
+ { 41, "C2v^17", "A 2 -2ac ", "A e a 2 ", "A e a 2 ", "Aea2 ", " ", A_FACE, 7 }, /* 203 */
+ { 41, "C2v^17", "B 2 -2bc ", "B b e 2 ", "B b e 2 ", "Bbe2 ", "ba-c ", PRIMITIVE, 7 }, /* 204 */
+ { 41, "C2v^17", "B -2bc 2 ", "B 2 e b ", "B 2 e b ", "B2eb ", "cab ", PRIMITIVE, 7 }, /* 205 */
+ { 41, "C2v^17", "C -2bc 2 ", "C 2 c e ", "C 2 c e ", "C2ce ", "-cba ", C_FACE, 7 }, /* 206 */
+ { 41, "C2v^17", "C -2bc -2bc ", "C c 2 e ", "C c 2 e ", "Cc2e ", "bca ", C_FACE, 7 }, /* 207 */
+ { 41, "C2v^17", "A -2ac -2ac ", "A e 2 a ", "A e 2 a ", "Ae2a ", "a-cb ", A_FACE, 7 }, /* 208 */
+ { 42, "C2v^18", "F 2 -2 ", "F m m 2 ", "F m m 2 ", "Fmm2 ", " ", FACE, 7 }, /* 209 */
+ { 42, "C2v^18", "F -2 2 ", "F 2 m m ", "F 2 m m ", "F2mm ", "cab ", FACE, 7 }, /* 210 */
+ { 42, "C2v^18", "F -2 -2 ", "F m 2 m ", "F m 2 m ", "Fm2m ", "bca ", FACE, 7 }, /* 211 */
+ { 43, "C2v^19", "F 2 -2d ", "F d d 2 ", "F d d 2 ", "Fdd2 ", " ", FACE, 7 }, /* 212 */
+ { 43, "C2v^19", "F -2d 2 ", "F 2 d d ", "F 2 d d ", "F2dd ", "cab ", FACE, 7 }, /* 213 */
+ { 43, "C2v^19", "F -2d -2d ", "F d 2 d ", "F d 2 d ", "Fd2d ", "bca ", FACE, 7 }, /* 214 */
+ { 44, "C2v^20", "I 2 -2 ", "I m m 2 ", "I m m 2 ", "Imm2 ", " ", BODY, 7 }, /* 215 */
+ { 44, "C2v^20", "I -2 2 ", "I 2 m m ", "I 2 m m ", "I2mm ", "cab ", BODY, 7 }, /* 216 */
+ { 44, "C2v^20", "I -2 -2 ", "I m 2 m ", "I m 2 m ", "Im2m ", "bca ", BODY, 7 }, /* 217 */
+ { 45, "C2v^21", "I 2 -2c ", "I b a 2 ", "I b a 2 ", "Iba2 ", " ", BODY, 7 }, /* 218 */
+ { 45, "C2v^21", "I -2a 2 ", "I 2 c b ", "I 2 c b ", "I2cb ", "cab ", BODY, 7 }, /* 219 */
+ { 45, "C2v^21", "I -2b -2b ", "I c 2 a ", "I c 2 a ", "Ic2a ", "bca ", BODY, 7 }, /* 220 */
+ { 46, "C2v^22", "I 2 -2a ", "I m a 2 ", "I m a 2 ", "Ima2 ", " ", BODY, 7 }, /* 221 */
+ { 46, "C2v^22", "I 2 -2b ", "I b m 2 ", "I b m 2 ", "Ibm2 ", "ba-c ", BODY, 7 }, /* 222 */
+ { 46, "C2v^22", "I -2b 2 ", "I 2 m b ", "I 2 m b ", "I2mb ", "cab ", BODY, 7 }, /* 223 */
+ { 46, "C2v^22", "I -2c 2 ", "I 2 c m ", "I 2 c m ", "I2cm ", "-cba ", BODY, 7 }, /* 224 */
+ { 46, "C2v^22", "I -2c -2c ", "I c 2 m ", "I c 2 m ", "Ic2m ", "bca ", BODY, 7 }, /* 225 */
+ { 46, "C2v^22", "I -2a -2a ", "I m 2 a ", "I m 2 a ", "Im2a ", "a-cb ", BODY, 7 }, /* 226 */
+ { 47, "D2h^1 ", "-P 2 2 ", "P m m m ", "P 2/m 2/m 2/m ", "Pmmm ", " ", PRIMITIVE, 8 }, /* 227 */
+ { 48, "D2h^2 ", "P 2 2 -1n ", "P n n n ", "P 2/n 2/n 2/n ", "Pnnn ", "1 ", PRIMITIVE, 8 }, /* 228 */
+ { 48, "D2h^2 ", "-P 2ab 2bc ", "P n n n ", "P 2/n 2/n 2/n ", "Pnnn ", "2 ", PRIMITIVE, 8 }, /* 229 */
+ { 49, "D2h^3 ", "-P 2 2c ", "P c c m ", "P 2/c 2/c 2/m ", "Pccm ", " ", PRIMITIVE, 8 }, /* 230 */
+ { 49, "D2h^3 ", "-P 2a 2 ", "P m a a ", "P 2/m 2/a 2/a ", "Pmaa ", "cab ", PRIMITIVE, 8 }, /* 231 */
+ { 49, "D2h^3 ", "-P 2b 2b ", "P b m b ", "P 2/b 2/m 2/b ", "Pbmb ", "bca ", PRIMITIVE, 8 }, /* 232 */
+ { 50, "D2h^4 ", "P 2 2 -1ab ", "P b a n ", "P 2/b 2/a 2/n ", "Pban ", "1 ", PRIMITIVE, 8 }, /* 233 */
+ { 50, "D2h^4 ", "-P 2ab 2b ", "P b a n ", "P 2/b 2/a 2/n ", "Pban ", "2 ", PRIMITIVE, 8 }, /* 234 */
+ { 50, "D2h^4 ", "P 2 2 -1bc ", "P n c b ", "P 2/n 2/c 2/b ", "Pncb ", "1cab ", PRIMITIVE, 8 }, /* 235 */
+ { 50, "D2h^4 ", "-P 2b 2bc ", "P n c b ", "P 2/n 2/c 2/b ", "Pncb ", "2cab ", PRIMITIVE, 8 }, /* 236 */
+ { 50, "D2h^4 ", "P 2 2 -1ac ", "P c n a ", "P 2/c 2/n 2/a ", "Pcna ", "1bca ", PRIMITIVE, 8 }, /* 237 */
+ { 50, "D2h^4 ", "-P 2a 2c ", "P c n a ", "P 2/c 2/n 2/a ", "Pcna ", "2bca ", PRIMITIVE, 8 }, /* 238 */
+ { 51, "D2h^5 ", "-P 2a 2a ", "P m m a ", "P 2_1/m 2/m 2/a ", "Pmma ", " ", PRIMITIVE, 8 }, /* 239 */
+ { 51, "D2h^5 ", "-P 2b 2 ", "P m m b ", "P 2/m 2_1/m 2/b ", "Pmmb ", "ba-c ", PRIMITIVE, 8 }, /* 240 */
+ { 51, "D2h^5 ", "-P 2 2b ", "P b m m ", "P 2/b 2_1/m 2/m ", "Pbmm ", "cab ", PRIMITIVE, 8 }, /* 241 */
+ { 51, "D2h^5 ", "-P 2c 2c ", "P c m m ", "P 2/c 2/m 2_1/m ", "Pcmm ", "-cba ", PRIMITIVE, 8 }, /* 242 */
+ { 51, "D2h^5 ", "-P 2c 2 ", "P m c m ", "P 2/m 2/c 2_1/m ", "Pmcm ", "bca ", PRIMITIVE, 8 }, /* 243 */
+ { 51, "D2h^5 ", "-P 2 2a ", "P m a m ", "P 2_1/m 2/a 2/m ", "Pmam ", "a-cb ", PRIMITIVE, 8 }, /* 244 */
+ { 52, "D2h^6 ", "-P 2a 2bc ", "P n n a ", "P 2/n 2_1/n 2/a ", "Pnna ", " ", PRIMITIVE, 8 }, /* 245 */
+ { 52, "D2h^6 ", "-P 2b 2n ", "P n n b ", "P 2_1/n 2/n 2/b ", "Pnnb ", "ba-c ", PRIMITIVE, 8 }, /* 246 */
+ { 52, "D2h^6 ", "-P 2n 2b ", "P b n n ", "P 2/b 2/n 2_1/n ", "Pbnn ", "cab ", PRIMITIVE, 8 }, /* 247 */
+ { 52, "D2h^6 ", "-P 2ab 2c ", "P c n n ", "P 2/c 2_1/n 2/n ", "Pcnn ", "-cba ", PRIMITIVE, 8 }, /* 248 */
+ { 52, "D2h^6 ", "-P 2ab 2n ", "P n c n ", "P 2_1/n 2/c 2/n ", "Pncn ", "bca ", PRIMITIVE, 8 }, /* 249 */
+ { 52, "D2h^6 ", "-P 2n 2bc ", "P n a n ", "P 2/n 2/a 2_1/n ", "Pnan ", "a-cb ", PRIMITIVE, 8 }, /* 250 */
+ { 53, "D2h^7 ", "-P 2ac 2 ", "P m n a ", "P 2/m 2/n 2_1/a ", "Pmna ", " ", PRIMITIVE, 8 }, /* 251 */
+ { 53, "D2h^7 ", "-P 2bc 2bc ", "P n m b ", "P 2/n 2/m 2_1/b ", "Pnmb ", "ba-c ", PRIMITIVE, 8 }, /* 252 */
+ { 53, "D2h^7 ", "-P 2ab 2ab ", "P b m n ", "P 2_1/b 2/m 2/n ", "Pbmn ", "cab ", PRIMITIVE, 8 }, /* 253 */
+ { 53, "D2h^7 ", "-P 2 2ac ", "P c n m ", "P 2_1/c 2/n 2/m ", "Pcnm ", "-cba ", PRIMITIVE, 8 }, /* 254 */
+ { 53, "D2h^7 ", "-P 2 2bc ", "P n c m ", "P 2/n 2_1/c 2/m ", "Pncm ", "bca ", PRIMITIVE, 8 }, /* 255 */
+ { 53, "D2h^7 ", "-P 2ab 2 ", "P m a n ", "P 2/m 2_1/a 2/n ", "Pman ", "a-cb ", PRIMITIVE, 8 }, /* 256 */
+ { 54, "D2h^8 ", "-P 2a 2ac ", "P c c a ", "P 2_1/c 2/c 2/a ", "Pcca ", " ", PRIMITIVE, 8 }, /* 257 */
+ { 54, "D2h^8 ", "-P 2b 2c ", "P c c b ", "P 2/c 2_1/c 2/b ", "Pccb ", "ba-c ", PRIMITIVE, 8 }, /* 258 */
+ { 54, "D2h^8 ", "-P 2a 2b ", "P b a a ", "P 2/b 2_1/a 2/a ", "Pbaa ", "cab ", PRIMITIVE, 8 }, /* 259 */
+ { 54, "D2h^8 ", "-P 2ac 2c ", "P c a a ", "P 2/c 2/a 2_1/a ", "Pcaa ", "-cba ", PRIMITIVE, 8 }, /* 260 */
+ { 54, "D2h^8 ", "-P 2bc 2b ", "P b c b ", "P 2/b 2/c 2_1/b ", "Pbcb ", "bca ", PRIMITIVE, 8 }, /* 261 */
+ { 54, "D2h^8 ", "-P 2b 2ab ", "P b a b ", "P 2_1/b 2/a 2/b ", "Pbab ", "a-cb ", PRIMITIVE, 8 }, /* 262 */
+ { 55, "D2h^9 ", "-P 2 2ab ", "P b a m ", "P 2_1/b 2_1/a 2/m ", "Pbam ", " ", PRIMITIVE, 8 }, /* 263 */
+ { 55, "D2h^9 ", "-P 2bc 2 ", "P m c b ", "P 2/m 2_1/c 2_1/b ", "Pmcb ", "cab ", PRIMITIVE, 8 }, /* 264 */
+ { 55, "D2h^9 ", "-P 2ac 2ac ", "P c m a ", "P 2_1/c 2/m 2_1/a ", "Pcma ", "bca ", PRIMITIVE, 8 }, /* 265 */
+ { 56, "D2h^10", "-P 2ab 2ac ", "P c c n ", "P 2_1/c 2_1/c 2/n ", "Pccn ", " ", PRIMITIVE, 8 }, /* 266 */
+ { 56, "D2h^10", "-P 2ac 2bc ", "P n a a ", "P 2/n 2_1/a 2_1/a ", "Pnaa ", "cab ", PRIMITIVE, 8 }, /* 267 */
+ { 56, "D2h^10", "-P 2bc 2ab ", "P b n b ", "P 2_1/b 2/n 2_1/b ", "Pbnb ", "bca ", PRIMITIVE, 8 }, /* 268 */
+ { 57, "D2h^11", "-P 2c 2b ", "P b c m ", "P 2/b 2_1/c 2_1/m ", "Pbcm ", " ", PRIMITIVE, 8 }, /* 269 */
+ { 57, "D2h^11", "-P 2c 2ac ", "P c a m ", "P 2_1/c 2/a 2_1/m ", "Pcam ", "ba-c ", PRIMITIVE, 8 }, /* 270 */
+ { 57, "D2h^11", "-P 2ac 2a ", "P m c a ", "P 2_1/m 2/c 2_1/a ", "Pmca ", "cab ", PRIMITIVE, 8 }, /* 271 */
+ { 57, "D2h^11", "-P 2b 2a ", "P m a b ", "P 2_1/m 2_1/a 2/b ", "Pmab ", "-cba ", PRIMITIVE, 8 }, /* 272 */
+ { 57, "D2h^11", "-P 2a 2ab ", "P b m a ", "P 2_1/b 2_1/m 2/a ", "Pbma ", "bca ", PRIMITIVE, 8 }, /* 273 */
+ { 57, "D2h^11", "-P 2bc 2c ", "P c m b ", "P 2/c 2_1/m 2_1/b ", "Pcmb ", "a-cb ", PRIMITIVE, 8 }, /* 274 */
+ { 58, "D2h^12", "-P 2 2n ", "P n n m ", "P 2_1/n 2_1/n 2/m ", "Pnnm ", " ", PRIMITIVE, 8 }, /* 275 */
+ { 58, "D2h^12", "-P 2n 2 ", "P m n n ", "P 2/m 2_1/n 2_1/n ", "Pmnn ", "cab ", PRIMITIVE, 8 }, /* 276 */
+ { 58, "D2h^12", "-P 2n 2n ", "P n m n ", "P 2_1/n 2/m 2_1/n ", "Pnmn ", "bca ", PRIMITIVE, 8 }, /* 277 */
+ { 59, "D2h^13", "P 2 2ab -1ab ", "P m m n ", "P 2_1/m 2_1/m 2/n ", "Pmmn ", "1 ", PRIMITIVE, 8 }, /* 278 */
+ { 59, "D2h^13", "-P 2ab 2a ", "P m m n ", "P 2_1/m 2_1/m 2/n ", "Pmmn ", "2 ", PRIMITIVE, 8 }, /* 279 */
+ { 59, "D2h^13", "P 2bc 2 -1bc ", "P n m m ", "P 2/n 2_1/m 2_1/m ", "Pnmm ", "1cab ", PRIMITIVE, 8 }, /* 280 */
+ { 59, "D2h^13", "-P 2c 2bc ", "P n m m ", "P 2/n 2_1/m 2_1/m ", "Pnmm ", "2cab ", PRIMITIVE, 8 }, /* 281 */
+ { 59, "D2h^13", "P 2ac 2ac -1ac ", "P m n m ", "P 2_1/m 2/n 2_1/m ", "Pmnm ", "1bca ", PRIMITIVE, 8 }, /* 282 */
+ { 59, "D2h^13", "-P 2c 2a ", "P m n m ", "P 2_1/m 2/n 2_1/m ", "Pmnm ", "2bca ", PRIMITIVE, 8 }, /* 283 */
+ { 60, "D2h^14", "-P 2n 2ab ", "P b c n ", "P 2_1/b 2/c 2_1/n ", "Pbcn ", " ", PRIMITIVE, 8 }, /* 284 */
+ { 60, "D2h^14", "-P 2n 2c ", "P c a n ", "P 2/c 2_1/a 2_1/n ", "Pcan ", "ba-c ", PRIMITIVE, 8 }, /* 285 */
+ { 60, "D2h^14", "-P 2a 2n ", "P n c a ", "P 2_1/n 2_1/c 2/a ", "Pnca ", "cab ", PRIMITIVE, 8 }, /* 286 */
+ { 60, "D2h^14", "-P 2bc 2n ", "P n a b ", "P 2_1/n 2/a 2_1/b ", "Pnab ", "-cba ", PRIMITIVE, 8 }, /* 287 */
+ { 60, "D2h^14", "-P 2ac 2b ", "P b n a ", "P 2/b 2_1/n 2_1/a ", "Pbna ", "bca ", PRIMITIVE, 8 }, /* 288 */
+ { 60, "D2h^14", "-P 2b 2ac ", "P c n b ", "P 2_1/c 2_1/n 2/b ", "Pcnb ", "a-cb ", PRIMITIVE, 8 }, /* 289 */
+ { 61, "D2h^15", "-P 2ac 2ab ", "P b c a ", "P 2_1/b 2_1/c 2_1/a", "Pbca ", " ", PRIMITIVE, 8 }, /* 290 */
+ { 61, "D2h^15", "-P 2bc 2ac ", "P c a b ", "P 2_1/c 2_1/a 2_1/b", "Pcab ", "ba-c ", PRIMITIVE, 8 }, /* 291 */
+ { 62, "D2h^16", "-P 2ac 2n ", "P n m a ", "P 2_1/n 2_1/m 2_1/a", "Pnma ", " ", PRIMITIVE, 8 }, /* 292 */
+ { 62, "D2h^16", "-P 2bc 2a ", "P m n b ", "P 2_1/m 2_1/n 2_1/b", "Pmnb ", "ba-c ", PRIMITIVE, 8 }, /* 293 */
+ { 62, "D2h^16", "-P 2c 2ab ", "P b n m ", "P 2_1/b 2_1/n 2_1/m", "Pbnm ", "cab ", PRIMITIVE, 8 }, /* 294 */
+ { 62, "D2h^16", "-P 2n 2ac ", "P c m n ", "P 2_1/c 2_1/m 2_1/n", "Pcmn ", "-cba ", PRIMITIVE, 8 }, /* 295 */
+ { 62, "D2h^16", "-P 2n 2a ", "P m c n ", "P 2_1/m 2_1/c 2_1/n", "Pmcn ", "bca ", PRIMITIVE, 8 }, /* 296 */
+ { 62, "D2h^16", "-P 2c 2n ", "P n a m ", "P 2_1/n 2_1/a 2_1/m", "Pnam ", "a-cb ", PRIMITIVE, 8 }, /* 297 */
+ { 63, "D2h^17", "-C 2c 2 ", "C m c m ", "C 2/m 2/c 2_1/m ", "Cmcm ", " ", C_FACE, 8 }, /* 298 */
+ { 63, "D2h^17", "-C 2c 2c ", "C c m m ", "C 2/c 2/m 2_1/m ", "Ccmm ", "ba-c ", C_FACE, 8 }, /* 299 */
+ { 63, "D2h^17", "-A 2a 2a ", "A m m a ", "A 2_1/m 2/m 2/a ", "Amma ", "cab ", A_FACE, 8 }, /* 300 */
+ { 63, "D2h^17", "-A 2 2a ", "A m a m ", "A 2_1/m 2/a 2/m ", "Amam ", "-cba ", A_FACE, 8 }, /* 301 */
+ { 63, "D2h^17", "-B 2 2b ", "B b m m ", "B 2/b 2_1/m 2/m ", "Bbmm ", "bca ", PRIMITIVE, 8 }, /* 302 */
+ { 63, "D2h^17", "-B 2b 2 ", "B m m b ", "B 2/m 2_1/m 2/b ", "Bmmb ", "a-cb ", PRIMITIVE, 8 }, /* 303 */
+ { 64, "D2h^18", "-C 2bc 2 ", "C m c e ", "C 2/m 2/c 2_1/e ", "Cmce ", " ", C_FACE, 8 }, /* 304 */
+ { 64, "D2h^18", "-C 2bc 2bc ", "C c m e ", "C 2/c 2/m 2_1/e ", "Ccme ", "ba-c ", C_FACE, 8 }, /* 305 */
+ { 64, "D2h^18", "-A 2ac 2ac ", "A e m a ", "A 2_1/e 2/m 2/a ", "Aema ", "cab ", A_FACE, 8 }, /* 306 */
+ { 64, "D2h^18", "-A 2 2ac ", "A e a m ", "A 2_1/e 2/a 2/m ", "Aeam ", "-cba ", A_FACE, 8 }, /* 307 */
+ { 64, "D2h^18", "-B 2 2bc ", "B b e m ", "B 2/b 2_1/e 2/m ", "Bbem ", "bca ", PRIMITIVE, 8 }, /* 308 */
+ { 64, "D2h^18", "-B 2bc 2 ", "B m e b ", "B 2/m 2_1/e 2/b ", "Bmeb ", "a-cb ", PRIMITIVE, 8 }, /* 309 */
+ { 65, "D2h^19", "-C 2 2 ", "C m m m ", "C 2/m 2/m 2/m ", "Cmmm ", " ", C_FACE, 8 }, /* 310 */
+ { 65, "D2h^19", "-A 2 2 ", "A m m m ", "A 2/m 2/m 2/m ", "Ammm ", "cab ", A_FACE, 8 }, /* 311 */
+ { 65, "D2h^19", "-B 2 2 ", "B m m m ", "B 2/m 2/m 2/m ", "Bmmm ", "bca ", PRIMITIVE, 8 }, /* 312 */
+ { 66, "D2h^20", "-C 2 2c ", "C c c m ", "C 2/c 2/c 2/m ", "Cccm ", " ", C_FACE, 8 }, /* 313 */
+ { 66, "D2h^20", "-A 2a 2 ", "A m a a ", "A 2/m 2/a 2/a ", "Amaa ", "cab ", A_FACE, 8 }, /* 314 */
+ { 66, "D2h^20", "-B 2b 2b ", "B b m b ", "B 2/b 2/m 2/b ", "Bbmb ", "bca ", PRIMITIVE, 8 }, /* 315 */
+ { 67, "D2h^21", "-C 2b 2 ", "C m m e ", "C 2/m 2/m 2/e ", "Cmme ", " ", C_FACE, 8 }, /* 316 */
+ { 67, "D2h^21", "-C 2b 2b ", "C m m e ", "C 2/m 2/m 2/e ", "Cmme ", "ba-c ", C_FACE, 8 }, /* 317 */
+ { 67, "D2h^21", "-A 2c 2c ", "A e m m ", "A 2/e 2/m 2/m ", "Aemm ", "cab ", A_FACE, 8 }, /* 318 */
+ { 67, "D2h^21", "-A 2 2c ", "A e m m ", "A 2/e 2/m 2/m ", "Aemm ", "-cba ", A_FACE, 8 }, /* 319 */
+ { 67, "D2h^21", "-B 2 2c ", "B m e m ", "B 2/m 2/e 2/m ", "Bmem ", "bca ", PRIMITIVE, 8 }, /* 320 */
+ { 67, "D2h^21", "-B 2c 2 ", "B m e m ", "B 2/m 2/e 2/m ", "Bmem ", "a-cb ", PRIMITIVE, 8 }, /* 321 */
+ { 68, "D2h^22", "C 2 2 -1bc ", "C c c e ", "C 2/c 2/c 2/e ", "Ccce ", "1 ", C_FACE, 8 }, /* 322 */
+ { 68, "D2h^22", "-C 2b 2bc ", "C c c e ", "C 2/c 2/c 2/e ", "Ccce ", "2 ", C_FACE, 8 }, /* 323 */
+ { 68, "D2h^22", "C 2 2 -1bc ", "C c c e ", "C 2/c 2/c 2/e ", "Ccce ", "1ba-c", C_FACE, 8 }, /* 324 */
+ { 68, "D2h^22", "-C 2b 2c ", "C c c e ", "C 2/c 2/c 2/e ", "Ccce ", "2ba-c", C_FACE, 8 }, /* 325 */
+ { 68, "D2h^22", "A 2 2 -1ac ", "A e a a ", "A 2/e 2/a 2/a ", "Aeaa ", "1cab ", A_FACE, 8 }, /* 326 */
+ { 68, "D2h^22", "-A 2a 2c ", "A e a a ", "A 2/e 2/a 2/a ", "Aeaa ", "2cab ", A_FACE, 8 }, /* 327 */
+ { 68, "D2h^22", "A 2 2 -1ac ", "A e a a ", "A 2/e 2/a 2/a ", "Aeaa ", "1-cba", A_FACE, 8 }, /* 328 */
+ { 68, "D2h^22", "-A 2ac 2c ", "A e a a ", "A 2/e 2/a 2/a ", "Aeaa ", "2-cba", A_FACE, 8 }, /* 329 */
+ { 68, "D2h^22", "B 2 2 -1bc ", "B b e b ", "B 2/b 2/e 2/b ", "Bbeb ", "1bca ", PRIMITIVE, 8 }, /* 330 */
+ { 68, "D2h^22", "-B 2bc 2b ", "B b c b ", "B 2/b 2/e 2/b ", "Bbcb ", "2bca ", PRIMITIVE, 8 }, /* 331 */
+ { 68, "D2h^22", "B 2 2 -1bc ", "B b e b ", "B 2/b 2/e 2/b ", "Bbeb ", "1a-cb", PRIMITIVE, 8 }, /* 332 */
+ { 68, "D2h^22", "-B 2b 2bc ", "B b e b ", "B 2/b 2/e 2/b ", "Bbeb ", "2a-cb", PRIMITIVE, 8 }, /* 333 */
+ { 69, "D2h^23", "-F 2 2 ", "F m m m ", "F 2/m 2/m 2/m ", "Fmmm ", " ", FACE, 8 }, /* 334 */
+ { 70, "D2h^24", "F 2 2 -1d ", "F d d d ", "F 2/d 2/d 2/d ", "Fddd ", "1 ", FACE, 8 }, /* 335 */
+ { 70, "D2h^24", "-F 2uv 2vw ", "F d d d ", "F 2/d 2/d 2/d ", "Fddd ", "2 ", FACE, 8 }, /* 336 */
+ { 71, "D2h^25", "-I 2 2 ", "I m m m ", "I 2/m 2/m 2/m ", "Immm ", " ", BODY, 8 }, /* 337 */
+ { 72, "D2h^26", "-I 2 2c ", "I b a m ", "I 2/b 2/a 2/m ", "Ibam ", " ", BODY, 8 }, /* 338 */
+ { 72, "D2h^26", "-I 2a 2 ", "I m c b ", "I 2/m 2/c 2/b ", "Imcb ", "cab ", BODY, 8 }, /* 339 */
+ { 72, "D2h^26", "-I 2b 2b ", "I c m a ", "I 2/c 2/m 2/a ", "Icma ", "bca ", BODY, 8 }, /* 340 */
+ { 73, "D2h^27", "-I 2b 2c ", "I b c a ", "I 2/b 2/c 2/a ", "Ibca ", " ", BODY, 8 }, /* 341 */
+ { 73, "D2h^27", "-I 2a 2b ", "I c a b ", "I 2/c 2/a 2/b ", "Icab ", "ba-c ", BODY, 8 }, /* 342 */
+ { 74, "D2h^28", "-I 2b 2 ", "I m m a ", "I 2/m 2/m 2/a ", "Imma ", " ", BODY, 8 }, /* 343 */
+ { 74, "D2h^28", "-I 2a 2a ", "I m m b ", "I 2/m 2/m 2/b ", "Immb ", "ba-c ", BODY, 8 }, /* 344 */
+ { 74, "D2h^28", "-I 2c 2c ", "I b m m ", "I 2/b 2/m 2/m ", "Ibmm ", "cab ", BODY, 8 }, /* 345 */
+ { 74, "D2h^28", "-I 2 2b ", "I c m m ", "I 2/c 2/m 2/m ", "Icmm ", "-cba ", BODY, 8 }, /* 346 */
+ { 74, "D2h^28", "-I 2 2a ", "I m c m ", "I 2/m 2/c 2/m ", "Imcm ", "bca ", BODY, 8 }, /* 347 */
+ { 74, "D2h^28", "-I 2c 2 ", "I m a m ", "I 2/m 2/a 2/m ", "Imam ", "a-cb ", BODY, 8 }, /* 348 */
+ { 75, "C4^1 ", "P 4 ", "P 4 ", "P 4 ", "P4 ", " ", PRIMITIVE, 9 }, /* 349 */
+ { 76, "C4^2 ", "P 4w ", "P 4_1 ", "P 4_1 ", "P4_1 ", " ", PRIMITIVE, 9 }, /* 350 */
+ { 77, "C4^3 ", "P 4c ", "P 4_2 ", "P 4_2 ", "P4_2 ", " ", PRIMITIVE, 9 }, /* 351 */
+ { 78, "C4^4 ", "P 4cw ", "P 4_3 ", "P 4_3 ", "P4_3 ", " ", PRIMITIVE, 9 }, /* 352 */
+ { 79, "C4^5 ", "I 4 ", "I 4 ", "I 4 ", "I4 ", " ", BODY, 9 }, /* 353 */
+ { 80, "C4^6 ", "I 4bw ", "I 4_1 ", "I 4_1 ", "I4_1 ", " ", BODY, 9 }, /* 354 */
+ { 81, "S4^1 ", "P -4 ", "P -4 ", "P -4 ", "P-4 ", " ", PRIMITIVE, 10 }, /* 355 */
+ { 82, "S4^2 ", "I -4 ", "I -4 ", "I -4 ", "I-4 ", " ", BODY, 10 }, /* 356 */
+ { 83, "C4h^1 ", "-P 4 ", "P 4/m ", "P 4/m ", "P4/m ", " ", PRIMITIVE, 11 }, /* 357 */
+ { 84, "C4h^2 ", "-P 4c ", "P 4_2/m ", "P 4_2/m ", "P4_2/m ", " ", PRIMITIVE, 11 }, /* 358 */
+ { 85, "C4h^3 ", "P 4ab -1ab ", "P 4/n ", "P 4/n ", "P4/n ", "1 ", PRIMITIVE, 11 }, /* 359 */
+ { 85, "C4h^3 ", "-P 4a ", "P 4/n ", "P 4/n ", "P4/n ", "2 ", PRIMITIVE, 11 }, /* 360 */
+ { 86, "C4h^4 ", "P 4n -1n ", "P 4_2/n ", "P 4_2/n ", "P4_2/n ", "1 ", PRIMITIVE, 11 }, /* 361 */
+ { 86, "C4h^4 ", "-P 4bc ", "P 4_2/n ", "P 4_2/n ", "P4_2/n ", "2 ", PRIMITIVE, 11 }, /* 362 */
+ { 87, "C4h^5 ", "-I 4 ", "I 4/m ", "I 4/m ", "I4/m ", " ", BODY, 11 }, /* 363 */
+ { 88, "C4h^6 ", "I 4bw -1bw ", "I 4_1/a ", "I 4_1/a ", "I4_1/a ", "1 ", BODY, 11 }, /* 364 */
+ { 88, "C4h^6 ", "-I 4ad ", "I 4_1/a ", "I 4_1/a ", "I4_1/a ", "2 ", BODY, 11 }, /* 365 */
+ { 89, "D4^1 ", "P 4 2 ", "P 4 2 2 ", "P 4 2 2 ", "P422 ", " ", PRIMITIVE, 12 }, /* 366 */
+ { 90, "D4^2 ", "P 4ab 2ab ", "P 4 2_1 2 ", "P 4 2_1 2 ", "P42_12 ", " ", PRIMITIVE, 12 }, /* 367 */
+ { 91, "D4^3 ", "P 4w 2c ", "P 4_1 2 2 ", "P 4_1 2 2 ", "P4_122 ", " ", PRIMITIVE, 12 }, /* 368 */
+ { 92, "D4^4 ", "P 4abw 2nw ", "P 4_1 2_1 2 ", "P 4_1 2_1 2 ", "P4_12_12 ", " ", PRIMITIVE, 12 }, /* 369 */
+ { 93, "D4^5 ", "P 4c 2 ", "P 4_2 2 2 ", "P 4_2 2 2 ", "P4_222 ", " ", PRIMITIVE, 12 }, /* 370 */
+ { 94, "D4^6 ", "P 4n 2n ", "P 4_2 2_1 2 ", "P 4_2 2_1 2 ", "P4_22_12 ", " ", PRIMITIVE, 12 }, /* 371 */
+ { 95, "D4^7 ", "P 4cw 2c ", "P 4_3 2 2 ", "P 4_3 2 2 ", "P4_322 ", " ", PRIMITIVE, 12 }, /* 372 */
+ { 96, "D4^8 ", "P 4nw 2abw ", "P 4_3 2_1 2 ", "P 4_3 2_1 2 ", "P4_32_12 ", " ", PRIMITIVE, 12 }, /* 373 */
+ { 97, "D4^9 ", "I 4 2 ", "I 4 2 2 ", "I 4 2 2 ", "I422 ", " ", BODY, 12 }, /* 374 */
+ { 98, "D4^10 ", "I 4bw 2bw ", "I 4_1 2 2 ", "I 4_1 2 2 ", "I4_122 ", " ", BODY, 12 }, /* 375 */
+ { 99, "C4v^1 ", "P 4 -2 ", "P 4 m m ", "P 4 m m ", "P4mm ", " ", PRIMITIVE, 13 }, /* 376 */
+ {100, "C4v^2 ", "P 4 -2ab ", "P 4 b m ", "P 4 b m ", "P4bm ", " ", PRIMITIVE, 13 }, /* 377 */
+ {101, "C4v^3 ", "P 4c -2c ", "P 4_2 c m ", "P 4_2 c m ", "P4_2cm ", " ", PRIMITIVE, 13 }, /* 378 */
+ {102, "C4v^4 ", "P 4n -2n ", "P 4_2 n m ", "P 4_2 n m ", "P4_2nm ", " ", PRIMITIVE, 13 }, /* 379 */
+ {103, "C4v^5 ", "P 4 -2c ", "P 4 c c ", "P 4 c c ", "P4cc ", " ", PRIMITIVE, 13 }, /* 380 */
+ {104, "C4v^6 ", "P 4 -2n ", "P 4 n c ", "P 4 n c ", "P4nc ", " ", PRIMITIVE, 13 }, /* 381 */
+ {105, "C4v^7 ", "P 4c -2 ", "P 4_2 m c ", "P 4_2 m c ", "P4_2mc ", " ", PRIMITIVE, 13 }, /* 382 */
+ {106, "C4v^8 ", "P 4c -2ab ", "P 4_2 b c ", "P 4_2 b c ", "P4_2bc ", " ", PRIMITIVE, 13 }, /* 383 */
+ {107, "C4v^9 ", "I 4 -2 ", "I 4 m m ", "I 4 m m ", "I4mm ", " ", BODY, 13 }, /* 384 */
+ {108, "C4v^10", "I 4 -2c ", "I 4 c m ", "I 4 c m ", "I4cm ", " ", BODY, 13 }, /* 385 */
+ {109, "C4v^11", "I 4bw -2 ", "I 4_1 m d ", "I 4_1 m d ", "I4_1md ", " ", BODY, 13 }, /* 386 */
+ {110, "C4v^12", "I 4bw -2c ", "I 4_1 c d ", "I 4_1 c d ", "I4_1cd ", " ", BODY, 13 }, /* 387 */
+ {111, "D2d^1 ", "P -4 2 ", "P -4 2 m ", "P -4 2 m ", "P-42m ", " ", PRIMITIVE, 14 }, /* 388 */
+ {112, "D2d^2 ", "P -4 2c ", "P -4 2 c ", "P -4 2 c ", "P-42c ", " ", PRIMITIVE, 14 }, /* 389 */
+ {113, "D2d^3 ", "P -4 2ab ", "P -4 2_1 m ", "P -4 2_1 m ", "P-42_1m ", " ", PRIMITIVE, 14 }, /* 390 */
+ {114, "D2d^4 ", "P -4 2n ", "P -4 2_1 c ", "P -4 2_1 c ", "P-42_1c ", " ", PRIMITIVE, 14 }, /* 391 */
+ {115, "D2d^5 ", "P -4 -2 ", "P -4 m 2 ", "P -4 m 2 ", "P-4m2 ", " ", PRIMITIVE, 14 }, /* 392 */
+ {116, "D2d^6 ", "P -4 -2c ", "P -4 c 2 ", "P -4 c 2 ", "P-4c2 ", " ", PRIMITIVE, 14 }, /* 393 */
+ {117, "D2d^7 ", "P -4 -2ab ", "P -4 b 2 ", "P -4 b 2 ", "P-4b2 ", " ", PRIMITIVE, 14 }, /* 394 */
+ {118, "D2d^8 ", "P -4 -2n ", "P -4 n 2 ", "P -4 n 2 ", "P-4n2 ", " ", PRIMITIVE, 14 }, /* 395 */
+ {119, "D2d^9 ", "I -4 -2 ", "I -4 m 2 ", "I -4 m 2 ", "I-4m2 ", " ", BODY, 14 }, /* 396 */
+ {120, "D2d^10", "I -4 -2c ", "I -4 c 2 ", "I -4 c 2 ", "I-4c2 ", " ", BODY, 14 }, /* 397 */
+ {121, "D2d^11", "I -4 2 ", "I -4 2 m ", "I -4 2 m ", "I-42m ", " ", BODY, 14 }, /* 398 */
+ {122, "D2d^12", "I -4 2bw ", "I -4 2 d ", "I -4 2 d ", "I-42d ", " ", BODY, 14 }, /* 399 */
+ {123, "D4h^1 ", "-P 4 2 ", "P 4/m m m ", "P 4/m 2/m 2/m ", "P4/mmm ", " ", PRIMITIVE, 15 }, /* 400 */
+ {124, "D4h^2 ", "-P 4 2c ", "P 4/m c c ", "P 4/m 2/c 2/c ", "P4/mcc ", " ", PRIMITIVE, 15 }, /* 401 */
+ {125, "D4h^3 ", "P 4 2 -1ab ", "P 4/n b m ", "P 4/n 2/b 2/m ", "P4/nbm ", "1 ", PRIMITIVE, 15 }, /* 402 */
+ {125, "D4h^3 ", "-P 4a 2b ", "P 4/n b m ", "P 4/n 2/b 2/m ", "P4/nbm ", "2 ", PRIMITIVE, 15 }, /* 403 */
+ {126, "D4h^4 ", "P 4 2 -1n ", "P 4/n n c ", "P 4/n 2/n 2/c ", "P4/nnc ", "1 ", PRIMITIVE, 15 }, /* 404 */
+ {126, "D4h^4 ", "-P 4a 2bc ", "P 4/n n c ", "P 4/n 2/n 2/c ", "P4/nnc ", "2 ", PRIMITIVE, 15 }, /* 405 */
+ {127, "D4h^5 ", "-P 4 2ab ", "P 4/m b m ", "P 4/m 2_1/b m ", "P4/mbm ", " ", PRIMITIVE, 15 }, /* 406 */
+ {128, "D4h^6 ", "-P 4 2n ", "P 4/m n c ", "P 4/m 2_1/n c ", "P4/mnc ", " ", PRIMITIVE, 15 }, /* 407 */
+ {129, "D4h^7 ", "P 4ab 2ab -1ab ", "P 4/n m m ", "P 4/n 2_1/m m ", "P4/nmm ", "1 ", PRIMITIVE, 15 }, /* 408 */
+ {129, "D4h^7 ", "-P 4a 2a ", "P 4/n m m ", "P 4/n 2_1/m m ", "P4/nmm ", "2 ", PRIMITIVE, 15 }, /* 409 */
+ {130, "D4h^8 ", "P 4ab 2n -1ab ", "P 4/n c c ", "P 4/n 2_1/c c ", "P4/ncc ", "1 ", PRIMITIVE, 15 }, /* 410 */
+ {130, "D4h^8 ", "-P 4a 2ac ", "P 4/n c c ", "P 4/n 2_1/c c ", "P4/ncc ", "2 ", PRIMITIVE, 15 }, /* 411 */
+ {131, "D4h^9 ", "-P 4c 2 ", "P 4_2/m m c ", "P 4_2/m 2/m 2/c ", "P4_2/mmc ", " ", PRIMITIVE, 15 }, /* 412 */
+ {132, "D4h^10", "-P 4c 2c ", "P 4_2/m c m ", "P 4_2/m 2/c 2/m ", "P4_2/mcm ", " ", PRIMITIVE, 15 }, /* 413 */
+ {133, "D4h^11", "P 4n 2c -1n ", "P 4_2/n b c ", "P 4_2/n 2/b 2/c ", "P4_2/nbc ", "1 ", PRIMITIVE, 15 }, /* 414 */
+ {133, "D4h^11", "-P 4ac 2b ", "P 4_2/n b c ", "P 4_2/n 2/b 2/c ", "P4_2/nbc ", "2 ", PRIMITIVE, 15 }, /* 415 */
+ {134, "D4h^12", "P 4n 2 -1n ", "P 4_2/n n m ", "P 4_2/n 2/n 2/m ", "P4_2/nnm ", "1 ", PRIMITIVE, 15 }, /* 416 */
+ {134, "D4h^12", "-P 4ac 2bc ", "P 4_2/n n m ", "P 4_2/n 2/n 2/m ", "P4_2/nnm ", "2 ", PRIMITIVE, 15 }, /* 417 */
+ {135, "D4h^13", "-P 4c 2ab ", "P 4_2/m b c ", "P 4_2/m 2_1/b 2/c ", "P4_2/mbc ", " ", PRIMITIVE, 15 }, /* 418 */
+ {136, "D4h^14", "-P 4n 2n ", "P 4_2/m n m ", "P 4_2/m 2_1/n 2/m ", "P4_2/mnm ", " ", PRIMITIVE, 15 }, /* 419 */
+ {137, "D4h^15", "P 4n 2n -1n ", "P 4_2/n m c ", "P 4_2/n 2_1/m 2/c ", "P4_2/nmc ", "1 ", PRIMITIVE, 15 }, /* 420 */
+ {137, "D4h^15", "-P 4ac 2a ", "P 4_2/n m c ", "P 4_2/n 2_1/m 2/c ", "P4_2/nmc ", "2 ", PRIMITIVE, 15 }, /* 421 */
+ {138, "D4h^16", "P 4n 2ab -1n ", "P 4_2/n c m ", "P 4_2/n 2_1/c 2/m ", "P4_2/ncm ", "1 ", PRIMITIVE, 15 }, /* 422 */
+ {138, "D4h^16", "-P 4ac 2ac ", "P 4_2/n c m ", "P 4_2/n 2_1/c 2/m ", "P4_2/ncm ", "2 ", PRIMITIVE, 15 }, /* 423 */
+ {139, "D4h^17", "-I 4 2 ", "I 4/m m m ", "I 4/m 2/m 2/m ", "I4/mmm ", " ", BODY, 15 }, /* 424 */
+ {140, "D4h^18", "-I 4 2c ", "I 4/m c m ", "I 4/m 2/c 2/m ", "I4/mcm ", " ", BODY, 15 }, /* 425 */
+ {141, "D4h^19", "I 4bw 2bw -1bw ", "I 4_1/a m d ", "I 4_1/a 2/m 2/d ", "I4_1/amd ", "1 ", BODY, 15 }, /* 426 */
+ {141, "D4h^19", "-I 4bd 2 ", "I 4_1/a m d ", "I 4_1/a 2/m 2/d ", "I4_1/amd ", "2 ", BODY, 15 }, /* 427 */
+ {142, "D4h^20", "I 4bw 2aw -1bw ", "I 4_1/a c d ", "I 4_1/a 2/c 2/d ", "I4_1/acd ", "1 ", BODY, 15 }, /* 428 */
+ {142, "D4h^20", "-I 4bd 2c ", "I 4_1/a c d ", "I 4_1/a 2/c 2/d ", "I4_1/acd ", "2 ", BODY, 15 }, /* 429 */
+ {143, "C3^1 ", "P 3 ", "P 3 ", "P 3 ", "P3 ", " ", PRIMITIVE, 16 }, /* 430 */
+ {144, "C3^2 ", "P 31 ", "P 3_1 ", "P 3_1 ", "P3_1 ", " ", PRIMITIVE, 16 }, /* 431 */
+ {145, "C3^3 ", "P 32 ", "P 3_2 ", "P 3_2 ", "P3_2 ", " ", PRIMITIVE, 16 }, /* 432 */
+ {146, "C3^4 ", "R 3 ", "R 3 ", "R 3 ", "R3 ", "H ", R_CENTER, 16 }, /* 433 */
+ {146, "C3^4 ", "P 3* ", "R 3 ", "R 3 ", "R3 ", "R ", PRIMITIVE, 16 }, /* 434 */
+ {147, "C3i^1 ", "-P 3 ", "P -3 ", "P -3 ", "P-3 ", " ", PRIMITIVE, 17 }, /* 435 */
+ {148, "C3i^2 ", "-R 3 ", "R -3 ", "R -3 ", "R-3 ", "H ", R_CENTER, 17 }, /* 436 */
+ {148, "C3i^2 ", "-P 3* ", "R -3 ", "R -3 ", "R-3 ", "R ", PRIMITIVE, 17 }, /* 437 */
+ {149, "D3^1 ", "P 3 2 ", "P 3 1 2 ", "P 3 1 2 ", "P312 ", " ", PRIMITIVE, 18 }, /* 438 */
+ {150, "D3^2 ", "P 3 2= ", "P 3 2 1 ", "P 3 2 1 ", "P321 ", " ", PRIMITIVE, 18 }, /* 439 */
+ {151, "D3^3 ", "P 31 2c (0 0 1) ", "P 3_1 1 2 ", "P 3_1 1 2 ", "P3_112 ", " ", PRIMITIVE, 18 }, /* 440 */
+ {152, "D3^4 ", "P 31 2= ", "P 3_1 2 1 ", "P 3_1 2 1 ", "P3_121 ", " ", PRIMITIVE, 18 }, /* 441 */
+ {153, "D3^5 ", "P 32 2c (0 0 -1)", "P 3_2 1 2 ", "P 3_2 1 2 ", "P3_212 ", " ", PRIMITIVE, 18 }, /* 442 */
+ {154, "D3^6 ", "P 32 2= ", "P 3_2 2 1 ", "P 3_2 2 1 ", "P3_221 ", " ", PRIMITIVE, 18 }, /* 443 */
+ {155, "D3^7 ", "R 3 2= ", "R 3 2 ", "R 3 2 ", "R32 ", "H ", R_CENTER, 18 }, /* 444 */
+ {155, "D3^7 ", "P 3* 2 ", "R 3 2 ", "R 3 2 ", "R32 ", "R ", PRIMITIVE, 18 }, /* 445 */
+ {156, "C3v^1 ", "P 3 -2= ", "P 3 m 1 ", "P 3 m 1 ", "P3m1 ", " ", PRIMITIVE, 19 }, /* 446 */
+ {157, "C3v^2 ", "P 3 -2 ", "P 3 1 m ", "P 3 1 m ", "P31m ", " ", PRIMITIVE, 19 }, /* 447 */
+ {158, "C3v^3 ", "P 3 -2=c ", "P 3 c 1 ", "P 3 c 1 ", "P3c1 ", " ", PRIMITIVE, 19 }, /* 448 */
+ {159, "C3v^4 ", "P 3 -2c ", "P 3 1 c ", "P 3 1 c ", "P31c ", " ", PRIMITIVE, 19 }, /* 449 */
+ {160, "C3v^5 ", "R 3 -2= ", "R 3 m ", "R 3 m ", "R3m ", "H ", R_CENTER, 19 }, /* 450 */
+ {160, "C3v^5 ", "P 3* -2 ", "R 3 m ", "R 3 m ", "R3m ", "R ", PRIMITIVE, 19 }, /* 451 */
+ {161, "C3v^6 ", "R 3 -2=c ", "R 3 c ", "R 3 c ", "R3c ", "H ", R_CENTER, 19 }, /* 452 */
+ {161, "C3v^6 ", "P 3* -2n ", "R 3 c ", "R 3 c ", "R3c ", "R ", PRIMITIVE, 19 }, /* 453 */
+ {162, "D3d^1 ", "-P 3 2 ", "P -3 1 m ", "P -3 1 2/m ", "P-31m ", " ", PRIMITIVE, 20 }, /* 454 */
+ {163, "D3d^2 ", "-P 3 2c ", "P -3 1 c ", "P -3 1 2/c ", "P-31c ", " ", PRIMITIVE, 20 }, /* 455 */
+ {164, "D3d^3 ", "-P 3 2= ", "P -3 m 1 ", "P -3 2/m 1 ", "P-3m1 ", " ", PRIMITIVE, 20 }, /* 456 */
+ {165, "D3d^4 ", "-P 3 2=c ", "P -3 c 1 ", "P -3 2/c 1 ", "P-3c1 ", " ", PRIMITIVE, 20 }, /* 457 */
+ {166, "D3d^5 ", "-R 3 2= ", "R -3 m ", "R -3 2/m ", "R-3m ", "H ", R_CENTER, 20 }, /* 458 */
+ {166, "D3d^5 ", "-P 3* 2 ", "R -3 m ", "R -3 2/m ", "R-3m ", "R ", PRIMITIVE, 20 }, /* 459 */
+ {167, "D3d^6 ", "-R 3 2=c ", "R -3 c ", "R -3 2/c ", "R-3c ", "H ", R_CENTER, 20 }, /* 460 */
+ {167, "D3d^6 ", "-P 3* 2n ", "R -3 c ", "R -3 2/c ", "R-3c ", "R ", PRIMITIVE, 20 }, /* 461 */
+ {168, "C6^1 ", "P 6 ", "P 6 ", "P 6 ", "P6 ", " ", PRIMITIVE, 21 }, /* 462 */
+ {169, "C6^2 ", "P 61 ", "P 6_1 ", "P 6_1 ", "P6_1 ", " ", PRIMITIVE, 21 }, /* 463 */
+ {170, "C6^3 ", "P 65 ", "P 6_5 ", "P 6_5 ", "P6_5 ", " ", PRIMITIVE, 21 }, /* 464 */
+ {171, "C6^4 ", "P 62 ", "P 6_2 ", "P 6_2 ", "P6_2 ", " ", PRIMITIVE, 21 }, /* 465 */
+ {172, "C6^5 ", "P 64 ", "P 6_4 ", "P 6_4 ", "P6_4 ", " ", PRIMITIVE, 21 }, /* 466 */
+ {173, "C6^6 ", "P 6c ", "P 6_3 ", "P 6_3 ", "P6_3 ", " ", PRIMITIVE, 21 }, /* 467 */
+ {174, "C3h^1 ", "P -6 ", "P -6 ", "P -6 ", "P-6 ", " ", PRIMITIVE, 22 }, /* 468 */
+ {175, "C6h^1 ", "-P 6 ", "P 6/m ", "P 6/m ", "P6/m ", " ", PRIMITIVE, 23 }, /* 469 */
+ {176, "C6h^2 ", "-P 6c ", "P 6_3/m ", "P 6_3/m ", "P6_3/m ", " ", PRIMITIVE, 23 }, /* 470 */
+ {177, "D6^1 ", "P 6 2 ", "P 6 2 2 ", "P 6 2 2 ", "P622 ", " ", PRIMITIVE, 24 }, /* 471 */
+ {178, "D6^2 ", "P 61 2 (0 0 -1) ", "P 6_1 2 2 ", "P 6_1 2 2 ", "P6_122 ", " ", PRIMITIVE, 24 }, /* 472 */
+ {179, "D6^3 ", "P 65 2 (0 0 1) ", "P 6_5 2 2 ", "P 6_5 2 2 ", "P6_522 ", " ", PRIMITIVE, 24 }, /* 473 */
+ {180, "D6^4 ", "P 62 2c (0 0 1) ", "P 6_2 2 2 ", "P 6_2 2 2 ", "P6_222 ", " ", PRIMITIVE, 24 }, /* 474 */
+ {181, "D6^5 ", "P 64 2c (0 0 -1)", "P 6_4 2 2 ", "P 6_4 2 2 ", "P6_422 ", " ", PRIMITIVE, 24 }, /* 475 */
+ {182, "D6^6 ", "P 6c 2c ", "P 6_3 2 2 ", "P 6_3 2 2 ", "P6_322 ", " ", PRIMITIVE, 24 }, /* 476 */
+ {183, "C6v^1 ", "P 6 -2 ", "P 6 m m ", "P 6 m m ", "P6mm ", " ", PRIMITIVE, 25 }, /* 477 */
+ {184, "C6v^2 ", "P 6 -2c ", "P 6 c c ", "P 6 c c ", "P6cc ", " ", PRIMITIVE, 25 }, /* 478 */
+ {185, "C6v^3 ", "P 6c -2 ", "P 6_3 c m ", "P 6_3 c m ", "P6_3cm ", " ", PRIMITIVE, 25 }, /* 479 */
+ {186, "C6v^4 ", "P 6c -2c ", "P 6_3 m c ", "P 6_3 m c ", "P6_3mc ", " ", PRIMITIVE, 25 }, /* 480 */
+ {187, "D3h^1 ", "P -6 2 ", "P -6 m 2 ", "P -6 m 2 ", "P-6m2 ", " ", PRIMITIVE, 26 }, /* 481 */
+ {188, "D3h^2 ", "P -6c 2 ", "P -6 c 2 ", "P -6 c 2 ", "P-6c2 ", " ", PRIMITIVE, 26 }, /* 482 */
+ {189, "D3h^3 ", "P -6 -2 ", "P -6 2 m ", "P -6 2 m ", "P-62m ", " ", PRIMITIVE, 26 }, /* 483 */
+ {190, "D3h^4 ", "P -6c -2c ", "P -6 2 c ", "P -6 2 c ", "P-62c ", " ", PRIMITIVE, 26 }, /* 484 */
+ {191, "D6h^1 ", "-P 6 2 ", "P 6/m m m ", "P 6/m 2/m 2/m ", "P6/mmm ", " ", PRIMITIVE, 27 }, /* 485 */
+ {192, "D6h^2 ", "-P 6 2c ", "P 6/m c c ", "P 6/m 2/c 2/c ", "P6/mcc ", " ", PRIMITIVE, 27 }, /* 486 */
+ {193, "D6h^3 ", "-P 6c 2 ", "P 6_3/m c m ", "P 6_3/m 2/c 2/m ", "P6_3/mcm ", " ", PRIMITIVE, 27 }, /* 487 */
+ {194, "D6h^4 ", "-P 6c 2c ", "P 6_3/m m c ", "P 6_3/m 2/m 2/c ", "P6_3/mmc ", " ", PRIMITIVE, 27 }, /* 488 */
+ {195, "T^1 ", "P 2 2 3 ", "P 2 3 ", "P 2 3 ", "P23 ", " ", PRIMITIVE, 28 }, /* 489 */
+ {196, "T^2 ", "F 2 2 3 ", "F 2 3 ", "F 2 3 ", "F23 ", " ", FACE, 28 }, /* 490 */
+ {197, "T^3 ", "I 2 2 3 ", "I 2 3 ", "I 2 3 ", "I23 ", " ", BODY, 28 }, /* 491 */
+ {198, "T^4 ", "P 2ac 2ab 3 ", "P 2_1 3 ", "P 2_1 3 ", "P2_13 ", " ", PRIMITIVE, 28 }, /* 492 */
+ {199, "T^5 ", "I 2b 2c 3 ", "I 2_1 3 ", "I 2_1 3 ", "I2_13 ", " ", BODY, 28 }, /* 493 */
+ {200, "Th^1 ", "-P 2 2 3 ", "P m -3 ", "P 2/m -3 ", "Pm-3 ", " ", PRIMITIVE, 29 }, /* 494 */
+ {201, "Th^2 ", "P 2 2 3 -1n ", "P n -3 ", "P 2/n -3 ", "Pn-3 ", "1 ", PRIMITIVE, 29 }, /* 495 */
+ {201, "Th^2 ", "-P 2ab 2bc 3 ", "P n -3 ", "P 2/n -3 ", "Pn-3 ", "2 ", PRIMITIVE, 29 }, /* 496 */
+ {202, "Th^3 ", "-F 2 2 3 ", "F m -3 ", "F 2/m -3 ", "Fm-3 ", " ", FACE, 29 }, /* 497 */
+ {203, "Th^4 ", "F 2 2 3 -1d ", "F d -3 ", "F 2/d -3 ", "Fd-3 ", "1 ", FACE, 29 }, /* 498 */
+ {203, "Th^4 ", "-F 2uv 2vw 3 ", "F d -3 ", "F 2/d -3 ", "Fd-3 ", "2 ", FACE, 29 }, /* 499 */
+ {204, "Th^5 ", "-I 2 2 3 ", "I m -3 ", "I 2/m -3 ", "Im-3 ", " ", BODY, 29 }, /* 500 */
+ {205, "Th^6 ", "-P 2ac 2ab 3 ", "P a -3 ", "P 2_1/a -3 ", "Pa-3 ", " ", PRIMITIVE, 29 }, /* 501 */
+ {206, "Th^7 ", "-I 2b 2c 3 ", "I a -3 ", "I 2_1/a -3 ", "Ia-3 ", " ", BODY, 29 }, /* 502 */
+ {207, "O^1 ", "P 4 2 3 ", "P 4 3 2 ", "P 4 3 2 ", "P432 ", " ", PRIMITIVE, 30 }, /* 503 */
+ {208, "O^2 ", "P 4n 2 3 ", "P 4_2 3 2 ", "P 4_2 3 2 ", "P4_232 ", " ", PRIMITIVE, 30 }, /* 504 */
+ {209, "O^3 ", "F 4 2 3 ", "F 4 3 2 ", "F 4 3 2 ", "F432 ", " ", FACE, 30 }, /* 505 */
+ {210, "O^4 ", "F 4d 2 3 ", "F 4_1 3 2 ", "F 4_1 3 2 ", "F4_132 ", " ", FACE, 30 }, /* 506 */
+ {211, "O^5 ", "I 4 2 3 ", "I 4 3 2 ", "I 4 3 2 ", "I432 ", " ", BODY, 30 }, /* 507 */
+ {212, "O^6 ", "P 4acd 2ab 3 ", "P 4_3 3 2 ", "P 4_3 3 2 ", "P4_332 ", " ", PRIMITIVE, 30 }, /* 508 */
+ {213, "O^7 ", "P 4bd 2ab 3 ", "P 4_1 3 2 ", "P 4_1 3 2 ", "P4_132 ", " ", PRIMITIVE, 30 }, /* 509 */
+ {214, "O^8 ", "I 4bd 2c 3 ", "I 4_1 3 2 ", "I 4_1 3 2 ", "I4_132 ", " ", BODY, 30 }, /* 510 */
+ {215, "Td^1 ", "P -4 2 3 ", "P -4 3 m ", "P -4 3 m ", "P-43m ", " ", PRIMITIVE, 31 }, /* 511 */
+ {216, "Td^2 ", "F -4 2 3 ", "F -4 3 m ", "F -4 3 m ", "F-43m ", " ", FACE, 31 }, /* 512 */
+ {217, "Td^3 ", "I -4 2 3 ", "I -4 3 m ", "I -4 3 m ", "I-43m ", " ", BODY, 31 }, /* 513 */
+ {218, "Td^4 ", "P -4n 2 3 ", "P -4 3 n ", "P -4 3 n ", "P-43n ", " ", PRIMITIVE, 31 }, /* 514 */
+ {219, "Td^5 ", "F -4c 2 3 ", "F -4 3 c ", "F -4 3 c ", "F-43c ", " ", FACE, 31 }, /* 515 */
+ {220, "Td^6 ", "I -4bd 2c 3 ", "I -4 3 d ", "I -4 3 d ", "I-43d ", " ", BODY, 31 }, /* 516 */
+ {221, "Oh^1 ", "-P 4 2 3 ", "P m -3 m ", "P 4/m -3 2/m ", "Pm-3m ", " ", PRIMITIVE, 32 }, /* 517 */
+ {222, "Oh^2 ", "P 4 2 3 -1n ", "P n -3 n ", "P 4/n -3 2/n ", "Pn-3n ", "1 ", PRIMITIVE, 32 }, /* 518 */
+ {222, "Oh^2 ", "-P 4a 2bc 3 ", "P n -3 n ", "P 4/n -3 2/n ", "Pn-3n ", "2 ", PRIMITIVE, 32 }, /* 519 */
+ {223, "Oh^3 ", "-P 4n 2 3 ", "P m -3 n ", "P 4_2/m -3 2/n ", "Pm-3n ", " ", PRIMITIVE, 32 }, /* 520 */
+ {224, "Oh^4 ", "P 4n 2 3 -1n ", "P n -3 m ", "P 4_2/n -3 2/m ", "Pn-3m ", "1 ", PRIMITIVE, 32 }, /* 521 */
+ {224, "Oh^4 ", "-P 4bc 2bc 3 ", "P n -3 m ", "P 4_2/n -3 2/m ", "Pn-3m ", "2 ", PRIMITIVE, 32 }, /* 522 */
+ {225, "Oh^5 ", "-F 4 2 3 ", "F m -3 m ", "F 4/m -3 2/m ", "Fm-3m ", " ", FACE, 32 }, /* 523 */
+ {226, "Oh^6 ", "-F 4c 2 3 ", "F m -3 c ", "F 4/m -3 2/c ", "Fm-3c ", " ", FACE, 32 }, /* 524 */
+ {227, "Oh^7 ", "F 4d 2 3 -1d ", "F d -3 m ", "F 4_1/d -3 2/m ", "Fd-3m ", "1 ", FACE, 32 }, /* 525 */
+ {227, "Oh^7 ", "-F 4vw 2vw 3 ", "F d -3 m ", "F 4_1/d -3 2/m ", "Fd-3m ", "2 ", FACE, 32 }, /* 526 */
+ {228, "Oh^8 ", "F 4d 2 3 -1cd ", "F d -3 c ", "F 4_1/d -3 2/c ", "Fd-3c ", "1 ", FACE, 32 }, /* 527 */
+ {228, "Oh^8 ", "-F 4cvw 2vw 3 ", "F d -3 c ", "F 4_1/d -3 2/c ", "Fd-3c ", "2 ", FACE, 32 }, /* 528 */
+ {229, "Oh^9 ", "-I 4 2 3 ", "I m -3 m ", "I 4/m -3 2/m ", "Im-3m ", " ", BODY, 32 }, /* 529 */
+ {230, "Oh^10 ", "-I 4bd 2c 3 ", "I a -3 d ", "I 4_1/a -3 2/d ", "Ia-3d ", " ", BODY, 32 }, /* 530 */
};
-static const int symmetry_operations[] = {
+static const int symmetry_operations[] = {
0 , /* dummy */
16484 , /* 1 ( 1) [ 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0] */
16484 , /* 2 ( 2) [ 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0] */
@@ -8465,9 +8496,10 @@ static const int symmetry_operation_index[][2] = {
{ 96, 7293}, /* 530 */
};
-int spgdb_get_operation( int rot[3][3],
- double trans[3],
- const int index )
+static int remove_space(char symbol[], const int num_char);
+static void replace_equal_char(char symbol[], const int position);
+
+int spgdb_get_operation(int rot[3][3], double trans[3], const int hall_number)
{
int i, j, r, t, degit;
@@ -8479,7 +8511,7 @@ int spgdb_get_operation( int rot[3][3],
/* group operations. In principle, octal numerical system can be used */
/* for translation, but duodecimal system is more convenient. */
- r = symmetry_operations[index] % 19683; /* 19683 = 3**9 */
+ r = symmetry_operations[hall_number] % 19683; /* 19683 = 3**9 */
degit = 6561; /* 6561 = 3**8 */
for ( i = 0; i < 3; i++ ) {
for ( j = 0; j < 3; j++ ) {
@@ -8488,7 +8520,7 @@ int spgdb_get_operation( int rot[3][3],
}
}
- t = symmetry_operations[index] / 19683; /* 19683 = 3**9 */
+ t = symmetry_operations[hall_number] / 19683; /* 19683 = 3**9 */
degit = 144;
for ( i = 0; i < 3; i++ ) {
trans[i] = ( (double) ( ( t % ( degit * 12 ) ) / degit ) ) / 12;
@@ -8498,14 +8530,85 @@ int spgdb_get_operation( int rot[3][3],
return 1;
}
-void spgdb_get_operation_index( int indices[2], const int hall_number )
+void spgdb_get_operation_index(int indices[2], const int hall_number)
+{
+ indices[0] = symmetry_operation_index[hall_number][0];
+ indices[1] = symmetry_operation_index[hall_number][1];
+}
+
+/* Return NULL if failed */
+Symmetry * spgdb_get_spacegroup_operations(const int hall_number)
{
- indices[0] = symmetry_operation_index[ hall_number ][0];
- indices[1] = symmetry_operation_index[ hall_number ][1];
+ int i;
+ int operation_index[2];
+ int rot[3][3];
+ double trans[3];
+ Symmetry *symmetry;
+
+ symmetry = NULL;
+
+ if (hall_number < 1 || 530 < hall_number) {
+ return NULL;
+ }
+
+ spgdb_get_operation_index(operation_index, hall_number);
+
+ if ((symmetry = sym_alloc_symmetry(operation_index[0])) == NULL) {
+ return NULL;
+ }
+
+ for (i = 0; i < operation_index[0]; i++) {
+ /* rotation matrix matching and set difference of translations */
+ spgdb_get_operation(rot, trans, operation_index[1] + i);
+ mat_copy_matrix_i3(symmetry->rot[i], rot);
+ mat_copy_vector_d3(symmetry->trans[i], trans);
+ }
+
+ return symmetry;
}
-SpacegroupType spgdb_get_spacegroup_type( int index )
+/* Return spgtype.number = 0 if hall_number is out of range. */
+SpacegroupType spgdb_get_spacegroup_type(const int hall_number)
{
- return spacegroup_types[index];
+ int position;
+ SpacegroupType spgtype;
+
+ spgtype.number = 0;
+
+ if (0 < hall_number && hall_number < 531) {
+ spgtype = spacegroup_types[hall_number];
+ } else {
+ spgtype = spacegroup_types[0];
+ }
+
+ remove_space(spgtype.schoenflies, 7);
+ position = remove_space(spgtype.hall_symbol, 17);
+ replace_equal_char(spgtype.hall_symbol, position);
+ remove_space(spgtype.international, 32);
+ remove_space(spgtype.international_full, 20);
+ remove_space(spgtype.international_short, 11);
+ remove_space(spgtype.choice, 6);
+
+ return spgtype;
}
+static int remove_space(char symbol[], const int num_char) {
+ int i;
+
+ for (i = num_char - 2; i > -1; i--) {
+ if (symbol[i] == ' ') {
+ symbol[i] = '\0';
+ } else {
+ return i;
+ }
+ }
+ return i;
+}
+
+static void replace_equal_char(char symbol[], const int position) {
+ int i;
+
+ for (i = position; i > -1; i--) {
+ if (symbol[i] == '=') { symbol[i] = '\"'; }
+ }
+}
diff --git a/src/spg_database.h b/src/spg_database.h
index 3abb265..677db31 100644
--- a/src/spg_database.h
+++ b/src/spg_database.h
@@ -1,11 +1,42 @@
-/* spg_database.h */
/* Copyright (C) 2010 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __spg_database_H__
#define __spg_database_H__
-#include "lattice.h"
-#include "pointgroup.h"
+#include "spacegroup.h"
+#include "symmetry.h"
typedef struct {
int number;
@@ -14,13 +45,14 @@ typedef struct {
char international[32];
char international_full[20];
char international_short[11];
- Holohedry holohedry;
+ char choice[6];
+ Centering centering;
+ int pointgroup_number;
} SpacegroupType;
-int spgdb_get_operation( int rot[3][3],
- double trans[3],
- const int index );
-void spgdb_get_operation_index( int indices[2], const int hall_number );
-SpacegroupType spgdb_get_spacegroup_type( int index );
+int spgdb_get_operation(int rot[3][3], double trans[3], const int hall_number);
+void spgdb_get_operation_index(int indices[2], const int hall_number);
+Symmetry * spgdb_get_spacegroup_operations(const int hall_number);
+SpacegroupType spgdb_get_spacegroup_type(const int hall_number);
#endif
diff --git a/src/spglib.c b/src/spglib.c
index e45350c..772c66c 100644
--- a/src/spglib.c
+++ b/src/spglib.c
@@ -1,162 +1,309 @@
-/* spglib.c */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "spglib.h"
-#include "refinement.h"
+#include "arithmetic.h"
#include "cell.h"
-#include "lattice.h"
+#include "debug.h"
+#include "delaunay.h"
+#include "determination.h"
+#include "kgrid.h"
+#include "kpoint.h"
#include "mathfunc.h"
+#include "niggli.h"
#include "pointgroup.h"
+#include "spglib.h"
#include "primitive.h"
+#include "refinement.h"
#include "spacegroup.h"
-#include "symmetry.h"
-#include "kpoint.h"
+#include "spg_database.h"
#include "spin.h"
-
+#include "symmetry.h"
+#include "version.h"
+
+/*-------*/
+/* error */
+/*-------*/
+static SpglibError spglib_error_code = SPGLIB_SUCCESS;
+
+typedef struct {
+ SpglibError error;
+ char *message;
+} SpglibErrorMessage;
+
+static SpglibErrorMessage spglib_error_message[] = {
+ {SPGLIB_SUCCESS, "no error"},
+ {SPGERR_SPACEGROUP_SEARCH_FAILED, "spacegroup search failed"},
+ {SPGERR_CELL_STANDARDIZATION_FAILED, "cell standardization failed"},
+ {SPGERR_SYMMETRY_OPERATION_SEARCH_FAILED, "symmetry operation search failed"},
+ {SPGERR_ATOMS_TOO_CLOSE, "too close distance between atoms"},
+ {SPGERR_POINTGROUP_NOT_FOUND, "pointgroup not found"},
+ {SPGERR_NIGGLI_FAILED, "Niggli reduction failed"},
+ {SPGERR_DELAUNAY_FAILED, "Delaunay reduction failed"},
+ {SPGERR_ARRAY_SIZE_SHORTAGE, "array size shortage"},
+ {SPGERR_NONE, ""},
+};
+
+/*---------*/
+/* general */
+/*---------*/
static SpglibDataset * get_dataset(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec);
-
-static int get_symmetry(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec);
-
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const int hall_number,
+ const double symprec,
+ const double angle_tolerance);
+static SpglibDataset * init_dataset(void);
+static int set_dataset(SpglibDataset * dataset,
+ const Cell * cell,
+ const Primitive * primitive,
+ SPGCONST Spacegroup * spacegroup,
+ ExactStructure *exstr);
+static int get_symmetry_from_dataset(int rotation[][3][3],
+ double translation[][3],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
static int get_symmetry_with_collinear_spin(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const double spins[],
- const int num_atom,
- const double symprec);
-
+ double translation[][3],
+ int equivalent_atoms[],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const double spins[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
static int get_multiplicity(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec);
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
+static int standardize_primitive(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
+static int standardize_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const int num_array_size,
+ const double symprec,
+ const double angle_tolerance);
+static int get_standardized_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const int num_array_size,
+ const int to_primitive,
+ const double symprec,
+ const double angle_tolerance);
+static Centering get_centering(int hall_number);
+static void set_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ Cell * cell);
+static int get_international(char symbol[11],
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
+static int get_schoenflies(char symbol[7],
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[], const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
+
+/*---------*/
+/* kpoints */
+/*---------*/
+static int get_ir_reciprocal_mesh(int grid_address[][3],
+ int map[],
+ const int mesh[3],
+ const int is_shift[3],
+ const int is_time_reversal,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
+
+static int get_stabilized_reciprocal_mesh(int grid_address[][3],
+ int map[],
+ const int mesh[3],
+ const int is_shift[3],
+ const int is_time_reversal,
+ const int num_rot,
+ SPGCONST int rotations[][3][3],
+ const int num_q,
+ SPGCONST double qpoints[][3]);
+
+/*========*/
+/* global */
+/*========*/
+
+/*-----------------------------------------*/
+/* Version: spglib-[major].[minor].[micro] */
+/*-----------------------------------------*/
+int spg_get_major_version(void)
+{
+ spglib_error_code = SPGLIB_SUCCESS;
+ return SPGLIB_MAJOR_VERSION;
+}
-static int find_primitive(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec);
+int spg_get_minor_version(void)
+{
+ spglib_error_code = SPGLIB_SUCCESS;
+ return SPGLIB_MINOR_VERSION;
+}
-static int get_international(char symbol[11],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec);
-
-static int get_schoenflies(char symbol[10],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[], const int num_atom,
- const double symprec);
-
-static int refine_cell(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec);
-
-static int get_ir_kpoints(int map[],
- SPGCONST double kpoints[][3],
- const int num_kpoint,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const int is_time_reversal,
- const double symprec);
-
-static int get_ir_reciprocal_mesh(int grid_point[][3],
- int map[],
- const int mesh[3],
- const int is_shift[3],
- const int is_time_reversal,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec);
-
-static int get_stabilized_reciprocal_mesh(int grid_point[][3],
- int map[],
- const int mesh[3],
- const int is_shift[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3],
- const int num_q,
- SPGCONST double qpoints[][3]);
-
-static SpglibTriplets * get_triplets_reciprocal_mesh(const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3]);
-
-static int get_triplets_reciprocal_mesh_at_q(int weights[],
- int grid_points[][3],
- int third_q[],
- const int grid_point,
- const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3]);
-
-static int extract_triplets_reciprocal_mesh_at_q(int triplets_at_q[][3],
- int weight_triplets_at_q[],
- const int fixed_grid_number,
- const int num_triplets,
- SPGCONST int triplets[][3],
- const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3]);
+int spg_get_micro_version(void)
+{
+ spglib_error_code = SPGLIB_SUCCESS;
+ return SPGLIB_MICRO_VERSION;
+}
+/*-------*/
+/* error */
+/*-------*/
+SpglibError spg_get_error_code(void)
+{
+ return spglib_error_code;
+}
-SpglibDataset * spg_get_dataset(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
+char * spg_get_error_message(SpglibError error)
{
- sym_set_angle_tolerance(-1.0);
+ int i;
+
+ for (i = 0; i < 100; i++) {
+ if (SPGERR_NONE == spglib_error_message[i].error) {
+ break;
+ }
+
+ if (error == spglib_error_message[i].error) {
+ return spglib_error_message[i].message;
+ }
+ }
+ return NULL;
+}
+
+/*---------*/
+/* general */
+/*---------*/
+/* Return NULL if failed */
+SpglibDataset * spg_get_dataset(SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec)
+{
return get_dataset(lattice,
- position,
- types,
- num_atom,
- symprec);
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ -1.0);
}
+/* Return NULL if failed */
SpglibDataset * spgat_get_dataset(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance)
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
+{
+ return get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance);
+}
+
+/* Return NULL if failed */
+SpglibDataset * spg_get_dataset_with_hall_number(SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const int hall_number,
+ const double symprec)
{
- sym_set_angle_tolerance(angle_tolerance);
+ return get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ hall_number,
+ symprec,
+ -1.0);
+}
+/* Return NULL if failed */
+SpglibDataset *
+spgat_get_dataset_with_hall_number(SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const int hall_number,
+ const double symprec,
+ const double angle_tolerance)
+{
return get_dataset(lattice,
- position,
- types,
- num_atom,
- symprec);
+ position,
+ types,
+ num_atom,
+ hall_number,
+ symprec,
+ angle_tolerance);
}
void spg_free_dataset(SpglibDataset *dataset)
@@ -166,971 +313,1627 @@ void spg_free_dataset(SpglibDataset *dataset)
dataset->rotations = NULL;
free(dataset->translations);
dataset->translations = NULL;
+ dataset->n_operations = 0;
}
-
- if (! (dataset->wyckoffs == NULL)) {
+
+ if (dataset->n_atoms > 0) {
free(dataset->wyckoffs);
dataset->wyckoffs = NULL;
- }
-
- if (! (dataset->equivalent_atoms == NULL)) {
free(dataset->equivalent_atoms);
dataset->equivalent_atoms = NULL;
+ free(dataset->mapping_to_primitive);
+ dataset->mapping_to_primitive = NULL;
+ dataset->n_atoms = 0;
+ }
+
+ if (dataset->n_std_atoms > 0) {
+ free(dataset->std_positions);
+ dataset->std_positions = NULL;
+ free(dataset->std_types);
+ dataset->std_types = NULL;
+ free(dataset->std_mapping_to_primitive);
+ dataset->std_mapping_to_primitive = NULL;
+ dataset->n_std_atoms = 0;
}
+ dataset->spacegroup_number = 0;
+ dataset->hall_number = 0;
+ strcpy(dataset->international_symbol, "");
+ strcpy(dataset->hall_symbol, "");
+ strcpy(dataset->choice, "");
+
free(dataset);
- dataset = NULL;
}
+/* Return 0 if failed */
int spg_get_symmetry(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
+ double translation[][3],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec)
{
- sym_set_angle_tolerance(-1.0);
-
- return get_symmetry(rotation,
- translation,
- max_size,
- lattice,
- position,
- types,
- num_atom,
- symprec);
+ return get_symmetry_from_dataset(rotation,
+ translation,
+ max_size,
+ lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ -1.0);
}
+/* Return 0 if failed */
int spgat_get_symmetry(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance)
+ double translation[][3],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- sym_set_angle_tolerance(angle_tolerance);
-
- return get_symmetry(rotation,
- translation,
- max_size,
- lattice,
- position,
- types,
- num_atom,
- symprec);
+ return get_symmetry_from_dataset(rotation,
+ translation,
+ max_size,
+ lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ angle_tolerance);
}
+/* Return 0 if failed */
int spg_get_symmetry_with_collinear_spin(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const double spins[],
- const int num_atom,
- const double symprec)
+ double translation[][3],
+ int equivalent_atoms[],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const double spins[],
+ const int num_atom,
+ const double symprec)
{
- sym_set_angle_tolerance(-1.0);
-
return get_symmetry_with_collinear_spin(rotation,
- translation,
- max_size,
- lattice,
- position,
- types,
- spins,
- num_atom,
- symprec);
+ translation,
+ equivalent_atoms,
+ max_size,
+ lattice,
+ position,
+ types,
+ spins,
+ num_atom,
+ symprec,
+ -1.0);
}
+/* Return 0 if failed */
int spgat_get_symmetry_with_collinear_spin(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const double spins[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance)
+ double translation[][3],
+ int equivalent_atoms[],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const double spins[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- sym_set_angle_tolerance(angle_tolerance);
-
return get_symmetry_with_collinear_spin(rotation,
- translation,
- max_size,
- lattice,
- position,
- types,
- spins,
- num_atom,
- symprec);
+ translation,
+ equivalent_atoms,
+ max_size,
+ lattice,
+ position,
+ types,
+ spins,
+ num_atom,
+ symprec,
+ angle_tolerance);
}
-int spg_get_multiplicity(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
+int spg_get_hall_number_from_symmetry(SPGCONST int rotation[][3][3],
+ SPGCONST double translation[][3],
+ const int num_operations,
+ const double symprec)
{
- sym_set_angle_tolerance(-1.0);
+ int i;
+ Symmetry *symmetry;
+ Symmetry *prim_symmetry;
+ Spacegroup spacegroup;
+
+ symmetry = NULL;
+ prim_symmetry = NULL;
+
+ symmetry = sym_alloc_symmetry(num_operations);
+ for (i = 0; i < num_operations; i++) {
+ mat_copy_matrix_i3(symmetry->rot[i], rotation[i]);
+ mat_copy_vector_d3(symmetry->trans[i], translation[i]);
+ }
+ prim_symmetry = prm_get_primitive_symmetry(symmetry, symprec);
+ spacegroup = spa_search_spacegroup_with_symmetry(prim_symmetry, symprec);
+
+ if (spacegroup.hall_number) {
+ spglib_error_code = SPGLIB_SUCCESS;
+ return spacegroup.hall_number;
+ } else {
+ spglib_error_code = SPGERR_SPACEGROUP_SEARCH_FAILED;
+ return 0;
+ }
+}
+
+/* Return 0 if failed */
+int spg_get_multiplicity(SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec)
+{
return get_multiplicity(lattice,
- position,
- types,
- num_atom,
- symprec);
+ position,
+ types,
+ num_atom,
+ symprec,
+ -1.0);
}
+/* Return 0 if failed */
int spgat_get_multiplicity(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance)
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- sym_set_angle_tolerance(angle_tolerance);
-
return get_multiplicity(lattice,
- position,
- types,
- num_atom,
- symprec);
+ position,
+ types,
+ num_atom,
+ symprec,
+ angle_tolerance);
}
-int spg_get_smallest_lattice(double smallest_lattice[3][3],
- SPGCONST double lattice[3][3],
- const double symprec)
+/* Return 0 if failed */
+int spg_get_international(char symbol[11],
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec)
{
- return lat_smallest_lattice_vector(smallest_lattice, lattice, symprec);
+ return get_international(symbol,
+ lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ -1.0);
}
-int spg_find_primitive(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec)
+/* Return 0 if failed */
+int spgat_get_international(char symbol[11],
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- sym_set_angle_tolerance(-1.0);
-
- return find_primitive(lattice,
- position,
- types,
- num_atom,
- symprec);
+ return get_international(symbol,
+ lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ angle_tolerance);
}
-int spgat_find_primitive(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance)
+/* Return 0 if failed */
+int spg_get_schoenflies(char symbol[7],
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec)
{
- sym_set_angle_tolerance(angle_tolerance);
+ return get_schoenflies(symbol,
+ lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ -1.0);
+}
- return find_primitive(lattice,
- position,
- types,
- num_atom,
- symprec);
+/* Return 0 if failed */
+int spgat_get_schoenflies(char symbol[7],
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
+{
+ return get_schoenflies(symbol,
+ lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ angle_tolerance);
}
-int spg_get_international(char symbol[11],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
+/* Return 0 if failed */
+int spg_get_pointgroup(char symbol[6],
+ int transform_mat[3][3],
+ SPGCONST int rotations[][3][3],
+ const int num_rotations)
{
- sym_set_angle_tolerance(-1.0);
+ Pointgroup pointgroup;
- return get_international(symbol,
- lattice,
- position,
- types,
- num_atom,
- symprec);
+ pointgroup = ptg_get_transformation_matrix(transform_mat,
+ rotations,
+ num_rotations);
+
+ if (pointgroup.number == 0) {
+ spglib_error_code = SPGERR_POINTGROUP_NOT_FOUND;
+ return 0;
+ }
+
+ strcpy(symbol, pointgroup.symbol);
+
+ spglib_error_code = SPGLIB_SUCCESS;
+ return pointgroup.number;
}
-int spgat_get_international(char symbol[11],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance)
+/* Return 0 if failed */
+int spg_get_symmetry_from_database(int rotations[192][3][3],
+ double translations[192][3],
+ const int hall_number)
{
- sym_set_angle_tolerance(angle_tolerance);
+ int i, size;
+ Symmetry *symmetry;
- return get_international(symbol,
- lattice,
- position,
- types,
- num_atom,
- symprec);
+ symmetry = NULL;
+
+ if ((symmetry = spgdb_get_spacegroup_operations(hall_number)) == NULL) {
+ goto err;
+ }
+
+ for (i = 0; i < symmetry->size; i++) {
+ mat_copy_matrix_i3(rotations[i], symmetry->rot[i]);
+ mat_copy_vector_d3(translations[i], symmetry->trans[i]);
+ }
+ size = symmetry->size;
+
+ sym_free_symmetry(symmetry);
+ symmetry = NULL;
+
+ spglib_error_code = SPGLIB_SUCCESS;
+ return size;
+
+ err:
+ spglib_error_code = SPGERR_SPACEGROUP_SEARCH_FAILED;
+ return 0;
}
-int spg_get_schoenflies(char symbol[10],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
+/* Return spglibtype.number = 0 if failed */
+SpglibSpacegroupType spg_get_spacegroup_type(const int hall_number)
{
- sym_set_angle_tolerance(-1.0);
+ SpglibSpacegroupType spglibtype;
+ SpacegroupType spgtype;
+ Pointgroup pointgroup;
+ int arth_number;
+ char arth_symbol[7];
+
+ spglibtype.number = 0;
+ strcpy(spglibtype.schoenflies, "");
+ strcpy(spglibtype.hall_symbol, "");
+ strcpy(spglibtype.choice, "");
+ strcpy(spglibtype.international, "");
+ strcpy(spglibtype.international_full, "");
+ strcpy(spglibtype.international_short, "");
+ strcpy(spglibtype.pointgroup_international, "");
+ strcpy(spglibtype.pointgroup_schoenflies, "");
+ spglibtype.arithmetic_crystal_class_number = 0;
+ strcpy(spglibtype.arithmetic_crystal_class_symbol, "");
+
+ if (0 < hall_number && hall_number < 531) {
+ spgtype = spgdb_get_spacegroup_type(hall_number);
+ spglibtype.number = spgtype.number;
+ strcpy(spglibtype.schoenflies, spgtype.schoenflies);
+ strcpy(spglibtype.hall_symbol, spgtype.hall_symbol);
+ strcpy(spglibtype.choice, spgtype.choice);
+ strcpy(spglibtype.international, spgtype.international);
+ strcpy(spglibtype.international_full, spgtype.international_full);
+ strcpy(spglibtype.international_short, spgtype.international_short);
+ pointgroup = ptg_get_pointgroup(spgtype.pointgroup_number);
+ strcpy(spglibtype.pointgroup_international, pointgroup.symbol);
+ strcpy(spglibtype.pointgroup_schoenflies, pointgroup.schoenflies);
+ arth_number = arth_get_symbol(arth_symbol, spgtype.number);
+ spglibtype.arithmetic_crystal_class_number = arth_number;
+ strcpy(spglibtype.arithmetic_crystal_class_symbol, arth_symbol);
+ spglib_error_code = SPGLIB_SUCCESS;
+ } else {
+ spglib_error_code = SPGERR_SPACEGROUP_SEARCH_FAILED;
+ }
- return get_schoenflies(symbol,
- lattice,
- position,
- types,
- num_atom,
- symprec);
+ return spglibtype;
}
-int spgat_get_schoenflies(char symbol[10],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance)
+/* Return 0 if failed */
+int spg_standardize_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const int to_primitive,
+ const int no_idealize,
+ const double symprec)
{
- sym_set_angle_tolerance(angle_tolerance);
+ return spgat_standardize_cell(lattice,
+ position,
+ types,
+ num_atom,
+ to_primitive,
+ no_idealize,
+ symprec,
+ -1.0);
+}
- return get_schoenflies(symbol,
- lattice,
- position,
- types,
- num_atom,
- symprec);
+/* Return 0 if failed */
+int spgat_standardize_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const int to_primitive,
+ const int no_idealize,
+ const double symprec,
+ const double angle_tolerance)
+{
+ if (to_primitive) {
+ if (no_idealize) {
+ return get_standardized_cell(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ 1,
+ symprec,
+ angle_tolerance);
+ } else {
+ return standardize_primitive(lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ angle_tolerance);
+ }
+ } else {
+ if (no_idealize) {
+ return get_standardized_cell(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ 0,
+ symprec,
+ angle_tolerance);
+ } else {
+ return standardize_cell(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance);
+ }
+ }
}
-int spg_get_pointgroup(char symbol[6],
- int trans_mat[3][3],
- SPGCONST int rotations[][3][3],
- const int num_rotations)
+/* Return 0 if failed */
+int spg_find_primitive(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec)
{
- int ptg_num;
- double tmp_trans_mat[3][3];
- Pointgroup ptgroup;
-
- ptg_num = ptg_get_pointgroup_number_by_rotations(rotations,
- num_rotations);
- ptgroup = ptg_get_pointgroup(ptg_num);
- strcpy(symbol, ptgroup.symbol);
- ptg_get_transformation_matrix(tmp_trans_mat,
- rotations,
- num_rotations);
- mat_cast_matrix_3d_to_3i(trans_mat, tmp_trans_mat);
- return ptg_num + 1;
+ return standardize_primitive(lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ -1.0);
}
-int spg_refine_cell(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec)
+/* Return 0 if failed */
+int spgat_find_primitive(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- sym_set_angle_tolerance(-1.0);
+ return standardize_primitive(lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ angle_tolerance);
+}
- return refine_cell(lattice,
- position,
- types,
- num_atom,
- symprec);
+/* Return 0 if failed */
+int spg_refine_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec)
+{
+ return standardize_cell(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ -1.0);
}
+/* Return 0 if failed */
int spgat_refine_cell(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance)
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
+{
+ return standardize_cell(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance);
+}
+
+int spg_delaunay_reduce(double lattice[3][3], const double symprec)
{
- sym_set_angle_tolerance(angle_tolerance);
+ int i, j, succeeded;
+ double red_lattice[3][3];
+
+ succeeded = del_delaunay_reduce(red_lattice, lattice, symprec);
+
+ if (succeeded) {
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ lattice[i][j] = red_lattice[i][j];
+ }
+ }
+ spglib_error_code = SPGLIB_SUCCESS;
+ } else {
+ spglib_error_code = SPGERR_DELAUNAY_FAILED;
+ }
- return refine_cell(lattice,
- position,
- types,
- num_atom,
- symprec);
+ return succeeded;
}
-int spg_get_ir_kpoints(int map[],
- SPGCONST double kpoints[][3],
- const int num_kpoint,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const int is_time_reversal,
- const double symprec)
+/*---------*/
+/* kpoints */
+/*---------*/
+int spg_get_grid_point_from_address(const int grid_address[3],
+ const int mesh[3])
{
- sym_set_angle_tolerance(-1.0);
-
- return get_ir_kpoints(map,
- kpoints,
- num_kpoint,
- lattice,
- position,
- types,
- num_atom,
- is_time_reversal,
- symprec);
+ int address_double[3];
+ int is_shift[3];
+
+ is_shift[0] = 0;
+ is_shift[1] = 0;
+ is_shift[2] = 0;
+ kgd_get_grid_address_double_mesh(address_double,
+ grid_address,
+ mesh,
+ is_shift);
+ return kgd_get_grid_point_double_mesh(address_double, mesh);
}
-int spg_get_ir_reciprocal_mesh(int grid_point[][3],
- int map[],
- const int mesh[3],
- const int is_shift[3],
- const int is_time_reversal,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
+int spg_get_ir_reciprocal_mesh(int grid_address[][3],
+ int map[],
+ const int mesh[3],
+ const int is_shift[3],
+ const int is_time_reversal,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec)
{
- sym_set_angle_tolerance(-1.0);
-
- return get_ir_reciprocal_mesh(grid_point,
- map,
- mesh,
- is_shift,
- is_time_reversal,
- lattice,
- position,
- types,
- num_atom,
- symprec);
+ return get_ir_reciprocal_mesh(grid_address,
+ map,
+ mesh,
+ is_shift,
+ is_time_reversal,
+ lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ -1.0);
}
-int spg_get_stabilized_reciprocal_mesh(int grid_point[][3],
- int map[],
- const int mesh[3],
- const int is_shift[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3],
- const int num_q,
- SPGCONST double qpoints[][3])
+int spg_get_stabilized_reciprocal_mesh(int grid_address[][3],
+ int map[],
+ const int mesh[3],
+ const int is_shift[3],
+ const int is_time_reversal,
+ const int num_rot,
+ SPGCONST int rotations[][3][3],
+ const int num_q,
+ SPGCONST double qpoints[][3])
{
- return get_stabilized_reciprocal_mesh(grid_point,
- map,
- mesh,
- is_shift,
- is_time_reversal,
- num_rot,
- rotations,
- num_q,
- qpoints);
+ return get_stabilized_reciprocal_mesh(grid_address,
+ map,
+ mesh,
+ is_shift,
+ is_time_reversal,
+ num_rot,
+ rotations,
+ num_q,
+ qpoints);
}
-SpglibTriplets * spg_get_triplets_reciprocal_mesh(const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3])
+int spg_get_grid_points_by_rotations(int rot_grid_points[],
+ const int address_orig[3],
+ const int num_rot,
+ SPGCONST int rot_reciprocal[][3][3],
+ const int mesh[3],
+ const int is_shift[3])
{
- return get_triplets_reciprocal_mesh(mesh,
- is_time_reversal,
- num_rot,
- rotations);
+ int i;
+ MatINT *rot;
+
+ rot = NULL;
+
+ if ((rot = mat_alloc_MatINT(num_rot)) == NULL) {
+ return 0;
+ }
+
+ for (i = 0; i < num_rot; i++) {
+ mat_copy_matrix_i3(rot->mat[i], rot_reciprocal[i]);
+ }
+ kpt_get_grid_points_by_rotations(rot_grid_points,
+ address_orig,
+ rot,
+ mesh,
+ is_shift);
+ mat_free_MatINT(rot);
+ rot = NULL;
+
+ return 1;
}
-void spg_free_triplets(SpglibTriplets * spg_triplets)
+int spg_get_BZ_grid_points_by_rotations(int rot_grid_points[],
+ const int address_orig[3],
+ const int num_rot,
+ SPGCONST int rot_reciprocal[][3][3],
+ const int mesh[3],
+ const int is_shift[3],
+ const int bz_map[])
{
- free(spg_triplets->triplets);
- spg_triplets->triplets = NULL;
- free(spg_triplets->weights);
- spg_triplets->weights = NULL;
- free(spg_triplets);
- free(spg_triplets->mesh_points);
- spg_triplets->mesh_points = NULL;
- spg_triplets = NULL;
+ int i;
+ MatINT *rot;
+
+ rot = NULL;
+
+ if ((rot = mat_alloc_MatINT(num_rot)) == NULL) {
+ return 0;
+ }
+
+ for (i = 0; i < num_rot; i++) {
+ mat_copy_matrix_i3(rot->mat[i], rot_reciprocal[i]);
+ }
+ kpt_get_BZ_grid_points_by_rotations(rot_grid_points,
+ address_orig,
+ rot,
+ mesh,
+ is_shift,
+ bz_map);
+ mat_free_MatINT(rot);
+ rot = NULL;
+
+ return 1;
}
-int spg_get_triplets_reciprocal_mesh_at_q(int weights[],
- int grid_points[][3],
- int third_q[],
- const int grid_point,
- const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3])
+int spg_relocate_BZ_grid_address(int bz_grid_address[][3],
+ int bz_map[],
+ SPGCONST int grid_address[][3],
+ const int mesh[3],
+ SPGCONST double rec_lattice[3][3],
+ const int is_shift[3])
{
- return get_triplets_reciprocal_mesh_at_q(weights,
- grid_points,
- third_q,
- grid_point,
- mesh,
- is_time_reversal,
- num_rot,
- rotations);
+ return kpt_relocate_BZ_grid_address(bz_grid_address,
+ bz_map,
+ grid_address,
+ mesh,
+ rec_lattice,
+ is_shift);
}
-int spg_extract_triplets_reciprocal_mesh_at_q(int triplets_at_q[][3],
- int weight_triplets_at_q[],
- const int fixed_grid_number,
- const int num_triplets,
- SPGCONST int triplets[][3],
- const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3])
+/*--------*/
+/* Niggli */
+/*--------*/
+/* Return 0 if failed */
+int spg_niggli_reduce(double lattice[3][3], const double symprec)
{
- return extract_triplets_reciprocal_mesh_at_q(triplets_at_q,
- weight_triplets_at_q,
- fixed_grid_number,
- num_triplets,
- triplets,
- mesh,
- is_time_reversal,
- num_rot,
- rotations);
+ int i, j, succeeded;
+ double vals[9];
+
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ vals[i * 3 + j] = lattice[i][j];
+ }
+ }
+
+ succeeded = niggli_reduce(vals, symprec);
+
+ if (succeeded) {
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ lattice[i][j] = vals[i * 3 + j];
+ }
+ }
+ spglib_error_code = SPGLIB_SUCCESS;
+ } else {
+ spglib_error_code = SPGERR_NIGGLI_FAILED;
+ }
+
+ return succeeded;
}
+
+
+/*=======*/
+/* local */
+/*=======*/
+
+/*---------*/
+/* general */
+/*---------*/
+/* Return NULL if failed */
static SpglibDataset * get_dataset(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const int hall_number,
+ const double symprec,
+ const double angle_tolerance)
{
- int i, j;
- int *mapping_table, *wyckoffs, *equiv_atoms, *equiv_atoms_prim;
- double tolerance;
- Spacegroup spacegroup;
SpglibDataset *dataset;
- Cell *cell, *primitive;
- double inv_mat[3][3];
- Symmetry *symmetry;
+ Cell *cell;
+ DataContainer *container;
- dataset = (SpglibDataset*) malloc(sizeof(SpglibDataset));
+ dataset = NULL;
+ cell = NULL;
+ container = NULL;
+
+ if ((dataset = init_dataset()) == NULL) {
+ goto not_found;
+ }
+
+ if ((cell = cel_alloc_cell(num_atom)) == NULL) {
+ free(dataset);
+ dataset = NULL;
+ goto not_found;
+ }
- cell = cel_alloc_cell(num_atom);
cel_set_cell(cell, lattice, position, types);
+ if (cel_any_overlap_with_same_type(cell, symprec)) {
+ cel_free_cell(cell);
+ cell = NULL;
+ free(dataset);
+ dataset = NULL;
+ goto atoms_too_close;
+ }
- mapping_table = (int*) malloc(sizeof(int) * cell->size);
- primitive = prm_get_primitive_with_mapping_table(mapping_table,
- cell,
- symprec);
- tolerance = prm_get_current_tolerance();
- spacegroup = spa_get_spacegroup_with_primitive(primitive, tolerance);
-
- if (spacegroup.number > 0) {
- /* Spacegroup type, transformation matrix, origin shift */
- dataset->spacegroup_number = spacegroup.number;
- dataset->hall_number = spacegroup.hall_number;
- strcpy(dataset->international_symbol, spacegroup.international_short);
- strcpy(dataset->hall_symbol, spacegroup.hall_symbol);
- mat_inverse_matrix_d3(inv_mat, lattice, tolerance);
- mat_multiply_matrix_d3(dataset->transformation_matrix,
- inv_mat,
- spacegroup.bravais_lattice);
- mat_copy_vector_d3(dataset->origin_shift, spacegroup.origin_shift);
-
- /* Wyckoff positions */
- wyckoffs = (int*) malloc(sizeof(int) * primitive->size);
- equiv_atoms_prim = (int*) malloc(sizeof(int) * primitive->size);
- for (i = 0; i < primitive->size; i++) {
- wyckoffs[i] = -1;
- equiv_atoms_prim[i] = -1;
- }
- ref_get_Wyckoff_positions(wyckoffs,
- equiv_atoms_prim,
- primitive,
- &spacegroup,
- tolerance);
- dataset->n_atoms = cell->size;
- dataset->wyckoffs = (int*) malloc(sizeof(int) * cell->size);
- for (i = 0; i < cell->size; i++) {
- dataset->wyckoffs[i] = wyckoffs[mapping_table[i]];
+ if ((container = det_determine_all(cell,
+ hall_number,
+ symprec,
+ angle_tolerance))
+ != NULL) {
+ if (set_dataset(dataset,
+ cell,
+ container->primitive,
+ container->spacegroup,
+ container->exact_structure)) {
+ goto found;
}
-
- free(wyckoffs);
- wyckoffs = NULL;
-
- /* Equivalent atoms */
- dataset->equivalent_atoms = (int*) malloc(sizeof(int) * cell->size);
- equiv_atoms = (int*) malloc(sizeof(int) * primitive->size);
- for (i = 0; i < primitive->size; i++) {
- for (j = 0; j < cell->size; j++) {
- if (mapping_table[j] == equiv_atoms_prim[i]) {
- equiv_atoms[i] = j;
- break;
- }
- }
- }
- for (i = 0; i < cell->size; i++) {
- dataset->equivalent_atoms[i] = equiv_atoms[mapping_table[i]];
- }
- free(equiv_atoms);
- equiv_atoms = NULL;
-
- free(equiv_atoms_prim);
- equiv_atoms_prim = NULL;
-
- /* Symmetry operations */
- symmetry = ref_get_refined_symmetry_operations(cell,
- primitive,
- &spacegroup,
- tolerance);
- dataset->rotations = (int (*)[3][3]) malloc(sizeof(int[3][3]) * symmetry->size);
- dataset->translations = (double (*)[3]) malloc(sizeof(double[3]) * symmetry->size);
- dataset->n_operations = symmetry->size;
- for (i = 0; i < symmetry->size; i++) {
- mat_copy_matrix_i3(dataset->rotations[i], symmetry->rot[i]);
- mat_copy_vector_d3(dataset->translations[i], symmetry->trans[i]);
- }
- sym_free_symmetry(symmetry);
+ }
- } else {
- dataset->spacegroup_number = 0;
+ cel_free_cell(cell);
+ cell = NULL;
+ free(dataset);
+ dataset = NULL;
+
+ not_found:
+ spglib_error_code = SPGERR_SPACEGROUP_SEARCH_FAILED;
+ return NULL;
+
+ atoms_too_close:
+ spglib_error_code = SPGERR_ATOMS_TOO_CLOSE;
+ return NULL;
+
+ found:
+ det_free_container(container);
+ cel_free_cell(cell);
+ cell = NULL;
+
+ spglib_error_code = SPGLIB_SUCCESS;
+ return dataset;
+}
+
+static SpglibDataset * init_dataset(void)
+{
+ SpglibDataset *dataset;
+
+ dataset = NULL;
+
+ if ((dataset = (SpglibDataset*) malloc(sizeof(SpglibDataset))) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ return NULL;
}
- free(mapping_table);
- mapping_table = NULL;
+ dataset->spacegroup_number = 0;
+ dataset->hall_number = 0;
+ strcpy(dataset->international_symbol, "");
+ strcpy(dataset->hall_symbol, "");
+ strcpy(dataset->choice, "");
+ dataset->origin_shift[0] = 0;
+ dataset->origin_shift[1] = 0;
+ dataset->origin_shift[2] = 0;
+ dataset->n_atoms = 0;
+ dataset->wyckoffs = NULL;
+ dataset->equivalent_atoms = NULL;
+ dataset->mapping_to_primitive = NULL;
+ dataset->n_operations = 0;
+ dataset->rotations = NULL;
+ dataset->translations = NULL;
+ dataset->n_std_atoms = 0;
+ dataset->std_positions = NULL;
+ dataset->std_types = NULL;
+ dataset->std_mapping_to_primitive = NULL;
+ /* dataset->pointgroup_number = 0; */
+ strcpy(dataset->pointgroup_symbol, "");
- cel_free_cell(primitive);
+ return dataset;
+}
- if (dataset->spacegroup_number == 0) {
- strcpy(dataset->international_symbol, "");
- strcpy(dataset->hall_symbol, "");
- dataset->origin_shift[0] = 0;
- dataset->origin_shift[1] = 0;
- dataset->origin_shift[2] = 0;
- dataset->n_atoms = 0;
- dataset->wyckoffs = NULL;
+/* Return 0 if failed */
+static int set_dataset(SpglibDataset * dataset,
+ const Cell * cell,
+ const Primitive * primitive,
+ SPGCONST Spacegroup * spacegroup,
+ ExactStructure *exstr)
+{
+ int i;
+ double inv_lat[3][3];
+ Pointgroup pointgroup;
+
+ /* Spacegroup type, transformation matrix, origin shift */
+ dataset->n_atoms = cell->size;
+ dataset->spacegroup_number = spacegroup->number;
+ dataset->hall_number = spacegroup->hall_number;
+ strcpy(dataset->international_symbol, spacegroup->international_short);
+ strcpy(dataset->hall_symbol, spacegroup->hall_symbol);
+ strcpy(dataset->choice, spacegroup->choice);
+ mat_inverse_matrix_d3(inv_lat, spacegroup->bravais_lattice, 0);
+ mat_multiply_matrix_d3(dataset->transformation_matrix,
+ inv_lat, cell->lattice);
+ mat_copy_vector_d3(dataset->origin_shift, spacegroup->origin_shift);
+
+ dataset->n_operations = exstr->symmetry->size;
+
+ if ((dataset->rotations =
+ (int (*)[3][3]) malloc(sizeof(int[3][3]) * dataset->n_operations))
+ == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ goto err;
+ }
+
+ if ((dataset->translations =
+ (double (*)[3]) malloc(sizeof(double[3]) * dataset->n_operations))
+ == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ goto err;
+ }
+
+ for (i = 0; i < exstr->symmetry->size; i++) {
+ mat_copy_matrix_i3(dataset->rotations[i], exstr->symmetry->rot[i]);
+ mat_copy_vector_d3(dataset->translations[i], exstr->symmetry->trans[i]);
+ }
+
+ /* Wyckoff positions */
+ if ((dataset->wyckoffs = (int*) malloc(sizeof(int) * dataset->n_atoms))
+ == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ goto err;
+ }
+
+ if ((dataset->equivalent_atoms =
+ (int*) malloc(sizeof(int) * dataset->n_atoms)) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ goto err;
+ }
+
+ for (i = 0; i < dataset->n_atoms; i++) {
+ dataset->wyckoffs[i] = exstr->wyckoffs[i];
+ dataset->equivalent_atoms[i] = exstr->equivalent_atoms[i];
+ }
+
+ if ((dataset->mapping_to_primitive =
+ (int*) malloc(sizeof(int) * dataset->n_atoms)) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ goto err;
+ }
+
+ debug_print("Refined cell after ref_get_Wyckoff_positions\n");
+ debug_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ debug_print_matrix_d3(exstr->bravais->lattice);
+#ifdef SPGDEBUG
+ for (i = 0; i < bravais->size; i++) {
+ printf("%d: %f %f %f\n",
+ exstr->bravais->types[i],
+ exstr->bravais->position[i][0],
+ exstr->bravais->position[i][1],
+ exstr->bravais->position[i][2]);
+ }
+#endif
+
+ for (i = 0; i < dataset->n_atoms; i++) {
+ dataset->mapping_to_primitive[i] = primitive->mapping_table[i];
+ }
+
+ dataset->n_std_atoms = exstr->bravais->size;
+ mat_copy_matrix_d3(dataset->std_lattice, exstr->bravais->lattice);
+
+ if ((dataset->std_positions =
+ (double (*)[3]) malloc(sizeof(double[3]) * dataset->n_std_atoms))
+ == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ goto err;
+ }
+
+ if ((dataset->std_types = (int*) malloc(sizeof(int) * dataset->n_std_atoms))
+ == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ goto err;
+ }
+
+ if ((dataset->std_mapping_to_primitive =
+ (int*) malloc(sizeof(int) * dataset->n_std_atoms)) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ goto err;
+ }
+
+ for (i = 0; i < dataset->n_std_atoms; i++) {
+ mat_copy_vector_d3(dataset->std_positions[i], exstr->bravais->position[i]);
+ dataset->std_types[i] = exstr->bravais->types[i];
+ dataset->std_mapping_to_primitive[i] = exstr->std_mapping_to_primitive[i];
+ }
+
+ /* dataset->pointgroup_number = spacegroup->pointgroup_number; */
+ pointgroup = ptg_get_pointgroup(spacegroup->pointgroup_number);
+ strcpy(dataset->pointgroup_symbol, pointgroup.symbol);
+
+ return 1;
+
+ err:
+ if (dataset->std_positions != NULL) {
+ free(dataset->std_positions);
+ dataset->std_positions = NULL;
+ }
+ if (dataset->std_mapping_to_primitive != NULL) {
+ free(dataset->std_mapping_to_primitive);
+ dataset->std_mapping_to_primitive = NULL;
+ }
+ if (dataset->equivalent_atoms != NULL) {
+ free(dataset->equivalent_atoms);
dataset->equivalent_atoms = NULL;
- dataset->n_operations = 0;
- dataset->rotations = NULL;
+ }
+ if (dataset->mapping_to_primitive != NULL) {
+ free(dataset->mapping_to_primitive);
+ dataset->mapping_to_primitive = NULL;
+ }
+ if (dataset->wyckoffs != NULL) {
+ free(dataset->wyckoffs);
+ dataset->wyckoffs = NULL;
+ }
+ if (dataset->translations != NULL) {
+ free(dataset->translations);
dataset->translations = NULL;
}
-
- cel_free_cell(cell);
- return dataset;
+ if (dataset->rotations != NULL) {
+ free(dataset->rotations);
+ dataset->rotations = NULL;
+ }
+
+ return 0;
}
-static int get_symmetry(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
+/* Return 0 if failed */
+static int get_symmetry_from_dataset(int rotation[][3][3],
+ double translation[][3],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- int i, j, size;
- Symmetry *symmetry;
- Cell *cell;
+ int i, num_sym;
+ SpglibDataset *dataset;
- cell = cel_alloc_cell(num_atom);
- cel_set_cell(cell, lattice, position, types);
- symmetry = sym_get_operation(cell, symprec);
+ num_sym = 0;
+ dataset = NULL;
- if (symmetry->size > max_size) {
- fprintf(stderr, "spglib: Indicated max size(=%d) is less than number ", max_size);
- fprintf(stderr, "spglib: of symmetry operations(=%d).\n", symmetry->size);
- sym_free_symmetry(symmetry);
+ if ((dataset = get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance)) == NULL) {
return 0;
}
- for (i = 0; i < symmetry->size; i++) {
- mat_copy_matrix_i3(rotation[i], symmetry->rot[i]);
- for (j = 0; j < 3; j++) {
- translation[i][j] = symmetry->trans[i][j];
- }
+ if (dataset->n_operations > max_size) {
+ fprintf(stderr,
+ "spglib: Indicated max size(=%d) is less than number ", max_size);
+ fprintf(stderr,
+ "spglib: of symmetry operations(=%d).\n", dataset->n_operations);
+ goto err;
}
- size = symmetry->size;
+ num_sym = dataset->n_operations;
+ for (i = 0; i < num_sym; i++) {
+ mat_copy_matrix_i3(rotation[i], dataset->rotations[i]);
+ mat_copy_vector_d3(translation[i], dataset->translations[i]);
+ }
- cel_free_cell(cell);
- sym_free_symmetry(symmetry);
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ return num_sym;
- return size;
+ err:
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ spglib_error_code = SPGERR_ARRAY_SIZE_SHORTAGE;
+ return 0;
}
+/* Return 0 if failed */
static int get_symmetry_with_collinear_spin(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const double spins[],
- const int num_atom,
- const double symprec)
+ double translation[][3],
+ int equivalent_atoms[],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const double spins[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- int i, j, size;
- Symmetry *symmetry;
+ int i, size;
+ Symmetry *symmetry, *sym_nonspin;
Cell *cell;
+ SpglibDataset *dataset;
+
+ size = 0;
+ symmetry = NULL;
+ sym_nonspin = NULL;
+ cell = NULL;
+ dataset = NULL;
+
+ if ((cell = cel_alloc_cell(num_atom)) == NULL) {
+ goto err;
+ }
- cell = cel_alloc_cell(num_atom);
cel_set_cell(cell, lattice, position, types);
- symmetry = spn_get_collinear_operation(cell, spins, symprec);
-
+
+ if ((dataset = get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance)) == NULL) {
+ cel_free_cell(cell);
+ cell = NULL;
+ goto get_dataset_failed;
+ }
+
+ if ((sym_nonspin = sym_alloc_symmetry(dataset->n_operations)) == NULL) {
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ cel_free_cell(cell);
+ cell = NULL;
+ goto err;
+ }
+
+ for (i = 0; i < dataset->n_operations; i++) {
+ mat_copy_matrix_i3(sym_nonspin->rot[i], dataset->rotations[i]);
+ mat_copy_vector_d3(sym_nonspin->trans[i], dataset->translations[i]);
+ }
+ spg_free_dataset(dataset);
+ dataset = NULL;
+
+ if ((symmetry = spn_get_collinear_operations(equivalent_atoms,
+ sym_nonspin,
+ cell,
+ spins,
+ symprec)) == NULL) {
+ sym_free_symmetry(sym_nonspin);
+ sym_nonspin = NULL;
+ cel_free_cell(cell);
+ cell = NULL;
+ goto err;
+ }
+
+ sym_free_symmetry(sym_nonspin);
+ sym_nonspin = NULL;
+
if (symmetry->size > max_size) {
- fprintf(stderr, "spglib: Indicated max size(=%d) is less than number ", max_size);
+ fprintf(stderr, "spglib: Indicated max size(=%d) is less than number ",
+ max_size);
fprintf(stderr, "spglib: of symmetry operations(=%d).\n", symmetry->size);
- sym_free_symmetry(symmetry);
- return 0;
+ goto ret;
}
for (i = 0; i < symmetry->size; i++) {
mat_copy_matrix_i3(rotation[i], symmetry->rot[i]);
- for (j = 0; j < 3; j++) {
- translation[i][j] = symmetry->trans[i][j];
- }
+ mat_copy_vector_d3(translation[i], symmetry->trans[i]);
}
size = symmetry->size;
- cel_free_cell(cell);
+ ret:
sym_free_symmetry(symmetry);
+ symmetry = NULL;
+ cel_free_cell(cell);
+ cell = NULL;
+ spglib_error_code = SPGLIB_SUCCESS;
return size;
+
+ err:
+ spglib_error_code = SPGERR_SYMMETRY_OPERATION_SEARCH_FAILED;
+
+ get_dataset_failed:
+ return 0;
}
+/* Return 0 if failed */
static int get_multiplicity(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- Symmetry *symmetry;
- Cell *cell;
int size;
+ SpglibDataset *dataset;
- cell = cel_alloc_cell(num_atom);
- cel_set_cell(cell, lattice, position, types);
- symmetry = sym_get_operation(cell, symprec);
+ size = 0;
+ dataset = NULL;
- size = symmetry->size;
+ if ((dataset = get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance)) == NULL) {
+ return 0;
+ }
- cel_free_cell(cell);
- sym_free_symmetry(symmetry);
+ size = dataset->n_operations;
+ spg_free_dataset(dataset);
+ dataset = NULL;
return size;
}
-static int find_primitive(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec)
+static int standardize_primitive(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- int i, j, num_prim_atom=0;
- Cell *cell, *primitive;
+ int i, num_prim_atom;
+ int *mapping_table;
+ Centering centering;
+ SpglibDataset *dataset;
+ Cell *primitive, *bravais;
- cell = cel_alloc_cell(num_atom);
- cel_set_cell(cell, lattice, position, types);
+ double identity[3][3] = {{ 1, 0, 0 },
+ { 0, 1, 0 },
+ { 0, 0, 1 }};
- /* find primitive cell */
- primitive = prm_get_primitive(cell, symprec);
- if (primitive->size == cell->size) { /* Already primitive */
- num_prim_atom = 0;
- } else { /* Primitive cell was found. */
- num_prim_atom = primitive->size;
- if (num_prim_atom < num_atom && num_prim_atom > 0 ) {
- mat_copy_matrix_d3(lattice, primitive->lattice);
- for (i = 0; i < primitive->size; i++) {
- types[i] = primitive->types[i];
- for (j=0; j<3; j++) {
- position[i][j] = primitive->position[i][j];
- }
- }
+ num_prim_atom = 0;
+ mapping_table = NULL;
+ dataset = NULL;
+ primitive = NULL;
+ bravais = NULL;
+
+ if ((dataset = get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance)) == NULL) {
+ return 0;
+ }
+
+ if ((centering = get_centering(dataset->hall_number)) == CENTERING_ERROR) {
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ goto err;
+ }
+
+ if ((bravais = cel_alloc_cell(dataset->n_std_atoms)) == NULL) {
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ goto err;
+ }
+
+ cel_set_cell(bravais,
+ dataset->std_lattice,
+ dataset->std_positions,
+ dataset->std_types);
+
+ spg_free_dataset(dataset);
+ dataset = NULL;
+
+ if ((mapping_table = (int*) malloc(sizeof(int) * bravais->size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ cel_free_cell(bravais);
+ bravais = NULL;
+ goto err;
+ }
+
+ primitive = spa_transform_to_primitive(mapping_table,
+ bravais,
+ identity,
+ centering,
+ symprec);
+
+ for (i = 0; i < primitive->size; i++) {
+ /* This is an assertion. */
+ if (mapping_table[i] != i) {
+ warning_print("spglib: spa_transform_to_primitive failed.");
+ warning_print("Unexpected atom index mapping to primitive (%d != %d).\n",
+ mapping_table[i], i);
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ free(mapping_table);
+ mapping_table = NULL;
+ cel_free_cell(bravais);
+ bravais = NULL;
+ goto err;
}
}
+ free(mapping_table);
+ mapping_table = NULL;
+ cel_free_cell(bravais);
+ bravais = NULL;
+
+ if (primitive == NULL) {
+ goto err;
+ }
+
+ set_cell(lattice, position, types, primitive);
+ num_prim_atom = primitive->size;
+
cel_free_cell(primitive);
- cel_free_cell(cell);
-
+ primitive = NULL;
+
return num_prim_atom;
+
+ err:
+ spglib_error_code = SPGERR_CELL_STANDARDIZATION_FAILED;
+ return 0;
}
-static int get_international(char symbol[11],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
+static int standardize_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const int num_array_size,
+ const double symprec,
+ const double angle_tolerance)
{
- Cell *cell;
- Spacegroup spacegroup;
+ int i, n_std_atoms;
+ SpglibDataset *dataset;
- cell = cel_alloc_cell(num_atom);
- cel_set_cell(cell, lattice, position, types);
- spacegroup = spa_get_spacegroup(cell, symprec);
- if (spacegroup.number > 0) {
- strcpy(symbol, spacegroup.international_short);
+ n_std_atoms = 0;
+ dataset = NULL;
+
+ if ((dataset = get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance)) == NULL) {
+ goto err;
}
- cel_free_cell(cell);
-
- return spacegroup.number;
-}
+ if (num_array_size > 0) {
+ if (num_atom < dataset->n_std_atoms) {
+ goto array_size_shortage_err;
+ }
+ }
-static int get_schoenflies(char symbol[10],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
-{
- Cell *cell;
- Spacegroup spacegroup;
+ n_std_atoms = dataset->n_std_atoms;
+ mat_copy_matrix_d3(lattice, dataset->std_lattice);
+ for (i = 0; i < dataset->n_std_atoms; i++) {
+ types[i] = dataset->std_types[i];
+ mat_copy_vector_d3(position[i], dataset->std_positions[i]);
+ }
- cell = cel_alloc_cell(num_atom);
- cel_set_cell(cell, lattice, position, types);
+ spg_free_dataset(dataset);
+ dataset = NULL;
- spacegroup = spa_get_spacegroup(cell, symprec);
- if (spacegroup.number > 0) {
- strcpy(symbol, spacegroup.schoenflies);
- }
+ return n_std_atoms;
- cel_free_cell(cell);
+err:
+ spglib_error_code = SPGERR_CELL_STANDARDIZATION_FAILED;
+ return 0;
- return spacegroup.number;
+array_size_shortage_err:
+ spglib_error_code = SPGERR_ARRAY_SIZE_SHORTAGE;
+ return 0;
}
-static int refine_cell(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec)
+static int get_standardized_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const int num_array_size,
+ const int to_primitive,
+ const double symprec,
+ const double angle_tolerance)
{
- int i, num_atom_bravais;
- Cell *cell, *bravais;
+ int i, num_std_atom, num_prim_atom;
+ int *mapping_table;
+ SpglibDataset *dataset;
+ Cell *std_cell, *cell, *primitive;
+ Centering centering;
+
+ num_std_atom = 0;
+ mapping_table = NULL;
+ dataset = NULL;
+ std_cell = NULL;
+ cell = NULL;
+ primitive = NULL;
+
+ if ((dataset = get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance)) == NULL) {
+ goto err;
+ }
+
+ if ((centering = get_centering(dataset->hall_number)) == CENTERING_ERROR) {
+ goto err;
+ }
+
+ if ((cell = cel_alloc_cell(num_atom)) == NULL) {
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ goto err;
+ }
- cell = cel_alloc_cell(num_atom);
cel_set_cell(cell, lattice, position, types);
- bravais = ref_refine_cell(cell, symprec);
- cel_free_cell(cell);
+ if ((mapping_table = (int*) malloc(sizeof(int) * cell->size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ cel_free_cell(cell);
+ cell = NULL;
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ goto err;
+ }
+
+ if ((primitive = spa_transform_to_primitive(mapping_table,
+ cell,
+ dataset->transformation_matrix,
+ centering,
+ symprec)) == NULL) {
+ warning_print("spglib: spa_transform_to_primitive failed.");
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ }
- if (bravais->size > 0) {
- mat_copy_matrix_d3(lattice, bravais->lattice);
- num_atom_bravais = bravais->size;
- for (i = 0; i < bravais->size; i++) {
- types[i] = bravais->types[i];
- mat_copy_vector_d3(position[i], bravais->position[i]);
+ for (i = 0; i < cell->size; i++) {
+ /* This is an assertion. */
+ if (mapping_table[i] != dataset->mapping_to_primitive[i]) {
+ warning_print("spglib: spa_transform_to_primitive failed.");
+ warning_print("Unexpected atom index mapping to primitive (%d != %d).\n",
+ mapping_table[i], dataset->mapping_to_primitive[i]);
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ free(mapping_table);
+ mapping_table = NULL;
+ cel_free_cell(cell);
+ cell = NULL;
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ goto err;
}
- } else {
- num_atom_bravais = 0;
}
- cel_free_cell(bravais);
-
- return num_atom_bravais;
-}
+ free(mapping_table);
+ mapping_table = NULL;
+ cel_free_cell(cell);
+ cell = NULL;
+ spg_free_dataset(dataset);
+ dataset = NULL;
-static int get_ir_kpoints(int map[],
- SPGCONST double kpoints[][3],
- const int num_kpoint,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const int is_time_reversal,
- const double symprec)
-{
- Symmetry *symmetry;
- Cell *cell;
- int num_ir_kpoint;
+ if (primitive == NULL) {
+ goto err;
+ }
- cell = cel_alloc_cell(num_atom);
- cel_set_cell(cell, lattice, position, types);
- symmetry = sym_get_operation(cell, symprec);
+ if (to_primitive || centering == PRIMITIVE) {
+ set_cell(lattice, position, types, primitive);
+ num_prim_atom = primitive->size;
+ cel_free_cell(primitive);
+ primitive = NULL;
+ return num_prim_atom;
+ }
- num_ir_kpoint = kpt_get_irreducible_kpoints(map,
- kpoints,
- num_kpoint,
- symmetry,
- is_time_reversal,
- symprec);
+ if ((std_cell = spa_transform_from_primitive(primitive, centering, symprec))
+ == NULL) {
+ warning_print("spglib: spa_transform_from_primitive failed.");
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ }
+ cel_free_cell(primitive);
+ primitive = NULL;
+ if (std_cell == NULL) {
+ goto err;
+ }
- cel_free_cell(cell);
- sym_free_symmetry(symmetry);
+ if (num_array_size > 0) {
+ if (num_array_size < std_cell->size) {
+ cel_free_cell(std_cell);
+ std_cell = NULL;
+ goto array_size_shortage_err;
+ }
+ }
- return num_ir_kpoint;
+ num_std_atom = std_cell->size;
+ set_cell(lattice, position, types, std_cell);
+ cel_free_cell(std_cell);
+ std_cell = NULL;
+ return num_std_atom;
+
+err:
+ spglib_error_code = SPGERR_CELL_STANDARDIZATION_FAILED;
+ return 0;
+
+array_size_shortage_err:
+ spglib_error_code = SPGERR_ARRAY_SIZE_SHORTAGE;
+ return 0;
}
-static int get_ir_reciprocal_mesh(int grid_point[][3],
- int map[],
- const int mesh[3],
- const int is_shift[3],
- const int is_time_reversal,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec)
+static void set_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ Cell * cell)
{
- Symmetry *symmetry;
- Cell *cell;
- int num_ir;
-
- cell = cel_alloc_cell(num_atom);
- cel_set_cell(cell, lattice, position, types);
- symmetry = sym_get_operation(cell, symprec);
+ int i;
- num_ir = kpt_get_irreducible_reciprocal_mesh(grid_point,
- map,
- mesh,
- is_shift,
- is_time_reversal,
- symmetry);
+ mat_copy_matrix_d3(lattice, cell->lattice);
+ for (i = 0; i < cell->size; i++) {
+ types[i] = cell->types[i];
+ mat_copy_vector_d3(position[i], cell->position[i]);
+ }
+}
+static Centering get_centering(int hall_number)
+{
+ SpacegroupType spgtype;
- cel_free_cell(cell);
- sym_free_symmetry(symmetry);
+ spgtype = spgdb_get_spacegroup_type(hall_number);
- return num_ir;
+ return spgtype.centering;
}
-static int get_stabilized_reciprocal_mesh(int grid_point[][3],
- int map[],
- const int mesh[3],
- const int is_shift[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3],
- const int num_q,
- SPGCONST double qpoints[][3])
+static int get_international(char symbol[11],
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- MatINT *rot_real;
- int i, num_ir;
-
- rot_real = mat_alloc_MatINT(num_rot);
- for (i = 0; i < num_rot; i++) {
- mat_copy_matrix_i3(rot_real->mat[i], rotations[i]);
+ SpglibDataset *dataset;
+ int number;
+
+ dataset = NULL;
+
+ if ((dataset = get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance)) == NULL) {
+ goto err;
}
- num_ir = kpt_get_stabilized_reciprocal_mesh(grid_point,
- map,
- mesh,
- is_shift,
- is_time_reversal,
- rot_real,
- num_q,
- qpoints);
+ if (dataset->spacegroup_number > 0) {
+ number = dataset->spacegroup_number;
+ strcpy(symbol, dataset->international_symbol);
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ } else {
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ goto err;
+ }
- mat_free_MatINT(rot_real);
+ spglib_error_code = SPGLIB_SUCCESS;
+ return number;
- return num_ir;
+ err:
+ spglib_error_code = SPGERR_SPACEGROUP_SEARCH_FAILED;
+ return 0;
}
-static SpglibTriplets * get_triplets_reciprocal_mesh(const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3])
+static int get_schoenflies(char symbol[7],
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- int i, j, num_grid;
- MatINT *rot_real;
- Triplets *tps;
- SpglibTriplets *spg_triplets;
-
- num_grid = mesh[0] * mesh[1] * mesh[2];
- rot_real = mat_alloc_MatINT(num_rot);
- for (i = 0; i < num_rot; i++) {
- mat_copy_matrix_i3(rot_real->mat[i], rotations[i]);
- }
-
- tps = kpt_get_triplets_reciprocal_mesh(mesh,
- is_time_reversal,
- rot_real);
- mat_free_MatINT(rot_real);
+ SpglibDataset *dataset;
+ SpglibSpacegroupType spgtype;
+ int number;
- spg_triplets = (SpglibTriplets*) malloc(sizeof(SpglibTriplets));
- spg_triplets->size = tps->size;
- spg_triplets->triplets = (int (*)[3]) malloc(sizeof(int[3]) * tps->size);
- spg_triplets->weights = (int*) malloc(sizeof(int) * tps->size);
- spg_triplets->mesh_points = (int (*)[3]) malloc(sizeof(int[3]) * num_grid);
+ dataset = NULL;
- for (i = 0; i < 3; i++) {
- spg_triplets->mesh[i] = tps->mesh[i];
- }
- for (i = 0; i < num_grid; i++) {
- for (j = 0; j < 3; j++) {
- spg_triplets->mesh_points[i][j] = tps->mesh_points[i][j];
- }
+ if ((dataset = get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance)) == NULL) {
+ goto err;
}
- for (i = 0; i < tps->size; i++) {
- for (j = 0; j < 3; j++) {
- spg_triplets->triplets[i][j] = tps->triplets[i][j];
- }
- spg_triplets->weights[i] = tps->weights[i];
+ if (dataset->spacegroup_number > 0) {
+ number = dataset->spacegroup_number;
+ spgtype = spg_get_spacegroup_type(dataset->hall_number);
+ strcpy(symbol, spgtype.schoenflies);
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ } else {
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ goto err;
}
- kpt_free_triplets(tps);
- return spg_triplets;
+ spglib_error_code = SPGLIB_SUCCESS;
+ return number;
+
+ err:
+ spglib_error_code = SPGERR_SPACEGROUP_SEARCH_FAILED;
+ return 0;
}
-static int get_triplets_reciprocal_mesh_at_q(int weights[],
- int grid_points[][3],
- int third_q[],
- const int grid_point,
- const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3])
+
+/*---------*/
+/* kpoints */
+/*---------*/
+static int get_ir_reciprocal_mesh(int grid_address[][3],
+ int map[],
+ const int mesh[3],
+ const int is_shift[3],
+ const int is_time_reversal,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance)
{
- MatINT *rot_real;
- int i, num_ir;
-
- rot_real = mat_alloc_MatINT(num_rot);
- for (i = 0; i < num_rot; i++) {
- mat_copy_matrix_i3(rot_real->mat[i], rotations[i]);
+ SpglibDataset *dataset;
+ int num_ir, i;
+ MatINT *rotations, *rot_reciprocal;
+
+ if ((dataset = get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 0,
+ symprec,
+ angle_tolerance)) == NULL) {
+ return 0;
}
- num_ir = kpt_get_ir_triplets_at_q(weights,
- grid_points,
- third_q,
- grid_point,
- mesh,
- is_time_reversal,
- rot_real);
-
- mat_free_MatINT(rot_real);
+ if ((rotations = mat_alloc_MatINT(dataset->n_operations)) == NULL) {
+ spg_free_dataset(dataset);
+ dataset = NULL;
+ return 0;
+ }
+ for (i = 0; i < dataset->n_operations; i++) {
+ mat_copy_matrix_i3(rotations->mat[i], dataset->rotations[i]);
+ }
+ rot_reciprocal = kpt_get_point_group_reciprocal(rotations, is_time_reversal);
+ num_ir = kpt_get_irreducible_reciprocal_mesh(grid_address,
+ map,
+ mesh,
+ is_shift,
+ rot_reciprocal);
+ mat_free_MatINT(rot_reciprocal);
+ rot_reciprocal = NULL;
+ mat_free_MatINT(rotations);
+ rotations = NULL;
+ spg_free_dataset(dataset);
+ dataset = NULL;
return num_ir;
}
-static int extract_triplets_reciprocal_mesh_at_q(int triplets_at_q[][3],
- int weight_triplets_at_q[],
- const int fixed_grid_number,
- const int num_triplets,
- SPGCONST int triplets[][3],
- const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3])
+static int get_stabilized_reciprocal_mesh(int grid_address[][3],
+ int map[],
+ const int mesh[3],
+ const int is_shift[3],
+ const int is_time_reversal,
+ const int num_rot,
+ SPGCONST int rotations[][3][3],
+ const int num_q,
+ SPGCONST double qpoints[][3])
{
MatINT *rot_real;
int i, num_ir;
-
- rot_real = mat_alloc_MatINT(num_rot);
+
+ rot_real = NULL;
+
+ if ((rot_real = mat_alloc_MatINT(num_rot)) == NULL) {
+ return 0;
+ }
+
for (i = 0; i < num_rot; i++) {
mat_copy_matrix_i3(rot_real->mat[i], rotations[i]);
}
- num_ir = kpt_extract_triplets_reciprocal_mesh_at_q(triplets_at_q,
- weight_triplets_at_q,
- fixed_grid_number,
- num_triplets,
- triplets,
- mesh,
- is_time_reversal,
- rot_real);
+ num_ir = kpt_get_stabilized_reciprocal_mesh(grid_address,
+ map,
+ mesh,
+ is_shift,
+ is_time_reversal,
+ rot_real,
+ num_q,
+ qpoints);
-
mat_free_MatINT(rot_real);
+ rot_real = NULL;
return num_ir;
}
diff --git a/src/spglib.h b/src/spglib.h
index dfc90be..e1746b1 100644
--- a/src/spglib.h
+++ b/src/spglib.h
@@ -1,12 +1,45 @@
-/* spglib.h version 1.4.1 */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __spglib_H__
#define __spglib_H__
/* SPGCONST is used instead of 'const' so to avoid gcc warning. */
/* However there should be better way than this way.... */
+#ifndef SPGCONST
#define SPGCONST
+#endif
/*
------------------------------------------------------------------
@@ -14,15 +47,15 @@
lattice: Lattice vectors (in Cartesian)
[ [ a_x, b_x, c_x ],
- [ a_y, b_y, c_y ],
- [ a_z, b_z, c_z ] ]
+ [ a_y, b_y, c_y ],
+ [ a_z, b_z, c_z ] ]
position: Atomic positions (in fractional coordinates)
-
- [ [ x1_a, x1_b, x1_c ],
- [ x2_a, x2_b, x2_c ],
- [ x3_a, x3_b, x3_c ],
- ... ]
+
+ [ [ x1_a, x1_b, x1_c ],
+ [ x2_a, x2_b, x2_c ],
+ [ x3_a, x3_b, x3_c ],
+ ... ]
types: Atom types, i.e., species identified by number
@@ -32,8 +65,8 @@
each rotation is:
[ [ r_aa, r_ab, r_ac ],
- [ r_ba, r_bb, r_bc ],
- [ r_ca, r_cb, r_cc ] ]
+ [ r_ba, r_bb, r_bc ],
+ [ r_ca, r_cb, r_cc ] ]
translation: Translation vectors of symmetry operations
@@ -57,41 +90,94 @@
------------------------------------------------------------------
*/
+typedef enum {
+ SPGLIB_SUCCESS = 0,
+ SPGERR_SPACEGROUP_SEARCH_FAILED,
+ SPGERR_CELL_STANDARDIZATION_FAILED,
+ SPGERR_SYMMETRY_OPERATION_SEARCH_FAILED,
+ SPGERR_ATOMS_TOO_CLOSE,
+ SPGERR_POINTGROUP_NOT_FOUND,
+ SPGERR_NIGGLI_FAILED,
+ SPGERR_DELAUNAY_FAILED,
+ SPGERR_ARRAY_SIZE_SHORTAGE,
+ SPGERR_NONE,
+} SpglibError;
+
typedef struct {
int spacegroup_number;
int hall_number;
char international_symbol[11];
char hall_symbol[17];
- double transformation_matrix[3][3]; /* bravais_lattice = T * original_lattice */
- double origin_shift[3]; /* Origin shift in Bravais lattice */
- int n_operations; /* Symmetry operations from database */
+ char choice[6];
+ double transformation_matrix[3][3];
+ double origin_shift[3];
+ int n_operations;
int (*rotations)[3][3];
double (*translations)[3];
int n_atoms;
- int *wyckoffs; /* Wyckoff letters */
+ int *wyckoffs;
int *equivalent_atoms;
+ int *mapping_to_primitive;
+ int n_std_atoms;
+ double std_lattice[3][3];
+ int *std_types;
+ double (*std_positions)[3];
+ int *std_mapping_to_primitive;
+ /* int pointgroup_number; */
+ char pointgroup_symbol[6];
} SpglibDataset;
typedef struct {
- int size;
- int (*triplets)[3];
- int *weights;
- int mesh[3];
- int (*mesh_points)[3];
-} SpglibTriplets;
+ int number;
+ char international_short[11];
+ char international_full[20];
+ char international[32];
+ char schoenflies[7];
+ char hall_symbol[17];
+ char choice[6];
+ char pointgroup_international[6];
+ char pointgroup_schoenflies[4];
+ int arithmetic_crystal_class_number;
+ char arithmetic_crystal_class_symbol[7];
+} SpglibSpacegroupType;
+
+int spg_get_major_version(void);
+int spg_get_minor_version(void);
+int spg_get_micro_version(void);
+
+SpglibError spg_get_error_code(void);
+char * spg_get_error_message(SpglibError spglib_error);
SpglibDataset * spg_get_dataset(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec);
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec);
SpglibDataset * spgat_get_dataset(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance);
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
+
+/* hall_number = 0 gives the same as spg_get_dataset. */
+SpglibDataset * spg_get_dataset_with_hall_number(SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const int hall_number,
+ const double symprec);
+
+/* hall_number = 0 gives the same as spgat_get_dataset. */
+SpglibDataset *
+spgat_get_dataset_with_hall_number(SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const int hall_number,
+ const double symprec,
+ const double angle_tolerance);
void spg_free_dataset(SpglibDataset *dataset);
@@ -102,166 +188,192 @@ void spg_free_dataset(SpglibDataset *dataset);
/* ``translation[i]`` with same index give a symmetry oprations, */
/* i.e., these have to be used togather. */
int spg_get_symmetry(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec);
+ double translation[][3],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec);
int spgat_get_symmetry(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance);
+ double translation[][3],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
/* Find symmetry operations with collinear spins on atoms. */
int spg_get_symmetry_with_collinear_spin(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const double spins[],
- const int num_atom,
- const double symprec);
+ double translation[][3],
+ int equivalent_atoms[],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const double spins[],
+ const int num_atom,
+ const double symprec);
int spgat_get_symmetry_with_collinear_spin(int rotation[][3][3],
- double translation[][3],
- const int max_size,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const double spins[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance);
+ double translation[][3],
+ int equivalent_atoms[],
+ const int max_size,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const double spins[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
+
+/* Space group type (hall_number) is searched from symmetry operations. */
+int spg_get_hall_number_from_symmetry(SPGCONST int rotation[][3][3],
+ SPGCONST double translation[][3],
+ const int num_operations,
+ const double symprec);
/* Return exact number of symmetry operations. This function may */
/* be used in advance to allocate memoery space for symmetry */
-/* operations. Only upper bound is required, */
-/* ``spg_get_max_multiplicity`` can be used instead of this */
-/* function and ``spg_get_max_multiplicity`` is faster than this */
-/* function. */
+/* operations. */
int spg_get_multiplicity(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec);
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec);
int spgat_get_multiplicity(SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance);
-
-/* Considering periodicity of crystal, one of the possible smallest */
-/* lattice is searched. The lattice is stored in ``smallest_lattice``. */
-int spg_get_smallest_lattice(double smallest_lattice[3][3],
- SPGCONST double lattice[3][3],
- const double symprec);
-
-/* A primitive cell is found from an input cell. Be careful that */
-/* ``lattice``, ``position``, and ``types`` are overwritten. */
-/* ``num_atom`` is returned as return value. */
-/* When any primitive cell is not found, 0 is returned. */
-int spg_find_primitive(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec);
-
-int spgat_find_primitive(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance);
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
/* Space group is found in international table symbol (``symbol``) and */
/* number (return value). 0 is returned when it fails. */
int spg_get_international(char symbol[11],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec);
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec);
int spgat_get_international(char symbol[11],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance);
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
/* Space group is found in schoenflies (``symbol``) and as number (return */
/* value). 0 is returned when it fails. */
-int spg_get_schoenflies(char symbol[10],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec);
-
-int spgat_get_schoenflies(char symbol[10],
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance);
+int spg_get_schoenflies(char symbol[7],
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec);
+
+int spgat_get_schoenflies(char symbol[7],
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
/* Point group symbol is obtained from the rotation part of */
/* symmetry operations */
int spg_get_pointgroup(char symbol[6],
- int trans_mat[3][3],
- SPGCONST int rotations[][3][3],
- const int num_rotations);
+ int trans_mat[3][3],
+ SPGCONST int rotations[][3][3],
+ const int num_rotations);
+
+/* Space-group operations in built-in database are accessed by index */
+/* of hall symbol. The index is defined as number from 1 to 530. */
+/* The muximum number of symmetry operations is 192. */
+int spg_get_symmetry_from_database(int rotations[192][3][3],
+ double translations[192][3],
+ const int hall_number);
+
+/* Space-group type information is accessed by index of hall symbol. */
+/* The index is defined as number from 1 to 530. */
+SpglibSpacegroupType spg_get_spacegroup_type(const int hall_number);
+
+
+int spg_standardize_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const int to_primitive,
+ const int no_idealize,
+ const double symprec);
+
+int spgat_standardize_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const int to_primitive,
+ const int no_idealize,
+ const double symprec,
+ const double angle_tolerance);
+
+/* This is a wrapper of spg_standardize_cell. */
+/* A primitive cell is found from an input cell. */
+/* Be careful that ``lattice``, ``position``, and ``types`` are overwritten. */
+/* ``num_atom`` is returned as return value. */
+/* When any primitive cell is not found, 0 is returned. */
+int spg_find_primitive(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec);
+
+int spgat_find_primitive(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
+/* This is a wrapper of spg_standardize_cell. */
/* Bravais lattice with internal atomic points are returned. */
/* The arrays are require to have 4 times larger memory space */
/* those of input cell. */
/* When bravais lattice could not be found, or could not be */
/* symmetrized, 0 is returned. */
int spg_refine_cell(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec);
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec);
int spgat_refine_cell(double lattice[3][3],
- double position[][3],
- int types[],
- const int num_atom,
- const double symprec,
- const double angle_tolerance);
-
-/* Irreducible k-points are searched from the input k-points */
-/* (``kpoints``). The result is returned as a map of */
-/* numbers (``map``), where ``kpoints`` and ``map`` have to have */
-/* the same number of elements. The array index of ``map`` */
-/* corresponds to the reducible k-point numbering. After finding */
-/* irreducible k-points, the indices of the irreducible k-points */
-/* are mapped to the elements of ``map``, i.e., number of unique */
-/* values in ``map`` is the number of the irreducible k-points. */
-/* The number of the irreducible k-points is also returned as the */
-/* return value. */
-int spg_get_ir_kpoints(int map[],
- SPGCONST double kpoints[][3],
- const int num_kpoints,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const int is_time_reversal,
- const double symprec);
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec,
+ const double angle_tolerance);
+
+/* Delaunay reduction for lattice parameters */
+/* ``lattice`` is overwritten when the redution ends succeeded. */
+int spg_delaunay_reduce(double lattice[3][3], const double symprec);
+
+/*---------*/
+/* kpoints */
+/*---------*/
+
+/* Translate grid address to grid point index in the kspclib definition */
+/* (see the comment in kgrid.h.) */
+/* A q-point in fractional coordinates is given as */
+/* ((grid_address * 2 + (shift != 0)) / (mesh * 2)). */
+/* Each element of shift[] is 0 or non-zero. */
+int spg_get_grid_point_from_address(const int grid_address[3],
+ const int mesh[3]);
/* Irreducible reciprocal grid points are searched from uniform */
/* mesh grid points specified by ``mesh`` and ``is_shift``. */
@@ -274,67 +386,99 @@ int spg_get_ir_kpoints(int map[],
/* faster when the mesh is very dense. */
/* The reducible uniform grid points are returned in reduced */
-/* coordinates as ``grid_point``. A map between reducible and */
+/* coordinates as ``grid_address``. A map between reducible and */
/* irreducible points are returned as ``map`` as in the indices of */
-/* ``grid_point``. The number of the irreducible k-points are */
+/* ``grid_address``. The number of the irreducible k-points are */
/* returned as the return value. The time reversal symmetry is */
/* imposed by setting ``is_time_reversal`` 1. */
-int spg_get_ir_reciprocal_mesh(int grid_point[][3],
- int map[],
- const int mesh[3],
- const int is_shift[3],
- const int is_time_reversal,
- SPGCONST double lattice[3][3],
- SPGCONST double position[][3],
- const int types[],
- const int num_atom,
- const double symprec);
+int spg_get_ir_reciprocal_mesh(int grid_address[][3],
+ int map[],
+ const int mesh[3],
+ const int is_shift[3],
+ const int is_time_reversal,
+ SPGCONST double lattice[3][3],
+ SPGCONST double position[][3],
+ const int types[],
+ const int num_atom,
+ const double symprec);
/* The irreducible k-points are searched from unique k-point mesh */
/* grids from real space lattice vectors and rotation matrices of */
/* symmetry operations in real space with stabilizers. The */
/* stabilizers are written in reduced coordinates. Number of the */
/* stabilizers are given by ``num_q``. Reduced k-points are stored */
-/* in ``map`` as indices of ``grid_point``. The number of the */
+/* in ``map`` as indices of ``grid_address``. The number of the */
/* reduced k-points with stabilizers are returned as the return */
/* value. */
-int spg_get_stabilized_reciprocal_mesh(int grid_point[][3],
- int map[],
- const int mesh[3],
- const int is_shift[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3],
- const int num_q,
- SPGCONST double qpoints[][3]);
-
-/* Irreducible triplets of k-points are searched under conservation of */
-/* :math:``\mathbf{k}_1 + \mathbf{k}_2 + \mathbf{k}_3 = \mathbf{G}``. */
-/* Don't forget to free memory space of triplets using spg_free_triplets */
-SpglibTriplets * spg_get_triplets_reciprocal_mesh(const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3]);
-
-void spg_free_triplets(SpglibTriplets * triplets);
-
-int spg_get_triplets_reciprocal_mesh_at_q(int weights[],
- int grid_points[][3],
- int third_q[],
- const int grid_point,
- const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3]);
-
-int spg_extract_triplets_reciprocal_mesh_at_q(int triplets_at_q[][3],
- int weight_triplets_at_q[],
- const int fixed_grid_number,
- const int num_triplets,
- SPGCONST int triplets[][3],
- const int mesh[3],
- const int is_time_reversal,
- const int num_rot,
- SPGCONST int rotations[][3][3]);
+int spg_get_stabilized_reciprocal_mesh(int grid_address[][3],
+ int map[],
+ const int mesh[3],
+ const int is_shift[3],
+ const int is_time_reversal,
+ const int num_rot,
+ SPGCONST int rotations[][3][3],
+ const int num_q,
+ SPGCONST double qpoints[][3]);
+
+/* Rotation operations in reciprocal space ``rot_reciprocal`` are applied */
+/* to a grid address ``address_orig`` and resulting grid points are stored in */
+/* ``rot_grid_points``. Return 0 if failed. */
+int spg_get_grid_points_by_rotations(int rot_grid_points[],
+ const int address_orig[3],
+ const int num_rot,
+ SPGCONST int rot_reciprocal[][3][3],
+ const int mesh[3],
+ const int is_shift[3]);
+
+int spg_get_BZ_grid_points_by_rotations(int rot_grid_points[],
+ const int address_orig[3],
+ const int num_rot,
+ SPGCONST int rot_reciprocal[][3][3],
+ const int mesh[3],
+ const int is_shift[3],
+ const int bz_map[]);
+
+/* Grid addresses are relocated inside Brillouin zone. */
+/* Number of ir-grid-points inside Brillouin zone is returned. */
+/* It is assumed that the following arrays have the shapes of */
+/* bz_grid_address[prod(mesh + 1)][3] */
+/* bz_map[prod(mesh * 2)] */
+/* where grid_address[prod(mesh)][3]. */
+/* Each element of grid_address is mapped to each element of */
+/* bz_grid_address with keeping element order. bz_grid_address has */
+/* larger memory space to represent BZ surface even if some points */
+/* on a surface are translationally equivalent to the other points */
+/* on the other surface. Those equivalent points are added successively */
+/* as grid point numbers to bz_grid_address. Those added grid points */
+/* are stored after the address of end point of grid_address, i.e. */
+/* */
+/* |-----------------array size of bz_grid_address---------------------| */
+/* |--grid addresses similar to grid_address--|--newly added ones--|xxx| */
+/* */
+/* where xxx means the memory space that may not be used. Number of grid */
+/* points stored in bz_grid_address is returned. */
+/* bz_map is used to recover grid point index expanded to include BZ */
+/* surface from grid address. The grid point indices are mapped to */
+/* (mesh[0] * 2) x (mesh[1] * 2) x (mesh[2] * 2) space (bz_map). */
+int spg_relocate_BZ_grid_address(int bz_grid_address[][3],
+ int bz_map[],
+ SPGCONST int grid_address[][3],
+ const int mesh[3],
+ SPGCONST double rec_lattice[3][3],
+ const int is_shift[3]);
+
+void spg_get_neighboring_grid_points(int relative_grid_points[],
+ const int grid_point,
+ SPGCONST int relative_grid_address[][3],
+ const int num_relative_grid_address,
+ const int mesh[3],
+ SPGCONST int bz_grid_address[][3],
+ const int bz_map[]);
+
+/*--------*/
+/* Niggli */
+/*--------*/
+/* Return 0 if failed */
+int spg_niggli_reduce(double lattice[3][3], const double symprec);
#endif
diff --git a/src/spglib_f.c b/src/spglib_f.c
index a848df9..9179e0c 100644
--- a/src/spglib_f.c
+++ b/src/spglib_f.c
@@ -1,3 +1,37 @@
+/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
#include "spglib.h"
#include <string.h>
@@ -83,13 +117,6 @@ void spg_get_symmetry_(int *nsym,
types, *num_atom, *symprec);
}
-void spg_get_smallest_lattice_(double smallest_lattice[3][3],
- double lattice[3][3],
- double *symprec)
-{
- spg_get_smallest_lattice(smallest_lattice, lattice, *symprec);
-}
-
void spg_get_international_(int *spacegroup,
char symbol[11],
double lattice[3][3],
@@ -140,7 +167,7 @@ void spg_get_schoenflies_(int *spacegroup,
int *num_atom,
double *symprec)
{
- char symbol_c[7];
+ char symbol_c[10];
int i, length;
*spacegroup = spg_get_schoenflies(symbol_c, lattice, position, types,
@@ -168,6 +195,18 @@ void spg_find_primitive_(double lattice[3][3],
*symprec);
}
+void spg_delaunay_reduce_(double lattice[3][3],
+ double *symprec)
+{
+ spg_delaunay_reduce(lattice, *symprec);
+}
+
+void spg_niggli_reduce_(double lattice[3][3],
+ double *symprec)
+{
+ spg_niggli_reduce(lattice, *symprec);
+}
+
void spg_get_ir_reciprocal_mesh_(int *num_ir_grid,
int grid_point[][3],
int map[],
diff --git a/src/spin.c b/src/spin.c
index 239d0be..b465aba 100644
--- a/src/spin.c
+++ b/src/spin.c
@@ -1,15 +1,91 @@
-/* spin.c */
/* Copyright (C) 2012 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#include <stdio.h>
+#include <stdlib.h>
#include "mathfunc.h"
#include "symmetry.h"
#include "cell.h"
+#include "spin.h"
+#include "debug.h"
+
+static Symmetry * get_collinear_operations(const Symmetry *sym_nonspin,
+ const Cell *cell,
+ const double spins[],
+ const double symprec);
+static int set_equivalent_atoms(int * equiv_atoms,
+ const Symmetry *symmetry,
+ const Cell * cell,
+ const double symprec);
+static int * get_mapping_table(const Symmetry *symmetry,
+ const Cell * cell,
+ const double symprec);
+
+/* Return NULL if failed */
+Symmetry * spn_get_collinear_operations(int equiv_atoms[],
+ const Symmetry *sym_nonspin,
+ const Cell *cell,
+ const double spins[],
+ const double symprec)
+{
+ Symmetry *symmetry;
+
+ symmetry = NULL;
+
+ if ((symmetry = get_collinear_operations(sym_nonspin,
+ cell,
+ spins,
+ symprec)) == NULL) {
+ return NULL;
+ }
+
+ if ((set_equivalent_atoms(equiv_atoms,
+ symmetry,
+ cell,
+ symprec)) == 0) {
+ sym_free_symmetry(symmetry);
+ symmetry = NULL;
+ }
+
+ return symmetry;
+}
-Symmetry * spn_get_collinear_operation_with_symmetry(SPGCONST Symmetry *sym_nonspin,
- SPGCONST Cell *cell,
- const double spins[],
- const double symprec) {
+static Symmetry * get_collinear_operations(const Symmetry *sym_nonspin,
+ const Cell *cell,
+ const double spins[],
+ const double symprec)
+{
Symmetry *symmetry;
int i, j, k, sign, is_found, num_sym;
double pos[3];
@@ -19,48 +95,50 @@ Symmetry * spn_get_collinear_operation_with_symmetry(SPGCONST Symmetry *sym_non
rot = mat_alloc_MatINT(sym_nonspin->size);
trans = mat_alloc_VecDBL(sym_nonspin->size);
num_sym = 0;
-
+
for (i = 0; i < sym_nonspin->size; i++) {
sign = 0; /* Set sign as undetermined */
is_found = 1;
for (j = 0; j < cell->size; j++) {
mat_multiply_matrix_vector_id3(pos, sym_nonspin->rot[i], cell->position[j]);
for (k = 0; k < 3; k++) {
- pos[k] += sym_nonspin->trans[i][k];
+ pos[k] += sym_nonspin->trans[i][k];
}
for (k = 0; k < cell->size; k++) {
- if (cel_is_overlap(cell->position[k],
- pos,
- cell->lattice,
- symprec)) {
- if (sign == 0) {
- if (mat_Dabs(spins[j] - spins[k]) < symprec) {
- sign = 1;
- break;
- }
- if (mat_Dabs(spins[j] + spins[k]) < symprec) {
- sign = -1;
- break;
- }
- is_found = 0;
- break;
- } else {
- if (mat_Dabs(spins[j] - spins[k] * sign) < symprec) {
- break;
- } else {
- is_found = 0;
- break;
- }
- }
- }
+ if (cel_is_overlap_with_same_type(cell->position[k],
+ pos,
+ cell->types[k],
+ cell->types[j],
+ cell->lattice,
+ symprec)) {
+ if (sign == 0) {
+ if (mat_Dabs(spins[j] - spins[k]) < symprec) {
+ sign = 1;
+ break;
+ }
+ if (mat_Dabs(spins[j] + spins[k]) < symprec) {
+ sign = -1;
+ break;
+ }
+ is_found = 0;
+ break;
+ } else {
+ if (mat_Dabs(spins[j] - spins[k] * sign) < symprec) {
+ break;
+ } else {
+ is_found = 0;
+ break;
+ }
+ }
+ }
}
if (! is_found) {
- break;
+ break;
}
}
if (is_found) {
- mat_copy_matrix_i3(rot->mat[ num_sym ], sym_nonspin->rot[i]);
- mat_copy_vector_d3(trans->vec[ num_sym ], sym_nonspin->trans[i]);
+ mat_copy_matrix_i3(rot->mat[num_sym], sym_nonspin->rot[i]);
+ mat_copy_vector_d3(trans->vec[num_sym], sym_nonspin->trans[i]);
num_sym++;
}
}
@@ -72,22 +150,126 @@ Symmetry * spn_get_collinear_operation_with_symmetry(SPGCONST Symmetry *sym_non
}
mat_free_MatINT(rot);
+ rot = NULL;
mat_free_VecDBL(trans);
+ trans = NULL;
return symmetry;
}
-Symmetry * spn_get_collinear_operation(SPGCONST Cell *cell,
- const double spins[],
- const double symprec) {
- Symmetry *sym_nonspin, *symmetry;
-
- sym_nonspin = sym_get_operation(cell, symprec);
- symmetry = spn_get_collinear_operation_with_symmetry(sym_nonspin,
- cell,
- spins,
- symprec);
- sym_free_symmetry(sym_nonspin);
-
- return symmetry;
+/* Return 0 if failed */
+static int set_equivalent_atoms(int * equiv_atoms,
+ const Symmetry *symmetry,
+ const Cell * cell,
+ const double symprec)
+{
+ int i, j, k, is_found;
+ double pos[3];
+ int *mapping_table;
+
+ mapping_table = NULL;
+
+ if ((mapping_table = get_mapping_table(symmetry, cell, symprec)) == NULL) {
+ return 0;
+ }
+
+ for (i = 0; i < cell->size; i++) {
+ if (mapping_table[i] != i) {
+ continue;
+ }
+ is_found = 0;
+ for (j = 0; j < symmetry->size; j++) {
+ mat_multiply_matrix_vector_id3(pos,
+ symmetry->rot[j],
+ cell->position[i]);
+ for (k = 0; k < 3; k++) {
+ pos[k] += symmetry->trans[j][k];
+ }
+ for (k = 0; k < cell->size; k++) {
+ if (cel_is_overlap_with_same_type(pos,
+ cell->position[k],
+ cell->types[i],
+ cell->types[k],
+ cell->lattice,
+ symprec)) {
+ if (mapping_table[k] < i) {
+ equiv_atoms[i] = equiv_atoms[mapping_table[k]];
+ is_found = 1;
+ break;
+ }
+ }
+ }
+ if (is_found) {
+ break;
+ }
+ }
+ if (!is_found) {
+ equiv_atoms[i] = i;
+ }
+ }
+
+ for (i = 0; i < cell->size; i++) {
+ if (mapping_table[i] == i) {
+ continue;
+ }
+ equiv_atoms[i] = equiv_atoms[mapping_table[i]];
+ }
+
+ free(mapping_table);
+ mapping_table = NULL;
+
+ return 1;
+}
+
+/* Return NULL if failed */
+static int * get_mapping_table(const Symmetry *symmetry,
+ const Cell * cell,
+ const double symprec)
+{
+ int i, j, k, is_found;
+ double pos[3];
+ int *mapping_table;
+ SPGCONST int I[3][3] = {{ 1, 0, 0},
+ { 0, 1, 0},
+ { 0, 0, 1}};
+
+ mapping_table = NULL;
+
+ if ((mapping_table = (int*) malloc(sizeof(int) * cell->size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated.");
+ return NULL;
+ }
+
+ for (i = 0; i < cell->size; i++) {
+ is_found = 0;
+ for (j = 0; j < symmetry->size; j++) {
+ if (mat_check_identity_matrix_i3(symmetry->rot[j], I)) {
+ for (k = 0; k < 3; k++) {
+ pos[k] = cell->position[i][k] + symmetry->trans[j][k];
+ }
+ for (k = 0; k < cell->size; k++) {
+ if (cel_is_overlap_with_same_type(pos,
+ cell->position[k],
+ cell->types[i],
+ cell->types[k],
+ cell->lattice,
+ symprec)) {
+ if (k < i) {
+ mapping_table[i] = mapping_table[k];
+ is_found = 1;
+ break;
+ }
+ }
+ }
+ }
+ if (is_found) {
+ break;
+ }
+ }
+ if (!is_found) {
+ mapping_table[i] = i;
+ }
+ }
+
+ return mapping_table;
}
diff --git a/src/spin.h b/src/spin.h
index 0b93b10..a994872 100644
--- a/src/spin.h
+++ b/src/spin.h
@@ -1,5 +1,36 @@
-/* spin.h */
/* Copyright (C) 2012 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __spin_H__
#define __spin_H__
@@ -8,12 +39,10 @@
#include "symmetry.h"
#include "cell.h"
-Symmetry * spn_get_collinear_operation_with_symmetry(SPGCONST Symmetry *sym_nonspin,
- SPGCONST Cell *cell,
- const double spins[],
- const double symprec);
-Symmetry * spn_get_collinear_operation(SPGCONST Cell *cell,
- const double spins[],
- const double symprec);
+Symmetry * spn_get_collinear_operations(int equiv_atoms[],
+ const Symmetry *sym_nonspin,
+ const Cell *cell,
+ const double spins[],
+ const double symprec);
#endif
diff --git a/src/symmetry.c b/src/symmetry.c
index 93b4d25..ab31b01 100644
--- a/src/symmetry.c
+++ b/src/symmetry.c
@@ -1,26 +1,53 @@
-/* symmetry.c */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
-#include <omp.h>
#include "cell.h"
-#include "debug.h"
-#include "lattice.h"
+#include "delaunay.h"
#include "mathfunc.h"
-#include "pointgroup.h"
-#include "primitive.h"
#include "symmetry.h"
#include "debug.h"
+
#define NUM_ATOMS_CRITERION_FOR_OPENMP 1000
-#define REDUCE_RATE 0.95
+#define ANGLE_REDUCE_RATE 0.95
+#define NUM_ATTEMPT 100
#define PI 3.14159265358979323846
/* Tolerance of angle between lattice vectors in degrees */
/* Negative value invokes converter from symprec. */
-static double angle_tolerance = -1.0;
-
static int relative_axes[][3] = {
{ 1, 0, 0},
{ 0, 1, 0},
@@ -51,74 +78,98 @@ static int relative_axes[][3] = {
};
static int identity[3][3] = {{1, 0, 0},
- {0, 1, 0},
- {0, 0, 1}};
+ {0, 1, 0},
+ {0, 0, 1}};
static int get_index_with_least_atoms(const Cell *cell);
static VecDBL * get_translation(SPGCONST int rot[3][3],
- SPGCONST Cell *cell,
- const double symprec,
- const int is_identity);
-static Symmetry * get_operations(SPGCONST Cell * cell,
- const double symprec);
-static Symmetry * reduce_operation(SPGCONST Cell * cell,
- SPGCONST Symmetry * symmetry,
- const double symprec);
-static void search_translation_part(int lat_point_atoms[],
- SPGCONST Cell * cell,
- SPGCONST int rot[3][3],
- const int min_atom_index,
- const double origin[3],
- const double symprec,
- const int is_identity);
+ const Cell *cell,
+ const double symprec,
+ const int is_identity);
+static Symmetry * get_operations(const Cell *primitive,
+ const double symprec,
+ const double angle_symprec);
+static Symmetry * reduce_operation(const Cell * primitive,
+ const Symmetry * symmetry,
+ const double symprec,
+ const double angle_symprec,
+ const int is_pure_trans);
+static int search_translation_part(int atoms_found[],
+ const Cell * cell,
+ SPGCONST int rot[3][3],
+ const int min_atom_index,
+ const double origin[3],
+ const double symprec,
+ const int is_identity);
+static int search_pure_translations(int atoms_found[],
+ const Cell * cell,
+ const double trans[3],
+ const double symprec);
static int is_overlap_all_atoms(const double test_trans[3],
- SPGCONST int rot[3][3],
- SPGCONST Cell * cell,
- const double symprec,
- const int is_identity);
+ SPGCONST int rot[3][3],
+ const Cell * cell,
+ const double symprec,
+ const int is_identity);
static PointSymmetry
transform_pointsymmetry(SPGCONST PointSymmetry * point_sym_prim,
- SPGCONST double new_lattice[3][3],
- SPGCONST double original_lattice[3][3]);
+ SPGCONST double new_lattice[3][3],
+ SPGCONST double original_lattice[3][3]);
static Symmetry *
get_space_group_operations(SPGCONST PointSymmetry *lattice_sym,
- SPGCONST Cell *primitive,
- const double symprec);
-static Symmetry * recover_operations_original(SPGCONST Symmetry *symmetry,
- const VecDBL * pure_trans,
- SPGCONST Cell *cell,
- SPGCONST Cell *primitive);
+ const Cell *primitive,
+ const double symprec);
static void set_axes(int axes[3][3],
- const int a1, const int a2, const int a3);
-static PointSymmetry get_lattice_symmetry(SPGCONST Cell *cell,
- const double symprec);
+ const int a1, const int a2, const int a3);
+static PointSymmetry get_lattice_symmetry(SPGCONST double cell_lattice[3][3],
+ const double symprec,
+ const double angle_symprec);
static int is_identity_metric(SPGCONST double metric_rotated[3][3],
- SPGCONST double metric_orig[3][3],
- const double symprec);
+ SPGCONST double metric_orig[3][3],
+ const double symprec,
+ const double angle_symprec);
static double get_angle(SPGCONST double metric[3][3],
- const int i,
- const int j);
+ const int i,
+ const int j);
+/* Return NULL if failed */
Symmetry * sym_alloc_symmetry(const int size)
{
Symmetry *symmetry;
- symmetry = (Symmetry*) malloc(sizeof(Symmetry));
+ symmetry = NULL;
+
+ if (size < 1) {
+ return NULL;
+ }
+
+ if ((symmetry = (Symmetry*) malloc(sizeof(Symmetry))) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ return NULL;
+ }
+
symmetry->size = size;
- if (size > 0) {
- if ((symmetry->rot =
- (int (*)[3][3]) malloc(sizeof(int[3][3]) * size)) == NULL) {
- warning_print("spglib: Memory could not be allocated ");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
- exit(1);
- }
- if ((symmetry->trans =
- (double (*)[3]) malloc(sizeof(double[3]) * size)) == NULL) {
- warning_print("spglib: Memory could not be allocated ");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
- exit(1);
- }
+ symmetry->rot = NULL;
+ symmetry->trans = NULL;
+
+ if ((symmetry->rot =
+ (int (*)[3][3]) malloc(sizeof(int[3][3]) * size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+ free(symmetry);
+ symmetry = NULL;
+ return NULL;
+ }
+ if ((symmetry->trans =
+ (double (*)[3]) malloc(sizeof(double[3]) * size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+ free(symmetry->rot);
+ symmetry->rot = NULL;
+ free(symmetry);
+ symmetry = NULL;
+ return NULL;
}
+
return symmetry;
}
@@ -131,187 +182,152 @@ void sym_free_symmetry(Symmetry *symmetry)
symmetry->trans = NULL;
}
free(symmetry);
- symmetry = NULL;
}
-Symmetry * sym_get_operation(SPGCONST Cell *cell,
- const double symprec) {
- Symmetry *symmetry;
-
- symmetry = get_operations(cell, symprec);
+/* Return NULL if failed */
+Symmetry * sym_get_operation(const Cell * primitive,
+ const double symprec,
+ const double angle_tolerance)
+{
- return symmetry;
-}
+ debug_print("sym_get_operations:\n");
-/* Number of operations may be reduced with smaller symprec. */
-Symmetry * sym_reduce_operation(SPGCONST Cell * cell,
- SPGCONST Symmetry * symmetry,
- const double symprec)
-{
- return reduce_operation(cell, symmetry, symprec);
+ return get_operations(primitive, symprec, angle_tolerance);
}
-int sym_get_multiplicity(SPGCONST Cell *cell,
- const double symprec)
+/* Return NULL if failed */
+Symmetry * sym_reduce_operation(const Cell * primitive,
+ const Symmetry * symmetry,
+ const double symprec,
+ const double angle_tolerance)
{
- int multi;
- VecDBL * trans;
-
- trans = get_translation(identity, cell, symprec, 1);
- multi = trans->size;
- mat_free_VecDBL(trans);
- return multi;
+ return reduce_operation(primitive, symmetry, symprec, angle_tolerance, 0);
}
-VecDBL * sym_get_pure_translation(SPGCONST Cell *cell,
- const double symprec)
+/* Return NULL if failed */
+VecDBL * sym_get_pure_translation(const Cell *cell,
+ const double symprec)
{
int multi;
VecDBL * pure_trans;
- pure_trans = get_translation(identity, cell, symprec, 1);
+ debug_print("sym_get_pure_translation (tolerance = %f):\n", symprec);
+
+ multi = 0;
+ pure_trans = NULL;
+
+ if ((pure_trans = get_translation(identity, cell, symprec, 1)) == NULL) {
+ warning_print("spglib: get_translation failed (line %d, %s).\n",
+ __LINE__, __FILE__);
+ return NULL;
+ }
+
multi = pure_trans->size;
if ((cell->size / multi) * multi == cell->size) {
- debug_print("sym_get_pure_translation: pure_trans->size = %d\n", multi);
+ debug_print(" sym_get_pure_translation: pure_trans->size = %d\n", multi);
} else {
;
- warning_print("spglib: Finding pure translation failed (line %d, %s).\n", __LINE__, __FILE__);
+ warning_print("spglib: Finding pure translation failed (line %d, %s).\n",
+ __LINE__, __FILE__);
warning_print(" cell->size %d, multi %d\n", cell->size, multi);
}
return pure_trans;
}
-VecDBL * sym_reduce_pure_translation(SPGCONST Cell * cell,
- const VecDBL * pure_trans,
- const double symprec)
+/* Return NULL if failed */
+VecDBL * sym_reduce_pure_translation(const Cell * cell,
+ const VecDBL * pure_trans,
+ const double symprec,
+ const double angle_tolerance)
{
int i, multi;
Symmetry *symmetry, *symmetry_reduced;
VecDBL * pure_trans_reduced;
-
+
+ symmetry = NULL;
+ symmetry_reduced = NULL;
+ pure_trans_reduced = NULL;
+
multi = pure_trans->size;
- symmetry = sym_alloc_symmetry(multi);
+
+ if ((symmetry = sym_alloc_symmetry(multi)) == NULL) {
+ return NULL;
+ }
+
for (i = 0; i < multi; i++) {
mat_copy_matrix_i3(symmetry->rot[i], identity);
mat_copy_vector_d3(symmetry->trans[i], pure_trans->vec[i]);
}
- symmetry_reduced = reduce_operation(cell, symmetry, symprec);
- sym_free_symmetry(symmetry);
+ if ((symmetry_reduced =
+ reduce_operation(cell, symmetry, symprec, angle_tolerance, 1)) == NULL) {
+ sym_free_symmetry(symmetry);
+ symmetry = NULL;
+ return NULL;
+ }
+ sym_free_symmetry(symmetry);
+ symmetry = NULL;
multi = symmetry_reduced->size;
- pure_trans_reduced = mat_alloc_VecDBL(multi);
-
+
+ if ((pure_trans_reduced = mat_alloc_VecDBL(multi)) == NULL) {
+ sym_free_symmetry(symmetry_reduced);
+ symmetry_reduced = NULL;
+ return NULL;
+ }
+
for (i = 0; i < multi; i++) {
mat_copy_vector_d3(pure_trans_reduced->vec[i], symmetry_reduced->trans[i]);
}
sym_free_symmetry(symmetry_reduced);
-
- return pure_trans_reduced;
-}
-
-void sym_set_angle_tolerance(double tolerance)
-{
- angle_tolerance = tolerance;
-}
+ symmetry_reduced = NULL;
-double sym_get_angle_tolerance(void)
-{
- return angle_tolerance;
+ return pure_trans_reduced;
}
-
-/* 1) A primitive cell of the input cell is searched. */
-/* 2) Pointgroup operations of the primitive cell are obtained. */
+/* 1) Pointgroup operations of the primitive cell are obtained. */
/* These are constrained by the input cell lattice pointgroup, */
/* i.e., even if the lattice of the primitive cell has higher */
/* symmetry than that of the input cell, it is not considered. */
-/* 3) Spacegroup operations are searched for the primitive cell */
+/* 2) Spacegroup operations are searched for the primitive cell */
/* using the constrained point group operations. */
-/* 4) The spacegroup operations for the primitive cell are */
+/* 3) The spacegroup operations for the primitive cell are */
/* transformed to those of original input cells, if the input cell */
/* was not a primitive cell. */
-static Symmetry * get_operations(SPGCONST Cell *cell,
- const double symprec)
+static Symmetry * get_operations(const Cell *primitive,
+ const double symprec,
+ const double angle_symprec)
{
- int i, j, attempt;
- double tolerance;
PointSymmetry lattice_sym;
- Symmetry *symmetry, *symmetry_orig, *symmetry_reduced;
- Primitive primitive;
+ Symmetry *symmetry;
debug_print("get_operations:\n");
- symmetry_orig = NULL;
+ symmetry = NULL;
- lattice_sym = get_lattice_symmetry(cell, symprec);
+ lattice_sym = get_lattice_symmetry(primitive->lattice,
+ symprec,
+ angle_symprec);
if (lattice_sym.size == 0) {
- debug_print("get_lattice_symmetry failed.\n");
- goto end;
+ return NULL;
}
- primitive = prm_get_primitive_and_pure_translations(cell, symprec);
- if (primitive.cell->size == 0) {
- goto deallocate_and_end;
+ if ((symmetry = get_space_group_operations(&lattice_sym,
+ primitive,
+ symprec)) == NULL) {
+ return NULL;
}
- lattice_sym = transform_pointsymmetry(&lattice_sym,
- primitive.cell->lattice,
- cell->lattice);
- if (lattice_sym.size == 0) {
- goto deallocate_and_end;
- }
-
-
- symmetry = get_space_group_operations(&lattice_sym,
- primitive.cell,
- symprec);
- if (symmetry->size > 48) {
- tolerance = symprec;
- for (attempt = 0; attempt < 100; attempt++) {
- tolerance *= REDUCE_RATE;
- warning_print("spglib: number of symmetry operations for primitive cell > 48 was found. (line %d, %s).\n", __LINE__, __FILE__);
- warning_print("tolerance is reduced to %f\n", tolerance);
- symmetry_reduced = reduce_operation(primitive.cell,
- symmetry,
- tolerance);
- sym_free_symmetry(symmetry);
- symmetry = symmetry_reduced;
- if (symmetry_reduced->size > 48) {
- ;
- } else {
- break;
- }
- }
- }
-
- symmetry_orig = recover_operations_original(symmetry,
- primitive.pure_trans,
- cell,
- primitive.cell);
- sym_free_symmetry(symmetry);
-
- for (i = 0; i < symmetry_orig->size; i++) {
- for (j = 0; j < 3; j++) {
- symmetry_orig->trans[i][j] -= mat_Nint(symmetry_orig->trans[i][j]);
- }
- }
-
- deallocate_and_end:
- cel_free_cell(primitive.cell);
- mat_free_VecDBL(primitive.pure_trans);
-
- end:
- if (! symmetry_orig) {
- symmetry_orig = sym_alloc_symmetry(0);
- }
- return symmetry_orig;
+ return symmetry;
}
-static Symmetry * reduce_operation(SPGCONST Cell * cell,
- SPGCONST Symmetry * symmetry,
- const double symprec)
+/* Return NULL if failed */
+static Symmetry * reduce_operation(const Cell * primitive,
+ const Symmetry * symmetry,
+ const double symprec,
+ const double angle_symprec,
+ const int is_pure_trans)
{
int i, j, num_sym;
Symmetry * sym_reduced;
@@ -321,207 +337,333 @@ static Symmetry * reduce_operation(SPGCONST Cell * cell,
debug_print("reduce_operation:\n");
- point_symmetry = get_lattice_symmetry(cell, symprec);
- rot = mat_alloc_MatINT(symmetry->size);
- trans = mat_alloc_VecDBL(symmetry->size);
+ sym_reduced = NULL;
+ rot = NULL;
+ trans = NULL;
+
+ if (is_pure_trans) {
+ point_symmetry.size = 1;
+ mat_copy_matrix_i3(point_symmetry.rot[0], identity);
+ } else {
+ point_symmetry = get_lattice_symmetry(primitive->lattice,
+ symprec,
+ angle_symprec);
+ if (point_symmetry.size == 0) {
+ return NULL;
+ }
+ }
+
+ if ((rot = mat_alloc_MatINT(symmetry->size)) == NULL) {
+ return NULL;
+ }
+
+ if ((trans = mat_alloc_VecDBL(symmetry->size)) == NULL) {
+ mat_free_MatINT(rot);
+ rot = NULL;
+ return NULL;
+ }
num_sym = 0;
for (i = 0; i < point_symmetry.size; i++) {
for (j = 0; j < symmetry->size; j++) {
if (mat_check_identity_matrix_i3(point_symmetry.rot[i],
- symmetry->rot[j])) {
- if (is_overlap_all_atoms(symmetry->trans[j],
- symmetry->rot[j],
- cell,
- symprec,
- 0)) {
- mat_copy_matrix_i3(rot->mat[num_sym], symmetry->rot[j]);
- mat_copy_vector_d3(trans->vec[num_sym], symmetry->trans[j]);
- num_sym++;
- }
+ symmetry->rot[j])) {
+ if (is_overlap_all_atoms(symmetry->trans[j],
+ symmetry->rot[j],
+ primitive,
+ symprec,
+ 0)) {
+ mat_copy_matrix_i3(rot->mat[num_sym], symmetry->rot[j]);
+ mat_copy_vector_d3(trans->vec[num_sym], symmetry->trans[j]);
+ num_sym++;
+ }
}
}
}
- sym_reduced = sym_alloc_symmetry(num_sym);
- for (i = 0; i < num_sym; i++) {
- mat_copy_matrix_i3(sym_reduced->rot[i], rot->mat[i]);
- mat_copy_vector_d3(sym_reduced->trans[i], trans->vec[i]);
+ if ((sym_reduced = sym_alloc_symmetry(num_sym)) != NULL) {
+ for (i = 0; i < num_sym; i++) {
+ mat_copy_matrix_i3(sym_reduced->rot[i], rot->mat[i]);
+ mat_copy_vector_d3(sym_reduced->trans[i], trans->vec[i]);
+ }
}
mat_free_MatINT(rot);
+ rot = NULL;
mat_free_VecDBL(trans);
-
- debug_print(" num_sym %d -> %d\n", symmetry->size, num_sym);
+ trans = NULL;
return sym_reduced;
}
/* Look for the translations which satisfy the input symmetry operation. */
/* This function is heaviest in this code. */
+/* Return NULL if failed */
static VecDBL * get_translation(SPGCONST int rot[3][3],
- SPGCONST Cell *cell,
- const double symprec,
- const int is_identity)
+ const Cell *cell,
+ const double symprec,
+ const int is_identity)
{
- int i, j, min_atom_index, num_trans = 0;
+ int i, j, k, min_atom_index, num_trans;
int *is_found;
double origin[3];
VecDBL *trans;
+ debug_print("get_translation (tolerance = %f):\n", symprec);
+
+ num_trans = 0;
+ is_found = NULL;
+ trans = NULL;
+
#ifdef _OPENMP
int num_min_type_atoms;
int *min_type_atoms;
double vec[3];
+
+ min_type_atoms = NULL;
#endif
- is_found = (int*) malloc(sizeof(int)*cell->size);
+ if ((is_found = (int*) malloc(sizeof(int)*cell->size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ return NULL;
+ }
+
for (i = 0; i < cell->size; i++) {
is_found[i] = 0;
}
/* Look for the atom index with least number of atoms within same type */
min_atom_index = get_index_with_least_atoms(cell);
+ if (min_atom_index == -1) {
+ debug_print("spglib: get_index_with_least_atoms failed.\n");
+ goto ret;
+ }
/* Set min_atom_index as the origin to measure the distance between atoms. */
mat_multiply_matrix_vector_id3(origin, rot, cell->position[min_atom_index]);
#ifdef _OPENMP
- if (cell->size < NUM_ATOMS_CRITERION_FOR_OPENMP) {
- search_translation_part(is_found,
- cell,
- rot,
- min_atom_index,
- origin,
- symprec,
- is_identity);
+ if (cell->size < NUM_ATOMS_CRITERION_FOR_OPENMP || is_identity) {
+ /* In this case, OpenMP multithreading is not used. */
+ num_trans = search_translation_part(is_found,
+ cell,
+ rot,
+ min_atom_index,
+ origin,
+ symprec,
+ is_identity);
+ if (num_trans == 0) {
+ goto ret;
+ }
} else {
+ /* In this case, OpenMP multithreading is used. */
/* Collect indices of atoms with the type where the minimum number */
/* of atoms belong. */
- min_type_atoms = (int*) malloc(sizeof(int)*cell->size);
+ if ((min_type_atoms = (int*) malloc(sizeof(int)*cell->size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ goto ret;
+ }
+
num_min_type_atoms = 0;
for (i = 0; i < cell->size; i++) {
if (cell->types[i] == cell->types[min_atom_index]) {
- min_type_atoms[num_min_type_atoms] = i;
- num_min_type_atoms++;
+ min_type_atoms[num_min_type_atoms] = i;
+ num_min_type_atoms++;
}
}
#pragma omp parallel for private(j, vec)
for (i = 0; i < num_min_type_atoms; i++) {
for (j = 0; j < 3; j++) {
- vec[j] = cell->position[min_type_atoms[i]][j] - origin[j];
+ vec[j] = cell->position[min_type_atoms[i]][j] - origin[j];
}
if (is_overlap_all_atoms(vec,
- rot,
- cell,
- symprec,
- is_identity)) {
- is_found[min_type_atoms[i]] = 1;
+ rot,
+ cell,
+ symprec,
+ is_identity)) {
+ is_found[min_type_atoms[i]] = 1;
}
}
free(min_type_atoms);
+ min_type_atoms = NULL;
+
+ for (i = 0; i < cell->size; i++) {
+ num_trans += is_found[i];
+ }
}
#else
- search_translation_part(is_found,
- cell,
- rot,
- min_atom_index,
- origin,
- symprec,
- is_identity);
+ num_trans = search_translation_part(is_found,
+ cell,
+ rot,
+ min_atom_index,
+ origin,
+ symprec,
+ is_identity);
+ if (num_trans == 0) {
+ goto ret;
+ }
#endif
-
- for (i = 0; i < cell->size; i++) {
- num_trans += is_found[i];
+ if ((trans = mat_alloc_VecDBL(num_trans)) == NULL) {
+ goto ret;
}
- trans = mat_alloc_VecDBL(num_trans);
- num_trans = 0;
+
+ k = 0;
for (i = 0; i < cell->size; i++) {
if (is_found[i]) {
for (j = 0; j < 3; j++) {
- trans->vec[num_trans][j] = cell->position[i][j] - origin[j];
+ trans->vec[k][j] = cell->position[i][j] - origin[j];
+ trans->vec[k][j] -= mat_Nint(trans->vec[k][j]);
}
- num_trans++;
+ k++;
}
}
+ ret:
free(is_found);
is_found = NULL;
-
+
return trans;
}
-static void search_translation_part(int lat_point_atoms[],
- SPGCONST Cell * cell,
- SPGCONST int rot[3][3],
- const int min_atom_index,
- const double origin[3],
- const double symprec,
- const int is_identity)
+static int search_translation_part(int atoms_found[],
+ const Cell * cell,
+ SPGCONST int rot[3][3],
+ const int min_atom_index,
+ const double origin[3],
+ const double symprec,
+ const int is_identity)
{
- int i, j;
- double vec[3];
+ int i, j, num_trans;
+ double trans[3];
+
+ num_trans = 0;
for (i = 0; i < cell->size; i++) {
+ if (atoms_found[i]) {
+ continue;
+ }
+
if (cell->types[i] != cell->types[min_atom_index]) {
continue;
}
for (j = 0; j < 3; j++) {
- vec[j] = cell->position[i][j] - origin[j];
+ trans[j] = cell->position[i][j] - origin[j];
}
- if (is_overlap_all_atoms(vec,
- rot,
- cell,
- symprec,
- is_identity)) {
- lat_point_atoms[i] = 1;
+ if (is_overlap_all_atoms(trans,
+ rot,
+ cell,
+ symprec,
+ is_identity)) {
+ atoms_found[i] = 1;
+ num_trans++;
+ if (is_identity) {
+ num_trans += search_pure_translations(atoms_found,
+ cell,
+ trans,
+ symprec);
+ }
}
}
+
+ return num_trans;
+}
+
+static int search_pure_translations(int atoms_found[],
+ const Cell * cell,
+ const double trans[3],
+ const double symprec)
+{
+ int i, j, num_trans, i_atom, initial_atom;
+ int *copy_atoms_found;
+ double vec[3];
+
+ num_trans = 0;
+
+ copy_atoms_found = (int*)malloc(sizeof(int) * cell->size);
+ for (i = 0; i < cell->size; i++) {
+ copy_atoms_found[i] = atoms_found[i];
+ }
+
+ for (initial_atom = 0; initial_atom < cell->size; initial_atom++) {
+ if (!copy_atoms_found[initial_atom]) {
+ continue;
+ }
+
+ i_atom = initial_atom;
+
+ for (i = 0; i < cell->size; i++) {
+ for (j = 0; j < 3; j++) {
+ vec[j] = cell->position[i_atom][j] + trans[j];
+ }
+
+ for (j = 0; j < cell->size; j++) {
+ if (cel_is_overlap_with_same_type(vec,
+ cell->position[j],
+ cell->types[i_atom],
+ cell->types[j],
+ cell->lattice,
+ symprec)) {
+ if (!atoms_found[j]) {
+ atoms_found[j] = 1;
+ num_trans++;
+ }
+ i_atom = j;
+
+ break;
+ }
+ }
+
+ if (i_atom == initial_atom) {
+ break;
+ }
+ }
+ }
+
+ free(copy_atoms_found);
+
+ return num_trans;
}
static int is_overlap_all_atoms(const double trans[3],
- SPGCONST int rot[3][3],
- SPGCONST Cell * cell,
- const double symprec,
- const int is_identity)
+ SPGCONST int rot[3][3],
+ const Cell * cell,
+ const double symprec,
+ const int is_identity)
{
int i, j, k, is_found;
- double symprec2;
- double pos_rot[3], d[3];
+ double pos_rot[3], d_frac[3], d[3];
- symprec2 = symprec*symprec;
-
for (i = 0; i < cell->size; i++) {
- if (is_identity) { /* Identity matrix is treated as special for speed. */
+ if (is_identity) { /* Identity matrix is treated as special for speed-up. */
for (j = 0; j < 3; j++) {
- pos_rot[j] = cell->position[i][j] + trans[j];
+ pos_rot[j] = cell->position[i][j] + trans[j];
}
} else {
mat_multiply_matrix_vector_id3(pos_rot,
- rot,
- cell->position[i]);
+ rot,
+ cell->position[i]);
for (j = 0; j < 3; j++) {
- pos_rot[j] += trans[j];
+ pos_rot[j] += trans[j];
}
}
is_found = 0;
for (j = 0; j < cell->size; j++) {
if (cell->types[i] == cell->types[j]) {
- /* here cel_is_overlap can be used, but for the tuning */
- /* purpose, write it again */
- for (k = 0; k < 3; k++) {
- d[k] = pos_rot[k] - cell->position[j][k];
- d[k] -= mat_Nint(d[k]);
- }
- mat_multiply_matrix_vector_d3(d, cell->lattice, d);
- if (d[0]*d[0]+d[1]*d[1]+d[2]*d[2] < symprec2) {
- is_found = 1;
- break;
- }
+ /* here cel_is_overlap can be used, but for the tuning */
+ /* purpose, write it again */
+ for (k = 0; k < 3; k++) {
+ d_frac[k] = pos_rot[k] - cell->position[j][k];
+ d_frac[k] -= mat_Nint(d_frac[k]);
+ }
+ mat_multiply_matrix_vector_d3(d, cell->lattice, d_frac);
+ if (sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]) < symprec) {
+ is_found = 1;
+ break;
+ }
}
}
@@ -540,21 +682,27 @@ static int get_index_with_least_atoms(const Cell *cell)
{
int i, j, min, min_index;
int *mapping;
- mapping = (int *) malloc(sizeof(int) * cell->size);
-
+
+ mapping = NULL;
+
+ if ((mapping = (int *) malloc(sizeof(int) * cell->size)) == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ return -1;
+ }
+
for (i = 0; i < cell->size; i++) {
mapping[i] = 0;
}
-
+
for (i = 0; i < cell->size; i++) {
for (j = 0; j < cell->size; j++) {
if (cell->types[i] == cell->types[j]) {
- mapping[j]++;
- break;
+ mapping[j]++;
+ break;
}
}
}
-
+
min = mapping[0];
min_index = 0;
for (i = 0; i < cell->size; i++) {
@@ -570,27 +718,53 @@ static int get_index_with_least_atoms(const Cell *cell)
return min_index;
}
+/* Return NULL if failed */
static Symmetry *
get_space_group_operations(SPGCONST PointSymmetry *lattice_sym,
- SPGCONST Cell *cell,
- const double symprec)
+ const Cell *primitive,
+ const double symprec)
{
- int i, j, k, num_sym, total_num_sym;
+ int i, j, num_sym, total_num_sym;
VecDBL **trans;
Symmetry *symmetry;
- debug_print("get_space_group_operations:\n");
-
- trans = (VecDBL**) malloc(sizeof(VecDBL*) * lattice_sym->size);
+ debug_print("get_space_group_operations (tolerance = %f):\n", symprec);
+
+ trans = NULL;
+ symmetry = NULL;
+
+ if ((trans = (VecDBL**) malloc(sizeof(VecDBL*) * lattice_sym->size))
+ == NULL) {
+ warning_print("spglib: Memory could not be allocated ");
+ return NULL;
+ }
+
+ for (i = 0; i < lattice_sym->size; i++) {
+ trans[i] = NULL;
+ }
+
total_num_sym = 0;
for (i = 0; i < lattice_sym->size; i++) {
- trans[i] = get_translation(lattice_sym->rot[i], cell, symprec, 0);
- total_num_sym += trans[i]->size;
+
+ if ((trans[i] = get_translation(lattice_sym->rot[i], primitive, symprec, 0))
+ != NULL) {
+
+ debug_print(" match translation %d/%d; tolerance = %f\n",
+ i + 1, lattice_sym->size, symprec);
+
+ total_num_sym += trans[i]->size;
+ }
+ }
+
+ if ((symmetry = sym_alloc_symmetry(total_num_sym)) == NULL) {
+ goto ret;
}
- symmetry = sym_alloc_symmetry(total_num_sym);
num_sym = 0;
for (i = 0; i < lattice_sym->size; i++) {
+ if (trans[i] == NULL) {
+ continue;
+ }
for (j = 0; j < trans[i]->size; j++) {
mat_copy_vector_d3(symmetry->trans[num_sym + j], trans[i]->vec[j]);
mat_copy_matrix_i3(symmetry->rot[num_sym + j], lattice_sym->rot[i]);
@@ -598,8 +772,12 @@ get_space_group_operations(SPGCONST PointSymmetry *lattice_sym,
num_sym += trans[i]->size;
}
+ ret:
for (i = 0; i < lattice_sym->size; i++) {
- mat_free_VecDBL(trans[i]);
+ if (trans[i] != NULL) {
+ mat_free_VecDBL(trans[i]);
+ trans[i] = NULL;
+ }
}
free(trans);
trans = NULL;
@@ -607,60 +785,12 @@ get_space_group_operations(SPGCONST PointSymmetry *lattice_sym,
return symmetry;
}
-static Symmetry * recover_operations_original(SPGCONST Symmetry *symmetry,
- const VecDBL * pure_trans,
- SPGCONST Cell *cell,
- SPGCONST Cell *primitive)
-{
- int i, j, k, multi;
- double inv_prim_lat[3][3], drot[3][3], trans_mat[3][3], trans_mat_inv[3][3];
- Symmetry *symmetry_orig, *sym_tmp;
-
- debug_print("recover_operations_original:\n");
-
- multi = pure_trans->size;
- sym_tmp = sym_alloc_symmetry(symmetry->size);
- symmetry_orig = sym_alloc_symmetry(symmetry->size * multi);
-
- mat_inverse_matrix_d3(inv_prim_lat, primitive->lattice, 0);
- mat_multiply_matrix_d3(trans_mat, inv_prim_lat, cell->lattice);
- mat_inverse_matrix_d3(trans_mat_inv, trans_mat, 0);
-
- for(i = 0; i < symmetry->size; i++) {
- mat_copy_matrix_i3(sym_tmp->rot[i], symmetry->rot[i]);
- mat_copy_vector_d3(sym_tmp->trans[i], symmetry->trans[i]);
- }
-
- for(i = 0; i < symmetry->size; i++) {
- mat_cast_matrix_3i_to_3d(drot, sym_tmp->rot[i]);
- mat_get_similar_matrix_d3(drot, drot, trans_mat, 0);
- mat_cast_matrix_3d_to_3i(sym_tmp->rot[i], drot);
-
- mat_multiply_matrix_vector_d3(sym_tmp->trans[i],
- trans_mat_inv,
- sym_tmp->trans[i]);
- }
-
-
- for(i = 0; i < symmetry->size; i++) {
- for(j = 0; j < multi; j++) {
- mat_copy_matrix_i3(symmetry_orig->rot[i * multi + j], sym_tmp->rot[i]);
- for (k = 0; k < 3; k++) {
- symmetry_orig->trans[i * multi + j][k] =
- sym_tmp->trans[i][k] + pure_trans->vec[j][k];
- }
- }
- }
-
- sym_free_symmetry(sym_tmp);
-
- return symmetry_orig;
-}
-
-static PointSymmetry get_lattice_symmetry(SPGCONST Cell *cell,
- const double symprec)
+static PointSymmetry get_lattice_symmetry(SPGCONST double cell_lattice[3][3],
+ const double symprec,
+ const double angle_symprec)
{
- int i, j, k, num_sym;
+ int i, j, k, attempt, num_sym;
+ double angle_tol;
int axes[3][3];
double lattice[3][3], min_lattice[3][3];
double metric[3][3], metric_orig[3][3];
@@ -668,59 +798,67 @@ static PointSymmetry get_lattice_symmetry(SPGCONST Cell *cell,
debug_print("get_lattice_symmetry:\n");
- if (! lat_smallest_lattice_vector(min_lattice,
- cell->lattice,
- symprec)) {
+ lattice_sym.size = 0;
+
+ if (! del_delaunay_reduce(min_lattice, cell_lattice, symprec)) {
goto err;
}
mat_get_metric(metric_orig, min_lattice);
-
- num_sym = 0;
- for (i = 0; i < 26; i++) {
- for (j = 0; j < 26; j++) {
- for (k = 0; k < 26; k++) {
- set_axes(axes, i, j, k);
- if (! ((mat_get_determinant_i3(axes) == 1) ||
- (mat_get_determinant_i3(axes) == -1))) {
- continue;
- }
- mat_multiply_matrix_di3(lattice, min_lattice, axes);
- mat_get_metric(metric, lattice);
-
- if (is_identity_metric(metric, metric_orig, symprec)) {
- mat_copy_matrix_i3(lattice_sym.rot[num_sym], axes);
- num_sym++;
- }
-
- if (num_sym > 48) {
- warning_print("spglib: Too many lattice symmetries was found.\n");
- warning_print(" Tolerance may be too large ");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
- goto err;
- }
+ angle_tol = angle_symprec;
+
+ for (attempt = 0; attempt < NUM_ATTEMPT; attempt++) {
+ num_sym = 0;
+ for (i = 0; i < 26; i++) {
+ for (j = 0; j < 26; j++) {
+ for (k = 0; k < 26; k++) {
+ set_axes(axes, i, j, k);
+ if (! ((mat_get_determinant_i3(axes) == 1) ||
+ (mat_get_determinant_i3(axes) == -1))) {
+ continue;
+ }
+ mat_multiply_matrix_di3(lattice, min_lattice, axes);
+ mat_get_metric(metric, lattice);
+
+ if (is_identity_metric(metric, metric_orig, symprec, angle_tol)) {
+ if (num_sym > 47) {
+ angle_tol *= ANGLE_REDUCE_RATE;
+ warning_print("spglib: Too many lattice symmetries was found.\n");
+ warning_print(" Reduce angle tolerance to %f", angle_tol);
+ warning_print(" (line %d, %s).\n", __LINE__, __FILE__);
+ goto next_attempt;
+ }
+
+ mat_copy_matrix_i3(lattice_sym.rot[num_sym], axes);
+ num_sym++;
+ }
+ }
}
}
+
+ if (num_sym < 49 || angle_tol < 0) {
+ lattice_sym.size = num_sym;
+ return transform_pointsymmetry(&lattice_sym, cell_lattice, min_lattice);
+ }
+
+ next_attempt:
+ ;
}
- lattice_sym.size = num_sym;
- return transform_pointsymmetry(&lattice_sym,
- cell->lattice,
- min_lattice);
-
err:
- lattice_sym.size = 0;
+ debug_print("get_lattice_symmetry failed.\n");
return lattice_sym;
}
static int is_identity_metric(SPGCONST double metric_rotated[3][3],
- SPGCONST double metric_orig[3][3],
- const double symprec)
+ SPGCONST double metric_orig[3][3],
+ const double symprec,
+ const double angle_symprec)
{
int i, j, k;
int elem_sets[3][2] = {{0, 1},
- {0, 2},
- {1, 2}};
+ {0, 2},
+ {1, 2}};
double cos1, cos2, x, length_ave2, sin_dtheta2;
double length_orig[3], length_rot[3];
@@ -731,14 +869,14 @@ static int is_identity_metric(SPGCONST double metric_rotated[3][3],
goto fail;
}
}
-
+
for (i = 0; i < 3; i++) {
j = elem_sets[i][0];
k = elem_sets[i][1];
- if (angle_tolerance > 0) {
+ if (angle_symprec > 0) {
if (mat_Dabs(get_angle(metric_orig, j, k) -
- get_angle(metric_rotated, j, k)) > angle_tolerance) {
- goto fail;
+ get_angle(metric_rotated, j, k)) > angle_symprec) {
+ goto fail;
}
} else {
/* dtheta = arccos(cos(theta1) - arccos(cos(theta2))) */
@@ -750,11 +888,11 @@ static int is_identity_metric(SPGCONST double metric_rotated[3][3],
x = cos1 * cos2 + sqrt(1 - cos1 * cos1) * sqrt(1 - cos2 * cos2);
sin_dtheta2 = 1 - x * x;
length_ave2 = ((length_orig[j] + length_rot[j]) *
- (length_orig[k] + length_rot[k])) / 4;
+ (length_orig[k] + length_rot[k])) / 4;
if (sin_dtheta2 > 1e-12) {
- if (sin_dtheta2 * length_ave2 > symprec * symprec) {
- goto fail;
- }
+ if (sin_dtheta2 * length_ave2 > symprec * symprec) {
+ goto fail;
+ }
}
}
}
@@ -766,8 +904,8 @@ static int is_identity_metric(SPGCONST double metric_rotated[3][3],
}
static double get_angle(SPGCONST double metric[3][3],
- const int i,
- const int j)
+ const int i,
+ const int j)
{
double length_i, length_j;
@@ -779,13 +917,15 @@ static double get_angle(SPGCONST double metric[3][3],
static PointSymmetry
transform_pointsymmetry(SPGCONST PointSymmetry * lat_sym_orig,
- SPGCONST double new_lattice[3][3],
- SPGCONST double original_lattice[3][3])
+ SPGCONST double new_lattice[3][3],
+ SPGCONST double original_lattice[3][3])
{
int i, size;
double trans_mat[3][3], inv_mat[3][3], drot[3][3];
PointSymmetry lat_sym_new;
+ lat_sym_new.size = 0;
+
mat_inverse_matrix_d3(inv_mat, original_lattice, 0);
mat_multiply_matrix_d3(trans_mat, inv_mat, new_lattice);
@@ -798,10 +938,10 @@ transform_pointsymmetry(SPGCONST PointSymmetry * lat_sym_orig,
/* The operations that have non-integer elements are not counted. */
if (mat_is_int_matrix(drot, mat_Dabs(mat_get_determinant_d3(trans_mat)) / 10)) {
mat_cast_matrix_3d_to_3i(lat_sym_new.rot[size], drot);
- if (! abs(mat_get_determinant_i3(lat_sym_new.rot[size])) == 1) {
- warning_print("spglib: A point symmetry operation is not unimodular.");
- warning_print("(line %d, %s).\n", __LINE__, __FILE__);
- goto err;
+ if (abs(mat_get_determinant_i3(lat_sym_new.rot[size])) != 1) {
+ warning_print("spglib: A point symmetry operation is not unimodular.");
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+ goto err;
}
size++;
}
@@ -818,12 +958,11 @@ transform_pointsymmetry(SPGCONST PointSymmetry * lat_sym_orig,
return lat_sym_new;
err:
- lat_sym_new.size = 0;
return lat_sym_new;
}
static void set_axes(int axes[3][3],
- const int a1, const int a2, const int a3)
+ const int a1, const int a2, const int a3)
{
int i;
for (i = 0; i < 3; i++) {axes[i][0] = relative_axes[a1][i]; }
diff --git a/src/symmetry.h b/src/symmetry.h
index 6f82b64..f6410b7 100644
--- a/src/symmetry.h
+++ b/src/symmetry.h
@@ -1,5 +1,36 @@
-/* symmetry.h */
/* Copyright (C) 2008 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
#ifndef __symmetry_H__
#define __symmetry_H__
@@ -18,21 +49,20 @@ typedef struct {
int size;
} PointSymmetry;
-Symmetry * sym_alloc_symmetry( const int size );
-void sym_free_symmetry( Symmetry * symmetry );
-int sym_get_multiplicity( SPGCONST Cell * cell,
- const double symprec );
-Symmetry * sym_get_operation( SPGCONST Cell * cell,
- const double symprec );
-Symmetry * sym_reduce_operation( SPGCONST Cell * cell,
- SPGCONST Symmetry * symmetry,
- const double symprec );
-VecDBL * sym_get_pure_translation( SPGCONST Cell *cell,
- const double symprec );
-VecDBL * sym_reduce_pure_translation( SPGCONST Cell * cell,
- const VecDBL * pure_trans,
- const double symprec );
-void sym_set_angle_tolerance(double tolerance);
-double sym_get_angle_tolerance(void);
+Symmetry * sym_alloc_symmetry(const int size);
+void sym_free_symmetry(Symmetry * symmetry);
+Symmetry * sym_get_operation(const Cell * primitive,
+ const double symprec,
+ const double angle_tolerance);
+Symmetry * sym_reduce_operation(const Cell * primitive,
+ const Symmetry * symmetry,
+ const double symprec,
+ const double angle_tolerance);
+VecDBL * sym_get_pure_translation(const Cell *cell,
+ const double symprec);
+VecDBL * sym_reduce_pure_translation(const Cell * cell,
+ const VecDBL * pure_trans,
+ const double symprec,
+ const double angle_tolerance);
#endif
diff --git a/src/test.c b/src/test.c
new file mode 100644
index 0000000..8830000
--- /dev/null
+++ b/src/test.c
@@ -0,0 +1,1001 @@
+#include "spglib.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
+static int test_spg_get_symmetry(void);
+static int test_spg_get_symmetry_with_collinear_spin(void);
+static int test_spg_get_multiplicity(void);
+static int test_spg_find_primitive_BCC(void);
+static int test_spg_find_primitive_corundum(void);
+static int test_spg_standardize_cell_BCC(void);
+static int test_spg_standardize_cell_corundum(void);
+static int sub_spg_standardize_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec,
+ const int to_primitive,
+ const int no_idealize);
+static int test_spg_get_international(void);
+static int test_spg_get_schoenflies(void);
+static int test_spg_get_spacegroup_type(void);
+static int test_spg_get_symmetry_from_database(void);
+static int test_spg_refine_cell_BCC(void);
+static int test_spg_get_dataset(void);
+static int test_spg_get_ir_reciprocal_mesh(void);
+static int test_spg_get_stabilized_reciprocal_mesh(void);
+static int test_spg_relocate_BZ_grid_address(void);
+static int test_spg_get_error_message(void);
+static int test_spg_get_hall_number_from_symmetry(void);
+static int show_spg_dataset(double lattice[3][3],
+ const double origin_shift[3],
+ double position[][3],
+ const int num_atom,
+ const int types[]);
+static void show_spacegroup_type(const SpglibSpacegroupType spgtype);
+static void show_cell(double lattice[3][3],
+ double position[][3],
+ const int types[],
+ const int num_atom);
+
+int main(void)
+{
+
+ int (*funcs[])(void) = {
+ test_spg_find_primitive_BCC,
+ test_spg_find_primitive_corundum,
+ test_spg_standardize_cell_BCC,
+ test_spg_standardize_cell_corundum,
+ test_spg_get_multiplicity,
+ test_spg_get_symmetry,
+ test_spg_get_symmetry_with_collinear_spin,
+ test_spg_get_international,
+ test_spg_get_schoenflies,
+ test_spg_get_spacegroup_type,
+ test_spg_get_symmetry_from_database,
+ test_spg_refine_cell_BCC,
+ test_spg_get_dataset,
+ test_spg_get_ir_reciprocal_mesh,
+ test_spg_get_stabilized_reciprocal_mesh,
+ test_spg_relocate_BZ_grid_address,
+ test_spg_get_error_message,
+ test_spg_get_hall_number_from_symmetry,
+ NULL};
+
+ int i, result;
+
+ for (i = 0; i < 30; i++) {
+ if (*funcs[i] == NULL) {
+ break;
+ } else {
+ result = (funcs[i])();
+ fflush(stdout);
+ }
+ if (result) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+static int test_spg_get_hall_number_from_symmetry(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 4}};
+ double position[][3] = {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5}
+ };
+ int types[] = {1, 1};
+ int num_atom = 2;
+ double symprec = 1e-5;
+
+ int hall_number;
+ SpglibSpacegroupType spgtype;
+ SpglibDataset *dataset;
+
+ printf("*** spg_get_hall_number_from_symmetry ***:\n");
+ if ((dataset = spg_get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ symprec)) == NULL) {
+ return 0;
+ }
+ printf("hall_number = %d is found by spg_get_dataset.\n", dataset->hall_number);
+ hall_number = spg_get_hall_number_from_symmetry(dataset->rotations,
+ dataset->translations,
+ dataset->n_operations,
+ symprec);
+ printf("hall_number = %d is found by spg_get_hall_number_from_symmetry.\n",
+ hall_number);
+ if (hall_number == dataset->hall_number) {
+ spgtype = spg_get_spacegroup_type(hall_number);
+ if (spgtype.number) {
+ show_spacegroup_type(spgtype);
+ return 0;
+ } else {
+ return 1;
+ }
+ } else {
+ return 0;
+ }
+}
+
+static int test_spg_find_primitive_BCC(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 4}};
+ double position[][3] = {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5}
+ };
+ int types[] = {1, 1};
+ int num_atom = 2, num_primitive_atom;
+ double symprec = 1e-5;
+
+ /* lattice, position, and types are overwirtten. */
+ printf("*** spg_find_primitive (BCC unitcell --> primitive) ***:\n");
+ num_primitive_atom = spg_find_primitive(lattice, position, types, num_atom, symprec);
+ if (num_primitive_atom == 0) {
+ printf("Primitive cell was not found.\n");
+ return 1;
+ } else {
+ show_cell(lattice, position, types, num_primitive_atom);
+ return 0;
+ }
+}
+
+static int test_spg_find_primitive_corundum(void)
+{
+ double lattice[3][3] = {{4.8076344022756095, -2.4038172011378047, 0},
+ {0, 4.1635335244786962, 0},
+ {0, 0, 13.1172699198127543}};
+ double position[][3] = {
+ {0.0000000000000000, 0.0000000000000000, 0.3521850942289043},
+ {0.6666666666666643, 0.3333333333333357, 0.6855184275622400},
+ {0.3333333333333357, 0.6666666666666643, 0.0188517608955686},
+ {0.0000000000000000, 0.0000000000000000, 0.6478149057711028},
+ {0.6666666666666643, 0.3333333333333357, 0.9811482391044314},
+ {0.3333333333333357, 0.6666666666666643, 0.3144815724377600},
+ {0.0000000000000000, 0.0000000000000000, 0.1478149057710957},
+ {0.6666666666666643, 0.3333333333333357, 0.4811482391044314},
+ {0.3333333333333357, 0.6666666666666643, 0.8144815724377600},
+ {0.0000000000000000, 0.0000000000000000, 0.8521850942288972},
+ {0.6666666666666643, 0.3333333333333357, 0.1855184275622400},
+ {0.3333333333333357, 0.6666666666666643, 0.5188517608955686},
+ {0.3061673906454899, 0.0000000000000000, 0.2500000000000000},
+ {0.9728340573121541, 0.3333333333333357, 0.5833333333333357},
+ {0.6395007239788255, 0.6666666666666643, 0.9166666666666643},
+ {0.6938326093545102, 0.0000000000000000, 0.7500000000000000},
+ {0.3604992760211744, 0.3333333333333357, 0.0833333333333357},
+ {0.0271659426878458, 0.6666666666666643, 0.4166666666666643},
+ {0.0000000000000000, 0.3061673906454899, 0.2500000000000000},
+ {0.6666666666666643, 0.6395007239788255, 0.5833333333333357},
+ {0.3333333333333357, 0.9728340573121541, 0.9166666666666643},
+ {0.0000000000000000, 0.6938326093545102, 0.7500000000000000},
+ {0.6666666666666643, 0.0271659426878458, 0.0833333333333357},
+ {0.3333333333333357, 0.3604992760211744, 0.4166666666666643},
+ {0.6938326093545102, 0.6938326093545102, 0.2500000000000000},
+ {0.3604992760211744, 0.0271659426878458, 0.5833333333333357},
+ {0.0271659426878458, 0.3604992760211744, 0.9166666666666643},
+ {0.3061673906454899, 0.3061673906454899, 0.7500000000000000},
+ {0.9728340573121541, 0.6395007239788255, 0.0833333333333357},
+ {0.6395007239788255, 0.9728340573121541, 0.4166666666666643},
+ };
+ int types[30];
+ int i, num_atom = 30, num_primitive_atom;
+ double symprec = 1e-5;
+
+ for (i = 0; i < 12; i++) {
+ types[i] = 1;
+ }
+ for (i = 12; i < 30; i++) {
+ types[i] = 2;
+ }
+
+ /* lattice, position, and types are overwirtten. */
+ printf("*** spg_find_primitive (Corundum) ***:\n");
+ num_primitive_atom = spg_find_primitive(lattice, position, types, num_atom, symprec);
+ if (num_primitive_atom == 0) {
+ printf("Primitive cell was not found.\n");
+ return 1;
+ } else {
+ show_cell(lattice, position, types, num_primitive_atom);
+ return 0;
+ }
+}
+
+static int test_spg_refine_cell_BCC(void)
+{
+ double lattice[3][3] = {{0, 2, 2}, {2, 0, 2}, {2, 2, 0}};
+
+ /* 4 times larger memory space must be prepared. */
+ double position[4][3];
+ int types[4];
+
+ int num_atom_bravais, num_atom = 1;
+ double symprec = 1e-5;
+
+ position[0][0] = 0;
+ position[0][1] = 0;
+ position[0][2] = 0;
+ types[0] = 1;
+
+ /* lattice, position, and types are overwirtten. */
+ printf("*** spg_refine_cell ***:\n");
+ num_atom_bravais = spg_refine_cell(lattice,
+ position,
+ types,
+ num_atom,
+ symprec);
+ if (num_atom_bravais == 0) {
+ printf("Refine cell failed.\n");
+ return 1;
+ } else {
+ show_cell(lattice, position, types, num_atom_bravais);
+ return 0;
+ }
+}
+
+static int test_spg_standardize_cell_BCC(void)
+{
+ double lattice[3][3] = {{3.97, 0, 0}, {0, 4.03, 0}, {0, 0, 4.0}};
+ double position[][3] = {
+ {0.002, 0, 0},
+ {0.5, 0.5001, 0.5}
+ };
+ int types[] = {1, 1};
+ int j, k, num_atom = 2;
+ double symprec = 1e-1;
+
+ /* lattice, position, and types are overwirtten. */
+ printf("*** spg_standardize_cell (BCC unitcell --> primitive) ***:\n");
+ printf("------------------------------------------------------\n");
+ for (j = 0; j < 2; j++) {
+ for (k = 0; k < 2; k++) {
+ if (sub_spg_standardize_cell(lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ j,
+ k)) {
+ return 1;
+ }
+ printf("------------------------------------------------------\n");
+ }
+ }
+
+ return 0;
+}
+
+static int test_spg_standardize_cell_corundum(void)
+{
+ double lattice[3][3] = {{4.8076344022756095, -2.4038172011378047, 0},
+ {0, 4.1635335244786962, 0},
+ {0, 0, 13.1172699198127543}};
+ double position[][3] = {
+ {0.0000000000000000, 0.0000000000000000, 0.3521850942289043},
+ {0.6666666666666643, 0.3333333333333357, 0.6855184275622400},
+ {0.3333333333333357, 0.6666666666666643, 0.0188517608955686},
+ {0.0000000000000000, 0.0000000000000000, 0.6478149057711028},
+ {0.6666666666666643, 0.3333333333333357, 0.9811482391044314},
+ {0.3333333333333357, 0.6666666666666643, 0.3144815724377600},
+ {0.0000000000000000, 0.0000000000000000, 0.1478149057710957},
+ {0.6666666666666643, 0.3333333333333357, 0.4811482391044314},
+ {0.3333333333333357, 0.6666666666666643, 0.8144815724377600},
+ {0.0000000000000000, 0.0000000000000000, 0.8521850942288972},
+ {0.6666666666666643, 0.3333333333333357, 0.1855184275622400},
+ {0.3333333333333357, 0.6666666666666643, 0.5188517608955686},
+ {0.3061673906454899, 0.0000000000000000, 0.2500000000000000},
+ {0.9728340573121541, 0.3333333333333357, 0.5833333333333357},
+ {0.6395007239788255, 0.6666666666666643, 0.9166666666666643},
+ {0.6938326093545102, 0.0000000000000000, 0.7500000000000000},
+ {0.3604992760211744, 0.3333333333333357, 0.0833333333333357},
+ {0.0271659426878458, 0.6666666666666643, 0.4166666666666643},
+ {0.0000000000000000, 0.3061673906454899, 0.2500000000000000},
+ {0.6666666666666643, 0.6395007239788255, 0.5833333333333357},
+ {0.3333333333333357, 0.9728340573121541, 0.9166666666666643},
+ {0.0000000000000000, 0.6938326093545102, 0.7500000000000000},
+ {0.6666666666666643, 0.0271659426878458, 0.0833333333333357},
+ {0.3333333333333357, 0.3604992760211744, 0.4166666666666643},
+ {0.6938326093545102, 0.6938326093545102, 0.2500000000000000},
+ {0.3604992760211744, 0.0271659426878458, 0.5833333333333357},
+ {0.0271659426878458, 0.3604992760211744, 0.9166666666666643},
+ {0.3061673906454899, 0.3061673906454899, 0.7500000000000000},
+ {0.9728340573121541, 0.6395007239788255, 0.0833333333333357},
+ {0.6395007239788255, 0.9728340573121541, 0.4166666666666643},
+ };
+ int types[30];
+ int i, j, k, num_atom = 30;
+ double symprec = 1e-5;
+
+ for (i = 0; i < 12; i++) {
+ types[i] = 1;
+ }
+ for (i = 12; i < 30; i++) {
+ types[i] = 2;
+ }
+
+ /* lattice, position, and types are overwirtten. */
+ printf("*** spg_standardize_cell (Corundum) ***:\n");
+ printf("------------------------------------------------------\n");
+ for (j = 0; j < 2; j++) {
+ for (k = 0; k < 2; k++) {
+ if (sub_spg_standardize_cell(lattice,
+ position,
+ types,
+ num_atom,
+ symprec,
+ j,
+ k)) {
+ return 1;
+ }
+ printf("------------------------------------------------------\n");
+ }
+ }
+
+ return 0;
+}
+
+static int sub_spg_standardize_cell(double lattice[3][3],
+ double position[][3],
+ int types[],
+ const int num_atom,
+ const double symprec,
+ const int to_primitive,
+ const int no_idealize)
+{
+ int i, num_primitive_atom;
+ double lat[3][3], pos[num_atom][3];
+ int typ[num_atom];
+
+ for (i = 0; i < 3; i++) {
+ lat[i][0] = lattice[i][0];
+ lat[i][1] = lattice[i][1];
+ lat[i][2] = lattice[i][2];
+ }
+
+ for (i = 0; i < num_atom; i++) {
+ pos[i][0] = position[i][0];
+ pos[i][1] = position[i][1];
+ pos[i][2] = position[i][2];
+ typ[i] = types[i];
+ }
+
+ /* lattice, position, and types are overwirtten. */
+ num_primitive_atom = spg_standardize_cell(lat,
+ pos,
+ typ,
+ num_atom,
+ to_primitive,
+ no_idealize,
+ symprec);
+ if (num_primitive_atom) {
+ printf("VASP POSCAR format: ");
+ if (to_primitive == 0) {
+ printf("to_primitive=0 and ");
+ } else {
+ printf("to_primitive=1 and ");
+ }
+
+ if (no_idealize == 0) {
+ printf("no_idealize=0\n");
+ } else {
+ printf("no_idealize=1\n");
+ }
+ printf("1.0\n");
+ for (i = 0; i < 3; i++) {
+ printf("%f %f %f\n", lat[0][i], lat[1][i], lat[2][i]);
+ }
+ printf("%d\n", num_primitive_atom);
+ printf("Direct\n");
+ for (i = 0; i < num_primitive_atom; i++) {
+ printf("%f %f %f\n", pos[i][0], pos[i][1], pos[i][2]);
+ }
+
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+static int test_spg_get_international(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
+ double position[][3] =
+ {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.5},
+ {0.8, 0.2, 0.5},
+ };
+ int types[] = {1, 1, 2, 2, 2, 2};
+ int num_spg, num_atom = 6;
+ char symbol[21];
+
+ num_spg = spg_get_international(symbol, lattice, position, types, num_atom, 1e-5);
+ printf("*** spg_get_international ***:\n");
+ if ( num_spg > 0 ) {
+ printf("%s (%d)\n", symbol, num_spg);
+ return 0;
+ } else {
+ printf("Space group could not be found.\n");
+ return 1;
+ }
+}
+
+static int test_spg_get_schoenflies(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
+ double position[][3] =
+ {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.5},
+ {0.8, 0.2, 0.5},
+ };
+ int types[] = {1, 1, 2, 2, 2, 2};
+ int num_atom = 6;
+ char symbol[7];
+
+ if (spg_get_schoenflies(symbol, lattice, position, types, num_atom, 1e-5)) {
+ printf("*** spg_get_schoenflies ***:\n");
+ printf("Schoenflies: %s\n", symbol);
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+static int test_spg_get_spacegroup_type(void)
+{
+ SpglibSpacegroupType spgtype;
+ spgtype = spg_get_spacegroup_type(446);
+
+ printf("*** spg_get_spacegroup_type ***:\n");
+ if (spgtype.number) {
+ show_spacegroup_type(spgtype);
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+static int test_spg_get_symmetry_from_database(void)
+{
+ int rotations[192][3][3];
+ double translations[192][3];
+ int i, j, size;
+
+ size = spg_get_symmetry_from_database(rotations,
+ translations,
+ 460);
+
+ if (size) {
+ printf("*** spg_get_symmetry_from_database ***:\n");
+ for (i = 0; i < size; i++) {
+ printf("--- %d ---\n", i + 1);
+ for (j = 0; j < 3; j++) {
+ printf("%2d %2d %2d\n",
+ rotations[i][j][0], rotations[i][j][1], rotations[i][j][2]);
+ }
+ printf("%f %f %f\n",
+ translations[i][0], translations[i][1], translations[i][2]);
+ }
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+static int test_spg_get_multiplicity(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 4}};
+ double position[][3] = {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5}
+ };
+ int types[] = {1, 2};
+ int num_atom = 2;
+ int size;
+
+ size = spg_get_multiplicity(lattice, position, types, num_atom, 1e-5);
+
+ if (size) {
+ printf("*** spg_get_multiplicity ***:\n");
+ printf("Number of symmetry operations: %d\n", size);
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+
+static int test_spg_get_symmetry(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
+ double position[][3] =
+ {
+ {0, 0, 0},
+ {0.5, 0.5, 0.25},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.25},
+ {0.8, 0.2, 0.25},
+ {0, 0, 0.5},
+ {0.5, 0.5, 0.75},
+ {0.3, 0.3, 0.5},
+ {0.7, 0.7, 0.5},
+ {0.2, 0.8, 0.75},
+ {0.8, 0.2, 0.75}
+ };
+ int types[] = {1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2};
+ int num_atom = 12;
+ int max_size = 50;
+ int i, j, size;
+ int rotation[max_size][3][3];
+ double translation[max_size][3];
+
+ double origin_shift[3] = {0.1, 0.1, 0};
+ for (i = 0; i < num_atom; i++) {
+ for (j = 0; j < 3; j++) {
+ position[i][j] += origin_shift[j];
+ }
+ }
+
+ printf("*** spg_get_symmetry (Rutile two unit cells) ***:\n");
+ size = spg_get_symmetry(rotation,
+ translation,
+ max_size,
+ lattice,
+ position,
+ types,
+ num_atom,
+ 1e-5);
+ if (size) {
+ for (i = 0; i < size; i++) {
+ printf("--- %d ---\n", i + 1);
+ for (j = 0; j < 3; j++)
+ printf("%2d %2d %2d\n", rotation[i][j][0], rotation[i][j][1], rotation[i][j][2]);
+ printf("%f %f %f\n",
+ translation[i][0], translation[i][1], translation[i][2]);
+ }
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+static int test_spg_get_symmetry_with_collinear_spin(void) {
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 4}};
+ double position[][3] =
+ {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5}
+ };
+ int types[] = {1, 1};
+ int equivalent_atoms[2];
+ double spins[2];
+ int num_atom = 2;
+ int max_size = 300;
+ int i, j, size;
+ int rotation[max_size][3][3];
+ double translation[max_size][3];
+
+ printf("*** spg_get_symmetry_with_spin (BCC ferro) ***:\n");
+ spins[0] = 1;
+ spins[1] = 1;
+ size = spg_get_symmetry_with_collinear_spin(rotation,
+ translation,
+ equivalent_atoms,
+ max_size,
+ lattice,
+ position,
+ types,
+ spins,
+ num_atom,
+ 1e-5);
+ if (size) {
+ for (i = 0; i < size; i++) {
+ printf("--- %d ---\n", i + 1);
+ for (j = 0; j < 3; j++) {
+ printf("%2d %2d %2d\n",
+ rotation[i][j][0], rotation[i][j][1], rotation[i][j][2]);
+ }
+ printf("%f %f %f\n", translation[i][0], translation[i][1],
+ translation[i][2]);
+ }
+ } else {
+ return 1;
+ }
+
+ printf("*** Example of spg_get_symmetry_with_spin (BCC antiferro) ***:\n");
+ spins[0] = 1;
+ spins[1] = -1;
+ size = spg_get_symmetry_with_collinear_spin(rotation,
+ translation,
+ equivalent_atoms,
+ max_size,
+ lattice,
+ position,
+ types,
+ spins,
+ num_atom,
+ 1e-5);
+ if (size) {
+ for (i = 0; i < size; i++) {
+ printf("--- %d ---\n", i + 1);
+ for (j = 0; j < 3; j++) {
+ printf("%2d %2d %2d\n",
+ rotation[i][j][0], rotation[i][j][1], rotation[i][j][2]);
+ }
+ printf("%f %f %f\n", translation[i][0], translation[i][1],
+ translation[i][2]);
+ }
+ } else {
+ return 1;
+ }
+
+ printf("*** spg_get_symmetry_with_spin (BCC broken spin) ***:\n");
+ spins[0] = 1;
+ spins[1] = 2;
+ size = spg_get_symmetry_with_collinear_spin(rotation,
+ translation,
+ equivalent_atoms,
+ max_size,
+ lattice,
+ position,
+ types,
+ spins,
+ num_atom,
+ 1e-5);
+ if (size) {
+ for (i = 0; i < size; i++) {
+ printf("--- %d ---\n", i + 1);
+ for (j = 0; j < 3; j++) {
+ printf("%2d %2d %2d\n",
+ rotation[i][j][0], rotation[i][j][1], rotation[i][j][2]);
+ }
+ printf("%f %f %f\n", translation[i][0], translation[i][1],
+ translation[i][2]);
+ }
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+
+static int test_spg_get_dataset(void)
+{
+ printf("*** spg_get_dataset (Rutile two unit cells) ***:\n");
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
+ double origin_shift[3] = {0.1, 0.1, 0};
+ double position[][3] =
+ {
+ {0, 0, 0},
+ {0.5, 0.5, 0.25},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.25},
+ {0.8, 0.2, 0.25},
+ {0, 0, 0.5},
+ {0.5, 0.5, 0.75},
+ {0.3, 0.3, 0.5},
+ {0.7, 0.7, 0.5},
+ {0.2, 0.8, 0.75},
+ {0.8, 0.2, 0.75}
+ };
+ int types[] = {1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2};
+ int num_atom = 12;
+
+ if (show_spg_dataset(lattice, origin_shift, position, num_atom, types) == 1) {
+ return 1;
+ }
+
+ double lattice_2[3][3] = {{3.7332982433264039, -1.8666491216632011, 0},
+ {0, 3.2331311186244847, 0},
+ {0, 0, 6.0979971306362799}};
+ double origin_shift_2[3] = {0.1, 0.1, 0};
+ double position_2[][3] =
+ {
+ {0, 0, 0},
+ {1.0 / 3, 2.0 / 3, 0.4126},
+ {1.0 / 3, 2.0 / 3, 0.776},
+ {2.0 / 3, 1.0 / 3, 0.2542},
+ };
+ int types_2[] = {1, 2, 3, 3};
+ int num_atom_2 = 4;
+
+ if (show_spg_dataset(lattice_2, origin_shift_2, position_2, num_atom_2, types_2)) {
+ return 1;
+ }
+
+ return 0;
+}
+
+static int test_spg_get_ir_reciprocal_mesh(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
+ double position[][3] =
+ {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.5},
+ {0.8, 0.2, 0.5},
+ };
+ int types[] = {1, 1, 2, 2, 2, 2};
+ int num_atom = 6;
+ int m = 40;
+ int mesh[] = {m, m, m};
+ int is_shift[] = {1, 1, 1};
+ int grid_address[m * m * m][3];
+ int grid_mapping_table[m * m * m];
+
+ printf("*** spg_get_ir_reciprocal_mesh of Rutile structure ***:\n");
+
+ int num_ir = spg_get_ir_reciprocal_mesh(grid_address,
+ grid_mapping_table,
+ mesh,
+ is_shift,
+ 1,
+ lattice,
+ position,
+ types,
+ num_atom,
+ 1e-5);
+
+ if (num_ir) {
+ printf("Number of irreducible k-points of Rutile with\n");
+ printf("40x40x40 Monkhorst-Pack mesh is %d (4200).\n", num_ir);
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+static int test_spg_get_stabilized_reciprocal_mesh(void)
+{
+ SpglibDataset *dataset;
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
+ double position[][3] =
+ {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5},
+ {0.3, 0.3, 0},
+ {0.7, 0.7, 0},
+ {0.2, 0.8, 0.5},
+ {0.8, 0.2, 0.5},
+ };
+ int types[] = {1, 1, 2, 2, 2, 2};
+ int num_atom = 6;
+
+ dataset = spg_get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 1e-5);
+
+ if (dataset == NULL) {
+ return 1;
+ }
+
+ int m = 40;
+ int mesh[] = {m, m, m};
+ int is_shift[] = {1, 1, 1};
+ int grid_address[m * m * m][3];
+ int grid_mapping_table[m * m * m];
+ double q[] = {0, 0.5, 0.5};
+
+ printf("*** spg_get_stabilized_reciprocal_mesh of Rutile structure ***:\n");
+
+ int num_ir = spg_get_stabilized_reciprocal_mesh(grid_address,
+ grid_mapping_table,
+ mesh,
+ is_shift,
+ 1,
+ dataset->n_operations,
+ dataset->rotations,
+ 1,
+ (double(*)[3])q);
+ spg_free_dataset(dataset);
+
+ if (num_ir) {
+ printf("Number of irreducible k-points stabilized by q=(0, 1/2, 1/2) of Rutile with\n");
+ printf("40x40x40 Monkhorst-Pack mesh is %d (8000).\n", num_ir);
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+static int test_spg_relocate_BZ_grid_address(void)
+{
+ double rec_lattice[3][3] = {{-0.17573761, 0.17573761, 0.17573761},
+ { 0.17573761, -0.17573761, 0.17573761},
+ { 0.17573761, 0.17573761, -0.17573761}};
+ int rotations[][3][3] = {{{1, 0, 0},
+ {0, 1, 0},
+ {0, 0, 1}}};
+
+
+ int m = 40;
+ int mesh[] = {m, m, m};
+ int is_shift[] = {0, 0, 0};
+ int bz_grid_address[(m + 1) * (m + 1) * (m + 1)][3];
+ int bz_map[m * m * m * 8];
+ int grid_address[m * m * m][3];
+ int grid_mapping_table[m * m * m];
+ double q[] = {0, 0, 0};
+
+ int num_ir = spg_get_stabilized_reciprocal_mesh(grid_address,
+ grid_mapping_table,
+ mesh,
+ is_shift,
+ 1,
+ 1,
+ rotations,
+ 1,
+ (double(*)[3])q);
+ if (num_ir) {
+ printf("*** spg_relocate_BZ_grid_address of NaCl structure ***:\n");
+
+ int num_q = spg_relocate_BZ_grid_address(bz_grid_address,
+ bz_map,
+ grid_address,
+ mesh,
+ rec_lattice,
+ is_shift);
+
+ printf("Number of k-points of NaCl Brillouin zone\n");
+ printf("with Gamma-centered 40x40x40 Monkhorst-Pack mesh is %d (65861).\n", num_q);
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+static int test_spg_get_error_message(void)
+{
+ double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 4}};
+ double position[][3] = {
+ {0, 0, 0},
+ {0.5, 0.5, 0.5},
+ {0.5, 0.5, 0.5}
+ };
+ int types[] = {1, 1, 1};
+ int num_atom = 3, num_primitive_atom;
+ double symprec = 1e-5;
+ SpglibError error;
+
+
+ /* lattice, position, and types are overwirtten. */
+ printf("*** Example of spg_get_error_message ***:\n");
+ num_primitive_atom = spg_find_primitive(lattice, position, types, num_atom, symprec);
+ if (num_primitive_atom == 0) {
+ printf("Primitive cell was not found.\n");
+ error = spg_get_error_code();
+ printf("%s\n", spg_get_error_message(error));
+ if (error == SPGLIB_SUCCESS) {
+ return 1;
+ } else {
+ return 0;
+ }
+ } else {
+ return 1;
+ }
+}
+
+static int show_spg_dataset(double lattice[3][3],
+ const double origin_shift[3],
+ double position[][3],
+ const int num_atom,
+ const int types[])
+{
+ SpglibDataset *dataset;
+ char ptsymbol[6];
+ int pt_trans_mat[3][3];
+ int i, j;
+ const char *wl = "abcdefghijklmnopqrstuvwxyz";
+
+ for ( i = 0; i < num_atom; i++ ) {
+ for ( j = 0; j < 3; j++ ) {
+ position[i][j] += origin_shift[j];
+ }
+ }
+
+ dataset = spg_get_dataset(lattice,
+ position,
+ types,
+ num_atom,
+ 1e-5);
+
+ if (dataset == NULL) {
+ return 1;
+ }
+
+ printf("International: %s (%d)\n", dataset->international_symbol, dataset->spacegroup_number );
+ printf("Hall symbol: %s\n", dataset->hall_symbol );
+ if (spg_get_pointgroup(ptsymbol,
+ pt_trans_mat,
+ dataset->rotations,
+ dataset->n_operations)) {
+ printf("Point group: %s\n", ptsymbol);
+ printf("Transformation matrix:\n");
+ for ( i = 0; i < 3; i++ ) {
+ printf("%f %f %f\n",
+ dataset->transformation_matrix[i][0],
+ dataset->transformation_matrix[i][1],
+ dataset->transformation_matrix[i][2]);
+ }
+ printf("Wyckoff letters:\n");
+ for ( i = 0; i < dataset->n_atoms; i++ ) {
+ printf("%c ", wl[dataset->wyckoffs[i]]);
+ }
+ printf("\n");
+ printf("Equivalent atoms:\n");
+ for (i = 0; i < dataset->n_atoms; i++) {
+ printf("%d ", dataset->equivalent_atoms[i]);
+ }
+ printf("\n");
+
+ for (i = 0; i < dataset->n_operations; i++) {
+ printf("--- %d ---\n", i + 1);
+ for (j = 0; j < 3; j++) {
+ printf("%2d %2d %2d\n",
+ dataset->rotations[i][j][0],
+ dataset->rotations[i][j][1],
+ dataset->rotations[i][j][2]);
+ }
+ printf("%f %f %f\n",
+ dataset->translations[i][0],
+ dataset->translations[i][1],
+ dataset->translations[i][2]);
+ }
+ spg_free_dataset(dataset);
+ return 0;
+ } else {
+ spg_free_dataset(dataset);
+ return 1;
+ }
+}
+
+static void show_spacegroup_type(const SpglibSpacegroupType spgtype)
+{
+ printf("Number: %d\n", spgtype.number);
+ printf("International: %s\n", spgtype.international_short);
+ printf("International: %s\n", spgtype.international_full);
+ printf("International: %s\n", spgtype.international);
+ printf("Schoenflies: %s\n", spgtype.schoenflies);
+ printf("Hall symbol: %s\n", spgtype.hall_symbol);
+ printf("Point group intl: %s\n", spgtype.pointgroup_international);
+ printf("Point group Schoe: %s\n", spgtype.pointgroup_schoenflies);
+ printf("Arithmetic cc num. %d\n", spgtype.arithmetic_crystal_class_number);
+ printf("Arithmetic cc sym. %s\n", spgtype.arithmetic_crystal_class_symbol);
+}
+
+static void show_cell(double lattice[3][3],
+ double position[][3],
+ const int types[],
+ const int num_atom)
+{
+ int i;
+
+ printf("Lattice parameter:\n");
+ for (i = 0; i < 3; i++) {
+ printf("%f %f %f\n", lattice[0][i], lattice[1][i], lattice[2][i]);
+ }
+ printf("Atomic positions:\n");
+ for (i = 0; i < num_atom; i++) {
+ printf("%d: %f %f %f\n",
+ types[i], position[i][0], position[i][1], position[i][2]);
+ }
+}
diff --git a/src/tetrahedron_method.c b/src/tetrahedron_method.c
new file mode 100644
index 0000000..8ec9c4e
--- /dev/null
+++ b/src/tetrahedron_method.c
@@ -0,0 +1,1091 @@
+/* Copyright (C) 2014 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file was originally part of spglib and is part of kspclib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+/* tetrahedron_method.c */
+/* Copyright (C) 2014 Atsushi Togo */
+
+#include "tetrahedron_method.h"
+#include "kgrid.h"
+
+#ifdef THMWARNING
+#include <stdio.h>
+#define warning_print(...) fprintf(stderr,__VA_ARGS__)
+#else
+#define warning_print(...)
+#endif
+
+/* 6-------7 */
+/* /| /| */
+/* / | / | */
+/* 4-------5 | */
+/* | 2----|--3 */
+/* | / | / */
+/* |/ |/ */
+/* 0-------1 */
+/* */
+/* i: vec neighbours */
+/* 0: O 1, 2, 4 */
+/* 1: a 0, 3, 5 */
+/* 2: b 0, 3, 6 */
+/* 3: a + b 1, 2, 7 */
+/* 4: c 0, 5, 6 */
+/* 5: c + a 1, 4, 7 */
+/* 6: c + b 2, 4, 7 */
+/* 7: c + a + b 3, 5, 6 */
+
+
+static int main_diagonals[4][3] = {{ 1, 1, 1}, /* 0-7 */
+ {-1, 1, 1}, /* 1-6 */
+ { 1,-1, 1}, /* 2-5 */
+ { 1, 1,-1}}; /* 3-4 */
+
+static int db_relative_grid_address[4][24][4][3] = {
+ {
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, 1, 0}, { 1, 1, 1}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, 0, 1}, { 1, 1, 1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, { 1, 1, 0}, { 1, 1, 1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, { 0, 1, 1}, { 1, 1, 1}, },
+ { { 0, 0, 0}, { 0, 0, 1}, { 1, 0, 1}, { 1, 1, 1}, },
+ { { 0, 0, 0}, { 0, 0, 1}, { 0, 1, 1}, { 1, 1, 1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, { 0, 1, 1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, { 0, 0, 1}, { 0, 1, 1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, 0, 1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, { 0, 0, 1}, { 1, 0, 1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, { 0, 0, 1}, {-1, -1, 0}, { 0, -1, 0}, },
+ { { 0, 0, 0}, { 0, 0, 1}, {-1, -1, 0}, {-1, 0, 0}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, 1, 0}, { 0, 0, -1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, { 1, 1, 0}, { 0, 0, -1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, {-1, 0, -1}, { 0, 0, -1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, {-1, 0, -1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, -1, -1}, { 0, 0, -1}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, -1, -1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, {-1, -1, -1}, { 0, -1, -1}, { 0, 0, -1}, },
+ { { 0, 0, 0}, {-1, -1, -1}, { 0, -1, -1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, {-1, -1, -1}, {-1, 0, -1}, { 0, 0, -1}, },
+ { { 0, 0, 0}, {-1, -1, -1}, {-1, 0, -1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, {-1, -1, -1}, {-1, -1, 0}, { 0, -1, 0}, },
+ { { 0, 0, 0}, {-1, -1, -1}, {-1, -1, 0}, {-1, 0, 0}, },
+ },
+ {
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, 1, 0}, { 0, 1, 1}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, 0, 1}, { 0, 1, 1}, },
+ { { 0, 0, 0}, {-1, 1, 0}, {-1, 1, 1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, {-1, 0, 1}, {-1, 1, 1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, {-1, 1, 0}, { 0, 1, 0}, {-1, 1, 1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, {-1, 1, 1}, { 0, 1, 1}, },
+ { { 0, 0, 0}, {-1, 0, 1}, { 0, 0, 1}, {-1, 1, 1}, },
+ { { 0, 0, 0}, { 0, 0, 1}, {-1, 1, 1}, { 0, 1, 1}, },
+ { { 0, 0, 0}, { 0, 0, 1}, { 0, -1, 0}, { 1, -1, 0}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, 0, 1}, { 1, -1, 0}, },
+ { { 0, 0, 0}, {-1, 0, 1}, { 0, -1, 0}, {-1, 0, 0}, },
+ { { 0, 0, 0}, {-1, 0, 1}, { 0, 0, 1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, { 0, 1, 0}, { 0, 0, -1}, { 1, 0, -1}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, 1, 0}, { 1, 0, -1}, },
+ { { 0, 0, 0}, {-1, 1, 0}, { 0, 0, -1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, {-1, 1, 0}, { 0, 1, 0}, { 0, 0, -1}, },
+ { { 0, 0, 0}, { 0, -1, -1}, { 1, -1, -1}, { 0, 0, -1}, },
+ { { 0, 0, 0}, { 0, -1, -1}, { 1, -1, -1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, { 1, -1, -1}, { 0, 0, -1}, { 1, 0, -1}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, -1, -1}, { 1, 0, -1}, },
+ { { 0, 0, 0}, { 1, -1, -1}, { 0, -1, 0}, { 1, -1, 0}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, -1, -1}, { 1, -1, 0}, },
+ { { 0, 0, 0}, { 0, -1, -1}, { 0, 0, -1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, { 0, -1, -1}, { 0, -1, 0}, {-1, 0, 0}, },
+ },
+ {
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, 1, 0}, { 1, 0, 1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, { 0, 0, 1}, { 1, 0, 1}, },
+ { { 0, 0, 0}, {-1, 1, 0}, { 0, 0, 1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, {-1, 1, 0}, { 0, 1, 0}, { 0, 0, 1}, },
+ { { 0, 0, 0}, { 1, -1, 1}, { 0, -1, 0}, { 1, -1, 0}, },
+ { { 0, 0, 0}, { 0, -1, 1}, { 1, -1, 1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, -1, 1}, { 1, -1, 0}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, -1, 1}, { 1, 0, 1}, },
+ { { 0, 0, 0}, { 0, -1, 1}, { 1, -1, 1}, { 0, 0, 1}, },
+ { { 0, 0, 0}, { 1, -1, 1}, { 0, 0, 1}, { 1, 0, 1}, },
+ { { 0, 0, 0}, { 0, -1, 1}, { 0, -1, 0}, {-1, 0, 0}, },
+ { { 0, 0, 0}, { 0, -1, 1}, { 0, 0, 1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, 0, -1}, { 0, 1, -1}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, 1, 0}, { 0, 1, -1}, },
+ { { 0, 0, 0}, {-1, 0, -1}, { 0, 0, -1}, {-1, 1, -1}, },
+ { { 0, 0, 0}, {-1, 0, -1}, {-1, 1, -1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, { 0, 0, -1}, {-1, 1, -1}, { 0, 1, -1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, {-1, 1, -1}, { 0, 1, -1}, },
+ { { 0, 0, 0}, {-1, 1, 0}, {-1, 1, -1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, {-1, 1, 0}, { 0, 1, 0}, {-1, 1, -1}, },
+ { { 0, 0, 0}, { 0, 0, -1}, { 0, -1, 0}, { 1, -1, 0}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, 0, -1}, { 1, -1, 0}, },
+ { { 0, 0, 0}, {-1, 0, -1}, { 0, 0, -1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, {-1, 0, -1}, { 0, -1, 0}, {-1, 0, 0}, },
+ },
+ {
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, 1, 0}, { 0, 0, 1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, { 1, 1, 0}, { 0, 0, 1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, {-1, 0, 1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, { 0, 1, 0}, {-1, 0, 1}, { 0, 0, 1}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, -1, 1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 0, -1, 1}, { 0, 0, 1}, },
+ { { 0, 0, 0}, {-1, -1, 1}, {-1, -1, 0}, { 0, -1, 0}, },
+ { { 0, 0, 0}, {-1, -1, 1}, {-1, -1, 0}, {-1, 0, 0}, },
+ { { 0, 0, 0}, {-1, -1, 1}, { 0, -1, 1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, {-1, -1, 1}, {-1, 0, 1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, {-1, -1, 1}, { 0, -1, 1}, { 0, 0, 1}, },
+ { { 0, 0, 0}, {-1, -1, 1}, {-1, 0, 1}, { 0, 0, 1}, },
+ { { 0, 0, 0}, { 0, 0, -1}, { 1, 0, -1}, { 1, 1, -1}, },
+ { { 0, 0, 0}, { 0, 0, -1}, { 0, 1, -1}, { 1, 1, -1}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, 0, -1}, { 1, 1, -1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, { 0, 1, -1}, { 1, 1, -1}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, 1, 0}, { 1, 1, -1}, },
+ { { 0, 0, 0}, { 0, 1, 0}, { 1, 1, 0}, { 1, 1, -1}, },
+ { { 0, 0, 0}, { 0, 0, -1}, { 0, 1, -1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, { 0, 1, 0}, { 0, 1, -1}, {-1, 0, 0}, },
+ { { 0, 0, 0}, { 0, 0, -1}, { 1, 0, -1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, { 1, 0, 0}, { 1, 0, -1}, { 0, -1, 0}, },
+ { { 0, 0, 0}, { 0, 0, -1}, {-1, -1, 0}, { 0, -1, 0}, },
+ { { 0, 0, 0}, { 0, 0, -1}, {-1, -1, 0}, {-1, 0, 0}, },
+ },
+};
+
+static void
+get_integration_weight_at_omegas(double *integration_weights,
+ const int num_omegas,
+ const double *omegas,
+ THMCONST double tetrahedra_omegas[24][4],
+ double (*gn)(const int,
+ const double,
+ const double[4]),
+ double (*IJ)(const int,
+ const int,
+ const double,
+ const double[4]));
+static double
+get_integration_weight(const double omega,
+ THMCONST double tetrahedra_omegas[24][4],
+ double (*gn)(const int,
+ const double,
+ const double[4]),
+ double (*IJ)(const int,
+ const int,
+ const double,
+ const double[4]));
+static int get_main_diagonal(THMCONST double rec_lattice[3][3]);
+static int sort_omegas(double v[4]);
+static double norm_squared_d3(const double a[3]);
+static void multiply_matrix_vector_di3(double v[3],
+ THMCONST double a[3][3],
+ const int b[3]);
+static double _f(const int n,
+ const int m,
+ const double omega,
+ const double vertices_omegas[4]);
+static double _J(const int i,
+ const int ci,
+ const double omega,
+ const double vertices_omegas[4]);
+static double _I(const int i,
+ const int ci,
+ const double omega,
+ const double vertices_omegas[4]);
+static double _n(const int i,
+ const double omega,
+ const double vertices_omegas[4]);
+static double _g(const int i,
+ const double omega,
+ const double vertices_omegas[4]);
+static double _n_0(void);
+static double _n_1(const double omega,
+ const double vertices_omegas[4]);
+static double _n_2(const double omega,
+ const double vertices_omegas[4]);
+static double _n_3(const double omega,
+ const double vertices_omegas[4]);
+static double _n_4(void);
+static double _g_0(void);
+static double _g_1(const double omega,
+ const double vertices_omegas[4]);
+static double _g_2(const double omega,
+ const double vertices_omegas[4]);
+static double _g_3(const double omega,
+ const double vertices_omegas[4]);
+static double _g_4(void);
+static double _J_0(void);
+static double _J_10(const double omega,
+ const double vertices_omegas[4]);
+static double _J_11(const double omega,
+ const double vertices_omegas[4]);
+static double _J_12(const double omega,
+ const double vertices_omegas[4]);
+static double _J_13(const double omega,
+ const double vertices_omegas[4]);
+static double _J_20(const double omega,
+ const double vertices_omegas[4]);
+static double _J_21(const double omega,
+ const double vertices_omegas[4]);
+static double _J_22(const double omega,
+ const double vertices_omegas[4]);
+static double _J_23(const double omega,
+ const double vertices_omegas[4]);
+static double _J_30(const double omega,
+ const double vertices_omegas[4]);
+static double _J_31(const double omega,
+ const double vertices_omegas[4]);
+static double _J_32(const double omega,
+ const double vertices_omegas[4]);
+static double _J_33(const double omega,
+ const double vertices_omegas[4]);
+static double _J_4(void);
+static double _I_0(void);
+static double _I_10(const double omega,
+ const double vertices_omegas[4]);
+static double _I_11(const double omega,
+ const double vertices_omegas[4]);
+static double _I_12(const double omega,
+ const double vertices_omegas[4]);
+static double _I_13(const double omega,
+ const double vertices_omegas[4]);
+static double _I_20(const double omega,
+ const double vertices_omegas[4]);
+static double _I_21(const double omega,
+ const double vertices_omegas[4]);
+static double _I_22(const double omega,
+ const double vertices_omegas[4]);
+static double _I_23(const double omega,
+ const double vertices_omegas[4]);
+static double _I_30(const double omega,
+ const double vertices_omegas[4]);
+static double _I_31(const double omega,
+ const double vertices_omegas[4]);
+static double _I_32(const double omega,
+ const double vertices_omegas[4]);
+static double _I_33(const double omega,
+ const double vertices_omegas[4]);
+static double _I_4(void);
+
+
+void thm_get_relative_grid_address(int relative_grid_address[24][4][3],
+ THMCONST double rec_lattice[3][3])
+{
+ int i, j, k, main_diag_index;
+
+ main_diag_index = get_main_diagonal(rec_lattice);
+
+ for (i = 0; i < 24; i++) {
+ for (j = 0; j < 4; j++) {
+ for (k = 0; k < 3; k++) {
+ relative_grid_address[i][j][k] =
+ db_relative_grid_address[main_diag_index][i][j][k];
+ }
+ }
+ }
+}
+
+void thm_get_all_relative_grid_address(int relative_grid_address[4][24][4][3])
+{
+ int i, j, k, main_diag_index;
+
+ for (main_diag_index = 0; main_diag_index < 4; main_diag_index++) {
+ for (i = 0; i < 24; i++) {
+ for (j = 0; j < 4; j++) {
+ for (k = 0; k < 3; k++) {
+ relative_grid_address[main_diag_index][i][j][k] =
+ db_relative_grid_address[main_diag_index][i][j][k];
+ }
+ }
+ }
+ }
+}
+
+double thm_get_integration_weight(const double omega,
+ THMCONST double tetrahedra_omegas[24][4],
+ const char function)
+{
+ if (function == 'I') {
+ return get_integration_weight(omega,
+ tetrahedra_omegas,
+ _g, _I);
+ } else {
+ return get_integration_weight(omega,
+ tetrahedra_omegas,
+ _n, _J);
+ }
+}
+
+void
+thm_get_integration_weight_at_omegas(double *integration_weights,
+ const int num_omegas,
+ const double *omegas,
+ THMCONST double tetrahedra_omegas[24][4],
+ const char function)
+{
+ if (function == 'I') {
+ get_integration_weight_at_omegas(integration_weights,
+ num_omegas,
+ omegas,
+ tetrahedra_omegas,
+ _g, _I);
+ } else {
+ get_integration_weight_at_omegas(integration_weights,
+ num_omegas,
+ omegas,
+ tetrahedra_omegas,
+ _n, _J);
+ }
+}
+
+void thm_get_neighboring_grid_points(int neighboring_grid_points[],
+ const int grid_point,
+ THMCONST int relative_grid_address[][3],
+ const int num_relative_grid_address,
+ const int mesh[3],
+ THMCONST int bz_grid_address[][3],
+ const int bz_map[])
+{
+ int bzmesh[3], address_double[3], bz_address_double[3];
+ int i, j, bz_gp;
+
+ for (i = 0; i < 3; i++) {
+ bzmesh[i] = mesh[i] * 2;
+ }
+ for (i = 0; i < num_relative_grid_address; i++) {
+ for (j = 0; j < 3; j++) {
+ address_double[j] = (bz_grid_address[grid_point][j] +
+ relative_grid_address[i][j]) * 2;
+ bz_address_double[j] = address_double[j];
+ }
+ bz_gp = bz_map[kgd_get_grid_point_double_mesh(bz_address_double, bzmesh)];
+ if (bz_gp == -1) {
+ neighboring_grid_points[i] =
+ kgd_get_grid_point_double_mesh(address_double, mesh);
+ } else {
+ neighboring_grid_points[i] = bz_gp;
+ }
+ }
+}
+
+static void
+get_integration_weight_at_omegas(double *integration_weights,
+ const int num_omegas,
+ const double *omegas,
+ THMCONST double tetrahedra_omegas[24][4],
+ double (*gn)(const int,
+ const double,
+ const double[4]),
+ double (*IJ)(const int,
+ const int,
+ const double,
+ const double[4]))
+{
+ int i;
+
+#pragma omp parallel for
+ for (i = 0; i < num_omegas; i++) {
+ integration_weights[i] = get_integration_weight(omegas[i],
+ tetrahedra_omegas,
+ gn, IJ);
+ }
+}
+
+static double
+get_integration_weight(const double omega,
+ THMCONST double tetrahedra_omegas[24][4],
+ double (*gn)(const int,
+ const double,
+ const double[4]),
+ double (*IJ)(const int,
+ const int,
+ const double,
+ const double[4]))
+{
+ int i, j, ci;
+ double sum;
+ double v[4];
+
+ sum = 0;
+ for (i = 0; i < 24; i++) {
+ for (j = 0; j < 4; j++) {
+ v[j] = tetrahedra_omegas[i][j];
+ }
+ ci = sort_omegas(v);
+ if (omega < v[0]) {
+ sum += IJ(0, ci, omega, v) * gn(0, omega, v);
+ } else {
+ if (v[0] < omega && omega < v[1]) {
+ sum += IJ(1, ci, omega, v) * gn(1, omega, v);
+ } else {
+ if (v[1] < omega && omega < v[2]) {
+ sum += IJ(2, ci, omega, v) * gn(2, omega, v);
+ } else {
+ if (v[2] < omega && omega < v[3]) {
+ sum += IJ(3, ci, omega, v) * gn(3, omega, v);
+ } else {
+ if (v[3] < omega) {
+ sum += IJ(4, ci, omega, v) * gn(4, omega, v);
+ }
+ }
+ }
+ }
+ }
+ }
+ return sum / 6;
+}
+
+static int sort_omegas(double v[4])
+{
+ int i;
+ double w[4];
+
+ i = 0;
+
+ if (v[0] > v[1]) {
+ w[0] = v[1];
+ w[1] = v[0];
+ i = 1;
+ } else {
+ w[0] = v[0];
+ w[1] = v[1];
+ }
+
+ if (v[2] > v[3]) {
+ w[2] = v[3];
+ w[3] = v[2];
+ } else {
+ w[2] = v[2];
+ w[3] = v[3];
+ }
+
+ if (w[0] > w[2]) {
+ v[0] = w[2];
+ v[1] = w[0];
+ if (i == 0) {
+ i = 4;
+ }
+ } else {
+ v[0] = w[0];
+ v[1] = w[2];
+ }
+
+ if (w[1] > w[3]) {
+ v[3] = w[1];
+ v[2] = w[3];
+ if (i == 1) {
+ i = 3;
+ }
+ } else {
+ v[3] = w[3];
+ v[2] = w[1];
+ if (i == 1) {
+ i = 5;
+ }
+ }
+
+ if (v[1] > v[2]) {
+ w[1] = v[1];
+ v[1] = v[2];
+ v[2] = w[1];
+ if (i == 4) {
+ i = 2;
+ }
+ if (i == 5) {
+ i = 1;
+ }
+ } else {
+ if (i == 4) {
+ i = 1;
+ }
+ if (i == 5) {
+ i = 2;
+ }
+ }
+ return i;
+}
+
+static int get_main_diagonal(THMCONST double rec_lattice[3][3])
+{
+ int i, shortest;
+ double length, min_length;
+ double main_diag[3];
+
+ shortest = 0;
+ multiply_matrix_vector_di3(main_diag, rec_lattice, main_diagonals[0]);
+ min_length = norm_squared_d3(main_diag);
+ for (i = 1; i < 4; i++) {
+ multiply_matrix_vector_di3(main_diag, rec_lattice, main_diagonals[i]);
+ length = norm_squared_d3(main_diag);
+ if (min_length > length) {
+ min_length = length;
+ shortest = i;
+ }
+ }
+ return shortest;
+}
+
+static double norm_squared_d3(const double a[3])
+{
+ return a[0] * a[0] + a[1] * a[1] + a[2] * a[2];
+}
+
+static void multiply_matrix_vector_di3(double v[3],
+ THMCONST double a[3][3],
+ const int b[3])
+{
+ int i;
+ double c[3];
+
+ for (i = 0; i < 3; i++) {
+ c[i] = a[i][0] * b[0] + a[i][1] * b[1] + a[i][2] * b[2];
+ }
+
+ for (i = 0; i < 3; i++) {
+ v[i] = c[i];
+ }
+}
+
+static double _f(const int n,
+ const int m,
+ const double omega,
+ const double vertices_omegas[4])
+{
+ return ((omega - vertices_omegas[m]) /
+ (vertices_omegas[n] - vertices_omegas[m]));
+}
+
+static double _J(const int i,
+ const int ci,
+ const double omega,
+ const double vertices_omegas[4])
+{
+ switch (i) {
+ case 0:
+ return _J_0();
+ case 1:
+ switch (ci) {
+ case 0:
+ return _J_10(omega, vertices_omegas);
+ case 1:
+ return _J_11(omega, vertices_omegas);
+ case 2:
+ return _J_12(omega, vertices_omegas);
+ case 3:
+ return _J_13(omega, vertices_omegas);
+ }
+ case 2:
+ switch (ci) {
+ case 0:
+ return _J_20(omega, vertices_omegas);
+ case 1:
+ return _J_21(omega, vertices_omegas);
+ case 2:
+ return _J_22(omega, vertices_omegas);
+ case 3:
+ return _J_23(omega, vertices_omegas);
+ }
+ case 3:
+ switch (ci) {
+ case 0:
+ return _J_30(omega, vertices_omegas);
+ case 1:
+ return _J_31(omega, vertices_omegas);
+ case 2:
+ return _J_32(omega, vertices_omegas);
+ case 3:
+ return _J_33(omega, vertices_omegas);
+ }
+ case 4:
+ return _J_4();
+ }
+
+ warning_print("******* Warning *******\n");
+ warning_print(" J is something wrong. \n");
+ warning_print("******* Warning *******\n");
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+
+ return 0;
+}
+
+
+static double _I(const int i,
+ const int ci,
+ const double omega,
+ const double vertices_omegas[4])
+{
+ switch (i) {
+ case 0:
+ return _I_0();
+ case 1:
+ switch (ci) {
+ case 0:
+ return _I_10(omega, vertices_omegas);
+ case 1:
+ return _I_11(omega, vertices_omegas);
+ case 2:
+ return _I_12(omega, vertices_omegas);
+ case 3:
+ return _I_13(omega, vertices_omegas);
+ }
+ case 2:
+ switch (ci) {
+ case 0:
+ return _I_20(omega, vertices_omegas);
+ case 1:
+ return _I_21(omega, vertices_omegas);
+ case 2:
+ return _I_22(omega, vertices_omegas);
+ case 3:
+ return _I_23(omega, vertices_omegas);
+ }
+ case 3:
+ switch (ci) {
+ case 0:
+ return _I_30(omega, vertices_omegas);
+ case 1:
+ return _I_31(omega, vertices_omegas);
+ case 2:
+ return _I_32(omega, vertices_omegas);
+ case 3:
+ return _I_33(omega, vertices_omegas);
+ }
+ case 4:
+ return _I_4();
+ }
+
+ warning_print("******* Warning *******\n");
+ warning_print(" I is something wrong. \n");
+ warning_print("******* Warning *******\n");
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+
+ return 0;
+}
+
+static double _n(const int i,
+ const double omega,
+ const double vertices_omegas[4])
+{
+ switch (i) {
+ case 0:
+ return _n_0();
+ case 1:
+ return _n_1(omega, vertices_omegas);
+ case 2:
+ return _n_2(omega, vertices_omegas);
+ case 3:
+ return _n_3(omega, vertices_omegas);
+ case 4:
+ return _n_4();
+ }
+
+ warning_print("******* Warning *******\n");
+ warning_print(" n is something wrong. \n");
+ warning_print("******* Warning *******\n");
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+
+ return 0;
+}
+
+static double _g(const int i,
+ const double omega,
+ const double vertices_omegas[4])
+{
+ switch (i) {
+ case 0:
+ return _g_0();
+ case 1:
+ return _g_1(omega, vertices_omegas);
+ case 2:
+ return _g_2(omega, vertices_omegas);
+ case 3:
+ return _g_3(omega, vertices_omegas);
+ case 4:
+ return _g_4();
+ }
+
+ warning_print("******* Warning *******\n");
+ warning_print(" g is something wrong. \n");
+ warning_print("******* Warning *******\n");
+ warning_print("(line %d, %s).\n", __LINE__, __FILE__);
+
+ return 0;
+}
+
+/* omega < omega1 */
+static double _n_0(void)
+{
+ return 0.0;
+}
+
+/* omega1 < omega < omega2 */
+static double _n_1(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(1, 0, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) *
+ _f(3, 0, omega, vertices_omegas));
+}
+
+/* omega2 < omega < omega3 */
+static double _n_2(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(3, 1, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) +
+ _f(3, 0, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) +
+ _f(3, 0, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) *
+ _f(1, 2, omega, vertices_omegas));
+}
+
+/* omega2 < omega < omega3 */
+static double _n_3(const double omega,
+ const double vertices_omegas[4])
+{
+ return (1.0 -
+ _f(0, 3, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 3, omega, vertices_omegas));
+}
+
+/* omega4 < omega */
+static double _n_4(void)
+{
+ return 1.0;
+}
+
+/* omega < omega1 */
+static double _g_0(void)
+{
+ return 0.0;
+}
+
+/* omega1 < omega < omega2 */
+static double _g_1(const double omega,
+ const double vertices_omegas[4])
+{
+ return (3 *
+ _f(1, 0, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) /
+ (vertices_omegas[3] - vertices_omegas[0]));
+}
+
+/* omega2 < omega < omega3 */
+static double _g_2(const double omega,
+ const double vertices_omegas[4])
+{
+ return (3 /
+ (vertices_omegas[3] - vertices_omegas[0]) *
+ (_f(1, 2, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) +
+ _f(2, 1, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas)));
+}
+
+/* omega3 < omega < omega4 */
+static double _g_3(const double omega,
+ const double vertices_omegas[4])
+{
+ return (3 *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 3, omega, vertices_omegas) /
+ (vertices_omegas[3] - vertices_omegas[0]));
+}
+
+/* omega4 < omega */
+static double _g_4(void)
+{
+ return 0.0;
+}
+
+static double _J_0(void)
+{
+ return 0.0;
+}
+
+static double _J_10(const double omega,
+ const double vertices_omegas[4])
+{
+ return (1.0 +
+ _f(0, 1, omega, vertices_omegas) +
+ _f(0, 2, omega, vertices_omegas) +
+ _f(0, 3, omega, vertices_omegas)) / 4;
+}
+
+static double _J_11(const double omega,
+ const double vertices_omegas[4])
+{
+ return _f(1, 0, omega, vertices_omegas) / 4;
+}
+
+static double _J_12(const double omega,
+ const double vertices_omegas[4])
+{
+ return _f(2, 0, omega, vertices_omegas) / 4;
+}
+
+static double _J_13(const double omega,
+ const double vertices_omegas[4])
+{
+ return _f(3, 0, omega, vertices_omegas) / 4;
+}
+
+static double _J_20(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(3, 1, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) +
+ _f(3, 0, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) *
+ (1.0 +
+ _f(0, 3, omega, vertices_omegas)) +
+ _f(3, 0, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) *
+ _f(1, 2, omega, vertices_omegas) *
+ (1.0 +
+ _f(0, 3, omega, vertices_omegas) +
+ _f(0, 2, omega, vertices_omegas))) / 4 / _n_2(omega, vertices_omegas);
+}
+
+static double _J_21(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(3, 1, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) *
+ (1.0 +
+ _f(1, 3, omega, vertices_omegas) +
+ _f(1, 2, omega, vertices_omegas)) +
+ _f(3, 0, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) *
+ (_f(1, 3, omega, vertices_omegas) +
+ _f(1, 2, omega, vertices_omegas)) +
+ _f(3, 0, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) *
+ _f(1, 2, omega, vertices_omegas) *
+ _f(1, 2, omega, vertices_omegas)) / 4 / _n_2(omega, vertices_omegas);
+}
+
+static double _J_22(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(3, 1, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) +
+ _f(3, 0, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) +
+ _f(3, 0, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) *
+ _f(1, 2, omega, vertices_omegas) *
+ (_f(2, 1, omega, vertices_omegas) +
+ _f(2, 0, omega, vertices_omegas))) / 4 / _n_2(omega, vertices_omegas);
+}
+
+static double _J_23(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(3, 1, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) *
+ _f(3, 1, omega, vertices_omegas) +
+ _f(3, 0, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) *
+ (_f(3, 1, omega, vertices_omegas) +
+ _f(3, 0, omega, vertices_omegas)) +
+ _f(3, 0, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) *
+ _f(1, 2, omega, vertices_omegas) *
+ _f(3, 0, omega, vertices_omegas)) / 4 / _n_2(omega, vertices_omegas);
+}
+
+static double _J_30(const double omega,
+ const double vertices_omegas[4])
+{
+ return (1.0 -
+ _f(0, 3, omega, vertices_omegas) *
+ _f(0, 3, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 3, omega, vertices_omegas)) / 4 / _n_3(omega, vertices_omegas);
+}
+
+static double _J_31(const double omega,
+ const double vertices_omegas[4])
+{
+ return (1.0 -
+ _f(0, 3, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 3, omega, vertices_omegas)) / 4 / _n_3(omega, vertices_omegas);
+}
+
+static double _J_32(const double omega,
+ const double vertices_omegas[4])
+{
+ return (1.0 +
+ _f(0, 3, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 3, omega, vertices_omegas) *
+ _f(2, 3, omega, vertices_omegas)) / 4 / _n_3(omega, vertices_omegas);
+}
+
+static double _J_33(const double omega,
+ const double vertices_omegas[4])
+{
+ return (1.0 -
+ _f(0, 3, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 3, omega, vertices_omegas) *
+ (1.0 +
+ _f(3, 0, omega, vertices_omegas) +
+ _f(3, 1, omega, vertices_omegas) +
+ _f(3, 2, omega, vertices_omegas))) / 4 / _n_3(omega, vertices_omegas);
+}
+
+static double _J_4(void)
+{
+ return 0.25;
+}
+
+static double _I_0(void)
+{
+ return 0.0;
+}
+
+static double _I_10(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(0, 1, omega, vertices_omegas) +
+ _f(0, 2, omega, vertices_omegas) +
+ _f(0, 3, omega, vertices_omegas)) / 3;
+}
+
+static double _I_11(const double omega,
+ const double vertices_omegas[4])
+{
+ return _f(1, 0, omega, vertices_omegas) / 3;
+}
+
+static double _I_12(const double omega,
+ const double vertices_omegas[4])
+{
+ return _f(2, 0, omega, vertices_omegas) / 3;
+}
+
+static double _I_13(const double omega,
+ const double vertices_omegas[4])
+{
+ return _f(3, 0, omega, vertices_omegas) / 3;
+}
+
+static double _I_20(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(0, 3, omega, vertices_omegas) +
+ _f(0, 2, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) *
+ _f(1, 2, omega, vertices_omegas) /
+ (_f(1, 2, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) +
+ _f(2, 1, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas))) / 3;
+}
+
+static double _I_21(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(1, 2, omega, vertices_omegas) +
+ _f(1, 3, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) /
+ (_f(1, 2, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) +
+ _f(2, 1, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas))) / 3;
+}
+
+static double _I_22(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(2, 1, omega, vertices_omegas) +
+ _f(2, 0, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) *
+ _f(1, 2, omega, vertices_omegas) /
+ (_f(1, 2, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) +
+ _f(2, 1, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas))) / 3;
+}
+
+static double _I_23(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(3, 0, omega, vertices_omegas) +
+ _f(3, 1, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas) *
+ _f(2, 1, omega, vertices_omegas) /
+ (_f(1, 2, omega, vertices_omegas) *
+ _f(2, 0, omega, vertices_omegas) +
+ _f(2, 1, omega, vertices_omegas) *
+ _f(1, 3, omega, vertices_omegas))) / 3;
+}
+
+static double _I_30(const double omega,
+ const double vertices_omegas[4])
+{
+ return _f(0, 3, omega, vertices_omegas) / 3;
+}
+
+static double _I_31(const double omega,
+ const double vertices_omegas[4])
+{
+ return _f(1, 3, omega, vertices_omegas) / 3;
+}
+
+static double _I_32(const double omega,
+ const double vertices_omegas[4])
+{
+ return _f(2, 3, omega, vertices_omegas) / 3;
+}
+
+static double _I_33(const double omega,
+ const double vertices_omegas[4])
+{
+ return (_f(3, 0, omega, vertices_omegas) +
+ _f(3, 1, omega, vertices_omegas) +
+ _f(3, 2, omega, vertices_omegas)) / 3;
+}
+
+static double _I_4(void)
+{
+ return 0.0;
+}
diff --git a/src/tetrahedron_method.h b/src/tetrahedron_method.h
new file mode 100644
index 0000000..6007c6e
--- /dev/null
+++ b/src/tetrahedron_method.h
@@ -0,0 +1,62 @@
+/* Copyright (C) 2014 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file was originally part of spglib and is part of kspclib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#ifndef __tetrahedron_method_H__
+#define __tetrahedron_method_H__
+
+#ifndef THMCONST
+#define THMCONST
+#endif
+
+void thm_get_relative_grid_address(int relative_grid_address[24][4][3],
+ THMCONST double rec_lattice[3][3]);
+void thm_get_all_relative_grid_address(int relative_grid_address[4][24][4][3]);
+double thm_get_integration_weight(const double omega,
+ THMCONST double tetrahedra_omegas[24][4],
+ const char function);
+void
+thm_get_integration_weight_at_omegas(double *integration_weights,
+ const int num_omegas,
+ const double *omegas,
+ THMCONST double tetrahedra_omegas[24][4],
+ const char function);
+void thm_get_neighboring_grid_points(int neighboring_grid_points[],
+ const int grid_point,
+ THMCONST int relative_grid_address[][3],
+ const int num_relative_grid_address,
+ const int mesh[3],
+ THMCONST int bz_grid_address[][3],
+ const int bz_map[]);
+
+#endif
diff --git a/src/version.h b/src/version.h
new file mode 100644
index 0000000..fef12dc
--- /dev/null
+++ b/src/version.h
@@ -0,0 +1,43 @@
+/* Copyright (C) 2015 Atsushi Togo */
+/* All rights reserved. */
+
+/* This file is part of spglib. */
+
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions */
+/* are met: */
+
+/* * Redistributions of source code must retain the above copyright */
+/* notice, this list of conditions and the following disclaimer. */
+
+/* * Redistributions in binary form must reproduce the above copyright */
+/* notice, this list of conditions and the following disclaimer in */
+/* the documentation and/or other materials provided with the */
+/* distribution. */
+
+/* * Neither the name of the phonopy project nor the names of its */
+/* contributors may be used to endorse or promote products derived */
+/* from this software without specific prior written permission. */
+
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
+/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
+/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
+/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */
+/* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
+/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */
+/* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
+/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */
+/* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+
+#ifndef __version_H__
+#define __version_H__
+
+#define SPGLIB_MAJOR_VERSION 1
+#define SPGLIB_MINOR_VERSION 10
+#define SPGLIB_MICRO_VERSION 1
+
+#endif
+
diff --git a/test/check_consistency.py b/test/check_consistency.py
deleted file mode 100755
index 2c2dea7..0000000
--- a/test/check_consistency.py
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/python
-from numpy import *
-import sys
-import datetime
-from phonopy.structure.spglib import *
-from phonopy.structure.atoms import Atoms
-from phonopy.interface.vasp import read_vasp
-
-# lattice = array([[4.,0.,0.], [0.,4.,0.], [0.,0.,6.]])
-# position = array([
-# [0.0, 0.0, 0.0],
-# [0.5, 0.5, 0.25],
-# [0.3, 0.3, 0.0],
-# [0.7, 0.7, 0.0],
-# [0.2, 0.8, 0.25],
-# [0.8, 0.2, 0.25],
-# [0.0, 0.0, 0.5],
-# [0.5, 0.5, 0.75],
-# [0.3, 0.3, 0.5],
-# [0.7, 0.7, 0.5],
-# [0.2, 0.8, 0.75],
-# [0.8, 0.2, 0.75]
-# ])
-# atom_type = array([1,1,2,2,2,2,1,1,2,2,2,2])
-# atoms = Atoms( cell=lattice, scaled_positions=position, numbers=atom_type )
-atoms = read_vasp( sys.argv[1] )
-# print datetime.datetime.now()
-# print "get_symmetry_dataset"
-dataset = get_symmetry_dataset(atoms, 1e-5)
-# for i, (r,t) in enumerate( zip( dataset['rotations'], dataset['translations'] ) ):
-# print "--- %d ---" % (i+1)
-# print r
-# print t
-
-# print
-# print dataset['transformation_matrix']
-# print dataset['origin_shift']
-# print dataset['international'], dataset['number']
-# print dataset['hall']
-
-# print datetime.datetime.now()
-# print "get_symmetry"
-symmetry = get_symmetry(atoms, 1e-5)
-# print datetime.datetime.now()
-
-count = 0
-# print "Check consistency"
-for r1, t1 in zip( dataset['rotations'],
- dataset['translations'] ):
-
- for r2, t2 in zip( symmetry['rotations'],
- symmetry['translations'] ):
-
-
- if ( (r1 - r2) == 0 ).all():
- diff = t1 - t2
- diff -= diff.round()
- if ( abs(diff) < 1e-5 ).all():
- count += 1
- # print count
- # print r1
- # print t1
- break
-
-if ( count==len(dataset['rotations']) ):
- print "OK"
-else:
- print "BAD"
diff --git a/test/data/others/spg/README b/test/data/others/spg/README
deleted file mode 100644
index 61b19b8..0000000
--- a/test/data/others/spg/README
+++ /dev/null
@@ -1,8 +0,0 @@
-CONTCAR_1:FINDSYM finds Cmc2_1
-CONTCAR_2:FINDSYM finds Pc
-CONTCAR_3:FINDSYM finds Pc
-CONTCAR_4:FINDSYM finds Cm
-CONTCAR_5:FINDSYM finds C2
-CONTCAR_6:FINDSYM finds R3c
-CONTCAR_7:FINDSYM finds R3c
-CONTCAR_8:FINDSYM finds Pm
diff --git a/test/data/test-all.zsh b/test/data/test-all.zsh
deleted file mode 100755
index a0eb9dd..0000000
--- a/test/data/test-all.zsh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/zsh
-
-echo "Triclinic"
-./test-tricli.zsh $1
-
-echo "Monoclinic"
-./test-monocli.zsh $1
-
-echo "Orthorhombic"
-./test-ortho.zsh $1
-
-echo "Tetragonal"
-./test-tetra.zsh $1
-
-echo "Trigonal"
-./test-trigo.zsh $1
-
-echo "Hexagonal"
-./test-hexa.zsh $1
-
-echo "Cubic"
-./test-cubic.zsh $1
diff --git a/test/data/test-cubic.zsh b/test/data/test-cubic.zsh
deleted file mode 100755
index 1a0fcf0..0000000
--- a/test/data/test-cubic.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/zsh
-
-export LD_LIBRARY_PATH=`pwd`/../../src/.libs
-export RUBYLIB=`pwd`/..
-
-findsym=$1
-# this is special check using findsym
-if [ x$findsym = "xfindsym" ]; then
- export ISODATA=~/tools/isotropy/
-fi
-
-for i in `/bin/ls cubic/POSCAR-*`;do
- spg=`ruby ../symPoscar.rb -n $i`
- numspg=`echo $spg|awk -F"(" '{print $2}'|sed s/\)//`
- numposcar=`echo $i|awk -F"/" '{print $2}'|cut -c 8-10|awk '{print $1*1}'`
-
- if [ x$findsym = "xfindsym" ]; then
- numfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $3}'`
-# spgfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $5}'`
- fi
-
- if [ $numspg = $numposcar ]; then
- echo -n 'ok'
- else
- echo -n 'fail (' $numposcar ')'
- fi
-
- if [ x$findsym = "xfindsym" ]; then
- if [ $numspg = $numfindsym ]; then
- echo " ..." $spg '(ok)'
- else
- echo " ..." $spg ' fail (' $numfindsym ')'
- fi
- else
- echo " ..." $spg
- fi
-done
-
diff --git a/test/data/test-hexa.zsh b/test/data/test-hexa.zsh
deleted file mode 100755
index 49449f0..0000000
--- a/test/data/test-hexa.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/zsh
-
-export LD_LIBRARY_PATH=`pwd`/../../src/.libs
-export RUBYLIB=`pwd`/..
-
-findsym=$1
-# this is special check using findsym
-if [ x$findsym = "xfindsym" ]; then
- export ISODATA=~/tools/isotropy/
-fi
-
-#for i in `/bin/ls POSCAR-{070..100} POSCAR-{070..100}-2`;do
-for i in `/bin/ls hexagonal/POSCAR-*`;do
- spg=`ruby ../symPoscar.rb -n $i`
- numspg=`echo $spg|awk -F"(" '{print $2}'|sed s/\)//`
- numposcar=`echo $i|awk -F"/" '{print $2}'|cut -c 8-10|awk '{print $1*1}'`
-
- if [ x$findsym = "xfindsym" ]; then
- numfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $3}'`
-# spgfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $5}'`
- fi
-
- if [ $numspg = $numposcar ]; then
- echo -n 'ok'
- else
- echo -n 'fail (' $numposcar ')'
- fi
-
- if [ x$findsym = "xfindsym" ]; then
- if [ $numspg = $numfindsym ]; then
- echo " ..." $spg '(ok)'
- else
- echo " ..." $spg ' fail (' $numfindsym ')'
- fi
- else
- echo " ..." $spg
- fi
-done
-
diff --git a/test/data/test-monocli.zsh b/test/data/test-monocli.zsh
deleted file mode 100755
index 7819d8c..0000000
--- a/test/data/test-monocli.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/zsh
-
-export LD_LIBRARY_PATH=`pwd`/../../src/.libs
-export RUBYLIB=`pwd`/..
-
-findsym=$1
-# this is special check using findsym
-if [ x$findsym = "xfindsym" ]; then
- export ISODATA=~/tools/isotropy/
-fi
-
-#for i in `/bin/ls POSCAR-{070..100} POSCAR-{070..100}-2`;do
-for i in `/bin/ls monoclinic/POSCAR-*`;do
- spg=`ruby ../symPoscar.rb -n $i`
- numspg=`echo $spg|awk -F"(" '{print $2}'|sed s/\)//`
- numposcar=`echo $i|awk -F"/" '{print $2}'|cut -c 8-10|awk '{print $1*1}'`
-
- if [ x$findsym = "xfindsym" ]; then
- numfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $3}'`
-# spgfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $5}'`
- fi
-
- if [ $numspg = $numposcar ]; then
- echo -n 'ok'
- else
- echo -n 'fail (' $numposcar ')'
- fi
-
- if [ x$findsym = "xfindsym" ]; then
- if [ $numspg = $numfindsym ]; then
- echo " ..." $spg '(ok)'
- else
- echo " ..." $spg ' fail (' $numfindsym ')'
- fi
- else
- echo " ..." $spg
- fi
-done
-
diff --git a/test/data/test-ortho.zsh b/test/data/test-ortho.zsh
deleted file mode 100755
index 4fc0028..0000000
--- a/test/data/test-ortho.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/zsh
-
-export LD_LIBRARY_PATH=`pwd`/../../src/.libs
-export RUBYLIB=`pwd`/..
-
-findsym=$1
-# this is special check using findsym
-if [ x$findsym = "xfindsym" ]; then
- export ISODATA=~/tools/isotropy/
-fi
-
-#for i in `/bin/ls POSCAR-{070..100} POSCAR-{070..100}-2`;do
-for i in `/bin/ls orthorhombic/POSCAR-*`;do
- spg=`ruby ../symPoscar.rb -s 1e-5 -n $i`
- numspg=`echo $spg|awk -F"(" '{print $2}'|sed s/\)//`
- numposcar=`echo $i|awk -F"/" '{print $2}'|cut -c 8-10|awk '{print $1*1}'`
-
- if [ x$findsym = "xfindsym" ]; then
- numfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $3}'`
-# spgfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $5}'`
- fi
-
- if [ $numspg = $numposcar ]; then
- echo -n 'ok'
- else
- echo -n 'fail (' $numposcar ')'
- fi
-
- if [ x$findsym = "xfindsym" ]; then
- if [ $numspg = $numfindsym ]; then
- echo " ..." $spg '(ok)'
- else
- echo " ..." $spg ' fail (' $numfindsym ')'
- fi
- else
- echo " ..." $spg
- fi
-done
-
diff --git a/test/data/test-refined_symmetry.zsh b/test/data/test-refined_symmetry.zsh
deleted file mode 100755
index 1663e52..0000000
--- a/test/data/test-refined_symmetry.zsh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/zsh
-
-for j in `/bin/ls -d *(/)`;do
- echo $j
- cd $j
- for i in `ls POSCAR-*`;do
- echo -n $i" "
- ../../check_consistency.py $i
- done
-cd ..
-done
diff --git a/test/data/test-tetra.zsh b/test/data/test-tetra.zsh
deleted file mode 100755
index 0bd3dbc..0000000
--- a/test/data/test-tetra.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/zsh
-
-export LD_LIBRARY_PATH=`pwd`/../../src/.libs
-export RUBYLIB=`pwd`/..
-
-findsym=$1
-# this is special check using findsym
-if [ x$findsym = "xfindsym" ]; then
- export ISODATA=~/tools/isotropy/
-fi
-
-for i in `/bin/ls tetragonal/POSCAR-*`;do
- spg=`ruby ../symPoscar.rb -n $i`
- numspg=`echo $spg|awk -F"(" '{print $2}'|sed s/\)//`
- numposcar=`echo $i|awk -F"/" '{print $2}'|cut -c 8-10|awk '{print $1*1}'`
-
- if [ x$findsym = "xfindsym" ]; then
- numfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $3}'`
-# spgfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $5}'`
- fi
-
- if [ $numspg = $numposcar ]; then
- echo -n 'ok'
- else
- echo -n 'fail (' $numposcar ')'
- fi
-
- if [ x$findsym = "xfindsym" ]; then
- if [ $numspg = $numfindsym ]; then
- echo " ..." $spg '(ok)'
- else
- echo " ..." $spg ' fail (' $numfindsym ')'
- fi
- else
- echo " ..." $spg
- fi
-done
-
diff --git a/test/data/test-tricli.zsh b/test/data/test-tricli.zsh
deleted file mode 100755
index 9184113..0000000
--- a/test/data/test-tricli.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/zsh
-
-export LD_LIBRARY_PATH=`pwd`/../../src/.libs
-export RUBYLIB=`pwd`/..
-
-findsym=$1
-# this is special check using findsym
-if [ x$findsym = "xfindsym" ]; then
- export ISODATA=~/tools/isotropy/
-fi
-
-#for i in `/bin/ls POSCAR-{070..100} POSCAR-{070..100}-2`;do
-for i in `/bin/ls triclinic/POSCAR-*`;do
- spg=`ruby ../symPoscar.rb -n $i`
- numspg=`echo $spg|awk -F"(" '{print $2}'|sed s/\)//`
- numposcar=`echo $i|awk -F"/" '{print $2}'|cut -c 8-10|awk '{print $1*1}'`
-
- if [ x$findsym = "xfindsym" ]; then
- numfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $3}'`
-# spgfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $5}'`
- fi
-
- if [ $numspg = $numposcar ]; then
- echo -n 'ok'
- else
- echo -n 'fail (' $numposcar ')'
- fi
-
- if [ x$findsym = "xfindsym" ]; then
- if [ $numspg = $numfindsym ]; then
- echo " ..." $spg '(ok)'
- else
- echo " ..." $spg ' fail (' $numfindsym ')'
- fi
- else
- echo " ..." $spg
- fi
-done
-
diff --git a/test/data/test-trigo.zsh b/test/data/test-trigo.zsh
deleted file mode 100755
index 29c0008..0000000
--- a/test/data/test-trigo.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/zsh
-
-export LD_LIBRARY_PATH=`pwd`/../../src/.libs
-export RUBYLIB=`pwd`/..
-
-findsym=$1
-# this is special check using findsym
-if [ x$findsym = "xfindsym" ]; then
- export ISODATA=~/tools/isotropy/
-fi
-
-#for i in `/bin/ls POSCAR-{070..100} POSCAR-{070..100}-2`;do
-for i in `/bin/ls trigonal/POSCAR-*`;do
- spg=`ruby ../symPoscar.rb -n $i`
- numspg=`echo $spg|awk -F"(" '{print $2}'|sed s/\)//`
- numposcar=`echo $i|awk -F"/" '{print $2}'|cut -c 8-10|awk '{print $1*1}'`
-
- if [ x$findsym = "xfindsym" ]; then
- numfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $3}'`
-# spgfindsym=`../poscar2findsym.rb $i | $ISODATA/findsym|grep Space|awk '{print $5}'`
- fi
-
- if [ $numspg = $numposcar ]; then
- echo -n 'ok'
- else
- echo -n 'fail (' $numposcar ')'
- fi
-
- if [ x$findsym = "xfindsym" ]; then
- if [ $numspg = $numfindsym ]; then
- echo " ..." $spg '(ok)'
- else
- echo " ..." $spg ' fail (' $numfindsym ')'
- fi
- else
- echo " ..." $spg
- fi
-done
-
diff --git a/test/data/virtual_structure/rhombohedral/findsym.log b/test/data/virtual_structure/rhombohedral/findsym.log
deleted file mode 100644
index c95cdf9..0000000
--- a/test/data/virtual_structure/rhombohedral/findsym.log
+++ /dev/null
@@ -1,37 +0,0 @@
-FINDSYM, Version 3.2.3, August 2007
-Written by Harold T. Stokes and Dorian M. Hatch
-Brigham Young University
-
-poscar2findsym
-Tolerance: 0.00001
-Lattice vectors in cartesian coordinates:
- 0.00000 5.00000 5.00000
- 5.00000 0.00000 5.00000
- 5.00000 5.00000 0.00000
-Lattice parameters, a,b,c,alpha,beta,gamma:
- 7.07107 7.07107 7.07107 60.00000 60.00000 60.00000
-Vectors defining the unit cell (dimensionless coordinates):
- 1.00000 0.00000 0.00000
- 0.00000 1.00000 0.00000
- 0.00000 0.00000 1.00000
-Number of atoms in unit cell:
- 2
-Type of each atom:
- 1 2
-Position of each atom (dimensionless coordinates)
- 1 0.00000 0.00000 0.00000
- 2 0.70000 0.90000 0.70000
-------------------------------------------
-Space Group 160 C3v-5 R3m
-Origin at 0.00000 0.00000 0.00000
-Vectors a,b,c:
- 0.00000 0.00000 1.00000
- 1.00000 0.00000 -1.00000
- -1.00000 3.00000 -1.00000
-Values of a,b,c,alpha,beta,gamma:
- 7.07107 7.07107 17.32051 90.00000 90.00000 120.00000
-Atomic positions in terms of a,b,c:
-Wyckoff position a, z = 0.00000
- 1 0.00000 0.00000 0.00000
-Wyckoff position a, z = 0.30000
- 2 0.00000 0.00000 0.30000
diff --git a/test/data/virtual_structure/test-virtual.zsh b/test/data/virtual_structure/test-virtual.zsh
deleted file mode 100755
index f830bba..0000000
--- a/test/data/virtual_structure/test-virtual.zsh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/zsh
-
-export LD_LIBRARY_PATH=`pwd`/../../../src/.libs
-export RUBYLIB=`pwd`/../..
-# set isotropy information
-ISOTROPY=~/code/isotropy/findsym
-export ISODATA=~/code/isotropy/
-
-
-for dir in `/bin/ls -d *(/)`; do
- echo $dir
- cd $dir
- for i in `ls POSCAR-*`;do
- echo -n " "$i": "
- spglib=`ruby $RUBYLIB/symPoscar.rb -n $i|awk -F"(" '{print $2}'|sed s/\)//`
- isotropy=`ruby $RUBYLIB/poscar2findsym.rb $i|$ISOTROPY|grep Space|awk '{print $3}'`
-
- if [ $spglib = $isotropy ]; then
- echo 'ok'
- else
- echo 'fail (' $isotropy ')'
- fi
- done
- echo
- cd ..
-done
-
diff --git a/test/getspg.c b/test/getspg.c
deleted file mode 100644
index 1f47dea..0000000
--- a/test/getspg.c
+++ /dev/null
@@ -1,336 +0,0 @@
-#include <stdio.h>
-#include "ruby.h"
-#include "spglib.h"
-
-VALUE Getspg = Qnil;
-void Init_getspg(void);
-VALUE method_getspg(VALUE self, VALUE r_size, VALUE r_lattice, VALUE r_position, VALUE r_types, VALUE r_symprec, VALUE r_angle_symprec);
-VALUE method_getptg(VALUE self, VALUE r_rotations);
-VALUE method_refine_cell(VALUE self, VALUE r_size, VALUE r_lattice, VALUE r_position, VALUE r_types, VALUE r_symprec, VALUE r_angle_symprec);
-VALUE method_get_operations(VALUE self, VALUE r_size, VALUE r_lattice, VALUE r_position, VALUE r_types, VALUE r_symprec, VALUE r_angle_symprec);
-VALUE method_get_dataset(VALUE self, VALUE r_lattice, VALUE r_position, VALUE r_types, VALUE r_symprec, VALUE r_angle_symprec);
-
-void Init_getspg(void)
-{
- Getspg = rb_define_module("Getspg");
- rb_define_method(Getspg, "getspg", method_getspg, 6);
- rb_define_method(Getspg, "getptg", method_getptg, 1);
- rb_define_method(Getspg, "refine_cell", method_refine_cell, 6);
- rb_define_method(Getspg, "get_operations", method_get_operations, 6);
- rb_define_method(Getspg, "get_dataset", method_get_dataset, 5);
-}
-
-VALUE method_getspg(VALUE self, VALUE r_size, VALUE r_lattice, VALUE r_position, VALUE r_types, VALUE r_symprec, VALUE r_angle_symprec)
-{
- int i, j, size, spgroup;
- double symprec, lattice[3][3];
- VALUE array;
-
- size = NUM2INT(r_size);
-
- double position[size*4][3];
- int types[size*4];
- char symbol[21];
- char output[21];
-
- spg_set_angle_tolerance();
- symprec = NUM2DBL(r_symprec);
-
- for (i=0; i<size; i++)
- for (j=0; j<3; j++) {
- position[i][j] =
- NUM2DBL(rb_ary_entry(rb_ary_entry(r_position, i), j));
- types[i] = NUM2DBL(rb_ary_entry(r_types, i));
- }
-
- for (i=0; i<3; i++)
- for (j=0; j<3; j++)
- lattice[i][j] =
- NUM2DBL(rb_ary_entry(rb_ary_entry(r_lattice, i), j));
-
- /* Space group */
- spgroup = spgat_get_international(symbol,
- lattice,
- position,
- types,
- size,
- symprec,
- NUM2DBL(r_angle_symprec));
- sprintf(output, "%s", symbol);
-
- array = rb_ary_new();
- rb_ary_push(array, rb_str_new2(output));
- rb_ary_push(array, INT2NUM(spgroup));
-
- return array;
-}
-
-VALUE method_getptg(VALUE self, VALUE r_rotations)
-{
- int i, j, k, size, ptg_num;
- char symbol[6];
- int trans_mat[3][3];
- VALUE array, matrix, vector;
-
- size = RARRAY_LEN( r_rotations );
- int rotations[size][3][3];
-
- for ( i = 0; i < size; i++ ) {
- for ( j = 0; j < 3; j++ ) {
- for ( k = 0; k < 3; k++ ) {
- rotations[i][j][k] = NUM2INT( rb_ary_entry( rb_ary_entry( rb_ary_entry( r_rotations, i ), j ), k ) );
- }
- }
- }
-
- ptg_num = spg_get_pointgroup( symbol, trans_mat, rotations, size );
- array = rb_ary_new();
- rb_ary_push( array, rb_str_new2( symbol ) );
- rb_ary_push( array, INT2NUM( ptg_num ) );
- matrix = rb_ary_new();
- for ( i = 0; i < 3; i++) {
- vector = rb_ary_new();
- for ( j = 0; j < 3; j++ ) {
- rb_ary_push( vector, INT2NUM( trans_mat[i][j] ) );
- }
- rb_ary_push( matrix, vector);
- }
- rb_ary_push( array, matrix );
-
- return array;
-}
-
-VALUE method_refine_cell(VALUE self, VALUE r_size, VALUE r_lattice, VALUE r_position, VALUE r_types, VALUE r_symprec, VALUE r_angle_symprec)
-{
- int i, j, size, spgroup, num_atom_bravais ;
- double symprec, angle_tolerance, lattice[3][3];
- VALUE vector, array, r_brv_lattice, r_brv_positions, r_brv_types;
-
- size = NUM2INT(r_size);
-
- double position[size*4][3];
- int types[size*4];
- char symbol[21];
- char output[21];
-
- angle_tolerance = NUM2DBL(r_angle_symprec);
- symprec = NUM2DBL(r_symprec);
-
- for (i=0; i<size; i++)
- for (j=0; j<3; j++) {
- position[i][j] =
- NUM2DBL(rb_ary_entry(rb_ary_entry(r_position, i), j));
- types[i] = NUM2DBL(rb_ary_entry(r_types, i));
- }
-
- for (i=0; i<3; i++)
- for (j=0; j<3; j++)
- lattice[i][j] =
- NUM2DBL(rb_ary_entry(rb_ary_entry(r_lattice, i), j));
-
- /* Space group */
- spgroup = spgat_get_international(symbol,
- lattice,
- position,
- types,
- size,
- symprec,
- angle_tolerance);
- sprintf(output, "%s", symbol);
-
- num_atom_bravais = spgat_refine_cell(lattice,
- position,
- types,
- size,
- symprec,
- angle_tolerance);
-
- r_brv_lattice = rb_ary_new();
- for (i=0; i<3; i++) {
- vector = rb_ary_new();
- for (j=0; j<3; j++) {
- rb_ary_push(vector, rb_float_new(lattice[i][j]));
- }
- rb_ary_push(r_brv_lattice, vector);
- }
-
- r_brv_positions = rb_ary_new();
- r_brv_types = rb_ary_new();
- for (i=0; i<num_atom_bravais; i++) {
- vector = rb_ary_new();
- for (j=0; j<3; j++) {
- rb_ary_push(vector, rb_float_new(position[i][j]));
- }
- rb_ary_push(r_brv_positions, vector);
- rb_ary_push(r_brv_types, INT2NUM(types[i]));
- }
-
- array = rb_ary_new();
- rb_ary_push(array, rb_str_new2(output));
- rb_ary_push(array, r_brv_lattice);
- rb_ary_push(array, r_brv_positions);
- rb_ary_push(array, r_brv_types);
- rb_ary_push(array, INT2NUM(spgroup));
-
- return array;
-}
-
-VALUE method_get_operations(VALUE self, VALUE r_size, VALUE r_lattice, VALUE r_position, VALUE r_types, VALUE r_symprec, VALUE r_angle_symprec)
-{
- int i, j, k, num_atom, num_sym;
- double symprec, lattice[3][3];
- VALUE matrix, matrix_row, vector, array, r_rotation, r_translation;
-
- num_atom = NUM2INT(r_size);
-
- double position[num_atom][3];
- int types[num_atom];
- int rotation[num_atom*48][3][3];
- double translation[num_atom*48][3];
-
- symprec = NUM2DBL(r_symprec);
-
- for (i=0; i<num_atom; i++) {
- for (j=0; j<3; j++) {
- position[i][j] =
- NUM2DBL(rb_ary_entry(rb_ary_entry(r_position, i), j));
- types[i] = NUM2DBL(rb_ary_entry(r_types, i));
- }
- }
-
- for (i=0; i<3; i++)
- for (j=0; j<3; j++)
- lattice[i][j] =
- NUM2DBL(rb_ary_entry(rb_ary_entry(r_lattice, i), j));
-
- num_sym = spgat_get_symmetry(rotation,
- translation,
- num_atom*192,
- lattice,
- position,
- types,
- num_atom,
- symprec,
- NUM2DBL(r_angle_symprec));
-
-
- r_rotation = rb_ary_new();
- r_translation = rb_ary_new();
-
- for ( i = 0; i < num_sym; i++ ) {
- vector = rb_ary_new();
- matrix = rb_ary_new();
- for ( j = 0; j < 3 ; j++ ) {
- rb_ary_push( vector, rb_float_new( translation[i][j] ) );
- matrix_row = rb_ary_new();
- for ( k = 0; k < 3; k++ ) {
- rb_ary_push( matrix_row, INT2NUM( rotation[i][j][k] ) );
- }
- rb_ary_push( matrix, matrix_row );
- }
- rb_ary_push( r_rotation, matrix );
- rb_ary_push( r_translation, vector );
- }
-
- array = rb_ary_new();
- rb_ary_push(array, r_rotation);
- rb_ary_push(array, r_translation);
-
- return array;
-}
-
-VALUE method_get_dataset(VALUE self, VALUE r_lattice, VALUE r_position, VALUE r_types, VALUE r_symprec, VALUE r_angle_symprec)
-{
- int i, j, k, num_atom;
- double symprec, lattice[3][3];
- SpglibDataset *dataset;
- VALUE mat, vec, row, array, r_tmat, r_oshift, r_rot, r_trans, r_wyckoffs;
-
- num_atom = RARRAY_LEN( r_types );
-
- double position[num_atom][3];
- int types[num_atom];
- int rotation[num_atom*48][3][3];
- double translation[num_atom*48][3];
-
- symprec = NUM2DBL(r_symprec);
-
- for ( i = 0; i < num_atom; i++ ) {
- for ( j = 0; j < 3; j++ ) {
- position[i][j] =
- NUM2DBL( rb_ary_entry( rb_ary_entry( r_position, i ), j ) );
- types[i] = NUM2DBL( rb_ary_entry( r_types, i ) );
- }
- }
-
- for ( i = 0; i < 3; i++ ) {
- for ( j = 0; j < 3; j++ ) {
- lattice[i][j] =
- NUM2DBL( rb_ary_entry( rb_ary_entry( r_lattice, i), j ) );
- }
- }
-
- dataset = spgat_get_dataset(lattice,
- position,
- types,
- num_atom,
- symprec,
- NUM2DBL(r_angle_symprec));
-
- array = rb_ary_new();
-
- rb_ary_push( array, INT2NUM( dataset->spacegroup_number ) );
- rb_ary_push( array, rb_str_new2( dataset->international_symbol ) );
- rb_ary_push( array, INT2NUM( dataset->hall_number ) );
- rb_ary_push( array, rb_str_new2( dataset->hall_symbol ) );
-
- /* Transformation_matrix */
- r_tmat = rb_ary_new();
- for ( i = 0; i < 3; i++ ) {
- row = rb_ary_new();
- for ( j = 0; j < 3; j++ ) {
- rb_ary_push( row,
- rb_float_new( dataset->transformation_matrix[i][j] ) );
- }
- rb_ary_push( r_tmat, row );
- }
- rb_ary_push( array, r_tmat );
-
- /* Origin shift */
- r_oshift = rb_ary_new();
- for ( i = 0; i < 3; i++ ) {
- rb_ary_push( r_oshift, rb_float_new( dataset->origin_shift[i] ) );
- }
- rb_ary_push( array, r_oshift );
-
- /* Rotations, translations */
- r_rot = rb_ary_new();
- r_trans = rb_ary_new();
- for ( i = 0; i < dataset->n_operations; i++ ) {
- mat = rb_ary_new();
- vec = rb_ary_new();
- for ( j = 0; j < 3; j++ ) {
- rb_ary_push( vec, rb_float_new( dataset->translations[i][j] ) );
- row = rb_ary_new();
- for ( k = 0; k < 3; k++ ) {
- rb_ary_push( row, rb_float_new( dataset->rotations[i][j][k] ) );
- }
- rb_ary_push( mat, row );
- }
- rb_ary_push( r_trans, vec );
- rb_ary_push( r_rot, mat );
- }
- rb_ary_push( array, r_rot );
- rb_ary_push( array, r_trans );
-
- /* Wyckoff letters */
- r_wyckoffs = rb_ary_new();
- for ( i = 0; i < dataset->n_atoms; i++ ) {
- r_wyckoffs = rb_ary_push( r_wyckoffs, INT2NUM( dataset->wyckoffs[i] ) );
- }
- rb_ary_push( array, r_wyckoffs );
-
- spg_free_dataset( dataset );
-
- return array;
-}
diff --git a/test/symPoscar.rb b/test/symPoscar.rb
deleted file mode 100644
index fda1db3..0000000
--- a/test/symPoscar.rb
+++ /dev/null
@@ -1,137 +0,0 @@
-#!/usr/bin/env ruby
-# Copyright (C) 2008 Atsushi Togo
-# togo.atsushi at gmail.com
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Fifth Floor, Boston, MA 02110-1301, USA, or see
-# http://www.gnu.org/copyleft/gpl.html
-#
-# Usage: symPoscar.rb [OPTION] [structure]
-# OPTION: -s, --symprec= : Symmetry check precision
-
-require 'optparse'
-require 'getspg.so'
-require 'poscar'
-include Getspg
-
-symprec = 1e-5
-angle_tolerance = -1.0
-nonewline = false
-pos_shift = [0,0,0]
-shift_string = false
-is_long_output = false
-is_operations = false
-is_dataset = false
-opt = OptionParser.new
-opt.on('-s', '--symprec VALUE', 'Symmetry check precision') {|tmp| symprec = tmp.to_f}
-opt.on('-a', '--angle_tolerance VALUE', 'Symmetry check precision for angle between lattice vectors in degrees') {|tmp| angle_tolerance = tmp.to_f}
-opt.on('--shift VALUE', 'uniform shift of internal atomic positions') {shift_string = true}
-opt.on('-n', '--nonewline', 'Do not output the trailing newline') {nonewline = true}
-opt.on('-l', '--long', 'Long output') {is_long_output = true}
-opt.on('-o', '--operations', 'Symmetry operations') {is_operations = true}
-opt.on('-d', '--dataset', 'Dataset') {is_dataset = true}
-opt.parse!(ARGV)
-
-if shift_string
- pos_shift = []
- shift_string.split.each {|val| pos_shift << val.to_f }
-end
-cell = Vasp::Poscar.new(ARGV.shift).cell
-lattice = cell.axis.transpose
-names = (cell.atoms.collect {|atom| atom.name}).uniq
-position = []
-types = []
-names.each_with_index do |name, i|
- cell.atoms.each do |atom|
- if atom.name == name
- apos = atom.position
- position << [ apos[0]+pos_shift[0],
- apos[1]+pos_shift[1],
- apos[2]+pos_shift[2] ]
- types << i+1
- end
- end
-end
-
-if is_long_output
- spg, brv_lattice, brv_positions, brv_types, spgnum =
- refine_cell(types.size, lattice, position, types, symprec, angle_tolerance)
-end
-
-spgnum, spg, hallnum, hall_symbol, t_mat, o_shift,
-rotations, translations, wyckoffs = get_dataset(lattice,
- position,
- types,
- symprec,
- angle_tolerance)
-ptg_symbol, ptg_num, trans_mat = getptg(rotations)
-
-if spgnum > 0
- if nonewline
- print "#{spg.strip} (#{spgnum})"
- else
- puts "#{spg.strip} (#{spgnum}) / #{ptg_symbol}/ #{hall_symbol.strip} (#{hallnum})"
-
- if is_long_output
- puts "----------- original -----------"
- lattice.each do |vec|
- printf("%10.5f %10.5f %10.5f\n", vec[0], vec[1], vec[2]);
- end
-
- puts "------------ final -------------"
- brv_lattice.each do |vec|
- printf("%10.5f %10.5f %10.5f\n", vec[0], vec[1], vec[2]);
- end
-
- brv_types.size.times do |i|
- printf("%d: %d %10.5f %10.5f %10.5f\n", i+1, brv_types[i],
- brv_positions[i][0], brv_positions[i][1], brv_positions[i][2]);
- end
- end
-
- if is_dataset
- puts "------ transformation matrix -----"
- t_mat.each do |row|
- printf("%10.5f %10.5f %10.5f\n", row[0], row[1], row[2]);
- end
-
- puts "---------- origin shift ----------"
- printf("%10.5f %10.5f %10.5f\n", o_shift[0], o_shift[1], o_shift[2]);
-
- puts "--------- Wyckoff position ----------"
- wl = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
- wyckoffs.each_with_index do |w, i|
- pos = []
- 3.times do |j|
- pos.push( position[i][j] - position[i][j].floor )
- end
- printf("%4d %2s %s %8.5f %8.5f %8.5f\n",
- i+1, cell.atoms[i].name, wl[w,1], pos[0], pos[1], pos[2])
- end
- end
-
- end
-end
-
-if is_operations or is_dataset
- rotations.size.times do |i|
- print "----", i+1, "----\n"
- rotations[i].each do |row|
- printf("%2d %2d %2d\n", row[0], row[1], row[2])
- end
- printf("%f %f %f\n", translations[i][0], translations[i][1], translations[i][2])
- end
-end
-
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/spglib.git
More information about the debian-science-commits
mailing list